*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:#172033;background:#f5f7fb;--bg:#f5f7fb;--surface:#fff;--line:#e6eaf1;--muted:#748198;--nav:#101a2b;--primary:#315efb;--success:#0b976d;--danger:#c83e4e;--shadow:0 16px 46px rgba(23,32,51,.08);--shadow-sm:0 4px 16px rgba(23,32,51,.055)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,textarea,select{font:inherit}button{border:0;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}input,textarea,select{border:1px solid #d9e0ea;background:#fff;border-radius:10px;color:#172033;outline:none}input,select{height:42px;padding:0 12px}textarea{width:100%;min-height:118px;padding:11px 12px;resize:vertical;line-height:1.55}input:focus,textarea:focus,select:focus{border-color:#91a6ff;box-shadow:0 0 0 3px #315efb1a}.topbar{height:64px;background:#fffffff2;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand,.adminwho{display:flex;align-items:center;gap:11px}.brand>span{width:34px;height:34px;border-radius:10px;background:var(--nav);color:#fff;display:grid;place-items:center;font-weight:900}.brand div,.adminwho div{display:flex;flex-direction:column}.brand b{font-size:15px}.brand small,.adminwho small{font-size:11px;color:var(--muted)}.adminwho{text-align:right}.linkbtn{background:transparent;color:#526078;font-weight:750;padding:8px 10px;border-radius:8px}.linkbtn:hover{background:#f1f4f8;color:#172033}.public-actions{display:flex;align-items:center;gap:7px}.langbtn{min-width:66px;height:34px;border-radius:9px;background:#eef2f8;color:#35445a;font-size:12px;font-weight:800}.langbtn:hover{background:#e4eaf3}.btn{min-height:40px;padding:0 14px;border-radius:10px;font-weight:780;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;transition:.12s}.btn.primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px #315efb2e}.btn.primary:hover{background:#2449d8}.btn.soft{background:#edf1f6;color:#2c394d}.btn.soft:hover{background:#e3e8f0}.btn.success{background:var(--success);color:#fff}.btn.danger{background:#fff0f2;color:#b53142}.btn.ghost{background:transparent;border:1px solid var(--line);color:#59677b}.btn.large{min-height:48px;padding:0 18px}.btn.small{min-height:34px;padding:0 10px;font-size:11px}.spin{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:currentColor;border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,12px);background:#172033;color:#fff;padding:11px 16px;border-radius:10px;box-shadow:0 12px 32px #101a2b42;z-index:200;opacity:0;transition:.18s;font-size:13px;font-weight:750}.toast.bad{background:#b72d40}.toast.show{opacity:1;transform:translate(-50%)}.eyebrow{font-size:10px;letter-spacing:.14em;color:#687895;font-weight:900}.public{min-height:calc(100vh - 64px);display:grid;place-items:start center;padding:72px 18px}.start-card,.success-card{width:min(480px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:var(--shadow)}.start-card h1{font-size:27px;margin:8px 0 24px}.start-card>.btn{width:100%;margin-top:10px}.device-help,.recovery-copy{color:var(--muted);font-size:12px;line-height:1.65;margin:-8px 0 18px}.device-ok{display:flex;align-items:center;gap:8px;background:#edf8f3;color:#147654;border:1px solid #d3eee2;border-radius:9px;padding:8px 10px;margin-bottom:16px;font-size:11px;font-weight:800}.device-ok i{width:20px;height:20px;border-radius:50%;background:#d9f2e7;display:grid;place-items:center;font-style:normal}.recovery-progress{background:#f7f9fc;border:1px solid var(--line);border-radius:12px;padding:13px;margin-bottom:16px}.recovery-progress>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:11px}.recovery-progress .track{margin:9px 0}.recovery-progress small{color:var(--muted);font-size:10px}.field{display:flex;flex-direction:column;gap:7px;margin:14px 0}.field span{font-size:12px;color:#56647b;font-weight:800}.success-card{text-align:center}.success-card>span{width:54px;height:54px;border-radius:50%;background:#e7f8f1;color:var(--success);display:grid;place-items:center;font-size:26px;margin:0 auto 14px}.success-card>b{font-size:25px}.success-card>div{display:flex;flex-direction:column;width:180px;margin:22px auto;border:1px solid var(--line);border-radius:15px;padding:15px}.success-card strong{font-size:34px}.success-card small{font-size:18px;color:var(--muted)}.success-card em,.success-card p{font-style:normal;color:var(--muted);font-size:12px}.skeleton{display:grid;gap:10px}.skeleton>div{height:48px;border-radius:10px;background:linear-gradient(90deg,#f1f3f7 25%,#fafbfc 40%,#f1f3f7 60%);background-size:300% 100%;animation:shine 1.15s infinite}@keyframes shine{to{background-position:-100% 0}}.exam-page{width:min(1280px,100%);margin:auto;padding:24px 24px 60px}.exam-head{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px 22px;box-shadow:var(--shadow-sm)}.exam-head h1{font-size:22px;margin:4px 0 5px}.exam-head p{margin:0;color:var(--muted);font-size:12px}.exam-head-actions{display:flex;align-items:center;gap:12px}.ring{--p:0;width:78px;height:78px;border-radius:50%;background:conic-gradient(var(--primary) calc(var(--p)*1%),#edf0f5 0);display:grid;place-items:center;position:relative}.ring:after{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;background:#fff;border-radius:50%}.ring b,.ring small{position:absolute;z-index:1}.ring b{margin-top:-11px}.ring small{margin-top:22px;color:var(--muted);font-size:9px}.track{height:4px;background:#e8ecf2;border-radius:99px;overflow:hidden;margin:14px 4px 20px}.track i{display:block;height:100%;background:linear-gradient(90deg,#315efb,#7b93ff);transition:width .16s}.exam-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}.qnav{position:sticky;top:84px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;box-shadow:var(--shadow-sm)}.qnav>div{display:flex;justify-content:space-between;font-size:12px;margin-bottom:12px}.qnav>div span{color:var(--muted)}.qnav>section{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.qnav button{aspect-ratio:1;border-radius:8px;background:#f1f4f8;color:#66748a;font-size:10px;font-weight:800}.qnav button.done{background:#e8f7f1;color:#087653}.qnav button.current{box-shadow:inset 0 0 0 2px var(--primary);color:var(--primary)}.question-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:var(--shadow-sm);min-height:420px}.qmeta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px;font-weight:750}.qmeta>div{display:flex;gap:6px}.qmeta em{font-style:normal;background:#f1f4f8;padding:4px 7px;border-radius:6px}.question-card h2{font-size:20px;line-height:1.6;margin:18px 0 22px}.choices{display:grid;gap:9px}.choice{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:10px;border:1px solid #e0e5ed;border-radius:12px;padding:12px;cursor:pointer;transition:.12s}.choice:hover{border-color:#aab8ea;background:#fafbff}.choice:has(input:checked){border-color:#8198ff;background:#f3f6ff}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice i{width:28px;height:28px;border-radius:8px;background:#f0f3f8;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:900}.choice:has(input:checked) i{background:var(--primary);color:#fff}.question-card>footer{display:flex;justify-content:space-between;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.question-card>footer>div{display:flex;gap:8px}.submitted{margin-top:16px;background:#edf8f3;color:#147654;border-radius:9px;padding:10px 12px;font-size:12px;font-weight:750}.feedback{margin-top:16px;border:1px solid;border-radius:11px;padding:13px}.feedback.good{background:#edf9f4;border-color:#ccecdf;color:#17694e}.feedback.bad{background:#fff3f4;border-color:#f2d5d9;color:#9f3442}.feedback.info{background:#f0f5ff;border-color:#d8e3ff;color:#355386}.feedback p{font-size:12px;white-space:pre-wrap}.finish{margin-top:13px;background:#fff;border:1px solid #cee8de;border-radius:15px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between}.finish p{margin:3px 0 0;color:var(--muted);font-size:11px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a121f8a;display:grid;place-items:center;padding:18px;z-index:500;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.confirm-card{width:min(430px,100%);background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 70px #0a121f4d;text-align:center}.confirm-icon{width:46px;height:46px;border-radius:50%;background:#fff0f2;color:#b53142;display:grid;place-items:center;margin:0 auto 12px;font-size:22px;font-weight:900}.confirm-card h2{margin:0 0 10px;font-size:21px}.confirm-card p{color:var(--muted);font-size:12px;line-height:1.65;margin:0 0 20px}.confirm-card>div:last-child{display:flex;justify-content:center;gap:9px}.spin.dark{border-color:#28324633;border-top-color:currentColor}.admin-login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#e9eeff,#f5f7fb 44%)}.admin-login>section{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:20px}.login-brand i{width:48px;height:48px;border-radius:13px;background:var(--nav);color:#fff;display:grid;place-items:center;font-style:normal;font-size:22px}.login-brand h1{margin:4px 0 0}.admin-login>section>.btn{width:100%;margin-top:9px}.login-error{margin-top:12px;padding:10px;border-radius:9px;background:#fff0f2;color:#ad2d3e;font-size:12px}.admin-layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 64px)}.sidebar{position:sticky;top:64px;height:calc(100vh - 64px);background:var(--nav);padding:18px 12px;overflow-y:auto}.sidebar>small{display:block;color:#6f7f98;font-size:9px;letter-spacing:.15em;padding:8px 10px 12px;font-weight:900}.sidebar button{width:100%;min-height:42px;background:transparent;color:#aeb9ca;border-radius:9px;display:flex;align-items:center;gap:10px;padding:0 10px;text-align:left;font-size:13px;font-weight:680;margin:2px 0}.sidebar button:hover{background:#ffffff0f;color:#fff}.sidebar button.active{background:#26344b;color:#fff;box-shadow:inset 2px 0 #6f8aff}.sidebar button i{width:24px;height:24px;border-radius:7px;background:#ffffff0f;display:grid;place-items:center;font-style:normal;font-size:10px}.sidebar button.active i{background:var(--primary)}.admin-main{padding:28px;width:100%;max-width:1480px;margin:auto}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-title h1{font-size:27px;margin:4px 0}.page-title p{margin:0;color:var(--muted);font-size:12px}.page-title nav{display:flex;gap:8px;flex-wrap:wrap}.metrics,.scorebar{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:13px}.metrics article,.scorebar article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.metrics span,.scorebar span{color:var(--muted);font-size:10px}.metrics b{font-size:20px;margin-top:5px}.scorebar b{font-size:17px;margin-top:4px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-sm)}.features{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}.features article{display:flex;gap:10px;padding:18px;border-right:1px solid var(--line)}.features article:last-child{border:0}.features i{width:25px;height:25px;border-radius:50%;background:#edf8f3;color:#16805d;display:grid;place-items:center;font-style:normal;font-weight:900}.features b{font-size:12px}.features p{font-size:10px;color:var(--muted);margin:4px 0}.submission-table{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden}.submission-table>header,.row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(150px,1.2fr) minmax(105px,.8fr) minmax(82px,.65fr) minmax(92px,.75fr) minmax(82px,.65fr) minmax(100px,.8fr) 24px;gap:12px;align-items:center;min-height:52px;padding:0 16px}.submission-table>header{background:#f7f9fc;color:#7b8799;font-size:9px;font-weight:900;letter-spacing:.05em}.row{width:100%;background:#fff;color:#38465a;text-align:left;border-top:1px solid #edf0f4;font-size:11px}.row:hover{background:#fafbfe}.row .name{display:flex;align-items:center;gap:9px}.row .name i{width:30px;height:30px;border-radius:9px;background:#edf1ff;color:#3e5fe0;display:grid;place-items:center;font-style:normal;font-weight:900}.row em{font-style:normal;background:#f0f3f8;color:#5f6b7f;padding:4px 7px;border-radius:7px;font-size:9px;font-weight:800}.row em.warn{background:#fff4dd;color:#91600d}.empty{text-align:center;padding:36px;color:var(--muted)}.notice{display:flex;gap:12px;align-items:center;background:#fff7e8;border:1px solid #f1deb7;color:#805818;border-radius:10px;padding:11px 13px;margin-bottom:12px;font-size:11px}.answers{overflow:hidden}.answers>nav,.editor>nav{display:flex;gap:5px;padding:10px;border-bottom:1px solid var(--line);overflow:auto;background:#fafbfe}.answers>nav button,.editor>nav button{min-height:34px;padding:0 11px;border-radius:8px;background:transparent;color:#657188;font-size:10px;font-weight:850;white-space:nowrap}.answers>nav button.active,.editor>nav button.active{background:#fff;color:var(--primary);box-shadow:0 1px 6px #17203314}.answers>nav small,.editor>nav small{color:#a0a8b6}.answers>div{padding:12px;display:grid;gap:10px}.answer{border:1px solid var(--line);border-left:3px solid #9aa8bd;border-radius:12px;padding:14px}.answer.correct{border-left-color:#27a875}.answer.wrong{border-left-color:#d65462}.answer.manual{border-left-color:#5c78e6}.answer>header{display:grid;grid-template-columns:32px 1fr auto;gap:10px}.answer>header>i{width:30px;height:30px;border-radius:8px;background:#f0f3f8;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:900}.answer>header span{color:var(--muted);font-size:9px}.answer>header h3{font-size:12px;line-height:1.55;margin:3px 0}.answer>header>em{font-style:normal;font-size:9px;font-weight:900;background:#f5f7fa;padding:5px 7px;border-radius:7px;height:-moz-max-content;height:max-content}.answer>section{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.answer>section>div{background:#f8f9fc;border-radius:9px;padding:10px}.answer>section span{color:var(--muted);font-size:9px;font-weight:800}.answer>section p,.answer>aside p,.answer details p{font-size:11px;white-space:pre-wrap;margin:5px 0}.answer .correctbox{background:#f2faf6}.answer>aside,.answer details{margin-top:9px;background:#f7f9fc;border-radius:8px;padding:9px}.answer details summary{cursor:pointer;color:#4a64bf;font-size:10px;font-weight:800}.answer>footer{display:grid;grid-template-columns:180px 1fr;gap:9px;margin-top:10px}.answer>footer label{display:grid;grid-template-columns:auto 72px auto;gap:7px;align-items:center;color:#5a677c;font-size:10px;font-weight:800}.answer>footer label:last-child{grid-template-columns:auto 1fr}.dock{position:sticky;bottom:12px;margin-top:12px;background:#101a2bf5;color:#fff;border-radius:13px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:0 12px 32px #101a2b3d;z-index:20}.dock>div{display:flex;flex-direction:column}.dock span{color:#9facbf;font-size:9px}.dock section{display:flex;gap:8px}.dock select{width:115px}.device-list{overflow:hidden}.device-list article{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:13px 16px;border-top:1px solid var(--line)}.device-list article:first-child{border-top:0}.device-list article>div{display:flex;flex-direction:column}.device-list article b{font-size:13px}.device-list article span,.device-list article em,.device-list article time{font-size:10px;color:var(--muted);font-style:normal}.device-list article em{background:#f3f6fa;padding:6px 8px;border-radius:7px}.active-list{overflow:hidden}.active-list article{display:grid;grid-template-columns:12px 1fr 1.1fr auto;gap:12px;align-items:center;min-height:62px;padding:10px 16px;border-top:1px solid var(--line)}.active-list article:first-child{border:0}.active-list article>i{width:9px;height:9px;border-radius:50%;background:#2cb983;box-shadow:0 0 0 4px #2cb9831f}.active-list article>div{display:flex;flex-direction:column}.active-list span,.active-list em{font-size:10px;color:var(--muted);font-style:normal}.active-list em{background:#f6f8fb;border-radius:8px;padding:7px 9px}.versions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.versions article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow-sm)}.versions header{display:flex;justify-content:space-between}.versions header>b{font-size:23px}.versions header em{font-style:normal;font-size:9px;font-weight:850;padding:4px 7px;border-radius:999px}.versions header em.published{background:#e8f8f1;color:#147655}.versions header em.draft{background:#fff2d9;color:#8b5c0e}.versions header em.retired{background:#eef1f5;color:#657185}.versions p{font-size:10px;color:var(--muted);line-height:1.7}.versions .btn{width:100%}.editor-summary{display:grid;grid-template-columns:1fr 170px 170px;gap:10px;margin-bottom:12px}.editor-summary article,.editor-summary label{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:9px;font-weight:800}.editor-summary article b{font-size:20px}.goodtext{color:var(--success)}.badtext{color:var(--danger)}.editor{overflow:hidden}.editor>div{padding:10px;display:grid;gap:8px}.edit-q{border:1px solid var(--line);border-radius:10px;overflow:hidden}.edit-q>summary{padding:11px 12px;cursor:pointer;display:grid;grid-template-columns:42px 1fr auto;gap:10px;background:#fff}.edit-q>summary i{font-style:normal;color:var(--primary);font-size:10px;font-weight:900}.edit-q>summary b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edit-q>summary em{font-style:normal;color:var(--muted);font-size:9px}.edit-q>section{padding:12px;background:#fbfcfe;border-top:1px solid var(--line)}.edit-q>section>header{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.edit-q label{display:flex;flex-direction:column;gap:5px;color:#657188;font-size:9px;font-weight:800}.edit-q header input{width:76px}.edit-q header select{width:110px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:9px 0}.filters{display:flex;gap:6px;margin-bottom:12px;overflow:auto}.filters button{background:#edf1f6;color:#657188;border-radius:8px;padding:7px 10px;font-size:10px;font-weight:850;white-space:nowrap}.filters button.active{background:var(--nav);color:#fff}.timeline{position:relative;padding-left:18px}.timeline:before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:1px;background:#dfe4ec}.timeline>article{position:relative;margin-bottom:10px}.timeline>article>i{position:absolute;left:-18px;top:17px;width:9px;height:9px;border-radius:50%;background:#8592a5}.timeline>article>i.green{background:#27a875}.timeline>article>i.blue{background:#4e76e8}.timeline>article>i.red{background:#d65462}.timeline>article>i.purple{background:#7657d8}.timeline>article>i.orange{background:#d58c25}.timeline>article>section{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 14px;box-shadow:var(--shadow-sm)}.timeline header{display:flex;justify-content:space-between;gap:12px}.timeline header>div{display:flex;align-items:center;gap:9px}.timeline header em{font-style:normal;font-size:9px;font-weight:900;padding:4px 7px;border-radius:7px;background:#eef1f5}.timeline header em.green{background:#e9f8f1;color:#147655}.timeline header em.blue{background:#edf2ff;color:#3658c7}.timeline header em.red{background:#fff0f2;color:#b53142}.timeline header em.purple{background:#f2efff;color:#694bc4}.timeline header em.orange{background:#fff5e6;color:#995f0c}.timeline header b{font-size:12px}.timeline time,.timeline>article p{color:var(--muted);font-size:9px}.timeline>article p{margin:7px 0}.timeline details summary{cursor:pointer;color:#67758a;font-size:9px}.timeline pre{background:#f7f9fc;border-radius:8px;padding:9px;white-space:pre-wrap;font-size:9px}@media(max-width:900px){.admin-layout{display:block}.sidebar{height:auto;top:64px;display:flex;overflow:auto;padding:7px}.sidebar>small{display:none}.sidebar button{width:auto;white-space:nowrap}.admin-main{padding:18px}.metrics,.scorebar,.features{grid-template-columns:1fr 1fr}.exam-grid{grid-template-columns:1fr}.qnav{position:static}.qnav>section{grid-template-columns:repeat(10,1fr)}.submission-table>header,.submission-table .row{min-width:860px}.versions{grid-template-columns:1fr 1fr}}@media(max-width:560px){.topbar{padding:0 12px}.brand small,.adminwho div{display:none}.public-actions{gap:3px}.langbtn{min-width:58px}.public{padding:38px 12px}.start-card,.success-card{padding:22px}.exam-page{padding:12px 10px 36px}.exam-head{padding:15px}.exam-head h1{font-size:17px}.exam-head-actions{flex-direction:column-reverse;align-items:flex-end}.ring{width:66px;height:66px}.qnav>section{grid-template-columns:repeat(8,1fr)}.question-card{padding:17px}.question-card h2{font-size:16px}.question-card>footer,.finish,.dock{flex-direction:column;align-items:stretch}.question-card>footer>div,.dock section{display:grid;grid-template-columns:1fr}.admin-main{padding:14px 10px}.page-title{flex-direction:column}.metrics,.scorebar,.features,.versions,.editor-summary,.answer>section,.answer>footer,.twocol{grid-template-columns:1fr}.features article{border-right:0;border-bottom:1px solid var(--line)}.active-list article{grid-template-columns:12px 1fr}.active-list article>em,.active-list article>.btn{grid-column:2}.submission-table{overflow:visible}.submission-table>header{display:none}.submission-table .row{min-width:0;grid-template-columns:1fr 1fr;padding:12px 14px;gap:8px}.submission-table .row>span:nth-child(n+7){display:none}.answer>header{grid-template-columns:30px 1fr}.answer>header>em{grid-column:2}.dock{position:static}}

/* ===== Self-host responsive exam navigator fix ===== */

@media (min-width:1101px){
  .exam-grid{
    align-items:stretch;
  }

  .qnav{
    align-self:stretch;
    min-height:100%;
  }
}

@media (max-width:1100px){
  .exam-grid{
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    align-items:start;
  }

  .qnav{
    position:sticky;
    top:70px;
    z-index:25;
    max-width:100%;
    padding:8px 10px;
    overflow:hidden;
  }

  .qnav>div{
    margin-bottom:6px;
  }

  .qnav>section{
    display:flex;
    grid-template-columns:none;
    gap:5px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    padding-bottom:2px;
  }

  .qnav button{
    flex:0 0 32px;
    width:32px;
    height:32px;
    aspect-ratio:auto;
  }
}

@media (max-width:560px){
  .qnav{
    top:64px;
    padding:7px 8px;
    border-radius:11px;
  }

  .qnav>div{
    margin-bottom:5px;
    font-size:10px;
  }

  .qnav button{
    flex:0 0 30px;
    width:30px;
    height:30px;
    font-size:9px;
  }
}

/* ADMIN_EDITOR_ZH_ONLY_20260924 */
.editor .edit-q label:has(textarea[data-f$=".en"]) {
  display: none !important;
}

.editor .twocol {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
}

.editor .edit-q > summary {
  padding: 15px 16px;
}

.editor .edit-q > summary b {
  font-size: 14px !important;
  line-height: 1.55;
}

.editor .edit-q > summary i {
  font-size: 12px !important;
}

.editor .edit-q > summary em {
  font-size: 11px !important;
}

.editor .edit-q > section {
  padding: 16px;
}

.editor .edit-q label {
  font-size: 13px !important;
  gap: 7px;
}

.editor .edit-q textarea {
  min-height: 150px;
  padding: 13px 14px;
  font-size: 15px !important;
  line-height: 1.75;
}

.editor .edit-q input,
.editor .edit-q select {
  font-size: 14px !important;
}

.editor > nav button {
  font-size: 12px !important;
}

.editor-summary article,
.editor-summary label {
  font-size: 12px !important;
}

.editor-summary article b {
  font-size: 23px !important;
}

/* NATIVE_EDITOR_V3_CSS_20260924 */
.editor-v3-question{margin-bottom:14px}

.editor-v3-choice{
  margin:14px 0 16px;
  padding:16px;
  background:#fff;
  border:1px solid #dfe5ef;
  border-radius:12px
}

.editor-v3-choice>header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:12px
}

.editor-v3-choice>header b{
  font-size:14px;
  color:#172033
}

.editor-v3-choice>header span{
  font-size:12px;
  color:#748198
}

.editor-v3-options{
  display:grid;
  gap:9px
}

.editor-v3-option{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 120px 58px;
  gap:10px;
  align-items:center
}

.editor-v3-option>b{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#edf2ff;
  color:#315efb;
  font-size:14px
}

.editor-v3-option-text{
  width:100%!important;
  height:44px!important;
  font-size:15px!important;
  font-weight:600
}

.editor-v3-answer-label{
  display:flex!important;
  flex-direction:row!important;
  align-items:center;
  gap:7px!important;
  color:#35445a!important;
  font-size:12px!important;
  cursor:pointer
}

.editor-v3-answer-label input{
  width:20px!important;
  height:20px!important;
  margin:0;
  accent-color:#315efb
}

.editor-v3-remove{
  height:34px;
  border-radius:8px;
  background:#fff0f2;
  color:#b53142;
  font-size:11px;
  font-weight:800
}

.editor-v3-add{
  margin-top:12px;
  min-height:38px;
  padding:0 14px;
  border-radius:9px;
  background:#edf1f6;
  color:#35445a;
  font-size:12px;
  font-weight:800
}

.editor-v3-truefalse .editor-v3-option{
  grid-template-columns:38px minmax(0,1fr) 120px
}

@media(max-width:700px){
  .editor-v3-option{
    grid-template-columns:36px 1fr
  }

  .editor-v3-answer-label,
  .editor-v3-remove{
    grid-column:2
  }

  .editor-v3-choice>header{
    flex-direction:column;
    align-items:flex-start
  }
}
