.route-map{position:relative;border:1px solid #d9dfd5;border-radius:24px;overflow:hidden;background:#e9eee3;isolation:isolate;margin:18px 0;color:#25483c}
.route-map__viewport{position:relative;height:390px;overflow:hidden;cursor:grab;touch-action:none;outline-offset:-4px}
.route-map__viewport:active{cursor:grabbing}.route-map__viewport:focus-visible{outline:3px solid #bd754f}
.route-map__tiles,.route-map__lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.route-map__tiles img{position:absolute;max-width:none;user-select:none}.route-map__tile--error{visibility:hidden}
.route-map__route{fill:none;stroke:#81998c;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.65}
.route-map__route--selected{stroke:#25483c;stroke-width:6;opacity:1;filter:drop-shadow(0 1px 1px #fff)}
.route-map__pin{fill:#25483c;stroke:#fff;stroke-width:3}.route-map__pin-label{fill:#fff;font-size:12px;font-family:system-ui,sans-serif;font-weight:750;text-anchor:middle}
.route-map__controls{position:absolute;right:14px;top:14px;display:flex;flex-direction:column;gap:5px;z-index:3}
.route-map__controls button{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d5ded4;border-radius:12px;background:#fffffff0;color:#25483c;font:600 24px/1 system-ui;box-shadow:0 2px 8px #25483c13;cursor:pointer;transition:transform .15s,background .15s}
.route-map__controls button:hover{background:#f2f5e8;transform:translateY(-1px)}.route-map__controls button:active{transform:scale(.93)}
.route-map__status{position:absolute;left:12px;top:12px;max-width:calc(100% - 78px);margin:0;padding:7px 11px;background:#fffffff0;border:1px solid #d9dfd5;border-radius:12px;font-size:12px;line-height:1.4;pointer-events:none}
.route-map--unavailable .route-map__status{color:#88502f;background:#fff4dc}.route-map__coordinates{margin:0;padding:10px 13px;font-size:12px;line-height:1.5;background:#fffdf7;overflow-wrap:anywhere}.route-map__coordinates:empty{display:none}
.route-map__attribution{padding:6px 13px;background:#fffdf7e8;font-size:10px;line-height:1.5;text-align:right}.route-map__attribution a{color:#25483c;text-decoration:underline;text-underline-offset:2px}
.route-map__crosshair{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:32px;height:32px;border:2px solid #fff;border-radius:50%;background:#25483c;color:#fff;text-align:center;font:25px/26px system-ui;pointer-events:none;box-shadow:0 1px 6px #25483c55}
.route-map--picking .route-map__crosshair{display:block}.route-map--picking .route-map__viewport{cursor:crosshair}
@media(max-width:600px){.route-map{border-radius:18px}.route-map__viewport{height:320px}.route-map__controls{right:10px;top:10px}.route-map__status{left:8px;top:8px;font-size:11px}.route-map__attribution{text-align:left;font-size:10px}}
@media(prefers-reduced-motion:reduce){.route-map__controls button{transition:none}}
.route-map__marker-leader{fill:none;stroke:#25483c;stroke-width:1.5;stroke-linecap:round;filter:drop-shadow(0 1px 1px #fff);opacity:.9}.route-map__marker-anchor{fill:#25483c;stroke:#fff;stroke-width:1.5}
.route-map__discoveries{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.route-map__discovery{position:absolute;display:flex;align-items:center;justify-content:center;gap:5px;min-width:44px;height:44px;max-width:140px;padding:0 10px;border:2px solid #fff;border-radius:24px;background:#fffdf7;color:#825425;box-shadow:0 2px 7px #172c3933;transform:translate(-50%,-50%);font:750 12px/1.2 system-ui;white-space:nowrap;cursor:pointer;pointer-events:auto;touch-action:manipulation;transition:background .16s,color .16s,box-shadow .16s}
.route-map__discovery--charging{color:#16674e}
.route-map__discovery-symbol{display:grid;place-items:center;flex:none}.route-map__discovery .icon{width:20px;height:20px}
.route-map__discovery-badge{max-width:82px;overflow:hidden;text-overflow:ellipsis}
.route-map__discovery:hover{background:#fff1de}.route-map__discovery--charging:hover{background:#e2f6ec}
.route-map__discovery--selected{background:#825425;color:white;box-shadow:0 0 0 3px #82542538,0 3px 9px #172c3944;z-index:1}
.route-map__discovery--charging.route-map__discovery--selected{background:#16674e;box-shadow:0 0 0 3px #16674e38,0 3px 9px #172c3944}
.route-map__discovery--selected:hover{background:#65431f}.route-map__discovery--charging.route-map__discovery--selected:hover{background:#10523e}
.route-map__discovery:focus-visible{outline:3px solid #355fbd;outline-offset:3px;z-index:2}
.route-map__discovery[hidden],.route-map__discoveries[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.route-map__discovery{transition:none}}

.route-map__discovery-cluster{width:60px;min-width:60px;max-width:60px;height:44px;padding:0;box-sizing:border-box;gap:5px;border:2px solid #fff;outline:2px solid #82542525}.route-map__discovery-cluster .icon{width:18px;height:18px}.route-map__discovery-cluster.route-map__discovery--charging{outline-color:#16674e25}
.route-map__discovery-dialog{width:min(380px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:min(560px,calc(100dvh - 40px));padding:16px;border:1px solid #dbe2d5;border-radius:22px;background:#fffdf8;color:#25483c;box-shadow:0 16px 60px #172c3940;box-sizing:border-box;overflow:hidden;font:14px/1.45 system-ui}
.route-map__discovery-dialog:not([open]){display:none}.route-map__discovery-dialog[open]{display:flex;flex-direction:column;gap:12px;animation:discovery-group-enter .16s ease-out}.route-map__discovery-dialog::backdrop{background:#172c394a;backdrop-filter:blur(2px)}
.route-map__group-header{display:flex;align-items:center;gap:12px;flex:none}.route-map__group-header h3{font:750 17px/1.35 system-ui;margin:0;flex:1;overflow-wrap:anywhere}.route-map__group-header button{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid #dbe2d5;border-radius:50%;background:#f5f7ee;color:inherit;cursor:pointer}
.route-map__discovery-dialog .icon{width:20px;height:20px;flex:none}.route-map__group-list{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:4px;padding:2px}
.route-map__group-list button{display:flex;align-items:center;gap:10px;min-height:52px;flex:none;width:100%;padding:10px 7px;border:1px solid #e1e6dc;border-radius:12px;background:white;color:inherit;text-align:left;cursor:pointer;font:650 13px/1.4 system-ui;transition:background .15s,border-color .15s}
.route-map__group-list button:hover{background:#f1f6e9;border-color:#c8d4c0}.route-map__group-symbol{display:grid;place-items:center;color:#825425;flex:none}.route-map__group-label{min-width:0;flex:1;overflow-wrap:anywhere}.route-map__group-badge{font-size:12px;white-space:nowrap;color:#825425}.route-map__group-badge[hidden]{display:none}
.route-map__discovery-dialog p{font:12px/1.5 system-ui;margin:0;color:#657363;flex:none}.route-map__group-zoom{display:flex;align-items:center;justify-content:center;gap:8px;flex:none;min-height:44px;border:1px solid #25483c;border-radius:12px;background:#25483c;color:white;padding:10px;font:700 13px/1.35 system-ui;cursor:pointer}.route-map__group-zoom:disabled{opacity:.45;cursor:default}
.route-map__discovery-dialog button:focus-visible{outline:3px solid #b6d28d;outline-offset:2px}
@keyframes discovery-group-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.route-map__discovery-dialog[open]{animation:none}.route-map__group-list button{transition:none}}
[data-motion-paused="true"] .route-map__discovery-dialog[open]{animation:none}
.route-map__stops{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.route-map__stop{position:absolute;display:grid;place-items:center;width:44px;height:44px;box-sizing:border-box;padding:0;border:3px solid white;border-radius:50%;background:#25483c;color:white;box-shadow:0 2px 7px #172c3933;transform:translate(-50%,-50%);font:750 14px/1 system-ui;cursor:pointer;pointer-events:auto;touch-action:manipulation;transition:background .16s,box-shadow .16s}
.route-map__stop:hover{background:#376753}.route-map__stop--selected{background:#bd754f;box-shadow:0 0 0 3px #bd754f38,0 3px 9px #172c3944}.route-map__stop--selected:hover{background:#9f603f}
.route-map__stop:focus-visible{outline:3px solid #355fbd;outline-offset:3px}.route-map__stop[hidden],.route-map__stops[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.route-map__stop{transition:none}}

.route-map__discovery--food{color:#9a4b43}.route-map__discovery--food:hover{background:#fff0e9}.route-map__discovery--food.route-map__discovery--selected{background:#9a4b43;color:#fff;box-shadow:0 0 0 3px #9a4b4338,0 3px 9px #172c3944}.route-map__discovery--food.route-map__discovery--selected:hover{background:#783b34}.route-map__discovery-cluster.route-map__discovery--food{outline-color:#9a4b4325}
