:root{--green-900:#173f31;--green-800:#1b5e46;--green-700:#24735a;--green-100:#e4efe9;--green-50:#f2f7f4;--ink:#1d2b26;--muted:#5c6f66;--line:#d7e2dc;--bg:#f5f7f6;--card:#ffffff;--red:#b4232a;--amber:#9a6b00;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}body{font-size:15px;line-height:1.75}a{color:var(--green-800)}.container{max-width:860px;margin:0 auto;padding:0 16px 80px}.wide{max-width:1100px}.site-header{background:var(--green-900);color:#fff;padding:14px 16px}.site-header .inner{max-width:1100px;margin:0 auto;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.site-header .brand{font-size:11px;letter-spacing:.14em;color:#a9c8ba;font-weight:700}.site-header h1{font-size:18px;margin:0;font-weight:700}.site-header .sub{font-size:12px;color:#c4d8cd}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-top:24px}.card h2{margin:0 0 12px;font-size:17px;color:var(--green-900)}label.field{display:block;margin-top:16px;font-weight:500;font-size:13px;color:var(--muted)}input[type=number],input[type=password],input[type=text],textarea{width:100%;margin-top:6px;padding:10px 12px;font-size:16px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-family:inherit}input:focus,textarea:focus{outline:2px solid var(--green-700);outline-offset:1px}textarea{min-height:180px;resize:vertical;line-height:1.8}button{font-family:inherit}.btn{display:inline-block;border:none;border-radius:8px;padding:12px 28px;font-size:15px;font-weight:700;cursor:pointer;background:var(--green-800);color:#fff}.btn:hover{background:var(--green-700)}.btn:disabled{background:#9fb3aa;cursor:not-allowed}.btn.secondary{background:#fff;color:var(--green-800);border:1px solid var(--green-800)}.btn.danger{background:#fff;color:var(--red);border:1px solid var(--red)}.btn.small{padding:6px 14px;font-size:13px;font-weight:500}.error-msg{color:var(--red);font-size:13px;margin-top:10px}.note{font-size:12px;color:var(--muted)}.meta-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:14px}.meta-table td,.meta-table th{border:1px solid var(--line);padding:8px 14px;text-align:left}.meta-table th{background:var(--green-50);color:var(--green-900);width:130px;font-weight:500;white-space:nowrap}.exam-bar{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--green-900);color:#fff;padding:10px 16px;box-shadow:0 2px 8px rgba(0,0,0,.18)}.exam-bar .inner{max-width:860px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.exam-bar .timer{font-size:22px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.04em}.exam-bar .timer.warn{color:#ffd166}.exam-bar .timer.danger{color:#ff8f8f}.exam-bar .progress{font-size:13px;color:#c4d8cd}.exam-bar .spacer{flex:1 1}.chapter-title{margin:36px 0 4px;font-size:16px;font-weight:700;color:var(--green-900);border-left:4px solid var(--green-800);padding-left:10px}.question{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-top:14px;scroll-margin-top:70px}.question .q-head{display:flex;gap:12px;align-items:baseline}.question .q-no{flex-shrink:0;font-weight:700;color:var(--green-800);font-size:14px}.question .q-text{font-weight:500}.options{margin-top:12px;display:grid;grid-gap:8px;gap:8px}.option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:10px 14px;cursor:pointer;background:#fff;transition:background .12s,border-color .12s}.option:hover{background:var(--green-50)}.option.selected{border-color:var(--green-800);background:var(--green-100)}.option input{margin-top:5px;accent-color:var(--green-800)}.option .opt-key{font-weight:700;color:var(--green-800);flex-shrink:0}.char-count,.written-guide{font-size:12px;color:var(--muted);margin-top:4px}.char-count{text-align:right}.qnav{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.qnav a{display:flex;align-items:center;justify-content:center;width:30px;height:30px;font-size:12px;border-radius:6px;border:1px solid var(--line);text-decoration:none;color:var(--muted);background:#fff}.qnav a.answered{background:var(--green-800);border-color:var(--green-800);color:#fff}.admin-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px}.admin-table td,.admin-table th{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;white-space:nowrap}.admin-table th{color:var(--green-900);font-weight:500;font-size:12px}.admin-table th,.admin-table tr:hover td{background:var(--green-50)}.badge{display:inline-block;border-radius:999px;padding:2px 12px;font-size:12px;font-weight:700}.badge.pass{background:var(--green-100);color:var(--green-800)}.badge.fail{background:#fbe4e5;color:var(--red)}.badge.provisional{background:#fdf3d7;color:var(--amber)}.badge.graded{background:var(--green-100);color:var(--green-800)}.result-row{display:flex;gap:24px;flex-wrap:wrap;margin-top:8px}.result-item .label{font-size:12px;color:var(--muted)}.result-item .value{font-size:22px;font-weight:700;color:var(--green-900);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mc-review{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}.mc-review td,.mc-review th{border-bottom:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}.mc-review .mark-ok{color:var(--green-800);font-weight:700}.mc-review .mark-ng{color:var(--red);font-weight:700}.answer-box{background:var(--green-50);border:1px solid var(--line);border-radius:8px;white-space:pre-wrap}.answer-box,.model-answer{padding:12px 16px;margin-top:8px}.model-answer{background:#fffdf3;border:1px solid #ecdfb0;border-radius:8px;font-size:13px}.rubric-item{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}.rubric-item input{margin-top:5px;accent-color:var(--green-800)}.score-input{display:flex;align-items:center;gap:10px;margin-top:12px}.score-input input{width:80px;font-size:18px;font-weight:700;text-align:center}details.explanation{margin-top:6px;font-size:13px;color:var(--muted)}details.explanation summary{cursor:pointer;color:var(--green-800)}.toolbar{gap:10px;flex-wrap:wrap;margin-top:16px}.centered-page,.toolbar{display:flex;align-items:center}.centered-page{min-height:70vh;justify-content:center}@media (max-width:600px){.card{padding:18px 16px}.exam-bar .timer{font-size:18px}}