@import url('/css/logic-workspace.css');
@import url('/css/er-workspace.css');
/* Exam layout uses a white sheet; site colours belong to the surrounding controls. */
:root{color-scheme:light;--ink:#080d0e;--paper:#e7edf4;--lime:#c6f794;--muted:#596270;--line:#cfd8e3;--purple:#463cc8}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.6}
button,input,textarea,select{font:inherit;color:inherit}button,summary,select{cursor:pointer}
button,.next-batch{border:1px solid #aab3bd;background:white;border-radius:8px;padding:.5rem 1rem;font-weight:700}
button:hover{border-color:var(--ink);background:#f1f8ea}button:disabled{opacity:.45;cursor:default}
:focus-visible{outline:3px solid var(--purple);outline-offset:3px}a{color:var(--purple);text-underline-offset:.18em}[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip{position:absolute;top:-5rem;left:1rem;z-index:20;padding:.75rem;background:white}.skip:focus{top:1rem}
.site-header{display:flex;align-items:center;gap:1.5rem;min-height:76px;padding:1rem max(24px,calc((100vw - 1120px)/2));background:var(--ink);color:#fff;border-bottom:4px solid var(--lime)}
.site-header .brand{color:#fff;font-weight:800;font-size:1.35rem;text-decoration:none;letter-spacing:-.04em}
.site-header>span:not(.review-badge){font-size:.95rem;color:#d7dce3}
.review-badge{margin-left:auto;background:var(--lime);color:#234612;border-radius:20px;padding:.15rem .8rem;font-size:.8rem;font-weight:700}
main{width:min(1120px,calc(100% - 40px));margin:28px auto 60px}
.review-navigation{display:flex;align-items:end;flex-wrap:wrap;gap:14px}
.review-navigation label{display:grid;gap:4px;font-size:.78rem;font-weight:700;color:var(--muted)}
.review-navigation select{max-width:100%;border:1px solid #b8c3ce;border-radius:8px;padding:.6rem .7rem;background:#fff;color:var(--ink);font-size:.9rem}
.review-navigation button{background:var(--ink);color:#fff}.review-progress{margin:0 0 .5rem auto;color:var(--muted);font-size:.85rem}
.question-jump{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:20px 0 28px;font-size:.85rem;color:var(--muted)}
.question-jump>span:first-child{margin-right:5px}.question-jump a{width:30px;height:30px;text-align:center;line-height:28px;border:1px solid #b8c3ce;border-radius:6px;color:var(--ink);text-decoration:none;background:#fff}
.question-jump a:hover{background:var(--lime)}.decision-totals{margin-left:auto}
.review-card{margin:0 0 40px;background:#fff;border:1px solid #c8d3df;border-radius:18px;box-shadow:0 6px 20px #16233508;overflow:hidden;scroll-margin-top:20px}
.queue-position{margin:0;padding:12px 42px;border-bottom:1px solid #e4e8ed;background:#f7f9fb;color:var(--muted);font-size:.78rem;letter-spacing:.04em}
.exam-question{padding:34px 60px 26px}.exam-reference{margin-bottom:30px}.exam-reference h2{margin:0;font-family:inherit;font-size:1rem;font-weight:700}.exam-reference h2 span{color:#4c5460;font-weight:500}
.exam-content{font-family:Arial,sans-serif;font-size:18px;line-height:1.6}.source-text{white-space:pre-line;margin:0 0 20px}.source-list{margin:0 0 22px;padding-left:25px}.source-list li{margin-block:7px;padding-left:3px}
.part-reference{margin:22px 0 14px;font-size:1rem;font-weight:700}.exam-prerequisite{padding-bottom:12px;margin-bottom:22px;border-bottom:1px solid #d9dfe5}.exam-prerequisite .part-reference:first-child{margin-top:0}
.question-marks{text-align:right;margin:18px 0 28px;font-size:18px}.question-marks strong{font-weight:700}
.numbered-section{position:relative;padding-left:30px;margin:20px 0}.printed-label{position:absolute;left:0;top:0;margin:0;font-weight:700}
.bold{font-weight:700}.italic{font-style:italic}.underline{text-decoration:underline;text-underline-offset:.16em}.dashed{text-decoration-style:dashed}.overline{text-decoration:overline}.strike{text-decoration:line-through}.highlight{background:#ddd}
.table-scroll{overflow-x:auto;max-width:100%;margin:22px 0;padding:3px}.source-table{border-collapse:collapse;width:100%;color:#080d0e;font-size:1em;line-height:1.35}
.source-table th,.source-table td{border:1px solid #34383b;padding:14px 13px;text-align:center;vertical-align:middle;min-width:48px}.source-table th{background:white;font-weight:700}
.source-table th .source-text,.source-table td .source-text{margin:0}
.source-table .source-absent-cell{border:0;background:transparent}
.source-list li{white-space:pre-line}
.gate-choices{display:flex;gap:16px;flex-wrap:wrap;border:0;padding:12px 0}
.gate-choices label{position:relative;display:grid;justify-items:center;border:2px solid #b8c3ce;border-radius:8px;padding:8px;cursor:pointer}
.gate-choices svg{width:100px;height:70px;fill:white;stroke:#080d0e;stroke-width:2}
.gate-choices label:has(:checked){background:#c9f89b;border-color:#315718}
.gate-choices input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.gate-choices label:has(:focus-visible),.bit-choice:has(:focus-visible){outline:3px solid #315718;outline-offset:3px}
.bit-choice{display:grid;place-items:center;position:relative;min-width:32px;min-height:36px;cursor:pointer}
.bit-choice input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.bit-choice span{padding:2px 8px;border:2px solid transparent;border-radius:50%}
.bit-choice:has(:checked) span{border-color:#315718;background:#c9f89b;font-weight:700}
.student-truth-table input{width:100%;max-width:12rem}
.feedback-applied{padding:12px;border-left:4px solid #5c8b32;background:#f2fbe9;white-space:pre-line}
.original-review-note{white-space:pre-wrap}
.source-table td:has(.field),.source-table td:has(.short-field),.source-table td:has(.binary-cell-answer){padding:6px 8px}
.source-table .field,.source-table .short-field{margin:0;width:100%}.source-table textarea,.source-table input[type=text]{min-width:60px;width:100%;background:transparent;border:none;border-radius:0;text-align:center;padding:4px;min-height:40px}
.source-table textarea{resize:vertical;line-height:1.4}.source-table .source-code{margin:0;padding:0;font-size:1em}.source-table .table-scroll{margin:0;padding:0}
.source-table .bit-grid td{min-width:23px;padding:0}.source-table .bit-grid input{min-width:23px}
.source-shading{background:#e4e4e4!important}.no-source-right-rule{border-right:none!important}.no-source-left-rule{border-left:none!important}.no-source-top-rule{border-top:none!important}.no-source-bottom-rule{border-bottom:none!important}
.source-gap td{border:0;height:40px}.column-annotations td{border:none;padding:4px;font-size:.82em}.table-row-note{display:block;font-size:.8em;white-space:nowrap;margin-bottom:8px}
.source-circle{display:inline-block;border:2px solid currentColor;border-radius:50%;padding:0 .38em}
.source-figure{margin:24px 0;text-align:center}.source-figure img,.source-figure svg{max-width:100%;height:auto;display:inline-block;vertical-align:middle}
.source-table .source-figure{margin:0}.source-glyph img{height:1.7em;width:auto}
.source-code{background:transparent;color:#080d0e;font:17px/1.65 'SFMono-Regular',Consolas,'Liberation Mono',monospace;overflow-x:auto;white-space:pre;padding:8px 0;margin:18px 0;tab-size:4}.source-code code{font:inherit}.source-arithmetic-arial{font-family:Arial,sans-serif}
.source-annotation{margin-left:1rem;font-family:Arial,sans-serif;font-size:.9em}.source-math{white-space:pre-wrap;font:1.15em/1.6 Georgia,serif;margin:22px 0}
.field{margin:14px 0 24px}.field>label{display:block;margin-bottom:5px}
.lined-answer,.code-input{display:block;width:100%;border:0;border-radius:0;padding:0 5px;resize:vertical;line-height:34px;font-size:18px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 32px,#b3bac4 33px,transparent 34px)}
.lined-answer:focus,.code-input:focus,.binary-cell-answer:focus{background-color:#f8fff0;outline:2px solid #81ae58;outline-offset:3px}
.code-input,.working-answer{font-family:'SFMono-Regular',Consolas,monospace}.short-field{display:inline-flex;align-items:baseline;gap:.7rem;max-width:100%;margin:8px 0}
.short-field input{width:220px;max-width:100%;min-width:50px;border:none;border-bottom:1px dotted #7f8992;padding:5px;border-radius:0}
.inline-response{margin:18px 0;line-height:2.5}.inline-response .short-field{margin-inline:.3em}
.inline-response .inline-blank{display:inline-flex;vertical-align:baseline;margin-block:0}.inline-blank input{width:18ch;max-width:100%;min-width:100px;height:1.7em;padding-block:0}
.inline-fields{display:flex;gap:28px;flex-wrap:wrap}.inline-fields .field{display:flex;align-items:baseline;gap:10px;flex:1;min-width:200px}.inline-fields .field textarea{flex:1;min-width:50px}.printed-answer-space{display:inline-block;min-width:60px;min-height:32px}
input[type=checkbox],input[type=radio]{width:20px;height:20px;vertical-align:middle;accent-color:#4d722e}
.choices{margin:24px 0;padding:12px 0;border:none;display:flex;gap:30px;flex-wrap:wrap}.choices label{display:inline-flex;align-items:center;gap:10px}
.circle-choices .choices{justify-content:space-evenly}.circle-choices .choices label{position:relative;padding:6px 18px;border:2px solid transparent;border-radius:50%}.circle-choices .choices label:has(:checked){border-color:#283f19;background:#edfbdf}
.circle-choices input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.circle-choices label:has(:focus-visible){outline:3px solid var(--purple)}
.bit-grid{border-collapse:collapse;width:auto;table-layout:fixed;font:20px/1.3 'SFMono-Regular',Consolas,monospace}
.bit-grid td.bit{width:42px;min-width:32px;height:44px;padding:0;text-align:center;border:1px solid #333}
.bit-grid input{display:block;width:100%;min-width:30px;max-width:44px;height:42px;padding:0;text-align:center;border:none;background:transparent;font:inherit}
.bit-grid input:focus{outline:2px solid #81ae58;outline-offset:-2px;background:#f2ffe7}
.bit-grid th{font-size:1em;padding:5px 15px 5px 0;font-weight:400;text-align:right;border:0}.bit-grid .extra-space{border:0;min-width:32px}
.unboxed-addition{margin:10px 0}.unboxed-addition td.bit{border:none}.unboxed-addition tr[data-addition-row=result] td.bit{border-top:1.5px solid #111}.unboxed-addition tr[data-addition-row=carry]{font-size:14px}
.drawing-surface{margin:24px 0;border:1px solid #c8d1dc;border-radius:7px;background:white;overflow:hidden}
.drawing-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:8px 10px;background:#f4f7f1;border-bottom:1px solid #d7dfd0;font-family:Arial,sans-serif;font-size:12px;line-height:1.4}
.drawing-label{margin-right:auto;font-weight:700;font-size:13px}.drawing-toolbar button{padding:5px 10px;border-radius:5px;font-weight:500}.drawing-toolbar button[aria-pressed=true]{background:var(--lime);color:#203414;border-color:#7fab55}
.drawing-stage{position:relative;min-height:calc(var(--answer-rows,12)*34px);isolation:isolate}.drawing-stage.has-content{min-height:0}.drawing-background{padding:20px}.drawing-background .source-figure{margin:0}.drawing-background .table-scroll{margin:0}.drawing-background .source-code{padding:10px 0}
.drawing-stage .working-answer{position:relative;margin:0;resize:none;min-height:inherit;width:100%;padding:0 10px;z-index:1;background-color:transparent}
.drawing-stage .drawing-ink{position:absolute;inset:0;width:100%;height:100%;z-index:2;touch-action:none;cursor:crosshair}
.drawing-surface[data-active-tool=type] .drawing-ink{pointer-events:none}.drawing-surface:not([data-active-tool=type]) .working-answer{pointer-events:none}
.drawing-viewport{overflow-x:auto}.annotation-surface .drawing-stage{min-width:820px;width:100%}.drawing-surface[data-active-tool=pan] .drawing-ink{pointer-events:none}.annotation-surface .drawing-background .table-scroll,.annotation-surface .drawing-background .source-code{overflow:visible}
.drawing-text-input{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px;border-top:1px solid var(--line);font-size:14px}.drawing-text-input input{flex:1;min-width:160px;border:1px solid #aab3bd;padding:7px}.drawing-text-input button{font-size:13px}
.rich-answer-field{margin:22px 0}.rich-answer{white-space:pre-wrap;overflow-wrap:anywhere;font-family:Consolas,monospace;padding-inline:8px}.rich-answer-field .answer-hint{margin-block:6px}
.matching-scroll{overflow-x:auto}.matching{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:22%;min-width:520px;padding:8px 3px}
.matching-column{min-width:0;display:grid;grid-template-rows:auto 1fr}.matching-column h4{margin:0 0 16px;min-height:1.6em;text-align:center;font-size:1em;font-weight:700}
.matching-slots{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(calc(var(--matching-slots)*10),minmax(9px,auto))}
.matching-box{position:relative;display:flex;align-items:center;justify-content:center;min-height:66px;padding:12px;border:1px solid #1d2326;color:#080d0e;background:#fff;text-align:center;line-height:1.4;z-index:1}
.matching-box[role=button]{cursor:crosshair;user-select:none;touch-action:none}.matching-box[aria-pressed=true]{outline:3px solid #628a3e;outline-offset:2px;background:#f0ffe4}
.matching-label{position:absolute;left:8px;top:5px;font-weight:700;font-size:.8em}.matching-box:has(.matching-label){padding-top:26px}.matching-value{display:block}
.matching-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.matching-box .table-scroll{padding:0;margin:0}.matching-box .source-table td,.matching-box .source-table th{padding:4px;font-size:14px;min-width:22px}
.answer-hint{font-family:Arial,sans-serif;font-size:12px;color:var(--muted);margin:10px 0 24px}
.exam-check{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:18px;border-top:1px solid #e1e6ec}.exam-check button{background:var(--lime);color:#203e11;border-color:#a6d679;font-size:.9rem}.draft-status{color:var(--muted);font-size:.78rem}
.mark-scheme{margin-top:20px;border:1px solid #bcccae;border-radius:8px;overflow:hidden}.mark-scheme>summary{background:#f2fbe9;padding:12px 16px;font-size:.9rem;font-weight:700}.mark-scheme>summary span{float:right}
.scheme-content{padding:24px;font-family:Arial,sans-serif;font-size:16px}.scheme-content h3{font-size:1rem;border-top:1px solid #ccd7c2;margin:25px 0 15px;padding-top:20px}
.general-scheme{margin-top:20px;font-size:.9rem}.general-scheme>summary{margin-bottom:12px;color:var(--muted)}
.review-tools{padding:20px 42px 26px;border-top:1px solid #d7e0ea;background:#f3f5f9}.source-details{font-size:.83rem;color:#485163}.source-details>summary{font-weight:600}
.decision-panel{margin-top:14px;font-size:.85rem}.decision-status{font-size:.78rem;color:var(--muted);margin:12px 0}
.feedback-applied{padding:10px 14px;border-left:3px solid #689740;background:#edfade;color:#254015;font-size:.85rem}
.decision-panel label{display:grid;gap:5px;color:#485163;font-weight:700}.decision-panel textarea{width:100%;background:#fff;border:1px solid #bbc7d3;border-radius:7px;padding:10px;font-size:.9rem;font-weight:400;resize:vertical;line-height:1.5}
.decision-actions{display:flex;gap:10px;margin-top:12px}.decision-actions .accept{background:var(--lime);color:#243c16;border-color:#a2c77c}.decision-actions .reject{background:white;color:#643827}
.batch-finished,.empty-state{padding:30px;text-align:center;background:#fff;border:1px solid #c7d1dc;border-radius:16px}.batch-finished h2{margin-top:0;font-size:1.2rem}.next-batch{display:inline-block;background:var(--ink);color:#fff;text-decoration:none}
footer{padding:24px;text-align:center;font-size:.8rem;color:var(--muted)}
@media(max-width:760px){
.site-header{padding:14px 20px;gap:12px;flex-wrap:wrap}.site-header>span:not(.review-badge){display:none}
main{width:calc(100% - 20px);margin-top:18px}.review-navigation{gap:9px}.review-navigation label:first-child{width:100%}.review-navigation select{width:100%}.review-progress{font-size:.75rem}
.decision-totals{width:100%;margin-top:5px}.queue-position{padding:10px 20px}.exam-question{padding:24px 20px 20px}.exam-reference{margin-bottom:24px}.exam-reference h2{font-size:.87rem}
.exam-content{font-size:16px}.source-table{font-size:15px}.source-table td,.source-table th{padding:9px}.review-tools{padding:18px 20px}.scheme-content{padding:15px}.drawing-background{padding:12px}.drawing-label{flex-basis:100%}
}
.database-keys{border:1px solid #ccd3df;border-radius:10px;padding:16px;margin:18px 0;background:#fff}
.database-key-schema{font-family:ui-monospace,monospace;line-height:2.3;overflow-wrap:anywhere}
.database-key-field button{font:inherit;color:inherit;background:transparent;border:0;border-radius:4px;padding:2px 1px;cursor:pointer}
.database-key-field button:hover,.database-key-field button:focus-visible{background:#eeeaff;outline:2px solid #6352cd;outline-offset:2px}
.database-key-field button[data-key="primary"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.database-key-field button[data-key="foreign"]{text-decoration:underline dashed;text-decoration-thickness:2px;text-underline-offset:5px}
.database-keys [data-key-mode][aria-pressed="true"]{background:#c8f59b}
@media print{
body{background:#fff}.site-header,.review-navigation,.question-jump,.queue-position,.review-tools,.exam-check,.mark-scheme,.batch-finished,footer,.drawing-toolbar,.answer-hint{display:none}
main{width:100%;margin:0}.review-card{box-shadow:none;border:none;border-radius:0;margin-bottom:20mm;break-after:page}.exam-question{padding:0}.source-table,.source-figure,.drawing-surface{break-inside:avoid}.table-scroll{overflow:visible}
}
.exam-reference h2.question-source-badge{display:inline-block;max-width:100%;padding:6px 12px;border:1px solid #bfd6ab;border-radius:999px;background:#eef8e6;color:#284a18;font-size:14px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
