/**
 * mio.land - Variables CSS centralisées
 * Source de vérité pour toutes les couleurs, polices et espacements
 * 
 * Usage: <link rel="stylesheet" href="/ux/variables.css?<?= filemtime($_SERVER['DOCUMENT_ROOT'] . '/ux/variables.css') ?>">
 * 
 * Ce fichier doit être importé AVANT les autres CSS pour que les variables soient disponibles.
 * Conçu pour être embeddable dans des exports HTML standalone.
 * 
 * Thème: sombre par défaut, clair via html[data-theme="light"]
 */

:root {
    color-scheme: dark;

    /* COULEURS DE FOND */
    --bg-primary: #0a0a0f;
    --bg-secondary: #12121a;
    --bg-tertiary: #1a1a25;
    --bg-card: rgba(22, 22, 34, 0.95);
    --bg-hover: rgba(255, 255, 255, 0.05);
    --bg-active: rgba(255, 255, 255, 0.08);
    --bg-input: var(--bg-tertiary);
    --border-color: var(--border);
    --overlay-rgb: 255, 255, 255;

    /* DAMIER LETTERBOX (éditeurs média / documents) — suit le thème */
    --ux-checker-bg: #0a0a0a;
    --ux-checker-tile: #141414;
    --ux-checker-image:
        linear-gradient(45deg, var(--ux-checker-tile) 25%, transparent 25%),
        linear-gradient(-45deg, var(--ux-checker-tile) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, var(--ux-checker-tile) 75%),
        linear-gradient(-45deg, transparent 75%, var(--ux-checker-tile) 75%);
    
    /* COULEURS DE TEXTE */
    --text-primary: #f0f0f5;
    --text-secondary: #8888a0;
    --text-muted: #5a5a70;
    --text-accent: #a78bfa;

    /* SCROLLBAR (desktop 10px capsule ; mobile/tactile → 1px via os-mode-mobile) */
    --ux-scrollbar-size: 10px;
    --ux-scrollbar-thumb: rgba(255, 255, 255, 0.14);
    --ux-scrollbar-thumb-hover: rgba(255, 255, 255, 0.20);
    
    /* COULEURS D'ACCENT */
    --accent: #4a9eff;
    --accent-hover: #3b8de6;
    --accent-purple: #8b5cf6;
    --accent-purple-hover: #7c3aed;
    
    /* COULEURS DE FEEDBACK */
    --success: #2ECC71;
    --success-hover: #27AE60;
    --error: #E74C3C;
    --error-hover: #C0392B;
    --danger: var(--error);
    --warning: #F39C12;
    --warning-hover: #E67E22;
    --info: #3498DB;
    --info-hover: #2980B9;
    
    /* COULEURS DE BOUTONS */
    --btn-default: var(--success);
    --btn-default-hover: var(--success-hover);
    --btn-primary: var(--info);
    --btn-primary-hover: var(--info-hover);
    --btn-secondary: rgba(255, 255, 255, 0.08);
    --btn-secondary-hover: rgba(255, 255, 255, 0.15);
    --btn-danger: var(--error);
    --btn-danger-hover: var(--error-hover);
    --btn-purple: var(--accent-purple);
    --btn-purple-hover: var(--accent-purple-hover);
    --btn-pink: #ec4899;
    --btn-pink-hover: #db2777;
    --btn-orange: var(--warning);
    --btn-orange-hover: var(--warning-hover);
    --btn-cyan: #00BCD4;
    --btn-cyan-hover: #00ACC1;
    
    /* BORDURES */
    --border: rgba(255, 255, 255, 0.08);
    --ux-toggle-off-track: rgba(255, 255, 255, 0.10);
    --ux-toggle-off-knob: #8888a0;
    --ux-resizer-bg: rgba(255, 255, 255, 0.08);
    --border-hover: rgba(255, 255, 255, 0.15);
    --border-focus: var(--accent-purple);
    
    /* OMBRES */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.4);
    --shadow-xl: 0 20px 60px rgba(0, 0, 0, 0.5);
    
    /* SCROLLBAR */
    --scrollbar-track: transparent;
    --scrollbar-thumb: rgba(255, 255, 255, 0.14);
    --scrollbar-thumb-hover: rgba(255, 255, 255, 0.20);
    
    /* POLICES */
    --font-ui: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-sans: 'Inter', sans-serif;
    --font-serif: 'Playfair Display', serif;
    --font-mono: 'DM Mono', monospace;
    --font-display: 'Montserrat', sans-serif;
    --font-handwritten: 'Dancing Script', cursive;
    --font-pixel: 'Pixel', monospace;
    --font-pixel-mono: 'Pixel Mono', monospace;
    /* Echelle typo (1 = desktop ; 1.1 = mode mobile, +10 %) */
    --font-scale: 1;
    
    /* ESPACEMENTS */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    --spacing-2xl: 48px;
    
    /* RAYONS DE BORDURE */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-full: 9999px;
    
    /* TRANSITIONS */
    --transition-fast: 0.15s ease;
    --transition-normal: 0.25s ease;
    --transition-slow: 0.4s ease;
    
    /* Z-INDEX */
    --z-dropdown: 100;
    --z-sidebar: 200;
    --z-modal: 1000;
    --z-toast: 2000;
    --z-tooltip: 3000;
}

/* ===================================
   MODE MOBILE — TYPO +10 %
   ===================================
   html.os-mode-mobile est pose par /os/theme-listener.js.
   Le facteur --font-scale sert aux calc() ; le zoom effectif
   (apps) est dans /ux/ux-components.css.
*/
html.os-mode-mobile {
    --font-scale: 1.1;
}

/* ===================================
   THEME CLAIR
   Spécificité html[data-theme="light"] (0,1,1) supérieure à :root (0,1,0)
   pour que les apps qui redéfinissent les tokens dans :root n'annulent
   pas le thème clair (Admin, Superadmin, Cron, etc.).
   =================================== */
html[data-theme="light"] {
    color-scheme: light;

    --bg-primary: #f7f7f4;
    --bg-secondary: #ecece8;
    --bg-tertiary: #e4e4df;
    --bg-card: rgba(255, 255, 255, 0.92);
    --bg-hover: rgba(0, 0, 0, 0.04);
    --bg-active: rgba(0, 0, 0, 0.07);
    --bg-input: var(--bg-tertiary);
    --border-color: var(--border);
    --overlay-rgb: 0, 0, 0;

    --text-primary: #1a1a22;
    --text-secondary: #5c5c6e;
    --text-muted: #8a8a9a;
    --text-accent: #6d28d9;

    --ux-scrollbar-thumb: rgba(0, 0, 0, 0.21);
    --ux-scrollbar-thumb-hover: rgba(0, 0, 0, 0.32);

    --btn-secondary: rgba(0, 0, 0, 0.06);
    --btn-secondary-hover: rgba(0, 0, 0, 0.10);

    --border: rgba(0, 0, 0, 0.12);
    --ux-toggle-off-track: rgba(0, 0, 0, 0.12);
    --ux-toggle-off-knob: #b4b4c2;
    --border-hover: rgba(0, 0, 0, 0.20);
    --ux-resizer-bg: rgba(0, 0, 0, 0.12);
    --border-color: rgba(0, 0, 0, 0.12);

    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.10);
    --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.12);
    --shadow-xl: 0 20px 60px rgba(0, 0, 0, 0.16);

    --scrollbar-track: transparent;
    --scrollbar-thumb: rgba(0, 0, 0, 0.21);
    --scrollbar-thumb-hover: rgba(0, 0, 0, 0.32);

    --ux-frost-bg: rgba(247, 247, 244, 0.55);
    --ux-frost-bg-fallback: rgba(247, 247, 244, 0.96);
    --ux-frost-border: rgba(0, 0, 0, 0.12);

    --ux-checker-bg: #f0eee8;
    --ux-checker-tile: #e2e0d8;
}

/* ===================================
   RÈGLES GLOBALES OBLIGATOIRES
   =================================== */

/* Empêcher la sélection de texte sur les éléments cliquables */
button,
.btn,
[role="button"],
[onclick],
.clickable {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Jamais de cursor: not-allowed - utiliser cursor: default */
[disabled],
.disabled {
    cursor: default;
    opacity: 0.5;
}

