/* ============================================================
   Xecutor — theme tokens. A DATED COPY of the Adalaya brand standard
   (Control Tower static/theme.css, copied 2026-10-18). Copied, never
   imported: a change over there must not break Xecutor, and a change
   here is a decision. Dark by default; light via data-theme="light"
   on <html>, set by static/theme-init.js before the first paint.
   Green/red/amber are the financial sign convention, not brand.
   ============================================================ */
:root{
  /* controles nativos (calendario de type=date, scrollbars) en modo oscuro */
  color-scheme: dark;
  /* tipografía */
  --font-display: 'Fraunces', Georgia, serif;
  --font-body:    'Manrope', 'Inter', system-ui, -apple-system, sans-serif;
  /* superficies — estándar Adalaya (landing FOS 2026-08-26): tarjeta #04091A
     con borde #14203C sobre navy profundo; el panel ES el navy de marca. */
  --bg:        #04091A;
  --bg-soft:   #0a1229;
  --panel:     #14203C;
  --panel2:    #0a1229;
  --card:      #14203C;
  --line:      #24345c;
  --border:    #24345c;
  /* texto — tintas apagadas del estándar (#8CA1C2 / #5D7295) */
  --text:  #e9eef8;
  --txt:   #e9eef8;
  --muted: #8ca1c2;
  --dim:   #5d7295;
  /* acentos Adalaya: azul -> cian (el degradado de marca es
     135deg #0372F3 -> #00CAEF -> #00BFCD; las tabs ya van accent->accent2) */
  --accent:  #0372f3;
  --accent2: #00caef;
  /* números (convención financiera) */
  --green: #34d399;
  --red:   #fb7185;
  --teal:  #00bfcd;
  --amber: #fbbf24;
  --warn:  #fbbf24;
  --radius: 16px;
  /* Superficies veladas y sombras: existian SOLO como literales
     rgba(255,255,255,.0x) / rgba(0,0,0,.5x) repartidos por las paginas, y en
     tema claro un velo BLANCO sobre fondo blanco desaparece (y una sombra
     negra al 55% tapa la pantalla). Nombradas, el tema las voltea. */
  --veil-1: rgba(255,255,255,.04);   /* zebra de tabla, fondo sutil    */
  --veil-2: rgba(255,255,255,.06);   /* hover de fila, chip            */
  --veil-3: rgba(255,255,255,.12);   /* borde suave sobre superficie   */
  --scrim:  rgba(0,0,0,.55);         /* backdrop de modales            */
  --shadow: 0 16px 44px rgba(0,0,0,.5);
  /* Charts (Chart.js): rejilla y rotulos. Cada dashboard los tenia
     hardcodeados ('#6b7ba4', rgba(255,255,255,.04)) y sobre blanco quedaban
     invisibles — el mismo sintoma que ya mordio al exportar a PDF. */
  --grid:  rgba(255,255,255,.06);
  --tick:  #5d7295;
  /* texto encima del degradado de acento (pill activa, boton primario):
     blanco en los dos temas — el estándar Adalaya pinta blanco sobre su
     degradado y el degradado no se aclara. */
  --on-accent: #ffffff;
  /* tinta sobre barras de color saturado (gantt): la barra no cambia con
     el tema, asi que su texto tampoco. Antes usaban var(--bg), que en
     claro se volvia BLANCO sobre teal — 54 fechas ilegibles. */
  --on-bar: #04091a;
  /* Chips/barras de ESTADO (gantt, semaforos): color fijo en los dos
     temas — llevan tinta oscura encima, asi que no pueden oscurecerse. */
  --st-green: #2dd4bf; --st-amber: #fbbf24; --st-red: #fb7185;
  /* Bandas del arbol del P&L (seccion / categoria / subcategoria / total).
     Vivian clavadas con !important en cada pantalla del estado, asi que el
     tema no las alcanzaba: en claro quedaban azul-oscuro con el texto ya
     oscuro encima (reporte de Gabriel 2026-08-03). */
  --row-section:  #1c2e58;
  --row-category: #142141;
  --row-sub:      #0f1932;
  --row-total:    #263a6c;
  --row-even:     #0d172d;
  --col-total:    #17254a;
  --row-ink:      #ffffff;   /* texto sobre seccion/total */
  --row-sub-ink:  #aabfe2;
}

/* ── TEMA CLARO ────────────────────────────────────────────────────────────
   Se activa con data-theme="light" en <html> (lo pone _nav.html antes de
   pintar, para que no haya destello). La paleta es la MISMA que print.css
   viene usando desde julio para convertir cualquier pantalla en reporte: ya
   estaba probada en papel, solo no se podia ver en pantalla.
   Los colores semanticos (verde/rojo/ambar) se oscurecen: sobre blanco, el
   #34d399 de pantalla no tiene contraste suficiente para leerse. */
:root[data-theme="light"]{
  color-scheme: light;
  --bg:        #ffffff;
  --bg-soft:   #f3f4f6;
  --panel:     #ffffff;
  --panel2:    #f3f4f6;
  --card:      #ffffff;
  --line:      #d1d5db;
  --border:    #d1d5db;
  --text:  #111827;
  --txt:   #111827;
  --muted: #46587a;
  --dim:   #5d7295;
  --accent:  #0356c0;
  --accent2: #0072a3;
  --green: #047857;
  --red:   #be123c;
  --teal:  #00838f;
  --amber: #92400e;
  --warn:  #92400e;
  --veil-1: rgba(17,24,39,.035);
  --veil-2: rgba(17,24,39,.06);
  --veil-3: rgba(17,24,39,.14);
  --scrim:  rgba(17,24,39,.45);
  --shadow: 0 16px 44px rgba(17,24,39,.18);
  --grid:  rgba(17,24,39,.10);
  --tick:  #4a5e80;
  --on-accent: #ffffff;
  --on-bar: #04091a;
  --st-green: #2dd4bf; --st-amber: #fbbf24; --st-red: #fb7185;
  /* En claro las bandas se vuelven azules PALIDAS con tinta oscura: la
     jerarquia se sigue leyendo (seccion mas fuerte que categoria) sin que la
     fila se convierta en un bloque negro. */
  --row-section:  #d5e2f6;
  --row-category: #e5edfa;
  --row-sub:      #f0f5fc;
  --row-total:    #c1d6f2;
  --row-even:     #f6f9fe;
  --col-total:    #eaf1fb;
  --row-ink:      #111827;
  --row-sub-ink:  #2d466f;
}

/* El fondo de la pagina lo pinta cada template en su <body>; aca se fija una
   vez para que el toggle no dependa de que cada pantalla se acuerde. */
body{ background:var(--bg); color:var(--text); }

/* Superficies oscuras POR DISENO (decision de Gabriel 2026-08-03): el scope
   del radar y el mapa de Facilities conservan su fondo oscuro en los dos
   temas — un radar en blanco deja de leerse como un radar, y las teselas de
   CARTO son oscuras. Se comportan como una foto dentro de la pagina, que es
   lo que print.css ya hace con los charts al imprimir. */
[data-keep-dark]{
  color-scheme: dark;
  --bg:#04091a; --bg-soft:#0a1229; --panel:#14203c; --panel2:#0a1229;
  --card:#14203c; --line:#24345c; --border:#24345c;
  --text:#e9eef8; --txt:#e9eef8; --muted:#8ca1c2; --dim:#5d7295;
  --green:#34d399; --red:#fb7185; --amber:#fbbf24; --warn:#fbbf24;
  --accent:#0372f3; --accent2:#00caef; --teal:#00bfcd;
  --veil-1:rgba(255,255,255,.04); --veil-2:rgba(255,255,255,.06);
  --veil-3:rgba(255,255,255,.12); --scrim:rgba(0,0,0,.55);
  --grid:rgba(255,255,255,.06); --tick:#5d7295; --on-accent:#ffffff;
  --row-section:#1c2e58; --row-category:#142141; --row-sub:#0f1932;
  --row-total:#263a6c; --row-even:#0d172d; --col-total:#17254a;
  --row-ink:#ffffff; --row-sub-ink:#aabfe2;
  background:var(--bg); color:var(--text);
}

body{ background:var(--bg); color:var(--text); font-family:var(--font-body); -webkit-font-smoothing:antialiased; }
