.real-map{height:360px;width:100%;position:relative;z-index:0;background:#e9ede6;font:13px/1.4 var(--font)}
.real-map .leaflet-control-attribution{font-size:10px;line-height:1.6;background:rgba(255,255,255,.93);color:#465650;max-width:100%;white-space:normal;padding:2px 5px}
.real-map .leaflet-control-attribution a{color:#456448}
.real-map .leaflet-control-zoom a{width:40px;height:40px;line-height:40px;color:var(--green);background:#fffffff0}
.real-map .leaflet-control-zoom{border:1px solid #c6d2be;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px #52644415}
.real-place-marker{background:none;border:0}
.real-place-marker span{display:grid;place-items:center;width:36px;height:36px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:#587368;border:3px solid #fff;box-shadow:0 2px 8px #2d443f40;color:transparent;font-weight:700}
.real-place-marker::after{content:attr(data-number);position:absolute;inset:0;display:grid;place-items:center;color:white}
.real-place-marker span{transform:none;border-radius:50%;color:white}
.real-place-marker.is-selected span{background:#80646c;box-shadow:0 0 0 5px #f1e8efcc,0 2px 8px #2d443f30}
.real-place-marker:focus-visible{outline:3px solid #80646c;outline-offset:5px;border-radius:50%}
.real-place-marker.is-day-marker span{box-sizing:border-box;width:76px;min-width:76px;padding:0 8px;white-space:nowrap;font-size:12px;line-height:1;border-radius:18px;background:var(--marker-day-color,var(--brand,#587368));color:#fff}
.real-place-marker.is-day-marker.is-selected span{background:var(--marker-day-color,var(--brand,#587368));box-shadow:0 0 0 3px #fff,0 0 0 6px #29485b99,0 3px 10px #29485b35}
.my-location-marker span{display:block;width:22px;height:22px;border:4px solid white;border-radius:50%;background:#347ec0;box-shadow:0 0 0 5px #347ec026,0 1px 8px #29485940}
.my-location-marker.is-stale span{background:#89938e;box-shadow:0 0 0 5px #89938e22}
.map-toolbar{display:flex;gap:5px;padding:6px 12px 0;background:#fff;border-top:1px solid var(--line)}
.map-toolbar button{font-size:12px;line-height:1.3;min-height:44px;min-width:0;flex:1;padding:7px 8px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--green)}
.map-toolbar .locate-button{background:#eaf0f5;color:#315d80;border-color:#cfdee9}
.map-status{font-size:11px;color:var(--muted);padding:5px 14px 8px;background:#fff;line-height:1.5}
.map-status [data-location-state=denied],.map-status [data-location-state=timeout],.map-status [data-location-state=unavailable]{color:#8b6341}
.map-info{border-top:1px solid var(--line);background:#fff;color:var(--muted);font-size:11px}
.map-info summary{min-height:44px;padding:12px 14px;cursor:pointer;line-height:20px}
.map-info summary::marker{color:#9ba896;font-size:10px}
.map-info summary:focus-visible{outline:3px solid var(--purple);outline-offset:-4px;border-radius:8px}
.map-info-content{padding:0 14px 13px;line-height:1.7}
.map-info .privacy-note{font-size:11px;margin-top:8px;color:var(--muted)}
.map-area-note{margin:8px 0;color:var(--muted)}
.map-legend{display:flex;gap:10px;padding:0;background:white;font-size:11px;color:var(--muted);flex-wrap:wrap;align-items:center}
.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;background:#587368}.legend-dot.me{background:#347ec0}
.map-pending{font-size:11px;padding:8px 0 0;color:#756443;line-height:1.65}
.map-pending strong{font-weight:600}.map-tile-error{font-size:12px;color:#8b6341;padding:12px 16px;background:#fcf4e9}
.map-distance{font-size:11px;color:#315d80;margin-top:0!important;font-weight:500}
.map-dialog{max-width:1000px!important;width:calc(100% - 32px)}
.map-dialog .real-map{height:min(56vh,520px)}
.map-dialog .route-top [data-action=expand-map]{display:none}
.map-dialog .dialog-content{padding-top:0}.map-helper{margin-top:12px}
.map-status [hidden],.map-toolbar [hidden],.map-peek [hidden]{display:none!important}
@media(max-width:720px){.real-map{height:290px}.map-column{display:none}.map-column.mobile-open{display:block}.map-dialog .real-map{height:43dvh;min-height:240px}.real-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}.map-dialog{width:calc(100% - 16px)}.map-dialog .dialog-content{padding:5px 10px 16px}.map-dialog .dialog-header{padding:10px 16px}}
@media(prefers-reduced-motion:reduce){.leaflet-zoom-animated{transition:none!important}}
.map-collapse{display:none!important}
.thumb-slot{flex-shrink:0;width:74px;margin-top:2px}
.stop-thumb{width:74px;height:74px;border-radius:13px;overflow:hidden;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#edf0e9;padding:0;gap:5px;color:#7a8771;border:1px solid #e1e6da}
.stop-thumb img{height:100%;width:100%;object-fit:cover}.stop-thumb small{font-size:10px}
.thumb-number{position:absolute;left:4px;top:4px;border-radius:50%;background:#587368;color:white;display:grid;place-items:center;width:19px;height:19px;font-size:10px;border:1px solid #ffffffaa}
.stop-desc,.stop-tags{margin-left:86px}.stop-body{padding-left:12px;padding-right:10px}
.compact .thumb-slot{display:none}.compact .stop-desc,.compact .stop-tags{margin-left:0}
.place-photo-large{width:100%;max-height:55vh;object-fit:contain;border-radius:14px}.photo-attribution{font-size:12px!important;margin-top:12px}
.easy .stop-desc,.easy .stop-tags{margin-left:0}
@media(max-width:720px){.trip-workspace{display:flex;flex-direction:column}.trip-columns{display:contents!important}.map-column{order:0!important;margin-bottom:18px}.datebar{order:1}.mobile-map-button{order:2}.timeline-column{order:3}.map-collapse{display:inline-grid!important}.thumb-slot,.stop-thumb{width:64px}.stop-thumb{height:68px}.stop-desc,.stop-tags{margin-left:0}.stop-title{gap:10px}.stop-title .iconbtn{width:30px}.stop-title h3{font-size:15px}.stop-title .type{font-size:10px}.stop-body{padding:13px 10px}.map-peek{padding:14px 16px}.map-peek h3{font-size:15px}.map-toolbar{padding:10px 12px}.map-status{padding-bottom:10px}.map-column .map-helper{display:block;font-size:11px}.map-column .map-helper .icon{display:none}.easy .stop-title h3{font-size:19px}.easy .stop-title .type{font-size:13px}.easy .thumb-slot{width:56px}.easy .stop-thumb{width:56px;height:66px}}
@media(max-width:370px){.thumb-slot,.stop-thumb{width:52px}.stop-thumb{height:64px}.stop-title{gap:8px}.stop-title .iconbtn{width:26px}.map-toolbar button{font-size:11px;padding:8px}.map-status{font-size:11px}.map-legend{font-size:10px}}
.easy .trip-workspace{display:flex;flex-direction:column}.easy .trip-columns{display:contents!important}.easy .map-column{order:0;margin-bottom:20px}.easy .datebar{order:1}.easy .mobile-map-button{order:2}.easy .timeline-column{order:3}

/* Map essentials stay visible; supporting explanations are available on demand. */
.route-panel.map-empty-panel{background:#fafbf8}
.map-empty-state{display:flex;align-items:center;gap:12px;min-height:76px;padding:18px 16px;color:var(--muted);font-size:12px;line-height:1.6}
.map-empty-state>.icon{width:23px;height:23px;color:#9cab92;flex-shrink:0}
.route-panel .route-top{padding:8px 14px;gap:12px;min-height:60px;background:#fbfcf9}
.route-panel .route-top>div:first-child{min-width:0}
.route-panel .route-top strong{font-size:13px}
.route-panel .route-top p{font-size:10px;margin-top:1px}
.route-panel .route-top>.row{gap:2px;flex-shrink:0}
.route-panel .route-top .iconbtn{width:44px;height:44px;background:transparent}
.route-panel .map-peek{padding:4px 14px 6px;background:#fff;border-top:1px solid var(--line)}
.map-selected-row{display:flex;gap:8px;align-items:center;min-height:44px}
.route-panel .map-peek h3{font-size:13px;line-height:1.5;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.map-selected-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}
.map-selected-actions .iconbtn{width:44px;height:44px;border-radius:8px;color:var(--muted)}
.map-selected-actions .icon{width:17px;height:17px}
.map-navigation{display:inline-flex;align-items:center;gap:5px;min-height:44px;font-size:11px;text-decoration:none;white-space:nowrap;color:var(--green)}
.map-navigation .icon{width:14px;height:14px}
.route-panel .map-distance{margin:0 0 3px!important;font-size:11px;line-height:1.5}
.route-panel .map-toolbar{padding:6px 12px 0;gap:5px}
.route-panel .map-status{padding:5px 14px 8px;font-size:11px}
.easy .route-panel .map-peek h3{font-size:17px;white-space:normal}
.easy .route-panel .map-toolbar button,.easy .route-panel .map-status,.easy .map-info,.easy .map-info .privacy-note,.easy .map-legend,.easy .map-pending,.easy .map-navigation,.easy .route-panel .map-distance{font-size:14px}
@media(max-width:370px){.route-panel .map-toolbar button{font-size:11px;padding:7px 5px}.route-panel .map-peek{padding-left:12px;padding-right:12px}.map-selected-row{gap:5px}.map-navigation{gap:3px}}
.thumb-credit{font-size:10px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere;margin-top:5px}.thumb-credit>*{display:block}.thumb-credit a{color:var(--green)}
