:root{--paper:#f5f6f3;--white:#fff;--ink:#203331;--muted:#64736f;--line:#dfe6e0;--teal:#0a192f;--teal-soft:#e8f2ed;--red:#b42318;--red-soft:#f9eee9;--map-low:#d5886e;--map-high:#288676;--radius:22px;--header-height:139px;--shadow:0 12px 40px #20333106;font-family:Geist,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.6}button,input,select{font:inherit}button,a,select,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:3px solid #347ee9;outline-offset:3px}button{color:inherit}a{color:var(--teal);text-underline-offset:4px}button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:700;line-height:1.2;letter-spacing:-.035em}h2{font-size:28px;margin-bottom:14px}h3{font-size:20px;margin-bottom:12px}p{margin-bottom:16px}small{font-size:12px}button{border:0;background:none}[hidden]{display:none!important}.positive{color:var(--teal)}.negative{color:var(--red)}.neutral{color:var(--ink)}.muted{color:var(--muted)}.tabular{font-variant-numeric:tabular-nums}.skip-link{position:absolute;left:16px;top:-80px;z-index:100;background:var(--white);padding:12px}.skip-link:focus{top:10px}
.site-header{position:sticky;top:0;z-index:30;background:#f8f9faf5;border-bottom:1px solid var(--line);backdrop-filter:blur(18px);padding-top:env(safe-area-inset-top)}.header-inner{max-width:1336px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:87px;padding:18px 38px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink)}.brand-mark{width:43px;height:43px;display:grid;place-items:center;background:var(--ink);color:white;border-radius:14px;font-size:25px;letter-spacing:-2px;font-weight:700;padding-right:3px}.brand strong{display:block;font-size:18px;letter-spacing:-.6px;line-height:1.3}.brand small{color:var(--muted);font-size:11px}.header-actions{display:flex;align-items:center;gap:26px;min-width:0}.province-link{font-size:12px;font-weight:700;text-decoration:none;color:var(--muted)}.province-link span{margin-left:10px}.municipality-picker{display:flex;align-items:center;gap:12px;min-width:0}.municipality-picker>span{font-size:12px;color:var(--muted);white-space:nowrap}select{appearance:auto;max-width:100%;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-height:44px;font-size:14px;max-width:280px;font-weight:700}.main-nav{display:flex;max-width:1336px;gap:8px;margin:auto;padding:0 38px 12px}.main-nav button{display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:700;padding:11px 20px;border-radius:12px;min-height:42px;color:var(--muted)}.main-nav button:hover{background:#f1f5f9}.main-nav button[aria-current=page]{background:var(--ink);color:var(--white)}
main{max-width:1336px;margin:auto;padding:36px 38px 0;min-width:0}.municipality-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:16px}.eyebrow{text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:1.65px;color:var(--muted);margin-bottom:10px}.eyebrow span{margin:0 10px;color:#9ca9a1}.municipality-heading h1{font-size:48px;letter-spacing:-2.1px;margin:0 0 9px}.municipality-heading p{font-size:12px;color:var(--muted);margin:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;background:var(--ink);color:var(--white);border-radius:12px;padding:10px 18px;font-size:12px;font-weight:700;text-decoration:none}.button-quiet{background:var(--white);color:var(--ink);border:1px solid var(--line)}.button:hover{filter:brightness(.95)}.text-button{color:var(--teal);font-size:12px;font-weight:700;padding:8px 0;text-align:left;min-height:44px;text-decoration:none}.small-note{font-size:11px;color:var(--muted);line-height:1.6;margin:0}.view{animation:appear .3s ease}@keyframes appear{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}.overview-layout{display:grid;grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);gap:40px;align-items:stretch}.overview-reading{padding:26px 6px 4px 0;min-width:0}.overview-reading h2{font-size:38px;max-width:470px;line-height:1.17;margin-bottom:20px;letter-spacing:-1.4px}.lead{font-size:14px;color:var(--muted);max-width:53ch;line-height:1.85}.overview-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:30px}.overview-stat{border-top:1px solid #cdd7cf;padding:16px 0 10px;min-width:0}.stat-label{font-size:12px;color:var(--muted);display:block}.stat-value{font-size:31px;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1.25;display:block;margin:9px 0 7px}.stat-context{font-size:10px;color:var(--muted);display:block;line-height:1.6}.stat-inline{display:inline-block;background:var(--teal-soft);font-size:10px;padding:3px 8px;border-radius:6px;color:var(--teal);margin-top:8px}.reading-note{display:flex;align-items:flex-start;gap:12px;padding-top:16px;margin-top:12px}.note-mark{border:1px solid #becbc1;border-radius:50%;min-width:25px;height:25px;text-align:center;font-size:15px}.reading-note p{font-size:11px;color:var(--muted);line-height:1.8;margin:0}.map-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);min-width:0}.panel-heading{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.panel-heading h2{font-size:20px;margin:0}.panel-heading h3{margin:0 0 5px}.panel-heading .eyebrow{font-size:9px;margin-bottom:5px}.panel-heading>.small-note{text-align:right;max-width:105px}.choices{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.choices button{padding:8px 12px;border:1px solid var(--line);border-radius:9px;min-height:38px;font-size:11px;color:var(--muted);background:transparent;line-height:1.4}.choices button:hover{border-color:#627d9c}.choices button[aria-pressed=true]{background:var(--teal-soft);border-color:#8eaed1;color:#0a192f;font-weight:700}.map-metrics{margin-bottom:2px}.map-metrics button{flex:1;padding:8px 5px}.map-canvas{position:relative;isolation:isolate;height:325px;margin:8px -4px 0;min-width:0;background:radial-gradient(ellipse at 50% 50%,#f1f5f9 0%,#f8f9fa 58%,#fff 74%)}#map{display:block;width:100%;height:100%;touch-action:pan-y;overflow:hidden}#map .municipality-path{cursor:pointer;stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke;transition:fill .25s}#map .municipality-path:hover{stroke:var(--ink);stroke-width:1.5}#map .municipality-path.selected{stroke:var(--ink);stroke-width:2.7}#map .selected-ring{fill:none;stroke:var(--ink);stroke-width:1;stroke-dasharray:2 2;pointer-events:none;vector-effect:non-scaling-stroke}.map-zoom{position:absolute;right:0;top:12px;display:flex;flex-direction:column;gap:5px}.map-zoom button{background:var(--white);border:1px solid var(--line);border-radius:9px;width:35px;height:35px;font-size:20px;box-shadow:0 3px 8px #20333106}.map-locate{position:absolute;left:0;bottom:8px;min-height:36px;font-size:10px;background:var(--white);border:1px solid var(--line);padding:6px 10px;border-radius:9px;color:var(--muted)}.map-locate span{font-size:16px;margin-left:8px}.map-tooltip{position:absolute;background:var(--ink);color:white;border-radius:10px;font-size:11px;padding:9px 12px;box-shadow:0 4px 12px #0002;pointer-events:none;max-width:210px;z-index:2;left:10px;top:10px}.map-tooltip strong{display:block}.map-legend{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted);margin:8px 0 16px;flex-wrap:wrap}.legend-gradient{height:7px;border-radius:8px;width:100px;background:linear-gradient(90deg,var(--map-low),#eef1e8,var(--map-high))}.missing-key{display:flex;gap:5px;align-items:center;margin-left:auto}.missing-key:before{content:'';width:9px;height:9px;background:#e2e8f0;border-radius:2px}.map-selection{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--paper);border-radius:12px;padding:11px 14px;font-size:12px;min-height:44px}.map-selection span{font-weight:700;font-variant-numeric:tabular-nums}.chart-caption{color:var(--muted);font-size:10px;line-height:1.8;margin:12px 0 0}.section-block{margin:48px 0}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h2{margin:0 0 9px;font-size:29px}.section-heading p{margin:0;color:var(--muted);font-size:13px}.section-heading>.small-note{align-self:center}.insights-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.insight{border-top:2px solid #94a3b8;padding:20px 0 8px}.insight .number{font-size:11px;letter-spacing:1px;color:var(--teal);display:block;margin-bottom:16px}.insight h3{font-size:18px;max-width:27ch}.insight p{font-size:12px;line-height:1.85;color:var(--muted);margin-bottom:0}.insight button{margin-top:8px}.province-pulse{background:#e8edf3;border:1px solid #e2e8f0;border-radius:var(--radius);padding:25px 28px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px;align-items:center}.province-pulse h2{font-size:21px;margin:0}.province-pulse>div:not(:first-child){display:flex;align-items:center;gap:14px}.province-pulse strong{font-size:41px;letter-spacing:-2px}.province-pulse span{font-size:11px;line-height:1.6}.province-pulse small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.province-pulse .text-button{grid-column:1/-1;min-height:auto;padding:0}
.panel{padding:26px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.category-choices{border-bottom:1px solid var(--line);padding-bottom:12px}.category-choices button{font-size:13px;border:0;border-radius:8px;min-height:42px}.category-choices button[aria-pressed=true]{background:var(--ink);color:white}.metric-choices button{background:white;min-height:40px}.ranking-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.ranking-top h2{font-size:23px;margin:0 0 5px}.ranking-top .choices{margin:0}.ranking-context{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 8px}.ranking-context p{font-size:11px;color:var(--muted);margin:0}.selected-rank{margin:15px 0;font-size:13px;color:var(--teal);background:var(--teal-soft);padding:12px 16px;border-radius:12px;display:flex;gap:14px;justify-content:space-between}.rank-row{display:grid;grid-template-columns:34px minmax(130px,1fr) minmax(80px,1.6fr) 108px;align-items:center;gap:14px;text-align:left;width:100%;min-height:53px;border-bottom:1px solid #f1f5f9;padding:8px 0;background:transparent}.rank-row:hover{background:#f8f9fa}.rank-row.is-selected{background:var(--teal-soft);border-radius:9px;padding-left:10px;padding-right:10px}.rank-number{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.rank-name{font-size:12px;font-weight:700}.rank-value{text-align:right;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.rank-track{width:100%;height:9px;position:relative;background:#f1f5f9;border-radius:5px}.rank-fill{height:9px;position:absolute;left:0;background:#8eaed1;border-radius:3px}.rank-zero{position:absolute;top:-5px;bottom:-5px;width:1px;background:#9aa89e}.rank-fill.down{background:#d69b85}.rank-fill.single{background:#92afa6}.more-button{display:flex;margin:24px auto 0}.two-columns{display:grid;grid-template-columns:1.25fr 1fr;gap:22px;margin-bottom:24px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-card{padding:22px 24px;border:1px solid var(--line);background:var(--white);border-radius:18px;min-width:0}.stat-card .stat-value{font-size:29px}.chart{min-width:0;height:248px;position:relative;margin:18px 0 0}.chart svg{display:block;width:100%;height:100%;overflow:visible}.chart text{fill:var(--muted);font-family:Geist,sans-serif;font-size:10px}.chart .grid line{stroke:#e8edf3}.chart .grid path,.chart .axis path{display:none}.chart .axis line{stroke:#ccd7cf}.chart .hover-label{fill:var(--ink);font-size:10px;font-weight:700}.chart-key{display:flex;gap:18px;font-size:10px;color:var(--muted)}.chart-key>span{display:flex;align-items:center;gap:7px}.key{display:inline-block;width:8px;height:8px;border-radius:2px}.key.previous{background:#cdd8cf}.key.current{background:var(--teal)}.chart-tip{position:absolute;pointer-events:none;left:55px;top:0;background:var(--ink);color:white;font-size:11px;padding:8px 12px;border-radius:8px;z-index:2;max-width:calc(100% - 70px)}.decomp-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:21px 0;border-bottom:1px solid var(--line)}.decomp-row strong{font-size:20px;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.8px}.decomp-row span{font-size:12px}.decomp-row small{display:block;color:var(--muted);font-size:10px}.decomp-row.total{border:0}.province-revenue{display:grid;grid-template-columns:1fr 1.2fr;gap:30px;margin:24px 0}.province-revenue p{font-size:12px;color:var(--muted);margin:0;line-height:1.9}.province-revenue .text-button{grid-column:1/-1;padding:0;min-height:auto}.revenue-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-self:center}.revenue-stats .stat-value{font-size:26px}.revenue-stats .stat-label{font-size:10px}.fiscal-panel{margin:24px 0}.fiscal-panel p{color:var(--muted);font-size:12px}.fiscal-panel .stats-grid{margin-top:24px;margin-bottom:0}.fiscal-panel .stat-card{background:var(--paper);border:0}.fiscal-choices{display:flex;flex-wrap:wrap;gap:8px}.fiscal-choices button{border:1px solid var(--line);border-radius:9px;font-size:12px;min-height:44px;padding:8px 12px}.coverage-tag{display:inline-block;border-radius:6px;padding:4px 9px;font-size:10px;background:#f4ead6;color:#785a2e;margin-bottom:12px}.sector-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;margin-top:17px}.sector-name{font-size:11px;min-width:0}.sector-value{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.sector-track{grid-column:1/-1;background:#f1f5f9;height:6px;border-radius:4px}.sector-track>span{display:block;background:#85ab98;height:6px;border-radius:4px}.editorial-reading{border-left:3px solid var(--teal);padding:8px 0 8px 26px;margin:32px 0;max-width:940px}.editorial-reading h3{font-size:25px}.editorial-reading p{font-size:13px;color:var(--muted);line-height:1.9;margin-bottom:12px}.scenario-badge{font-size:11px;border:1px solid #c6d7ca;color:var(--teal);padding:8px 12px;border-radius:20px;white-space:nowrap}.simulation-layout{display:grid;grid-template-columns:.85fr 1.5fr;gap:32px;align-items:start}.simulation-controls{padding:30px}.simulation-controls label{display:block;font-size:16px;font-weight:700}.shock-value{display:flex;align-items:baseline;gap:7px;margin:14px 0 4px;font-variant-numeric:tabular-nums}.shock-value output{font-size:72px;font-weight:700;line-height:1.3;letter-spacing:-4px}.shock-value span{font-size:27px;color:var(--muted)}input[type=range]{width:100%;accent-color:var(--teal);min-height:44px;cursor:pointer}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:22px}.simulation-controls .choices button{flex:1;background:var(--white);min-height:44px}.simulation-controls p{font-size:12px;line-height:1.85;color:var(--muted);margin:24px 0 12px}.simulation-result{padding:24px 0 0;min-width:0}.simulation-result h3{font-size:27px}.simulation-result .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}.simulation-result .stat-card{background:#f1f5f9;border-color:#e2e8f0}.simulation-result .stat-value{font-size:33px}.sim-bar-row{margin:24px 0}.sim-bar-row>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:10px}.sim-bar-row strong{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.sim-track{height:13px;background:#e3e9e0;border-radius:4px}.sim-track>div{height:100%;background:var(--teal);border-radius:4px;transition:width .25s}.sim-bar-row:first-child .sim-track>div{background:#a4b7a6}.site-footer{margin-top:60px;padding:30px 0 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap}.site-footer strong{font-size:13px;display:block}.site-footer span{display:block;font-size:10px;color:var(--muted);margin-top:4px}.site-footer>div:nth-child(2){display:flex;align-items:center;gap:22px;flex-wrap:wrap}.site-footer a,.site-footer button{font-size:10px;text-decoration:none}.site-footer>p{flex-basis:100%;font-size:10px;color:var(--muted);margin:0}.loading,.error-panel{padding:80px 0;max-width:550px;margin:auto}.loading{font-size:14px;display:flex;gap:12px;align-items:center}.loading-dot{width:10px;height:10px;border-radius:50%;background:var(--teal);animation:pulse 1.2s infinite alternate}@keyframes pulse{to{opacity:.3}}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--white);border-radius:12px;padding:12px 18px;font-size:12px;z-index:100;max-width:calc(100% - 32px);box-shadow:0 5px 25px #0002}.methodology{max-width:850px;margin:auto;padding:45px 28px}.methodology h1{font-size:37px}.methodology h2{margin-top:40px;font-size:24px}.methodology p,.methodology li{color:var(--muted);font-size:14px}.methodology ul{padding-left:20px}.methodology code{font-size:12px}.methodology .brand{margin-bottom:35px}
@media(min-width:1450px){.map-canvas{height:365px}.overview-reading{padding-top:36px}}
@media(max-width:1100px){.header-inner{padding-inline:26px}.main-nav{padding-left:26px;padding-right:26px}main{padding-inline:26px}.overview-layout{gap:24px;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.overview-reading h2{font-size:31px}.map-panel{padding:18px}.map-canvas{height:300px}.panel{padding:22px}.stat-card{padding:18px}.province-pulse{gap:20px;padding:22px}.simulation-layout{grid-template-columns:.9fr 1.1fr;gap:24px}.simulation-result .stat-value{font-size:27px}}
@media(max-width:820px){.province-link{display:none}.municipality-picker>span{display:none}.header-inner{min-height:78px;padding:15px 24px}.main-nav{justify-content:space-between;gap:4px;padding-inline:24px}.main-nav button{padding:10px 14px}.municipality-heading h1{font-size:42px}.overview-layout{grid-template-columns:1fr 1fr;gap:20px}.overview-reading{padding:18px 0 0}.overview-reading h2{font-size:29px}.lead{font-size:12px}.overview-stats{gap:10px;margin-top:20px}.overview-stat .stat-value{font-size:27px}.stat-label{font-size:11px}.reading-note{gap:8px}.map-panel{padding:16px}.panel-heading h2{font-size:17px}.map-panel .panel-heading>.small-note{display:none}.map-metrics button{font-size:10px}.map-canvas{height:304px}.map-legend{gap:6px}.legend-gradient{width:65px}.map-selection{font-size:11px;padding:10px}.map-selection span{font-size:12px}.insights-grid{gap:22px}.insight h3{font-size:17px}.insight p{font-size:11px}.province-pulse{grid-template-columns:1fr 1fr}.province-pulse>div:first-child{grid-column:1/-1}.two-columns{grid-template-columns:1fr}.province-revenue{grid-template-columns:1fr;gap:18px}.revenue-stats .stat-label{font-size:12px}.section-heading h2{font-size:26px}.ranking-top{flex-direction:column;gap:14px}.simulation-layout{grid-template-columns:1fr 1fr;gap:22px}.simulation-result .stats-grid{grid-template-columns:1fr}.simulation-controls{padding:22px}.simulation-result{padding:12px 0}.sim-bar-row>div:first-child{flex-wrap:wrap;gap:2px}.sim-bar-row strong{flex-basis:100%}.stat-card .stat-value{font-size:25px}.selected-rank{font-size:12px}}
@media(max-width:620px){body{font-size:14px}.header-inner{padding:12px 16px;gap:12px;min-height:76px}.brand{gap:8px}.brand-mark{width:35px;height:35px;border-radius:11px;font-size:22px}.brand strong{font-size:15px}.brand small{font-size:9px}.header-actions{gap:0;flex:1;justify-content:flex-end}.municipality-picker{max-width:100%}.municipality-picker select{width:164px;max-width:100%;padding:9px 8px;font-size:16px;border-radius:10px}.main-nav{gap:2px;padding:0 10px 9px;justify-content:space-around}.main-nav button{flex-direction:column;gap:4px;padding:7px 5px;min-width:0;font-size:10px;line-height:1.3;flex:1;min-height:52px;border-radius:10px}.main-nav button svg{width:18px;height:18px}main{padding:25px 17px 0}.municipality-heading{align-items:flex-start;margin-bottom:24px}.municipality-heading h1{font-size:37px;letter-spacing:-1.5px;margin-top:5px}.municipality-heading .eyebrow{font-size:8px;letter-spacing:1.25px;margin-bottom:6px}.municipality-heading .eyebrow span{margin:0 5px}.municipality-heading p{font-size:10px}.municipality-heading .button{min-height:38px;width:38px;padding:9px;border-radius:10px;margin-top:22px;flex:none}.municipality-heading .button span{display:none}.overview-layout{grid-template-columns:1fr;gap:26px}.overview-reading{padding:0}.overview-reading>.eyebrow{display:none}.overview-reading h2{font-size:30px;max-width:21ch;margin-bottom:14px;letter-spacing:-1px}.lead{font-size:13px;line-height:1.8;max-width:none}.overview-stats{margin-top:20px;gap:14px}.overview-stat{padding:13px 0 6px}.overview-stat .stat-value{font-size:30px}.stat-context{font-size:10px}.stat-inline{font-size:9px}.reading-note{padding-top:8px;margin-top:8px}.reading-note p{font-size:11px}.map-panel{padding:19px 17px;border-radius:20px}.map-panel .panel-heading h2{font-size:20px}.map-panel .panel-heading .eyebrow{font-size:9px}.map-metrics button{font-size:11px;min-height:42px}.map-canvas{height:322px}.map-zoom button{width:40px;height:40px}.map-locate{min-height:42px;padding:8px 10px}.map-legend{gap:8px;font-size:10px}.legend-gradient{width:88px}.map-selection{font-size:12px}.map-selection span{font-size:13px}.map-panel .chart-caption{font-size:10px}.section-block{margin:34px 0}.section-heading{flex-wrap:wrap;gap:12px;margin-bottom:20px}.section-heading h2{font-size:25px}.section-heading p{font-size:12px}.section-heading>.small-note{display:none}.insights-grid{grid-template-columns:1fr;gap:15px}.insight{padding:15px 0 4px;display:grid;grid-template-columns:25px 1fr;column-gap:10px}.insight .number{grid-row:1/4;align-self:start;margin-top:5px;font-size:10px}.insight h3{font-size:19px;max-width:none;margin-bottom:10px}.insight p{font-size:12px}.insight button{justify-self:start;min-height:40px}.province-pulse{padding:22px 20px;gap:19px 12px;border-radius:20px}.province-pulse strong{font-size:37px}.province-pulse>div:not(:first-child){display:block}.province-pulse span{display:block;font-size:11px}.province-pulse small{font-size:9px}.province-pulse h2{font-size:22px}.category-choices{gap:2px}.category-choices button{font-size:12px;padding:10px 11px;min-height:44px}.metric-choices{gap:6px}.metric-choices button{font-size:11px;padding:10px 11px;min-height:44px}.panel{padding:20px 17px;border-radius:19px}.ranking-top h2{font-size:21px}.ranking-top .choices button{min-height:44px}.ranking-context{align-items:flex-start}.ranking-context p{font-size:10px}.ranking-context .text-button{font-size:10px;white-space:nowrap;min-height:30px;padding:0}.rank-row{grid-template-columns:24px minmax(0,1fr) 91px;gap:2px 8px;padding:11px 0;min-height:62px}.rank-number{grid-row:1/3}.rank-name{font-size:12px;line-height:1.4;align-self:end}.rank-value{font-size:12px;grid-column:3;grid-row:1/3}.rank-track{grid-column:2;grid-row:2;height:5px;margin-top:7px}.rank-fill{height:5px}.rank-zero{top:-2px;bottom:-2px}.selected-rank{padding:11px 12px;align-items:center;font-size:11px}.selected-rank strong{white-space:nowrap}.stats-grid{grid-template-columns:1fr;gap:10px}.stat-card{padding:16px 18px;display:grid;grid-template-columns:1fr auto;gap:0 10px;align-items:center}.stat-card .stat-value{grid-column:2;grid-row:1/3;font-size:27px;margin:0;white-space:nowrap}.stat-card .stat-label{grid-column:1;font-size:11px}.stat-card .stat-context{grid-column:1;font-size:9px;margin-top:5px}.two-columns{gap:16px}.chart{height:245px}.decomp-row strong{font-size:20px}.decomp-row span{font-size:11px}.decomp-row small{font-size:9px}.revenue-stats{gap:13px}.revenue-stats .stat-value{font-size:23px}.revenue-stats .stat-label{font-size:10px}.province-revenue{gap:20px}.province-revenue p{font-size:12px}.fiscal-panel .stats-grid .stat-value{font-size:22px}.editorial-reading{padding-left:17px;margin:28px 0}.editorial-reading h3{font-size:23px}.editorial-reading p{font-size:12px}.scenario-badge{font-size:10px}.simulation-layout{grid-template-columns:1fr;gap:20px}.simulation-controls{padding:24px}.shock-value output{font-size:70px}.simulation-result{padding-top:10px}.simulation-result .stats-grid{grid-template-columns:1fr 1fr;gap:10px}.simulation-result .stat-card{display:block;padding:18px 14px}.simulation-result .stat-value{font-size:27px;margin:10px 0 8px;white-space:normal;overflow-wrap:anywhere}.simulation-result .stat-context{font-size:10px}.simulation-result h3{font-size:24px}.sim-bar-row>div:first-child{flex-wrap:nowrap;font-size:11px}.sim-bar-row strong{flex-basis:auto;font-size:12px}.site-footer{margin-top:40px;padding:24px 0;gap:18px}.site-footer>div:nth-child(2){gap:18px}.site-footer .text-button{padding:0}.site-footer p{font-size:9px}.methodology{padding:30px 20px}.methodology h1{font-size:29px}}
@media(max-width:359px){.header-inner{padding-inline:12px;gap:8px}.brand small{display:none}.municipality-picker select{width:153px}.brand strong{font-size:14px}.brand-mark{width:31px;height:31px}.main-nav button{font-size:9px}main{padding-inline:13px}.map-panel{padding:16px 13px}.overview-reading h2{font-size:28px}.rank-row{grid-template-columns:20px minmax(0,1fr) 82px;gap:2px 5px}.simulation-result .stat-value{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.sim-live{font-size:12px;font-weight:700;color:var(--teal);background:var(--teal-soft);padding:10px 12px;border-radius:9px;margin:-8px 0 18px;font-variant-numeric:tabular-nums}.chart text{font-size:11px}.chart-caption{font-size:11px}.methodology h2{scroll-margin-top:25px}
/* One reading scale across views and devices. Space adapts before text shrinks. */
:root{font-size:16px;--text-reading:1rem;--text-label:.875rem;--text-axis:.8125rem;--text-eyebrow:.75rem;--muted:#566760}
body{font-size:var(--text-reading)}
.lead,.reading-note p,.insight p,.province-revenue p,.fiscal-panel p,.editorial-reading p,.simulation-controls p,.section-heading p,.methodology p,.methodology li{font-size:var(--text-reading);line-height:1.7}
.small-note,.municipality-heading p,.stat-label,.stat-context,.stat-inline,.chart-caption,.map-panel .chart-caption,.ranking-context p,.selected-rank,.rank-number,.rank-name,.rank-value,.chart-key,.chart-tip,.map-tooltip,.map-legend,.map-selection,.map-selection span,.decomp-row span,.decomp-row small,.revenue-stats .stat-label,.stat-card .stat-label,.stat-card .stat-context,.simulation-result .stat-context,.sector-name,.sector-value,.range-labels,.scenario-badge,.coverage-tag,.sim-live,.sim-bar-row>div:first-child,.sim-bar-row strong,.province-pulse span,.province-pulse small,.site-footer strong,.site-footer span,.site-footer>p,.site-footer a,.site-footer button,.toast,small{font-size:var(--text-label);line-height:1.55}
.button,.text-button,.choices button,.map-metrics button,.category-choices button,.metric-choices button,.ranking-context .text-button,.fiscal-choices button,.map-locate,.province-link,.municipality-picker>span{font-size:var(--text-label);min-height:44px}
.eyebrow,.panel-heading .eyebrow,.map-panel .panel-heading .eyebrow,.municipality-heading .eyebrow,.insight .number{font-size:var(--text-eyebrow);letter-spacing:.08em}
.chart text,.chart .hover-label{font-size:var(--text-axis)}
.brand small{font-size:var(--text-eyebrow)}
.main-nav button{font-size:var(--text-label)}
.map-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.map-selection{flex-wrap:wrap}
.rank-row{grid-template-columns:34px minmax(130px,1fr) minmax(60px,1.4fr) minmax(108px,max-content)}
.selected-rank{flex-wrap:wrap}
.selected-rank strong{white-space:normal}
.ranking-context{flex-wrap:wrap}
.ranking-context .text-button{white-space:normal}
.chart-key{flex-wrap:wrap;gap:8px 18px}
.sim-bar-row>div:first-child{flex-wrap:wrap}
.chart{height:270px}
@media(min-width:1101px){.map-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:820px){
  .insights-grid{grid-template-columns:1fr}
  .overview-layout{grid-template-columns:1fr}
  .overview-reading h2{max-width:28ch}
  .map-panel{padding:22px}
  .map-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
  .map-canvas{height:380px}
  .stat-card{padding:18px}
  .stats-grid{grid-template-columns:1fr}
  .revenue-stats{gap:18px}
  .simulation-layout{grid-template-columns:1fr}
  .simulation-result .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .header-inner{gap:10px}
  .brand strong{font-size:17px}
  .municipality-picker select{width:clamp(135px,40vw,180px)}
  .main-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding-inline:8px}
  .main-nav button{padding:8px 1px;gap:5px;min-height:60px;letter-spacing:-.035em}
  .main-nav button svg{width:20px;height:20px}
  .municipality-heading .eyebrow{line-height:1.6}
  .municipality-heading h1{overflow-wrap:anywhere}
  .overview-stat .stat-value{font-size:30px}
  .stat-card{display:block}
  .stat-card .stat-value{font-size:30px;margin:10px 0;white-space:normal;overflow-wrap:anywhere}
  .stat-card .stat-context{margin-top:8px}
  .map-panel{padding:20px 17px}
  .map-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .map-canvas{height:340px}
  .map-zoom button{width:44px;height:44px}
  .map-locate{padding-inline:10px}
  .legend-gradient{width:65px}
  .missing-key{margin-left:0}
  .ranking-top h2,.panel-heading h2,.map-panel .panel-heading h2{font-size:22px}
  .rank-row{grid-template-columns:22px minmax(0,1fr);gap:4px 10px;padding-block:14px}
  .rank-name{grid-column:2;grid-row:1;align-self:auto}
  .rank-number{grid-row:1/4;align-self:start}
  .rank-value{grid-column:2;grid-row:2;text-align:left;font-size:16px}
  .rank-track{grid-column:2;grid-row:3;margin-top:5px}
  .revenue-stats{grid-template-columns:1fr;gap:16px}
  .revenue-stats>div{border-top:1px solid var(--line);padding-top:12px}
  .revenue-stats .stat-value{font-size:28px}
  .simulation-result .stats-grid{grid-template-columns:1fr}
  .simulation-result .stat-card{padding:20px}
  .simulation-result .stat-value,.fiscal-panel .stats-grid .stat-value{font-size:30px}
  .sim-bar-row strong{flex-basis:100%;font-size:16px}
  .site-footer>div:nth-child(2){gap:10px 20px}
  .site-footer a,.site-footer button{display:inline-flex;align-items:center;min-height:44px}
  .site-footer>p{font-size:var(--text-label)}
}
@media(max-width:359px){
  .main-nav{padding-inline:3px;gap:0}
  .main-nav button{font-size:13px;letter-spacing:-.04em}
  .brand strong{font-size:16px}
  .overview-stats{grid-template-columns:1fr}
  .province-pulse{grid-template-columns:1fr}
}

.fiscal-bars{margin:24px 0}.fiscal-reading{margin-top:28px}.fiscal-reading h3{font-size:22px}.fiscal-reading p{max-width:78ch}.fiscal-panel .stats-grid{row-gap:16px}

#fiscal-panel{scroll-margin-top:calc(var(--header-height) + 16px)}

/* Dated publication evidence, kept separate from fiscal results. */
#transparency-panel{scroll-margin-top:calc(var(--header-height) + 16px)}
.transparency-panel{border-top:3px solid var(--ranking)}
.transparency-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:36px;margin:28px 0}
.transparency-panel h3{font-size:20px;line-height:1.4;letter-spacing:-.025em}
.transparency-panel p,.ranking-summary{font-size:var(--text-reading);line-height:1.7;color:var(--muted)}
.transparency-period{margin:20px 0}
.transparency-period>div:first-child{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:var(--text-label)}
.transparency-period strong{font-size:22px;line-height:1.2;color:var(--ranking);font-variant-numeric:tabular-nums}
.transparency-track{height:8px;border-radius:6px;background:#e6eaf3;margin:12px 0;overflow:hidden}
.transparency-track>span{display:block;height:100%;background:var(--ranking);border-radius:6px;animation:transparency-reveal .4s ease-out;transform-origin:left}
.transparency-period:first-of-type .transparency-track>span{background:#91a4cc}
.transparency-components{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.transparency-component{padding:20px;border:1px solid #dce2f0;border-radius:14px;min-width:0}
.transparency-component h3{font-size:18px;margin-bottom:12px;min-height:2.8em}
.transparency-component strong{font-size:20px;font-variant-numeric:tabular-nums;color:var(--ranking)}
.transparency-component p{margin-bottom:0}
.transparency-current{display:flex;gap:24px;align-items:center;flex-wrap:wrap;padding:22px;margin-top:24px;background:#edf1fb;border-radius:14px}
.transparency-current>div{flex:1 1 320px;min-width:0}
.transparency-current p{margin:8px 0 0}
.transparency-current .text-button{color:var(--ranking)}
.transparency-panel .chart-caption{font-size:var(--text-label)}
.ranking-summary{padding:18px 22px;background:var(--ranking-soft);border-radius:14px}
@keyframes transparency-reveal{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(min-width:1101px){.map-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:820px){.transparency-overview{grid-template-columns:1fr;gap:12px}.transparency-components{grid-template-columns:repeat(2,minmax(0,1fr))}.map-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.transparency-components{grid-template-columns:1fr}.transparency-component h3{min-height:0}.transparency-current{padding:18px;gap:8px}.map-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.map-metrics button:last-child{grid-column:1/-1}}

/* General comparison has its own navigation and reference hierarchy. */
:root{--ranking:#3455a0;--ranking-soft:#edf1fb}
.main-nav .general-ranking{margin-left:auto;color:var(--ranking);background:var(--ranking-soft);border:1px solid #cbd5ef}
.main-nav .general-ranking:hover{background:#dfe7fa}
.main-nav .general-ranking[aria-current=page]{background:var(--ranking);border-color:var(--ranking);color:#fff}
.ranking-view .municipality-heading h1{color:var(--ranking)}
.ranking-view .municipality-heading p{font-size:var(--text-reading);line-height:1.6;max-width:60ch}
.ranking-view .municipality-picker{flex-direction:column;align-items:flex-start;gap:3px}
.ranking-view .municipality-picker>span{display:block;min-height:0;color:var(--ranking);font-size:var(--text-label)}
.ranking-tools{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.ranking-tools .category-choices{flex:1;margin:0;min-width:0}
.ranking-tools>#download-ranking{flex-shrink:0}
.ranking-view .selected-rank{color:var(--ranking);background:var(--ranking-soft);border:1px solid #d4ddf2;align-items:center;gap:16px}
.rank-reference-info,.rank-reference-detail{display:flex;flex-direction:column;gap:4px;min-width:0}
.rank-reference-info{flex:1}
.rank-reference-label{color:var(--muted)}
.rank-reference-info>strong{font-size:18px}
.rank-reference-detail{align-items:flex-end}
.rank-reference-detail>strong{font-size:20px;font-variant-numeric:tabular-nums}
.rank-reference-detail .text-button{color:var(--ranking);padding:4px 0;text-align:right}
.ranking-view .rank-row.is-selected{background:var(--ranking-soft)}
@media(max-width:620px){
  .main-nav .general-ranking{margin-left:0;width:100%;letter-spacing:-.035em}
  .nav-ranking-tail{display:block}
  .ranking-tools{flex-direction:column;gap:12px}
  .ranking-tools .category-choices{width:100%}
  .ranking-tools>#download-ranking{align-self:flex-end}
  .rank-reference-detail{align-items:flex-start}
  .rank-reference-detail .text-button{text-align:left}
  .rank-reference-info,.rank-reference-detail{flex-basis:100%}
}

.fiscal-periods{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.fiscal-periods button{min-height:44px;padding:10px 16px;border:1px solid var(--line,#e2e8f0);border-radius:10px;background:#fff;color:var(--ink,#182f2a);font:inherit}.fiscal-periods button[aria-pressed="true"]{background:#e6eee9;border-color:#527c70;font-weight:600}.period-notice{padding:14px 16px;border-left:3px solid #5474a3;background:#eef2f8;border-radius:0 8px 8px 0}
.management-shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}.management-shortcuts[hidden]{display:none}#management-panel .panel{min-width:0}#management-panel h2{font-size:clamp(24px,3vw,32px);line-height:1.25}#management-panel p,#management-panel li{font-size:16px;line-height:1.65}#management-panel li+li{margin-top:12px}#management-panel section{scroll-margin-top:220px}#management-shortcuts .button{font-size:16px}#fiscal-panel{scroll-margin-top:220px}

/* A lighter red keeps negative values readable on dark tooltip backgrounds. */
.map-tooltip,.chart-tip{--red:#ffaaa3}

/* Switching dashboards stays visible beside the fixed municipal controls. */
.header-actions{order:1;margin-left:auto}
.province-link{display:inline-flex;order:2;align-items:center;justify-content:center;gap:10px;flex-shrink:0;min-height:44px;padding:10px 16px;border:1px solid var(--teal);border-radius:10px;background:var(--teal);color:var(--white);font-size:15px;line-height:1.25;font-weight:700;text-decoration:none}
.province-link span{margin:0}
.dashboard-links{display:flex;order:2;gap:8px;flex-shrink:0}.dashboard-links .province-link{font-size:13px;padding:10px 12px}
@media(max-width:820px){.dashboard-links{grid-column:2;grid-row:1}.dashboard-links .province-link{font-size:12px;padding:8px;gap:5px}}
.province-link:hover{background:var(--ink);border-color:var(--ink)}
@media(max-width:820px){
  .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px}
  .header-inner .brand{grid-column:1;grid-row:1;min-width:0}
  .header-inner .brand>span:last-child{min-width:0}
  .province-link{grid-column:2;grid-row:1;padding-inline:12px}
  .header-actions{grid-column:1/-1;grid-row:2;margin-left:0;width:100%}
  .municipality-picker{width:100%;gap:12px}
  .municipality-picker>span{display:block;font-size:14px;min-height:0}
  .municipality-picker select{flex:1;width:100%;min-width:0;max-width:none}
}
@media print{.province-link{display:none}}

.municipality-heading{flex-wrap:wrap}
.report-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:0;max-width:100%}
.report-action-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#export-report{width:auto;margin-top:0}
#export-report-label{display:inline}
#export-report{background:var(--teal);font-size:15px;gap:9px}
#export-report svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}
#export-report[aria-disabled=true]{opacity:.65;cursor:wait}
.municipality-heading #report-scope{font-size:13px;line-height:1.5;max-width:52ch}
@media(max-width:620px){
  .report-actions{align-items:stretch;width:100%}
  .report-action-buttons{display:grid;grid-template-columns:minmax(0,1fr) auto}
  #export-report{padding:10px 12px;line-height:1.4;min-height:48px}
  .report-action-buttons #share{width:48px;height:48px;padding:10px}
  .report-action-buttons #share{margin-top:0}
  .report-action-buttons #share span{display:none}
}

/* Population and salary explanations remain visible at every screen size. */
.community-panel { scroll-margin-top: calc(var(--header-height) + 16px); }
.community-panel h2 { margin-bottom: 16px; }
.community-panel h3 { margin: 28px 0 14px; }
.community-panel > p { max-width: 90ch; line-height: 1.65; }
.community-panel .stats-grid { margin: 22px 0; }
.community-panel .community-social { grid-template-columns: repeat(2,minmax(0,1fr)); }
.data-sources { font-size: 1rem; line-height: 1.65; overflow-wrap: anywhere; }
.data-sources a { color: var(--teal, #0a192f); text-underline-offset: 3px; }
@media(max-width:600px) { .community-panel .community-social { grid-template-columns: 1fr; } }
.price-panel,.coverage-card{scroll-margin-top:calc(var(--header-height) + 16px)}
.price-panel>p{max-width:90ch;line-height:1.65}.price-panel h2{margin-bottom:16px}.price-label{margin:20px 0 10px}.price-unit{padding:14px;background:#f1f5f9;border-radius:12px}
.price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}.price-card{border:1px solid #e2e8f0;border-radius:16px;padding:22px;min-width:0}.price-card h3{margin:0 0 10px}.price-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.price-values span,.price-values strong{display:block}.price-values strong{font-size:clamp(19px,2.2vw,25px);margin-top:8px;overflow-wrap:anywhere}.price-values span{font-size:15px}.price-change{line-height:1.65}.price-change strong{font-size:20px}.price-card .chart-caption{font-size:15px}.price-panel .choices{flex-wrap:wrap}.price-panel button:disabled{opacity:.55;cursor:default}
.price-calculator{border-top:1px solid #e2e8f0;margin-top:28px;padding-top:24px}.price-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.price-inputs label{display:grid;gap:8px;min-width:0}.price-inputs input{width:100%;min-width:0;max-width:100%;padding:12px;border:1px solid #baccc3;border-radius:10px;font:inherit;font-size:16px;background:#fff;color:#203b37;box-sizing:border-box}.price-calculation{padding:18px;background:#f1f5f9;border-radius:12px;line-height:1.65}.price-calculation strong,.price-calculation span{display:block}.price-calculation span{margin-top:10px}
.coverage-page{max-width:1100px;padding:28px 24px;margin:0 auto}.coverage-page h1{margin:30px 0 20px}.coverage-page p,.coverage-page li{font-size:17px;line-height:1.65}.coverage-page ul{padding-left:22px}.coverage-page li+li{margin-top:8px}.coverage-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.coverage-summary p{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:20px}.coverage-summary strong{font-size:32px;display:block}.coverage-list{display:grid;gap:18px}.coverage-card{padding:22px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.coverage-card h2{font-size:23px;margin:0 0 12px}.coverage-card a{color:#0a192f}.coverage-card .chart-caption{font-size:15px}
.coverage-topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;margin:24px 0}.coverage-topics h3{font-size:20px;line-height:1.35;margin:0 0 12px}.coverage-topics p{margin:0}.coverage-page a{overflow-wrap:anywhere}.coverage-page .button{white-space:normal;margin:5px 4px 5px 0}
@media(max-width:800px){.price-grid{grid-template-columns:1fr}.coverage-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.price-inputs{grid-template-columns:1fr}.price-card{padding:18px}.coverage-page{padding:20px 16px}.coverage-summary{gap:10px}.coverage-summary p{padding:14px}.coverage-card{padding:18px}.price-values{gap:12px}}

/* The PDF's supporting tables remain readable without horizontal scrolling. */
.detail-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:16px;font-variant-numeric:tabular-nums}.detail-table caption{text-align:left;font-size:20px;font-weight:700;color:var(--ink);line-height:1.3;margin-bottom:14px}.detail-table th,.detail-table td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}.detail-table thead th{background:var(--paper);font-size:15px;text-align:right}.detail-table thead th:first-child,.detail-table tbody th{text-align:left}.detail-table tbody th{font-weight:400}.detail-table td{text-align:right}.detail-value{font-weight:700}.sector-value small{display:block;font-size:14px;font-weight:400;color:var(--muted)}.insight p{line-height:1.65}.insight p strong{font-weight:700}
@media(max-width:600px){.detail-table,.detail-table tbody{display:block}.detail-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.detail-table caption{display:block}.detail-table tr{display:block;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}.detail-table tbody th{display:block;background:var(--paper);font-weight:700;border:0}.detail-table td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;text-align:right;border:0;padding:12px}.detail-table td::before{content:attr(data-label);text-align:left;font-weight:400;color:var(--muted)}.detail-table td+td{border-top:1px solid var(--line)}.detail-table .detail-value{align-self:center;overflow-wrap:anywhere}.detail-table th{padding:12px}}

/* Annual authorizations retain their own year, cutoff and nominal unit. */
.annual-budget{border-top:4px solid var(--teal,#0a192f);scroll-margin-top:210px}
.annual-budget h2{font-size:clamp(1.4rem,3vw,1.85rem);line-height:1.25;margin:8px 0 12px}
.annual-budget-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px;margin:24px 0;padding:22px 0;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}
.annual-budget-grid>div{min-width:0}
.annual-budget-amount,.annual-budget-per-capita{display:block;font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.25;margin:8px 0;color:#0a192f;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.annual-budget-amount>span:last-child{font-size:1rem;font-weight:500}
.annual-budget .stat-label,.annual-budget .stat-context,.annual-budget p,.annual-budget a,.annual-budget button{font-size:1rem;line-height:1.55}
.annual-budget-links{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.budget-status{background:#fff2d8;border-left:3px solid #9b5c10;padding:12px 16px;color:#65400e}
.budget-catalog-value{font-size:1.45rem;font-weight:700;color:#0a192f;overflow-wrap:anywhere}
#rankings{--text-label:1rem}
.report-builder{--text-label:1rem}
.report-builder-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,.85fr);gap:24px;align-items:start}
.report-topics{border:0;padding:0;margin:0;min-width:0}
.report-topics legend{font-size:18px;font-weight:700;margin-bottom:16px}
.report-options{display:grid;gap:12px}
.report-option{display:flex;gap:14px;padding:18px;border:1px solid var(--line);border-radius:14px;background:white;cursor:pointer;min-width:0}
.report-option.is-chosen{background:#f1f5f9;border-color:#8b9db4}
.report-option input{width:22px;height:22px;margin:3px 0 0;flex:none;accent-color:var(--teal)}
.report-option>span{min-width:0}.report-option strong,.report-option span span,.report-option small{display:block;font-size:16px;line-height:1.5}
.report-option span span{margin:5px 0;color:var(--muted)}.report-option small{color:var(--teal)}
.report-download-panel h3{font-size:22px;line-height:1.4}.report-download-panel ol{padding-left:22px;font-size:16px;line-height:1.6}
.report-download-panel li{margin:9px 0}.report-download-panel .button{width:100%;font-size:16px;text-align:center;white-space:normal}
.report-download-panel [aria-disabled=true]{opacity:.6;cursor:wait}
#report-download-status{font-size:16px;margin-top:16px;overflow-wrap:anywhere}
#price-cards{grid-template-columns:1fr;max-width:850px}
#price-indicators button{font-size:16px}
@media(min-width:1000px){.report-download-panel{position:sticky;top:calc(var(--header-height,170px) + 20px)}}
@media(max-width:800px){.report-builder-layout{grid-template-columns:1fr}.report-option{padding:16px}.report-download-panel{position:static;grid-row:1}}
.budget-ranking-controls{margin:20px 0;padding:20px;border:1px solid #cbd5e1;border-radius:16px;background:#f1f5f9}
.budget-ranking-controls h2{font-size:1rem;line-height:1.5;margin:0 0 12px;font-weight:700}
.budget-ranking-controls .choices{display:flex;flex-wrap:wrap;gap:8px}
.budget-ranking-controls .choices button{min-height:44px;font-size:1rem;line-height:1.45;white-space:normal;text-align:left}
.budget-ranking-controls p{font-size:1rem;line-height:1.6;margin:14px 0 0;max-width:80ch}
.rank-name .rank-row-context{display:block;font-size:1rem;font-weight:400;line-height:1.5;color:var(--muted);margin-top:4px}
.rank-name{min-width:0;overflow-wrap:anywhere}
.rank-reference-info>span{line-height:1.5}
.ranking-reading{margin:18px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ranking-reading h3{font-size:18px;line-height:1.5;letter-spacing:0;margin:0 0 8px}
.ranking-reading p{font-size:16px;line-height:1.65;max-width:82ch;margin:0 0 12px}
.ranking-color-key{display:flex;flex-wrap:wrap;gap:8px 22px}
.ranking-key-item{display:inline-flex;align-items:center;gap:8px;font-size:16px;line-height:1.5}
.ranking-key-item i{width:10px;height:10px;flex:none;background:currentColor;border-radius:50%}
.ranking-panel .neutral{color:var(--muted)}
.rank-fill.negative{background:var(--red)}
.rank-fill.positive{background:var(--teal)}
.rank-fill.neutral,.rank-fill.muted{background:var(--muted)}
.rank-assessment-label{font-size:16px;line-height:1.5}
@media(max-width:600px){.budget-ranking-controls{padding:16px}.budget-ranking-controls .choices button{width:100%}.rank-name .rank-row-context{margin-top:6px}}
@media(max-width:600px){.annual-budget-grid{grid-template-columns:1fr;gap:22px}.annual-budget{scroll-margin-top:220px}.annual-budget .detail-table td{overflow-wrap:anywhere}.annual-budget-links{align-items:flex-start;flex-direction:column}.annual-budget-amount,.annual-budget-per-capita{font-size:1.75rem}}
