/* ============================================================================
   CISO DESIGN SYSTEM · tokens canónicos (TEMA POR DEFECTO "Sovereign Navy")
   Estándar §5.3 · fuente única de identidad visual de TODA la suite.
   Enlázalo DESPUÉS de ciso.css: sobreescribe SOLO color+tipografía (la capa de
   TEMA); los tokens de forma (radios, sombras, tap) los aporta ciso.css.
   Un "tema" = estos valores. Cambiar de marca = cambiar valores, no CSS por app.
   El tema por instancia (derivado del logo) redefine estas mismas variables.
   Claro por defecto; oscuro por prefers-color-scheme y por [data-theme].
   Contraste AA verificado.
   ============================================================================ */

:root{
  /* — Estructura / superficies — */
  --bg:#F4F6FB; --bg-2:#E8EEF7;
  --panel:#FFFFFF; --panel-2:#F4F6FB;
  --line:#E2E8F0; --line-2:#CDD6E3;
  /* — Texto (jerarquía; todas AA sobre --bg/--panel) — */
  --ink:#0F172A; --ink-2:#475569; --ink-3:#64748B;
  /* — Marca estructural (navy soberano) — */
  --navy:#0F2C59; --navy-2:#1B4488; --navy-soft:rgba(15,44,89,.08); --navy-ink:#FFFFFF;
  /* — Firma de acción/interacción (cerise · color propio libre en la categoría) — */
  --accent:#C01362; --accent-2:#A20E52; --accent-ink:#FFFFFF;
  --accent-soft:rgba(192,19,98,.10); --accent-hover:#A20E52;
  --ring:rgba(192,19,98,.40);
  /* — Semánticos (separados del acento; --crit ≠ firma) — */
  --good:#0E9F6E; --warn:#B7791F; --crit:#DC3545;
  --good-soft:rgba(14,159,110,.12); --warn-soft:rgba(183,121,31,.12); --crit-soft:rgba(220,53,69,.12);
  /* — Tipografía — */
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono","JetBrains Mono","Roboto Mono",monospace;
  --font-mono:var(--mono);
}

/* Oscuro por preferencia del SO (se estiliza SIEMPRE por tokens, nunca dentro del media query) */
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0B0F19; --bg-2:#070A12; --panel:#141A26; --panel-2:#1B2230; --line:#28303F; --line-2:#36414F;
    --ink:#F8FAFC; --ink-2:#A6B2C6; --ink-3:#7E8BA1;
    --navy:#0F2C59; --navy-2:#1B4488; --navy-soft:rgba(27,68,136,.18); --navy-ink:#DCE6F5;
    --accent:#E8447E; --accent-2:#C61E63; --accent-ink:#2B0915; --accent-soft:rgba(232,68,126,.15); --accent-hover:#F06A96;
    --ring:rgba(232,68,126,.45);
    --good:#12B886; --warn:#F5A524; --crit:#F26D6D;
    --good-soft:rgba(18,184,134,.14); --warn-soft:rgba(245,165,36,.14); --crit-soft:rgba(242,109,109,.14);
  }
}

/* El toggle del usuario estampa data-theme en :root y DEBE ganar en ambos sentidos */
:root[data-theme="light"]{
  --bg:#F4F6FB; --bg-2:#E8EEF7; --panel:#FFFFFF; --panel-2:#F4F6FB; --line:#E2E8F0; --line-2:#CDD6E3;
  --ink:#0F172A; --ink-2:#475569; --ink-3:#64748B;
  --navy:#0F2C59; --navy-2:#1B4488; --navy-soft:rgba(15,44,89,.08); --navy-ink:#FFFFFF;
  --accent:#C01362; --accent-2:#A20E52; --accent-ink:#FFFFFF; --accent-soft:rgba(192,19,98,.10); --accent-hover:#A20E52;
  --ring:rgba(192,19,98,.40);
  --good:#0E9F6E; --warn:#B7791F; --crit:#DC3545;
  --good-soft:rgba(14,159,110,.12); --warn-soft:rgba(183,121,31,.12); --crit-soft:rgba(220,53,69,.12);
}
:root[data-theme="dark"]{
  --bg:#0B0F19; --bg-2:#070A12; --panel:#141A26; --panel-2:#1B2230; --line:#28303F; --line-2:#36414F;
  --ink:#F8FAFC; --ink-2:#A6B2C6; --ink-3:#7E8BA1;
  --navy:#0F2C59; --navy-2:#1B4488; --navy-soft:rgba(27,68,136,.18); --navy-ink:#DCE6F5;
  --accent:#E8447E; --accent-2:#C61E63; --accent-ink:#2B0915; --accent-soft:rgba(232,68,126,.15); --accent-hover:#F06A96;
  --ring:rgba(232,68,126,.45);
  --good:#12B886; --warn:#F5A524; --crit:#F26D6D;
  --good-soft:rgba(18,184,134,.14); --warn-soft:rgba(245,165,36,.14); --crit-soft:rgba(242,109,109,.14);
}

/* Base compartida mínima (no colisiona con componentes de cada superficie) */
:where(a){color:var(--accent)}
:where(:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important}
}
