/*
 * Ratiofy v5 — Design Tokens shared L1
 * Single source of truth per token theme-invariant (radii, transitions, spacing,
 * font family/weight/size, motion, layout, sidebar widths, legacy aliases).
 *
 * Token theme-dependent (color, ink, score, paper, surface, navy, sidebar bg,
 * shadow, overlays, ai, flag, feedback, V5 hair/brand/topbar) restano in
 * system.css per dual-block light/dark — vedi `.claude/rules/frontend-dual-platform.md`
 * 3-layer arch L1.
 *
 * REGOLA cascade: tokens.css DEVE essere caricato PRIMA di system.css negli HTML.
 * Senza @import (perf parallel download).
 *
 * Origin: sess 154 - 2026-05-27 - Token consolidation Fase A
 * (closes DEC-S150-007 — drift 3 system.css → 2 system.css + 1 tokens.css canonical).
 *
 * Valori estratti 1:1 da frontend/assets/css/system.css :root block (L45-140) PRE sess 154.
 */
@import url('https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* Type — theme-invariant */
  --font-sans: 'Onest', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  /* Radii */
  --r-sm: 6px; --r-md: 10px; --r-lg: 16px; --r-xl: 24px; --r-full: 999px;

  /* Transitions */
  --transition-fast: 150ms ease-out;
  --transition-base: 200ms ease-out;
  --transition-slow: 400ms ease-out;

  /* Layout — sidebar widths (theme-invariant) */
  --sidebar-width: 220px;
  --sidebar-collapsed-width: 58px;
  /* Alias: naming canonico usato da ratiofy.css/sidebar.js. Defense-in-depth:
     ratiofy.css lo ridichiara a 64px (layout corrente); fallback a 58px
     per pagine auth (register/login) che non caricano ratiofy.css. */
  --sidebar-width-collapsed: var(--sidebar-collapsed-width);

  /* Legacy naming aliases (compat con codebase esistente).
     NOTE: la DICHIARAZIONE è theme-invariant, il VALORE risolto cambia per cascade
     quando var(--border)/var(--ink-*)/etc. cambiano in dark theme block. */
  --color-border: var(--border);
  --color-text-muted: var(--ink-500);
  --color-text: var(--ink-900);
  --color-bg: var(--paper);
  --color-surface: var(--surface);
  --color-primary: var(--navy-900);
  --color-primary-dark: var(--navy-950);
  --radius-sm: var(--r-sm);
  --radius-md: var(--r-md);
  --radius-lg: var(--r-lg);
  --font-family: var(--font-sans);

  /* ===== Foundation tokens (POST33-2 E5.0.5 sweep da ratiofy.css :root) ===== */
  /* Spacing scale (theme-invariant) */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* Font size scale (theme-invariant) */
  --font-size-xs:   0.75rem;   /* 12px */
  --font-size-sm:   0.875rem;  /* 14px */
  --font-size-base: 1rem;      /* 16px */
  --font-size-lg:   1.125rem;  /* 18px */
  --font-size-xl:   1.25rem;   /* 20px */
  --font-size-2xl:  1.5rem;    /* 24px */
  --font-size-3xl:  1.875rem;  /* 30px */

  /* Font weight scale (CAP-DEV-1.3 tokenization, sess 142, 2026-05-23)
   * Foundation token layer. */
  --fw-light:    300;  /* riservato — wght@300 non importato da Google Fonts (zero usage prod) */
  --fw-normal:   400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;
  --fw-black:    800;

  /* Spacing scale extension (CAP-DEV-1.3 sess 142)
   * Naming convention: `_` (underscore) al posto di `.` per CSS custom property. */
  --space-px:   1px;       /* hairline border/divider */
  --space-0_5:  0.125rem;  /* 2px — sub-border, micro-adjust */
  --space-2_5:  0.625rem;  /* 10px — micro-adjust */
  --space-3_5:  0.875rem;  /* 14px — form spacing */

  /* Motion tokens (CAP-DEV-1.3 sess 142)
   * Coesistenti con --transition-fast/base/slow esistenti. Durations + easings
   * separati per consentire compose flessibile in callsite. */
  --motion-duration-fast: 150ms;
  --motion-duration-base: 200ms;
  --motion-duration-slow: 350ms;
  --motion-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --motion-ease-out:      cubic-bezier(0, 0, 0.2, 1);
  --motion-ease-in-out:   cubic-bezier(0.4, 0, 0.6, 1);

  /* Radii extension */
  --radius-full: var(--r-full);
  --radius-xl: 16px;  /* NOTA: ratiofy.css L127 redichiara --radius-xl: 16px (≠ --r-xl: 24px). Auth-card consumer richiede 16px. */

  /* Shadow extension (theme-invariant declaration; --shadow-sm/md/lg theme-dependent restano in system.css) */
  --shadow-xl: 0 16px 40px rgba(0,0,0,0.14);

  /* Layout */
  --header-height: 64px;
  --container-max: 1200px;
}
