.map-provider{position:relative;width:100%;height:100%;overflow:hidden}.map-provider canvas{transform:translateZ(0);will-change:transform;image-rendering:optimizeSpeed;image-rendering:-webkit-optimize-contrast;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}@media (max-width:768px){.map-provider{overscroll-behavior:none;touch-action:pan-y pan-x pinch-zoom}.map-provider canvas{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;font-smooth:always;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.map-provider canvas{image-rendering:optimizeSpeed;-webkit-font-smoothing:subpixel-antialiased}}@media (max-width:768px) and (max-height:812px){.map-provider{--animation-duration:0ms;--transition-duration:0ms}.map-provider *{animation-duration:var(--animation-duration)!important;transition-duration:var(--transition-duration)!important}}.map-provider{touch-action:manipulation}.map-provider.interacting{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1000}@supports (padding:max(0px)){.map-provider{padding:max(env(safe-area-inset-top),0px) max(env(safe-area-inset-right),0px) max(env(safe-area-inset-bottom),0px) max(env(safe-area-inset-left),0px)}}@media (prefers-color-scheme:dark){.map-provider{background-color:#1a1a1a}}@media (prefers-reduced-motion:reduce){.map-provider *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast:high){.map-provider canvas{filter:contrast(1.5)}}.map-provider:focus-within{outline:2px solid #0066cc;outline-offset:2px}.map-provider.loading{position:relative}.map-provider.loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.9);z-index:1000;display:flex;align-items:center;justify-content:center}.map-provider.loading:after{content:"Loading map...";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;color:#333;z-index:1001}.map-provider.error{position:relative;background-color:#fee}.map-provider.error:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255,238,238,.95);z-index:1000}.map-provider.error:after{content:"Map failed to load. Please check your connection.";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;color:#d00;text-align:center;z-index:1001;max-width:300px;padding:20px}@media (development){.map-provider:before{content:attr(data-performance);position:absolute;top:10px;left:10px;background:rgba(0,0,0,.8);color:#0f0;padding:5px 10px;border-radius:4px;font-family:monospace;font-size:12px;z-index:100;pointer-events:none}}.map-provider .maplibregl-control-container{z-index:100}@media (max-width:768px){.map-provider .maplibregl-control-container{transform:scale(1.2);transform-origin:top right}.map-provider .maplibregl-ctrl{min-width:44px;min-height:44px;margin:8px}}.map-provider::-webkit-scrollbar{width:0;height:0;background:transparent}@media print{.map-provider{position:static;width:100%;height:400px;border:1px solid #ccc}.map-provider .maplibregl-control-container{display:none}}@media (orientation:landscape) and (max-height:500px){.map-provider{--control-scale:0.8}.map-provider .maplibregl-control-container{transform:scale(var(--control-scale))}}@media (prefers-reduced-data:reduce){.map-provider{--tile-resolution:0.5;--update-frequency:30s}.map-provider canvas{image-rendering:pixelated;filter:contrast(.8) brightness(1.1)}}@media (prefers-reduced-bandwidth){.map-provider{--max-tiles:10;--tile-size:256}}