/* styles.css - Feuille de style globale pour toutes les séances */

/* Import de polices depuis Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Fira+Code&display=swap');

/*
==============================================
MINI DESIGN SYSTEM
==============================================
Définition de tous les "design tokens" (variables) 
pour assurer la cohérence du projet.
*/
:root {
    /* 1. Palette de Couleurs */
    --color-primary: #4F46E5;       /* indigo-600 */
    --color-primary-light: #A5B4FC; /* indigo-300 */
    --color-accent: #8B5CF6;        /* violet-500 */
    --color-text-base: #334155;     /* slate-700 */
    --color-text-muted: #64748B;    /* slate-500 */
    --color-background: #f8fafc;    /* slate-50 */
    --color-surface: #ffffff;       /* white */
    --color-border: #E2E8F0;       /* slate-200 */

    /* 2. Typographie */
    --font-sans: 'Inter', sans-serif;
    --font-mono: 'Fira Code', 'Cascadia Code', monospace;
    --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-h3: 1.5rem;    /* 24px */
    --font-size-h2: 2rem;      /* 32px */
    --font-size-h1: 3rem;      /* 48px */

    /* 3. Espacements */
    --space-1: 0.25rem; /* 4px */
    --space-2: 0.5rem;  /* 8px */
    --space-4: 1rem;    /* 16px */
    --space-6: 1.5rem;  /* 24px */
    --space-8: 2rem;    /* 32px */

    /* 4. Rayons de bordure */
    --radius-md: 0.375rem; /* 6px */
    --radius-lg: 0.5rem;   /* 8px */
    --radius-xl: 0.75rem;  /* 12px */

    /* 5. Ombres */
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

/*
==============================================
STYLES GLOBAUX DE BASE
==============================================
Utilisation des tokens du Design System.
*/

/* Initialisation de la page */
html {
    font-size: 16px; /* Définit la base pour les calculs en rem */
}

body {
    font-family: var(--font-sans);
    color: var(--color-text-base);
    background-color: var(--color-background);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Styles pour les titres de section */
h1 {
    font-size: var(--font-size-h1);
    color: var(--color-primary);
    border-bottom: 4px solid var(--color-primary-light);
    padding-bottom: var(--space-4);
    margin-bottom: var(--space-8);
}

h2 {
    font-size: var(--font-size-h2);
    border-bottom: 2px solid var(--color-border);
    padding-bottom: var(--space-2);
    margin-top: var(--space-8);
    margin-bottom: var(--space-6);
    font-weight: 700;
}

h3 {
    font-size: var(--font-size-h3);
    border-left: 5px solid var(--color-primary);
    padding-left: var(--space-4);
    margin-top: var(--space-8);
    margin-bottom: var(--space-4);
    color: var(--color-primary);
    font-weight: 600;
}

/* Style pour les blocs de code */
pre {
    background-color: #E2E8F0; /* Gardé pour le contraste, pourrait devenir une variable --color-code-bg */
    border-radius: var(--radius-xl);
    padding: var(--space-6);
    overflow-x: auto;
    font-size: var(--font-size-sm);
    line-height: 1.6;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
    margin-bottom: var(--space-4);
}

code {
    font-family: var(--font-mono);
    color: var(--color-text-muted);
}

/* Styles pour les listes */
ul, ol {
    margin-left: var(--space-8);
    margin-bottom: var(--space-6);
    line-height: 1.8;
}

li {
    margin-bottom: var(--space-2);
}

/* Classes utilitaires pour la coloration syntaxique (gardées pour la compatibilité des exemples) */
.text-orange-600 { color: #EA580C; }
.text-violet-500 { color: #8B5CF6; }
.text-green-500 { color: #22C55E; }
.text-blue-500 { color: #3B82F6; }
.text-red-600 { color: #DC2626; }
.text-emerald-500 { color: #10B981; }
.text-indigo-600 { color: var(--color-primary); }
.text-indigo-200 { color: var(--color-primary-light); }
.text-slate-700 { color: var(--color-text-base); }
.text-slate-800 { color: var(--color-text-base); }
.text-blue-600 { color: #2563EB; }
.text-blue-400 { color: #60A5FA; }
.text-indigo-700 { color: #4338CA; }
