/**
 * TOKENS CSS - Variables primitives
 * Ces variables sont la base de tous les styles
 */

:root {
    /* === COULEURS NOMMÉES === */
    /* Classification RYB: Rouges (340-10°), Oranges (15-40°), Jaunes (45-70°), Verts (80-150°), Bleus (170-250°), Magentas (270-330°), Gris (<15% sat) */

    /* === ROUGES (340-10°) === */
    /* Saturation 100-60% */
    --color-rouge-100: hsl(6 100% 97%);
    --color-rouge-200: hsl(350 100% 96%);
    --color-rouge-300: hsl(0 93% 94%);
    --color-rouge-500: hsl(0 72% 51%);
    --color-rouge-600: hsl(0 63% 51%);
    --color-rouge-800: hsl(0 72% 41%);

    /* Saturation 59-30% */
    --color-rose-200: hsl(6 100% 97%);
    --color-rose-400: hsl(17 50% 93%);
    --color-rose-600: hsl(10 32% 85%);

    /* === ORANGES (15-40°) === */
    /* Saturation 100-60% */
    --color-orange-200: hsl(17 100% 97%);
    --color-orange-500: hsl(16 100% 60%);
    --color-orange-700: hsl(16 82% 54%);

    /* === JAUNES (45-70°) === */
    /* Saturation 100-60% */
    --color-jaune-200: hsl(53 98% 88%);
    --color-jaune-500: hsl(45 93% 47%);

    /* Saturation 59-30% */
    --color-or-100: hsl(44 75% 93%);
    --color-or-200: hsl(45 55% 93%);
    --color-or-500: hsl(43 68% 53%);
    --color-or-600: hsl(40 76% 31%);
    --color-or-700: hsl(42 60% 45%);
    --color-or-800: hsl(40 73% 24%);

    /* === VERTS (80-150°) === */
    /* Saturation 100-60% */
    --color-vert-200: hsl(138 76% 93%);
    --color-vert-300: hsl(156 60% 94%);
    --color-vert-400: hsl(120 60% 90%);
    --color-vert-500: hsl(142 71% 37%);
    --color-vert-600: hsl(150 100% 20%);
    --color-vert-800: hsl(150 100% 15%);

    --color-vert-menthe-200: hsl(168 75% 94%);
    --color-vert-menthe-500: hsl(166 100% 36%);
    --color-vert-menthe-700: hsl(166 100% 29%);

    /* Saturation 59-30% */
    --color-vert-menthe-400: hsl(120 40% 80%);

    /* Saturation 29-15% */
    --color-vert-100: hsl(120 60% 97%);  /* Exception: sat > 15% mais couleur très pâle */
    --color-vert-150: hsl(120 20% 93%);
    --color-vert-250: hsl(120 20% 84%);
    --color-vert-650: hsl(120 20% 69%);

    /* === BLEUS (170-250°) === */
    /* Saturation 100-60% */
    --color-bleu-100: hsl(214 100% 97%);
    --color-bleu-200: hsl(214 100% 95%);
    --color-bleu-300: hsl(206 93% 92%);
    --color-bleu-400: hsl(217 91% 60%);
    --color-bleu-500: hsl(210 100% 40%);
    --color-bleu-600: hsl(210 100% 32%);
    --color-bleu-700: hsl(214 100% 30%);
    --color-bleu-800: hsl(214 100% 23%);
    --color-bleu-900: hsl(210 100% 21%);

    --color-azur-200: hsl(205 96% 94%);
    --color-azur-500: hsl(207 77% 47%);
    --color-azur-700: hsl(207 81% 42%);

    --color-indigo-200: hsl(203 53% 93%);
    --color-indigo-600: hsl(200 100% 27%);

    /* Saturation 59-30% */
    --color-bleu-gris-300: hsl(220 100% 91%);  /* Exception: sat > 59% */
    --color-bleu-gris-400: hsl(203 37% 80%);

    /* Saturation 29-15% */
    --color-bleu-gris-100: hsl(214 100% 96%);  /* Exception: sat > 15% mais couleur très pâle */
    --color-bleu-gris-200: hsl(203 53% 93%);   /* Exception: sat > 15% */
    --color-bleu-gris-600: hsl(205 22% 70%);

    /* === MAGENTAS (270-330°) === */
    /* Saturation 100-60% */
    --color-violet-200: hsl(250 100% 96%);
    --color-violet-500: hsl(249 80% 63%);
    --color-violet-700: hsl(249 62% 53%);

    /* === GRIS (Saturation < 15%) === */
    /* Marrons - Saturation 29-15% (oranges/jaunes désaturés) */
    --color-marron-200: hsl(35 35% 91%);   /* Exception: sat > 15% mais proche */
    --color-marron-500: hsl(30 25% 44%);   /* Exception: sat > 15% mais proche */
    --color-marron-700: hsl(27 24% 35%);   /* Exception: sat > 15% mais proche */

    /* Taupes - Saturation < 15% (oranges/jaunes désaturés) */
    --color-taupe-200: hsl(30 35% 93%);    /* Exception: sat > 15% mais proche */
    --color-taupe-400: hsl(28 25% 80%);    /* Exception: sat > 15% mais proche */
    --color-taupe-600: hsl(25 20% 71%);    /* Exception: sat > 15% mais proche */
    --color-taupe-800: hsl(30 11% 56%);

    /* Gris neutres (Saturation 0%) */
    --color-noir-900: hsl(0 0% 0%);
    --color-noir-850: hsl(0 0% 4%);
    --color-noir-800: hsl(0 0% 10%);
    --color-gris-850: hsl(0 0% 16%);
    --color-gris-800: hsl(0 0% 20%);
    --color-gris-750: hsl(0 0% 23%);
    --color-gris-700: hsl(0 0% 29%);
    --color-gris-600: hsl(0 0% 35%);
    --color-gris-550: hsl(0 0% 42%);
    --color-gris-500: hsl(0 0% 33%);
    --color-gris-450: hsl(0 0% 47%);
    --color-gris-400: hsl(0 0% 48%);
    --color-gris-350: hsl(0 0% 63%);
    --color-gris-300: hsl(0 0% 82%);
    --color-gris-200: hsl(0 0% 91%);
    --color-gris-100: hsl(0 0% 94%);
    --color-gris-50: hsl(0 0% 96%);

    /* Gris chauds - Saturation < 15% (jaunes désaturés) */
    --color-gris-chaud-300: hsl(30 17% 90%);   /* Exception: sat > 15% mais proche */
    --color-gris-chaud-400: hsl(30 8% 81%);
    --color-gris-chaud-500: hsl(20 4% 68%);

    /* Beiges - Saturation 29-15% (jaunes désaturés) */
    --color-beige-100: hsl(36 100% 97%);       /* Exception: sat > 15% mais couleur très pâle */
    --color-beige-200: hsl(38 55% 92%);        /* Exception: sat > 15% */
    --color-beige-400: hsl(35 25% 81%);        /* Exception: sat > 15% mais proche */
    --color-beige-600: hsl(30 25% 69%);        /* Exception: sat > 15% mais proche */

    /* Crèmes - Saturation < 15% (jaunes/neutres très pâles) */
    --color-creme-50: hsl(0 0% 99%);
    --color-creme-100: hsl(40 33% 98%);        /* Exception: sat > 15% mais proche */
    --color-creme-200: hsl(40 33% 96%);        /* Exception: sat > 15% mais proche */

    /* Gris roses - Saturation 29-15% (rouges désaturés) */
    --color-gris-250: hsl(10 28% 85%);         /* Exception: sat > 15% mais proche */
    --color-gris-150: hsl(192 20% 94%);        /* Exception: sat > 15% mais proche, teinte bleu */

    /* Navy - Saturation 29-15% (bleus désaturés) */
    --color-navy-200: hsl(206 33% 93%);        /* Exception: sat > 15% */
    --color-navy-400: hsl(209 20% 64%);        /* Exception: sat > 15% mais proche */
    --color-navy-500: hsl(210 29% 24%);        /* Exception: sat > 15% mais proche */
    --color-navy-600: hsl(208 23% 38%);        /* Exception: sat > 15% mais proche */
    --color-navy-700: hsl(210 29% 14%);        /* Exception: sat > 15% mais proche */

    /* Blanc pur */
    --color-blanc: hsl(0 0% 100%);

    /* === ESPACEMENTS === */
    --space-0: 0;
    --space-1: 0.25rem;    /* 4px */
    --space-2: 0.5rem;     /* 8px */
    --space-3: 0.75rem;    /* 12px */
    --space-4: 1rem;       /* 16px */
    --space-5: 1.25rem;    /* 20px */
    --space-6: 1.5rem;     /* 24px */
    --space-8: 2rem;       /* 32px */
    --space-10: 2.5rem;    /* 40px */
    --space-12: 3rem;      /* 48px */
    --space-16: 4rem;      /* 64px */
    --space-20: 5rem;      /* 80px */
    --space-24: 6rem;      /* 96px */

    /* === TYPOGRAPHIE === */

    /* Familles de polices - Modern Font Stacks
       Source: https://github.com/system-fonts/modern-font-stacks */

    /* Sans-Serif Stacks */
    --font-system-ui: system-ui, sans-serif;
    --font-humanist: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
    --font-geometric-humanist: Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;
    --font-classical-humanist: Optima, Candara, 'Noto Sans', source-sans-pro, sans-serif;
    --font-neo-grotesque: Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;
    --font-industrial: Bahnschrift, 'DIN Alternate', 'Franklin Gothic Medium', 'Nimbus Sans Narrow', sans-serif-condensed, sans-serif;
    --font-rounded-sans: ui-rounded, 'Hiragino Maru Gothic ProN', Quicksand, Comfortaa, Manjari, 'Arial Rounded MT', 'Arial Rounded MT Bold', Calibri, source-sans-pro, sans-serif;

    /* Serif Stacks */
    --font-transitional: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;
    --font-old-style: 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif;
    --font-slab-serif: Rockwell, 'Rockwell Nova', 'Roboto Slab', 'DejaVu Serif', 'Sitka Small', serif;
    --font-antique: Superclarendon, 'Bookman Old Style', 'URW Bookman', 'URW Bookman L', 'Georgia Pro', Georgia, serif;
    --font-didone: Didot, 'Bodoni MT', 'Noto Serif Display', 'URW Palladio L', P052, Sylfaen, serif;

    /* Monospace Stacks */
    --font-monospace-code: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
    --font-monospace-slab: 'Nimbus Mono PS', 'Courier New', monospace;

    /* Special Stacks */
    --font-handwritten: 'Segoe Print', 'Bradley Hand', Chilanka, TSCu_Comic, casual, cursive;

    /* Emoji Support (append to any stack) */
    --font-emoji: 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';

    /* Aliases pour rétrocompatibilité */
    --font-sans: var(--font-system-ui);
    --font-serif: var(--font-transitional);
    --font-mono: var(--font-monospace-code);

    /* Tailles de police */
    --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-size-4xl: 2.25rem;   /* 36px */
    --font-size-5xl: 3rem;      /* 48px */

    /* Poids de police */
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;

    /* Hauteur de ligne */
    --line-height-tight: 1.25;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;
    --line-height-loose: 2;

    /* === BORDURES === */
    --border-width-0: 0;
    --border-width-1: 1px;
    --border-width-2: 2px;
    --border-width-4: 4px;

    /* === RAYONS DE BORDURE === */
    --radius-none: 0;
    --radius-sm: 0.125rem;   /* 2px */
    --radius-base: 0.25rem;  /* 4px */
    --radius-md: 0.375rem;   /* 6px */
    --radius-lg: 0.5rem;     /* 8px */
    --radius-xl: 0.75rem;    /* 12px */
    --radius-2xl: 1rem;      /* 16px */
    --radius-full: 9999px;

    /* === OMBRES === */
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);

    /* === TRANSITIONS === */
    --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);

    /* === LARGEURS MAXIMALES === */
    --max-width-xs: 20rem;    /* 320px */
    --max-width-sm: 24rem;    /* 384px */
    --max-width-md: 28rem;    /* 448px */
    --max-width-lg: 32rem;    /* 512px */
    --max-width-xl: 36rem;    /* 576px */
    --max-width-2xl: 42rem;   /* 672px */
    --max-width-3xl: 48rem;   /* 768px */
    --max-width-4xl: 56rem;   /* 896px */
    --max-width-5xl: 64rem;   /* 1024px */
    --max-width-6xl: 72rem;   /* 1152px */
    --max-width-7xl: 80rem;   /* 1280px */
}
