/* DevOS — tokens de marca "Papel y cota" (v1, 16-10-2026)
   Fuente de verdad: docs/brand/decision-pm.md §3. No añadir colores fuera de esa tabla.
   Uso: <link rel="stylesheet" href="tokens.css"> y var(--token).
   Modo: claro por defecto; oscuro con prefers-color-scheme o [data-theme="dark"];
   [data-theme="light"] fuerza claro; al imprimir siempre claro y fondo blanco. */

@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght,SOFT,WONK@9..144,400..600,0..100,0..1&family=Inter:wght@400;500;600&display=swap");

:root {
  color-scheme: light;

  /* Color — superficies y texto */
  --bg: #F5F2EA;
  --surface: #FCFAF5;
  --surface-raised: #FFFFFF;
  --text: #1C1B18;
  --text-2: #5C574D;
  --heading: #18436B;
  --border: #DDD7CA;
  --border-strong: #8F887A;

  /* Color — marca y acción */
  --brand: #146EF6;
  --brand-hover: #0F5AD0;
  --on-brand: #FFFFFF;
  --link: #0F5AD0;
  --focus: #146EF6;

  /* Semáforo Estándar DevOS: sólido (glifo y filete), fondo suave, texto */
  --ok: #2E8540;
  --ok-soft: #E5F0E3;
  --ok-text: #1E6B3A;
  --warn: #B86E00;
  --warn-soft: #FBEED3;
  --warn-text: #8A4F00;
  --bad: #D2453B;
  --bad-soft: #FAE3DF;
  --bad-text: #A3261F;

  /* Chips de origen del dato */
  --chip-owner-fg: #124FAE;
  --chip-owner-bg: #E3EDFD;
  --chip-preset-fg: #00597A;
  --chip-preset-bg: #E3F7FD;
  --chip-valid-fg: #FFFFFF;
  --chip-valid-bg: #18436B;
  --chip-pending-fg: #5C574D;
  --chip-pending-border: #8F887A;

  /* Series de gráfico (nunca verde ni rojo) */
  --series-1: #18436B;
  --series-2: #146EF6;
  --series-3: #5E8FD6;

  /* Tipografía */
  --font-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --serif-settings: "SOFT" 50, "WONK" 0;
  --num: tabular-nums lining-nums;

  --fs-display: 44px;  --lh-display: 52px;
  --fs-h1: 32px;       --lh-h1: 40px;
  --fs-h2: 24px;       --lh-h2: 32px;
  --fs-h3: 18px;       --lh-h3: 26px;
  --fs-kpi: 32px;      --lh-kpi: 40px;
  --fs-body-lg: 18px;  --lh-body-lg: 28px;
  --fs-body: 16px;     --lh-body: 24px;
  --fs-small: 14px;    --lh-small: 20px;
  --fs-chip: 13px;     --lh-chip: 18px;
  --fs-label: 12px;    --lh-label: 16px;
  --tracking-label: 0.3px;
  --tracking-kpi: -0.005em;
  --measure: 68ch;

  /* Espaciado (base 4 px) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --content-max: 1120px;
  --gutter-mobile: 16px;

  /* Radios */
  --r-xs: 6px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 20px;
  --r-pill: 999px;

  /* Bordes y foco */
  --border-w: 1px;
  --status-rule: 4px;
  --focus-ring: 2px solid var(--focus);
  --focus-offset: 2px;

  /* Sombras (solo en claro) */
  --shadow-0: none;
  --shadow-1: 0 1px 2px rgb(28 27 24 / .06), 0 8px 24px rgb(28 27 24 / .08);
  --shadow-2: 0 2px 4px rgb(28 27 24 / .06), 0 16px 48px rgb(28 27 24 / .12);

  /* Movimiento */
  --transition: 150ms ease;
}

/* Oscuro: preferencia del sistema, salvo que la página fuerce claro */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #161513;
    --surface: #1F1E1B;
    --surface-raised: #2A2824;
    --text: #EDEAE2;
    --text-2: #A8A296;
    --heading: #EDEAE2;
    --border: #3A3731;
    --border-strong: #76706A;
    --brand: #5B97FA;
    --brand-hover: #7FB0FF;
    --on-brand: #0E1726;
    --link: #78A9FF;
    --focus: #00C3FF;
    --ok: #86D394;
    --ok-soft: #1B2D20;
    --ok-text: #86D394;
    --warn: #F2B95C;
    --warn-soft: #33270F;
    --warn-text: #F2B95C;
    --bad: #FF8F85;
    --bad-soft: #3A1C19;
    --bad-text: #FF8F85;
    --chip-owner-fg: #A4C4FF;
    --chip-owner-bg: #1A2942;
    --chip-preset-fg: #6FDCFF;
    --chip-preset-bg: #0A2B38;
    --chip-valid-fg: #0B1622;
    --chip-valid-bg: #C9DCF2;
    --chip-pending-fg: #A8A296;
    --chip-pending-border: #76706A;
    --series-1: #8FBBFF;
    --series-2: #4D8EF0;
    --series-3: #00C3FF;
    --shadow-1: none;
    --shadow-2: none;
  }
}

/* Oscuro forzado por la página */
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #161513;
  --surface: #1F1E1B;
  --surface-raised: #2A2824;
  --text: #EDEAE2;
  --text-2: #A8A296;
  --heading: #EDEAE2;
  --border: #3A3731;
  --border-strong: #76706A;
  --brand: #5B97FA;
  --brand-hover: #7FB0FF;
  --on-brand: #0E1726;
  --link: #78A9FF;
  --focus: #00C3FF;
  --ok: #86D394;
  --ok-soft: #1B2D20;
  --ok-text: #86D394;
  --warn: #F2B95C;
  --warn-soft: #33270F;
  --warn-text: #F2B95C;
  --bad: #FF8F85;
  --bad-soft: #3A1C19;
  --bad-text: #FF8F85;
  --chip-owner-fg: #A4C4FF;
  --chip-owner-bg: #1A2942;
  --chip-preset-fg: #6FDCFF;
  --chip-preset-bg: #0A2B38;
  --chip-valid-fg: #0B1622;
  --chip-valid-bg: #C9DCF2;
  --chip-pending-fg: #A8A296;
  --chip-pending-border: #76706A;
  --series-1: #8FBBFF;
  --series-2: #4D8EF0;
  --series-3: #00C3FF;
  --shadow-1: none;
  --shadow-2: none;
}

@media (prefers-reduced-motion: reduce) {
  :root { --transition: 0ms; }
}

/* Impresión (PDF): siempre claro y fondo blanco, aunque la pantalla esté en oscuro */
@media print {
  :root, :root[data-theme="dark"], :root:not([data-theme="light"]) {
    color-scheme: light;
    --bg: #FFFFFF;
    --surface: #FFFFFF;
    --surface-raised: #FFFFFF;
    --text: #1C1B18;
    --text-2: #5C574D;
    --heading: #18436B;
    --border: #DDD7CA;
    --border-strong: #8F887A;
    --brand: #146EF6;
    --brand-hover: #0F5AD0;
    --on-brand: #FFFFFF;
    --link: #0F5AD0;
    --focus: #146EF6;
    --ok: #2E8540;
    --ok-soft: #E5F0E3;
    --ok-text: #1E6B3A;
    --warn: #B86E00;
    --warn-soft: #FBEED3;
    --warn-text: #8A4F00;
    --bad: #D2453B;
    --bad-soft: #FAE3DF;
    --bad-text: #A3261F;
    --chip-owner-fg: #124FAE;
    --chip-owner-bg: #E3EDFD;
    --chip-preset-fg: #00597A;
    --chip-preset-bg: #E3F7FD;
    --chip-valid-fg: #FFFFFF;
    --chip-valid-bg: #18436B;
    --chip-pending-fg: #5C574D;
    --chip-pending-border: #8F887A;
    --series-1: #18436B;
    --series-2: #146EF6;
    --series-3: #5E8FD6;
    --shadow-1: none;
    --shadow-2: none;
  }
}
