@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(./Montserrat-latin-ext-D0hf-lZB.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(./Montserrat-latin-Dk9Pm7OY.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Oswald;font-style:normal;font-weight:600 700;font-display:swap;src:url(./Oswald-latin-ext-CgjUYnYA.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oswald;font-style:normal;font-weight:600 700;font-display:swap;src:url(./Oswald-latin-BUAu8bKM.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#1b2632;--ink-2:#4b5967;--paper:#fff;--line:#1b26321f;--shadow:0 6px 24px #14223029, 0 1px 3px #1422301f;--accent:#1f6f8b;--future:#3b82c4;--radius:14px;color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Montserrat,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body{background:#dbe7f0;height:100%;margin:0;overflow:hidden}#map{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}[hidden]{display:none!important}button{font:inherit;color:inherit}#labels{pointer-events:none;position:fixed;inset:0;overflow:hidden}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:6px}.tool:focus-visible,.ward-btn:focus-visible,.chipbtn:focus-visible{outline-offset:3px}.card:focus-visible,.future-panel:focus-visible{outline-offset:-3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.lbl{white-space:nowrap;will-change:transform;letter-spacing:.005em;color:#1c1c1e;text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 4px #fff,0 0 7px #ffffffd9;flex-direction:column;align-items:center;font-size:11.5px;font-weight:590;display:flex;position:absolute;top:0;left:0}.lbl:before{content:var(--i);background:var(--ic,#6b7785);color:#fff;width:20px;height:20px;text-shadow:none;border-radius:50%;place-items:center;margin-bottom:2px;font-size:11px;line-height:1;display:grid;box-shadow:0 0 0 1.6px #fff,0 1px 2.5px #00000047}.lbl.glyph .lbl-t{display:none}.lbl.glyph:before{margin-bottom:0}.lbl-division{letter-spacing:.13em;text-transform:uppercase;color:color-mix(in srgb, var(--c,#55606b) 62%, #3b4550);opacity:.9;font-size:13px;font-weight:700}.lbl-place{letter-spacing:.05em;color:#454f5a;font-size:12.5px;font-weight:640}.lbl-park{color:#3d6b46;font-weight:600}.lbl-road{letter-spacing:.02em;color:#5a626d;text-shadow:0 0 2px #fff,0 0 3px #fff,0 0 5px #ffffffe6;font-size:10.5px;font-weight:570}.lbl-road[data-major]{color:#4e5661;font-size:11.5px}.lbl-block{color:#5f6873;text-shadow:0 0 2px #fff,0 0 3px #fff;font-size:10.5px;font-weight:560}.lbl-station{--ic:#1b2632;font-weight:680}.lbl-station:before{content:"🚇"}.lbl-station.rail-lrt:before{content:"";background-color:#0b7d46;background-position:50%;background-repeat:no-repeat;background-size:11px}.lbl-cc{--i:"🏛";--ic:#b4532a}.lbl-rn{--i:"🏠";--ic:#c07a45}.lbl-shelter{--i:"🛡";--ic:#4a6b8a}.lbl-carpark{--i:"P";--ic:#3f6ea8;font-variant-numeric:tabular-nums}.lbl-carpark.nolive:before{color:#3f6ea8;background:#fff;box-shadow:0 0 0 1.6px #3f6ea8,0 1px 2.5px #0003}.lbl-carpark.tight:before{background:#b07818}.lbl-carpark.full:before{background:#9b3232}.lbl-bus{--i:"🚏";--ic:#2e7d4f}.lbl-preschool{--i:"🧸";--ic:#c2761f}.lbl-eldercare{--i:"🧓";--ic:#2c5f8f}.lbl-social{--i:"🤝";--ic:#6b3fa0}.lbl-hawker{--i:"🍜";--ic:#b0571f}.lbl-poi{--i:"•";--ic:#7c8792}.lbl-recycle{--i:"♻";--ic:#2f7d53}.lbl-school{--i:"🎓";--ic:#2f5aa8}.lbl-chas{--i:"✚";--ic:#1d7a6c}.lbl-library{--i:"📚";--ic:#8a5a2b}.lbl-parkfac{--i:"🌳";--ic:#4a8a4a}.lbl-exit{color:#fff;text-shadow:none;background:#1b2632;border-radius:4px;padding:1px 5px;font-size:10.5px;font-weight:700}.lbl-exit:before{content:none}.lbl-silver{color:#5c5330;text-shadow:none;background:#f0e096eb;border:1px solid #d9c164;border-radius:999px;flex-direction:row;align-items:center;padding:1px 9px 1px 7px;font-size:11px;font-weight:650}.lbl-silver:before{all:unset;margin-right:4px;font-size:10px}.lbl-busonly{color:#3a2f00;text-shadow:none;background:#ecca4ef0;border:1px solid #c9a733;border-radius:999px;flex-direction:row;align-items:center;padding:1px 9px 1px 7px;font-size:10.5px;font-weight:650}.lbl-busonly:before{all:unset;margin-right:4px;font-size:10px}.lbl-pending{color:#6b7480;text-shadow:none;background:#ffffffb8;border:1px dashed #a9b2bc;border-radius:5px;padding:0 5px;font-size:10.5px;font-weight:600}.lbl-news{--i:"📣";--ic:#1f5f99}.lbl-dengue{color:#fff;text-shadow:none;background:#a5342c;border-radius:999px;flex-direction:row;align-items:center;padding:2px 9px 2px 7px;font-size:11px;font-weight:700;box-shadow:0 1px 3px #0000003d}.lbl-dengue:before{all:unset;margin-right:5px;font-size:10px}.lbl-aed{--i:"";--ic:#1e8a4c}.lbl-aed:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 21s-7.5-5-7.5-10.3A4.2 4.2 0 0 1 12 8.2a4.2 4.2 0 0 1 7.5 2.5C19.5 16 12 21 12 21z'/%3E%3Cpath fill='%231e8a4c' d='M12.8 8.5 9.6 13h2.2l-.8 3.5 3.4-4.7h-2.2z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:13px}.aed-where{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin:10px 0 2px;font-size:12px}.aed-list{margin:0 0 6px;padding-left:18px;font-size:13.5px}.lbl-police{--ic:#1b3a6b}.lbl-fire{--ic:#b3262c}.lbl-health{--ic:#0f7a72}.lbl-police:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2l8 3v6c0 5-3.4 9.2-8 11-4.6-1.8-8-6-8-11V5l8-3z'/%3E%3C/svg%3E")}.lbl-fire:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2c1 4-2 5-3.5 7.5C7 12 7.5 14 9 15c-.3-1.6.4-2.8 1.5-3.6-.2 2.2 1 3 2 3.9 1.2 1 1.6 2.3 1.1 3.7 2.3-1 3.9-3.3 3.9-6C17.5 9 14 7 12 2z'/%3E%3C/svg%3E")}.lbl-health:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M9.5 2h5v7.5H22v5h-7.5V22h-5v-7.5H2v-5h7.5z'/%3E%3C/svg%3E")}.lbl-police.out:before,.lbl-fire.out:before,.lbl-health.out:before{opacity:.72}.lbl-mps,.lbl-works,.lbl-flood{text-shadow:none;border-radius:999px;flex-direction:row;padding:2px 9px 2px 7px;font-size:11px;font-weight:700;box-shadow:0 1px 3px #0000002e}.lbl-mps{color:#1b2632;border:1.5px solid var(--c,#1b2632);background:#fff}.lbl-mps:before{all:unset;margin-right:4px;font-size:10px}.lbl-works{color:#3a2a00;background:#f2c65a}.lbl-works:before{all:unset;margin-right:4px;font-size:10px}.lbl-flood{color:#eaf7ff;background:#0b4f6c;animation:2s ease-in-out infinite floodpulse}.lbl-flood:before{all:unset;margin-right:4px;font-size:10px}@keyframes floodpulse{0%,to{box-shadow:0 1px 3px #00000040}50%{box-shadow:0 1px 3px #00000040,0 0 0 6px #1d7fa847}}@media (prefers-reduced-motion:reduce){.lbl-flood{animation:none}}.lbl-future{color:#2d5f96;font-weight:640}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.top{top:max(12px, env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;left:12px;right:12px}.top>*{pointer-events:auto}.glass,.brand,.search input,.tool,.phase,.card,.future-panel,.chip{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background:#ffffffd1}.brand{box-shadow:var(--shadow);border-radius:13px;align-items:center;gap:10px;max-width:46vw;padding:8px 13px 9px;display:flex}.here{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;font-size:15px;font-weight:680;display:flex;overflow:hidden}.dot{background:var(--c,#999);border-radius:50%;flex:none;width:9px;height:9px}.brand-logo{flex:none;width:auto;height:26px;display:block}.op-logo{vertical-align:middle;width:auto;height:20px;margin-right:8px}.here .dot{transition:background .3s;box-shadow:inset 0 0 0 1px #00000014}.here-sub{display:none}.wx{color:var(--ink-2);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;margin:3px 0 0;padding:0;font-size:12px;font-weight:560;display:block;overflow:hidden}.wx:hover{color:var(--accent)}.wx.stale{opacity:.6;font-style:italic}.wx.warn{color:#a8331f;font-weight:650}.tools{right:12px;top:calc(max(12px, env(safe-area-inset-top)) + 58px);flex-direction:column;gap:8px;display:flex;position:absolute}.tool{width:42px;height:42px;box-shadow:var(--shadow);cursor:pointer;color:var(--ink);border:0;border-radius:50%;place-items:center;font-size:17px;line-height:1;display:grid;position:relative}.tool:hover{color:var(--accent)}.tool.on{color:#fff;background:#c2761f}.tool.busy{opacity:.55;pointer-events:none}.news-n{color:#fff;background:#c2461f;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:11px;font-weight:700;display:grid;position:absolute;top:-2px;right:-2px;box-shadow:0 0 0 2px #ffffffe6}.phase{left:12px;bottom:max(64px, calc(env(safe-area-inset-bottom) + 58px));box-shadow:var(--shadow);border-radius:999px;padding:3px;display:flex;position:absolute}.phase button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:999px;padding:7px 15px;font-size:13.5px;font-weight:620}.phase button[aria-checked=true]{background:var(--ink);color:#fff}.phase button[data-phase=future][aria-checked=true]{background:var(--future)}.search{flex:190px;max-width:340px;position:relative}.search input{border-radius:var(--radius);width:100%;box-shadow:var(--shadow);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b5967' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E") no-repeat 12px 50% / 17px;font:inherit;color:var(--ink);border:0;padding:12px 12px 12px 37px;font-size:16px}.search input::placeholder{color:var(--ink-2);opacity:.85}.search input:focus{outline:2px solid var(--accent);outline-offset:1px}.search input::-webkit-search-cancel-button{cursor:pointer}.search ul{background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);overscroll-behavior:contain;max-height:min(58vh,420px);margin:0;padding:5px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.search li{cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;display:flex}.search li.on{background:color-mix(in srgb, var(--accent) 12%, transparent)}.sr-text{min-width:0}.sr-text b{font-size:14px;font-weight:650;display:block}.sr-text i{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-style:normal;display:block;overflow:hidden}.sr-kind{text-align:center;flex:none;width:22px;font-size:15px;line-height:1}.sr-kind:before{content:"🏠"}.sr-block:before{content:"🏢"}.sr-station:before{content:"🚇"}.sr-cc:before{content:"🏛"}.sr-mps:before{content:"🤝"}.sr-shelter:before{content:"🛡"}.sr-division:before{content:"📍"}.sr-future:before{content:"🚧"}.sr-bus:before{content:"🚏"}.sr-busroute:before{content:"🚌"}.sr-amenity:before{content:"🧸"}.sr-place:before{content:"🛒"}.sr-school:before{content:"🎓"}.sr-pending:before{content:"📐"}.sr-chas:before{content:"✚"}.sr-library:before{content:"📚"}.sr-parkfac:before{content:"🌳"}.sr-silver:before{content:"🚶"}.sr-recycling:before{content:"♻️"}.sr-carpark:before{content:"🅿️"}.sr-police:before{content:"👮"}.sr-fire:before{content:"🚒"}.sr-health:before{content:"⚕️"}.wx{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--ink-2);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:999px;max-width:100%;margin:6px 0 0;padding:3px 9px 3px 7px;font-size:12.5px;font-weight:600;display:block;overflow:hidden}.wx:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.wx.warn{color:#8d2020;background:#fdeaea}.locate{background:var(--paper);box-shadow:var(--shadow);color:var(--ink);cursor:pointer;white-space:nowrap;border:0;border-radius:999px;padding:10px 14px;font-size:14px;font-weight:650}.locate:hover{color:var(--accent)}.locate.busy{opacity:.6;pointer-events:none}.nearby-list{margin:10px 0 0;padding:0;list-style:none}.nearby-list li+li{border-top:1px solid var(--line)}.nearby{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:9px 2px;display:flex}.nearby:hover{color:var(--accent)}.n-ico{text-align:center;flex:none;width:22px;font-size:15px}.n-text{flex:1;min-width:0}.n-text b{font-size:14px;font-weight:650;display:block}.n-text i{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-style:normal;display:block;overflow:hidden}.n-far{color:var(--ink-2);flex:none;font-size:12px}.lots{margin:8px 0 0;font-size:15px}.lots b{font-size:19px}.lots.free{color:#1d6b3a}.lots.tight{color:#8a5a12}.lots.full{color:#8d2020}.toast{left:50%;bottom:max(88px, calc(env(safe-area-inset-bottom) + 80px));background:var(--ink);color:#fff;max-width:min(420px,100vw - 32px);box-shadow:var(--shadow);pointer-events:none;border-radius:10px;padding:10px 14px;font-size:13px;position:absolute;transform:translate(-50%)}.logo{width:auto;max-width:88%;height:38px;margin:10px 0 4px;display:block}.logo-pa{height:56px;margin:4px 0 10px}.grassroots .logo{height:62px}.shot{margin:10px 0 0}.shot img{object-fit:cover;background:#eef1f4;border-radius:10px;width:100%;max-height:220px;display:block}.shot figcaption{color:var(--ink-2);margin-top:5px;font-size:11px}.news-btn{background:var(--paper);box-shadow:var(--shadow);color:var(--ink);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:10px 14px;font-size:14px;font-weight:700;display:inline-flex}.news-btn .news-n{background:var(--ink);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:12px;display:inline-grid}.news-btn.deal .news-n{background:#c2461f}.news-btn:hover{color:#c2461f}.card-kicker.news-kicker .dot{background:#c2461f}.news-list{margin:10px 0 0;padding:0;list-style:none}.news-list li{border-left:3px solid var(--line);margin-top:10px;padding-left:10px;position:relative}.news-list li.news-deal{border-color:#c2461f}.news-list li.news-event{border-color:#6b3fa0}.news-list li.news-works{border-color:#c28a1f}.news-list li.news-notice{border-color:#1f6f8b}.news-list button{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:block}.news-list li:not(:has(button[data-news])) button{cursor:default}.news-list b{font-size:14.5px;display:block}.news-list span{color:var(--ink-2);margin-top:2px;font-size:13px;display:block}.news-list i{margin-top:3px;font-size:11.5px;font-style:normal;display:block}.news-link{font-size:12.5px}.card-kicker.pl-groceries .dot{background:#2e7d4f}.card-kicker.pl-food .dot{background:#c2761f}.card-kicker.pl-health .dot{background:#0f7a72}.card-kicker.pl-money .dot{background:#1f6f8b}.card-kicker.pl-play .dot{background:#6b3fa0}.card-kicker.pl-everyday .dot{background:#6b7785}.team-tabs{gap:6px;margin:10px 0 4px;display:flex}.team-tabs button{border:1px solid var(--line);cursor:pointer;color:var(--ink-2);background:#fff;border-radius:8px;flex:1;padding:7px 10px;font-size:13px;font-weight:650}.team-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.f-row{gap:10px;display:flex}.f-row .wish-field{flex:1;min-width:0}.f-check{align-items:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.news-list li{align-items:flex-start;gap:6px;display:flex}.news-list li>button:first-child{flex:1}.news-del{border:1px solid var(--line);cursor:pointer;width:26px;height:26px;color:var(--ink-2);background:#fff;border-radius:7px;flex:none;font-size:15px;line-height:1}.news-del:hover{color:#c2461f;border-color:#c2461f}.callout{background:#f6f1e8;border:1px solid #e0d3bd;border-radius:11px;margin-top:14px;padding:11px 12px}.callout h3{letter-spacing:.04em;text-transform:uppercase;color:#7a5a25;margin:0;font-size:13px}.callout p{margin:6px 0 0}.photo-pick{margin-top:10px;display:inline-block}.photo-pick span{color:#7a5a25;cursor:pointer;background:#fff;border:1px solid #d2b98c;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:650;display:inline-block}.photo-pick span:hover{background:#fdf6ea}.photo-pick input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}.photo-state{margin-top:10px}.photo-preview{object-fit:cover;border-radius:9px;width:100%;max-height:190px;display:block}.home-btn{background:var(--paper);box-shadow:var(--shadow);color:var(--ink);cursor:pointer;white-space:nowrap;border:0;border-radius:999px;padding:10px 14px;font-size:14px;font-weight:650}.home-btn:hover{color:var(--accent)}.blk-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chipbtn{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:650}.chipbtn:hover{border-color:var(--accent);color:var(--accent)}.chipbtn.on{background:var(--ink);color:#fff;border-color:var(--ink)}.chipbtn.on:hover{color:#fff}.wish-btn{background:var(--paper);box-shadow:var(--shadow);color:var(--ink);cursor:pointer;white-space:nowrap;border:0;border-radius:999px;padding:10px 14px;font-size:14px;font-weight:650}.wish-btn:hover{color:#b8761c}.wish-btn.on{color:#fff;background:#c2761f}.wish-hint{left:50%;top:max(84px, calc(env(safe-area-inset-top) + 78px));pointer-events:auto;color:#fff;box-shadow:var(--shadow);background:#c2761f;border-radius:999px;align-items:center;gap:12px;padding:9px 12px 9px 15px;font-size:13.5px;font-weight:600;display:flex;position:absolute;transform:translate(-50%)}.wish-hint .linkish{color:#fff;opacity:.85;text-decoration:underline}.card-kicker.wish-kicker .dot{background:#c2761f}.wish-themes{border:0;flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:0;display:flex}.wish-themes legend{padding:0}.wish-theme{display:inline-flex}.wish-theme input{opacity:0;pointer-events:none;position:absolute}.wish-theme span{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;padding:6px 11px;font-size:13px;display:inline-block}.wish-theme input:checked+span{color:#7a4a10;background:#fbf0e2;border-color:#d9a465;font-weight:650}.wish-theme input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}.wish-field{margin-top:10px;display:block}.wish-field textarea,.wish-field input{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);resize:vertical;background:#fff;border-radius:9px;margin-top:6px;padding:9px 10px;font-size:15px}.wish-field textarea:focus,.wish-field input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}.wish-actions{align-items:center;gap:12px;margin-top:12px;display:flex}.wish-send{color:#fff;cursor:pointer;background:#c2761f;border:0;border-radius:9px;padding:10px 18px;font-size:14px;font-weight:700}.wish-send:disabled{opacity:.55;cursor:default}.wish-error{color:#8d2020;background:#fdeaea;border-radius:8px;margin:8px 0 0;padding:8px 10px;font-size:13px}.tally{margin:8px 0 0;padding:0;font-size:13px;list-style:none}.tally li{align-items:center;gap:8px;padding:3px 0;display:flex}.t-name{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);flex:0 0 38%;overflow:hidden}.t-bar{background:var(--line);border-radius:999px;flex:1;height:8px;overflow:hidden}.t-bar i{background:var(--c,var(--accent));border-radius:999px;height:100%;display:block}.t-n{font-variant-numeric:tabular-nums;color:var(--ink-2);flex:none}.wish-list{margin:8px 0 0;padding:0;list-style:none}.wish-list li+li{border-top:1px solid var(--line)}.wish-list button{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;padding:9px 2px;display:block}.wish-list button:hover{color:var(--accent)}.wish-list b{font-size:13px;display:block}.wish-list span{color:var(--ink-2);margin-top:1px;font-size:13px;display:block}.wish-list i{margin-top:2px;font-size:11.5px;font-style:normal;display:block}.card-kicker.am-preschool .dot,.card-kicker.am-kindergarten .dot,.card-kicker.am-childcare .dot{background:#c2761f}.card-kicker.am-eldercare .dot{background:#2c5f8f}.card-kicker.am-ssa .dot,.card-kicker.am-sso .dot{background:#6b3fa0}.card-kicker.am-hawker .dot{background:#b0571f}.card-kicker.rc-bluebin .dot{background:#2f7d53}.card-kicker.rc-ewaste .dot{background:#3f6ea8}.card-kicker.rc-cash .dot{background:#b08a1f}.card-kicker.rc-bcrs .dot{background:#2a9ad4}.card-kicker.dengue-kicker .dot{background:#a5342c}.card-kicker.school-kicker .dot{background:#2f5aa8}.card-kicker.nb-chas .dot{background:#1d7a6c}.card-kicker.nb-library .dot{background:#8a5a2b}.card-kicker.nb-parkfac .dot{background:#4a8a4a}.card-kicker.silver-kicker .dot{background:#d9c164}.logo-bcrs{background:#42271f;border-radius:8px;padding:8px 10px}.fold{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.fold>summary{cursor:pointer;align-items:baseline;gap:8px;padding:2px 0;font-size:13.5px;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary:after{content:"⌄";color:var(--ink-2);margin-left:auto;font-size:13px;line-height:1;transform:translateY(-2px)}.fold[open]>summary:after{content:"⌃";transform:translateY(2px)}.fold>summary:hover{color:var(--accent)}.fold>summary .muted{font-size:12.5px}.upgrading{margin-top:12px;padding-top:10px}.upgrading .notice{margin-top:8px}.upgrading .notice a{color:var(--accent)}.notice{color:#24406b;background:#eef3fa;border-radius:9px;margin:10px 0 0;padding:9px 11px;font-size:12.5px;line-height:1.45}.access{color:#24512f;background:#eef4ef;border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:12.5px}.svc-head{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin:12px 0 0;font-size:12px}.svc-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.svc{border:1px solid var(--line);cursor:pointer;color:#1c4a2b;font-variant-numeric:tabular-nums;background:#f3f7f4;border-radius:7px;padding:5px 9px;font-size:13px;font-weight:650}.svc:hover{background:#e3efe6;border-color:#9ec2a8}.firstlast{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:8px 0 0;font-size:13px}.firstlast th,.firstlast td{text-align:left;padding:3px 6px 3px 0}.firstlast thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);border-bottom:1px solid var(--line);font-size:11px;font-weight:600}.firstlast tbody th{font-weight:650}.firstlast tr.gone{color:var(--ink-2);opacity:.72}.gone-tag{text-transform:uppercase;letter-spacing:.04em;color:#8d2020;background:#fdeaea;border-radius:4px;padding:1px 4px;font-size:10px;font-weight:700}.svc-stops{margin:10px 0 0;padding-left:20px;font-size:13px}.svc-stops li{margin:2px 0}.svc-stops button{text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;padding:0}.svc-stops button:hover{color:var(--accent)}.lbl-police,.lbl-fire,.lbl-health{color:#fff;text-shadow:none;background-position:5px;background-repeat:no-repeat;background-size:13px;border-radius:999px;padding:2px 8px 2px 22px;font-size:11px;font-weight:700;box-shadow:0 1px 3px #0003}.lbl-police{background-color:#1b3a6b;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2l8 3v6c0 5-3.4 9.2-8 11-4.6-1.8-8-6-8-11V5l8-3z'/%3E%3C/svg%3E")}.lbl-fire{background-color:#b3262c;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2c1 4-2 5-3.5 7.5C7 12 7.5 14 9 15c-.3-1.6.4-2.8 1.5-3.6-.2 2.2 1 3 2 3.9 1.2 1 1.6 2.3 1.1 3.7 2.3-1 3.9-3.3 3.9-6C17.5 9 14 7 12 2z'/%3E%3C/svg%3E")}.lbl-health{background-color:#0f7a72;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M9.5 2h5v7.5H22v5h-7.5V22h-5v-7.5H2v-5h7.5z'/%3E%3C/svg%3E")}.lbl-police.out,.lbl-fire.out,.lbl-health.out{opacity:.82}.card-kicker.svc-police .dot{background:#1b3a6b}.card-kicker.svc-fire .dot{background:#b3262c}.card-kicker.svc-health .dot{background:#0f7a72}.emergency{color:#7d1d1d;background:#fdeaea;border-radius:9px;margin:10px 0 0;padding:9px 11px;font-size:13px}.emergency b{font-variant-numeric:tabular-nums}.wards{left:12px;bottom:max(20px, calc(env(safe-area-inset-bottom) + 14px));position:absolute}.ward-btn{cursor:pointer;color:var(--ink);-webkit-backdrop-filter:blur(18px)saturate(1.6);background:#ffffffd1;border:0;border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 11px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 1px 3px #14223024,0 6px 18px #14223017}.ward-btn .dot{width:9px;height:9px;box-shadow:inset 0 0 0 1.5px var(--ink-2);background:0 0;border-radius:50%}.ward-btn.picked .dot{box-shadow:none}.ward-btn .caret{color:var(--ink-2);font-size:10px;transform:translateY(1px)}.ward-btn[aria-expanded=true] .caret{transform:rotate(180deg)translateY(1px)}.ward-menu{-webkit-backdrop-filter:blur(20px)saturate(1.6);background:#ffffffe6;border-radius:14px;width:max-content;max-width:min(300px,100vw - 24px);margin:0 0 8px;padding:5px;list-style:none;position:absolute;bottom:100%;left:0;box-shadow:0 2px 6px #14223024,0 14px 34px #14223029}.ward-menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:9px;width:100%;padding:7px 10px;display:flex}.ward-menu button:hover{background:#1422300f}.ward-menu .dot{background:var(--ink-2);border-radius:50%;flex:none;width:9px;height:9px}.ward-row{gap:1px;display:grid}.ward-row b{font-size:13.5px;font-weight:620}.ward-row i{color:var(--ink-2);font-size:11.5px;font-style:normal}.ward-menu button.secondary .ward-row b{font-weight:560}.ward-menu button.on{background:#14223014}.ward-menu button.on .ward-row b:after{content:" ✓";color:var(--accent)}.card,.future-panel{overscroll-behavior:contain;border-radius:18px;width:min(348px,100% - 24px);max-height:calc(100vh - 170px);padding:16px 18px 18px;position:absolute;top:78px;right:12px;overflow:auto;box-shadow:0 10px 34px #1422302e,0 2px 6px #1422301a}.card h2,.future-panel h2{margin:4px 0 2px;font-size:20px;line-height:1.2}.card .mp{color:var(--ink-2);margin:0;font-size:14px}.card .facts{margin:10px 0 0;font-size:14px}.card dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:12px 0 0;font-size:14px;display:grid}.card dt{color:var(--ink-2)}.card dd{margin:0}.card-kicker{color:var(--ink-2);align-items:center;gap:7px;font-size:12.5px;display:flex}.card{max-height:calc(100vh - 150px);overflow:auto}.card .mps{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.card h4{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin:8px 0 2px;font-size:12px}.centres{margin:0;padding:0;list-style:none}.centres button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;width:100%;padding:5px 6px;font-size:13.5px;display:flex}.centres button:hover{background:#f3f6f9}.p1{margin-top:12px}.p1-list{margin:2px 0 8px;padding:0;list-style:none}.p1-list button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:baseline;gap:8px;width:100%;padding:4px 6px;font-size:13.5px;display:flex}.p1-list button:hover{background:#f1f5fa}.p1-list i{white-space:nowrap;margin-left:auto;font-size:12px;font-style:normal}.walk-list .wt{font-variant-numeric:tabular-nums;color:var(--accent);flex:0 0 52px;font-weight:650}.walk-list i{text-overflow:ellipsis;max-width:60%;overflow:hidden}.walk-list .cov{color:var(--ink-2);white-space:nowrap;font-size:11px}.reach-list{margin:2px 0 8px;padding:0;list-style:none}.reach-list li{align-items:center;gap:8px;padding:2px 0;font-size:13px;display:flex}.reach-list b{flex:0 0 108px;font-weight:600}.reach-list .bar{background:#e7edf3;border-radius:4px;flex:auto;height:8px;position:relative;overflow:hidden}.reach-list .b5,.reach-list .b10{border-radius:4px;position:absolute;inset:0 auto 0 0}.reach-list .b10{background:#bcd6ea}.reach-list .b5{background:var(--accent)}.reach-list i{text-align:right;font-variant-numeric:tabular-nums;flex:0 0 66px;font-size:11.5px;font-style:normal}.rb-time{align-items:center;gap:8px;margin:12px 0 4px;display:flex}.rb-time label{color:var(--ink-2);white-space:nowrap}.rb-time input[type=range]{min-width:60px;accent-color:var(--accent);flex:auto}.rb-time output{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:620}.card .mps h3{margin:0 0 4px;font-size:14px}.card .mps p{margin:3px 0}.card .mps .next{font-size:14px}.linkbtn{color:var(--accent);cursor:pointer;background:#eef3f7;border:0;border-radius:8px;margin-top:6px;padding:6px 12px;font-size:13px;font-weight:650}.linkbtn:hover{background:#e2ecf3}.walkto{margin-top:10px;text-decoration:none;display:inline-block}.card .close{cursor:pointer;width:32px;height:32px;color:var(--ink-2);background:0 0;border:0;border-radius:50%;font-size:22px;line-height:1;position:absolute;top:8px;right:8px}.card .close:hover{background:#f1f4f7}.muted{color:var(--ink-2)}.small{font-size:12.5px;line-height:1.45}.future-panel{top:auto;bottom:max(34px, calc(env(safe-area-inset-bottom) + 26px));max-height:46vh;overflow:auto}.tabs{background:#eef2f6;border-radius:10px;gap:4px;margin-bottom:10px;padding:3px;display:flex}.tabs button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;padding:7px 8px;font-size:13.5px;font-weight:650}.tabs button[aria-selected=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px #14223024}.zones{gap:5px;margin:8px 0;padding:0;list-style:none;display:grid}.zones li{align-items:center;gap:9px;font-size:13.5px;display:flex}.zones .name{flex:1}.swatch{border-radius:4px;flex:none;width:14px;height:14px;box-shadow:inset 0 0 0 1px #0000002e}.card-kicker .swatch{background:var(--c);border-radius:3px;width:12px;height:12px}.future-panel ul{gap:2px;margin:10px 0;padding:0;list-style:none;display:grid}.future-panel li button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:baseline;gap:8px;width:100%;padding:7px 6px;font-size:14px;display:flex}.future-panel li button:hover{background:#f1f5fa}.tag{color:#1f5f99;background:#e7f0fa;border-radius:999px;flex:none;padding:2px 7px;font-size:11px;font-weight:700}.tag-planned{color:#5b3aa6;background:#efe9fb}.tag-proposed{color:#9a5b12;background:#fdf0e1}code{background:#f1f4f7;border-radius:4px;padding:1px 4px;font-size:12px}.linkish{cursor:pointer;color:inherit;background:0 0;border:0;padding:0;font-size:11px;text-decoration:underline}dialog.sources{box-shadow:var(--shadow);overscroll-behavior:contain;border:0;border-radius:18px;max-width:min(520px,92vw);max-height:min(80vh,720px);padding:20px 22px;overflow:auto}dialog.sources form{background:linear-gradient(#fff0, var(--paper) 30%);margin-top:14px;padding:10px 0 0;position:sticky;bottom:-20px}dialog.sources h2{margin:0 0 8px;font-size:18px}dialog.sources h3{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin:14px 0 4px;font-size:12px}dialog.sources::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1422304d}dialog.sources ul{padding-left:18px;font-size:13.5px;line-height:1.5}dialog.sources form button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:8px 16px}.loading{background:#dbe7f0;place-content:center;justify-items:center;gap:14px;display:grid;position:absolute;inset:0}.loading-title{letter-spacing:.02em;font-size:22px;font-weight:750}.bar{background:#1b26321f;border-radius:3px;width:220px;height:5px;overflow:hidden}.bar i{background:var(--ink);width:0;height:100%;transition:width .2s;display:block}.loading-note{color:var(--ink-2);text-align:center;max-width:80vw;font-size:13px}@media (max-width:640px){.here{font-size:14px}.brand{max-width:52vw;padding:7px 11px 8px}.search{flex:auto;max-width:none}.search input{padding-top:10px;padding-bottom:10px}.tool{width:38px;height:38px;font-size:16px}.tools{top:calc(max(12px, env(safe-area-inset-top)) + 54px);gap:7px;right:10px}.phase{left:10px;bottom:max(58px, calc(env(safe-area-inset-bottom) + 52px))}.phase button{padding:6px 13px;font-size:13px}.wards{left:10px;bottom:max(14px, calc(env(safe-area-inset-bottom) + 8px))}.card,.future-panel{width:auto;max-height:62vh;padding:14px 16px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;inset:auto 0 0;box-shadow:0 -6px 28px #1422302e}.card:before{content:"";background:#3c465038;border-radius:999px;width:38px;height:4px;margin:-4px auto 10px;display:block}.card:not([hidden])~.future-panel{display:none}.card,.future-panel{z-index:3}.card:not([hidden])~.wards,.card:not([hidden])~.phase{display:none}.wish-hint{top:auto;bottom:max(110px, calc(env(safe-area-inset-bottom) + 104px))}}.lbl-police:before,.lbl-fire:before,.lbl-health:before,.lbl-shelter:before,.lbl-cc:before,.lbl-rn:before,.lbl-parkfac:before,.lbl-recycle.rc-bcrs:before{content:"";box-shadow:0 0 0 1.6px var(--ic), 0 1px 2.5px #00000047;background-color:#fff;background-position:50%;background-repeat:no-repeat;border-radius:10px}.lbl-police:before,.lbl-fire:before,.lbl-health:before,.lbl-recycle.rc-bcrs:before{background-size:36px;width:42px}.layers{gap:2px;margin:4px 0 10px;display:grid}.layers .f-check .muted{font-weight:400}.shot.dev{position:relative}.shot.dev .dev-tag{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:#142230d1;border-radius:999px;padding:3px 8px;font-size:10.5px;font-weight:700;position:absolute;top:8px;left:8px}.shot.dev.drawn .dev-tag{background:#3f6ea8eb}.langs{flex-wrap:wrap;gap:6px;margin:4px 0 8px;display:flex}.langs button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:6px 14px;font-size:13.5px;font-weight:600}.langs button[aria-checked=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.langs button:hover{border-color:var(--accent)}.alt-names{flex-wrap:wrap;gap:4px 10px;margin:2px 0 0;display:flex}.alt-name{color:var(--ink-2);font-size:14px}.greenbar{height:4px;width:var(--w);background:linear-gradient(90deg,#3f7d3a,#7fbf5a);border-radius:2px;min-width:2px;margin:4px 0;display:block}.wx.flood{color:#e8f6ff;background:#0b4f6c;border-color:#1d7fa8}.flood h3{color:#0b4f6c}.flood ul{margin:6px 0 8px;padding-left:18px}.flood li{margin-bottom:6px}.xtab-wrap{margin:6px 0 10px;overflow-x:auto}.xtab{border-collapse:collapse;width:100%;font-size:12px}.xtab th,.xtab td{text-align:center;padding:4px 6px}.xtab tbody th{text-align:left;white-space:nowrap;font-weight:500}.xtab thead th{opacity:.75;font-weight:600}.xtab td{background:color-mix(in srgb, var(--c,#888) calc(var(--f,0) * 70%), transparent);border-radius:3px}.xtab td.tot{opacity:.8;background:0 0;font-weight:650}.arrivals{margin:8px 0 2px}.arr{margin:4px 0 6px;padding:0;list-style:none}.arr li{flex-wrap:wrap;align-items:baseline;gap:8px;padding:3px 0;display:flex}.arr-no{all:unset;cursor:pointer;color:#2e6f3f;min-width:46px;font-size:13px;font-weight:700}.arr-no:hover{text-decoration:underline}.arr-times{font-size:13px}.arr-times .live{font-weight:700}.arr-times .sched{opacity:.6;font-weight:400}.arr-times .sep{opacity:.35;margin:0 5px}.arr-load,.arr-type{opacity:.65;font-size:11px;font-style:normal}.svc.pkg{color:#fff;background:#1f6f8b;border-color:#1f6f8b}.svc.other{color:#6b737b;background:0 0;border-color:#c9ced3}.arr-no.pkg{color:#1f6f8b}.arr-no.other{color:#7b838b;font-weight:600}.operator{color:#6b737b;margin:-2px 0 8px;font-size:13px}.operator.pkg{color:#1f6f8b;font-weight:600}body.driving #ui,body.driving #labels{display:none}.cab{pointer-events:none;color:#fff;font-variant-numeric:tabular-nums;position:fixed;inset:0}.cab button{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none}.cab-top{left:12px;right:12px;top:max(12px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#141a22c7;border-radius:14px;align-items:center;gap:12px;padding:10px 12px;display:flex;position:absolute}.cab-route{flex:1;align-items:baseline;gap:10px;min-width:0;display:flex}.cab-no{background:var(--accent);border-radius:8px;padding:2px 10px;font-size:24px;font-weight:800}.cab-dest{opacity:.9;white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.cab-stats{opacity:.95;white-space:nowrap;gap:12px;font-size:14px;font-weight:650;display:flex}.cab-load{opacity:.8;font-weight:600}@media (max-width:560px){.cab-load{display:none}}.cab-no{flex:none}.cab-route{min-width:-moz-fit-content;min-width:fit-content}@media (max-width:480px){.cab-clock{display:none}.cab-top{gap:6px;padding:8px 10px}.cab .cab-help,.cab .cab-gfx,.cab .cab-view,.cab .cab-voice,.cab .cab-immersive,.cab .cab-full,.cab .cab-exit{width:30px;height:30px;font-size:16px}.cab .cab-exit{font-size:22px}}@media (max-width:700px){.cab-top{flex-wrap:wrap;row-gap:8px}.cab-fov{flex-basis:100%;order:10}.cab-fov-input{flex:1;width:auto}.cab-dest{display:none}.cab .cab-doors,.cab .cab-next,.cab .cab-gps{top:calc(max(12px, env(safe-area-inset-top)) + 104px)}}.cab-fov{opacity:.95;white-space:nowrap;pointer-events:auto;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.cab-fov-input{accent-color:#1a73e8;pointer-events:auto;touch-action:auto;width:min(22vw,120px)}.cab-fov-value{font-variant-numeric:tabular-nums;min-width:3ch}.cab-help,.cab-gfx,.cab-view,.cab-voice,.cab-immersive,.cab-full,.cab-exit{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:50%;place-items:center;width:36px;height:36px;font-size:20px;line-height:1;display:grid}.cab-exit{font-size:26px}.cab-help{font-size:19px;font-weight:800}.cab:not(.chase) .cab-speed{display:none}.cab-help[aria-expanded=true]{background:#ffffff4d}.cab-help-panel{top:max(78px, calc(env(safe-area-inset-top) + 72px));z-index:3;pointer-events:auto;background:#0e1218eb;border-radius:14px;width:min(360px,100vw - 32px);max-height:calc(100vh - 120px);padding:14px 16px;font-size:13px;line-height:1.45;position:absolute;right:16px;overflow:auto;box-shadow:0 6px 24px #00000059}.cab-help-panel[hidden]{display:none}.cab-help-panel b{margin-bottom:8px;font-size:14px;display:block}.cab-help-panel dl{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;display:grid}.cab-help-panel dt{white-space:nowrap;font-weight:700}.cab-help-panel dd{opacity:.85;margin:0}.cab-doors{left:12px;top:calc(max(12px, env(safe-area-inset-top)) + 66px);pointer-events:auto;background:#141a22d1;border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute}.cab-doors button{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff1a;border:0;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-weight:700;display:flex}.cab-doors .dot{background:#6b7078;border-radius:50%;flex:none;width:9px;height:9px;transition:background .15s}.cab-doors button[aria-pressed=true]{background:#39c46a38}.cab-doors button[aria-pressed=true] .dot{background:#39c46a;box-shadow:0 0 6px #39c46a}.cab.touch .cab-doors{top:calc(max(8px, env(safe-area-inset-top)) + 60px)}.cab-next{left:50%;top:calc(max(12px, env(safe-area-inset-top)) + 66px);white-space:nowrap;background:#141a22b8;border-radius:999px;align-items:baseline;gap:8px;max-width:calc(100% - 24px);padding:6px 14px;font-size:14px;display:flex;position:absolute;transform:translate(-50%)}.cab-next-label{opacity:.7;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.cab-next-name{text-overflow:ellipsis;overflow:hidden}.cab-next-dist{opacity:.85}.cab-warn,.cab-toast{background:#141a22cc;border-radius:12px;padding:10px 16px;font-size:15px;font-weight:650;position:absolute;top:40%;left:50%;transform:translate(-50%)}.cab-warn{background:#c2761feb}.cab-gps{right:12px;top:calc(max(12px, env(safe-area-inset-top)) + 66px);background:#141a22db;border-radius:14px;width:min(34vw,260px);position:absolute;overflow:hidden;box-shadow:0 4px 14px #00000059}.cab-gps-turn{background:#1a73e8;align-items:center;gap:10px;padding:8px 12px;display:flex}.cab-gps-arrow{color:#fff;flex:none;width:36px;height:36px}.cab-gps-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.cab-gps-dist{font-size:20px;font-weight:800}.cab-gps-road{opacity:.95;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.cab-gps-map{aspect-ratio:1;width:100%;display:block}.cab-gps{pointer-events:auto;cursor:pointer;transition:width .2s}.cab-gps.big{z-index:3;width:min(88vw,860px);right:50%;transform:translate(50%)}.cab-gps.big .cab-gps-map{aspect-ratio:16/10;max-height:calc(100vh - 190px)}.cab.touch .cab-gps{width:min(30vw,200px)}.cab.touch .cab-gps-dist{font-size:17px}.cab-speed{left:50%;bottom:max(22px, calc(env(safe-area-inset-bottom) + 14px));background:#141a22c7;border-radius:14px;align-items:baseline;gap:6px;padding:8px 16px;display:flex;position:absolute;transform:translate(-50%)}.cab-speed b{font-size:34px;font-weight:800}.cab-speed span{opacity:.8;font-size:13px}.cab-gear{color:#ffd23f;margin-left:6px;font-style:normal;font-weight:800}.cab-controls{left:0;right:0;bottom:max(16px, calc(env(safe-area-inset-bottom) + 10px));justify-content:space-between;align-items:flex-end;padding:0 18px;display:flex;position:absolute}.cab-controls.by-wheel{display:none!important}.cab-wheel{aspect-ratio:1;pointer-events:auto;touch-action:none;color:#ffffffeb;filter:drop-shadow(0 4px 10px #00000073);-webkit-user-select:none;user-select:none;width:min(44vw,190px)}.cab-wheel-svg{will-change:transform;width:100%;height:100%}.cab-pedals{grid-template-rows:auto auto;grid-template-columns:auto auto;align-items:end;gap:10px;display:grid}.cab-brake,.cab-go{letter-spacing:.06em;color:#fff;border:0;border-radius:18px;grid-row:2;width:min(22vw,92px);height:min(30vw,130px);font-size:15px;font-weight:800;box-shadow:0 4px 12px #0006}.cab-brake{background:#c0392b}.cab-go{background:#2e8b57}.cab-brake.down,.cab-go.down{filter:brightness(1.25);transform:translateY(3px)}.cab-rev{color:#fff;background:#ffffff2e;border:0;border-radius:8px;grid-column:1/span 2;justify-self:end;width:44px;height:32px;font-weight:800}.cab-rev.on{color:#1b2632;background:#ffd23f}.drive-row{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.drive-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.drive-btn:hover{color:#fff;background:#185a71}.cab.touch .cab-speed{bottom:max(214px, calc(env(safe-area-inset-bottom) + 206px))}@media (max-width:480px){.cab-dest{display:none}.cab-no{font-size:20px}}.cab-rotate{display:none}@media (orientation:portrait) and (pointer:coarse){.cab-rotate{text-align:center;z-index:2;pointer-events:auto;background:#0c1016db;place-items:center;font-size:18px;font-weight:650;line-height:1.8;display:grid;position:absolute;inset:0}}@media (max-height:480px){.cab-top{gap:8px;padding:6px 10px}.cab-no{font-size:18px}.cab-doors{top:calc(max(6px, env(safe-area-inset-top)) + 52px);gap:4px;padding:5px}.cab-doors button{padding:4px 8px;font-size:10.5px}.cab-next{top:calc(max(8px, env(safe-area-inset-top)) + 50px);padding:4px 12px;font-size:13px}.cab-wheel{width:min(34vh,150px)}.cab-brake,.cab-go{width:76px;height:96px;font-size:13px}.cab.touch .cab-speed{left:auto;right:max(16px, env(safe-area-inset-right));bottom:max(168px, calc(env(safe-area-inset-bottom) + 160px));padding:4px 12px;transform:none}.cab.touch .cab-speed b{font-size:26px}.cab.touch .cab-controls{padding:0 max(14px, env(safe-area-inset-left)) 0 max(14px, env(safe-area-inset-right))}}.cab.immersive .cab-top,.cab.immersive .cab-doors,.cab.immersive .cab-next,.cab.immersive .cab-gps,.cab.immersive .cab-speed,.cab.immersive .cab-help-panel,.cab-reveal{display:none}.cab.immersive .cab-reveal{z-index:3;pointer-events:auto;top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));cursor:pointer;color:#fff;opacity:.12;background:#141c228c;border:0;border-radius:12px;place-items:center;width:40px;height:40px;font-size:18px;transition:opacity .4s;display:grid;position:fixed}.cab.immersive.stirred .cab-reveal,.cab.immersive .cab-reveal:hover,.cab.immersive .cab-reveal:focus-visible{opacity:1}.cab.touch.immersive .cab-reveal{opacity:.6}.cab:not(.touch) .cab-speed{left:auto;right:16px;bottom:max(16px, calc(env(safe-area-inset-bottom) + 10px));transform:none}body.at-landing #ui,body.at-landing #labels{display:none}.landing{z-index:20;color:#fff;-webkit-overflow-scrolling:touch;background:linear-gradient(#00874a 0%,#006b3a 100%);padding-inline:16px;position:fixed;inset:0;overflow-y:auto}.landing-inner{max-width:560px;padding-block:max(48px, calc(env(safe-area-inset-top) + 32px)) 32px;margin:0 auto}.landing-head{text-align:center;padding-bottom:28px}.landing-logo{width:min(240px,60vw);height:auto;margin:0 auto;display:block}.landing-status{opacity:.9;margin:16px 0 0;font-size:14px;font-weight:600}.landing-result{text-align:center;background:#ffffff24;border-radius:12px;margin:0 auto 16px;padding:10px 14px;font-weight:600}.landing-filter{color:#10261a;background:#fff;border:0;border-radius:12px;width:100%;margin:0 0 12px;padding:11px 16px;font-size:15px;display:block}.landing-routes{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.landing-route{color:#10261a;background:#fff;border-radius:16px;flex-direction:column;gap:14px;padding:16px 16px 14px;display:flex;box-shadow:0 2px 10px #0000001f}.landing-meta{align-items:baseline;gap:12px;min-width:0;display:flex}.landing-meta b,.fly-top b,.cab-no{letter-spacing:.01em;font-family:Oswald,Montserrat,sans-serif;font-weight:700}.landing-meta b{color:#007e42;font-size:34px;line-height:1}.landing-meta span{color:#3d4a43;text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.landing-dirs{gap:8px;display:flex}.landing-go{cursor:pointer;color:#fff;background:#007e42;border:0;border-radius:10px;flex:1 1 0;padding:11px 12px;font-size:15px;font-weight:700;transition:background .12s}.landing-go:hover{background:#00693a}.landing-go:focus-visible{outline-offset:2px;outline:3px solid #ffd23f}.landing-foot{text-align:center;opacity:.65;margin-top:24px;font-size:12px}.landing.loading .landing-routes,.landing.loading .landing-filter{opacity:.4;pointer-events:none}.gate{z-index:100;color:#fff;background:#0c1016;place-items:center;padding:24px 16px;transition:opacity .4s;display:grid;position:fixed;inset:0;overflow-y:auto}.gate.leaving{opacity:0;pointer-events:none}.gate-map{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gate-lines{opacity:.28}.gate-stops{opacity:.35}.gate-buses{opacity:.75}.gate-vignette{pointer-events:none;background:radial-gradient(60% 55% at 50% 45%,#0c1016e0 0%,#0c10168c 55%,#0c101600 100%),radial-gradient(140% 100%,#0000 55%,#0000008c 100%);position:absolute;inset:0}.gate-inner{text-align:center;flex-direction:column;align-items:center;width:min(640px,100%);display:flex;position:relative}.gate-inner>*{animation:.7s cubic-bezier(.2,.7,.2,1) both gate-rise}.gate-inner>:nth-child(2){animation-delay:80ms}.gate-inner>:nth-child(3){animation-delay:.16s}.gate-inner>:nth-child(4),.gate-inner>.gate-foot{animation-delay:.24s}.gate-inner>.gate-form,.gate-pick.again{animation-duration:.32s;animation-delay:0s}@keyframes gate-rise{0%{opacity:0;transform:translateY(14px)}}.gate-logo{width:min(260px,64vw);height:auto;display:block}.gate-home{border-radius:12px;transition:opacity .12s;display:block}.gate-home:hover{opacity:.85}.gate-home:focus-visible{outline-offset:6px;outline:3px solid #ffd23f}.gate-title{letter-spacing:-.005em;color:#fff;text-wrap:balance;margin:22px 0 44px;font-size:clamp(28px,6.4vw,46px);font-weight:700;line-height:1.15}.gate-foot{color:#7f8b98;letter-spacing:.02em;margin:56px 0 0;font-size:12px}.gate-section{letter-spacing:.14em;text-transform:uppercase;color:#93a1af;align-items:center;gap:14px;width:100%;margin:0 0 4px;font-size:12px;font-weight:700;display:flex}.gate-section:before,.gate-section:after{content:"";background:#ffffff24;flex:1;height:1px}.gate-pick{flex-direction:column;gap:12px;width:100%;display:flex}.gate-pick[hidden]{display:none}.gate-companies{flex-wrap:wrap;justify-content:center;gap:12px;margin:0;padding:0;list-style:none;display:flex}.gate-company{cursor:pointer;color:#fff;width:200px;font:inherit;background:var(--tile,#2b3340);background:linear-gradient(155deg, color-mix(in srgb, var(--tile,#2b3340) 78%, #fff) 0%, var(--tile,#2b3340) 55%, color-mix(in srgb, var(--tile,#2b3340) 80%, #000) 100%);border:0;border-radius:18px;flex-direction:column;align-items:center;gap:10px;padding:22px 16px 16px;transition:transform .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000073,inset 0 1px #ffffff40}button.gate-company:hover{transform:translateY(-4px);box-shadow:0 16px 40px #0000008c,0 0 0 2px #ffffff59,inset 0 1px #ffffff40}button.gate-company:active{transform:translateY(-1px)}.gate-go{letter-spacing:.04em;opacity:.8;background:#00000038;border-radius:999px;padding:4px 12px;font-size:12px;font-style:normal;font-weight:700;transition:opacity .16s,background .16s}button.gate-company:hover .gate-go,button.gate-company:focus-visible .gate-go{opacity:1;background:#00000052}.gate-chosen .gate-go{display:none}button.gate-company:focus-visible{outline-offset:3px;outline:3px solid #ffd23f}.gate-company img{filter:drop-shadow(0 2px 6px #0003);width:130px;height:auto;display:block}.gate-company span{font-size:14px;font-weight:700;line-height:1.25}.gate-chosen{justify-content:center;margin-bottom:6px;display:flex}.gate-chosen .gate-company{cursor:default;box-shadow:none}.gate-back{color:#fff;opacity:.75;font:inherit;cursor:pointer;background:0 0;border:0;align-self:center;padding:6px;font-size:14px}.gate-back:hover{opacity:1}.gate-enter{cursor:pointer;font:inherit;color:#fff;background:#007e42;border:0;border-radius:12px;font-weight:700;transition:background .12s}.gate-enter:hover{background:#00693a}.gate-enter:focus-visible,.gate-pass:focus-visible{outline-offset:2px;outline:3px solid #ffd23f}.gate-form[hidden],.gate-error[hidden]{display:none}.gate-form{flex-direction:column;gap:10px;width:min(420px,100%);display:flex}.gate-label{opacity:.85;font-size:14px;font-weight:600}.gate-row{gap:8px;display:flex}.gate-pass::placeholder{color:#8a949e}.gate-pass{min-width:0;font:inherit;color:#10261a;background:#fff;border:0;border-radius:12px;flex:auto;padding:12px 14px;font-size:16px}.gate-enter{padding:12px 20px;font-size:16px}.gate-error{color:#ff8a80;margin:0;font-size:14px;font-weight:600}.gate-form.shake{animation:.36s gate-shake}@keyframes gate-shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}@media (prefers-reduced-motion:reduce){.gate,.gate-form.shake,.gate-inner>*,.gate-company,.gate-go{transition:none;animation:none}}.landing-start{min-width:0;font:inherit;color:#007e42;cursor:pointer;background:#eef3f0;border:2px solid #007e42;border-radius:10px;flex:1 1 0;padding:9px 10px;font-size:15px;font-weight:700}.landing-start:focus-visible{outline-offset:2px;outline:3px solid #ffd23f}.landing-fly{color:#007e42;background:#eef3f0}.landing-fly:hover{background:#dde8e1}.fly-hud{z-index:20;color:#fff;pointer-events:none;flex-direction:column;gap:6px;font-size:13px;line-height:1.35;display:flex;position:fixed;top:12px;left:12px}.fly-hud>*{pointer-events:auto;background:#141c22c7;border-radius:10px;width:-moz-fit-content;width:fit-content;padding:8px 12px}.fly-top{align-items:center;gap:8px;display:flex}.fly-top b{font-size:18px}.fly-exit{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:8px;width:28px;height:28px;margin-left:8px}.fly-help summary{cursor:pointer}.fly-help dl{grid-template-columns:auto auto;gap:2px 12px;margin:6px 0 0;display:grid}.fly-help dt{font-weight:700}.fly-help dd{opacity:.85;margin:0}.cab-gfx{font-size:18px}.gfx-fab{right:12px;bottom:max(12px, env(safe-area-inset-bottom));z-index:60;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#141a22c7;border:0;border-radius:50%;width:40px;height:40px;font-size:20px;line-height:1;position:fixed}body.driving .gfx-fab{display:none}.gfx-panel{z-index:70;top:max(78px, calc(env(safe-area-inset-top) + 72px));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#0e1218eb;border-radius:14px;flex-direction:column;gap:6px;width:min(320px,100vw - 32px);max-height:calc(100vh - 100px);padding:12px 16px 14px;font-size:13px;display:flex;position:fixed;right:16px;overflow:auto;box-shadow:0 6px 24px #00000059}.gfx-panel[hidden]{display:none}.gfx-head{justify-content:space-between;align-items:center;display:flex}.gfx-head b{font-size:15px}.gfx-close{color:#fff;cursor:pointer;background:0 0;border:0;font-size:24px;line-height:1}.gfx-photo{cursor:pointer;text-align:left;color:#fff;font:inherit;background:#ffffff1f;border:0;border-radius:8px;padding:8px 10px;font-weight:650}.gfx-photo[hidden]{display:none}.gfx-photo:hover{background:#fff3}.gfx-photo kbd{float:right;background:#ffffff2e;border-radius:4px;padding:1px 5px;font:11px ui-monospace,monospace}.gfx-panel label{opacity:.9;margin-top:4px;font-weight:700}.gfx-row{justify-content:space-between;display:flex}.gfx-row output{opacity:.8;font-variant-numeric:tabular-nums;font-weight:600}.gfx-seg{gap:4px;display:flex}.gfx-seg button{cursor:pointer;color:#fff;min-width:0;font:inherit;background:#ffffff1f;border:0;border-radius:8px;flex:1;padding:6px 4px;font-size:12px;font-weight:650}.gfx-seg button[aria-pressed=true]{background:#1a73e8}.gfx-panel input[type=range]{accent-color:#1a73e8;width:100%}.gfx-check{align-items:center;gap:8px;font-weight:600;display:flex}.tile-wait{z-index:40;color:#fff;pointer-events:none;background:#0c141cd1;border-radius:999px;padding:10px 18px;font:600 14px/1.2 Montserrat,system-ui,sans-serif;position:fixed;top:18%;left:50%;transform:translate(-50%)}.tile-wait[hidden]{display:none}.gfx-wait{z-index:60;color:#fff;background:#0a0e14e0;justify-content:center;align-items:center;font:600 15px/1.2 Montserrat,system-ui,sans-serif;display:flex;position:fixed;inset:0}.gfx-wait[hidden]{display:none}.wh select{width:100%;font:inherit;border-radius:6px;padding:4px;font-size:12px}.wh [data-w=body]{flex-direction:column;gap:6px;display:flex}.wh [data-w=body][hidden]{display:none}.wh-note,.wh-step{opacity:.85;margin:4px 0;font-size:12px}.wh-step{opacity:1;min-height:1em;font-weight:700}.wh-bars{grid-template-columns:auto 1fr;align-items:center;gap:4px 8px;font-size:12px;display:grid}.wh-bars i{background:#ffffff1f;border-radius:4px;height:8px;position:relative;overflow:hidden}.wh-bars b{background:#1a73e8;position:absolute;top:0;bottom:0}.wh-btns{flex-wrap:wrap;gap:6px;display:flex}.wh-btns button{cursor:pointer;color:#fff;font:inherit;background:#ffffff1f;border:0;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:650}
