:root{
  --orange:#ff7a00;--orange2:#ff9a2e;--black:#050505;--ink:#111;--paper:#f3f2ed;
  --white:#fff;--muted:#6d6b66;--line:#cbc8be;--green:#0f9f68;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --sans:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
}
*{box-sizing:border-box}
html{background:var(--paper);scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
button{font:inherit}
.signal-line{height:5px;background:linear-gradient(90deg,var(--orange) 0 24%,#eee 24% 25%,#262626 25% 100%)}
.masthead{height:64px;background:#050505;color:#fff;display:flex;align-items:center;padding:0 max(20px,calc((100vw - 1380px)/2));border-bottom:1px solid #2c2c2c}
.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}
.brand-mark{width:36px;height:36px;display:grid;place-items:center;background:var(--orange);color:#000;font:900 12px/1 var(--mono)}
.brand>span:last-child{display:grid;gap:3px}
.brand strong{font-size:15px}.brand small{color:#929292;font:700 8px/1 var(--mono);letter-spacing:1.2px}
.home-link{margin-left:auto;color:#aaa;text-decoration:none;font:800 10px/1 var(--mono);letter-spacing:.4px}
.home-link:hover{color:var(--orange)}
.page{max-width:1380px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line);background:#fff}
.hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr);background:#080808;color:#fff;border-bottom:6px solid var(--orange)}
.hero>div:first-child{min-height:310px;padding:45px 44px 42px;background-image:linear-gradient(#1b1b1b 1px,transparent 1px),linear-gradient(90deg,#1b1b1b 1px,transparent 1px);background-size:74px 74px}
.eyebrow{margin:0 0 15px;color:var(--orange);font:900 10px/1 var(--mono);letter-spacing:1.5px}
.hero h1{margin:0;font-size:clamp(42px,5.3vw,72px);line-height:.98;letter-spacing:-4px}.hero h1 span{color:var(--orange)}
.lede{max-width:720px;margin:23px 0 0;color:#c8c8c8;font-size:13px;line-height:1.75}
.formula-card{padding:32px 28px;background:#111;border-left:1px solid #333;display:flex;flex-direction:column;justify-content:center}
.formula-label{color:#999;font:800 9px/1 var(--mono);letter-spacing:1.3px;margin-bottom:23px}
.formula-card strong{font-size:17px;line-height:1.45}.formula-card i{height:1px;background:var(--orange);margin:12px 0;width:100%}
.formula-card p{margin:22px 0 0;color:#999;font-size:10px;line-height:1.65}
.controls{display:flex;align-items:end;gap:22px;padding:19px 22px;background:#eeece5;border-bottom:1px solid #9d9a90}
.control-block{display:grid;gap:7px}.control-label{font:800 9px/1 var(--mono);letter-spacing:.8px;color:#5d5a54}
.segmented{display:flex;border:1px solid #777;background:#fff}.segmented button{border:0;border-right:1px solid #aaa;background:#fff;padding:9px 19px;cursor:pointer;font:900 11px/1 var(--mono)}
.year-tabs{max-width:min(610px,52vw);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.year-tabs::-webkit-scrollbar{display:none}.year-tabs button{flex:0 0 auto;padding-inline:15px}
.segmented button:last-child{border-right:0}.segmented button.active{background:#090909;color:var(--orange)}.segmented.compact button{padding-inline:14px}
.export-btn{margin-left:auto;padding:9px 14px;border:1px solid #181818;background:#181818;color:#fff;cursor:pointer;font:800 10px/1 var(--mono)}
.export-btn:hover{background:var(--orange);color:#000}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #aaa}
.stat{min-height:105px;padding:19px 20px;border-right:1px solid #bbb;background:#fff}.stat:last-child{border-right:0}
.stat span{display:block;color:#777;font:800 9px/1 var(--mono);letter-spacing:.7px}.stat strong{display:block;margin-top:13px;font:900 29px/1 var(--mono);letter-spacing:-1.5px}.stat small{display:block;margin-top:8px;color:#8d8a83;font-size:9px}
.panel{background:#fff;border-bottom:1px solid #aaa}
.chart-panel{padding:24px 22px 22px}
.panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.panel-head.small{margin-bottom:8px}
.panel-kicker{display:block;color:var(--orange);font:900 9px/1 var(--mono);letter-spacing:1.2px}
.panel-head h2{margin:7px 0 0;font-size:22px;letter-spacing:-.7px}.panel-head h2 small{font-size:.55em;color:#777;font-weight:800;letter-spacing:0}.panel-head p{margin:0;color:#777;font-size:10px}
.legend{display:flex;gap:13px;flex-wrap:wrap;justify-content:flex-end;font:800 9px/1 var(--mono);color:#666}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:12px;height:12px;border:1px solid rgba(0,0,0,.14)}
.l1{background:#e9e7df}.l2{background:#ffc67e}.l3{background:#ff9b3d}.l4{background:#ef6920}.l5{background:#9e2d15}
.chart-note{margin:-2px 0 13px;color:#888;font-size:9px}
.treemap{position:relative;width:100%;height:610px;overflow:hidden;background:#e9e7df;border:1px solid #202020}
.tile{position:absolute;overflow:hidden;border:1px solid rgba(255,255,255,.88);cursor:pointer;transition:filter .12s,transform .12s;min-width:1px;min-height:1px;text-align:left;padding:0}
.tile:hover,.tile:focus-visible{filter:brightness(.92);z-index:3;outline:3px solid #111;outline-offset:-3px}
.tile.selected{outline:4px solid #050505;outline-offset:-4px;z-index:2}
.tile-inner{height:100%;width:100%;padding:10px 9px 8px;display:flex;flex-direction:column;justify-content:space-between;gap:4px;overflow:hidden}
.tile-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900;font-size:clamp(10px,1.25vw,17px);line-height:1.05}
.tile-ratio{display:block;max-width:100%;white-space:nowrap;font:900 clamp(12px,1.7vw,24px)/1 var(--mono);letter-spacing:-1px;font-variant-numeric:tabular-nums}
.tile-ratio small{font-size:.52em;margin-left:2px}.tile-meta{font:700 8px/1 var(--mono);opacity:.72;white-space:nowrap}
.tile.compact .tile-inner{padding:6px 6px 5px;gap:2px}.tile.compact .tile-name{font-size:13px}.tile.compact .tile-ratio{font-size:17px;letter-spacing:-.7px}.tile.compact .tile-meta{display:block;font-size:7px}
.tile.tiny .tile-inner{padding:4px 4px 3px;gap:1px}.tile.tiny .tile-name{font-size:11px}.tile.tiny .tile-ratio{font-size:14px;letter-spacing:-.55px}.tile.tiny .tile-meta{display:block;font-size:6px}
.tile.micro .tile-inner{padding:3px 3px 2px;gap:1px}.tile.micro .tile-name{font-size:9px;line-height:1}.tile.micro .tile-ratio{font-size:11px;letter-spacing:-.45px}.tile.micro .tile-ratio small{display:none}.tile.micro .tile-meta{display:block;font-size:5px}
.pressure-1{background:#e9e7df;color:#111}.pressure-2{background:#ffc67e;color:#15100b}.pressure-3{background:#ff9b3d;color:#130d08}.pressure-4{background:#ef6920;color:#fff}.pressure-5{background:#9e2d15;color:#fff}
.scissors-1{background:#176d4d;color:#fff}.scissors-2{background:#b9ddcd;color:#102c22}.scissors-3{background:#ffd6a1;color:#26170b}.scissors-4{background:#ef7a2b;color:#fff}.scissors-5{background:#9e2d15;color:#fff}
.scissors-legend .l1{background:#176d4d}.scissors-legend .l2{background:#b9ddcd}.scissors-legend .l3{background:#ffd6a1}.scissors-legend .l4{background:#ef7a2b}.scissors-legend .l5{background:#9e2d15}
.treemap-empty{position:absolute;inset:0;display:grid;place-items:center;padding:30px;text-align:center;color:#777;background:#f3f1eb;font-size:12px;line-height:1.7}
[hidden]{display:none!important}
.dimension-tabs button{min-width:92px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #999}.detail-grid .panel{border-bottom:0}.detail-card{padding:22px;border-right:1px solid #aaa;min-height:285px}.trend-card{padding:22px;min-height:285px}
.empty-state{height:100%;min-height:235px;display:grid;place-items:center;color:#999;border:1px dashed #bbb;font-size:11px}
.detail-top{display:flex;align-items:flex-start;justify-content:space-between}.detail-top h3{margin:0;font-size:27px;letter-spacing:-1px}.detail-ratio{text-align:right}.detail-ratio strong{display:block;font:900 38px/1 var(--mono);color:var(--orange)}.detail-ratio span{font:700 8px/1 var(--mono);color:#777}
.detail-math{margin-top:18px;border-top:1px solid #ccc;border-bottom:1px solid #ccc;padding:14px 0;font:800 12px/1.75 var(--mono)}
.detail-math .num{color:#222}.detail-math .result{color:var(--orange);font-size:16px}.approx{display:inline-block;margin-left:6px;padding:2px 5px;background:#eee;color:#666;font:800 8px/1 var(--mono)}
.detail-gridnums{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px}.detail-num{padding-right:12px}.detail-num+ .detail-num{border-left:1px solid #ddd;padding-left:12px}
.detail-num span{display:block;color:#888;font-size:9px}.detail-num strong{display:block;margin-top:5px;font:900 15px/1.2 var(--mono)}
.trend-chart{height:205px;display:flex;align-items:flex-end;gap:10px;padding:16px 10px 5px;border-top:1px solid #ddd}
.trend-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:7px}.trend-value{font:900 13px/1 var(--mono);text-align:center}
.trend-bar-wrap{height:140px;background:#efeee9;display:flex;align-items:flex-end}.trend-bar{width:100%;background:#111;min-height:2px}.trend-col.active .trend-bar{background:var(--orange)}
.trend-year{text-align:center;color:#777;font:800 9px/1 var(--mono)}
.trend-bar-wrap.signed{position:relative;display:block;overflow:hidden;background:#f0efe9}
.trend-zero{position:absolute;left:0;right:0;top:50%;height:1px;background:#9a978f;z-index:1}
.trend-bar.signed{position:absolute;left:0;width:100%;min-height:2px;z-index:2}
.trend-bar.signed.positive{background:#c44d20}.trend-bar.signed.negative{background:#16845b}
.trend-col.signed.active .trend-bar.signed.positive{background:var(--orange)}.trend-col.signed.active .trend-bar.signed.negative{background:#0f9f68}
.trend-empty{width:100%;height:100%;display:grid;place-items:center;color:#999;font-size:10px}
.table-panel{padding:23px 22px 28px}.table-wrap{overflow:auto;border:1px solid #aaa}
table{border-collapse:collapse;width:100%;min-width:960px;font-size:11px}th,td{padding:10px 11px;border-bottom:1px solid #ddd;border-right:1px solid #e5e3dc;text-align:right;white-space:nowrap}th:last-child,td:last-child{border-right:0}
th{position:sticky;top:0;background:#101010;color:#ddd;cursor:pointer;font:800 9px/1 var(--mono);letter-spacing:.35px}th:hover{color:var(--orange)}
th:nth-child(2),td:nth-child(2){text-align:left}.table-rank{color:#888;font:800 10px/1 var(--mono)}.table-province{font-weight:900}.ratio-cell{font:900 12px/1 var(--mono)}.up{color:#b8401d}.down{color:#16845b}.flat{color:#777}
tbody tr{cursor:pointer}tbody tr:hover{background:#fff2e4}tbody tr.selected{background:#ffe3c1}
.methodology{display:grid;grid-template-columns:190px 1fr 220px;gap:0;background:#111;color:#ddd;border-bottom:5px solid var(--orange)}
.method-no{padding:27px 20px;color:var(--orange);font:900 10px/1.4 var(--mono);letter-spacing:1px;border-right:1px solid #333}.methodology>div:nth-child(2){padding:26px 30px}
.methodology h2{margin:0 0 15px;color:#fff;font-size:21px}.methodology p{margin:0 0 10px;color:#aaa;font-size:10px;line-height:1.8}.methodology strong{color:#fff}.methodology .disclaimer{color:#ddd;font-weight:800}
.update-box{padding:27px 20px;border-left:1px solid #333;display:flex;flex-direction:column}.update-box span{color:#777;font:800 8px/1 var(--mono);letter-spacing:1px}.update-box strong{margin-top:12px;color:#fff;font:900 28px/1 var(--mono)}.update-box small{margin-top:8px;color:#999}.update-box em{margin-top:auto;color:var(--orange);font:800 9px/1 var(--mono);font-style:normal}
footer{max-width:1380px;margin:0 auto;background:#050505;color:#888;display:flex;justify-content:space-between;gap:20px;padding:22px;border-left:1px solid #292929;border-right:1px solid #292929;font:700 9px/1 var(--mono)}footer span:first-child{color:#fff}
@media(max-width:900px){
  .controls{flex-wrap:wrap}
  .hero{grid-template-columns:1fr}.formula-card{border-left:0;border-top:1px solid #333}
  .controls{align-items:stretch;flex-wrap:wrap}.export-btn{margin-left:0}
  .stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid #bbb}
  .detail-grid{grid-template-columns:1fr}.detail-card{border-right:0;border-bottom:1px solid #aaa!important}
  .methodology{grid-template-columns:1fr}.method-no,.update-box{border:0}.method-no{border-bottom:1px solid #333}.update-box{border-top:1px solid #333}.update-box em{margin-top:18px}
}
@media(max-width:620px){
  .signal-line{height:4px}.masthead{height:58px;padding:0 13px}.page{border:0}
  .hero>div:first-child{min-height:0;padding:34px 18px 31px;background-size:54px 54px}.hero h1{font-size:43px;letter-spacing:-2.5px}.lede{font-size:11px}
  .formula-card{padding:25px 18px}.formula-card strong{font-size:14px}
  .controls{padding:15px 14px;gap:14px}.control-block{width:100%}.segmented button{flex:1}.year-tabs{width:100%;max-width:100%;justify-content:flex-start}.year-tabs button{flex:0 0 64px;padding-inline:8px}.export-btn{width:100%;padding:11px}
  .stats{grid-template-columns:1fr 1fr}.stat{padding:15px;min-height:91px}.stat strong{font-size:24px}
  .chart-panel,.table-panel,.detail-card,.trend-card{padding:17px 13px}.panel-head{align-items:flex-start;flex-direction:column}.legend{justify-content:flex-start}
  .treemap{height:900px}
  .tile-inner{padding:7px 6px 6px}.tile-name{font-size:11px}.tile-ratio{font-size:14px;letter-spacing:-.7px}.tile-meta{display:none}
  .tile.compact .tile-inner{padding:6px 5px 5px}.tile.compact .tile-name{font-size:10px}.tile.compact .tile-ratio{font-size:12px}
  .tile.tiny .tile-inner{padding:4px 3px 3px}.tile.tiny .tile-name{font-size:9px}.tile.tiny .tile-ratio{font-size:10px;letter-spacing:-.55px}
  .tile.micro .tile-inner{padding:3px 2px 2px}.tile.micro .tile-name{font-size:8px}.tile.micro .tile-ratio{font-size:9px;letter-spacing:-.4px}.tile.micro .tile-ratio small{display:none}
  .trend-chart{gap:6px;padding-inline:4px}.trend-value{font-size:9px}.trend-year{font-size:8px}
  .detail-gridnums{grid-template-columns:1fr}.detail-num{padding:8px 0!important;border-left:0!important;border-top:1px solid #eee}
  .methodology>div:nth-child(2){padding:23px 17px}.method-no,.update-box{padding:18px 17px}
  footer{display:block;padding:18px 14px}footer span{display:block;margin:4px 0}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.detail-extra{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:14px;border-top:1px solid #ddd;border-left:1px solid #ddd}.detail-extra div{padding:10px 9px;border-right:1px solid #ddd;border-bottom:1px solid #ddd}.detail-extra span{display:block;color:#888;font-size:8px;line-height:1.35}.detail-extra strong{display:block;margin-top:5px;font:900 13px/1 var(--mono)}
@media(max-width:900px){.detail-extra{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.detail-extra{grid-template-columns:1fr 1fr}.detail-extra strong{font-size:12px}.dimension-tabs button{min-width:0;padding-inline:7px;font-size:10px}}


/* Multi-dimensional fiscal observation */
.dimension-tabs{max-width:min(660px,60vw);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.dimension-tabs::-webkit-scrollbar{display:none}
.dimension-tabs button{flex:0 0 auto;white-space:nowrap}
.quality-1{background:#9e2d15;color:#fff}.quality-2{background:#ef7a2b;color:#fff}.quality-3{background:#f0c98b;color:#23170d}.quality-4{background:#b9ddcd;color:#102c22}.quality-5{background:#176d4d;color:#fff}
.quality-legend .l1{background:#9e2d15}.quality-legend .l2{background:#ef7a2b}.quality-legend .l3{background:#f0c98b}.quality-legend .l4{background:#b9ddcd}.quality-legend .l5{background:#176d4d}
.growth-1{background:#176d4d;color:#fff}.growth-2{background:#d8eadf;color:#143126}.growth-3{background:#ffd6a1;color:#26170b}.growth-4{background:#ef7a2b;color:#fff}.growth-5{background:#9e2d15;color:#fff}
.growth-legend .l1{background:#176d4d}.growth-legend .l2{background:#d8eadf}.growth-legend .l3{background:#ffd6a1}.growth-legend .l4{background:#ef7a2b}.growth-legend .l5{background:#9e2d15}

.analysis-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);border-bottom:1px solid #999}
.analysis-grid>.panel{border-bottom:0}
.scatter-card{padding:22px;border-right:1px solid #aaa;min-height:420px}
.profile-card{padding:22px;min-height:420px}
.scatter-note{margin:-1px 0 13px;color:#817e77;font-size:9px;line-height:1.6}
.scatter-wrap{position:relative;height:310px;padding:8px 18px 30px 46px}
.scatter-plot{position:absolute;left:48px;right:20px;top:10px;bottom:34px;background:
  linear-gradient(#e5e2da 1px,transparent 1px),
  linear-gradient(90deg,#e5e2da 1px,transparent 1px);
  background-size:25% 25%;border-left:1px solid #888;border-bottom:1px solid #888;overflow:visible}
.scatter-axis{position:absolute;color:#888;font:700 8px/1 var(--mono)}
.scatter-axis.y{left:4px;top:10px;bottom:34px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;width:36px}
.scatter-axis.x{left:48px;right:20px;bottom:19px;display:flex;justify-content:space-between}
.scatter-y-label{position:absolute;left:-23px;top:50%;transform:rotate(-90deg) translateY(-50%);transform-origin:center;color:#777;font:700 8px/1 var(--mono);white-space:nowrap}
.scatter-x-label{position:absolute;left:48px;right:20px;bottom:2px;text-align:center;color:#777;font:700 8px/1 var(--mono)}
.scatter-median-v,.scatter-median-h{position:absolute;z-index:1;pointer-events:none}
.scatter-median-v{top:0;bottom:0;border-left:1px dashed #777}
.scatter-median-h{left:0;right:0;border-top:1px dashed #777}
.scatter-q{position:absolute;z-index:0;color:#999;font:700 8px/1 var(--mono);pointer-events:none}
.scatter-q.q1{left:7px;top:7px}.scatter-q.q2{right:7px;top:7px}.scatter-q.q3{left:7px;bottom:7px}.scatter-q.q4{right:7px;bottom:7px}
.scatter-bubble{position:absolute;z-index:2;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%!important;border:1px solid rgba(255,255,255,.95)!important;background:#ff9b3d!important;color:#111!important;padding:0!important;cursor:pointer;font:900 7px/1 var(--mono)!important;box-shadow:0 0 0 1px rgba(0,0,0,.18)!important}
.scatter-bubble:hover,.scatter-bubble:focus-visible{z-index:5;background:#111!important;color:#fff!important}
.scatter-bubble.selected{z-index:6;background:var(--orange)!important;outline:3px solid #111!important;outline-offset:2px!important}
.scatter-empty{position:absolute;inset:10px 20px 34px 48px;display:grid;place-items:center;padding:25px;text-align:center;color:#999;border:1px dashed #bbb;background:#faf9f4;font-size:10px;line-height:1.7}

.profile-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #d2d0c9;border-left:1px solid #d2d0c9}
.profile-item{min-height:85px;padding:13px 12px;border-right:1px solid #d2d0c9;border-bottom:1px solid #d2d0c9}
.profile-item span{display:block;color:#888;font-size:8px;line-height:1.35}
.profile-item strong{display:block;margin-top:7px;font:900 17px/1 var(--mono)}
.profile-item em{display:inline-block;margin-top:7px;padding:3px 5px;font:900 7px/1 var(--mono);font-style:normal;border:1px solid #bbb}
.profile-item em.good{color:#126b4c;border-color:#73a892;background:#edf7f2}
.profile-item em.warn{color:#8c4a12;border-color:#e2a66f;background:#fff5e8}
.profile-item em.bad{color:#922f1c;border-color:#d58b7a;background:#fff0ec}
.profile-item em.neutral{color:#666;background:#f2f1ed}
.profile-observation{margin:15px 0 0;padding:12px 13px;background:#111;color:#ddd;font-size:10px;line-height:1.75;border-left:4px solid var(--orange)}
.profile-foot{display:block;margin-top:8px;color:#999;font-size:8px;line-height:1.5}

@media(max-width:900px){
  .analysis-grid{grid-template-columns:1fr}
  .scatter-card{border-right:0;border-bottom:1px solid #aaa!important}
  .profile-card{min-height:0}
  .dimension-tabs{max-width:100%}
}
@media(max-width:620px){
  .dimension-tabs{width:100%;max-width:100%}.dimension-tabs button{flex:0 0 auto;padding-inline:12px;font-size:10px}
  .scatter-card,.profile-card{padding:17px 13px}
  .scatter-wrap{height:330px;padding-left:40px}.scatter-plot{left:42px;right:12px}.scatter-axis.x{left:42px;right:12px}.scatter-x-label{left:42px;right:12px}
  .scatter-bubble{font-size:6px!important}
  .profile-item{padding:11px 9px}.profile-item strong{font-size:14px}
}


/* Controls layout fix: stable responsive grid for expanded observation dimensions */
.controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  grid-template-areas:
    "years metric scope"
    "dimension dimension dimension";
  align-items:end;
  gap:14px 22px;
  padding:19px 22px;
}
.year-block{grid-area:years;min-width:0}
.dimension-block{grid-area:dimension;min-width:0}
#metricBlock{grid-area:metric;min-width:0}
.scope-block{grid-area:scope;min-width:0}
.control-block{min-width:0}
.year-tabs,
.dimension-tabs{
  width:100%;
  max-width:none;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
}
.year-tabs::-webkit-scrollbar,
.dimension-tabs::-webkit-scrollbar{display:none}
.year-tabs button{
  flex:1 1 0;
  min-width:58px;
  white-space:nowrap;
}
.dimension-tabs button{
  flex:1 1 auto;
  min-width:100px;
  white-space:nowrap;
}
#metricTabs,
#scopeTabs{
  width:max-content;
  max-width:100%;
}
#metricTabs button,
#scopeTabs button{
  flex:0 0 auto;
  white-space:nowrap;
  word-break:keep-all;
}

@media(max-width:1180px){
  .controls{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:
      "years years"
      "dimension dimension"
      "metric scope";
    align-items:stretch;
  }
  #metricTabs,
  #scopeTabs{
    width:100%;
  }
  #metricTabs button,
  #scopeTabs button{
    flex:1 1 0;
    min-width:0;
  }
}

@media(max-width:620px){
  .controls{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "years"
      "dimension"
      "metric"
      "scope";
    gap:14px;
    padding:15px 14px;
  }
  .control-block{width:100%}
  .year-tabs,
  .dimension-tabs{
    width:100%;
    max-width:100%;
  }
  .year-tabs button{
    flex:0 0 64px;
    min-width:64px;
    padding-inline:8px;
  }
  .dimension-tabs button{
    flex:0 0 auto;
    min-width:96px;
    padding-inline:12px;
    font-size:10px;
  }
  #metricTabs,
  #scopeTabs{
    width:100%;
  }
  #metricTabs button,
  #scopeTabs button{
    flex:1 1 0;
    min-width:0;
    padding-inline:8px;
    white-space:nowrap;
  }
}


/* Scatter expanded view */
.scatter-head-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.scatter-head-actions p{margin:0;color:#777;font-size:10px;white-space:nowrap}
.scatter-expand-btn{
  min-height:30px;
  padding:0 11px;
  border:1px solid #111!important;
  background:#111!important;
  color:#fff!important;
  cursor:pointer;
  font:900 9px/1 var(--mono)!important;
  letter-spacing:.35px;
  white-space:nowrap;
}
.scatter-expand-btn:hover,.scatter-expand-btn:focus-visible{background:var(--orange)!important;color:#000!important;border-color:var(--orange)!important}
body.scatter-modal-open{overflow:hidden!important}
.scatter-modal{
  position:fixed;
  z-index:12000;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
}
.scatter-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.76);backdrop-filter:blur(2px)}
.scatter-modal__dialog{
  position:relative;
  z-index:1;
  width:min(1180px,calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #222;
  box-shadow:0 20px 70px rgba(0,0,0,.32);
}
.scatter-modal__head{
  min-height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:15px 18px;
  background:#0a0a0a;
  color:#fff;
  border-bottom:4px solid var(--orange);
}
.scatter-modal__head h2{margin:6px 0 0;font-size:23px;letter-spacing:-.7px}
.scatter-modal__head p{margin:6px 0 0;color:#aaa;font:800 9px/1 var(--mono)}
.scatter-modal__close{
  flex:0 0 auto;
  min-height:34px;
  padding:0 13px;
  border:1px solid #666!important;
  background:#111!important;
  color:#fff!important;
  cursor:pointer;
  font:900 9px/1 var(--mono)!important;
  white-space:nowrap;
}
.scatter-modal__close:hover,.scatter-modal__close:focus-visible{border-color:var(--orange)!important;background:var(--orange)!important;color:#000!important}
.scatter-modal__note{margin:0;padding:10px 18px;border-bottom:1px solid #ddd;background:#faf9f4}
.scatter-wrap--large{
  flex:1 1 auto;
  width:100%;
  height:68vh;
  min-height:460px;
  max-height:72vh;
  padding:14px 26px 38px 56px;
  background:#fff;
}
.scatter-wrap--large .scatter-plot{left:58px;right:28px;top:14px;bottom:42px}
.scatter-wrap--large .scatter-axis.y{left:8px;top:14px;bottom:42px;width:40px;font-size:9px}
.scatter-wrap--large .scatter-axis.x{left:58px;right:28px;bottom:24px;font-size:9px}
.scatter-wrap--large .scatter-y-label{left:-18px;font-size:9px}
.scatter-wrap--large .scatter-x-label{left:58px;right:28px;bottom:5px;font-size:9px}
.scatter-wrap--large .scatter-q{font-size:9px}
.scatter-bubble--large{font-size:8px!important}
.scatter-wrap--large .scatter-empty{inset:14px 28px 42px 58px}

@media(max-width:620px){
  .scatter-card-head{width:100%;gap:9px}
  .scatter-head-actions{width:100%;justify-content:space-between}
  .scatter-expand-btn{min-height:32px;padding-inline:12px}
  .scatter-modal{padding:8px;align-items:stretch}
  .scatter-modal__dialog{
    width:calc(100vw - 16px);
    max-height:calc(100dvh - 16px);
    margin:0;
  }
  .scatter-modal__head{min-height:66px;padding:12px 12px;gap:10px}
  .scatter-modal__head h2{font-size:17px;line-height:1.2}
  .scatter-modal__head .panel-kicker{font-size:7px}
  .scatter-modal__close{min-height:32px;padding-inline:10px}
  .scatter-modal__note{padding:8px 12px;font-size:8px;line-height:1.5}
  .scatter-wrap--large{
    height:auto;
    min-height:0;
    max-height:none;
    flex:1 1 auto;
    padding:12px 10px 34px 42px;
  }
  .scatter-wrap--large .scatter-plot{left:44px;right:12px;top:12px;bottom:38px}
  .scatter-wrap--large .scatter-axis.y{left:2px;top:12px;bottom:38px;width:34px;font-size:8px}
  .scatter-wrap--large .scatter-axis.x{left:44px;right:12px;bottom:21px;font-size:8px}
  .scatter-wrap--large .scatter-y-label{left:-26px;font-size:8px}
  .scatter-wrap--large .scatter-x-label{left:44px;right:12px;bottom:3px;font-size:8px}
  .scatter-wrap--large .scatter-q{font-size:7px}
  .scatter-bubble--large{font-size:7px!important}
  .scatter-wrap--large .scatter-empty{inset:12px 12px 38px 44px}
}

/* Tax indicator provenance and coverage; existing layout and chart styles retained. */
.tax-only{display:none}body.tax-view .tax-only{display:table-cell}

.tax-coverage[hidden]{display:none}
.tax-source{padding:16px 0 0;margin-top:16px;border-top:1px solid var(--line);font-size:12px;line-height:1.7;overflow-wrap:anywhere;color:var(--muted)}
.tax-source strong{color:var(--ink)}.tax-source p{margin:6px 0}.tax-source a{color:#83500d;text-underline-offset:3px}
.tax-latest{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:5px 9px;cursor:pointer;font:inherit}.tax-latest:hover{border-color:var(--orange)}
.trend-col.missing .trend-value{font-size:11px;color:var(--muted)}
.update-box em{overflow-wrap:anywhere}

/* Compact coverage toolbar, matching the existing fiscal dashboard. */
body.tax-view .chart-panel .panel-head{margin-bottom:20px;gap:18px}
body.tax-view .chart-panel .legend{font-size:11px;gap:14px;color:#555}
body.tax-view .chart-panel .legend i{width:10px;height:10px}
.tax-coverage{margin:0 0 12px;border:1px solid #e4e2db;border-radius:4px;background:#f8f8f5;color:#565951}
.tax-coverage__row{display:flex;align-items:center;gap:22px;padding:10px 15px;min-height:52px;font-size:12px;line-height:1.5}
.tax-coverage__summary{display:flex;align-items:center;gap:9px;white-space:nowrap}
.tax-coverage__dot{width:6px;height:6px;flex:none;background:#176d4d;border-radius:50%}
.tax-coverage__summary strong{font:700 18px/1.2 var(--mono);color:#172e24;letter-spacing:-.5px}
.tax-coverage__summary strong span{font-size:13px;color:#888b84;font-weight:500}
.tax-coverage__unit{color:#858880}
.tax-coverage__pending{display:flex;align-items:center;flex-wrap:wrap;gap:7px;border-left:1px solid #dedfd7;padding-left:22px}
.tax-coverage__label{color:#8c683b;margin-right:2px}
.tax-region{display:inline-flex;align-items:center;gap:14px;min-height:30px;padding:4px 10px;border:1px solid #e5d6bf;border-radius:3px;background:#fffaf1;color:#705127;font:500 12px/1.5 var(--sans);cursor:pointer;transition:background .15s,border-color .15s}
.tax-region span{color:#a7804e;font-size:13px}
.tax-region:hover{background:#ffedce;border-color:#c5a774}
.tax-region:focus-visible,.tax-coverage__toggle:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.tax-coverage__complete{color:#52735f}
.tax-coverage__toggle{margin-left:auto;display:flex;align-items:center;justify-content:space-between;gap:14px;flex:none;min-height:32px;padding:4px 0 4px 10px;background:transparent;border:0;color:#62665d;font:500 12px/1.5 var(--sans);cursor:pointer}
.tax-coverage__toggle span{font-size:18px;color:#898d82;line-height:1}
.tax-coverage__toggle:hover{color:#111}
.tax-coverage__method{padding:12px 15px;border-top:1px solid #e4e2db;font-size:12px;line-height:1.8;color:#74766d;background:#fff}
.tax-coverage__method p{margin:0}.tax-coverage__method p+p{margin-top:4px}
body.tax-view .chart-note{margin:0 0 15px;color:#84857e;font-size:11px;line-height:1.7}
@media(max-width:620px){
 body.tax-view .chart-panel .panel-head{gap:14px;margin-bottom:16px}
 body.tax-view .chart-panel .legend{font-size:10px;gap:11px}
 .tax-coverage__row{flex-wrap:wrap;gap:8px 12px;padding:11px 12px}
 .tax-coverage__summary{gap:7px;order:0;flex:1}
 .tax-coverage__unit{display:none}
 .tax-coverage__toggle{order:1;min-height:32px}
 .tax-coverage__pending{order:2;flex-basis:100%;border-left:0;border-top:1px solid #e5e5df;padding:9px 0 0;gap:8px}
 .tax-region{min-height:34px;padding:5px 12px}
 .tax-coverage__method{padding:11px 12px}
 body.tax-view .chart-note{font-size:10px;line-height:1.7;margin-bottom:12px}
}

/* Shared coordinate geometry for inline, expanded and mobile scatter charts. */
.scatter-wrap{--plot-left:56px;--plot-right:22px;--plot-top:60px;--plot-bottom:48px;height:390px}
.scatter-wrap--large{--plot-left:62px;--plot-right:28px;height:68vh;min-height:460px}
.scatter-wrap .scatter-plot{left:var(--plot-left);right:var(--plot-right);top:var(--plot-top);bottom:var(--plot-bottom);background:#fcfcfa;border-color:#c9ccc5}
.scatter-wrap .scatter-axis.y{left:8px;top:var(--plot-top);bottom:var(--plot-bottom);width:calc(var(--plot-left) - 16px);display:block;font-size:10px}
.scatter-wrap .scatter-axis.x{left:var(--plot-left);right:var(--plot-right);bottom:calc(var(--plot-bottom) - 20px);height:14px;display:block;font-size:10px}
.scatter-axis.y span{position:absolute;right:0;transform:translateY(-50%)}
.scatter-axis.x span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.scatter-wrap .scatter-y-label{left:0;top:var(--plot-top);bottom:var(--plot-bottom);width:12px;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;transform:rotate(180deg);font-size:9px}
.scatter-wrap .scatter-x-label{left:var(--plot-left);right:var(--plot-right);bottom:5px;font-size:10px}
.scatter-inspection{position:absolute;left:var(--plot-left);right:var(--plot-right);top:0;display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;min-height:22px;font-size:11px;line-height:1.5;color:#70766b}
.scatter-inspection strong{color:#172d23;font-size:12px}.scatter-inspection span{white-space:nowrap}
.scatter-grid-v,.scatter-grid-h{position:absolute;pointer-events:none;z-index:0;opacity:.7}
.scatter-grid-v{top:0;bottom:0;border-left:1px solid #e7e9e2}.scatter-grid-h{left:0;right:0;border-top:1px solid #e7e9e2}
.scatter-median-v,.scatter-median-h{border-color:#628170;z-index:1}
.scatter-median-label{position:absolute;pointer-events:none;z-index:4;white-space:nowrap;font:500 10px/18px var(--sans);padding:1px 5px;color:#476353;background:#f0f5f0;border:1px solid #d6e1d7;border-radius:3px}
.scatter-median-label b{font-family:var(--mono);font-weight:700}
.scatter-median-label--x{top:-26px}.scatter-median-label--y{right:0}
.scatter-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:1}
.scatter-leaders line{stroke:#a5aba0;stroke-width:.7;opacity:.7}.scatter-leaders line.is-active{stroke:#111;stroke-width:1.4;opacity:1}
.scatter-wrap .scatter-bubble{background:rgba(255,145,36,.54)!important;border:1px solid rgba(173,88,11,.65)!important;box-shadow:none!important;transition:opacity .12s,background .12s;z-index:2}
body.ky-route-debt-ratio .scatter-wrap .scatter-bubble{border-radius:50%!important}
.scatter-wrap .scatter-bubble.selected,.scatter-wrap .scatter-bubble.is-active{background:#ff850f!important;outline:2px solid #172d23!important;outline-offset:2px!important;z-index:7;opacity:1!important}
.scatter-wrap .scatter-bubble:hover,.scatter-wrap .scatter-bubble:focus-visible{background:#111!important;z-index:8}
.scatter-point-label{position:absolute;z-index:3;padding:0 3px!important;border:0!important;border-radius:2px!important;background:rgba(252,252,250,.9)!important;color:#535b4e!important;font:500 11px/18px var(--sans)!important;cursor:pointer;white-space:nowrap;box-sizing:border-box}
.scatter-point-label.selected,.scatter-point-label.is-active{background:#172d23!important;color:white!important;font-weight:700!important;z-index:8}
.scatter-point-label:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.scatter-plot.is-inspecting .scatter-bubble:not(.is-active){opacity:.35}.scatter-plot.is-inspecting .scatter-point-label:not(.is-active){opacity:.5}
.scatter-wrap .scatter-q{font-size:8px;color:#9ca398}
.scatter-wrap .scatter-empty{inset:var(--plot-top) var(--plot-right) var(--plot-bottom) var(--plot-left)}
@media(max-width:620px){
 .scatter-wrap{--plot-left:43px;--plot-right:15px;--plot-top:76px;--plot-bottom:46px;height:420px}
 .scatter-wrap--large{height:auto;min-height:0;flex:1}
 .scatter-wrap .scatter-axis.x,.scatter-wrap .scatter-axis.y{font-size:8px}
 .scatter-wrap .scatter-y-label{left:0;font-size:8px}
 .scatter-inspection{font-size:10px;gap:3px 8px;line-height:1.5}
 .scatter-inspection strong{font-size:11px}.scatter-median-label{font-size:9px}
 .scatter-wrap .scatter-q{font-size:7px}
}


/* Fiscal observation × MOF hidden-debt case linkage */
.tile-case-badge{position:absolute;top:6px;right:6px;z-index:2;padding:3px 5px;border:1px solid rgba(255,255,255,.58);background:rgba(17,17,17,.88);color:#fff;font:800 7px/1 var(--mono);letter-spacing:.02em;white-space:nowrap;pointer-events:none}
.tile.compact .tile-case-badge{top:4px;right:4px;padding:2px 4px;font-size:6px}
.hidden-debt-card{margin-top:18px;padding-top:16px;border-top:2px solid #111}
.hidden-debt-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:8px}
.hidden-debt-head>div:first-child{display:flex;flex-direction:column;gap:4px}.hidden-debt-head strong{font-size:14px;letter-spacing:-.2px}
.hidden-debt-head__right{display:flex;align-items:center;gap:10px;white-space:nowrap}
.hidden-debt-count{display:inline-flex;align-items:center;padding:4px 7px;background:#111;color:#fff;font:900 9px/1 var(--mono)}
.hidden-debt-head__right a{color:#8b4a08;font:800 9px/1.2 var(--mono);text-decoration:underline;text-underline-offset:3px}
.hidden-debt-list{border-top:1px solid #c9c6bd}
.hidden-debt-item{padding:10px 0;border-bottom:1px solid #dedbd2}
.hidden-debt-item__meta{display:flex;gap:8px;align-items:center;color:#777;font:800 8px/1.3 var(--mono)}
.hidden-debt-item__meta time{color:#111}.hidden-debt-item p{margin:5px 0 7px;font-size:11px;line-height:1.55;color:#222}
.hidden-debt-tags{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 7px}.hidden-debt-tags span{padding:3px 5px;background:#f1e8dc;color:#7f4300;font:800 8px/1 var(--mono)}
.hidden-debt-item__foot{display:flex;justify-content:space-between;gap:10px;color:#777;font:700 8px/1.35 var(--mono)}
.hidden-debt-source{color:#8b4a08;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.hidden-debt-loading,.hidden-debt-empty{margin:0;padding:12px 0;color:#777;font-size:10px;line-height:1.6}
.hidden-debt-note{margin:9px 0 0;color:#89867f;font-size:9px;line-height:1.55}
@media(max-width:620px){
  .hidden-debt-head{align-items:flex-start;flex-direction:column;gap:8px}.hidden-debt-head__right{width:100%;justify-content:space-between}
  .hidden-debt-item__foot{align-items:flex-start;flex-direction:column;gap:5px}
}


/* Hidden-debt linkage v2: ranking table + scatter inspection */
.hidden-debt-table-cell{white-space:nowrap}.hidden-debt-table-link{display:inline-flex;align-items:center;padding:4px 6px;border:1px solid #b7b3aa;background:#f7f3ec;color:#70410d;font:800 9px/1 var(--mono);text-decoration:none}.hidden-debt-table-link:hover,.hidden-debt-table-link:focus-visible{background:#111;border-color:#111;color:#fff;outline:none}.hidden-debt-table-zero{color:#aaa}
.scatter-case-count{padding-left:8px;border-left:1px solid #c9c5bb;color:#74420a!important;font-weight:900!important}.profile-item:last-child strong{font-variant-numeric:tabular-nums}
@media(max-width:620px){.hidden-debt-table-link{padding:3px 5px;font-size:8px}.scatter-case-count{padding-left:0;border-left:0}}


/* v3: full-width hidden-debt row removes two-column dead space */
.detail-grid{align-items:start}
.hidden-debt-panel{grid-column:1 / -1;padding:20px 22px 18px;border-top:1px solid #999!important;border-bottom:0!important;min-height:0}
.hidden-debt-panel .hidden-debt-head{margin-bottom:10px}
.hidden-debt-panel .hidden-debt-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0;border-top:1px solid #c9c6bd;border-left:1px solid #dedbd2}
.hidden-debt-panel .hidden-debt-item{padding:12px 14px;border-right:1px solid #dedbd2;border-bottom:1px solid #dedbd2;min-width:0}
.hidden-debt-panel .hidden-debt-loading,.hidden-debt-panel .hidden-debt-empty{grid-column:1/-1;padding:16px 14px;border-right:1px solid #dedbd2;border-bottom:1px solid #dedbd2}
.hidden-debt-panel .hidden-debt-note{margin-top:10px}
@media(max-width:900px){
  .hidden-debt-panel{grid-column:auto;padding:17px 13px}
  .hidden-debt-panel .hidden-debt-list{grid-template-columns:1fr}
}


/* 2026-09-19 economic & debt fundamentals */
.fundamentals-panel{grid-column:1 / -1;padding:20px 22px 18px;border-top:1px solid #999!important;min-height:0}
.fundamentals-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}
.fundamentals-head h2{margin:6px 0 0;font-size:21px;letter-spacing:-.6px}
.fundamentals-latest,.fundamentals-current{display:inline-flex;align-items:center;padding:5px 8px;font:900 8px/1 var(--mono);letter-spacing:.45px;white-space:nowrap}
.fundamentals-latest{background:#f1e8dc;color:#784000;border:1px solid #d9b88e}.fundamentals-current{background:#111;color:var(--orange)}
.fundamentals-fallback{margin:0 0 12px;padding:8px 10px;background:#f3f1eb;border-left:3px solid var(--orange);color:#69665f;font-size:9px;line-height:1.55}
.fundamentals-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #c9c6bd;border-left:1px solid #c9c6bd}
.fundamental-item{min-height:132px;padding:14px 13px;border-right:1px solid #c9c6bd;border-bottom:1px solid #c9c6bd;background:#fff}
.fundamental-item>span{display:block;color:#777;font:800 8px/1.35 var(--mono);letter-spacing:.25px}
.fundamental-item>strong{display:block;margin-top:11px;font:900 21px/1.05 var(--mono);letter-spacing:-.8px}
.fundamental-item>small{display:block;margin-top:11px;color:#777;font-size:8px;line-height:1.45}
.fundamental-item>em{display:block;margin-top:4px;color:#9a4d00;font:800 9px/1.35 var(--mono);font-style:normal}
.fundamentals-source{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px;color:#817e77;font:700 8px/1.45 var(--mono)}
.fundamentals-note{margin:8px 0 0;color:#8a5a24;font-size:9px;line-height:1.55}
.macro-empty>div{text-align:center;max-width:560px}.macro-empty p{margin:0 0 12px}.macro-latest-year{border:1px solid #111;background:#111;color:var(--orange);padding:8px 12px;cursor:pointer;font:900 9px/1 var(--mono)}
.macro-latest-year:hover{background:var(--orange);color:#111}
@media(max-width:900px){.fundamentals-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){
  .fundamentals-panel{grid-column:auto;padding:17px 13px}
  .fundamentals-head{align-items:flex-start;flex-direction:column;gap:8px}
  .fundamentals-grid{grid-template-columns:1fr}
  .fundamental-item{min-height:0}
}


/* 2026-09-19 control color normalization */
.segmented button{
  color:#27241f;
  -webkit-text-fill-color:#27241f;
  -webkit-appearance:none;
  appearance:none;
  border-radius:0;
  -webkit-tap-highlight-color:rgba(255,122,0,.14);
}
#yearTabs button:not(.active),
#dimensionTabs button:not(.active),
#metricTabs button:not(.active),
#scopeTabs button:not(.active){
  color:#27241f!important;
  -webkit-text-fill-color:#27241f!important;
}
.segmented button.active,
#yearTabs button.active,
#dimensionTabs button.active,
#metricTabs button.active,
#scopeTabs button.active{
  background:#090909!important;
  color:var(--orange)!important;
  -webkit-text-fill-color:var(--orange)!important;
}
.segmented button:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:2px;
}


/* 2026-09-19 second scatter + grouped province profile */
.macro-analysis-grid{display:grid;grid-template-columns:1fr;border-bottom:1px solid #999}
.macro-analysis-grid>.panel{border-bottom:0}
.macro-scatter-card{border-right:0;min-height:470px}
.macro-scatter-wrap{height:410px}
.macro-scatter-inspection{padding-right:4px}
.profile-section+.profile-section{margin-top:15px}
.profile-section-head{display:flex;align-items:baseline;gap:8px;margin-bottom:7px}
.profile-section-head>span{color:var(--orange);font:900 7px/1 var(--mono);letter-spacing:.9px}
.profile-section-head>strong{font-size:11px;letter-spacing:-.2px}
.profile-section-head>small{margin-left:auto;color:#888;font:700 7px/1 var(--mono)}
.profile-section--macro .profile-item{background:#fbfaf6}
.profile-section--macro .profile-item em.neutral{color:#784000;background:#f1e8dc;border-color:#d9b88e}
@media(max-width:620px){
  .macro-scatter-card{min-height:0;padding:17px 13px}
  .macro-scatter-wrap{height:440px}
  .profile-section-head{align-items:flex-start;flex-wrap:wrap}
  .profile-section-head>small{width:100%;margin-left:0}
}


/* 2026-09-19 data governance + indicator help */
.info-tip{
  position:relative;display:inline-grid;place-items:center;vertical-align:middle;
  width:17px;height:17px;margin-left:5px;padding:0!important;border:1px solid #a49f94!important;
  border-radius:50%!important;background:#f5f2eb!important;color:#514c43!important;
  -webkit-text-fill-color:#514c43!important;cursor:help;font:900 9px/1 var(--mono)!important;
}
.info-tip:hover,.info-tip:focus-visible,.info-tip.tip-open{background:#111!important;color:var(--orange)!important;-webkit-text-fill-color:var(--orange)!important;border-color:#111!important;outline:none}
.info-tip::after{
  content:attr(data-tip);position:absolute;z-index:16000;left:50%;bottom:calc(100% + 9px);
  width:min(310px,72vw);padding:10px 11px;transform:translateX(-50%) translateY(3px);
  background:#111;color:#eee;-webkit-text-fill-color:#eee;border:1px solid #333;border-top:3px solid var(--orange);
  box-shadow:0 9px 28px rgba(0,0,0,.22);font:500 10px/1.65 var(--sans);letter-spacing:0;text-align:left;
  pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s,transform .12s;
}
.info-tip::before{
  content:"";position:absolute;z-index:16001;left:50%;bottom:calc(100% + 4px);width:8px;height:8px;
  transform:translateX(-50%) rotate(45deg);background:#111;opacity:0;visibility:hidden;
}
.info-tip:hover::after,.info-tip:focus-visible::after,.info-tip.tip-open::after,
.info-tip:hover::before,.info-tip:focus-visible::before,.info-tip.tip-open::before{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.info-tip:hover::before,.info-tip:focus-visible::before,.info-tip.tip-open::before{transform:translateX(-50%) rotate(45deg)}

.data-governance{border-bottom:1px solid #999;background:#f8f6f0}
.data-governance>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;cursor:pointer}
.data-governance>summary::-webkit-details-marker{display:none}
.data-governance>summary h2{margin:6px 0 4px;font-size:21px;letter-spacing:-.6px}
.data-governance>summary p{margin:0;color:#777;font-size:9px;line-height:1.55}
.data-governance-toggle{flex:0 0 auto;padding:7px 9px;border:1px solid #aaa;background:#fff;color:#37332d;font:900 8px/1 var(--mono)}
.data-governance[open] .data-governance-toggle{background:#111;color:var(--orange);border-color:#111}
.data-governance[open] .data-governance-toggle{font-size:0}.data-governance[open] .data-governance-toggle::after{content:"收起 −";font-size:8px}
.data-governance-body{padding:0 22px 20px;border-top:1px solid #d7d3ca}
.data-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #c9c5bb;border-left:1px solid #c9c5bb;margin-top:16px}
.data-status-card{min-height:150px;padding:13px 13px 12px;background:#fff;border-right:1px solid #c9c5bb;border-bottom:1px solid #c9c5bb}
.data-status-card__head{display:flex;justify-content:space-between;align-items:center;gap:9px}.data-status-card__head strong{font-size:11px}
.status-badge{flex:0 0 auto;padding:3px 5px;font:900 7px/1 var(--mono);border:1px solid #bbb}
.status-complete{color:#37614d;background:#edf5f0;border-color:#a8c4b4}.status-partial{color:#895018;background:#fff3e5;border-color:#dcb17d}.status-live{color:#784000;background:#f1e8dc;border-color:#d9b88e}
.data-status-card p{margin:13px 0 6px;font:900 13px/1.2 var(--mono);letter-spacing:-.3px}
.data-status-card small{display:block;color:#69665f;font-size:9px;line-height:1.6}
.data-status-source{margin-top:10px;padding-top:8px;border-top:1px dashed #ddd8cd;color:#89857c;font-size:8px;line-height:1.55}
.data-source-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;padding:11px 0;border-bottom:1px solid #ddd8cd}
.data-source-links a{color:#70410d!important;-webkit-text-fill-color:#70410d!important;font:800 9px/1.35 var(--mono);text-underline-offset:3px}
.data-source-links a:hover{color:#111!important;-webkit-text-fill-color:#111!important}
.data-caveats{padding:12px 0 0;color:#6f6b63;font-size:9px;line-height:1.65}.data-caveats strong{color:#222}.data-caveats p{margin:4px 0 0}

@media(max-width:900px){.data-status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){
  .info-tip::after{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 18px);width:auto;transform:translateY(6px)}
  .info-tip:hover::after,.info-tip:focus-visible::after,.info-tip.tip-open::after{transform:translateY(0)}
  .info-tip::before{display:none}
  .data-governance>summary{align-items:flex-start;padding:15px 13px}.data-governance-body{padding:0 13px 16px}
  .data-status-grid{grid-template-columns:1fr}.data-status-card{min-height:0}
  .data-governance-toggle{margin-top:2px}
}


/* 2026-09-19 national debt interest */
.debt-interest-panel{padding:22px;border-bottom:1px solid #999}
.debt-interest-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #c9c5bb;border-left:1px solid #c9c5bb;margin-bottom:18px}
.debt-interest-stat{min-height:104px;padding:13px 12px;border-right:1px solid #c9c5bb;border-bottom:1px solid #c9c5bb;background:#fff}
.debt-interest-stat span{display:block;color:#777;font:800 8px/1.3 var(--mono)}
.debt-interest-stat strong{display:block;margin-top:11px;font:900 18px/1.05 var(--mono);letter-spacing:-.6px}
.debt-interest-stat small{display:block;margin-top:9px;color:#8a5a24;font:700 8px/1.45 var(--mono)}
.debt-interest-chart{height:300px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));align-items:end;gap:8px;padding:20px 8px 0;border:1px solid #d0ccc2;background:#faf9f5}
.interest-year{min-width:0;height:100%;display:grid;grid-template-rows:1fr auto auto auto;align-items:end;gap:5px;padding:0 4px 8px!important;border:0!important;background:transparent!important;color:#4d4840!important;-webkit-text-fill-color:#4d4840!important;cursor:pointer}
.interest-year.active{background:#f0ebe2!important;box-shadow:inset 0 -3px 0 var(--orange)}
.interest-bars{height:190px;display:flex;align-items:flex-end;justify-content:center;gap:3px}
.interest-bar{display:block;width:min(18px,36%);min-height:2px;border:1px solid #111}
.interest-bar-general{background:#111}
.interest-bar-special{background:repeating-linear-gradient(135deg,var(--orange) 0 4px,#ffd0a0 4px 8px);border-color:#a45408}
.interest-year strong{font:900 11px/1 var(--mono);white-space:nowrap}.interest-year span{font:800 9px/1 var(--mono);color:#777}.interest-year em{font:800 8px/1 var(--mono);font-style:normal;color:#8a5a24}
.interest-year:hover,.interest-year:focus-visible{outline:1px solid #111!important;outline-offset:0}
.debt-interest-sources{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px;color:#7e7a72;font-size:8px;line-height:1.5}
.debt-interest-sources a{color:#70410d!important;-webkit-text-fill-color:#70410d!important;font-weight:800;text-underline-offset:3px}
.debt-interest-foot{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:10px;color:#858078;font:700 8px/1.4 var(--mono)}
@media(max-width:900px){.debt-interest-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){
 .debt-interest-panel{padding:17px 13px}
 .debt-interest-summary{grid-template-columns:1fr 1fr}
 .debt-interest-chart{height:360px;gap:3px;padding-inline:3px;overflow-x:auto;grid-template-columns:repeat(8,52px);justify-content:start}
 .interest-bars{height:230px}.interest-year strong{font-size:9px}.interest-year em{font-size:7px}
}


/* 2026-09-19 layout refinement v2 */
@media(min-width:901px){
  .analysis-grid{grid-template-columns:minmax(0,7fr) minmax(390px,5fr)}
  .analysis-grid .scatter-card{padding:18px 18px 16px;min-height:0}
  .analysis-grid .profile-card{padding:18px;min-height:0}
  .analysis-grid .scatter-wrap{height:350px}
}
.scatter-card-head{align-items:flex-start}
.scatter-card-head .panel-head h2{line-height:1.15}
.scatter-note{margin:0 0 8px;max-width:980px;line-height:1.45}
.macro-scatter-card{min-height:0;padding:18px 20px 16px}
.macro-scatter-wrap{height:350px}

.profile-core-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #c9c5bb;border-left:1px solid #c9c5bb;margin-bottom:12px}
.profile-core-item{min-height:86px;padding:10px 11px;background:#fff;border-right:1px solid #c9c5bb;border-bottom:1px solid #c9c5bb}
.profile-core-item>span{display:block;color:#777;font-size:8px;line-height:1.25}
.profile-core-item>strong{display:block;margin-top:6px;font:900 18px/1 var(--mono);letter-spacing:-.5px}
.profile-core-item>div{display:flex;align-items:center;gap:6px;margin-top:7px}
.profile-core-item em,.profile-compact-item em{display:inline-block;padding:2px 4px;font:900 6px/1 var(--mono);font-style:normal;border:1px solid #bbb}
.profile-core-item em.good,.profile-compact-item em.good{color:#126b4c;border-color:#73a892;background:#edf7f2}
.profile-core-item em.warn,.profile-compact-item em.warn{color:#8c4a12;border-color:#e2a66f;background:#fff5e8}
.profile-core-item em.bad,.profile-compact-item em.bad{color:#922f1c;border-color:#d58b7a;background:#fff0ec}
.profile-core-item em.neutral,.profile-compact-item em.neutral{color:#666;background:#f2f1ed}
.profile-core-item small{color:#999;font:700 6px/1 var(--mono)}
.profile-section--compact+.profile-section--compact{margin-top:10px}
.profile-section--compact .profile-section-head{margin-bottom:5px}
.profile-detail-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #d8d4ca;border-left:1px solid #d8d4ca}
.profile-compact-item{min-height:58px;padding:8px 9px;border-right:1px solid #d8d4ca;border-bottom:1px solid #d8d4ca;background:#fcfbf7}
.profile-compact-item>span{display:block;color:#888;font-size:7px;line-height:1.25}
.profile-compact-item>strong{display:inline-block;margin-top:5px;margin-right:5px;font:900 13px/1 var(--mono)}
.profile-observation{margin:11px 0 0;padding:9px 10px;font-size:9px;line-height:1.55}
.profile-foot{margin-top:6px;font-size:7px}

.hidden-debt-panel{padding:13px 16px 11px}
.hidden-debt-panel .hidden-debt-head{margin-bottom:6px;align-items:center}
.hidden-debt-panel .hidden-debt-head strong{font-size:12px}
.hidden-debt-panel .hidden-debt-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.hidden-debt-panel .hidden-debt-item{padding:8px 10px}
.hidden-debt-panel .hidden-debt-item p{margin:4px 0 5px;font-size:9px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hidden-debt-panel .hidden-debt-tags{margin-bottom:4px;gap:4px}
.hidden-debt-panel .hidden-debt-tags span{padding:2px 4px;font-size:7px}
.hidden-debt-panel .hidden-debt-note{margin-top:6px;font-size:7px;line-height:1.4}
.hidden-debt-panel .hidden-debt-item__foot{font-size:7px}

.debt-interest-panel{padding:18px 20px 16px}
.debt-interest-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}
.debt-interest-stat{min-height:88px;padding:11px}
.debt-interest-stat strong{margin-top:8px;font-size:17px}
.debt-interest-stat small{margin-top:7px}
.debt-interest-chart{height:250px;padding-top:12px}
.interest-bars{height:150px}
.debt-interest-foot{margin-top:7px}

@media(max-width:900px){
  .analysis-grid .scatter-wrap{height:390px}
  .profile-core-grid{grid-template-columns:repeat(4,1fr)}
  .profile-detail-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:620px){
  .analysis-grid .scatter-wrap{height:360px}
  .macro-scatter-wrap{height:370px}
  .profile-core-grid{grid-template-columns:1fr 1fr}
  .profile-detail-grid{grid-template-columns:1fr 1fr}
  .profile-core-item{min-height:78px}
  .hidden-debt-panel{padding:12px 13px}
  .hidden-debt-panel .hidden-debt-head{align-items:flex-start}
  .debt-interest-summary{grid-template-columns:1fr 1fr}
  .debt-interest-chart{height:320px}
  .interest-bars{height:195px}
}


/* 2026-09-19 scatter space utilization v3 */
@media(min-width:901px){
  .analysis-grid{
    grid-template-columns:minmax(0,7.4fr) minmax(390px,4.6fr);
    align-items:stretch;
  }
  .analysis-grid .scatter-card{
    display:flex;
    flex-direction:column;
    min-height:0;
    height:auto;
  }
  .analysis-grid .scatter-card-head,
  .analysis-grid .scatter-note{
    flex:0 0 auto;
  }
  .analysis-grid .scatter-wrap{
    flex:1 1 auto;
    height:auto;
    min-height:500px;
    --plot-top:48px;
    --plot-bottom:42px;
  }
  .analysis-grid .profile-card{
    align-self:stretch;
  }
}
@media(min-width:1200px){
  .analysis-grid .scatter-wrap{min-height:540px}
}
@media(max-width:900px){
  .analysis-grid .scatter-wrap{
    flex:none;
    height:390px;
    min-height:0;
  }
}
@media(max-width:620px){
  .analysis-grid .scatter-wrap{height:360px}
}


/* 2026-09-19 dual scatter layout + readable vertical axes */
.scatter-wrap .scatter-y-label{
  writing-mode:vertical-rl;
  text-orientation:mixed;
  transform:none;
  letter-spacing:.02em;
}
.scatter-duo-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  border-bottom:1px solid #999;
}
.scatter-duo-grid>.scatter-card{
  min-width:0;
  min-height:0;
  padding:18px 18px 15px;
  border-bottom:0;
  display:flex;
  flex-direction:column;
}
.scatter-duo-grid>.scatter-card:first-child{border-right:1px solid #aaa}
.scatter-duo-grid .scatter-card-head{min-height:58px}
.scatter-duo-grid .scatter-card-head>div:first-child{min-width:0}
.scatter-duo-grid .scatter-card-head h2{font-size:18px;line-height:1.18}
.scatter-duo-grid .scatter-head-actions{gap:7px}
.scatter-duo-grid .scatter-expand-btn{min-height:28px;padding-inline:9px;font-size:8px!important}
.scatter-duo-grid .scatter-note{min-height:27px;margin-bottom:5px;font-size:8px}
.scatter-duo-grid .scatter-wrap{
  flex:1 1 auto;
  height:440px;
  min-height:440px;
  --plot-left:52px;
  --plot-right:15px;
  --plot-top:62px;
  --plot-bottom:45px;
}
.scatter-duo-grid .scatter-inspection{font-size:9px;gap:3px 7px}
.scatter-duo-grid .scatter-inspection strong{font-size:10px}
.scatter-duo-grid .scatter-point-label{font-size:10px!important}
.scatter-duo-grid .scatter-median-label{font-size:8px}
.scatter-duo-grid .scatter-q{font-size:7px}

.profile-wide-grid{display:grid;grid-template-columns:1fr;border-bottom:1px solid #999}
.profile-card--wide{padding:17px 18px 15px;min-height:0}
.profile-card--wide .profile-core-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:10px}
.profile-card--wide .profile-section--compact{margin-top:9px}
.profile-card--wide .profile-detail-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.profile-card--wide .profile-observation{margin-top:10px}
.profile-card--wide .profile-foot{margin-top:5px}

.scatter-wrap--large .scatter-y-label{
  left:4px;
  writing-mode:vertical-rl;
  text-orientation:mixed;
  transform:none;
}

@media(max-width:1180px){
  .scatter-duo-grid{grid-template-columns:1fr}
  .scatter-duo-grid>.scatter-card:first-child{border-right:0;border-bottom:1px solid #aaa}
  .scatter-duo-grid .scatter-wrap{height:430px;min-height:430px}
}
@media(max-width:620px){
  .scatter-duo-grid>.scatter-card{padding:17px 13px}
  .scatter-duo-grid .scatter-card-head{min-height:0}
  .scatter-duo-grid .scatter-card-head h2{font-size:17px}
  .scatter-duo-grid .scatter-note{min-height:0;font-size:8px}
  .scatter-duo-grid .scatter-wrap{
    height:360px;
    min-height:0;
    --plot-left:43px;
    --plot-right:15px;
    --plot-top:76px;
    --plot-bottom:46px;
  }
  .profile-card--wide{padding:17px 13px}
  .profile-card--wide .profile-core-grid{grid-template-columns:1fr 1fr}
  .profile-card--wide .profile-detail-grid{grid-template-columns:1fr 1fr}
}
