:root {
  --sidebar-width: 220px;
}

.layout {
  min-height: 100vh;
}

/* Desktop sidebar width */
.sidebar-desktop {
  width: var(--sidebar-width);
}

/* Subtle UI polish */
.nav-link {
  border-radius: 0.5rem;
  transition: background-color 0.15s ease-in-out;
}

.nav-link:hover:not(.active) {
  background-color: rgba(13, 110, 253, 0.1);
}

.nav-link.active {
  background: #0d6efd !important;
  color: #fff !important;
}

/* Mobile offcanvas sidebar */
.offcanvas {
  max-width: 280px;
}

.offcanvas .nav-link {
  border-radius: 0;
  font-size: 1rem;
}

.offcanvas .nav-link.active {
  background: #0d6efd !important;
  border-left: 4px solid #0a58ca;
}

.offcanvas .nav-link:hover:not(.active) {
  background-color: rgba(13, 110, 253, 0.08);
}

/* Ensure offcanvas body fills height for footer positioning */
.offcanvas-body {
  display: flex;
  flex-direction: column;
}

/* Mobile hamburger button touch target */
@media (max-width: 991.98px) {
  .navbar .btn {
    min-width: 44px;
    min-height: 44px;
  }
}