:root {
    --brand-primary: #0b2447;
    --brand-accent: #d4a017;
    --brand-light: #f5f7fa;
    --sidebar-w: 260px;
}
body { background: var(--brand-light); font-family: 'Inter', 'Segoe UI', Arial, sans-serif; }

/* Login */
.login-page { background: linear-gradient(135deg, #0b2447, #145da0); min-height: 100vh; display:flex; align-items:center; }
.login-wrapper { width: 100%; display:flex; justify-content:center; padding: 20px; }
.login-card { background:#fff; border-radius: 14px; padding: 40px 34px; width: 100%; max-width: 380px; box-shadow: 0 20px 45px rgba(0,0,0,.25); }
.login-brand { text-align:center; margin-bottom: 24px; }
.login-brand h1 { font-size: 1.1rem; font-weight:700; color:var(--brand-primary); margin: 10px 0 2px; }
.login-brand p { font-size: .85rem; color:#666; }
.login-logo { width:56px; height:56px; background:var(--brand-primary); color:#fff; border-radius:12px; display:flex; align-items:center; justify-content:center; font-weight:700; margin:0 auto; }
.login-logo.small { width:42px; height:42px; font-size:.85rem; }
.login-logo-img { width:56px; height:56px; object-fit:contain; display:block; margin:0 auto; }
.login-logo-img.small { width:42px; height:42px; margin:0; }
.login-footer { text-align:center; font-size:.75rem; color:#999; margin-top:18px; margin-bottom:0; }

/* Shell */
.app-shell { display:flex; min-height:100vh; }
.app-sidebar { width: var(--sidebar-w); background: var(--brand-primary); color:#fff; flex-shrink:0; position:sticky; top:0; height:100vh; overflow-y:auto; }
.sidebar-brand { display:flex; align-items:center; gap:10px; padding: 18px 16px; border-bottom:1px solid rgba(255,255,255,.12); }
.sidebar-nav { display:flex; flex-direction:column; padding: 10px 0; }
.sidebar-nav a { color: rgba(255,255,255,.85); text-decoration:none; padding: 9px 20px; font-size:.88rem; display:flex; align-items:center; gap:10px; border-left:3px solid transparent; }
.sidebar-nav a:hover { background: rgba(255,255,255,.08); color:#fff; }
.sidebar-nav a.active { background: rgba(255,255,255,.12); border-left-color: var(--brand-accent); color:#fff; font-weight:600; }
.sidebar-divider { padding: 14px 20px 4px; font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color: rgba(255,255,255,.5); }

.app-main { flex:1; display:flex; flex-direction:column; min-width:0; }
.app-topbar { background:#fff; border-bottom:1px solid #e3e6ea; padding: 12px 22px; display:flex; align-items:center; justify-content:space-between; gap:12px; position:sticky; top:0; z-index:10; flex-wrap:wrap; }
.topbar-user { display:flex; align-items:center; font-size:.85rem; }
.app-content { padding: 24px; flex:1; }

.stat-card { background:#fff; border-radius:12px; padding:20px; box-shadow: 0 2px 10px rgba(0,0,0,.04); border:1px solid #eef0f3; height:100%; }
.stat-card .stat-value { font-size:1.7rem; font-weight:700; color:var(--brand-primary); }
.stat-card .stat-label { color:#777; font-size:.82rem; }

.content-card { background:#fff; border:1px solid #eef0f3; border-radius:12px; padding:20px; margin-bottom:14px; }

@media (max-width: 991.98px) {
    .app-sidebar { position:fixed; left:-260px; z-index:1050; transition:left .25s ease; }
    .app-sidebar.show { left:0; }
}
