:root{
  --brand:#0f5c9e;
  --brand-dark:#0a3f6e;
  --bg:#f4f6f9;
}
body{ background:var(--bg); }

.app-navbar{ background:linear-gradient(90deg,var(--brand-dark),var(--brand)); }

.app-shell{ display:flex; min-height:calc(100vh - 56px); }

.sidebar{
  width:230px; flex:0 0 230px;
  background:#fff; border-right:1px solid #e5e7eb;
  position:sticky; top:56px; height:calc(100vh - 56px); overflow-y:auto;
}
.sidebar-link{
  display:flex; align-items:center; gap:.6rem;
  padding:.6rem 1rem; color:#3a3f47; font-size:.92rem; border-left:3px solid transparent;
}
.sidebar-link i{ font-size:1.05rem; width:1.2rem; text-align:center; color:#6b7280; }
.sidebar-link:hover{ background:#f1f5f9; color:var(--brand-dark); text-decoration:none; }
.sidebar-link.active{ background:#e8f1fb; border-left-color:var(--brand); color:var(--brand-dark); font-weight:600; }
.sidebar-link.active i{ color:var(--brand); }
.sidebar-section-label{ font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:#9aa1ab; padding:1rem 1rem .25rem; }

.app-main{ flex:1 1 auto; min-width:0; }

.card{ border:1px solid #e9edf2; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.stat-card{ border-radius:14px; }
.stat-card .stat-value{ font-size:1.8rem; font-weight:700; }
.stat-card .stat-label{ font-size:.8rem; color:#6b7280; text-transform:uppercase; letter-spacing:.03em; }

.table-responsive-wrap{ background:#fff; border-radius:12px; border:1px solid #e9edf2; overflow:hidden; }
table.dataTable thead th{ white-space:nowrap; font-size:.78rem; text-transform:uppercase; letter-spacing:.02em; color:#6b7280; }
table.dataTable tbody td{ font-size:.88rem; vertical-align:middle; }

.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--brand-dark),var(--brand)); padding:1rem; }
.login-card{ width:100%; max-width:380px; border-radius:16px; }

.progress{ height:.6rem; border-radius:1rem; }

@media (max-width: 991.98px){
  .app-shell{ display:block; }
}
