:root{--green:#245c49;--ink:#193d31;--paper:#f4f7f1;--line:#d6ddd7;--muted:#607269}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:Jua,system-ui,sans-serif}button,input,textarea{font:inherit}button,a{touch-action:manipulation}button{min-height:46px;padding:10px 17px;border:1px solid transparent;border-radius:13px;background:var(--green-soft);color:var(--green);font-size:1rem;cursor:pointer}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #edb13b;outline-offset:3px}.primary{background:var(--green);color:white}.danger{background:#fae5e0;color:#8a4035}.app{width:min(1360px,100%);margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:22px}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,4vw,3.1rem);font-weight:400}h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400}h3{font-weight:400;font-size:1.5rem}nav{display:flex;flex-wrap:wrap;gap:8px}nav a{padding:12px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--green);text-decoration:none;white-space:nowrap}nav a[aria-current]{background:var(--green);color:white}.card{padding:clamp(18px,3vw,30px);margin:18px 0;border:1px solid var(--line);border-radius:24px;background:white;box-shadow:0 10px 28px rgba(var(--accent-deep-rgb),.03)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.eyebrow{display:block;color:var(--muted);font-size:.9rem;margin-bottom:6px}.badge{display:inline-flex;align-items:center;padding:8px 13px;background:var(--green-soft);color:var(--green);border-radius:999px;font-size:1rem}.help,.instructions,.privacy,.notice,.submission-content,.file-list,.receipt p{font-family:system-ui,sans-serif;line-height:1.65}.help{color:var(--muted);margin-top:10px;font-size:1rem}.small{font-size:.875rem}.optional{font-size:.875rem;font-weight:400;color:var(--muted)}form{display:grid;gap:18px;margin:20px 0}form>button{justify-self:start}label{display:grid;gap:8px;font-size:1.1rem}input,textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:12px;background:white;color:var(--ink);font-size:1.1rem}textarea{resize:vertical;font-family:system-ui,sans-serif;line-height:1.5}.history{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.history button{display:grid;gap:8px;text-align:left;min-width:210px;max-width:100%;background:var(--accent-tint);border-color:var(--line);overflow-wrap:anywhere}.history button[aria-pressed=true]{border:2px solid var(--green);background:var(--green-soft)}.history small{font-size:.875rem;color:var(--muted)}.room-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:20px}.room-head h2,.instructions{overflow-wrap:anywhere}.instructions{white-space:pre-wrap;margin:12px 0;font-size:1.05rem}.share{display:grid;justify-items:center;gap:10px;max-width:270px}.share .help{word-break:break-all;text-align:center}.qr-button{display:grid;justify-items:center;gap:8px;background:white;border-color:var(--line);padding:12px}.qr-button svg{display:block;width:180px;height:180px}.count{display:flex;align-items:baseline;gap:10px}.count strong{font-size:3.5rem;font-weight:400}.count span{font-size:1.2rem}.actions{display:flex;flex-wrap:wrap;gap:8px}.submissions{display:grid;gap:14px;margin-top:18px}.submission{border:1px solid var(--line);border-radius:18px;overflow:hidden}.submission summary{cursor:pointer;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px;background:var(--accent-tint)}.submission summary::before{content:'▸';color:var(--green)}.submission[open] summary::before{content:'▾'}.submission summary strong{font-size:1.5rem;font-weight:400;overflow-wrap:anywhere}.submission time{margin-left:auto;font-family:system-ui,sans-serif;color:var(--muted);font-size:.95rem}.submission-body{padding:20px}.submission-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1.1rem}.file-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.file-list button{background:white;border-color:var(--line);overflow-wrap:anywhere;text-align:left;max-width:100%}.empty{text-align:center;padding:50px 12px;border:2px dashed var(--line);border-radius:18px;color:var(--muted);font-size:1.15rem}.notice{padding:12px 16px;background:#fff2cb;border-radius:12px;margin:12px 0}.notice:empty{display:none}.student-card{max-width:820px;margin:20px auto}.privacy{padding:14px 18px;border-radius:14px;background:var(--green-soft);margin:18px 0;font-size:1rem}.submit{justify-self:stretch;min-height:58px;font-size:1.3rem}.file-field{padding:16px;border:2px dashed var(--accent-border);border-radius:15px}.file-field input{padding:0;border:0}.receipt{text-align:center;padding:35px 16px;background:var(--accent-tint);border-radius:18px}.receipt h3{font-size:2rem;margin-bottom:15px}body.student header nav{display:none}dialog{width:min(1000px,calc(100% - 24px));max-height:95dvh;border:0;border-radius:22px;padding:24px;color:var(--ink);text-align:center}dialog::backdrop{background:rgba(var(--accent-deep-rgb),.67)}#largeQr{width:min(var(--qr-size,440px),100%);margin:18px auto;background:#fff}#largeQr svg{display:block;width:100%;height:auto}.qr-controls{display:flex;align-items:center;justify-content:center;gap:16px}.qr-controls button{font-size:1.6rem;min-width:54px}#qrSize{min-width:60px}#qrAssignmentTitle{margin-top:12px;font-size:1.5rem;overflow-wrap:anywhere}@media(max-width:700px){.app{padding:12px}header{align-items:flex-start}.room-head{grid-template-columns:1fr}.share{max-width:100%;justify-self:center}.history button{width:100%}.submission time{margin-left:0;width:100%}.section-head .actions{width:100%}.student-card{margin:12px 0}nav a{font-size:.9rem;padding:10px}}
/* QR visitors do not see teacher navigation, even before the page script loads. */
.student-route .site-nav,.student-route #teacherView{display:none!important}
.feedback-form{display:grid;gap:10px;margin-top:22px;padding:18px;border-radius:16px;background:var(--accent-tint)}
.feedback-form textarea{min-height:120px;font-family:system-ui,sans-serif;font-size:1.05rem;line-height:1.6}
.feedback-form label{font-size:1.2rem}.feedback-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.feedback-actions button{min-height:44px}.feedback-status{font-size:.9rem;line-height:1.5;color:var(--green)}
.student-feedback{text-align:left;margin-top:24px;padding:20px;background:white;border:1px solid var(--line);border-radius:16px}.student-feedback h3{font-size:1.4rem}.student-feedback>p:first-of-type{white-space:pre-wrap;overflow-wrap:anywhere;font-family:system-ui,sans-serif;font-size:1.1rem;line-height:1.7}
/* Optional, teacher-only connection to student assessment records. */
.receipt-attachments{text-align:left;margin:22px 0;padding:20px;background:white;border:1px solid var(--line);border-radius:16px}.receipt-attachments h3{font-size:1.4rem;margin-bottom:8px}.receipt-files{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px;margin-top:16px}.receipt-file{min-width:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--accent-tint)}.receipt-file h4{margin:0;overflow-wrap:anywhere;font:600 1rem/1.5 system-ui,sans-serif}.receipt-file .actions{margin-top:12px}.receipt-photo{display:grid;gap:8px;width:100%;margin-top:12px;padding:8px;background:white;border-color:var(--line)}.receipt-photo img{display:block;width:100%;height:190px;object-fit:contain}.receipt-photo span{font-size:.875rem}.receipt-file .help:empty{display:none}#ownFilePreviewDialog{width:min(1040px,calc(100% - 24px))}#ownFilePreviewTitle{font-size:1.4rem;overflow-wrap:anywhere}#ownFilePreviewImage{display:block;max-width:100%;max-height:75dvh;object-fit:contain;margin:18px auto 0}
.assessment-opt-in{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid var(--accent-border);border-radius:12px;background:var(--accent-tint)}.assessment-opt-in input{width:22px;height:22px;min-height:0;flex-shrink:0}.assessment-link-fields{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px}.assessment-link-fields select,#assessmentLinkDialog select{font:inherit;padding:12px;min-height:46px;width:100%;border:1px solid var(--line);border-radius:10px;background:white}.assessment-connection{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;padding:14px;background:var(--accent-tint);border-radius:14px}.assessment-connection .help{flex:1}.assessment-connection a{color:var(--green)}#assessmentLinkDialog{width:min(620px,calc(100% - 24px));max-height:90dvh;overflow:auto}#assessmentLinkForm{display:grid;gap:16px}.assessment-match{font-size:.875rem;color:var(--green)}.assessment-match.needs-review{color:#8a5430}
.deadline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:18px 0}.deadline-form label{flex:1;min-width:200px}#ownAssignmentDialog{width:min(680px,calc(100% - 24px));max-height:92dvh;overflow:auto}#ownAssignmentForm{display:grid;gap:16px}#ownAssignmentFiles{display:grid;gap:10px}#ownAssignmentFiles label{display:flex;align-items:center;gap:10px;overflow-wrap:anywhere}#ownAssignmentFiles input{width:20px;height:20px;min-height:0;flex-shrink:0}

.assignment-options{padding:16px;margin:16px 0;border:1px solid #bdd2c5;border-radius:12px;background:#f4f9f6}.assignment-options label{display:flex;flex-direction:row;align-items:center;gap:10px;margin:10px 0}.assignment-options input[type=checkbox]{width:20px;height:20px;flex:0 0 20px}#editorSettingsForm{margin:18px 0;padding-bottom:18px;border-bottom:1px solid #c9d8cf}

.teacher-file{display:grid;gap:10px;width:min(360px,100%);min-width:0}.teacher-file .receipt-photo{margin:0}.teacher-file .receipt-photo img{height:240px}.teacher-file>button{overflow-wrap:anywhere;white-space:normal}
