:root{color-scheme:light;--bg:#f6f7fb;--surface:#fff;--ink:#181a33;--muted:#8b90a4;--line:#e8eaf2;--accent:#5d65f3;--accent2:#886dff;--tint:#f0f0ff;--shadow:0 18px 45px rgba(30,38,82,.07);--navbg:rgba(255,255,255,.93);--pale:#f5f6fb;--map-border:rgba(255,255,255,.65)}
:root[data-theme="dark"]{color-scheme:dark;--bg:#10131e;--surface:#1b2030;--ink:#f5f5fc;--muted:#a1a8ba;--line:#34394c;--accent:#9da4ff;--accent2:#b4a4ff;--tint:#2b2f4a;--shadow:0 18px 40px rgba(0,0,0,.12);--navbg:rgba(29,34,48,.95);--pale:#24293a;--map-border:rgba(255,255,255,.2)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}svg.ico{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.sprite{position:absolute;width:0;height:0;overflow:hidden}.app-shell{max-width:590px;margin:auto;min-height:100dvh;padding-top:env(safe-area-inset-top)}.topbar{height:82px;padding:15px 25px 8px;display:flex;align-items:center;gap:10px}.brand{display:flex;align-items:center;gap:9px;font-size:25px;font-weight:850;letter-spacing:-1.7px;white-space:nowrap}.brand-dot{color:var(--accent)}.brand-mark{width:31px;height:31px;border-radius:11px;background:linear-gradient(135deg,#6173ff,#9574ff);display:flex;align-items:center;justify-content:center;gap:3px;transform:rotate(-8deg)}.brand-mark span{height:13px;width:5px;border-radius:5px;background:white;transform:rotate(32deg)}.brand-mark span+span{height:18px;opacity:.7}.location-button{margin-left:auto;min-width:0;display:flex;align-items:center;gap:4px;background:transparent;border:0;color:var(--muted);padding:8px 0;font-size:11px;font-weight:700}.location-button .ico{width:14px;height:14px}.location-button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.icon-btn{width:38px;height:38px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);display:grid;place-items:center}.theme-btn{margin-left:0}.theme-btn .ico{width:19px;height:19px}main{padding:22px 24px 132px}.view[hidden],.route-modal[hidden],.modal-backdrop[hidden],.toast[hidden],.empty-state[hidden],.clear-search[hidden]{display:none!important}.eyebrow{font-size:10px;font-weight:900;letter-spacing:2px;color:var(--accent);line-height:1.4}.hello-line{display:flex;align-items:center;justify-content:space-between}.version{font-size:10px;color:var(--muted);background:var(--surface);border:1px solid var(--line);padding:5px 9px;border-radius:8px;font-weight:750}h1{font-size:clamp(35px,8vw,44px);font-weight:860;line-height:1.12;letter-spacing:-2.6px;margin:13px 0 8px}.gradient-text{background:linear-gradient(110deg,#6b6bf2,#9c78ee);-webkit-background-clip:text;background-clip:text;color:transparent}.lead{margin:0 0 24px;color:var(--muted);font-size:14px;line-height:1.55}.search-trigger,.search-field{display:flex;align-items:center;gap:11px;background:var(--surface);padding:17px 17px;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 25px rgba(23,29,64,.035);color:var(--muted);min-height:57px}.search-trigger{cursor:pointer;font-weight:550;font-size:13px}.search-trigger:focus-visible{outline:3px solid var(--accent)}.search-trigger .ico,.search-field .ico{color:var(--accent)}.search-arrow{margin-left:auto;font-size:19px;color:var(--accent)}.map-card{position:relative;height:255px;overflow:hidden;border-radius:24px;margin-top:18px;background:#dbe9ec;box-shadow:var(--shadow)}.map-art{position:absolute;inset:0}.map-art svg{width:100%;height:100%}.map-top,.map-bottom{position:absolute;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center}.map-top{top:16px}.map-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;background:rgba(255,255,255,.94);border-radius:50px;color:#34405a;font-size:9px;letter-spacing:1px;font-weight:850;box-shadow:0 8px 20px rgba(0,0,0,.05)}.pulse-dot{width:7px;height:7px;background:#6b6cf4;border-radius:50%}.map-north{background:rgba(255,255,255,.88);color:#4d5265;border-radius:12px;padding:10px;font-size:11px;font-weight:800}.map-bottom{bottom:15px;background:rgba(255,255,255,.94);border-radius:17px;padding:12px 13px;color:#171b33;backdrop-filter:blur(12px)}.map-bottom strong,.map-bottom span{display:block}.map-bottom strong{font-size:14px;letter-spacing:-.2px}.map-bottom span{color:#81899b;font-size:11px;margin-top:4px}.map-open{display:grid;place-items:center;background:#eef0ff;color:#5966e9;height:37px;width:37px;border-radius:12px}.map-open .ico{width:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:27px 0 15px}.section-heading h2{font-size:18px;letter-spacing:-.65px;margin:0}.section-heading span{font-size:12px;color:var(--muted)}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-card{position:relative;display:flex;align-items:flex-start;flex-direction:column;text-align:left;min-height:156px;border:0;border-radius:22px;padding:20px;overflow:hidden;color:#242743}.quick-purple{background:#e4e5ff}.quick-green{background:#dff3e9}.quick-icon{background:rgba(255,255,255,.65);width:44px;height:44px;border-radius:15px;display:grid;place-items:center;margin-bottom:15px}.quick-purple .quick-icon{color:#6663f5}.quick-green .quick-icon{color:#2d9d72}.quick-card strong{font-size:16px;letter-spacing:-.5px}.quick-card small{margin-top:3px;font-size:11px;opacity:.7}.quick-arrow{position:absolute;bottom:23px;right:17px;width:17px!important;height:17px!important;opacity:.5}.notice{display:flex;align-items:flex-start;gap:10px;margin-top:22px;padding:15px;border-radius:16px;background:var(--surface);border:1px solid var(--line);font-size:11px;line-height:1.6;color:var(--muted)}.notice .ico{height:17px;width:17px;color:var(--accent);margin-top:1px}.search-field{margin-top:6px;box-shadow:none;padding:0 15px;gap:9px}.search-field input{width:100%;height:54px;background:transparent;border:0;outline:none;color:var(--ink);min-width:0}.search-field input::placeholder{color:var(--muted)}.clear-search{display:grid;place-items:center;border:0;background:transparent;color:var(--muted)}.filters{display:flex;gap:8px;margin-top:16px}.filter{border:1px solid var(--line);color:var(--muted);background:var(--surface);font-size:12px;font-weight:750;padding:11px 13px;border-radius:12px}.filter.active{background:var(--ink);border-color:var(--ink);color:var(--surface)}.route-head{margin-top:29px}.route-list{display:grid;grid-template-columns:minmax(0,1fr);gap:11px}.route-row{min-width:0;display:flex;align-items:center;gap:13px;padding:15px 12px 15px 15px;background:var(--surface);border:1px solid var(--line);border-radius:18px;min-height:81px}.route-type-icon{display:grid;place-items:center;width:47px;height:47px;border-radius:15px;background:#ecedff;color:#5e67e8}.route-type-icon.tram{background:#fff0dc;color:#d79434}.route-body{min-width:0;overflow:hidden;flex:1;cursor:pointer}.route-body strong{font-size:17px;letter-spacing:-.4px}.route-body span{display:block;color:var(--muted);font-size:11px;margin-top:5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.star-button{background:none;border:0;color:#b5b8c7;padding:9px;display:grid;place-items:center}.star-button.active{color:#faad3c}.star-button.active .ico{fill:#faad3c;stroke:#faad3c}.route-open{border:0;background:none;color:var(--muted);padding:8px 0}.route-open .ico{width:16px}.footnote{color:var(--muted);font-size:11px;line-height:1.6;margin:22px 2px}.empty-state{background:var(--surface);padding:34px 20px;border:1px solid var(--line);border-radius:22px;text-align:center;margin-top:34px}.empty-icon{background:var(--tint);color:var(--accent);width:63px;height:63px;border-radius:20px;display:grid;place-items:center;margin:0 auto 20px}.empty-icon .ico{width:29px;height:29px}.empty-state h2{font-size:20px;letter-spacing:-.6px;margin:0}.empty-state p{font-size:13px;color:var(--muted);line-height:1.6;max-width:295px;margin:10px auto 22px}.filled-btn{display:inline-flex;align-items:center;gap:10px;background:var(--accent);border:0;color:white;border-radius:13px;padding:14px 18px;font-weight:750;font-size:13px}.onay-card{margin-top:24px;min-height:220px;background:linear-gradient(135deg,#7a5be6,#a57ff2 60%,#c197ed);color:white;border-radius:24px;padding:23px;position:relative;overflow:hidden;box-shadow:0 18px 40px rgba(122,91,230,.17)}.onay-card:before,.onay-card:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.18);width:290px;height:290px;border-radius:50%;right:-130px;top:-125px}.onay-card:after{width:210px;height:210px;right:-60px;top:20px}.onay-card-top,.onay-card-bottom{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.onay-label{font-size:10px;letter-spacing:1px;font-weight:850}.onay-card-main{margin:31px 0 29px;position:relative;z-index:1}.onay-card-main span{display:block;font-size:13px;opacity:.85;margin-bottom:9px}.onay-card-main strong{font-size:24px;letter-spacing:-.7px}.onay-card-bottom{font-size:10px;opacity:.9}.privacy-dot{width:9px;height:9px;background:#d4f1d5;border-radius:50%}.onay-actions{display:grid;gap:10px}.action-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:13px}.action-icon{display:grid;place-items:center;min-width:46px;height:46px;border-radius:14px}.action-blue{color:#7376ee;background:#efefff}.action-yellow{color:#b27a11;background:#fff5d5}.action-green{color:#1c9467;background:#e0f9ed}.action-copy{flex:1;min-width:0}.action-copy strong{display:block;font-size:13px;margin-bottom:5px}.action-copy small{display:block;color:var(--muted);font-size:11px;line-height:1.35}.action-chevron{height:17px!important;width:17px!important;color:var(--muted)}.safety-card{display:flex;align-items:flex-start;gap:12px;background:var(--tint);border-radius:17px;padding:18px;margin-top:23px}.safety-card>.ico{width:20px;color:var(--accent)}.safety-card strong{font-size:13px}.safety-card p{margin:6px 0 0;font-size:11px;color:var(--muted);line-height:1.65}.tabbar{height:calc(77px + env(safe-area-inset-bottom));padding:8px 11px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);align-items:center;position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:590px;background:var(--navbg);border-top:1px solid var(--line);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:10}.tab{min-width:0;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:5px;border:0;background:none;color:var(--muted);height:58px;font-size:10px;font-weight:700}.tab .ico{height:23px;width:23px}.tab.active{color:var(--accent)}.tab.active:before{content:"";position:absolute;top:4px;height:3px;width:21px;background:var(--accent);border-radius:8px}.modal-backdrop{position:fixed;inset:0;background:rgba(13,17,31,.58);z-index:19}.route-modal{position:fixed;z-index:20;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:590px;max-height:88dvh;overflow-y:auto;background:var(--surface);border-radius:26px 26px 0 0;padding:15px 22px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -20px 50px rgba(0,0,0,.1)}.modal-handle{width:38px;height:4px;background:var(--line);border-radius:20px;margin:0 auto 15px}.modal-bar{display:flex;align-items:center;justify-content:space-between}.modal-overline{font-size:10px;letter-spacing:1.8px;font-weight:850;color:var(--muted)}.modal-title-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 6px}.modal-title-line h2{font-size:28px;letter-spacing:-1px;margin:0}.modal-sub{color:var(--muted);font-size:13px;line-height:1.6;margin:5px 0 23px}.modal-stat{display:flex;gap:10px;margin-bottom:16px}.modal-stat>div{background:var(--pale);padding:18px;flex:1;border-radius:15px}.modal-stat strong{display:block;font-size:17px}.modal-stat span{display:block;margin-top:4px;color:var(--muted);font-size:11px}.modal-stops{position:relative;padding:10px 0 3px 20px;border-left:2px solid var(--line);margin-left:10px}.modal-stop{position:relative;font-size:13px;font-weight:750;margin:8px 0 25px}.modal-stop:before{content:"";position:absolute;left:-28px;top:1px;background:var(--accent);width:12px;height:12px;border-radius:50%;border:2px solid var(--surface)}.modal-save{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:14px;padding:16px;background:var(--accent);color:white;font-weight:850;margin-top:6px}.toast{position:fixed;bottom:calc(94px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:22;color:white;background:#232942;border-radius:13px;padding:13px 18px;white-space:nowrap;font-size:12px;box-shadow:var(--shadow)}body.dialog-open{overflow:hidden}
@media(min-width:600px){.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:370px){main{padding-left:17px;padding-right:17px}.topbar{padding-left:18px;padding-right:18px}.location-button span{max-width:105px}.quick-card{padding:15px}}
@media(prefers-reduced-motion:no-preference){.quick-card,.tab,.filter,.filled-btn,.icon-btn{transition:transform .18s ease,background .18s ease}.quick-card:active,.filled-btn:active{transform:scale(.975)}}

/* v0.2: interactive map: keep attribution visible above UI and safe areas */
.map-card{height:340px;isolation:isolate;background:#dce5e6;touch-action:pan-x pan-y}
.city-map{position:absolute;inset:0;z-index:0;background:#e1e9e5}
.city-map.leaflet-container{font-family:inherit}
.leaflet-control-attribution{font-size:9px!important;background:rgba(255,255,255,.90)!important;border-top-left-radius:7px!important;padding:3px 5px!important}
.map-top{top:14px;left:14px;right:auto;z-index:550;pointer-events:none}
.map-top .map-chip{font-size:10px;letter-spacing:.5px}
.map-controls{position:absolute;right:12px;top:12px;z-index:650;display:flex;flex-direction:column;gap:8px}
.map-control{height:43px;width:43px;display:grid;place-items:center;border:1px solid rgba(226,230,240,.95);border-radius:13px;color:#282c47;background:rgba(255,255,255,.96);box-shadow:0 3px 16px rgba(16,20,48,.12);padding:0;touch-action:manipulation}
.map-control:active{transform:scale(.95)}.map-control:focus-visible{outline:3px solid #5f65f5;outline-offset:2px}
.map-control .ico{width:20px;height:20px}
.map-bottom{left:12px;right:auto;bottom:33px;min-width:0;max-width:calc(100% - 26px);gap:12px;z-index:550;padding:9px 12px;border:1px solid rgba(255,255,255,.7);box-shadow:0 6px 22px rgba(0,0,0,.09)}
.map-bottom strong{font-size:12px}.map-bottom span{font-size:10px}.map-bottom .map-open{height:33px;width:33px;flex:none}
.map-error[hidden]{display:none!important}
.map-error{z-index:560;position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;background:var(--surface);padding:26px;color:var(--ink)}
.map-error .ico{color:var(--accent)}.map-error strong{font-size:17px}.map-error span{font-size:12px;color:var(--muted);line-height:1.5}.map-error a{font-size:12px;font-weight:750;color:var(--accent);text-decoration:underline}
.map-card.is-expanded{position:fixed;inset:0;margin:0!important;width:100vw;height:100dvh;max-width:none;border-radius:0;z-index:100;box-shadow:none}
.map-card.is-expanded .map-top{top:calc(env(safe-area-inset-top) + 14px)}
.map-card.is-expanded .map-controls{top:calc(env(safe-area-inset-top) + 14px);right:16px}
.map-card.is-expanded .map-bottom{bottom:calc(env(safe-area-inset-bottom) + 28px)}
body.map-expanded{overflow:hidden;overscroll-behavior:none}
body.map-expanded .tabbar{visibility:hidden;pointer-events:none}
@media(max-width:390px){.map-top{left:11px;top:11px}.map-top .map-chip{font-size:9px;padding:8px 10px}.map-controls{top:11px;right:10px;gap:7px}.map-control{width:40px;height:40px}}

/* v0.2.1: compact network feedback without blocking gestures or attribution */
.map-load-indicator[hidden]{display:none!important}
.map-load-indicator{position:absolute;bottom:100px;left:12px;z-index:560;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.96);color:#34405a;border-radius:12px;padding:8px 11px;font-size:10px;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.12);pointer-events:none;max-width:calc(100% - 90px)}
.map-spinner{width:12px;height:12px;border:2px solid #c4c9e5;border-top-color:#5d65f3;border-radius:50%;animation:map-spin .8s linear infinite;flex:none}
@keyframes map-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.map-spinner{animation:none;border-top-color:#5d65f3}}
.map-card.is-expanded .map-load-indicator{bottom:calc(env(safe-area-inset-bottom) + 98px)}

/* v0.3: stops and routes catalogue; unchanged map loading strategy */
.transit-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border-radius:16px;background:var(--pale);border:1px solid var(--line);margin-bottom:17px}
.transit-switch-btn{border:0;background:transparent;border-radius:12px;color:var(--muted);font-size:13px;font-weight:750;padding:13px 8px}
.transit-switch-btn.active{background:var(--surface);color:var(--ink);box-shadow:0 3px 12px rgba(0,0,0,.06)}
#stopsPane[hidden],#routesPane[hidden]{display:none!important}
.stop-info-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 18px;color:var(--muted);font-size:11px;line-height:1.45}
.stop-info-bar span{flex:1}.refresh-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 11px;border-radius:11px;font-weight:750;font-size:11px}
.refresh-btn:disabled{opacity:.55}.stop-list{gap:9px}.stop-row{width:100%;display:flex;align-items:center;text-align:left;gap:12px;min-height:67px;border:1px solid var(--line);border-radius:17px;padding:13px;background:var(--surface);color:var(--ink)}
.stop-dot{width:13px;height:13px;border:3px solid #dce8ff;background:#416ed0;border-radius:100%;flex:none}.stop-dot.tram{background:#df8b25;border-color:#fff0d6}
.stop-copy{flex:1;min-width:0}.stop-copy strong{display:block;font-size:14px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop-copy small{display:block;color:var(--muted);font-size:11px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stop-row>.ico{width:15px;height:15px;color:var(--muted)}.route-origin{display:block;font-size:10px;color:var(--accent);margin-top:4px}
.quick-blue{background:#e1effb}.quick-blue .quick-icon{color:#286caa}.quick-wide{grid-column:1/-1;min-height:100px;flex-direction:row;align-items:center;gap:13px;padding:17px}
.quick-wide .quick-icon{margin-bottom:0;flex:none}.quick-wide-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.quick-wide-copy strong{font-size:15px}.quick-wide-copy small{position:static;margin:0;font-size:11px;line-height:1.4}.quick-wide .quick-arrow{position:static;margin-left:auto;width:17px!important;height:17px!important}
.map-top{display:flex;align-items:center;gap:8px;right:75px;max-width:calc(100% - 94px);pointer-events:auto}
.map-stop-toggle{flex:none;min-height:34px;border:1px solid rgba(226,230,240,.95);background:rgba(255,255,255,.97);color:#34405a;padding:0 10px;border-radius:18px;font-size:10px;font-weight:800;box-shadow:0 4px 15px rgba(0,0,0,.08);touch-action:manipulation}
.map-stop-toggle.active{background:#6268f0;border-color:#6268f0;color:#fff}
.map-chip{white-space:nowrap}.leaflet-popup-content{margin:12px!important}.stop-popup{display:flex;flex-direction:column;gap:6px;font-family:system-ui,sans-serif}.stop-popup strong{font-size:14px;color:#222}.stop-popup span{color:#555;font-size:11px;line-height:1.45}
@media(max-width:390px){.map-top{gap:5px;right:65px}.map-stop-toggle{padding:0 8px;font-size:9px}.map-top .map-chip{font-size:9px}}

.footnote a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}

/* v0.3.1: the selected OSM stop has a persistent, explicit identity on the map. */
.map-stop-detail[hidden]{display:none!important}
.map-card.has-selected-stop .map-bottom{display:none}
.map-stop-detail{position:absolute;z-index:680;left:14px;right:14px;bottom:calc(env(safe-area-inset-bottom) + 17px);max-width:450px;padding:15px 16px 13px;border-radius:20px;background:rgba(255,255,255,.97);color:#222541;box-shadow:0 12px 35px rgba(19,25,45,.18);border:1px solid rgba(220,225,241,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.map-stop-detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.map-stop-detail-heading{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.map-stop-detail-kicker{font-size:9px;color:#6666e8;font-weight:850;letter-spacing:1.2px}
.map-stop-detail-heading strong{font-size:18px;line-height:1.18;letter-spacing:-.5px;word-break:break-word}
.map-stop-detail-heading>span:last-child,.map-stop-detail-refs{font-size:11px;color:#6d748c;line-height:1.4}
.map-stop-detail-indicator{background:#5556ef;box-shadow:0 0 0 5px rgba(82,85,230,.13);width:13px;height:13px;border-radius:50%;flex:none;margin-right:6px}
.map-stop-detail-refs{margin:12px 0 0}
.map-stop-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}
.map-stop-back,.map-stop-osm{display:flex;align-items:center;justify-content:center;min-height:43px;padding:8px 7px;border-radius:12px;font-size:12px;font-weight:800;border:1px solid #e5e5f1;color:#393c61;background:#f5f6fc;touch-action:manipulation}
.map-stop-back{background:#5d61e7;border-color:#5d61e7;color:#fff}
.map-stop-back:focus-visible,.map-stop-osm:focus-visible{outline:3px solid #7a7cff;outline-offset:2px}
@media(max-width:390px){.map-stop-detail{left:9px;right:9px;padding:12px}.map-stop-detail-heading strong{font-size:16px}}

/* v0.3.2 recovery: categorical stop colours also apply to selected markers. */
.map-stop-detail[data-stop-type="tram"] .map-stop-detail-indicator{background:#df8b25;box-shadow:0 0 0 5px rgba(223,139,37,.20)}
.map-stop-detail[data-stop-type="bus"] .map-stop-detail-indicator{background:#416ed0;box-shadow:0 0 0 5px rgba(65,110,208,.20)}


/* v0.3.2.2: the retry action belongs in the status bar, never under the error card. */
#stopsPane .stop-empty{margin-top:18px;margin-bottom:22px;padding:34px 20px;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center}
#stopsPane .stop-empty p{margin-bottom:0;max-width:290px}
#stopsPane .stop-info-bar{margin-bottom:20px;align-items:center}
#stopsPane .stop-info-bar .refresh-btn{flex:0 0 auto;min-height:42px;min-width:84px}
@media(max-width:380px){#stopsPane .stop-info-bar{gap:8px}#stopsPane .stop-info-bar .refresh-btn{min-width:78px}}

/* v0.3.2.3: restore the separate retry action and give it clear space after the error card. */
#stopsPane .stops-retry-btn {
  margin: 28px 0 22px;
  min-height: 48px;
  max-width: 100%;
  justify-content: center;
}
#stopsPane .stops-retry-btn[hidden] { display: none !important; }
#stopsPane .stops-retry-btn:disabled { opacity: .6; }
@media (max-width: 420px) {
  #stopsPane .stops-retry-btn { width: 100%; }
}
