@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-900.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--pink:#ff007f;--blue:#0061ef;--grad:linear-gradient(135deg, var(--pink), var(--blue));--pink-text:#cc0060;--blue-text:#0053cc;--pink-soft:#ff007f14;--blue-soft:#0061ef12;--bg:#f6f6f8;--surface:#fff;--surface-2:#f1f1f4;--text:#1a1a1d;--muted:#5f5f66;--faint:#8a8a92;--line:#1a1a1d14;--line-strong:#1a1a1d26;--present:#1d7a12;--present-soft:#33bb221f;--absent:#c40202;--absent-solid:#c40202;--absent-soft:#f803030f;--warn-bg:#ffeb0038;--warn-line:#c8aa0073;--warn-text:#7d6300;--on-accent:#fff;--hover-row:#fafafb;--hover-nav:#1a1a1d0d;--line-hover:#1a1a1d40;--sidenav-w:240px;--shadow-sm:0 1px 2px #1a1a1d0f;--shadow:0 1px 2px #1a1a1d0a, 0 6px 20px -8px #1a1a1d1a;--shadow-lg:0 2px 6px #1a1a1d0f, 0 18px 48px -12px #1a1a1d38;--shadow-brand:0 6px 18px -6px #ff007f73, 0 2px 6px -2px #0061ef4d;--shadow-brand-hover:0 10px 24px -8px #ff007f8c, 0 3px 8px -2px #0061ef59;--ring:0 0 0 4px #0061ef2e;--radius:18px;--radius-sm:12px;--radius-lg:22px;--header-h:60px;--bottomnav-h:64px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Satoshi,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;font-weight:500;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);-webkit-tap-highlight-color:transparent;margin:0}::selection{background:#ff007f2e}h1{letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:900;line-height:1.15}h2{letter-spacing:-.015em;margin:0;font-size:1.2rem;font-weight:900;line-height:1.3}h3{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:0 0 6px;font-size:.72rem;font-weight:700}p{margin:0}strong,b{font-weight:700}main{max-width:1040px;margin:0 auto;padding:24px 16px}main.narrow{max-width:420px;padding-top:56px}main.teacher{max-width:680px;padding-bottom:24px}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.error{color:var(--absent);font-size:.9rem;font-weight:500}.ok{color:var(--present);font-size:.9rem;font-weight:500}.num{font-variant-numeric:tabular-nums}.absent-text{color:var(--absent);font-weight:700}.stack{flex-direction:column;gap:16px;display:flex}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filters{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.filters .full{flex-basis:100%}.filters>label:not(.check){flex:150px;max-width:280px}.card.stack>button{align-self:flex-start}.card,.roster,.classes,.table-wrap,fieldset.group,.doc,.enroll-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:20px}.banner{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--radius-sm);padding:12px 16px;font-size:.95rem}.empty{color:var(--muted);text-align:center;border:1.5px dashed var(--line-strong);border-radius:var(--radius);background:#ffffff80;padding:32px 16px}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}label{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;font-weight:700;display:flex}label.check{color:var(--text);flex-direction:row;align-items:center;gap:10px;font-size:.95rem;font-weight:500}input,select,textarea,button{font:inherit}input:not([type=checkbox],[type=radio]),select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);height:44px;color:var(--text);min-width:0;box-shadow:var(--shadow-sm);padding:0 14px;font-size:1rem;font-weight:500;transition:border-color .15s ease-out,box-shadow .15s ease-out}input:not([type=checkbox],[type=radio]):hover,select:hover,textarea:hover{border-color:var(--line-hover)}input::placeholder,textarea::placeholder{color:var(--faint)}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%235f5f66' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:38px}textarea{resize:vertical;width:100%;height:auto;padding:10px 14px}input:not([type=checkbox],[type=radio]):focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:var(--ring);outline:none}input:is([type=checkbox],[type=radio]){width:18px;height:18px;accent-color:var(--pink)}input:is([type=checkbox],[type=radio]):focus-visible{outline:2px solid var(--blue);outline-offset:2px}button{border:1px solid var(--line-strong);background:var(--surface);min-height:42px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-weight:700;transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out,transform .15s ease-out;display:inline-flex}:where(button:hover:not(:disabled)){background:var(--surface-2);border-color:var(--line-hover)}:where(button:active:not(:disabled)){transform:translateY(1px)}button:focus-visible{box-shadow:var(--ring);outline:none}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--grad);color:var(--on-accent);box-shadow:var(--shadow-brand);border-color:#0000}button.primary:hover:not(:disabled){box-shadow:var(--shadow-brand-hover)}button.primary:focus-visible{box-shadow:var(--shadow-brand), var(--ring)}button.primary:disabled{opacity:1;background:var(--surface-2);border-color:var(--line);color:var(--faint);box-shadow:none}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--hover-nav);color:var(--text)}button.link{min-height:0;color:var(--blue);text-align:left;background:0 0;border:0;border-radius:4px;justify-content:flex-start;padding:0;font-weight:700}button.link:hover:not(:disabled){text-underline-offset:3px;text-decoration:underline}a.contact{color:var(--blue);font-weight:700;text-decoration:none}a.contact:hover{text-underline-offset:3px;text-decoration:underline}button.x{min-width:30px;min-height:30px;color:var(--faint);background:0 0;border:0;padding:0}button.x:hover:not(:disabled){background:var(--absent-soft);color:var(--absent)}.icon{flex:none;display:block}.segmented{background:var(--hover-nav);scrollbar-width:none;border-radius:999px;gap:2px;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented button{min-height:36px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:0 16px}.segmented button:hover:not(:disabled){color:var(--text);background:#fff9}.segmented button.on,.segmented button.on:hover:not(:disabled){background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.segmented .sub{color:var(--muted);font-size:.85rem;font-weight:500}.top{z-index:20;height:var(--header-h);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#ffffffe0;align-items:center;gap:12px;padding:0 12px 0 20px;display:flex;position:sticky;top:0}.mark{background:var(--grad);width:32px;height:32px;color:var(--on-accent);box-shadow:var(--shadow-brand);border-radius:10px;flex:none;place-items:center;display:inline-grid}.mark.big{border-radius:16px;width:52px;height:52px;margin-bottom:20px}.school{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;min-width:0;font-size:1.02rem;font-weight:900;overflow:hidden}.spacer{flex:1}.top .who{color:var(--muted);white-space:nowrap;background:var(--surface-2);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:700}.logout{padding:0 12px}.login{text-align:center}.login .card{box-shadow:var(--shadow-lg);text-align:left;padding:32px 28px}.login h1{margin-bottom:6px}.login .lede{color:var(--muted);margin-bottom:24px}main.narrow form.stack>button{align-self:stretch;min-height:48px;font-size:1rem}.shell{grid-template-columns:var(--sidenav-w) minmax(0, 1fr);min-height:calc(100vh - var(--header-h));display:grid}.sidenav{background:var(--surface);border-right:1px solid var(--line)}.sidenav-inner{top:var(--header-h);max-height:calc(100vh - var(--header-h));flex-direction:column;gap:22px;padding:22px 14px;display:flex;position:sticky;overflow-y:auto}.navgroup{flex-direction:column;gap:2px;display:flex}.navlabel{text-transform:uppercase;letter-spacing:.1em;color:var(--faint);padding:0 12px 6px;font-size:.68rem;font-weight:700}.navitem{width:100%;min-height:40px;color:var(--muted);border-radius:var(--radius-sm);background:0 0;border:0;justify-content:flex-start;gap:12px;padding:0 12px;font-weight:700}.navitem:hover:not(:disabled){background:var(--hover-nav);color:var(--text)}.navitem.on,.navitem.on:hover:not(:disabled){background:var(--pink-soft);color:var(--pink-text)}.badge{background:var(--absent-solid);min-width:20px;height:20px;color:var(--on-accent);border-radius:999px;place-items:center;margin-left:auto;padding:0 6px;font-size:.72rem;font-weight:700;display:inline-grid}.badge.dot{width:8px;min-width:0;height:8px;box-shadow:0 0 0 2px var(--surface);padding:0;position:absolute;top:8px;left:calc(50% + 8px)}.content{flex-direction:column;gap:22px;width:100%;max-width:1120px;margin:0;padding:32px 36px 56px;display:flex}.bottomnav,.sheet,.scrim{display:none}@media (width<=899px){.shell{--bottom-inset:calc(var(--bottomnav-h) + env(safe-area-inset-bottom));display:block}.sidenav{display:none}.content{padding:20px 16px calc(var(--bottom-inset) + 32px);gap:18px}.bottomnav{z-index:30;height:var(--bottom-inset);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav button{color:var(--faint);background:0 0;border:0;border-radius:0;flex-direction:column;gap:3px;padding:0 2px;font-size:.7rem;font-weight:700;position:relative}.bottomnav button:hover:not(:disabled){color:var(--text)}.bottomnav button.on,.bottomnav button.on:hover:not(:disabled){color:var(--pink-text)}.scrim{z-index:25;background:#1a1a1d47;border:0;border-radius:0;display:block;position:fixed;inset:0}.sheet{z-index:28;left:10px;right:10px;bottom:calc(var(--bottom-inset) + 10px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;gap:2px;padding:8px;display:flex;position:fixed}.sheet .navitem{min-height:48px;color:var(--text)}}@media (width<=599px){.top{padding-left:16px}.top .who,.logout span{display:none}h1{font-size:1.5rem}}.roll-head{flex-direction:column;gap:14px;display:flex}.roll-head .segmented{align-self:flex-start}.day-pick{flex-wrap:wrap;align-items:flex-end;gap:6px 14px;display:flex}.day-pick label{flex:0 210px}.day-pick>span,.day-pick>button{align-items:center;min-height:44px;display:inline-flex}.roll{flex-direction:column;display:flex}.roster>li:last-child,.classes>li:last-child{border-bottom:0}.roster,.classes{margin:0;padding:0;list-style:none;overflow:hidden}.srow{border-bottom:1px solid var(--line);padding:6px 10px 6px 18px;transition:background-color .15s ease-out}.srow.absent{background:var(--absent-soft);box-shadow:inset 3px 0 0 var(--absent-solid)}.srow-main{align-items:center;gap:8px;min-height:52px;display:flex}.sname{flex-direction:column;flex:1;min-width:0;font-weight:700;line-height:1.25;display:flex}.sname>span:first-child{overflow-wrap:anywhere}.allergy{background:var(--absent-soft);color:var(--absent);overflow-wrap:anywhere;border-radius:999px;align-self:flex-start;margin-top:3px;padding:1px 8px;font-size:.74rem;font-weight:700;display:inline-flex}.pills{flex:none;gap:6px;display:flex}.pill{min-width:48px;min-height:44px;color:var(--muted);padding:0 14px;font-weight:700}.pill.present{--tone:var(--present);--tone-text:var(--present);--tone-soft:var(--present-soft)}.pill.absent{--tone:var(--absent-solid);--tone-text:var(--absent);--tone-soft:var(--absent-soft)}.pill .long{display:none}.pill:hover:not(:disabled){background:var(--tone-soft);border-color:var(--tone);color:var(--tone-text)}.pill.on,.pill.on:hover:not(:disabled){background:var(--tone);border-color:var(--tone);color:var(--on-accent)}.icon-btn{min-width:44px;min-height:44px;color:var(--faint);background:0 0;border-color:#0000;padding:0}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn.on{background:var(--blue-soft);color:var(--blue)}.notes{color:var(--muted);flex-direction:column;gap:2px;margin:0 0 8px;padding:0;font-size:.88rem;list-style:none;display:flex}.notes li{align-items:center;gap:4px;display:flex}.notes li:before{content:"";background:var(--grad);border-radius:50%;flex:none;width:5px;height:5px;margin-right:4px}.note-form{flex-direction:column;gap:8px;padding:4px 6px 12px 0;display:flex}.rollbar,.wizard-bar{bottom:calc(var(--bottom-inset,0px) + 14px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);position:sticky}.rollbar button.primary,.wizard-bar .buttons>button{min-height:46px;padding:0 22px}.rollbar{z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-top:14px;padding:10px 10px 10px 20px;display:flex}.rollbar .error{flex-basis:100%}.counts{color:var(--muted);font-variant-numeric:tabular-nums;gap:16px;font-size:.9rem;display:flex}.count b{color:var(--text);margin-right:3px;font-size:1.15rem;font-weight:900}.count.present b{color:var(--present)}.count.absent b{color:var(--absent)}.all-done{color:var(--present);align-items:center;gap:6px;min-height:44px;padding:0 8px;font-weight:700;display:inline-flex}@media (width>=480px){.pill{min-width:92px}.pill .short{display:none}.pill .long{display:inline}}@media (width<=479px){.roll-head .segmented{align-self:stretch}.roll-head .segmented button{flex:1}.rollbar{padding:10px}.counts{justify-content:space-between;width:100%;padding:0 8px}.rollbar button.primary{flex:1}}.dayline{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.dayline .day{letter-spacing:-.01em;font-size:1.15rem;font-weight:900}.class-row{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:18px 20px;display:flex}.class-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.class-head strong{font-size:1.08rem;font-weight:700}.status{white-space:nowrap;border-radius:999px;align-items:center;padding:3px 11px;font-size:.76rem;font-weight:700;display:inline-flex}.status.open{background:var(--warn-bg);color:var(--warn-text)}.status.done{background:var(--present-soft);color:var(--present)}.meter{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.meter span{border-radius:inherit;background:var(--grad);height:100%;transition:width .25s cubic-bezier(.22,1,.36,1);display:block}.class-foot{flex-wrap:wrap;gap:6px 16px;font-size:.9rem;display:flex}.class-foot .teachers{flex-basis:100%;font-size:.85rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:12px 14px}td{font-variant-numeric:tabular-nums}th{background:var(--surface);color:var(--faint);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-bottom-color:var(--line-strong);font-size:.7rem;font-weight:700}tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--hover-row)}tr.inactive td{color:var(--muted)}td.low{color:var(--absent);font-weight:700}.sticky-col{z-index:1;background:var(--surface);white-space:nowrap;position:sticky;left:0}th.sticky-col{z-index:2}tbody tr:hover td.sticky-col{background:var(--hover-row)}.detail{scroll-margin-top:calc(var(--header-h) + 12px)}.grade-picker{flex-wrap:wrap;gap:4px 14px;display:flex}td .grade-picker label.check{white-space:nowrap}td>input:not([type=checkbox],[type=radio]){width:11rem}main.enroll{max-width:720px;padding-bottom:32px}.stack.tight{gap:10px}.enroll-head{flex-direction:column;gap:6px;display:flex}.enroll-head h1{margin-bottom:10px}.eyebrow{color:var(--pink-text);font-size:.85rem;font-weight:700}.steps{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.steps li{color:var(--faint);border-top:3px solid var(--line-strong);border-radius:2px;align-items:center;gap:8px;padding-top:10px;font-size:.85rem;font-weight:700;display:flex}.steps li:is(.past,.on){border-image:var(--grad) 1;color:var(--muted)}.steps li.on{color:var(--text)}.steps .dot{background:var(--surface-2);border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:.78rem;font-weight:700;display:inline-grid}.steps li:is(.past,.on) .dot{background:var(--grad);color:var(--on-accent)}@media (width<=479px){.steps li:not(.on) .lbl{display:none}}fieldset.group{flex-direction:column;gap:14px;min-width:0;margin:0;padding:20px;display:flex}fieldset.group legend{float:left;letter-spacing:-.015em;width:100%;color:var(--text);margin:0;padding:0;font-size:1.2rem;font-weight:900}.grid2,.grid3{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.grid2>*,.grid3>*{min-width:0}:is(.grid2,.grid3) :is(input:not([type=checkbox],[type=radio]),select),fieldset.group>label>input:not([type=checkbox],[type=radio]){width:100%}.grid2 label.check,.grid3 label.check{min-height:44px}.grid2.tight{gap:8px}.grid3{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-items:end}.span2{grid-column:1/-1}@media (width<=479px){.grid2:not(.tight){grid-template-columns:minmax(0,1fr)}}.choices{flex-direction:column;gap:10px;display:flex}.choices label.check,.radios label.check{min-height:32px}.radios{flex-direction:column;gap:6px;display:flex}.radios-label{color:var(--muted);font-size:.85rem;font-weight:700}input[type=radio]{margin:0}.opt{font-weight:500}.hint{color:var(--faint);font-size:.8rem;font-weight:500}button.add{color:var(--blue-text);align-self:flex-start}button.add:hover:not(:disabled){background:var(--blue-soft);border-color:#0061ef66}fieldset.group>button.ghost{align-self:flex-start}label.fee select{max-width:320px}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.consent{align-items:flex-start}.consent input{flex:none;margin-top:3px}.wizard-bar{z-index:5;flex-direction:column;gap:8px;padding:10px;display:flex}main:not(.content) .wizard-bar{bottom:calc(14px + env(safe-area-inset-bottom))}.wizard-bar .error{padding:0 8px}.wizard-bar .buttons{justify-content:flex-end}.wizard-bar .buttons .primary{min-width:160px}.wizard-bar .ok{padding:0 6px}@media (width<=479px){.wizard-bar .buttons>button{flex:1}}.plans{gap:10px;display:grid}.plan{border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;flex-direction:row;align-items:flex-start;gap:12px;padding:16px;font-size:.95rem;font-weight:500;transition:border-color .15s ease-out,background-color .15s ease-out}.plan:hover{border-color:#ff007f73}.plan>span{flex-direction:column;gap:2px;display:flex}.plan input{margin-top:2px}.plan.on{border-color:var(--pink);background:var(--pink-soft)}.initials-input{max-width:160px}.initials-input input{text-transform:uppercase;letter-spacing:.08em;font-weight:700}.docs{flex-direction:column;gap:16px;display:flex}.doc{flex-direction:column;gap:10px;padding:24px;font-size:.95rem;line-height:1.6;display:flex}.doc p{max-width:70ch}.doc-title{text-align:center;margin-bottom:4px;font-size:1.2rem;font-weight:900}.doc-h{margin:10px 0 0;font-size:.85rem}.doc-li{padding-left:18px;position:relative}.doc-li:before{content:"";background:var(--muted);border-radius:999px;width:5px;height:5px;position:absolute;top:.7em;left:4px}.initials-row{border-top:1px dashed var(--line-strong);justify-content:flex-end;padding:10px 0 0;display:flex}.initial-btn{min-width:120px;min-height:44px}.initial-btn.on{background:var(--present-soft);border-color:var(--present);color:var(--present)}.initialed{letter-spacing:.08em;color:var(--text);font-weight:700}.sigpad{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);position:relative}.sigpad canvas{touch-action:none;width:100%;height:180px;color:var(--text);cursor:crosshair;display:block}.sigpad .sigline{border-top:1px solid var(--line-strong);color:var(--faint);pointer-events:none;padding-top:4px;font-size:.8rem;position:absolute;bottom:36px;left:18px;right:18px}.sigpad button{position:absolute;top:8px;right:8px}.linkbox{overflow-wrap:anywhere;color:var(--muted);background:var(--surface-2);border-radius:10px;padding:8px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}a.button-link{border:1px solid var(--line-strong);min-height:42px;color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}a.button-link:hover{background:var(--surface-2)}.packet-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.signatures{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.signed{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:4px;padding:14px;display:flex}.signed img{object-fit:contain;object-position:left;width:100%;max-height:110px}.sig-missing{height:80px;color:var(--muted);border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);place-items:center;display:grid}main.enroll a,.packet a{color:var(--blue);font-weight:700}@media (width<=479px){table.prices th,table.prices td{padding:8px}table.prices th{font-size:.66rem}}table.prices tfoot td{background:var(--surface-2);font-weight:900}.status.muted{background:var(--surface-2);color:var(--muted)}.enrollments{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.enroll-row{text-align:left;white-space:normal;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 18px;font-weight:500;display:flex}.enroll-row:hover:not(:disabled){background:var(--surface);border-color:var(--line-strong)}.enroll-row.on{border-color:var(--pink);box-shadow:var(--shadow), 0 0 0 3px var(--pink-soft)}.enroll-row .who{flex-direction:column;gap:2px;min-width:0;display:flex}.enroll-row .meta{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}@media (width<=599px){.enroll-row{flex-direction:column;align-items:flex-start}.enroll-row .meta{align-items:flex-start}}.enrollments .detail{margin-top:8px}ul.plain{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}textarea.template{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;line-height:1.5}.help summary{cursor:pointer;color:var(--blue);font-weight:700}.help code{background:var(--surface-2);border-radius:6px;padding:1px 5px;font-size:.8rem}.settings .program{align-items:end}main.teacher.wide{max-width:1080px}.teacher-tabs{margin-bottom:20px}input.find{flex:0 280px;min-width:0}.upcoming{margin-bottom:16px}.event-list>li{overflow-wrap:anywhere;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.event-details{white-space:pre-line;color:var(--muted);margin:4px 0 0}.file-tabs{border-radius:22px;flex-wrap:wrap;align-self:flex-start;max-width:100%}table.students td{vertical-align:top}.note-cell{min-width:120px;max-width:170px;padding-right:16px!important}table.students select{width:auto;max-width:150px}table.students td.allergy-cell{min-width:96px}.note-last{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:500;display:-webkit-box;overflow:hidden}.notes-row td{background:var(--surface-2)}.parent-cell{flex-wrap:wrap;align-items:baseline;column-gap:4px;min-width:140px;display:flex}.parent-cell .muted{overflow-wrap:anywhere;flex-basis:100%;order:3}.staff-name{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.small-btn{min-height:30px;padding:0 8px;font-size:.8rem}.cal-item{align-items:baseline;gap:14px;padding:6px 0;display:flex}.cal-date{flex:none;width:96px;font-weight:700}.cal-closed .cal-date{color:var(--absent)}.allergy-banner{background:var(--absent-soft);border-color:var(--absent-solid);color:var(--absent)}.list.parents>li,.list.day-notes>li{overflow-wrap:anywhere;flex-direction:column;gap:2px;display:flex}.list.parents a:not(.contact){color:var(--muted)}table.gradebook td,table.gradebook th{white-space:nowrap}table.gradebook td.num{font-weight:700}.score-entry{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 18px;margin:0;padding:0;list-style:none;display:grid}.score-entry li{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 88px auto;align-items:center;gap:8px;min-height:52px;display:grid}.score-entry li>span:first-child{overflow-wrap:anywhere}.score-entry input{width:100%}.grade-mark{font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:900}.grade-mark.low{color:var(--absent)}.buttons.nowrap{flex-wrap:nowrap;justify-content:flex-end}table.scores td:last-child{width:1%}table.scores td:nth-child(2){white-space:nowrap}.q-short{display:none}@media (width<=479px){.q-long{display:none}.q-short{display:inline}table.scores th,table.scores td{padding:8px}}.quarter-row{border-bottom:1px solid var(--line);padding-bottom:10px}.comments{white-space:pre-wrap;max-width:70ch;line-height:1.6}.preview{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:20px}main.report{flex-direction:column;gap:20px;max-width:780px;padding-top:32px;padding-bottom:40px;display:flex}.reportcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:32px;position:relative;overflow:hidden}.reportcard:before{content:"";background:var(--grad);height:5px;position:absolute;inset:0 0 auto}.preview .reportcard{box-shadow:var(--shadow)}@media (width<=599px){.reportcard{border-radius:20px;padding:22px 18px}}.facts{background:var(--surface-2);border-radius:var(--radius-sm);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px 20px;margin:0;padding:16px 18px;display:grid}.facts dt{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-size:.7rem;font-weight:700}.facts dd{margin:3px 0 0;font-weight:700}table.marks th.now,table.marks td.now{background:var(--blue-soft)}table.marks th.now{color:var(--blue-text)}table.marks td.now{font-weight:900}.reportcard .table-wrap{box-shadow:none}@media (width<=479px){table.marks th,table.marks td{padding:8px}}.score-entry select{grid-column:span 2}td.skills-cell{color:var(--muted);white-space:normal}td.skills-cell strong{color:var(--text)}.concept-list,.concept-marks{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.concept-list li,.concept-marks li{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:52px;padding:6px 0;display:flex}.concept-list li:last-child,.concept-marks li:last-child{border-bottom:0}.grow{overflow-wrap:anywhere;flex:1;min-width:0}.add-row{align-items:center;gap:8px;display:flex}.add-row input{flex:1;min-width:0}@media (width<=599px){.concept-marks li{flex-direction:column;align-items:stretch;gap:6px}.concept-marks .segmented{display:flex}.concept-marks .segmented button{white-space:normal;flex:1;padding-inline:6px;line-height:1.2}}ul.concepts{flex-direction:column;gap:6px;margin:0;padding-left:20px;line-height:1.5;display:flex}ul.concepts li::marker{color:var(--pink)}@media print{.page-title,.top,.sidenav,.bottomnav,.no-print,.wizard-bar,.enroll-row,.card.row-between,.segmented{display:none!important}table.marks th.now,table.marks td.now{background:0 0!important}.reportcard:before{display:none}body,main,.doc,.signed,.table-wrap,.card,.reportcard,.facts{box-shadow:none!important;background:0 0!important;border-color:#ccc!important}.reportcard{border:0;padding:0}.shell{display:block}.doc{break-inside:auto}.initials-row,.signed{break-inside:avoid}}.feature-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.feature-row p{margin:4px 0 0}.switch{cursor:pointer;flex-direction:row;flex:none;align-items:center;gap:8px;font-weight:700;display:inline-flex}.switch input{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:999px;width:44px;height:26px;margin:0;transition:background .15s;position:relative}.switch input:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch input:checked{background:var(--blue)}.switch input:checked:after{transform:translate(18px)}.switch input:disabled{opacity:.5;cursor:not-allowed}.switch span{min-width:2.2em}.banner.billing{text-align:center;border-width:0 0 1px;border-radius:0;margin:0}.paused h1{margin-bottom:0}
