/* static/css/tokens.css — única fuente de valores. Un token nuevo nace aquí.
 * GENERADO por comandos/generar_tokens.py desde _tokens_claro.css y _tema_oscuro.css: no editar a mano.
 * Marca neutra por defecto; la de cada empresa la sobrescribe su tema.css (solo tokens de marca). */
:root {
  color-scheme: light;
  /* ---- Color (cambian con el tema) ----
   * Neutros puros (saturación 0), como la aplicación de referencia: conviven con cualquier primario de empresa sin
   * teñirlo. Bordes finos para separar, sombras solo en lo que flota (diseno.md §1.5, decisión de la Ola 1). */
  --gd-text: #0f0f10;
  --gd-text-muted: #616161;
  --gd-text-secondary: #3d3d3d;
  --gd-bg: #ffffff;
  --gd-surface: #fafafa;
  --gd-desk: #ececec;
  --gd-border: #e8e8e8;
  --gd-border-strong: #8a8a8a;
  --gd-primary: #1f3a5f;
  --gd-primary-strong: #2a4b77;
  --gd-on-primary: #ffffff;
  --gd-primary-tint: #eaeff4;
  --gd-row-selected: #eaeff4;
  --gd-danger: #b42318;
  --gd-on-danger: #ffffff;
  --gd-success: #1f7a5a;
  --gd-warning: #9a4a06;
  --gd-badge-progress-fg: #3d6a9e;
  --gd-badge-progress-bg: #e8edf3;
  --gd-badge-sealed-fg: #1e5c4b;
  --gd-badge-sealed-bg: #e7f2ed;
  --gd-badge-unsealed-fg: #525252;
  --gd-badge-unsealed-bg: #f0f0f0;
  --gd-badge-unsealed-border: #e3e3e3;
  --gd-badge-overdue-fg: #b42318;
  --gd-badge-overdue-bg: #fdf0ee;
  --gd-badge-warn-fg: #8a4205;
  --gd-badge-warn-bg: #fcf3e3;
  --gd-confidential: #5b3e96;
  --gd-badge-confidential-fg: #5b3e96;
  --gd-badge-confidential-bg: #f3effa;
  --gd-nav-bg: #fafafa;              /* menú claro: ya no es superficie de marca (decisión del LP, Ola 1) */
  --gd-nav-text: #3d3d3d;
  --gd-nav-text-active: #0f0f10;
  --gd-nav-hover: #f0f0f0;
  --gd-nav-active: #ebebeb;          /* el activo es solo el fondo gris; el icono lleva el primario */
  --gd-nav-border: #ebebeb;
  --gd-avatar-bg: #ececec;
  --gd-shadow-modal: 0 0 0 1px rgba(0, 0, 0, 0.04), 0 2px 4px rgba(0, 0, 0, 0.04), 0 16px 40px -12px rgba(0, 0, 0, 0.2);
  --gd-scrim: #0f0f10;
  --gd-action: #0f0f10;              /* botón primario en tinta: no es tematizable por empresa */
  --gd-action-strong: #333333;
  --gd-on-action: #ffffff;
  --gd-surface-sunken: #f2f2f2;      /* pozos: insignia neutra, kbd, segmentos, solo lectura */
  --gd-border-soft: #f0f0f0;         /* separador entre filas de tabla */
  --gd-row-hover: #fafafa;
  --gd-danger-strong: #912018;
  --gd-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
  --gd-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.04), 0 6px 20px -6px rgba(0, 0, 0, 0.1);

  /* ---- Iguales en los dos temas ---- */
  --gd-photo-veil: #1f3a5f;
  --gd-photo-text: #c0c8d2;
  --gd-photo-text-strong: #ffffff;
  --gd-font: 'Inter', 'Inter de reserva', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --gd-font-display: 'Inter Tight', 'Inter Tight de reserva', 'Inter', system-ui, sans-serif;
  --gd-font-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', 'Cascadia Code', monospace;
  --gd-fs-hero: 32px;
  --gd-fs-display: 24px;
  --gd-fs-headline: 20px;
  --gd-fs-lg: 16px;
  --gd-fs-body: 14px;
  --gd-fs-xs: 12px;
  --gd-weight-display: 300;
  --gd-radius-sm: 8px;
  --gd-radius: 12px;
  --gd-radius-md: 16px;
  --gd-radius-lg: 20px;
  --gd-radius-pill: 9999px;
  --gd-container-max: 1440px;
  --gd-sidebar-width: 288px;
  --gd-sidebar-compact: 256px;
  --gd-sidebar-collapsed: 80px;
  --gd-topbar-height: 56px;
  --gd-gutter: 16px;
  --gd-page-margin: 40px;
  --gd-density-compact: 8px;
  --gd-density-comfortable: 16px;
  --gd-row-height: 56px;
  --gd-row-height-compact: 40px;
  --gd-control-height: 40px;
  --gd-control-height-sm: 32px;
  --gd-focus-ring: 0 0 0 2px var(--gd-bg), 0 0 0 4px var(--gd-primary);

  /* ---- Extensiones Sistema Único ---- */
  --gd-brand-accent: #c0c8d2;        /* solo decorativo: franja de las páginas sin sesión y ::selection. Nunca estado. */
  --gd-on-brand-accent: #1b2430;
  --gd-scrim-opacity: 0.4;
  --gd-blur: 6px;
  --gd-badge-neutral-fg: var(--gd-text-secondary);
  --gd-badge-neutral-bg: var(--gd-surface-sunken);
  --gd-badge-neutral-border: transparent;
  --gd-space-1: 4px;
  --gd-space-2: 8px;
  --gd-space-3: 12px;
  --gd-space-4: 16px;
  --gd-space-5: 20px;
  --gd-space-6: 24px;
  --gd-space-8: 32px;
  --gd-space-12: 48px;
  --gd-duration-fast: 120ms;
  --gd-duration: 180ms;
  --gd-ease: cubic-bezier(0.2, 0, 0, 1);
  --gd-stroke-icon: 1.5;
  --gd-line-body: 1.5;
  --gd-line-title: 1.25;
  --gd-line-display: 1.15;
  --gd-tracking-title: -0.01em;
  --gd-tracking-display: -0.02em;
  --gd-selection-bar: 2px;
  --gd-touch-target: 44px;
  --gd-disabled-opacity: 0.5;
}

/* Tema oscuro «Nocturno sereno»: mismo bloque dos veces (preferencia del sistema y elección explícita). */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --gd-text: #ededed;
    --gd-text-muted: #a3a3a3;
    --gd-text-secondary: #c7c7c7;
    --gd-bg: #111112;
    --gd-surface: #18181a;
    --gd-desk: #0a0a0a;
    --gd-border: #29292c;
    --gd-border-strong: #6f6f73;
    --gd-primary: #8fb4e0;
    --gd-primary-strong: #b3cdee;
    --gd-on-primary: #0f0f10;
    --gd-primary-tint: #232c37;
    --gd-row-selected: #232c37;
    --gd-danger: #ff8a80;
    --gd-on-danger: #0f0f10;
    --gd-success: #4cc38a;
    --gd-warning: #f5b94c;
    --gd-badge-progress-fg: #8fb4e0;
    --gd-badge-progress-bg: #1f2833;
    --gd-badge-sealed-fg: #4cc38a;
    --gd-badge-sealed-bg: #1b2b24;
    --gd-badge-unsealed-fg: #a3a3a3;
    --gd-badge-unsealed-bg: #222224;
    --gd-badge-unsealed-border: #2f2f32;
    --gd-badge-overdue-fg: #ff8a80;
    --gd-badge-overdue-bg: #352220;
    --gd-badge-warn-fg: #f5b94c;
    --gd-badge-warn-bg: #322a1b;
    --gd-confidential: #b79cff;
    --gd-badge-confidential-fg: #b79cff;
    --gd-badge-confidential-bg: #2a2435;
    --gd-nav-bg: #161618;
    --gd-nav-text: #b8b8b8;
    --gd-nav-text-active: #ffffff;
    --gd-nav-hover: #212124;
    --gd-nav-active: #2a2a2e;
    --gd-nav-border: #232326;
    --gd-avatar-bg: #2a2a2e;
    --gd-shadow-modal: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 2px 4px rgba(0, 0, 0, 0.4), 0 16px 40px -12px rgba(0, 0, 0, 0.7);
    --gd-scrim: #000000;
    --gd-action: #ededed;
    --gd-action-strong: #ffffff;
    --gd-on-action: #0f0f10;
    --gd-surface-sunken: #222224;
    --gd-border-soft: #1e1e20;
    --gd-row-hover: #18181a;
    --gd-danger-strong: #ffa59d;
    --gd-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.5);
    --gd-shadow-card: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 6px 20px -6px rgba(0, 0, 0, 0.6);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --gd-text: #ededed;
  --gd-text-muted: #a3a3a3;
  --gd-text-secondary: #c7c7c7;
  --gd-bg: #111112;
  --gd-surface: #18181a;
  --gd-desk: #0a0a0a;
  --gd-border: #29292c;
  --gd-border-strong: #6f6f73;
  --gd-primary: #8fb4e0;
  --gd-primary-strong: #b3cdee;
  --gd-on-primary: #0f0f10;
  --gd-primary-tint: #232c37;
  --gd-row-selected: #232c37;
  --gd-danger: #ff8a80;
  --gd-on-danger: #0f0f10;
  --gd-success: #4cc38a;
  --gd-warning: #f5b94c;
  --gd-badge-progress-fg: #8fb4e0;
  --gd-badge-progress-bg: #1f2833;
  --gd-badge-sealed-fg: #4cc38a;
  --gd-badge-sealed-bg: #1b2b24;
  --gd-badge-unsealed-fg: #a3a3a3;
  --gd-badge-unsealed-bg: #222224;
  --gd-badge-unsealed-border: #2f2f32;
  --gd-badge-overdue-fg: #ff8a80;
  --gd-badge-overdue-bg: #352220;
  --gd-badge-warn-fg: #f5b94c;
  --gd-badge-warn-bg: #322a1b;
  --gd-confidential: #b79cff;
  --gd-badge-confidential-fg: #b79cff;
  --gd-badge-confidential-bg: #2a2435;
  --gd-nav-bg: #161618;
  --gd-nav-text: #b8b8b8;
  --gd-nav-text-active: #ffffff;
  --gd-nav-hover: #212124;
  --gd-nav-active: #2a2a2e;
  --gd-nav-border: #232326;
  --gd-avatar-bg: #2a2a2e;
  --gd-shadow-modal: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 2px 4px rgba(0, 0, 0, 0.4), 0 16px 40px -12px rgba(0, 0, 0, 0.7);
  --gd-scrim: #000000;
  --gd-action: #ededed;
  --gd-action-strong: #ffffff;
  --gd-on-action: #0f0f10;
  --gd-surface-sunken: #222224;
  --gd-border-soft: #1e1e20;
  --gd-row-hover: #18181a;
  --gd-danger-strong: #ffa59d;
  --gd-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.5);
  --gd-shadow-card: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 6px 20px -6px rgba(0, 0, 0, 0.6);
}
