.mnav,.mobile-roster-list,.navscrim{display:none}@media (max-width:767px){.app{grid-template-columns:1fr}.nav{position:fixed;inset-block:0;inset-inline-start:0;width:min(var(--navw),86vw);z-index:41;visibility:hidden;transform:translateX(-100%);transition:transform var(--t2) var(--e),visibility 0s linear var(--t2);box-shadow:8px 0 30px rgba(0,0,0,.14)}.app.navopen .nav{visibility:visible;transform:none;transition:transform var(--t2) var(--e)}.nav:focus{outline:none}.collapse{display:none}.navscrim{display:block}.mnav{display:grid}.hdr{padding-inline:12px}.cal{overflow-x:auto}.calbd,.calhd{min-width:768px}.tscroll{overflow-x:auto}.mobile-roster-list{display:grid}.roster-table-wrap{display:none}}.mobile-roster-list{gap:12px;padding:0 14px 14px}.mobile-roster-card{--mobile-roster-card-pad:15px;--mobile-roster-card-pad-total:30px;position:relative;display:grid;box-sizing:border-box;min-width:0;width:100%;grid-gap:14px;gap:14px;padding:var(--mobile-roster-card-pad);border:1px solid var(--hairline);border-radius:10px;background:var(--surface)}.mobile-roster-card>.mobile-roster-grid,.mobile-roster-card>.mobile-roster-head{inline-size:calc(100% - var(--mobile-roster-card-pad-total));max-inline-size:calc(100% - var(--mobile-roster-card-pad-total))}.mobile-roster-card.rowlink a.rowlink-a:after{content:"";position:absolute;inset-block:0;inset-inline:0;z-index:0}.mobile-roster-card.rowlink .above-rowlink{position:relative;z-index:1}.mobile-roster-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mobile-roster-head>a{min-width:0}.mobile-roster-head>.chip,.mobile-roster-head>.teacher-status-cell{flex:0 0 auto}.mobile-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:13px 16px;gap:13px 16px}.mobile-roster-field{min-width:0}.mobile-roster-label{display:block;color:var(--muted);font-size:12px;font-weight:650;line-height:1.2}.mobile-roster-value{display:block;-webkit-margin-before:5px;margin-block-start:5px;font-size:13px;line-height:1.4;overflow-wrap:anywhere}.mobile-roster-value .chip{max-width:100%}.teachers-mobile-roster .mobile-roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calbd,.calhd{grid-template-columns:48px repeat(7,minmax(0,1fr))}.mcalhd{padding:8px 0;font-size:12px;text-align:center;opacity:.7}.mcal,.mcalhd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.mcell{min-height:92px;border:1px solid rgba(0,0,0,.08);border-radius:8px;padding:5px 6px;overflow:hidden}.mcell.out{opacity:.45}.mcell.tod{border-color:rgba(0,0,0,.35)}.mday{display:flex;align-items:baseline;gap:5px;font-size:12px;margin-bottom:4px}.mdn{font-weight:700}.mwd{display:none}.mct,.mwd{opacity:.7}.mct{margin-left:auto}.mev{font-size:11px;line-height:1.35;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border:0;background:transparent;padding:0;text-align:left}.mev b{font-weight:700}.mday{width:100%;border:0;background:transparent;padding:0;color:inherit;text-align:left}.mday:focus-visible,.mev:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sched-event-button{border:0;font:inherit;text-align:left;width:calc(100% - 8px)}.sched-event-button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sched-event-tone-mint{background:var(--mint-soft);border-color:var(--forest)}.sched-event-tone-gold{background:var(--gold-soft);border-color:var(--gold)}.sched-event-tone-rose{background:var(--crit-soft);border-color:var(--crit)}.sched-event-tone-plain{background:var(--surface);border-color:var(--hairline)}.sched-event-popover-mint{border-color:var(--forest)}.sched-event-popover-gold{border-color:var(--gold);background:var(--gold-soft)}.sched-event-popover-rose{border-color:var(--crit);background:var(--crit-soft)}.sched-event-popover-plain{border-color:var(--hairline)}.sched-slot-button{position:relative;width:100%;border:1px solid transparent;background:transparent;color:var(--muted);padding:0}.sched-slot-button span{opacity:0;position:absolute;top:2px;left:3px}.sched-slot-button:focus-visible span,.sched-slot-button:hover span{opacity:1}.sched-slot-button:focus-visible{border-color:var(--hairline);outline:none}.sched-popover-layer{position:relative;z-index:2;margin-top:10px;max-width:100%}.sched-popover{max-width:100%}.sched-popover .det{max-width:100%;overflow-wrap:anywhere}.sched-popover .sched-event-actions,.sched-popover .sched-slot-actions,.sched-popover-actions{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.sched-action-group{display:grid;grid-gap:7px;gap:7px;padding:10px;border:1px solid var(--hairline);border-radius:14px;background:color-mix(in srgb,var(--surface) 94%,white)}.sched-action-group>b{font-size:12px;letter-spacing:.01em}.sched-action-group-note{margin:-2px 0 2px;font-size:12px}.sched-action-card{display:grid;grid-gap:4px;gap:4px;padding:8px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface)}.sched-action-card.unavailable{background:color-mix(in srgb,var(--cream) 88%,var(--surface))}.sched-action-refusal,.sched-popover .sched-action-reason{margin:4px 0 0;font-size:12px}.sched-attendance-confirm{margin-top:10px;border-color:var(--forest);background:rgba(255,255,255,.92)}.sched-attendance-state{margin-top:10px}.sched-attendance-options,.sched-attendance-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sched-attendance-options{margin-top:12px}.sched-lesson-note-confirm{margin-top:10px;border-color:var(--forest);background:rgba(255,255,255,.94)}.sched-lesson-note-field{display:grid;grid-gap:6px;gap:6px;margin-top:12px;font-size:12px;font-weight:700}.sched-lesson-note-field textarea{width:100%;min-height:108px;box-sizing:border-box;resize:vertical;border:1px solid var(--hairline);border-radius:12px;padding:10px 12px;background:var(--surface);color:inherit;font:inherit;font-weight:400}.sched-lesson-note-actions,.sched-lesson-note-forward{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.sched-lesson-note-forward{font-size:12px;color:var(--muted)}.sched-screen-message{margin-top:10px;padding:9px 11px}.sched-slot-details{display:grid;grid-gap:6px;gap:6px;margin-top:12px}.sched-slot-meta-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 10px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface)}.sched-slot-meta-row span{color:var(--muted);font-size:12px}.sched-slot-meta-row b{text-align:right}.sched-agenda,.sched-day-calendar{min-width:0}.sched-day-grid{display:grid;grid-template-columns:48px minmax(0,1fr);min-width:0;border-top:1px solid var(--hairline)}.sched-day-column,.sched-day-grid .hrs{display:grid;grid-auto-rows:52px}.sched-day-column{position:relative;-webkit-border-start:1px solid var(--hairline);border-inline-start:1px solid var(--hairline)}.sched-day-column .ev{position:absolute;left:4px;right:4px;width:calc(100% - 8px)}.sched-calendar-partial{display:grid;grid-gap:4px;gap:4px;margin-bottom:10px;padding:9px 11px}.sched-agenda-list{display:grid;grid-gap:6px;gap:6px}.sched-agenda-row{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(0,1.5fr) auto;grid-gap:10px;gap:10px;align-items:center;width:100%;padding:10px;border:1px solid var(--hairline);border-radius:8px;color:var(--ink);text-align:left;cursor:pointer}.sched-agenda-row small,.sched-agenda-row time{color:var(--muted);font-size:12px}.sched-agenda-row span{min-width:0}.sched-agenda-row span:not(.sched-agenda-status){display:grid;grid-gap:2px;gap:2px}.sched-agenda-row b,.sched-agenda-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sched-agenda-status{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.sched-agenda-status em{padding:2px 6px;border:1px solid;border-radius:999px;font-size:11px;font-style:normal}.sched-agenda-row:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@media (max-width:640px){.mcalhd{display:none}.mcal{grid-template-columns:minmax(0,1fr)}.mcell{min-height:0}.mcell.nolessons{display:none}.mwd{display:inline}.mev{font-size:12px;white-space:normal}.sched-agenda-row{grid-template-columns:minmax(0,1fr);gap:4px}.sched-agenda-status{justify-content:flex-start}}.calnav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.sched-premium-toolbar{align-items:stretch;background:color-mix(in srgb,var(--surface) 92%,white);border:1px solid var(--hairline);border-radius:18px;box-shadow:0 14px 42px rgba(13,32,38,.08);padding:12px}.sched-premium-main{display:flex;align-items:center;gap:10px;flex:1 1 480px;flex-wrap:wrap;min-width:0}.calnav-modes{border-bottom:none;margin-bottom:0}.calnav-step{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.calrange{font:600 14px var(--f);color:var(--ink)}.sched-date-jump{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.sched-date-jump input{border:1px solid var(--hairline);border-radius:999px;background:var(--surface);color:var(--ink);font:600 12px var(--f);padding:7px 10px}.sched-mini-calendar{display:grid;grid-template-columns:repeat(7,24px);grid-gap:3px;gap:3px;align-content:start;padding:6px;border:1px solid var(--hairline);border-radius:14px;background:var(--cream)}.sched-mini-day{width:24px;height:24px;border:0;border-radius:999px;background:transparent;color:var(--ink);font:600 11px var(--f);cursor:pointer}.sched-mini-day.out{color:var(--muted);opacity:.48}.sched-mini-day.today{box-shadow:inset 0 0 0 1px var(--forest)}.sched-mini-day.active,.sched-mini-day:focus-visible,.sched-mini-day:hover{background:var(--ink);color:var(--surface);outline:none}.sched-key-hints{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%;color:var(--muted);font-size:11px}.sched-key-hints span{border:1px solid var(--hairline);border-radius:999px;padding:3px 7px;background:var(--surface)}@media (max-width:640px){.calrange{order:-1;width:100%}.calnav{gap:8px}.sched-premium-toolbar{border-radius:14px;padding:10px}.sched-premium-main{flex-basis:100%}.sched-date-jump{width:100%}.sched-date-jump input{flex:1 1;min-width:0}.sched-mini-calendar{grid-template-columns:repeat(7,minmax(0,1fr));width:100%}.sched-mini-day{width:100%}}.tbar>.srch{flex:1 1 240px;min-width:min(200px,100%)}.ffield{display:flex;flex-direction:column;gap:4px;flex:1 1 180px;min-width:min(160px,100%)}.ffield>.fld{width:100%}.ffield-lbl{font:600 12px var(--f);letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.tbar-more{align-items:flex-start;padding-top:2px}.fnote{flex:1 1 100%;font:400 13px var(--f);color:var(--muted)}.fchips{display:flex;flex-wrap:wrap;padding-inline:15px;margin-bottom:10px}.fchip,.fchips{align-items:center;gap:6px}.fchip{display:inline-flex;max-width:100%;padding:4px 8px 4px 10px;border:1px solid var(--hairline);border-radius:999px;background:var(--mint);color:var(--ink);font:500 13px var(--f);cursor:pointer}.fchip>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fchip>span:last-child{font-size:14px;line-height:1;color:var(--muted)}.fchip:hover{border-color:var(--ink)}.fchip:hover>span:last-child{color:var(--ink)}.fchip-clear{padding:4px 8px;border:0;background:transparent;color:var(--muted);font:500 13px var(--f);text-decoration:underline;cursor:pointer}.fchip-clear:hover{color:var(--ink)}.pg{flex-wrap:wrap}.fdisc,.pg{justify-content:center}.fdisc{display:inline-flex;align-items:center;gap:7px;height:33px;min-width:33px;padding:0 9px;border:1px solid var(--n3);border-radius:7px;background:transparent;color:var(--ink);font:600 13px var(--f);cursor:pointer;box-sizing:border-box}.fdisc:hover{border-color:var(--forest);color:var(--forest)}.fdisc:focus-visible{outline:2px solid var(--forest);outline-offset:2px}.fdisc-i{width:15px;height:15px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linejoin:round}.fdisc-n{min-width:18px;padding:0 5px;border-radius:999px;background:var(--mint);color:var(--ink);font:600 11px var(--f);display:inline-flex;align-items:center;justify-content:center;height:18px}.tbar .srch input{height:33px;box-sizing:border-box}.fpop{position:fixed;z-index:60;width:340px;max-width:calc(100vw - 16px);max-height:min(70vh,560px);overflow:auto;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;box-shadow:0 10px 32px rgba(0,0,0,.13)}.fpop-body{display:flex;flex-direction:column;gap:14px;padding:14px}.fpop-body .ffield{flex:none;width:100%;min-width:0}.fpop .fld{width:100%;height:34px;box-sizing:border-box}.fpop-foot{position:-webkit-sticky;position:sticky;bottom:0;display:flex;justify-content:flex-end;padding:10px 14px;border-top:1px solid var(--hairline)}.fpop-clear,.fpop-foot{background:var(--surface)}.fpop-clear{padding:5px 12px;border:1px solid var(--hairline);border-radius:999px;color:var(--ink);font:500 13px var(--f);cursor:pointer}.fpop-clear:hover:not(:disabled){border-color:var(--ink);background:var(--mint)}.fpop-clear:disabled{color:var(--muted);cursor:default;opacity:.6}@media (max-width:640px){.fpop{top:auto!important;left:0!important;right:0;bottom:0;width:auto;max-width:none;max-height:80vh;border-radius:14px 14px 0 0;border-bottom:0}}.fpop-body .fnote{flex:none}