:root{--dr-sidebar:#0f172a;--dr-sidebar-hover:#1e293b;--dr-muted:#64748b;--dr-bg:#f4f6fa}
body{background:var(--dr-bg);font-size:.925rem}
.app-shell{min-height:100vh}
.sidebar{background:var(--dr-sidebar) !important;width:236px;flex-shrink:0;min-height:100vh}
@media (min-width: 992px){.sidebar{position:sticky;top:0;height:100vh}}
.sidebar .brand{color:#fff;font-weight:600;letter-spacing:.2px;padding:1rem 1rem .5rem}
.sidebar .nav-section{color:#94a3b8;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.9rem 1rem .3rem}
.sidebar a.nav-link{color:#cbd5e1;padding:.45rem 1rem;border-radius:.4rem;margin:0 .5rem;display:flex;justify-content:space-between;align-items:center}
.sidebar a.nav-link:hover,.sidebar a.nav-link.active{background:var(--dr-sidebar-hover);color:#fff}
.sidebar .user-box{border-top:1px solid #1e293b;padding:1rem;color:#cbd5e1}
.main{min-width:0}
.topbar{background:#fff;border-bottom:1px solid #e5e7eb}
.card{border:0;box-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04)}
.metric .label{font-size:.78rem;color:var(--dr-muted);text-transform:uppercase;letter-spacing:.04em}
.metric .value{font-size:1.6rem;font-weight:600}
.metric.alert-metric .value{color:#b91c1c}
.small-muted{font-size:.85rem;color:var(--dr-muted)}
.table>:not(caption)>*>*{padding:.55rem .6rem}
.table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--dr-muted);font-weight:600}
.auth-wrap{min-height:100vh}
.recovery-codes{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem}
.secret-key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
.perm-grid .form-check{min-width:230px}
@media (max-width: 991.98px){.sidebar{width:260px}}
