.mapboxgl-ctrl-attrib,.mapboxgl-ctrl-logo{display:none!important}.mapboxgl-canvas{background-color:var(--map-surface)!important}.mapboxgl-canvas-container{z-index:1!important}#map-text-overlay{z-index:9999!important}.mapboxgl-popup-content{background:var(--surface);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.mapboxgl-popup-close-button{color:var(--text-primary);font-size:18px;padding:4px}.mapboxgl-popup-close-button:hover{color:var(--text-primary)}.mapboxgl-marker{cursor:pointer}.hotel-marker-container{cursor:pointer;z-index:1}@keyframes marker-pop-in{0%{opacity:0;transform:scale(.4) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.hotel-marker-container:hover{z-index:20}.hotel-marker-container:hover>svg{transform:scale(1.15)}.hotel-marker-container:hover>svg,.hotel-marker-container>svg{transition:transform .15s ease-in-out}.poi-marker-container{cursor:pointer;z-index:5}.poi-marker-container:hover{z-index:15}.poi-marker-container:hover>svg{transform:scale(1.2);transition:transform .15s ease-in-out}.poi-marker-container>svg{transition:transform .15s ease-in-out;transform-origin:center bottom}.mapboxgl-popup{z-index:100!important}@keyframes poi-popup-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.mapboxgl-popup-content:has(.poi-popup){padding:0;border-radius:12px;background:rgba(255,255,255,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,.06);box-shadow:0 2px 8px rgba(0,0,0,.08);animation:poi-popup-fade-in .15s ease-out}.mapboxgl-popup:has(.poi-popup) .mapboxgl-popup-tip{display:none}.poi-popup{font-family:inherit;display:flex;flex-direction:column;gap:3px;padding:10px 14px}.poi-popup-name{font-size:13px;font-weight:600;color:#1f2937;line-height:1.3}.poi-popup-type{font-size:11px;font-weight:500;color:#6b7280;text-transform:capitalize;letter-spacing:.02em}body.dark-mode .mapboxgl-popup-content:has(.poi-popup),body[data-theme=dark] .mapboxgl-popup-content:has(.poi-popup){background:rgba(30,30,30,.82);border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 8px rgba(0,0,0,.3)}body.dark-mode .poi-popup-name,body[data-theme=dark] .poi-popup-name{color:#f3f4f6}body.dark-mode .poi-popup-type,body[data-theme=dark] .poi-popup-type{color:#9ca3af}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{border-top-color:#ffffff}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{border-bottom-color:#ffffff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{border-right-color:#ffffff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{border-left-color:#ffffff}.route-walking{stroke:#3b82f6;stroke-width:4;stroke-dasharray:8,6;stroke-linecap:round;fill:none}.route-driving{stroke:#10b981;stroke-width:5;stroke-linecap:round;fill:none}.route-legend{position:absolute;bottom:80px;left:16px;background:var(--panel);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;box-shadow:0 2px 4px rgba(0,0,0,.1);font-size:12px;z-index:10;color:var(--text-primary)}.route-legend-item{display:flex;align-items:center;gap:8px;margin-bottom:4px}.route-legend-item:last-child{margin-bottom:0}.route-legend-line-walk{width:24px;height:3px;background:repeating-linear-gradient(90deg,#3b82f6,#3b82f6 6px,transparent 0,transparent 10px);border-radius:2px}.route-legend-line-drive{width:24px;height:4px;background:#10b981;border-radius:2px}.hotel-marker-container>svg,.poi-marker-container>svg{transform-origin:center bottom}.map-loading{background-color:var(--panel);color:var(--text-muted)}.map-error,.map-loading{display:flex;align-items:center;justify-content:center}.map-error{background-color:hsl(var(--destructive)/.05);color:hsl(var(--destructive));text-align:center;padding:1rem}.mapboxgl-ctrl-group{background:var(--surface)!important;border:1px solid var(--border-color)!important;border-radius:6px!important;box-shadow:0 1px 3px rgba(0,0,0,.1)!important;overflow:hidden}.mapboxgl-ctrl-group button{width:26px!important;height:26px!important;padding:0!important;background-color:transparent!important;background-image:none!important;border:none!important;border-bottom:1px solid var(--border-color)!important;cursor:pointer!important;transition:background-color .15s ease;display:flex!important;align-items:center!important;justify-content:center!important}.mapboxgl-ctrl-group button:last-child{border-bottom:none!important}.mapboxgl-ctrl-group button:hover{background-color:var(--panel)!important}.mapboxgl-ctrl-group button .mapboxgl-ctrl-icon{display:block!important;width:26px!important;height:26px!important;background-repeat:no-repeat!important;background-position:50%!important;background-size:14px 14px!important;background-color:transparent!important}.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234B5563' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")!important}.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234B5563' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")!important}.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234B5563' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 19 21 12 17 5 21 12 2'/%3E%3C/svg%3E")!important}body.dark-mode .mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon,body[data-theme=dark] .mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23E5E7EB' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")!important}body.dark-mode .mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon,body[data-theme=dark] .mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23E5E7EB' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")!important}body.dark-mode .mapboxgl-ctrl-compass .mapboxgl-ctrl-icon,body[data-theme=dark] .mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23E5E7EB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 19 21 12 17 5 21 12 2'/%3E%3C/svg%3E")!important}.mapboxgl-ctrl-bottom-right{right:8px!important;bottom:8px!important;z-index:100!important}.mapboxgl-canvas,.mapboxgl-canvas-container{z-index:1!important}.mapboxgl-control-container{z-index:100!important}.map-hotel-overlay{position:absolute;bottom:16px;left:16px;right:16px;display:flex;justify-content:center;opacity:0;transform:translateY(8px);z-index:500;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.map-hotel-overlay[data-visible=true]{opacity:1;transform:translateY(0);pointer-events:auto}.map-hotel-overlay:hover .overlay-carousel-btn{opacity:1!important}.map-wrapper[data-overlay-visible=true] #custom-map-controls,.map-wrapper[data-overlay-visible=true] #mapbox-attribution-logo{opacity:0!important;pointer-events:none!important;transition:opacity .2s ease}#custom-map-controls,#mapbox-attribution-logo{transition:opacity .2s ease}.overlay-expand-grip-zone{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:center;height:16px;cursor:ns-resize}.overlay-expand-grip{width:30px;height:4px;border-radius:2px;background:rgba(0,0,0,.18);opacity:.6;transition:width .2s ease,opacity .2s ease,background .2s ease;box-shadow:0 0 3px rgba(0,0,0,.1)}.overlay-expand-grip-zone:hover .overlay-expand-grip{width:44px;opacity:1;background:rgba(0,0,0,.3)}.overlay-expand-grip-zone:active .overlay-expand-grip{width:60px;background:#196b24;opacity:1}.map-hotel-overlay[data-expanded=true] .overlay-expand-grip{width:36px;opacity:.7}.map-hotel-overlay[data-expanded=true] .overlay-expand-grip-zone:hover .overlay-expand-grip{width:44px;opacity:1;background:rgba(0,0,0,.3)}.map-hotel-overlay[data-expanded=true] .overlay-expand-grip-zone:active .overlay-expand-grip{width:60px;background:#196b24;opacity:1}body.dark-mode .overlay-expand-grip,body[data-theme=dark] .overlay-expand-grip{background:rgba(255,255,255,.25);box-shadow:0 0 3px rgba(0,0,0,.2)}body.dark-mode .overlay-expand-grip-zone:hover .overlay-expand-grip,body[data-theme=dark] .overlay-expand-grip-zone:hover .overlay-expand-grip{background:rgba(255,255,255,.4)}body.dark-mode .map-hotel-overlay[data-expanded=true] .overlay-expand-grip,body[data-theme=dark] .map-hotel-overlay[data-expanded=true] .overlay-expand-grip{background:rgba(255,255,255,.25)}body.dark-mode .map-hotel-overlay[data-expanded=true] .overlay-expand-grip-zone:hover .overlay-expand-grip,body[data-theme=dark] .map-hotel-overlay[data-expanded=true] .overlay-expand-grip-zone:hover .overlay-expand-grip{background:rgba(255,255,255,.4)}body.dark-mode .map-hotel-overlay[data-expanded=true] .overlay-expand-grip-zone:active .overlay-expand-grip,body.dark-mode .overlay-expand-grip-zone:active .overlay-expand-grip,body[data-theme=dark] .map-hotel-overlay[data-expanded=true] .overlay-expand-grip-zone:active .overlay-expand-grip,body[data-theme=dark] .overlay-expand-grip-zone:active .overlay-expand-grip{background:#196b24}.overlay-expanded-content{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.overlay-expanded-content::-webkit-scrollbar{width:4px}.overlay-expanded-content::-webkit-scrollbar-track{background:transparent}.overlay-expanded-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:2px}body.dark-mode .overlay-expanded-content,body[data-theme=dark] .overlay-expanded-content{scrollbar-color:rgba(255,255,255,.15) transparent}body.dark-mode .overlay-expanded-content::-webkit-scrollbar-thumb,body[data-theme=dark] .overlay-expanded-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15)}.map-hotel-overlay[data-dragging=true] .overlay-expand-grip{width:60px;background:#196b24;opacity:1}body.dark-mode .map-hotel-overlay[data-dragging=true] .overlay-expand-grip,body[data-theme=dark] .map-hotel-overlay[data-dragging=true] .overlay-expand-grip{background:#196b24}.overlay-image-grid{display:grid;gap:2px;width:100%;height:100%}.overlay-image-grid.grid-2{grid-template-rows:65% 1fr;grid-template-columns:1fr}.overlay-image-grid.grid-3{grid-template-rows:60% 1fr;grid-template-columns:1fr 1fr}.overlay-image-grid.grid-3 .img-main{grid-column:1/-1}.overlay-image-grid.grid-4plus{grid-template-rows:55% 1fr 1fr;grid-template-columns:1fr 1fr}.overlay-image-grid.grid-4plus .img-main{grid-column:1/-1}.overlay-image-grid .img-main img,.overlay-image-grid .img-thumb img{border-radius:0}.overlay-image-area{container-type:inline-size}@container (max-width: 200px){.overlay-image-grid.grid-3,.overlay-image-grid.grid-4plus{grid-template-columns:1fr}.overlay-image-grid .img-thumb:nth-child(odd){display:none}}@keyframes citation-highlight-flash{0%{box-shadow:0 0 0 0 var(--brand-text);outline:0 solid transparent}20%{box-shadow:0 0 0 4px var(--brand-text);outline:3px solid var(--brand-text);outline-offset:2px}to{box-shadow:0 0 0 0 transparent;outline:0 solid transparent}}.citation-highlight-flash{animation:citation-highlight-flash 1.5s ease-out 1;border-radius:8px}