/* Modern theme variables - palette aggiornata */
:root {
 --primary: #1e3a8a; /* indigo profondo */
 --primary-600: #162e6b;
 --accent: #00b894; /* teal brillante */
 --muted: #6b7280;
 --card-bg: #ffffff;
 --page-bg: linear-gradient(180deg, #f3f6ff 0%, #f9fafb 100%);
 --glass: rgba(255,255,255,0.70);
}

html {
 font-size:14px;
}

@media (min-width:768px) {
 html {
 font-size:16px;
 }
}

/* Focus rings tuned to the new palette */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(22,46,107,0.25);
}

.bg-primary {
    --bs-bg-opacity: 1;
    background: linear-gradient(to right, rgb(202 52 0 / 80%), rgb(77 25 25)) !important;
}

html {
 position: relative;
 min-height:100%;
}

body {
 margin-bottom: 60px;
 background: var(--page-bg);
 color: #0b1011;
 -webkit-font-smoothing: antialiased;
}

/* Navbar customization */
.navbar.custom-navbar {
    background: linear-gradient(90deg, var(--primary) 0%, var(--primary-600) 100%);
}

/* ensure links and brand stay white */
    .navbar.custom-navbar .navbar-brand,
    .navbar.custom-navbar .nav-link,
    .navbar.custom-navbar .navbar-toggler-icon {
        color: #fff;
    }

.navbar.custom-navbar .nav-link:hover {
 color: var(--accent);
}

.navbar-logo {
 width:38px;
 height:38px;
 object-fit: contain;
 vertical-align: middle;
}

/* Toggler/button tweaks so hamburger is always visible on dark gradient */
.navbar.custom-navbar .navbar-toggler {
  border-color: rgba(255,255,255,0.15);
}
.navbar.custom-navbar .navbar-toggler-icon {
    /* inline white SVG icon to guarantee visibility */
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/></svg>");
}

/* fallback if default icon appears too small */
.navbar.custom-navbar .navbar-toggler-icon,
.navbar.custom-navbar .navbar-toggler {
  width: 46px;
  height: 40px;
}

/* Fix hamburger alignment and visibility (minimal, non invasivo) */
.navbar .navbar-toggler {
  border-color: rgba(255,255,255,0.15); /* leggero bordo chiaro */
  padding: 0.25rem 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
}

/* Hamburger: show only on mobile (<= lg) and center icon */
.navbar-toggler {
  display: none;                 /* default hidden on desktop */
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.5rem;
  border-color: rgba(255,255,255,0.15);
  background: transparent;
}

/* Force toggler: hidden on desktop, visible on mobile (override precedenti regole) */
@media (min-width: 992px) {
  .navbar-toggler {
    display: none !important;
  }
}

@media (max-width: 991.98px) {
  .navbar-toggler {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
}

/* Ensure the built-in icon is visible and centered */
.navbar-toggler .navbar-toggler-icon {
  width: 26px;
  height: 20px;
  background-size: 26px 20px;
  background-position: center;
  background-repeat: no-repeat;
}

/* Card, buttons, table, calendar styles (unchanged) */
.card {
 border-radius:1rem;
 background: var(--card-bg);
 border: none;
 box-shadow:06px 18px rgba(11,90,90,0.06);
}

.btn {
 border-radius:0.75rem;
}

.btn-primary {
 background-color: var(--accent);
 border-color: var(--accent);
 color: #fff;
}

.btn-primary:hover, .btn-primary:focus {
 background-color: #00a67f;
 border-color: #00a67f;
}

.btn-outline-primary {
 color: var(--primary-600);
 border-color: rgba(11,90,90,0.15);
}

.table {
 vertical-align: middle;
 background: transparent;
}

.badge {
 font-size:0.9rem;
 padding:0.55em 0.8em;
}

h1, h2, h3, h4, h5 {
 font-weight:700;
}

.auth-card {
 border-radius:1.25rem;
 background: var(--glass);
}

.auth-title {
 font-weight:700;
}

.auth-page {
 min-height:100vh;
 display: flex;
 align-items: center;
}

footer.border-top.bg-white {
 background: transparent;
 border-top:1px solid rgba(11,90,90,0.06);
 color: var(--muted);
}

/* Simple calendar styles */
.simple-calendar .sc-weekdays {
    display: flex;
    gap: 8px;
    font-weight: 600;
    color: var(--muted);
}

    .simple-calendar .sc-weekdays div, .simple-calendar .sc-cell {
        width: calc((100% - 6*8px)/7);
        text-align: left;
        padding: 8px;
        box-sizing: border-box;
    }

.simple-calendar .sc-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.simple-calendar .sc-cell {
    min-height: 84px;
    background: #fff;
    border-radius: 8px;
    padding: 6px;
    position: relative;
    border: 1px solid rgba(0,0,0,0.04);
}

    .simple-calendar .sc-cell.empty {
        background: transparent;
        border: 0;
    }

.simple-calendar .sc-daynum {
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 6px;
}

.simple-calendar .sc-dots {
    position: absolute;
    bottom: 6px;
    left: 6px;
    display: flex;
    gap: 6px;
    align-items: center;
}

.simple-calendar .sc-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.simple-calendar .sc-more {
    font-size: 0.75rem;
    color: var(--muted);
    background: rgba(0,0,0,0.03);
    padding: 2px 6px;
    border-radius: 10px;
}