/* FISSH Invest · estilos del marco (barra lateral, barra superior, acceso) y restos sin pantalla.
   Colores y tipografía: los tokens --sd-* de css/sala-datos.css (alias abajo). Regla: ningún HEX ni rgba() aquí. */
:root{
 /* Rediseño 2026-10-21: toda la app usa la paleta y la tipografía de sala-datos.css (Manrope local, tokens --sd-*).
    Estos nombres se conservan como alias para no tocar cada regla; los colores viven solo en sala-datos.css. */
 --page:var(--sd-fondo);--surface:var(--sd-tarjeta);--surface-alt:var(--sd-tarjeta-alt);--hover:var(--sd-fondo);--line:var(--sd-borde);--line-strong:var(--sd-borde-control);
 --text:var(--sd-texto);--secondary:var(--sd-texto-2);--muted:var(--sd-texto-3);--brand:var(--sd-acento);--accent:var(--sd-acento);--tint:var(--sd-acento-suave);
 --positive:var(--sd-exito-texto);--negative:var(--sd-error-texto);--negative-tint:var(--sd-error-fondo);--warning:var(--sd-aviso-texto);--warning-tint:var(--sd-aviso-fondo);
 --shadow:var(--sd-sombra-1);--shadow-sm:var(--sd-sombra-1);--shadow-pie:none;--radius:14px;--sidebar:248px;
 --on-brand:var(--sd-sobre-acento);
 --font:var(--sd-fuente);
 --mono:ui-monospace,Consolas,monospace;
 color-scheme:light;
}
:root[data-theme="dark"]{color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);font-size:13px;line-height:1.45;background:var(--page);color:var(--text);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
.mono{font-family:var(--mono)}
button:disabled{cursor:not-allowed;opacity:.55}

/* Estructura (como FISSH v2: barra lateral fija, barra superior y área de trabajo) */
[hidden]{display:none!important}
.icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.sidebar{width:var(--sidebar);position:fixed;inset:0 auto 0 0;z-index:40;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column}
.brand{height:99px;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:16px 26px;gap:5px}
.brand img{width:129px;height:auto;filter:brightness(0);opacity:.95}
[data-theme="dark"] .brand img{filter:none}
.brand small{font-size:11px;letter-spacing:.08em;color:var(--secondary)}
.sidebar-accion{padding:0 12px 6px}
.btn.ancho{width:100%;min-height:39px}
.nav{padding:3px 12px;overflow-y:auto;flex:1;scrollbar-width:thin}
.nav-group{margin:13px 11px 7px;color:var(--muted);font-size:10px;letter-spacing:1.25px;font-weight:650}
.nav-group span{font-weight:500;letter-spacing:0;margin-left:4px}
.nav-item{display:flex;align-items:flex-start;gap:11px;width:100%;padding:9px 12px;text-align:left;border-radius:7px;color:var(--secondary);margin:2px 0}
.nav-item:hover{background:var(--hover);color:var(--text)}
.nav-item.active{background:var(--tint);color:var(--brand)}
.nav-item .icon{margin-top:1px}
.nav-item .t{display:block;font-size:13px;font-weight:550;line-height:1.35;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.nav-item.active .t{font-weight:650}
.nav-item .s{display:block;font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.nav-item .mini{display:block;height:3px;border-radius:999px;background:var(--line);margin-top:6px;overflow:hidden;width:160px}
.nav-item .mini i{display:block;height:100%;background:var(--accent)}
.sidebar-bottom{border-top:1px solid var(--line);padding:14px 12px 12px;flex-shrink:0}
.sidebar-tagline{margin:0;padding:6px 12px 1px;font-size:10px;line-height:1.8;letter-spacing:1.5px;color:var(--muted)}
.main-shell{margin-left:var(--sidebar);min-width:0}
.topbar{height:68px;display:flex;align-items:center;gap:14px;padding:0 28px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:30}
.search-launch{height:34px;width:265px;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface-alt);color:var(--muted)}
.search-launch input{border:0;background:transparent;outline:none;width:100%;font-size:12px;color:var(--text)}
.search-launch .icon{width:15px}
.search-launch:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.top-spacer{flex:1}
.demo-badge{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.8px;color:var(--muted);white-space:nowrap}
.demo-badge i{height:5px;width:5px;border-radius:50%;background:var(--warning)}
.theme-group{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface-alt)}
.theme-group button{padding:5px 8px;border-radius:5px;display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}
.theme-group button .icon{width:13px;height:13px}
.theme-group button[aria-pressed="true"]{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text)}
.user-button{display:flex;align-items:center;gap:9px;padding:4px}
.avatar{height:31px;width:31px;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);border-radius:50%;font-size:13px;font-weight:600}
.user-label{font-size:12px;text-align:left;line-height:1.5}
.user-label small{display:block;color:var(--muted);font-size:10px}
.workspace{max-width:1480px;margin:0 auto;padding:24px 28px 48px;min-width:0}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin-bottom:14px}
.breadcrumb .icon{width:12px;height:12px}
.breadcrumb .current{color:var(--secondary)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--secondary);font-size:12px;background:var(--surface-alt)}
.vacio{color:var(--muted);text-align:center;padding:60px 20px}
.vacio .icono-grande{width:46px;height:46px;border-radius:12px;background:var(--tint);color:var(--brand);display:grid;place-items:center;margin:0 auto 14px}
.vacio .icono-grande .icon{width:24px;height:24px}
.vacio h2{color:var(--text);font-size:17px;margin:0 0 6px}
.vacio p{margin:0 auto 16px;max-width:420px}
.nav .vacio{padding:18px 8px;font-size:12px}

/* Pantalla de acceso (tarea 21, decisión 0006). Funcional con los tokens ya existentes;
   pendiente de un pase de diseño propio (disenador-ui), ver docs/DEUDA.md. */
.acceso{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:var(--page);padding:24px}
.acceso-tarjeta{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 28px;text-align:center}
.acceso-logo{width:120px;height:auto;margin:0 auto 18px;filter:brightness(0);opacity:.95}
[data-theme="dark"] .acceso-logo{filter:none}
.acceso-tarjeta h1{font-size:19px;margin:0 0 6px;color:var(--text)}
.acceso-subtitulo{margin:0 0 20px;color:var(--secondary);font-size:12px}
.acceso-divisor{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--muted);font-size:11px}
.acceso-divisor::before,.acceso-divisor::after{content:"";flex:1;height:1px;background:var(--line)}
.acceso .campo{text-align:left;margin-bottom:14px}
.acceso .campo label{display:block;font-size:11px;color:var(--secondary);margin-bottom:5px}
.acceso .campo input{height:38px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);width:100%;color:var(--text)}
.acceso-error{color:var(--negative);background:var(--negative-tint);border-radius:7px;padding:8px 10px;font-size:12px;margin:14px 0 0}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 14px;border-radius:7px;border:1px solid var(--line-strong);background:var(--surface);font-size:12px;font-weight:600;color:var(--text);white-space:nowrap}
.btn .icon{width:15px;height:15px}
.btn:hover{background:var(--hover)}
.btn.primario{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.btn.primario:hover{filter:brightness(1.05)}
.btn.link{border:0;padding:0;color:var(--brand);font-weight:500;background:none}

/* Secciones */
.seccion{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px}
.seccion-cab{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.seccion-cab h3{margin:0;font-size:14px;font-weight:650;letter-spacing:-.2px;flex:1}
.procedencia{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:11px}
.procedencia select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-alt);font-size:11px;color:var(--text)}
.campos{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px 20px;padding:18px 20px}
.campo{display:flex;flex-direction:column;gap:4px;min-width:0}
.campo.ancho{grid-column:1/-1}
.campo label{font-weight:600;font-size:11px;letter-spacing:.2px;color:var(--secondary)}
.campo .ayuda{color:var(--muted);font-size:11px}
.campo input[type=text],.campo input[type=number],.campo input[type=date],.campo select{height:38px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);width:100%;color:var(--text)}
.campo input:focus,.campo select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}
.campo.cambiado input,.campo.cambiado select,.campo.cambiado .campo.error input,.campo.error select{border-color:var(--negative)}
.campo .msg-error{color:var(--negative);font-size:11px}
.campo .aviso-texto{color:var(--warning);font-size:11px;font-weight:600}
.historial{margin:6px 0 0;padding:8px 10px;border-radius:8px;background:var(--surface-alt);border:1px solid var(--line);font-size:11px;font-family:var(--mono);color:var(--secondary)}
.historial div+div{margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}
.historial.versiones{overflow-x:auto}
.versiones table{border-collapse:collapse;width:100%}
.versiones th{text-align:left;font-weight:600;color:var(--muted);padding:2px 10px 4px 0;white-space:nowrap}
.versiones td{padding:4px 10px 4px 0;border-top:1px solid var(--line);white-space:nowrap}
.versiones td.num{text-align:right}
.versiones tr.vigente td{color:var(--text);font-weight:600}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.chip-vigente{margin-left:6px;padding:0 6px;border-radius:999px;background:var(--tint);color:var(--brand);font-size:10px;font-weight:600}

/* Datos mensuales */
.barra-series{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.barra-series .grow{flex:1}
.barra-series .separador{width:1px;height:24px;background:var(--line)}
.barra-series input[type=month]{height:36px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--text)}
.aviso{padding:10px 14px;border-radius:10px;margin-bottom:12px;font-weight:500}
.aviso.ok{background:var(--tint);color:var(--positive)}
.aviso.mal{background:var(--negative-tint);color:var(--negative)}
.aviso-coherencia{background:var(--warning-tint);color:var(--warning);border-radius:10px;padding:10px 14px;margin-bottom:12px}
.aviso-coherencia summary{cursor:pointer;font-weight:600}
.aviso-coherencia .historial{margin-top:8px;color:var(--text)}
.aviso-coherencia .btn.link{padding:0;font-weight:600}
.celda.incoherente{box-shadow:inset 0 0 0 2px var(--warning)}
.tabla-series{overflow:auto;max-height:65vh;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.tabla-series table{border-collapse:separate;border-spacing:0;font-size:12px;min-width:100%}
.tabla-series th,.tabla-series td{padding:0;border-bottom:1px solid var(--line);white-space:nowrap}
.tabla-series th{position:sticky;top:0;z-index:2;background:var(--surface-alt);padding:8px 10px;text-align:right;color:var(--secondary);font-weight:600}
.tabla-series .col-ind{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;padding:6px 12px;min-width:220px;max-width:320px;overflow:hidden;text-overflow:ellipsis}
.tabla-series th.col-ind{z-index:3;background:var(--surface-alt)}
.tabla-series tr.grupo td{background:var(--surface-alt);font-weight:700;color:var(--text);padding:8px 12px}
.tabla-series tr.subgrupo td{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px 12px 4px}
.tabla-series tr.total .col-ind,.tabla-series tr.total .celda{font-weight:700}
.tabla-series td.num{padding:6px 10px;text-align:right;font-family:var(--mono)}
.celda{width:96px;border:0;background:transparent;padding:6px 10px;text-align:right;font-family:var(--mono);font-size:12px}
.celda:hover{background:var(--hover)}
.celda:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--surface)}
.celda.cambiado{background:var(--tint)}
.celda.estimado{font-style:italic;color:var(--warning)}
.celda.error{background:var(--negative-tint);color:var(--negative)}
.celda.seleccionada{box-shadow:inset 0 0 0 1px var(--brand)}
.detalle-serie{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.detalle-serie .t{font-weight:700;margin-bottom:4px}
.detalle-serie .ayuda{color:var(--muted);font-size:12px}

/* Importación de tablas del INE */
.ine-cuerpo{padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.ine-resumen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ine-resumen>div{padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-alt)}
.ine-resumen b{display:block;font-size:15px;font-weight:650}
.ine-cuerpo .ayuda{color:var(--muted);font-size:12px;margin:0}
.ine-cuerpo .campo{max-width:420px}
.ine-acciones{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.chip-estimado{background:var(--warning-tint);color:var(--warning);border-color:transparent;font-weight:600}
.aviso.aviso-estimado{background:var(--warning-tint);color:var(--warning)}
/* Cupos de operadores (tarea 11) */
#cupos{margin-top:16px}
.cupos-cuerpo{padding:14px 20px;display:flex;flex-direction:column;gap:10px}
.cupos-cuerpo .tabla-series{max-height:none}
.cupos-form{padding:0;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.cupos-form input[type=month]{height:38px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--text);width:100%}
.cupos-tabla td,.cupos-tabla th{text-align:left;white-space:nowrap;padding:8px 12px}
.cupos-tabla td.num{text-align:right}
.cupo-baja td{color:var(--muted);text-decoration:line-through}
.cupo-baja td.cupo-acciones,.cupo-baja .chip{text-decoration:none}
.cupo-acciones{display:flex;gap:10px}
.cupos-errores{margin:0;padding-left:18px}

@media (max-width:820px){.ine-resumen{grid-template-columns:1fr}}



/* Completitud (completitud.js) */
.comp>summary{display:flex;align-items:center;gap:12px;padding:12px 18px;cursor:pointer;list-style:none;flex-wrap:wrap}
.comp>summary::-webkit-details-marker{display:none}
.comp>summary::before{content:"▸";color:var(--muted);transition:transform .15s}
.comp[open]>summary::before{transform:rotate(90deg)}
.comp>summary h3{margin:0;font-size:14px}
.comp[open]>summary{border-bottom:1px solid var(--line)}
.comp-resumen{color:var(--secondary)}
.comp-cuerpo{padding:14px 18px;display:flex;flex-direction:column;gap:12px}
.comp-barra{display:flex;height:8px;border-radius:999px;background:var(--line);overflow:hidden}
.comp-barra i{display:block;height:100%}
.comp-barra .informado{background:var(--brand)}
.comp-barra .estimado{background:var(--warning)}
.comp-leyenda{display:flex;gap:14px;flex-wrap:wrap;color:var(--secondary);font-size:12px}
.comp-leyenda span{display:inline-flex;align-items:center;gap:6px}
.comp-punto{width:10px;height:10px;border-radius:3px;display:inline-block}
.comp-punto.informado,.comp-celda.informado{background:var(--brand)}
.comp-punto.estimado,.comp-celda.estimado{background:var(--warning)}
.comp-punto.falta,.comp-celda.falta{background:var(--negative-tint);box-shadow:inset 0 0 0 1px var(--negative)}
.comp-punto.derivable,.comp-celda.derivable{background:var(--tint);box-shadow:inset 0 0 0 1px var(--accent)}
.comp-punto.cerrado,.comp-celda.cerrado{background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong)}
.comp-secciones{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 16px}
.comp-sec{display:flex;flex-direction:column;gap:4px}
.comp-sec-t{display:flex;justify-content:space-between;gap:8px;color:var(--secondary);font-size:12px}
.comp-faltan{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.comp-falta{cursor:pointer}
.comp-falta:hover{background:var(--hover);color:var(--text)}
.comp-fila{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.comp-fila .grow{flex:1}
.comp-ventana{display:inline-flex;align-items:center;gap:6px;color:var(--secondary)}
.comp-ventana select{padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.comp-matriz{max-height:none}
.comp-matriz td{text-align:center;padding:3px 2px}
.comp-matriz th{text-align:center;padding:6px 4px}
.comp-matriz .col-ind{padding:4px 12px;min-width:200px}
.comp-celda{width:22px;height:16px;border-radius:4px;display:inline-block;vertical-align:middle}
.comp-celda:not(:disabled):hover{outline:2px solid var(--accent);outline-offset:1px}
.comp-celda:disabled{opacity:1;cursor:default}
.comp-tot{text-align:right!important;padding:4px 12px!important;color:var(--secondary)}
@media (max-width:820px){
 :root{--sidebar:0px}
 .sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid var(--line)}
 .brand{height:auto;padding:14px 16px 6px}
 .nav{max-height:220px}
 .sidebar-bottom{display:none}
 .workspace{padding:16px 16px 40px}
 .topbar{padding:0 16px;gap:10px;height:58px}
 .search-launch{width:auto;flex:1}
 .top-spacer,.demo-badge,.user-label{display:none}
 .seccion-cab,.procedencia{flex-wrap:wrap}
 .procedencia select{max-width:140px}
  .comp-matriz .col-ind{min-width:130px;max-width:150px}
 .comp>summary,.comp-cuerpo{padding-left:14px;padding-right:14px}
}
