/* =====================================================================
   NEXA Forward — Design Tokens (Visual Token Dictionary v1.0)
   Source unique de vérité. Ne pas hardcoder de couleur ailleurs.
   ===================================================================== */
:root {
  /* COLOR — OBSIDIAN */
  --color-obsidian-50: #ECEEF2; --color-obsidian-100: #D8DCE3;
  --color-obsidian-200: #B5BBC6; --color-obsidian-300: #8E97A7;
  --color-obsidian-400: #6E7A8E; --color-obsidian-500: #556177;
  --color-obsidian-600: #455166; --color-obsidian-700: #374155;
  --color-obsidian-800: #2A3244; --color-obsidian-900: #1E2433;

  /* COLOR — IVORY */
  --color-ivory: #FFFFFF; --color-ivory-100: #FAFAFA;
  --color-ivory-200: #F5F5F6; --color-ivory-300: #EBEBED;

  /* COLOR — GOLD (accent principal) */
  --color-gold-50: #FFFBF0; --color-gold-100: #FFF7E0;
  --color-gold-200: #FFF0C2; --color-gold-300: #FFE699;
  --color-gold-400: #FFDA66; --color-gold-500: #FFCE33;
  --color-gold-600: #FFC200; --color-gold-700: #D4A000;
  --color-gold-800: #B38600; --color-gold-900: #8A6800;

  /* COLOR — SEMANTIC */
  --color-success-50: #E6F7EF; --color-success-100: #E6F7EF;
  --color-success-500: #0D9B5C; --color-success-600: #0B8A52; --color-success-700: #087040;
  --color-warning-50: #FFF9E6; --color-warning-100: #FFF4E0;
  --color-warning-500: #E8960C; --color-warning-600: #D0870B; --color-warning-700: #A66C09;
  --color-error-50: #FEF2F2; --color-error-100: #FDECEC;
  --color-error-500: #D43A3A; --color-error-600: #BF3333; --color-error-700: #992929;
  --color-info-50: #F0F5FD; --color-info-100: #E8F0FC;
  --color-info-500: #3B7DD8; --color-info-600: #3570C2; --color-info-700: #2A5A9E;

  /* COLOR — CHART */
  --color-chart-gold: #FFC200; --color-chart-obsidian: #1E2433;
  --color-chart-slate: #3B7DD8; --color-chart-verdant: #0D9B5C;
  --color-chart-crimson: #D43A3A; --color-chart-lavande: #7B6EB5;
  --color-chart-coral: #E07850; --color-chart-teal: #2A9D8F;

  /* COLOR — FOCUS */
  --color-focus-ring: #FFC200;

  /* FONT */
  --font-family-title: Georgia, 'Times New Roman', serif;
  --font-family-body: 'Segoe UI Variable Display', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-family-mono: 'Fira Code', 'Cascadia Code', 'Source Code Pro', Consolas, monospace;
  --font-weight-regular: 400; --font-weight-medium: 500;
  --font-weight-semibold: 600; --font-weight-bold: 700;
  --font-feature-tabular: 'tnum';

  /* FONT SIZE */
  --font-size-xs: 11px; --font-size-sm: 12px; --font-size-base: 14px;
  --font-size-md: 16px; --font-size-lg: 18px; --font-size-xl: 20px;
  --font-size-2xl: 24px; --font-size-3xl: 30px; --font-size-4xl: 36px;

  /* LINE HEIGHT */
  --line-height-tight: 1.15; --line-height-snug: 1.2;
  --line-height-normal: 1.3; --line-height-relaxed: 1.5; --line-height-loose: 1.55;

  /* SPACING (base 4px) */
  --spacing-1: 4px; --spacing-2: 8px; --spacing-3: 12px; --spacing-4: 16px;
  --spacing-5: 20px; --spacing-6: 24px; --spacing-8: 32px; --spacing-10: 40px;
  --spacing-12: 48px; --spacing-16: 64px;

  /* SIZE */
  --size-sidebar-expanded: 300px; --size-navbar-height: 56px;
  --size-max-text-width: 900px;

  /* BORDER */
  --border-width-thin: 1px; --border-width-medium: 2px;
  --border-color-default: #B5BBC6; --border-color-subtle: #D8DCE3;
  --border-color-strong: #8E97A7; --border-color-focus: #FFC200;

  /* RADIUS (max xl = 8px, jamais full) */
  --radius-sm: 2px; --radius-md: 4px; --radius-lg: 6px; --radius-xl: 8px;

  /* SHADOW (élévation par ombre, pas par bordure) */
  --shadow-sm: 0 1px 2px 0 rgba(30,36,51,0.05);
  --shadow-card: 0 1px 3px 0 rgba(30,36,51,0.06), 0 1px 2px -1px rgba(30,36,51,0.04);
  --shadow-card-hover: 0 4px 8px -2px rgba(30,36,51,0.08), 0 8px 16px -4px rgba(30,36,51,0.06);
  --shadow-elevated: 0 8px 24px -4px rgba(30,36,51,0.12);
  --shadow-focus-ring: 0 0 0 2px #FFFFFF, 0 0 0 4px #FFC200;

  /* MOTION */
  --duration-fast: 150ms; --duration-normal: 250ms;
  --easing-default: cubic-bezier(0.4, 0.0, 0.2, 1.0);
}

/* ===== Thèmes sémantiques ===== */
:root, [data-theme="light"] {
  --bg-app: #FFFFFF; --bg-surface: #FAFAFA; --bg-elevated: #FFFFFF;
  --bg-hover: #ECEEF2; --bg-active: #D8DCE3;
  --text-primary: #1E2433; --text-secondary: #455166;
  --text-tertiary: #6E7A8E; --text-accent: #B38600;
  --border-default: #B5BBC6; --border-subtle: #D8DCE3; --border-strong: #8E97A7;
  --interactive-default: #FFC200; --interactive-hover: #FFCE33; --interactive-active: #D4A000;
}
[data-theme="dark"] {
  --bg-app: #1E2433; --bg-surface: #2A3244; --bg-elevated: #374155;
  --bg-hover: #2A3244; --bg-active: #374155;
  --text-primary: #FFFFFF; --text-secondary: #8E97A7;
  --text-tertiary: #6E7A8E; --text-accent: #FFC200;
  --border-default: #374155; --border-subtle: #2A3244; --border-strong: #556177;
  --interactive-default: #FFC200; --interactive-hover: #FFCE33; --interactive-active: #D4A000;
}
