:root{--color-bg-canvas:#fafbfc;--color-bg-panel:#fff;--color-bg-panel-frosted:#fffffff2;--color-bg-overlay:#0f172ab3;--color-fg-primary:#0f172a;--color-fg-secondary:#475569;--color-fg-tertiary:#64748b;--color-fg-disabled:#94a3b8;--color-accent-50:#e6f1ff;--color-accent-100:#cce3ff;--color-accent-500:#007aff;--color-accent-700:#0062cc;--color-semantic-success:#2da259;--color-semantic-warning:#d97706;--color-semantic-danger:#dc2626;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--gutter:clamp(12px,1.5vw,22px);--gap:clamp(8px,1vw,16px);--radius-xs:3px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--shadow-subtle:0 1px 2px #0f172a14;--shadow-raised:0 2px 8px #0f172a1a;--shadow-elevated:0 8px 24px #0f172a24;--font-size-caption:11px;--font-size-body:13px;--font-size-body-emphasized:14px;--font-size-subhead:15px;--font-size-title-sm:17px;--font-size-title:20px;--font-size-title-lg:22px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--line-height-title:1.2;--line-height-body:1.45;--line-height-long:1.6;--letter-spacing-title:-0.01em;--letter-spacing-chrome:0.04em;--duration-instant:80ms;--duration-fast:160ms;--duration-base:240ms;--duration-slow:360ms;--ease-standard:cubic-bezier(0.4,0,0.2,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-emphasized:cubic-bezier(0.2,0,0,1)}.tabular-nums{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}body{font-feature-settings:"kern" 1,"liga" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;font-size:var(--font-size-body);line-height:var(--line-height-body)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{display:flex;flex-direction:column;height:100vh;margin:0;overflow:hidden;padding:0;width:100vw}*{box-sizing:border-box}body{margin:0;overflow:hidden;padding:0}#root{height:100vh;width:100vw}.app-loading-fallback{align-items:center;color:var(--color-fg-tertiary);display:flex;font-size:var(--font-size-title-sm);font-weight:var(--font-weight-regular);height:100vh;justify-content:center}.app-loading-fallback-inner{align-items:center;display:flex;flex-direction:column;gap:var(--space-2)}.app-loading-fallback-spinner{animation:app-loading-spin 1s var(--ease-standard) infinite;border-bottom-color:#0000;border-right-color:#0000;border-top-color:#0000;border:4px solid var(--color-accent-500);border-left:4px solid #0000;border-radius:50%;height:40px;width:40px}@keyframes app-loading-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.chart-fs-backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:var(--color-bg-overlay);inset:0;position:fixed;z-index:9500}@media (prefers-reduced-motion:no-preference){.chart-fs-backdrop{animation:chart-fs-fade var(--duration-base) var(--ease-out)}}@keyframes chart-fs-fade{0%{opacity:0}to{opacity:1}}.chart-fs-container{background:var(--color-bg-panel);border-radius:var(--radius-lg);bottom:15%;box-shadow:var(--shadow-elevated);display:flex;flex-direction:column;left:15%;outline:none;overflow:hidden;position:fixed;right:15%;top:15%;transform-origin:center}@media (prefers-reduced-motion:no-preference){.chart-fs-container{animation:chart-fs-scale var(--duration-base) var(--ease-emphasized)}}@keyframes chart-fs-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.chart-fs-content{display:flex;flex:1 1 auto;min-height:0}.chart-fs-content>*{flex:1 1 auto;height:100%;min-height:0;min-width:0;width:100%}@media (max-width:768px){.chart-fs-container{bottom:5%;left:5%;right:5%;top:5%}}@media (max-width:480px){.chart-fs-container{border-radius:0;bottom:8px;left:8px;right:8px;top:8px}}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{background-color:#ffffffbf;background-color:var(--ol-partial-background-color);border:1.5px solid #fff;border:1.5px solid var(--ol-background-color);border-radius:2px;box-sizing:border-box}.ol-mouse-position{position:absolute;right:8px;top:8px}.ol-scale-line{background:#ffffffbf;background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #666;border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:#333;color:var(--ol-foreground-color);font-size:10px;margin:1px;text-align:center;transition:all .25s;will-change:contents,width}.ol-scale-bar{bottom:8px;left:8px;position:absolute}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:#333;background-color:var(--ol-foreground-color);float:right;height:15px;width:1px;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{color:#333;color:var(--ol-foreground-color);position:absolute;text-shadow:-1.5px 0 #ffffffbf,0 1.5px #ffffffbf,1.5px 0 #ffffffbf,0 -1.5px #ffffffbf;text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{bottom:25px;font-size:12px;text-align:center}.ol-scale-singlebar{border:1px solid #333;border:1px solid var(--ol-foreground-color);box-sizing:border-box;height:10px;position:relative;z-index:9}.ol-scale-singlebar-even{background-color:#666;background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:#fff;background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ol-viewport canvas{all:unset}.ol-viewport{touch-action:none}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{background-color:#80808040;background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{left:.5em;top:.5em}.ol-rotate{right:.5em;top:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;transition:opacity .25s linear,visibility 0s linear .25s;visibility:hidden}.ol-zoom-extent{left:.5em;top:4.643em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{background-color:#fff;background-color:var(--ol-background-color);border:none;border-radius:2px;color:#666;color:var(--ol-subtle-foreground-color);display:block;font-size:inherit;font-weight:700;height:1.375em;line-height:.4em;margin:1px;padding:0;text-align:center;text-decoration:none;width:1.375em}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{color:#333;color:var(--ol-foreground-color);outline:1px solid #666;outline:1px solid var(--ol-subtle-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{align-items:center;bottom:.5em;display:flex;flex-flow:row-reverse;max-width:calc(100% - 1.3em);right:.5em;text-align:right}.ol-attribution a{color:#666;color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:#333;color:var(--ol-foreground-color);font-size:12px;margin:0;padding:1px .5em;text-shadow:0 0 2px #fff;text-shadow:0 0 2px var(--ol-background-color)}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:#ffffffbf;background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;left:.5em;top:4.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #666;border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:#80808040;background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted #666;border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.info-icon-btn{align-items:center;background:#0000;border:none;border-radius:999px;border-radius:var(--radius-pill,999px);color:#94a3b8;color:var(--color-fg-disabled,#94a3b8);cursor:help;display:inline-flex;flex-shrink:0;height:20px;justify-content:center;margin:0;padding:2px;transition:color .15s ease,background-color .15s ease;width:20px}.info-icon-btn:focus-visible,.info-icon-btn:hover{background-color:#e6f1ff;background-color:var(--color-accent-50,#e6f1ff);color:#0062cc;color:var(--color-accent-700,#0062cc)}.info-icon-btn:focus-visible{outline:2px solid #007aff;outline:2px solid var(--color-accent-500,#007aff);outline-offset:1px}.info-icon-svg{display:block;pointer-events:none}.info-tooltip{animation:info-tooltip-fade-in .15s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#0f172ad9;border-radius:8px;box-shadow:0 8px 24px #00000040;color:#fff;font-size:13px;line-height:1.45;max-width:280px;padding:12px 14px;pointer-events:none;position:fixed;z-index:2100}.info-tooltip-title{color:#fff;font-size:13.5px;font-weight:600;letter-spacing:.01em;margin-bottom:6px}.info-tooltip-body{color:#ffffffeb;white-space:pre-wrap}@keyframes info-tooltip-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.hover-tooltip{animation:fadeInTooltip .2s ease-out}.hover-tooltip-content{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:1px solid var(--color-accent-100);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);max-width:280px;min-width:100px;padding:var(--space-2) var(--space-3);text-align:center}.hover-tooltip-station{min-width:200px;text-align:left}.hover-tooltip-station-name{color:var(--color-accent-700);font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-chrome);margin-bottom:var(--space-2);text-align:center;text-transform:uppercase}.hover-tooltip-station-details{display:flex;flex-direction:column;gap:3px}.hover-tooltip-station-row{align-items:center;display:flex;justify-content:space-between}.hover-tooltip-label{color:var(--color-accent-700);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);margin-right:var(--space-2)}.hover-tooltip-value{font-feature-settings:"tnum";color:var(--color-fg-primary);font-size:var(--font-size-caption);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);text-align:right}.hover-tooltip-layers{border-top:1px solid var(--color-accent-100);margin-top:var(--space-2);padding-top:var(--space-2);text-align:left}.hover-tooltip-layers-title{color:var(--color-accent-700);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-chrome);margin-bottom:var(--space-1);text-align:center;text-transform:uppercase}.hover-tooltip-layer-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:2px}.hover-tooltip-layer-name{color:var(--color-fg-secondary);margin-right:var(--space-2)}.hover-tooltip-layer-name,.hover-tooltip-layer-value{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold)}.hover-tooltip-layer-value{font-feature-settings:"tnum";color:var(--color-accent-700);font-variant-numeric:tabular-nums}@keyframes fadeInTooltip{0%{opacity:0}to{opacity:1}}@media (max-width:768px){.hover-tooltip-content{min-width:70px;padding:var(--space-2) var(--space-3)}.hover-tooltip-layer-name,.hover-tooltip-layer-value,.hover-tooltip-layers-title,.hover-tooltip-title,.hover-tooltip-value{font-size:var(--font-size-caption)}}.map-control-stack{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--color-bg-panel-frosted);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);left:var(--space-3);position:fixed;top:var(--space-3);width:320px;z-index:1900}.map-control-stack:focus-within{background:var(--color-bg-panel)}@media (max-width:768px){.map-control-stack{max-width:300px;width:calc(100% - 80px)}}.app-logo{border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md);box-sizing:border-box;display:block;line-height:0;padding:var(--space-2);transition:background var(--duration-fast) var(--ease-out);width:100%}.app-logo:hover{background:#00000008}.app-logo:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:-2px}.app-logo img{display:block;height:auto;width:100%}@media (max-width:768px){.app-logo{padding:var(--space-1)}}.station-search-container{position:relative;width:100%}.station-search-input-wrapper{align-items:center;display:flex;position:relative}.station-search-icon{align-items:center;color:var(--color-fg-tertiary);display:flex;justify-content:center;left:var(--space-3);pointer-events:none;position:absolute}.station-search-input-wrapper:focus-within .station-search-icon{color:var(--color-accent-700)}.station-search-input{background:#0000;border:none;border-radius:var(--radius-md);color:var(--color-fg-primary);font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-medium);outline:none;padding:var(--space-3) 40px var(--space-3) 40px;width:100%}.station-search-input::placeholder{color:var(--color-fg-disabled);font-weight:var(--font-weight-regular)}.station-search-input:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:-2px}.station-search-clear{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-fg-disabled);cursor:pointer;display:flex;justify-content:center;min-height:32px;min-width:32px;padding:var(--space-1);position:absolute;right:var(--space-3);transition:all .2s ease}.station-search-clear:hover{background:#0000000d;color:var(--color-fg-primary)}.station-search-clear:active{background:#0000001a}.station-search-clear:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.station-search-dropdown{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);left:0;overflow:hidden;position:absolute;right:0;top:calc(100% + var(--space-2))}@media (prefers-reduced-motion:no-preference){.station-search-dropdown{animation:slideDown .2s var(--ease-out)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.station-search-results{max-height:400px;overflow-y:auto;padding:var(--space-1)}.station-search-results::-webkit-scrollbar{width:6px}.station-search-results::-webkit-scrollbar-track{background:#0000}.station-search-results::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:var(--radius-sm)}.station-search-results::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.station-search-item{background:#0000;border:none;border-radius:var(--radius-sm);color:inherit;cursor:pointer;display:block;font:inherit;margin-bottom:var(--space-1);padding:var(--space-3) var(--space-3);text-align:left;transition:all .15s ease;width:100%}.station-search-item:last-child{margin-bottom:0}.station-search-item.selected,.station-search-item:hover{background:var(--color-accent-50)}.station-search-item:active{background:var(--color-accent-100)}.station-search-item:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.station-search-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-1)}.station-search-item-name{color:var(--color-accent-700);font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-semibold)}.station-search-item-country{background:#0000000d;border-radius:var(--radius-md);color:var(--color-fg-tertiary);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);padding:var(--space-1) var(--space-2)}.station-search-item-details{display:flex;flex-wrap:wrap;gap:var(--space-2)}.station-search-item-detail{align-items:center;color:var(--color-fg-tertiary);display:flex;font-size:var(--font-size-body);gap:var(--space-1)}.station-search-item-detail svg{color:var(--color-accent-700);flex-shrink:0}.station-search-footer{background:var(--color-bg-canvas);border-top:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);color:var(--color-fg-tertiary);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);padding:var(--space-2) var(--space-3);text-align:center}.station-search-no-results{color:var(--color-fg-disabled);padding:var(--space-6) var(--space-5);text-align:center}.station-search-no-results svg{color:color-mix(in srgb,var(--color-fg-disabled) 50%,#0000);margin-bottom:var(--space-3)}.station-search-no-results p{color:var(--color-fg-secondary);font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-1) 0}.station-search-no-results span{color:var(--color-fg-tertiary);font-size:var(--font-size-body)}@media (max-width:768px){.station-search-input{font-size:var(--font-size-body);padding:var(--space-3) 36px var(--space-3) 36px}.station-search-icon{left:var(--space-3)}.station-search-clear{right:var(--space-3)}.station-search-results{max-height:300px}.station-search-item{padding:var(--space-2) var(--space-3)}.station-search-item-name{font-size:var(--font-size-body)}.station-search-item-country{padding:var(--space-1) var(--space-2)}.station-search-footer,.station-search-item-country,.station-search-item-detail{font-size:var(--font-size-caption)}.station-search-footer{padding:var(--space-2) var(--space-3)}.station-search-no-results{padding:var(--space-5) var(--space-4)}.station-search-no-results svg{height:28px;width:28px}.station-search-no-results p{font-size:var(--font-size-body)}.station-search-no-results span{font-size:var(--font-size-caption)}}@keyframes highlight{0%{background:var(--color-accent-100)}to{background:var(--color-accent-50)}}.date-range-picker{color:#111;position:absolute;transition:bottom var(--duration-fast) var(--ease-out),left var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);z-index:1000}.date-range-picker.bottom-center{bottom:var(--space-5);left:50%;transform:translateX(-50%)}.date-range-picker.bottom-right{bottom:var(--space-5);right:var(--space-5);transform:translateX(0)}.date-range-picker.bottom-left{bottom:var(--space-5);left:var(--space-5);transform:translateX(0)}.date-range-picker.bottom-left-stacked{bottom:calc(var(--space-7) + var(--space-2) + 5px);left:var(--space-3);transform:translateX(0)}.drp-panel{align-items:center;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated),0 1px 3px #00000014;display:flex;flex-direction:row;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.drp-info-col{align-items:flex-start;display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.drp-info-row,.drp-play-group{align-items:center;display:flex;gap:var(--space-2)}.drp-play-group{justify-content:center;margin-left:auto}.drp-icon-btn{align-items:center;background:#0000;border:0;border-radius:50%;color:#111;cursor:pointer;display:flex;height:36px;justify-content:center;padding:0;transition:background-color .12s ease,transform .12s ease;width:36px}.drp-icon-btn:hover{background:#0000000f}.drp-icon-btn:active{transform:scale(.96)}.drp-icon-btn:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.drp-calendar-btn.is-open{background:#00000014}.drp-step-btn:disabled{cursor:not-allowed;opacity:.3}.drp-step-btn:disabled:hover{background:#0000}.drp-current-date{color:#111;font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-semibold);min-width:78px;text-align:center;white-space:nowrap}.drp-range-chip{background:#0000000d;border-radius:var(--radius-pill);color:var(--color-fg-secondary);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);padding:2px var(--space-2);white-space:nowrap}.drp-popover{background:#fff;border-radius:var(--radius-lg);bottom:calc(100% + var(--space-2));box-shadow:var(--shadow-elevated),0 2px 6px #00000014;left:50%;opacity:0;padding:var(--space-3);pointer-events:none;position:absolute;transform:translateX(-50%) translateY(8px);transition:opacity .16s ease,transform .16s ease;width:280px}.drp-popover.open{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}.drp-tabs{background:#0000000d;border-radius:var(--radius-md);display:flex;gap:var(--space-1);margin-bottom:var(--space-3);padding:var(--space-1)}.drp-tab{background:#0000;border:0;border-radius:var(--radius-md);color:var(--color-fg-secondary);cursor:pointer;flex:1 1;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);padding:var(--space-2) var(--space-2);transition:background-color .12s ease,color .12s ease}.drp-tab:hover{color:#111}.drp-tab.active{background:#fff;box-shadow:var(--shadow-subtle);color:#111}.drp-tab:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.drp-year-nav{gap:var(--space-2);margin-bottom:var(--space-2)}.drp-year-nav,.drp-year-step{align-items:center;display:flex;justify-content:center}.drp-year-step{background:#0000;border:0;border-radius:50%;color:#111;cursor:pointer;font-size:var(--font-size-body);height:28px;width:28px}.drp-year-step:hover:not(:disabled){background:#0000000f}.drp-year-step:disabled{cursor:not-allowed;opacity:.3}.drp-year-step:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.drp-year-input{font-feature-settings:"tnum";-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield;background:#fff;border:1px solid #0000001f;border-radius:var(--radius-md);color:#111;font-size:var(--font-size-subhead);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);padding:var(--space-1) var(--space-2);text-align:center;width:72px}.drp-year-input::-webkit-inner-spin-button,.drp-year-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.drp-year-input:focus{border-color:#0000;outline:2px solid var(--color-accent-500);outline-offset:1px}.drp-month-grid{grid-gap:var(--space-1);display:grid;gap:var(--space-1);grid-template-columns:repeat(4,1fr);margin-bottom:var(--space-2)}.drp-month-cell{background:#0000;border:0;border-radius:var(--radius-md);color:#111;cursor:pointer;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);min-height:44px;padding:var(--space-3) 0;transition:background-color .12s ease,color .12s ease}.drp-month-cell:hover:not(:disabled){background:#0000000f}.drp-month-cell.selected{background:var(--color-accent-500);color:#fff}.drp-month-cell.is-current:not(.selected){box-shadow:inset 0 0 0 1.5px var(--color-accent-500);color:var(--color-accent-500)}.drp-month-cell.disabled,.drp-month-cell:disabled{background:#0000;color:#00000047;cursor:not-allowed}.drp-month-cell:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.drp-popover-footer{display:flex;justify-content:flex-end}.drp-done{background:#111;border:0;border-radius:var(--radius-pill);color:#fff;cursor:pointer;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);padding:var(--space-2) var(--space-4);transition:background-color .12s ease}.drp-done:hover{background:#000}.drp-done:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}@media (max-width:768px){.date-range-picker.bottom-center,.date-range-picker.bottom-left-stacked{bottom:calc(var(--space-7) + var(--space-2) + 5px);left:var(--space-3);max-width:calc(100vw - 24px);transform:translateX(0)}.drp-panel{flex-wrap:wrap;max-width:calc(100vw - 24px);row-gap:var(--space-2)}.drp-icon-btn{height:44px;width:44px}.drp-current-date{font-size:var(--font-size-body);min-width:70px}.drp-popover{max-height:80vh;overflow-y:auto;width:min(320px,calc(100vw - 24px))}}.legend-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);overflow:hidden;width:100%}.legend-header{background:var(--color-bg-panel);border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);gap:var(--space-2);padding:var(--space-3) var(--space-4)}.legend-header,.legend-icon{align-items:center;display:flex}.legend-icon{color:var(--color-accent-700);flex-shrink:0;justify-content:center}.legend-title{color:var(--color-fg-primary);font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-semibold);margin:0}.legend-content{overflow-y:auto;padding:var(--space-2);scroll-snap-type:y proximity}.legend-content::-webkit-scrollbar{width:6px}.legend-content::-webkit-scrollbar-track{background:#0000}.legend-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:var(--radius-sm)}.legend-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.legend-group{margin-bottom:0;scroll-snap-align:start}.legend-group+.legend-group{border-top:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);margin-top:var(--space-2);padding-top:var(--space-2)}.legend-group-header{margin-bottom:var(--space-2)}.legend-group-title{background:#00000008;border-radius:var(--radius-sm);color:var(--color-fg-tertiary);display:inline-block;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-chrome);margin:0;padding:var(--space-1) var(--space-2);text-transform:uppercase}.legend-group-items{display:flex;flex-direction:column;gap:var(--space-1)}.legend-item{align-items:center;border-radius:var(--radius-sm);display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-2);transition:all .15s ease}.legend-item:hover{background:var(--color-accent-50)}.legend-ranged-item{border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);scroll-snap-align:start;transition:all .15s ease}.legend-ranged-item+.legend-ranged-item{border-top:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);margin-top:var(--space-1);padding-top:var(--space-3)}.legend-ranged-item:hover{background:var(--color-accent-50)}.legend-ranges-container{display:flex;flex-direction:column;gap:var(--space-1)}.legend-ranges-container::-webkit-scrollbar{width:4px}.legend-ranges-container::-webkit-scrollbar-track{background:#0000}.legend-ranges-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:var(--radius-sm)}.legend-ranges-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.legend-range-item{align-items:center;border-radius:var(--radius-sm);display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-2);transition:all .15s ease}.legend-range-item:hover{background:var(--color-accent-50)}.legend-range-color-box{border:1px solid #fffc;border-radius:var(--radius-xs);box-shadow:var(--shadow-subtle);flex-shrink:0;height:16px;width:16px}.legend-range-text{color:var(--color-fg-secondary);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);line-height:1;white-space:nowrap}.legend-color-box{border:1px solid #fffc;border-radius:var(--radius-xs);box-shadow:var(--shadow-subtle);flex-shrink:0;height:16px;width:16px}.legend-categorical-item{border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);scroll-snap-align:start;transition:all .15s ease}.legend-categories-container{display:flex;flex-direction:column;gap:var(--space-1);max-height:220px;overflow-y:auto}.legend-categories-container::-webkit-scrollbar{width:4px}.legend-categories-container::-webkit-scrollbar-track{background:#0000}.legend-categories-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:var(--radius-sm)}.legend-categories-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.legend-category-item{align-items:center;border-radius:var(--radius-sm);display:flex;gap:var(--space-2);padding:var(--space-1) var(--space-2);transition:all .15s ease}.legend-category-item:hover{background:var(--color-accent-50)}.legend-category-color-box{border:1px solid #fffc;border-radius:var(--radius-xs);box-shadow:var(--shadow-subtle);flex-shrink:0;height:16px;width:16px}.legend-category-label{color:var(--color-fg-secondary);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);line-height:1.2}.legend-line-sample{display:flex;flex-direction:column;flex-shrink:0;gap:2px;justify-content:center;width:16px}.legend-line-sample>span{border-radius:1px;width:100%}.legend-item-note{color:var(--color-fg-tertiary);font-size:var(--font-size-caption);font-weight:var(--font-weight-regular);line-height:1.2;margin-top:2px}.legend-item-content{display:flex;flex-direction:column;flex-grow:1;min-width:0}.legend-item-name{color:var(--color-fg-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-item-unit{color:var(--color-fg-tertiary);font-size:var(--font-size-caption);font-weight:var(--font-weight-regular);line-height:1}.legend-footer{background:var(--color-bg-canvas);border-top:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);padding:var(--space-2) var(--space-4)}.legend-footer-text{color:var(--color-fg-tertiary);display:block;font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);text-align:center}.legend-group[data-category=inputs] .legend-group-title{background:var(--color-accent-50);color:var(--color-accent-700)}.legend-group[data-category=outputs] .legend-group-title{background:color-mix(in srgb,var(--color-semantic-warning) 10%,#0000);color:var(--color-semantic-warning)}@media (max-width:768px){.legend-container{width:100%}.legend-header{padding:var(--space-3) var(--space-3)}.legend-title{font-size:var(--font-size-body)}.legend-content{padding:var(--space-2)}.legend-group-title{font-size:var(--font-size-caption);padding:var(--space-1) var(--space-2)}.legend-item{gap:var(--space-2);padding:var(--space-2) var(--space-2)}.legend-color-box{height:14px;width:14px}.legend-item-name,.legend-item-unit{font-size:var(--font-size-caption)}.legend-footer{padding:var(--space-2) var(--space-3)}.legend-footer-text{font-size:var(--font-size-caption)}.legend-ranged-item{gap:var(--space-1);padding:var(--space-2)}.legend-ranges-container{gap:var(--space-1)}.legend-range-item{gap:var(--space-1);padding:var(--space-1) var(--space-2)}.legend-range-color-box{height:14px;width:14px}.legend-range-text{font-size:var(--font-size-caption)}}.legend-container:empty{display:none}.legend-item:hover .legend-color-box{box-shadow:var(--shadow-raised);transform:scale(1.1)}.legend-item:hover .legend-item-name{color:var(--color-accent-700)}.map-wrapper{height:100%}.map-container{border-radius:0;height:100%;overflow:hidden;width:100%}.map-attribution{background:#ffffffbf;border-radius:var(--radius-sm);bottom:var(--space-2);color:var(--color-fg-primary);font-size:var(--font-size-caption);padding:var(--space-1) var(--space-2);pointer-events:none;-webkit-user-select:none;user-select:none}.custom-zoom-controls,.map-attribution{position:absolute;right:var(--space-3);z-index:1000}.custom-zoom-controls{background:#fff;border:1px solid #0000001a;border-radius:var(--radius-md);bottom:var(--space-7);display:flex;flex-direction:column;gap:0;padding:var(--space-1)}.zoom-button{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-fg-primary);cursor:pointer;display:flex;font-size:20px;font-weight:var(--font-weight-semibold);height:44px;justify-content:center;padding:0;transition:all .2s ease;user-select:none;-webkit-user-select:none;width:44px}.zoom-button:hover{background:#0000000d}.zoom-button:active{background:#0000001a;transform:scale(.97)}.zoom-button:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.zoom-home{order:0}.zoom-home svg{height:16px;width:16px}.zoom-in{order:1}.zoom-out{order:2}.map-bottom-bar{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:var(--radius-md);bottom:var(--space-2);box-shadow:var(--shadow-elevated);display:inline-flex;gap:var(--space-5);justify-content:flex-start;left:var(--space-3);padding:var(--space-2) var(--space-4);position:absolute;z-index:1000}.bottom-bar-section{align-items:center;display:flex;position:relative;white-space:nowrap}.bottom-bar-section:not(:last-child):after{background:#0000001a;content:"";height:20px;position:absolute;right:calc(var(--space-3)*-1);top:50%;transform:translateY(-50%);width:1px}.coordinates-section{padding:0 var(--space-1)}.map-tools-container{background:#fff;border:1px solid #0000001a;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:0;padding:var(--space-1);position:absolute;right:var(--space-3);top:var(--space-7);z-index:1000}.map-tool-button{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-fg-primary);cursor:pointer;display:flex;height:44px;justify-content:center;padding:0;transition:all .2s ease;width:44px}.map-tool-button:hover{background:#0000000d}.map-tool-button:active{transform:scale(.97)}.map-tool-button.active{background:var(--color-accent-500);color:#fff}.map-tool-button.active:hover{background:var(--color-accent-700)}.map-tool-button:disabled{cursor:not-allowed;opacity:.4}.map-tool-button:disabled:hover{background:#0000;transform:none}.map-tool-button:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.map-tool-button.graph-panel-toggle{color:var(--color-fg-primary)}.map-tool-button.graph-panel-toggle:hover{background:#0000000d;color:var(--color-fg-primary)}.map-tool-button.graph-panel-toggle.active{background:var(--color-accent-500);color:#fff}.map-tool-button.graph-panel-toggle.active:hover{background:var(--color-accent-700);color:#fff}.map-container.marker-mode-active,.map-container.marker-mode-active *{cursor:crosshair!important}.station-popup{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-raised);max-width:350px;min-width:250px;pointer-events:none;position:absolute;z-index:1000}.station-popup:before{border-bottom:8px solid #0000;border-right:8px solid var(--color-bg-panel);border-top:8px solid #0000;content:"";filter:drop-shadow(-2px 0 2px rgba(0,0,0,.1));height:0;left:-8px;position:absolute;top:0;width:0}.popup-content{display:flex;flex-direction:column}.popup-header{align-items:center;background:var(--color-bg-panel);border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);border-radius:var(--radius-md) var(--radius-md) 0 0;display:flex;gap:var(--space-2);justify-content:space-between;padding:var(--space-3) var(--space-4)}.popup-title{color:var(--color-fg-primary);flex:1 1;font-size:var(--font-size-body);letter-spacing:var(--letter-spacing-chrome);text-transform:uppercase}.popup-close,.popup-title{font-weight:var(--font-weight-semibold)}.popup-close{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-fg-secondary);cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:32px;justify-content:center;padding:0;pointer-events:all;transition:background-color .2s ease;width:32px}.popup-close:hover{background:var(--color-accent-50);color:var(--color-accent-700)}.popup-close:active{background:var(--color-accent-100);color:var(--color-accent-700)}.popup-close:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.popup-details{background:#fff;border-radius:0 0 var(--radius-md) var(--radius-md);padding:var(--space-3) var(--space-4)}.popup-field{align-items:flex-start;display:flex;gap:var(--space-2);justify-content:space-between;margin-bottom:var(--space-2)}.popup-field:last-child{margin-bottom:0}.popup-label{color:var(--color-accent-700);flex-shrink:0;font-weight:var(--font-weight-semibold);min-width:75px}.popup-label,.popup-value{font-size:var(--font-size-caption)}.popup-value{font-feature-settings:"tnum";color:var(--color-fg-primary);flex:1 1;font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium);text-align:right;word-break:break-word}.map-top-right-stack{background:#0000;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 100px);overflow-y:auto;pointer-events:none;position:absolute;right:71px;scrollbar-width:thin;top:var(--space-7);width:280px;z-index:1800}.map-top-right-stack>*{flex-shrink:0;pointer-events:auto}.map-top-right-stack::-webkit-scrollbar{width:6px}.map-top-right-stack::-webkit-scrollbar-thumb{background:#0003;border-radius:var(--radius-sm)}.map-top-right-stack::-webkit-scrollbar-track{background:#0000}.layers-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);overflow:hidden;width:100%}.layers-panel-header{align-items:center;background:var(--color-bg-panel);border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);color:var(--color-fg-primary);display:flex;justify-content:space-between;padding:var(--space-4) var(--space-5)}.layers-panel-header h3{font-size:var(--font-size-title-sm);letter-spacing:var(--letter-spacing-chrome);line-height:var(--line-height-title);margin:0;text-transform:uppercase}.layers-close,.layers-panel-header h3{font-weight:var(--font-weight-semibold)}.layers-close{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-fg-secondary);cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;padding:var(--space-1);transition:background-color .2s ease;width:32px}.layers-close:hover{background:var(--color-accent-50);color:var(--color-accent-700)}.layers-close:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.layers-panel-content{max-height:min(720px,calc(100vh - 220px));overflow-y:auto;padding:var(--space-4) var(--space-5)}.basemap-options{display:flex;gap:var(--space-3)}.basemap-option{align-items:center;background:#0000;border:2px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:var(--space-2);padding:var(--space-2);transition:all .2s ease}.basemap-option:hover{background:#0000000a}.basemap-option.active{background:var(--color-accent-50);border-color:var(--color-accent-500)}.basemap-option:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.basemap-thumb{aspect-ratio:1;border-radius:var(--radius-sm);box-shadow:var(--shadow-subtle);object-fit:cover;width:100%}.basemap-label{color:var(--color-fg-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold)}.basemap-option.active .basemap-label{color:var(--color-accent-700)}.layer-group{margin-bottom:var(--space-5)}.layer-group:last-child{margin-bottom:0}.layer-group h4{border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 12%,#0000);color:var(--color-accent-700);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-chrome);margin:0 0 var(--space-3) 0;padding-bottom:var(--space-2);text-transform:uppercase}.layer-group-header{align-items:center;background:#0000;border:none;border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 12%,#0000);border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:var(--space-2);margin:0;padding:var(--space-2) var(--space-3);text-align:left;transition:background-color var(--duration-fast) var(--ease-standard);width:100%}.layer-group-header:hover{background:var(--color-accent-50)}.layer-group-header:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:1px}.layer-group-title{color:var(--color-accent-700);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-chrome);text-transform:uppercase}.layer-group-chevron{color:var(--color-accent-700);flex:none;transform:rotate(0deg);transition:transform var(--duration-fast) var(--ease-standard)}.layer-group--collapsed .layer-group-chevron{transform:rotate(-90deg)}.layer-group-count{background:var(--color-accent-500);border-radius:var(--radius-md);color:#fff;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);line-height:18px;margin-left:auto;min-width:18px;padding:0 var(--space-1);text-align:center}.layer-group-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--duration-base) var(--ease-standard)}.layer-group--collapsed .layer-group-body{grid-template-rows:0fr}.layer-group-body-inner{min-height:0;overflow:hidden;padding-top:var(--space-3)}.layer-group--collapsed .layer-group-body-inner{padding-top:0}.layer-item{margin-bottom:var(--space-2)}.layer-item:last-child{margin-bottom:0}.layer-info{align-items:center;border-radius:var(--radius-sm);display:flex;justify-content:space-between;margin:0 calc(var(--space-3)*-1);padding:var(--space-2) var(--space-3);transition:background-color .2s ease}.layer-info:hover{background:var(--color-accent-50)}.layer-name{color:var(--color-fg-primary);flex:1 1;font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-medium)}.layer-status{background:var(--color-bg-canvas);border-radius:var(--radius-md);color:var(--color-fg-tertiary);font-size:var(--font-size-caption);font-weight:var(--font-weight-regular);padding:var(--space-1) var(--space-2);white-space:nowrap}.empty-layers-message{color:var(--color-fg-tertiary);padding:var(--space-7) var(--space-5);text-align:center}.empty-layers-message p{font-size:var(--font-size-body-emphasized);font-style:italic;margin:0}.layer-checkbox{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;margin:0 calc(var(--space-3)*-1);padding:var(--space-2) var(--space-3);transition:background-color .2s ease}.layer-checkbox:hover{background:var(--color-accent-50)}.layer-checkbox input[type=checkbox]{display:none}.checkmark{border:1px solid color-mix(in srgb,var(--color-fg-tertiary) 22%,#0000);border-radius:var(--radius-sm);flex-shrink:0;height:18px;margin-right:var(--space-3);position:relative;transition:all .2s ease;width:18px}.layer-checkbox input[type=checkbox]:checked+.checkmark{background:var(--color-accent-500);border-color:var(--color-accent-500)}.layer-checkbox input[type=checkbox]:checked+.checkmark:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:5px;position:absolute;top:2px;transform:rotate(45deg);width:4px}.layer-opacity-row{align-items:center;display:flex;gap:var(--space-3);margin:var(--space-1) calc(var(--space-3)*-1) 0;padding:0 var(--space-3)}.layer-opacity-slider{-webkit-appearance:none;appearance:none;background:color-mix(in srgb,var(--color-fg-tertiary) 22%,#0000);border-radius:var(--radius-sm);cursor:pointer;flex:1 1;height:4px;outline:none}.layer-opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--color-accent-500);border:2px solid #fff;border-radius:50%;box-shadow:var(--shadow-subtle);cursor:pointer;height:14px;-webkit-transition:transform .15s ease;transition:transform .15s ease;width:14px}.layer-opacity-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.layer-opacity-slider::-moz-range-thumb{background:var(--color-accent-500);border:2px solid #fff;border-radius:50%;box-shadow:var(--shadow-subtle);cursor:pointer;height:14px;width:14px}.layer-opacity-slider:focus-visible{border-radius:var(--radius-sm);outline:2px solid var(--color-accent-500);outline-offset:3px}.layer-opacity-value{font-feature-settings:"tnum";color:var(--color-fg-tertiary);font-size:var(--font-size-caption);font-variant-numeric:tabular-nums;min-width:36px;text-align:right}@media (max-width:768px){.layer-opacity-slider{height:6px}.layer-opacity-slider::-webkit-slider-thumb{height:22px;width:22px}.layer-opacity-slider::-moz-range-thumb{height:22px;width:22px}.layer-opacity-row{padding:var(--space-1) var(--space-3)}}.date-control{padding:var(--space-3) 0}.date-label{color:var(--color-fg-primary);display:block;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.date-slider{-webkit-appearance:none;appearance:none;background:color-mix(in srgb,var(--color-fg-tertiary) 22%,#0000);border-radius:var(--radius-sm);height:6px;margin:var(--space-2) 0;outline:none;width:100%}.date-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--color-accent-500);border:2px solid #fff;border-radius:50%;box-shadow:var(--shadow-subtle);cursor:pointer;height:18px;width:18px}.date-slider::-moz-range-thumb{background:var(--color-accent-500);border:2px solid #fff;border-radius:50%;box-shadow:var(--shadow-subtle);cursor:pointer;height:18px;width:18px}.date-range{color:var(--color-fg-tertiary);display:flex;font-size:var(--font-size-caption);justify-content:space-between;margin-top:var(--space-1)}.layers-panel-content::-webkit-scrollbar{width:6px}.layers-panel-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:var(--radius-sm)}.layers-panel-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:var(--radius-sm)}.layers-panel-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width:768px){.custom-zoom-controls{bottom:var(--space-7);padding:var(--space-1);right:var(--space-2)}.zoom-button{font-size:18px;height:40px;width:40px}.map-tools-container{padding:var(--space-1);right:var(--space-2);top:var(--space-7)}.map-tool-button{height:40px;width:40px}.station-popup{max-width:280px;min-width:200px}.popup-header{padding:var(--space-2) var(--space-3)}.popup-title{font-size:var(--font-size-caption)}.popup-details{padding:var(--space-3) var(--space-3)}.popup-field{gap:var(--space-2);margin-bottom:var(--space-2)}.popup-label{min-width:65px}.popup-label,.popup-value{font-size:var(--font-size-caption)}.map-top-right-stack{right:63px;top:var(--space-7);width:260px}.layers-panel-header{padding:var(--space-3) var(--space-4)}.layers-panel-header h3{font-size:var(--font-size-body-emphasized)}.layers-panel-content{max-height:calc(100vh - 160px);padding:var(--space-3) var(--space-4)}.layer-group h4{font-size:var(--font-size-caption)}.layer-name{font-size:var(--font-size-body)}.empty-layers-message{padding:var(--space-6) var(--space-4)}.empty-layers-message p{font-size:var(--font-size-body)}.checkmark{height:16px;margin-right:var(--space-3);width:16px}.date-label{font-size:var(--font-size-body)}.date-slider{height:5px}.date-slider::-webkit-slider-thumb{height:16px;width:16px}.date-slider::-moz-range-thumb{height:16px;width:16px}.date-range{font-size:var(--font-size-caption)}}.bottom-bar-value{font-feature-settings:"tnum";color:var(--color-fg-primary);font-size:var(--font-size-body);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium)}.bottom-scale-bar{align-items:center;display:flex;gap:var(--space-2)}.bottom-scale-line{background:#fff;border:2px solid #333;border-top:none;height:6px;min-width:50px;position:relative}.bottom-scale-tick{background:#333;height:10px;position:absolute;top:-2px;width:2px}.bottom-scale-tick-left{left:-2px}.bottom-scale-tick-right{right:-2px}.bottom-scale-label{color:var(--color-fg-primary);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);white-space:nowrap}@media (max-width:768px){.map-bottom-bar{bottom:var(--space-2);gap:var(--space-4);left:var(--space-2);padding:var(--space-2) var(--space-3)}.bottom-bar-section:not(:last-child):after{height:16px;right:calc(var(--space-2)*-1)}.bottom-bar-value{font-size:var(--font-size-caption)}.bottom-scale-line{height:5px}.bottom-scale-tick{height:8px}.bottom-scale-label{font-size:var(--font-size-caption)}}.map-processing-status{background:var(--color-accent-500);border-radius:var(--radius-lg);bottom:var(--space-7);box-shadow:var(--shadow-elevated),0 4px 8px #0000001a;color:#fff;max-width:440px;min-width:400px;overflow:hidden;position:absolute;right:72px;z-index:10001}@media (prefers-reduced-motion:no-preference){.map-processing-status{animation:slideInFromRight var(--duration-slow) var(--ease-out) forwards}.map-processing-status.closing{animation:slideOutToRight var(--duration-base) var(--ease-out) forwards}}.map-processing-close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:var(--font-weight-semibold);height:32px;justify-content:center;line-height:1;position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);transition:all .2s ease;width:32px;z-index:10}.map-processing-close-btn:hover{background:#ffffff4d;transform:translateY(-50%) scale(1.1)}.map-processing-close-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.map-processing-content{align-items:center;display:flex;gap:var(--space-2);padding:var(--space-3) 50px var(--space-3) var(--space-4)}.map-processing-icon{flex-shrink:0}.map-processing-spinner{border:3px solid #fff;border-left-color:#0000;border-radius:50%;height:28px;width:28px}@media (prefers-reduced-motion:no-preference){.map-processing-spinner{animation:spin 1s var(--ease-standard) infinite}}.map-processing-text{flex:1 1;min-width:0}.map-processing-label{color:#fff;display:block;font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-medium);line-height:var(--line-height-title)}.map-processing-time{font-feature-settings:"tnum";background:#ffffff26;border-radius:var(--radius-md);display:flex;flex-direction:column;font-variant-numeric:tabular-nums;gap:0;min-width:100px;padding:var(--space-2) var(--space-3)}.map-time-remaining-container{align-items:center;display:flex;gap:0;justify-content:center}.map-time-value{font-feature-settings:"tnum";color:#fff;font-size:var(--font-size-subhead);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);text-align:center}.map-time-value.remaining{color:#fff}.map-processing-progress{background:#fff3;height:3px;overflow:hidden;position:relative}.map-processing-progress-bar{background:var(--color-semantic-success);height:100%;position:relative;transition:width .3s ease-out}.map-processing-progress-bar:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOutToRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@media (max-width:1200px){.map-processing-status{min-width:320px}}@media (max-width:768px){.map-processing-status{bottom:var(--space-7);min-width:280px;right:60px}.map-processing-content{gap:var(--space-2);padding:var(--space-2) var(--space-3)}.map-processing-label{font-size:var(--font-size-body)}.map-processing-time{min-width:90px;padding:var(--space-2) var(--space-3)}.map-time-value{font-size:var(--font-size-body)}}.graph-overlay{align-items:flex-start;display:flex;flex-shrink:0;height:100%;justify-content:center;width:100%;z-index:1000}@media (prefers-reduced-motion:no-preference){.graph-overlay{animation:slideInRight var(--duration-slow) var(--ease-out)}}.graph-container{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);display:flex;flex-direction:column;height:auto;max-height:90vh;min-height:200px;overflow:hidden;width:100%}.graph-header{align-items:center;background:var(--color-bg-panel);border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);color:var(--color-fg-primary);display:flex;flex-shrink:0;justify-content:space-between;padding:var(--space-2) var(--space-3)}.graph-info{flex:1 1;min-width:0}.graph-title-row{align-items:center;display:flex;gap:var(--space-1);margin-bottom:2px;min-width:0}.graph-info h3{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-subtitle{display:block;font-size:var(--font-size-caption);font-weight:var(--font-weight-regular);opacity:.9}.graph-export-buttons{margin-left:auto;margin-right:var(--space-2)}.graph-export-btn,.graph-export-buttons{align-items:center;display:flex;flex-shrink:0;gap:var(--space-1)}.graph-export-btn{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-fg-secondary);cursor:pointer;font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);line-height:1;min-height:32px;padding:var(--space-1) var(--space-2);transition:all .2s ease}.graph-export-btn:hover{background:var(--color-accent-50);color:var(--color-accent-700)}.graph-export-btn:active{background:var(--color-accent-100);color:var(--color-accent-700);transform:scale(.95)}.graph-export-btn:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.graph-export-btn svg{flex-shrink:0}.graph-export-btn-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-chrome)}.graph-fullscreen-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-fg-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;height:32px;justify-content:center;margin-right:var(--space-1);min-height:32px;min-width:32px;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard);width:32px}.graph-fullscreen-btn svg{flex-shrink:0}.graph-fullscreen-btn:hover{background:var(--color-accent-50);color:var(--color-accent-700)}.graph-fullscreen-btn:active{background:var(--color-accent-100);color:var(--color-accent-700);transform:scale(.95)}.graph-fullscreen-btn:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.graph-close-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--color-fg-secondary);cursor:pointer;display:flex;flex-shrink:0;font-size:20px;font-weight:var(--font-weight-regular);height:32px;justify-content:center;margin-left:var(--space-3);transition:all .2s ease;width:32px}.graph-close-btn:hover{background:var(--color-accent-50);color:var(--color-accent-700);transform:rotate(90deg)}.graph-close-btn:active{transform:rotate(90deg) scale(.95)}.graph-close-btn:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.graph-body{display:flex;flex:1 0 auto;flex-direction:column;height:300px;overflow:hidden;padding:var(--space-2);position:relative}.graph-instructions{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#ffffffe6;border-radius:var(--radius-sm);bottom:var(--space-2);box-shadow:var(--shadow-subtle);opacity:0;padding:var(--space-1) var(--space-2);pointer-events:none;position:absolute;right:var(--space-2);transition:opacity .15s ease;z-index:5}.graph-body:hover .graph-instructions{opacity:1}.graph-instruction-text{color:var(--color-fg-tertiary);white-space:nowrap}.graph-instruction-text,.graph-reset-btn{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium)}.graph-reset-btn{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:var(--color-accent-500);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-subtle);color:#fff;cursor:pointer;min-height:32px;padding:var(--space-1) var(--space-2);position:absolute;right:var(--space-2);top:var(--space-2);transition:transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard);z-index:10}.graph-reset-btn:hover{background:var(--color-accent-700);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.graph-reset-btn:active{box-shadow:var(--shadow-subtle);transform:scale(.97)}.graph-reset-btn:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.graph-overlay--fullscreen,.graph-overlay--fullscreen .graph-container{height:100%;max-height:none;min-height:0;width:100%}.graph-overlay--fullscreen .graph-container{background:#0000;border-radius:0;box-shadow:none}.graph-overlay--fullscreen .graph-body{flex:1 1 auto;height:auto;min-height:0;padding:var(--space-3)}@media (prefers-reduced-motion:no-preference){.graph-overlay--fullscreen{animation:none}}.graph-no-data{color:var(--color-fg-tertiary);padding:var(--space-5);text-align:center}.graph-no-data p{font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-medium);margin:0}@media (max-width:768px){.graph-overlay{width:100%}.graph-container{max-height:80vh;min-height:180px}.graph-header{padding:var(--space-2) var(--space-3)}.graph-info h3{font-size:var(--font-size-body)}.graph-subtitle{font-size:var(--font-size-caption)}.graph-body{height:280px;padding:var(--space-2)}.graph-close-btn{font-size:18px;height:32px;margin-left:var(--space-2);width:32px}.graph-export-btn{padding:var(--space-1) var(--space-1)}.graph-export-btn-label,.graph-reset-btn{font-size:var(--font-size-caption)}.graph-reset-btn{padding:var(--space-1) var(--space-2)}.graph-instruction-text{font-size:var(--font-size-caption)}}@media (max-width:480px){.graph-overlay{height:auto;width:100%}.graph-container{max-height:70vh;min-height:150px}.graph-header{padding:var(--space-2) var(--space-2)}.graph-info h3,.graph-subtitle{font-size:var(--font-size-caption)}.graph-body{height:220px;padding:var(--space-1)}.graph-export-btn-label{display:none}.graph-export-btn,.graph-reset-btn{padding:var(--space-1) var(--space-1)}.graph-reset-btn{font-size:var(--font-size-caption)}.graph-instructions{display:none}}.station-chart-wrapper{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow-x:hidden;overflow-y:auto;padding:0;width:100%}.station-chart-wrapper .graph-overlay{height:auto!important;margin:0!important;padding:0!important;width:100%!important}.station-chart-wrapper .graph-container{height:auto!important;margin:0!important;max-height:none!important;width:100%!important}.station-chart-wrapper .graph-body{max-height:none!important;padding:var(--space-4)!important;width:100%!important}.station-chart-wrapper::-webkit-scrollbar{width:8px}.station-chart-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:var(--radius-sm)}.station-chart-wrapper::-webkit-scrollbar-thumb{background:#888;border-radius:var(--radius-sm)}.station-chart-wrapper::-webkit-scrollbar-thumb:hover{background:#555}.station-chart .graph-header{background:var(--color-bg-panel);border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);color:var(--color-fg-primary)}.subbasin-charts-stack{display:flex;flex-direction:column;gap:var(--space-5);height:auto;max-height:none;overflow:visible;padding:0 0 var(--space-5) 0;width:100%}.subbasin-charts-stack>*{flex-shrink:0;margin:0;width:100%}.subbasin-charts-stack .graph-overlay{height:auto!important;margin:0!important;padding:0!important;width:100%!important}.subbasin-charts-stack .graph-container{height:auto!important;margin:0!important;max-height:none!important;width:100%!important}.subbasin-charts-stack .graph-body{max-height:none!important;padding:var(--space-4)!important;width:100%!important}.subbasin-charts-stack::-webkit-scrollbar{width:8px}.subbasin-charts-stack::-webkit-scrollbar-track{background:#f1f1f1;border-radius:var(--radius-sm)}.subbasin-charts-stack::-webkit-scrollbar-thumb{background:#888;border-radius:var(--radius-sm)}.subbasin-charts-stack::-webkit-scrollbar-thumb:hover{background:#555}.point-charts-stack{display:flex;flex-direction:column;gap:var(--space-5);height:100%;overflow-x:hidden;overflow-y:auto;padding:0 0 var(--space-5) 0;width:100%}.point-charts-stack>*{flex-shrink:0;margin:0;width:100%}.point-charts-stack .graph-overlay{height:auto!important;margin:0!important;padding:0!important;width:100%!important}.point-charts-stack .graph-container{height:auto!important}.point-charts-stack .graph-body,.point-charts-stack .graph-container{margin:0!important;max-height:none!important;width:100%!important}.point-charts-toggle-wrapper{display:flex;flex-direction:column;gap:var(--space-4)}.point-charts-progress-bar-wrapper{align-items:center;background:var(--color-accent-50);border:1px dashed var(--color-accent-500);border-radius:var(--radius-md);color:var(--color-accent-700);display:flex;gap:var(--space-3);margin:0 0 var(--space-3) 0;padding:var(--space-4) var(--space-4)}.point-charts-processing-spinner{border-bottom-color:#0000;border-radius:50%;border-right-color:#0000;border-top-color:#0000;border:3px solid var(--color-accent-500);border-left:3px solid #0000;height:18px;min-width:18px;width:18px}@media (prefers-reduced-motion:no-preference){.point-charts-processing-spinner{animation:pointProcessingSpin .8s var(--ease-standard) infinite}}.point-charts-progress-info{display:flex;flex:1 1;flex-direction:column;gap:var(--space-1)}.point-charts-progress-label{color:var(--color-accent-700);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold)}.point-charts-progress-bar{background:var(--color-accent-100);border-radius:var(--radius-sm);height:6px;overflow:hidden;width:100%}.point-charts-progress-bar-fill{background:var(--color-accent-500);border-radius:var(--radius-sm);height:100%;transition:width .4s ease}@keyframes pointProcessingSpin{to{transform:rotate(1turn)}}.point-charts-toggle{align-self:flex-start;background:var(--color-accent-500);border:1px solid var(--color-accent-500);border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-semibold);min-height:44px;padding:var(--space-2) var(--space-4);transition:transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),opacity var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard)}.point-charts-toggle:hover{background:var(--color-accent-700);border-color:var(--color-accent-700);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.point-charts-toggle:active{box-shadow:var(--shadow-subtle);opacity:.9;transform:scale(.97)}.point-charts-toggle:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.point-charts-stack::-webkit-scrollbar{width:8px}.point-charts-stack::-webkit-scrollbar-track{background:#f1f1f1;border-radius:var(--radius-sm)}.point-charts-stack::-webkit-scrollbar-thumb{background:#888;border-radius:var(--radius-sm)}.point-charts-stack::-webkit-scrollbar-thumb:hover{background:#555}.water-balance-pie-chart{background:var(--color-bg-panel);border:1px solid #dee2e6;box-shadow:var(--shadow-raised);overflow:hidden;position:relative;transition:all .3s ease}.water-balance-pie-chart:hover{box-shadow:var(--shadow-elevated);transform:translateY(-2px)}.water-balance-pie-chart h3{color:var(--color-semantic-success)}.water-balance-pie-chart .js-plotly-plot{border-radius:var(--radius-md);overflow:hidden}.plotly .hovertext{font-feature-settings:"tnum";-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2!important;border:1px solid #0000001a!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-elevated)!important;font-size:var(--font-size-caption)!important;font-variant-numeric:tabular-nums}.water-balance-pie-chart .summary-stats{background:var(--color-bg-panel);border:1px solid #e9ecef;border-radius:var(--radius-md);box-shadow:var(--shadow-subtle);margin-bottom:var(--space-5);padding:var(--space-4)}.water-balance-pie-chart .stat-item{border-radius:var(--radius-sm);padding:var(--space-2);text-align:center;transition:all .2s ease}.water-balance-pie-chart .stat-item:hover{background:#0000000d;transform:scale(1.05)}@media (max-width:768px){.water-balance-pie-chart{height:450px;padding:var(--space-4)}.water-balance-pie-chart h3{font-size:var(--font-size-title-sm)}.water-balance-pie-chart .summary-stats{flex-direction:column;gap:var(--space-2)}.water-balance-pie-chart .stat-item{align-items:center;display:flex;justify-content:space-between;text-align:left}}@media (max-width:480px){.water-balance-pie-chart{height:400px;padding:var(--space-3)}.water-balance-pie-chart .summary-stats{font-size:var(--font-size-caption);padding:var(--space-3)}}.pie-hover-tooltip{font-feature-settings:"tnum";animation:pie-hover-tooltip-in var(--duration-fast) var(--ease-out);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffff5;border:1px solid #0f172a14;border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);color:var(--color-fg-secondary);font-size:var(--font-size-caption);font-variant-numeric:tabular-nums;line-height:var(--line-height-body);max-width:min(260px,90vw);padding:var(--space-2) var(--space-3);pointer-events:none;position:fixed;transform-origin:top left;z-index:9600}.pie-hover-tooltip__title{color:var(--color-fg-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-title);margin-bottom:var(--space-1)}.pie-hover-tooltip__rows{display:flex;flex-direction:column;gap:2px}.pie-hover-tooltip__row{display:flex;gap:var(--space-4);justify-content:space-between}.pie-hover-tooltip__row-label{color:var(--color-fg-tertiary)}.pie-hover-tooltip__row-value{color:var(--color-fg-primary);font-weight:var(--font-weight-medium)}.pie-hover-tooltip__row-value sup{font-size:.7em}.pie-hover-tooltip__parent{border-top:1px solid #0f172a14;color:var(--color-fg-tertiary);display:flex;gap:var(--space-4);justify-content:space-between;margin-top:var(--space-2);padding-top:var(--space-2)}.pie-hover-tooltip__parent-name{font-weight:var(--font-weight-medium)}.pie-hover-tooltip__root-info{color:var(--color-fg-secondary)}@keyframes pie-hover-tooltip-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.pie-hover-tooltip{animation:pie-hover-tooltip-fade var(--duration-fast) var(--ease-out)}@keyframes pie-hover-tooltip-fade{0%{opacity:0}to{opacity:1}}}@media (hover:none){.pie-hover-tooltip{display:none}}.water-pie-empty{align-items:center;background:#fff;border-radius:var(--radius-md);box-sizing:border-box;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:250px;padding:var(--space-5);text-align:center;width:100%}.water-pie-empty-title{color:var(--color-fg-secondary);font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.water-pie-empty-sub{color:var(--color-fg-disabled);font-size:var(--font-size-body);line-height:var(--line-height-body);max-width:260px}.pie-chart-overlay{background:#fff;border-radius:var(--radius-md);box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;width:100%}.pie-chart-overlay--fullscreen{border-radius:0}.pie-chart-header{align-items:center;border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);display:flex;flex-shrink:0;gap:var(--space-2);justify-content:space-between;padding:var(--space-2) var(--space-3)}.pie-chart-info{flex:1 1 auto;min-width:0}.pie-chart-title-row{align-items:center;display:flex;gap:var(--space-1);min-width:0}.pie-chart-info h3{color:var(--color-fg-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pie-chart-actions{align-items:center;display:flex;flex-shrink:0;gap:var(--space-1)}.pie-chart-body{flex:1 1 auto;min-height:0;position:relative}.pie-chart-subtitle{color:var(--color-fg-tertiary);font-size:12px;font-size:var(--font-size-caption,12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pie-chart-plot{height:100%;width:100%}.pie-chart-plot--refreshing{opacity:.45;pointer-events:none;transition:opacity .15s ease}.pie-chart-spinner{animation:pie-chart-spin .8s linear infinite;border:3px solid color-mix(in srgb,var(--color-fg-tertiary) 25%,#0000);border-radius:50%;border-top-color:var(--color-fg-secondary);height:28px;width:28px}.pie-chart-spinner--overlay{left:50%;margin:-14px 0 0 -14px;position:absolute;top:50%}@keyframes pie-chart-spin{to{transform:rotate(1turn)}}.pie-chart-hint{bottom:var(--space-1);color:var(--color-fg-disabled);font-size:11px;font-size:var(--font-size-caption,11px);left:0;pointer-events:none;position:absolute;right:0;text-align:center}.pie-chart-retry-btn{background:#fff;border:1px solid color-mix(in srgb,var(--color-fg-tertiary) 35%,#0000);border-radius:var(--radius-md);color:var(--color-fg-secondary);cursor:pointer;font-size:var(--font-size-body);margin-top:var(--space-3);padding:var(--space-1) var(--space-4)}.pie-chart-retry-btn:hover{background:color-mix(in srgb,var(--color-fg-tertiary) 8%,#fff)}*,:after,:before{box-sizing:border-box}.geoportal-container,body.geoportal-active{height:100vh;overflow:hidden}.geoportal-container{background:#0000;box-sizing:border-box;display:flex;flex-direction:row;gap:0;padding:0;position:relative;width:100%}.geoportal-container.has-chart{gap:var(--space-3)}.map-wrapper{display:flex;height:100vh;position:relative;transition:width var(--duration-base) var(--ease-emphasized);width:100%}.geoportal-container.has-chart>.map-wrapper{flex-shrink:0;width:60%}.charts-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;height:100vh;overflow:hidden;padding:var(--gutter);position:relative;transition:width var(--duration-base) var(--ease-emphasized);width:calc(40% - var(--space-3));z-index:1500}.geoportal-container.has-chart.expanded>.map-wrapper{width:40%}.geoportal-container.has-chart.expanded>.charts-panel{width:calc(60% - var(--space-3))}.geoportal-container.animating>.charts-panel,.geoportal-container.animating>.map-wrapper{will-change:width}.geoportal-container.animating .subbasin-top-row{will-change:height}@media (prefers-reduced-motion:reduce){.charts-panel,.map-wrapper,.subbasin-top-row{transition:none}}.charts-panel-toolbar{align-items:center;display:flex;flex-shrink:0;gap:var(--space-2);margin-bottom:var(--space-2);padding:var(--space-2) 0}.charts-panel-toolbar-btn{align-items:center;background:var(--color-accent-500);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-raised);color:var(--color-bg-panel);cursor:pointer;display:flex;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);gap:var(--space-3);min-height:44px;padding:var(--space-3) var(--space-3);transition:transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard);white-space:nowrap}.charts-panel-toolbar-btn:hover{box-shadow:var(--shadow-elevated);transform:translateY(-1px)}.charts-panel-toolbar-btn:active{box-shadow:var(--shadow-subtle);transform:scale(.97)}.charts-panel-toolbar-btn:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.charts-panel-toolbar-btn svg{flex-shrink:0}.charts-panel-toolbar-close{align-items:center;background:#ffffffe6;border:none;border-radius:50%;box-shadow:var(--shadow-raised);color:var(--color-fg-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:18px;font-weight:var(--font-weight-semibold);height:32px;justify-content:center;margin-left:auto;transition:all .2s ease;width:32px}.charts-panel-toolbar-close:hover{background:var(--color-semantic-danger);color:#fff;transform:scale(1.1)}.charts-panel-toolbar-close:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.selection-summary{background:var(--color-bg-panel);border:1px solid color-mix(in srgb,var(--color-fg-tertiary) 10%,#0000);border-radius:var(--radius-md);box-shadow:var(--shadow-raised);margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);width:100%}@media (prefers-reduced-motion:no-preference){.selection-summary{animation:slideInRight var(--duration-slow) var(--ease-out)}}.selection-summary-header{color:var(--color-fg-primary);font-size:var(--font-size-body-emphasized);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-chrome);margin-bottom:var(--space-2);text-transform:uppercase}.selection-summary table{border-collapse:collapse;width:100%}.selection-summary-label,.selection-summary-value{font-size:var(--font-size-body);line-height:var(--line-height-body);padding:var(--space-1) var(--space-2)}.selection-summary-label{color:var(--color-fg-secondary);font-weight:var(--font-weight-semibold);width:40%}.selection-summary-value{font-feature-settings:"tnum";color:var(--color-fg-primary);font-variant-numeric:tabular-nums;text-align:right}.selection-summary tbody tr:not(:last-child) td{border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 8%,#0000)}.subbasin-top-row{background:var(--color-bg-canvas);border-bottom:1px solid color-mix(in srgb,var(--color-fg-tertiary) 12%,#0000);box-sizing:border-box;display:flex;flex:0 0 auto;flex-direction:row;height:clamp(240px,32vh,340px);overflow:hidden;padding-top:var(--space-3);transition:height var(--duration-base) var(--ease-emphasized);width:100%}.geoportal-container.expanded .subbasin-top-row{height:clamp(260px,33vh,380px)}.subbasin-info-col{box-sizing:border-box;display:flex;flex:0 0 35%;flex-direction:column;justify-content:center;max-width:35%;padding:var(--space-2) var(--space-3)}.subbasin-info-col .selection-summary{border-radius:var(--radius-md);box-shadow:var(--shadow-raised);margin-bottom:0;padding:var(--space-2) var(--space-3)}.subbasin-info-col .selection-summary-header{font-size:var(--font-size-caption);margin-bottom:var(--space-1)}.subbasin-info-col .selection-summary-label,.subbasin-info-col .selection-summary-value{font-size:var(--font-size-caption);line-height:var(--line-height-title);padding:var(--space-1) var(--space-2)}.subbasin-pie-col{box-sizing:border-box;flex:1 1 65%;height:100%;min-width:0;overflow:hidden;padding:var(--space-2)}.subbasin-loader,.subbasin-pie-col{align-items:center;display:flex;justify-content:center}.subbasin-loader{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fffffff2;inset:0;position:absolute;z-index:1000}@media (prefers-reduced-motion:no-preference){.subbasin-loader{animation:slideInRight var(--duration-slow) var(--ease-out)}}.subbasin-loader.no-close .loader-content{padding-right:var(--space-5)}.loader-content{align-items:center;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5);padding-right:var(--space-7);position:relative}.loader-content-no-close{padding:var(--space-5)!important}.loader-close-btn{align-items:center;background:#ffffffe6;border:none;border-radius:50%;color:var(--color-fg-primary);cursor:pointer;display:flex;font-size:20px;font-weight:var(--font-weight-semibold);height:32px;justify-content:center;line-height:1;position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);transition:all .2s ease;width:32px;z-index:10}.loader-close-btn:hover{background:var(--color-semantic-danger);color:#fff;transform:translateY(-50%) scale(1.1)}.loader-close-btn:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}.loader-spinner{animation:spin 1s var(--ease-standard) infinite;border-bottom-color:#0000;border-right-color:#0000;border-top-color:#0000;border:4px solid var(--color-accent-500);border-left:4px solid #0000;border-radius:50%;height:50px;width:50px}.loader-text{color:var(--color-accent-700);font-size:var(--font-size-title-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-title);text-align:center}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(4px)}to{opacity:1;transform:translateX(0)}}.subbasin-layout-container{box-sizing:border-box;display:flex;flex-direction:column;height:100%;max-height:100%;overflow:hidden;position:relative;width:100%}.parquet-charts-half{background:#fff;box-sizing:border-box;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:var(--space-3) var(--space-4);width:100%}.parquet-charts-half::-webkit-scrollbar{width:8px}.parquet-charts-half::-webkit-scrollbar-track{background:#f1f1f1;border-radius:var(--radius-sm)}.parquet-charts-half::-webkit-scrollbar-thumb{background:#888;border-radius:var(--radius-sm)}.parquet-charts-half::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width:1200px){.subbasin-top-row{flex-direction:column;height:clamp(320px,40vh,460px);max-height:none}.geoportal-container.expanded .subbasin-top-row{height:clamp(440px,55vh,620px)}.subbasin-info-col{flex:0 0 auto;max-width:100%}.subbasin-pie-col{flex:1 1 auto;height:auto;min-height:200px;min-width:0;min-width:auto;width:100%}}@media (max-width:768px){.geoportal-container{height:100vh;padding:0}.charts-panel,.geoportal-container.has-chart>.map-wrapper{height:50vh;width:100%}.charts-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;bottom:0;left:0;padding:var(--gutter);position:fixed;right:0;top:auto;transition:height var(--duration-base) var(--ease-emphasized)}.charts-panel-toolbar-btn{font-size:var(--font-size-caption);padding:var(--space-2) var(--space-3)}.subbasin-top-row{flex-direction:column;height:auto;max-height:50%;min-height:260px;padding-top:var(--space-3)}.subbasin-info-col{flex:0 0 auto;max-width:100%}.subbasin-pie-col{flex:1 1 auto;height:auto;min-height:220px;min-width:0;min-width:auto;width:100%}.geoportal-container.has-chart.expanded>.map-wrapper{height:40vh}.geoportal-container.has-chart.expanded>.charts-panel{height:60vh}}.no-graph-message{align-items:center;color:var(--color-fg-tertiary);display:flex;flex-direction:column;height:100%;justify-content:center;padding:var(--space-7) var(--space-5);text-align:center}.no-graph-icon{color:var(--color-fg-disabled);margin-bottom:var(--space-5);opacity:.6}.no-graph-icon svg{stroke:currentColor}.no-graph-text{color:var(--color-fg-primary);font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-title);line-height:var(--line-height-title);margin-bottom:var(--space-3)}.no-graph-subtext{color:var(--color-fg-tertiary);font-size:var(--font-size-body-emphasized);line-height:var(--line-height-long);max-width:400px}.button-tooltip{animation:button-tooltip-fade-in .12s ease-out;background:#1a1a1a;border-radius:6px;border-radius:var(--radius-sm,6px);box-shadow:0 8px 24px #00000040;box-shadow:var(--shadow-elevated,0 8px 24px #00000040);color:#fff;font-size:12.5px;line-height:1.35;max-width:220px;padding:6px 10px;pointer-events:none;position:fixed;white-space:nowrap;z-index:2100}@keyframes button-tooltip-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}
/*# sourceMappingURL=main.0709c1a5.css.map*/