:root{--paper:#f2ede2;--panel:#faf7f0f0;--ink:#1f2a2e;--muted:#6f6a5e;--rule:#dcd2bf;--accent:#0f7a63;--warn:#c2412d;--walk:#2563c9;--shadow:0 6px 24px #3c301924, 0 1px 3px #3c30191f;--sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--r:12px;--logo-road:#1f2a44;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0e1317;--panel:#13191eeb;--ink:#e7e2d6;--muted:#8e978f;--rule:#2a333a;--accent:#43d1a9;--warn:#ff7a5c;--walk:#6aa8ff;--logo-road:var(--ink);--shadow:0 6px 24px #00000073, 0 1px 3px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#0e1317;--panel:#13191eeb;--ink:#e7e2d6;--muted:#8e978f;--rule:#2a333a;--accent:#43d1a9;--warn:#ff7a5c;--walk:#6aa8ff;--logo-road:var(--ink);--shadow:0 6px 24px #00000073, 0 1px 3px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%;margin:0}[hidden]{display:none!important}body{background:var(--paper);color:var(--ink);font:14px/1.45 var(--sans);overflow:hidden}#map{background:var(--paper);position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bar{top:calc(env(safe-area-inset-top,0px) + 12px);background:var(--panel);border-radius:var(--r);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);z-index:3;flex-wrap:wrap;align-items:center;gap:14px;padding:8px 10px 8px 14px;display:flex;position:fixed;left:12px;right:12px}.brand{align-items:baseline;gap:8px;margin-right:auto;display:flex}.brand-mark{width:33px;height:22px;color:var(--logo-road);flex:none;align-self:center}.brand-name{letter-spacing:.08em;font-size:18px;font-weight:900}.brand-sub{color:var(--muted);letter-spacing:.12em;font-size:12px}.brand-ver{color:var(--muted);font-size:11px;font-family:var(--mono);white-space:nowrap}.seg{background:color-mix(in srgb, var(--ink) 7%, transparent);border-radius:9px;padding:2px;display:inline-flex}.seg button{white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:5px 12px;font-weight:500}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.seg.small button{font-family:var(--mono);padding:4px 9px;font-size:12px}.clock{flex-direction:column;line-height:1.15;display:flex}.clock time{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.status{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:flex}.status i{background:var(--muted);border-radius:50%;width:7px;height:7px}.status i.ok{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.status i.mock{background:#d79a1e}.status i.err{background:var(--warn)}.status i.replay{background:#7b5cd6;box-shadow:0 0 0 3px #7b5cd640}.count{color:var(--muted);align-items:baseline;gap:4px;font-size:12px;display:flex}.count b{font-family:var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px}.icon-btn{background:color-mix(in srgb, var(--ink) 7%, transparent);border:0;border-radius:9px;place-items:center;width:32px;height:32px;font-size:14px;display:grid}.search{top:calc(env(safe-area-inset-top,0px) + 76px);background:var(--panel);border-radius:var(--r);width:300px;max-width:calc(100% - 24px);box-shadow:var(--shadow);z-index:2;-webkit-backdrop-filter:blur(10px);flex-direction:column;max-height:calc(100% - 170px);display:flex;position:fixed;left:12px}.search-box{border-bottom:1px solid var(--rule);color:var(--muted);align-items:center;gap:8px;padding:10px 12px;display:flex}.search-box input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1}.search-results{padding:6px;overflow-y:auto}.group-label{letter-spacing:.14em;color:var(--muted);padding:8px 8px 4px;font-size:11px}.row{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:7px 8px;display:flex}.row:hover,.row.active{background:color-mix(in srgb, var(--ink) 7%, transparent)}.row .meta{color:var(--muted);white-space:nowrap;font-size:12px;font-family:var(--mono);margin-left:auto}.row .sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.row .txt{flex-direction:column;min-width:0;display:flex}.row .chip{white-space:normal;flex:none;max-width:60%;line-height:1.25}.chip{text-align:center;color:#fff;white-space:nowrap;border-radius:6px;min-width:40px;padding:2px 8px;font-size:13px;font-weight:700;display:inline-block}.place-tools{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.pill-btn.small{padding:3px 10px;font-size:12px}.place-hint{color:var(--muted);margin-left:auto;font-size:11px}.picking #map canvas{cursor:crosshair!important}.origin-pin{background:var(--walk);border:3px solid var(--paper);border-radius:50% 50% 50% 0;width:18px;height:18px;transform:rotate(-45deg);box-shadow:0 2px 6px #0000004d}.nearby{margin:0;padding:6px;list-style:none;overflow-y:auto}.nearby>li{cursor:pointer;border-radius:8px;gap:5px;padding:8px;display:grid}.nearby>li>*{pointer-events:none}.nearby>li:hover,.nearby>li.active{background:color-mix(in srgb, var(--ink) 7%, transparent)}.nearby .st-line{align-items:baseline;gap:8px;display:flex}.nearby .st-name{font-weight:700}.nearby .st-dist{font-family:var(--mono);color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px}.nearby .st-routes{flex-wrap:wrap;gap:4px 6px;font-size:12px;display:flex}.nearby .st-routes .chip{min-width:0;padding:1px 6px;font-size:11px}.nearby .st-routes{flex-direction:column}.nearby .st-routes .to{color:var(--ink)}.nearby .st-routes .eta{font-family:var(--mono);color:var(--muted);margin-right:4px}.walk{border-top:1px solid var(--rule);gap:6px;max-height:40%;padding:10px 14px;display:grid;overflow-y:auto}.walk-head{align-items:baseline;gap:8px;display:flex}.walk-head b{font-size:15px}.walk-head span{color:var(--muted);font-size:12px}.walk ol{gap:3px;margin:0;padding-left:20px;font-size:13px;display:grid}.walk ol .d{color:var(--muted);font-family:var(--mono);font-size:12px}.back-link{color:var(--accent);text-align:left;background:0 0;border:0;padding:0;font-size:12px}.card{top:calc(env(safe-area-inset-top,0px) + 76px);background:var(--panel);border-radius:var(--r);width:320px;max-width:calc(100% - 24px);max-height:calc(100% - 170px);box-shadow:var(--shadow);z-index:2;-webkit-backdrop-filter:blur(10px);flex-direction:column;display:flex;position:fixed;right:12px}.card-head{border-bottom:1px solid var(--rule);gap:6px;padding:14px 14px 10px;display:grid}.card-top{align-items:center;gap:10px;display:flex}.card-top .chip{white-space:normal;flex:none;max-width:55%;padding:3px 10px;font-size:16px;line-height:1.25}.card-top .route-name{flex-direction:column;flex:none;align-items:flex-start;gap:2px;max-width:55%;display:flex}.card-top .route-name .chip{max-width:100%}.card-top .dest{font-size:15px;font-weight:700}.card-top .close{margin-left:auto}.card-top .fav-star{margin-left:auto;font-size:17px}.card-top .fav-star+.close,.card-top .share-btn+.close{margin-left:0}.toast{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);background:var(--ink);color:var(--paper);z-index:6;box-shadow:var(--shadow);border-radius:999px;padding:8px 16px;font-size:13px;position:fixed;transform:translate(-50%)}.fav-star.on{color:#e0a100}.facts{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.fact{flex-direction:column;display:flex}.fact span{color:var(--muted);letter-spacing:.06em;font-size:11px}.fact b{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.card-actions{flex-wrap:wrap;gap:6px;display:flex}.pill-btn{border:1px solid var(--rule);background:0 0;border-radius:999px;padding:5px 12px;font-weight:500}.pill-btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--paper)}.stops{margin:0;padding:8px 14px 14px;list-style:none;overflow-y:auto}.stops li{gap:8px;padding:5px 0 5px 22px;font-size:13px;display:flex;position:relative}.stops li:before{content:"";background:var(--line-color,var(--rule));opacity:.55;width:3px;position:absolute;top:0;bottom:0;left:6px}.stops li:after{content:"";background:var(--paper);border:2px solid var(--line-color,var(--rule));box-sizing:border-box;border-radius:50%;width:9px;height:9px;margin-top:-4.5px;position:absolute;top:50%;left:3px}.stops li:first-child:before{top:50%}.stops li:last-child:before{bottom:50%}.stops li{cursor:pointer;border-radius:6px}.stops li:hover>span:first-of-type{text-underline-offset:3px;text-decoration:underline}.stops li.passed{color:var(--muted)}.stops li.next{font-weight:700}.stops .eta{font-family:var(--mono);color:var(--muted);margin-left:auto;font-size:12px}.stops .bus-here{background:var(--line-color);border:2px solid var(--paper);z-index:1;border-radius:3px;width:17px;height:11px;position:absolute;left:-1px;transform:translateY(-50%)}.board{margin:0;padding:6px;list-style:none;overflow-y:auto}.board li{border-radius:8px;align-items:center;gap:10px;padding:7px 8px;display:flex}.board .to{font-size:13px}.board li.has-bus{cursor:pointer}.board li>*,.stops li>*{pointer-events:none}.board li.has-bus:hover{background:color-mix(in srgb, var(--ink) 7%, transparent)}.board .go{color:var(--muted);font-size:16px;line-height:1}.board .eta{font-family:var(--mono);white-space:nowrap;margin-left:auto;font-weight:600}.board .eta.soon{color:var(--warn)}.board .eta.none{color:var(--muted);font-weight:500}.vtags{vertical-align:middle;gap:3px;margin-left:6px;display:inline-flex}.vtag{color:#2d7fc1;white-space:nowrap;font-size:10px;font-weight:600;font-family:var(--sans,inherit);background:#2d7fc129;border-radius:4px;padding:1px 5px}.vtag.ev,.vtag.hybrid{color:#2f9e6e;background:#2f9e6e29}.board .vtags{margin-left:4px}.board .vtag{padding:0 3px}.notice-line{text-align:left;width:100%;font:inherit;cursor:pointer;background:color-mix(in srgb, var(--warn) 12%, transparent);color:var(--ink);border:0;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.notice-line>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.notice-line .go{color:var(--muted)}.notice-btn{color:var(--warn)}.notice-filter{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.notices{gap:10px;margin:0;padding:6px 14px;list-style:none;display:grid;overflow-y:auto}.notices li{border-bottom:1px solid var(--rule);gap:4px;padding-bottom:10px;display:grid}.notices li:last-child{border-bottom:0}.notice-title{align-items:baseline;gap:6px;display:flex}.notice-title .tag.soon{flex:none}.notice-meta{color:var(--muted);font-size:12px}.notice-routes{flex-wrap:wrap;gap:4px;display:flex}.notice-desc{white-space:pre-line;margin:0;font-size:13px;line-height:1.5}.notice-url{font-size:12px}.board li>.bell,.board li.alert-pick>*{pointer-events:auto}.bell{cursor:pointer;opacity:.35;filter:grayscale();white-space:nowrap;color:var(--ink);font-size:13px;font-family:var(--mono);background:0 0;border:0;border-radius:6px;padding:2px 4px}.bell:hover{opacity:.8}.bell.on{opacity:1;filter:none;background:color-mix(in srgb, var(--warn) 15%, transparent)}.board li.picking{background:color-mix(in srgb, var(--ink) 6%, transparent)}.board li.alert-pick{color:var(--muted);background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:0 0 8px 8px;flex-wrap:wrap;gap:6px;margin-top:-4px;padding:2px 8px 8px;font-size:12px}.board li.picking{border-radius:8px 8px 0 0}.alert-banner{top:calc(var(--bar-bottom,70px) + 10px);z-index:5;box-sizing:border-box;background:var(--paper);width:max-content;max-width:calc(100vw - 24px);box-shadow:var(--shadow);border-left:4px solid var(--warn);border-radius:14px;align-items:center;gap:10px;padding:10px 12px;animation:.3s ease-out alert-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}.alert-icon{font-size:22px}.alert-text{font-size:13px;display:grid}.alert-text b{font-size:15px}@keyframes alert-in{0%{opacity:0;transform:translate(-50%,-12px)}}.pill-btn .badge{margin-left:4px;font-size:11px}.note{color:var(--muted);padding:0 14px 12px;font-size:11px}.sel-label{color:#fff;white-space:nowrap;pointer-events:none;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700;box-shadow:0 2px 6px #00000040}.basemap-ctl{left:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:2;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:fixed}.basemap-btn{background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);border-color:#0000}.basemap-menu{background:var(--panel);border-radius:var(--r);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:6px;display:grid}.basemap-menu button{text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:7px 14px}.basemap-menu button:hover{background:color-mix(in srgb, var(--ink) 7%, transparent)}.basemap-menu button[aria-checked=true]{background:var(--ink);color:var(--paper)}.basemap-menu .menu-head{color:var(--muted);border-top:1px solid var(--rule);grid-column:1/-1;margin-top:2px;padding:6px 6px 0;font-size:11px}.basemap-menu .label-seg{grid-column:1/-1}.basemap-menu .label-seg button{text-align:center;flex:1;padding:5px 8px;font-family:inherit}.basemap-menu .note-row{color:var(--muted);grid-column:1/-1;padding:2px 6px;font-size:11px}.dock{bottom:calc(env(safe-area-inset-bottom,0px) + 18px);background:var(--panel);box-shadow:var(--shadow);z-index:2;-webkit-backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:10px;padding:6px 8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.dock .pill-btn{white-space:nowrap}.dock-group{align-items:center;gap:6px;display:flex}.dock .icon-btn{border-radius:50%}.replay{bottom:calc(env(safe-area-inset-bottom,0px) + 18px);background:var(--paper);width:min(640px,100vw - 32px);box-shadow:var(--shadow);z-index:3;box-sizing:border-box;border-top:3px solid #7b5cd6;border-radius:16px;flex-direction:column;gap:6px;padding:10px 14px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.replay-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.replay-title{color:#7b5cd6;font-size:13px}.replay-when{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.replay-when span{color:var(--muted);font-size:13px;font-weight:500}.replay-note{color:var(--muted);flex:1;min-width:0;font-size:12px}.replay-exit{margin-left:auto}.replay-range{accent-color:#7b5cd6;width:100%}.replay-ctl{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.replay-ctl .icon-btn{border-radius:50%}.replay-pick{gap:4px;margin-left:auto;display:flex}.replay-pick input{font:inherit;border:1px solid var(--rule);background:var(--panel);color:var(--ink);border-radius:8px;padding:3px 6px;font-size:12px}body.has-card .replay{display:none}@media (min-width:721px){body.has-card .replay{width:min(600px,100vw - 370px);display:flex;left:16px;transform:none}}.maplibregl-ctrl-attrib{font-size:10px}.maplibregl-ctrl-bottom-right{bottom:env(safe-area-inset-bottom,0px)}@media (max-width:720px){.bar{gap:8px 10px;padding:8px 10px}.brand-sub{display:none}.basemap-ctl{bottom:auto;top:calc(var(--bar-bottom,112px) + 8px);flex-direction:column-reverse}body.has-card .basemap-ctl,.maplibregl-ctrl-bottom-right .maplibregl-ctrl-group{display:none}.dock{justify-content:space-between;left:12px;right:12px;transform:none}.seg.small button{padding:4px 7px}.where .seg button{padding:5px 9px}.search{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 72px);flex-direction:column-reverse;width:auto;max-height:40%;right:12px}.search-box{border-bottom:0;border-top:1px solid var(--rule)}.search:not(:focus-within) .search-results{display:none}.card{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 72px);width:auto;max-height:52%;left:12px;right:12px}.card:not([hidden])~.dock{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (max-width:720px){body.has-card .search{display:none}}.lang-select{background:color-mix(in srgb, var(--ink) 7%, transparent);color:inherit;font:inherit;border:0;border-radius:9px;height:32px;padding:0 6px;font-size:12px}.where{align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}.where:empty{display:none}.where>.seg{scrollbar-width:none;min-width:0;overflow-x:auto}.place-chips{flex-wrap:wrap;gap:6px;padding:0 12px 10px;display:flex}.mine-list{margin:0;padding:4px 14px;list-style:none;overflow-y:auto}.mine-list li{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.mine-go{font:inherit;color:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:8em;padding:0;display:flex}.mine-name{font-weight:600}.mine-icon{background:color-mix(in srgb, var(--accent) 15%, transparent);width:22px;height:22px;color:var(--accent);border-radius:6px;place-items:center;font-size:13px;display:inline-grid}.mine-acts{gap:4px;display:flex}.mine-io{flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;display:flex}.mine-empty{padding-top:12px;font-size:12px}.mine-sec{color:var(--muted);letter-spacing:.12em;padding:12px 14px 0;font-size:11px}.mine-icon.fav{color:#e0a100;background:#e0a10026}.fav-mark{color:#e0a100;text-align:center;width:2.4em}.mine-msg{color:var(--muted);font-size:12px}.save-place{border-top:1px solid var(--rule);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;font-size:12px;display:flex}.city-select{background:color-mix(in srgb, var(--ink) 7%, transparent);color:inherit;font:inherit;border:0;border-radius:9px;height:32px;padding:0 8px}.info-backdrop{z-index:10;background:color-mix(in srgb, var(--ink) 28%, transparent);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.info{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);width:min(640px,100%);max-height:min(80vh,760px);box-shadow:var(--shadow);outline:none;flex-direction:column;display:flex}.info-head{border-bottom:1px solid var(--rule);align-items:baseline;gap:10px;padding:14px 14px 10px 18px;display:flex}.info-head h2{letter-spacing:.06em;margin:0;font-size:17px;font-weight:900}.info-sub{color:var(--muted);font-size:12px}.info-head .close{align-self:center;margin-left:auto}.info-body{padding:4px 18px 14px;overflow-y:auto}.info-body h3{margin:12px 0 6px;font-size:14px}.info-body h4{color:var(--accent);margin:12px 0 4px;font-size:13px}.log{gap:6px;margin:0;padding:0;list-style:none;display:grid}.log li{grid-template-columns:3.4em 1fr;gap:10px;line-height:1.55;display:grid}.log time{color:var(--warn);font-family:var(--mono);padding-top:1px;font-size:13px}.log-ver{color:var(--muted);font-family:var(--mono);white-space:nowrap;margin-left:2px;font-size:11px}.info-history{border:1px solid var(--rule);border-radius:10px;margin-top:14px;padding:8px 12px}.info-history summary{cursor:pointer;font-weight:700}.info-history[open] summary{margin-bottom:4px}.info-tabs{align-self:flex-start;margin:10px 18px 0}.sources{gap:8px;margin:0;padding:0;list-style:none;display:grid}.sources li{gap:1px;line-height:1.5;display:grid}.sources a{color:var(--ink);font-weight:700}.sources .src-license a{color:inherit;font-weight:400}.src-use{font-size:13px}.src-logo{justify-self:start;width:auto;height:36px;margin-bottom:2px}.src-credit{font-size:13px;font-weight:700}.src-license{color:var(--muted);font-size:12px}.disclaimer{background:var(--rule);color:var(--muted);border-radius:10px;margin:16px 0 4px;padding:10px 12px;font-size:12px;line-height:1.6}.info-foot{color:var(--muted);font-size:12px;font-family:var(--mono);text-align:right;border-top:1px solid var(--rule);padding:8px 18px 12px}@media (max-width:720px){.info{max-height:86vh}.log li{grid-template-columns:3em 1fr}}.tag{white-space:nowrap;color:var(--accent);border:1px solid;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.tag.last{color:var(--warn)}.tag.off{color:var(--muted)}.tag.signal{color:var(--ink);font-weight:600}.board .to small{color:var(--muted);font-size:11px;font-family:var(--mono);display:block}.svc{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.extremes{gap:10px;margin:0;padding:6px 14px;list-style:none;display:grid;overflow-y:auto}.extremes li{border-bottom:1px solid var(--rule);gap:4px;padding-bottom:10px;display:grid}.extremes li:last-child{border-bottom:0}.ex-city{font-weight:700}.ex-cell{grid-template-columns:auto 5.6em 1fr;align-items:center;gap:8px;font-size:13px;display:grid}.ex-label{color:var(--muted)}.ex-cell b{font-family:var(--mono);white-space:nowrap}.ex-routes{flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0;display:flex}.ex-routes .chip{cursor:pointer;border:0;flex-shrink:0}.rec-tabs,.sp-city{justify-self:start}.sp-body{gap:6px;padding:8px 14px;display:grid;overflow-y:auto}.sp-body>.note{padding:8px 0 4px}.sp-avg{border-bottom:1px solid var(--rule);gap:2px;padding-bottom:8px;display:grid}.sp-avg>span:first-child{color:var(--muted);font-size:12px}.sp-avg b{font-family:var(--mono);font-size:28px;line-height:1.1}.sp-avg b small{color:var(--muted);font-size:13px;font-weight:500}.sp-sub{color:var(--muted);font-size:12px}.sp-head{margin-top:6px;font-size:13px;font-weight:700}.sp-rank{counter-reset:sp;gap:4px;margin:0;padding:0;list-style:none;display:grid}.sp-rank li{counter-increment:sp;grid-template-columns:1.3em auto auto 1fr 3em;align-items:center;gap:6px;font-size:13px;display:grid}.sp-rank li:before{content:counter(sp);color:var(--muted);font-family:var(--mono);text-align:right;font-size:11px}.sp-rank li:not(:has(.ex-plate)){grid-template-columns:1.3em auto 1fr 3em}.sp-rank .chip{text-overflow:ellipsis;white-space:nowrap;max-width:9em;overflow:hidden}.sp-rank b{font-family:var(--mono);text-align:right}.sp-bar{background:var(--rule);border-radius:3px;min-width:30px;height:6px;overflow:hidden}.sp-bar i{background:var(--accent);border-radius:3px;height:100%;display:block}.sp-city-btn{font:inherit;color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;padding:0}.sp-city-btn:hover{text-decoration:underline}.ex-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.ex-nav .icon-btn:disabled{opacity:.3;cursor:default}.ex-date{font-weight:700}.ex-date small,.ex-cell b small{color:var(--muted);margin-left:3px;font-size:11px;font-weight:500}.ex-plate{font-family:var(--mono);white-space:nowrap;color:inherit;background:0 0;border:0;padding:0;font-size:12px}button.ex-plate{cursor:pointer;text-underline-offset:2px;text-decoration:underline}.ex-stop,.ex-empty{color:var(--muted);font-size:12px}.ex-plan{color:var(--muted);font-size:11px}.route-sub{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:400;line-height:1.3}.en-sub{color:var(--muted);font-size:11px;font-weight:400;line-height:1.3;display:block}body.minimal .search,body.minimal .dock,body.minimal .brand-ver,body.minimal .count,body.minimal .maplibregl-ctrl-bottom-right{display:none}body.large .bar,body.large .search,body.large .card,body.large .dock,body.large .basemap-ctl,body.large .info,body.large .toast{zoom:1.2}@media (max-width:720px){body.large .bar,body.large .search,body.large .card,body.large .dock,body.large .basemap-ctl,body.large .info,body.large .toast{zoom:1.1}}.pos-note{color:var(--muted);align-items:center;gap:6px;margin-top:8px;font-size:12px;display:flex}.pos-note .dot{background:#e0a100;border-radius:50%;flex:none;width:8px;height:8px}.pos-note.stale .dot{background:var(--muted)}.pos-note.offRoute .dot{background:#c2410c}.diagram{top:calc(var(--bar-bottom,72px) + 10px);z-index:4;background:var(--paper);border-radius:var(--r);box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;bottom:12px;left:12px;right:12px;overflow:hidden}.diagram-help-btn,.diagram-help{display:none}@media (max-width:720px){.diagram-legend{display:none}.diagram-help-btn{margin-left:auto;display:inline-grid}.diagram-help{color:var(--muted);border-bottom:1px solid var(--rule);padding:8px 14px;font-size:12px;line-height:1.6;display:block}}.diagram-head{border-bottom:1px solid var(--rule);align-items:center;gap:10px;padding:10px 14px;display:flex}.diagram-head .chip{flex:none;padding:3px 10px;font-size:16px}.diagram-head .route-sub{flex:none}.diagram-title{white-space:nowrap;font-weight:700}.diagram-legend{color:var(--muted);margin-left:auto;font-size:11px}.diagram-head .icon-btn{flex:none}.diagram-body{flex:1;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 24px;padding:6px 14px 20px;display:grid;overflow:auto}.strip h3{z-index:2;background:var(--paper);align-items:baseline;gap:8px;margin:0;padding:8px 0;font-size:14px;display:flex;position:sticky;top:0}.strip h3 span{color:var(--muted);font-size:12px;font-weight:400}.strip-body{position:relative}.strip-line{left:calc(var(--line-x) - 3px);background:var(--line-color);opacity:.85;border-radius:3px;width:6px;position:absolute;top:23px;bottom:23px}.strip-stop{width:calc(var(--line-x) + 8px);font:inherit;color:inherit;background:0 0;border:0;justify-content:flex-end;align-items:center;gap:8px;padding:0;font-size:13px;display:flex;position:absolute;left:0}.strip-stop span{text-align:right;white-space:nowrap;text-overflow:ellipsis;max-width:var(--name-w);overflow:hidden}.strip-stop span small{color:var(--muted);text-overflow:ellipsis;font-size:10.5px;line-height:1.2;display:block;overflow:hidden}.strip-stop i{background:var(--paper);border:3px solid var(--line-color);z-index:1;border-radius:50%;flex:none;width:12px;height:12px;margin-right:2px;position:relative}.strip-stop:hover,.strip-stop.on{color:var(--accent)}.strip-stop.on i{background:var(--line-color)}.strip-line.dim{opacity:.35}.strip-gap{left:calc(var(--line-x) - 3px);border-radius:3px;width:6px;position:absolute;box-shadow:0 0 0 2px #fff,0 0 0 3px #0000002e}.strip-gap.close{background:#e5484d}.strip-gap.ok{background:#22a55a}.strip-gap.far{background:#f59e0b}.strip-gap span{z-index:2;font:600 10px var(--mono);color:#fff;background:inherit;white-space:nowrap;border-radius:6px;padding:1px 4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.strip-bus-wrap{z-index:1;transition:top .5s linear;position:absolute;transform:translateY(-50%)}.strip-bus-wrap:before{content:"";background:var(--ink);opacity:.35;width:11px;height:2px;margin-top:-1px;position:absolute;top:50%;left:-11px}.strip-bus-wrap.open{z-index:3}.strip-bus{color:#fff;font:600 11px var(--mono);white-space:nowrap;border:0;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;display:flex;position:relative;box-shadow:0 1px 3px #00000040}.strip-bus.est{opacity:.6}.strip-bus.stale{opacity:.3}.strip-bus.first,.strip-bus.last{box-shadow:0 0 0 2px #ffd54a,0 0 10px #ffb300}.strip-count{color:#fff;background:#e5484d;border-radius:999px;margin-left:2px;padding:0 6px;font-size:11px}.strip-board-link{border-top:2px dashed var(--accent);opacity:.55;z-index:0;pointer-events:none;transform-origin:0;height:0;animation:.25s ease-out both strip-link-grow;position:absolute}@keyframes strip-link-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes strip-board-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.strip-board-link,.strip-board{animation:none!important}}.strip-board{z-index:5;background:var(--paper);border-radius:12px;width:230px;padding:8px 10px 10px;font-size:13px;animation:.18s ease-out .2s both strip-board-in;position:absolute;box-shadow:0 4px 18px #00000047}.strip-board-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.strip-board-head b{flex:1;font-size:14px}.strip-board ul{margin:0;padding:0;list-style:none}.strip-board li{border-top:1px solid var(--rule);align-items:center;gap:8px;padding:4px 0;display:flex}.strip-board li>span:first-child{color:var(--muted);flex:none;width:4.5em;font-size:12px}.strip-board .plate{font:600 12px var(--mono);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.strip-board .eta{margin-left:auto;font-weight:700}.strip-board .eta.soon{color:#e5484d}.strip-board-none{color:var(--muted);margin:4px 0}.strip-board-map{border:1px solid var(--rule);width:100%;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:8px;margin-top:6px;padding:5px}.strip-list{background:var(--paper);border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;margin-top:4px;padding:6px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 2px 10px #00000040}.name-notice{width:min(460px,100%)}.name-notice p{margin:10px 0 14px;line-height:1.6}.name-notice-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.name-notice-foot label{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.beta-badge{color:var(--warn);vertical-align:1px;border:1px solid;border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;display:inline-block}
