:root{--ink:#18201f;--muted:#66706d;--paper:#fffef8;--cream:#f3efe3;--red:#be3d2f;--green:#176d5a;--line:#c9c5b9;--navy:#193851;--shadow:0 20px 60px rgba(24,32,31,.13)}
*{box-sizing:border-box}body{margin:0;background:#e9e4d7;color:var(--ink);font-family:"Avenir Next","Trebuchet MS",sans-serif}.masthead{padding:28px clamp(18px,4vw,54px);background:var(--navy);color:#fff;display:grid;grid-template-columns:auto 1fr minmax(250px,500px);align-items:end;gap:28px;border-bottom:6px solid #d5a746}.masthead>a{color:#fff;text-decoration:none;font-weight:800;align-self:start}.masthead span{font-size:12px;text-transform:uppercase;letter-spacing:.17em;color:#ffd878;font-weight:900}.masthead h1{font-family:Georgia,serif;font-size:clamp(34px,5vw,64px);letter-spacing:-.045em;margin:4px 0 0}.masthead p{margin:0;line-height:1.5;color:#dce7ec}main{display:grid;grid-template-columns:320px minmax(0,1fr);gap:28px;width:min(1440px,calc(100% - 32px));margin:28px auto 60px}.controls{display:flex;flex-direction:column;gap:14px;position:sticky;top:18px;align-self:start}.controls section,.controls details{background:#fff;border:1px solid rgba(24,32,31,.1);border-radius:16px;padding:18px;box-shadow:0 8px 30px rgba(24,32,31,.07)}.step{font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:900;color:var(--red);margin:0 0 14px}.controls label{display:grid;gap:7px;font-size:13px;font-weight:800;margin:12px 0}.controls select,.controls button,.controls input{font:inherit;width:100%;min-height:44px;border-radius:10px;border:1px solid #c8cec9;padding:9px 11px;background:#fff;color:var(--ink)}.controls button{font-weight:900;cursor:pointer;margin-top:8px;background:var(--navy);color:#fff;border:0}.controls .primary{background:var(--red)}.controls .ghost{background:#fff;color:var(--navy);border:2px solid var(--navy)}.micro{font-size:12px;line-height:1.45;color:var(--muted)}.mark-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.mark-grid label{margin:0;display:flex;gap:5px;align-items:center;border:1px solid #ddd8ca;border-radius:8px;padding:7px;background:#faf8f0}.mark-grid input{width:16px;height:16px}.controls summary{font-weight:900;cursor:pointer}.rationale{font-size:12px;line-height:1.5;color:#4d5653;margin-top:10px}.preview-shell{min-width:0}.preview-tabs{display:flex;gap:8px;margin-bottom:12px}.preview-tabs button{border:0;border-radius:999px;padding:9px 15px;font-weight:900;background:#d8d2c4;color:#4a514e;cursor:pointer}.preview-tabs button.active{background:var(--navy);color:#fff}.paper-view{display:none}.paper-view.active{display:block}.paper{width:min(100%,794px);min-height:1123px;margin:0 auto 24px;background:var(--paper);box-shadow:var(--shadow);padding:38px 44px 44px;font-family:Arial,sans-serif;color:#111}.paper-head{display:grid;grid-template-columns:1fr auto;gap:20px;border-bottom:2px solid #111;padding-bottom:12px;margin-bottom:14px}.paper-head h2{font-family:Georgia,serif;margin:0;text-align:center;font-size:23px}.paper-head p{margin:6px 0 0;font-size:12px}.score-box{border:2px solid #111;min-width:96px;height:70px;display:grid;place-items:center;text-align:center}.score-box b{font-size:24px}.instructions{font-size:11px;margin:0 0 14px}.quiz-section{break-inside:avoid;margin:14px 0}.quiz-section h3{font-size:13px;margin:0 0 8px;padding:5px 8px;background:#eee;border-left:4px solid #111}.question{display:grid;grid-template-columns:25px 1fr auto;gap:8px;margin:9px 0;break-inside:avoid;font-size:12px;line-height:1.42}.question .num{font-weight:800}.question .marks{font-size:10px;white-space:nowrap}.answer-line{display:inline-block;min-width:105px;border-bottom:1px solid #111;height:15px;vertical-align:bottom}.working-lines{margin-top:6px;display:grid;gap:8px}.working-lines i{display:block;border-bottom:1px dotted #aaa;height:9px}.choices{margin-top:4px}.visual{margin:7px 0}.ruler-svg,.route-svg{width:100%;max-width:560px;height:auto;display:block;border:1px solid #bbb;background:#fff}.order-blanks{margin-top:8px;letter-spacing:.04em}.answer-paper .question{grid-template-columns:25px 1fr}.answer-paper .answer{font-weight:900;color:#8a251b}.answer-paper .why{display:block;color:#555;font-size:10px;margin-top:2px}.memory-callout{border:1px solid #9fb9ae;background:#edf7f2;padding:9px 11px;margin:10px 0;font-size:11px}.badge{display:inline-block;border-radius:999px;padding:2px 7px;background:#e7e2d5;margin:2px;font-size:10px;font-weight:800}
@media screen and (max-width:850px){.masthead{grid-template-columns:1fr}.masthead p{max-width:650px}main{grid-template-columns:1fr}.controls{position:static}.paper{padding:25px 22px;min-height:0}.preview-shell{overflow-x:auto}}
@media print{body{background:#fff}.masthead,.controls,.preview-tabs{display:none!important}main{display:block;width:auto;margin:0}.preview-shell{overflow:visible}.paper-view{display:none!important}.paper-view.print-target{display:block!important}.paper{width:auto;min-height:0;margin:0;box-shadow:none;padding:0;page-break-after:always}@page{size:A4;margin:12mm 14mm}}
.paper-code{font-family:"Courier New",monospace;font-weight:700;white-space:nowrap}
.controls input{font-family:"Courier New",monospace;text-transform:uppercase}
@media print{.quiz-section{break-inside:auto}.quiz-section h3{break-after:avoid}.question{break-inside:avoid}}
@media screen and (max-width:850px){.paper-head{grid-template-columns:1fr}.score-box{justify-self:start;height:56px}.mark-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pdf-links{display:grid;gap:8px}.pdf-links:empty{display:none}.pdf-link{display:block;text-align:center;font-weight:900;text-decoration:none;min-height:44px;line-height:44px;border-radius:10px;background:var(--green);color:#fff}.pdf-link.ghost{background:#fff;color:var(--green);border:2px solid var(--green);line-height:40px}.controls button:disabled{opacity:.6;cursor:wait}
.pdf-frame{display:block;width:min(100%,860px);height:1150px;margin:0 auto 24px;border:0;background:#fff;box-shadow:var(--shadow)}
.controls .upload input{padding:8px;background:#faf8f0}.mark-results{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:5px;font-size:13px}.mark-results:empty{display:none}.mark-results li{display:grid;grid-template-columns:18px 34px 1fr;gap:4px 6px;align-items:baseline;padding:6px 8px;border-radius:8px;background:#f1f6f2}.mark-results li small{grid-column:2 / -1;color:#6b4a43}.mark-results .mr-wrong,.mark-results .mr-blank{background:#fbeeea}.mark-results .mr-wrong b,.mark-results .mr-blank b{color:var(--red)}.mark-results .mr-correct b{color:var(--green)}.mark-results .mr-unreadable{background:#f3f1e8}.mark-results em{font-style:normal;font-weight:800}
.paper-empty{width:min(100%,794px);margin:0 auto;padding:80px 30px;text-align:center;color:var(--muted);background:var(--paper);border:2px dashed #cfc8b6;border-radius:14px;line-height:1.6}
.why-sheet{width:min(100%,900px);margin:0 auto 24px;background:#fff;box-shadow:var(--shadow);border-radius:14px;padding:28px 32px;font-size:14px;line-height:1.5}.why-sheet h2{font-family:Georgia,serif;margin:0 0 6px;font-size:26px}.why-sheet h2 small{display:block;font:600 13px/1.4 inherit;color:var(--muted);margin-top:4px;font-family:inherit}.why-lead{color:#4d5653;margin:6px 0 16px}.why-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.why-group{border-radius:12px;padding:12px 14px;background:#f6f4ec}.why-group.w{background:#fbeeea}.why-group.s{background:#eaf5ef}.why-group.n{background:#efedf7}.why-group h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.why-group h4 small{font-weight:900;color:var(--muted)}.why-group ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.why-group li b{display:block}.why-group li span{color:#4d5653;font-size:12.5px}.why-group li em{display:block;font-size:12px;color:#8a3a2b}.why-sheet h3{margin:20px 0 6px;font-size:15px}.why-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:900;color:#fff;background:var(--c);white-space:nowrap}.why-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}.why-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:2px solid #ddd8ca;padding:6px}.why-table td{border-bottom:1px solid #eee9dc;padding:7px 6px;vertical-align:top}.why-table td:first-child{font-weight:900;white-space:nowrap}
.why-names{margin:0;font-size:13px;line-height:1.6;color:#4d5653}

.exam-topics{border:1px solid rgba(24,32,31,.14);border-radius:12px;padding:8px 12px 10px;margin:4px 0 12px}.exam-topics[hidden]{display:none}.exam-topics legend{font-size:13px;font-weight:800;padding:0 4px}.exam-topics label.check{display:flex;align-items:center;gap:8px;margin:6px 0;font-weight:700}.exam-topics label.check input{width:auto;min-height:0}.exam-topics small{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:4px}
.exam-topic-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}.exam-topics label.check{font-size:12px;line-height:1.25}.paper .fraction-svg,.paper .balance-svg,.paper .scale-svg,.paper .geometry-svg,.paper .capacity-svg,.paper .bar-chart-svg{display:block;width:100%;max-width:520px;height:auto;background:#fff;border:1px solid #c8c8c8}
@media screen and (max-width:430px){.exam-topic-grid{grid-template-columns:1fr}}
.paper .mc{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;margin:8px 0 0 8px}.paper .mc-o::before{content:"○ "}.paper .visual svg{max-width:520px}
.controls label[hidden]{display:none}
.recent-papers{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.recent-papers li{background:#faf8f0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:grid;gap:6px}
.recent-papers li.current{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green)}
.rp-head{display:grid;gap:1px;min-width:0}.rp-head b{font-size:14px}.rp-head small{font-size:12px;color:var(--muted)}
.rp-actions{display:flex;gap:6px;flex-wrap:wrap}
.rp-actions button{font:inherit;font-size:13px;font-weight:800;min-height:36px;padding:6px 10px;border-radius:8px;border:2px solid var(--green);background:#fff;color:var(--green);cursor:pointer}
.rp-actions button[data-mark]{border-color:var(--navy);color:var(--navy)}
button.pdf-link{width:100%;border:0;font:inherit;font-weight:900;cursor:pointer}button.pdf-link.ghost{border:2px solid var(--green)}
.pdf-viewer{position:fixed;inset:0;z-index:1000;background:#3b3f3e;display:flex;flex-direction:column}
.pdf-viewer[hidden]{display:none}
body.pv-open{overflow:hidden}
.pv-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top));background:var(--navy);color:#fff}
.pv-bar b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}
.pv-bar button{font:inherit;font-weight:900;font-size:15px;min-height:44px;padding:0 14px;border-radius:10px;border:0;background:var(--green);color:#fff;cursor:pointer}
.pv-bar button:disabled{opacity:.5}
.pv-bar .pv-close{background:#fff;color:var(--navy)}
.pv-pages{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:8px;display:flex;flex-direction:column;align-items:center;gap:10px}
.pv-pages canvas{background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.35);max-width:100%;height:auto}
.pv-note{color:#fff;margin:40px 16px;text-align:center}
.recent{border:1px solid var(--line);border-radius:12px;background:#faf8f0}
.recent summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;min-height:46px;padding:6px 12px}
.recent summary::-webkit-details-marker{display:none}
.recent summary .step{margin:0}
.recent summary small{flex:1;color:var(--muted);font-size:12px;text-align:right}
.recent summary::after{content:"▾";color:var(--muted);font-size:14px;transition:transform .15s}
.recent[open] summary::after{transform:rotate(180deg)}
.recent .recent-papers{padding:0 8px 8px}
.recent .recent-papers li{background:#fff}
.recent .rp-actions{flex-wrap:nowrap}
.controls .recent .rp-actions button{width:auto;flex:1 1 0;min-width:0;margin:0;min-height:36px;padding:6px 4px;font-size:13px;white-space:nowrap}
.recent .recent-papers li{padding:8px 10px;gap:6px}
