/* ============================================
   THEME VARIABLES - SINGLE SOURCE OF TRUTH
   FisiomanagerPro Design System v1.0

   Questo file DEVE essere caricato PRIMA di tutti
   gli altri CSS. Definisce le variabili globali
   usate da DevExpressCustomTheme, LayoutModern,
   SchedulerModern, DettagliAnagraficaV4 ecc.
   ============================================ */

:root {
    /* ===== COLORI PRIMARI - Brand XManagerPro (Blu Elettrico / Blu Notte) ===== */
    --primary-color: #2F6FED;
    --primary: #2F6FED;
    --primary-dark: #0E1F38;
    --primary-light: #E4EDFC;
    --primary-hover: #2558C4;
    --dx-primary-light: rgba(47, 111, 237, 0.1);

    /* Toni Navy della login (identikit, approvato 17/07/2026) */
    --navy-mid: #14294f;    /* gradiente medio (55%) */
    --navy-light: #1c3a68;  /* gradiente più chiaro (100%) */

    /* Navy di sostituzione per il Blu Elettrico sui FONDI pieni/gradienti
       (bottoni, badge, header residui, righe selezionate). Scelto a vista
       dall'utente sullo sfondo della login (17/07/2026). NON tocca link,
       bordi focus, icone attive/selezionate: quelle restano Blu Elettrico. */
    --navy-accent: #213858;

    /* Gradiente header unificato: sfumatura soffice tutta su toni scuri
       ravvicinati, non risale mai fino al Blu Elettrico acceso. Usato su
       header popup/modali, header principale app, header gruppo menu laterale. */
    --header-gradient: linear-gradient(135deg, var(--primary-dark) 0%, var(--navy-mid) 55%, var(--navy-light) 100%);
    --header-gradient-hover: linear-gradient(135deg, var(--navy-mid) 0%, var(--navy-light) 55%, #234a82 100%);

    /* ===== COLORI UI / SFONDI ===== */
    --bg-color: #f5f6fa;
    --bg-white: #ffffff;
    /* Sfondo "main" DevExpress. Usato anche come colore del TESTO sui bottoni
       DevExpress pieni navy (.dxbButton_MaterialCompact/.dxbButtonSys senza
       classe esplicita) in DevExpressCustomTheme.css: bianco per contrasto sul
       fondo --navy-accent, coerente con i bottoni .btn-primary. */
    --dx-color-main-bg: #ffffff;
    --bg-light: #f8f9fa;
    --bg-lighter: #fafbfc;
    --bg-hover: #edf2f7;
    --bg-selected: #dce6f0;
    --bg-alternate: #fafbfc;

    /* ===== BORDI ===== */
    --border-color: #e2e8f0;
    --border-light: #f0f1f3;
    --border-dark: #cbd5e1;
    --border-focus: var(--primary-color);
    --dx-border-color: #e1e5e9;

    /* ===== TESTI ===== */
    --text-primary: #1e293b;
    --text-secondary: #64748b;
    --text-muted: #94a3b8;
    --text-white: #ffffff;
    --text-light: #a0aec0;
    --dx-text-primary: #495057;
    --dx-text-secondary: #6c757d;

    /* ===== SCALA GRIGI ===== */
    --gray-50: #f8f9fa;
    --gray-100: #e9ecef;
    --gray-200: #dee2e6;
    --gray-300: #ced4da;
    --gray-500: #6c757d;
    --gray-700: #495057;
    --gray-900: #212529;

    /* ===== STATI / SEMANTICI ===== */
    --success: #28a745;
    --success-light: #d4edda;
    --success-dark: #155724;
    --danger: #dc3545;
    --danger-light: #f8d7da;
    --danger-dark: #721c24;
    --warning: #ffc107;
    --warning-light: #fff3cd;
    --warning-dark: #856404;
    --info: #17a2b8;
    --info-light: #d1ecf1;
    --info-dark: #0c5460;

    /* ===== COLORI ACCENTO ===== */
    --teal: #00C2A6;
    --teal-light: #DFF8F3;
    --indigo: #3730A3;
    --indigo-light: #E0E7FF;
    --orange: #F57C00;
    --orange-light: #FFF3E0;
    --accent-corallo: #FF5D45;
    --accent-corallo-light: #FFEAE6;

    /* ===== ICONE - Stato "a riposo" (identikit brand, approvato 10/07/2026) ===== */
    --icon-rest: #626C7A;
    --icon-rest-dark-bg: #FAFAF9;

    /* ===== STATUS WORKFLOW APPUNTAMENTI ===== */
    --status-prenota: #FCD34D;
    --status-prenota-text: #78350F;
    --status-accettato: #6EE7B7;
    --status-accettato-text: #065F46;
    --status-erogato: #D1D5DB;
    --status-erogato-text: #374151;
    --status-sospeso: #708090;
    --status-sospeso-text: #ffffff;
    --status-annullato: #F87171;
    --status-annullato-text: #ffffff;
    --status-fatturato: #60A5FA;
    --status-fatturato-text: #ffffff;

    /* ===== CHAT ===== */
    --chat-header-bg: var(--primary-dark);
    --chat-header-hover: #34495e;
    --chat-sent-bg: var(--navy-accent);
    --chat-badge-bg: var(--danger);
    --chat-avatar-bg: var(--navy-accent);
    --chat-avatar-sent-bg: var(--success);
    --chat-read-color: #48bb78;
    --chat-error-bg: #fff5f5;
    --chat-error-border: #fc8181;
    --chat-error-text: #c53030;
    --chat-disabled-bg: #fff8e1;
    --chat-disabled-border: #ffd54f;
    --chat-disabled-text: #f57f17;

    /* ===== TIPOGRAFIA - Compatta ===== */
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-family-display: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-size-xs: 10px;
    --font-size-sm: 11px;
    --font-size-base: 12px;
    --font-size-md: 13px;
    --font-size-lg: 14px;
    --font-size-xl: 1.125rem;
    --font-size-2xl: 1.375rem;

    /* ===== LAYOUT - Compatto ===== */
    --header-height: 44px;
    --sidebar-width: 260px;
    --sidebar-collapsed: 64px;
    --right-panel-width: 340px;
    --footer-height: 40px;
    --toolbar-height: 28px;
    --toolbar-font-size: 10px;

    /* ===== BORDER RADIUS - Compatto ===== */
    --radius-sm: 3px;
    --radius-base: 5px;
    --radius-lg: 7px;
    --radius-xl: 12px;
    --radius-full: 9999px;

    /* ===== OMBRE ===== */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-base: 0 2px 4px 0 rgba(0, 0, 0, 0.08);
    --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 10px 40px rgba(0, 0, 0, 0.15);

    /* ===== TRANSIZIONI ===== */
    --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-base: 300ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);

    /* ===== Z-INDEX ===== */
    --z-dropdown: 1000;
    --z-sticky: 1020;
    --z-fixed: 1030;
    --z-modal-backdrop: 1040;
    --z-modal: 1050;
    --z-popover: 1060;
    --z-tooltip: 1070;

    /* ===== PRIVACY OVERLAY (Dashboard coperte) =====
       Usa le variabili primary del tema in modo che BrandingService
       (override per tenant) si propaghi anche alla schermata di copertura. */
    --privacy-overlay-bg: linear-gradient(135deg, var(--primary-dark) 0%, var(--navy-accent) 100%);
    --privacy-icon-color: #ffffff;
    --privacy-icon-glow: rgba(255, 255, 255, 0.35);
    --privacy-btn-gradient: linear-gradient(135deg, var(--navy-accent) 0%, var(--primary-dark) 100%);
    --privacy-btn-gradient-hover: linear-gradient(135deg, var(--primary-hover) 0%, var(--navy-accent) 100%);
    --privacy-btn-shadow: rgba(0, 0, 0, 0.35);
    --privacy-btn-shadow-hover: rgba(0, 0, 0, 0.5);
    --privacy-content-bg: rgba(255, 255, 255, 0.08);
    --privacy-content-border: rgba(255, 255, 255, 0.15);
    --privacy-text-muted: rgba(255, 255, 255, 0.75);
    --privacy-text-hint: rgba(255, 255, 255, 0.45);

    /* ===== KPI CARDS - Colori semantici ===== */
    --kpi-success: #4CAF50;
    --kpi-success-dark: #388E3C;
    --kpi-success-light: #81C784;
    --kpi-success-bg: rgba(76, 175, 80, 0.1);

    --kpi-danger: #F44336;
    --kpi-danger-dark: #D32F2F;
    --kpi-danger-bg: rgba(244, 67, 54, 0.1);

    --kpi-warning: #FF9800;
    --kpi-warning-dark: #F57C00;
    --kpi-warning-light: #FFB74D;
    --kpi-warning-bg: rgba(255, 152, 0, 0.1);
    --kpi-warning-contrast: #E65100;

    --kpi-info: #2196F3;
    --kpi-info-dark: #1565C0;
    --kpi-info-darker: #1976D2;
    --kpi-info-light: #64B5F6;
    --kpi-info-bg: rgba(33, 150, 243, 0.1);

    --kpi-cyan: #00BCD4;
    --kpi-cyan-dark: #0097A7;
    --kpi-cyan-light: #4DD0E1;
    --kpi-cyan-bg: rgba(0, 188, 212, 0.1);

    --kpi-teal: #009688;
    --kpi-teal-dark: #00796B;
    --kpi-teal-bg: rgba(0, 150, 136, 0.1);

    --kpi-indigo: #3F51B5;
    --kpi-indigo-dark: #303F9F;
    --kpi-indigo-bg: rgba(63, 81, 181, 0.1);

    --kpi-purple-accent: #6f42c1;
    --kpi-purple-accent-dark: #5a32a3;
    --kpi-purple-accent-bg: rgba(111, 66, 193, 0.1);

    --kpi-teal-bright: #20c997;
    --kpi-teal-bright-dark: #17a085;
    --kpi-teal-bright-bg: rgba(32, 201, 151, 0.1);

    --kpi-orange-bright: #fd7e14;
    --kpi-orange-bright-dark: #e86a0c;
    --kpi-orange-bright-bg: rgba(253, 126, 20, 0.1);

    /* ===== KPI GROUPS - Sezioni raggruppate ===== */
    --kpi-group-attivi-gradient: linear-gradient(135deg, #4CAF50 0%, #388E3C 100%);
    --kpi-group-passivi-gradient: linear-gradient(135deg, #F44336 0%, #D32F2F 100%);
    --kpi-group-body-bg: #fafafa;

    /* ===== RANKING HEADERS - Gradienti ===== */
    --ranking-header-success: linear-gradient(135deg, #4CAF50 0%, #388E3C 100%);
    --ranking-header-warning: linear-gradient(135deg, #FF9800 0%, #F57C00 100%);
    --ranking-header-primary: linear-gradient(135deg, #2196F3 0%, #1565C0 100%);
    --ranking-header-info: linear-gradient(135deg, #00BCD4 0%, #0097A7 100%);
    --ranking-header-danger-soft: linear-gradient(135deg, rgba(231, 76, 60, 0.1) 0%, rgba(192, 57, 43, 0.1) 100%);
    --ranking-header-warning-soft: linear-gradient(135deg, rgba(243, 156, 18, 0.1) 0%, rgba(230, 126, 34, 0.1) 100%);
    --ranking-header-success-soft: linear-gradient(135deg, rgba(39, 174, 96, 0.1) 0%, rgba(46, 204, 113, 0.1) 100%);

    /* ===== RANKING MEDAL / BADGES ===== */
    --ranking-gold-gradient: linear-gradient(135deg, #ffd700 0%, #ffb700 100%);
    --ranking-gold-text: #7a6200;
    --ranking-silver-gradient: linear-gradient(135deg, #c0c0c0 0%, #a8a8a8 100%);
    --ranking-silver-text: #555;
    --ranking-bronze-gradient: linear-gradient(135deg, #cd7f32 0%, #b87333 100%);
    --ranking-scaduto-gradient: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%);
    --ranking-urgente-gradient: linear-gradient(135deg, #f39c12 0%, #e67e22 100%);
    --ranking-attenzione-gradient: linear-gradient(135deg, #ffc107 0%, #ffb300 100%);
    --ranking-attenzione-text: #7a6200;
    --ranking-success-gradient: linear-gradient(135deg, #27ae60 0%, #2ecc71 100%);

    /* ===== RANKING BARS ===== */
    --ranking-bar-success: linear-gradient(90deg, #4CAF50, #81C784);
    --ranking-bar-warning: linear-gradient(90deg, #FF9800, #FFB74D);
    --ranking-bar-primary: linear-gradient(90deg, #2196F3, #64B5F6);
    --ranking-bar-info: linear-gradient(90deg, #00BCD4, #4DD0E1);
    --ranking-bar-danger: linear-gradient(90deg, #f39c12 0%, #e74c3c 100%);

    /* ===== RANKING TEXT / STATES ===== */
    --ranking-value-primary: #3498db;
    --ranking-value-danger: #e74c3c;
    --ranking-value-warning: #f39c12;
    --ranking-value-success: #27ae60;
    --ranking-name-color: #2c3e50;
    --ranking-subtitle-color: #adb5bd;

    /* ===== PERIOD INFO BADGE ===== */
    --period-info-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --period-info-shadow: rgba(102, 126, 234, 0.3);

    /* ===== CTA ORANGE (es. Analisi Centro) ===== */
    --cta-orange-gradient: linear-gradient(135deg, #e65100 0%, #bf360c 100%);
    --cta-orange-gradient-hover: linear-gradient(135deg, #bf360c 0%, #8d1a00 100%);
    --cta-orange-shadow: rgba(230, 81, 0, 0.4);
    --cta-orange-shadow-hover: rgba(230, 81, 0, 0.5);

    /* ===== DASHBOARD CARDS ===== */
    --card-bg: #ffffff;
    --card-radius: 12px;
    --card-radius-lg: 16px;
    --card-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    --card-shadow-hover: 0 6px 16px rgba(0, 0, 0, 0.15);
    --card-shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.08);
    --card-border-light: #f0f0f0;
    --card-divider: #e0e0e0;

    /* ===== DASHBOARD TEXT MUTED ===== */
    --text-label: #666;
    --text-subtitle: #888;
    --text-placeholder: #aaa;
    --text-dark-alt: #333;
}
