@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand-blue: #2A7DE1;--brand-blue-strong: #1E66C6;--brand-blue-deep: #174F9C;--brand-tint: #E3EEFC;--brand-ink: #16294A;--brand-ink-2: #4A5870;--brand-ink-3: #66728A;--brand-paper: #F4F8FE;--brand-surface: #FFFFFF;--brand-highlighter: #FFD23F;--brand-night: #16294A}:root{--paper: var(--brand-paper);--surface: var(--brand-surface);--ink: var(--brand-ink);--ink-2: var(--brand-ink-2);--ink-3: var(--brand-ink-3);--rule: #dadfe6;--rule-strong: #b9c1cc;--blue: var(--brand-blue-strong);--blue-dark: var(--brand-blue-deep);--blue-tint: var(--brand-tint);--red: #c0392b;--red-tint: #fbeceb;--green: #2c7a4b;--green-tint: #e6f3ea;--marker: var(--brand-highlighter);--marker-ink: #5e4a00;--marker-tint: #fdf6d8;--focus: var(--brand-blue-strong);--font: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--step--1: .875rem;--step-0: 1rem;--step-1: 1.1875rem;--step-2: 1.5rem;--step-3: 2rem;--radius-s: 6px;--radius-m: 10px;--pill: 999px;color-scheme:light;font-family:var(--font);font-size:100%;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%;font-variant-numeric:tabular-nums}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper)}h1,h2,h3{line-height:1.2;margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:var(--step-3)}h2{font-size:var(--step-1)}h3{font-size:var(--step-0)}p{margin:0}a{color:var(--blue);text-underline-offset:2px}a:hover{color:var(--blue-dark)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--blue-tint);padding:0 .25em;border-radius:3px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:1rem;top:-3rem;background:var(--surface);padding:.5rem .75rem;border-radius:var(--radius-s);z-index:10}.skip-link:focus{top:.5rem}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--surface);border-bottom:1px solid var(--rule)}.topbar-inner{max-width:1180px;margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.brand-link{color:var(--ink);text-decoration:none}.brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink)}.brand-mark{flex:none}.brand-sheet{fill:var(--brand-surface)}.brand-hi{fill:var(--brand-highlighter)}.brand-word{font-weight:700;font-size:1.25rem;color:var(--ink);letter-spacing:-.02em}.mainnav{display:flex;gap:.25rem}.mainnav a{text-decoration:none;color:var(--ink-2);padding:.4rem .8rem;border-radius:var(--pill)}.mainnav a:hover{color:var(--ink);background:var(--paper)}.mainnav a.active{color:var(--blue-dark);background:var(--blue-tint);font-weight:700}.account{margin-left:auto;display:flex;align-items:center;gap:.75rem;min-width:0}.account-name{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:16rem}.main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:2rem 1.25rem 3rem}.main:focus{outline:none}.footer{border-top:1px solid var(--rule);padding:1rem 1.25rem;display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;font-size:var(--step--1);color:var(--ink-3)}.page-head{margin-bottom:1.5rem}.crumbs ol{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-wrap:wrap;font-size:var(--step--1);color:var(--ink-3)}.crumbs li+li:before{content:"/";padding:0 .5rem;color:var(--rule-strong)}.crumbs a{color:var(--ink-2)}.page-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page-sub{margin-top:.35rem;color:var(--ink-2)}.page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.button{font:inherit;font-size:var(--step--1);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.5rem;padding:.45rem 1rem;border-radius:var(--pill);border:1.5px solid var(--rule-strong);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;white-space:nowrap}.button:hover:not(:disabled){border-color:var(--ink-3)}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--blue);border-color:var(--blue);color:#fff}.button-primary:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}.button-danger{background:var(--red);border-color:var(--red);color:#fff}.button-danger-quiet{color:var(--red);border-color:transparent;background:transparent}.button-danger-quiet:hover:not(:disabled){background:var(--red-tint);border-color:transparent}.button-quiet{border-color:transparent;background:transparent}.button-small{min-height:2.1rem;padding:.3rem .8rem}.button-choice{border-color:var(--blue);color:var(--blue-dark)}.button-choice:hover:not(:disabled){background:var(--blue-tint)}.icon-button{font:inherit;font-size:1.1rem;width:2.2rem;height:2.2rem;display:inline-grid;place-items:center;border-radius:50%;border:1.5px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer}.icon-button:disabled{opacity:.4;cursor:not-allowed}.link-button{font:inherit;font-size:var(--step--1);background:none;border:none;padding:.25rem .35rem;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-danger{color:var(--red)}.field{display:flex;flex-direction:column;gap:.3rem;font-size:var(--step--1);font-weight:700;color:var(--ink-2)}.field input,.select-small{font:inherit;font-size:var(--step-0);font-weight:400;color:var(--ink);min-height:2.5rem;padding:.4rem .7rem;border:1.5px solid var(--rule-strong);border-radius:var(--radius-s);background:var(--surface);width:100%}.field input[aria-invalid=true]{border-color:var(--red)}.select-small{width:auto;min-height:2.1rem;font-size:var(--step--1);padding:.25rem .5rem}.field-grow{flex:1;min-width:12rem}.field-narrow{width:7rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.inline-form{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.hint{font-size:var(--step--1);color:var(--ink-3);max-width:68ch}.form-error{color:var(--red);font-size:var(--step--1);font-weight:700;margin:.5rem 0}.stack>*+*{margin-top:1rem}.note{border-radius:var(--radius-s);padding:.7rem .9rem;margin:.75rem 0;font-size:var(--step--1);display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--blue-tint);color:var(--blue-dark);max-width:72ch}.note-success{background:var(--green-tint);color:#1f5937}.note-warn{background:var(--marker-tint);color:var(--marker-ink)}.note-error{background:var(--red-tint);color:#8a2a20}.tag{display:inline-block;font-size:.75rem;font-weight:700;padding:.1rem .5rem;border-radius:var(--pill);background:var(--paper);border:1px solid var(--rule);color:var(--ink-2);white-space:nowrap}.tag-warn{background:var(--marker-tint);border-color:var(--marker);color:var(--marker-ink)}.loading{color:var(--ink-3);padding:1rem 0}.empty{border:1.5px dashed var(--rule-strong);border-radius:var(--radius-m);padding:2rem;text-align:center;color:var(--ink-2)}.empty h2,.empty h3{color:var(--ink);margin-bottom:.4rem}.empty-inline{color:var(--ink-3);padding:1rem 0}.vbubble{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--ink);color:#fff;font-weight:700;font-size:.85rem;line-height:1}.vbubble-muted{background:transparent;color:var(--ink-3);border:1.5px solid var(--rule-strong)}.vbubble-empty{background:var(--marker-tint);color:var(--marker-ink);border:1.5px dashed var(--marker)}.vbutton{font:inherit;font-weight:700;width:2.4rem;height:2.4rem;border-radius:50%;border:1.5px solid var(--ink-2);background:var(--surface);color:var(--ink);cursor:pointer}.vbutton:hover:not(:disabled){background:var(--ink);color:#fff}.vbutton:disabled{opacity:.5}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m);padding:1.25rem}.panel>h2,.panel-head{margin-bottom:.9rem}.panel-head{display:flex;align-items:baseline;gap:.6rem}.count{color:var(--ink-3);font-weight:700}.two-col{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.25rem;align-items:start}.setup-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1.25rem;margin-bottom:1.75rem}.class-list{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.75rem}.class-card{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--blue);border-radius:var(--radius-s);text-decoration:none;color:var(--ink)}.class-card:hover{border-color:var(--rule-strong);border-left-color:var(--blue-dark);color:var(--ink)}.class-name{font-weight:700;font-size:var(--step-1)}.class-meta{color:var(--ink-3);font-size:var(--step--1);display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.test-list,.roster,.queue-list,.keys{list-style:none;margin:0;padding:0}.test-list{margin-bottom:1.25rem;border-top:1px solid var(--rule)}.test-row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem .25rem;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink)}.test-row:hover .test-name{color:var(--blue);text-decoration:underline}.test-name{font-weight:700}.test-meta{color:var(--ink-3);font-size:var(--step--1)}.create-test{border-top:1px solid var(--rule);padding-top:1rem;display:grid;gap:.75rem}.create-test .button{justify-self:start}.upload{display:grid;gap:.5rem;justify-items:start;margin-bottom:.75rem}.upload label:has(+input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.add-student{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:end;padding:.75rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:.5rem}.roster{max-height:32rem;overflow:auto}.roster li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .25rem;border-bottom:1px solid var(--paper)}.roster-actions{white-space:nowrap}.keys{display:flex;flex-wrap:wrap;gap:.6rem 1.1rem;margin-bottom:.75rem}.keys li{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--step--1);font-weight:700}.key-ok span:last-child{color:var(--green)}.key-missing span:last-child{color:var(--marker-ink)}.print-layout{margin-bottom:.75rem}.tabs{display:flex;gap:.25rem;border-bottom:1.5px solid var(--rule);margin-bottom:1.25rem}.tab{font:inherit;font-weight:700;padding:.6rem 1rem;background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-1.5px;color:var(--ink-2);cursor:pointer}.tab-on{color:var(--blue-dark);border-bottom-color:var(--blue)}.segmented{display:inline-flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--pill)}.seg{padding:.3rem .85rem;border-radius:var(--pill);font-size:var(--step--1);font-weight:700;color:var(--ink-2);cursor:pointer}.seg:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:1px}.seg-on{background:var(--ink);color:#fff}.queue{background:var(--marker-tint);border:1px solid var(--marker);border-radius:var(--radius-m);padding:1.1rem 1.25rem;margin-bottom:1.75rem}.queue h2{margin-bottom:.75rem;color:var(--marker-ink)}.queue-item{background:var(--surface);border-radius:var(--radius-s);padding:.85rem 1rem;display:grid;gap:.6rem}.queue-item+.queue-item{margin-top:.6rem}.queue-item[aria-busy=true]{opacity:.6}.queue-what{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.queue-name{font-weight:700}.queue-link{font-size:var(--step--1)}.queue-task p{font-size:var(--step--1);color:var(--ink-2);margin-bottom:.45rem}.choice-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m)}table.data{width:100%;border-collapse:collapse;font-size:var(--step--1)}.data th,.data td{text-align:left;padding:.65rem .9rem;border-bottom:1px solid var(--rule);vertical-align:middle}.data thead th{font-size:.8rem;color:var(--ink-3);background:var(--paper);position:sticky;top:0}.data tbody tr:last-child>*{border-bottom:none}.data tbody tr:hover{background:#fafbfc}.data .num{text-align:right}.data tbody th{font-weight:700}.score{font-weight:700;font-size:var(--step-0)}.student-link{color:var(--ink);text-decoration:none}.student-link:hover{color:var(--blue);text-decoration:underline}.unconfirmed{color:var(--marker-ink);font-style:italic}.flags{display:flex;gap:.35rem;flex-wrap:wrap}.results-head,.stats-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.results-summary{color:var(--ink-2);font-size:var(--step--1)}.stats .hint{margin-bottom:.75rem}.mono-letter{font-weight:700;font-size:var(--step-0)}.pct{font-weight:700;font-size:var(--step-0);display:inline-block;min-width:4ch}.meter{display:inline-block;width:5rem;height:.45rem;background:var(--paper);border:1px solid var(--rule);border-radius:var(--pill);margin:0 .6rem;vertical-align:middle;overflow:hidden}.meter span{display:block;height:100%;background:var(--green)}.sub{color:var(--ink-3);font-size:.8rem}.choices{display:flex;gap:.3rem .75rem;flex-wrap:wrap;color:var(--ink-2)}.choice b{color:var(--ink)}.choice-flag{color:var(--marker-ink)}.missed{max-width:22rem;color:var(--ink-2)}.scoreline{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin:-.75rem 0 1.25rem}.score-big{font-size:var(--step-3);font-weight:700;line-height:1}.score-of{font-size:var(--step-1);color:var(--ink-3)}.score-pct{font-size:var(--step-1);font-weight:700;color:var(--ink-2)}.review{display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:1.5rem;align-items:start}.viewer{display:grid;gap:.6rem}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.zoom{display:inline-flex;align-items:center;gap:.4rem}.zoom-level{min-width:3.5rem;text-align:center;font-weight:700;font-size:var(--step--1)}.viewport{overflow:hidden;background:#e9ebee;border:1px solid var(--rule);border-radius:var(--radius-m);padding:1rem;touch-action:pan-y;max-height:85vh}.viewport-zoomed{cursor:grab;touch-action:none}.viewport-zoomed:active{cursor:grabbing}.viewport-content{transform-origin:0 0;max-width:34rem;margin:0 auto}.sheet-frame{position:relative;width:100%;background:#fff;box-shadow:0 1px 2px #1c25322e}.sheet-img{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.sheet-frame .sheet-img,.sheet-drawing{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.mark-cross{stroke:var(--red);stroke-width:2.2;stroke-linecap:round;fill:none}.mark-ring{stroke:var(--green);stroke-width:1.8;fill:none}.mark-ring-ok{stroke-width:1.2;opacity:.85}.mark-version{stroke:var(--blue);stroke-width:1.8;fill:none}.mark-label rect{fill:var(--marker)}.mark-label text{font-family:var(--font);font-size:6.4px;font-weight:700;fill:var(--marker-ink)}.mark-label-muted rect{fill:#e4e7eb}.mark-label-muted text{fill:var(--ink-2)}.qlist{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m);padding:1.1rem;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}.qlist h2{margin-bottom:.75rem}.legend{list-style:none;padding:0;margin:0 0 .9rem;display:grid;gap:.35rem;font-size:var(--step--1);color:var(--ink-2)}.legend li{display:flex;align-items:center;gap:.5rem}.legend-x,.legend-ring{display:inline-block;width:1rem;height:1rem;position:relative}.legend-ring{border:2px solid var(--green);border-radius:50%}.legend-x:before,.legend-x:after{content:"";position:absolute;left:50%;top:-1px;width:2px;height:1.1rem;background:var(--red);transform:rotate(45deg)}.legend-x:after{transform:rotate(-45deg)}.qlist-items{list-style:none;padding:0;margin:0;font-size:var(--step--1)}.qlist-items li{display:grid;grid-template-columns:2.75rem 4.5rem 1fr;gap:.4rem;padding:.4rem 0;border-bottom:1px solid var(--paper)}.qn,.qstate{font-weight:700}.qstate-wrong{color:var(--red)}.qstate-blank,.qstate-multi,.qstate-unclear{color:var(--marker-ink)}.qstate-dropped{color:var(--ink-3)}.qdetail{color:var(--ink-2)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c253273;display:grid;place-items:center;padding:1rem;z-index:20}.dialog{background:var(--surface);border-radius:var(--radius-m);width:min(30rem,100%);max-height:calc(100vh - 2rem);display:flex;flex-direction:column;box-shadow:0 12px 40px #1c253240}.dialog-wide{width:min(40rem,100%)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem .5rem}.dialog-head .icon-button{border-color:transparent}.dialog-body{padding:.5rem 1.25rem 1rem;overflow:auto;display:grid;gap:.9rem}.dialog-body form{display:grid;gap:.9rem}.dialog-foot{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap;padding:.9rem 1.25rem;border-top:1px solid var(--rule)}.prose-small{font-size:var(--step--1);color:var(--ink-2)}.confirm-name{color:var(--ink);background:var(--red-tint);padding:0 .3em;border-radius:3px}.course-list{border:none;padding:0;margin:0;display:grid;gap:.5rem}.course-list legend{font-size:var(--step--1);color:var(--ink-2);margin-bottom:.5rem}.course{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;border:1.5px solid var(--rule);border-radius:var(--radius-s);cursor:pointer;flex-wrap:wrap}.course:has(input:checked){border-color:var(--blue);background:var(--blue-tint)}.course input{width:1.15rem;height:1.15rem;accent-color:var(--blue)}.course-name{font-weight:700;flex:1}.course-section{font-weight:400;color:var(--ink-2)}.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:radial-gradient(circle at 50% 50%,transparent 0 6px,var(--rule) 6px 7.2px,transparent 7.2px) 0 0 / 34px 34px,var(--paper)}.login-sheet{width:min(28rem,100%);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m);padding:2rem;display:grid;gap:1rem;box-shadow:0 2px 0 var(--rule)}.login-title{font-size:var(--step-2)}.login-lede{color:var(--ink-2)}.login-method{display:grid;gap:.75rem;padding-top:.5rem}.dev-login{border-top:1px solid var(--rule);padding-top:1rem}.dev-login .button{justify-self:start}.gsi-box{min-height:44px}.login-foot{font-size:var(--step--1);color:var(--ink-3)}.billing{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.25rem;align-items:start}.billing .panel{display:grid;gap:.6rem}.plan-name{font-size:var(--step-3);font-weight:700;color:var(--blue)}.usage-figure{font-size:var(--step-1)}.usage-used{font-size:var(--step-3);font-weight:700}.usage-bar{height:.6rem;background:var(--paper);border:1px solid var(--rule);border-radius:var(--pill);overflow:hidden}.usage-bar span{display:block;height:100%;background:var(--blue)}.privacy{min-height:100vh;background:var(--surface)}.privacy-body{max-width:44rem;margin:0 auto;padding:2.5rem 1.25rem 4rem;line-height:1.65}.privacy-body h1{margin-bottom:.5rem}.privacy-body h2{margin:2.25rem 0 .6rem}.privacy-body p,.privacy-body ul{margin:0 0 .9rem}.privacy-body li+li{margin-top:.35rem}.site-footer{border-top:1px solid var(--rule);padding:1.25rem 1.25rem 1.5rem;display:grid;justify-items:center;gap:.4rem;font-size:var(--step--1);color:var(--ink-3);text-align:center}.site-footer-nav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem 0}.site-footer-nav>*+*:before{content:"·";color:var(--rule-strong);padding:0 .6rem;text-decoration:none;display:inline-block}.site-footer-nav a,.site-footer-nav .link-button{color:var(--ink-2);font-weight:700}.site-footer-nav .link-button{padding:0}.public{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}.public.privacy{background:var(--surface)}.public-top{background:var(--surface);border-bottom:1px solid var(--rule)}.public-top-inner{max-width:1180px;margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;gap:1rem}.public-nav{margin-left:auto;display:flex;align-items:center;gap:.25rem 1.1rem;flex-wrap:wrap;justify-content:flex-end}.public-nav>a:not(.button){color:var(--ink-2);font-weight:700;text-decoration:none}.public-nav>a:not(.button):hover{color:var(--blue-dark);text-decoration:underline}.public-main{flex:1;width:100%}.public-main:focus{outline:none}.button-large{min-height:3rem;padding:.6rem 1.4rem;font-size:var(--step-0)}.hero,.band{max-width:1120px;margin:0 auto;padding:3.5rem 1.25rem}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:3rem;align-items:center;padding-top:4rem}.eyebrow{display:inline-block;font-weight:700;font-size:var(--step--1);color:var(--marker-ink);background:var(--marker-tint);border:1px solid var(--marker);border-radius:var(--pill);padding:.15rem .7rem;margin-bottom:1rem}.hero h1{font-size:clamp(2.1rem,1.3rem + 3vw,3.4rem);line-height:1.08;letter-spacing:-.025em;max-width:14ch}.hero-lede{margin-top:1.1rem;font-size:var(--step-1);color:var(--ink-2);max-width:34rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.get-app{margin-top:2rem;padding-top:1.25rem;border-top:1px dashed var(--rule-strong);max-width:34rem}.get-app-label{font-size:var(--step--1);font-weight:700;color:var(--ink-3);margin-bottom:.6rem}.store-buttons{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem}.store-button{border-radius:var(--radius-m)}.store-button:disabled{opacity:1;color:var(--ink-3);border-style:dashed;background:transparent}.store-icon{flex:none}.hero-art{margin:0;position:relative;justify-self:center;width:min(100%,24rem);padding:1.25rem 1.5rem 1.75rem 0}.paper{background:#fff;border:1px solid var(--rule);border-radius:4px;padding:.5rem;box-shadow:0 1px 0 var(--rule),10px 12px 0 -2px var(--blue-tint)}.paper img,.device-phone img,.device-browser img{display:block;width:100%;height:auto}.hero-score{position:absolute;right:0;bottom:0;width:7.5rem;height:7.5rem;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-content:center;text-align:center;border:4px solid var(--paper)}.hero-score-num{font-size:2.2rem;font-weight:700;line-height:1}.hero-score-num small{font-size:1rem;color:#c9d3e4}.hero-score-pct{font-size:var(--step--1);font-weight:700;color:var(--marker);margin-top:.2rem}.section-title{font-size:var(--step-3);letter-spacing:-.02em;margin-bottom:2rem}.band+.band{border-top:1px solid var(--rule)}.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}.step h3{display:flex;align-items:center;gap:.6rem;font-size:var(--step-2);margin:1.25rem 0 .5rem}.step p{color:var(--ink-2)}.step-num{display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--marker);color:var(--ink);font-size:var(--step-0)}.step-art{height:17rem;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,transparent 0 5px,#d4e2f6 5px 6.2px,transparent 6.2px) 0 0 / 28px 28px,var(--blue-tint);border-radius:var(--radius-m);overflow:hidden;padding:1.25rem}.paper-small{height:14.5rem;padding:.3rem}.paper-small img{height:100%;width:auto;max-width:none}.device-phone{height:14.5rem;aspect-ratio:540 / 1170;border:7px solid var(--ink);border-radius:22px;background:var(--ink);overflow:hidden;position:relative}.device-phone:before{content:"";position:absolute;top:5px;left:50%;width:34%;height:7px;margin-left:-17%;border-radius:var(--pill);background:var(--ink)}.device-phone img{height:100%;object-fit:cover;border-radius:14px}.device-browser{width:100%;border:1px solid var(--rule-strong);border-radius:8px;background:var(--surface);overflow:hidden;box-shadow:0 1px 0 var(--rule)}.device-browser-bar{display:flex;gap:5px;padding:7px 9px;background:var(--paper);border-bottom:1px solid var(--rule)}.device-browser-bar i{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--rule-strong)}.feature-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:1rem}.feature{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m);padding:1.25rem}.feature h3{font-size:var(--step-1);margin:.75rem 0 .35rem}.feature p{color:var(--ink-2)}.feature-icon{color:var(--blue)}.feature-hi{fill:var(--marker);stroke:var(--ink)}.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1.25rem;max-width:46rem}.price-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m);padding:1.5rem}.price-card-pro{border:2px solid var(--blue)}.price-card h3{font-size:var(--step-1)}.price{font-size:2.6rem;font-weight:700;letter-spacing:-.02em;margin:.25rem 0 1rem}.price-per{font-size:var(--step-0);color:var(--ink-3);letter-spacing:0}.price-card ul,.promise-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.price-card li,.promise-list li{position:relative;padding-left:1.75rem}.price-card li:before,.promise-list li:before{content:"";position:absolute;left:0;top:.2rem;width:1.1rem;height:1.1rem;border-radius:50%;border:1.5px solid var(--ink);background:radial-gradient(circle,var(--ink) 0 45%,transparent 47%)}.promise{background:var(--surface);border:1px solid var(--rule);border-left:6px solid var(--blue);border-radius:var(--radius-m);padding:2rem;max-width:50rem}.promise .section-title{margin-bottom:1.25rem}.promise p{margin-top:1.25rem;font-weight:700}.faq-list{max-width:50rem;display:grid;gap:.6rem}.faq-item{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m)}.faq-item summary{cursor:pointer;font-weight:700;padding:1rem 1.25rem;list-style-position:inside}.faq-item[open] summary{border-bottom:1px solid var(--rule)}.faq-item p{padding:.9rem 1.25rem 1.1rem;color:var(--ink-2)}.band.cta{max-width:none;background:var(--brand-blue-strong);color:#fff;text-align:center;display:grid;justify-items:center;gap:.75rem}.cta h2{font-size:var(--step-3)}.cta .hero-actions{justify-content:center;margin-top:.75rem}.cta .button-primary{background:#fff;border-color:#fff;color:var(--blue-dark)}.cta .button-primary:hover:not(:disabled){background:var(--blue-tint);border-color:var(--blue-tint);color:var(--blue-dark)}.cta .button:not(.button-primary){background:transparent;border-color:#fff;color:#fff}.cta :focus-visible{outline-color:#fff}.prose{line-height:1.65}.prose h2{font-size:var(--step-2);margin:2.5rem 0 .75rem;scroll-margin-top:1rem}.prose h3{margin:1.5rem 0 .5rem}.prose p,.prose ul,.prose ol{margin:0 0 .9rem;max-width:70ch}.prose li+li{margin-top:.35rem}.prose h2:focus{outline:none}.help{max-width:1120px;margin:0 auto;padding:2.5rem 1.25rem 4rem;display:grid;grid-template-columns:15rem minmax(0,1fr);grid-template-areas:"head head" "toc body";gap:0 3rem}.help-head{grid-area:head;margin-bottom:1rem}.help-lede{color:var(--ink-2);margin-top:.4rem}.help-toc{grid-area:toc;align-self:start;position:sticky;top:1rem;margin-top:2.5rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m)}.help-toc-title{font-size:var(--step--1);color:var(--ink-3);margin-bottom:.5rem}.help-toc ol{margin:0;padding-left:1.3rem;font-size:var(--step--1);display:grid;gap:.3rem}.help-toc a{color:var(--ink-2)}.help-toc a:hover{color:var(--blue-dark)}.help-body{grid-area:body;min-width:0}.help-section{border-bottom:1px solid var(--rule);padding-bottom:.5rem}.help-section:last-child{border-bottom:none}.consent{background:var(--surface);border-bottom:1px solid var(--rule-strong);padding-block:.75rem;padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px));display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem}.consent>p{flex:1 1 28rem;min-width:0;margin:0}.consent-title{font-size:var(--step-0);color:var(--ink)}.consent-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.setup{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-m);padding:1.1rem 1.25rem;margin-bottom:1.5rem}.setup-head{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.setup-progress{color:var(--ink-3);font-size:var(--step--1);font-weight:700}.setup-toggle{margin-left:auto}.setup-meter{height:.4rem;margin:.75rem 0 .5rem;background:var(--paper);border-radius:var(--pill);overflow:hidden}.setup-meter span{display:block;height:100%;background:var(--blue)}.setup-steps{list-style:none;margin:0;padding:0}.setup-step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.6rem .25rem;border-bottom:1px solid var(--paper)}.setup-step:last-child{border-bottom:none}.setup-check{width:1.5rem;height:1.5rem;border-radius:50%;border:1.5px solid var(--rule-strong);display:grid;place-items:center;color:#fff}.setup-step[data-done=true] .setup-check{background:var(--ink);border-color:var(--ink)}.setup-next .setup-check{border:2.5px solid var(--marker);box-shadow:inset 0 0 0 2px var(--marker-tint)}.setup-text{display:grid}.setup-title{font-weight:700}.setup-step[data-done=true] .setup-title{color:var(--ink-3)}.setup-why{font-size:var(--step--1);color:var(--ink-3)}.setup-sample{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--rule-strong);font-size:var(--step--1);color:var(--ink-2)}.setup-sample a{font-weight:700}.sample-banner{display:flex;align-items:center;gap:.75rem 1rem;flex-wrap:wrap;background:var(--marker-tint);border:1px dashed var(--marker);border-radius:var(--radius-m);padding:.75rem 1rem;margin-bottom:1.25rem;color:var(--marker-ink)}.sample-banner p{flex:1;min-width:14rem;font-weight:700}.sample-badge,.tag-sample{background:var(--marker);border-color:var(--marker);color:var(--ink)}.sample-badge{font-size:.75rem;font-weight:700;padding:.15rem .6rem;border-radius:var(--pill)}.class-card-sample{border-left-color:var(--marker);border-style:dashed;border-left-style:solid}.class-card-sample:hover{border-left-color:var(--marker)}.illo{color:var(--ink);flex:none}.illo-sheet{fill:var(--surface)}.illo-empty{fill:none}.illo-hi{fill:var(--marker)}.illo-faded{opacity:.45}.empty-illustrated{display:grid;justify-items:center;gap:.25rem}.empty-illustrated .illo{margin-bottom:.5rem}.empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem}.empty-mini{display:flex;align-items:center;gap:1rem;padding:.5rem 0 1rem}.empty-mini .illo{width:84px;height:auto}.explain{font-size:var(--step--1);color:var(--ink-2);max-width:68ch}.explain summary{cursor:pointer;color:var(--blue);font-weight:700;width:fit-content}.explain p{margin-top:.4rem;padding:.6rem .8rem;background:var(--blue-tint);border-radius:var(--radius-s);color:var(--blue-dark)}.two-col-roster{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}.print-panel{display:grid;grid-template-columns:minmax(0,1fr) 7.5rem;gap:1.25rem;align-items:start}.print-preview{width:100%;height:auto;border:1px solid var(--rule-strong);border-radius:3px;background:#fff;box-shadow:4px 5px 0 -1px var(--blue-tint)}.updated{font-size:var(--step--1);color:var(--ink-3);margin-left:auto}.legend-terms{margin:0 0 .9rem;display:grid;gap:.5rem;font-size:var(--step--1);color:var(--ink-2);padding:.6rem .75rem;background:var(--paper);border-radius:var(--radius-s)}.legend-terms dt{font-size:var(--step--1)}.legend-terms dd{margin:0}.login-main{flex:1;display:grid;place-items:center;padding:2rem 1rem;width:100%}.login-brand{justify-self:start}.login .site-footer{background:var(--paper);width:100%}.check{display:flex;align-items:center;gap:.5rem;font-size:var(--step--1);color:var(--ink-2)}.check input{width:1.1rem;height:1.1rem;accent-color:var(--blue)}.account-help{color:var(--ink-2);font-weight:700;font-size:var(--step--1)}@media(max-width:860px){.two-col,.setup-row,.review,.hero,.steps{grid-template-columns:minmax(0,1fr)}.hero{gap:2rem;padding-top:2.5rem}.help{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "toc" "body"}.help-toc{position:static;margin-top:.5rem}.step-art{height:15rem}.paper-small,.device-phone{height:12.5rem}.qlist{position:static;max-height:none}}@media(max-width:560px){h1{font-size:var(--step-2)}.topbar-inner{gap:.4rem;padding:.5rem .75rem;flex-wrap:nowrap}.topbar .brand-word,.account-name,.account-help,.public-nav-extra{display:none}.mainnav{gap:0}.mainnav a{padding:.35rem .55rem;font-size:var(--step--1);white-space:nowrap}.account{gap:.25rem}.account .button{padding:.3rem .55rem}.public-top-inner{padding:.6rem 1rem}.hero,.band{padding:2.25rem 1rem}.section-title{font-size:var(--step-2);margin-bottom:1.25rem}.hero-score{width:6rem;height:6rem}.hero-score-num{font-size:1.7rem}.promise{padding:1.25rem}.print-panel{grid-template-columns:minmax(0,1fr) 5rem;gap:.75rem}.setup-step{grid-template-columns:auto minmax(0,1fr)}.setup-step>.button{grid-column:2;justify-self:start}.help{padding:1.5rem 1rem 3rem}.main{padding:1.25rem 1rem 2rem}.add-student{grid-template-columns:1fr 1fr}.add-student .button{grid-column:1 / -1;justify-self:start}.data th,.data td{padding:.55rem .6rem}.meter{display:none}.viewport{padding:.5rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
