:root{--navy:#0f2742;--navy-2:#173b61;--blue:#2f6fa9;--blue-soft:#eaf3fb;--green:#18794e;--green-soft:#e9f7ef;--red:#b42318;--red-soft:#fff0ee;--amber:#9a6700;--amber-soft:#fff7d6;--ink:#17212b;--muted:#647383;--line:#dce3ea;--panel:#fff;--page:#f5f7f9}*{box-sizing:border-box}html,body{background:var(--page);min-height:100%;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}a{color:inherit}.shell{width:min(1180px,100% - 32px);margin:0 auto}.topbar{background:var(--navy);color:#fff;padding:16px 0}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{letter-spacing:.01em;font-weight:800}.brand small{opacity:.76;margin-top:2px;font-weight:500;display:block}.page{padding:28px 0 56px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}.stack{gap:16px;display:grid}.btn{cursor:pointer;border:0;border-radius:9px;min-height:44px;padding:11px 16px;font-weight:700}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--navy);color:#fff}.btn-secondary{color:var(--navy);border:1px solid var(--line);background:#fff}.btn-danger{background:var(--red);color:#fff}.input{background:#fff;border:1px solid #bdc8d2;border-radius:9px;width:100%;min-height:46px;padding:12px 13px}.label{margin-bottom:6px;font-size:.9rem;font-weight:700;display:block}.muted{color:var(--muted)}.error{color:var(--red);font-weight:650}.success{color:var(--green);font-weight:650}.login-wrap{width:min(460px,100% - 32px);margin:64px auto}.login-title{margin:0 0 8px}.dashboard-grid{grid-template-columns:1.5fr 1fr;gap:20px;display:grid}.metric-row{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.metric{border:1px solid var(--line);border-radius:10px;padding:15px}.metric strong{font-size:1.35rem;display:block}.exam-layout{grid-template-columns:230px minmax(0,1fr);align-items:start;gap:20px;display:grid}.exam-sidebar{position:sticky;top:16px}.timer{letter-spacing:.03em;font-size:1.7rem;font-weight:800}.timer.low{color:var(--red)}.nav-grid{grid-template-columns:repeat(5,1fr);gap:7px;margin-top:16px;display:grid}.qnav{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;height:38px;font-weight:700}.qnav.current{border-color:var(--blue);outline:3px solid #a9c8e6}.qnav.answered{background:var(--green-soft);border-color:#9bd0b4}.qnav.flagged{box-shadow:inset 0 -4px #f2b84b}.question-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.section-pill{background:var(--blue-soft);color:var(--navy-2);border-radius:999px;padding:5px 9px;font-size:.8rem;font-weight:800;display:inline-block}.question-text{white-space:pre-wrap;margin:18px 0;font-size:1.1rem;line-height:1.62}.choice-list{gap:10px;display:grid}.choice{text-align:left;border:1px solid var(--line);cursor:pointer;width:100%;color:var(--ink);background:#fff;border-radius:10px;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:13px;display:grid}.choice:hover{border-color:#9eb7cc}.choice.selected{border-color:var(--blue);background:var(--blue-soft)}.choice-letter{background:#eef1f4;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.choice.selected .choice-letter{background:var(--navy);color:#fff}.exam-actions{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:22px;display:flex}.media-image{border-radius:8px;max-width:min(100%,720px);height:auto;margin:14px auto;display:block}.data-table-wrap{margin:14px 0;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:440px}.data-table th,.data-table td{border:1px solid var(--line);text-align:left;padding:9px}.data-table th{background:#f2f5f7}.results-summary{grid-template-columns:1.3fr repeat(3,1fr);gap:12px;display:grid}.score-card{background:var(--navy);color:#fff;border-radius:12px;padding:20px}.score-card strong{font-size:2rem;display:block}.review-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.filter-group{flex-wrap:wrap;gap:8px;display:flex}.review-question{border-left:5px solid var(--line)}.review-question.correct{border-left-color:var(--green)}.review-question.incorrect{border-left-color:var(--red)}.review-question.unanswered{border-left-color:var(--amber)}.review-choice.correct-answer{background:var(--green-soft);border-color:#79bb98}.review-choice.wrong-selected{background:var(--red-soft);border-color:#e8a39d}.result-label{margin-top:14px;font-weight:800}.result-correct{color:var(--green)}.result-wrong{color:var(--red)}.result-unanswered{color:var(--amber)}@media (max-width:820px){.dashboard-grid,.exam-layout,.results-summary{grid-template-columns:1fr}.exam-sidebar{position:static}.nav-grid{grid-template-columns:repeat(10,1fr)}}@media (max-width:520px){.shell{width:min(100% - 20px,1180px)}.card{border-radius:10px;padding:17px}.nav-grid{grid-template-columns:repeat(6,1fr)}.metric-row{grid-template-columns:1fr}.question-head{flex-direction:column}}@media print{.no-print,.topbar{display:none!important}body{background:#fff}.shell{width:100%}.page{padding:0}.card{break-inside:avoid;border:0;padding:10px 0}.review-question{border:0;border-top:1px solid #aaa;margin-top:16px}.media-image{max-height:480px}}.topic-panel h2{margin-bottom:6px}.weak-box,.good-box{border-radius:10px;padding:14px}.weak-box{background:var(--red-soft);border:1px solid #efbbb6}.good-box{background:var(--green-soft);border:1px solid #add6bf}.weak-tags,.strong-tags{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.weak-tag,.strong-tag{border-radius:999px;align-items:center;min-height:34px;padding:6px 10px;font-size:.88rem;font-weight:750;display:inline-flex}.weak-tag{color:var(--red);background:#fff;border:1px solid #e9aaa4}.strong-tag{background:var(--green-soft);color:var(--green);border:1px solid #9ecdb3}.topic-list{gap:11px;display:grid}.topic-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.25fr) minmax(170px,.75fr);gap:8px 18px;padding:12px 0;display:grid}.topic-title{font-weight:800}.topic-meta{color:var(--muted);margin-top:3px;font-size:.86rem}.topic-score{text-align:right}.topic-score strong{font-size:1.15rem;display:block}.topic-score span{color:var(--muted);font-size:.82rem}.topic-bar{background:#e7ebef;border-radius:999px;grid-column:1/-1;height:8px;overflow:hidden}.topic-bar span{border-radius:inherit;height:100%;display:block}.topic-low{background:#c84b42}.topic-mid{background:#d39a2f}.topic-high{background:#3a8b65}@media (max-width:650px){.topic-row{grid-template-columns:1fr}.topic-score{text-align:left}}.admin-grant-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:680px}.admin-table th,.admin-table td{text-align:left;border-top:1px solid var(--line);vertical-align:middle;padding:12px 10px}.admin-table th{color:var(--muted);font-size:.86rem}.admin-status-active,.admin-status-revoked{border-radius:999px;align-items:center;padding:5px 9px;font-size:.84rem;font-weight:750;display:inline-flex}.admin-status-active{color:var(--green);background:var(--green-soft)}.admin-status-revoked{color:var(--red);background:var(--red-soft)}.login-divider{color:var(--muted);align-items:center;gap:12px;font-size:.85rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line);flex:1;height:1px}@media (max-width:620px){.admin-grant-form{grid-template-columns:1fr}}.free-signup-grid{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);align-items:start;gap:20px;display:grid}.free-feature-list{gap:10px;display:grid}.free-feature-list>div{border-top:1px solid var(--line);grid-template-columns:minmax(145px,.4fr) minmax(0,1fr);gap:12px;padding:11px 0;display:grid}.free-feature-list span{color:var(--muted)}.free-used-box{background:var(--blue-soft);border:1px solid #b9d2e8;border-radius:10px;gap:4px;padding:14px;display:grid}.free-upgrade-banner{background:var(--blue-soft);border-color:#b9d2e8;justify-content:space-between;align-items:center;gap:20px;display:flex}.free-upgrade-banner h2{margin-bottom:6px}@media (max-width:760px){.free-signup-grid{grid-template-columns:1fr}.free-upgrade-banner{flex-direction:column;align-items:stretch}}@media (max-width:480px){.free-feature-list>div{grid-template-columns:1fr;gap:3px}}
