:root{
  --app-bg:#f1f5f9;
  --card-bg:#ffffff;
  --sidebar-bg:#0f172a;
  --sidebar-active:#1e293b;
  --sidebar-text:#cbd5e1;
  --primary:#2563eb;
  --muted:#94a3b8;
}
body{
  background:var(--app-bg);
  color:#0f172a;
  padding-top:64px;
}
.navbar{
  box-shadow:0 2px 12px rgba(15,23,42,0.12);
}
.brand-dot{
  width:10px;height:10px;border-radius:50%;background:var(--primary);display:inline-block;margin-right:8px;
}
.sidebar{
  min-height:calc(100vh - 64px);
  background:var(--sidebar-bg);
  position:sticky;
  top:64px;
  padding:20px 12px;
}
.sidebar .nav-link{
  color:var(--sidebar-text);
  border-radius:10px;
  padding:10px 12px;
  margin-bottom:6px;
  display:flex;
  align-items:center;
  gap:8px;
}
.sidebar .nav-link.active,.sidebar .nav-link:hover{
  background:var(--sidebar-active);
  color:#fff;
}
.page-title{
  font-weight:700;
  letter-spacing:0.2px;
}
.card{
  border:0;
  border-radius:16px;
  background:var(--card-bg);
  box-shadow:0 10px 24px rgba(15,23,42,0.06);
}
.card-header{
  background:transparent;
  border-bottom:1px solid #e2e8f0;
  font-weight:600;
}
.form-label{
  font-weight:600;
  color:#334155;
}
.table thead th{
  color:#475569;
  font-weight:600;
  background:#f8fafc;
  border-bottom:0;
}
.table tbody tr{
  vertical-align:middle;
}
.badge-soft{
  background:#eff6ff;
  color:#1d4ed8;
  border-radius:999px;
  padding:6px 10px;
  font-weight:600;
}
#calendar{
  padding:10px;
}
.login-bg{
  background:linear-gradient(135deg,#1d4ed8 0%,#38bdf8 100%);
  min-height:100vh;
}
.login-card{
  border-radius:20px;
  box-shadow:0 20px 40px rgba(15,23,42,0.18);
}
