/* Colori personalizzati EdilWebSmart */
:root {
  --primary: #0058a3;
  --primary-light: #1a6bb3;
  --primary-dark: #004080;
  --primary-very-light: #e6f2ff;

  --secondary: #8a8d8f;
  --secondary-light: #a5a8aa;
  --secondary-dark: #707375;
  --secondary-very-light: #f5f6f6;

  --dark: #2f2f2f;
  --dark-light: #4a4a4a;
  --dark-dark: #1a1a1a;
  
  --success: #28a745;
  --info: #0058a3;
  --warning: #ffd700;
  --danger: #dc3545;
}

/* Stili principali */
.navbar-light {
  background-color: white !important;
  border-bottom: 1px solid var(--primary-light);
}

.bg-primary {
  background-color: var(--primary) !important;
}

.bg-secondary {
  background-color: var(--secondary) !important;
}

.bg-dark {
  background-color: var(--dark) !important;
}

.btn-primary {
  background-color: var(--primary);
  border-color: var(--primary-dark);
}

.btn-primary:hover, .btn-primary:active, .btn-primary:focus {
  background-color: var(--primary-dark) !important;
  border-color: var(--primary-dark) !important;
}

.btn-secondary {
  background-color: var(--secondary);
  border-color: var(--secondary-dark);
}

.btn-secondary:hover, .btn-secondary:active, .btn-secondary:focus {
  background-color: var(--secondary-dark) !important;
  border-color: var(--secondary-dark) !important;
}

.btn-dark {
  background-color: var(--dark);
  border-color: var(--dark-dark);
}

.text-primary {
  color: var(--primary) !important;
}

.text-secondary {
  color: var(--secondary) !important;
}

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

.border-primary {
  border-color: var(--primary) !important;
}

.border-secondary {
  border-color: var(--secondary) !important;
}

.border-dark {
  border-color: var(--dark) !important;
}

/* Sidebar */
.main-sidebar {
  background-color: #f8f9fa !important;
  border-right: 1px solid #dee2e6;
}

.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {
  background-color: var(--primary);
  color: white;
}

.sidebar-light-primary .nav-treeview > .nav-item > .nav-link.active, 
.sidebar-light-primary .nav-treeview > .nav-item > .nav-link.active:hover {
  background-color: var(--primary-light);
  color: white;
}

.sidebar a {
  color: var(--dark);
}

.sidebar a:hover {
  color: var(--primary);
}

/* Stili per le sezioni della sidebar */
.nav-header {
  position: relative;
  border-bottom: 1px solid #dee2e6;
  margin-bottom: 0.5rem;
  transition: all 0.3s ease;
}

.nav-header:hover {
  background-color: rgba(0, 88, 163, 0.05);
  border-bottom-color: var(--primary-light);
}

.nav-header i {
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

.nav-header:hover i {
  opacity: 1;
}

/* Effetto hover per i menu items */
.nav-sidebar .nav-item > .nav-link {
  transition: all 0.3s ease;
  border-radius: 0.375rem;
  margin: 0.125rem 0.5rem;
}

.nav-sidebar .nav-item > .nav-link:hover {
  background-color: rgba(0, 88, 163, 0.1);
  transform: translateX(2px);
}

.nav-sidebar .nav-item > .nav-link.active {
  background-color: var(--primary);
  color: white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* Stili per i sottomenu */
.nav-treeview {
  margin-left: 0.5rem;
}

.nav-treeview .nav-item > .nav-link {
  transition: all 0.3s ease;
  border-radius: 0.25rem;
  margin: 0.0625rem 0.25rem;
  font-size: 0.875rem;
}

.nav-treeview .nav-item > .nav-link:hover {
  background-color: rgba(0, 88, 163, 0.08);
  transform: translateX(1px);
}

.nav-treeview .nav-item > .nav-link.active {
  background-color: var(--primary-light);
  color: white;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

/* Animazione per l'apertura dei menu */
.nav-treeview {
  transition: all 0.3s ease;
}

.menu-open > .nav-treeview {
  animation: slideDown 0.3s ease;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Separatori tra sezioni */
.nav-header:not(:first-child) {
  border-top: 1px solid #dee2e6;
  margin-top: 1rem;
  padding-top: 0.75rem;
}

/* Card */
.card-primary:not(.card-outline) > .card-header {
  background-color: var(--primary);
}

.card-secondary:not(.card-outline) > .card-header {
  background-color: var(--secondary);
}

.card-dark:not(.card-outline) > .card-header {
  background-color: var(--dark);
}

.card-primary.card-outline {
  border-top: 3px solid var(--primary);
}

.card-secondary.card-outline {
  border-top: 3px solid var(--secondary);
}

.card-dark.card-outline {
  border-top: 3px solid var(--dark);
}

/* Info-box */
.info-box .info-box-icon.bg-primary {
  background-color: var(--primary) !important;
}

.info-box .info-box-icon.bg-secondary {
  background-color: var(--secondary) !important;
}

/* Badge */
.badge-primary {
  background-color: var(--primary);
}

.badge-secondary {
  background-color: var(--secondary);
}

.badge-dark {
  background-color: var(--dark);
}

/* Tabelle con righe a colori alternati */
.table-striped tbody tr:nth-of-type(odd) {
  background-color: var(--primary-very-light);
}

/* Elementi di navigazione attivi */
.nav-pills .nav-link.active, .nav-pills .show>.nav-link {
  background-color: var(--primary);
}

.page-item.active .page-link {
  background-color: var(--primary);
  border-color: var(--primary);
}

.page-link {
  color: var(--primary);
}

.page-link:hover {
  color: var(--primary-dark);
}

/* Stile Pulsanti e Links */
a {
  color: var(--primary);
}

a:hover {
  color: var(--primary-dark);
}

/* Personalizzazione elementi form */
.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--primary);
  border-color: var(--primary-dark);
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--primary);
}

.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--primary);
}

/* Form control focus */
.form-control:focus {
  border-color: var(--primary-light);
  box-shadow: 0 0 0 0.2rem rgba(0, 88, 163, 0.25);
}

/* Modifica colore brand */
.brand-link {
  background-color: var(--primary) !important;
  color: white !important;
  border-bottom: 1px solid var(--primary-dark);
}

/* Progress bar */
.progress-bar {
  background-color: var(--primary);
}

/* Timeline */
.timeline > div > .timeline-item > .timeline-header {
  border-bottom: 1px solid var(--secondary-light);
}

/* Modifica per i bottoni info, warning, danger */
.btn-info {
  background-color: var(--info);
  border-color: var(--info);
}

.btn-info:hover {
  background-color: #004080;
  border-color: #004080;
}

.btn-warning {
  color: var(--dark);
}

/* Footer */
.main-footer {
  background-color: white;
  border-top: 1px solid var(--secondary-light);
}