/* =====================================================================
   00_TOKENS — FUENTE ÚNICA DE TOKENS DE MARCA
   ETAPA 3 · TANDA 1 (solo CSS, cero cambio funcional).

   Este archivo es la ÚNICA capa que define las custom properties de marca
   del portal. El prefijo "00_" garantiza que carga PRIMERO (orden
   alfabético de Dash), antes que todos los componentes que las consumen.

   Es la UNIÓN COMPLETA de los dos :root que antes estaban duplicados en
   z_theme.css (v1) y zz_design_v2.css (v2). En las variables que existían
   en AMBOS (colisiones), se conserva SIEMPRE el valor de zz_design_v2.css
   (paleta canónica navy + dorado), que es el que ya ganaba en pantalla por
   orden de cascada. Por eso el resultado visual es PIXEL-IDÉNTICO.

   Procedencia de cada token (para auditoría):
     [v2]   = venía de zz_design_v2.css (solo ahí).
     [coli] = estaba en ambos; se usa el valor de v2 (el que hoy gana).
     [v1]   = venía solo de z_theme.css (no estaba en v2).

   NO reintroducir estas variables en z_theme.css ni en zz_design_v2.css:
   sus :root quedaron vacíos a propósito.

   Nota: las variables --ag-* (tema AG Grid) NO viven aquí; están en
   assets/ag-theme-portal.css (clase .ag-theme-portal), porque tienen scope
   de componente, no de :root.
   ===================================================================== */
:root {
    /* --- Superficies / fondo --- */
    --color-bg: #eaeef4;            /* [coli] v1 #f4f6f8 → v2 */
    --color-surface: #ffffff;       /* [coli] v1 = v2 (idéntico) */
    --color-surface-soft: #f4f7fb;  /* [coli] v1 #f8fafc → v2 */
    --color-surface-2: #eef2f8;     /* [v2] */

    /* --- Marca navy --- */
    --color-primary: #16365d;       /* [coli] v1 #1f3a5f → v2 */
    --color-primary-2: #1d4f8a;     /* [coli] v1 #2d4f7c → v2 */
    --color-primary-soft: #e7eef8;  /* [coli] v1 #eaf1f8 → v2 */
    --brand-1: #0c1f38;             /* [v2] */
    --brand-2: #112a49;             /* [v2] */
    --brand-3: #16365d;             /* [v2] */

    /* --- Acento dorado (uso restringido: indicadores, foco, detalles) --- */
    --accent: #c79a3a;              /* [v2] */
    --accent-2: #b07f24;            /* [v2] */
    --accent-soft: #f5ecd4;         /* [v2] */

    /* --- Texto --- */
    --color-text: #15202f;          /* [coli] v1 #1f2937 → v2 */
    --color-text-soft: #50607a;     /* [coli] v1 #6b7280 → v2 */
    --color-text-muted: #8493ab;    /* [coli] v1 #94a3b8 → v2 */
    --color-on-brand: #eaf1fb;      /* [v2] */
    --color-on-brand-soft: #9fb3d0; /* [v2] */

    /* --- Bordes --- */
    --color-border: #dce3ed;        /* [coli] v1 #d9e2ec → v2 */
    --color-border-strong: #c4cedd; /* [coli] v1 #c3cfdb → v2 */
    --color-hairline: #eaeff6;      /* [v2] */

    /* --- Semánticos (datos) --- */
    --color-success: #1a7f4b;       /* [coli] v1 #2e7d57 → v2 */
    --color-success-soft: #e4f4ea;  /* [v2] */
    --color-warning: #b25e09;       /* [coli] v1 #c7921e → v2 */
    --color-warning-soft: #fbeed9;  /* [v2] */
    --color-danger: #b42318;        /* [coli] v1 #b54747 → v2 */
    --color-danger-soft: #fbe7e4;   /* [v2] */
    --color-info: #1849a9;          /* [coli] v1 #3d6ea8 → v2 */
    --color-info-soft: #e6edfa;     /* [v2] */

    /* --- Colores de DATOS (énfasis numérico en tablas/inline; ETAPA 3 · T4).
       Más vivos que los semánticos de componente; conservan los hex que ya
       usaban los inline para que la migración no cambie el aspecto. --- */
    --data-pos: #059669;            /* verde positivo (ganancia/cobrado en datos) */
    --data-neg: #dc2626;            /* rojo negativo (pérdida/vencido en datos) */
    --data-error: #991b1b;          /* rojo profundo (texto de error / badges) */

    /* --- Sombras (tinte navy frío, profundidad por capas) --- */
    --shadow-xs: 0 1px 2px rgba(15, 33, 58, 0.06);                                   /* [coli] v1 rgba(15,23,42,0.05) → v2 */
    --shadow-sm: 0 1px 2px rgba(15, 33, 58, 0.05), 0 2px 8px -2px rgba(15, 33, 58, 0.10); /* [coli] v1 0 2px 8px rgba(15,23,42,0.06) → v2 */
    --shadow-md: 0 10px 26px -10px rgba(15, 33, 58, 0.20);                           /* [coli] v1 0 6px 20px rgba(15,23,42,0.08) → v2 */
    --shadow-lg: 0 26px 54px -18px rgba(12, 28, 52, 0.34);                           /* [v2] */

    /* --- Radios --- */
    --radius-sm: 8px;   /* [coli] v1 = v2 (idéntico) */
    --radius-md: 12px;  /* [coli] v1 = v2 (idéntico) */
    --radius-lg: 16px;  /* [coli] v1 = v2 (idéntico) */
    --radius-xl: 22px;  /* [v2] */

    /* --- Espaciado (solo definido en v1; ningún cambio de valor) --- */
    --space-1: 4px;   /* [v1] */
    --space-2: 8px;   /* [v1] */
    --space-3: 12px;  /* [v1] */
    --space-4: 16px;  /* [v1] */
    --space-5: 20px;  /* [v1] */
    --space-6: 24px;  /* [v1] */
    --space-7: 32px;  /* [v1] */

    /* --- Tipografía --- */
    --font-base: 'IBM Plex Sans', 'Segoe UI', system-ui, -apple-system, Roboto, sans-serif; /* [coli] v1 Inter… → v2 */
    --font-num: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Consolas, monospace;       /* [v2] */
    --font-mono: 'IBM Plex Mono', ui-monospace, Consolas, monospace;                        /* [coli] v1 SFMono… → v2 */

    /* --- Movimiento --- */
    --ease: cubic-bezier(0.4, 0, 0.2, 1);        /* [v2] */
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);   /* [v2] */
    --transition-fast: 0.16s var(--ease);        /* [coli] v1 0.18s ease → v2 */
    --transition: 0.24s var(--ease);             /* [v2] */

    /* --- Layout --- */
    --sidebar-width: 264px;  /* [coli] v1 260px → v2 */
    --header-height: 68px;   /* [coli] v1 72px → v2 */
}
