/* tokens.css — Constitución de color/tipografía del frontend BeFenrir.
 * ────────────────────────────────────────────────────────────────────
 * FUENTE ÚNICA DE VERDAD del sistema «Cuaderno del entrenador».
 * Definido en el Estándar Fenrir de diseño web (§1). PROHIBIDO cualquier
 * hex fuera de esta tabla: un color nuevo = cambio de ESTE fichero, no un
 * hex en una plantilla. Se carga PRIMERO en base.html (antes que reset/main).
 *
 * White-label: el tenant sobreescribe --sello (y opcionalmente --papel/
 * --panel entre presets curados) vía el <style id="branding-vars"> de
 * base.html. Nunca CSS libre por tenant.
 *
 * Capa de compatibilidad (transición F1→F2): al final de este fichero, los
 * tokens de los sistemas viejos (--forge-* y --color-*) se REDEFINEN en
 * términos de estos tokens nuevos, para que las vistas aún no migradas
 * (F2) sigan funcionando pintando ya la paleta Cuaderno. Cuando F2 migre
 * cada vista a los tokens nuevos, esa capa se irá borrando.
 */
:root {
    /* El chrome NATIVO del navegador (scrollbars, selects, date pickers) no
       lo pinta nuestro CSS: lo pinta el navegador según `color-scheme`. Sin
       esta línea daba por hecho "página clara" y dibujaba la barra de scroll
       BLANCA sobre el Cuaderno de noche. Se redeclara en cada estado del
       tema (SO / manual) más abajo. */
    color-scheme: light;

    /* ── Tokens canónicos (Estándar §1) ─────────────────────────────── */
    --papel: #f3ecdd;
    --panel: #faf5ea;
    --tinta: #241d14;
    --tinta2: #6b6052;
    --sutil: #8a7a63;
    --sello: #9d3b2d;   /* acento de acción y firma; lo sustituye el tenant */
    --ok: #5c7a45;
    --aviso: #b5822e;
    --regla: #d8cbb4;
    --regla2: #c9b795;

    /* Fondos tenues de los estados (badge/pill), y texto sobre color saturado.
     * Canónicos para que el modo oscuro los redefina en un solo sitio. */
    --ok-bg: #eaf3e1;
    --aviso-bg: #f5e8c7;
    --alerta-bg: #f7dccf;
    --sobre-acento: #ffffff;

    /* Badge CEO (dorado). Tokenizado para que el modo oscuro lo invierta. */
    --ceo-bg: #faf6e8;
    --ceo-borde: #c9a961;
    --ceo-texto: #8b6f2a;

    /* Surco de las barras de progreso (macros). Debe CONTRASTAR con la
     * superficie de la tarjeta en ambos temas: en claro va más oscuro que el
     * panel; en oscuro, más claro. Con --panel a secas desaparecía en dark. */
    --surco: #e6ddc9;

    /* IMPRESIÓN. El papel NO tiene tema: siempre tinta oscura sobre blanco
     * (imprimir el modo oscuro sería gastar un cartucho por hoja). Por eso
     * estos tokens NO se redefinen en dark: son los mismos siempre. */
    --papel-impreso: #ffffff;
    --tinta-impresa: #000000;
    --tinta-impresa-tenue: #999999;

    --f-tit: "Lora", serif;
    --f-body: "DM Sans", sans-serif;
    --f-mono: "JetBrains Mono", monospace;

    --rad: 3px;
    --dens: 1;
}

/* ════════════════════════════════════════════════════════════════════
 * CAPA DE COMPATIBILIDAD — sistemas viejos redefinidos sobre el nuevo.
 * Colapsa los marrones/terracotas casi idénticos al token Cuaderno más
 * cercano (mapa hex→token del informe F1-B1). Se retira en F2 al migrar
 * cada vista. NO añadir tokens nuevos aquí: esto solo re-apunta los que
 * ya existían para que la paleta Cuaderno entre sin tocar 80 plantillas.
 * ════════════════════════════════════════════════════════════════════ */
:root {
    /* --- Sistema "alma" (--color-*), antes en el branding-vars inline --- */
    --color-fondo-principal: var(--papel);
    --color-fondo-secundario: var(--panel);
    --color-fondo-terciario: var(--regla);
    --color-texto-principal: var(--tinta);
    --color-texto-secundario: var(--tinta2);
    --color-texto-terciario: var(--sutil);
    --color-acento-primario: var(--sello);
    --color-acento-primario-hover: var(--tinta);
    --color-acento-secundario: var(--aviso);
    --color-exito: var(--ok);
    --color-error: var(--sello);
    --color-advertencia: var(--aviso);
    --color-borde: var(--regla);
    --color-borde-fuerte: var(--regla2);

    /* --- Sistema "forge" (--forge-*) --- */
    --forge-bg-page: var(--papel);
    --forge-bg-card: var(--panel);
    --forge-bg-table-row: var(--panel);
    --forge-bg-table-row-alt: var(--papel);
    --forge-bg-toolbar: var(--panel);
    --forge-border-subtle: var(--regla);
    --forge-border-card: var(--regla2);
    --forge-text-primary: var(--tinta);
    --forge-text-secondary: var(--tinta2);
    --forge-text-muted: var(--sutil);
    --forge-text-label: var(--sutil);
    /* Texto sobre superficies de color saturado (badges, tramos de barra de
     * macros): blanco fijo en ambos temas — el fondo es color, no el papel. */
    --forge-text-on-accent: var(--sobre-acento);
    --forge-status-ok: var(--ok);
    --forge-status-warn: var(--aviso);
    --forge-status-alert: var(--sello);
    --forge-success: var(--ok);
    --forge-status-ok-bg: var(--ok-bg);
    --forge-status-warn-bg: var(--aviso-bg);
    --forge-status-alert-bg: var(--alerta-bg);
    --forge-data-positive: var(--ok);
    --forge-data-negative: var(--sello);
    --forge-data-neutral: var(--tinta2);
    --forge-chart-weight: var(--tinta);
    --forge-chart-prot: var(--ok);
    --forge-chart-carb: var(--aviso);
    --forge-chart-fat: var(--sello);
    --forge-chart-lean: var(--ok);
    --forge-chart-terra: var(--sello);
    --forge-ini-0: var(--ok);
    --forge-ini-1: var(--aviso);
    --forge-ini-2: var(--sello);
    --forge-ini-3: var(--tinta);
    --forge-ini-4: var(--sutil);
    --forge-font-family: var(--f-body);
    --forge-font-display: var(--f-tit);
    --forge-font-mono: var(--f-mono);
    --forge-radius-card: var(--rad);
    --forge-radius-button: var(--rad);
}

/* ════════════════════════════════════════════════════════════════════
 * MODO OSCURO — «Cuaderno de noche». Carbón CÁLIDO (no gris azulado):
 * conserva el tinte sepia del papel invertido en luminosidad. Como TODO
 * el color (--forge-* y --color-*) deriva de los ~14 tokens canónicos de
 * arriba, basta redefinir ESOS aquí: la app entera se oscurece sin tocar
 * una sola plantilla.
 *
 * Precedencia (regla de la skill artifact/tema):
 *   - `@media (prefers-color-scheme: dark)` = preferencia del SO. Se limita
 *     a `:root:not([data-theme])` para que el toggle manual (que estampa
 *     data-theme) SIEMPRE gane sobre el SO, en ambos sentidos.
 *   - `:root[data-theme="dark"]` = toggle manual a oscuro (gana al SO claro).
 *   - `:root[data-theme="light"]` = toggle manual a claro (no necesita
 *     redefinir nada: los tokens base ya son claros; la ausencia del media
 *     query bajo data-theme basta).
 *
 * White-label: si el tenant es Enterprise, `branding-vars` vuelca sus
 * `--color-*` como hex en :root y esos GANAN a la capa de compatibilidad
 * → el tenant se ve en su tema claro aunque el modo oscuro esté activo.
 * Derivar una variante oscura de la paleta del tenant es una 2ª fase.
 * ════════════════════════════════════════════════════════════════════ */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme]) {
        color-scheme: dark;   /* scrollbars y controles nativos en oscuro */
        --papel: #1c1813;
        --panel: #262019;
        --tinta: #ece3d4;
        --tinta2: #b3a794;
        --sutil: #8a7d68;
        --sello: #c96a52;   /* acento aclarado para contraste sobre oscuro */
        --ok: #8fae6b;
        --aviso: #d8a24e;
        --regla: #3a3228;
        --regla2: #4a4032;
        --ok-bg: #232b1c;
        --aviso-bg: #2f2717;
        --alerta-bg: #31201a;
        --sobre-acento: #1c1813;   /* texto oscuro sobre el sello aclarado */
        --ceo-bg: #2e2718;
        --ceo-borde: #8a6f3a;
        --ceo-texto: #e0c07a;
        --surco: #3d3529;
    }
}

:root[data-theme="dark"] {
    color-scheme: dark;   /* scrollbars y controles nativos en oscuro */
    --papel: #1c1813;
    --panel: #262019;
    --tinta: #ece3d4;
    --tinta2: #b3a794;
    --sutil: #8a7d68;
    --sello: #c96a52;
    --ok: #8fae6b;
    --aviso: #d8a24e;
    --regla: #3a3228;
    --regla2: #4a4032;
    --ok-bg: #232b1c;
    --aviso-bg: #2f2717;
    --alerta-bg: #31201a;
    --sobre-acento: #1c1813;
    --ceo-bg: #2e2718;
    --ceo-borde: #8a6f3a;
    --ceo-texto: #e0c07a;
    --surco: #3d3529;
}
