.page{background:var(--paper);max-width:72rem;min-height:100vh;margin:0 auto}.page__header{padding:.85rem 1rem 0}.topbar{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.topbar__link{min-height:var(--tap);background:var(--accent);color:#fff;border-radius:999px;align-items:center;padding:0 .9rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.hero{justify-items:center;gap:.9rem;padding:1.6rem 1rem 1.4rem;display:grid}.hero__slogan{text-align:center;margin:0;font-size:1.05rem;font-weight:600}.hero__search{background:var(--surface);border-radius:12px;width:min(38rem,100%);display:flex;overflow:hidden;box-shadow:0 6px 20px #171a1c14}.hero__input{border:1px solid var(--line);background:var(--surface);min-width:0;min-height:52px;color:inherit;font:inherit;border-right:none;border-radius:12px 0 0 12px;flex:auto;padding:0 1rem}.hero__go{background:var(--accent);color:#fff;min-height:52px;font:inherit;cursor:pointer;border:none;border-radius:0 12px 12px 0;padding:0 1.5rem;font-weight:700}.hero__chips{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.hotchip{background:var(--accent-soft);min-height:36px;color:var(--accent-ink);border-radius:999px;align-items:center;padding:0 .85rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.hotchip--on{background:var(--accent);color:#fff}.page__topline{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.brand{line-height:0;display:inline-block}.page__lists{min-height:var(--tap);background:var(--accent-soft);color:var(--accent-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:.2rem;padding:0 .75rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.brand__logo{width:92px;height:auto}.page__slogan{letter-spacing:-.01em;text-wrap:balance;margin:.55rem 0 .7rem;font-size:1.2rem;font-weight:650}.page__slogan span[lang=zh]{color:var(--ink-3);font-weight:450}.page__count{color:var(--ink-2);font-variant-numeric:tabular-nums;margin:-.35rem 0 .7rem;font-size:.875rem}.page__freshness{color:var(--ink-3);background:var(--paper);border-top:1px solid var(--line);margin:0;padding:1rem;font-size:.8rem}.search{gap:.5rem;max-width:34rem;padding-bottom:.85rem;display:flex}.search__input{min-width:0;min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);font:inherit;color:var(--ink);background:var(--paper);flex:1;padding:0 .85rem}.search__input::placeholder{color:var(--ink-3)}.search__select{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);font:inherit;color:var(--ink);background:var(--paper);padding:0 .6rem}.search__go{min-height:var(--tap);border-radius:var(--radius);font:inherit;color:#fff;background:var(--accent);cursor:pointer;border:0;padding:0 1.1rem;font-weight:650}.chips{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:.4rem;margin:0;padding:.7rem 1rem;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);white-space:nowrap;flex:none;align-items:center;gap:.3rem;padding:0 .85rem;font-size:.875rem;text-decoration:none;display:inline-flex}.chip--on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.chip--more{color:var(--ink-3);border-style:dashed}.toolbar{border-top:1px solid var(--line);scrollbar-width:none;align-items:center;gap:.5rem;padding:.7rem 1rem;display:flex;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.toggle{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:center;gap:.375rem;padding:0 .6rem;font-size:.85rem;display:inline-flex}.toggle:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.toggle input{width:18px;height:18px}@media (min-width:1200px){.page{max-width:84rem}.chips{flex-wrap:wrap;overflow-x:visible}}.calendar{margin:0 0 1rem}.calendar__nav{justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .25rem;display:flex}.calendar__month{margin:0;font-size:1rem}.calendar__window{opacity:.6;text-align:center;margin:0 0 .5rem;font-size:.8125rem}.calendar__grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar__head{text-align:center;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:.25rem 0;font-size:.72rem}.calendar__cell{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--ink);border-radius:6px;justify-content:flex-start;align-items:flex-start;padding:.25rem;font-size:.8125rem;text-decoration:none;display:flex;position:relative}.calendar__cell:hover{border-color:var(--accent)}.calendar__cell--pad{border-color:#0000}.calendar__cell--holiday{background:var(--accent-soft);border-color:#f7dcc9}.calendar__cell--crowded .calendar__badge{color:var(--accent-ink);font-weight:700}.calendar__daynum{color:var(--ink-3)}.calendar__badge{color:var(--ink);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:650;position:absolute;bottom:.25rem;right:.25rem}.calendar__legend{color:var(--ink-3);margin:.5rem 0 0;font-size:.8rem}.calendar__gate{padding:1.25rem 0}.daypanel{border-top:2px solid var(--line);margin:1rem 0 0;padding-top:1rem}.daypanel__head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.daypanel__title{margin:0;font-size:1.05rem;font-weight:650}.daypanel__hint{background:var(--accent-soft);color:var(--accent-ink);border:1px solid #f7dcc9;border-radius:8px;margin:.5rem 0;padding:.8rem;font-size:.875rem}.daypanel__hint p{margin:0 0 .5rem}.daypanel__group{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:1.1rem 0 .5rem;font-size:.72rem;font-weight:700}.programme-list li{list-style:none;position:relative}.pick{z-index:1;background:var(--surface);border:1px solid var(--line);min-height:44px;color:var(--ink-2);border-radius:8px;align-items:center;gap:.25rem;padding:0 .5rem;font-size:.75rem;display:inline-flex;position:absolute;top:.375rem;right:.375rem}.pick input{width:18px;height:18px}.compare__bar{padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);margin:.75rem 0 0;position:sticky;bottom:0}.compare{-webkit-overflow-scrolling:touch;overflow-x:auto}.compare__table{border-collapse:collapse;min-width:100%}.compare__caption{text-align:left;color:var(--ink-3);padding-bottom:.5rem;font-size:.8rem}.compare__dim{z-index:1;background:var(--surface);text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;vertical-align:top;padding:.6rem .75rem .6rem .25rem;font-size:.75rem;font-weight:550;position:sticky;left:0}.compare__course{text-align:left;vertical-align:top;border-bottom:2px solid var(--line);min-width:11rem;max-width:14rem;padding:.5rem .75rem}.compare__title{color:var(--ink);font-size:.875rem;font-weight:600;line-height:1.35;display:block}.compare__remove{min-height:var(--tap);color:var(--ink-3);align-items:center;font-size:.75rem;display:inline-flex}.compare__cell{border-bottom:1px solid var(--line);vertical-align:top;padding:.5rem .75rem;font-size:.875rem}.compare__cell--best{text-underline-offset:3px;font-weight:700;text-decoration:underline}.compare__sub{opacity:.7;font-size:.8125rem}.relax{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}
