/* ════════════════════════════════════════════════════════════
   Tokens globaux — indépendants du thème
   ════════════════════════════════════════════════════════════ */
:root {
    /* ── Palette brute ── */
    --color-red:    #ef4444;
    --color-blue:   #3b82f6;
    --color-green:  #4CAF50;
    --color-orange: #f59e0b;
    --color-purple: #6366f1;
    --color-pink:   #ec4899;
    --color-yellow: #eab308;
    --color-teal:   #14b8a6;

    /* ── Sémantique → palette ── */
    --color-primary: var(--color-purple);
    --color-danger:  var(--color-red);
    --color-success: var(--color-green);
    --color-warning: var(--color-orange);
    --color-info:    var(--color-blue);

    /* ── Hover / active (identiques en light et dark) ── */
    --color-red-hover:    color-mix(in srgb, var(--color-red)    85%, black);
    --color-red-active:   color-mix(in srgb, var(--color-red)    70%, black);
    --color-blue-hover:   color-mix(in srgb, var(--color-blue)   85%, black);
    --color-blue-active:  color-mix(in srgb, var(--color-blue)   70%, black);
    --color-green-hover:  color-mix(in srgb, var(--color-green)  85%, black);
    --color-green-active: color-mix(in srgb, var(--color-green)  70%, black);
    --color-orange-hover:  color-mix(in srgb, var(--color-orange) 85%, black);
    --color-orange-active: color-mix(in srgb, var(--color-orange) 70%, black);
    --color-purple-hover:  color-mix(in srgb, var(--color-purple) 85%, black);
    --color-purple-active: color-mix(in srgb, var(--color-purple) 70%, black);
    --color-pink-hover:   color-mix(in srgb, var(--color-pink)   85%, black);
    --color-pink-active:  color-mix(in srgb, var(--color-pink)   70%, black);
    --color-yellow-hover:  color-mix(in srgb, var(--color-yellow) 85%, black);
    --color-yellow-active: color-mix(in srgb, var(--color-yellow) 70%, black);
    --color-teal-hover:   color-mix(in srgb, var(--color-teal)   85%, black);
    --color-teal-active:  color-mix(in srgb, var(--color-teal)   70%, black);

    /* Alias sémantiques hover/active */
    --color-primary-hover:  var(--color-purple-hover);
    --color-primary-active: var(--color-purple-active);
    --color-danger-hover:   var(--color-red-hover);
    --color-danger-active:  var(--color-red-active);
    --color-success-hover:  var(--color-green-hover);
    --color-success-active: var(--color-green-active);
    --color-warning-hover:  var(--color-orange-hover);
    --color-warning-active: var(--color-orange-active);
    --color-info-hover:     var(--color-blue-hover);
    --color-info-active:    var(--color-blue-active);

    /* ── Rayon ── */
    --radius-xs:   4px;
    --radius-sm:   6px;
    --radius-md:   8px;
    --radius-lg:   12px;
    --radius-xl:   16px;
    --radius-full: 9999px;

    /* ── Espacements ── */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;

    /* ── Largeurs de conteneur ── */
    --container-width-xs: 240px;
    --container-width-sm: 320px;
    --container-width-md: 400px;
    --container-width-lg: 480px;
    --container-width-xl: 560px;

    /* ── Hauteur des contrôles ── */
    /* Taille par défaut (md) partagée par tous les champs de saisie (Text/Number/Select/MultiSelect/
       DatePicker/TimePicker/FileInput) et les boutons de taille md — pour qu'ils s'alignent tous
       quand ils cohabitent dans un formulaire. */
    --control-height-md: 38px;

    /* ── Typographie ── */
    /* Chasse fixe pour le contenu technique (logs, identifiants). Pile système : aucune police à
       télécharger, et le rendu reste natif sur chaque plateforme. */
    --font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;

    --font-size-xs: 11px;
    --font-size-sm: 13px;
    --font-size-md: 14px;
    --font-size-lg: 16px;
    --font-size-xl: 18px;

    --font-weight-normal:   400;
    --font-weight-medium:   500;
    --font-weight-semibold: 600;
    --font-weight-bold:     700;

    --text-xs-size:  0.75rem;
    --text-sm-size:  0.875rem;
    --text-md-size:  1rem;
    --text-lg-size:  1.25rem;
    --text-xl-size:  1.5rem;
    --text-xxl-size: 2rem;

    /* ── Ombres ── */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04);

    /* ── Transitions ── */
    --transition-fast:   150ms ease;
    --transition-normal: 200ms ease;
}

/* ════════════════════════════════════════════════════════════
   Thème Light (défaut)
   ════════════════════════════════════════════════════════════ */
:root,
[data-theme="light"] {
    /* Variantes light — fond clair pour badges/chips */
    --color-red-light:    color-mix(in srgb, var(--color-red)    15%, white);
    --color-blue-light:   color-mix(in srgb, var(--color-blue)   15%, white);
    --color-green-light:  color-mix(in srgb, var(--color-green)  15%, white);
    --color-orange-light: color-mix(in srgb, var(--color-orange) 15%, white);
    --color-purple-light: color-mix(in srgb, var(--color-purple) 15%, white);
    --color-pink-light:   color-mix(in srgb, var(--color-pink)   15%, white);
    --color-yellow-light: color-mix(in srgb, var(--color-yellow) 15%, white);
    --color-teal-light:   color-mix(in srgb, var(--color-teal)   15%, white);

    --color-primary-light: var(--color-purple-light);
    --color-danger-light:  var(--color-red-light);
    --color-success-light: var(--color-green-light);
    --color-warning-light: var(--color-orange-light);
    --color-info-light:    var(--color-blue-light);

    /* Surfaces */
    --color-bg:            #f8fafc;
    --color-surface:       #ffffff;
    --color-surface-hover: #f1f5f9;
    --color-border:        #e2e8f0;

    /* Texte */
    --color-text-primary:   #0f172a;
    --color-text-secondary: #64748b;
    --color-text-disabled:  #94a3b8;
    --color-text-inverse:   #ffffff;
}

/* ════════════════════════════════════════════════════════════
   Thème Dark
   ════════════════════════════════════════════════════════════ */
[data-theme="dark"] {
    /* Variantes light — fond sombre pour badges/chips */
    --color-red-light:    color-mix(in srgb, var(--color-red)    20%, #1e1e2e);
    --color-blue-light:   color-mix(in srgb, var(--color-blue)   20%, #1e1e2e);
    --color-green-light:  color-mix(in srgb, var(--color-green)  20%, #1e1e2e);
    --color-orange-light: color-mix(in srgb, var(--color-orange) 20%, #1e1e2e);
    --color-purple-light: color-mix(in srgb, var(--color-purple) 20%, #1e1e2e);
    --color-pink-light:   color-mix(in srgb, var(--color-pink)   20%, #1e1e2e);
    --color-yellow-light: color-mix(in srgb, var(--color-yellow) 20%, #1e1e2e);
    --color-teal-light:   color-mix(in srgb, var(--color-teal)   20%, #1e1e2e);

    --color-primary-light: var(--color-purple-light);
    --color-danger-light:  var(--color-red-light);
    --color-success-light: var(--color-green-light);
    --color-warning-light: var(--color-orange-light);
    --color-info-light:    var(--color-blue-light);

    /* Surfaces */
    --color-bg:            #0f1117;
    --color-surface:       #1e1e2e;
    --color-surface-hover: #2a2a3e;
    --color-border:        #2e2e42;

    /* Texte */
    --color-text-primary:   #e2e8f0;
    --color-text-secondary: #94a3b8;
    --color-text-disabled:  #475569;
    --color-text-inverse:   #0f172a;
}
