:root{--navy:#123d6a;--navy-dark:#0d3156;--gold:#c9921e;--ink:#0f172a;--muted:#64748b;--line:#dbe3ec;--canvas:#eef3f9;--green:#047857;--red:#be123c;--shadow:0 20px 70px rgba(15,23,42,.11);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--canvas)}button,input{font:inherit}.shell{width:min(1220px,calc(100% - 40px));margin-inline:auto}.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{min-height:72px;display:flex;align-items:center;gap:12px}.header-inner>div{display:grid}.header-inner strong{color:var(--navy);font-size:.9rem;letter-spacing:.02em}.header-inner small{color:var(--muted);margin-top:3px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:var(--navy);color:#fff;font-weight:900;font-size:1.15rem}.term-pill{margin-left:auto;padding:9px 15px;border-radius:999px;background:#eff6ff;color:var(--navy);font-weight:700;font-size:.9rem}.login-layout{min-height:calc(100vh - 73px);display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:64px;padding-block:60px}.eyebrow,.card-kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:900;color:var(--gold)}.intro h1,.record-heading h1{color:var(--navy);letter-spacing:-.04em}.intro h1{max-width:760px;margin:.7rem 0 0;font-size:clamp(2.5rem,5vw,4rem);line-height:1.03}.lead{max-width:700px;color:#526174;font-size:1.12rem;line-height:1.75}.privacy-note{display:flex;align-items:flex-start;gap:14px;max-width:620px;margin-top:30px;padding:20px;border:1px solid #d4dfec;border-radius:16px;background:#fff}.privacy-note b{color:var(--navy);white-space:nowrap}.privacy-note span{color:var(--muted)}.login-card{padding:32px;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:var(--shadow)}.login-card h2{margin:.5rem 0;font-size:1.7rem}.login-card label{display:block;margin-top:24px;font-size:.9rem;font-weight:800}.login-card input{width:100%;height:50px;margin-top:8px;border:1px solid #cbd5e1;border-radius:12px;padding:0 13px;outline:0;text-transform:uppercase;font-family:ui-monospace,monospace}.login-card input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #dbeafe}.button{min-height:43px;padding:0 18px;border:0;border-radius:10px;font-weight:800;cursor:pointer}.button:disabled{opacity:.55;cursor:not-allowed}.primary{width:100%;margin-top:20px;background:var(--navy);color:#fff}.secondary{border:1px solid #cbd5e1;background:#fff;color:var(--navy)}.form-error{padding:10px 12px;border-radius:9px;background:#fff1f2;color:var(--red);font-weight:700}.record-view{padding-block:40px 70px}.record-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}.record-heading h1{margin:.35rem 0;font-size:clamp(2rem,4vw,3rem)}.record-heading p:last-child{margin:0;color:var(--muted)}.student-card{display:grid;grid-template-columns:2fr 1fr .6fr;gap:1px;margin-top:28px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--line);box-shadow:0 10px 35px rgba(15,23,42,.06)}.student-card div{display:grid;gap:5px;padding:20px;background:#fff}.student-card span,.grade-summary span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.student-card strong{color:var(--navy);font-size:1.05rem}.table-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-top:34px}.table-intro h2{margin:0;color:var(--navy)}.table-intro p,.table-intro>span{margin:.35rem 0 0;color:var(--muted);font-size:.85rem}.table-wrap{overflow:auto;margin-top:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.table-wrap table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;text-align:center;font-size:.82rem}.table-wrap th{position:sticky;top:0;min-width:125px;max-width:160px;padding:14px 10px;background:var(--navy);color:#fff;white-space:normal}.table-wrap td{padding:13px 10px;border-top:1px solid var(--line);white-space:nowrap}.maximum-row td{background:#f8fafc;color:var(--muted);font-size:.74rem;font-weight:700}.score-row td{font-weight:850;font-size:.95rem}.summary-column{background:#fff9e8!important}.final-column{background:#e8f5ee!important;color:#06603d!important}.grade-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}.grade-summary article{display:grid;gap:7px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.grade-summary strong{color:var(--navy);font-size:1.7rem}.grade-summary small{color:var(--muted)}.grade-summary .final-grade{border-color:#9ed4b8;background:#eaf8f0}.grade-summary .final-grade strong{color:var(--green);font-size:2.2rem}.instructor-note{margin-top:24px;padding:18px 20px;border-left:4px solid var(--gold);border-radius:8px;background:#fff8df;color:#6f5312;font-weight:800}.unavailable{margin-top:34px;padding:30px;border:1px solid var(--line);border-radius:18px;background:#fff}.unavailable h2{margin-top:0;color:var(--navy)}.unavailable p{color:var(--muted);line-height:1.7}.toast{position:fixed;z-index:20;top:18px;left:50%;max-width:min(520px,calc(100% - 30px));padding:13px 18px;border-radius:10px;background:#162033;color:#fff;font-weight:750;opacity:0;pointer-events:none;transform:translate(-50%,-12px);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:var(--red)}
@media(max-width:850px){.shell{width:min(100% - 24px,1220px)}.term-pill{display:none}.login-layout{grid-template-columns:1fr;gap:30px;align-items:start;padding-block:36px}.student-card{grid-template-columns:1fr}.record-heading{align-items:center}.table-intro{align-items:flex-start;flex-direction:column}.grade-summary{grid-template-columns:1fr 1fr}.privacy-note{flex-direction:column}.privacy-note b{white-space:normal}}
@media(max-width:520px){.intro h1{font-size:2.25rem}.login-card{padding:23px}.record-view{padding-top:24px}.record-heading{align-items:flex-start;flex-direction:column}.record-heading .button{width:100%}.grade-summary{grid-template-columns:1fr}.header-inner strong{font-size:.75rem}}
.table-wrap th{position:static}.table-wrap .group-row th{background:var(--navy-dark);border-bottom:1px solid #ffffff40}
.scroll-hint{margin:12px 0 -3px;color:var(--muted);font-size:.8rem;font-weight:700}
