/* === ROOT: TEMA CHIARO (DEFAULT) === */
:root {
  --bs-text-opacity: 1;

  /* === Colori principali === */
  --bs-primary: #0d47a1;
  --bs-primary-rgb: 13, 71, 161;
  --bs-primary-hover: #002171;
  
  --bs-danger: #d32f2f;
  --bs-danger-rgb: 211, 47, 47;
  --bs-danger-hover: #b71c1c;
  --bs-danger-light: rgba(239, 83, 80, var(--bs-text-opacity));
  --bs-danger-dark: rgba(183, 28, 28, var(--bs-text-opacity));

  --bs-warning: #fbc02d;
  --bs-warning-rgb: 251, 192, 45;
  --bs-warning-hover: #c49000;

  --bs-white: #ffffff;
  --bs-black: #000000;

  /* === Colori testo === */
  --text-on-primary: var(--bs-white);
  --text-muted-light: rgba(255, 255, 255, 0.7);
  --text-muted-dark: rgba(0, 0, 0, 0.6);

  /* === Sfondo e bordi === */
  --bs-body-bg: #ffffff;
  --bs-body-color: #212121;
  --bs-border-color: #ccc;
  --bs-border-color-dark: #444;

  /* === Link === */
  --bs-link-color: var(--bs-primary);
  --bs-link-hover-color: var(--bs-primary-hover);

  /* === Navbar === */
  --bs-navbar-link-color: var(--text-muted-light);
  --bs-navbar-link-active-color: var(--bs-white);
  --bs-navbar-bg: var(--bs-primary);
  --bs-navbar-hover-bg: transparent;

  /* === Sidebar e Dropdown === */
  --bs-sidebar-hover-bg: rgba(var(--bs-primary-rgb), 0.15);
  --bs-dropdown-hover-bg: var(--bs-primary);
  --bs-dropdown-hover-color: var(--bs-white);
  --dropdown-text-on-secondary: #212121;

  /* === Focus === */
  --bs-focus-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);

  /* === Colori per testo primario (tabella, evidenziati, etc.) === */
  --bs-blue-dark: rgba(13, 71, 161, var(--bs-text-opacity));
  --bs-blue-light: rgba(100, 181, 246, var(--bs-text-opacity));
}


/* === DARK MODE === */
[data-bs-theme="dark"],
body.dark-mode {
  --bs-body-bg: #121212;
  --bs-body-color: #e0e0e0;

  --bs-link-color: #90caf9;
  --bs-link-hover-color: #bbdefb;

  --bs-navbar-link-color: rgba(255, 255, 255, 0.7);
  --dropdown-text-on-secondary: #e0e0e0;

  --bs-border-color: var(--bs-border-color-dark);

  /* Colori testo più chiari per sfondo scuro */
  --bs-blue-dark: rgba(100, 181, 246, var(--bs-text-opacity));
  --bs-blue-light: rgba(144, 202, 249, var(--bs-text-opacity));
  
  --bs-danger-light: rgba(239, 83, 80, var(--bs-text-opacity));
  --bs-danger-dark: rgba(255, 138, 128, var(--bs-text-opacity));

  --bs-warning: #fff176;
  --bs-warning-hover: #f9a825;
}


/* === STILI GLOBALI === */
body {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
}

a {
  color: var(--bs-link-color);
  text-decoration: none;
}
a:hover {
  color: var(--bs-link-hover-color);
  text-decoration: none;
}


/* === NAVBAR === */
.navbar {
  background-color: var(--bs-navbar-bg);
  color: var(--text-on-primary);
}
.navbar a,
.navbar .nav-link,
.navbar .navbar-brand {
  color: var(--bs-navbar-link-color) !important;
}
.navbar .nav-link.active,
.navbar a.active,
.navbar .navbar-brand.active {
  color: var(--bs-navbar-link-active-color) !important;
}
@media (max-width: 767.98px) {
  .navbar a:hover,
  .navbar .nav-link:hover,
  .navbar a:focus,
  .navbar .nav-link:focus,
  .navbar .navbar-brand:hover {
    color: var(--bs-white);
    background-color: var(--bs-navbar-hover-bg);
  }
}


/* === SIDEBAR === */
#sidebarOffcanvas li.nav-item a.nav-link:hover,
#sidebarOffcanvas li.nav-item a.nav-link.active {
  background-color: var(--bs-sidebar-hover-bg);
}


/* === DROPDOWN === */
a.dropdown-item {
  color: var(--dropdown-text-on-secondary) !important;
}
a.dropdown-item:hover {
  background-color: var(--bs-dropdown-hover-bg);
  color: var(--bs-dropdown-hover-color) !important;
}


/* === BOTTONI === */
.btn-primary {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: var(--text-on-primary);
}
.btn-primary:hover {
  background-color: var(--bs-primary-hover);
  border-color: var(--bs-primary-hover);
  color: var(--text-on-primary);
}


/* === TOGGLER & CLOSE === */
button.navbar-toggler,
button.btn-close {
  color: var(--text-on-primary);
}


/* === FORM === */
input,
select,
textarea {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  border: 1px solid var(--bs-border-color);
}
input:focus,
select:focus,
textarea:focus {
  border-color: var(--bs-primary);
  box-shadow: var(--bs-focus-shadow);
}
[data-bs-theme="dark"] input,
[data-bs-theme="dark"] select,
[data-bs-theme="dark"] textarea {
  border-color: var(--bs-border-color-dark);
}


/* === TESTO PRIMARIO — COLORI NELLE TABELLE === */
.text-primary {
  color: var(--bs-blue-dark) !important;
}
.table .text-primary {
  color: var(--bs-blue-dark) !important;
}
.table-dark .text-primary {
  color: var(--bs-blue-light) !important;
}

.text-danger {
  color: var(--bs-danger-dark) !important;
}

.table .text-danger {
  color: var(--bs-danger-dark) !important;
}

.table-dark .text-danger {
  color: var(--bs-danger-light) !important;
}


/* === BADGE (.badge.bg-*) === */
/* Tema chiaro */
.badge.bg-primary {
  background-color: var(--bs-primary);
  color: var(--text-on-primary);
}
.badge.bg-primary:hover {
  background-color: var(--bs-primary-hover);
  color: var(--text-on-primary);
}

.badge.bg-danger {
  background-color: var(--bs-danger);
  color: var(--text-on-primary);
}
.badge.bg-danger:hover {
  background-color: var(--bs-danger-hover);
  color: var(--text-on-primary);
}

.badge.bg-warning {
  background-color: var(--bs-warning);
  color: #212121;
}
.badge.bg-warning:hover {
  background-color: var(--bs-warning-hover);
  color: #212121;
}

/* Tema scuro */
[data-bs-theme="dark"] .badge.bg-primary,
body.dark-mode .badge.bg-primary {
  background-color: var(--bs-blue-light);
  color: var(--bs-body-bg);
}
[data-bs-theme="dark"] .badge.bg-primary:hover,
body.dark-mode .badge.bg-primary:hover {
  background-color: var(--bs-blue-dark);
  color: var(--bs-body-bg);
}

[data-bs-theme="dark"] .badge.bg-danger,
body.dark-mode .badge.bg-danger {
  background-color: var(--bs-danger-light);
  color: var(--bs-body-bg);
}
[data-bs-theme="dark"] .badge.bg-danger:hover,
body.dark-mode .badge.bg-danger:hover {
  background-color: var(--bs-danger-dark);
  color: var(--bs-body-bg);
}

[data-bs-theme="dark"] .badge.bg-warning,
body.dark-mode .badge.bg-warning {
  background-color: var(--bs-warning);
  color: #212121;
}
[data-bs-theme="dark"] .badge.bg-warning:hover,
body.dark-mode .badge.bg-warning:hover {
  background-color: var(--bs-warning-hover) !important;
  color: #212121;
}

/* === TABLE WARNING === */

/* Tema chiaro */
.table-warning {
  --bs-table-bg: #fff8e1;
  --bs-table-color: #212121;
}

/* === TABLE WARNING - Dark Mode === */
[data-bs-theme="dark"] .table-warning,
body.dark-mode .table-warning {
  --bs-table-bg: #332701;        /* Sfondo base */
  --bs-table-color: #e0e0e0;     /* Testo chiaro */
  --bs-table-border-color: #444;
  --bs-table-hover-bg: #4a3901;  /* Hover */
  --bs-table-active-bg: #665201; /* Active/click */
  --bs-table-hover-color: #e0e0e0;  /* Testo chiaro anche su hover */
  --bs-table-active-color: #e0e0e0; /* Testo chiaro anche su active */
}
