/* ── Sistema de diseño Kyverum Verify (tokens compartidos) ──────────────────
   Fuente ÚNICA de verdad para tipografía y tokens de color de TODAS las vistas
   del sistema (admin, index, console, aviso). Reemplaza los :root duplicados por
   vista y elimina la dependencia del CDN de Google Fonts (privacidad Ley 1581 +
   rendimiento: la fuente ya viaja self-hosted, misma familia = cero regresión).
   Cárgalo ANTES del CSS específico de cada vista; una vista puede sobrescribir un
   token puntual con su propio :root posterior. */

/* Geist variable, self-hosted (mismo archivo que usa la captura). El rango 100..900
   cubre todos los pesos que las vistas usan (hasta 800 en logos/títulos). */
@font-face {
  font-family: 'Geist';
  src: url('/fonts/geist-var.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Tokens en modo CLARO (base). */
:root {
  --brand: oklch(0.51 0.22 277);
  --brand-d: oklch(0.45 0.22 277); --brand2: oklch(0.54 0.24 293);
  --brand-fg: oklch(0.99 0.005 180);
  --bg: oklch(0.985 0.002 247);
  --card: oklch(1 0 0);
  --card2: oklch(0.965 0.005 250);
  --ink: oklch(0.205 0.015 250);
  --muted: oklch(0.5 0.015 250);
  --line: oklch(0.915 0.005 250);
  --input-bg: oklch(1 0 0);
  --ok: oklch(0.55 0.14 152);
  --err: oklch(0.577 0.245 27.325);
  --warn: oklch(0.62 0.13 70);
  --radius: 12px;
  /* Tinta de estados: en claro el texto va más oscuro que el color base para
     cumplir WCAG AA 4.5:1 sobre el fondo al 18% (hallazgo axe, VERONICA). */
  --ok-ink: oklch(0.42 0.12 152);
  --err-ink: oklch(0.48 0.19 27);
  --warn-ink: oklch(0.44 0.10 70);
}

/* Tokens en modo OSCURO. Reutilizados por las tres reglas de abajo para no
   duplicar valores; se define como custom property intermedia por claridad. */
@media (prefers-color-scheme: dark) {
  /* Sigue la preferencia del SO, salvo que la vista fije data-theme="light". */
  :root:not([data-theme='light']) {
    --brand: oklch(0.70 0.15 277);
    --brand-d: oklch(0.76 0.14 277); --brand2: oklch(0.72 0.16 293);
    --brand-fg: oklch(0.16 0.03 280);
    --bg: oklch(0.16 0.012 250);
    --card: oklch(0.214 0.014 250);
    --card2: oklch(0.255 0.014 250);
    --ink: oklch(0.97 0.004 247);
    --muted: oklch(0.70 0.012 250);
    --line: oklch(0.31 0.012 250);
    --input-bg: oklch(0.26 0.012 250);
    --ok: oklch(0.78 0.15 160);
    --err: oklch(0.70 0.19 22);
    --warn: oklch(0.82 0.15 80);
    --ok-ink: var(--ok);
    --err-ink: var(--err);
    --warn-ink: var(--warn);
  }
}

/* Override explícito por atributo (el switch del panel): gana sobre el SO en
   AMBAS direcciones (dark fuerza oscuro, light fuerza claro). */
:root[data-theme='dark'] {
  --brand: oklch(0.70 0.15 277);
  --brand-d: oklch(0.76 0.14 277); --brand2: oklch(0.72 0.16 293);
  --brand-fg: oklch(0.16 0.03 280);
  --bg: oklch(0.16 0.012 250);
  --card: oklch(0.214 0.014 250);
  --card2: oklch(0.255 0.014 250);
  --ink: oklch(0.97 0.004 247);
  --muted: oklch(0.70 0.012 250);
  --line: oklch(0.31 0.012 250);
  --input-bg: oklch(0.26 0.012 250);
  --ok: oklch(0.78 0.15 160);
  --err: oklch(0.70 0.19 22);
  --warn: oklch(0.82 0.15 80);
  --ok-ink: var(--ok);
  --err-ink: var(--err);
  --warn-ink: var(--warn);
}
