:root{font-family:Inter,Segoe UI,system-ui,sans-serif;color:#19342d;background:#f4f7f5;font-synthesis:none;--green:#156c51;--border:#d7e2dc}*{box-sizing:border-box}body{margin:0}header{background:#fff;border-bottom:1px solid var(--border);padding:20px max(24px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;gap:20px;align-items:center}.brand{display:flex;align-items:center;gap:12px;color:var(--green);font-size:28px;font-weight:800;text-decoration:none}.brand>span{font-size:20px}.brand small{display:block;color:#677c73;font-size:11px;font-weight:500;letter-spacing:.03em}nav{display:flex;gap:8px;flex-wrap:wrap}main{max-width:1180px;margin:42px auto 80px;padding:0 24px;min-height:65vh}.narrow{max-width:470px;margin:auto}.reading{max-width:850px;margin:auto}.eyebrow{font-size:11px;letter-spacing:.15em;color:var(--green);font-weight:750}h1{font-size:clamp(28px,4vw,39px);line-height:1.2;letter-spacing:-.035em;margin:12px 0 18px}h2{font-size:20px;letter-spacing:-.02em;margin:0 0 18px}h3{font-size:18px;line-height:1.5;margin:0 0 12px}.muted,small{color:#62776e;line-height:1.6}.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:24px;margin:20px 0;box-shadow:0 4px 15px #173d2504}.columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.columns>.card{margin-top:0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.cards .card{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.cards button{margin-top:auto}.cards h2{margin:0}label{display:block;font-size:14px;font-weight:600;margin:16px 0}input,select,textarea{display:block;font:inherit;color:inherit;border:1px solid #b9ccc1;background:#fff;border-radius:7px;padding:11px;width:100%;margin-top:7px}textarea{resize:vertical;line-height:1.5}input[type=checkbox],input[type=radio]{width:auto;display:inline-block;margin:0 10px 0 0;accent-color:var(--green)}.check{display:flex;align-items:center}button{font:inherit;font-size:14px;font-weight:650;background:var(--green);color:#fff;padding:11px 17px;border:1px solid transparent;border-radius:7px;cursor:pointer;transition:background .15s}button:hover{background:#0d523c}button:disabled{opacity:.55;cursor:wait}.quiet{color:var(--green);background:transparent;border-color:var(--border)}.quiet:hover{background:#e8f1ec}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 0}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.tabs .active{background:var(--green);color:#fff}.schoolLabel{max-width:430px}.badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--green);background:#e5f2eb;padding:6px 8px;border-radius:4px}.completion{background:#e1f3e9;border:1px solid #a0d3b8;border-radius:10px;padding:20px;font-weight:650;line-height:1.8}.instructions{white-space:pre-wrap;line-height:1.7}.question{padding:24px;background:white;border:1px solid var(--border);border-radius:12px;margin:20px 0}.question legend{font-size:17px;font-weight:650;white-space:pre-wrap;line-height:1.6;padding:0 8px}.question fieldset{border:0;padding:0}.option{padding:12px;background:#f8faf9;border:1px solid var(--border);border-radius:7px;display:flex;align-items:flex-start;line-height:1.5;font-weight:400}.option:has(input:checked){border-color:var(--green);background:#eaf5ee}.option input{margin-top:4px}.filters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tableWrap{overflow:auto;margin-top:18px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:#527064;font-size:11px;letter-spacing:.04em;text-transform:uppercase;background:#f1f6f2}td,th{border-bottom:1px solid var(--border);padding:13px;white-space:nowrap}td button{font-size:12px;padding:6px 10px}#notice{border:1px solid #a8cbb7;background:#e5f2ea;padding:14px 18px;border-radius:9px;margin-bottom:24px;white-space:pre-wrap}#notice.error{color:#872b25;background:#fff1ee;border-color:#e5b8b1}#sync{font-size:13px;color:#526e60}.editorQuestion{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.optionRow{display:grid;grid-template-columns:70px 1fr auto;gap:8px;align-items:center}.optionRow input{margin:4px 0}.optionRow button{padding:8px}.publication{border-bottom:1px solid var(--border);padding:20px 0}.publication .filters{grid-template-columns:1fr 1fr}details{margin-top:24px}summary{cursor:pointer;color:var(--green);font-weight:600}footer{border-top:1px solid var(--border);padding:25px max(24px,calc((100vw - 1132px)/2));font-size:12px;color:#73867b;display:flex;justify-content:space-between;gap:20px}#generatedCodes{margin-top:16px;overflow:auto}.code{font-family:monospace;font-size:22px;letter-spacing:.12em}[hidden]{display:none!important}:focus-visible{outline:3px solid #daac38;outline-offset:3px}@media(max-width:760px){header{align-items:flex-start;padding:18px;flex-direction:column}main{padding:0 16px;margin-top:28px}.columns,.filters{grid-template-columns:1fr}.card{padding:18px}.tabs{gap:5px}.tabs button{padding:10px}.publication .filters{grid-template-columns:1fr}footer span{display:none}}
dialog{border:1px solid var(--border);border-radius:14px;padding:28px;max-width:480px;width:calc(100% - 32px);color:#19342d}dialog::backdrop{background:#173e30aa}dialog p{line-height:1.7}

.launch { max-width: 900px; margin-inline: auto; }
.launch h1 { color: #164830; max-width: 25ch; }
.launch-message { padding: 1rem 1.25rem; background: #eaf5ec; color: #164830; border-left: 4px solid #2c7850; border-radius: .35rem; }
.launch-message time { font-weight: 700; }
#entry #classForm, #entry #studentForm { display: none; }

.activity-counts { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; }

#notice {
  position: fixed; inset: 1rem 1rem auto auto; margin: 0; z-index: 1000;
  width: min(24rem, calc(100vw - 2rem)); max-height: min(12rem, 40vh);
  overflow: auto; color: #164830; box-shadow: 0 6px 24px #173e3033;
}
.admin-modal { max-height: calc(100dvh - 2rem); overflow: auto; }
.admin-modal.wide { max-width: 850px; }

.rich-content { white-space: pre-wrap; overflow-wrap: anywhere; }
.rich-content img { display: block; max-width: 100%; height: auto; margin: .75rem 0; }
.rich-content a { color: #215c3e; text-decoration: underline; }
.rich-content .tableWrap { margin: .75rem 0; }
.rich-box { padding: .8rem 1rem; margin: .75rem 0; background: #eaf5ec; border-left: 3px solid #2c7850; }
