:root{--ink:#1a1a1a;--ink-hover:#383838;--accent:#ce4639;--accent-strong:#af3b30;--text:#222;--tint:#f2f0ee;--rule:#e1dfdc;--rule-strong:#948d87;--field-border:#6b6560;--page:#f6f5f3;--review:#eae6e1;--surface:#fff;--focus:#175cd3;--danger:#ce4639;--danger-strong:#af3b30;--title-font:Georgia, "Times New Roman", serif;color:var(--text);background:var(--page);font-synthesis:none;text-rendering:optimizelegibility;font-family:system-ui,sans-serif;line-height:1.6}*{box-sizing:border-box}body{margin:0;padding:2rem 1rem}.layout{max-width:48rem;margin:0 auto}.masthead{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding:0 .25rem 1rem;display:flex}.school-name{color:var(--text);align-items:center;gap:.9rem;text-decoration:none;display:flex}.crest{flex:none;width:3.5rem;height:3.5rem}.site-title{font-family:var(--title-font);letter-spacing:.09em;text-transform:uppercase;font-size:clamp(1.15rem,3.4vw,1.6rem);font-weight:700;line-height:1.2;display:block}.school-name:hover .site-title{text-decoration:underline}.site-subtitle{margin-top:.15rem;font-size:.9rem;line-height:1.4;display:block}.account-area{margin-left:auto}.account{text-align:right;margin:0;font-size:.95rem}.navbar{background:var(--surface);border:1px solid var(--rule);border-radius:.5rem;margin-bottom:1.5rem;padding:0 clamp(.75rem,3vw,1.5rem)}.navbar ul{flex-wrap:wrap;gap:0 clamp(1.25rem,5vw,3rem);margin:0;padding:0;list-style:none;display:flex}.navbar a{color:var(--accent);border-bottom:3px solid #0000;padding:.85rem 0;font-weight:700;text-decoration:none;display:inline-block}.navbar a:hover{border-bottom-color:var(--rule-strong)}.navbar a[aria-current]{color:var(--text);border-bottom-color:var(--accent)}main{border:1px solid var(--rule);background:var(--surface);border-radius:.5rem;overflow:hidden}.page-title{background:var(--ink);color:var(--surface);font-family:var(--title-font);letter-spacing:.08em;text-transform:uppercase;margin:0;padding:clamp(.9rem,3vw,1.4rem) clamp(1rem,4vw,3rem);font-size:clamp(1.4rem,4vw,2rem);font-weight:700;line-height:1.25}.page-body{overflow-wrap:anywhere;min-width:0;padding:clamp(1rem,4vw,3rem)}a{color:var(--accent-strong);text-underline-offset:.2em}a[aria-current=page]{font-weight:700;text-decoration-thickness:.2em}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.skip-link{background:var(--surface);padding:.5rem 1rem;position:absolute;top:-10rem}.skip-link:focus{top:.5rem}h2{font-family:var(--title-font);font-size:1.3rem;line-height:1.25}fieldset{border:1px solid var(--rule-strong);border-radius:.4rem;min-width:0;margin:1.5rem 0;padding:1rem}legend{padding:0 .4rem;font-weight:700}.form-content{border:0;margin:0;padding:0}.form-field{min-width:0;margin:1rem 0}.form-field:is(label){display:block}.form-field label{margin-bottom:.35rem;font-weight:600;display:block}.form-field label span{font-size:.875rem;font-weight:400}input,select,textarea,button{font:inherit}.form-field input,select,textarea{width:100%;min-width:0;min-height:2.75rem;color:var(--text);background:var(--surface);border:1px solid var(--field-border);border-radius:.25rem;padding:.55rem}textarea{resize:vertical}button{border:1px solid var(--ink);background:var(--ink);min-height:2.75rem;color:var(--surface);cursor:pointer;border-radius:.25rem;padding:.6rem 1rem}button:hover:not(:disabled){background:var(--ink-hover);border-color:var(--ink-hover);color:var(--surface)}button:disabled,button[aria-disabled=true]{opacity:.6;cursor:wait}.secondary-button{color:var(--text);background:var(--surface)}.choice{cursor:pointer;align-items:flex-start;gap:.7rem;margin:1rem 0;display:flex}.choice input{width:1.25rem;height:1.25rem;accent-color:var(--ink);flex:0 0 1.25rem;margin:.25rem 0}.form-notice{background:var(--tint);border-left:4px solid var(--ink);margin:1rem 0;padding:.8rem 1rem}.error-summary{border:2px solid var(--danger);overflow-wrap:anywhere;margin:1rem 0;padding:1rem}.field-error{color:var(--danger-strong);margin:.3rem 0;font-weight:600}[aria-invalid=true]{border:2px solid var(--danger)!important}.field-hint{font-size:.9rem}.turnstile-widget{max-width:100%;margin:1rem 0;overflow-x:auto}.table-scroll{width:100%;max-width:100%;margin:1rem 0;position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:34rem}caption{text-align:left;padding-bottom:.5rem;font-weight:700}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);padding:.6rem .75rem .6rem 0}thead th{border-bottom:2px solid var(--rule-strong);white-space:nowrap}.reference{overflow-wrap:anywhere;font-family:ui-monospace,Cascadia Mono,Segoe UI Mono,monospace;font-size:.8rem;font-weight:400}.student-list{margin:0;padding-left:1.1rem}.address{white-space:pre-line}.pagination{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:1rem;display:flex}.pagination p{margin:0}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:2.5rem;display:flex}.section-heading h2{margin:0}.area-nav{border-bottom:1px solid var(--rule);margin:0 0 1.5rem}.area-nav ul{flex-wrap:wrap;gap:0 1rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.area-nav a{border-bottom:3px solid #0000;padding:.4rem 0;font-weight:600;text-decoration:none;display:inline-block}.area-nav a:hover{border-bottom-color:var(--rule-strong)}.area-nav a[aria-current]{color:var(--text);border-bottom-color:var(--accent)}.area-nav+section>.section-heading:first-child{margin-top:0}.area-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin:0 0 1rem;display:flex}.area-cards{grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.area-card{border:1px solid var(--rule-strong);border-radius:.4rem;min-width:0;padding:0 1rem .75rem}.area-card h2{margin:.9rem 0 .4rem}.area-card p{margin:.4rem 0}.area-attention{border-left:4px solid var(--accent);padding-left:.6rem;font-weight:600}.teacher-form{border-top:2px solid var(--rule-strong);min-width:0;margin-top:1.5rem;padding-top:.5rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.register-list{margin:1rem 0;padding:0;list-style:none}.register-row{border-top:1px solid var(--rule);padding:.75rem 0}.register-row:last-child{border-bottom:1px solid var(--rule)}.register-row p{margin:0}.register-choice{border:0;margin:0;padding:0}.register-name{padding:0;font-weight:700;display:block}.register-options{flex-wrap:wrap;gap:0 1.75rem;display:flex}.register-options .choice{margin:.4rem 0}.register-recorded{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.register-recorded button{min-height:2.25rem;padding:.35rem .9rem}.save-confirmation{font-weight:700}.register-row .register-leave{border-left:3px solid var(--ink);margin:.2rem 0;padding-left:.6rem;font-size:.9rem}.leave-unavailable,.unplaced-students{margin-top:.4rem;font-weight:600}.student-list li+li{margin-top:.6rem}.class-status,.enrolment-status{display:block}.student-actions{flex-wrap:wrap;gap:.3rem .5rem;margin-top:.3rem;display:flex}.student-action{min-height:2.25rem;padding:.35rem .9rem}.download-row{flex-wrap:wrap;align-items:flex-end;gap:0 1rem;display:flex}.download-row .form-field{flex:0 12rem}.download-row button{margin-bottom:1rem}.enrolment-form,.placement-form,.retention-form,.calendar-form{border-top:2px solid var(--rule-strong);min-width:0;margin-top:1.5rem;padding-top:.5rem}.calendar-year{max-width:12rem}.calendar-table{overflow-wrap:normal;min-width:36rem}.calendar-date,.calendar-day{display:block}.calendar-table th[scope=row]{width:20%}.calendar-detail{overflow-wrap:anywhere;display:block}.calendar-actions{flex-direction:column;align-items:flex-start;gap:.3rem;display:flex}.calendar-actions button{white-space:nowrap;min-height:2.25rem;padding:.35rem .9rem}.calendar-registers .choice{margin:.6rem 0}.overview-table{overflow-wrap:normal;min-width:34rem}.overview-table th[scope=row]{width:25%}.overview-classes{margin:0;padding-left:1.1rem}.overview-classes li+li{margin-top:.3rem}.overview-unexpected{overflow-wrap:anywhere;padding-left:1.1rem}.overview-unexpected li+li{margin-top:.5rem}.leave-cost{overflow-wrap:anywhere}:root{--light-red:#b3261e;--light-red-tint:#fdecea;--light-amber:#f2b705;--light-amber-edge:#7a4a00;--light-amber-tint:#fff5d6;--light-green:#1e7b3c;--light-green-tint:#e9f5ec}.staffing-short{--light:var(--light-red);--light-edge:var(--light-red);--light-text:var(--surface);--light-tint:var(--light-red-tint)}.staffing-at-risk{--light:var(--light-amber);--light-edge:var(--light-amber-edge);--light-text:var(--ink);--light-tint:var(--light-amber-tint)}.staffing-enough{--light:var(--light-green);--light-edge:var(--light-green);--light-text:var(--surface);--light-tint:var(--light-green-tint)}.staffing-status{border:1px solid var(--light-edge);background:var(--light);color:var(--light-text);white-space:nowrap;border-radius:1rem;padding:.05rem .6rem;font-weight:700;display:inline-block}.staffing-key{flex-wrap:wrap;gap:.5rem 1.5rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.staffing-key li{flex-wrap:wrap;align-items:center;gap:.2rem .5rem;display:flex}.staffing-table{overflow-wrap:normal;border-collapse:separate;border-spacing:0 .4rem;min-width:38rem}.staffing-table th[scope=row]{width:22%}.staffing-table tbody th,.staffing-table tbody td{background:var(--light-tint);border-bottom:0}.staffing-table tbody th{border-left:8px solid var(--light);border-radius:.3rem 0 0 .3rem;padding-left:.75rem}.staffing-table tbody td:last-child{border-radius:0 .3rem .3rem 0}.staffing-table .staffing-status{margin-bottom:.2rem}.staffing-table .overview-classes li{white-space:nowrap}:root{--class:#1b5e37;--class-tint:#e6f3ea;--event:#1f4e8c;--event-tint:#e7eef8;--inset:#7a4a00;--inset-tint:#fcf1de;--holiday:#a12a22;--holiday-tint:#fbe8e6;--noted:#5f5a55}.term-teaching{--kind:var(--class);--kind-tint:var(--class-tint)}.term-event{--kind:var(--event);--kind-tint:var(--event-tint)}.term-inset{--kind:var(--inset);--kind-tint:var(--inset-tint)}.term-holiday,.term-unlisted{--kind:var(--holiday);--kind-tint:var(--holiday-tint)}.term-noted{--kind:var(--noted);--kind-tint:var(--surface)}.coming-up{border:1px solid var(--rule-strong);border-radius:.5rem;margin:1rem 0 1.5rem;padding:0 1rem 1rem}.coming-up h2{margin:.8rem 0 .6rem}.coming-up-next{border-left:6px solid var(--class);background:var(--class-tint);color:var(--class);border-radius:.25rem;flex-wrap:wrap;align-items:baseline;gap:.2rem .75rem;margin:0;padding:.7rem 1rem;display:flex}.coming-up-label{letter-spacing:.06em;text-transform:uppercase;flex-basis:100%;font-size:.8rem;font-weight:700}.coming-up-date{font-family:var(--title-font);font-size:1.35rem}.coming-up-alert{border-left:6px solid var(--inset);background:var(--inset-tint);color:var(--inset);border-radius:.25rem;margin:.6rem 0 0;padding:.6rem 1rem}.coming-sundays{grid-template-columns:repeat(auto-fit,minmax(min(8.5rem,100%),1fr));gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.coming-sunday{border:1px solid var(--kind);background:var(--kind-tint);color:var(--kind);border-left-width:6px;border-radius:.25rem;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.45rem .7rem;display:flex}.coming-sunday-date{font-weight:700}.coming-sunday-kind{font-size:.9rem}.term-badge{border:1px solid var(--kind);background:var(--kind-tint);color:var(--kind);border-radius:1rem;padding:.05rem .55rem;font-size:.9rem;font-weight:700;display:inline-block}.term-show{flex-wrap:wrap;gap:.25rem 1.25rem;margin:1rem 0;display:flex}.term-show-choice{cursor:pointer;align-items:center;gap:.4rem;display:flex}.term-show-choice input{width:1.15rem;height:1.15rem;accent-color:var(--ink);margin:0}.term-list{margin:.5rem 0 1.5rem;padding:0;list-style:none}.term-day{border:1px solid var(--rule);border-left:6px solid var(--kind);border-radius:.25rem;align-items:flex-start;gap:.9rem;margin:.4rem 0;padding:.5rem .75rem;display:flex}.term-day p{margin:.1rem 0}.term-day.term-event,.coming-sunday.term-event{border-left-style:double}.term-day.term-inset,.coming-sunday.term-inset{border-left-style:dashed}.coming-sunday.term-unlisted{border-left-style:dotted}.term-without{background:var(--kind-tint)}.term-date{color:var(--kind);flex-direction:column;flex:0 0 3rem;align-items:center;line-height:1.15;display:flex}.term-weekday,.term-month{letter-spacing:.05em;text-transform:uppercase;font-size:.75rem}.term-number{font-size:1.35rem;font-weight:700}.term-body{flex:1;min-width:0}.term-heading{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;display:flex}.term-label{font-weight:600}.term-description{overflow-wrap:anywhere}.term-tag{border:1px solid;border-radius:.25rem;padding:0 .45rem;font-size:.8rem;font-weight:700;display:inline-block}.term-tbc{color:var(--inset);border-style:dashed}.term-next{box-shadow:0 0 0 2px var(--class)}.term-next-tag{border-color:var(--class);background:var(--class);color:var(--surface)}.term-past-tag{color:var(--noted);font-weight:400}.term-past .term-date{color:var(--noted)}.term-day.term-noted{color:var(--noted);border-left-style:dotted;border-left-width:3px;align-items:baseline;margin:.15rem 0;padding:.15rem .75rem;font-size:.9rem}.term-noted .term-date{flex-direction:row;flex:0 0 5.5rem;align-items:baseline;font-weight:600}.term-noted .term-body{flex-wrap:wrap;align-items:baseline;gap:0 .5rem;display:flex}.term-over summary{cursor:pointer;padding:.35rem 0;font-weight:600}.subscribe{border-top:2px solid var(--rule-strong);margin-top:2rem;padding-top:.5rem}.subscribe-link{background:var(--ink);color:var(--surface);border-radius:.25rem;padding:.6rem 1rem;font-weight:700;text-decoration:none;display:inline-block}.subscribe-link:hover{background:var(--ink-hover)}.next-school-day{margin-top:1.5rem}.next-school-day h2{margin-bottom:.4rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=560px){.masthead{gap:.5rem 1rem;padding-bottom:.85rem}.account-area{flex-basis:100%;margin-left:0}.account{text-align:left}.crest{width:2.75rem;height:2.75rem}.navbar ul{gap:0 1.25rem}.teacher-table{table-layout:fixed;min-width:0;font-size:.85rem}.teacher-table th,.teacher-table td{overflow-wrap:anywhere;padding-right:.35rem}.teacher-table thead th{white-space:normal}.teacher-table button{padding:.35rem}}@media (width<=420px){.form-row{grid-template-columns:1fr;gap:0}fieldset{padding:.75rem}.form-content{padding:0}}.check-section{border:1px solid var(--rule-strong);border-radius:.4rem;margin:1.5rem 0;padding:0 1rem .75rem}.check-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem 1rem;display:flex}.check-heading h3{margin:.9rem 0 .5rem}.check-heading button{min-height:2.25rem;padding:.35rem .9rem}.check-list{margin:0}.check-list>div{border-top:1px solid var(--rule);grid-template-columns:11rem 1fr;gap:.2rem 1rem;padding:.55rem 0;display:grid}.check-list dt{font-weight:600}.check-list dd{white-space:pre-line;overflow-wrap:anywhere;margin:0}.check-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.explainer{margin:.5rem 0 1rem}.explainer summary{cursor:pointer;padding:.35rem 0;font-weight:600}.explainer p{margin:.5rem 0}::placeholder{color:var(--field-border);opacity:1}@media (width<=560px){.check-list>div{grid-template-columns:1fr}.check-heading{justify-content:flex-start}}.steps{flex-wrap:wrap;gap:.5rem 1.75rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.steps li{color:var(--field-border);align-items:center;gap:.55rem;font-weight:600;display:flex}.steps li[aria-current=step]{color:var(--text)}.steps li span{border:2px solid var(--rule-strong);background:var(--surface);border-radius:50%;flex:none;place-items:center;width:1.75rem;height:1.75rem;font-size:.85rem;display:grid}.steps li[aria-current=step] span{border-color:var(--ink);background:var(--ink);color:var(--surface)}.form-content.check-view{background:var(--review);border:1px solid var(--rule-strong);border-radius:.5rem;padding:clamp(.75rem,3vw,1.25rem)}.not-sent{background:var(--surface);border-left:4px solid var(--accent);border-radius:.25rem;margin:0 0 1.25rem;padding:.8rem 1rem}.check-section>h2{margin:.9rem 0 .5rem}.check-section h3{margin:1rem 0 .4rem}.decision-list{overflow-wrap:anywhere;margin:.5rem 0 1rem;padding-left:1.1rem}.decision-list li+li{margin-top:.5rem}.erasure-form{border-top:2px solid var(--rule-strong);min-width:0;margin-top:1.5rem;padding-top:.5rem}
