:root{--bg:#f4f7fb;--card:#fff;--ink:#172033;--muted:#64748b;--line:#dbe4ee;--primary:#2563eb;--primary2:#1d4ed8;--ok:#15803d;--okbg:#ecfdf3;--bad:#b91c1c;--badbg:#fff1f2;--warn:#b45309;--shadow:0 8px 30px rgba(15,23,42,.08);--radius:18px}
*{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-height:100vh}a{color:inherit}.container{width:min(1120px,calc(100% - 28px));margin:auto}.page{padding:22px 0 42px;min-height:calc(100vh - 116px)}.topbar{position:sticky;top:0;z-index:50;background:#0f172a;color:#fff;box-shadow:0 2px 12px rgba(0,0,0,.12)}.topbar-inner{height:64px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;font-weight:800;font-size:1.08rem}.nav{display:flex;gap:8px;align-items:center}.nav a{padding:9px 11px;text-decoration:none;border-radius:10px;color:#e2e8f0}.nav a:hover{background:#1e293b}.menu-btn{display:none;background:none;border:0;color:white;font-size:1.5rem}.footer{padding:18px 0;color:var(--muted);font-size:.9rem;text-align:center}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{display:grid;gap:14px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.muted{color:var(--muted)}h1,h2,h3{line-height:1.2;margin:0 0 12px}h1{font-size:clamp(1.55rem,5vw,2.25rem)}h2{font-size:1.25rem}p{line-height:1.6}.btn{appearance:none;border:0;border-radius:12px;padding:12px 16px;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-size:.96rem;min-height:44px}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary2)}.btn.secondary{background:#e8eef8;color:#1e3a8a}.btn.danger{background:#fee2e2;color:#991b1b}.btn.ghost{background:#fff;border:1px solid var(--line)}.btn.full{width:100%}.actions{display:flex;gap:10px;flex-wrap:wrap}.alert{padding:13px 15px;border-radius:12px;margin-bottom:16px;border:1px solid}.alert.success{background:var(--okbg);border-color:#bbf7d0;color:#166534}.alert.danger{background:var(--badbg);border-color:#fecdd3;color:#9f1239}.alert.info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.alert.warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.form-group{display:grid;gap:7px}.form-group label{font-weight:700}.input,.select,.textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:12px 13px;background:#fff;color:var(--ink);font:inherit}.textarea{min-height:120px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:3px solid #dbeafe;border-color:#60a5fa}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,#e0e7ff,#f8fafc 55%,#dbeafe)}.auth-card{width:min(440px,100%)}.course-card{display:grid;gap:14px}.course-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.9rem}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#eef2ff;color:#3730a3;font-size:.8rem;font-weight:750}.stat{padding:16px}.stat strong{display:block;font-size:1.65rem}.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:#fff;min-width:640px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}th{background:#f8fafc;font-size:.86rem;color:#475569}.question-card{display:grid;gap:14px}.option{display:flex;gap:10px;align-items:flex-start;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff}.option.correct{border-color:#86efac;background:var(--okbg)}.option.wrong{border-color:#fda4af;background:var(--badbg)}.study-answer{background:#f8fafc;border-left:4px solid var(--primary);padding:13px;border-radius:10px}.chapter-heading{margin-top:22px;padding-top:6px}.exam-shell{max-width:820px;margin:auto}.exam-sticky{position:sticky;top:64px;z-index:30;background:rgba(244,247,251,.96);backdrop-filter:blur(8px);padding:10px 0}.exam-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}.timer{font-variant-numeric:tabular-nums;font-weight:900;font-size:1.25rem;padding:8px 12px;background:#0f172a;color:white;border-radius:12px}.timer.danger{background:#b91c1c}.progress-track{height:8px;background:#dbe4ee;border-radius:999px;overflow:hidden;margin-top:8px}.progress-fill{height:100%;background:var(--primary);width:0}.question-slide{display:none}.question-slide.active{display:block}.exam-nav{display:grid;grid-template-columns:repeat(10,1fr);gap:7px}.qnav{aspect-ratio:1;border-radius:9px;border:1px solid #cbd5e1;background:white;font-weight:700;cursor:pointer}.qnav.answered{background:#dcfce7;border-color:#86efac;color:#166534}.qnav.current{outline:3px solid #bfdbfe;border-color:#3b82f6}.result-score{text-align:center;padding:24px}.result-score strong{font-size:clamp(2.2rem,10vw,4rem);display:block}.wrong-card{border-left:5px solid #ef4444}.correct-text{color:#166534;font-weight:800}.wrong-text{color:#b91c1c;font-weight:800}.admin-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:4px}.admin-tabs a{white-space:nowrap}.kicker{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.empty{padding:28px;text-align:center;color:var(--muted)}
@media(max-width:760px){.container{width:min(100% - 20px,1120px)}.page{padding-top:14px}.card{padding:16px;border-radius:15px}.grid-2,.grid-3{grid-template-columns:1fr}.nav{display:none;position:absolute;top:64px;left:0;right:0;background:#0f172a;padding:10px 14px;flex-direction:column;align-items:stretch;border-top:1px solid #334155}.nav.open{display:flex}.menu-btn{display:block}.actions>.btn{flex:1 1 150px}.exam-sticky{top:64px}.exam-nav{grid-template-columns:repeat(6,1fr)}.exam-bar{align-items:flex-start}.timer{font-size:1.05rem}.option{padding:14px;min-height:52px}.btn{min-height:48px}.hide-mobile{display:none}}
@media(max-width:380px){.exam-nav{grid-template-columns:repeat(5,1fr)}.actions>.btn{flex-basis:100%}}
