body.app-layout {
  min-height: 100vh;
}

body.auth-page {
  min-height: 100vh;
  background: var(--app-auth-page-bg, var(--app-bg, var(--bs-body-bg)));
}

.app-body {
  min-height: calc(100vh - 4.5rem);
}

aside.sidebar {
  width: 150px;
  flex: 0 0 150px;
  padding: 1rem 0.75rem;
  background: var(--app-nav-bg, var(--bs-body-bg));
  border-right: 1px solid var(--app-nav-border, var(--bs-border-color));
}

.sidebar .nav {
  gap: 0.25rem;
}

.sidebar .nav-link {
  border-left: 3px solid transparent;
  border-radius: var(--app-radius-md, 0.375rem);
  color: var(--app-nav-link-color, var(--bs-body-color));
  padding: 0.55rem 0.75rem;
  text-decoration: none;
}

.sidebar .nav-link:hover,
.sidebar .nav-link:focus {
  background: var(--app-nav-link-hover-bg, var(--bs-tertiary-bg));
  color: var(--app-nav-link-active-color, var(--bs-body-color));
}

.sidebar .nav-link.active,
.sidebar .nav-link[aria-current='page'] {
  background: var(--app-accent-soft, var(--bs-primary-bg-subtle));
  border-left-color: var(--app-accent, var(--bs-primary));
  color: var(--app-accent-strong, var(--bs-primary));
  font-weight: 600;
}

.admin-footer {
  border-top: 1px solid var(--app-border, var(--bs-border-color));
  background: var(--app-surface, var(--bs-body-bg));
}
