:root{color-scheme:light;--ink:#163442;--muted:#526773;--line:#d3e0e3;--teal:#086864;--pale:#e8f5f0;--paper:#fff}*{box-sizing:border-box}body{margin:0;background:#f1f5f4;color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:1800px;margin:auto;padding:30px clamp(14px,3vw,64px) 70px;min-width:0}a{color:var(--teal)}.back{font-weight:650;text-decoration:none}header{margin:32px 0 24px}h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.1;letter-spacing:-.04em;margin:8px 0 15px}header p{margin:0;max-width:700px}.eyebrow{text-transform:uppercase;font-size:.75rem;font-weight:750;letter-spacing:.12em;color:var(--teal)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px 22px;margin:18px 0}.panel p:first-child{margin-top:0}.panel p:last-child{margin-bottom:0}summary{cursor:pointer;font-weight:700;padding:5px 0}details p{max-width:920px}form{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-top:15px}form p{flex-basis:100%;margin:0}label{display:flex;flex-direction:column;gap:5px;font-size:.84rem;font-weight:700;min-width:0}input,select,button,.button{font:inherit;max-width:100%;border-radius:8px}input,select{background:white;border:1px solid #8aa3ac;padding:10px 12px;color:var(--ink);min-height:44px}input:focus,select:focus,button:focus-visible,a:focus-visible,summary:focus-visible,.table-wrap:focus-visible{outline:3px solid #48a996;outline-offset:3px}button,.button{background:var(--teal);color:white;border:1px solid var(--teal);padding:10px 16px;min-height:44px;cursor:pointer;text-decoration:none;display:inline-block;font-weight:650}button:disabled{opacity:.55;cursor:wait}.secondary{background:white;color:var(--teal);margin-top:12px}#teacherAccess{margin-top:14px}.toolbar{display:flex;flex-wrap:wrap;gap:18px;align-items:end;margin:24px 0 12px}.search{flex:1;max-width:360px;min-width:160px}select{min-width:150px}.legend,.muted{font-size:.85rem;color:var(--muted)}.teacher-note{padding:12px 16px;background:#fff2cf;border-left:4px solid #bd8211;border-radius:4px}#notice{min-height:36px;font-size:.87rem;font-weight:650;color:var(--teal);padding:4px 0 10px}#notice.error,#loginMessage{color:#a22e27}.table-wrap{max-width:100%;overflow:auto;background:white;border:1px solid var(--line);border-radius:12px;max-height:72vh;scrollbar-gutter:stable}table{width:100%;min-width:1300px;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}th,td{text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 9px}thead th{position:sticky;top:0;background:#edf4f3;z-index:2;font-size:.8rem;line-height:1.35;height:88px;min-width:97px}th small{display:block;color:var(--muted);font-weight:500;margin-top:5px}tbody th{font-size:.8rem;font-weight:650;text-align:left;line-height:1.4}th.number,td.number{position:sticky;left:0;min-width:45px;width:45px;background:#fff;z-index:1}thead th.number{z-index:4;background:#edf4f3}th.name{position:sticky;left:45px;min-width:215px;width:215px;max-width:215px;z-index:1;background:white;box-shadow:3px 0 4px #1634420b}thead th.name{z-index:4;background:#edf4f3}tbody tr:nth-child(even) td,tbody tr:nth-child(even) th{background:#f7faf9}td.auto{color:#07564c;font-weight:750}td input{width:67px;min-height:41px;padding:7px 4px;text-align:center;font-weight:700}td input.invalid{border:2px solid #a22e27;background:#fff0ee}td.na{color:#75858e;background:#f1f3f4!important}td.average{font-size:1.06rem;font-weight:800;background:#e8f5f0!important;min-width:105px}td.average small{font-size:.67rem;color:var(--muted);display:block;font-weight:550}.pending{display:block;min-height:24px}#count{margin:9px 0 22px}[hidden]{display:none!important}@media(max-width:520px){main{padding-top:20px}header{margin-top:24px}.panel{padding:15px}.table-wrap{border-radius:8px}th.name{min-width:165px;width:165px;max-width:165px}form label,form button{width:100%}.toolbar{gap:12px}.toolbar label{flex:1}.search{min-width:130px}th,td{padding:10px 6px}}
#activityOptions{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-top:14px}#activityOptions label{display:flex;flex-direction:row;gap:10px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:8px;cursor:pointer}#activityOptions input{width:22px;height:22px;min-height:22px;flex-shrink:0;accent-color:var(--teal)}#activityOptions small{display:block;font-weight:500;color:var(--muted)}thead th.inactive{background:#e6e9eb;color:#647580}
