:root{--ink:#102b24;--paper:#f3efe5;--cream:#fffdf7;--green:#14352b;--mint:#b9d8c7;--gold:#c6984c;--red:#a84232;--line:#d6d0c2;--shadow:0 18px 60px rgba(18,43,35,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Serif SC","Songti SC",serif;line-height:1.65}.grain{position:fixed;inset:0;pointer-events:none;opacity:.25;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E")}.masthead{height:82px;padding:0 max(24px,5vw);display:flex;align-items:center;gap:16px;background:var(--green);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 8px 30px rgba(0,0,0,.15)}.brand-mark{width:46px;height:46px;border:1px solid var(--gold);display:grid;place-items:center;color:var(--gold);font:700 16px Georgia}.masthead h1{font-size:20px;margin:0;letter-spacing:.08em}.eyebrow{font:10px/1.2 Arial,sans-serif;letter-spacing:.18em;color:var(--mint);margin:0 0 4px}.masthead .text-button{margin-left:auto;color:#fff}main{max-width:1180px;margin:auto;padding:46px 24px 80px}.view{display:none}.view.active{display:block}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:50px;align-items:end;margin:20px 0 48px}.issue-tag{font:700 11px Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}.hero h2,.login-card h2,.dashboard h2{font-size:clamp(38px,6vw,74px);line-height:1.08;margin:16px 0}.hero em{font-style:normal;color:var(--red)}.hero p{max-width:640px;font-size:17px}.score-map{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.score-map div{padding:24px 12px;border-right:1px solid var(--ink);text-align:center}.score-map div:last-child{border:0}.score-map strong{display:block;font:52px/1 Georgia;color:var(--red)}.score-map span{font-size:13px}.candidate-card,.question-card,.submit-panel,.login-card,.review-pane{background:rgba(255,253,247,.88);border:1px solid var(--line);box-shadow:var(--shadow)}.candidate-card{padding:28px 34px;margin-bottom:34px;display:grid;grid-template-columns:90px 1fr;gap:10px 18px;align-items:center}.candidate-card label{font-weight:700;font-size:20px}.candidate-card p{grid-column:2;margin:0;color:#6f6a60;font-size:13px}input,textarea{width:100%;border:1px solid #bcb6a9;background:#fffdf7;color:var(--ink);padding:13px 15px;font:16px "Noto Serif SC","Songti SC",serif;outline:none}input:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(20,53,43,.1)}.section-title{margin:48px 0 18px;padding-bottom:12px;border-bottom:2px solid var(--green);display:flex;justify-content:space-between;align-items:end}.section-title h3{font-size:27px;margin:0}.section-title span{color:var(--red);font-weight:700}.question-card{padding:28px 34px;margin-bottom:18px;position:relative}.question-card::before{content:attr(data-number);position:absolute;right:22px;top:12px;font:48px/1 Georgia;color:rgba(20,53,43,.08)}.question-text{font-weight:700;font-size:17px;margin:0 50px 18px 0}.options{display:grid;gap:9px}.option{display:flex;gap:12px;padding:11px 13px;border:1px solid transparent;cursor:pointer}.option:hover{background:#edf3ed;border-color:#cbd7ce}.option input{width:auto;accent-color:var(--green);margin-top:5px}.short-answer{min-height:210px;resize:vertical}.char-count{text-align:right;font:12px Arial;color:#777}.submit-panel{padding:30px 34px;margin-top:38px;text-align:center}.confirm{display:flex;justify-content:center;gap:10px;margin-bottom:20px}.confirm input{width:auto}.primary-button,.secondary-button,.text-button{cursor:pointer;border:0;font-weight:700;letter-spacing:.04em}.primary-button{background:var(--green);color:#fff;padding:15px 34px;font-size:16px}.primary-button:hover{background:#1f4b3e}.primary-button:disabled{opacity:.5;cursor:not-allowed}.secondary-button{background:#e5ebdf;color:var(--green);padding:11px 18px}.text-button{background:transparent;color:var(--green);padding:8px 10px;text-decoration:underline;text-underline-offset:4px}.status{min-height:24px;color:var(--red)}.result-view{text-align:center;padding:100px 20px}.seal{width:110px;height:110px;border:3px double var(--red);border-radius:50%;display:grid;place-items:center;margin:auto;color:var(--red);font-weight:700;transform:rotate(-8deg)}.result-view h2{font-size:48px}.muted{color:#777}.login-card{max-width:560px;margin:50px auto;padding:44px}.login-card h2{font-size:50px}.login-card input{margin:8px 0}.login-card button{margin:12px 8px 0 0}.hidden{display:none!important}.dashboard-head{display:flex;justify-content:space-between;align-items:end}.dashboard-head h2{font-size:48px;margin:5px 0 20px}.dashboard-actions{display:flex;gap:8px;flex-wrap:wrap}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:10px 0 22px}.summary-card{padding:20px;background:var(--green);color:#fff}.summary-card strong{font:38px Georgia;display:block;color:#e5bd78}.summary-card span{font-size:12px}.review-layout{display:grid;grid-template-columns:320px 1fr;gap:18px}.review-layout aside{background:#e7e1d5;padding:16px;min-height:650px}.submission-list{margin-top:12px;display:grid;gap:8px}.submission-item{padding:13px;background:#fffdf7;border-left:4px solid transparent;cursor:pointer}.submission-item.active{border-left-color:var(--red)}.submission-item strong,.submission-item span{display:block}.submission-item span{font-size:12px;color:#777}.review-pane{padding:28px;min-height:650px}.empty-state{display:grid;place-items:center;color:#777}.score-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0}.score-box{padding:12px;background:#edf1e9;text-align:center}.score-box strong{display:block;font:25px Georgia}.review-section{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.review-question{background:#f5f1e8;padding:18px;margin:12px 0}.review-question.correct{border-left:4px solid #38805f}.review-question.wrong{border-left:4px solid var(--red)}.rubric{font-size:13px;color:#5f5a51;background:#e9e4d8;padding:12px}.grading-row{display:grid;grid-template-columns:160px 1fr;gap:12px;margin-top:12px}.grading-row input{max-width:130px}.grading-row textarea{min-height:80px}.final-actions{display:flex;gap:10px;align-items:center;margin-top:24px}.final-actions .primary-button{margin-left:auto}footer{text-align:center;padding:30px;color:#777;font-size:12px}@media(max-width:800px){.masthead{padding:0 14px}.eyebrow{display:none}.hero{grid-template-columns:1fr;gap:20px}.score-map strong{font-size:38px}.candidate-card{grid-template-columns:1fr}.candidate-card p{grid-column:1}.question-card{padding:22px 18px}.summary-cards{grid-template-columns:repeat(2,1fr)}.review-layout{grid-template-columns:1fr}.review-layout aside{min-height:auto}.dashboard-head{align-items:flex-start;flex-direction:column}.score-strip{grid-template-columns:repeat(2,1fr)}.grading-row{grid-template-columns:1fr}.masthead h1{font-size:16px}}
.start-exam-row{display:flex;align-items:center;gap:16px;margin:18px 0 28px;padding:18px 20px;border:1px solid rgba(20,53,43,.16);background:#f3f6f2}.start-exam-row p{margin:0;color:#52635d;font-size:14px}@media(max-width:640px){.start-exam-row{align-items:stretch;flex-direction:column}.start-exam-row .primary-button{width:100%}}
.answer-link-box{max-width:760px;margin:28px auto 0}.answer-link-box textarea{min-height:120px;margin-bottom:14px;font-family:Consolas,monospace;font-size:12px}.link-review-entry textarea{min-height:150px;margin:15px 0}.link-review-entry+.review-pane{margin-top:24px}@media print{.masthead,footer,.link-review-entry,.final-actions{display:none!important}.review-pane{box-shadow:none;border:0}}
