/* ============================================================================
   betowa-noche.css · TEMA OSCURO de la suite (V48)
   ----------------------------------------------------------------------------
   Antes vivía al final de betowa-glass.css (secciones 21–23 y parte de la 24).
   Desde la V48 es un archivo aparte que cada página enlaza JUSTO DESPUÉS de
   betowa-glass.css con id="bwNoche"; betowa-tema.js lo apaga (media="not all")
   cuando el usuario elige el tema claro. Mismos selectores y mismo orden que
   antes: en oscuro la suite se ve idéntica a la V47.
   ============================================================================ */
/* ============================================================================
   21 · PROGRAMA OSCURO  (V11)
   ----------------------------------------------------------------------------
   Toda la suite adopta el lenguaje del Programador Académico: negro verdoso
   profundo, paneles de vidrio oscuro con borde fino, tinta clara y el verde
   SENA como acento. Los encabezados azul marino, el oleaje y el movimiento
   se conservan: sobre negro lucen mejor. Al imprimir, todo vuelve a claro.
   `:root:root` gana a los tokens que cada página declara en su propio estilo.
   ========================================================================== */

/* --- 21.0 · Tokens en oscuro ------------------------------------------------ */
:root:root{
  /* tinta clara — escala de contraste (título > cuerpo > apagado) */
  --lg-ink:#F5F9FE;
  --lg-ink-2:#E2EAF6;
  --lg-ink-3:#B7C6DB;
  /* vidrio oscuro más presente: el panel se despega del lienzo */
  --lg-glass:rgba(16,27,46,.92);
  --lg-glass-2:rgba(18,30,50,.80);
  --lg-glass-3:rgba(20,33,55,.66);
  --lg-glass-solid:#121F33;
  --lg-tint:rgba(95,203,42,.06);
  --lg-hair:rgba(226,236,248,.18);
  --lg-hair-soft:rgba(226,236,248,.10);
  --lg-spec:rgba(255,255,255,.13);
  /* radios contenidos, al estilo del programador */
  --lg-r-xl:16px;
  --lg-r-lg:13px;
  --lg-r-md:10px;
  --lg-r-sm:8px;
  --lg-shadow:0 1px 2px rgba(0,0,0,.45),0 10px 26px rgba(0,0,0,.42),0 24px 54px rgba(0,0,0,.38);
  --lg-shadow-hi:0 2px 4px rgba(0,0,0,.5),0 16px 40px rgba(0,0,0,.55),0 34px 74px rgba(0,0,0,.5);
  --lg-edge:
     inset 0 1px 0 rgba(255,255,255,.10),
     inset 0 -1px 0 rgba(255,255,255,.04),
     inset 1px 0 0 rgba(255,255,255,.05),
     inset -1px 0 0 rgba(255,255,255,.05);
  --bw-halo:0 16px 40px rgba(0,0,0,.55);
  /* tokens que declaran las páginas (aquí ganan los oscuros) */
  --bw-fondo:#070D18;
  --bw-glass:rgba(16,27,46,.92);
  --bw-ink:#F2F7FD;
  --bw-mut:#B7C6DB;
  --bw-azul-prof:#CFE3F7;
  --bw-azul-txt:#E2EEFA;
  --bw-azul:#A9CCF0;
  --bw-teal:#7FDCE7;
  --bw-teal-osc:#63C2CF;
  --bw-teal-cl:#9BE7F0;
  --bw-line:rgba(226,236,248,.18);
  --bw-stroke:rgba(226,236,248,.16);
  --bw-shadow:0 1px 2px rgba(0,0,0,.45),0 12px 30px rgba(0,0,0,.5);
  --bw-shadow-hover:0 2px 4px rgba(0,0,0,.5),0 18px 44px rgba(0,0,0,.6);
  /* variables genéricas que declaran las páginas (solo tinta y superficies;
     --azul y --sena* pintan bandas y NO se tocan) */
  --ink:#F2F7FD;
  --mut:#B7C6DB;
  --borde:rgba(226,236,248,.18);
  --panel:rgba(16,27,46,.92);
  --fondo:#070D18;
  --sombra:0 1px 2px rgba(0,0,0,.45),0 12px 30px rgba(0,0,0,.5);
}

/* --- 21.1 · Lienzo negro verdoso -------------------------------------------- */
html{ background:#070D18 !important; }
body{
  background:
    radial-gradient(1100px 620px at 8% -10%,  rgba(0,145,160,.10), transparent 60%),
    radial-gradient(950px 540px at 104% 2%,   rgba(22,60,116,.14), transparent 58%),
    radial-gradient(900px 620px at 46% 118%,  rgba(57,169,0,.07),  transparent 60%),
    linear-gradient(168deg,#060B14 0%,#070D18 46%,#0B182E 100%) !important;
  background-attachment:fixed !important;
  color:var(--lg-ink-2) !important;
}
/* Las manchas respirantes del fondo, más discretas sobre negro. */
body::before,body::after{ opacity:.35; }

/* --- 21.2 · Superficies de vidrio oscuro ------------------------------------ */
.panel,.card,.kpi,.gauge-card,.gaugeCard,.miniCard,.statCard,
.table-wrap,.tablaWrap,.tw,.meta-card,.info-box,.item{
  background:var(--lg-glass) !important;
  border-color:var(--bw-line) !important;
}
.panel,.card,.kpi,.gauge-card,.gaugeCard,.miniCard,.statCard,.meta-card{
  color:var(--lg-ink-2);
}
/* Tinta de los textos frecuentes de las páginas (grises claros de fábrica). */
.panel p,.card p,.desc,.sub,.muted,.meta,
.card .label,.gauge-card .label,.card .sub,.gauge-card .sub,
.statCard .l,.kpi .l,.gauge-label-mini,.slot-note,
.meta-card .k,.bar-row .hh,.pie{
  color:var(--lg-ink-3) !important;
}
.meta-card .v{ color:var(--lg-ink) !important; }

/* --- 21.3 · Cifras grandes con tinta clara ---------------------------------- */
.statCard .n,.kpi .value,.kpi .v,.card .value,.gauge-value{ color:#FFEFB0 !important; }
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .statCard .n,.kpi .value,.kpi .v,.card .value,.gauge-value{
    background-image:linear-gradient(180deg,#FFFFFF 0%,#FFF3C6 48%,#FFD873 135%) !important;
    -webkit-background-clip:text; background-clip:text;
    -webkit-text-fill-color:transparent;
  }
}

/* --- 21.4 · Tablas en oscuro ------------------------------------------------- */
tbody td{ color:var(--lg-ink-2); border-color:var(--bw-line) !important; }
tbody tr:nth-child(even) td{ background:rgba(255,255,255,.035) !important; }
tbody tr:hover td{ background:rgba(95,203,42,.10) !important; }
.tw td:first-child{ color:#BFD9F2 !important; }

/* --- 21.5 · Controles: filtros, campos y botones ----------------------------- */
select,input[type="text"],input[type="search"],input[type="date"],
input[type="number"],textarea{
  background:#16233A !important;
  color:var(--lg-ink) !important;
  border-color:var(--bw-line) !important;
}
select option{ background:#141B16; color:#E3EAE2; }
::placeholder{ color:#7E8B7E; opacity:1; }
select:focus,input:focus,textarea:focus{
  border-color:rgba(95,203,42,.55) !important;
  box-shadow:0 0 0 3px rgba(95,203,42,.15) !important;
}
label{ color:var(--lg-ink-3); }
button.ghost,.btn.ghost{
  background:rgba(255,255,255,.06) !important;
  color:var(--lg-ink) !important;
  border-color:var(--bw-line) !important;
}

/* --- 21.6 · Pistas, barras y velocímetros ------------------------------------ */
.progress,.bar-track,.track{
  background:rgba(255,255,255,.14) !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.5);
}
.barwrap .bar{ background:rgba(255,255,255,.06) !important; }
.bar-row{ background:rgba(255,255,255,.06); }
.barwrap .bar > div:first-child,.bar-row > *:first-child{ color:var(--lg-ink-2); }
.barwrap .bar > div:last-child,.bar-row > *:last-child{ color:#FFE9A6; }
/* Velocímetros de juicios: pista y máscara en tono panel. */
.gauge::before{
  background:conic-gradient(from 270deg at 50% 100%,
    var(--gcolor) var(--deg,calc(var(--pct)*1.8deg)), #2C3A52 0 180deg, transparent 0) !important;
}
.gauge::after{ background:#132036 !important; }

/* --- 21.7 · Los SVG de los tableros hablan en claro -------------------------- */
/* Regla suave para textos con fill de atributo… */
.panel svg text,.card svg text{ fill:#E2EAF5; }
/* …y anulaciones precisas de las clases del PE-04 (los colores semánticos
   de alerta —rojo, ámbar— viven en atributos y no se tocan). */
.gMeta,.axis{ fill:#B7C6DB !important; }
.gCur,.val,.ml tspan:last-child{ fill:#FFE9A6 !important; }
.ml{ fill:#9BD86F !important; stroke:#070D18 !important; }
.bv{ stroke:#070D18 !important; }
/* Iconos monocromos (trazo currentColor): tinta clara. */
.panel svg,.card svg,.kpi svg,.statCard svg{ color:#D5E1EF; }
.gaugeSvg svg{ filter:drop-shadow(0 4px 10px rgba(0,0,0,.5)); }
.label{ color:var(--lg-ink-3) !important; }
.value{ color:#FFEFB0 !important; }

/* --- 21.8 · Piezas inyectadas: navegación, sello, avisos --------------------- */
#betowaNav{ background:rgba(13,20,34,.82) !important; border-color:var(--bw-line) !important; }
#betowaNav a{ color:var(--lg-ink-2) !important; }
#betowaVersion,#betowaDataInfo{
  background:rgba(13,20,34,.88) !important;
  color:var(--lg-ink-3) !important;
  border-color:var(--bw-line) !important;
}
#betowaSinDatos{ background:rgba(15,25,42,.9) !important; color:var(--lg-ink-2) !important; }
.bwPanel{ background:#141B16 !important; color:var(--lg-ink) !important; border-color:var(--bw-line) !important; }
.bwPanel *{ color:inherit; }

/* --- 21.9 · Mapa: atenuado para convivir con el negro ------------------------ */
.leaflet-container{ background:#141B16 !important; filter:brightness(.82) saturate(.88); }
.leaflet-popup-content-wrapper,.leaflet-popup-tip{
  background:#141B16 !important; color:var(--lg-ink) !important;
}

/* --- 21.10 · Barras de desplazamiento ---------------------------------------- */
::-webkit-scrollbar-track{ background:rgba(255,255,255,.05); }
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(222,233,246,.28),rgba(222,233,246,.18));
  background-clip:padding-box;
}

/* --- 21.12 · Afinado por tablero (fugas de claro detectadas) ------------------ */
/* Juicios: franja de ayuda, interruptor de activos y botón de limpiar. */
.ficha-ayuda{
  background:rgba(0,145,160,.14) !important;
  color:#8FE0E9 !important;
  border-color:rgba(0,145,160,.35) !important;
}
.warn{ color:#E8C067 !important; }
.clear-btn{
  background:rgba(255,255,255,.08) !important;
  color:var(--lg-ink) !important;
  border:1px solid var(--bw-line) !important;
}
.avSwitch{ background:rgba(255,255,255,.10) !important; color:var(--lg-ink-2) !important; }
/* Botones de acción del encabezado (Limpiar · Exportar · CSV): fantasma claro. */
header button,header .btn{
  background:rgba(255,255,255,.12) !important;
  color:#F2F7FF !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:none !important;
}
/* Combo buscador de fichas (inyectado por juicios-avance.js). */
.bwField{ background:#16233A !important; border-color:var(--bw-line) !important; }
.bwInput{ background:transparent !important; color:var(--lg-ink) !important; }
/* Tinta numérica de tablas (viáticos, inventario, horas). */
td.num,td .num,.tNum{ color:#FFE49C !important; }
.tMut{ color:#C4D2E4 !important; }
td.cdp,td .cdp{ color:#CFE3F7 !important; }
/* PE-04: etiquetas y valores de tarjetas mini y velocímetros. */
.miniCard .label,.gaugeCard .label{ color:var(--lg-ink-3) !important; }
.miniCard .value,.gaugeCard .value,.gPct{ color:#FFEFB0 !important; }
/* Horas: módulo de verificación y bloques de competencias. */
.verif-nota,.check-list,.comp-bloque,#verifBox,#lecturaBox{
  background:rgba(255,255,255,.05) !important;
  color:var(--lg-ink-2) !important;
  border-color:var(--bw-line) !important;
}
.vv,.comp-tit,.comp-tag{ color:var(--lg-ink) !important; }
.vq{ background:rgba(255,255,255,.10) !important; color:var(--lg-ink) !important; }
/* Ambientes: el diagrama de Gantt pasa a oscuro. */
.ganttWrap{ background:#0D1626 !important; border-color:var(--bw-line) !important; }
.gWeekCell,.gDayCell{
  background:#121D30 !important;
  border-color:rgba(222,233,246,.10) !important;
  color:var(--lg-ink-3) !important;
}
.pill-cat{ color:var(--lg-ink-2) !important; }
/* Portada: insignias del héroe legibles sobre azul marino. */
.heroCard .badge{
  background:rgba(255,255,255,.12) !important;
  color:#EAF2FF !important;
  border-color:rgba(255,255,255,.25) !important;
}

/* --- 21.11 · Al imprimir, papel claro ----------------------------------------- */
@media print{
  :root:root{
    --lg-ink:#0B1B33; --lg-ink-2:#26364F; --lg-ink-3:#4A5B75;
    --ink:#14233B; --mut:#516079; --borde:#CBD5E1;
    --panel:#fff; --fondo:#fff; --sombra:none;
    --bw-ink:#14233B; --bw-mut:#516079;
    --bw-azul-prof:#0E2951; --bw-azul-txt:#0A1D3B; --bw-azul:#163C74;
    --bw-teal:#0091A0; --bw-teal-osc:#076E79;
    --lg-glass:#fff; --lg-glass-solid:#fff;
  }
  html,body{ background:#fff !important; color:#0B1B33 !important; }
  .gMeta,.axis{ fill:#516079 !important; }
  .gCur,.val,.ml tspan:last-child{ fill:#14233B !important; }
  .ml,.bv{ stroke:#fff !important; }
  .label{ color:#4A5B75 !important; }
  .value{ color:#0B2447 !important; }
  .panel,.card,.kpi,.gauge-card,.gaugeCard,.miniCard,.statCard,
  .table-wrap,.tablaWrap,.tw,.meta-card,.info-box,.item,
  .barwrap .bar,.bar-row{
    background:#fff !important; color:#0B1B33 !important;
    border-color:#CBD5E1 !important;
  }
  .statCard .n,.kpi .value,.kpi .v,.card .value,.gauge-value{
    background-image:none !important;
    -webkit-text-fill-color:currentColor !important;
    color:#0B2447 !important;
  }
  .panel p,.card p,.desc,.sub,.muted,.meta,.card .label,.gauge-card .label,
  .statCard .l,.kpi .l,.gauge-label-mini,.meta-card .k{ color:#4A5B75 !important; }
  tbody td{ color:#26364F !important; }
  tbody tr:nth-child(even) td{ background:#F1F5F9 !important; }
  .panel svg text,.card svg text{ fill:#0B1B33; }
  select,input,textarea{ background:#fff !important; color:#0B1B33 !important; }
  .gauge::after{ background:#fff !important; }
}


/* ============================================================================
   22 · UNIFORMIDAD CON EL PROGRAMADOR  (V12)
   ----------------------------------------------------------------------------
   La misma anatomía de tarjeta en toda la suite, tomada del Programador
   Académico: etiqueta pequeña en mayúsculas y tono apagado, cifra grande en
   tinta casi blanca con números tabulares, texto de apoyo discreto, borde de
   1 px y radios contenidos. El vidrio y la marca oscura se conservan.
   ========================================================================== */

/* --- 22.1 · Jerarquía tipográfica de tarjeta --------------------------------- */
.card .label,.gauge-card .label,.miniCard .label,.gaugeCard .label,
.statCard .l,.kpi .l,.kpi .k,.meta-card .k,.slot-label{
  font-size:10.5px !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
  font-weight:650 !important;
  color:var(--lg-ink-3) !important;
  line-height:1.35;
}
.card .value,.kpi .value,.kpi .v,.statCard .n,.gauge-value,
.miniCard .value,.meta-card .v{
  font-weight:800 !important;
  letter-spacing:-.012em;
  font-variant-numeric:tabular-nums;
}
.card .sub,.gauge-card .sub,.gauge-label-mini,.statCard .s{
  font-size:11.5px; line-height:1.45;
}

/* --- 22.2 · Borde fino y radios uniformes ------------------------------------ */
.panel,.card,.kpi,.gauge-card,.gaugeCard,.miniCard,.statCard,
.table-wrap,.tablaWrap,.tw,.meta-card{
  border-width:1px !important;
  border-style:solid !important;
}
.kpi,.statCard,.miniCard,.meta-card{ border-radius:var(--lg-r-md) !important; }
.card,.gauge-card,.gaugeCard{ border-radius:var(--lg-r-lg) !important; }
.panel,.table-wrap,.tablaWrap{ border-radius:var(--lg-r-xl) !important; }

/* --- 22.3 · Bandas de título: blanco pleno y aire ----------------------------- */
.panel > h3,.panel > .head,.panel > .title,
.card > h3,.card > .title,.card-title,
.p04band,.gpanel > h3,.dash > .panel-head{
  color:#FFFFFF !important;
  letter-spacing:.08em;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}

/* --- 22.4 · Enlaces y foco dentro de paneles ---------------------------------- */
.panel a,.card a{ color:#8FD9E4; text-decoration-color:rgba(143,217,228,.5); }
.panel a:hover,.card a:hover{ color:#B5EAF2; }
select:focus-visible,input:focus-visible,button:focus-visible,a:focus-visible{
  outline:2px solid #6FD64B !important; outline-offset:2px;
}

/* --- 22.5 · Campos un punto más claros que el panel --------------------------- */
select,input[type="text"],input[type="search"],input[type="date"],
input[type="number"],textarea{
  background:#182741 !important;
}


/* --- 22.7 · Remates de contraste por tablero ---------------------------------- */
/* Horas: verificación, mini-porcentajes y botonera fuera del encabezado. */
.vl{ color:var(--lg-ink) !important; }
.vs,.comp-sub{ color:var(--lg-ink-3) !important; }
.mini-pct{
  color:#D5E1EF !important;
  background:rgba(255,255,255,.12) !important;
}
.toolbar button,.toolbar .btn,.toolbar .light,.toolbar .green,.toolbar .teal{
  background:rgba(255,255,255,.12) !important;
  color:#F2F6F1 !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:none !important;
}
/* Viáticos: áreas por CDP y etiquetas de CDP. */
.cdp-area .area{ color:#7FDCE7 !important; }
.cdp-tag{ color:#9BE7F0 !important; background:rgba(0,145,160,.18) !important; }
/* Juicios: chips de resumen, aviso vacío, caret del combo y fecha del sello. */
.chip{ color:var(--lg-ink) !important; }
.avVacio,.empty,.bwVacio{ color:var(--lg-ink-3) !important; }
.bwCaret{ color:#A9B6A7 !important; }
.bdi-date{ color:#7FDCE7 !important; }
/* Tinta corriente de párrafos y celdas: nunca por debajo del cuerpo. */
tbody td{ color:var(--lg-ink-2) !important; }

/* --- 22.8 · Impresión de los remates ------------------------------------------ */
@media print{
  .vl{ color:#14233B !important; }
  .vs,.comp-sub,.avVacio,.empty{ color:#516079 !important; }
  .mini-pct{ color:#516079 !important; background:rgba(22,60,116,.1) !important; }
  .cdp-area .area,.cdp-tag,.bdi-date{ color:#076E79 !important; }
  .chip{ color:#14233B !important; }
  tbody td{ color:#26364F !important; }
}


/* --- 22.9 · Remates finales de la auditoría ----------------------------------- */
/* Etiquetas de filtro en cualquier tablero: siempre en tinta apagada clara. */
label{ color:var(--lg-ink-3) !important; }
/* Notas y avisos con negrita de acento y advertencias en ámbar legible. */
.note b,.notice b{ color:#CFE3F7 !important; }
.notice{ color:var(--lg-ink-2) !important; }
.notice span{ color:#F2B08A !important; }
/* Botoneras fuera del encabezado (viáticos usa .tools). */
.tools button,.tools .btn{
  background:rgba(255,255,255,.12) !important;
  color:#F2F6F1 !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:none !important;
}
/* Horas: la tabla de verificación pintaba celdas claras por columna. */
#verif-tab td,.verif-tab td{
  background:rgba(255,255,255,.05) !important;
  color:var(--lg-ink-2) !important;
}
/* Tarjetas de apoyo con color pleno: velo sutil y título con sombra. */
.mini{ box-shadow:inset 0 0 0 999px rgba(0,0,0,.16); }
.mini h4{ color:#FFFFFF !important; text-shadow:0 1px 2px rgba(0,0,0,.5); }
/* Encabezados internos de tarjeta de medidor. */
.gauge-card h4,.gaugeCard h4,.card h4{ color:var(--lg-ink) !important; }
.mini h4{ color:#FFFFFF !important; }
/* Viáticos: filas informativas de los velocímetros y sello de datos. */
.gaugeInfo{ color:var(--lg-ink-3) !important; }
.gaugeInfo b,.bdi-item b{ color:var(--lg-ink) !important; }
/* Juicios: botonera del panel de avance. */
.avOpts button{
  background:rgba(255,255,255,.12) !important;
  color:#F2F6F1 !important;
  border:1px solid rgba(255,255,255,.24) !important;
}
/* Navegación inferior: enlaces en tinta plena. */
#betowaNav a{ color:var(--lg-ink) !important; }

@media print{
  label{ color:#4A5B75 !important; }
  .note b,.notice b{ color:#0E2951 !important; }
  .notice{ color:#26364F !important; }
  .notice span{ color:#9A3412 !important; }
  #verif-tab td,.verif-tab td{ background:#F2F6FC !important; color:#26364F !important; }
  .mini{ box-shadow:none; }
  .gauge-card h4,.gaugeCard h4{ color:#0A1D3B !important; }
}

/* --- 22.6 · Al imprimir, la jerarquía vuelve a tinta oscura -------------------- */
@media print{
  .card .label,.gauge-card .label,.miniCard .label,.gaugeCard .label,
  .statCard .l,.kpi .l,.kpi .k,.meta-card .k,.slot-label{ color:#4A5B75 !important; }
  .panel a,.card a{ color:#0E5F8C; }
}

/* --- 22.10 · Impresión de las cifras (V13: sin amarillos sobre papel) --------- */
@media print{
  td.num,td .num,.tNum{ color:#14233B !important; }
  .miniCard .value,.gaugeCard .value,.gPct,.value{ color:#0B2447 !important; }
  .gCur,.val,.ml tspan:last-child{ fill:#14233B !important; }
  .barwrap .bar > div:last-child,.bar-row > *:last-child{ color:#14233B !important; }
}

/* Coherencia: también en la tabla de verificación los números van en ámbar. */
#verif-tab td.num,.verif-tab td.num{ color:#FFE49C !important; }
@media print{ #verif-tab td.num,.verif-tab td.num{ color:#14233B !important; } }

/* --- 22.11 · Fuera el vidrio blanco heredado (V14) ----------------------------- */
/* La caja del aviso «sin datos» y los chips de resumen traían un degradado
   blanco al 80 % de la era clara: sobre el azul noche se veían como franjas
   grises. Pasan a vidrio azul marino con borde fino. */
.bsBox,.chip{
  background-image:none !important;
  background-color:rgba(16,27,46,.94) !important;
  border:1px solid rgba(226,236,248,.20) !important;
}
@media print{
  .bsBox,.chip{
    background-color:#fff !important;
    border-color:#CBD5E1 !important;
  }
}

/* ============================================================================
   23 · AZUL NOCHE COMPLETO Y LISTAS LEGIBLES  (V15)
   ----------------------------------------------------------------------------
   La V14 descubrió que el vidrio blanco de la era clara seguía vivo en .bsBox
   y .chip. Esta sección cierra el caso de raíz: las DOS reglas maestras de la
   sección 2 (vidrio blanco al 80 % y al 72 % con !important) se re-declaran
   aquí en azul noche con los MISMOS selectores, de modo que ninguna superficie
   heredada vuelva a verse gris. Además: listas desplegables legibles y
   escribibles, sello de versión fuera, y afinado del tablero de ambientes.
   ========================================================================== */

/* --- 23.0 · El sello de versión no se muestra más --------------------------- */
#betowaVersion{ display:none !important; }
/* El sello de versión del archivo publicado (ambientes) tampoco. */
.leyenda .verSello{ display:none !important; }

/* --- 23.0c · Cifras .num de tarjetas KPI: mismo ámbar que .value (V19) --------- */
.kpi .num{ color:#FFEFB0 !important; }
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .kpi .num{
    background-image:linear-gradient(180deg,#FFFFFF 0%,#FFF3C6 48%,#FFD873 135%) !important;
    -webkit-background-clip:text !important; background-clip:text !important;
    -webkit-text-fill-color:transparent !important;
  }
}
@media print{
  .kpi .num{
    color:#0E2951 !important; background-image:none !important;
    -webkit-text-fill-color:#0E2951 !important;
  }
}

/* --- 23.0b · Portada: títulos de tarjeta en tinta clara (V18) ----------------- */
/* Los h2 de las tarjetas venían en azul profundo de la era clara: sobre el
   vidrio azul noche eran casi invisibles. */
.card h2,.cTop h2{ color:var(--lg-ink) !important; }
@media print{ .card h2,.cTop h2{ color:#0E2951 !important; } }

/* --- 23.1 · Las superficies maestras pasan a azul noche ---------------------- */
/* Misma lista que la regla grande de la sección 2. */
.panel,.card,.kpi,.statCard,.gauge-card,.gaugeCard,
.table-wrap,.tablaWrap,.chart,.cdp-area,.modal,.filtros,.cargaPanel{
  background:
     linear-gradient(180deg,rgba(18,30,50,.94),rgba(13,22,38,.88)),
     var(--lg-tint) !important;
  border:1px solid var(--lg-hair) !important;
}
/* Misma lista que la regla de superficies menores (sin .sw: los recuadros de
   color de las leyendas conservan su propio color). */
.miniCard,.meta-card,.item,.info-box,.notice,.vchip,.it,.mini{
  background:linear-gradient(180deg,rgba(22,35,58,.90),rgba(16,27,46,.80)) !important;
  border:1px solid var(--lg-hair-soft) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 3px 10px rgba(0,0,0,.30) !important;
  color:var(--lg-ink-2);
}

/* --- 23.2 · Tablas sin lámina clara ------------------------------------------ */
/* PE-04 pintaba la tabla entera con blanco al 82 % y la cebra de la sección 6
   añadía blanco al 34 %: sobre azul noche eran franjas grises con letra clara
   ilegible. La tabla queda transparente (el marco ya es oscuro) y la cebra se
   vuelve un velo sutil. */
table,tbody,tfoot{ background:transparent !important; }
tbody tr:nth-child(even) td{ background:rgba(255,255,255,.045) !important; }
tbody tr:hover td{ background:rgba(127,220,231,.08) !important; }

/* --- 23.3 · Botones de página en fantasma oscuro ----------------------------- */
button:not([class]),.clear-btn,.toolbar button,.tools button{
  background:rgba(255,255,255,.10) !important;
  color:#F2F7FD !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:none !important;
}
button:not([class]):hover,.clear-btn:hover,.toolbar button:hover,.tools button:hover{
  background:rgba(255,255,255,.17) !important;
  color:#FFFFFF !important;
}
.clear-btn.danger{
  background:rgba(190,18,60,.16) !important;
  color:#FF9DB0 !important;
  border-color:rgba(190,18,60,.42) !important;
}
.clear-btn.danger:hover{ background:rgba(190,18,60,.26) !important; }

/* --- 23.4 · Chips, insignias y píldoras en oscuro ----------------------------- */
.badge,.pill,.vchip,.sello{
  background-image:none !important;
  background-color:rgba(20,33,55,.92) !important;
  border:1px solid rgba(226,236,248,.22) !important;
  color:var(--lg-ink-2) !important;
}
.chip b,.badge b,.pill b,.vchip b{ color:var(--lg-ink) !important; }
/* Semánticas: mismo matiz, versión nocturna (fondo tenue + tinta clara). */
.pill.aprobado,.p-ok{ background:rgba(34,197,94,.16) !important; color:#8FE388 !important; border-color:rgba(34,197,94,.38) !important; }
.pill.pendiente  { background:rgba(255,216,115,.14) !important; color:#FFD873 !important; border-color:rgba(255,216,115,.36) !important; }
.pill.cancelado,.p-bad{ background:rgba(255,140,163,.14) !important; color:#FF9DB0 !important; border-color:rgba(255,140,163,.36) !important; }
.pill.estado     { background:rgba(127,178,255,.14) !important; color:#A9CCF0 !important; border-color:rgba(127,178,255,.34) !important; }
.dash > .panel-head .badge-count{
  background:rgba(20,33,55,.92) !important;
  color:var(--lg-ink) !important;
  border:1px solid rgba(226,236,248,.22) !important;
}

/* --- 23.5 · Navegación inferior: enlaces fantasma oscuro ---------------------- */
#betowaNav a{
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(226,236,248,.16) !important;
}
#betowaNav a:hover{ background:rgba(255,255,255,.16) !important; color:#FFFFFF !important; }

/* --- 23.6 · La lista desplegable de fichas, por fin legible -------------------- */
/* El buscador de juicios (juicios-avance.js) abría un panel que la V11 volvió
   oscuro… con las letras todavía azul marino de la era clara. Números en
   ámbar, programa en tinta clara y resaltado dorado. */
.bwPanel{
  background:rgba(14,24,42,.97) !important;
  border:1px solid rgba(226,236,248,.20) !important;
  box-shadow:0 20px 50px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.35) !important;
}
.bwOpt .bwT{ color:#FFE9A6 !important; }
.bwOpt .bwS{ color:#C4D2E4 !important; }
.bwOpt:hover,.bwOpt.activa{ background:rgba(127,220,231,.13) !important; }
.bwOpt.sel{ background:linear-gradient(135deg,rgba(127,220,231,.16),rgba(255,216,115,.10)) !important; }
.bwOpt mark{ background:rgba(255,216,115,.32) !important; color:#FFEFB0 !important; }
.bwVacio,.bwCount{ color:#B7C6DB !important; }
.bwCount{ border-top:1px dashed rgba(226,236,248,.18) !important; }
.bwCombo .bwCaret,.bwCombo .bwClear{ color:#B7C6DB !important; }
.bwCombo .bwCaret:hover{ color:#7FDCE7 !important; }
.bwCombo input.bwInput{ color:var(--lg-ink) !important; }
.bwCombo input.bwInput::placeholder{ color:#8FA3C0 !important; }

/* --- 23.7 · Listas desplegables que se escriben (betowa-glass.js) -------------- */
/* Los desplegables largos se convierten en campo escribible con sugerencias.
   color-scheme:dark hace que el menú nativo del navegador salga oscuro con
   letra clara (adiós al azul oscuro ilegible del menú del sistema). */
select,input,textarea{ color-scheme:dark; }
input.bwEscribible{
  width:100%;
  background:#16233A !important;
  color:var(--lg-ink) !important;
  border:1px solid var(--bw-line,rgba(226,236,248,.18)) !important;
  border-radius:var(--lg-r-md) !important;
  padding:9px 30px 9px 10px !important;
  font-size:13px;
  background-image:
    linear-gradient(45deg,transparent 50%,#B7C6DB 50%),
    linear-gradient(135deg,#B7C6DB 50%,transparent 50%) !important;
  background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55% !important;
  background-size:5px 5px,5px 5px !important;
  background-repeat:no-repeat !important;
}
input.bwEscribible::placeholder{ color:#8FA3C0; }
input.bwEscribible:focus{
  outline:none;
  border-color:rgba(127,220,231,.55) !important;
  box-shadow:0 0 0 3px rgba(127,220,231,.16) !important;
}
/* La regla maestra de controles (sección 4) seguía pintando los campos de
   texto con vidrio blanco: aquí se re-declara la MISMA lista en azul noche. */
select,input[type=text],input[type=search],input[type=number],input[type=date],
input[type=password],input:not([type]),textarea,.control select,.control input{
  background:#16233A !important;
  color:var(--lg-ink) !important;
  border:1px solid rgba(226,236,248,.20) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 1px 2px rgba(0,0,0,.25) !important;
}
select:focus,input:focus,textarea:focus{
  border-color:rgba(127,220,231,.55) !important;
  box-shadow:0 0 0 3px rgba(127,220,231,.16),inset 0 1px 0 rgba(255,255,255,.05) !important;
}
::placeholder{ color:#8FA3C0 !important; opacity:1; }

/* --- 23.8 · Ambientes: el diagrama entero habla azul noche --------------------- */
/* Columna fija de ambientes: era celeste claro (#eef3fb) con tinta azul marino. */
.gRow .gLabel{ background:#121F33 !important; }
.gRow:hover .gLabel{ background:linear-gradient(90deg,#182741 0%,#16233A 78%,#121F33 100%) !important; }
.gRow.esLote .gLabel{ background:linear-gradient(90deg,rgba(34,197,94,.14),#121F33 78%) !important; }
.gRow.esLote:hover .gLabel{ background:linear-gradient(90deg,rgba(34,197,94,.22),#16233A 78%) !important; }
.gLabel .amb{ color:#F5F9FE !important; }
.gLabel .jor{ color:#7FDCE7 !important; }
.gLabel .catMini{ color:#B7C6DB !important; }
/* El nombre de la categoría conserva el color de su programa, aclarado para
   leerse sobre oscuro (color-mix); si el navegador no lo soporta, tinta clara. */
.gLabel .catNom{ color:#C4D2E4 !important; }
@supports (color: color-mix(in srgb, red 50%, white)){
  .gLabel .catNom{ color:color-mix(in srgb, var(--cc,#C4D2E4) 42%, #F5F9FE) !important; }
}
.gLabel .areaLote{ color:#8FE388 !important; }
/* Días del calendario del Gantt: la base era azul marino y los especiales
   venían en tintas oscuras; suben todos de luz conservando su matiz. */
.gDayCell .dLetra,.gDayCell .dNum{ color:#B7C6DB !important; }
.gDayCell.dom .dLetra,.gDayCell.dom .dNum{ color:#FF8CA3 !important; }
.gDayCell.sab .dLetra,.gDayCell.sab .dNum{ color:#7FDCE7 !important; }
.gDayCell.santa .dLetra,.gDayCell.santa .dNum{ color:#FF9DB0 !important; }
.gDayCell.confraternidad .dLetra,.gDayCell.confraternidad .dNum{ color:#8FE388 !important; }
.gDayCell.alistamiento .dLetra,.gDayCell.alistamiento .dNum{ color:#FFD873 !important; }
/* Ayuda del Gantt, título de la leyenda y detalles que quedaron en azul marino. */
.gantt-ayuda{ color:#C4D2E4 !important; }
.gantt-ayuda b{ color:#F5F9FE !important; }
.leyenda{ color:#B7C6DB !important; }
.leyenda .it.leyTit,.leyTit{ color:#E2EAF6 !important; }
td .mini-area,.mini-area{ color:#9FB3CC !important; }
td span.pill-eq,.pill-eq{ color:#7FDCE7 !important; }
#btnLimpiarBusca{ color:#B7C6DB !important; }
.buscador input{
  background:#16233A !important;
  background-image:none !important;
  color:var(--lg-ink) !important;
  border:1px solid rgba(226,236,248,.20) !important;
}
.buscador input::placeholder{ color:#8FA3C0 !important; }
/* Números destacados en negrilla dentro de tablas y tarjetas de detalle. */
td b{ color:#FFE49C !important; }
#kAmbDet b,#kOcupDet b,#kPractDet b,#kFichasDet b,#kCuposDet b{ color:#FFE9A6 !important; }
.hint-respaldo,.hint-amb{ color:#B7C6DB !important; }
/* V18 · Rejilla de días del Gantt: una línea vertical sutil cada día (42 px,
   el ancho de columna del diagrama) para poder seguir la fecha de cada
   bloque con la vista. Va por encima de los fondos de periodo y por debajo
   de las cintas de programación. */
.gTrack::after{
  content:"";
  position:absolute; inset:0;
  pointer-events:none;
  z-index:1;
  background:repeating-linear-gradient(90deg,
    rgba(226,236,248,.11) 0, rgba(226,236,248,.11) 1px,
    transparent 1px, transparent 42px);
}
.gBar{ z-index:2; }
/* Nombres de ambiente: la página los fija en azul profundo con !important
   y más especificidad; aquí se responde con la misma artillería. */
#tablaAmb td:first-child b,#consResultado .ambTit,#edrPanel td:first-child b{
  color:#F5F9FE !important;
}
/* Cajas de consulta rápida y EDR: sus rótulos van con estilo en línea
   (var(--mut) / var(--azul-prof)); dentro de estas cajas los tokens se
   resuelven en claro, y el recuadro blanco en línea pasa a azul noche. */
#edrPanel,#consResultado,#consRes{
  --azul-prof:#CFE3F7;
  --mut:#B7C6DB;
  --teal-osc:#7FDCE7;
}
#edrPanel [style*="background:rgba(255,255,255"],
#consResultado [style*="background:rgba(255,255,255"]{
  background:rgba(20,33,55,.90) !important;
  border-color:rgba(226,236,248,.18) !important;
}
/* Semáforo de ocupación EDR: los tonos oscuros suben de luz. */
#edrPanel [style*="#15803D"]{ color:#4ADE80 !important; }
#edrPanel [style*="#7f1d1d"]{ color:#F87171 !important; }

/* --- 23.9 · Módulo de avance de juicios: tarjetas en oscuro -------------------- */
.avKpi{
  background:linear-gradient(180deg,rgba(22,35,58,.90),rgba(16,27,46,.80)) !important;
  border:1px solid var(--lg-hair-soft) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 3px 10px rgba(0,0,0,.30) !important;
}
.avKpi .k{ color:#B7C6DB !important; }
.avKpi .v{ color:#FFEFB0 !important; }
.avMeta .avTag{
  background:rgba(20,33,55,.92) !important;
  border:1px solid rgba(226,236,248,.20) !important;
  color:#C4D2E4 !important;
}
.avMeta .avTag b{ color:var(--lg-ink) !important; }
/* Indicador de datos publicados: cabecera y fechas en tinta clara. */
#betowaDataInfo .bdi-head{ color:var(--lg-ink) !important; }
#betowaDataInfo .bdi-item{ border-top-color:rgba(226,236,248,.16) !important; }
#betowaDataInfo .bdi-date{ color:#7FDCE7 !important; }

/* --- 23.9b · Velocímetros SVG del PE-04 ---------------------------------------- */
/* La pista venía en gris claro (#e5e7eb) y un arco de avance en azul marino
   (#0E2951): sobre azul noche, la pista parecía una franja blanca y el avance
   desaparecía. Pista en azul pizarra y avance en azul luminoso. */
.gaugeSvg path[stroke="#e5e7eb"]{ stroke:#2C3A52 !important; }
.gaugeSvg path[stroke="#0E2951"]{ stroke:#7FB2FF !important; }
@media print{
  .gaugeSvg path[stroke="#e5e7eb"]{ stroke:#e5e7eb !important; }
  .gaugeSvg path[stroke="#0E2951"]{ stroke:#0E2951 !important; }
}

/* --- 23.10 · El mapa y sus controles ------------------------------------------ */
.leaflet-bar a,.leaflet-control-zoom a{
  background:#121F33 !important;
  color:#E2EAF6 !important;
  border-color:rgba(226,236,248,.20) !important;
}
.leaflet-control-attribution{
  background:rgba(13,20,34,.75) !important;
  color:#8FA3C0 !important;
}
.leaflet-control-attribution a{ color:#7FDCE7 !important; }

/* --- 23.11 · El panel de administración habla el mismo idioma ------------------ */
/* Sus tarjetas seguían en vidrio claro con la tinta ya volteada a clara:
   texto invisible. Tarjetas a azul noche y rótulos en tinta clara. */
.glass,.login-box{
  background:rgba(16,27,46,.92) !important;
  border:1px solid rgba(226,236,248,.18) !important;
}
.login-box h2{ color:#F5F9FE !important; }
.login-box p{ color:#B7C6DB !important; }
.slot{
  background:rgba(22,35,58,.85) !important;
  border-color:rgba(226,236,248,.16) !important;
}
.slot-label{ color:#CFE3F7 !important; }
.slot-note{ color:#B7C6DB !important; }
.file-row{ background:rgba(255,255,255,.06) !important; color:var(--lg-ink-2) !important; }
.msg.err{ background:rgba(225,29,72,.14) !important; color:#FF9DB0 !important; }
.msg.ok{ background:rgba(0,166,106,.14) !important; color:#8FE388 !important; }
.alert-default{ background:rgba(242,184,75,.12) !important; color:#FFD873 !important; }

/* --- 23.12 · Al imprimir, todo vuelve a papel claro ---------------------------- */
@media print{
  .panel,.card,.kpi,.statCard,.gauge-card,.gaugeCard,
  .table-wrap,.tablaWrap,.chart,.cdp-area,.modal,.filtros,.cargaPanel,
  .miniCard,.meta-card,.item,.info-box,.notice,.vchip,.it,.mini,
  .badge,.pill,.vchip,.sello,.avKpi,.avMeta .avTag,.dash > .panel-head .badge-count{
    background:#fff !important;
    border-color:#CBD5E1 !important;
    box-shadow:none !important;
    color:#26364F !important;
  }
  table,tbody,tfoot{ background:#fff !important; }
  tbody tr:nth-child(even) td{ background:#F2F6FC !important; }
  tbody tr:hover td{ background:#F2F6FC !important; }
  button:not([class]),.clear-btn,.toolbar button,.tools button{
    background:#fff !important; color:#26364F !important; border-color:#CBD5E1 !important;
  }
  select,input,textarea{ color-scheme:light; }
  select,input[type=text],input[type=search],input[type=number],input[type=date],
  input:not([type]),textarea,.control select,.control input,input.bwEscribible{
    background:#fff !important; color:#26364F !important; border-color:#CBD5E1 !important;
    background-image:none !important; box-shadow:none !important;
  }
  .gTrack::after{ content:none !important; }
  .gRow .gLabel,.gRow:hover .gLabel{ background:#eef3fb !important; }
  .gRow.esLote .gLabel,.gRow.esLote:hover .gLabel{ background:#E4F6EA !important; }
  .gLabel .amb{ color:#0E2951 !important; }
  #tablaAmb td:first-child b,#consResultado .ambTit,#edrPanel td:first-child b{ color:#0E2951 !important; }
  #edrPanel,#consResultado,#consRes{ --azul-prof:#0E2951; --mut:#516079; --teal-osc:#076E79; }
  .gLabel .jor{ color:#076E79 !important; }
  .gLabel .catNom{ color:var(--cc,#516079) !important; }
  .gDayCell .dLetra,.gDayCell .dNum{ color:#163C74 !important; }
  .gantt-ayuda,.gantt-ayuda b,.leyenda,.leyTit{ color:#26364F !important; }
  td b{ color:#14233B !important; }
  .avKpi .v{ color:#0E2951 !important; }
  .avKpi .k{ color:#4A5B75 !important; }
  .bwPanel{ background:#fff !important; }
  .bwOpt .bwT{ color:#0B1B33 !important; }
  .bwOpt .bwS{ color:#4A5B75 !important; }
  .pill.aprobado,.p-ok{ background:rgba(214,245,229,.92) !important; color:#065F46 !important; }
  .pill.pendiente{ background:rgba(255,241,214,.92) !important; color:#8A5300 !important; }
  .pill.cancelado,.p-bad{ background:rgba(255,232,236,.92) !important; color:#9F1239 !important; }
  .pill.estado{ background:rgba(224,236,255,.92) !important; color:#1E40AF !important; }
}


/* --- 23.13 · V39: rótulos de las filas del panel (sincronización y listas) ------
   El vidrio oscurece .file-row (23.11) pero el <b> del rótulo seguía en
   --azul-prof y desaparecía sobre el fondo nocturno. Misma artillería, al final. */
body .file-row b{ color:#E2EAF6 !important; }
body .file-row .meta{ color:#A9B8CE !important; }
@media print{
  .file-row b{ color:#0E2951 !important; }
  .file-row .meta{ color:#5A6B85 !important; }
}


/* ===========================================================================
   24-N · Piezas nocturnas de la capa de dinamismo (V43–V48)
   =========================================================================== */
#bwCarga .bx{ background:rgba(16,27,46,.94) !important; border-color:rgba(226,236,248,.16) !important; color:#B7C6DB; }
#bwCarga h4{ color:#F5F9FE !important; }
#bwCarga p{ color:#B7C6DB !important; }
#bwCarga .bar{ background:rgba(226,236,248,.14) !important; }
@media (hover:hover) and (prefers-reduced-motion: no-preference){
  .card:hover,.kpi:hover,.gaugeCard:hover,.gauge-card:hover,.miniCard:hover,.mini:hover,.statCard:hover,.meta-card:hover,.kbCard:hover{
    box-shadow:0 16px 34px -16px rgba(0,0,0,.7), inset 0 0 0 1px rgba(127,178,255,.20); }
  tbody tr:hover td{ background:rgba(127,178,255,.07); }
}
button:hover, .btn:hover, .upload-btn:hover, .clear-btn:hover{ filter:brightness(1.12); }
select:focus-visible, input:focus-visible, .bwEscribible:focus{
  outline-color:rgba(127,178,255,.55) !important; box-shadow:0 0 0 4px rgba(127,178,255,.13); }
body .verif-nota b{ color:#FFE9A6 !important; }
/* valores al final de las filas de barras (antes vivían en ámbar dentro de la sección 20) */
.barwrap .bar > div:last-child, .barscroll .bar > div:last-child, .bar-row > *:last-child{ color:#FFE9A6; }
.gaugeSvg text[fill="#0E2951"]{ fill:#8FB8FF !important; }
.bwTemaFlota{ background:rgba(16,27,46,.92); color:#E2EAF6; border-color:rgba(226,236,248,.22); }
:root{ --bw-canvas-rotulo:#FFE9A6; }
@media print{
  .verif-nota b{ color:#163C74 !important; }
  .gaugeSvg text[fill="#0E2951"]{ fill:#0E2951 !important; }
}
