@media (width <= 1023px){body.chat-panel-open{overflow:hidden;position:fixed;width:100%}.relative:has(#textInput){display:block;position:relative}#textInput:parent{display:block;position:relative}#textInput{-webkit-overflow-scrolling:touch;box-sizing:border-box;display:block;font-size:16px!important;height:40px;line-height:1.5;margin:0!important;max-height:80px;min-height:40px;padding:10px 48px 10px 12px!important;-webkit-user-select:text;user-select:text;vertical-align:top}#sendText{height:32px!important;margin:0!important;min-height:32px!important;min-width:32px!important;padding:0!important;position:absolute!important;right:8px!important;top:50%!important;transform:translateY(-50%)!important;width:32px!important}#sendText,#sendText i{align-items:center!important;display:flex!important;justify-content:center!important;line-height:1!important}#sendText i{font-size:1rem!important}#sendText{align-items:center;display:flex;height:40px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0;right:8px;transition:all .2s;width:40px}#sendText i{font-size:1rem;line-height:1}}#sendText:active{opacity:.8;transform:scale(.95)}@media (width <= 1023px){#aiResponses{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding:.5rem!important;scroll-behavior:smooth;scrollbar-color:#0003 #0000;scrollbar-width:thin}#aiPanel>div:first-child{min-height:40px;padding:.5rem!important}#aiPanel .border-t{padding:.5rem!important}.ai-response{word-wrap:break-word;overflow-wrap:break-word;-webkit-tap-highlight-color:transparent;font-size:.875rem;line-height:1.4;margin-bottom:8px;padding:8px 10px}}.ai-response p{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}#map{overscroll-behavior:none;touch-action:pan-x pan-y pinch-zoom;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;transform:translateZ(0)}.leaflet-control{touch-action:manipulation}.leaflet-control-zoom{margin:12px!important}.leaflet-control-zoom a{font-size:20px!important;height:44px!important;line-height:44px!important;transition:all .2s;width:44px!important}.leaflet-control-zoom a:active{opacity:.8;transform:scale(.9)}#mapControls{min-width:200px;pointer-events:auto;right:12px;top:12px;z-index:5!important}#mapControls.minimized{min-width:auto;padding:0;width:auto;z-index:5!important}#mapControls.minimized #mapControlsMinimized{align-items:center;background:none;border-radius:0;box-shadow:none;display:flex;justify-content:center;min-height:auto;min-width:auto;padding:0}#mapControls.minimized #mapControlsMinimized button{align-items:center;background:#fff;border:none;border-radius:6px;box-shadow:0 2px 8px #00000026;color:#6b7280;display:flex;font-size:16px;height:36px;justify-content:center;min-height:36px;min-width:36px;padding:0;transition:all .2s;width:36px}#mapControls.minimized #mapControlsMinimized button:hover{background:#f3f4f6;box-shadow:0 4px 12px #0003;color:#1f2937}#mapControls:not(.minimized){z-index:5!important}#mapControls button,#mapControls select{font-size:16px;min-height:44px;padding:10px}.leaflet-marker-icon{cursor:pointer;transition:transform .2s}.leaflet-marker-icon:active{transform:scale(1.2)}.station-marker{height:20px;transition:all .2s;width:20px}@media (width >= 768px){.station-marker{height:16px;width:16px}}#mapControls,#mapControls *{pointer-events:auto;touch-action:manipulation}@media (width <= 1023px){#aiPanel{bottom:0;display:flex;flex-direction:column;height:auto!important;left:0;max-height:35vh!important;overflow:hidden;position:fixed;right:0}#aiPanel .border-t{background:#fff;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom);position:relative;z-index:10}#aiResponses{height:calc(100vh - 180px);overflow-y:auto;padding-bottom:10px}.map-container{position:relative;z-index:1}#aiPanel.visible~.map-container,.map-container,body:has(#aiPanel.visible) .map-container{height:calc(100vh - 60px)}#aiPanel,.side-panel{transition:transform .3s cubic-bezier(.4,0,.2,1)}#aiPanel:before{background:#d1d5db;border-radius:2px;content:"";cursor:grab;height:4px;left:50%;pointer-events:none;position:absolute;top:8px;transform:translateX(-50%);width:40px;z-index:50}#aiPanel>div:first-child{cursor:grab;position:relative;z-index:50}#aiPanel>div:first-child:active{cursor:grabbing}.side-panel:before{content:"";height:100%;left:0;position:absolute;top:0;touch-action:none;width:20px;z-index:1}}@media (prefers-reduced-motion:reduce){#aiPanel,.panel-overlay,.side-panel{animation:none!important;transition:none!important}}@media (width <= 1023px){#aiPanel,#map,.side-panel{transform:translateZ(0);will-change:transform}.ai-response{contain:layout style paint}}@media (orientation:landscape) and (height <= 500px){header{min-height:48px;padding:8px 12px}#textInput{min-height:40px;padding:8px 40px 8px 12px}#mapControls{max-width:180px;right:8px;top:8px}#aiPanel{height:calc(100vh - 60px)!important;max-height:calc(100vh - 60px)!important;max-width:280px!important;width:280px!important}#aiResponses{height:calc(100vh - 180px)!important}}@supports (padding:max(0px)){#aiPanel,.side-panel{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}#aiPanel .border-t{padding-bottom:max(12px,env(safe-area-inset-bottom))}#collapsedChat{bottom:max(16px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left))}#mapControls{right:max(12px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top))}}.touch-target,a,button{touch-action:manipulation;-webkit-tap-highlight-color:#0000001a;min-height:44px;min-width:44px;transition:all .2s}.touch-target:active,a:active,button:active{opacity:.8;transform:scale(.95)}#aiResponses,.chart-container,.side-panel>div:last-child{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-behavior:smooth}input[type=email],input[type=password],input[type=search],input[type=text],select,textarea{font-size:16px!important}input,textarea{-webkit-user-select:text;user-select:text}.panel-overlay{-webkit-backdrop-filter:blur(4px);pointer-events:auto;z-index:40}.panel-overlay.visible{transition:opacity .3s,visibility .3s}@media (width <= 1023px){#aiPanel{inset:60px auto 0 0!important}#aiPanel,.side-panel{z-index:45!important}#aiPanel{height:calc(100vh - 60px)!important;max-height:calc(100vh - 60px)!important;max-width:280px!important;width:280px!important;z-index:50!important}#sendText,#textInput{pointer-events:auto!important;position:relative;z-index:51!important}@media (orientation:landscape){#aiPanel{height:calc(100vh - 60px)!important;inset:60px auto 0 0!important;max-height:calc(100vh - 60px)!important;max-width:280px!important;width:280px!important}}@media (orientation:portrait){#aiPanel{height:calc(100vh - 60px)!important;inset:60px auto 0 0!important;max-height:calc(100vh - 60px)!important;max-width:280px!important;width:280px!important}}.mobile-panel-header{background:#fff;position:relative;z-index:50!important}#closeDatasets,#closeFlowlinePanel,#closeLocationPanel,#closePanel,#closeVisualization,#toggleChat,.mobile-panel-header button{cursor:pointer;min-height:44px;min-width:44px;pointer-events:auto!important;position:relative;z-index:51!important}#visualizationPanel #closeVisualization{cursor:pointer!important;pointer-events:auto!important;z-index:100!important}#aiPanel.visible~.map-container #mapControls,.side-panel.visible~.map-container #mapControls{z-index:5!important}#mapControls:not(.minimized){bottom:calc(50vh + 20px);top:auto}#map,.map-container{z-index:1}#collapsedChat{bottom:1rem!important;box-shadow:0 4px 16px #0003;height:56px!important;left:1rem!important;max-height:56px!important;max-width:56px!important;min-height:56px!important;min-width:56px!important;overflow:hidden;padding:0!important;top:auto!important;transform:none!important;transition:all .3s;width:56px!important;z-index:30}#collapsedChat>div{align-items:center!important;display:flex!important;height:100%!important;justify-content:center!important;margin:0!important;padding:0!important;width:100%!important}#collapsedChat i{display:block!important;font-size:1.25rem!important;line-height:1!important}#aiPanel.visible~* #collapsedChat,#collapsedChat span,body:has(#aiPanel.visible) #collapsedChat{display:none!important}}#collapsedChat:active{transform:scale(.9)}.leaflet-popup{max-width:calc(100vw - 40px);touch-action:manipulation}.leaflet-popup-content-wrapper{padding:12px}.leaflet-popup-close-button{font-size:24px;height:32px;line-height:32px;width:32px}@media (width <= 767px){body{font-size:15px}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}h4{font-size:1rem}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body.keyboard-visible #aiPanel{height:100vh;max-height:100vh}body.keyboard-visible #aiResponses{max-height:calc(100vh - 180px);padding-bottom:20px}#map[style*="pointer-events: none"]{opacity:.95}.leaflet-popup{margin-bottom:20px;z-index:1000}.leaflet-popup-content{font-size:14px;line-height:1.5}@media (width <= 1023px){#mapControls{min-width:auto;width:auto}#mapControlsContent{display:none!important}#mapControlsMinimized{display:block!important}#toggleMapControls{display:none!important}#mapControls:not(.minimized) #mapControlsContent{display:block!important}#mapControls:not(.minimized) #mapControlsMinimized{display:none!important}#mapControls:not(.minimized) #toggleMapControls{display:block!important}}@media (width <= 767px){header{min-height:56px;padding:10px 12px}header h1{font-size:1.125rem}.controls button{min-height:40px;min-width:40px;padding:8px}#voiceBtn span{display:none}}.loading-spinner{height:48px;width:48px}@media (width >= 768px){.loading-spinner{height:40px;width:40px}}