:root {
  /* ============================================================
     EDEN VANILLA — Design Tokens
     Aligné sur eden-vanilla-system-design.md v1.0
     ============================================================ */

  /* === Color Palette — Vanilla Blue === */
  --vanilla-50:  #EBF2FE;
  --vanilla-100: #C7DDFB;
  --vanilla-200: #9FC5F8;
  --vanilla-300: #77ACF4;
  --vanilla-400: #4F94F0;
  --vanilla-500: #1F6FEB;  /* Couleur clé officielle */
  --vanilla-600: #1A5EC7;
  --vanilla-700: #154CA3;
  --vanilla-800: #103B7F;
  --vanilla-900: #0B295B;

  /* === Color Palette — Neutral (Slate) === */
  --slate-50:  #F8FAFC;
  --slate-100: #F1F5F9;
  --slate-200: #E2E8F0;
  --slate-300: #CBD5E1;
  --slate-400: #94A3B8;
  --slate-500: #64748B;
  --slate-600: #475569;
  --slate-700: #334155;
  --slate-800: #1E293B;
  --slate-900: #0F172A;

  /* === Color Palette — Semantic (Emerald) === */
  --emerald-50:  #ECFDF5;
  --emerald-300: #6EE7B7;
  --emerald-500: #10B981;
  --emerald-700: #047857;
  --emerald-900: #064E3B;

  /* === Color Palette — Semantic (Amber) === */
  --amber-50:  #FFFBEB;
  --amber-300: #FCD34D;
  --amber-500: #F59E0B;
  --amber-700: #B45309;
  --amber-900: #78350F;

  /* === Color Palette — Semantic (Red) === */
  --red-50:  #FEF2F2;
  --red-300: #FCA5A5;
  --red-500: #EF4444;
  --red-700: #B91C1C;
  --red-900: #7F1D1D;

  /* === Eden Module Colors === */
  --eden-pistachio: #8BCF2F;
  --eden-berry:     #E10600;
  --eden-vanilla:   #1F6FEB;

  /* === Light Theme (default) — Surfaces === */
  --bg-primary:    var(--slate-50);    /* #F8FAFC */
  --bg-secondary:  var(--slate-100);   /* #F1F5F9 */
  --bg-tertiary:   var(--slate-200);   /* #E2E8F0 */
  --bg-elevated:   #FFFFFF;

  /* === Light Theme — Text === */
  --text-primary:   var(--slate-900);  /* #0F172A */
  --text-secondary: var(--slate-600);  /* #475569 */
  --text-tertiary:  var(--slate-400);  /* #94A3B8 */
  --text-inverse:   #FFFFFF;

  /* === Light Theme — Borders === */
  --border-color:       var(--slate-200);   /* #E2E8F0 */
  --border-color-focus: var(--vanilla-500); /* #1F6FEB */

  /* === Light Theme — Accent === */
  --accent-primary:        #FFB300;
  --accent-primary-hover:  #FFA000;
  --accent-primary-active: #FF8F00;

  /* === Light Theme — Semantic === */
  --success:        var(--emerald-500); /* #10B981 */
  --success-bg:     var(--emerald-50);  /* #ECFDF5 */
  --success-border: var(--emerald-300); /* #6EE7B7 */

  --warning:        var(--amber-500);   /* #F59E0B */
  --warning-bg:     var(--amber-50);    /* #FFFBEB */
  --warning-border: var(--amber-300);   /* #FCD34D */

  --error:          var(--red-500);     /* #EF4444 */
  --error-bg:       var(--red-50);      /* #FEF2F2 */
  --error-border:   var(--red-300);     /* #FCA5A5 */

  --info:           var(--vanilla-500); /* #1F6FEB */
  --info-bg:        var(--vanilla-50);  /* #EBF2FE */
  --info-border:    var(--vanilla-200); /* #9FC5F8 */

  /* === Shadows === */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);

  /* === Spacing === */
  --spacing-xs:  0.25rem;  /* 4px */
  --spacing-sm:  0.5rem;   /* 8px */
  --spacing-md:  1rem;     /* 16px */
  --spacing-lg:  1.5rem;   /* 24px */
  --spacing-xl:  2rem;     /* 32px */
  --spacing-2xl: 3rem;     /* 48px */

  /* === Icon Sizes === */
  --icon-xs:  14px;
  --icon-sm:  16px;
  --icon-md:  20px;   /* default */
  --icon-lg:  24px;
  --icon-xl:  32px;
  --icon-2xl: 48px;

  /* === Border Radius === */
  --radius-sm:   0.25rem;  /* 4px */
  --radius-md:   0.375rem; /* 6px */
  --radius-lg:   0.5rem;   /* 8px */
  --radius-xl:   0.75rem;  /* 12px */
  --radius-full: 9999px;

  /* === Typography — Sizes === */
  --font-xs:   0.75rem;   /* 12px */
  --font-sm:   0.875rem;  /* 14px */
  --font-base: 1rem;      /* 16px */
  --font-md:   1rem;      /* alias for base */
  --font-lg:   1.125rem;  /* 18px */
  --font-xl:   1.25rem;   /* 20px */
  --font-2xl:  1.5rem;    /* 24px */
  --font-3xl:  1.875rem;  /* 30px */

  /* === Typography — Weights === */
  --font-normal:   400;
  --font-medium:   500;
  --font-semibold: 600;
  --font-bold:     700;

  /* === Transitions === */
  --transition-fast: 150ms ease-in-out;
  --transition-base: 200ms ease-in-out;
  --transition-slow: 300ms ease-in-out;

  /* === Z-index === */
  --z-dropdown: 1000;
  --z-modal:    1100;
  --z-toast:    1200;
  --z-tooltip:  1300;
}

/* ============================================================
   Dark Theme
   ============================================================ */
[data-theme="dark"] {
  /* Surfaces */
  --bg-primary:    var(--slate-900);  /* #0F172A */
  --bg-secondary:  var(--slate-800);  /* #1E293B */
  --bg-tertiary:   var(--slate-700);  /* #334155 */
  --bg-elevated:   var(--slate-800);  /* #1E293B */

  /* Text */
  --text-primary:   var(--slate-50);   /* #F8FAFC */
  --text-secondary: var(--slate-200);  /* #E2E8F0 */
  --text-tertiary:  var(--slate-400);  /* #94A3B8 */
  --text-inverse:   var(--slate-900);  /* #0F172A */

  /* Borders */
  --border-color:       var(--slate-700);   /* #334155 */
  --border-color-focus: var(--vanilla-400); /* #4F94F0 */

  /* Accent */
  --accent-primary:        #FFB300;
  --accent-primary-hover:  #FFA000;
  --accent-primary-active: #FF8F00;

  /* Semantic */
  --success:        #34D399;
  --success-bg:     var(--emerald-900); /* #064E3B */
  --success-border: var(--emerald-500); /* #10B981 */

  --warning:        #FBBF24;
  --warning-bg:     var(--amber-900);   /* #78350F */
  --warning-border: var(--amber-500);   /* #F59E0B */

  --error:          #F87171;
  --error-bg:       var(--red-900);     /* #7F1D1D */
  --error-border:   var(--red-500);     /* #EF4444 */

  --info:           var(--vanilla-400); /* #4F94F0 */
  --info-bg:        var(--vanilla-900); /* #0B295B */
  --info-border:    var(--vanilla-500); /* #1F6FEB */
}
