/* ===========================================
   CONFIGURAZIONE COLORI CENTRALIZZATA
   Palette di colori specifiche per ciascun ruolo
   =========================================== */

/* ===== PALETTE COLORI - GESTITE DINAMICAMENTE DA JAVASCRIPT ===== */
/* Le definizioni specifiche per ruolo (admin, consulente, azienda) e colori aggiuntivi
   sono gestite dinamicamente dal ColorPresetManager in color-presets.js
   Non definire qui colori che vengono sovrascritti dal JavaScript */

/* ===== COLORI COMUNI (NEUTRI E DI STATO) ===== */
:root {
  /* Bianchi e grigi chiari */
  --color-white: #ffffff;
  --color-gray-50: #f9fafb;
  --color-gray-100: #f3f4f6;
  --color-gray-200: #e5e7eb;
  --color-gray-300: #d1d5db;

  /* Grigi medi */
  --color-gray-400: #9ca3af;
  --color-gray-500: #6b7280;
  --color-gray-600: #4b5563;
  --color-gray-700: #374151;
  --color-gray-800: #1f2937;
  --color-gray-900: #111827;

  /* Nero */
  --color-black: #000000;

  /* Colori di stato comuni */
  --color-success: #10b981;
  --color-success-light: #d1fae5;
  --color-success-dark: #059669;

  --color-danger: #ef4444;
  --color-danger-light: #fee2e2;
  --color-danger-dark: #dc2626;

  --color-warning: #f59e0b;
  --color-warning-light: #fef3c7;
  --color-warning-dark: #d97706;

  --color-info: #3b82f6;
  --color-info-light: #dbeafe;
  --color-info-dark: #2563eb;
}

/* ===== VARIABILI PRINCIPALI - GESTITE DA JAVASCRIPT ===== */
/* Le variabili --color-primary, --color-secondary, ecc. sono impostate
   dinamicamente dal ColorPresetManager in base al ruolo e al preset selezionato */

/* ===== COLORI UI/INTERFACCIA ===== */
:root {
  /* Sfondi */
  --color-bg-primary: var(--color-white);
  --color-bg-secondary: var(--color-gray-100);
  --color-bg-tertiary: var(--color-gray-200);

  /* Bordi */
  --color-border-light: var(--color-gray-200);
  --color-border-medium: var(--color-gray-300);
  --color-border-dark: var(--color-gray-400);

  /* Testi */
  --color-text-primary: var(--color-gray-900);
  --color-text-secondary: var(--color-gray-600);
  --color-text-muted: var(--color-gray-500);
  --color-text-light: var(--color-white);

  /* Overlay e trasparenze */
  --color-overlay-light: rgba(255, 255, 255, 0.8);
  --color-overlay-medium: rgba(255, 255, 255, 0.6);
  --color-overlay-dark: rgba(0, 0, 0, 0.6);

  /* Blur effects */
  --color-glass-light: rgba(255, 255, 255, 0.9);
  --color-glass-medium: rgba(255, 255, 255, 0.8);
  --color-glass-dark: rgba(55, 65, 81, 0.1);
}

/* ===== COLORI SPECIFICI PER COMPONENTI ===== */
:root {
  /* Bottoni */
  --color-btn-primary: var(--color-primary);
  --color-btn-primary-hover: var(--color-primary-dark);
  --color-btn-secondary: var(--color-secondary);
  --color-btn-secondary-hover: var(--color-secondary-dark);

  /* Cards */
  --color-card-bg: var(--color-gray-50);
  --color-card-border: var(--color-border-light);
  --color-card-shadow: rgba(0, 0, 0, 0.1);

  /* Modali */
  --color-modal-bg: var(--color-glass-light);
  --color-modal-overlay: var(--color-overlay-dark);

  /* Form inputs */
  --color-input-bg: var(--color-white);
  --color-input-border: var(--color-border-medium);
  --color-input-focus: var(--color-primary);
  --color-input-error: var(--color-danger);
}

/* ===== GRADIENTI ===== */
:root {
  /* Gradiente principale */
  --gradient-primary: linear-gradient(135deg, var(--color-primary-gradient-start), var(--color-primary-gradient-end));

  /* Gradiente neutro */
  --gradient-neutral: linear-gradient(135deg, var(--color-gray-100), var(--color-gray-200));

  /* Gradiente sfondo */
  --gradient-bg: linear-gradient(45deg, var(--color-gray-50), var(--color-gray-100), var(--color-gray-50));
}

/* ===== UTILITÀ ===== */
/* Classe per applicare il gradiente primario */
.gradient-primary {
  background: var(--gradient-primary);
}

/* Classe per testo primario */
.text-primary {
  color: var(--color-primary);
}

/* Classi per stati */
.text-success { color: var(--color-success); }
.text-danger { color: var(--color-danger); }
.text-warning { color: var(--color-warning); }
.text-info { color: var(--color-info); }

/* Classi per sfondi */
.bg-primary { background-color: var(--color-primary); }
.bg-secondary { background-color: var(--color-secondary); }
.bg-success { background-color: var(--color-success); }
.bg-danger { background-color: var(--color-danger); }
.bg-warning { background-color: var(--color-warning); }
.bg-info { background-color: var(--color-info); }

/* ===== CLASSI SPECIFICHE PER RUOLO - GESTITE DA JAVASCRIPT ===== */
/* Le classi che utilizzano variabili specifiche per ruolo sono supportate
   dalle variabili CSS impostate dinamicamente dal ColorPresetManager */

/* Admin */
.admin-primary { color: var(--admin-primary); }
.admin-bg-primary { background-color: var(--admin-primary); }
.admin-gradient { background: linear-gradient(135deg, var(--admin-gradient-start), var(--admin-gradient-end)); }

/* Consulente */
.consulente-primary { color: var(--consulente-primary); }
.consulente-bg-primary { background-color: var(--consulente-primary); }
.consulente-gradient { background: linear-gradient(135deg, var(--consulente-gradient-start), var(--consulente-gradient-end)); }

/* Aziende */
.azienda-primary { color: var(--azienda-primary); }
.azienda-bg-primary { background-color: var(--azienda-primary); }
.azienda-gradient { background: linear-gradient(135deg, var(--azienda-gradient-start), var(--azienda-gradient-end)); }


/* ===== LIGHT THEME - SAME STRUCTURE AS DARK THEME ===== */
/* Generic cards - following dark theme pattern exactly */
.card,
.admin-card,
.consulente-card,
.azienda-card {
  background-color: var(--color-card-bg);
  border-color: var(--color-border-light);
  color: var(--color-text-primary);
}

.card-header,
.admin-card-header,
.consulente-card-header,
.azienda-card-header {
  background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%) !important;
  border-color: var(--color-border-light);
  color: var(--color-text-primary);
}

.card-body,
.admin-card-body,
.consulente-card-body,
.azienda-card-body {
  background-color: var(--color-card-bg);
  color: var(--color-text-primary);
}

/* Hover effects - following dark theme pattern */
.admin-card:hover,
.consulente-card:hover,
.azienda-card:hover {
  background-color: var(--color-bg-secondary) !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.1) !important;
}

/* Container backgrounds - ESSENTIAL for card visibility */
.admin-container,
.consulente-container,
.azienda-container {
  background-color: var(--color-bg-tertiary);
  min-height: 100vh;
}

.admin-main,
.consulente-main,
.azienda-main {
  background-color: var(--color-bg-tertiary) !important;
}

/* Page body background */
body {
  background-color: var(--color-bg-tertiary);
}

/* ===== SPECIFIC ELEMENT IMPROVEMENTS ===== */
/* Checkbox groups - darker than containing cards */
.checkbox-group {
  background: var(--color-gray-100) !important;
  border: 1px solid var(--color-border-medium) !important;
  color: var(--color-text-primary) !important;
}

.checkbox-group:hover {
  background: var(--color-gray-200) !important;
  border-color: var(--color-border-medium) !important;
}

/* Color preset cards - darker than containing cards */
.color-preset-card {
  background: var(--color-gray-100) !important;
  border: 1px solid var(--color-border-medium) !important;
  color: var(--color-text-primary) !important;
}

.color-preset-card:hover {
  background: var(--color-gray-200) !important;
  border-color: var(--color-border-medium) !important;
}

.color-preset-card.active {
  background: var(--color-gray-300) !important;
  border-color: var(--color-primary) !important;
}

/* ===== DARK THEME OVERRIDES FOR SPECIFIC ELEMENTS ===== */
/* Dark theme checkbox groups */
.dark-theme .checkbox-group {
  background: var(--color-bg-tertiary) !important;
  border: 1px solid var(--color-border-medium) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .checkbox-group:hover {
  background: var(--color-bg-secondary) !important;
  border-color: var(--color-border-medium) !important;
}

/* Dark theme color preset cards */
.dark-theme .color-preset-card {
  background: var(--color-bg-tertiary) !important;
  border: 1px solid var(--color-border-medium) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .color-preset-card:hover {
  background: var(--color-bg-secondary) !important;
  border-color: var(--color-border-medium) !important;
}

.dark-theme .color-preset-card.active {
  background: var(--color-bg-secondary) !important;
  border-color: var(--color-primary) !important;
}

/* ===== CLASSI PER PRESET AGGIUNTIVI - GESTITE DA JAVASCRIPT ===== */
/* Le variabili per i colori aggiuntivi sono impostate dinamicamente dal ColorPresetManager */

/* Rosso */
.rosso-primary { color: var(--rosso-primary); }
.rosso-bg-primary { background-color: var(--rosso-primary); }
.rosso-gradient { background: linear-gradient(135deg, var(--rosso-gradient-start), var(--rosso-gradient-end)); }

/* Viola */
.viola-primary { color: var(--viola-primary); }
.viola-bg-primary { background-color: var(--viola-primary); }
.viola-gradient { background: linear-gradient(135deg, var(--viola-gradient-start), var(--viola-gradient-end)); }

/* Arancione */
.arancione-primary { color: var(--arancione-primary); }
.arancione-bg-primary { background-color: var(--arancione-primary); }
.arancione-gradient { background: linear-gradient(135deg, var(--arancione-gradient-start), var(--arancione-gradient-end)); }

/* ===== TEMA SCURO ===== */
:root {
  /* Colori tema scuro */
  --dark-bg-primary: #1a1a1a;
  --dark-bg-secondary: #2d2d2d;
  --dark-bg-tertiary: #404040;
  --dark-bg-card: #2a2a2a;
  
  --dark-text-primary: #ffffff;
  --dark-text-secondary: #e0e0e0;
  --dark-text-muted: #b0b0b0;
  
  --dark-border-light: #404040;
  --dark-border-medium: #555555;
  --dark-border-dark: #666666;
  
  --dark-overlay-light: rgba(0, 0, 0, 0.8);
  --dark-overlay-medium: rgba(0, 0, 0, 0.6);
  --dark-overlay-dark: rgba(255, 255, 255, 0.1);
  
  --dark-glass-light: rgba(42, 42, 42, 0.9);
  --dark-glass-medium: rgba(42, 42, 42, 0.8);
  --dark-glass-dark: rgba(255, 255, 255, 0.05);
}

/* Classe per applicare il tema scuro */
.dark-theme {
  /* Sfondi */
  --color-bg-primary: var(--dark-bg-primary);
  --color-bg-secondary: var(--dark-bg-secondary);
  --color-bg-tertiary: var(--dark-bg-tertiary);
  
  /* Testi */
  --color-text-primary: var(--dark-text-primary);
  --color-text-secondary: var(--dark-text-secondary);
  --color-text-muted: var(--dark-text-muted);
  
  /* Bordi */
  --color-border-light: var(--dark-border-light);
  --color-border-medium: var(--dark-border-medium);
  --color-border-dark: var(--dark-border-dark);
  
  /* Overlay e trasparenze */
  --color-overlay-light: var(--dark-overlay-light);
  --color-overlay-medium: var(--dark-overlay-medium);
  --color-overlay-dark: var(--dark-overlay-dark);
  
  /* Cards e componenti */
  --color-card-bg: var(--dark-glass-light);
  --color-modal-bg: var(--dark-glass-light);
  --color-input-bg: var(--dark-bg-tertiary);
}

/* Stili specifici per il tema scuro */
.dark-theme body {
  background-color: var(--color-bg-primary);
  color: var(--color-text-primary);
}

.dark-theme .admin-container,
.dark-theme .consulente-container,
.dark-theme .azienda-container {
  background-color: var(--color-bg-primary);
}

.dark-theme .card,
.dark-theme .admin-card,
.dark-theme .consulente-card,
.dark-theme .azienda-card {
  background-color: var(--color-card-bg);
  border-color: var(--color-border-light);
  color: var(--color-text-primary);
}

.dark-theme .card-header,
.dark-theme .admin-card-header,
.dark-theme .consulente-card-header,
.dark-theme .azienda-card-header {
  background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%) !important;
  border-color: var(--color-border-light);
  color: var(--color-text-primary);
}

.dark-theme .card-body,
.dark-theme .admin-card-body,
.dark-theme .consulente-card-body,
.dark-theme .azienda-card-body {
  background-color: var(--color-card-bg);
  color: var(--color-text-primary);
}

.dark-theme .navbar,
.dark-theme .admin-sidebar,
.dark-theme .consulente-sidebar,
.dark-theme .azienda-sidebar {
  background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%) !important;
  border-color: var(--color-border-light);
}

.dark-theme .admin-main,
.dark-theme .consulente-main,
.dark-theme .azienda-main {
  background-color: var(--color-bg-primary) !important;
}

.dark-theme .admin-header,
.dark-theme .consulente-header,
.dark-theme .azienda-header {
  background: linear-gradient(135deg, var(--color-bg-primary) 0%, var(--color-bg-secondary) 100%) !important;
  border-color: var(--color-border-light);
}

.dark-theme .admin-header h1,
.dark-theme .consulente-header h1,
.dark-theme .azienda-header h1,
.dark-theme h1, .dark-theme h2, .dark-theme h3, .dark-theme h4, .dark-theme h5, .dark-theme h6 {
  color: var(--color-text-primary) !important;
}

.dark-theme .text-muted {
  color: var(--color-text-muted) !important;
}

.dark-theme .nav-link {
  color: var(--color-text-secondary) !important;
}

.dark-theme .nav-link:hover,
.dark-theme .nav-link.active {
  color: var(--color-text-primary) !important;
}

.dark-theme .form-control,
.dark-theme .form-select {
  background-color: var(--color-input-bg);
  border-color: var(--color-border-medium);
  color: var(--color-text-primary);
}

.dark-theme .form-control:focus,
.dark-theme .form-select:focus {
  background-color: var(--color-input-bg);
  border-color: var(--color-primary);
  color: var(--color-text-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--color-primary), 0.25);
}

.dark-theme .table {
  color: var(--color-text-primary);
  background-color: var(--color-bg-primary);
  border-color: var(--color-border-light);
}

.dark-theme .table th {
  background-color: var(--color-bg-secondary) !important;
  color: var(--color-text-primary) !important;
  border-color: var(--color-border-light) !important;
}

.dark-theme .table td {
  background-color: var(--color-bg-primary) !important;
  color: var(--color-text-primary) !important;
  border-color: var(--color-border-light) !important;
}

.dark-theme .table-striped > tbody > tr:nth-of-type(odd) > td,
.dark-theme .table-striped > tbody > tr:nth-of-type(odd) > th {
  background-color: var(--color-bg-secondary) !important;
}

.dark-theme .table-striped > tbody > tr:nth-of-type(even) > td {
  background-color: var(--color-bg-primary) !important;
}

.dark-theme .modal-content {
  background-color: var(--color-modal-bg);
  border-color: var(--color-border-light);
}

.dark-theme .dropdown-menu {
  background-color: var(--color-bg-secondary);
  border-color: var(--color-border-light);
}

.dark-theme .dropdown-item {
  color: var(--color-text-primary);
}

.dark-theme .dropdown-item:hover,
.dark-theme .dropdown-item:focus {
  background-color: var(--color-bg-tertiary);
  color: var(--color-text-primary);
}

.dark-theme .btn-outline-primary,
.dark-theme .btn-outline-secondary {
  color: var(--color-text-primary);
  border-color: var(--color-border-medium);
}

.dark-theme .btn-outline-primary:hover,
.dark-theme .btn-outline-secondary:hover {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}

.dark-theme .alert {
  background-color: var(--color-bg-tertiary);
  border-color: var(--color-border-light);
  color: var(--color-text-primary);
}

.dark-theme .breadcrumb {
  background-color: var(--color-bg-secondary);
}

.dark-theme .breadcrumb-item a {
  color: var(--color-text-secondary);
}

.dark-theme .sidebar-header {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%) !important;
}

/* ===== HOVER STATES PER TEMA SCURO ===== */
.dark-theme .admin-sidebar .nav-link:hover,
.dark-theme .consulente-sidebar .nav-link:hover,
.dark-theme .azienda-sidebar .nav-link:hover {
  background: linear-gradient(135deg, var(--color-bg-tertiary) 0%, var(--color-border-dark) 100%) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .admin-card:hover,
.dark-theme .consulente-card:hover,
.dark-theme .azienda-card:hover {
  background-color: var(--dark-bg-secondary) !important;
  box-shadow: 0 8px 30px rgba(255,255,255,0.05) !important;
}

.dark-theme .admin-btn-secondary:hover,
.dark-theme .consulente-btn-secondary:hover,
.dark-theme .azienda-btn-secondary:hover {
  background: linear-gradient(135deg, var(--color-bg-tertiary) 0%, var(--color-border-dark) 100%) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .stat-card:hover {
  background: linear-gradient(135deg, var(--dark-bg-secondary) 0%, var(--dark-bg-tertiary) 100%) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .notification-item:hover,
.dark-theme .admin-notification-item:hover,
.dark-theme .consulente-notification-item:hover,
.dark-theme .azienda-notification-item:hover {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .notification-bell:hover,
.dark-theme .admin-notification-bell:hover {
  background: var(--color-primary-dark) !important;
  color: white !important;
}

/* ===== CAMPANELLE NOTIFICHE ===== */
.dark-theme .notification-bell,
.dark-theme .admin-notification-bell {
  background: var(--color-primary) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4) !important;
}

.dark-theme .notification-bell:hover,
.dark-theme .admin-notification-bell:hover {
  background: var(--color-primary-dark) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5) !important;
}

/* Pulsanti in hover nel tema scuro */
.dark-theme .btn:hover,
.dark-theme .admin-btn:hover,
.dark-theme .consulente-btn:hover,
.dark-theme .azienda-btn:hover {
  filter: brightness(1.1);
}

.dark-theme .btn-outline-primary:hover,
.dark-theme .btn-outline-secondary:hover {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: white !important;
}

/* Liste e dropdown hover */
.dark-theme .list-group-item:hover {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .dropdown-item:hover,
.dark-theme .dropdown-item:focus {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

/* Tabelle hover */
.dark-theme .table-hover tbody tr:hover {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .table-hover tbody tr:hover td {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

/* Contenuti specifici delle tabelle in dark theme */
.dark-theme .table .fw-bold {
  color: var(--color-text-primary) !important;
}

.dark-theme .table .text-muted {
  color: var(--color-text-muted) !important;
}

.dark-theme .table .sede-nome,
.dark-theme .table .sede-azienda,
.dark-theme .table .sede-indirizzo {
  color: var(--color-text-primary) !important;
}

.dark-theme .table .sede-icon {
  background: var(--color-primary) !important;
  color: white !important;
}

/* Fix per i gradienti delle tabelle in dark theme */
.dark-theme .admin-table th,
.dark-theme .consulente-table th,
.dark-theme .azienda-table th {
  background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .admin-table td,
.dark-theme .consulente-table td,
.dark-theme .azienda-table td {
  border-top-color: var(--color-border-light) !important;
  color: var(--color-text-primary) !important;
}

/* Fix per tutti i gradienti problematici con colori fissi */
.dark-theme [style*="background: linear-gradient"][style*="#f8f9fa"],
.dark-theme [style*="background: linear-gradient"][style*="#ffffff"],
.dark-theme [style*="background: linear-gradient"][style*="#e9ecef"] {
  background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%) !important;
}

/* Fix specifico per elementi con gradienti chiari hardcoded */
.dark-theme .consulente-table th,
.dark-theme .admin-table th,
.dark-theme .azienda-table th {
  background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%) !important;
}

/* Pulsanti nelle tabelle in dark theme */
.dark-theme .table .btn-outline-primary {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.dark-theme .table .btn-outline-primary:hover {
  background-color: var(--color-primary);
  color: white;
}

.dark-theme .table .btn-outline-info {
  border-color: #17a2b8;
  color: #17a2b8;
}

.dark-theme .table .btn-outline-info:hover {
  background-color: #17a2b8;
  color: white;
}

.dark-theme .table .btn-outline-secondary {
  border-color: var(--color-text-muted);
  color: var(--color-text-muted);
}

.dark-theme .table .btn-outline-secondary:hover {
  background-color: var(--color-text-muted);
  color: var(--color-bg-primary);
}

.dark-theme .table .btn-outline-danger {
  border-color: #dc3545;
  color: #dc3545;
}

.dark-theme .table .btn-outline-danger:hover {
  background-color: #dc3545;
  color: white;
}

/* Card e componenti con effetti hover */
.dark-theme .color-preset-card:hover {
  background-color: var(--color-bg-tertiary) !important;
  border-color: var(--color-border-medium) !important;
}

.dark-theme .preview-element:hover {
  background-color: var(--color-bg-tertiary) !important;
}

/* ===== COLOR PRESET CARDS E PREVIEW ===== */
.dark-theme .color-preset-card {
  background-color: var(--color-bg-secondary) !important;
  border-color: var(--color-border-light) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .color-preset-card.active,
.dark-theme .color-preset-card:focus {
  background-color: var(--color-bg-tertiary) !important;
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 2px var(--color-primary) !important;
  outline: none !important;
}

.dark-theme .color-preset-card.active::after {
  color: var(--color-primary) !important;
}

.dark-theme .color-preset-card:hover {
  background-color: var(--color-bg-tertiary) !important;
  border-color: var(--color-border-medium) !important;
  transform: translateY(-2px) !important;
}

.dark-theme .preview-element {
  background-color: var(--color-bg-secondary) !important;
  border-color: var(--color-border-light) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .preview-element:hover {
  background-color: var(--color-bg-tertiary) !important;
}

.dark-theme .preview-color-box {
  border: 2px solid var(--color-border-medium) !important;
}

.dark-theme .color-preset-title {
  color: var(--color-text-primary) !important;
}

.dark-theme .color-sample {
  border: 1px solid var(--color-border-dark) !important;
}

/* ===== FOCUS E OUTLINE STATES ===== */
.dark-theme *:focus,
.dark-theme *:focus-visible {
  outline-color: var(--color-primary) !important;
  box-shadow: 0 0 0 2px var(--color-primary) !important;
}

.dark-theme .btn:focus,
.dark-theme .form-control:focus,
.dark-theme .form-select:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(var(--color-primary), 0.25) !important;
}

/* Rimuovi outline bianco di default */
.dark-theme .color-preset-card:focus,
.dark-theme .preview-element:focus {
  outline: none !important;
}

/* Selezione del testo nel tema scuro */
.dark-theme ::selection {
  background-color: var(--color-primary) !important;
  color: white !important;
}

.dark-theme ::-moz-selection {
  background-color: var(--color-primary) !important;
  color: white !important;
}

/* ===== BADGE E ELEMENTI DELLE IMPOSTAZIONI ===== */
.dark-theme #active-preset {
  background-color: var(--color-primary) !important;
  color: white !important;
}

.dark-theme .alert-info {
  background-color: var(--color-bg-tertiary) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-text-primary) !important;
}

/* Badge e alert hover */
.dark-theme .badge:hover {
  filter: brightness(1.1) !important;
}

.dark-theme .alert:hover {
  background-color: var(--dark-bg-secondary) !important;
}

/* Accordion e collapse hover */
.dark-theme .accordion-button:hover {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .list-group-item-action:hover {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

/* Navbar e menu hover */
.dark-theme .navbar-nav .nav-link:hover {
  color: var(--color-text-primary) !important;
}

.dark-theme .nav-pills .nav-link:hover {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .nav-tabs .nav-link:hover {
  border-color: var(--color-border-medium) !important;
  color: var(--color-text-primary) !important;
}

/* Form elements hover */
.dark-theme .form-check-input:hover {
  border-color: var(--color-primary) !important;
}

.dark-theme .form-range:hover {
  outline: none !important;
}

/* Toast e offcanvas hover */
.dark-theme .toast:hover {
  background-color: var(--dark-bg-secondary) !important;
}

.dark-theme .offcanvas:hover {
  background-color: var(--color-bg-primary) !important;
}

/* Link generici */
.dark-theme a:hover {
  color: var(--color-primary) !important;
  text-decoration: underline !important;
}

.dark-theme .text-decoration-none:hover {
  text-decoration: none !important;
}

/* ===== ELEMENTI SPECIFICI PER AZIENDE ===== */
.dark-theme .azienda-nome {
  color: var(--color-text-primary) !important;
  font-weight: 600 !important;
}

.dark-theme .azienda-header .text-muted {
  color: var(--color-text-muted) !important;
}

/* ===== STILI PERSONALIZZATI PAGINAZIONE ===== */
/* Modalità chiara */
.pagination .page-link {
  color: var(--color-primary) !important;
  background-color: var(--color-card-bg) !important;
  border: 1px solid var(--color-border-light) !important;
  padding: 0.5rem 0.75rem;
  text-decoration: none;
  transition: all 0.3s ease;
}

.pagination .page-link:hover {
  color: var(--color-primary-dark) !important;
  background-color: var(--color-bg-secondary) !important;
  border-color: var(--color-border-medium) !important;
}

.pagination .page-item.active .page-link {
  color: #ffffff !important;
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.pagination .page-item.disabled .page-link {
  color: var(--color-text-muted) !important;
  background-color: var(--color-bg-secondary) !important;
  border-color: var(--color-border-light) !important;
  cursor: not-allowed;
  opacity: 0.6;
}

/* Modalità scura */
.dark-theme .pagination .page-link {
  color: var(--color-primary) !important;
  background-color: var(--color-card-bg) !important;
  border: 1px solid var(--color-border-light) !important;
}

.dark-theme .pagination .page-link:hover {
  color: var(--color-primary-light) !important;
  background-color: var(--color-bg-tertiary) !important;
  border-color: var(--color-border-medium) !important;
}

.dark-theme .pagination .page-item.active .page-link {
  color: #ffffff !important;
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.dark-theme .pagination .page-item.disabled .page-link {
  color: var(--color-text-muted) !important;
  background-color: var(--color-bg-tertiary) !important;
  border-color: var(--color-border-light) !important;
  cursor: not-allowed;
  opacity: 0.5;
}

/* ===== NOTIFICHE - TEMA SCURO ===== */
/* Pulsanti di dismissione nelle notifiche */
.dark-theme .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.dark-theme .btn-close:hover {
  filter: invert(1) grayscale(100%) brightness(150%);
}

.dark-theme .btn-close-white {
  filter: none;
}

/* Pulsanti nelle notifiche */
.dark-theme .notification-item .btn,
.dark-theme .admin-notification-item .btn {
  background-color: var(--color-bg-tertiary) !important;
  border-color: var(--color-border-medium) !important;
  color: var(--color-text-secondary) !important;
}

.dark-theme .notification-item .btn:hover,
.dark-theme .admin-notification-item .btn:hover {
  background-color: var(--color-border-dark) !important;
  border-color: var(--color-border-dark) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .notification-item .btn-outline-secondary,
.dark-theme .admin-notification-item .btn-outline-secondary {
  border-color: var(--color-text-muted) !important;
  color: var(--color-text-muted) !important;
}

.dark-theme .notification-item .btn-outline-secondary:hover,
.dark-theme .admin-notification-item .btn-outline-secondary:hover {
  background-color: var(--color-text-muted) !important;
  border-color: var(--color-text-muted) !important;
  color: var(--color-bg-primary) !important;
}

.dark-theme .notification-footer .btn-outline-danger,
.dark-theme .admin-notification-footer .btn-outline-danger {
  border-color: var(--color-danger) !important;
  color: var(--color-danger) !important;
}

.dark-theme .notification-footer .btn-outline-danger:hover,
.dark-theme .admin-notification-footer .btn-outline-danger:hover {
  background-color: var(--color-danger) !important;
  border-color: var(--color-danger) !important;
  color: white !important;
}

.dark-theme .notification-footer .btn-secondary,
.dark-theme .admin-notification-footer .btn-secondary {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: white !important;
}

.dark-theme .notification-footer .btn-secondary:hover,
.dark-theme .admin-notification-footer .btn-secondary:hover {
  background-color: var(--color-primary-dark) !important;
  border-color: var(--color-primary-dark) !important;
}

/* Scrollbar nelle notifiche per tema scuro */
.dark-theme .notification-body::-webkit-scrollbar,
.dark-theme .admin-notification-body::-webkit-scrollbar {
  width: 6px;
}

.dark-theme .notification-body::-webkit-scrollbar-track,
.dark-theme .admin-notification-body::-webkit-scrollbar-track {
  background: var(--color-bg-tertiary);
}

.dark-theme .notification-body::-webkit-scrollbar-thumb,
.dark-theme .admin-notification-body::-webkit-scrollbar-thumb {
  background: var(--color-border-dark);
  border-radius: 3px;
}

.dark-theme .notification-body::-webkit-scrollbar-thumb:hover,
.dark-theme .admin-notification-body::-webkit-scrollbar-thumb:hover {
  background: var(--color-text-muted);
}

/* ===== BADGE COLORS FIX FOR DARK THEME ===== */
.dark-theme .badge.bg-success {
  background-color: var(--color-success) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .badge.bg-warning {
  background-color: var(--color-warning) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .badge.bg-secondary {
  background-color: var(--color-bg-tertiary) !important;
  color: var(--color-text-primary) !important;
}

/* ===== INFO ITEMS FIX FOR DARK THEME ===== */
.dark-theme .info-item {
  background: var(--color-bg-secondary) !important;
  color: var(--color-text-primary) !important;
}

.dark-theme .info-label {
  color: var(--color-text-primary) !important;
}

.dark-theme .info-value {
  color: var(--color-text-secondary) !important;
}

/* ===== SEDE CARDS FIX FOR DARK THEME ===== */
.dark-theme .sede-card,
.dark-theme .azienda-card,
.dark-theme .reparto-card {
  background: var(--color-card-bg) !important;
  color: var(--color-text-primary) !important;
}