/* ============================================
   OPERIA v2 — Design tokens
   Palette : Violet / Bleu électrique
   ============================================ */

:root {
  /* === Brand palette (monochrome — encre / ardoise) ===
     Les noms violet/blue sont conservés pour ne rien casser : tout le
     produit référence ces variables, on remappe juste leurs valeurs en
     niveaux de gris (échelle slate). Identité Linear/Vercel : encre + blanc. */
  --violet-50:  #F8FAFC;
  --violet-100: #F1F5F9;
  --violet-200: #E2E8F0;
  --violet-300: #CBD5E1;
  --violet-400: #94A3B8;
  --violet-500: #64748B;
  --violet-600: #0F172A;   /* Primary — encre */
  --violet-700: #1E293B;
  --violet-800: #0F172A;
  --violet-900: #020617;

  --blue-50:  #F8FAFC;
  --blue-100: #F1F5F9;
  --blue-200: #E2E8F0;
  --blue-300: #CBD5E1;
  --blue-400: #94A3B8;
  --blue-500: #475569;   /* Secondary — ardoise */
  --blue-600: #334155;
  --blue-700: #1E293B;
  --blue-800: #0F172A;
  --blue-900: #020617;

  /* === Semantic === */
  --primary: var(--violet-600);
  --primary-hover: var(--violet-700);
  --primary-soft: var(--violet-50);
  --secondary: var(--blue-500);
  --secondary-hover: var(--blue-600);

  --success: #10B981;
  --success-soft: #D1FAE5;
  --warning: #F59E0B;
  --warning-soft: #FEF3C7;
  --danger: #EF4444;
  --danger-soft: #FEE2E2;
  --info: #06B6D4;
  --info-soft: #CFFAFE;

  /* === Neutrals === */
  --ink-900: #0B0B1A;
  --ink-800: #1A1B2E;
  --ink-700: #2B2D45;
  --ink-600: #4C4F6B;
  --ink-500: #6A6D8A;
  --ink-400: #9093AE;
  --ink-300: #C6C9DA;
  --ink-200: #E2E4F0;
  --ink-100: #EEF0F8;
  --ink-50:  #F7F8FC;
  --white:   #FFFFFF;

  /* === Gradients === */
  --grad-brand: linear-gradient(135deg, #1E293B 0%, #0F172A 100%);
  --grad-brand-soft: linear-gradient(135deg, #F8FAFC 0%, #F1F5F9 100%);
  --grad-surface: linear-gradient(180deg, #FFFFFF 0%, #F7F8FC 100%);
  --grad-hero: radial-gradient(at 20% 20%, rgba(148, 163, 184, 0.10) 0px, transparent 50%),
               radial-gradient(at 85% 10%, rgba(148, 163, 184, 0.08) 0px, transparent 50%),
               radial-gradient(at 70% 85%, rgba(148, 163, 184, 0.06) 0px, transparent 50%);
  --grad-dark-panel: linear-gradient(180deg, #0B0B0E 0%, #14141A 100%);

  /* === Typography === */
  --font-sans: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;

  --fs-xs:  0.6875rem;  /* 11px */
  --fs-sm:  0.8125rem;  /* 13px */
  --fs-md:  0.9375rem;  /* 15px — base body */
  --fs-lg:  1rem;       /* 16px */
  --fs-xl:  1.125rem;   /* 18px */
  --fs-2xl: 1.375rem;   /* 22px */
  --fs-3xl: 1.625rem;   /* 26px */
  --fs-4xl: 2rem;       /* 32px */
  --fs-5xl: 2.5rem;     /* 40px */
  --fs-6xl: 3rem;       /* 48px */

  --lh-tight: 1.1;
  --lh-snug: 1.25;
  --lh-normal: 1.5;
  --lh-relaxed: 1.7;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;

  /* === Spacing === */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.25rem;
  --sp-6: 1.5rem;
  --sp-8: 2rem;
  --sp-10: 2.5rem;
  --sp-12: 3rem;
  --sp-16: 4rem;
  --sp-20: 5rem;
  --sp-24: 6rem;

  /* === Radius === */
  --r-xs: 4px;
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-xl: 18px;
  --r-2xl: 24px;
  --r-3xl: 32px;
  --r-full: 999px;

  /* === Shadows === */
  --sh-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
  --sh-sm: 0 1px 3px rgba(15, 23, 42, 0.05), 0 1px 2px rgba(15, 23, 42, 0.03);
  --sh-md: 0 4px 12px rgba(15, 23, 42, 0.06), 0 2px 4px rgba(15, 23, 42, 0.03);
  --sh-lg: 0 12px 32px rgba(15, 23, 42, 0.08), 0 4px 10px rgba(15, 23, 42, 0.04);
  --sh-xl: 0 24px 56px rgba(15, 23, 42, 0.12);
  --sh-brand: 0 8px 24px rgba(15, 23, 42, 0.12);
  --sh-blue: 0 8px 24px rgba(15, 23, 42, 0.12);
  --sh-ring: 0 0 0 3px rgba(15, 23, 42, 0.12);

  /* === Layout === */
  --sidebar-w: 260px;
  --sidebar-w-collapsed: 80px;
  --topbar-h: 72px;
  --container: 1360px;

  /* === Motion === */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out: cubic-bezier(0.33, 1, 0.68, 1);
  --t-fast: 120ms;
  --t-base: 220ms;
  --t-slow: 360ms;

  /* === Z-index === */
  --z-sticky: 10;
  --z-drawer: 50;
  --z-modal: 100;
  --z-toast: 200;
}

[data-theme='dark'] {
  --ink-900: #F7F8FC;
  --ink-800: #EEF0F8;
  --ink-700: #C6C9DA;
  --ink-600: #9093AE;
  --ink-500: #6A6D8A;
  --ink-400: #4C4F6B;
  --ink-300: #2B2D45;
  --ink-200: #1A1B2E;
  --ink-100: #12132A;
  --ink-50:  #0B0B1A;
  --white:   #181A36;
  --grad-surface: linear-gradient(180deg, #181A36 0%, #12132A 100%);
}
