body{margin:0;background:var(--paper);color:var(--ink)}
*{box-sizing:border-box}
a{color:var(--color-red-dark);text-underline-offset:.23em}
button,select,input[type=range],summary{cursor:pointer}
button,select{color:inherit}
button{border:1px solid #c9c0b3;background:#fffdf8;border-radius:4px;padding:6px 12px}
button[aria-pressed=true]{background:var(--color-green);border-color:var(--color-green);color:#fff}
input[type=range]{accent-color:var(--color-red-dark);width:100%;min-height:28px}
.econ-wrap{width:min(calc(100% - 2 * var(--page-gutter)),1280px);margin-inline:auto}
.econ-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:10px 25px;min-height:var(--header-height);padding:10px var(--page-gutter);background:#fbf8ef;border-bottom:1px solid var(--line)}
.econ-header a{color:var(--ink);text-decoration:none}
.econ-brand,.econ-header nav{font-family:var(--font-heading);font-weight:bold}
.econ-header nav{display:flex;flex-wrap:wrap;gap:8px 24px}
.econ-header a:hover{text-decoration:underline}
.econ-section{padding-block:clamp(55px,7vw,95px)}
.econ-kicker{font-weight:700;letter-spacing:.13em;color:#864138;margin:0 0 10px;font-size:.89rem}
.econ-section > .econ-kicker,.econ-national > .econ-wrap > .econ-kicker{font-size:25px}
.econ-section h2{font:700 clamp(32px,4.5vw,58px)/1.28 var(--font-heading);margin:0 0 14px}
.econ-panel{border:1px solid #d5cbbb;background:#fcfaf5;border-radius:7px;box-shadow:var(--shadow-panel);min-width:0}
.econ-charts{display:grid;grid-template-columns:1.16fr 1fr;gap:20px}
.econ-chart{margin:0;padding:20px clamp(14px,2.4vw,28px)}
.econ-chart h3,.econ-map-legend h3{margin:0;font-size:1.12rem}
.econ-chart figcaption p,.econ-map-legend p,.econ-source,.econ-caption{font-size:.85rem;color:#565e56;margin:5px 0 0}
.econ-chart canvas{display:block;width:100%;height:235px}
.econ-chart-control{display:grid;grid-template-columns:auto minmax(45px,1fr) auto;gap:10px;align-items:center;font-size:.85rem}
.econ-chart-control output{font-variant-numeric:tabular-nums}
.econ-data-table{max-height:220px;overflow:auto}
.econ-data-table table{width:100%;border-collapse:collapse;text-align:right;font-variant-numeric:tabular-nums}
.econ-data-table th,.econ-data-table td{border-bottom:1px solid var(--line);padding:3px 8px}
.econ-chart details{margin-top:8px;font-size:.84rem}
.econ-share-chart{height:245px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:clamp(6px,1.4vw,18px);align-items:stretch;margin-top:10px}
.econ-share-column{display:grid;grid-template-rows:1fr auto;min-width:0;gap:5px;text-align:center;font-size:.83rem}
.econ-stack{display:flex;flex-direction:column-reverse;overflow:hidden;border-radius:4px 4px 0 0}
.econ-segment{display:grid;place-items:center;min-height:0;color:white;font-size:clamp(9px,1.2vw,14px);font-variant-numeric:tabular-nums;line-height:1}
.econ-inline-legend{display:flex;flex-wrap:wrap;gap:4px 15px;font-size:.83rem;margin-top:8px}
.econ-inline-legend span,.econ-rank-row{display:flex;align-items:center;gap:7px}
.econ-swatch{display:inline-block;width:13px;height:13px;border:1px solid #5b564740;border-radius:2px;flex:none}
.econ-national{background:#ede7dc;border-block:1px solid var(--line)}
.econ-atlas{display:grid;grid-template-columns:minmax(0,1fr) minmax(252px,.43fr);overflow:hidden}
.econ-atlas-main,.econ-atlas-side{min-width:0}
.econ-atlas-side{border-left:1px solid var(--line);padding:14px 18px}
.econ-atlas-side select{width:100%;border:1px solid #aaa191;border-radius:4px;background:#fffdf8;padding:6px;margin:4px 0 10px}
.econ-controls{display:flex;flex-wrap:wrap;gap:6px;padding:10px}
.econ-map{--color-selected:#fffdf8;--color-red:#e1e9de;background:#e5eee9;position:relative}
.econ-national-map{height:clamp(340px,43vw,550px)}
.econ-map .ol-zoom button{padding:0;background:#fffdf8;color:#273c31}
.econ-map .ol-zoom button:hover{background:#e1e9de}
.econ-map .ol-zoom{top:10px;left:10px}
.econ-time{padding:8px 16px 12px}
.econ-time label{display:flex;justify-content:space-between;font-weight:700}
.econ-year-buttons{display:flex;justify-content:space-between;gap:4px}
.econ-year-buttons button{font-size:.84rem;padding:3px 8px}
.econ-atlas-side h3{margin:0 0 6px}
.econ-province-heading{font:700 1.45rem/1.35 var(--font-heading);margin:0 0 8px}
.econ-values{display:grid;grid-template-columns:auto 1fr;margin:0;font-size:.9rem;gap:3px 8px}
.econ-values dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.econ-map-legend{border-top:1px solid var(--line);margin-top:12px;padding-top:9px;font-size:.84rem}
.econ-rank-row{font-variant-numeric:tabular-nums}
.econ-rank-row small{margin-left:auto;text-align:right;font-size:.8rem}
#dot-legend{font-weight:bold;color:var(--ink)}
#dot-legend>span{display:inline-flex;align-items:center;gap:7px}
#dot-legend .econ-swatch{width:8px;height:8px;border-radius:50%}
.econ-bridge{max-width:32em;margin:55px auto 0;text-align:center;font:700 clamp(21px,3vw,35px)/1.7 var(--font-heading);color:#2c4136}
.econ-story{display:grid;grid-template-columns:minmax(0,1.26fr) minmax(0,.74fr);gap:clamp(22px,4.5vw,65px);align-items:start}
.econ-story-visual{position:sticky;top:calc(var(--header-height) + 10px);overflow:hidden}
.econ-story-head{position:relative;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.econ-story-head .atlas-heading{position:static}
.econ-story-head .atlas-help-content{inset-inline-start:12px;width:min(28rem,calc(100% - 24px))}
.econ-story-head button{font-size:.8rem;padding:3px 8px}
.econ-delta-map{height:clamp(260px,39vh,415px)}
.econ-scene-legend{min-height:1.6em;margin:5px 12px 0}
.econ-scene-legend .econ-swatch{width:10px;height:10px;border-radius:50%}
.econ-edge{width:17px;height:0;border-top:2px solid;display:inline-block}
.econ-edge-partner{border-color:#167565;border-top-style:dashed}
.econ-edge-development{border-color:#315f79;border-top-style:dotted}
.econ-edge-delivery{border-color:#8b5a23}
.econ-node-list{padding:5px 12px;max-height:87px;overflow:auto}
.econ-node-list button{font-size:.78rem;padding:3px 8px}
.econ-node-card{padding:6px 12px 9px;min-height:70px;border-top:1px solid var(--line);font-size:.82rem;line-height:1.55}
.econ-node-card p{margin:2px 0}
.econ-scene{display:flex;flex-direction:column;justify-content:center;min-height:64vh;padding:25px 0;border-bottom:1px solid var(--line)}
.econ-scene h3{font:700 clamp(25px,3vw,38px)/1.38 var(--font-heading);margin:0 0 10px}
.econ-scene p{margin:0 0 11px}
.econ-overview{min-height:53vh}
.econ-error{position:fixed;z-index:50;bottom:12px;left:12px;right:12px;background:#fff2e6;color:#6e241e;border:1px solid #ad6253;padding:10px}
@media(max-width:850px){
  .econ-atlas{grid-template-columns:minmax(0,1fr) 245px}
  .econ-story{gap:20px;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
}
@media(max-width:640px){
  :root{--header-height:56px;--page-gutter:14px}
  .econ-header{gap:6px;font-size:.75rem}
  .econ-header nav{gap:3px 9px}
  .econ-charts,.econ-atlas,.econ-story{grid-template-columns:minmax(0,1fr)}
  .econ-atlas-side{border-left:0;border-top:1px solid var(--line)}
  .econ-atlas-side label,.econ-atlas-side select{font-size:.88rem}
  .econ-national-map{height:320px}
  .econ-story-visual{z-index:2}
  .econ-delta-map{height:clamp(132px,24vh,210px)}
  .econ-node-card{min-height:40px;max-height:74px;overflow:auto}
  .econ-node-list{flex-wrap:nowrap;overflow:auto}
  .econ-node-list button{flex:none}
  .econ-scene{min-height:52vh;justify-content:flex-start;padding-top:14px}
  .econ-overview{min-height:36vh}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
