:root{font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;color:#163148;background:#f3f6f9}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:8px;padding:10px 15px;font-weight:700}button:disabled{opacity:.46;cursor:not-allowed}.primary{background:#06796f;color:#fff}.secondary,.upload-btn{background:#e6edf3;color:#15374e}.danger{background:#ffeaeb;color:#9e3236}.upload-btn{display:inline-flex;align-items:center;border-radius:8px;padding:10px 15px;font-weight:700;cursor:pointer}.header{padding:17px clamp(16px,4vw,50px);background:#10283b;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;gap:13px;align-items:center;font-size:19px}.brand em{font-style:normal;color:#55d2ba}.brand small{font-size:11px;letter-spacing:.6px;color:#a5c1d0;display:block}.logo{width:42px;height:42px;background:#1a4b5a;display:grid;place-items:center;border-radius:10px;font-size:29px}.header-tag{font-size:10px;letter-spacing:1.5px;color:#b3d9d9}.tabs{background:#17344b;display:flex;overflow:auto;padding:0 clamp(12px,4vw,50px);gap:5px}.tabs button{white-space:nowrap;background:transparent;color:#b6d0de;border-radius:0;padding:13px 18px}.tabs button.active{color:#fff;border-bottom:3px solid #63e4c2;background:#204058}main{max-width:1310px;margin:auto;padding:26px clamp(14px,3vw,30px) 50px}.tab{display:none}.tab.active{display:block}.page-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:19px}.page-title h1{margin:0;font-size:25px;letter-spacing:-.65px}.page-title p{margin:3px 0;color:#617787}.pill{white-space:nowrap;background:#e4eaf0;color:#517084;padding:7px 11px;border-radius:30px;font-weight:700;font-size:12px}.pill.accent{background:#d8eee7;color:#077969}.panel{background:white;padding:22px;border:1px solid #dae3e9;border-radius:13px;box-shadow:0 4px 15px #10283b08;margin-bottom:18px}.panel h2{font-size:17px;margin:0 0 12px}label{display:block;font-weight:700;font-size:12px;color:#4d6877}input,select,textarea{display:block;background:#fff;border:1px solid #c9d5df;border-radius:8px;padding:10px;width:100%;font-weight:400;color:#153348;margin-top:5px;min-width:0}textarea{resize:vertical;min-height:65px}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:16px}.notice{background:#eaf4f5;border-left:4px solid #0c8b80;padding:11px 13px;border-radius:4px;margin-top:14px;color:#315e68;font-size:13px}.notice.warning{background:#fff5e3;border-color:#cf8f26;color:#75562b}.muted{color:#6b8290;font-size:13px}.question-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:12px}.question-head h2{margin:0}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.choice{border:1px solid #dce5ea;border-radius:8px;padding:9px;background:#fbfdff}.choice .top{display:flex;align-items:center;justify-content:space-between;gap:7px}.choice .correct-label{display:flex;align-items:center;gap:6px}.choice input[type=radio]{width:auto;margin:0}.choice label{margin:5px 0}.choice input{margin-top:3px}.choice .top b{font-size:13px}.version-mini{color:#577a80;font-size:12px;margin-top:8px}.preview-wrap{background:#edf1f4;text-align:center;padding:20px}.preview-wrap svg{width:min(100%,470px);height:auto;box-shadow:0 5px 15px #10283b22}.grid-main{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,1fr);gap:17px}.camera{height:min(65vh,620px);background:#091a25;position:relative;overflow:hidden;border-radius:10px;display:grid;place-items:center}.camera video{height:100%;width:100%;object-fit:contain}.camera canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.camera #cameraHint{color:#fff;text-align:center;position:absolute;line-height:1.7}.camera #cameraHint small{color:#8badb9}.grade-empty{border:1px dashed #c7d7df;padding:35px 10px;text-align:center;border-radius:9px;color:#68818f}.big-grade{font-size:47px;font-weight:850;color:#007e71;line-height:1.1}.grade-card{border:1px solid #c4e6d8;background:#f0fbf7;border-radius:10px;padding:17px}.grade-card p{margin:3px 0}.flag{background:#fff3dd;border:1px solid #eecb8b;padding:13px;border-radius:8px;margin:14px 0}.flag select{max-width:250px}.row{display:flex;align-items:center;justify-content:space-between}.divider{height:1px;background:#e2e9ed;margin:16px 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.metric{background:#fff;border:1px solid #dce6ec;padding:15px;border-radius:11px}.metric b{font-size:27px;display:block}.metric small{color:#6a7c88}.scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid #e1e8ed;padding:9px;text-align:left}th{background:#eff5f7;color:#446273;font-size:12px}td.number,th.number{text-align:right}.bar{height:9px;background:#e7edf1;min-width:90px;border-radius:20px;overflow:hidden}.bar span{display:block;height:100%;background:#12a68b}footer{text-align:center;font-size:11px;color:#7f909d;padding:30px 12px}#toast{position:fixed;bottom:22px;right:22px;max-width:400px;background:#112c42;color:white;padding:13px 20px;border-radius:9px;box-shadow:0 8px 25px #0003;display:none;z-index:10}#printArea{display:none}@media(max-width:780px){.header-tag{display:none}.tabs button{padding:11px 12px}.grid-two,.choices,.grid-main{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.panel{padding:15px}.page-title h1{font-size:21px}.camera{height:55vh}}@page{size:letter;margin:0}@media print{body>*:not(#printArea){display:none!important}#printArea{display:block!important;position:static;color:#000;background:white!important}#printArea .print-sheet{width:8.5in;height:11in;break-after:page;page-break-after:always;margin:0;display:block}#printArea .print-sheet:last-child{break-after:auto;page-break-after:auto}#printArea .print-sheet svg{width:8.5in;height:11in;display:block}#printArea .print-test{font:12pt Georgia,serif;padding:.6in .7in;break-after:page;page-break-after:always}#printArea .print-test h1{font:700 17pt system-ui}#printArea .print-test .test-q{break-inside:avoid;margin:19px 0}#printArea .print-test .test-opt{margin:5px 0 0 16px}}}

/* PDF choice studio */
.ps-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.95fr);gap:16px;align-items:start}.ps-page{background:#d8e0e5;border:1px solid #b7c7d0;position:relative;max-width:740px;margin:0 auto;user-select:none;touch-action:none;min-height:200px}.ps-page canvas{width:100%;height:auto;display:block}.ps-page #psOverlay{position:absolute;inset:0;cursor:crosshair}.ps-key{font-size:12px;margin-top:12px;color:#56717d;line-height:1.5}.ps-layout .panel{margin-bottom:15px}.ps-layout .toolbar button{font-size:12px;padding:9px 11px}@media(max-width:850px){.ps-layout{grid-template-columns:1fr}}

/* v0.5 PDF Studio: keep preview and overlay exactly coincident */
.ps-page.has-pdf .grade-empty{display:none!important}
.ps-page canvas[hidden]{display:none!important}
.ps-page{overflow:hidden;min-height:0}
.ps-page.has-pdf #psOverlay{position:absolute;top:0;left:0;width:100%;height:auto;inset:0 auto auto 0;z-index:2}
.ps-review-wrap{max-height:340px;overflow:auto;border:1px solid #dce5e9;border-radius:8px;margin-top:8px}
.ps-review-table{font-size:12px}.ps-review-table th,.ps-review-table td{padding:7px 8px}
.ps-review-table tr.ps-row-click{cursor:pointer}.ps-review-table tr.ps-row-click:hover{background:#f2f8f8}
.ps-review-table tr.selected{background:#dff3ee}.ps-state-ok{color:#087868;font-weight:700}.ps-state-warn{color:#9b5e23;font-weight:700}.ps-state-missing{color:#a33f3f;font-weight:700}
#psBulkKey{min-height:75px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;letter-spacing:.3px}

.ps-small-label{font-size:11px;font-weight:600;min-width:145px}.ps-small-label select{font-size:12px;padding:6px;margin-top:0}
