.planner-result-card__map-actions { display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 10px; }
.planner-result-card__map-actions button[hidden] { display:none; }
.planner-result-card__map-button { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:44px; min-height:44px; padding:8px 12px; border:0; border-radius:8px; background:#f3f5f7; color:#263440; font:inherit; font-size:14px; line-height:20px; }
.planner-result-card__map-button:hover { background:#e8edf2; }
.planner-result-card__map-button:focus-visible { outline:3px solid #77aef0; outline-offset:2px; }
.planner-route-map { box-sizing:border-box; width:min(1120px,calc(100% - 64px)); height:calc(100vh - 64px); height:calc(100dvh - 64px); max-width:none; max-height:900px; padding:0; border:1px solid #dfe4e9; border-radius:18px; background:#fff; color:#172333; box-shadow:0 20px 80px #0004; overflow:hidden; }
.planner-route-map:not([open]) { display:none; }
.planner-route-map[open] { display:flex; flex-direction:column; }
.planner-route-map::backdrop { background:#17233380; }
.planner-route-map__close { position:absolute; z-index:2; top:16px; right:16px; display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid #dfe4e9; border-radius:50%; background:#fffffff2; color:#526174; box-shadow:0 2px 8px #17233312; }
.planner-route-map__close:hover { background:#e7ebef; }
.planner-route-map__stage { position:relative; flex:1; min-height:0; background:#fff; }
.planner-route-map__viewer,.planner-route-map__overlay { position:absolute; inset:0; width:100%; height:100%; }
.planner-route-map__viewer { touch-action:none; }
.planner-route-map__overlay { pointer-events:none; }
.planner-route-map__controls { position:absolute; top:16px; left:16px; display:flex; flex-direction:column; gap:6px; }
.planner-route-map__controls button { width:44px; height:44px; border:1px solid #dfe4e9; border-radius:10px; background:#fffffff2; color:#526174; font-size:25px; box-shadow:0 2px 8px #17233312; }
.planner-route-map__notice { position:absolute; inset:0; display:flex; flex-direction:column; gap:12px; align-items:center; justify-content:center; padding:20px; background:#fffffff2; text-align:center; }
.planner-route-map__status { margin:0; font-size:14px; line-height:22px; }
.planner-route-map.is-ready .planner-route-map__notice { inset:auto 12px 12px; padding:10px 14px; border:1px solid #e7ebef; border-radius:10px; box-shadow:0 2px 8px #17233312; }
.planner-route-map button:focus-visible,.planner-route-map__viewer:focus-visible { outline:3px solid #77aef0; outline-offset:-3px; }
@media (max-width:575px) {
    .planner-route-map { width:100%; height:100vh; height:100dvh; max-height:none; margin:0; border:0; border-radius:0; }
    .planner-route-map__close { top:calc(12px + env(safe-area-inset-top)); right:calc(12px + env(safe-area-inset-right)); }
    .planner-route-map__controls { display:none; }
    .planner-route-map.is-ready .planner-route-map__notice { bottom:calc(12px + env(safe-area-inset-bottom)); }
}
