.subway-control{position:absolute;right:27px;bottom:24px;z-index:705;display:flex;flex-direction:column;align-items:flex-end;gap:9px;max-width:calc(100% - 40px)}
.subway-actions{display:flex;align-items:center;gap:7px}
.subway-toggle,.subway-key-toggle{height:48px;border:1px solid var(--control-border);border-radius:var(--control-radius);background:white;color:var(--ink);box-shadow:0 3px 14px #23321b08;display:flex;align-items:center;justify-content:center;gap:9px}
.subway-toggle{padding:0 16px;font-size:13px;font-weight:550}
.subway-toggle svg,.subway-key-toggle svg{width:18px;height:18px}
.subway-toggle:hover,.subway-key-toggle:hover{background:#f4f7ee}
.subway-toggle[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.subway-switch{width:23px;height:14px;padding:3px;border-radius:20px;background:#e2e6dc;display:flex;align-items:center}
.subway-switch::after{content:'';width:8px;height:8px;background:#fff;border-radius:50%;transition:transform .18s}
.subway-toggle[aria-pressed=true] .subway-switch{background:var(--lime)}
.subway-toggle[aria-pressed=true] .subway-switch::after{background:var(--ink);transform:translateX(9px)}
.subway-key-toggle{width:44px;height:44px}
.subway-key-toggle[aria-expanded=true]{background:#e9efdc}
.subway-key{width:228px;border:1px solid var(--control-border);border-radius:24px;background:#fffffff5;padding:18px;box-shadow:0 8px 30px #23321b14}
.subway-key strong{font-size:12px;font-weight:650}.subway-key small{display:block;font-size:9px;color:#7c8673;margin-top:12px}
.subway-key ul{list-style:none;padding:0;margin:12px 0 0;max-height:176px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.subway-key li{display:flex;align-items:center;gap:10px;min-height:28px;font-size:11px}
.subway-key li i{width:22px;height:4px;border-radius:4px;background:var(--line-color);flex-shrink:0}
.subway-status{font-size:10px;padding:9px 13px;border-radius:15px;background:white;border:1px solid var(--control-border);box-shadow:0 3px 14px #23321b08;color:#62745a}
.subway-status.is-error{color:#925930}.subway-status button{margin-left:9px;text-decoration:underline}
.subway-station{display:flex;align-items:center;gap:4px;overflow:visible;white-space:nowrap}
.subway-station b{position:absolute;left:7px;top:7px;width:10px;height:10px;background:#fff;border:2px solid var(--line-color);border-radius:50%;box-shadow:0 0 0 1px #fff9}
.subway-station b.is-transfer{width:12px;height:12px;left:6px;top:6px;border-width:3px}
.subway-station>span{position:absolute;left:22px;background:#fffffff0;color:#294137;font:550 10px/1.2 var(--sans);padding:3px 5px;border-radius:5px;box-shadow:0 1px 4px #253b2220;max-width:195px;white-space:normal}
.subway-station small{display:block;font-size:9px;font-weight:450;margin-top:2px;color:#7d8878}
.subway-station:focus-visible,.subway-exit:focus-visible{outline:2px solid #749342;outline-offset:2px;border-radius:7px}
.subway-station:hover>span{background:#eff6df}
.subway-exit{display:grid;place-items:center}.subway-exit b{display:grid;place-items:center;min-width:21px;height:21px;padding:0 3px;border-radius:6px;background:#fff9df;color:#755b19;border:1px solid #c8ad5b;font:650 10px var(--sans);box-shadow:0 1px 4px #4f3b1425}
.subway-exit:hover b{background:#ffedaf}
.transit-line-badges{display:flex;flex-wrap:wrap;gap:4px}.transit-line-badge{font-size:10px;color:#344338;border:1px solid #e3e8dd;border-left:4px solid var(--line-color);border-radius:4px;padding:3px 6px;background:#f9fbf5}
.transit-exits-button{min-height:40px;padding:9px 13px;border-radius:20px;background:#eaf1dc;color:#33472c;font-size:11px;font-weight:600;text-align:left;margin:0 0 5px}.transit-exits-button:hover{background:#ddebbf}
@media(max-width:640px){.subway-control{right:20px;bottom:28px}.subway-toggle{height:44px;font-size:12px;padding:0 14px}.subway-key{width:218px;padding:16px}.subway-key ul{max-height:140px}.map-expanded .subway-control{bottom:calc(28px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.subway-switch::after{transition:none}}
