/* ═══════════════════════════════════════════════════════════════════════════════
   VARIABLES.CSS - Design Tokens (SOURCE UNIQUE DE VÉRITÉ)
   
   Pour changer le thème : modifier UNIQUEMENT ce fichier
   ═══════════════════════════════════════════════════════════════════════════════ */

:root {
    /* ─────────────────────────────────────────────────────────────────────────
       COULEURS
       ───────────────────────────────────────────────────────────────────────── */
    
    /* Primaire (Indigo) */
    --color-primary-50: #eef2ff;
    --color-primary-100: #e0e7ff;
    --color-primary-200: #c7d2fe;
    --color-primary-300: #a5b4fc;
    --color-primary-400: #818cf8;
    --color-primary-500: #6366f1;
    --color-primary-600: #4f46e5;
    --color-primary-700: #4338ca;
    --color-primary: var(--color-primary-500);
    
    /* Secondaire (Violet) */
    --color-secondary-400: #a78bfa;
    --color-secondary-500: #8b5cf6;
    --color-secondary-600: #7c3aed;
    --color-secondary: var(--color-secondary-500);
    
    /* Accents */
    --color-accent-green: #10b981;
    --color-accent-orange: #f59e0b;
    --color-accent-red: #ef4444;
    --color-accent-cyan: #06b6d4;
    
    /* Neutres */
    --color-white: #ffffff;
    --color-gray-50: #f9fafb;
    --color-gray-100: #f3f4f6;
    --color-gray-200: #e5e7eb;
    --color-gray-300: #d1d5db;
    --color-gray-400: #6b7280; /* WCAG AA fix: was #9ca3af (3.5:1), now 4.7:1 on white */
    --color-gray-500: #4b5563; /* WCAG AA fix: was #5b6370 (4.3:1), now 6:1 on white */
    --color-gray-600: #4b5563;
    --color-gray-700: #374151;
    --color-gray-800: #1f2937;
    --color-gray-900: #111827;
    --color-black: #000000;
    
    /* ─────────────────────────────────────────────────────────────────────────
       GRADIENTS
       ───────────────────────────────────────────────────────────────────────── */
    --gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    --gradient-hero: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #1e3a5f 100%);
    --gradient-cta: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    
    /* ─────────────────────────────────────────────────────────────────────────
       TYPOGRAPHIE
       ───────────────────────────────────────────────────────────────────────── */
    --font-family: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    
    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 1.875rem;
    --font-size-4xl: 2.25rem;
    --font-size-5xl: 3rem;
    
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    
    --line-height-tight: 1.25;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;
    
    /* ─────────────────────────────────────────────────────────────────────────
       ESPACEMENTS
       ───────────────────────────────────────────────────────────────────────── */
    --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;
    --space-20: 5rem;
    --space-24: 6rem;
    
    /* ─────────────────────────────────────────────────────────────────────────
       ARRONDIS
       ───────────────────────────────────────────────────────────────────────── */
    --radius-sm: 0.25rem;
    --radius-md: 0.5rem;
    --radius-lg: 0.75rem;
    --radius-xl: 1rem;
    --radius-2xl: 1.5rem;
    --radius-full: 9999px;
    
    /* ─────────────────────────────────────────────────────────────────────────
       OMBRES
       ───────────────────────────────────────────────────────────────────────── */
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    --shadow-primary: 0 10px 40px rgba(99, 102, 241, 0.3);
    
    /* ─────────────────────────────────────────────────────────────────────────
       TRANSITIONS
       ───────────────────────────────────────────────────────────────────────── */
    --transition-fast: 150ms ease;
    --transition-normal: 300ms ease;
    --transition-slow: 500ms ease;
    
    /* ─────────────────────────────────────────────────────────────────────────
       BREAKPOINTS (pour référence, utilisés dans media queries)
       ───────────────────────────────────────────────────────────────────────── */
    /* --breakpoint-sm: 640px;   */
    /* --breakpoint-md: 768px;   */
    /* --breakpoint-lg: 1024px;  */
    /* --breakpoint-xl: 1280px;  */
    
    /* ─────────────────────────────────────────────────────────────────────────
       Z-INDEX
       ───────────────────────────────────────────────────────────────────────── */
    --z-dropdown: 100;
    --z-header: 1000;
    --z-modal: 2000;
    --z-toast: 3000;
    
    /* ─────────────────────────────────────────────────────────────────────────
       ALIAS (compatibilité avec l'ancien code)
       ───────────────────────────────────────────────────────────────────────── */
    /* Couleurs */
    --primary: var(--color-primary);
    --primary-light: var(--color-primary-400);
    --primary-dark: var(--color-primary-600);
    --primary-bg: var(--color-primary-50);
    --primary-hover: var(--color-primary-600);
    --secondary: var(--color-secondary);
    
    /* Gris */
    --white: var(--color-white);
    --gray-50: var(--color-gray-50);
    --gray-100: var(--color-gray-100);
    --gray-200: var(--color-gray-200);
    --gray-300: var(--color-gray-300);
    --gray-400: var(--color-gray-400);
    --gray-500: var(--color-gray-500);
    --gray-600: var(--color-gray-600);
    --gray-700: var(--color-gray-700);
    --gray-800: var(--color-gray-800);
    --gray-900: var(--color-gray-900);
    
    /* Sémantiques */
    --success: var(--color-accent-green);
    --success-bg: #d1fae5;
    --warning: var(--color-accent-orange);
    --error: var(--color-accent-red);
    --danger: var(--color-accent-red);
    --error-bg: #fee2e2;
    --info: #3b82f6;
    
    /* Texte */
    --text: var(--color-gray-800);
    --text-muted: var(--color-gray-500);
    --text-sec: var(--color-gray-600);
    
    /* Tailles texte */
    --text-xs: var(--font-size-xs);
    --text-sm: var(--font-size-sm);
    --text-base: var(--font-size-base);
    --text-lg: var(--font-size-lg);
    --text-xl: var(--font-size-xl);
    --text-2xl: var(--font-size-2xl);
    
    /* Backgrounds */
    --bg: var(--color-white);
    --bg-alt: var(--color-gray-50);
    
    /* Bordures */
    --border: var(--color-gray-200);
    --radius: var(--radius-md);
    
    /* Ombres alias */
    --shadow: var(--shadow-md);
    
    /* Layout */
    --header-h: 72px;
    --sidebar-w: 280px;

    /* ─── Blog Design Tokens ─── */
    --font-family-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
    --content-width: 680px;
    --content-width-wide: 960px;
    --content-width-max: 1040px;
    --line-height-article: 1.8;
    --line-height-heading: 1.15;
    --blog-surface: var(--color-white, #ffffff);
    --blog-surface-alt: var(--color-gray-50, #f9fafb);
    --blog-text-primary: var(--color-gray-900, #111827);
    --blog-text-secondary: var(--color-gray-700, #374151);
    --blog-text-tertiary: var(--color-gray-500, #4b5563);
    --blog-text-quaternary: var(--color-gray-400, #6b7280);
    --blog-border: var(--color-gray-100, #f3f4f6);
    --blog-border-hover: var(--color-gray-200, #e5e7eb);
    --blog-gradient-accent: linear-gradient(135deg, var(--color-primary-500, #6366f1) 0%, var(--color-secondary-500, #8b5cf6) 50%, #ec4899 100%);
    --shadow-card: 0 1px 2px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.04);
    --shadow-card-hover: 0 1px 2px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.04), 0 16px 40px rgba(0,0,0,0.04);
    --ease-out-expo: cubic-bezier(0.22, 1, 0.36, 1);
    --code-bg: #0f172a;
    --code-text: #e2e8f0;
}
