.live-timetable{grid-column:1/-1;margin-top:2.5rem;padding:clamp(1rem,3vw,2rem);background:#fff;border:1px solid #dce4f9;border-radius:1.5rem;min-width:0}.live-timetable-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.live-timetable h3{font-size:clamp(1.5rem,3vw,2rem);margin:0}.timetable-refresh{font:inherit;font-size:.8rem;border:1px solid #2455e8;color:#2455e8;background:#fff;border-radius:999px;padding:.55rem 1rem;cursor:pointer}.timetable-refresh:disabled{opacity:.5}.timetable-status{color:#647078;font-size:.85rem;margin:.7rem 0 1.25rem;line-height:1.6}.timetable-filters{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1.3rem}.timetable-filter{font:inherit;font-size:.85rem;border:1px solid #dce4f9;color:#172436;background:#f5f7fc;border-radius:999px;padding:.55rem .9rem;cursor:pointer}.timetable-filter[aria-pressed=true]{background:#2455e8;color:#fff;border-color:#2455e8}.timetable-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.timetable-grid.single-day{grid-template-columns:minmax(0,1fr)}.timetable-grid.single-day .timetable-day{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));align-content:start;gap:.75rem}.timetable-grid.single-day h4{grid-column:1/-1}.timetable-day{min-width:0}.timetable-day h4{font-size:.95rem;margin:0 0 1rem;color:#2455e8}.timetable-class{background:#edf1fb;border-radius:.85rem;padding:1rem .8rem;margin-bottom:.75rem;overflow-wrap:anywhere}.timetable-time{display:block;font-size:1.15rem;font-weight:800;color:#2455e8;margin-bottom:.5rem}.timetable-class h5{font-size:.9rem;line-height:1.4;margin:0}.timetable-class p{font-size:.75rem;line-height:1.5;margin:.35rem 0 0}.timetable-detail,.timetable-level{color:#647078}.timetable-class.is-cancelled{background:#f5f5f5}.timetable-cancelled{color:#9f3b2e;font-weight:700}.timetable-empty{color:#647078;font-size:.85rem}.timetable-grid[hidden],.timetable-filters[hidden]{display:none}.timetable-filter:focus-visible,.timetable-refresh:focus-visible{outline:3px solid #172436;outline-offset:3px}@media(max-width:850px){.timetable-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.timetable-grid{grid-template-columns:minmax(0,1fr)}.live-timetable{border-radius:1rem}.timetable-filter{padding:.5rem .7rem;font-size:.8rem}}
