:root {
    --brand-primary: #0d3b66;
    --brand-accent: #f4a300;
    --brand-light: #f5f7fa;
    --sidebar-w: 260px;
}

body {
    background: var(--brand-light);
    font-family: 'Segoe UI', Roboto, Arial, sans-serif;
}

/* ---------- Login ---------- */
.login-page { background: linear-gradient(135deg, #0d3b66, #14548c); 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.15rem; 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; font-size:1rem; }
.login-logo.small { width:42px; height:42px; font-size:.85rem; }
.login-footer { text-align:center; font-size:.75rem; color:#999; margin-top:18px; margin-bottom:0; }

/* ---------- App 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: 10px 20px; font-size:.92rem; 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:.7rem; 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; }
.topbar-user { display:flex; align-items:center; font-size:.88rem; }
.app-content { padding: 24px; flex:1; }

/* ---------- Cards & widgets ---------- */
.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.8rem; font-weight:700; color:var(--brand-primary); }
.stat-card .stat-label { color:#777; font-size:.85rem; }

.progress { height: 10px; border-radius: 6px; }

.kriteria-card { background:#fff; border:1px solid #eef0f3; border-radius:12px; padding:18px; margin-bottom:14px; }
.kriteria-card h6 { color: var(--brand-primary); font-weight:700; }

.badge-status-draft { background:#adb5bd; }
.badge-status-diajukan { background:#0d6efd; }
.badge-status-direview { background:#f4a300; color:#222; }
.badge-status-revisi { background:#dc3545; }
.badge-status-disetujui { background:#198754; }
.badge-status-ditolak { background:#6c757d; }

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