:root{color-scheme:dark;--fondo:#0e0e0e;--panel-1:#262626;--panel-2:#1b1b1b;--panel-3:#151515;--borde:#2e2e2e;--texto:#ffffff;--texto-claro:#e5e5e5;--cuerpo:#a0a0a0;--tenue:#8e8e93;--rojo:#e01329;--verde:#3ddc84}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--fondo);color:var(--texto);font-family:Inter,-apple-system,Segoe UI,Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.etiqueta{font-size:11px;color:var(--tenue)}.etiqueta,.titulo-espaciado{font-weight:600;letter-spacing:.22em;text-transform:uppercase}.titulo-espaciado{font-size:20px}.lead{font-size:17px;font-weight:700;line-height:1.25}.cuerpo{font-size:13px;line-height:1.5;color:var(--cuerpo)}.tenue{font-size:12px;color:var(--tenue)}.panel{border:1px solid var(--borde);border-radius:14px;background:linear-gradient(180deg,var(--panel-1) 0,var(--panel-2) 55%,var(--panel-3) 100%);padding:22px}.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border:0;border-radius:10px;background:var(--rojo);color:#fff;font:inherit;font-size:15px;font-weight:700;cursor:pointer}.boton:disabled{background:#2a2a2a;color:#6e6e73;cursor:default}.boton.suave{background:#1c1c1e;color:var(--texto-claro)}.boton.suave,.campo{border:1px solid var(--borde)}.campo{width:100%;height:46px;padding:0 14px;border-radius:10px;background:var(--fondo);color:#fff;font:inherit;font-size:15px}.campo::placeholder{color:#6e6e73}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:10px 12px;background:#1f1f1f;color:var(--tenue);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase}td{padding:12px;border-top:1px solid var(--borde);color:var(--texto-claro)}tr:hover td{background:rgba(255,255,255,.02)}.chip{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700}.chip.activa{background:rgba(61,220,132,.15);color:var(--verde)}.chip.suspendida{background:rgba(224,19,41,.15);color:#ff6b80}.chip.vencida{background:rgba(255,255,255,.08);color:var(--tenue)}.chip.nuevo{background:rgba(144,85,232,.18);color:#c9a6ff}.rejilla{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.dato{border:1px solid var(--borde);border-radius:12px;background:var(--fondo);padding:16px}.dato b{display:block;font-size:26px;font-weight:700;margin-bottom:2px}.pagina{max-width:1100px;margin:0 auto;padding:28px 20px 60px}.app{min-height:100vh;display:grid;grid-template-columns:clamp(216px,20vw,292px) 1fr}.lateral{position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;gap:22px;padding:26px 16px;background:var(--panel-3);border-right:1px solid var(--borde);overflow-y:auto}.marca{padding:0 10px}.marca b{display:block;font-size:17px;font-weight:700;letter-spacing:-.01em}.nav{display:flex;flex-direction:column;gap:3px}.nav button{display:flex;align-items:center;gap:12px;width:100%;height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--cuerpo);font:inherit;font-size:14px;font-weight:500;cursor:pointer;text-align:left;text-transform:capitalize}.nav button:hover{background:rgba(255,255,255,.04);color:var(--texto-claro)}.nav button[aria-current=page]{background:#fff;color:#000;font-weight:700}.nav svg{flex-shrink:0}.marca .logo{height:40px;width:auto;object-fit:contain;display:block;margin-bottom:8px}@media (max-width:900px){.marca .logo{height:30px;margin-bottom:0}}.abajo{margin-top:auto;flex-direction:column;padding:0 4px}.abajo,.usuario{display:flex;gap:10px}.usuario{align-items:center;min-width:0;padding:6px 4px;border:0;border-radius:10px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.usuario:hover{background:rgba(255,255,255,.05)}.usuario .avatar{height:26px;width:auto;flex-shrink:0;object-fit:contain}.usuario .nombre{min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boton.salir{height:38px;font-size:13px}.tablero{display:flex;flex-direction:column;gap:14px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.kpi{display:flex;flex-direction:column;gap:7px;padding:18px 20px;border-radius:14px;border:1px solid var(--borde);background:linear-gradient(180deg,var(--panel-1) 0,var(--panel-2) 55%,var(--panel-3) 100%)}.kpi>b{font-size:34px;font-weight:600;line-height:1;letter-spacing:-.02em}.kpi .pie{font-size:12px;line-height:17px;color:var(--cuerpo)}.tendencia{font-size:12px;font-weight:600}.tendencia.sube{color:var(--verde)}.tendencia.baja{color:#ff8a8a}.tendencia.neutra{color:var(--tenue);font-weight:400}.medidor{height:6px;background:#262628;overflow:hidden}.medidor,.medidor .relleno{display:block;border-radius:3px}.medidor .relleno{height:100%;animation:crecer .5s ease-out}@keyframes crecer{0%{width:0!important}}.tablero-abajo,.tablero-medio{display:grid;grid-template-columns:minmax(0,1fr) clamp(260px,26%,340px);grid-gap:14px;gap:14px}.tablero-abajo{align-items:start}.barra-titulo{justify-content:space-between;gap:12px}.barra-titulo,.leyenda{display:flex;align-items:center}.leyenda{font-size:11px;color:var(--tenue)}.leyenda i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px}.grafica{display:flex;flex-direction:column;gap:14px;min-height:260px}.dias{gap:3px;min-height:170px}.dia,.dias{flex:1 1;display:flex;align-items:flex-end}.dia{height:100%;min-width:0}.dia .col{width:100%;min-height:3px;border-radius:3px 3px 0 0;background:var(--rojo);position:relative;display:flex;align-items:flex-end;animation:subir .45s ease-out}.dia .col.vacio{height:2px;background:#2a2a2c;animation:none}.dia:hover .col{filter:brightness(1.25)}.dia .parte{width:100%;border-radius:0 0 3px 3px;background:var(--verde)}@keyframes subir{0%{height:0!important}}.eje{display:flex;justify-content:space-between;font-size:11px;color:var(--tenue)}.lateral-tablero{display:flex;flex-direction:column;gap:12px}.marcadores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px 10px;gap:12px 10px}.marcadores div{display:flex;flex-direction:column;gap:2px;min-width:0}.marcadores b{font-size:22px;font-weight:600;line-height:1.1}.marcadores b.aviso{color:#ffc266}.marcadores b.malo{color:#ff8a8a}.marcadores .tenue{font-size:11px;line-height:15px}.planes-barras{display:flex;flex-direction:column;gap:9px}.planes-barras>div{display:grid;grid-template-columns:1fr 78px 30px;align-items:center;grid-gap:10px;gap:10px}.planes-barras .cuerpo{font-size:13px}.num{font-size:12px;font-weight:600;color:var(--texto-claro);text-align:right}.plan-actual{display:flex;flex-direction:column;gap:3px}.plan-actual b{font-size:26px;font-weight:600;letter-spacing:-.01em}.plan-actual .tenue{font-size:12px}.celda-barra{display:flex;align-items:center;gap:9px}.celda-barra .medidor{width:64px;flex-shrink:0}.pie{font-size:12px;line-height:17px;color:var(--tenue)}.pie.aviso{color:#ffc266}@media (max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tablero-abajo,.tablero-medio{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.kpis{grid-template-columns:minmax(0,1fr)}.kpi>b{font-size:28px}}.velo{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialogo{width:min(420px,100%);gap:14px}.dialogo,.ficha{display:flex;flex-direction:column}.ficha{width:min(760px,100%);max-height:min(88vh,900px);overflow-y:auto;gap:18px}.seccion-ficha{display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:1px solid var(--borde)}.seccion-ficha.peligro{border-top-color:#4a2226}.fila-ficha{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.035)}.acciones-ficha,.fila-ficha{display:flex;align-items:center;gap:10px}.acciones-ficha{flex-wrap:wrap}.boton.chico{height:34px;font-size:13px;padding:0 14px}.campo-clave{position:relative;display:block}.campo-clave .campo{width:100%;padding-right:46px}.campo-clave .ojo{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:none;color:var(--tenue);cursor:pointer}.campo-clave .ojo:hover{background:rgba(255,255,255,.07);color:var(--texto-claro)}.campo-clave .ojo svg{width:17px;height:17px}.acciones-fila{display:flex;gap:6px;justify-content:flex-end}.icono-accion{width:34px;height:34px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--borde);border-radius:9px;background:transparent;color:var(--cuerpo);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.icono-accion:hover{background:rgba(255,255,255,.06);color:var(--texto)}.icono-accion.peligro:hover{background:rgba(224,19,41,.14);color:#ff6b80;border-color:#5a2228}.icono-accion svg{width:17px;height:17px}.campo-con-nombre{display:flex;flex-direction:column;gap:6px}.campo-con-nombre .cuerpo{font-size:13px}.acciones{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.acciones .boton{height:40px;font-size:14px}.error{font-size:13px;color:#ff6b6b}.contenido{min-width:0;padding:30px clamp(20px,3vw,44px) 70px}.cabecera{display:flex;align-items:flex-end;gap:16px;margin-bottom:26px}.cabecera h1{margin:4px 0 0;font-size:26px;font-weight:700;letter-spacing:-.01em;text-transform:capitalize}.cabecera p{margin:6px 0 0;font-size:14px;color:var(--cuerpo)}@media (max-width:900px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}.lateral{position:static;height:auto;flex-direction:row;align-items:center;gap:14px;padding:12px 14px;border-right:0;border-bottom:1px solid var(--borde)}.marca{display:none}.abajo{margin-top:0;margin-left:auto;flex-direction:row;align-items:center;gap:8px;flex-shrink:0;padding:0}.usuario{display:none}.boton.salir{padding:0 14px}.nav{flex-direction:row;gap:6px;overflow-x:auto;flex:1 1}.nav button{width:auto;height:38px;padding:0 14px;border-radius:19px;background:#1c1c1e;white-space:nowrap}.contenido{padding:20px 14px 50px}.cabecera h1{font-size:21px}}.barra{display:flex;align-items:center;gap:14px;margin-bottom:24px}.barra .crece{flex:1 1}@media (max-width:640px){.panel{padding:16px}.oculta-movil{display:none}}