:root {
  --ink: #263447; --heading:#17283f; --muted:#748194; --border:#e2e7ed; --border-strong:#cbd5df;
  --surface:#ffffff; --canvas:#eff2f5; --warm:#f8f9fb; --navy:#233e5c; --navy-deep:#17304c;
  --blue:#477693; --blue-pale:#ecf4f8; --amber:#ae7733; --amber-pale:#fff6e9;
  --shadow:0 14px 45px rgba(22,43,67,.09); --radius:12px;
}
* {box-sizing:border-box}
html,body {margin:0; min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--warm);font-size:13px;}
button,input,select,textarea {font:inherit}
button{cursor:pointer}
input,select,textarea{color:var(--heading);border:1px solid var(--border-strong);background:#fff;border-radius:8px;padding:9px 11px;outline:none;min-width:0}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,label.file-label:focus-visible{outline:3px solid #b5d5ed;outline-offset:2px}
input::placeholder,textarea::placeholder{color:#98a3ae}
textarea{resize:vertical;line-height:1.52}
.hidden,.sr-only{display:none!important}
.muted{color:var(--muted)} .centered{text-align:center}.muted-inline{font-weight:400;color:#96a1af}
.eyebrow{font-weight:750;letter-spacing:.13em;font-size:9px;color:#8391a1}
h2{margin:4px 0 0;font-weight:750;font-size:18px;letter-spacing:-.035em;color:var(--heading)}
.app{min-height:100vh;display:flex;flex-direction:column}
.masthead{height:75px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 25px;gap:20px}
.brand{display:flex;align-items:center;gap:12px;min-width:260px}
.brand-mark{background:var(--navy);border-radius:10px;color:white;width:36px;height:36px;display:grid;place-items:center;font-family:Georgia,serif;font-weight:800;font-size:22px;position:relative}
.brand-dot{width:7px;height:7px;background:#e1bc80;border-radius:50%;position:absolute;right:-3px;bottom:-2px;border:2px solid white}
.brand strong{display:block;color:var(--heading);font-size:15px;letter-spacing:-.025em;font-weight:800}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:1px}
.header-center{display:flex;align-items:center;gap:14px;margin:auto}.teacher-chip{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #dce6e8;background:#f2f8f8;border-radius:50px;color:#49666f;font-weight:650;font-size:11px;white-space:nowrap}.status-dot{width:7px;height:7px;border-radius:50%;background:#5e9d88}.privacy-note{font-size:11px;color:#95a0ad;white-space:nowrap}
.header-actions{display:flex;align-items:center;gap:8px}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border-radius:9px;padding:10px 14px;font-weight:650;font-size:12px;white-space:nowrap;border:1px solid var(--border-strong);background:#fff;color:var(--heading);text-decoration:none;transition:background .12s,transform .12s,box-shadow .12s}
.btn:hover{background:#f2f5f8}.btn:active{transform:translateY(1px)}
.btn.subtle{background:#fff}.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.btn.primary:hover{background:#305475;box-shadow:0 3px 10px #233e5c25}
.btn:disabled,.icon-button:disabled{opacity:.4;cursor:not-allowed}
.assessment-bar{display:flex;align-items:stretch;gap:18px;flex-shrink:0;padding:15px 25px;background:#fff;border-bottom:1px solid var(--border);min-height:93px}
.assessment-fields{display:flex;gap:10px;align-items:center;min-width:410px;flex:0 1 430px}.assessment-fields label{display:flex;flex-direction:column;gap:5px;color:#6b7989;font-weight:700;font-size:10px;letter-spacing:.015em;flex:1}
.assessment-fields select,.assessment-fields input{min-height:35px;width:100%;padding:6px 9px;font-weight:600;font-size:12px}
.score-strip{display:grid;grid-template-columns:repeat(5,minmax(73px,1fr));gap:6px;flex:1;min-width:0}
.score-item{border:1px solid var(--border);border-radius:9px;padding:7px 10px;display:flex;align-items:center;gap:8px;background:#fbfcfd;min-width:0}
.score-letter{display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:50%;background:#eaf0f5;color:var(--navy);font-weight:850;font-family:Georgia,serif}
.score-info{flex:1;min-width:0}.score-info>span{color:var(--muted);font-size:10px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.score-info select{margin-top:4px;border:0;background:transparent;min-height:17px;padding:0;color:var(--heading);font-size:13px;font-weight:750;width:100%;cursor:pointer}
.total-card{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:75px;border-left:1px solid var(--border);padding-left:14px}.total-card>span{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#8793a2}.total-card strong{margin-top:3px;font-size:25px;letter-spacing:-.06em;color:var(--heading)}.total-card small{font-size:13px;color:#9aa4b0;font-weight:550;letter-spacing:0}
.workspace{display:grid;grid-template-columns:minmax(226px,258px) minmax(330px,1fr) minmax(290px,370px);flex:1;min-height:calc(100vh - 168px)}
.document-pane,.bank-pane{display:flex;flex-direction:column;background:#fff;min-height:0}
.document-pane{border-right:1px solid var(--border);padding:22px 17px 14px;gap:14px}
.bank-pane{border-left:1px solid var(--border);padding:22px 17px 14px;gap:12px}
.pane-heading{display:flex;justify-content:space-between;align-items:center}.pane-help{display:grid;place-items:center;border:1px solid #d6dee6;border-radius:50%;width:21px;height:21px;font-weight:bold;color:#8996a3;font-size:11px;cursor:help}
.upload-card{border:1.5px dashed #c4d2dd;background:linear-gradient(135deg,#f7fafc,#fff);border-radius:12px;padding:20px 12px 18px;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;cursor:pointer;transition:background .12s,border-color .12s}
.upload-card:hover,.upload-card.dragover{background:#eef6fa;border-color:#6c91ae}.upload-icon{display:grid;place-items:center;background:#e7eff5;border-radius:11px;width:39px;height:39px;color:#416783}.upload-icon svg{width:20px;height:20px}
.upload-card strong{font-size:12px;color:var(--heading);margin-top:3px}.upload-card>span:not(.upload-icon):not(.upload-action){font-size:11px;color:#7c8b9b;line-height:1.4}
.upload-action{margin-top:7px;background:#fff;color:#3c6383;border:1px solid #cbdce7;border-radius:7px;font-size:11px;font-weight:750;padding:7px 12px}
.document-meta{display:flex;align-items:center;gap:10px;padding:10px;background:#f5f8fa;border:1px solid var(--border);border-radius:9px}.doc-symbol{border-radius:5px;background:#fcefed;color:#ae5f56;font-size:10px;font-weight:900;padding:8px 6px}.doc-info{min-width:0;flex:1}.doc-info strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-info small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.tiny-icon{border:0;background:transparent;color:#6d8093;font-weight:750;font-size:16px}
.pane-divider{border-top:1px solid var(--border)}.subhead{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:750;color:#3c5164}.counter{font-size:10px;background:#eef1f5;border-radius:20px;padding:3px 8px;color:#6f7f8e}.legend{display:flex;gap:16px;color:#8995a3;font-size:10px}.legend>span{display:flex;gap:6px;align-items:center}.legend-dot{height:7px;width:7px;border-radius:50%;display:inline-block}.legend-dot.strength{background:var(--blue)}.legend-dot.limitation{background:var(--amber)}
.stamps-list{flex:1;overflow:auto;min-height:130px;max-height:calc(100vh - 400px);margin:-2px -3px 0;padding:2px 3px}.stamps-list p{padding-top:30px;font-size:11px;line-height:1.6}.stamp-row{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;border:1px solid transparent;background:#fff;padding:9px 6px;border-radius:8px;margin:2px 0;cursor:pointer}.stamp-row:hover{background:#f5f8fa;border-color:#e3ebf0}.stamp-row.is-selected{background:#eef4f8;border-color:#cadce8}
.stamp-row .mini-circle{flex:none;margin-top:1px}.mini-circle{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;font-family:Georgia,serif;background:#e7f1f5;color:#356079}.mini-circle.limitation{background:#fcf0df;color:#ac7836}.stamp-row .stamp-info{min-width:0;flex:1}.stamp-row .stamp-info strong{font-size:10px;display:block;line-height:1.35;color:#53687b}.stamp-row .stamp-info span{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;color:#65788a;line-height:1.45;margin-top:2px}
.document-footer{border-top:1px solid var(--border);padding-top:12px;display:flex;gap:8px;color:#95a1af;font-size:10px;line-height:1.5}.lock-icon{font-size:17px;color:#77929a}
.viewer-pane{min-width:0;display:flex;flex-direction:column;background:#edf1f5;position:relative}
.viewer-toolbar{height:56px;padding:0 20px;display:flex;justify-content:space-between;align-items:center;background:#f9fafc;border-bottom:1px solid #dfe6ed}.toolbar-left{display:flex;align-items:center;gap:12px}.toolbar-left strong{font-size:12px;color:var(--heading)}.toolbar-controls{display:flex;align-items:center;gap:4px}
.icon-button{display:grid;place-items:center;background:#fff;border:1px solid #dce3e9;border-radius:7px;width:29px;height:29px;color:#50667c;font-size:15px;font-weight:700}.icon-button:hover{background:#eef4f7}.page-counter{font-size:12px;color:#8190a0;white-space:nowrap;margin:0 5px}.page-counter input{width:41px;text-align:center;border:1px solid #e1e7ed;padding:4px 2px;border-radius:5px;font-weight:750;appearance:textfield}.page-counter input::-webkit-inner-spin-button{appearance:none}.toolbar-rule{height:18px;border-left:1px solid #d7dfe6;margin:0 8px}.zoom-label{font-size:11px;font-weight:750;color:#6d7e91;min-width:37px;text-align:center}
.instruction-bar{min-height:39px;background:#f2f7fa;padding:9px 18px;display:flex;align-items:center;gap:8px;font-size:11px;color:#617689;border-bottom:1px solid #dae5eb;line-height:1.45}.instruction-bar.placing{background:#fef8ec;border-bottom-color:#f3e6ce;color:#895d26}.instruction-icon{display:grid;place-items:center;width:16px;height:16px;flex:none;border-radius:50%;background:#dceaf0;color:#47738e;font-weight:850;font-size:11px}.instruction-bar.placing .instruction-icon{background:#efdaba;color:#875e2a}.text-button,.link-button{border:0;background:transparent;color:#3a7195;font-weight:750;text-decoration:none;font-size:11px;padding:2px}.text-button{margin-left:auto}
.pdf-scroll{flex:1;min-height:520px;max-height:calc(100vh - 248px);overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:28px 24px;background:radial-gradient(circle at 1px 1px,#dfe5ea .85px,transparent .9px) 0 0/20px 20px,linear-gradient(#eff2f5,#ecf0f4)}
.page-shell{position:relative;flex-shrink:0;background:white;box-shadow:0 9px 34px #25384d28,0 0 1px #41597533;line-height:0}.page-shell canvas{display:block}.stamp-layer{position:absolute;inset:0;cursor:crosshair}.stamp-layer:not(.placing){cursor:default}
.pin{position:absolute;display:grid;place-items:center;width:27px;height:27px;border:2px solid #fff;border-radius:50%;color:white;font-weight:900;font-family:Georgia,serif;font-size:13px;line-height:1;box-shadow:0 2px 8px #172c405e;transform:translate(-50%,-50%);padding:0;transition:box-shadow .12s,scale .12s;z-index:2}.pin.strength{background:#477b97}.pin.limitation{background:#b7803c}.pin:hover,.pin.active{box-shadow:0 0 0 4px #b2cbd6,0 2px 7px #172c405a;scale:1.1;z-index:3}.pin em{position:absolute;bottom:-7px;right:-6px;font-size:8px;font-style:normal;font-family:Inter,sans-serif;border-radius:7px;padding:2px 4px;background:#fff;color:#32475b;box-shadow:0 1px 3px #172c4040}
.empty-viewer{max-width:445px;margin:auto;text-align:center;padding:20px 0 50px}.empty-art{height:230px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:25px}.empty-page{position:relative;background:#fff;width:180px;height:220px;box-shadow:0 9px 32px #25384d22;transform:rotate(-5deg);border-radius:3px;padding:28px 22px}.empty-line{background:#e7ecf1;height:7px;border-radius:10px;width:86%;margin-bottom:10px}.empty-line.long{width:99%}.empty-line.medium{width:70%}.empty-equation{font-family:Georgia,serif;font-size:17px;color:#7f94a6;margin:15px 0 15px}.illustrative-stamp{position:absolute;right:-20px;top:78px;width:44px;height:44px;background:#477b97;color:white;border:4px solid #fff;border-radius:50%;font-family:Georgia,serif;font-size:25px;font-weight:900;display:grid;place-items:center;box-shadow:0 3px 12px #203a5550}.empty-viewer h2{font-size:23px;margin:0 0 10px}.empty-viewer p{color:#708195;line-height:1.65;font-size:12px;margin:0 auto 19px;max-width:355px}.empty-viewer .btn{padding:12px 18px}
.viewer-bottom{display:flex;justify-content:space-between;gap:10px;min-height:32px;align-items:center;padding:6px 20px;background:#f9fafc;border-top:1px solid #dfe6ed;color:#92a0ad;font-size:10px}.viewer-bottom>span:last-child{text-align:right}
.bank-total{font-size:10px;color:#7b92a1;background:#f0f4f7;padding:6px 8px;border-radius:20px;white-space:nowrap}.bank-intro{color:#728194;line-height:1.55;font-size:11px;margin:0}.criterion-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.criterion-tab{border:1px solid #e2e8ed;background:#fff;border-radius:8px;padding:9px 0;font-family:Georgia,serif;font-size:13px;font-weight:750;color:#718293}.criterion-tab:hover{background:#f0f5f7}.criterion-tab.active{color:white;background:var(--navy);border-color:var(--navy)}
.bank-filters{display:flex;flex-direction:column;gap:9px}.bank-filters input{width:100%;min-height:38px;border:1px solid var(--border);background:#f8fafb}.tone-toggle{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;background:#f0f3f6;border-radius:8px}.tone-btn{border:0;background:transparent;border-radius:6px;color:#8390a1;padding:7px 4px;font-size:11px;font-weight:700}.tone-btn.active{background:#fff;color:#304f68;box-shadow:0 1px 3px #2c465314}.bank-list-heading{display:flex;justify-content:space-between;align-items:center;gap:7px;padding:5px 0 0}.bank-list-heading strong{font-size:11px;color:var(--heading)}
.comment-list{flex:1;overflow:auto;max-height:calc(100vh - 505px);min-height:210px;padding-right:4px;scrollbar-color:#c4d0dc transparent;scrollbar-width:thin}
.comment-card{width:100%;text-align:left;border:1px solid #e5e9ee;border-radius:9px;padding:11px 12px 12px;background:#fff;margin-bottom:8px;cursor:pointer}.comment-card:hover{border-color:#acc2d3;background:#fbfdfe}.comment-card.is-active{background:#f2f7fa;border-color:#83a9c3;box-shadow:0 0 0 1px #b6d3e4 inset}.comment-card-head{display:flex;align-items:center;gap:7px;margin-bottom:6px}.comment-card .topic{font-size:10px;font-weight:750;color:#758493;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.polarity{font-weight:750;font-size:9px;letter-spacing:.035em;border-radius:4px;padding:3px 6px;white-space:nowrap}.polarity.strength{background:var(--blue-pale);color:#4c7c94}.polarity.limitation{background:var(--amber-pale);color:#a87b41}.comment-card p{font-size:11px;line-height:1.5;color:#3d5265;margin:0}.comment-card .custom-tag{color:#7994ab;font-weight:750;font-size:9px;margin-left:auto}
.bank-empty{padding:38px 14px;color:#8495a7;text-align:center;line-height:1.65}
.selection-editor{border-top:1px solid var(--border);padding-top:13px;flex-shrink:0}.selection-empty{display:flex;align-items:center;gap:10px;color:#92a0ae;font-size:11px;line-height:1.5;min-height:42px}.small-ring{border:1.5px dashed #cbd8e2;color:#8fa4b3;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;flex:none;font-family:Georgia,serif;font-size:14px}
.selection-active .selection-title{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:9px}.selection-title strong{font-size:12px;color:var(--heading)}.selection-title small{color:#8693a4}.selection-active textarea{width:100%;font-size:12px;min-height:75px;max-height:135px;padding:8px 10px;background:#fbfcfd}.selection-actions{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:8px}.selection-actions small{color:#96a1ad;font-size:10px;max-width:165px;line-height:1.4}.selection-actions .btn{padding:8px 11px;font-size:11px}
.edit-stamp-toolbar{display:flex;justify-content:space-between;align-items:center;gap:5px;margin-top:8px}.edit-stamp-toolbar button{font-size:10px}.danger-link{color:#ab6862}.bank-caption{border-top:1px solid var(--border);padding-top:12px;color:#a2acb8;font-size:10px;line-height:1.5}
.modal{border:0;border-radius:16px;padding:0;background:#fff;box-shadow:0 25px 80px #172c4060;color:var(--ink);max-height:min(92vh,900px)}.modal::backdrop{background:#15263a99;backdrop-filter:blur(2px)}.custom-modal{width:min(490px,calc(100% - 24px))}.custom-modal form{display:flex;flex-direction:column;gap:15px;padding:23px}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between}.modal-heading h2,.review-header h2{font-size:23px;margin-top:5px}.custom-modal label{font-weight:700;font-size:11px;color:#627184;display:flex;flex-direction:column;gap:6px}.custom-modal label input,.custom-modal label select,.custom-modal label textarea{width:100%;font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-hint{font-size:10px;line-height:1.6;color:#8292a3;margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:8px}
.review-modal{width:min(830px,calc(100% - 28px))}.review-header{padding:25px 28px 20px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--border)}.review-header p{margin:6px 0 0;color:#8190a0;line-height:1.5}.review-body{max-height:62vh;overflow:auto;padding:20px 28px}.review-status{padding:12px 15px;background:#f2f7fa;border:1px solid #dce7ed;border-radius:9px;color:#537286;font-size:12px;margin-bottom:15px;line-height:1.6}.review-status.warning{background:#fff7ec;border-color:#f0dfca;color:#936f43}.review-scores{display:flex;flex-direction:column;gap:13px}.review-score{border:1px solid var(--border);border-radius:10px;padding:14px}.review-score-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.review-score-header .mini-circle{flex:none}.review-score-header strong{color:var(--heading);flex:1;font-size:13px}.review-score-header select{padding:6px 9px;font-size:12px;width:85px}.review-score small{display:block;margin:3px 0 7px;color:#8594a4;font-size:10px}.review-score textarea{width:100%;min-height:55px;font-size:12px;line-height:1.55}.review-score .evidence-count{font-size:10px;color:#7c94a4}.review-note{margin-top:18px;padding:13px 15px;border-left:3px solid #b9cedc;background:#f5f8fa;border-radius:0 8px 8px 0}.review-note strong{font-size:12px}.review-note p{font-size:11px;color:#667c8d;line-height:1.55;margin:4px 0 0}.review-footer{padding:15px 28px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border);background:#fbfcfd;border-radius:0 0 16px 16px}
.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#20394f;color:white;padding:12px 18px;border-radius:9px;box-shadow:0 8px 30px #11253444;z-index:50;font-size:12px;max-width:80vw;text-align:center;pointer-events:none}
@media(max-width:1390px){.header-center{display:none}.workspace{grid-template-columns:226px minmax(330px,1fr) 325px}.assessment-bar{gap:10px;padding-left:17px;padding-right:17px}.assessment-fields{min-width:365px;flex-basis:370px}.score-item{padding:7px 5px;gap:4px}}
@media(max-width:1080px){.workspace{grid-template-columns:200px minmax(280px,1fr) 290px}.document-pane,.bank-pane{padding-left:12px;padding-right:12px}.assessment-bar{flex-wrap:wrap}.assessment-fields{flex:1;max-width:none;min-width:300px}.score-strip{flex:2;min-width:360px}.total-card{min-width:60px}.brand{min-width:200px}.masthead{padding:0 14px}.header-actions{gap:4px}.header-actions .btn{padding:9px 8px}}
@media(max-width:860px){.masthead{height:auto;min-height:70px;flex-wrap:wrap;padding:12px 15px}.brand{flex:1}.assessment-bar{padding:12px 15px}.workspace{display:flex;flex-wrap:wrap}.document-pane{width:35%;min-width:205px}.viewer-pane{width:65%;min-height:600px}.bank-pane{width:100%;border-left:0;border-top:1px solid var(--border)}.comment-list{max-height:410px;min-height:210px}.pdf-scroll{max-height:650px}.stamps-list{max-height:500px}.bank-pane{padding:16px}.bank-caption{margin-top:5px}}
@media(max-width:600px){.header-actions{width:100%;justify-content:space-between}.header-actions .btn{flex:1;padding:9px 6px}.assessment-fields{min-width:0;width:100%}.score-strip{min-width:0;flex:1;width:100%}.score-item{flex-direction:column;align-items:center;gap:3px}.score-info>span{display:none}.score-info select{margin-top:0;text-align:center;font-size:11px}.total-card{min-width:55px;padding-left:7px}.workspace{flex-direction:column}.document-pane,.viewer-pane,.bank-pane{width:100%}.document-pane{min-height:0}.upload-card{padding:13px}.stamps-list{max-height:180px;min-height:45px}.viewer-pane{min-height:550px}.pdf-scroll{padding:18px 12px;max-height:600px}.viewer-toolbar{padding:0 10px}.toolbar-left .eyebrow{display:none}.viewer-bottom>span:last-child{display:none}.review-header,.review-body,.review-footer{padding-left:16px;padding-right:16px}}

/* The 2029 IB framework has four different criteria; warn before using A-E on it. */
.framework-notice{padding:7px 23px;border-bottom:1px solid #dbe4ec;color:#64788b;background:#f7fafc;font-size:11px;line-height:1.5}
.framework-notice.warning{color:#8b561f;background:#fff2de;border-bottom-color:#eac996;font-weight:700}

@media(max-width:600px){
 .assessment-bar{display:flex;flex-direction:column;align-items:stretch;gap:9px}
 .assessment-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);flex:none;width:100%;min-width:0;gap:7px}
 .assessment-fields label{min-width:0;width:100%}
 .assessment-fields input,.assessment-fields select{min-width:0;width:100%;font-size:11px}
 .score-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;min-width:0;max-width:100%;flex:none;gap:4px}
 .score-item{padding:6px 2px;min-width:0}
 .score-info{min-width:0;width:100%;text-align:center}
 .score-info select{width:100%;padding:4px 0;font-size:10px}
 .total-card{width:100%;min-height:44px;flex:none;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding:4px 5px}
 .total-card strong{font-size:22px}
 .viewer-pane,.bank-pane,.document-pane{min-width:0}
}

/* Teacher-controlled on-script stamp appearance. PDF export uses the same
   point diameter and HEX colour saved on each stamp, independent of zoom. */
.stamp-style-panel{background:#f6f9fb;border:1px solid #e2e9ef;border-radius:10px;padding:11px 10px;display:flex;flex-direction:column;gap:7px}
.stamp-style-header{display:flex;align-items:center;justify-content:space-between;gap:9px}
.stamp-style-header strong{color:var(--heading);font-size:11px}
.stamp-preview{display:flex;align-items:center;gap:5px;min-height:31px}
.stamp-preview i{display:grid;place-items:center;flex:none;border-radius:50%;border:2px solid #fff;font-style:normal;font-family:Georgia,serif;font-weight:900;font-size:12px;box-shadow:0 1px 3px #172c4028}
.stamp-size-field{display:flex;justify-content:space-between;gap:8px;color:#6b7b8d;font-size:10px;font-weight:700}
.stamp-size-field output,.individual-stamp-style output{font-variant-numeric:tabular-nums;color:var(--heading)}
#defaultStampSize{width:100%;padding:0;accent-color:var(--navy);height:16px}
.stamp-colour-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.stamp-colour-fields label{font-size:10px;font-weight:650;color:#607386;display:flex;justify-content:space-between;align-items:center;gap:5px;min-width:0}
.stamp-colour-fields input[type=color],.individual-stamp-style input[type=color]{width:34px;height:29px;border:1px solid #cbd8e3;border-radius:6px;padding:3px;cursor:pointer;flex:none}
.stamp-style-panel .text-button{text-align:left;width:100%;padding:3px 0;font-size:10px;font-weight:700;line-height:1.4;color:#376681}
.stamp-style-panel p{margin:0;color:#95a3af;font-size:9.5px;line-height:1.45}
.individual-stamp-style{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:10px 0 7px;padding:10px;background:#f6f9fb;border:1px solid #e2e9ef;border-radius:8px}
.individual-stamp-style label{font-size:10px;font-weight:700;color:#697f90;display:flex;flex-direction:column;gap:5px;min-width:0}
.individual-stamp-style label:first-child{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center}
.individual-stamp-style input[type=range]{grid-column:1 / -1;width:100%;height:19px;padding:0;accent-color:var(--navy)}
.individual-stamp-style label:last-child{align-items:center}
.individual-stamp-style input[type=color]{width:42px}

/* A library card has distinct actions: select for marking, copy, or edit. */
.comment-card{cursor:default;padding:0;overflow:hidden}
.comment-select{display:block;text-align:left;width:100%;border:0;background:transparent;padding:11px 12px 7px;color:inherit;border-radius:9px;cursor:pointer}
.comment-select p{white-space:normal}
.comment-select:hover{background:#f6fafc}
.comment-card-actions{display:flex;justify-content:flex-end;gap:4px;padding:1px 10px 8px}
.comment-card-actions button{border:0;background:transparent;color:#4b7793;font-size:10px;font-weight:700;padding:5px 7px;border-radius:6px}
.comment-card-actions button:hover{background:#ecf4f8}
.library-open-button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 11px;border:1px solid #c7d9e5;border-radius:9px;background:#edf5f9;color:#2b516e;font-size:11px;font-weight:750;text-align:left}
.library-open-button:hover{background:#e4f0f6;border-color:#a9c8d9}
.library-open-button span:last-child{font-size:10px;font-weight:650;white-space:nowrap;color:#557e97}

/* Full-screen, independently searchable and copyable teacher library. */
.library-modal{width:min(980px,calc(100vw - 34px));height:min(88vh,900px);max-width:none;max-height:none;overflow:hidden;display:flex;flex-direction:column}
.library-modal:not([open]){display:none}
.library-modal-heading{display:flex;align-items:flex-start;justify-content:space-between;padding:23px 26px 14px;gap:20px;border-bottom:1px solid var(--border)}
.library-modal-heading h2{font-size:24px;margin-top:5px}
.library-modal-heading p{color:#7f8fa0;line-height:1.5;margin:7px 0 0;max-width:700px}
.library-modal-filters{padding:15px 26px 10px;display:grid;grid-template-columns:minmax(180px,1fr) 115px 165px 175px;gap:10px}
.library-modal-filters input,.library-modal-filters select{width:100%;background:#f9fbfd;font-size:12px;height:39px}
.library-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 26px 10px;color:#8393a4;font-size:11px}
.library-summary .btn{padding:8px 10px;white-space:nowrap}
.library-results{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;padding:2px 26px 18px;display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:11px}
.library-entry{border:1px solid #e2e8ee;border-radius:10px;padding:14px 15px 12px;background:#fff;display:flex;flex-direction:column;gap:9px;min-width:0}
.library-entry-header{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.library-entry-header strong{font-size:11px;color:var(--heading)}
.library-entry-header small{font-size:9px;color:#91a1af;margin-left:auto}
.library-entry p{font-size:12px;color:#42586a;line-height:1.6;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.library-entry-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:auto}
.library-entry-actions button{font-size:11px;font-weight:650;border:1px solid #dfe7ed;background:#f8fafc;border-radius:7px;padding:7px 9px;color:#477087}
.library-entry-actions button:hover{background:#edf5f9;border-color:#b8d3e3}
.library-entry-actions button:first-child{background:#edf5fa;border-color:#cfdfeb;color:#315c7b}
.library-entry-actions button.btn.primary{color:#fff;background:var(--navy)}
.library-edit{display:flex;flex-direction:column;gap:9px}
.library-edit label{font-size:10px;font-weight:700;color:#6d8294;display:flex;flex-direction:column;gap:5px}
.library-edit textarea{width:100%;resize:vertical;min-height:110px;line-height:1.55;font-size:12px}
.library-edit input{width:100%;font-size:12px}
.library-modal-footer{border-top:1px solid var(--border);padding:12px 26px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:10px;color:#8897a4;background:#fafcfd}
.library-modal-footer button{padding:8px 15px}
@media(max-width:720px){
 .library-modal{width:calc(100vw - 14px);height:94vh}
 .library-modal-heading{padding:14px 15px 11px}
 .library-modal-heading h2{font-size:19px}
 .library-modal-filters{grid-template-columns:1fr 1fr;padding:10px 15px;gap:7px}
 .library-modal-filters input{grid-column:1 / -1}
 .library-modal-filters select{min-width:0}
 .library-modal-filters select:last-child{grid-column:1 / -1}
 .library-results{grid-template-columns:1fr;padding:0 15px 12px;gap:9px}
 .library-summary{padding:0 15px 10px;align-items:center}
 .library-summary .btn{font-size:10px}
 .library-modal-footer{padding:9px 15px}
 .library-modal-footer span{max-width:68%;line-height:1.4}
}


/* Always-visible teacher references; no PDF required. */
.reference-bar{display:flex;align-items:center;gap:10px;padding:9px 24px;border-bottom:1px solid #dce6ed;background:#f9fcfe;flex-wrap:wrap}
.reference-bar .btn{padding:8px 12px;font-size:11px}
.reference-help{font-size:10px;color:#899baa;margin-left:auto}
.library-independent-link{font-size:11px;text-decoration:none;color:#376c90;font-weight:750;margin-top:-4px}
.library-independent-link:hover{text-decoration:underline}
.pdf-error{margin:0;padding:11px;border:1px solid #edcead;background:#fff8eb;border-radius:8px;color:#8d572b;font-size:11px;line-height:1.6}
.criteria-modal{width:min(860px,calc(100% - 20px));max-width:none;max-height:min(94vh,980px);display:flex;flex-direction:column;overflow:hidden}
.criteria-modal:not([open]){display:none}
.criteria-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:23px 27px 17px;border-bottom:1px solid #e0e7ed}
.criteria-modal-header h2{font-size:23px;margin-top:7px}
.criteria-modal-header p{font-size:12px;line-height:1.6;color:#72879a;max-width:650px;margin:8px 0 0}
.criteria-modal-body{overflow-y:auto;overscroll-behavior:contain;padding:20px 27px;min-height:0;flex:1}
.criteria-source{display:flex;align-items:center;flex-wrap:wrap;gap:12px;border:1px solid #d2e2ee;border-radius:11px;background:#f4f9fc;padding:14px;margin-bottom:17px}
.criteria-source>div:first-child{flex:1;min-width:230px}
.criteria-source strong{font-size:12px;color:#264562}
.criteria-source p{margin:5px 0 0;color:#6a8093;font-size:11px;line-height:1.5}
.criteria-source .btn{font-size:11px;white-space:normal;text-align:center}
.criteria-upload-label{display:flex;flex-direction:column;gap:6px;color:#6d8195;font-size:10px;font-weight:700;width:100%;padding-top:8px;border-top:1px solid #dce7f0}
.criteria-upload-label input{width:100%;font-size:11px;background:#fff}
.criteria-guide-preview{width:100%;display:flex;align-items:start;flex-direction:column;gap:9px}
.criteria-guide-preview a{font-size:11px;color:#315e80}
.criteria-guide-preview iframe{width:100%;height:440px;border:1px solid #c8d7e4;border-radius:9px;background:#fff}
.criteria-guide-preview .btn{padding:8px}
.criteria-cards{display:flex;flex-direction:column;gap:11px}
.criteria-card{border:1px solid #dce5ed;border-radius:11px;background:#fff;padding:15px}
.criteria-card-heading{display:flex;align-items:center;gap:10px}
.criteria-card-heading>div{flex:1;min-width:130px}
.criteria-card-heading strong{display:block;color:#213d55;font-size:13px}
.criteria-card-heading small{display:block;font-size:10px;color:#8b9eae;margin-top:3px}
.criteria-card-heading label{font-size:10px;font-weight:700;color:#6c7f92;display:flex;flex-direction:column;gap:4px}
.criteria-card-heading select{font-size:12px;font-weight:750;min-width:118px;padding:6px}
.criteria-guidance{font-size:11px;color:#6d7e90;line-height:1.5;margin:12px 0}
.criteria-rationale{font-weight:700;font-size:10px;color:#647b91;display:flex;flex-direction:column;gap:6px}
.criteria-rationale textarea{font-size:12px;min-height:62px;resize:vertical}
.criteria-disclaimer{font-size:10px;line-height:1.6;color:#8697a5;margin:18px 0 0}
.criteria-modal-footer{border-top:1px solid #e1e8ef;padding:13px 27px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f9fbfd}
.criteria-modal-footer span{font-size:14px;font-weight:800;color:#2b4b68}
.review-note button{margin-top:10px}
@media(max-width:720px){
.reference-bar{padding:10px 12px;gap:7px}
.reference-bar .btn{flex:1;min-width:140px;white-space:normal;font-size:10px;text-align:center}
.reference-help{width:100%;margin:0}
.criteria-modal{width:calc(100% - 12px);max-height:97vh}
.criteria-modal-header{padding:15px}
.criteria-modal-header h2{font-size:19px}
.criteria-modal-body{padding:13px}
.criteria-source{padding:10px}
.criteria-card{padding:11px}
.criteria-card-heading{flex-wrap:wrap}
.criteria-card-heading label{margin-left:auto}
.criteria-modal-footer{padding:11px 14px}
.criteria-guide-preview iframe{height:330px}
}

/* Complete on-page comment callouts: outside the student PDF, paired with an A-E circle. */

.pdf-scroll{justify-content:flex-start}
.page-shell{margin-left:auto;margin-right:auto;background:transparent;box-shadow:none}
.page-shell canvas{background:white;box-shadow:0 9px 34px #25384d28,0 0 1px #41597533}
.page-notes{position:absolute;top:0;left:0;min-width:0;overflow:visible;line-height:normal}
.page-notes-empty{padding:12px 13px;color:#788fa3;font-size:11px;line-height:1.5;border:1px dashed #cfdae5;border-radius:9px;background:#f9fbfc}
.page-note{position:absolute;top:0;left:0;width:100%;display:flex;align-items:flex-start;gap:8px;min-width:0;white-space:normal;text-align:left;padding:11px 10px 12px 9px;background:#fff;border:1px solid #d9e4ed;border-left:3px solid var(--note-color,#477b97);border-radius:9px;box-shadow:0 2px 9px #213d5712;cursor:pointer}
.page-note:hover,.page-note.is-selected{border-color:#92b3cb;box-shadow:0 0 0 2px #a9c9de66,0 2px 10px #213d5718}
.page-note-circle{width:25px;height:25px;flex:none;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;font-family:Georgia,serif;font-size:13px;font-weight:900;box-shadow:0 1px 4px #15293b2a;margin-top:14px}
.page-note-content{min-width:0;flex:1;display:block}
.page-note-kicker{display:block;font-size:10px;font-weight:750;color:#5c758b;line-height:1.5;margin-bottom:5px}
.page-note-fulltext{display:block;color:#2c4358;font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}
.page-shell[data-notes-layout="below"] .page-notes{padding-top:3px}
.page-shell[data-notes-layout="below"] .page-note{position:relative;top:auto!important;margin-bottom:9px}
.page-shell[data-notes-layout="below"] .page-note-circle{margin-top:10px}


/* On-page annotation redesign: full-text boxes are drawn on the student PDF. */
.pdf-scroll{justify-content:center}
.page-shell{background:#fff;box-shadow:0 9px 34px #25384d28,0 0 1px #41597533}
.page-shell canvas{background:#fff;box-shadow:none}
.stamp-layer{overflow:hidden;touch-action:pan-y}
.onpage-stamp{display:block;position:absolute;cursor:grab;z-index:2;box-sizing:border-box;background:rgba(251,253,255,.96);border:solid var(--onpage-accent,#477b97);box-shadow:0 1px 5px #112c4440;text-align:left;color:#20384e;line-height:normal;user-select:none;touch-action:none;overflow:hidden}
.onpage-stamp:hover,.onpage-stamp.active{box-shadow:0 0 0 2px #8db3ca,0 3px 9px #112c4440;z-index:3}
.onpage-stamp:active{cursor:grabbing}
.onpage-stamp.note-conflict{box-shadow:0 0 0 2px #c96047,0 1px 9px #c9604755}
.onpage-circle{display:grid;place-items:center;position:absolute;font-family:Georgia,serif;font-weight:900;border-radius:50%;border:1px solid #fff}
.onpage-note-header{display:block;position:absolute;font-weight:800;white-space:nowrap;max-width:calc(100% - 43px);overflow:hidden;text-overflow:ellipsis;color:#3d5d78}
.onpage-note-body{display:block;position:absolute;overflow:visible;color:#263d4f;white-space:nowrap;font-family:Helvetica,Arial,sans-serif;font-weight:400}
.onpage-note-line{display:block;white-space:pre}
.annotation-notice{margin:0;padding:8px 16px;background:#fff3e6;border-top:1px solid #efcfaf;color:#9a4d2b;line-height:1.5;font-size:11px}
.arrange-notes{padding:6px 9px!important;font-size:10px!important;white-space:nowrap}
.note-width-field{grid-column:1/-1;display:grid!important;grid-template-columns:1fr auto;align-items:center;gap:4px!important}
.note-width-field input{grid-column:1/-1;accent-color:var(--navy);padding:0}
@media(max-width:650px){.arrange-notes{font-size:9px!important;padding:5px!important}.toolbar-left{gap:6px}}


/* Full-text comment typography and printable box appearance. */
.note-defaults{margin-top:4px;padding-top:7px;border-top:1px solid #dce6ee;display:block}
.note-defaults summary{cursor:pointer;color:#395f7e;font-size:10px;font-weight:750;line-height:1.5;padding:3px 0}
.note-defaults[open]{display:flex;flex-direction:column;gap:10px}
.note-defaults .stamp-colour-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.note-defaults .stamp-colour-fields label{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:9px;align-items:flex-start}
.note-defaults .stamp-colour-fields input{width:100%;max-width:45px}
.note-defaults .note-dimension-field{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px;color:#657c90;font-size:10px;font-weight:700}
.note-defaults .note-dimension-field input{grid-column:1/-1;padding:0;width:100%;height:19px;accent-color:#315c7b}
.note-defaults .note-dimension-field output{font-variant-numeric:tabular-nums}
.individual-stamp-style{grid-template-columns:minmax(0,1fr) minmax(0,75px);align-items:stretch}
.individual-stamp-style .comment-style-heading{grid-column:1/-1;font-size:10px;font-weight:800;color:#304f6a;padding:7px 0 2px;border-bottom:1px solid #e1e9ef}
.individual-stamp-style .note-dimension-field{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center}
.individual-stamp-style .note-dimension-field input{grid-column:1/-1;width:100%}
.individual-stamp-style .note-colours{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.individual-stamp-style .note-colours label{align-items:start!important;display:flex!important;flex-direction:column!important;gap:5px!important;font-size:9.5px;line-height:1.3}
.individual-stamp-style .note-colours input{width:100%;max-width:48px;height:32px}
.individual-stamp-style .note-fit-button{grid-column:1/-1;text-align:left;white-space:normal;color:#346d92;font-weight:750;font-size:11px;padding:4px 0}
.individual-stamp-style .note-format-help{grid-column:1/-1;color:#8095a5;font-size:10px;line-height:1.5}
.selection-editor{max-height:min(70vh,760px);overflow-y:auto;scrollbar-width:thin}
.onpage-border-accent{position:absolute;top:0;bottom:0;left:0;pointer-events:none}
.note-resize-handle{position:absolute;right:0;bottom:0;width:20px;height:20px;min-width:20px;background:rgba(227,238,246,.94);border:1px solid #98aec0;border-radius:5px 0 3px 0;color:#376687;cursor:nwse-resize;z-index:6;touch-action:none;padding:0}
.note-resize-handle::after{content:"";position:absolute;right:4px;bottom:4px;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor}
.note-resize-handle:hover,.note-resize-handle:focus-visible{background:#d4e7f5;color:#234e6b;outline:2px solid #719bb8;outline-offset:-2px}
.onpage-stamp.active .note-resize-handle{background:#d3e9f9}
@media(max-width:650px){
 .individual-stamp-style .note-colours{grid-template-columns:repeat(3,minmax(0,1fr))}
 .note-resize-handle{width:24px;height:24px}
}


/* Complete IA mark-band rubric: full-height on phones, scrollable independent
   content, sticky navigation/mark summary and source guide access. */
.criteria-modal{
  position:fixed;
  box-sizing:border-box;
  width:min(960px,calc(100vw - 32px));
  height:min(940px,calc(100dvh - 32px));
  max-width:none;max-height:none;
  margin:auto; padding:0;
  display:flex;flex-direction:column;overflow:hidden;
  border-radius:16px;
}
.criteria-modal:not([open]){display:none}
.criteria-modal-header{
  flex:0 0 auto;
  padding:15px 22px 12px;
  border-bottom:1px solid #e1e9ef;
  gap:14px;align-items:flex-start;
}
.criteria-modal-heading{min-width:0;flex:1}
.criteria-modal-header .eyebrow{font-size:10px;letter-spacing:.1em;color:#7c90a2}
.criteria-modal-header h2{font-size:21px;line-height:1.22;letter-spacing:-.025em;margin:6px 0;color:#1c3852}
.criteria-modal-header p{font-size:12px;line-height:1.5;max-width:740px;margin:5px 0 0;color:#667d91}
.criteria-course-pill{display:inline-flex;vertical-align:middle;padding:3px 7px;background:#ecf3f8;border-radius:6px;color:#37657d;letter-spacing:0;font-size:11px;font-weight:800;white-space:nowrap}
.criteria-close{flex:0 0 36px;width:36px;height:36px;border-radius:10px;font-size:17px}
.criteria-jump-bar{
  flex:0 0 auto;display:grid;grid-template-columns:auto repeat(5,minmax(0,1fr)) auto;
  align-items:center;gap:8px;padding:8px 22px;
  background:#f8fafc;border-bottom:1px solid #e1e9ef;
}
.criteria-jump-label{font-size:11px;font-weight:700;color:#74899b}
.criteria-jump-bar button{
  min-width:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;
  background:#fff;border:1px solid #d7e2eb;color:#365771;border-radius:8px;
  padding:5px 8px;min-height:39px;
}
.criteria-jump-bar button:hover,.criteria-jump-bar button:focus-visible{background:#edf5fa;border-color:#a7c6d9}
.criteria-jump-bar button strong{font-size:14px;font-family:Georgia,serif}
.criteria-jump-bar button small{font-size:9px;color:#718a9d;white-space:nowrap}
.criteria-jump-bar button.has-mark{border-color:#8fb8cc;background:#edf6fa}
.criteria-jump-bar button.has-mark small{color:#245c75;font-weight:800}
.criteria-jump-bar .criteria-guide-jump{font-size:11px;font-weight:750;padding:6px 10px;line-height:1.2;max-width:105px}
.criteria-modal-body{
  flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;
  padding:15px 22px 22px;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;scrollbar-gutter:stable;
}
.criteria-intro{
  font-size:12px;line-height:1.55;margin:0 0 16px;
  color:#637a8c;max-width:870px;
}
.criteria-intro strong{color:#2c506b}
.criteria-cards{display:flex;flex-direction:column;gap:15px}
.criteria-card{scroll-margin-top:12px;padding:18px;border:1px solid #d8e3ec;background:#fff;border-radius:13px}
.criteria-card-heading{
  display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:11px;
  align-items:center;margin-bottom:9px;
}
.criteria-card-heading .mini-circle{width:30px;height:30px;font-size:14px;background:#315c7b;color:#fff}
.criteria-card-title{min-width:0}
.criteria-card-title strong{display:block;font-size:15px;line-height:1.34;color:#1d3b56}
.criteria-card-title small{display:block;margin-top:3px;font-size:11px;line-height:1.35;color:#698197}
.criteria-mark-select{display:flex;flex-direction:column;gap:4px;font-weight:750;font-size:10px;color:#5d758a}
.criteria-mark-select select{padding:7px 9px;min-width:100px;width:105px;font-size:13px;color:#1e455f;font-weight:800}
.criteria-focus{font-size:12px;line-height:1.5;color:#556d80;margin:4px 0 11px}
.criteria-levels{
  border:1px solid #dee7ed;border-radius:9px;
  overflow:hidden;
}
.criteria-levels-head{
  display:grid;grid-template-columns:50px minmax(0,1fr) 24px;gap:8px;
  font-size:10px;text-transform:uppercase;letter-spacing:.075em;
  color:#71879a;font-weight:800;background:#f0f5f8;
  padding:9px 11px;
}
.criteria-level{
  display:grid;grid-template-columns:50px minmax(0,1fr) 24px;align-items:center;gap:8px;
  width:100%;padding:10px 11px;
  text-align:left;background:#fff;color:#344d62;
  border:0;border-bottom:1px solid #e8eef2;border-radius:0;
  font-size:12.5px;line-height:1.5;
}
.criteria-level:last-child{border-bottom:0}
.criteria-level:hover,.criteria-level:focus-visible{background:#eff6fb}
.criteria-level.is-awarded{background:#e8f3f9;box-shadow:inset 3px 0 #3b7697;color:#1b3d56}
.criteria-level-mark{
  width:35px;height:31px;border:1px solid #d0dee8;border-radius:7px;
  display:grid;place-items:center;
  font-size:15px;font-weight:800;color:#254c66;background:#f8fbfd;
}
.criteria-level.is-awarded .criteria-level-mark{background:#285b7b;color:#fff;border-color:#285b7b}
.criteria-level-copy{min-width:0;overflow-wrap:anywhere}
.criteria-level-check{font-size:16px;font-weight:850;color:#2f769b;opacity:0;text-align:center}
.criteria-level.is-awarded .criteria-level-check{opacity:1}
.criteria-considerations{margin:12px 0 13px;border:1px solid #e0e8ee;border-radius:8px;background:#fafcfd}
.criteria-considerations summary{padding:10px 12px;cursor:pointer;color:#37607d;font-size:11px;font-weight:800}
.criteria-considerations ul{padding:0 16px 10px 28px;margin:0;color:#536f82;font-size:12px;line-height:1.6}
.criteria-considerations li{margin:5px 0}
.criteria-rationale{
  display:flex;flex-direction:column;gap:6px;
  font-weight:750;font-size:11px;color:#49677f;
}
.criteria-rationale textarea{
  width:100%;min-height:67px;resize:vertical;line-height:1.55;
  font-size:13px;padding:10px 12px;border:1px solid #cad9e4;background:#fbfdff;
}
.criteria-official-details{scroll-margin-top:12px;margin-top:18px;background:#f6fafc;border:1px solid #cfdeea;border-radius:11px;overflow:hidden}
.criteria-official-details>summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 15px;cursor:pointer;color:#255577;
  font-size:12px;line-height:1.3;list-style:none;
}
.criteria-official-details>summary::after{content:"⌄";font-size:17px;font-weight:800}
.criteria-official-details[open]>summary::after{content:"⌃"}
.criteria-official-details>summary::-webkit-details-marker{display:none}
.criteria-official-details>summary span{font-size:10px;font-weight:600;color:#7d94a6}
.criteria-official-details .criteria-source{
  padding:14px 15px;display:flex;flex-direction:column;align-items:stretch;gap:10px;
  background:white;border:0;border-top:1px solid #dce7ee;border-radius:0;margin:0;
}
.criteria-official-details .criteria-source p{font-size:12px;line-height:1.6;margin:0}
.criteria-official-details .criteria-source .btn{align-self:flex-start;max-width:100%}
.criteria-upload-label{font-size:11px;line-height:1.5;padding-top:10px}
.criteria-guide-preview{width:100%}
.criteria-guide-preview iframe{width:100%;height:min(55dvh,640px)}
.criteria-disclaimer{line-height:1.6;font-size:11px;margin:17px 0 0;color:#73889b}
.criteria-error{color:#9e4844}
.criteria-modal-footer{
  flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;
  gap:10px;padding:10px 22px;min-height:63px;
  background:#fff;border-top:1px solid #dae5ed;
}
.criteria-footer-score{display:flex;flex-direction:column;gap:3px}
.criteria-footer-score strong{font-size:16px;line-height:1.2;color:#234660;font-variant-numeric:tabular-nums}
.criteria-footer-score small{font-size:10px;color:#758b9c}
.criteria-modal-footer .btn{min-height:39px;min-width:100px;font-size:13px}
@media(max-width:720px){
  .criteria-modal{
    position:fixed;inset:0!important;margin:0!important;
    border-radius:0!important;width:100vw!important;max-width:none!important;
    height:100dvh!important;max-height:100dvh!important;
    padding:0!important;overflow:hidden;
  }
  .criteria-modal-header{
    padding:calc(11px + env(safe-area-inset-top,0px)) 13px 10px;
    gap:9px;align-items:flex-start;
  }
  .criteria-modal-header .eyebrow{font-size:9px;letter-spacing:.07em}
  .criteria-modal-header h2{font-size:19px;margin:5px 0 0}
  .criteria-modal-header p{font-size:11px;line-height:1.4;margin:5px 0 0}
  .criteria-close{flex-basis:32px;width:32px;height:32px}
  .criteria-jump-bar{
    grid-template-columns:repeat(5,minmax(0,1fr)) minmax(60px,1.35fr);
    gap:5px;padding:7px 9px;
  }
  .criteria-jump-label{display:none}
  .criteria-jump-bar button{padding:4px 3px;min-height:42px;border-radius:7px}
  .criteria-jump-bar button strong{font-size:15px}
  .criteria-jump-bar button small{font-size:9px}
  .criteria-jump-bar .criteria-guide-jump{font-size:10px;font-weight:750;padding:4px;max-width:none}
  .criteria-modal-body{padding:12px 11px 18px;scrollbar-gutter:auto}
  .criteria-intro{font-size:11.5px;line-height:1.48;margin-bottom:12px}
  .criteria-cards{gap:11px}
  .criteria-card{padding:11px;border-radius:10px}
  .criteria-card-heading{grid-template-columns:29px minmax(0,1fr) auto;gap:7px;margin-bottom:9px}
  .criteria-card-heading .mini-circle{width:27px;height:27px;font-size:13px}
  .criteria-card-title strong{font-size:13.5px}
  .criteria-card-title small{font-size:10px}
  .criteria-mark-select{font-size:9px}
  .criteria-mark-select select{min-width:89px;width:90px;font-size:12px;padding:7px 5px}
  .criteria-focus{font-size:11.5px;margin:6px 0 9px}
  .criteria-levels-head{grid-template-columns:31px minmax(0,1fr) 17px;gap:5px;padding:8px;font-size:9px}
  .criteria-level{grid-template-columns:31px minmax(0,1fr) 17px;gap:6px;padding:10px 8px;font-size:12px;line-height:1.45}
  .criteria-level-mark{width:29px;height:31px;font-size:13px}
  .criteria-level-check{font-size:14px}
  .criteria-rationale textarea{font-size:12px;min-height:60px}
  .criteria-official-details>summary{flex-wrap:wrap;gap:3px;padding:12px}
  .criteria-official-details>summary span{width:100%}
  .criteria-guide-preview iframe{height:min(52dvh,520px)}
  .criteria-modal-footer{
    padding:9px 13px calc(10px + env(safe-area-inset-bottom,0px));
    min-height:59px;
  }
  .criteria-footer-score strong{font-size:15px}
  .criteria-modal-footer .btn{min-height:38px;min-width:95px}
}
@media(max-height:650px){
  .criteria-modal-header p{display:none}
  .criteria-modal-header{padding-top:9px;padding-bottom:8px}
}


/* Pass 7: moderator-ready export preflight and exact-page PDF review. */
.moderation-preflight{margin-top:19px;padding:16px;border:1px solid #d4e1eb;border-radius:12px;background:#fafcfe}
.moderation-preflight-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.moderation-preflight-heading h3{font-size:17px;line-height:1.3;color:#243f59;margin:4px 0}
.moderation-preflight-heading p{font-size:11px;line-height:1.55;color:#6c8498;margin:0}
.preflight-badge{display:inline-flex;flex:none;padding:5px 9px;border-radius:7px;border:1px solid #d9e5ec;font-size:10px;font-weight:800;background:#eef4f8;color:#40667d}
.preflight-badge.has-issues{background:#fff4e5;border-color:#ebd2a9;color:#86581d}
.preflight-badge.has-errors{background:#fff0ed;border-color:#e6c1b9;color:#994535}
.preflight-list{padding:0;margin:13px 0;list-style:none;display:flex;flex-direction:column;gap:7px}
.preflight-list li{font-size:11px;line-height:1.55;padding:9px 11px 9px 33px;position:relative;background:#fff;border:1px solid #e1e9ee;border-radius:8px;overflow-wrap:anywhere}
.preflight-list li:before{content:"✓";position:absolute;left:11px;top:9px;font-weight:900;color:#2e7b65}
.preflight-list li.preflight-warning:before{content:"!";color:#94621b}
.preflight-list li.preflight-error:before{content:"×";color:#a43d36}
.preflight-list li.preflight-warning{background:#fffaf2;border-color:#efdfbc}
.preflight-list li.preflight-error{background:#fff6f4;border-color:#ecd1ca}
.review-preview{border:1px solid #ccdbe6;background:#eff3f6;border-radius:10px;margin:14px 0;overflow:hidden}
.review-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border-bottom:1px solid #d3dfe8;padding:10px 13px}
.review-preview-bar strong{font-size:12px;color:#2b516d}
.review-preview-controls{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#4b667a}
.review-preview-controls button{width:31px;height:31px;min-width:31px}
.review-preview-scroll{display:flex;justify-content:center;overflow:auto;max-height:min(70vh,780px);padding:18px;background:radial-gradient(circle at 1px 1px,#e1e7eb .8px,transparent .8px);background-size:13px 13px}
.review-preview-scroll canvas{display:block;width:auto;height:auto;max-width:100%;background:#fff;box-shadow:0 4px 18px #203d562a}
.review-preview-hint{font-size:11px;line-height:1.5;color:#6d8295;padding:0 12px 12px;margin:0;background:#fff}
.review-acknowledge{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;background:#fff;border:1px solid #d5e1e9;border-radius:9px;color:#3d5c73;font-size:11px;line-height:1.55;font-weight:700}
.review-acknowledge input{flex:none;width:17px;height:17px;min-width:17px;margin:1px 0 0;accent-color:#2b7295}
.review-export-notice{margin:10px 0 0;color:#607b90;line-height:1.45;font-size:11px}
.review-footer button:disabled,.moderation-preflight button:disabled{opacity:.52;cursor:not-allowed}
@media(max-width:700px){
 .review-modal{position:fixed;inset:0!important;margin:0!important;border-radius:0!important;width:100vw!important;height:100dvh!important;max-height:100dvh!important;max-width:none;display:flex;flex-direction:column;overflow:hidden}
 .review-modal:not([open]){display:none}
 .review-header{flex:none;padding:calc(11px + env(safe-area-inset-top,0px)) 14px 11px}
 .review-header h2{font-size:19px}
 .review-body{flex:1;min-height:0;max-height:none;overflow:auto;padding:13px 12px;-webkit-overflow-scrolling:touch}
 .review-footer{flex:none;padding:10px 12px calc(11px + env(safe-area-inset-bottom,0px));border-radius:0}
 .review-footer button{flex:1;min-width:0;font-size:11px;padding:10px 5px}
 .moderation-preflight{padding:11px}
 .moderation-preflight-heading h3{font-size:15px}
 .review-preview-bar{padding:8px}
 .review-preview-scroll{padding:8px;max-height:58dvh}
 .review-preview-controls{gap:3px}
}


/* Match on-page preview fonts to the embedded PDF Unicode fonts. */
@font-face{font-family:"IA Comment Sans";src:url("vendor/fonts/NotoSans-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"IA Comment Sans";src:url("vendor/fonts/NotoSans-Bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"IA Comment Math";src:url("vendor/fonts/NotoSansMath-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
.onpage-note-body,.onpage-note-header{font-family:"IA Comment Sans","IA Comment Math",sans-serif!important}


/* Exact-PDF preview magnification for checking small mathematical details. */
.review-preview-zoom{display:inline-flex;gap:5px;align-items:center;padding-left:7px;border-left:1px solid #dbe4eb}
.review-preview-zoom span{min-width:33px;text-align:center;font-size:10px;font-weight:800;color:#48677d}
.review-preview-bar{flex-wrap:wrap}
.review-preview-controls{flex-wrap:wrap}
.review-preview-scroll{display:block;overflow:auto}
.review-preview-scroll canvas{display:block;flex:none;max-width:none;margin-left:auto;margin-right:auto}
@media(max-width:700px){
 .review-preview-bar{gap:7px}
 .review-preview-bar strong{font-size:11px}
 .review-preview-controls{width:100%;justify-content:space-between}
 .review-preview-controls .icon-button{width:29px;height:29px;min-width:29px}
 .review-preview-zoom{gap:4px}
}


/* Pass 8 — frequent teacher marking actions and criterion evidence navigator. */
.efficiency-toolbar{
  display:flex;align-items:center;flex-wrap:wrap;gap:9px;
  padding:10px 14px;background:#f7fafc;border-bottom:1px solid #dce6ef;
  position:relative;z-index:5;
}
.efficiency-undo,.efficiency-quick{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.efficiency-quick{flex:1;min-width:225px}
.efficiency-action{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  white-space:nowrap;min-height:34px;padding:7px 10px;
  border:1px solid #cddde8;border-radius:8px;background:#fff;
  color:#345b78;font-size:11px;font-weight:750;
  transition:background .15s ease,border-color .15s ease;
}
.efficiency-action:hover:not(:disabled){background:#edf5fa;border-color:#97b9cf}
.efficiency-action:disabled{opacity:.46;cursor:not-allowed}
.efficiency-action.is-active{background:#e4f2f8;color:#235c7d;border-color:#79aac5}
.efficiency-action:focus-visible,.bank-quick-tab:focus-visible,.evidence-result:focus-visible{
  outline:2px solid #307ea4;outline-offset:2px;
}
.quick-stamp-picker-label{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:750;color:#637f92;min-width:0}
.quick-stamp-picker-label select{
  min-height:34px;max-width:248px;width:clamp(150px,22vw,250px);
  border:1px solid #ccdae5;border-radius:8px;background:#fff;
  padding:5px 8px;font-size:11px;color:#365670;
}
.evidence-button{background:#edf4f9;gap:8px;margin-left:auto}
.evidence-button .counter{font-variant-numeric:tabular-nums;background:#d4e7f2;color:#245b7b}
.bank-quick-heading{
  display:flex;justify-content:space-between;align-items:center;gap:7px;
  flex-wrap:wrap;margin:13px 0 7px;padding:8px 0 0;border-top:1px solid #e1e9ef;
}
.bank-quick-heading>span{font-size:10px;font-weight:800;color:#667d90}
.bank-quick-heading>div{display:flex;gap:5px;flex-wrap:wrap}
.bank-quick-tab{
  background:#f0f5f8;border:1px solid #d5e2eb;border-radius:7px;
  padding:6px 8px;font-size:10px;font-weight:800;color:#52718a;
}
.bank-quick-tab.is-active{background:#2c5878;color:#fff;border-color:#2c5878}
.favourite-button{font-size:11px!important;color:#55718a}
.favourite-button.is-favourite{background:#fff6de!important;color:#8c6b19!important;border-color:#e4cf8b!important}
.favourite-button span{font-size:10px}
.evidence-modal{
  box-sizing:border-box;
  display:flex;flex-direction:column;width:min(900px,calc(100vw - 28px));
  max-width:none;height:min(90dvh,920px);max-height:none;
  padding:0;border:0;border-radius:15px;overflow:hidden;
  box-shadow:0 20px 70px #102b4165;
}
.evidence-modal:not([open]){display:none}
.evidence-modal-header{
  flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;
  padding:19px 22px 14px;gap:15px;border-bottom:1px solid #dce7ee;
}
.evidence-modal-header h2{font-size:22px;line-height:1.2;margin:7px 0;color:#21415d}
.evidence-modal-header p{font-size:12px;line-height:1.5;color:#73889a;margin:5px 0 0}
.evidence-modal-summary{
  flex:0 0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;padding:10px 18px;background:#f6fafc;border-bottom:1px solid #dce7ee;
}
.evidence-summary-chip{
  display:flex;align-items:center;justify-content:center;gap:6px;
  border-radius:8px;padding:8px 5px;min-width:0;background:#fff;
  border:1px solid #d5e2eb;color:#3f657d;
}
.evidence-summary-chip strong{font:700 17px Georgia,serif}
.evidence-summary-chip small{font-size:11px;font-weight:800}
.evidence-summary-chip span{font-size:10px;color:#7b90a3}
.evidence-summary-chip:hover{background:#edf6fb;border-color:#a7c5da}
.evidence-modal-body{
  flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding:15px 21px 25px;scrollbar-width:thin;
}
.evidence-group{scroll-margin-top:14px;margin-bottom:16px;background:#fff;border:1px solid #dce5ec;border-radius:11px;overflow:hidden}
.evidence-group-head{
  display:flex;align-items:center;gap:11px;padding:12px 14px;
  border-bottom:1px solid #e6edf2;background:#f6fafc;
}
.evidence-group-head h3{font-size:13px;color:#2c4d68;line-height:1.35;margin:0}
.evidence-group-head small{display:block;font-size:10px;color:#738da1;margin-top:3px}
.evidence-group-head>div{min-width:0;flex:1}
.evidence-group-head>strong{font-size:11px;color:#567289;white-space:nowrap}
.evidence-result{
  display:flex;flex-direction:column;gap:8px;align-items:stretch;
  width:100%;padding:12px 14px;text-align:left;border:0;border-bottom:1px solid #e7eef3;
  background:#fff;color:#2b455b;
}
.evidence-result:last-child{border-bottom:0}
.evidence-result:hover{background:#f0f7fb}
.evidence-result-meta{display:flex;align-items:center;gap:10px;font-size:11px;color:#6d8498}
.evidence-result-meta strong{color:#365e7a}
.evidence-result-text{font-size:12px;line-height:1.6;color:#2f4b60;white-space:pre-wrap;overflow-wrap:anywhere}
.evidence-result-visit{font-size:10px;font-weight:800;color:#3b7b9e}
.evidence-no-comments{color:#8395a4;font-size:12px;padding:18px;margin:0}
.evidence-modal-footer{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-top:1px solid #dbe6ed;padding:12px 20px;background:#fff;
  color:#687e91;font-size:12px;
}
@media(max-width:850px){
 .efficiency-toolbar{gap:7px;padding:9px 12px}
 .efficiency-quick{order:3;width:100%;flex:auto}
 .efficiency-undo{order:1}
 .evidence-button{order:2;margin-left:auto}
 .quick-stamp-picker-label{flex:1}
 .quick-stamp-picker-label select{width:100%;max-width:400px}
 .bank-quick-heading{flex-wrap:wrap}
}
@media(max-width:650px){
 .efficiency-toolbar{gap:7px 5px;padding:7px 9px;position:sticky;top:0;z-index:10}
 .efficiency-action{min-height:33px;padding:6px 8px;font-size:10px}
 .efficiency-action span{font-size:10px}
 .quick-stamp-picker-label{flex:1;min-width:135px;font-size:0}
 .quick-stamp-picker-label select{width:100%;max-width:none;min-width:0;font-size:11px}
 .efficiency-quick{gap:5px}
 .evidence-modal{position:fixed;inset:0!important;margin:0!important;width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}
 .evidence-modal-header{padding:calc(12px + env(safe-area-inset-top,0px)) 12px 10px}
 .evidence-modal-header h2{font-size:18px}
 .evidence-modal-header p{font-size:11px}
 .evidence-modal-summary{padding:8px 9px;gap:4px}
 .evidence-summary-chip{flex-direction:column;gap:1px;padding:6px 2px}
 .evidence-summary-chip strong{font-size:16px}
 .evidence-summary-chip small{font-size:10px}
 .evidence-summary-chip span{font-size:9px}
 .evidence-modal-body{padding:10px}
 .evidence-result{padding:11px}
 .evidence-group-head{padding:11px}
 .evidence-modal-footer{padding:10px 12px calc(11px + env(safe-area-inset-bottom,0px))}
}


/* Pass 9 — cohort IA project dashboard. Only anonymous assessment IDs displayed. */
.local-save-state{display:inline-flex;gap:5px;align-items:center;max-width:180px;
  font-size:10px;font-weight:750;color:#5f8091;white-space:nowrap}
.local-save-state::before{content:"";width:7px;height:7px;border-radius:50%;background:#91b7a5;flex:none}
.local-save-state[data-save="pending"]::before{background:#dea65b}
.local-save-state[data-save="error"]{color:#a3463e}
.local-save-state[data-save="error"]::before{background:#bf4c42}
.local-save-state[data-save="unavailable"]::before{background:#bd8e40}
.project-dashboard-trigger{display:inline-flex!important;gap:8px;align-items:center}
.project-dashboard-trigger span{background:#e1eff7;color:#2c617f;border-radius:20px;
  padding:3px 6px;font-weight:800;font-size:10px;min-width:16px}
.projects-modal,.clear-projects-modal{
  width:min(1000px,calc(100vw - 28px));max-width:none;max-height:none;
  height:min(92dvh,950px);margin:auto;padding:0;border:0;border-radius:15px;
  display:flex;flex-direction:column;overflow:hidden;box-shadow:0 22px 70px #132e4360;
}
.projects-modal:not([open]),.clear-projects-modal:not([open]){display:none}
.projects-modal-header{
  display:flex;flex:none;gap:14px;align-items:flex-start;justify-content:space-between;
  padding:21px 25px 16px;border-bottom:1px solid #dce6ee;background:#fff;
}
.projects-modal-header>div{flex:1;min-width:0}
.projects-modal-header h2{color:#1d415c;font-size:22px;line-height:1.25;margin:6px 0}
.projects-modal-header p{font-size:12px;line-height:1.55;color:#718799;max-width:760px;margin:4px 0 0}
.projects-storage-warning{background:#fff1e9;color:#984e35;padding:10px 22px;
  border-bottom:1px solid #e9cdbf;font-size:12px;line-height:1.5}
.projects-stat-strip{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  padding:11px 24px;gap:10px;background:#f6fafc;border-bottom:1px solid #dce6ed;
}
.projects-stat{display:flex;flex-direction:column;gap:3px;padding:8px 12px;
  border:1px solid #dce6ed;border-radius:9px;background:#fff}
.projects-stat strong{font-size:18px;font-variant-numeric:tabular-nums;color:#244f6c}
.projects-stat small{font-size:10px;font-weight:650;color:#718a9d}
.projects-search-bar{display:grid;grid-template-columns:1fr minmax(130px,180px);
  gap:9px;padding:11px 24px;border-bottom:1px solid #e0eaf0}
.projects-search-bar input,.projects-search-bar select{width:100%;min-width:0;padding:10px;
  border:1px solid #cbdce6;border-radius:9px;background:#fff;font-size:12px;color:#244860}
.projects-modal-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;
  padding:13px 23px 22px;-webkit-overflow-scrolling:touch}
.projects-empty{padding:40px 15px;margin:0;text-align:center;color:#7890a3;font-size:12px;line-height:1.7}
.project-card{
  border:1px solid #d9e5ec;border-radius:11px;background:#fff;
  padding:15px;margin-bottom:11px;box-shadow:0 1px 3px #24445c0e;
}
.project-card.is-current{border-color:#8ab8d0;background:#f7fbfe}
.project-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.project-card-heading strong{display:block;font-size:15px;line-height:1.4;color:#1e4865;overflow-wrap:anywhere}
.project-card-heading p{font-size:11px;color:#72889a;margin:4px 0 0;overflow-wrap:anywhere}
.project-card-heading .project-current-pill{display:inline-flex;align-items:center;padding:4px 7px;
  background:#e1f1f8;border-radius:6px;font-size:10px;color:#286482;font-weight:800;white-space:nowrap}
.project-card-details{display:flex;gap:8px 16px;flex-wrap:wrap;align-items:center;
  margin:12px 0 10px;color:#506e84;font-size:11px;line-height:1.45}
.project-card-details span{white-space:nowrap}
.project-progress-row{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:750;color:#3c647f}
.project-progress-track{height:7px;max-width:320px;flex:1;background:#e5edf3;border-radius:99px;overflow:hidden}
.project-progress-track span{display:block;height:100%;background:#387797;border-radius:99px}
.project-progress-row small{font-size:10px;color:#6d8799;white-space:nowrap}
.project-card-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:9px;
  margin-top:12px;padding-top:11px;border-top:1px solid #edf2f5}
.project-card-last{font-size:10px;color:#778fa1;line-height:1.4}
.project-card-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.project-card-actions button{padding:8px 10px;min-height:35px;font-size:11px}
.projects-danger{background:#fff1ee!important;color:#a34339!important;
  border:1px solid #eac9c5!important;font-size:11px!important}
.projects-danger:hover{background:#fce3de!important}
.projects-modal-footer{flex:none;padding:13px 23px;border-top:1px solid #dbe6ef;background:#fff}
.projects-data-warning{font-size:10.5px;line-height:1.5;color:#7b8d9b;margin:0 0 11px}
.projects-footer-actions{display:flex;gap:9px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.projects-footer-actions button{min-height:36px;padding:9px 11px}
.clear-projects-modal{height:auto;max-width:520px}
.clear-projects-body{padding:19px 23px;overflow:auto;display:flex;flex-direction:column;gap:11px}
.clear-projects-body p{margin:0;color:#47677d;font-size:12px;line-height:1.65}
.clear-preferences-option{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.55;
  border-radius:9px;background:#f3f7fa;padding:11px;color:#355b72}
.clear-preferences-option input{flex:none;width:17px;height:17px;accent-color:#aa5144;margin:2px 0 0}
.clear-confirm-label{font-size:12px;font-weight:750;color:#355b72}
.clear-confirm-label input{display:block;width:100%;padding:11px;margin-top:7px;
  border-radius:9px;border:1px solid #cedae5;font-size:14px}
#clearProjectsNotice{color:#9c453c;font-size:11px;line-height:1.5}
@media(max-width:790px){
  .local-save-state{order:5;width:100%;max-width:none}
  .projects-stat-strip{padding:10px 12px;gap:6px}
  .projects-search-bar{padding:9px 12px}
}
@media(max-width:650px){
  .projects-modal{
    position:fixed;inset:0!important;margin:0!important;border-radius:0!important;
    width:100vw!important;height:100dvh!important;max-height:100dvh!important;
  }
  .projects-modal-header{padding:calc(12px + env(safe-area-inset-top,0px)) 12px 10px;gap:8px}
  .projects-modal-header h2{font-size:19px}
  .projects-modal-header p{font-size:11px;line-height:1.4}
  .projects-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:7px 10px}
  .projects-stat{padding:6px 10px}
  .projects-stat strong{font-size:16px}
  .projects-stat small{font-size:9px}
  .projects-search-bar{grid-template-columns:1fr minmax(94px,110px);gap:5px;padding:8px 10px}
  .projects-search-bar input,.projects-search-bar select{font-size:11px;padding:9px 6px}
  .projects-modal-body{padding:9px}
  .project-card{padding:11px}
  .project-card-heading strong{font-size:13px}
  .project-card-details{margin:8px 0;font-size:10px;gap:5px 10px}
  .project-card-footer{align-items:flex-start}
  .project-card-last{width:100%}
  .project-card-actions{justify-content:flex-start;width:100%}
  .project-card-actions button{flex:1;min-width:0}
  .projects-modal-footer{padding:9px 10px calc(10px + env(safe-area-inset-bottom,0px))}
  .projects-data-warning{font-size:9px;margin-bottom:8px}
  .projects-footer-actions{justify-content:stretch;gap:5px}
  .projects-footer-actions button{flex:1;padding:8px 5px;font-size:10px;line-height:1.25}
  .clear-projects-modal{width:calc(100vw - 22px);max-height:90dvh}
  .clear-projects-body{padding:13px}
}


/* First draft feedback workflow: an intentional peer to final assessment. */
.review-mode-bar{display:flex;align-items:center;gap:16px;padding:9px 25px;background:#fff;border-bottom:1px solid var(--border);}
.review-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(175px,1fr));gap:6px;flex:0 1 605px;min-width:0;padding:3px;background:#edf2f6;border-radius:11px}
.review-mode-tab{border:1px solid transparent;background:transparent;border-radius:8px;color:#6a7e90;text-align:left;padding:9px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.review-mode-tab strong{font-size:12px;color:inherit;line-height:1.25}
.review-mode-tab span{font-size:10px;color:inherit;line-height:1.35;opacity:.85}
.review-mode-tab:hover{background:#f9fbfd}
.review-mode-tab.is-selected{background:#fff;color:#2b516e;border-color:#cedde7;box-shadow:0 1px 4px #304f601c}
.review-mode-bar p{font-size:11px;color:#708499;line-height:1.5;max-width:450px;margin:0}
body.feedback-mode .review-mode-tab.is-selected{color:#225b55;border-color:#b4d0ca}
body.feedback-mode .score-strip,body.feedback-mode .total-card,body.feedback-mode #openCriteria{display:none!important}
body.feedback-mode .assessment-bar{min-height:0}
body.feedback-mode .assessment-fields{min-width:0;flex:1 1 100%;max-width:740px}
body.feedback-mode .assessment-fields label{flex:1 1 0}
body.feedback-mode .workspace{min-height:calc(100vh - 232px)}
body.feedback-mode .review-note{display:none}
body.feedback-mode .review-scores{display:none}
body.feedback-mode #openEvidence{background:#edf7f4}
.feedback-priority-field{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:9px 0 5px;color:#526c7d;font-size:11px;font-weight:750}
.feedback-priority-field select{font-size:11px;padding:7px 9px;border-color:#d2e0df;max-width:190px}
.feedback-review{margin-top:10px}
.feedback-review-heading{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #dce9e6;padding-bottom:14px;margin-bottom:14px}
.feedback-review-heading h3{font-size:17px;line-height:1.3;letter-spacing:-.018em;color:#214c4a;margin:6px 0}
.feedback-review-heading p{font-size:11px;color:#68817b;line-height:1.5;margin:0;max-width:580px}
.feedback-progress{flex:none;border:1px solid #c3dbd3;background:#edf7f3;color:#356a5e;font-weight:750;font-size:10px;border-radius:99px;padding:6px 10px}
.feedback-strengths{background:#f3faf8;border:1px solid #d9eae4;border-radius:10px;padding:14px 16px;margin-bottom:17px}
.feedback-strengths h4{font-size:12px;color:#28584e;margin:0 0 10px}
.feedback-strengths p{margin:0;padding:7px 0;border-top:1px solid #deebe7;color:#405f59;font-size:11.5px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.feedback-strengths p strong{color:#2a594d;margin-right:5px;white-space:nowrap}
.feedback-muted{font-size:11px;color:#8193a0;line-height:1.65;margin:10px 0 17px}
.feedback-action-count{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}
.feedback-action-count strong{font-size:14px;color:#273e50}
.feedback-action-count span{font-weight:750;font-size:10px;color:#74899b}
.feedback-tasks{display:flex;flex-direction:column;gap:8px}
.feedback-task-group{font-size:11px;letter-spacing:.02em;text-transform:uppercase;color:#537884;margin:14px 0 2px;font-weight:800}
.feedback-task-group:first-child{margin-top:4px}
.feedback-task{display:flex;align-items:flex-start;gap:12px;padding:11px 12px;border:1px solid #dae5eb;border-radius:9px;background:#fff;cursor:pointer}
.feedback-task:hover{background:#f9fcfc}
.feedback-task.is-complete{border-color:#b9d6c9;background:#f6faf8}
.feedback-task input[type=checkbox]{width:18px;height:18px;min-width:18px;margin:3px 0 0;padding:0;accent-color:#47796a}
.feedback-task-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px}
.feedback-task-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:10px;color:#768c9c}
.feedback-task-meta strong{font-size:12px;color:#284f61}
.feedback-task-meta small{font-size:10px;color:#748796}
.feedback-task-text{font-size:12px;line-height:1.58;white-space:pre-wrap;overflow-wrap:anywhere;color:#344c5d}
.feedback-task.is-complete .feedback-task-text{color:#758d86}
.feedback-review-actions{display:flex;flex-wrap:wrap;gap:9px;padding:14px 0;margin-top:10px;border-top:1px solid #dce6ec}
.feedback-integrity-note{padding:11px 13px;background:#f4f7fa;border-left:3px solid #bed2d9;border-radius:0 8px 8px 0;color:#607789;font-size:11px;line-height:1.6;margin:0 0 14px}
.feedback-integrity-note strong{color:#405c6d}
@media(max-width:1080px){
  .review-mode-bar{padding:8px 14px}
  .review-mode-bar p{font-size:10px}
}
@media(max-width:860px){
  .review-mode-bar{align-items:stretch;flex-direction:column;gap:6px}
  .review-mode-tabs{flex:auto;width:100%}
  .review-mode-bar p{max-width:none;margin:0 2px}
}
@media(max-width:540px){
  .review-mode-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .review-mode-tab{padding:9px 8px}
  .review-mode-tab strong{font-size:11px}
  .review-mode-tab span{font-size:9px}
  .feedback-review-heading{flex-direction:column;gap:8px}
  .feedback-task{gap:9px;padding:10px 9px}
  .feedback-review-actions .btn{white-space:normal;flex:1 1 40%;font-size:10px}
  body.feedback-mode .assessment-fields{flex-wrap:wrap}
  body.feedback-mode .assessment-fields label{min-width:85px}
}
@media print{
  body.feedback-mode{background:#fff!important;color:#1d2831}
  body.feedback-mode .app,
  body.feedback-mode dialog:not(#reviewDialog),
  body.feedback-mode #toast{display:none!important}
  body.feedback-mode #reviewDialog[open]{display:block!important;position:static!important;inset:auto!important;transform:none!important;margin:0!important;max-width:none!important;width:100%!important;max-height:none!important;height:auto!important;padding:0!important;border:0!important;box-shadow:none!important;overflow:visible!important}
  body.feedback-mode #reviewDialog .review-header,
  body.feedback-mode #reviewDialog .review-status,
  body.feedback-mode #reviewDialog #reviewScores,
  body.feedback-mode #reviewDialog #reviewMarkingNote,
  body.feedback-mode #reviewDialog .moderation-preflight,
  body.feedback-mode #reviewDialog .review-footer,
  body.feedback-mode #feedbackReviewContent .feedback-review-actions,
  body.feedback-mode #feedbackReviewContent .feedback-integrity-note{display:none!important}
  body.feedback-mode #reviewDialog .review-body{height:auto!important;max-height:none!important;overflow:visible!important;padding:0!important}
  body.feedback-mode #feedbackReviewContent{display:block!important}
  body.feedback-mode .feedback-strengths,
  body.feedback-mode .feedback-task{break-inside:avoid;box-shadow:none}
  body.feedback-mode .feedback-task input[type=checkbox]{appearance:auto}
  body.feedback-mode .feedback-task-group{break-after:avoid}
  @page{margin:16mm}
}
