.admin-console{padding-block:1.5rem 3rem}.admin-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-block:1rem}.admin-notice{margin-block:.75rem;color:var(--accent)}.admin-directory{display:block;overflow-x:auto;width:100%;border-collapse:collapse;white-space:nowrap}.admin-directory th,.admin-directory td{padding:.6rem .75rem;text-align:start;border-block-end:1px solid var(--border)}.admin-directory thead th{color:var(--text-muted);font-size:.8125rem;font-weight:700}.admin-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-actions button,.admin-actions select,.admin-filters select{min-height:44px}.availability-page,.availability-week,.availability-list,.availability-day,.availability-row,.availability-fields{display:grid;gap:1rem}.availability-page{padding-block-end:3rem}.availability-panel,.availability-notice{min-inline-size:0;padding:clamp(1rem,3vw,1.5rem);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 1rem 2.5rem var(--shadow)}.availability-panel__header{margin-block-end:1rem}.availability-panel__header--actions,.availability-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:.75rem}.availability-panel__header h2,.availability-panel__header p,.availability-empty,.availability-feedback,.availability-notice p{margin:0}.availability-panel__header h2{font-size:clamp(1.25rem,4vw,1.75rem)}.availability-panel__header p,.availability-empty,.availability-notice{color:var(--text-muted);line-height:1.5}.availability-day{min-inline-size:0;margin:0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-md)}.availability-day legend{padding-inline:.4rem;color:var(--accent);font-size:1rem;font-weight:800}.availability-row{min-inline-size:0;padding:1rem;border:1px solid var(--border);border-inline-start:.25rem solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-raised)}.availability-row--dirty{border-inline-start-color:var(--warn)}.availability-field{display:grid;gap:.4rem;min-inline-size:0;font-size:.875rem;font-weight:750}.availability-field input,.availability-field select{min-block-size:2.75rem;inline-size:100%;min-inline-size:0;padding-inline:.75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit}.availability-toggle{display:flex;min-block-size:2.75rem;align-items:center;gap:.6rem;padding-inline:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-weight:750}.availability-toggle input{inline-size:1.25rem;block-size:1.25rem}.availability-button{min-block-size:2.75rem;min-inline-size:2.75rem;padding:.65rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;font:inherit;font-weight:800}.availability-button--primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.availability-button:disabled,.availability-field input:disabled,.availability-field select:disabled,.availability-toggle:has(input:disabled){cursor:not-allowed;opacity:.55}.availability-button:focus-visible,.availability-field input:focus-visible,.availability-field select:focus-visible,.availability-toggle:focus-within{outline:.1875rem solid var(--focus);outline-offset:.1875rem}.availability-feedback[role=alert],.availability-notice--error{color:var(--warn)}.availability-guidance{color:var(--text-muted);margin:0}.sick-day__content,.sick-day__preview,.sick-day__checklist{display:grid;gap:.75rem}.sick-day__preview,.sick-day__checklist{margin:0;padding:0;list-style:none}.sick-day__preview li,.sick-day__checklist li{display:flex;min-block-size:2.75rem;align-items:center;flex-wrap:wrap;gap:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}.sick-day__preview li span,.sick-day__checklist li a{margin-inline-start:auto}.sick-day__checklist li a{color:var(--accent);font-weight:800}.sick-day__checklist li a:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.1875rem}@media(min-width:48rem){.availability-week,.availability-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}.pin-confirm{display:grid;gap:.875rem}.pin-confirm__preview{position:relative;overflow:hidden;min-block-size:15rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:linear-gradient(var(--accent-soft) 1px,transparent 1px),linear-gradient(90deg,var(--accent-soft) 1px,transparent 1px),var(--surface-raised);background-size:2rem 2rem;cursor:crosshair;touch-action:none}.pin-confirm__grid{position:absolute;inset:12%;border:1px dashed var(--border-strong);border-radius:50%;pointer-events:none}.pin-confirm__pin{position:absolute;display:grid;inline-size:2.75rem;block-size:2.75rem;transform:translate(-50%,-50%) rotate(-45deg);place-items:center;border:0;border-radius:50% 50% 50% 0;background:var(--accent);box-shadow:0 .625rem 1.5rem var(--shadow);color:var(--on-accent);cursor:grab}.pin-confirm__pin>span{inline-size:.75rem;block-size:.75rem;border-radius:50%;background:var(--on-accent)}.pin-confirm__axis-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.pin-confirm__axis{display:grid;min-block-size:2.75rem;padding:.5rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);cursor:ew-resize}.pin-confirm__axis:first-child{cursor:ns-resize}.pin-confirm__axis>span{color:var(--text-muted);font-size:.75rem;font-weight:700}.pin-confirm__axis>strong{font-variant-numeric:tabular-nums}.pin-confirm__axis:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.25rem}.pin-confirm__axis[aria-disabled=true]{cursor:not-allowed;opacity:.58}.pin-confirm__details{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;color:var(--text-muted);font-size:.875rem}.pin-confirm__details output{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.pin-confirm__details a{min-block-size:2.75rem;color:var(--accent);font-weight:700;line-height:2.75rem}.pin-confirm__help{flex-basis:100%;margin:0;line-height:1.5}.busy-sheet__header,.busy-sheet__actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.busy-field-help{margin:0;color:var(--text-muted);line-height:1.5}.busy-sheet__header h2,.busy-sheet__header p{margin:0}.busy-sheet-backdrop{position:fixed;z-index:50;inset:0;display:grid;align-items:end;background:var(--shadow)}.busy-sheet{max-block-size:92dvh;overflow-y:auto;padding:1rem;border:1px solid var(--border-strong);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface);box-shadow:0 1rem 3rem var(--shadow)}.busy-sheet__header{position:sticky;z-index:1;inset-block-start:-1rem;margin:-1rem -1rem 1rem;padding:1rem;border-block-end:1px solid var(--border);background:var(--surface)}.busy-sheet__header p{color:var(--accent);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.busy-sheet__header h2{margin-block-start:.25rem}.busy-sheet__close{min-block-size:2.75rem;min-inline-size:2.75rem;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;font:inherit;font-size:1.5rem;font-weight:750}.busy-sheet__close:disabled{cursor:not-allowed;opacity:.55}.busy-sheet__close:focus-visible,.busy-field input:focus-visible,.busy-field select:focus-visible,.busy-choice-row input:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.1875rem}.busy-form,.busy-fieldset,.busy-field-grid,.busy-location-new{display:grid;gap:1rem}.busy-fieldset{min-inline-size:0;margin:0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-md)}.busy-fieldset legend{padding-inline:.35rem;color:var(--accent);font-weight:800}.busy-field{display:grid;gap:.4rem;min-inline-size:0;font-size:.875rem;font-weight:750}.busy-field input,.busy-field select{min-block-size:2.75rem;inline-size:100%;min-inline-size:0;padding-inline:.75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit}.busy-choice-row{display:flex;flex-wrap:wrap;gap:.75rem}.busy-choice-row label{display:flex;min-block-size:2.75rem;align-items:center;gap:.5rem;padding-inline:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.busy-field-help{grid-column:1 / -1;font-size:.8125rem}.busy-sheet__actions{position:sticky;inset-block-end:-1rem;justify-content:flex-end;margin:0 -1rem -1rem;padding:1rem;border-block-start:1px solid var(--border);background:var(--surface)}.busy-feedback{margin:0}.busy-feedback[role=alert]{color:var(--warn)}@media(min-width:46rem){.busy-sheet-backdrop{justify-items:end;align-items:stretch}.busy-sheet{inline-size:min(42rem,92vw);max-block-size:100dvh;border-radius:var(--radius-lg) 0 0 var(--radius-lg)}:root[dir=rtl] .busy-sheet{border-radius:0 var(--radius-lg) var(--radius-lg) 0}.busy-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.busy-page{display:grid;gap:1rem;padding-block-end:3rem}.busy-page__toolbar,.busy-card__title,.busy-card__actions,.busy-exception{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.busy-page__toolbar{align-items:flex-end;flex-wrap:wrap;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.busy-page__toolbar p,.busy-panel__header p,.busy-notice,.busy-empty,.busy-location-address{margin:0;color:var(--text-muted);line-height:1.5}.busy-board{display:grid;gap:1rem}.busy-panel{min-inline-size:0;padding:clamp(1rem,3vw,1.5rem);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 1rem 2.5rem var(--shadow)}.busy-panel__header{margin-block-end:1rem}.busy-panel__header h2,.busy-card h3{margin:0}.busy-panel__header h2{font-size:clamp(1.25rem,4vw,1.75rem);letter-spacing:-.025em}.busy-panel__header p{margin-block-start:.35rem}.busy-card-list{display:grid;gap:.75rem}.busy-card{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised)}.busy-card--template{border-inline-start:.25rem solid var(--accent)}.busy-card--occurrence{border-inline-start:.25rem solid var(--warn)}.busy-card__title h3{min-inline-size:0;overflow-wrap:anywhere}.busy-card__title span{flex:none;padding:.25rem .55rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.busy-card__time{margin:0;color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.busy-card__actions{justify-content:flex-start;flex-wrap:wrap}.busy-exception{padding-block-start:.75rem;border-block-start:1px solid var(--border);color:var(--text-muted);font-variant-numeric:tabular-nums}.busy-button{min-block-size:2.75rem;min-inline-size:2.75rem;padding-inline:.9rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;font:inherit;font-weight:750}.busy-button--primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.busy-button--danger{border-color:var(--warn);color:var(--warn)}.busy-button:disabled{cursor:not-allowed;opacity:.55}.busy-button:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.1875rem}.busy-notice,.busy-empty{padding:1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised)}.busy-notice--error{color:var(--warn)}@media(min-width:46rem){.busy-board{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}.travel-chip{display:inline-flex;max-inline-size:100%;align-items:center;flex-wrap:wrap;gap:.375rem;padding:.375rem .625rem;border:1px solid var(--accent);border-radius:999rem;background:var(--surface-raised);color:var(--text);font-size:.875rem;line-height:1.2}.travel-chip[data-tight=true]{border-color:var(--warn)}.travel-chip__minutes{font-weight:760}.travel-chip__provenance{color:var(--text-muted)}.travel-chip__warning{color:var(--warn);font-weight:760}.load-bar{display:grid;min-inline-size:0;gap:.375rem;color:var(--text);font-size:.875rem}.load-bar__labels{display:flex;min-inline-size:0;align-items:baseline;justify-content:space-between;gap:.75rem}.load-bar__heaviest{color:var(--warn);font-size:.75rem}.load-bar__meter{inline-size:100%;block-size:.5rem;border:0;border-radius:999rem;background:var(--surface-raised);color:var(--accent);accent-color:var(--accent)}.load-bar__meter::-webkit-meter-bar{border:1px solid var(--border);border-radius:999rem;background:var(--surface-raised)}.load-bar__meter::-webkit-meter-optimum-value{border-radius:999rem;background:var(--accent)}.load-bar__meter::-moz-meter-bar{border-radius:999rem;background:var(--accent)}.load-bar[data-heaviest=true] .load-bar__meter{color:var(--warn);accent-color:var(--warn)}.load-bar[data-heaviest=true] .load-bar__meter::-webkit-meter-optimum-value{background:var(--warn)}.load-bar[data-heaviest=true] .load-bar__meter::-moz-meter-bar{background:var(--warn)}.teacher-main{padding-block:clamp(1.5rem,5vw,3rem)}.teacher-header nav{display:flex;align-items:center}.teacher-header nav span{min-block-size:2.75rem;display:inline-flex;align-items:center;padding-inline:.875rem;border-block-end:.1875rem solid var(--accent);color:var(--text);font-weight:720}.teacher-title{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-block-end:1.5rem}.teacher-title p{margin:0;color:var(--accent);font-size:.75rem;font-weight:780;letter-spacing:.12em;text-transform:uppercase}.teacher-title h1{margin:.25rem 0 0;font-size:clamp(2rem,9vw,4.5rem);font-weight:730;letter-spacing:-.05em;line-height:.95}.teacher-bootstrap{max-inline-size:38rem;padding:clamp(1.25rem,5vw,2.5rem);border-block:1px solid var(--border);background:var(--surface);color:var(--text)}.teacher-bootstrap h2,.teacher-bootstrap p{margin-block:0 1rem}.teacher-calendar{min-inline-size:0;overflow:hidden;border-block:1px solid var(--border-strong);background:var(--surface);box-shadow:0 1.25rem 3.5rem var(--shadow)}.calendar-toolbar{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:.875rem;border-block-end:1px solid var(--border);background:var(--surface-raised)}.calendar-toolbar__weeks,.calendar-view-switch{display:inline-flex;align-items:center;gap:.375rem}.calendar-toolbar button,.calendar-view-switch button,.calendar-action,.week-day__select{min-inline-size:2.75rem;min-block-size:2.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;font-weight:700}.calendar-toolbar button{padding-inline:.875rem}.calendar-view-switch{padding:.25rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.calendar-view-switch button{border:0;background:transparent}.calendar-view-switch button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.calendar-state,.calendar-notice,.calendar-empty--week{margin:0;padding:.875rem 1rem;border-block-end:1px solid var(--border);color:var(--text-muted);font-size:.9375rem}.calendar-state--error{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--warn)}.calendar-notice{color:var(--accent)}.calendar-action{padding-inline:1rem}.week-scroll{max-inline-size:100%;overflow-inline:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}.week-scroll:focus-visible{outline:.1875rem solid var(--focus);outline-offset:-.1875rem}.week-grid{display:grid;min-inline-size:max-content;grid-auto-columns:minmax(17rem,min(85vw,22rem));grid-auto-flow:column}.week-day{min-inline-size:0;border-inline-end:1px solid var(--border);background:var(--surface)}.week-day[data-selected=true]{box-shadow:inset 0 0 0 .125rem var(--accent)}.week-day__header{position:sticky;z-index:1;inset-block-start:0;display:grid;gap:.75rem;padding:1rem;border-block-end:1px solid var(--border);background:var(--surface-raised)}.week-day__header h3{margin:0}.week-day__select{inline-size:100%;padding-inline:.75rem;text-align:start}.week-day__select[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.day-view{min-inline-size:0}.day-view__heading{margin:0;padding:clamp(1rem,4vw,1.5rem);border-block-end:1px solid var(--border);font-size:clamp(1.4rem,5vw,2rem)}.day-timeline{display:grid;margin:0;padding:0;list-style:none}.day-timeline__row{position:relative;min-inline-size:0;padding:.875rem 1rem .875rem 1.5rem;border-block-end:1px solid var(--border)}.day-timeline__row:before{position:absolute;inset-block:0;inset-inline-start:.625rem;inline-size:.125rem;background:var(--border-strong);content:""}.timeline-commitment,.timeline-gap,.timeline-travel{display:grid;min-inline-size:0;gap:.5rem}.timeline-commitment__action{min-block-size:3rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);cursor:pointer;font:inherit;font-weight:750;text-align:start}.timeline-commitment__action:disabled{cursor:not-allowed}.timeline-time{color:var(--text-muted);font-size:.8125rem;font-variant-numeric:tabular-nums;font-weight:680}.timeline-travel{color:var(--text-muted)}.timeline-travel__route{overflow-wrap:anywhere;color:var(--text);font-size:.875rem}.timeline-gap{padding-inline-start:.75rem;border-inline-start:.1875rem solid var(--accent)}.timeline-gap--freed{border-inline-start-color:var(--warn)}.calendar-empty{margin:0;padding:1.25rem 1rem;color:var(--text-muted);font-size:.9375rem}@media(min-width:40rem){.teacher-header{grid-template-columns:auto 1fr auto;align-items:center}.teacher-header nav{justify-content:center}.timeline-travel{grid-template-columns:auto auto;align-items:center}.timeline-travel__route{grid-column:1 / -1}}.cancel-backdrop{position:fixed;z-index:20;inset:0;display:grid;align-items:end;background:color-mix(in srgb,var(--bg) 70%,transparent)}.cancel-sheet{max-block-size:min(90dvh,48rem);overflow-y:auto;padding:1rem;border-block-start:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text);box-shadow:0 -1rem 3rem var(--shadow)}.cancel-sheet__header{display:flex;align-items:start;justify-content:space-between;gap:1rem}.cancel-sheet__header h2{margin:0}.cancel-sheet__header button,.cancel-button{min-block-size:3rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;font-weight:700;text-align:center}.cancel-actions,.cancel-form,.cancel-reschedule,.cancel-edit{display:grid;gap:.75rem;margin-block-start:1rem}.cancel-actions__guidance{grid-column:1 / -1;margin:0;color:var(--text-muted)}.cancel-edit h3,.cancel-edit p{margin:0}.cancel-edit fieldset{display:grid;gap:.75rem;padding:0;border:0}.cancel-edit label{display:grid;gap:.375rem}.cancel-edit input,.cancel-edit select{min-block-size:3rem;inline-size:100%;padding:.625rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit}.cancel-edit .cancel-edit__check{display:flex;align-items:center;gap:.625rem}.cancel-edit__check input{inline-size:1.25rem;min-block-size:1.25rem}.cancel-edit__actions{display:grid;gap:.75rem}.cancel-fit{display:grid;gap:.5rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.cancel-fit p{margin:0;color:var(--text-muted)}.cancel-form fieldset{display:flex;gap:1rem}.cancel-form label{display:grid;gap:.375rem}.cancel-form textarea{min-block-size:6rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit}.cancel-button--primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.cancel-button--secondary{color:var(--text-muted)}@media(min-width:40rem){.cancel-backdrop{place-items:center;padding:2rem}.cancel-sheet{inline-size:min(42rem,100%);border:1px solid var(--border-strong);border-radius:var(--radius-md)}.cancel-actions,.cancel-edit fieldset,.cancel-edit__actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.settings-page{display:grid;gap:clamp(1rem,3vw,1.5rem);padding-block-end:3rem}.settings-card,.settings-location{display:grid;gap:1.25rem;padding:clamp(1.25rem,4vw,2rem);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 1rem 2.5rem var(--shadow)}.settings-location--school{border-radius:var(--radius-md);background:var(--surface-raised);box-shadow:none}.settings-card__intro{display:grid;gap:.35rem}.settings-card__intro>p{margin:0;color:var(--accent);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.settings-card__intro h2{margin:0;font-size:clamp(1.35rem,4vw,2rem);letter-spacing:-.025em;line-height:1.1}.settings-card__intro>span,.settings-empty p,.settings-notice,.settings-load-error p{margin:0;color:var(--text-muted);line-height:1.55}.settings-defaults__form{display:grid;gap:1rem}.settings-defaults__form label,.settings-field{display:grid;gap:.45rem;color:var(--text);font-size:.875rem;font-weight:700}.settings-defaults__form input,.settings-defaults__form select,.settings-field input{min-block-size:2.75rem;inline-size:100%;padding-inline:.875rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit}.settings-defaults__form input:focus-visible,.settings-defaults__form select:focus-visible,.settings-field input:focus-visible,.settings-empty a:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.1875rem}.settings-button{min-block-size:2.75rem;inline-size:fit-content;padding-inline:1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;font-weight:750}.settings-button--primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.settings-button--secondary{border-color:var(--border);background:var(--surface-raised)}.settings-button:disabled{cursor:not-allowed;opacity:.55}.settings-ical__actions{display:flex;flex-wrap:wrap;gap:.75rem}.settings-usage__value{margin:0;font-size:1.25rem;font-weight:750;letter-spacing:-.02em}.settings-feedback,.settings-geocode-address{margin:0;line-height:1.5}.settings-feedback[role=alert]{color:var(--warn)}.settings-feedback[role=status],.settings-geocode-address{color:var(--text-muted)}.settings-notice,.settings-load-error{padding:1rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised)}.settings-load-error{display:grid;gap:.875rem}.settings-school-grid{display:grid;gap:1rem}.settings-empty{display:grid;gap:.75rem;justify-items:start}.settings-empty a{min-block-size:2.75rem;color:var(--accent);font-weight:750;line-height:2.75rem}@media(min-width:46rem){.settings-defaults__form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end}.settings-school-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.students-workspace,.student-profile{display:grid;gap:1.25rem}.students-notice{margin:0;padding:.875rem 1rem;border:1px solid var(--warn);border-radius:var(--radius-sm);background:var(--surface)}.students-toolbar{display:grid;gap:.875rem}.students-search{min-inline-size:0}.students-sort{min-inline-size:min(100%,10rem)}.students-drive-status{margin:0;color:var(--text-muted)}.students-drive-status--fallback{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.875rem 1rem;border:1px solid var(--warn);border-radius:var(--radius-sm);background:var(--surface)}.students-drive-status--fallback p{margin:0}.student-field{display:grid;gap:.375rem;color:var(--text);font-weight:700}.student-field input,.student-field select,.student-field textarea{min-block-size:2.75rem;inline-size:100%;padding:.75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}.student-field textarea{min-block-size:7rem;resize:vertical}.student-field input:focus-visible,.student-field select:focus-visible,.student-field textarea:focus-visible,.student-button:focus-visible,.student-form .settings-button:focus-visible,.student-login__actions button:focus-visible,.student-find-slot:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.1875rem}.student-button,.student-form .settings-button,.student-login__actions button{min-block-size:2.75rem;padding:.75rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);font:inherit;font-weight:800;cursor:pointer}.student-button--primary,.student-form .settings-button--primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.student-button--danger{border-color:var(--warn);justify-self:start}.student-button:disabled,.student-form .settings-button:disabled,.student-login__actions button:disabled{cursor:not-allowed;opacity:.55}.student-form,.student-login,.student-history{display:grid;gap:1rem;padding:clamp(1rem,4vw,1.5rem);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 1rem 2.5rem var(--shadow)}.student-form h2,.student-login h2,.student-history h2{margin:0}.student-form__grid{display:grid;gap:.875rem}.student-manual-pin{display:grid;gap:.875rem;min-inline-size:0;margin:0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.student-manual-pin legend{padding-inline:.375rem;font-weight:800}.student-manual-pin p{margin:0;color:var(--text-muted)}.students-grid{display:grid;gap:1rem;margin:0;padding:0;list-style:none}.student-card{display:grid;gap:.875rem;padding:1.125rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.student-card__identity,.student-card__next{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.student-card__identity a{display:inline-flex;align-items:center;min-block-size:2.75rem;color:var(--text);font-size:1.125rem;font-weight:900;text-decoration-color:var(--accent);text-underline-offset:.25rem}.student-card__identity span,.student-card__next span,.student-card__location span{color:var(--text-muted)}.student-card__location{display:grid;gap:.25rem}.student-card__chips{display:flex;flex-wrap:wrap;gap:.5rem}.student-card__chips span{padding:.3rem .625rem;border:1px solid var(--border);border-radius:999rem;background:var(--accent-soft);color:var(--text);font-size:.875rem}.student-card__drive{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;color:var(--text-muted)}.student-card__drive strong{color:var(--text)}.student-card__drive span{padding-inline-start:.5rem;border-inline-start:1px solid var(--border)}.student-find-slot{display:inline-flex;align-items:center;justify-content:center;min-block-size:2.75rem;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font-weight:900;text-decoration:none}.students-empty{padding:2rem;border-block:1px solid var(--border);color:var(--text-muted);text-align:center}.student-profile__header{display:grid;gap:1rem;padding-block-end:1rem;border-block-end:1px solid var(--border)}.student-profile__header h2{margin-block:.5rem 0;font-size:clamp(1.5rem,7vw,2.5rem)}.student-profile__header>div>a{display:inline-flex;align-items:center;min-block-size:2.75rem;color:var(--accent);font-weight:700}.student-login__actions{display:grid;gap:.625rem;padding:.875rem;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft)}.student-login__actions p{grid-column:1 / -1}.student-history ol{display:grid;gap:.75rem;margin:0;padding-inline-start:1.5rem}.student-history li{padding:.75rem;border-block-end:1px solid var(--border)}.student-history li strong,.student-history li span{display:block}.student-history li span{margin-block-start:.25rem;color:var(--text-muted)}@media(min-width:48rem){.students-toolbar{grid-template-columns:minmax(0,1fr) auto auto;align-items:end}.student-form__grid,.students-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-profile__header{grid-template-columns:minmax(0,1fr) auto;align-items:end}.student-login__actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.suggest-wizard{display:grid;gap:1rem;max-width:48rem}.suggest-step,.suggest-route-check{display:grid;gap:1rem;min-width:0}.suggest-step fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;flex-wrap:wrap;gap:.75rem;padding:.75rem}.suggest-choice{align-items:center;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:.625rem;padding:.75rem}.suggest-time-fields,.suggest-actions{display:flex;flex-wrap:wrap;gap:.75rem}.suggest-time-fields label{display:grid;flex:1 1 10rem;gap:.375rem}.suggest-button{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);min-height:2.75rem;padding:.625rem 1rem}.suggest-button--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.suggest-button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.suggest-button:disabled{opacity:.55}.suggest-notice,.suggestion-card__provenance{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem}.suggestion-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 .5rem 1.5rem var(--shadow);display:grid;gap:.75rem;min-width:0;padding:1rem}.suggestion-card__header{align-items:start;display:flex;gap:1rem;justify-content:space-between}.suggestion-card__header div{display:grid;gap:.25rem}.suggestion-card__added{background:var(--accent-soft);border-radius:var(--radius-sm);color:var(--accent-strong);font-weight:700;padding:.375rem .625rem;white-space:nowrap}.suggestion-card__route{display:flex;flex-wrap:wrap;font-weight:700;gap:.25rem;overflow-wrap:anywhere}.suggestion-card__stop{border-bottom:2px solid var(--accent)}.suggestion-card__legs{color:var(--text-muted);margin:0;padding-inline-start:1.25rem}@media(max-width:30rem){.suggestion-card__header{align-items:stretch;flex-direction:column}.suggestion-card__added{width:fit-content}.suggest-actions .suggest-button{flex:1 1 100%}}.teacher-onboarding{display:grid;gap:1rem;margin-block-end:1.5rem;padding:clamp(1rem,3vw,1.5rem);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 1rem 2.5rem var(--shadow)}.teacher-onboarding header,.teacher-onboarding header p,.teacher-onboarding header h2,.teacher-onboarding ol{margin:0}.teacher-onboarding header>p:first-child{color:var(--accent);font-size:.75rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.teacher-onboarding header>p:last-child{color:var(--text-muted)}.teacher-onboarding ol{display:grid;gap:.75rem;padding:0;list-style:none}.teacher-onboarding li{display:flex;min-block-size:3rem;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}.teacher-onboarding li[data-complete=true]{color:var(--text-muted)}.teacher-onboarding a{display:flex;min-block-size:2.75rem;align-items:center;color:var(--accent);font-weight:800}.teacher-onboarding a:focus-visible,.teacher-onboarding button:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.1875rem}.teacher-header{display:grid;gap:1rem;padding-block:1rem}.teacher-navigation{min-inline-size:0;overflow-inline:auto;overscroll-behavior-inline:contain}.teacher-navigation ul{display:flex;gap:.375rem;min-inline-size:max-content;margin:0;padding:0;list-style:none}.teacher-navigation__link{display:inline-flex;align-items:center;min-block-size:2.75rem;padding-inline:.875rem;border-block-end:.1875rem solid transparent;color:var(--text-muted);font-weight:700;text-decoration:none}.teacher-navigation__link[aria-current=page]{border-color:var(--accent);color:var(--text)}.teacher-navigation__link:focus-visible{border-radius:var(--radius-sm);outline:.1875rem solid var(--focus);outline-offset:-.1875rem}.teacher-section-placeholder{max-inline-size:38rem;padding:clamp(1.25rem,5vw,2.5rem);border-block:1px solid var(--border);background:var(--surface);color:var(--text)}.teacher-section-placeholder p{margin-block:0 1rem}@media(min-width:64rem){.teacher-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}}.student-header{display:grid;gap:1rem;padding-block:1rem}.student-navigation{min-inline-size:0;overflow-inline:auto}.student-navigation ul{display:flex;gap:.375rem;min-inline-size:max-content;margin:0;padding:0;list-style:none}.student-navigation a{display:inline-flex;align-items:center;min-block-size:2.75rem;padding-inline:.875rem;border-block-end:.1875rem solid transparent;color:var(--text-muted);font-weight:700;text-decoration:none}.student-navigation a[aria-current=page]{border-color:var(--accent);color:var(--text)}.student-main,.student-confirm-main{padding-block:clamp(1.5rem,6vw,4rem)}.student-page{display:grid;gap:1.5rem;min-inline-size:0}.student-confirm-card__top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.student-confirm-card__top .student-confirm-card__eyebrow{margin-block:0}.student-page__heading p,.student-confirm-card__eyebrow{margin-block:0 .5rem;color:var(--accent);font-size:.875rem;font-weight:760}.student-page__heading h1,.student-confirm-card h1{margin:0;font-size:clamp(2rem,9vw,3.5rem);line-height:1}.student-lesson-groups{display:grid;gap:1.25rem;min-inline-size:0}.student-history summary{cursor:pointer}.student-history summary h2{display:inline}.student-history[open] summary{margin-block-end:1rem}.student-lesson-group,.student-profile-card,.student-confirm-card,.student-empty,.student-status{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 1rem 3rem var(--shadow)}.student-lesson-group,.student-profile-card,.student-confirm-card,.student-empty{min-inline-size:0;padding:clamp(1.25rem,5vw,2rem)}.student-page__heading,.student-teacher-name,.student-contact-actions{min-inline-size:0;overflow-wrap:anywhere}.student-lesson-group h2,.student-profile-card h2{margin-block:0 1rem}.student-lesson-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.student-lesson-card{display:grid;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);min-inline-size:0}.student-lesson-card>div,.student-lesson-card dl,.student-profile-card dl{display:grid;gap:.5rem}.student-lesson-card span{color:var(--text-muted)}.student-lesson-card dl,.student-profile-card dl{margin:0}.student-lesson-card dl div,.student-profile-card dl div{display:grid;grid-template-columns:minmax(7rem,auto) minmax(0,1fr);gap:.75rem}.student-lesson-card dt,.student-profile-card dt{color:var(--text-muted)}.student-lesson-card dd,.student-profile-card dd{margin:0;min-inline-size:0;overflow-wrap:anywhere}.student-teacher-name{font-size:1.125rem;font-weight:700}.student-contact-actions{display:flex;flex-wrap:wrap;gap:.75rem}.student-contact-actions a,.student-sign-out,.student-primary-action,.student-correction-form button,.student-status button{display:inline-flex;align-items:center;justify-content:center;min-block-size:2.75rem;padding-inline:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);cursor:pointer;font-weight:700;text-decoration:none}.student-sign-out{justify-self:start;background:transparent;color:var(--text)}.student-confirm-card{max-inline-size:38rem;margin-inline:auto}.student-confirm-card>p{line-height:1.5}.student-confirm-email{display:grid;gap:.25rem;padding:1rem;border-radius:var(--radius-sm);background:var(--surface-raised);overflow-wrap:anywhere}.student-correction-form{display:grid;gap:.75rem;margin-block-start:2rem}.student-correction-form label{font-weight:700}.student-correction-form input{min-block-size:2.75rem;inline-size:100%;padding-inline:.875rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);font:inherit}.student-confirm-status{min-block-size:1.5rem;color:var(--text-muted)}.student-status{margin-block:clamp(1.5rem,6vw,4rem);padding:2rem}@media(min-width:48rem){.student-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.student-lesson-card{grid-template-columns:minmax(10rem,.6fr) minmax(0,1fr)}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:var(--font-family);--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.hidden{display:none}.table{display:table}.min-h-dvh{min-height:100dvh}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{color-scheme:dark;--bg:#16181d;--surface:#1d222b;--surface-raised:#252c37;--text:#f4f8fb;--text-muted:#aab7c4;--theme-color:#16181d;--accent:#33e6ff;--accent-strong:#13bdd8;--accent-soft:#33e6ff24;--on-accent:#071619;--border:#35404d;--border-strong:#526171;--warn:#ffd166;--focus:#b49aff;--shadow:#0000004d;--glow:#33e6ff2e;--font-family:Inter, "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;--radius-sm:.625rem;--radius-md:1rem;--radius-lg:1.5rem;--space-page:clamp(1rem, 4vw, 2.5rem);--content-width:72rem;--motion-fast:.16s}:root[data-theme=dark]{color-scheme:dark;--bg:#16181d;--surface:#1d222b;--surface-raised:#252c37;--text:#f4f8fb;--text-muted:#aab7c4;--theme-color:#16181d;--accent:#33e6ff;--accent-strong:#13bdd8;--accent-soft:#33e6ff24;--on-accent:#071619;--border:#35404d;--border-strong:#526171;--warn:#ffd166;--focus:#b49aff;--shadow:#0000004d;--glow:#33e6ff2e}:root[data-theme=light]{color-scheme:light;--bg:#f5f9fc;--surface:#fff;--surface-raised:#e8f0f5;--text:#10212c;--text-muted:#465c69;--theme-color:#f5f9fc;--accent:#007f99;--accent-strong:#00677d;--accent-soft:#007f991f;--on-accent:#fff;--border:#bdcdd6;--border-strong:#8297a4;--warn:#765000;--focus:#5932bd;--shadow:#1e364426;--glow:#007f9921}@media(prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--bg:#f5f9fc;--surface:#fff;--surface-raised:#e8f0f5;--text:#10212c;--text-muted:#465c69;--theme-color:#f5f9fc;--accent:#007f99;--accent-strong:#00677d;--accent-soft:#007f991f;--on-accent:#fff;--border:#bdcdd6;--border-strong:#8297a4;--warn:#765000;--focus:#5932bd;--shadow:#1e364426;--glow:#007f9921}}@media(prefers-reduced-motion:reduce){:root{--motion-fast:0s}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}*{box-sizing:border-box}html{background:var(--bg);font-family:var(--font-family);text-rendering:optimizeLegibility}body{min-block-size:100dvh;margin:0;background:radial-gradient(circle at 50% -20%,var(--glow),transparent 42rem),var(--bg);color:var(--text)}button{font:inherit}button:disabled{cursor:not-allowed;opacity:.58}button:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.1875rem}.app-shell{background:transparent;color:var(--text)}.shell-container{inline-size:min(100%,var(--content-width));margin-inline:auto;padding-inline:var(--space-page)}.shell-header{border-block-end:1px solid var(--border);background:var(--bg)}.shell-header__inner{display:flex;flex-direction:column;gap:1rem;padding-block:1rem}.brand-lockup{display:flex;align-items:center;gap:.875rem;min-inline-size:0}.brand-mark{inline-size:2.75rem;block-size:2.75rem;flex:0 0 auto;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);filter:drop-shadow(0 0 .75rem var(--glow));fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.brand-name{margin:0;font-size:1.25rem;font-weight:760;letter-spacing:-.025em;line-height:1.1}.brand-tagline{margin:.25rem 0 0;color:var(--text-muted);font-size:.875rem;line-height:1.35}.shell-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}.language-toggle{display:inline-flex;padding:.25rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.language-toggle button,.theme-toggle{min-block-size:2.75rem;border:0;border-radius:calc(var(--radius-sm) - .2rem);cursor:pointer;transition:background var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) ease}.sign-out{min-block-size:2.75rem;padding-inline:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;font-size:.875rem;font-weight:650}.language-toggle button{min-inline-size:2.75rem;padding-inline:.75rem;background:transparent;color:var(--text-muted);font-size:.875rem;font-weight:700}.language-toggle button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.theme-toggle{display:inline-flex;align-items:center;gap:.625rem;padding-inline:.875rem;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.875rem;font-weight:650}.theme-toggle svg{inline-size:1.125rem;block-size:1.125rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.language-toggle button:hover,.theme-toggle:hover{background:var(--surface-raised);color:var(--text)}.language-toggle button[aria-pressed=true]:hover{background:var(--accent-strong);color:var(--on-accent)}.shell-main{padding-block:clamp(2.5rem,8vw,6rem)}.schedule-shell{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 1.5rem 4rem var(--shadow)}.schedule-shell__header{padding:clamp(1.25rem,5vw,2.5rem);border-block-end:1px solid var(--border)}.schedule-shell__status{margin:0 0 .75rem;color:var(--accent);font-size:.875rem;font-weight:760;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}:root[dir=rtl] .schedule-shell__status{letter-spacing:normal;text-transform:none}.schedule-shell h2{max-inline-size:18ch;margin:0;font-size:clamp(1.75rem,8vw,3.75rem);font-weight:720;letter-spacing:-.045em;line-height:1}:root[dir=rtl] .schedule-shell h2{letter-spacing:normal}.schedule-placeholder{display:grid;min-block-size:18rem;place-items:center;gap:2rem;padding:clamp(1.5rem,6vw,4rem);text-align:center}.schedule-placeholder p{max-inline-size:34ch;margin:0;color:var(--text-muted);font-size:1rem;line-height:1.55}.schedule-placeholder__rail{display:grid;inline-size:min(100%,30rem);gap:1rem}.schedule-placeholder__rail span{display:block;block-size:.625rem;border-radius:999rem;background:var(--surface-raised)}.schedule-placeholder__rail span:nth-child(2){inline-size:76%;background:var(--accent-soft)}.schedule-placeholder__rail span:nth-child(3){inline-size:52%}.offline-banner{position:sticky;z-index:10;inset-block-start:0;display:flex;align-items:center;justify-content:center;gap:.75rem;min-block-size:3rem;padding:.75rem var(--space-page);border-block-end:1px solid var(--warn);background:var(--surface-raised);color:var(--text);font-size:.9375rem;font-weight:650;text-align:center}.offline-banner__pulse{inline-size:.625rem;block-size:.625rem;flex:0 0 auto;border-radius:50%;background:var(--warn);box-shadow:0 0 0 .375rem var(--accent-soft);animation:offline-pulse 1.8s ease-in-out infinite}@keyframes offline-pulse{50%{opacity:.5;transform:scale(.8)}}@media(min-width:40rem){.shell-header__inner{flex-direction:row;align-items:center;justify-content:space-between}.shell-controls{justify-content:flex-end}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-page,.status-page{display:grid;min-block-size:100dvh;place-items:center;padding:var(--space-page)}.auth-card,.status-card,.role-card{inline-size:min(100%,34rem);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 1.5rem 4rem var(--shadow)}.auth-card{padding:clamp(1.25rem,6vw,2.5rem)}.auth-card__controls{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-block-end:clamp(2rem,8vw,4rem)}.auth-card__header h1,.role-card h1,.status-card h1{margin:0;font-size:clamp(2rem,9vw,3.5rem);letter-spacing:-.045em;line-height:1}:root[dir=rtl] .auth-card__header h1,:root[dir=rtl] .role-card h1,:root[dir=rtl] .status-card h1{letter-spacing:normal}.auth-card__header>p:last-child,.role-card>p,.status-card>p{margin:1rem 0 0;color:var(--text-muted);line-height:1.55}.auth-card__eyebrow,.role-card__eyebrow{margin:0 0 .75rem;color:var(--accent);font-size:.875rem;font-weight:760;letter-spacing:.08em;text-transform:uppercase}:root[dir=rtl] .auth-card__eyebrow,:root[dir=rtl] .role-card__eyebrow{letter-spacing:normal;text-transform:none}.auth-form{display:grid;gap:.75rem;margin-block-start:2rem}.auth-form label{font-weight:700}.auth-form input{min-block-size:3rem;inline-size:100%;padding-inline:1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);font:inherit}.auth-form input::placeholder{color:var(--text-muted)}.auth-form input:focus-visible{outline:.1875rem solid var(--focus);outline-offset:.125rem}.auth-form button,.status-card button{min-block-size:3rem;padding-inline:1.25rem;border:0;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);cursor:pointer;font-weight:760}.auth-status{min-block-size:3rem;margin:0;color:var(--text-muted);font-size:.9375rem;line-height:1.45}.status-card{padding:clamp(1.5rem,6vw,2.5rem)}p.status-card{color:var(--text-muted);line-height:1.55;text-align:center}.status-card button{margin-block-start:1.5rem}.role-card{padding:clamp(1.5rem,6vw,3rem)}.role-placeholder{min-block-size:12rem;margin-block-start:2rem;padding:1.5rem;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-muted);line-height:1.55}
