:root {
  --dm-black: #0f172a;       /* Slate 900: Blu Notte/Ardesia (visibilmente DIVERSO dal nero) */
  --dm-panel: #1e293b;       /* Slate 800: Card e pannelli con un tono blu scuro rigenerante */
  --dm-panel-2: #334155;     /* Slate 700: Input, sfondi secondari e header */
  --dm-lime: #c6f432;        /* Lime / Accento originale */
  --dm-lime-d: #a3e635;      /* Lime hover */
  --dm-border: #334155;      /* Bordi definiti e puliti */
  --dm-text-main: #f8fafc;   /* Testo principale chiaro e riposante */
  --dm-text-muted: #94a3b8;  /* Testo secondario */
}

body { 
  background: var(--dm-black) !important; 
  color: var(--dm-text-main); 
}
.page-wrapper { 
  background: var(--dm-black); 
}

/* Sidebar & Topbar */
.dm-sidebar { 
  background: var(--dm-panel) !important; 
  border-right: 1px solid var(--dm-border); 
}
.dm-topbar { 
  background: var(--dm-panel) !important; 
  border-bottom: 1px solid var(--dm-border); 
}
.dm-logo { 
  font-weight: 800; 
  letter-spacing: 2px; 
  font-size: 1.35rem; 
  color: #ffffff; 
}
.dm-accent { 
  color: var(--dm-lime); 
}
.dm-avatar { 
  background: var(--dm-lime); 
  color: #0f172a; 
  font-weight: 700; 
}

.navbar-vertical .nav-link { 
  color: var(--dm-text-muted); 
  border-radius: 8px; 
  margin: 2px 8px; 
}
.navbar-vertical .nav-link:hover { 
  background: var(--dm-panel-2); 
  color: #ffffff; 
}
.navbar-vertical .nav-item.active .nav-link {
  background: linear-gradient(90deg, rgba(198, 244, 50, 0.15), transparent);
  color: var(--dm-lime); 
  border-left: 3px solid var(--dm-lime);
  font-weight: 600;
}
.navbar-vertical .nav-link-icon { 
  color: inherit; 
}

/* Cards & KPI */
.card { 
  background: var(--dm-panel) !important; 
  border: 1px solid var(--dm-border) !important; 
  border-radius: 14px; 
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.25);
}
.card-header { 
  border-bottom: 1px solid var(--dm-border); 
  background: transparent; 
}
.dm-kpi { 
  position: relative; 
  overflow: hidden; 
}
.dm-kpi .dm-kpi-val { 
  font-size: 1.8rem; 
  font-weight: 800; 
  color: #ffffff; 
}
.dm-kpi .dm-kpi-accent { 
  color: var(--dm-lime); 
}
.dm-kpi-icon { 
  font-size: 2rem; 
  opacity: .35; 
  position: absolute; 
  right: 16px; 
  top: 16px; 
  color: var(--dm-lime); 
}

/* Buttons */
.btn-lime { 
  background: var(--dm-lime); 
  color: #0f172a; 
  border: none; 
  font-weight: 600; 
}
.btn-lime:hover { 
  background: var(--dm-lime-d); 
  color: #0f172a; 
}
.btn-outline-lime { 
  border: 1px solid var(--dm-lime); 
  color: var(--dm-lime); 
  background: transparent; 
}
.btn-outline-lime:hover { 
  background: var(--dm-lime); 
  color: #0f172a; 
}

/* Forms */
.form-control, .form-select { 
  background: var(--dm-panel-2) !important; 
  border: 1px solid var(--dm-border); 
  color: #ffffff; 
}
.form-control:focus, .form-select:focus { 
  background: var(--dm-panel-2) !important; 
  color: #ffffff; 
  border-color: var(--dm-lime); 
  box-shadow: 0 0 0 .2rem rgba(198, 244, 50, 0.2); 
}
.form-check-input:checked { 
  background-color: var(--dm-lime); 
  border-color: var(--dm-lime); 
}

/* Badges stato */
.badge-attivo { 
  background: rgba(198, 244, 50, 0.15); 
  color: var(--dm-lime); 
  border: 1px solid rgba(198, 244, 50, 0.3);
}
.badge-disdire { 
  background: rgba(245, 158, 11, 0.15); 
  color: #fbbf24; 
  border: 1px solid rgba(245, 158, 11, 0.3);
}
.badge-disdetto { 
  background: rgba(239, 68, 68, 0.15); 
  color: #f87171; 
  border: 1px solid rgba(239, 68, 68, 0.3);
}
.badge-trasferito { 
  background: rgba(148, 163, 184, 0.15); 
  color: #cbd5e1; 
  border: 1px solid rgba(148, 163, 184, 0.3);
}

/* Tabulator Override (Slate Theme) */
.tabulator { 
  background: var(--dm-panel) !important; 
  border: 1px solid var(--dm-border); 
  border-radius: 10px; 
}
.tabulator .tabulator-header { 
  background: var(--dm-panel-2) !important; 
  border-bottom: 1px solid var(--dm-border); 
  color: #ffffff;
  font-weight: 700;
}
.tabulator .tabulator-header .tabulator-col { 
  background: var(--dm-panel-2) !important; 
}
.tabulator-row { 
  background: var(--dm-panel) !important; 
  color: var(--dm-text-main);
  border-bottom: 1px solid var(--dm-border);
}
.tabulator-row.tabulator-row-even { 
  background: #182232 !important; 
}
.tabulator-row:hover { 
  background: #273549 !important; 
}

/* Login */
.dm-login-wrap { 
  min-height: 100vh; 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  background: radial-gradient(circle at 30% 20%, #1e293b, #090d16); 
}
.dm-login-card { 
  width: 100%; 
  max-width: 420px; 
  background: var(--dm-panel); 
  border: 1px solid var(--dm-border); 
  border-radius: 18px; 
  padding: 2.5rem; 
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.4);
}
.dm-login-logo { 
  font-size: 2rem; 
  font-weight: 800; 
  letter-spacing: 3px; 
  text-align: center; 
  margin-bottom: .3rem; 
  color: #ffffff;
}
.dm-otp-input { 
  letter-spacing: 12px; 
  text-align: center; 
  font-size: 1.6rem; 
  font-weight: 700; 
}

/* Select2 Slate Theme */
.select2-container--default .select2-selection--single {
  background: var(--dm-panel-2) !important; 
  border: 1px solid var(--dm-border) !important;
  height: 38px !important; 
  border-radius: 6px; 
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #ffffff !important; 
  line-height: 36px !important; 
}
.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--dm-text-muted) !important; 
}
.select2-container--default .select2-selection--single .select2-selection__arrow { 
  height: 36px !important; 
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: var(--dm-text-muted) transparent transparent transparent !important; 
}

/* Selezione multipla */
.select2-container--default .select2-selection--multiple {
  background: var(--dm-panel-2) !important; 
  border: 1px solid var(--dm-border) !important;
  border-radius: 6px; 
  min-height: 38px; 
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: #475569 !important; 
  border: 1px solid var(--dm-border) !important; 
  color: #ffffff !important; 
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
  color: var(--dm-text-muted) !important; 
}
.select2-container--default .select2-search--inline .select2-search__field {
  color: #ffffff !important; 
}

/* Dropdown Select2 */
.select2-dropdown {
  background: var(--dm-panel-2) !important; 
  border: 1px solid var(--dm-border) !important; 
  color: #ffffff !important; 
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.4);
}
.select2-results__option {
  color: var(--dm-text-main) !important; 
  background: var(--dm-panel-2) !important; 
}
.select2-container--default .select2-results__option[aria-selected=true] {
  background: #1e293b !important; 
  color: var(--dm-lime) !important; 
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--dm-lime) !important; 
  color: #0f172a !important; 
}

/* Campo ricerca dropdown */
.select2-search--dropdown .select2-search__field {
  background: var(--dm-black) !important; 
  border: 1px solid var(--dm-border) !important; 
  color: #ffffff !important; 
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple {
  border-color: var(--dm-lime) !important; 
}

/* Indicatori temporali scadenze */
.dm-days-crit { color: #f87171; font-weight: 700; }
.dm-days-warn { color: #fbbf24; font-weight: 700; }
.dm-days-ok   { color: var(--dm-lime); font-weight: 700; }