:root {
  --sidebar-width: 250px;
  --brand: #4f46e5;
}

body { background-color: #f4f6fb; }
[data-bs-theme="dark"] body { background-color: #0f1117; }

#app-shell { min-height: 100vh; }

.sidebar {
  width: var(--sidebar-width);
  min-height: 100vh;
  position: sticky;
  top: 0;
  background: linear-gradient(180deg, #1e1e2f, #14141f) !important;
}
.sidebar-brand { border-bottom: 1px solid rgba(255,255,255,.08); }
.sidebar .nav-link {
  border-radius: .5rem;
  padding: .6rem .9rem;
  opacity: .85;
  font-size: .92rem;
}
.sidebar .nav-link:hover { background: rgba(255,255,255,.08); opacity: 1; }
.sidebar .nav-link.active { background: var(--brand); opacity: 1; }

.main-content { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 5; }

.stat-card {
  border: none;
  border-radius: 1rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}
.stat-card .stat-icon {
  width: 48px; height: 48px;
  border-radius: .75rem;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
}

@media (max-width: 991.98px) {
  .sidebar {
    position: fixed; left: -260px; z-index: 1040; transition: left .2s ease;
  }
  .sidebar.show { left: 0; }
}

.login-page {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at top left, #4f46e5, #14141f);
}
.login-card {
  border: none; border-radius: 1.25rem; overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.3);
  max-width: 420px; width: 100%;
}
