/* DataTables: zero lateral gutters so tables align with containers */
.dataTables_wrapper .row{
  margin-left: 0;
  margin-right: 0;
}
.dataTables_wrapper .col-sm-12,
.dataTables_wrapper .col-sm-6,
.dataTables_wrapper .col-md-6{
  padding-left: 0;
  padding-right: 0;
}

/* DataTables: remove grid, keep only bottom border per row */
.table.dataTable{
  border: 0 !important;
  border-collapse: collapse;
}
.table.dataTable > :not(caption) > * > *{
  border-top: 0;
  border-left: 0;
  border-right: 0;
  border-bottom: 1px solid #e5e7eb;
}
.table.dataTable > thead > tr > th{
  border-bottom: 1px solid #cfd4da;
}
.custom-background {
  background-image: url('../../dist/img/background.jpg');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  background-color: #e9ecef;
  /* fallback */
  min-height: 100vh;
  /* Evita fixed su mobile per performance */
  background-attachment: scroll;
}

@supports (background-attachment: fixed) {
  @media (min-width: 992px) {
    .custom-background {
      background-attachment: fixed;
    }
  }
}

/* (opzionale) se vuoi più leggibilità sopra la foto:
.custom-background::before{
  content:""; position:fixed; inset:0; background:rgba(255,255,255,.35); pointer-events:none;
}
*/


.login-logo {
  text-align: center;
  margin-bottom: 20px;
}

.login-box-bandistapp {
  width: 100%;
  max-width: 360px;
  /* limite gradevole */
  margin: 0 auto;
  padding: 20px;
  background-color: rgba(233, 236, 239, .9);
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, .2);
}


.logo-image {
  /* Altezza massima del logo */
  width: auto;
  /* Mantiene le proporzioni */
  max-width: 95%;
  /* Adatta la larghezza massima */
}

/* Adattamento per schermi piccoli */
@media (max-width: 768px) {
  .logo-image {
    height: 50px;
    /* Altezza ridotta per schermi piccoli */
  }
}

.slogan {
  font-size: 0.9rem;
  color: #495057;
  /* Grigio medio per un tocco elegante */
  text-shadow: none;
  /* Nessuna ombra */
  margin-top: 10px;
}

.register-box {
  width: 100%;
  /* Occupare il 100% della larghezza disponibile */
  max-width: none;
  /* Rimuovere eventuali vincoli di larghezza massima */
  margin: 0 auto;
  /* Centrare il contenitore */
  padding: 20px;
  /* Spaziatura interna */
  background-color: rgba(233, 236, 239, 0.9);
  /* Sfondo semitrasparente */
  border-radius: 10px;
  /* Angoli arrotondati */
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  /* Ombra leggera */
}

/* CSS per i Cookie */
.modal-content {
  border-radius: 10px;
  /* Angoli arrotondati */
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  /* Ombra leggera */
}

.modal-header {
  border-bottom: 1px solid #dee2e6;
  /* Divider */
}

.modal-footer {
  border-top: 1px solid #dee2e6;
  /* Divider */
}

#acceptCookies {
  background-color: #007bff;
  /* Blu Bootstrap */
  color: #fff;
}

.modal-backdrop {
  z-index: 1040 !important;
  /* Assicura che il backdrop segua la logica del z-index */
}

/* SUGGERITO: rimuovi questa regola
body.modal-open { pointer-events: none; }
*/
/* Se vuoi bloccare solo un wrapper:*/
.page-wrapper.modal-open-lock {
  pointer-events: none;
}

.modal {
  pointer-events: auto;
}


/* Consenti interazioni solo con la modale */
.modal {
  pointer-events: auto;
}

.loading-spinner {
  display: none;
  font-size: 1rem;
  margin-left: 5px;
}

.toggle-status.loading i {
  display: none;
}

.toggle-status.loading .loading-spinner {
  display: inline-block;
}

/* Loading Overlay per le operazioni di FORM */
.loading-container {
  display: none;
  /* Nasconde inizialmente */
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 250px;
  text-align: center;
  background: #f8f9fa;
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1);
}

.loading-animation i {
  font-size: 50px;
  color: #007bff;
  margin-bottom: 10px;
  animation: spin 1s linear infinite;
  /* Animazione continua */
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .loading-animation i {
    animation: none;
  }
}

.btn-space {
  margin: 0.25rem;
}

@media (min-width: 768px) {
  .btn-space {
    margin-bottom: 0;
    /* Rimuove il margine inferiore per schermi grandi */
  }
}

/* Forza il testo .dt-info ad andare a capo automaticamente quando serve */
.dt-info {
  white-space: normal !important;
  word-wrap: break-word;
  word-break: break-word;
}

div.dataTables_info.dt-info {
  white-space: normal !important;
}

/* Facoltativo: migliora leggibilità per schermi piccoli */
@media (max-width: 767px) {
  .dt-info {
    font-size: 0.9rem;
    /* testo leggermente più piccolo */
    line-height: 1.3;
    margin-bottom: 5px;
  }
}

.card-info {
  border: 1px solid #b6e0ec;
}

.card-info .card-header {
  color: #fff !important;
}

.card-primary {
  border: 1px solid #b6e0ec;
}

.card-primary .card-header {
  color: #ffffff !important;
}

.card-primary .card-title,
.card-primary .card-header h3 {
  color: #ffffff !important;
}

.card-success {
  border: 1px solid #b8e0c3;
}

.card-success .card-header {
  color: #fff !important;
}

.card-warning {
  border: 1px solid #ffe8a1;
  /* bordo giallo pastello */
}

.card-warning .card-header {
  color: #212529 !important;
  /* testo scuro per contrasto */
}

.card-secondary {
  border: 1px solid #dfe3e8;
}

.card-secondary .card-header {
  color: #fff !important;
}

.inner-panel {
  border: 1.5px solid #e5e7eb;
  /* grigio leggero */
  border-radius: .5rem;
}

.inner-panel+.inner-panel {
  margin-top: 1rem;
}

/* stack su mobile */
.inner-panel__header {
  padding: .75rem 1rem;
  border-bottom: 1px solid #eef1f5;
  font-weight: 600;
}

.inner-panel__body {
  padding: 1rem;
}

.form-control,
.custom-select {
  background-color: #fcfdff;
}

body.dark-mode .form-control,
body.dark-mode .custom-select {
  background-color: #0b1220;
}

@media (min-width: 992px) {
  .inner-panel+.inner-panel {
    margin-top: 0;
  }

  /* affiancati su desktop */
}

/* ===== Sidebar - Sottomenu migliorati ===== */

.nav-treeview {
  background: rgba(0, 0, 0, .035) !important;
  /* Sfondo sottile per distinguere l'area sottomenu */
}


/* Voci del sottomenu: stesso padding delle voci principali */
.nav-treeview .nav-link {
  opacity: .88;
  background: rgba(0, 132, 255, 0.24) !important;
  /* Sfondo leggermente più chiaro */
}

/* Hover sottomenu: feedback evidente */
.nav-treeview .nav-link:hover {
  background-color: #ffc107c5 !important;
  /* Bootstrap warning */
  color: #212529 !important;
  opacity: 1;
}

/* Stato attivo sottomenu: massima enfasi */
.nav-treeview .nav-link.active {
  background-color: #ffc107c5 !important;
  /* Bootstrap warning */
  color: #212529 !important;
  opacity: 1;
}

/* Stili per voci riservate rimossi: le voci riservate mantengono comportamento (aria-disabled, blocco click) ma non saranno evidenziate tramite CSS */

/* Role-specific menu styling removed: admin/superadmin menu items inherit default styles */

/* Evidenziazione sezione Amministrazione (SuperAdmin) */
.nav-header.admin-section {
  color: #ff5263 !important;
  /* rosso per 'Amministrazione' */
  font-weight: 700;
}

/* Rendi tutte le intestazioni del menu (nav-header) in grassetto per maggiore enfasi */
.nav-sidebar .nav-header {
  font-weight: 700;
  /* Colore di sfondo uguale al logo bandistapp */
  color: #89C5E4;
  /* colore logo */
  display: block;
  padding: .45rem .75rem;
  margin: 0 0 0.35rem 0;
}


/* Padding aggiuntivo per evitare che l'ultima voce sia attaccata al fondo */
.nav-sidebar {
  padding-bottom: 1rem !important;
}

/* Sidebar menu font customization: uses Inter from Google Fonts with sensible fallbacks.
   If you prefer a self-hosted font, replace the @import with a local font-face rule. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap');

.main-sidebar.font-menu,
.main-sidebar.font-menu .nav-sidebar .nav-link,
.main-sidebar.font-menu .nav-sidebar .nav-header,
.main-sidebar.font-menu .brand-text {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

.main-sidebar.font-menu .nav-sidebar .nav-link {
  font-size: 0.95rem;
  /* leggermente più compatto delle impostazioni di default */
  font-weight: 500;
}

.main-sidebar.font-menu .nav-sidebar .nav-header {
  font-weight: 700;
  letter-spacing: 0.02em;
}

.main-sidebar.font-menu .brand-text {
  font-weight: 600;
  font-size: 0.95rem;
}

/* Small tweak for very small screens to avoid cramped sidebar */
@media (max-width: 420px) {
  .main-sidebar.font-menu .nav-sidebar .nav-link {
    font-size: 0.92rem;
  }
}

/* ===== Fine Sidebar ===== */