:root{--tinta:#14120f;--crema:#faf8f4;--papel:#fff;--linea:#14120f1f;--suave:#14120f99;--verde:#1f7a4d;--rojo:#b3261e;--serif:ui-serif, "Iowan Old Style", Georgia, serif;--sans:ui-sans-serif, -apple-system, "Segoe UI", Inter, system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--crema);color:var(--tinta);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:15px;line-height:1.5}a{color:inherit}.envoltorio{max-width:1180px;margin:0 auto;padding:40px 24px 80px}.cabecera{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.antetitulo{letter-spacing:.08em;text-transform:uppercase;color:var(--suave);font-size:13px}h1{font-family:var(--serif);margin:6px 0 0;font-size:clamp(30px,4vw,42px);line-height:1.05}.subtitulo{color:var(--suave);max-width:60ch;margin:8px 0 0;font-size:14px}.aviso{background:var(--tinta);color:var(--crema);border-radius:8px;margin-top:24px;padding:14px 18px;font-size:14px}.aviso strong{font-weight:600}.error{color:var(--rojo);background:#fdecea;border:1px solid #f5c6c2;border-radius:8px;margin-top:24px;padding:16px 18px;font-size:14px}.filtros{flex-wrap:wrap;gap:8px;margin:28px 0 20px;display:flex}.chip{background:var(--papel);border:1px solid var(--linea);color:var(--tinta);border-radius:999px;padding:7px 14px;font-size:13px;text-decoration:none}.chip:hover{background:#fff;border-color:#14120f40}.chip[data-activo=si]{background:var(--tinta);color:var(--crema);border-color:var(--tinta);font-weight:600}h2{font-family:var(--serif);margin:44px 0 14px;font-size:22px;font-weight:600}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.kpi{background:var(--papel);border:1px solid var(--linea);border-radius:10px;padding:18px}.kpi .etiqueta{text-transform:uppercase;letter-spacing:.06em;color:var(--suave);font-size:12px}.kpi .valor{font-family:var(--serif);margin-top:8px;font-size:30px;line-height:1.1}.kpi .delta{color:var(--suave);margin-top:8px;font-size:12px}.kpi .delta b{font-weight:600}.kpi .delta[data-t=up] b{color:var(--verde)}.kpi .delta[data-t=down] b{color:var(--rojo)}.kpi .pista{color:var(--suave);margin-top:6px;font-size:12px}table{border-collapse:collapse;background:var(--papel);border:1px solid var(--linea);border-radius:10px;width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--linea);padding:11px 14px;font-size:14px}th{text-transform:uppercase;letter-spacing:.05em;color:var(--suave);font-size:12px;font-weight:600}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.dos-columnas{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:24px;display:grid}.vacio{text-align:center;color:var(--suave);background:var(--papel);border:1px dashed var(--linea);border-radius:10px;padding:28px;font-size:14px}.pill{background:var(--crema);border:1px solid var(--linea);border-radius:999px;padding:2px 9px;font-size:12px;display:inline-block}.pill[data-ok=no]{color:var(--rojo);background:#fdecea;border-color:#f5c6c2}.pill[data-ok=si]{color:var(--verde);background:#e9f5ee;border-color:#bfe0cd}.pie{color:var(--suave);border-top:1px solid var(--linea);margin-top:56px;padding-top:16px;font-size:12px}.campo-etiqueta{color:var(--suave);margin-bottom:6px;font-size:13px;display:block}.campo{border:1px solid var(--linea);background:var(--papel);width:100%;color:var(--tinta);border-radius:8px;padding:11px 13px;font-family:inherit;font-size:15px}.campo:focus{outline:2px solid var(--tinta);outline-offset:1px}.campo-pista{color:var(--suave);margin-top:5px;font-size:12px}.boton{letter-spacing:.05em;text-transform:uppercase;width:100%;color:var(--crema);background:var(--tinta);cursor:pointer;border:none;border-radius:8px;margin-top:8px;padding:11px 13px;font-family:inherit;font-size:13px;font-weight:600}.boton:hover{opacity:.9}.sesion{color:var(--suave);align-items:center;gap:12px;font-size:13px;display:flex}.sesion form{display:inline}.sesion button{font:inherit;cursor:pointer;color:var(--suave);background:0 0;border:none;padding:0;text-decoration:underline}
