body { background-color: #0b1220; color: #eef3ff; min-height:100vh; }
.navbar { border-bottom: 1px solid rgba(255,255,255,0.1); }
.card { background: #121a2b; border: 1px solid rgba(255,255,255,0.08); }
.form-control, .form-select { background:#0f1625; border-color:#273149; color:#cfe1ff; }
.form-control:focus { background:#0f1625; color:#fff; box-shadow:none; border-color:#3f5aa6; }
.btn-primary { background:#3f5aa6; border-color:#3f5aa6; }
.table { color:#eef3ff; }
.table thead th { color:#94a9d6; border-bottom-color:#223057; }
.table tbody tr { border-color:#223057; }
.badge { font-size: .85rem; }
.small-muted { color:#dbe6ff; font-size:.9rem; }
h5, .h5 { color:#ffffff; }
code, kbd, pre, samp { color:#ffd48a; background: rgba(255, 212, 138, 0.08); padding: .1rem .25rem; border-radius: .25rem; }

/* Improve contrast for helper/checklist texts */
.card .small, .card small, .card p { color: #e6eeff; }
.checklist { line-height: 1.5; }
.checklist li { color:#eef3ff; margin-bottom: .35rem; }
.checklist code { color:#ffd48a; }

/* Buttons in input-group on dark */
.input-group .btn { border-color:#3a4768; color:#e0e9ff; }
.input-group .btn:hover { background:#1a2236; color:#ffffff; }
h1, h2, h3, h4, h5, h6, .card-title { color:#ffffff; }
.form-label { color:#eaf0ff; }
.navbar, .navbar .navbar-brand, .navbar .nav-link { color:#ffffff !important; }
::placeholder { color:#9fb3e7; opacity: 1; }
.form-control::placeholder { color:#9fb3e7; }

/* Full-screen login styles */
.login-hero {
  min-height: calc(100vh - 56px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(1200px 600px at 10% 10%, rgba(63,90,166,0.2), transparent 60%),
              radial-gradient(1000px 500px at 90% 20%, rgba(255,101,47,0.15), transparent 60%),
              linear-gradient(180deg, #0b1220 0%, #0a0f1b 100%);
}
.login-card { max-width: 420px; width: 100%; border-radius: 16px; }
.brand-title { font-weight:700; letter-spacing:.5px; }
.brand-sub { color:#94a9d6; }
.input-group-text { background:#0f1625; border-color:#273149; color:#cfe1ff; }
.toggle-password { cursor:pointer; }
.btn .spinner-border { width:1rem; height:1rem; }

/* Sidebar layout */
.layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 0;
}
.layout.no-sidebar { grid-template-columns: 1fr; }
.sidebar, .asp-sidebar { background:#0f1625; min-height: calc(100vh - 56px); border-right:1px solid rgba(255,255,255,0.08); position: sticky; top:56px; }
.sidebar .menu { list-style:none; margin:0; padding: 1rem; }
.sidebar .menu a { display:block; padding:.65rem 1rem; border-radius:8px; color:#cfe1ff; text-decoration:none; }
.sidebar .menu a:hover, .sidebar .menu a.active { background:#121a2b; color:#fff; }
.content, .asp-content { padding: 1rem; }

/* Center helpers for setup/login pages */
.page-center { max-width: 880px; margin: 0 auto; }
.container-narrow { max-width: 640px; margin: 0 auto; }

/* Stat cards */
.stat-card { border-radius:12px; padding:1rem; color:#fff; }
.stat-blue { background: linear-gradient(135deg, #3f5aa6, #6b8cff); }
.stat-green { background: linear-gradient(135deg, #2b8a3e, #37b24d); }
.stat-cyan { background: linear-gradient(135deg, #1971c2, #22b8cf); }
.stat-orange { background: linear-gradient(135deg, #f08c00, #fd7e14); }

/* Dashboard class namespace */
.asp-dashboard .table { font-size: 0.95rem; }
.asp-dashboard .filters .form-control, .asp-dashboard .filters .form-select { height: 38px; }

/* Responsive adjustments */
@media (max-width: 991.98px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar, .asp-sidebar { position: relative; top: 0; min-height: auto; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
}
@media (max-width: 575.98px) {
  .card { padding: 1rem !important; }
  .login-card { max-width: 100%; margin: 0 0.5rem; }
}
