.trip-map-section{margin:0 0 18px;min-width:0;}
.map-toggle{min-height:44px;}
#trip-map-body{margin-top:12px;}
#trip-map-body[hidden]{display:none;}
.map-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;color:var(--ink-soft);font-size:12px;}
.map-modes{display:flex;background:rgba(120,140,170,.12);padding:3px;border-radius:8px;}
.map-modes button{font:inherit;border:0;background:transparent;color:var(--ink-soft);padding:10px 14px;border-radius:6px;cursor:pointer;}
.map-modes button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 4px #0001;}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;min-width:0;}
.map-surface{min-width:0;position:relative;}
#trip-map-canvas{height:440px;width:100%;border-radius:8px;isolation:isolate;background:#e8eeeb;z-index:0;}
.map-status{font-size:12px;line-height:1.5;color:var(--ink-soft);padding:6px 0;}
.map-status:empty{display:none;}
.map-stop-list{list-style:none;padding:0;margin:0;max-height:440px;overflow:auto;}
.map-stop{width:100%;display:flex;text-align:left;gap:9px;align-items:flex-start;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 3px;color:var(--ink);font:inherit;cursor:pointer;}
.map-stop:hover{background:rgba(255,255,255,.5);}
.map-stop>span:last-child{min-width:0;overflow-wrap:anywhere;}
.map-stop b{font-size:12px;font-weight:600;}
.map-stop small{display:block;font-size:11px;line-height:1.5;color:var(--ink-soft);margin-top:3px;}
.map-number{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#247d85;color:white;font-size:11px;}
.route-marker{background:none;border:0;}
.route-marker span{display:grid;place-items:center;width:30px;height:30px;border:2px solid white;box-shadow:0 2px 7px #0005;border-radius:50%;background:#247d85;color:white;font:600 11px sans-serif;}
.map-caption,.map-empty{font-size:11px;color:var(--ink-soft);padding:8px 0;}
.map-popup{font:12px/1.6 var(--font);overflow-wrap:anywhere;}
.map-popup+.map-popup{border-top:1px solid #ddd;margin-top:8px;padding-top:8px;}
.map-popup p{margin:4px 0;}
.map-visit{margin-top:6px;}
.map-visit button{font:inherit;color:#176971;border:0;background:transparent;padding:3px 0;cursor:pointer;text-decoration:underline;}
.map-visit small{display:block;color:#697581;}
.map-retry{font:inherit;margin-left:10px;padding:5px 10px;cursor:pointer;}
.map-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);cursor:pointer;}
.map-icon-button:focus-visible,.map-location-link:focus-visible{outline:2px solid #2563eb;outline-offset:2px;}
.map-expand{margin-left:auto;}
.map-legend{display:flex;gap:8px 16px;flex-wrap:wrap;margin:0 0 10px;font-size:12px;line-height:1.5;color:var(--ink-soft);}
.map-legend span{display:inline-flex;gap:6px;align-items:center;}
.map-legend i{display:inline-block;flex:none;width:20px;height:3px;}
.map-location-link{display:flex;align-items:center;gap:6px;min-height:44px;line-height:1.5;white-space:normal;}
.map-location-link img{flex:none;}
#trip-map-canvas:has(.leaflet-popup) .leaflet-control-zoom{visibility:hidden;}
.map-dialog{box-sizing:border-box;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;border:0;padding:12px;padding: max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#f6f8fa;color:var(--ink);overflow:hidden;overscroll-behavior:contain;}
.map-dialog[open]{display:flex;flex-direction:column;}
.map-dialog::backdrop{background:#f6f8fa;}
.map-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;margin-bottom:8px;}
.map-dialog #trip-map-body{display:flex;flex-direction:column;flex:1;min-height:0;margin:0;}
.map-dialog .map-toolbar,.map-dialog .map-legend,.map-dialog .map-caption{flex:none;}
.map-dialog .map-expand{display:none;}
.map-dialog .map-layout{flex:1;min-height:0;}
.map-dialog .map-surface{display:flex;flex-direction:column;min-height:0;}
.map-dialog #trip-map-canvas{height:100%;min-height:160px;flex:1;}
.map-dialog .map-stop-list{max-height:none;min-height:0;overscroll-behavior:contain;}
@media(max-width:820px){.map-layout{grid-template-columns:minmax(0,1fr);gap:8px;}#trip-map-canvas{height:320px;}.map-stop-list{max-height:240px;}.map-toolbar{justify-content:flex-start;}.map-modes button{padding:10px 12px;}}
@media(max-width:820px){.map-dialog .map-layout{grid-template-rows:minmax(160px,1fr) minmax(0,150px);}.map-dialog .map-stop-list{max-height:150px;}.map-dialog .map-caption{font-size:10px;}.map-dialog .map-toolbar{gap:8px;}.map-dialog .map-legend{gap:6px 12px;font-size:11px;}}
@media(max-height:550px){.map-dialog .map-layout{grid-template-columns:minmax(0,1fr) minmax(130px,30%);grid-template-rows:minmax(120px,1fr);}.map-dialog #trip-map-canvas{min-height:120px;}.map-dialog .map-stop-list{max-height:none;}.map-dialog .map-caption{display:none;}}
