.cityhead{margin:0 0 1.4rem}.cityhead h1 small{display:block;font:600 1rem/1.3 Inter,system-ui,sans-serif;color:var(--mut);letter-spacing:0;margin:0 0 .35rem}.cityhead h1 span{display:block}.cityhead p{margin:.7rem 0 0}.cityhead b{color:var(--fg)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:0 0 14px}.dbtn{background:var(--card);border:1px solid var(--line);border-radius:14px;color:var(--fg);padding:10px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;font:inherit}.dbtn span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}.dbtn b{font-family:var(--hd);font-weight:400;font-size:1.9rem;line-height:1}.dbtn i{font-style:normal;font-size:.68rem;color:var(--dim)}.dbtn:hover{border-color:var(--acc)}.dbtn[aria-selected=true]{background:var(--aqua);border-color:var(--acc2);color:var(--ink)}.dbtn[aria-selected=true] span,.dbtn[aria-selected=true] i{color:var(--ink)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.fchip{font:600 .86rem Inter,system-ui,sans-serif;background:transparent;color:var(--fg);border:1px solid var(--line);border-radius:999px;padding:.45rem .9rem;cursor:pointer}.fchip span{color:var(--dim);margin-left:.25rem;font-weight:500}.fchip:disabled{opacity:.4;cursor:default}.fchip[aria-pressed=true]{background:var(--fg);color:#fff;border-color:var(--fg)}.fchip[aria-pressed=true] span{color:#cfeaf5}.fchip.f-lap:before,.fchip.f-family:before,.fchip.f-open:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.45rem;vertical-align:1px}.f-lap:before{background:var(--lap)}.f-family:before{background:var(--family)}.f-open:before{background:var(--open)}.slist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.srow{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--lap);border-radius:12px;padding:12px 16px}.srow.r-family{border-left-color:var(--family)}.srow.r-open{border-left-color:var(--open)}.srow time{font-weight:700;font-size:1.02rem;font-variant-numeric:tabular-nums}.srow time span{display:block;font-weight:500;color:var(--dim);font-size:.82rem}.sw{display:flex;flex-direction:column;min-width:0}.sw a{color:var(--fg);font-weight:600;text-decoration:none}.sw a:hover{color:var(--acc)}.sw .live{margin-left:.4rem;vertical-align:2px}.empty{color:var(--mut);padding:1rem 0}.earlier{margin-top:16px}.earlier summary{cursor:pointer;color:var(--mut);font-size:.9rem;padding:.4rem 0}.earlier .srow{opacity:.8}.wrapcard{display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin:0 0 14px;background:linear-gradient(135deg,var(--card2),var(--card))}.wrapcard .hd{font-size:2rem}.nxt{display:flex;flex-direction:column;gap:.2rem;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;min-width:240px}.nxt b{font-size:1.2rem}.nxt .btn{margin-top:.5rem;align-self:flex-start}.side{display:flex;flex-direction:column;gap:14px;position:sticky;top:80px}.sideh{font-size:1.6rem;margin:0 0 .6rem;display:flex;justify-content:space-between}.sideh span{color:var(--dim)}.plist{list-style:none;margin:0;padding:0;max-height:60vh;overflow:auto}.plist li{padding:.55rem 0;border-top:1px solid var(--line);display:flex;flex-direction:column}.plist li:first-child{border:0}.plist li.sv a:after{content:" ★";color:var(--family)}.plist a{color:var(--fg);text-decoration:none;font-weight:600;font-size:.94rem}.plist a:hover{color:var(--acc)}@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}.side{position:static}.plist{max-height:none}}@media(max-width:600px){.days{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:-16px;padding-right:16px}.dbtn{flex:0 0 64px;scroll-snap-align:start}.srow{grid-template-columns:84px minmax(0,1fr);padding:11px 12px;gap:10px}.srow .tag{grid-column:2;grid-row:2}.srow time{grid-row:span 2}}
