/* ============================================================
   tokens.css — Design tokens GL Revenue Forecast System
   Copiado tal cual de docs/HANDOFF_GLRFS.md §2. NO editar valores
   acá: si cambia el design system, se corrige primero el handoff.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=Spline+Sans+Mono:wght@400;500;600;700&family=Spectral:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');

:root {
  --font-ui: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;
  --font-mono: 'Spline Sans Mono', ui-monospace, 'SF Mono', monospace;
  --font-serif: 'Spectral', Georgia, 'Times New Roman', serif;
  --font-display: 'Space Grotesk', 'Hanken Grotesk', system-ui, sans-serif;

  /* canvas & chrome (papel cálido / grafito) */
  --paper:      oklch(0.972 0.004 95);
  --paper-sunk: oklch(0.955 0.005 95);
  --surface:    oklch(1 0 0);
  --surface-2:  oklch(0.984 0.003 95);
  --line:       oklch(0.905 0.005 95);
  --line-soft:  oklch(0.935 0.004 95);
  --line-strong:oklch(0.84 0.006 95);
  --ink:   oklch(0.235 0.012 280);
  --ink-2: oklch(0.43 0.013 280);
  --ink-3: oklch(0.585 0.012 280);
  --ink-4: oklch(0.70 0.010 280);

  /* sidebar grafito */
  --graphite:      oklch(0.225 0.014 285);
  --graphite-2:    oklch(0.275 0.015 285);
  --graphite-line: oklch(0.34 0.016 285);
  --on-graphite:   oklch(0.93 0.006 285);
  --on-graphite-2: oklch(0.70 0.012 285);

  /* acento de firma — azul petróleo (configurable, ver Tweaks) */
  --accent:      oklch(0.50 0.095 222);
  --accent-2:    oklch(0.59 0.095 222);
  --accent-soft: oklch(0.50 0.095 222 / 0.10);
  --accent-line: oklch(0.50 0.095 222 / 0.34);

  /* colores semánticos de datos — USO OBLIGATORIO */
  --occ:      oklch(0.52 0.15 248);        /* ocupación / vs LY = azul */
  --occ-soft: oklch(0.52 0.15 248 / 0.10);
  --pos:      oklch(0.52 0.14 156);        /* pickup + / OCC ≥ 80% = verde */
  --pos-soft: oklch(0.52 0.14 156 / 0.13);
  --neg:      oklch(0.55 0.20 26);         /* pickup − / OCC < 50% = rojo */
  --neg-soft: oklch(0.55 0.20 26 / 0.12);
  --warn:     oklch(0.72 0.135 72);        /* banda 50–80% = ámbar */
  --warn-soft:oklch(0.72 0.135 72 / 0.14);
  --event:    oklch(0.62 0.16 52);         /* evento / overbooking = naranja */
  --event-soft: oklch(0.62 0.16 52 / 0.13);
  --base-rate:      oklch(0.90 0.115 96);  /* tarifa base editable = ámbar */
  --base-rate-line: oklch(0.78 0.13 90);
  --base-rate-ink:  oklch(0.42 0.10 75);
  --blq: oklch(0.62 0.018 285);            /* bloqueadas = gris */
  --ly:      oklch(0.575 0.052 252);       /* LY/STLY = azul-gris (#5b7fa6) */
  --ly-soft: oklch(0.575 0.052 252 / 0.12);
  --peso:      oklch(0.50 0.10 175);       /* ARS / cotización = verde azulado */
  --peso-soft: oklch(0.50 0.10 175 / 0.12);
  --peso-line: oklch(0.50 0.10 175 / 0.34);

  --shadow-sm: 0 1px 2px oklch(0.25 0.02 285 / 0.06);
  --shadow-md: 0 6px 22px oklch(0.25 0.02 285 / 0.10), 0 1px 3px oklch(0.25 0.02 285 / 0.06);
  --shadow-lg: 0 26px 70px oklch(0.2 0.03 285 / 0.22), 0 6px 16px oklch(0.2 0.03 285 / 0.10);

  --r: 12px;  --r-sm: 8px;  --r-lg: 18px;

  /* métricas de grilla por densidad */
  --col-w: 62px;  --row-h: 30px;  --label-w: 196px;
}
[data-density="compact"] { --col-w: 54px; --row-h: 26px; --label-w: 184px; }
[data-density="comfy"]   { --col-w: 72px; --row-h: 34px; --label-w: 210px; }

/* tinte de fin de semana (Vie/Sáb) — desactivable */
:root { --wknd-cell: oklch(0.96 0.012 70); --wknd-head: oklch(0.955 0.014 70); --wknd-row: var(--paper-sunk); }
[data-weekend-tint="off"] { --wknd-cell: transparent; --wknd-head: var(--surface); --wknd-row: transparent; }
