/*
 * SIMP Platform — Cyber Premium UI Override
 * Regole: solo CSS, nessun tmpl toccato, database invariato
 * Commenti in italiano | Codice minimo ed efficiente
 *
 * FIX APPLICATI:
 * 1. Scroll sbloccato (override overflow:hidden su html/body/.main-container)
 * 2. Sidebar e header a filo con i bordi della finestra
 * 3. Logo ufficiale SIMP integrato nella sidebar
 * 4. Stile grafico uniformato all'immagine di riferimento
 */

/* Font Inter Variable - self-hosted, GDPR-compliant, zero dipendenze esterne */
@font-face {
  font-family:'Inter';
  src:url('../fonts/InterVariable.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

/* ── VARIABILI — Palette cyber dark ── */
[data-bs-theme=admin] {
  --c-bg:       #0a0f1a;
  --c-surface:  #111827;
  --c-surface2: #1a2332;
  --c-sidebar:  #060b14;
  --c-text:     #e2e8f0;
  --c-muted:    #64748b;
  --c-label:    #94a3b8;
  --c-blue:     #3b82f6;
  --c-cyan:     #06b6d4;
  --c-blue-glow:rgba(59,130,246,.35);
  --c-cyan-glow:rgba(6,182,212,.25);
  --c-critical: #ef4444;
  --c-high:     #f97316;
  --c-medium:   #f59e0b;
  --c-low:      #22c55e;
  --c-info:     #06b6d4;
  --c-border:   rgba(255,255,255,.08);
  --r-sm:6px; --r-md:10px; --r-lg:14px; --r-pill:999px;
  --t:.2s ease;
}

/* ══════════════════════════════════════════════════════════
   FIX CRITICO #1: LAYOUT FISSO — SIDEBAR E HEADER MAI SI MUOVONO
   Strategia: html/body senza scroll, tutto il layout occupa 100vh,
   lo scroll avviene SOLO sull'area .app-content (contenuto principale).
   Sidebar e header restano SEMPRE fissi durante lo scroll.
   ══════════════════════════════════════════════════════════ */

/* Il body non deve mai scrollare: tutto è contenuto in 100vh */
html,
body[data-bs-theme=admin] {
  overflow: hidden !important;
  height: 100% !important;
  max-height: 100vh !important;
}

/* Il wrapper occupa esattamente tutta la viewport, senza padding/margin */
/* NOTA: overflow:visible (non hidden) per non tagliare i dropdown Tom Select */
[data-bs-theme=admin] .app-wrapper {
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: visible !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* La sidebar occupa tutta l'altezza e NON scrolla mai */
[data-bs-theme=admin] .app-sidebar {
  position: sticky !important;
  top: 0 !important;
  height: 100vh !important;
  max-height: 100vh !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  flex-shrink: 0 !important;
  z-index: 1038 !important;
}

/* L'header resta sempre in cima, non scrolla mai */
[data-bs-theme=admin] .app-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1034 !important;
  flex-shrink: 0 !important;
}

/* La zona app-main è il contenitore flessibile che contiene header + contenuto */
/* NOTA: overflow:visible (non hidden) per non tagliare i dropdown Tom Select posizionati absolute */
[data-bs-theme=admin] .app-main {
  display: flex !important;
  flex-direction: column !important;
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: visible !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* L'area contenuto è l'UNICA zona che scrolla */
/* NOTA: overflow-x:auto (non hidden) per non tagliare i dropdown Tom Select position:absolute */
[data-bs-theme=admin] .app-content {
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  overflow-x: auto !important;
  min-height: 0 !important;
}

/* ══════════════════════════════════════════════════════════
   FIX CRITICO #2: SIDEBAR E HEADER A FILO CON I BORDI
   Rimuove bordi, padding, margini, arrotondamenti
   dalle classi Bootstrap applicate nell'HTML
   ══════════════════════════════════════════════════════════ */

/* Rimuovi bordi Bootstrap dalla sidebar (border-top, border-start, border-bottom, rounded-start, ps-2) */
[data-bs-theme=admin] .app-sidebar {
  border:none !important;
  border-radius:0 !important;
  padding-left:0 !important;
  margin:0 !important;
}

/* Rimuovi bordo superiore Bootstrap dall'header (border-top) */
[data-bs-theme=admin] .app-header {
  border-top:none !important;
  margin:0 !important;
  padding-top:0 !important;
}

/* ── FONT GLOBALE ── */
[data-bs-theme=admin] { font-family:'Inter',system-ui,sans-serif !important; }

/* ── SFONDO — Griglia puntinata cyber ── */
[data-bs-theme=admin] body {
  background-color:var(--c-bg) !important;
  background-image:radial-gradient(circle at 1px 1px,rgba(59,130,246,.05) 1px,transparent 0) !important;
  background-size:32px 32px !important;
  color:var(--c-text) !important;
}

/* ══════════════════════════════════════════════════════════
   HEADER — Barra superiore con gradient, a filo col bordo
   ══════════════════════════════════════════════════════════ */
[data-bs-theme=admin] .app-header {
  background:linear-gradient(90deg,#060b14 0%,#0e1628 60%,#060b14 100%) !important;
  border-bottom:1px solid var(--c-border) !important;
  box-shadow:0 1px 12px rgba(0,0,0,.3) !important;
}
[data-bs-theme=admin] .app-header .fw-bold { color:var(--c-text) !important; letter-spacing:.3px; }
[data-bs-theme=admin] .app-header .fs-8    { color:var(--c-cyan) !important; font-size:.72rem !important; letter-spacing:.5px; }
[data-bs-theme=admin] .app-header .nav-link { color:var(--c-label) !important; transition:color var(--t); }
[data-bs-theme=admin] .app-header .nav-link:hover { color:var(--c-cyan) !important; }

/* ══════════════════════════════════════════════════════════
   SIDEBAR — Stile cyber scuro, a filo col bordo sinistro
   ══════════════════════════════════════════════════════════ */
[data-bs-theme=admin] .app-sidebar {
  background:var(--c-sidebar) !important;
  box-shadow:1px 0 8px rgba(0,0,0,.4) !important;
  --lte-sidebar-color:#94a3b8 !important;
  --lte-sidebar-hover-color:#e2e8f0 !important;
  --lte-sidebar-hover-bg:rgba(59,130,246,.08) !important;
  --lte-sidebar-active-color:#fff !important;
  --lte-sidebar-menu-active-bg:transparent !important;
  --lte-sidebar-menu-active-color:#60a5fa !important;
  --lte-sidebar-submenu-color:#64748b !important;
  --lte-sidebar-submenu-hover-color:#e2e8f0 !important;
  --lte-sidebar-submenu-hover-bg:rgba(59,130,246,.06) !important;
  --lte-sidebar-submenu-active-color:#60a5fa !important;
  --lte-sidebar-submenu-active-bg:rgba(59,130,246,.1) !important;
}

/* ══════════════════════════════════════════════════════════
   LOGO SIMP + ALLINEAMENTO BORDI
   - Logo via ::before su .brand-link (l'elemento img non esiste nell'HTML)
   - Altezza sidebar-brand = altezza header (50px) per allineare i bordi inferiori
   ══════════════════════════════════════════════════════════ */

/* Area brand: altezza esattamente uguale all'header (50px) per allineare i bordi inferiori */
[data-bs-theme=admin] .sidebar-brand {
  height: 50px !important;
  min-height: 50px !important;
  max-height: 50px !important;
  border-bottom: 1px solid var(--c-border) !important;
  padding: 0 14px !important;
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box !important;
}

/* Brand link: flex row con logo + testo */
[data-bs-theme=admin] .sidebar-brand .brand-link {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
}

/* Logo SIMP via ::before — immagine di sfondo su pseudo-elemento */
[data-bs-theme=admin] .sidebar-brand .brand-link::before {
  content: '' !important;
  display: inline-block !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  background-image: url('../images/logo-simp.png') !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  border-radius: 4px !important;
  flex-shrink: 0 !important;
}

/* Testo brand con gradient */
[data-bs-theme=admin] .brand-text {
  font-size: 1.3rem !important;
  font-weight: 800 !important;
  letter-spacing: 2px !important;
  background: linear-gradient(135deg,#60a5fa,#06b6d4) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  filter: drop-shadow(0 0 6px rgba(6,182,212,.4)) !important;
}

/* ── VOCE MENU ATTIVA — Sfondo pieno blu con bordi arrotondati ── */
[data-bs-theme=admin] .app-sidebar .nav-link.active {
  background:linear-gradient(135deg,rgba(59,130,246,.25) 0%,rgba(6,182,212,.12) 100%) !important;
  border:1px solid rgba(59,130,246,.2) !important;
  border-radius:var(--r-md) !important;
  box-shadow:0 0 12px rgba(59,130,246,.1) !important;
  margin:2px 8px !important;
}

/* Icone menu con glow sull'attivo */
[data-bs-theme=admin] .nav-icon { font-size:1rem !important; transition:color var(--t); }
[data-bs-theme=admin] .app-sidebar .nav-link.active .nav-icon { color:var(--c-cyan) !important; filter:drop-shadow(0 0 4px var(--c-cyan)); }
[data-bs-theme=admin] .app-sidebar .nav-link:hover  .nav-icon { color:var(--c-blue) !important; }

/* ── ICONE MENU — Sostituzione via CSS (nessun tmpl toccato) ── */
/* ONBOARDING: bxs-dashboard → bxs-buildings (edificio organizzazione) */
[data-bs-theme=admin] .bxs-dashboard::before { content:'\ecf6' !important; }
/* THREAT: bx-help-circle → bxs-shield-alt-2 (scudo sicurezza) */
[data-bs-theme=admin] .bx-help-circle::before { content:'\eea3' !important; }
/* INCIDENT: bx-error → bxs-alarm-exclamation (allarme incidente) */
[data-bs-theme=admin] .bx-error::before { content:'\ec9e' !important; }
/* Company: bx-building → bxs-buildings (edificio pieno) */
[data-bs-theme=admin] .bx-building::before { content:'\ecf6' !important; }
/* Users: bx-user → bxs-group (gruppo utenti) */
[data-bs-theme=admin] .bx-user::before { content:'\edd6' !important; }
/* Esci: bi-circle → bx-log-out (logout) via font boxicons */
[data-bs-theme=admin] .bi-circle::before { content:'\eb4f' !important; font-family:'boxicons' !important; }

/* Freccia sottomenu animata */
[data-bs-theme=admin] .nav-arrow { transition:transform var(--t) !important; }
[data-bs-theme=admin] .menu-open > .nav-link .nav-arrow { transform:rotate(90deg) !important; }

/* ── AREA CONTENUTO PRINCIPALE ── */
[data-bs-theme=admin] .app-main   { background:transparent !important; }
[data-bs-theme=admin] .app-content { padding:1.25rem !important; }

/* Titoli con gradient testo cyber */
[data-bs-theme=admin] h1,[data-bs-theme=admin] h2,
[data-bs-theme=admin] .page-title,[data-bs-theme=admin] .content-title {
  background:linear-gradient(135deg,#f1f5f9 30%,#60a5fa 100%) !important;
  -webkit-background-clip:text !important; -webkit-text-fill-color:transparent !important;
  background-clip:text !important; font-weight:700 !important;
}

/* FIX CRITICO: label dentro modali/form non devono ereditare webkit-text-fill-color transparent */
[data-bs-theme=admin] .modal label,
[data-bs-theme=admin] .modal .form-label,
[data-bs-theme=admin] .modal .section-label,
[data-bs-theme=admin] .modal .accordion-button label,
[data-bs-theme=admin] .modal .accordion-button .section-label,
[data-bs-theme=admin] .modal .accordion-button .section-description-label,
[data-bs-theme=admin] [id^="TicketContainer_"] label,
[data-bs-theme=admin] [id^="TicketForm_"] label,
[data-bs-theme=admin] [id^="TicketContainer_"] .section-label,
[data-bs-theme=admin] [id^="TicketForm_"] .section-label {
  -webkit-text-fill-color: initial !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
}

/* Label accordion button: colore specifico */
[data-bs-theme=admin] .modal .accordion-button label,
[data-bs-theme=admin] .modal .accordion-button .section-label {
  -webkit-text-fill-color: #94a3b8 !important;
  color: #94a3b8 !important;
}

[data-bs-theme=admin] .modal .accordion-button:not(.collapsed) label,
[data-bs-theme=admin] .modal .accordion-button:not(.collapsed) .section-label {
  -webkit-text-fill-color: #06b6d4 !important;
  color: #06b6d4 !important;
}

/* ══════════════════════════════════════════════════════════
   CARD — Sfondo scuro con bordo sottile grigio
   ══════════════════════════════════════════════════════════ */
[data-bs-theme=admin] .card {
  background:var(--c-surface) !important;
  border:1px solid var(--c-border) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:0 2px 12px rgba(0,0,0,.3) !important;
  transition:box-shadow var(--t),border-color var(--t);
}
[data-bs-theme=admin] .card:hover {
  border-color:rgba(59,130,246,.18) !important;
  box-shadow:0 4px 20px rgba(0,0,0,.4) !important;
}
[data-bs-theme=admin] .card-header { background:transparent !important; border-bottom:1px solid var(--c-border) !important; }

/* ── TABELLE — Stile professionale cyber ── */
[data-bs-theme=admin] .table,
[data-bs-theme=admin] table.dataTable { color:var(--c-text) !important; border-collapse:separate !important; border-spacing:0 !important; }

/* Header tabella con gradient scuro */
[data-bs-theme=admin] .table thead th,
[data-bs-theme=admin] table.dataTable thead th {
  background:linear-gradient(180deg,#1a2332 0%,#111827 100%) !important;
  color:var(--c-label) !important;
  font-size:.7rem !important; font-weight:600 !important; letter-spacing:1px !important;
  text-transform:uppercase !important;
  border-bottom:1px solid var(--c-border) !important;
  padding:12px 14px !important; white-space:nowrap !important;
}

/* Righe con hover bordo sinistro cyan */
[data-bs-theme=admin] .table tbody tr,
[data-bs-theme=admin] table.dataTable tbody tr { background:transparent !important; transition:background var(--t),box-shadow var(--t); }
[data-bs-theme=admin] .table tbody tr:hover,
[data-bs-theme=admin] table.dataTable tbody tr:hover {
  background:rgba(59,130,246,.05) !important;
  box-shadow:inset 3px 0 0 var(--c-cyan) !important;
}

/* Celle tabella */
[data-bs-theme=admin] .table tbody td,
[data-bs-theme=admin] table.dataTable tbody td {
  color:var(--c-text) !important;
  border-bottom:1px solid rgba(255,255,255,.04) !important;
  padding:11px 14px !important; vertical-align:middle !important; font-size:.875rem !important;
}

/* Paginazione DataTables */
[data-bs-theme=admin] .dataTables_paginate .paginate_button {
  background:var(--c-surface2) !important; color:var(--c-label) !important;
  border:1px solid var(--c-border) !important; border-radius:var(--r-sm) !important;
  padding:4px 10px !important; margin:0 2px !important; transition:all var(--t);
}
[data-bs-theme=admin] .dataTables_paginate .paginate_button.current,
[data-bs-theme=admin] .dataTables_paginate .paginate_button:hover {
  background:var(--c-blue) !important; color:#fff !important;
  border-color:var(--c-blue) !important; box-shadow:0 0 10px var(--c-blue-glow) !important;
}
[data-bs-theme=admin] .dataTables_info,
[data-bs-theme=admin] .dataTables_length label,
[data-bs-theme=admin] .dataTables_filter label { color:var(--c-muted) !important; font-size:.8rem !important; }
[data-bs-theme=admin] .dataTables_length select,
[data-bs-theme=admin] .dataTables_filter input {
  background:var(--c-surface2) !important; border:1px solid var(--c-border) !important;
  color:var(--c-text) !important; border-radius:var(--r-sm) !important;
}

/* ── BADGE — Pill colorati con glow ── */
[data-bs-theme=admin] .badge {
  font-size:.68rem !important; font-weight:700 !important;
  letter-spacing:.6px !important; text-transform:uppercase !important;
  padding:4px 10px !important; border-radius:var(--r-pill) !important;
}

/* Severity con glow */
[data-bs-theme=admin] .priority-critical { background:var(--c-critical) !important; box-shadow:0 0 8px rgba(239,68,68,.4) !important; color:#fff !important; animation:pulse-crit 2s infinite !important; }
[data-bs-theme=admin] .priority-high     { background:var(--c-high) !important;     box-shadow:0 0 8px rgba(249,115,22,.4) !important; color:#fff !important; }
[data-bs-theme=admin] .priority-medium   { background:var(--c-medium) !important;   box-shadow:0 0 8px rgba(245,158,11,.4) !important; color:#000 !important; }
[data-bs-theme=admin] .priority-low      { background:var(--c-low) !important;      box-shadow:0 0 8px rgba(34,197,94,.4) !important;  color:#000 !important; }
[data-bs-theme=admin] .priority-default  { background:#334155 !important; color:var(--c-label) !important; }

/* Animazione pulse per badge CRITICAL */
@keyframes pulse-crit {
  0%,100% { box-shadow:0 0 6px rgba(239,68,68,.4); }
  50%      { box-shadow:0 0 16px rgba(239,68,68,.8); }
}

/* Override badge Bootstrap */
[data-bs-theme=admin] .badge.bg-danger    { background:var(--c-critical) !important; box-shadow:0 0 6px rgba(239,68,68,.3) !important; }
[data-bs-theme=admin] .badge.bg-warning   { background:var(--c-medium) !important;   color:#000 !important; }
[data-bs-theme=admin] .badge.bg-success   { background:var(--c-low) !important;      color:#000 !important; }
[data-bs-theme=admin] .badge.bg-info      { background:var(--c-info) !important;     color:#000 !important; }
[data-bs-theme=admin] .badge.bg-secondary { background:#334155 !important; }

/* ── PULSANTI — Gradient cyber con glow ── */
[data-bs-theme=admin] .btn-primary {
  background:linear-gradient(135deg,#3b82f6 0%,#06b6d4 100%) !important;
  border:none !important; border-radius:var(--r-md) !important;
  font-weight:600 !important; letter-spacing:.3px !important;
  box-shadow:0 4px 15px var(--c-blue-glow) !important; transition:all var(--t) !important;
}
[data-bs-theme=admin] .btn-primary:hover {
  background:linear-gradient(135deg,#2563eb 0%,#0891b2 100%) !important;
  box-shadow:0 6px 25px rgba(59,130,246,.55) !important; transform:translateY(-1px) !important;
}
[data-bs-theme=admin] .btn-secondary {
  background:var(--c-surface2) !important; border:1px solid var(--c-border) !important;
  color:var(--c-label) !important; border-radius:var(--r-md) !important; transition:all var(--t) !important;
}
[data-bs-theme=admin] .btn-secondary:hover { border-color:var(--c-blue) !important; color:var(--c-text) !important; box-shadow:0 0 12px var(--c-blue-glow) !important; }
[data-bs-theme=admin] .btn-danger {
  background:linear-gradient(135deg,#ef4444,#b91c1c) !important;
  border:none !important; border-radius:var(--r-md) !important;
  box-shadow:0 4px 12px rgba(239,68,68,.35) !important; transition:all var(--t) !important;
}
[data-bs-theme=admin] .btn-danger:hover  { box-shadow:0 6px 20px rgba(239,68,68,.6) !important; transform:translateY(-1px) !important; }
[data-bs-theme=admin] .btn-success {
  background:linear-gradient(135deg,#22c55e,#15803d) !important;
  border:none !important; border-radius:var(--r-md) !important;
  box-shadow:0 4px 12px rgba(34,197,94,.3) !important;
}
[data-bs-theme=admin] .btn-sm { border-radius:var(--r-sm) !important; font-size:.78rem !important; }
[data-bs-theme=admin] .btn-outline-primary { border-color:var(--c-blue) !important; color:var(--c-blue) !important; border-radius:var(--r-md) !important; transition:all var(--t) !important; }
[data-bs-theme=admin] .btn-outline-primary:hover { background:var(--c-blue) !important; color:#fff !important; }

/* ── FORM — Input e select cyber ── */
[data-bs-theme=admin] .form-control,
[data-bs-theme=admin] .form-select {
  background:var(--c-surface2) !important; border:1px solid var(--c-border) !important;
  border-radius:var(--r-md) !important; color:var(--c-text) !important;
  transition:border-color var(--t),box-shadow var(--t) !important;
}
[data-bs-theme=admin] .form-control:focus,
[data-bs-theme=admin] .form-select:focus {
  border-color:var(--c-cyan) !important; box-shadow:0 0 0 3px var(--c-cyan-glow) !important; outline:none !important;
}
[data-bs-theme=admin] .form-label { color:var(--c-label) !important; font-size:.82rem !important; font-weight:500 !important; }

/* TomSelect (dropdown tenant) */
[data-bs-theme=admin] .ts-control {
  background:var(--c-surface2) !important; border:1px solid var(--c-border) !important;
  border-radius:var(--r-md) !important; color:var(--c-text) !important;
}
[data-bs-theme=admin] .ts-control.focus { border-color:var(--c-cyan) !important; box-shadow:0 0 0 3px var(--c-cyan-glow) !important; }
[data-bs-theme=admin] .ts-dropdown {
  background:var(--c-surface) !important; border:1px solid var(--c-border) !important;
  border-radius:var(--r-md) !important; box-shadow:0 8px 32px rgba(0,0,0,.6) !important;
}
[data-bs-theme=admin] .ts-dropdown .option:hover,
[data-bs-theme=admin] .ts-dropdown .active { background:rgba(59,130,246,.15) !important; color:var(--c-text) !important; }

/* ── MODAL — Finestre cyber ── */
[data-bs-theme=admin] .modal-content {
  background:var(--c-surface) !important; border:1px solid var(--c-border) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:0 20px 60px rgba(0,0,0,.8),0 0 40px rgba(59,130,246,.08) !important;
}
[data-bs-theme=admin] .modal-header {
  background:linear-gradient(135deg,#0e1628,#1a2332) !important;
  border-bottom:1px solid var(--c-border) !important;
  border-radius:var(--r-lg) var(--r-lg) 0 0 !important;
}
[data-bs-theme=admin] .modal-title { color:var(--c-text) !important; font-weight:700 !important; }
[data-bs-theme=admin] .modal-footer { border-top:1px solid var(--c-border) !important; }
[data-bs-theme=admin] .btn-close { filter:invert(1) !important; }

/* ── TABS — Navigazione a schede ── */
[data-bs-theme=admin] .nav-tabs { border-bottom:1px solid var(--c-border) !important; }
[data-bs-theme=admin] .nav-tabs .nav-link {
  color:var(--c-label) !important; border:none !important;
  border-bottom:2px solid transparent !important; border-radius:0 !important;
  padding:8px 16px !important; transition:all var(--t) !important;
}
[data-bs-theme=admin] .nav-tabs .nav-link:hover { color:var(--c-text) !important; }
[data-bs-theme=admin] .nav-tabs .nav-link.active {
  color:var(--c-cyan) !important; background:transparent !important;
  border-bottom-color:var(--c-cyan) !important;
  text-shadow:0 0 8px var(--c-cyan-glow) !important;
}

/* ── ALERT — Con bordo colorato ── */
[data-bs-theme=admin] .alert { border-radius:var(--r-md) !important; border-left:4px solid !important; background:var(--c-surface) !important; }
[data-bs-theme=admin] .alert-success { border-color:var(--c-low) !important;      color:#86efac !important; }
[data-bs-theme=admin] .alert-danger  { border-color:var(--c-critical) !important; color:#fca5a5 !important; }
[data-bs-theme=admin] .alert-warning { border-color:var(--c-medium) !important;   color:#fde68a !important; }
[data-bs-theme=admin] .alert-info    { border-color:var(--c-cyan) !important;     color:#a5f3fc !important; }

/* ── FOOTER ── */
[data-bs-theme=admin] .app-footer {
  background:var(--c-sidebar) !important; border-top:1px solid var(--c-border) !important;
  color:var(--c-muted) !important; font-size:.78rem !important;
}
[data-bs-theme=admin] .app-footer a { color:var(--c-cyan) !important; }

/* ── SCROLLBAR — Sottile e cyber ── */
[data-bs-theme=admin] ::-webkit-scrollbar       { width:5px; height:5px; }
[data-bs-theme=admin] ::-webkit-scrollbar-track  { background:var(--c-bg); }
[data-bs-theme=admin] ::-webkit-scrollbar-thumb  { background:rgba(59,130,246,.35); border-radius:3px; }
[data-bs-theme=admin] ::-webkit-scrollbar-thumb:hover { background:var(--c-blue); }

/* ── ANIMAZIONE — Fade-in entrata pagina ── */
@keyframes fadeInUp {
  from { opacity:0; transform:translateY(8px); }
  to   { opacity:1; transform:translateY(0); }
}
[data-bs-theme=admin] .app-content > * { animation:fadeInUp .3s ease both; }

/* ── RESPONSIVE — Mobile ── */
@media (max-width:768px) {
  [data-bs-theme=admin] .app-content { padding:.75rem !important; }
  [data-bs-theme=admin] .table thead th { font-size:.65rem !important; padding:8px !important; }
  [data-bs-theme=admin] .table tbody td { font-size:.8rem !important; padding:8px !important; }
}

/* ── SEZIONI SIDEBAR — Intestazioni categoria ── */
[data-bs-theme=admin] .nav-header {
  color:var(--c-cyan) !important;
  font-size:.65rem !important;
  font-weight:700 !important;
  letter-spacing:1.5px !important;
  text-transform:uppercase !important;
  padding:12px 16px 4px !important;
}

/* ── BREADCRUMB — Stile cyber ── */
[data-bs-theme=admin] .breadcrumb-item a { color:var(--c-label) !important; text-decoration:none !important; }
[data-bs-theme=admin] .breadcrumb-item.active { color:var(--c-text) !important; }
[data-bs-theme=admin] .breadcrumb-item + .breadcrumb-item::before { color:var(--c-muted) !important; }

/* ── DROPDOWN — Menu a tendina ── */
[data-bs-theme=admin] .dropdown-menu {
  background:var(--c-surface) !important;
  border:1px solid var(--c-border) !important;
  border-radius:var(--r-md) !important;
  box-shadow:0 8px 32px rgba(0,0,0,.5) !important;
}
[data-bs-theme=admin] .dropdown-item { color:var(--c-text) !important; transition:background var(--t); }
[data-bs-theme=admin] .dropdown-item:hover { background:rgba(59,130,246,.1) !important; }

/* ── TOOLTIP — Stile scuro ── */
[data-bs-theme=admin] .tooltip-inner {
  background:var(--c-surface2) !important;
  border:1px solid var(--c-border) !important;
  color:var(--c-text) !important;
  border-radius:var(--r-sm) !important;
}

/* ══════════════════════════════════════════════════════════════════════
   TAB NAVIGAZIONE — Cyber Premium WOW
   Selettori: .nav.nav-pills.nav-underline > .nav-item > .nav-link
   Effetti: glassmorphism, gradient attivo, glow, shimmer, transizioni fluide
   ══════════════════════════════════════════════════════════════════════ */

/* Contenitore tab: sfondo sottile, bordo inferiore luminoso, padding */
[data-bs-theme=admin] .nav.nav-pills.nav-underline,
[data-bs-theme=admin] .nav-pills.nav-underline {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 4px !important;
  padding: 6px 6px 0 6px !important;
  background: linear-gradient(180deg, rgba(6,182,212,.04) 0%, transparent 100%) !important;
  border-bottom: 1px solid rgba(6,182,212,.18) !important;
  border-radius: var(--r-md) var(--r-md) 0 0 !important;
  margin-bottom: 24px !important;
  position: relative !important;
  overflow: visible !important;
}

/* Linea glow sul fondo del contenitore tab */
[data-bs-theme=admin] .nav.nav-pills.nav-underline::after,
[data-bs-theme=admin] .nav-pills.nav-underline::after {
  content: '' !important;
  position: absolute !important;
  bottom: -1px !important;
  left: 0 !important;
  right: 0 !important;
  height: 1px !important;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(59,130,246,.5) 20%,
    rgba(6,182,212,.8) 50%,
    rgba(59,130,246,.5) 80%,
    transparent 100%) !important;
  pointer-events: none !important;
}

/* Singolo tab — stato default */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 20px !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--c-muted) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-bottom: none !important;
  border-radius: var(--r-sm) var(--r-sm) 0 0 !important;
  transition: color .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  overflow: hidden !important;
  text-decoration: none !important;
}

/* Shimmer animato su ogni tab (pseudo ::before) */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link::before,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important; left: -100% !important;
  width: 60% !important; height: 100% !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.06), transparent) !important;
  transition: left .5s ease !important;
  pointer-events: none !important;
}

/* Indicatore inferiore (barra glow) — nascosto di default */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link::after,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link::after {
  content: '' !important;
  position: absolute !important;
  bottom: -1px !important;
  left: 50% !important;
  transform: translateX(-50%) scaleX(0) !important;
  width: 80% !important;
  height: 2px !important;
  background: linear-gradient(90deg, var(--c-blue), var(--c-cyan)) !important;
  border-radius: 2px 2px 0 0 !important;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1) !important;
  pointer-events: none !important;
}

/* Hover — tab non attivo */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link:hover:not(.active),
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link:hover:not(.active) {
  color: rgba(224,231,255,.85) !important;
  background: rgba(59,130,246,.07) !important;
  border-color: rgba(59,130,246,.15) !important;
  box-shadow: 0 -2px 12px rgba(59,130,246,.08) inset !important;
}

/* Shimmer on hover */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link:hover::before,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link:hover::before {
  left: 150% !important;
}

/* Barra inferiore on hover */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link:hover::after,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link:hover::after {
  transform: translateX(-50%) scaleX(0.5) !important;
}

/* TAB ATTIVO — effetto glassmorphism + gradient + glow */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link.active,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link.active {
  color: #fff !important;
  background: linear-gradient(135deg,
    rgba(59,130,246,.22) 0%,
    rgba(6,182,212,.14) 60%,
    rgba(59,130,246,.08) 100%) !important;
  border-color: rgba(6,182,212,.35) rgba(6,182,212,.35) transparent !important;
  box-shadow:
    0 -3px 16px rgba(6,182,212,.15),
    0 0 0 1px rgba(6,182,212,.12) inset,
    0 4px 20px rgba(59,130,246,.1) inset !important;
  -webkit-text-fill-color: unset !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
}

/* Testo attivo con gradient colore */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link.active span,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link.active,
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link.active {
  background: linear-gradient(135deg, #93c5fd, #67e8f9) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  filter: drop-shadow(0 0 8px rgba(6,182,212,.6)) !important;
}

/* Barra inferiore attiva — piena, glow forte */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link.active::after,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link.active::after {
  transform: translateX(-50%) scaleX(1) !important;
  background: linear-gradient(90deg, var(--c-blue), var(--c-cyan), var(--c-blue)) !important;
  height: 2px !important;
  box-shadow: 0 0 10px rgba(6,182,212,.8), 0 0 20px rgba(6,182,212,.4) !important;
}

/* Punto luminoso sopra il tab attivo */
[data-bs-theme=admin] .nav.nav-pills.nav-underline .nav-link.active::before,
[data-bs-theme=admin] .nav-pills.nav-underline .nav-link.active::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  background: linear-gradient(180deg, rgba(6,182,212,.08) 0%, transparent 60%) !important;
  pointer-events: none !important;
}

/* Override: rimuovi stile underline Bootstrap nativo che interferisce */
[data-bs-theme=admin] .nav-underline .nav-link.active,
[data-bs-theme=admin] .nav-underline .nav-link:hover {
  border-bottom-color: transparent !important;
  border-bottom-width: 0 !important;
}
[data-bs-theme=admin] .nav-underline {
  --bs-nav-underline-border-width: 0 !important;
  --bs-nav-underline-link-active-color: transparent !important;
}


/* ══════════════════════════════════════════════════════════
   SIDEBAR TOGGLE — Hamburger WOW + Slide-out sidebar
   SOLUZIONE: JS in index.php intercetta il click e anima width/opacity
   direttamente sull'elemento (bypassa il grid-template-columns non animabile).
   Il CSS qui gestisce solo lo stato finale (sidebar-collapse class).
   ══════════════════════════════════════════════════════════ */

/* Sidebar: overflow hidden necessario per il clipping durante l'animazione JS */
[data-bs-theme=admin] .app-sidebar {
  overflow: hidden !important;
  will-change: width, opacity !important;
}

/* Stato finale collapsed: sidebar completamente nascosta */
body.sidebar-collapse:not(.sidebar-mini) [data-bs-theme=admin] .app-sidebar,
body.sidebar-collapse:not(.sidebar-mini) .app-sidebar {
  width: 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Contenuto espanso quando sidebar è nascosta */
body.sidebar-collapse:not(.sidebar-mini) .app-main {
  margin-left: 0 !important;
}

/* Nessuna transition CSS sul main: il layout grid si aggiorna automaticamente */
body:not(.sidebar-collapse) .app-main,
body.sidebar-collapse .app-main {
  transition: none !important;
}

/* ── HAMBURGER BUTTON — Animazione WOW ── */
[data-bs-theme=admin] .nav-link[data-lte-toggle="sidebar"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 8px !important;
  background: rgba(6,182,212,0.08) !important;
  border: 1px solid rgba(6,182,212,0.15) !important;
  transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important;
  position: relative !important;
  overflow: hidden !important;
}

[data-bs-theme=admin] .nav-link[data-lte-toggle="sidebar"]:hover {
  background: rgba(6,182,212,0.18) !important;
  border-color: rgba(6,182,212,0.4) !important;
  box-shadow: 0 0 12px rgba(6,182,212,0.3) !important;
}

/* Hamburger WOW: nascondiamo la fa-bars e usiamo pseudo-elementi del link stesso */
[data-bs-theme=admin] .nav-link[data-lte-toggle="sidebar"] .fas.fa-bars {
  display: none !important;
}

/* Linea centrale hamburger via ::before */
[data-bs-theme=admin] .nav-link[data-lte-toggle="sidebar"]::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  width: 18px !important;
  height: 2px !important;
  background: linear-gradient(90deg, #60a5fa, #06b6d4) !important;
  border-radius: 2px !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  transition: transform 0.35s cubic-bezier(0.4,0,0.2,1), background 0.25s ease, box-shadow 0.25s ease !important;
  box-shadow: 0 -6px 0 0 #60a5fa, 0 6px 0 0 #06b6d4 !important;
}

/* Stato collapsed: trasforma in X */
body.sidebar-collapse .nav-link[data-lte-toggle="sidebar"]::before {
  transform: translate(-50%, -50%) rotate(45deg) !important;
  background: linear-gradient(90deg, #f87171, #fb923c) !important;
  box-shadow: none !important;
}

[data-bs-theme=admin] .nav-link[data-lte-toggle="sidebar"]::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  width: 18px !important;
  height: 2px !important;
  background: linear-gradient(90deg, #06b6d4, #60a5fa) !important;
  border-radius: 2px !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) rotate(0deg) !important;
  opacity: 0 !important;
  transition: transform 0.35s cubic-bezier(0.4,0,0.2,1), background 0.25s ease, opacity 0.25s ease !important;
}

body.sidebar-collapse .nav-link[data-lte-toggle="sidebar"]::after {
  transform: translate(-50%, -50%) rotate(-90deg) !important;
  background: linear-gradient(90deg, #f87171, #fb923c) !important;
  opacity: 1 !important;
}

body.sidebar-collapse .nav-link[data-lte-toggle="sidebar"] {
  background: rgba(248,113,113,0.1) !important;
  border-color: rgba(248,113,113,0.3) !important;
  box-shadow: 0 0 12px rgba(248,113,113,0.2) !important;
}

/* ══════════════════════════════════════════════════════════
   TOM SELECT DROPDOWN — Fix z-index e stile cyber
   ══════════════════════════════════════════════════════════ */

/* Z-index alto per dropdown che appare fuori dalla tabella/contenuto */
[data-bs-theme=admin] .ts-wrapper.single.has-items .ts-control,
[data-bs-theme=admin] .ts-wrapper .ts-control {
  position: relative !important;
  z-index: 1 !important;
}

[data-bs-theme=admin] .ts-wrapper.focus .ts-dropdown,
[data-bs-theme=admin] .ts-wrapper .ts-dropdown {
  z-index: 9999 !important;
  position: absolute !important;
}

/* Stile cyber premium per il dropdown */
[data-bs-theme=admin] .ts-dropdown {
  background: linear-gradient(135deg, #0e1628, #111827) !important;
  border: 1px solid rgba(6,182,212,0.3) !important;
  border-radius: 8px !important;
  box-shadow:
    0 8px 32px rgba(0,0,0,0.8),
    0 0 0 1px rgba(6,182,212,0.1),
    0 0 20px rgba(6,182,212,0.08) !important;
  backdrop-filter: blur(12px) !important;
  overflow: hidden !important;
  margin-top: 4px !important;
}

[data-bs-theme=admin] .ts-dropdown .option {
  padding: 10px 14px !important;
  color: #94a3b8 !important;
  font-size: 0.875rem !important;
  border-left: 2px solid transparent !important;
  transition: all 0.2s ease !important;
  -webkit-text-fill-color: #94a3b8 !important;
}

[data-bs-theme=admin] .ts-dropdown .option:hover,
[data-bs-theme=admin] .ts-dropdown .option.active {
  background: linear-gradient(90deg, rgba(6,182,212,0.12), rgba(59,130,246,0.08)) !important;
  color: #e2e8f0 !important;
  border-left-color: #06b6d4 !important;
  -webkit-text-fill-color: #e2e8f0 !important;
}

[data-bs-theme=admin] .ts-dropdown .option.selected {
  background: rgba(6,182,212,0.15) !important;
  color: #06b6d4 !important;
  -webkit-text-fill-color: #06b6d4 !important;
}

/* Input di ricerca dentro il dropdown */
[data-bs-theme=admin] .ts-dropdown input {
  background: rgba(6,182,212,0.05) !important;
  border-bottom: 1px solid rgba(6,182,212,0.15) !important;
  color: #e2e8f0 !important;
  padding: 8px 14px !important;
  -webkit-text-fill-color: #e2e8f0 !important;
}

/* Wrapper Tom Select */
[data-bs-theme=admin] .ts-wrapper {
  position: relative !important;
}
