:root{--ink:#162e2b;--green:#155b4e;--muted:#657974;--line:#dce5df}*{box-sizing:border-box}body{margin:0;background:#f4f6f0;color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}header{max-width:1200px;margin:auto;padding:30px 40px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;font-size:12px;font-weight:750;letter-spacing:1.3px}.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:1.5px}.logo{font-size:32px;letter-spacing:-3px;background:var(--green);color:white;width:58px;height:58px;border-radius:18px;text-align:center;line-height:54px}.logo span{color:#dbec83}button,input,select{font:inherit}button,a.ghost{cursor:pointer}button:disabled{opacity:.5;cursor:wait}.ghost{padding:10px 15px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--green);text-decoration:none;font-size:13px}.ghost:hover{background:#e7eee5}main{max-width:1120px;margin:35px auto 80px;display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:0 40px;align-items:start}.intro{padding-top:45px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.8px;color:var(--green)}h1{font-size:clamp(36px,4.2vw,56px);line-height:1.16;letter-spacing:-2.5px;font-weight:650;margin:25px 0}h1 em{font-style:normal;color:var(--green)}.intro p{font-size:16px;color:var(--muted);max-width:370px}.date{display:flex;gap:16px;align-items:center;margin-top:40px}.date small{display:block;color:var(--muted);font-size:11px}.calendar{border:1px solid var(--line);background:white;border-radius:12px;text-align:center;width:60px;font-size:24px;font-weight:700;padding:5px}.calendar small{font-size:9px;letter-spacing:2px}.trust{margin-top:25px;font-size:11px;color:var(--muted)}.card{background:white;border:1px solid #e3e9df;box-shadow:0 18px 50px #243f2910;border-radius:24px;padding:32px}.cardtop{display:flex;align-items:center;justify-content:space-between;gap:10px}.pill{font-size:9px;background:#edf3dc;color:#52622a;padding:5px 9px;border-radius:20px;font-weight:700}h2{font-size:26px;letter-spacing:-.7px;margin:18px 0 4px}.muted{color:var(--muted);font-size:13px;margin:4px 0 22px}label{display:block;font-weight:650;font-size:12px;margin:18px 0 0}input,select{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fbfcf9;color:var(--ink);margin-top:7px;outline:none}input:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #155b4e13}label small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:5px}.primary{width:100%;background:var(--green);border:0;color:white;border-radius:12px;padding:15px 18px;margin-top:22px;font-weight:650;display:flex;justify-content:space-between}.primary:hover{background:#10483e}.textbutton{background:none;border:none;padding:10px 0;color:var(--green);font-size:12px;text-align:left}.consent{display:flex;gap:10px;font-weight:400;font-size:11px;align-items:center}.consent input{width:auto;margin:0;accent-color:var(--green)}.privacy{border-top:1px solid var(--line);padding-top:18px;margin-top:22px;font-size:10px;color:var(--muted)}.results button{display:block;width:100%;text-align:left;background:#f5f8f1;border:0;border-bottom:1px solid var(--line);padding:12px;font-size:12px;color:var(--ink)}.selection{background:#eaf3e4;padding:12px;border-radius:10px;font-size:12px;margin-top:10px}.notice{padding:14px;background:#edf3dc;border-radius:10px;margin-top:16px;font-size:13px}.error{background:#fff0e9;color:#8b3726}footer{max-width:1120px;margin:0 auto;padding:20px 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.teacher{grid-column:1/-1}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:15px 0}.toolbar select{width:auto;margin:0;flex:1}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{padding:18px;background:#f3f6ef;border-radius:14px}.stat strong{display:block;font-size:30px;line-height:1.3}.stat small{font-size:11px;color:var(--muted)}.row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line)}.row strong{font-size:12px;display:block}.row small{font-size:10px;color:var(--muted)}.row select{max-width:155px;margin:0;padding:8px;font-size:12px}.pending{padding:16px;border:1px solid #dce7bb;border-radius:12px;margin:12px 0}.pending select{font-size:12px}.pending button{margin-right:12px}.empty{padding:25px;text-align:center;color:var(--muted);font-size:13px}[hidden]{display:none!important}body.teacher-mode main{grid-template-columns:1fr}body.teacher-mode .intro{display:none}@media(max-width:700px){header{padding:20px}.brand{font-size:10px;gap:9px}.logo{width:43px;height:43px;font-size:27px;line-height:39px;border-radius:13px}header .ghost{font-size:10px;padding:9px}main{display:block;padding:0 20px;margin:5px auto 35px}.intro{padding:10px 0 25px}h1{font-size:38px;letter-spacing:-1.5px;margin:15px 0}.intro p{font-size:14px}.date{margin-top:20px}.trust{margin-top:14px}.card{padding:24px;border-radius:20px}footer{padding:20px;gap:15px}.stats{grid-template-columns:repeat(2,1fr)}.row{align-items:start}.row select{max-width:125px}.toolbar .ghost{font-size:11px}.teacher{margin-top:25px}}

.school-logo{width:55px;height:62px;object-fit:contain}.brand{font-size:18px;letter-spacing:-.3px;text-transform:none}.intro{padding-top:25px}@media(max-width:900px) and (min-width:701px){main{gap:30px;padding:0 25px}.card{padding:25px}}@media(max-width:700px){.school-logo{width:42px;height:48px}.brand{font-size:16px}h1{font-size:34px}}

.viewtabs{display:flex;gap:8px;margin:22px 0}.viewtabs button{padding:10px 16px;border:1px solid var(--line);background:white;color:var(--green);border-radius:10px}.viewtabs .active{background:var(--green);color:white}.classcards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.classcard{border:1px solid var(--line);background:#fcfdf9;text-align:left;border-radius:14px;padding:18px;color:var(--ink)}.classcard:hover{border-color:var(--green);background:#f3f7ee}.classpercent{color:var(--green);font-size:22px}.progress{height:7px;border-radius:10px;overflow:hidden;display:flex;background:#e6ece5;margin:13px 0}.progress span{height:100%;display:block}.progress .green{background:#267760}.progress .blue{background:#5a88ac}.progress .neutral{background:#e1e7dd}.progress .red{background:#c27c68}.classcounts{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.reviewbadge{display:block;color:#816629;margin-top:8px}.sortlabel{margin:0;min-width:230px}.sortlabel select{display:block;width:100%;margin-top:4px}@media(max-width:700px){.classcards{grid-template-columns:1fr}.schoolstats{grid-template-columns:repeat(2,1fr)}}

.download{width:auto;margin:0;text-decoration:none;padding:11px 18px;font-size:13px;display:inline-block}.classlink{font:inherit;font-weight:700;color:var(--green);background:none;border:0;padding:0;text-align:left}.classmetrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.metric{border:0;padding:10px 6px;border-radius:8px;text-align:left;background:#f1f4ee;color:var(--ink)}.metric small{font-size:10px;min-height:32px;display:block}.metric strong{display:block;font-size:22px;line-height:1.4}.metric span{font-size:12px}.present{background:#edf5ee}.absent{background:#fff0eb}.waiting{background:#f1f3f0}.classcard .muted{margin:0;font-size:11px}.classcard{cursor:default}.row select{min-width:160px;max-width:170px}.classcard:hover{background:#fcfdf9;border-color:var(--line)}#stats{grid-template-columns:repeat(3,1fr)}@media(max-width:700px){.row{display:block}.row select{width:100%;max-width:none;margin-top:8px}.metric small{font-size:10px}.classmetrics{gap:6px}}
