:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#17263b;background:#f3f6fa;--border:#d5dfea;--blue:#1455b8;--green:#08783f;--red:#bb2237;--muted:#52647a;--review:#1554bf}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select{font:inherit}button,input,select,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #b55d00;outline-offset:3px}.hidden{display:none!important}.topbar{background:#12335b;color:#fff;min-height:72px;padding:12px clamp(16px,3vw,40px);display:flex;gap:18px;align-items:center;justify-content:space-between}.top-brand{display:flex;align-items:baseline;gap:12px}.top-brand b{font-size:22px;letter-spacing:1px}.top-brand span{font-size:15px}.header-side{display:flex;gap:10px;align-items:center}.header-side>span{font-size:12px;color:#deebff}.timer{font-size:25px;font-variant-numeric:tabular-nums;letter-spacing:1px}.timer.urgent{color:#ffd798}.shell{max-width:1500px;margin:auto;padding:24px clamp(12px,2.5vw,32px) 48px}.surface{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 18px #182d4a07}.auth-card{max-width:460px;margin:6vh auto;padding:32px}.eyebrow{font-size:11px;letter-spacing:1.3px;font-weight:800;color:#355d8b}.auth-card h1,.welcome h1,.submitted h1{font-size:clamp(25px,3vw,32px);margin:10px 0 14px}.lead{color:var(--muted);line-height:1.55}.auth-card label,.setting-form label{display:block;font-size:14px;font-weight:650;margin:18px 0 7px}input,select{min-height:46px;border:1px solid #a8b8cd;border-radius:7px;padding:10px 12px;background:#fff;color:#17263b;width:100%;font-size:16px}.password-row{display:flex;position:relative}.password-row input{padding-right:80px}.show-pass{position:absolute;right:2px;top:2px;bottom:2px;background:#eff4fa;border:0;border-radius:5px;padding:0 15px;font-size:13px;color:#204875;font-weight:650;min-width:64px}.btn{border:1px solid transparent;border-radius:7px;padding:11px 16px;min-height:46px;font-size:14px;font-weight:700;line-height:1.3;touch-action:manipulation}.primary{background:#174fa2;color:#fff}.primary:hover:not(:disabled){background:#103e82}.secondary{background:#e7efff;color:#153e85;border-color:#b7cbee}.subtle{background:#f4f7fb;color:#284766;border-color:#c8d5e5}.submit{background:#a7273a;color:#fff}.submit:hover:not(:disabled){background:#842030}.full{width:100%}#loginButton{margin-top:22px}.micro{font-size:13px;line-height:1.5;color:var(--muted)}.error{background:#fff1f2;border:1px solid #e7a1ad;color:#8d1528;border-radius:8px;padding:12px 14px;font-size:14px;line-height:1.5;margin:12px 0}.welcome{max-width:900px;margin:16px auto;padding:clamp(20px,4vw,38px)}.instruction-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.instruction-grid>div{padding:16px;background:#eff4fc;border:1px solid #d6e2f3;border-radius:8px}.instruction-grid b{display:block;font-size:23px;color:#204a84;margin-bottom:5px}.instruction-grid span{font-size:13px;color:var(--muted)}.instructions{padding-left:24px;line-height:1.7}.instructions li{padding-left:4px;margin-bottom:13px}.exam-window{background:#f0f5fd;padding:14px;border-radius:8px;line-height:1.55;color:#254a79}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.wait-panel{padding:18px;background:#fff9e7;border:1px solid #e4cc87;border-radius:9px}.wait-panel>strong{display:block}.wait-panel>span{display:block;font-size:30px;font-weight:750;font-variant-numeric:tabular-nums;margin:8px 0}.wait-panel p{margin:0;line-height:1.5}.exam-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 14px}.exam-head h1{font-size:clamp(20px,2.3vw,27px);margin:0 0 7px}.exam-head p{font-size:14px;color:var(--muted);margin:0}.dot{padding:0 5px}.exam-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.save-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;min-height:28px}.local-status{font-size:13px;line-height:1.5;color:#15603d}.local-status.saving{color:#755000}.local-status.offline{color:#9b2335;font-weight:650}.exam-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.question-panel{min-width:0;overflow:hidden}.question-head{padding:18px 24px;background:#f3f7fc;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px}.question-num{font-size:18px;margin:0;color:#153f75}.question-head>span{color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}#questionContent{padding-top:10px}.question-text{font-size:18px;line-height:1.85;padding:12px 24px 24px;overflow-wrap:break-word;overflow-x:auto;min-height:90px}.question-text p{margin:.6em 0}.question-text p:first-child{margin-top:0}.question-text p:last-child{margin-bottom:0}.question-text mjx-container[display="true"]{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:8px 0}.question-text table{border-collapse:collapse;min-width:280px}.question-text th,.question-text td{border:1px solid #bdcbdb;padding:9px 14px;text-align:left;vertical-align:top}.answer-heading{padding:13px 24px;background:#f7f9fc;border-top:1px solid #e1e8f0;color:var(--muted);font-size:13px;font-weight:650}.answers{display:grid;grid-template-columns:1fr;gap:12px;padding:20px 24px}.answers.short-options{grid-template-columns:repeat(2,minmax(0,1fr))}.server-answer{margin:0;display:flex;align-items:center;gap:12px;min-height:64px;min-width:0;border:2px solid #d6e0ec;border-radius:9px;padding:14px 16px;font-size:17px;font-weight:400;cursor:pointer;line-height:1.65}.server-answer:hover{background:#f7faff;border-color:#91b4e3}.server-answer.selected{background:#eff6ff;border-color:#2161b7}.server-answer input{width:20px;height:20px;min-height:20px;margin:0;flex:0 0 20px;accent-color:#174fa2}.server-answer strong{color:#2b496e;flex-shrink:0;font-size:16px}.server-answer>span{min-width:0;flex:1;overflow-x:auto;padding:3px 2px}.server-answer .selected-check{width:17px;flex:0 0 17px;color:#1758a9;font-size:20px;font-weight:800}.server-answer:not(.selected) .selected-check{visibility:hidden}.server-answer mjx-container{max-width:100%}.question-state{font-size:13px;color:#435b74;margin:0;padding:0 24px 16px;min-height:35px}.bottom-buttons{padding:17px 20px;display:flex;gap:9px;flex-wrap:wrap;border-top:1px solid var(--border);background:#f7f9fc}.bottom-buttons .btn{flex:1 1 auto}.sidebar{padding:18px;min-width:0}.sidebar h2{font-size:18px;margin:0 0 15px}.legend{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 16px;font-size:12px;color:#394f68}.legend>span{display:flex;align-items:center;gap:8px;min-height:22px}.leg{width:23px;height:23px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #aebccd;border-radius:5px;font-weight:800;font-size:14px;font-style:normal}.leg.ans,.palette-button.ans{background:var(--green);border-color:var(--green);color:#fff}.leg.seen,.palette-button.seen{background:var(--red);border-color:var(--red);color:#fff}.leg.marked,.palette-button.marked,.leg.both,.palette-button.both{background:var(--review);border-color:var(--review);color:#fff}.leg.blank,.palette-button.blank{background:#f1f4f7;border-color:#b4c0ce;color:#33455e}.leg.both b,.palette-button.both .state-symbol{color:#00813d;background:#fff;border:1px solid #c0ead0;border-radius:50%;line-height:1;display:grid;place-items:center;font-weight:900}.leg.both b{width:18px;height:18px}.palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;max-height:526px;overflow-y:auto;overflow-x:hidden;padding:5px 4px 6px;margin:-4px;scrollbar-gutter:stable}.palette-button{position:relative;border:1px solid;border-radius:6px;min-height:46px;min-width:44px;padding:8px 4px 11px;font-size:14px;font-weight:750;touch-action:manipulation;font-variant-numeric:tabular-nums}.palette-button.current{outline:3px solid #a95700;outline-offset:2px}.palette-button .state-symbol{position:absolute;font-size:11px;right:2px;bottom:1px;line-height:1}.palette-button.both .state-symbol{width:19px;height:19px;font-size:16px;right:0;bottom:0}.counts{font-size:13px;line-height:1.65;color:#425a73;margin:18px 0 14px}.submitted{max-width:650px;margin:8vh auto;text-align:center;padding:clamp(24px,5vw,42px)}.submitted p{line-height:1.6}.done-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#e0f5e9;color:#08703c;font-size:32px;margin:auto}.submitted code{word-break:break-all;font-size:14px}#unacknowledgedWarning{text-align:left}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:#12243dbb;overflow-y:auto}.modal-inner{width:100%;max-width:560px;padding:26px;max-height:calc(100dvh - 36px);overflow-y:auto}.modal-inner h2{margin-top:0}.modal-inner p{line-height:1.6}.modal-inner .action-row{justify-content:flex-end}body.modal-open{overflow:hidden}.match{display:grid;grid-template-columns:1fr 1fr;gap:16px}.match p{overflow-x:auto}summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:650}
@media(min-width:1061px){#jumpPalette{display:none}}
@media(max-width:1060px){.exam-grid{grid-template-columns:minmax(0,1fr) 290px;gap:14px}.sidebar{padding:14px}.palette{gap:8px}.question-text{padding-left:20px;padding-right:20px}.answers{padding-left:20px;padding-right:20px}.bottom-buttons .btn{flex-basis:40%}}
@media(max-width:850px){.exam-grid{grid-template-columns:1fr}.sidebar{margin-top:2px}.palette{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));max-height:330px;gap:11px}.legend{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar h2{scroll-margin-top:15px}.exam-actions{flex-shrink:0}.answers.short-options{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-buttons .btn{flex-basis:20%}.question-text{min-height:100px}}
@media(max-width:560px){.topbar{padding:12px 14px;gap:10px;min-height:66px}.top-brand{display:block}.top-brand b{font-size:19px}.top-brand span{display:block;font-size:12px;margin-top:2px}.header-side{display:block;text-align:right}.header-side>span{display:block;font-size:11px;margin-bottom:3px}.timer{font-size:22px}.shell{padding:16px 10px 32px}.auth-card{margin:24px auto;padding:24px}.exam-head{align-items:flex-start;gap:12px;flex-direction:column}.exam-head h1{font-size:21px}.exam-head p{font-size:13px}.exam-actions{width:100%;justify-content:space-between}.exam-actions .btn{font-size:13px;padding:9px 12px}.save-strip{align-items:flex-start;flex-wrap:wrap}.save-strip .btn{font-size:12px;padding:8px 12px;min-height:44px}.question-head{padding:16px}.question-num{font-size:17px}.question-head>span{font-size:13px}.question-text{font-size:17px;line-height:1.8;padding:12px 16px 22px}.answer-heading{padding:12px 16px}.answers,.answers.short-options{grid-template-columns:1fr;padding:16px;gap:11px}.server-answer{padding:12px 11px;gap:9px;font-size:16px;min-height:62px}.server-answer strong{font-size:15px}.bottom-buttons{padding:13px;gap:9px}.bottom-buttons .btn{flex-basis:40%;font-size:13px;padding:12px 7px;min-height:48px}.question-state{padding:0 16px 15px}.instruction-grid{gap:7px}.instruction-grid>div{padding:12px 9px}.instruction-grid b{font-size:20px}.instruction-grid span{font-size:11px}.instructions{font-size:15px}.welcome{padding:20px 17px}.legend{font-size:11px;gap:8px}.palette{max-height:348px}.match{grid-template-columns:1fr}.modal-inner{padding:22px 18px}.modal-inner .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.topbar,.admin-toolbar,.admin-filters,.metrics,#studentTable,.pagination,.setting-form,.modal,.btn{display:none!important}.shell{padding:0}.surface{box-shadow:none;border:0}.table-wrap{overflow:visible}.result-table{font-size:11px}.admin-panel{break-inside:auto}}
.question-text,.server-answer>span,.detail-question,.detail-option{white-space:pre-line}.question-text mjx-container,.server-answer mjx-container,.detail-question mjx-container,.detail-option mjx-container{white-space:normal}
