.container-fluid {
    padding-right: 0;
    padding-left: 0;
}

.navbar-brand img {
    height: 40px;
}

/* Light/dark toggle (data-bs-theme on <html>, set by static/js/theme.js).
   Navbar/footer restano una barra scura fissa (navbar-dark bg-dark /
   bg-dark text-light) indipendentemente dal tema: solo il contenuto della
   pagina cambia, stesso approccio gia' usato su plusreserva.com. */
.hero-section {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.08), rgba(13, 110, 253, 0.02));
}

[data-bs-theme="dark"] {
  --bs-body-bg: #14181b;
  --bs-body-color: #e8eaed;
}

[data-bs-theme="dark"] .hero-section {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.18), rgba(13, 110, 253, 0.05));
}

[data-bs-theme="dark"] .card {
  background-color: #1e2327;
  border-color: #33393e;
}

[data-bs-theme="dark"] .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

[dir="rtl"] .dropdown-menu {
  text-align: right;
}

/* Misuratore di robustezza password (registrazione) */
.password-strength-meter {
  width: 100%;
  height: 6px;
  margin-top: 0.5rem;
  border-radius: 3px;
}

.password-strength-meter::-webkit-meter-bar {
  background: var(--bs-secondary-bg, #e9ecef);
  border-radius: 3px;
  border: none;
}

.password-criteria-list {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  font-size: 0.8125rem;
}

.password-criterion {
  transition: color 0.15s ease;
}

.password-criterion.invalid {
  color: var(--bs-secondary-color, #6c757d);
}

.password-criterion.valid {
  color: #198754;
}

.password-criterion .criterion-icon {
  display: inline-block;
  width: 1.1rem;
}

.password-match-feedback {
  font-size: 0.8125rem;
  margin-top: 0.25rem;
}

.password-match-feedback.match {
  color: #198754;
}

.password-match-feedback.no-match {
  color: #dc3545;
}
