/* Tokens M3 COMPARTIDOS por los tres shells del producto:
 *   · app_layout_m3.html  (panel del despacho, sobre `.m3`)
 *   · _auth.html          (login/recuperar/restablecer, también sobre `.m3`)
 *   · portal_base.html    (portal del cliente final, sobre `:root`)
 *
 * Por qué existe (2026-07-26): la MISMA paleta baseline de Material 3 (superficies, outline,
 * error, success, warning) estaba escrita a mano en los tres archivos —y el bloque OSCURO, dos
 * veces dentro del portal—. Cinco copias de ~20 valores hex que ya empezaban a derivar entre sí.
 * Aquí viven una sola vez.
 *
 * QUÉ **NO** SE EXTRAE, a propósito:
 *   · `--primary` y compañía: el portal los DERIVA del acento white-label (`--accent-600`) y el
 *     panel los fija (morado M3 / azul Neutral). Son distintos POR DISEÑO, no por descuido.
 *   · Los temas `neutral` y `dark` del panel: siguen en app_layout_m3.html, porque redefinen
 *     también primary/secondary/tertiary y son suyos.
 *
 * ORDEN DE CARGA: este archivo se enlaza ANTES del <style> de cada shell, para que lo específico
 * (y `{{ BRAND.accent_css }}`, que es configuración del despacho) siga ganando.
 */

/* ── Acento white-label: SOLO los defaults. Cada shell emite después `{{ BRAND.accent_css }}`
      con las tripletas del despacho, que pisan estas por venir más tarde en la cascada. ── */
:root{
  --accent-50: 233 243 238; --accent-100: 207 227 215; --accent-500: 58 155 115;
  --accent-600: 31 107 79;  --accent-700: 26 92 68;    --accent-fg: 255 255 255;
}

/* ── Claro (baseline M3 "Luminous"). Se declara en los DOS ámbitos que existen: `:root` para el
      portal y `.m3` para el panel/auth, que envuelven su contenido en ese contenedor. ── */
:root, .m3{
  --surface:#FEF7FF; --on-surface:#1D1B20; --surface-variant:#E7E0EC; --on-surface-variant:#49454F;
  --surface-container-lowest:#fff; --surface-container-low:#F7F2FA; --surface-container:#F3EDF7;
  --surface-container-high:#ECE6F0; --surface-container-highest:#E6E0E9;
  --outline:#79747E; --outline-variant:#CAC4D0;
  --error:#B3261E; --on-error:#fff; --error-container:#F9DEDC; --on-error-container:#410E0B;
  --success:#2e7d54; --on-success:#fff; --success-container:#cdeeda; --on-success-container:#0a3d24;
  --warning-text:#8a6100; --warning-bg:#f7eed7;
  --danger:#B3261E;   /* alias histórico de --error, usado por el panel y las pantallas de auth */
}

/* ── Oscuro por preferencia del SISTEMA. Deliberadamente SIN `.m3`: el panel elige tema por
      `data-theme` (la contadora puede querer claro con el sistema en oscuro) y su contenido vive
      dentro de `.m3`, que conserva los valores claros de arriba. Esto sirve al portal, que no
      tiene selector de tema. ── */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --surface:#141218; --on-surface:#E6E0E9; --surface-variant:#49454F; --on-surface-variant:#CAC4D0;
    --surface-container-lowest:#0F0D13; --surface-container-low:#1D1B20; --surface-container:#211F26;
    --surface-container-high:#2B2930; --surface-container-highest:#36343B;
    --outline:#948F99; --outline-variant:#49454F;
    --error:#F2B8B5; --on-error:#601410; --error-container:#8C1D18; --on-error-container:#F9DEDC;
    --success:#8FDBAE; --on-success:#0A3D24; --success-container:#1F3C2C; --on-success-container:#A6F2C6;
    --warning-text:#FFD875; --warning-bg:#4A3800;
    --danger:#F2B8B5;
  }
}

/* ── Oscuro FORZADO por `data-theme="dark"` (gana con o sin preferencia del sistema). ── */
:root[data-theme="dark"], :root[data-theme="dark"] .m3{
  --surface:#141218; --on-surface:#E6E0E9; --surface-variant:#49454F; --on-surface-variant:#CAC4D0;
  --surface-container-lowest:#0F0D13; --surface-container-low:#1D1B20; --surface-container:#211F26;
  --surface-container-high:#2B2930; --surface-container-highest:#36343B;
  --outline:#948F99; --outline-variant:#49454F;
  --error:#F2B8B5; --on-error:#601410; --error-container:#8C1D18; --on-error-container:#F9DEDC;
  --success:#8FDBAE; --on-success:#0A3D24; --success-container:#1F3C2C; --on-success-container:#A6F2C6;
  --warning-text:#FFD875; --warning-bg:#4A3800;
  --danger:#F2B8B5;
}
