:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#11161d;--panel:#171e28f0;--panel-solid:#171e28;--panel-border:#94aac82e;--panel-shadow:0 16px 40px #0000008c;--text:#e8eef7;--text-muted:#9dabbe;--text-faint:#6b7a8f;--input-bg:#0a0e14bf;--input-border:#94aac847;--input-focus:#3987e5;--accent:#3987e5;--accent-text:#fff;--selection:#ffd23f;--ui-inset:16px;--ui-gap:10px;--ui-pad:14px;--ui-radius:12px;--ui-panel-w:336px;--ui-search-w:340px;--ui-font:13px;--ui-font-sm:12px;--ui-font-xs:11px;--ui-logo-w:168px;--ui-top-reserved:84px;--ui-bottom-reserved:116px}@media (width<=1279px){:root{--ui-inset:12px;--ui-gap:8px;--ui-pad:11px;--ui-panel-w:300px;--ui-search-w:290px;--ui-font:12px;--ui-font-sm:11px;--ui-logo-w:140px;--ui-top-reserved:72px;--ui-bottom-reserved:104px}}@media (width<=860px){:root{--ui-panel-w:calc(100vw - (2 * var(--ui-inset)));--ui-search-w:calc(100vw - (2 * var(--ui-inset)))}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--ui-font);color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased;line-height:1.45}.app{width:100%;height:100%;position:relative;overflow:hidden}.map{position:absolute;inset:0}.loading-status{bottom:calc(var(--ui-inset) + 28px);z-index:3;pointer-events:none;position:absolute;left:50%;transform:translate(-50%)}.loading-indicator{white-space:nowrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.loading-spinner{border:2px solid var(--panel-border);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite loading-spin;display:inline-block}.popup-loading .loading-spinner{margin-right:8px}.debug-panel.panel{width:var(--ui-search-w);border-color:var(--accent);flex-direction:column;max-height:50vh;display:flex}.debug-expand.panel{color:var(--text);border-color:var(--accent);cursor:pointer;padding:8px 12px}.debug-viewport{font-family:monospace;font-size:var(--ui-font-xs);white-space:pre-wrap;font-variant-numeric:tabular-nums}.debug-traffic-heading{justify-content:space-between;align-items:center;display:flex}.debug-traffic-heading h3{font-size:var(--ui-font-sm);margin:0}.debug-traffic{border-collapse:collapse;width:100%;font-size:var(--ui-font-sm);font-variant-numeric:tabular-nums}.debug-traffic th,.debug-traffic td{border-bottom:1px solid var(--panel-border);text-align:right;vertical-align:top;padding:7px 0}.debug-traffic th:first-child{text-align:left}.debug-traffic thead{color:var(--text-muted);font-size:var(--ui-font-xs)}.debug-traffic small{color:var(--text-muted);font-size:var(--ui-font-xs);display:block}.debug-note{color:var(--text-muted);font-size:var(--ui-font-xs);margin:0}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation:none}}.control-stack{z-index:2;gap:var(--ui-gap);pointer-events:none;max-height:calc(100% - (2 * var(--ui-inset)));flex-direction:column;display:flex;position:absolute}.control-stack--top-left{top:var(--ui-inset);left:var(--ui-inset);align-items:flex-start}.control-stack--top-right{top:var(--ui-inset);right:var(--ui-inset);align-items:flex-end}.control-stack--bottom-left{bottom:var(--ui-inset);left:var(--ui-inset);align-items:flex-start}.control{pointer-events:auto;min-height:0;display:flex}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--ui-radius);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text)}.logo-card{flex-direction:column;gap:2px;padding:10px 14px;display:flex}.logo-card img{width:var(--ui-logo-w);height:auto;display:block}.logo-card .tagline{text-align:right;font-size:var(--ui-font-xs);color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase}.layers-panel{width:var(--ui-panel-w);min-height:0;max-height:calc(100vh - var(--ui-top-reserved) - var(--ui-bottom-reserved) - (2 * var(--ui-inset)));flex-direction:column;display:flex}.panel-header{padding:var(--ui-pad);border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;gap:8px;display:flex}.panel-title{font-size:var(--ui-font);margin:0;font-weight:600}.panel-header-actions{flex:none;align-items:center;gap:8px;display:flex}.panel-header-actions .panel-toggle{width:28px;height:28px;padding:0;font-size:20px;line-height:1}.panel-body{padding:var(--ui-pad);flex-direction:column;gap:14px;min-height:0;display:flex;overflow-y:auto}.panel-body[hidden]{display:none}.field{flex-direction:column;gap:5px;display:flex}.field-label{font-size:var(--ui-font-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}select,input[type=text],input[type=search]{width:100%;font:inherit;font-size:var(--ui-font-sm);color:var(--text);background:var(--input-bg);border:1px solid var(--input-border);border-radius:7px;outline:none;padding:7px 9px}select:focus,input:focus{border-color:var(--input-focus)}select:disabled{opacity:.45}option{background:var(--panel-solid);color:var(--text)}input[type=range]{width:100%;accent-color:var(--accent)}.checks{flex-direction:column;gap:4px;display:flex}.check{font-size:var(--ui-font-sm);cursor:pointer;align-items:center;gap:8px;padding:2px 0;display:flex}.check input{accent-color:var(--accent);flex:none;margin:0}.check .swatch{border:1px solid #ffffff40;border-radius:3px;flex:none;width:12px;height:12px}.check .count{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:var(--ui-font-xs);margin-left:auto}.range-row{align-items:center;gap:8px;display:flex}.range-value{font-size:var(--ui-font-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.button{font:inherit;font-size:var(--ui-font-sm);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);cursor:pointer;border-radius:7px;padding:6px 11px}.button:hover:not(:disabled){border-color:var(--accent)}.button:disabled{opacity:.4;cursor:default}.filter-actions{flex-direction:column;gap:8px;display:flex}.button-row{gap:8px;display:flex}.button-row .button{flex:1}.summary{padding:var(--ui-pad);border-top:1px solid var(--panel-border);gap:18px;display:flex}.summary[hidden]{display:none}.summary-item{flex-direction:column;gap:1px;display:flex}.summary-value{font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;line-height:1.1}.summary-label{font-size:var(--ui-font-xs);color:var(--text-muted)}.theme-legend{flex-direction:column;gap:3px;display:flex}.legend-row{font-size:var(--ui-font-xs);color:var(--text-muted);align-items:center;gap:7px;display:flex}.legend-swatch{border:1px solid #fff3;border-radius:2px;flex:none;width:14px;height:10px}.search{width:var(--ui-search-w);flex-direction:column;display:flex}.search-input-row{padding:8px}.search-results{border-top:1px solid var(--panel-border);max-height:320px;padding:4px;overflow-y:auto}.search-result{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:6px 9px;display:block}.search-result:hover,.search-result:focus-visible{background:#3987e52e;outline:none}.search-result .primary{font-size:var(--ui-font-sm)}.search-result .secondary{font-size:var(--ui-font-xs);color:var(--text-muted)}.search-empty{font-size:var(--ui-font-sm);color:var(--text-muted);padding:10px}.basemaps{gap:6px;padding:6px;display:flex}.basemap-option{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex-direction:column;align-items:center;gap:3px;width:62px;padding:0;display:flex;overflow:hidden}.basemap-option img{object-fit:cover;background:var(--input-bg);border-radius:7px;width:54px;height:54px;display:block}.basemap-option span{font-size:var(--ui-font-xs);color:var(--text-muted);padding-bottom:3px}.basemap-option[aria-pressed=true]{border-color:var(--accent)}.basemap-option[aria-pressed=true] span{color:var(--text)}.maplibregl-popup-content{background:var(--panel-solid);color:var(--text);border:1px solid var(--panel-border);border-radius:var(--ui-radius);box-shadow:var(--panel-shadow);font-size:var(--ui-font-sm);max-width:300px;padding:0}.maplibregl-popup-tip{border-top-color:var(--panel-solid)!important;border-bottom-color:var(--panel-solid)!important}.maplibregl-popup-close-button{color:var(--text-muted);padding:3px 7px;font-size:17px}.maplibregl-popup-close-button:hover{color:var(--text);background:0 0}.popup-header{border-bottom:1px solid var(--panel-border);padding:11px 13px 9px}.popup-eyebrow{font-size:var(--ui-font-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint)}.popup-title{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.popup-body{max-height:280px;padding:9px 13px 11px;overflow-y:auto}.popup-row{align-items:baseline;gap:10px;padding:2px 0;display:flex}.popup-row dt{color:var(--text-muted);font-size:var(--ui-font-xs);flex:none;width:108px}.popup-row dd{flex:1;min-width:0;margin:0}.popup-loading{color:var(--text-faint);font-size:var(--ui-font-xs);padding:5px 0 0}dl{margin:0}.maplibregl-ctrl-group{background:var(--panel)!important;border:1px solid var(--panel-border)!important;box-shadow:var(--panel-shadow)!important}.maplibregl-ctrl-group button+button{border-top-color:var(--panel-border)!important}.maplibregl-ctrl-group button span{filter:invert()brightness(1.6)}.maplibregl-ctrl-scale{background:var(--panel)!important;border-color:var(--panel-border)!important;color:var(--text-muted)!important;font-size:var(--ui-font-xs)!important}.maplibregl-ctrl-attrib.maplibregl-compact{background:var(--panel)!important}.maplibregl-ctrl-attrib a{color:var(--text-muted)!important}.maplibregl-ctrl-attrib-inner{color:var(--text-muted)}.loading-note{bottom:var(--ui-inset);z-index:2;font-size:var(--ui-font-sm);color:var(--text-muted);padding:6px 13px;position:absolute;left:50%;transform:translate(-50%)}.theme-legend{max-width:15rem;padding:.6rem .75rem}.theme-legend-title{text-transform:uppercase;letter-spacing:.04em;opacity:.7;font-size:.68rem}.theme-legend-subtitle{margin-bottom:.4rem;font-weight:600}.theme-legend-steps{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.theme-legend-steps li{align-items:center;gap:.4rem;font-size:.8rem;display:flex}.theme-legend-outside{border-top:1px solid;border-top-color:color-mix(in srgb, currentColor 20%, transparent);margin-top:.4rem;padding-top:.4rem}.theme-legend-fallback{position:relative}.legend-hint{margin-left:.15rem;display:inline-flex}.legend-hint-mark{border:1px solid var(--input-border);width:14px;height:14px;color:var(--text-muted);font:inherit;cursor:help;background:0 0;border-radius:50%;padding:0;font-size:.62rem;line-height:1}.legend-hint-mark:hover,.legend-hint-mark:focus-visible{color:var(--text);border-color:var(--text-muted)}.legend-hint-text{z-index:5;border:1px solid var(--panel-border);background:var(--panel-solid);box-shadow:var(--panel-shadow);color:var(--text);text-wrap:pretty;opacity:0;visibility:hidden;border-radius:8px;padding:.5rem .6rem;font-size:.72rem;line-height:1.4;transition:opacity .12s;position:absolute;top:calc(100% + 6px);left:0;right:0}.legend-hint:hover .legend-hint-text,.legend-hint-mark:focus+.legend-hint-text{opacity:1;visibility:visible}.theme-legend-note{opacity:.72;margin:.45rem 0 0;font-size:.72rem;line-height:1.35}.popup-theme{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.popup-theme-label{opacity:.7}.popup-chart{margin:0 0 .6rem}.popup-chart figcaption{text-transform:uppercase;letter-spacing:.04em;opacity:.65;margin-bottom:.15rem;font-size:.7rem}.popup-chart svg{display:block;overflow:visible}.popup-chart-line{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.popup-chart-area{fill:currentColor;opacity:.12;stroke:none}.popup-chart-dot{fill:currentColor;stroke:var(--popup-bg,#fff);stroke-width:1.5px}.popup-chart-axis{opacity:.7;font-variant-numeric:tabular-nums;justify-content:space-between;font-size:.7rem;display:flex}.modal-backdrop{z-index:10;padding:var(--ui-inset);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06080c9e;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--ui-radius);box-shadow:var(--panel-shadow);flex-direction:column;width:min(1360px,100%);height:min(780px,100%);min-height:0;display:flex}.modal-header{padding:14px var(--ui-pad);border-bottom:1px solid var(--panel-border);flex:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-title{margin:2px 0 0;font-size:17px;font-weight:600}.modal-body{flex:1;gap:0;min-height:0;display:flex}.modal-side{width:300px;padding:var(--ui-pad);border-right:1px solid var(--panel-border);flex-direction:column;flex:none;gap:12px;display:flex;overflow-y:auto}.modal-record{margin:0}.modal-side-title{font-size:var(--ui-font-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);justify-content:space-between;align-items:baseline;display:flex}.modal-indicators{flex-direction:column;gap:2px;display:flex}.modal-chart{flex-direction:column;flex:1;justify-content:center;align-items:stretch;min-width:0;min-height:0;padding:10px 10px 6px;display:flex}.echart{width:100%}.echart-fill{flex:1;min-height:0}.detail-note,.detail-empty{font-size:var(--ui-font-xs);color:var(--text-muted);margin:0;line-height:1.45}.detail-empty{align-self:center}@media (width<=900px){.modal-body{flex-direction:column}.modal-side{border-right:none;border-bottom:1px solid var(--panel-border);width:auto;max-height:40%}}.popup-hover .maplibregl-popup-content,.popup-hover .maplibregl-popup-tip{pointer-events:none}.popup-hint{font-size:var(--ui-font-xs);color:var(--text-muted);margin-top:8px}.panel-title-select{font-size:var(--ui-font);color:inherit;background:0 0;border:1px solid #0000;border-radius:6px;flex:1;min-width:0;margin:-2px -4px;padding:2px 4px;font-weight:600}.panel-title-select:hover,.panel-title-select:focus-visible{border-color:var(--panel-border)}.modal-trend{border-top:1px solid var(--panel-border);flex:none;margin-top:6px;padding-top:6px}.modal-trend .modal-side-title{margin-bottom:2px}
