/**
 * =====================================================
 * ALIAS LEGACY — superfici pubbliche (task-932)
 * =====================================================
 *
 * Si carica SUBITO DOPO design-system/tokens.css (il file generato con i
 * livelli 0-2 del vocabolario `--admin-*`) e PRIMA di rr-kit.css e dei fogli
 * di pagina. Ogni nome qui e' un puro rimando — `var(--admin-…)` — e nessuno
 * porta un colore proprio: un esadecimale in questo file e' un colore che non
 * segue il club, e `check_css_tokens` lo blocca.
 *
 * Perche' esiste: il sito pubblico leggeva CINQUE vocabolari — il vecchio
 * tokens.css (`--color-*`, `--bg-*`, `--text-*`, …), `--rr-*` di rr-kit.css,
 * `--site-*` del mini-sito, `--pass-*` del Pass, `--primary`/`--on-*` del
 * modulo d'iscrizione — e nessuno leggeva un nome che Aspetto scrivesse. Ora
 * tutti scendono nello stesso `--admin-primary`, che il blocco
 * `{% brand_style_block %}` riscrive per organizzazione.
 *
 * Le letture di questi nomi nei fogli pubblici sono un DEBITO misurato da
 * `check_css_tokens` (LEGACY_PREFIX_DEBITO_PUBBLICO): il numero puo' solo
 * scendere; il CSS nuovo legge direttamente `--admin-*`. Quando un nome
 * arriva a zero letture, la riga si cancella (task-935/936 migrano pagina
 * evento, modulo e Pass).
 *
 * Valori NON di colore (scale tipografiche, spazi, raggi, z-index, durate)
 * restano scritti: il vocabolario semantico della dashboard e' piu' stretto
 * (densita' e raggi seguono la skin del cruscotto, non il sito) e il sito
 * non deve cambiare passo per una rinomina.
 */

:root {
    /* ===================================================
       VECCHIO tokens.css PUBBLICO — colori
       =================================================== */

    /* Primary */
    --color-primary: var(--admin-primary);
    --color-primary-dark: var(--admin-brand-primary-dark);
    --color-primary-light: var(--admin-brand-primary-lift);
    --color-primary-rgb: var(--admin-primary-rgb);

    /* Accent */
    --color-accent: var(--admin-accent);
    --color-accent-gold: var(--admin-brand-accent-lift);
    --color-accent-amber: var(--admin-warning);
    --color-accent-light: var(--admin-amber-200);
    --color-accent-rgb: var(--admin-brand-accent-rgb);

    /* Stati */
    --color-success: var(--admin-success);
    --color-success-light: var(--admin-green-400);
    --color-warning: var(--admin-warning);
    --color-warning-light: var(--admin-amber-400);
    --color-error: var(--admin-danger);
    --color-error-light: var(--admin-red-500);

    /* Fondi */
    --bg-primary: var(--admin-surface);
    --bg-secondary: var(--admin-surface-sunken);
    --bg-tertiary: var(--admin-canvas);
    --bg-cream: var(--admin-gray-25);
    --bg-warm-gray: var(--admin-surface-sunken);

    /* Superfici */
    --surface-elevated: var(--admin-surface-raised);
    --surface-overlay: var(--admin-surface-overlay);
    --surface-glass: rgba(255, 255, 255, 0.85);
    --surface-glass-border: rgba(var(--admin-primary-rgb), 0.08);

    /* Inchiostro */
    --text-primary: var(--admin-ink);
    --text-secondary: var(--admin-ink-2);
    --text-muted: var(--admin-gray-400);
    --text-light: var(--admin-gray-300);
    --text-inverse: var(--admin-ink-inverse);

    /* Bordi */
    --border-light: var(--admin-border);
    --border-default: var(--admin-border-strong);
    --border-dark: var(--admin-gray-400);
    --border-accent: rgba(var(--admin-brand-accent-rgb), 0.3);

    /* ===================================================
       VECCHIO tokens.css PUBBLICO — tipografia, spazi, forme
       (valori scritti: non sono colori e non seguono il club)
       =================================================== */

    /* Caratteri: il sito classico ha la sua voce (Playfair + Inter); la
       coppia del CLUB arriva da --admin-font-heading/-body (brand block) e
       la leggono --rr-display/--rr-text e --site-font-*. */
    --font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-mono: var(--admin-font-mono);

    --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.8125rem);
    --text-sm: clamp(0.8125rem, 0.775rem + 0.19vw, 0.875rem);
    --text-base: clamp(0.9375rem, 0.9rem + 0.19vw, 1rem);
    --text-lg: clamp(1.0625rem, 1rem + 0.31vw, 1.125rem);
    --text-xl: clamp(1.1875rem, 1.1rem + 0.44vw, 1.25rem);
    --text-2xl: clamp(1.375rem, 1.25rem + 0.63vw, 1.5rem);
    --text-3xl: clamp(1.6875rem, 1.5rem + 0.94vw, 1.875rem);
    --text-4xl: clamp(2rem, 1.75rem + 1.25vw, 2.25rem);
    --text-5xl: clamp(2.5rem, 2rem + 2.5vw, 3rem);
    --text-6xl: clamp(3rem, 2.5rem + 2.5vw, 3.75rem);

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

    --leading-none: 1;
    --leading-tight: 1.15;
    --leading-snug: 1.375;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;
    --leading-loose: 1.75;

    --tracking-tighter: -0.05em;
    --tracking-tight: -0.025em;
    --tracking-normal: 0;
    --tracking-wide: 0.025em;
    --tracking-wider: 0.05em;
    --tracking-widest: 0.1em;

    /* Spazi (griglia 8px) */
    --space-0: 0;
    --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;
    --space-32: 8rem;

    --section-padding-y: clamp(3rem, 8vh, 6rem);
    --section-padding-x: clamp(1rem, 5vw, 2rem);

    --container-max: 1280px;
    --container-lg: 1024px;
    --container-md: 768px;
    --container-sm: 640px;

    /* Raggi */
    --radius-none: 0;
    --radius-sm: 0.25rem;
    --radius-default: 0.5rem;
    --radius-md: 0.75rem;
    --radius-lg: 1rem;
    --radius-xl: 1.5rem;
    --radius-2xl: 2rem;
    --radius-full: 9999px;

    /* Ombre: tinta del marchio, come prima (era il navy scritto) */
    --shadow-xs: 0 1px 2px rgba(var(--admin-primary-rgb), 0.04);
    --shadow-sm: 0 2px 4px rgba(var(--admin-primary-rgb), 0.06);
    --shadow-default: 0 4px 8px rgba(var(--admin-primary-rgb), 0.08);
    --shadow-md: 0 6px 16px rgba(var(--admin-primary-rgb), 0.1);
    --shadow-lg: 0 10px 24px rgba(var(--admin-primary-rgb), 0.12);
    --shadow-xl: 0 16px 40px rgba(var(--admin-primary-rgb), 0.14);
    --shadow-2xl: 0 24px 56px rgba(var(--admin-primary-rgb), 0.18);
    --shadow-accent: 0 8px 24px rgba(var(--admin-brand-accent-rgb), 0.25);
    --shadow-accent-lg: 0 16px 40px rgba(var(--admin-brand-accent-rgb), 0.3);
    --shadow-primary: 0 8px 24px rgba(var(--admin-primary-rgb), 0.2);
    --shadow-inner: inset 0 2px 4px rgba(var(--admin-primary-rgb), 0.06);
    --shadow-inner-lg: inset 0 4px 8px rgba(var(--admin-primary-rgb), 0.1);

    /* Movimento */
    --duration-fast: 150ms;
    --duration-normal: 250ms;
    --duration-slow: 350ms;
    --duration-slower: 500ms;

    --ease-linear: linear;
    --ease-in: cubic-bezier(0.4, 0, 1, 1);
    --ease-out: var(--admin-ease);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
    --ease-smooth: cubic-bezier(0.25, 0.1, 0.25, 1);

    --transition-fast: all 150ms var(--ease-out);
    --transition-normal: all 250ms var(--ease-out);
    --transition-slow: all 350ms var(--ease-smooth);
    --transition-transform: transform 250ms var(--ease-out);
    --transition-colors: color, background-color, border-color 200ms var(--ease-out);
    --transition-opacity: opacity 200ms var(--ease-out);
    --transition-shadow: box-shadow 250ms var(--ease-out);

    /* Piani */
    --z-base: 0;
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-fixed: 300;
    --z-modal-backdrop: 400;
    --z-modal: 500;
    --z-popover: 600;
    --z-tooltip: 700;
    --z-toast: 800;
    --z-navbar: 1000;

    /* Layout */
    --navbar-height: 80px;
    --navbar-height-mobile: 70px;
    --footer-min-height: 400px;

    /* Gradienti: composti dal livello 2 (mai da un alias: un alias non legge alias) */
    --gradient-primary: linear-gradient(135deg, var(--admin-primary) 0%, var(--admin-brand-primary-lift) 100%);
    --gradient-primary-vertical: linear-gradient(180deg, var(--admin-primary) 0%, var(--admin-brand-primary-dark) 100%);
    --gradient-accent: linear-gradient(135deg, var(--admin-brand-accent-lift) 0%, var(--admin-accent) 100%);
    --gradient-accent-warm: linear-gradient(135deg, var(--admin-amber-200) 0%, var(--admin-warning) 100%);
    --gradient-warm-bg: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
    --gradient-section-alt: linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%);
    --gradient-glass: linear-gradient(135deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 100%);
    --gradient-divider: linear-gradient(90deg, transparent 0%, var(--admin-accent) 50%, transparent 100%);
    --gradient-divider-primary: linear-gradient(90deg, transparent 0%, var(--admin-primary) 50%, transparent 100%);
    --gradient-hero-overlay: linear-gradient(
        135deg,
        rgba(var(--admin-primary-rgb), 0.7) 0%,
        rgba(var(--admin-primary-rgb), 0.6) 50%,
        rgba(var(--admin-primary-rgb), 0.75) 100%
    );

    /* Vetro */
    --glass-bg: rgba(255, 255, 255, 0.85);
    --glass-bg-strong: rgba(255, 255, 255, 0.95);
    --glass-border: rgba(var(--admin-primary-rgb), 0.08);
    --glass-shadow: 0 8px 32px rgba(var(--admin-primary-rgb), 0.1);
    --glass-blur: blur(20px);
    --glass-blur-strong: blur(30px);

    /* Componenti */
    --btn-padding-x: 1.5rem;
    --btn-padding-y: 0.75rem;
    --btn-padding-x-sm: 1rem;
    --btn-padding-y-sm: 0.5rem;
    --btn-padding-x-lg: 2rem;
    --btn-padding-y-lg: 1rem;
    --btn-radius: var(--radius-full);
    --btn-font-weight: var(--font-semibold);

    --card-padding: var(--space-6);
    --card-padding-lg: var(--space-8);
    --card-radius: var(--radius-lg);
    --card-shadow: var(--shadow-md);
    --card-shadow-hover: var(--shadow-xl);
    --card-border: 1px solid var(--border-light);

    --input-padding-x: 1rem;
    --input-padding-y: 0.75rem;
    --input-radius: var(--radius-default);
    --input-border: 1px solid var(--border-default);
    --input-border-focus: 1px solid var(--admin-accent);
    --input-shadow-focus: 0 0 0 4px rgba(var(--admin-brand-accent-rgb), 0.15);

    --icon-size-sm: 1rem;
    --icon-size-default: 1.25rem;
    --icon-size-md: 1.5rem;
    --icon-size-lg: 2rem;
    --icon-size-xl: 3rem;

    /* ===================================================
       --rr-*  (era il :root di rr-kit.css, task-281)
       =================================================== */
    --rr-accent: var(--admin-primary);
    --rr-accent-deep: var(--admin-brand-primary-deep);
    --rr-accent-bright: var(--admin-brand-primary-lift);
    --rr-accent-soft: var(--admin-primary-soft);
    --rr-accent-rgb: var(--admin-primary-rgb);

    --rr-gold: var(--admin-accent);
    --rr-gold-deep: var(--admin-brand-accent-deep);
    --rr-gold-soft: var(--admin-accent-soft);

    --rr-ink: var(--admin-ink);
    --rr-ink-deep: var(--admin-gray-900);
    --rr-paper: var(--admin-surface);

    --rr-display: var(--admin-font-heading);
    --rr-text: var(--admin-font-body);

    --rr-radius-btn: 6px;
    --rr-radius-card: 10px;
    --rr-radius-chip: 999px;
    --rr-radius-sharp: 0;

    --rr-btn-shadow: 0 6px 18px rgba(var(--admin-primary-rgb), .26);
    --rr-btn-shadow-hover: 0 10px 24px rgba(var(--admin-primary-rgb), .32);

    /* ===================================================
       --site-*  (il mini-sito, sites/theming.py — stessi nomi, stessa
       matematica; qui per i fogli che li leggono fuori dal mini-sito)
       =================================================== */
    --site-primary: var(--admin-primary);
    --site-primary-ink: var(--admin-primary-ink);
    --site-primary-soft: var(--admin-primary-soft);
    --site-primary-border: rgba(var(--admin-primary-rgb), 0.25);
    --site-accent: var(--admin-accent);
    --site-accent-ink: var(--admin-accent-ink);
    --site-accent-soft: var(--admin-accent-soft);
    --site-ink: var(--admin-ink);
    --site-ink-muted: var(--admin-ink-muted);
    --site-bg: var(--admin-surface-sunken);
    --site-surface: var(--admin-surface);
    --site-line: var(--admin-border);
    --site-font-display: var(--admin-font-heading);
    --site-font-text: var(--admin-font-body);

    /* ===================================================
       --pass-*  (era il :root di portal/css/pass.css, task-711)
       =================================================== */
    --pass-ok: var(--admin-success);
    --pass-ok-soft: var(--admin-success-bg);
    --pass-attesa: var(--admin-warning);
    --pass-attesa-soft: var(--admin-warning-bg);
    --pass-critico: var(--admin-danger);
    --pass-critico-soft: var(--admin-danger-bg);
    --pass-linea: var(--admin-border);
    --pass-grigio: var(--admin-ink-muted);
    --pass-fondo: var(--admin-canvas);

    /* ===================================================
       Modulo d'iscrizione (--primary / --on-*, registration-enhanced-v2.css)
       -----------------------------------------------------
       Il foglio della pagina ridichiara ancora questi nomi nel proprio :root
       (task-936 lo toglie); qui esistono gia' col significato giusto, cosi'
       la migrazione e' cancellare righe, non inventarne.
       =================================================== */
    --primary: var(--admin-primary);
    --primary-dark: var(--admin-brand-primary-deep);
    --primary-light: var(--admin-brand-primary-lift);
    --primary-container: var(--admin-primary-soft);
    --on-primary-container: var(--admin-brand-primary-deep);
    --secondary: var(--admin-accent);
    --surface: var(--admin-surface);
    --surface-container: var(--admin-surface-sunken);
    --surface-high: var(--admin-canvas);
    --on-surface: var(--admin-ink);
    --on-surface-variant: var(--admin-ink-2);
    --outline: var(--admin-border-strong);
    --success: var(--admin-success);
    --success-container: var(--admin-success-bg);
    --on-success-container: var(--admin-success-ink);
    --error: var(--admin-danger);
    --error-container: var(--admin-danger-bg);
    --warning: var(--admin-warning);
    --warning-container: var(--admin-warning-bg);
    --on-warning-container: var(--admin-warning-ink);
    --info-container: var(--admin-info-bg);
    --on-info-container: var(--admin-info-ink);
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --duration-fast: 0ms;
        --duration-normal: 0ms;
        --duration-slow: 0ms;
        --duration-slower: 0ms;
        --transition-fast: none;
        --transition-normal: none;
        --transition-slow: none;
    }
}
