:root{--blue:#0b2d5c;--blue2:#134b8a;--bg:#f3f6fb}
*{box-sizing:border-box}body{background:var(--bg);color:#172033;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,#0b2d5c,#071d3b);color:#fff;padding:22px;display:flex;flex-direction:column;z-index:1040;transition:.25s}
.sidebar-brand{display:flex;gap:12px;align-items:center;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.15)}
.sidebar-brand small{display:block;color:rgba(255,255,255,.65)}
.brand-mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#fff;color:var(--blue);font-weight:800}
.sidebar .nav{gap:6px}.sidebar .nav-link{color:rgba(255,255,255,.75);border-radius:12px;padding:12px 14px;display:flex;gap:12px;align-items:center}
.sidebar .nav-link:hover,.sidebar .nav-link.active{background:rgba(255,255,255,.13);color:#fff}
.main-content{margin-left:270px;min-height:100vh}.topbar{height:82px;background:#fff;border-bottom:1px solid #e8edf4;padding:0 28px;display:flex;align-items:center;position:sticky;top:0;z-index:1020}
.content-area{padding:28px}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#eaf1fb;color:var(--blue);font-weight:800}
.card{border-radius:18px;border:0}.stat-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;margin-bottom:14px}
.table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#6d7685}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#1e65ad 0,#0b2d5c 45%,#06182f 100%)}
.login-card{width:min(100%,450px);border-radius:24px}.progress-stage{min-width:180px}
@media(max-width:991.98px){.sidebar{transform:translateX(-100%)}.sidebar.show{transform:translateX(0)}.main-content{margin-left:0}.content-area{padding:18px}.topbar{padding:0 18px}}
@media print{.sidebar,.topbar,.no-print{display:none!important}.main-content{margin-left:0}.content-area{padding:0}body{background:#fff}}

/* Logout tetap terlihat meskipun menu sidebar panjang. */
.sidebar .nav{overflow-y:auto;min-height:0;padding-right:4px;margin-bottom:12px}
.sidebar .logout-btn{flex:0 0 auto;margin-top:auto}
.ranking-link-card{border-left:5px solid #f2b705}.ranking-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:#fff3cd;color:#a66b00;font-size:1.4rem;flex:0 0 auto}.ranking-hero{background:linear-gradient(135deg,#0b2d5c,#1764ad);color:#fff}.ranking-position{font-size:4rem;font-weight:900;line-height:1}.ranking-me{background:#eaf3ff!important}.ranking-medal{font-size:1.35rem}.level-badge{min-width:112px}
.cat-timer{position:sticky;top:98px;z-index:10;background:#fff;border:2px solid #0b2d5c;border-radius:14px;padding:12px 18px;font-size:1.35rem;font-weight:800;color:#0b2d5c}.cat-timer.danger{border-color:#dc3545;color:#dc3545}.question-card{scroll-margin-top:110px}.question-number{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#0b2d5c;color:#fff;font-weight:800;flex:0 0 auto}.answer-option{display:block;border:1px solid #dfe5ee;border-radius:12px;padding:12px 14px;margin-bottom:10px;cursor:pointer}.answer-option:hover{background:#f4f8fd}.answer-option:has(input:checked){background:#e8f2ff;border-color:#1671c5}.question-nav{display:flex;flex-wrap:wrap;gap:7px}.question-nav a{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;text-decoration:none;background:#e9edf3;color:#26364b;font-weight:700}.question-nav a.answered{background:#198754;color:#fff}.cat-result-score{font-size:3.5rem;font-weight:900;color:#0b2d5c}.explanation-correct{border-left:5px solid #198754}.explanation-wrong{border-left:5px solid #dc3545}
