.map-pro{border:1px solid #bfd6db;box-shadow:0 16px 42px #123f5120;padding:20px}
.map-pro .map-head{padding-bottom:16px;border-bottom:1px solid #dbe9ec}
.map-pro .map-head h3{font-size:22px;color:#0a3547;letter-spacing:-.025em}
.map-pro .map-head p{font-size:13px;color:#5a7380}
.map-pro .map-head select{background:#eaf5f5;border-color:#8abdc5;color:#064f5d;font-weight:700;padding:9px 14px}
.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0}
.map-legend{display:flex;gap:14px;flex-wrap:wrap;color:#456674;font-size:12px;font-weight:700}
.map-legend span{display:inline-flex;gap:6px;align-items:center}.map-legend i{width:13px;height:4px;border-radius:5px;display:inline-block}
.map-zoom{display:flex;gap:5px}.map-zoom button{border:1px solid #b9d4d9;background:#f5fafa;color:#0a5966;border-radius:7px;min-width:36px;padding:7px 10px;font-weight:800;cursor:pointer}.map-zoom button:hover{background:#def2f1}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(245px,300px);gap:14px;align-items:stretch}
.map-pro #travel-map{background:#082b3c;border-radius:13px;overflow:hidden;min-height:470px;box-shadow:inset 0 0 0 1px #23586a}
.map-pro #travel-map svg{display:block;width:100%;height:100%;min-height:470px;background:transparent;border:0;border-radius:0;max-width:none}
.map-pro #travel-map .map-point,.map-pro #travel-map .map-segment{cursor:pointer}
.map-pro #travel-map .map-point:focus-visible,.map-pro #travel-map .map-segment:focus-visible{outline:none;filter:drop-shadow(0 0 6px #fff)}
.map-pro #travel-map .map-point:hover .point-ring,.map-pro #travel-map .map-point.is-selected .point-ring{stroke:#fff;stroke-width:3}
.map-pro #travel-map .map-segment:hover .leg-visible,.map-pro #travel-map .map-segment.is-selected .leg-visible{stroke-width:6;filter:drop-shadow(0 0 7px currentColor)}
.map-aside{background:#f2f8f9;border:1px solid #d4e5e8;border-radius:12px;padding:17px;display:flex;flex-direction:column;min-width:0}
.map-aside .aside-eyebrow{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#087680;font-weight:800}
.map-aside h4{font-size:19px;line-height:1.2;margin:7px 0;color:#0b3446}.map-aside p{font-size:12px;line-height:1.5;color:#5a707a;margin:5px 0 13px}
.map-stat{display:flex;align-items:baseline;gap:7px;padding:12px 0;border-top:1px solid #d9e7e9;border-bottom:1px solid #d9e7e9}.map-stat strong{font-size:28px;color:#087987}.map-stat span{font-size:11px;color:#5b717b}
.map-steps{overflow:auto;max-height:338px;margin:10px -6px 0;padding:0 6px 4px}
.map-step{display:flex;width:100%;align-items:center;gap:10px;text-align:left;border:1px solid transparent;border-radius:8px;background:transparent;padding:9px 7px;color:#183f4e;cursor:pointer}
.map-step:hover,.map-step[aria-current=true]{background:#fff;border-color:#c9e0e4;box-shadow:0 3px 10px #16445612}
.map-step .step-number{flex:0 0 26px;width:26px;height:26px;display:grid;place-items:center;color:#fff;background:#0a8491;border-radius:50%;font-size:11px;font-weight:800}
.map-step .step-names{min-width:0;flex:1;font-size:11px;line-height:1.35}.map-step .step-names strong{display:block;font-size:12px}.map-step .step-distance{font-size:12px;font-weight:800;white-space:nowrap;color:#0a6675}
.map-city-action{margin-top:auto;width:100%;border:0;background:#0a7682;color:white;border-radius:8px;padding:10px 12px;text-align:center;font-weight:700;cursor:pointer}.map-city-action:disabled{background:#c4d4d8;color:#536d77;cursor:default}
.map-pro #map-distances{display:none}.map-pro>.small{margin:12px 2px 0}
@media(max-width:950px){.map-layout{grid-template-columns:1fr}.map-aside{min-height:0}.map-steps{max-height:250px}}
@media(max-width:650px){.map-pro{padding:12px}.map-pro #travel-map{overflow:auto;min-height:400px}.map-pro #travel-map svg{width:660px;min-height:470px}.map-toolbar{align-items:flex-start}.map-legend{gap:7px 12px}.map-zoom{flex-shrink:0}}
@media(prefers-reduced-motion:no-preference){.map-pro #travel-map .leg-visible{transition:stroke-width .15s,opacity .15s}.map-pro #travel-map .map-point{transition:opacity .15s}}

.road-link{display:inline-block;margin:4px 0 12px;font-size:12px;color:#086e7a;font-weight:800;text-decoration:underline;text-underline-offset:3px}
