:root{--paper: #f6f3eb;--paper-2: #efebde;--paper-3: #e6e0d0;--ink: #121726;--ink-2: #2a2f40;--ink-3: #5b6071;--ink-4: #898d9c;--rule: rgba(18, 23, 38, .1);--rule-strong: rgba(18, 23, 38, .22);--rule-soft: rgba(18, 23, 38, .05);--navy: #0f2942;--navy-2: #1d4267;--navy-tint: rgba(15, 41, 66, .08);--outflow: #cc683a;--outflow-2: #b35828;--outflow-tint: rgba(204, 104, 58, .14);--inflow: #1e6f6f;--inflow-2: #155656;--inflow-tint: rgba(30, 111, 111, .14);--highlight: #f4ecd9;--highlight-2: #eadeba;--land: #efebde;--water: #d4dee2;--county-line: rgba(18, 23, 38, .12);--road: rgba(18, 23, 38, .06);--left-rail-width: 332px;--right-rail-width: 432px}[data-theme=dark]{--paper: #0a0e17;--paper-2: #131826;--paper-3: #1b2031;--ink: #e8e5dc;--ink-2: #c4c1b8;--ink-3: #92929a;--ink-4: #696a73;--rule: rgba(232, 229, 220, .09);--rule-strong: rgba(232, 229, 220, .2);--rule-soft: rgba(232, 229, 220, .04);--navy: #6da1cf;--navy-2: #4c80ad;--navy-tint: rgba(109, 161, 207, .12);--outflow: #e4895a;--outflow-2: #c5703f;--outflow-tint: rgba(228, 137, 90, .16);--inflow: #5aa6a7;--inflow-2: #408687;--inflow-tint: rgba(90, 166, 167, .16);--highlight: #1a1f30;--highlight-2: #232a3d;--land: #161b27;--water: #0e1320;--county-line: rgba(232, 229, 220, .1);--road: rgba(232, 229, 220, .04)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:Inter,system-ui,sans-serif;font-feature-settings:"tnum" 1,"cv11" 1,"ss01" 1;font-size:13.5px;line-height:1.45;color:var(--ink);background:var(--paper);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;padding:0}input{font-family:inherit;color:inherit}ul{list-style:none}a{color:inherit}.tnum{font-variant-numeric:tabular-nums}.eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.eyebrow .eyebrow-suffix{font-weight:500;opacity:.6}.eyebrow-faint{font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-4)}.app{display:grid;grid-template-rows:78px 1fr;height:100vh;width:100vw}.body-grid{display:grid;grid-template-columns:var(--left-rail-width) 1fr var(--right-rail-width);border-top:1px solid var(--rule-strong);min-height:0;overflow:hidden;transition:grid-template-columns .28s ease}@media (max-width: 1280px){.body-grid{grid-template-columns:300px 1fr 400px}}@media (max-width: 1100px){.body-grid{grid-template-columns:280px 1fr 360px}}@media (max-width: 768px){.app{grid-template-rows:auto 1fr}.masthead{display:flex;align-items:center;gap:10px;padding:0 14px;min-height:56px}.masthead>div:empty{display:none}.mast-brand{flex-grow:1;min-width:0}.mast-titles{min-width:0}.mast-logo{height:30px}.mast-title{font-size:13px}.mast-sub,.year-scrub{display:none}.year-select-hidden{display:block;flex-shrink:0;background:var(--paper-2);border:1px solid var(--rule-strong);border-radius:2px;padding:7px 8px;font-size:12px;font-family:inherit;font-weight:600;color:var(--ink)}#theme-toggle{flex-shrink:0}}.body-grid.left-collapsed{grid-template-columns:0px 1fr var(--right-rail-width)}.body-grid.right-collapsed{grid-template-columns:var(--left-rail-width) 1fr 0px}.body-grid.left-collapsed.right-collapsed{grid-template-columns:0px 1fr 0px}.body-grid.no-transition{transition:none!important}.masthead{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:24px;padding:0 22px;background:var(--paper);position:relative}.masthead:after{content:"";position:absolute;left:22px;right:22px;bottom:-1px;height:1px;background:var(--rule)}.mast-brand{display:flex;align-items:center;gap:14px}.mast-logo{height:45px;width:auto;display:block;flex-shrink:0}.mast-logo--dark,[data-theme=dark] .mast-logo--light{display:none}[data-theme=dark] .mast-logo--dark{display:block}.mast-titles{line-height:1.1}.mast-title{font-size:17px;font-weight:600;letter-spacing:-.012em;color:var(--ink)}@media (max-width: 540px){.mast-title span{display:block}}.mast-sub{margin-top:4px;font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.year-scrub{display:flex;align-items:flex-end;gap:14px}.ys-meta{text-align:right;line-height:1}.ys-label{font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-4);margin-bottom:4px}.ys-year{font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums}.ys-track{position:relative;height:30px;width:360px;display:flex;align-items:center;padding-top:6px}.ys-axis{position:absolute;left:0;right:0;top:18px;height:1px;background:var(--rule-strong)}.ys-fill{position:absolute;left:0;top:18px;height:1px;background:var(--navy);transition:width .25s ease}.ys-tick{flex:1;position:relative;height:100%;display:flex;align-items:flex-end;justify-content:center;background:none;border:none;padding:0;cursor:pointer}.ys-tick:after{content:"";width:1px;height:6px;background:var(--rule-strong);transition:background .15s ease,height .15s ease,width .15s ease}.ys-tick:hover:after{background:var(--ink-2);height:9px}.ys-tick.major:after{height:9px}.ys-tick.active:after{background:var(--navy);height:12px;width:2px}.ys-tick-cap{position:absolute;top:0;font-size:9px;font-weight:600;letter-spacing:.06em;color:var(--ink-4);font-variant-numeric:tabular-nums;pointer-events:none}.ys-tick.endcap .ys-tick-cap{display:block}.ys-tick:not(.endcap) .ys-tick-cap{display:none}.year-select-hidden{display:none}.theme-toggle{width:36px;height:36px;border:1px solid var(--rule-strong)!important;border-radius:1px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);transition:background .15s ease,color .15s ease}.theme-toggle:hover{background:var(--highlight);color:var(--ink)}[data-theme=light] .icon-moon,[data-theme=dark] .icon-sun{display:none}.left-rail{border-right:1px solid var(--rule-strong);background:var(--paper);padding:22px 22px 26px;overflow-y:auto;overflow-x:hidden;min-width:0;display:flex;flex-direction:column;gap:22px;min-height:0}.left-rail::-webkit-scrollbar,.right-rail::-webkit-scrollbar{width:8px}.left-rail::-webkit-scrollbar-track,.right-rail::-webkit-scrollbar-track{background:transparent}.left-rail::-webkit-scrollbar-thumb,.right-rail::-webkit-scrollbar-thumb{background:var(--rule-strong);border-radius:0}.left-rail::-webkit-scrollbar-thumb:hover,.right-rail::-webkit-scrollbar-thumb:hover{background:var(--ink-4)}.map-stage{position:relative;background:var(--land);overflow:hidden}.map-stage #map{width:100%;height:100%}.maplibregl-canvas-container{filter:saturate(.85) contrast(.97)}[data-theme=dark] .maplibregl-canvas-container{filter:saturate(.7) contrast(1.1)}.map-overlay{position:absolute;pointer-events:none;z-index:100}.map-overlay.tl{top:18px;left:22px}.map-overlay.tr{top:18px;right:22px}.map-overlay.bl{bottom:54px;left:22px}.map-overlay.br{bottom:34px;right:22px}.map-dataline{background:var(--paper);border:1px solid var(--rule-strong);padding:10px 14px 11px;border-radius:1px;box-shadow:0 2px 6px #0000000a;pointer-events:auto}.dl-label{font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-4);margin-bottom:3px}.dl-value{font-size:22px;font-weight:600;letter-spacing:-.015em;color:var(--ink);font-variant-numeric:tabular-nums lining-nums;line-height:1}.dl-direction{font-size:11px;font-weight:500;color:var(--ink-3);margin-top:6px;display:flex;gap:6px;align-items:center}.dl-direction .arrow{color:var(--outflow);font-weight:700}.map-dataline.inflow .dl-direction .arrow{color:var(--inflow)}.map-zoomer{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rule-strong);border-radius:1px;pointer-events:auto;overflow:hidden;box-shadow:0 2px 6px #0000000a}.map-zoomer button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);border-bottom:1px solid var(--rule);transition:background .15s ease}.map-zoomer button:last-child{border-bottom:0}.map-zoomer button:hover{background:var(--highlight);color:var(--ink)}.map-layer-toolbar{display:flex;background:var(--paper);border:1px solid var(--rule-strong);border-radius:1px;pointer-events:auto;overflow:hidden;box-shadow:0 2px 6px #0000000a}.map-layer-toolbar button{padding:8px 12px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);border-right:1px solid var(--rule);display:flex;align-items:center;gap:6px;transition:background .15s ease}.map-layer-toolbar button:last-child{border-right:0}.map-layer-toolbar button:hover{background:var(--highlight)}.map-layer-toolbar button.active{background:var(--navy);color:var(--paper)}[data-direction=outflow] .map-layer-toolbar button:hover:not(.active){background:var(--outflow-tint)}[data-direction=outflow] .map-layer-toolbar button.active{background:var(--outflow);color:var(--paper)}[data-direction=inflow] .map-layer-toolbar button:hover:not(.active){background:var(--inflow-tint)}[data-direction=inflow] .map-layer-toolbar button.active{background:var(--inflow);color:var(--paper)}.map-flow-filter{background:var(--paper);border:1px solid var(--rule-strong);padding:8px 12px;border-radius:1px;pointer-events:auto;box-shadow:0 2px 6px #0000000a;display:flex;align-items:center;gap:10px}.mf-label{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);white-space:nowrap}input[type=range]{width:100px;accent-color:var(--navy)}[data-direction=outflow] input[type=range]{accent-color:var(--outflow)}[data-direction=inflow] input[type=range]{accent-color:var(--inflow)}.mf-val{font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);min-width:28px}.map-legend{background:var(--paper);border:1px solid var(--rule-strong);padding:10px 14px;border-radius:1px;pointer-events:auto;box-shadow:0 2px 6px #0000000a;min-width:140px;margin-top:8px}.lg-label{font-size:10px;font-weight:600;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}.lg-gradient-bar{width:100%;height:7px;border-radius:3px;margin-bottom:4px}.lg-gradient-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--ink-3)}.panel-toggle{position:absolute;top:50%;transform:translateY(-50%);z-index:100;width:14px;height:44px;background:var(--paper);border:1px solid var(--rule-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-3);transition:background .15s ease,color .15s ease}.panel-toggle:hover{background:var(--paper-2);color:var(--ink)}.panel-toggle--left{left:0;border-left:none;border-radius:0 3px 3px 0}.panel-toggle--right{right:0;border-right:none;border-radius:3px 0 0 3px}.panel-toggle svg{transition:transform .28s ease}.body-grid.left-collapsed .panel-toggle--left svg{transform:scaleX(-1)}.body-grid.right-collapsed .panel-toggle--right svg{transform:scaleX(-1)}.right-rail{border-left:1px solid var(--rule-strong);background:var(--paper);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;min-height:0;min-width:0;position:relative}.right-resize-handle{position:absolute;left:0;top:0;bottom:0;width:5px;cursor:col-resize;z-index:10;transition:background .15s ease}.right-resize-handle:hover,.right-resize-handle.dragging{background:var(--navy);opacity:.25}.sidebar-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:24px;color:var(--ink-3);font-size:12px;gap:14px}.spinner{width:28px;height:28px;border:2px solid var(--rule-strong);border-top-color:var(--navy);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar-wrap{width:140px;height:3px;background:var(--rule);border-radius:1px;overflow:hidden}.progress-bar{height:100%;width:0;background:var(--navy);border-radius:1px;transition:width .3s ease}.map-tooltip{position:fixed;pointer-events:none;z-index:1000;display:none;background:var(--paper);color:var(--ink);border:1px solid var(--rule-strong);border-radius:1px;padding:10px 13px 12px;box-shadow:0 4px 20px #0000001f;min-width:200px;max-width:280px}.ft-route{font-size:12px;font-weight:600;color:var(--ink);line-height:1.3;margin-bottom:5px}.ft-arrow{color:var(--outflow);margin:0 2px}.ft-count{font-size:20px;font-weight:700;color:var(--ink);line-height:1.15;font-variant-numeric:tabular-nums}.ft-unit{font-size:11px;color:var(--ink-3);margin-left:5px}.ft-divider{border:none;border-top:1px solid var(--rule);margin:8px 0 6px}.ft-donuts{display:flex;gap:4px;justify-content:center}.ft-donut-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.ft-donut-label{font-size:10px;color:var(--ink-3);text-align:center;line-height:1.35}.ft-donut-label strong{color:var(--ink);font-weight:600}.map-tooltip--cta{min-width:0;width:max-content;max-width:220px}.ft-cta{font-size:11px;color:var(--ink-3);line-height:1.4}.ft-cta strong{color:var(--ink);font-weight:600}.custom-info-popup .maplibregl-popup-content{background:var(--paper);color:var(--ink);border:1px solid var(--rule-strong);border-radius:1px;padding:11px 14px 13px;box-shadow:0 4px 20px #0000001f;font-family:Inter,sans-serif}.custom-info-popup .maplibregl-popup-tip{border-top-color:var(--rule-strong)}.custom-info-popup .maplibregl-popup-close-button{color:var(--ink-3);font-size:16px;padding:4px 8px}.ci-name{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:3px}.ci-employees{font-size:11px;font-weight:600;color:#b45309;margin-bottom:6px}[data-theme=dark] .ci-employees{color:#fbbf24}.ci-note{font-size:11px;color:var(--ink-3);line-height:1.5}.maplibregl-ctrl-group{border-radius:1px!important;box-shadow:0 2px 6px #0000000f!important;background:var(--paper)!important;border:1px solid var(--rule-strong)!important}.maplibregl-ctrl-group button{color:var(--ink-2);background:var(--paper)!important;border-bottom-color:var(--rule)!important;transition:background .15s ease}.maplibregl-ctrl-group button+button{border-top-color:var(--rule)!important}.maplibregl-ctrl-group button:hover{background:var(--highlight)!important}.maplibregl-ctrl-scale{border-color:var(--ink-4)!important;color:var(--ink-3)!important;background:var(--paper)!important;font-family:Inter,sans-serif!important;font-size:10px!important}.maplibregl-ctrl-attrib{background:var(--paper)!important;color:var(--ink-4)!important}.maplibregl-ctrl-attrib a{color:var(--ink-3)!important}[data-theme=dark] .maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon,[data-theme=dark] .maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon,[data-theme=dark] .maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon,[data-theme=dark] .maplibregl-ctrl-shrink .maplibregl-ctrl-icon,[data-theme=dark] .maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{filter:invert(1)}.sidebar-error{padding:20px;color:var(--ink);line-height:1.6}.sidebar-error code{font-family:Consolas,Courier New,monospace;background:var(--paper-2);padding:2px 5px;border-radius:1px;font-size:11px}.rail-section{display:flex;flex-direction:column;gap:10px}.rail-section.tight{gap:8px}.rail-rule{height:1px;background:var(--rule);margin:4px -22px}.search-wrap{position:relative}.search-input{width:100%;border:1px solid var(--rule-strong);border-radius:1px;background:var(--paper-2);padding:11px 14px;font-size:14.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink);outline:none;transition:border-color .15s ease,background .15s ease}.search-input:focus{border-color:var(--navy);background:var(--paper)}.search-input::placeholder{color:var(--ink-4);font-weight:500}.search-context{display:flex;gap:6px;align-items:center;margin-top:6px;font-size:11px;color:var(--ink-3);letter-spacing:.02em}.search-context .pip{width:5px;height:5px;border-radius:50%;background:var(--navy);display:inline-block;flex-shrink:0}.search-dropdown{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--paper);border:1px solid var(--rule-strong);border-radius:1px;max-height:280px;overflow-y:auto;z-index:20;box-shadow:0 8px 24px #0000000f}.search-dropdown li{padding:8px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--rule-soft)}.search-dropdown li:hover,.search-dropdown li.hl{background:var(--highlight)}.search-dropdown li .row-type{font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-4)}.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--rule-strong);border-radius:1px;overflow:hidden}.seg button{padding:9px 8px;font-size:12px;font-weight:500;color:var(--ink-3);background:var(--paper);letter-spacing:.01em;display:flex;align-items:center;justify-content:center;gap:5px;text-align:center;line-height:1.25;transition:background .15s ease,color .15s ease;border-right:1px solid var(--rule-strong)}.seg button:last-child{border-right:0}.seg button:hover{color:var(--ink)}.seg button.active{background:var(--navy);color:var(--paper);font-weight:600}.seg button[data-value=outflow]:hover:not(.active){background:var(--outflow-tint);color:var(--ink)}.seg button[data-value=inflow]:hover:not(.active){background:var(--inflow-tint);color:var(--ink)}.seg button[data-value=outflow].active{background:var(--outflow);color:var(--paper)}.seg button[data-value=inflow].active{background:var(--inflow);color:var(--paper)}[data-direction=outflow] #aggregation-toggle button:hover:not(.active){background:var(--outflow-tint);color:var(--ink)}[data-direction=outflow] #aggregation-toggle button.active{background:var(--outflow);color:var(--paper)}[data-direction=inflow] #aggregation-toggle button:hover:not(.active){background:var(--inflow-tint);color:var(--ink)}[data-direction=inflow] #aggregation-toggle button.active{background:var(--inflow);color:var(--paper)}.seg.tall button{padding:11px 8px;font-size:11.5px;line-height:1.3;gap:9px}.seg.tall svg{flex-shrink:0;opacity:.6;transition:opacity .15s ease}.seg.tall button.active svg{opacity:1}.seg.tall .seg-text{text-align:left}.seg.tall .seg-line{display:block}.seg.tall .seg-text .seg-line:first-child{font-size:10px;opacity:.7;letter-spacing:.02em}.seg.tall .seg-text .seg-line:last-child{font-size:13px;font-weight:700;letter-spacing:.04em}.kpi-eyebrow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.kpi-value{font-size:46px;font-weight:600;letter-spacing:-.025em;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}.kpi-value .unit{font-size:13px;font-weight:500;letter-spacing:.02em;color:var(--ink-3);margin-left:8px;vertical-align:.45em}.kpi-caption{font-size:11.5px;color:var(--ink-3);margin-top:8px;line-height:1.4;text-wrap:pretty}.kpi-caption b{color:var(--ink);font-weight:600}.demo-tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:14px}.demo-tabs button{padding:7px 0 9px;margin-right:18px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);position:relative;transition:color .15s ease}.demo-tabs button:hover{color:var(--ink-2)}.demo-tabs button.active{color:var(--ink)}.demo-tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--navy)}.bd-row{display:grid;grid-template-columns:96px 1fr 64px;align-items:center;gap:12px;padding:6px 0;font-size:12.5px}.bd-row+.bd-row{border-top:1px solid var(--rule-soft)}.bd-label{color:var(--ink-2);font-weight:500}.bd-bar{position:relative;height:7px;background:var(--rule);border-radius:2px;overflow:hidden}.bd-bar>span{position:absolute;left:0;top:0;bottom:0;background:var(--outflow);transition:width .4s ease}.bd-row.inflow .bd-bar>span{background:var(--inflow)}.bd-count{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);font-size:12.5px}.bd-pct{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-4);font-size:11px;margin-top:1px}.reach-stat-row{display:flex;align-items:baseline;justify-content:space-between}.stat-pair{display:flex;flex-direction:column;gap:2px}.stat-pair .lbl{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4)}.stat-pair .val{font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums lining-nums}.stat-pair .val .unit{font-size:11px;font-weight:500;color:var(--ink-3);margin-left:3px}.mini-toggle-btn{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);padding:3px 0;position:relative;transition:color .15s ease}.mini-toggle-btn:hover{color:var(--ink-2)}.mini-toggle-btn.active{color:var(--ink)}.mini-toggle-btn.active:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:var(--ink)}.cp-info-note{font-size:11px;line-height:1.55;color:var(--ink-3);background:var(--highlight);border-left:3px solid #b45309;border-radius:0 1px 1px 0;padding:8px 11px;margin:0 0 8px}[data-theme=dark] .cp-info-note{border-left-color:#fbbf24}.cp-info-note strong{color:var(--ink);font-weight:600}.sidebar-attribution{display:flex;flex-direction:column;gap:6px;margin-top:auto}.sidebar-attribution a{font-size:10.5px;color:var(--ink-4);text-decoration-line:underline;text-underline-offset:2px;line-height:1.5}.sidebar-attribution a:hover{color:var(--ink-3)}.credits-link-btn{align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--navy);cursor:pointer;padding:5px 10px;background:var(--navy-tint);border:1px solid transparent;border-radius:1px;font-family:inherit;transition:background .15s ease,border-color .15s ease}.credits-link-btn:hover{background:var(--highlight-2);border-color:var(--rule-strong)}.credits-backdrop{display:none;position:fixed;inset:0;background:#0a0e178c;z-index:900;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(2px)}.credits-backdrop.is-open{display:flex}[data-theme=light] .credits-backdrop{background:#12172673}.credits-modal{background:var(--paper);border:1px solid var(--rule-strong);border-radius:2px;width:100%;max-width:460px;max-height:calc(100vh - 48px);overflow-y:auto;padding:28px 32px 24px;position:relative;box-shadow:0 24px 64px #0000002e}.credits-close{position:absolute;top:14px;right:16px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ink-4);background:none;border:none;cursor:pointer;border-radius:1px;transition:color .15s ease,background .15s ease;line-height:1}.credits-close:hover{color:var(--ink);background:var(--rule)}.credits-title{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:0 0 20px;padding-right:32px}.credits-section{margin-bottom:18px}.credits-section-label{font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-4);margin-bottom:8px}.credits-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px}.credits-list li{font-size:11.5px;color:var(--ink-3);line-height:1.5;padding-left:10px;border-left:2px solid var(--rule-strong)}.credits-list a{color:var(--ink-2);font-weight:600;text-decoration-line:underline;text-underline-offset:2px}.credits-list a:hover{color:var(--navy)}.credits-rule{height:1px;background:var(--rule);margin:18px 0}.credits-footer{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:var(--ink-4);gap:12px}.credits-github{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:500;color:var(--ink-3);text-decoration:none;border:1px solid var(--rule-strong);border-radius:2px;padding:4px 8px;transition:color .15s ease,border-color .15s ease;white-space:nowrap}.credits-github:hover{color:var(--ink);border-color:var(--ink-3)}.chart-block{padding:20px 24px 22px;border-bottom:1px solid var(--rule)}.chart-block:last-child{border-bottom:0}.chart-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}.chart-title-group{display:flex;flex-direction:column;gap:2px}.chart-title{font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.chart-sub{font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4)}.chart-tools{display:flex;gap:6px}.chart-tool{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);padding:4px 6px;border:1px solid var(--rule);border-radius:1px;transition:color .15s ease,border-color .15s ease,background .15s ease}.chart-tool:hover{color:var(--ink-2);border-color:var(--rule-strong);background:var(--highlight)}.mini-toggle{display:flex;gap:16px;margin-top:2px}.mini-toggle .mini-toggle-btn{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);padding:3px 0;position:relative;transition:color .15s ease}.mini-toggle .mini-toggle-btn:hover{color:var(--ink-2)}.mini-toggle .mini-toggle-btn.active{color:var(--ink)}.mini-toggle .mini-toggle-btn.active:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:var(--ink)}.chart-canvas{position:relative;height:220px}.reach-bands{display:flex;flex-direction:column;gap:10px}.reach-row{display:flex;align-items:center;gap:12px}.reach-row-lbl{width:52px;flex-shrink:0;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}.reach-bar{flex:1;display:flex;height:36px;border-radius:1px;overflow:hidden;background:var(--rule)}.reach-bar>span{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--paper);letter-spacing:.04em;overflow:hidden;white-space:nowrap;transition:width .4s ease}.rb-0{background:color-mix(in oklab,var(--outflow),var(--paper) 8%)}.rb-1{background:color-mix(in oklab,var(--outflow),var(--paper) 26%)}.rb-2{background:color-mix(in oklab,var(--outflow),var(--paper) 44%)}.rb-3{background:color-mix(in oklab,var(--outflow),var(--paper) 62%)}.reach-row.inflow .rb-0{background:color-mix(in oklab,var(--inflow),var(--paper) 8%)}.reach-row.inflow .rb-1{background:color-mix(in oklab,var(--inflow),var(--paper) 26%)}.reach-row.inflow .rb-2{background:color-mix(in oklab,var(--inflow),var(--paper) 44%)}.reach-row.inflow .rb-3{background:color-mix(in oklab,var(--inflow),var(--paper) 62%)}.reach-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px;padding-top:10px;border-top:1px solid var(--rule);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.reach-legend .rk{display:inline-flex;align-items:center;gap:5px}.rk-sw{display:inline-block;width:13px;height:13px;flex-shrink:0}.rk-diag-0{background:linear-gradient(135deg,color-mix(in oklab,var(--inflow),var(--paper) 8%) 50%,color-mix(in oklab,var(--outflow),var(--paper) 8%) 50%)}.rk-diag-1{background:linear-gradient(135deg,color-mix(in oklab,var(--inflow),var(--paper) 26%) 50%,color-mix(in oklab,var(--outflow),var(--paper) 26%) 50%)}.rk-diag-2{background:linear-gradient(135deg,color-mix(in oklab,var(--inflow),var(--paper) 44%) 50%,color-mix(in oklab,var(--outflow),var(--paper) 44%) 50%)}.rk-diag-3{background:linear-gradient(135deg,color-mix(in oklab,var(--inflow),var(--paper) 62%) 50%,color-mix(in oklab,var(--outflow),var(--paper) 62%) 50%)}.sankey-wrap{position:relative}.sankey-wrap svg{display:block;width:100%;height:auto}.sankey-ribbon{transition:opacity .18s ease}.sankey-label{font-size:10.5px;font-weight:600;fill:var(--ink-2);font-family:Inter,system-ui,sans-serif;letter-spacing:-.005em}.sankey-label.in{fill:var(--inflow-2)}.sankey-label.out{fill:var(--outflow-2)}.sankey-label.center{fill:var(--ink);font-weight:700;font-size:12px}.sankey-num{font-size:9.5px;font-weight:500;fill:var(--ink-4);font-family:Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.04em}.sankey-tooltip{position:fixed;display:none;background:var(--paper);border:1px solid var(--rule-strong);border-radius:4px;padding:6px 10px;font-size:12px;line-height:1.5;color:var(--ink);pointer-events:none;z-index:9999;box-shadow:0 2px 8px #0000001f;white-space:nowrap}.flow-summary{padding:0 4px 2px}.fs-val{font-size:15px;font-weight:700;fill:var(--ink-3);font-family:Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums}.fs-val.in{fill:var(--inflow-2)}.fs-val.out{fill:var(--outflow-2)}.fs-lbl{font-size:11px;fill:var(--ink-4);font-family:Inter,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.05em}.industry-stack{display:flex;flex-direction:column;gap:12px}.industry-row{display:flex;flex-direction:column;gap:5px}.industry-row .ir-head{display:flex;justify-content:space-between;align-items:baseline;font-size:11.5px}.industry-row .ir-name{font-weight:600;color:var(--ink);letter-spacing:-.005em}.industry-row .ir-total{font-variant-numeric:tabular-nums;font-size:11px;font-weight:500;color:var(--ink-3)}.industry-row .ir-bar{display:flex;height:12px;border-radius:1px;overflow:hidden;background:var(--rule)}.industry-row .ir-bar>span{display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--paper);letter-spacing:.04em;transition:width .4s ease;overflow:hidden;white-space:nowrap}.industry-row .ir-bar .seg-goods{background:#8b6b3a}.industry-row .ir-bar .seg-trade{background:var(--outflow)}.industry-row .ir-bar .seg-services{background:var(--inflow)}[data-theme=dark] .industry-row .ir-bar .seg-goods{background:#b58e54}.industry-legend{display:flex;gap:16px;margin-top:10px;padding-top:10px;border-top:1px solid var(--rule);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.industry-legend .lg{display:flex;align-items:center;gap:6px}.industry-legend .lg .sw{width:10px;height:10px;flex-shrink:0}.industry-legend .lg .sw.goods{background:#8b6b3a}.industry-legend .lg .sw.trade{background:var(--outflow)}.industry-legend .lg .sw.services{background:var(--inflow)}[data-theme=dark] .industry-legend .lg .sw.goods{background:#b58e54}.balance-legend{display:flex;justify-content:center;gap:24px;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:2px 0 12px}.balance-legend .pip{display:inline-block;width:8px;height:8px;margin-right:6px;vertical-align:middle}.balance-legend .pip.in{background:var(--inflow)}.balance-legend .pip.out{background:var(--outflow)}.balance-sort-btn{background:none;border:none;padding:3px 0;cursor:pointer;display:flex;align-items:center;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--ink-4);position:relative;transition:color .15s}.balance-sort-btn:hover{color:var(--ink-2)}.balance-sort-btn.active{color:var(--ink)}.balance-sort-btn.active:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:var(--ink)}.balance-expand-row{display:flex;justify-content:center;padding:6px 0 2px}.balance-expand-btn{display:flex;align-items:center;gap:5px;background:none;border:1px solid var(--rule);border-radius:4px;padding:4px 12px;font-size:10px;font-weight:600;color:var(--ink-4);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;transition:color .15s,border-color .15s}.balance-expand-btn:hover{color:var(--ink-2);border-color:var(--rule-strong)}.balance-expand-icon{display:inline-block;font-size:8px;transition:transform .2s ease}.balance-axis{display:grid;grid-template-columns:50px 1fr 110px 1fr 50px;align-items:end;height:18px;margin:0 0 8px;position:relative;font-size:9.5px;color:var(--ink-4);font-variant-numeric:tabular-nums;letter-spacing:.04em}.balance-axis .axis-line{grid-column:2 / 5;grid-row:1;height:1px;background:var(--rule-strong);align-self:end}.balance-axis .axis-num{grid-row:1}.balance-axis .axis-num.left.far{grid-column:1 / 3;text-align:left;padding-left:4px}.balance-axis .axis-num.center{grid-column:3;text-align:center;color:var(--ink-3);font-weight:600}.balance-axis .axis-num.right.far{grid-column:4 / 6;text-align:right;padding-right:4px}.balance{display:flex;flex-direction:column}.balance-row{display:grid;grid-template-columns:50px 1fr 110px 1fr 50px;align-items:center;height:22px;font-size:11.5px;transition:background .15s ease;cursor:default}.balance-row:hover{background:var(--highlight)}.balance-row .b-name{text-align:center;font-weight:500;color:var(--ink-2);letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px;font-size:11.5px}.balance-row .b-side{position:relative;height:14px}.balance-row .b-bar{position:absolute;height:100%;background:var(--outflow);transition:width .4s ease}.balance-row .b-bar.in{background:var(--inflow)}.balance-row .b-side.left .b-bar{right:0}.balance-row .b-side.right .b-bar{left:0}.balance-row .b-num{font-size:11px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);white-space:nowrap}.balance-row .b-num.left{text-align:right;padding-right:6px}.balance-row .b-num.right{text-align:left;padding-left:6px}.acs-body{display:flex;flex-direction:column;gap:0}.acs-geo-section{margin-bottom:14px}.acs-geo-label{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-4);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--rule)}.acs-row{display:grid;grid-template-columns:82px 1fr 36px 58px;align-items:center;gap:8px;min-height:24px;padding:2px 0}.acs-lbl{font-size:11px;font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acs-bar-track{height:14px;background:var(--rule);border-radius:1px;overflow:hidden;position:relative}.acs-bar-fill{height:100%;border-radius:1px;transition:width .35s ease}.acs-pct{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-3);text-align:right}.acs-count{font-size:10px;font-weight:400;font-variant-numeric:tabular-nums;color:var(--ink-4);text-align:right;white-space:nowrap}.acs-na{font-size:11px;color:var(--ink-4);padding:6px 0;font-style:italic}.acs-source{font-size:9.5px;color:var(--ink-4);margin-top:10px;padding-top:8px;border-top:1px solid var(--rule)}[data-direction=outflow] .acs-bar-fill{background:var(--outflow);opacity:.75}[data-direction=inflow] .acs-bar-fill{background:var(--inflow);opacity:.75}.maplibregl-ctrl-attrib{font-size:10px!important}
