.interactive-station-map{position:relative;width:100%;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);transition:all .3s ease}.interactive-station-map.map-embed-chromeless{border-radius:0;box-shadow:none}.map-wrapper{min-height:500px;height:calc(100vh - 200px);position:relative}.map-layout{display:grid;grid-template-columns:1fr 320px;height:100%}.map-layout.map-layout--map-only{grid-template-columns:1fr}.map-stage{position:relative;min-height:100%}.map-sidebar{border-left:1px solid #e5e7eb;background:#ffffff;display:flex;flex-direction:column;min-height:100%}.map-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e5e7eb}.map-sidebar-header h3{margin:0;font-size:14px;font-weight:700}.map-sidebar-header span{font-size:12px;color:#4b5563}.map-sidebar-list{overflow-y:auto;padding:8px;overscroll-behavior:contain}.station-list-item{width:100%;border:1px solid #e5e7eb;border-radius:10px;background:#ffffff;text-align:left;padding:10px;margin-bottom:8px;transition:border-color .2s ease,background .2s ease,transform .2s ease}.station-list-item:hover{border-color:var(--d1-yellow-soft);background:var(--d1-off-white)}.station-list-item.active{border-color:var(--d1-yellow);background:var(--d1-yellow-soft);transform:translateY(-1px)}.station-list-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.station-list-item p{margin:0 0 3px;color:#374151;font-size:12px;line-height:1.35}.station-list-item small{color:#6b7280;font-size:11px}.tag-cheapest,.tag-price{border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.tag-price{background:#f3f4f6;color:#1f2937}.tag-cheapest{background:var(--d1-yellow-soft);color:var(--d1-black)}.interactive-station-map.fullscreen{position:fixed!important;top:0;left:0;right:0;bottom:0;width:100vw!important;height:100vh!important;border-radius:0;z-index:9999;margin:0}.leaflet-map-container{z-index:1}.custom-marker{background:transparent;border:none}.marker-pin{position:relative;transition:all .2s ease;cursor:pointer;animation:markerDrop .5s ease}.marker-price-tag{top:-12px;left:50%;transform:translateX(-50%) rotate(45deg);background:#111827;color:#ffffff;border-radius:10px;font-weight:700;line-height:1;padding:3px 6px;border:1px solid rgba(255,255,255,.6);white-space:nowrap}.marker-price-tag,.marker-star{position:absolute;font-size:10px}.marker-star{right:-6px;top:-6px;width:15px;height:15px;border-radius:50%;background:var(--d1-yellow);color:var(--d1-black);display:flex;align-items:center;justify-content:center;transform:rotate(45deg);box-shadow:0 2px 6px rgba(0,0,0,.25)}.marker-logo-wrap img.marker-brand-logo{width:var(--marker-logo-size,11px);height:var(--marker-logo-size,11px);max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;background:#fff;border-radius:2px;display:block}.marker-pin.cheapest{box-shadow:0 0 0 2px var(--d1-yellow),0 8px 14px rgba(0,0,0,.3)}.marker-pin.selected{animation:markerBounce .6s ease;filter:drop-shadow(0 8px 16px rgba(0,0,0,.4))}.marker-pin:hover{transform:rotate(-45deg) scale(1.1);filter:drop-shadow(0 6px 12px rgba(0,0,0,.3))}@keyframes markerDrop{0%{transform:rotate(-45deg) translateY(-100px);opacity:0}60%{transform:rotate(-45deg) translateY(10px);opacity:1}to{transform:rotate(-45deg) translateY(0)}}@keyframes markerBounce{0%,to{transform:rotate(-45deg) translateY(0)}50%{transform:rotate(-45deg) translateY(-10px)}}.custom-cluster-icon{background:transparent;border:none}.cluster-marker{display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;color:var(--d1-black);box-shadow:var(--d1-shadow-md);transition:transform .2s ease;cursor:pointer}.cluster-marker:hover{transform:scale(1.1)}.cluster-small{width:40px;height:40px;font-size:13px;border:2px solid var(--d1-white)}.cluster-medium,.cluster-small{background:linear-gradient(180deg,var(--d1-yellow-soft) 0,var(--d1-yellow) 100%);color:var(--d1-black);box-shadow:var(--d1-shadow-md)}.cluster-medium{width:48px;height:48px;font-size:14px;border:2.5px solid var(--d1-white)}.cluster-large{background:linear-gradient(180deg,var(--d1-yellow) 0,var(--d1-yellow-hover) 100%);color:var(--d1-black);width:56px;height:56px;font-size:15px;border:3px solid var(--d1-white);box-shadow:var(--d1-shadow-lg)}.station-popup{min-width:250px;max-width:300px;font-family:system-ui,-apple-system,sans-serif}.popup-title{font-size:16px;font-weight:700;margin:0 0 8px;color:var(--d1-dark-gray)}.popup-brand{font-size:12px;color:#6b7280;margin:0 0 8px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.popup-address{font-size:13px;color:#4b5563;margin:0 0 12px;line-height:1.5}.popup-prices{margin:12px 0;padding:12px;background:#f9fafb;border-radius:8px}.popup-prices strong{display:block;margin-bottom:8px;color:#111827;font-size:13px}.popup-prices ul{list-style:none;padding:0;margin:0}.popup-prices li{display:flex;justify-content:space-between;padding:4px 0;font-size:13px;color:#4b5563}.popup-prices .price{font-weight:700;color:var(--d1-success)}.popup-view-details{display:flex;align-items:center;justify-content:center;width:100%;padding:10px 16px;background:var(--d1-yellow);color:var(--d1-black);border-radius:var(--d1-radius-md);font-weight:600;font-size:14px;text-decoration:none;transition:background .15s ease;margin-top:8px;touch-action:manipulation;min-height:44px;box-sizing:border-box}.popup-view-details:hover{background:var(--d1-yellow-hover);color:var(--d1-black)}.popup-directions-btn{width:100%;padding:10px 16px;background:var(--d1-white);color:var(--d1-dark-gray);border:1px solid var(--d1-border-gray);border-radius:var(--d1-radius-md);font-weight:600;font-size:14px;cursor:pointer;transition:background .15s ease,border-color .15s ease;margin-top:8px;touch-action:manipulation;min-height:44px}.popup-directions-btn:hover{background:var(--d1-off-white);border-color:var(--d1-mid-gray)}.popup-directions-btn:active{transform:scale(.98)}.user-location-popup{text-align:center;font-weight:600;color:var(--d1-dark-gray)}.map-controls{position:absolute;top:16px;right:16px;z-index:1000;display:flex;flex-direction:column;gap:8px}.map-control-btn{width:44px;height:44px;background:white;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:all .2s ease;touch-action:manipulation}.map-control-btn:hover{background:#f9fafb;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.15)}.map-control-btn:active{transform:scale(.95)}.map-control-btn:disabled{opacity:.6;cursor:not-allowed}.location-btn.locating .location-spinner{animation:spin 1s linear infinite;display:inline-block}.location-btn.has-location{background:var(--d1-yellow);color:var(--d1-black);border-color:var(--d1-yellow-hover)}.location-btn.has-location:hover{background:var(--d1-yellow-hover)}.location-error-tooltip{position:absolute;top:60px;right:0;background:#ef4444;color:white;padding:8px 12px;border-radius:8px;font-size:12px;max-width:200px;box-shadow:0 4px 8px rgba(0,0,0,.2);z-index:1001;animation:slideDown .3s ease-out}.location-error-tooltip:before{content:"";position:absolute;top:-6px;right:16px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ef4444}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fullscreen .map-controls{top:24px;right:24px}.map-legend-overlay{position:absolute;bottom:24px;left:16px;background:white;border-radius:8px;padding:12px 16px;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:1000;min-width:180px}.legend-title{font-weight:700;font-size:13px;color:#111827;margin-bottom:8px}.legend-items{display:flex;flex-direction:column;gap:6px}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#4b5563}.legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,.3)}.station-count-badge{position:absolute;top:16px;left:16px;background:white;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:600;color:#111827;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:1000}.fullscreen .station-count-badge{top:24px;left:24px}@media (max-width:640px){.map-layout{grid-template-columns:1fr;grid-template-rows:minmax(55%,1fr) minmax(45%,1fr)}.map-sidebar{border-left:none;border-top:1px solid #e5e7eb}.map-sidebar-list{max-height:36vh}.map-controls{top:12px;right:12px;gap:6px}.map-control-btn{width:40px;height:40px;font-size:18px}.map-legend-overlay{bottom:16px;left:12px;padding:10px 12px;min-width:160px}.legend-title{font-size:12px}.legend-item{font-size:11px}.legend-dot{width:10px;height:10px}.station-count-badge{top:12px;left:12px;padding:6px 12px;font-size:12px}.station-popup{min-width:220px}.popup-title{font-size:15px}.fullscreen .map-legend-overlay{bottom:80px}}@media (min-width:641px) and (max-width:1024px){.map-legend-overlay{bottom:20px;left:16px}}@media (prefers-color-scheme:dark){.map-sidebar{background:#111827;border-left-color:#374151;border-top-color:#374151}.map-sidebar-header{border-bottom-color:#374151}.map-sidebar-header h3,.station-list-item strong{color:#f9fafb}.map-sidebar-header span,.station-list-item small{color:#d1d5db}.station-list-item{background:#1f2937;border-color:#374151}.station-list-item:hover{background:#243244;border-color:#4b5563}.station-list-item.active{border-color:var(--d1-yellow);background:rgb(248 204 0/.15)}.station-list-item p{color:#d1d5db}.tag-price{background:#374151;color:#f3f4f6}.tag-cheapest{background:#164e63;color:#cffafe}.station-popup{background:#1f2937}.popup-title{color:#f9fafb}.popup-address,.popup-prices li{color:#d1d5db}.popup-prices{background:#111827}.popup-prices strong{color:#f9fafb}.map-legend-overlay,.station-count-badge{background:#1f2937;color:#f9fafb}.legend-title{color:#f9fafb}.legend-item{color:#d1d5db}.map-control-btn{background:#1f2937;border-color:#374151;color:#f9fafb}.map-control-btn:hover{background:#111827}}@media (prefers-reduced-motion:reduce){.cluster-marker,.map-control-btn,.marker-pin,.popup-directions-btn{animation:none;transition:none}.map-control-btn:hover,.marker-pin:hover{transform:none}}@media (prefers-contrast:high){.map-control-btn,.map-legend-overlay,.station-count-badge{border:2px solid}.marker-pin{border-width:4px!important}}@media print{.map-controls,.popup-directions-btn,.popup-view-details{display:none!important}.interactive-station-map{-moz-column-break-inside:avoid;break-inside:avoid}}.leaflet-container{width:100%;height:100%;background:var(--d1-bg-page)}.leaflet-pane{z-index:auto!important}.leaflet-bottom,.leaflet-top{z-index:1000}.leaflet-popup-content-wrapper{border-radius:12px;padding:0;overflow:hidden}.leaflet-popup-content{margin:16px}.leaflet-popup-tip-container{display:none}.leaflet-fade-anim .leaflet-tile{will-change:opacity}.leaflet-zoom-anim .leaflet-zoom-animated{will-change:transform}.interactive-station-map,.leaflet-map-container--voyager{--map-surface:var(--d1-bg-page);--map-control-bg:var(--d1-white);--map-control-border:var(--d1-border-gray);--map-control-text:var(--d1-dark-gray);--map-control-muted:var(--d1-text-gray);--map-accent:var(--d1-yellow);--map-accent-hover:var(--d1-yellow-hover);--map-accent-soft:var(--d1-yellow-soft);--map-link:var(--d1-dark-gray);--map-shadow:var(--d1-shadow-md);--map-radius:var(--d1-radius-md)}.leaflet-map-container--voyager.leaflet-container{background:var(--map-surface);font-family:inherit}.leaflet-map-container--voyager .leaflet-tile-pane{filter:saturate(1.02) contrast(1.01)}.leaflet-map-container--voyager .leaflet-control-zoom{border:none;box-shadow:var(--map-shadow);border-radius:var(--map-radius);overflow:hidden}.leaflet-map-container--voyager .leaflet-control-zoom a{width:40px;height:40px;line-height:40px;font-size:20px;font-weight:500;color:var(--map-control-text);background:var(--map-control-bg);border-bottom:1px solid var(--map-control-border)}.leaflet-map-container--voyager .leaflet-control-zoom a:hover{background:var(--d1-off-white);color:var(--map-control-text)}.leaflet-map-container--voyager .leaflet-control-zoom-in{border-radius:var(--map-radius) var(--map-radius) 0 0}.leaflet-map-container--voyager .leaflet-control-zoom-out{border-bottom:none;border-radius:0 0 var(--map-radius) var(--map-radius)}.leaflet-map-container--voyager .leaflet-control-attribution{background:rgb(255 255 255/.94);color:var(--map-control-muted);font-size:10px;padding:2px 8px;border-radius:var(--d1-radius-sm) 0 0 0;box-shadow:var(--d1-shadow-sm)}.leaflet-map-container--voyager .leaflet-control-attribution a{color:var(--map-control-text);font-weight:500}.leaflet-map-container--voyager .leaflet-control-attribution a:hover{color:var(--map-accent-hover)}@media (prefers-color-scheme:dark){.leaflet-map-container--voyager.leaflet-container{background:#111827}.leaflet-map-container--voyager .leaflet-control-zoom a{background:#1f2937;color:#f3f4f6;border-bottom-color:#374151}.leaflet-map-container--voyager .leaflet-control-zoom a:hover{background:#374151}.leaflet-map-container--voyager .leaflet-control-attribution{background:rgb(17 24 39/.94);color:#d1d5db}}