:root { --sidebar-width: 265px; --sidebar-bg: #fff; --sidebar-border: #e7ebf0; --sidebar-text: #354052; --sidebar-muted: #788396; --sidebar-active: #0d6efd; }
html, body { min-height: 100%; }
body { color: #202938; }
.app-topbar { min-height: 64px; box-shadow: 0 2px 8px rgba(18, 28, 45, .12); position: relative; z-index: 1035; }
.app-shell { display: flex; align-items: stretch; min-height: calc(100vh - 128px); }
.app-sidebar { flex: 0 0 var(--sidebar-width); width: var(--sidebar-width); background: var(--sidebar-bg); border-right: 1px solid var(--sidebar-border); }
.sidebar-inner { padding: 1.25rem .85rem 2rem; }
.sidebar-caption { padding: .25rem .8rem .75rem; color: var(--sidebar-muted); font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.sidebar-group-title { margin: 1.15rem .8rem .45rem; color: #7d8796; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .055em; }
.sidebar-nav { display: grid; gap: .2rem; }
.sidebar-link { display: block; padding: .62rem .8rem; border-radius: .55rem; color: var(--sidebar-text); text-decoration: none; font-size: .91rem; line-height: 1.25; transition: background-color .15s ease, color .15s ease; }
.sidebar-link:hover { background: #f2f6fc; color: #0a58ca; }
.sidebar-link.active { background: #eaf2ff; color: var(--sidebar-active); font-weight: 700; box-shadow: inset 3px 0 0 var(--sidebar-active); }
.app-main { min-width: 0; flex: 1 1 auto; }
.auth-main { min-height: calc(100vh - 128px); }
.app-footer { position: relative; }
.stat-card { border: 0; box-shadow: 0 .125rem .5rem rgba(0,0,0,.05); }
.card { border-color: #e8ebef; }
@media (min-width: 992px) { .app-sidebar { display: block !important; position: static; visibility: visible !important; transform: none !important; } }
@media (max-width: 991.98px) { .app-shell { display: block; } .app-sidebar { --bs-offcanvas-width: 290px; } .sidebar-inner { overflow-y: auto; max-height: calc(100vh - 65px); } .app-main { width: 100%; } }
