.timetable-title-wrap{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:100%}
.heading h1{min-width:0}
.timetable-title-button{display:inline-flex;align-items:center;gap:5px;min-height:auto;padding:0;border:0;background:transparent;color:var(--cike-text-strong);font-size:20px;font-weight:760;letter-spacing:-.02em;white-space:nowrap}
.timetable-title-button:hover{background:transparent}.timetable-title-chevron{font-size:13px;color:var(--cike-muted);transform:translateY(1px)}
.timetable-brand-meta{display:flex;align-items:center;gap:5px;width:100%;min-width:0;margin-top:3px;overflow:hidden;color:var(--tt-muted);font-size:12px;font-weight:400}.timetable-brand-meta #schedule-school{flex:none;width:auto;min-height:0;padding:0 15px 0 0;border:0;border-radius:0;background:transparent;color:inherit;font-size:inherit;font-weight:600;line-height:1.2;cursor:pointer}.timetable-brand-meta #schedule-school:focus-visible{outline:2px solid var(--cike-focus);outline-offset:2px}.timetable-brand-meta-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timetable-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:80;width:240px;padding:7px;border:1px solid var(--tt-line);border-radius:15px;background:rgba(255,255,255,.98);box-shadow:0 18px 44px rgba(24,39,75,.16)}
.timetable-menu button{display:flex;align-items:center;width:100%;min-height:38px;padding:7px 10px;border:0;border-radius:10px;background:transparent;text-align:left;font-size:12px}.timetable-menu button:not(:disabled):hover{background:var(--cike-surface-soft)}.timetable-menu-current,.timetable-menu-current:disabled{opacity:1;color:var(--cike-primary);font-weight:650}.timetable-menu .timetable-future-action:disabled{opacity:.46}.timetable-menu-divider{height:1px;margin:6px 4px;background:var(--cike-line)}
.timetable-immersive-button{display:grid;place-items:center;width:39px;min-width:39px;height:39px;padding:0;color:var(--cike-muted)}.timetable-immersive-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.timetable-immersive-exit{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:2000;min-height:36px;padding:6px 11px;border-color:rgba(123,139,157,.35);background:rgba(255,255,255,.92);box-shadow:0 2px 10px rgba(32,48,65,.10);font-size:12px;backdrop-filter:blur(10px)}
.course-surface-tabs{display:flex;gap:4px;margin:-4px 0 14px;padding:3px;border-radius:13px;background:#edf2f7}.course-surface-tab{flex:1;min-height:36px;border:0;border-radius:10px;background:transparent;color:var(--cike-muted);font-size:13px}.course-surface-tab[aria-selected="true"]{background:var(--cike-surface);color:var(--cike-text-strong);font-weight:650;box-shadow:0 2px 8px rgba(31,48,76,.07)}.course-query-panel{min-width:0}.course-custom-inline{margin:0;padding:2px 0 4px}.course-custom-inline #custom-form{display:grid;gap:12px;max-width:820px}.course-custom-inline .form-grid{margin-top:0}

/* Normalize higher-specificity legacy base rules against the final static v4 structure. */
.timetable-v4-top #open-query{background:rgba(255,255,255,.84);border-color:var(--tt-line);color:var(--tt-text)}
.timetable-v4-top #open-query:hover{background:#fff;border-color:#cbd6e2;color:var(--tt-text)}
.timetable-v4-top .app-entry-link{width:39px;min-width:39px;height:39px;min-height:39px;padding:2px 0;border-color:var(--tt-line);border-radius:12px;background:rgba(255,255,255,.84);color:var(--tt-text)}
.timetable-v4-top .app-entry-link:hover{background:#fff;border-color:#cbd6e2;color:var(--tt-text)}
.timetable-v4-week-control .timetable-v4-expand,.timetable-v4-week-control .timetable-v4-today{width:auto;min-width:48px;height:31px;min-height:31px;padding:0 10px;font-size:11px}
.timetable-v4-week-control .timetable-v4-calendar{width:auto;min-width:148px;min-height:39px;padding:0 8px;font-size:inherit}
.timetable-v4-frame .period{z-index:7}

.schedule-scroll{scrollbar-width:none;-ms-overflow-style:none}.schedule-scroll::-webkit-scrollbar{display:none;width:0;height:0}body.timetable-expanded .schedule-scroll{max-height:none!important;overflow-y:visible!important}body.timetable-expanded .schedule{grid-template-rows:var(--head) repeat(12,var(--row))!important}
body.timetable-immersive{padding:0!important;background:#fff;overflow:hidden}body.timetable-immersive .timetable-v4-main{max-width:none!important;height:100dvh;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:auto}body.timetable-immersive .timetable-v4-top,body.timetable-immersive .timetable-v4-meta,body.timetable-immersive .pending,body.timetable-immersive .usage-stats,body.timetable-immersive #query-dialog{display:none!important}body.timetable-immersive .timetable-v4-weekbar{height:52px;padding:6px 66px 6px 10px!important;border-bottom:1px solid var(--tt-line-soft)}body.timetable-immersive .timetable-v4-frame{padding:0!important}body.timetable-immersive .timetable-v4-frame .schedule-scroll{width:100%;height:calc(100dvh - 52px)!important;max-height:none!important;overflow:hidden!important;border:0!important;border-radius:0!important}body.timetable-immersive .timetable-v4-frame .schedule{width:100%!important;height:100%!important;min-width:0!important;grid-template-columns:42px repeat(7,minmax(0,1fr))!important}body.timetable-immersive .grid-cell.day-head{font-size:11px}body.timetable-immersive .day-button{padding-left:1px!important;padding-right:1px!important}body.timetable-immersive .period b,body.timetable-immersive .period-toggle{font-size:9px!important}body.timetable-immersive .period small{font-size:7.5px!important}body.timetable-immersive .event{margin:2px 1px;padding:4px 3px;gap:2px;width:calc((100% - 2px)/var(--lanes) - 1px);margin-left:calc(1px + (100% - 2px)*var(--lane)/var(--lanes));border-radius:3px}body.timetable-immersive .event strong{font-size:clamp(8px,1.15vw,12px);line-height:1.15;-webkit-line-clamp:3}body.timetable-immersive .event .room{display:block!important;font-size:clamp(7px,.9vw,10px);line-height:1.15}body.timetable-immersive .event .event-meta{font-size:8px}body.timetable-immersive.timetable-expanded .timetable-v4-frame .schedule{grid-template-rows:var(--head) repeat(12,minmax(2.5rem,1fr))!important}
body.timetable-immersive-rotate{overflow:hidden}body.timetable-immersive-rotate .timetable-v4-main{position:fixed;top:0;left:0;width:100vh;height:100vw;max-width:none;transform:rotate(90deg) translateY(-100%);transform-origin:top left;overflow:auto}
@media(max-width:760px){.timetable-title-button{font-size:clamp(13px,4.3vw,17px)}.timetable-brand-meta{gap:4px;font-size:9.5px}.timetable-brand-meta #schedule-school{max-width:92px;padding-right:12px}.timetable-menu{width:min(250px,calc(100vw - 24px))}.course-surface-tabs{margin-top:-2px}.timetable-v4-top .app-entry-link{width:38px;min-width:38px;height:38px;min-height:38px;padding:2px 0}.timetable-v4-week-control{grid-template-columns:32px minmax(0,1fr) 32px;gap:4px}.timetable-v4-week-control>.timetable-v4-nav{width:32px;height:34px;min-height:34px}.timetable-v4-week-center{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px;width:100%;min-width:0}.timetable-v4-week-control .timetable-v4-expand,.timetable-v4-week-control .timetable-v4-today{min-width:36px;height:29px;min-height:29px;padding:0 6px;font-size:10px}.timetable-v4-week-control .timetable-v4-calendar{width:100%;min-width:0;min-height:38px;padding:0 2px;overflow:hidden}.timetable-v4-calendar strong,.timetable-v4-calendar span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}