.schedule-page{padding-block:32px 90px;max-width:1500px}
.schedule-heading{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:28px;margin-bottom:30px}
.schedule-heading-copy{grid-column:1}.schedule-heading h1{font-size:clamp(2.4rem,3.9vw,3.65rem);line-height:1.05;letter-spacing:-.065em;white-space:nowrap;margin:16px 0 10px;font-family:"Arial Black",Arial,sans-serif}.schedule-heading p{color:var(--muted);font-size:.95rem}.schedule-modes{grid-column:2;display:grid;grid-template-columns:1fr 1fr;position:relative;isolation:isolate;min-width:310px;padding:6px;background:var(--card);border-radius:999px;box-shadow:var(--card-shadow)}.schedule-modes:before{content:"";position:absolute;inset:6px auto 6px 6px;width:calc((100% - 12px)/2);border-radius:999px;background:var(--accent-solid,var(--accent));box-shadow:0 6px 22px color-mix(in srgb,var(--accent) 30%,transparent);pointer-events:none;transition:transform 420ms var(--ease)}.schedule-modes:has([data-mode="teacher"][aria-pressed="true"]):before{transform:translateX(100%)}.schedule-modes button{position:relative;z-index:1;border:0;background:transparent;color:var(--muted);border-radius:999px;min-height:48px;padding:11px 22px;font-weight:700;transition:color 260ms ease}.schedule-modes button[aria-pressed=true]{color:#fff}.schedule-layout{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:26px;align-items:start}.schedule-sidebar,.schedule-main{background:var(--card);box-shadow:var(--card-shadow);border-radius:30px}.schedule-sidebar{position:sticky;top:112px;padding:22px 16px 16px;min-width:0}.schedule-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 8px 18px}.schedule-kicker{font-size:.75rem!important;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)!important;font-weight:750;margin-bottom:6px}.schedule-picker-head h2,.schedule-toolbar h2{font-size:1.3rem;line-height:1.2;letter-spacing:-.035em}.schedule-picker-close{display:none;border:0;background:var(--blue-soft);color:var(--ink);width:36px;height:36px;border-radius:50%;font-size:1.5rem;line-height:1}.schedule-picker{min-width:0}.group-categories{display:flex;gap:7px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;scrollbar-width:none}.group-categories::-webkit-scrollbar{display:none}.group-category{flex:0 0 auto;scroll-snap-align:start;border:1px solid transparent;background:var(--surface);color:var(--muted);border-radius:999px;padding:9px 12px;font-size:.76rem;font-weight:700;white-space:nowrap;transition:color 220ms,background 220ms,box-shadow 220ms}.group-category[aria-selected=true]{color:var(--accent);background:var(--blue-soft);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 15%,transparent)}.group-list,.teacher-list{display:flex;flex-direction:column;gap:6px;max-height:560px;overflow:auto;padding:2px 2px 4px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 38%,var(--muted)) transparent}.schedule-choice{display:flex;align-items:center;gap:10px;text-align:left;width:100%;min-height:48px;padding:10px 12px;border:1px solid transparent;border-radius:15px;background:transparent;color:var(--ink);font-size:.9rem;line-height:1.3;transition:background 240ms,box-shadow 240ms,transform 240ms}.schedule-choice:hover{background:var(--card-hover);transform:translateX(2px)}.schedule-choice[aria-pressed=true]{background:var(--blue-soft);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 16%,transparent);font-weight:700}.group-code{font-weight:850;color:var(--accent);font-size:1rem;min-width:42px}.group-full-name{color:var(--muted);font-size:.8rem}.schedule-picker-empty{padding:22px 10px;color:var(--muted);font-size:.85rem;line-height:1.5}.teacher-picker{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:10px;align-items:stretch}.teacher-list{max-height:560px}.alphabet-index{display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:430px;padding:4px 0;touch-action:none;user-select:none}.alphabet-index button{border:0;background:transparent;color:var(--muted);font-size:.69rem;font-weight:800;width:30px;height:21px;padding:0;border-radius:8px;transition:color 180ms,background 180ms,transform 180ms}.alphabet-index button:hover,.alphabet-index button[aria-selected=true]{color:var(--accent);background:var(--blue-soft);transform:scale(1.15)}.schedule-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:var(--person);box-shadow:0 0 9px color-mix(in srgb,var(--person) 55%,transparent)}.schedule-main{min-width:0;padding:28px}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.schedule-toolbar-actions{display:flex;align-items:center;gap:8px}.schedule-change,.schedule-refresh{border:0;border-radius:999px;min-height:42px;padding:10px 16px;background:var(--surface);color:var(--ink);font-size:.8rem;font-weight:700;transition:background 220ms,transform 220ms}.schedule-change{display:none}.schedule-change:hover,.schedule-refresh:hover{background:var(--blue-soft);transform:translateY(-2px)}.schedule-refresh:disabled{opacity:.55;cursor:wait}.schedule-status{font-size:.85rem;color:var(--muted);margin:18px 0;min-height:1.4em}.schedule-table-scroll{overflow-x:auto;overflow-y:hidden;border-radius:20px;padding:7px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--card)),var(--card) 62%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent),0 12px 32px color-mix(in srgb,var(--accent) 8%,transparent);overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 48%,var(--muted)) transparent}.schedule-week{width:100%;min-width:900px;border-collapse:separate;border-spacing:6px;table-layout:fixed}.schedule-week caption{text-align:left;color:var(--muted);font-size:.8rem;padding:2px 6px 10px}.schedule-week th{font-size:.8rem;font-weight:800;color:var(--muted);padding:10px 8px;text-align:left;white-space:nowrap}.schedule-week thead th{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 20%,var(--card)),color-mix(in srgb,var(--accent) 7%,var(--card)));border-radius:12px;color:var(--ink)}.schedule-week thead th:first-child{width:52px}.schedule-week tbody th{vertical-align:top;color:var(--accent);padding-top:20px}.schedule-week td{vertical-align:top;min-width:120px;background:var(--surface);border-radius:16px;padding:0;overflow-wrap:anywhere;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent);transition:box-shadow 240ms,background 240ms}.schedule-week td:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent),0 0 18px color-mix(in srgb,var(--accent) 12%,transparent)}.schedule-lesson{padding:14px 12px;display:flex;flex-direction:column;gap:8px;border-radius:15px;background:color-mix(in srgb,var(--lesson-color) 17%,var(--surface));box-shadow:inset 3px 0 0 var(--lesson-color),0 0 18px color-mix(in srgb,var(--lesson-color) 10%,transparent)}.schedule-lesson+.schedule-lesson{margin-top:6px}.schedule-lesson.tone-0{--lesson-color:#5878ff}.schedule-lesson.tone-1{--lesson-color:#d0a83e}.schedule-lesson.tone-2{--lesson-color:#36a986}.schedule-lesson.tone-3{--lesson-color:#e06a93}.schedule-lesson.tone-4{--lesson-color:#9a73df}.schedule-lesson.tone-5{--lesson-color:#e47b4c}.schedule-lesson.tone-6{--lesson-color:#38b9c3}.schedule-lesson h3{font-size:.9rem;line-height:1.35;font-weight:750;letter-spacing:-.015em}.schedule-teacher,.schedule-groups,.schedule-room,.schedule-week-note{font-size:.73rem;line-height:1.4}.schedule-teacher{display:flex;align-items:baseline;gap:6px;color:var(--muted)}.schedule-teacher .schedule-dot{width:7px;height:7px}.schedule-groups{color:var(--accent);font-weight:700}.schedule-room,.schedule-week-note{color:var(--muted)}.schedule-week-note{color:var(--accent)}.schedule-free{display:block;padding:18px 12px;color:var(--muted);font-size:.8rem}.schedule-source{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:20px;color:var(--muted);font-size:.75rem}.schedule-source a{color:var(--accent)}.schedule-empty{padding:38px 12px;color:var(--muted);font-size:.9rem}.schedule-picker-backdrop{position:fixed;inset:0;background:#06112670;backdrop-filter:blur(7px);z-index:35}.schedule-picker-backdrop[hidden]{display:none}.schedule-picker-backdrop:not([hidden]){animation:schedule-fade-in 240ms ease both}
@keyframes schedule-fade-in{from{opacity:0}to{opacity:1}}
@media(max-width:1000px){.schedule-page{width:calc(100% - 48px)}.schedule-heading{grid-template-columns:1fr;gap:20px}.schedule-modes{grid-column:1;justify-self:center;width:min(420px,100%)}.schedule-layout{grid-template-columns:230px minmax(0,1fr);gap:16px}.schedule-main{padding:20px}.schedule-week{min-width:800px}}
@media(max-width:900px),(hover:none) and (pointer:coarse){body.schedule-sheet-open{overflow:hidden}.schedule-page{width:calc(100% - 36px);padding-block:20px 60px}.schedule-heading{display:block;margin-bottom:20px}.schedule-heading h1{font-size:clamp(1.9rem,8.7vw,2.55rem);letter-spacing:-.065em;white-space:nowrap;margin-top:14px}.schedule-modes{margin-top:20px;min-width:0;width:100%}.schedule-modes button{min-height:46px}.schedule-layout{display:block}.schedule-sidebar{position:fixed;z-index:40;left:0;right:0;bottom:0;top:auto;margin:0;padding:20px 18px max(20px,env(safe-area-inset-bottom));border-radius:28px 28px 0 0;transform:translateY(105%);transition:transform 430ms var(--ease);max-height:min(78dvh,680px);overflow:auto}.schedule-sidebar.is-open{transform:none}.schedule-picker-close{display:block}.schedule-picker-head{padding-inline:2px}.schedule-picker{padding-bottom:4px}.group-categories{margin-inline:-2px}.group-list,.teacher-list{max-height:45dvh}.teacher-picker{grid-template-columns:minmax(0,1fr) 36px}.alphabet-index{min-height:350px}.schedule-main{padding:18px 12px;border-radius:24px}.schedule-toolbar{align-items:flex-start}.schedule-toolbar h2{font-size:1.2rem}.schedule-toolbar-actions{flex-shrink:0}.schedule-change{display:inline-flex;align-items:center}.schedule-refresh{font-size:0;width:42px;padding:10px;position:relative}.schedule-refresh:first-letter{font-size:.8rem}.schedule-status{font-size:.78rem;margin-block:15px}.schedule-table-scroll{margin-inline:-5px;padding:6px;border-radius:17px}.schedule-week{display:table;min-width:900px;border-spacing:5px}.schedule-week th{font-size:.72rem;padding:9px 7px}.schedule-week td{min-width:112px}.schedule-lesson{padding:12px 10px}.schedule-lesson h3{font-size:.82rem}.schedule-teacher,.schedule-groups,.schedule-room,.schedule-week-note{font-size:.68rem}.schedule-source{font-size:.72rem}.schedule-picker-backdrop{z-index:39;backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){.schedule-modes:before,.schedule-modes button,.schedule-choice,.schedule-sidebar,.schedule-picker-backdrop{transition:none}.schedule-picker-backdrop:not([hidden]){animation:none}}
.schedule-table-scroll{background:color-mix(in srgb,var(--surface) 82%,var(--card));box-shadow:none;cursor:default}
.schedule-week{-webkit-user-select:none;user-select:none;cursor:default}
.schedule-week thead th{background:color-mix(in srgb,var(--surface) 68%,var(--card));box-shadow:none}
.schedule-week td{background:color-mix(in srgb,var(--surface) 88%,var(--card));box-shadow:none;transition:none}
.schedule-week td:hover{background:color-mix(in srgb,var(--surface) 88%,var(--card));box-shadow:none}
.schedule-lesson{background:color-mix(in srgb,var(--lesson-color) 13%,var(--surface));box-shadow:none}
@media(min-width:901px) and (max-width:1240px){.schedule-heading{display:block}.schedule-modes{grid-column:auto;width:min(310px,100%);margin:20px auto 0}}
.alphabet-index.group-index{min-height:124px;align-self:start}
.schedule-picker,.group-picker,.group-list,.teacher-list{overflow-anchor:none}
.group-picker .group-list{height:360px;max-height:360px;overscroll-behavior-y:contain}
.alphabet-index{flex-shrink:0;touch-action:none}
@media(max-width:900px),(pointer:coarse){
 .group-picker .group-list{height:clamp(180px,42svh,360px);max-height:none}
 .alphabet-index button,.alphabet-index button:hover,.alphabet-index button[aria-selected=true]{transform:none;transition:color 160ms,background-color 160ms}
 .schedule-choice:hover{transform:none}
}
/* Highlight the lesson itself, never the full-height table cell or an empty slot. */
.schedule-week thead th.schedule-today{background:color-mix(in srgb,var(--accent) 28%,var(--surface))!important;color:var(--ink)!important;border:0!important;box-shadow:0 0 18px color-mix(in srgb,var(--accent) 32%,transparent)!important}
.schedule-week td.schedule-today-cell,.schedule-week td.schedule-today-cell:hover{background:transparent!important;border:0!important;box-shadow:none!important}
.schedule-week td.schedule-today-cell::before{content:none!important}
.schedule-week td.schedule-today-cell .schedule-lesson{position:relative;isolation:isolate;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 58%,transparent),color-mix(in srgb,var(--lesson-color) 20%,transparent));border:0;box-shadow:0 0 20px color-mix(in srgb,var(--accent) 38%,transparent);color:var(--ink)}
.schedule-week td.schedule-today-cell .schedule-lesson::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(ellipse at 50% 100%,color-mix(in srgb,var(--accent) 32%,transparent),color-mix(in srgb,var(--accent) 12%,transparent) 75%);pointer-events:none}
.schedule-today-label{display:block;margin-top:5px;font-size:.64rem;font-weight:600;letter-spacing:.02em;color:inherit}
.schedule-variants{display:flex;flex-direction:column;gap:7px}.schedule-variant{display:flex;flex-direction:column;gap:2px}.schedule-variant+.schedule-variant{padding-top:7px;border-top:1px solid color-mix(in srgb,var(--lesson-color) 24%,transparent)}
.schedule-week{border-spacing:3px}.schedule-lesson+.schedule-lesson{margin-top:3px}
.schedule-week td:has(>.schedule-free),.schedule-week td:has(>.schedule-free):hover{background:color-mix(in srgb,var(--surface) 20%,transparent)!important;vertical-align:middle;border:0!important;border-radius:12px;box-shadow:none!important}
.schedule-week .schedule-free{display:flex;align-items:center;justify-content:center;min-height:44px;height:auto;padding:9px 10px;line-height:1.2;text-align:center;color:color-mix(in srgb,var(--muted) 78%,transparent);font-size:.7rem;font-weight:550;opacity:.72;overflow:visible}

/* Compact day columns keep each day flowing without row-sized empty gaps. */
.schedule-masonry{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;min-width:900px}
.schedule-day-column{display:flex;flex-direction:column;gap:5px;min-width:0}
.schedule-day-column>h3{position:sticky;top:0;z-index:3;margin:0;padding:11px 10px;border-radius:12px;background:color-mix(in srgb,var(--surface) 86%,var(--card));color:var(--ink);font-size:.8rem;line-height:1.25}
.schedule-day-column.schedule-today>h3{background:color-mix(in srgb,var(--accent) 28%,var(--surface));box-shadow:0 0 18px color-mix(in srgb,var(--accent) 32%,transparent)}
.schedule-day-column .schedule-today-label{display:block;margin-top:4px}
.schedule-masonry-slot{position:relative;display:flex;flex-direction:column;gap:3px;min-width:0}
.schedule-period{position:absolute;left:6px;top:7px;z-index:2;color:color-mix(in srgb,var(--accent) 72%,var(--muted));font-size:.64rem;font-weight:800;pointer-events:none}
.schedule-masonry-slot .schedule-lesson{padding:14px 12px 14px 27px;width:100%;box-sizing:border-box}
.schedule-masonry-slot .schedule-free{min-height:38px;padding:10px 10px 10px 27px}
.schedule-masonry-slot.schedule-today-cell .schedule-lesson{background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 58%,transparent),color-mix(in srgb,var(--lesson-color) 20%,transparent));box-shadow:0 0 20px color-mix(in srgb,var(--accent) 38%,transparent)}
.schedule-masonry-slot.schedule-today-cell .schedule-free{background:color-mix(in srgb,var(--surface) 14%,transparent);opacity:.55}
@media(max-width:900px),(hover:none) and (pointer:coarse){.schedule-masonry{gap:5px}.schedule-day-column>h3{font-size:.72rem;padding:9px 8px}.schedule-masonry-slot .schedule-lesson{padding:12px 10px 12px 24px}.schedule-period{left:5px;top:6px;font-size:.58rem}.schedule-masonry-slot .schedule-free{min-height:34px;padding:8px 8px 8px 24px;font-size:.66rem}}

/* Same typography and control language as the college pages. */
.schedule-heading h1{font-family:Commissioner,sans-serif;font-weight:500;letter-spacing:-.035em;white-space:normal}.schedule-heading{grid-template-columns:1fr auto;align-items:center}.schedule-sidebar,.schedule-main{border-radius:8px;box-shadow:none}.schedule-modes{border-radius:6px;box-shadow:none}.schedule-modes:before{border-radius:4px;box-shadow:none}.schedule-modes button[aria-pressed=true]{color:var(--canvas)}.schedule-modes button{border-radius:4px}.schedule-status{color:var(--muted)}@media(max-width:720px){.schedule-heading{display:block}.schedule-modes{margin-top:18px;min-width:0}.schedule-page{padding-top:24px}}
