/* Uber visual system applied to the existing, source-backed dashboard. */
:root{
  --type-xs:var(--text-sm);--type-sm:var(--text-sm);--type-body:var(--text-base);
  --type-label:var(--text-lg);--type-heading:var(--text-2xl);--type-title:var(--text-2xl);
  --type-value:var(--text-lg);--type-count:var(--text-xl);
  --map-panel-width:280px;--map-landing-gap:var(--space-8);
  --map-total-size:clamp(48px,5vw,64px);--map-total-label-size:var(--text-base);
  --map-total-unit-size:var(--text-xl);--map-label-size:var(--text-base);
  --section-heading-size:clamp(24px,2.2vw,32px);
}
body{font-family:var(--dashboard-body);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--dashboard-display);font-weight:700;letter-spacing:var(--tracking-display);line-height:var(--leading-tight)}
button,input,select{font-family:var(--dashboard-body)}
a{color:var(--accent)}
button{min-height:44px;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);background:var(--chip-bg);color:var(--fg);border-color:transparent;font-size:var(--text-base);font-weight:500;line-height:1.25}
button:disabled,select:disabled{color:var(--muted);opacity:.65}
.primary{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;box-shadow:var(--focus-ring)}
:where(select,input[type=search]){border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--fg);font-size:var(--text-base)}
input::placeholder{color:var(--muted);opacity:1}
.page{max-width:var(--dashboard-max);padding:var(--space-8) var(--space-12);border-top:0}
.masthead{padding-bottom:var(--space-6);margin-bottom:0;border-bottom:1px solid var(--border-soft);gap:var(--space-6)}
.masthead h1{font-size:var(--text-xl);font-weight:700;letter-spacing:normal;line-height:1.33}
.masthead .dates{font-size:var(--text-sm);gap:var(--space-1) var(--space-4)}
.masthead .brand-mark{inline-size:240px}
.landing-hero.map-landing{border-top:0;padding:var(--space-6) 0 var(--space-8);margin:0}
.map-intro{column-gap:var(--space-12);margin-bottom:var(--space-6)}
.map-intro h2{font-size:clamp(32px,3.4vw,52px);line-height:var(--leading-tight);font-weight:700;letter-spacing:normal}
.map-intro p{font-size:var(--text-base);line-height:var(--leading-body)}
.map-intro-copy{max-width:56ch}
.map-national-reference strong{font-family:var(--dashboard-display);font-weight:700;letter-spacing:normal;color:var(--fg)}
.map-stage{background:var(--surface-warm);border-radius:var(--radius-lg);padding:var(--space-6);gap:var(--map-landing-gap)}
.map-selection{background:var(--surface);border:0;border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--elev-raised)}
.map-selection h3{font-size:var(--text-2xl);line-height:1.25;font-weight:700}
.map-panel-label,#map-selection-hint{font-size:var(--text-base)}
.map-selection .map-readout{font-size:var(--text-sm);border-block:1px solid var(--border-soft);padding-block:var(--space-3);margin-top:var(--space-5)}
.map-selected-number strong{font-family:var(--dashboard-display);font-size:40px;font-weight:700;letter-spacing:normal}
.map-selected-complex{font-size:var(--text-sm)}
.map-selection .hero-reference,.map-caption .map-scale,.hero-map-source{font-size:var(--text-sm)}
.map-landing .map .province{stroke:var(--surface);stroke-width:1.5}
.map-landing .map .province.selected{stroke:var(--fg);stroke-width:3}
.map-landing .map text.map-place-name{fill:var(--fg);stroke:var(--surface-warm);font-weight:700}
.map-landing .map text.map-place-name.selected{text-decoration:underline;text-decoration-thickness:2px}
.map-label-leader{stroke:var(--muted)}
.hero-action{border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-on);font-size:var(--text-base);font-weight:500;padding:var(--space-3) var(--space-5);min-height:48px}
.map-reset{border-radius:var(--radius-sm);background:var(--chip-bg);color:var(--fg);font-size:var(--text-sm)}
.analysis-toc{grid-template-columns:1fr;border-top:0;border-bottom:1px solid var(--border-soft);gap:var(--space-3);padding-block:var(--space-4) var(--space-6);margin-bottom:var(--space-6)}
.toc-title{padding:0;font-size:var(--text-sm);font-weight:700}
.toc-links{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.toc-links a{display:flex;justify-content:center;min-height:44px;background:var(--chip-bg);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:500;line-height:1.4;text-decoration:none;color:var(--fg)}
.toc-links a:focus-visible{background:var(--accent);color:var(--accent-on)}
.filters{border:0;background:var(--surface-warm);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);grid-template-columns:minmax(104px,1fr) minmax(220px,2.2fr) minmax(120px,1.3fr) minmax(96px,.8fr) auto auto}
.filters label,.scatter-controls label{font-size:var(--text-sm);font-weight:500;color:var(--fg)}
.filters select,.scatter-controls select{height:48px;min-height:48px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-base);padding-inline:var(--space-3) var(--space-8)}
.filters button{min-height:48px;padding-inline:var(--space-5);white-space:nowrap}
.scope{padding-block:var(--space-4);font-size:var(--text-sm);gap:var(--space-3)}
.scope-tools{gap:var(--space-4)}
.motion-setting button{background:var(--surface);border:1px solid var(--border-soft);font-size:var(--text-sm);font-weight:500}
.stats{padding-block:var(--space-4) var(--space-8);border-bottom:1px solid var(--border-soft);margin-bottom:var(--space-12)}
.stats .od-stat{--od-gap:8px;padding-inline:var(--space-6)}
.stats .od-stat:first-child{padding-inline-start:0}
.stats dt{font-size:var(--text-sm);font-weight:500;color:var(--fg)}
.stats dd{font-family:var(--dashboard-display);font-size:clamp(28px,2.8vw,40px);font-weight:700;letter-spacing:normal;line-height:1.23}
.stats small{font-size:var(--text-sm);line-height:1.5}
.stats .stat-unit{font-size:var(--text-base)}
.region{border-top:1px solid var(--border-soft);padding-top:var(--space-6)}
.primary-grid>.region{border-top:0;padding-top:0}
.section-gap{margin-top:var(--space-12)}
.section-head{gap:var(--space-4);margin-bottom:var(--space-5)}
.section-head h2,.size-section .section-head h2{font-size:var(--section-heading-size);font-weight:700;line-height:1.3;letter-spacing:normal;text-wrap:pretty}
.section-head .index{font-size:var(--text-xs);font-weight:500;line-height:1.5;padding-top:var(--space-2)}
.sub,.source,.table-note,.table-help,.chart-readout{font-size:var(--text-sm);line-height:1.6}
.source{padding-top:var(--space-3);margin-top:var(--space-4);border-color:var(--border-soft)}
.analysis-reading{font-size:var(--text-base);line-height:1.65;max-width:85ch}
.domestic-breakdown .region-list{column-gap:var(--space-5)}
.domestic-breakdown .region-row{min-height:40px;padding-block:var(--space-2);font-size:var(--text-sm);grid-template-columns:40px minmax(0,1fr) 56px;background:transparent;border-radius:0;border-color:var(--border-soft)}
.region-row .bar-track{height:6px;background:var(--chart-grid)}
.region-row .bar-fill{background:var(--chart-muted)}
.region-row[aria-pressed=true]{font-weight:700}
.region-row[aria-pressed=true] .bar-fill{background:var(--fg)}
.composition-heading h3{font-size:var(--text-lg)}
.composition-legend{font-size:var(--text-sm);gap:var(--space-2) var(--space-3)}
.risk-summary h3{font-size:var(--text-lg);font-weight:700}
.risk-summary{border-color:var(--border-soft)}
.story-signal-label,.metric-caption,.industry-guide{font-size:var(--text-sm)}
.risk-summary .story-signal-value{font-size:var(--text-xl);font-weight:700}
.heat-table th{padding-bottom:var(--space-2);font-size:var(--text-sm)}
.heat-table .industry-button,.heat-table .country-button{background:transparent;color:var(--fg);border-radius:0;font-size:var(--text-sm);font-weight:500}
.heat-table .industry-button{min-height:44px}
.heat-table .country-button{min-height:32px}
.heat-table .heat-cell{min-height:32px;border-radius:var(--space-1);font-size:var(--text-sm);font-weight:600}
.risk-key{font-size:var(--text-sm);gap:var(--space-2);margin-top:var(--space-3)}
.risk-key .grade,.industry-risk .ri-label,.data-table .ri-label{border-radius:var(--radius-sm)}
.industry-axis{background:var(--chip-bg);color:var(--fg);font-size:var(--text-sm);border-radius:var(--radius-md) var(--radius-md) 0 0}
.industry-item{border-color:var(--border-soft)}
.industry-item.is-selected{background:var(--surface-warm);box-shadow:inset 0 0 0 1px var(--fg)}
.industry-choice{font-size:var(--text-base);border-radius:0;background:transparent;font-weight:500}
.industry-choice[aria-pressed=true]{font-weight:700}
.industry-code{font-size:var(--text-sm)}
.industry-overseas{font-size:var(--text-sm)}
.metric-value{font-size:var(--text-lg);font-weight:700}
.chart text{font-family:var(--dashboard-body);fill:var(--muted)}
.chart .axis,.chart .zero{stroke:var(--chart-axis)}
.chart .gridline,.column-grid{stroke:var(--chart-grid)}
.series-legend{font-size:var(--text-sm);gap:var(--space-3) var(--space-6)}
.series-swatch{width:32px}
.note-band{border:0;background:var(--surface-warm);border-radius:var(--radius-md);padding:var(--space-4);font-size:var(--text-sm)}
.size-section .size-note{font-size:var(--text-base);line-height:1.6}
.size-section .size-metrics h3{font-size:var(--text-lg);font-weight:700}
.column-value{font-weight:700;fill:var(--fg)}
.size-column{fill:var(--fg)}
.size-column.is-negative{fill:var(--surface);stroke:var(--fg)}
.table-scroll{border-color:var(--border-soft);border-radius:var(--radius-md)}
.table-scroll thead,.table-scroll .data-table th,.data-table th{background:var(--chip-bg);color:var(--fg)}
.data-table th{font-size:var(--text-sm);font-weight:500}
.data-table td{font-size:var(--text-sm);line-height:1.6}
.data-table th button,.data-table .name-button{border-radius:0;background:transparent;color:var(--fg);font-weight:500}
.data-table th button{font-size:var(--text-sm);min-height:40px}
.data-table th[aria-sort] button{font-weight:700}
.data-table .row-title,.count-cell .cell-value{font-weight:600}
.data-table td,.data-table th{border-color:var(--border-soft)}
.support-details{margin-top:var(--space-12);--support-gap:24px}
.support-details>.region{padding-top:var(--space-4)}
.support-details .section-head h2,.reference-support .section-head h2{font-size:20px;line-height:1.4;font-weight:700;letter-spacing:normal}
.support-details .support-headerbar{margin-top:var(--space-2);gap:var(--space-2)}
.support-details .sort-field select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-height:44px;font-size:var(--text-sm)}
.support-details .support-headerbar .search-row input{border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm)}
.support-details .source,.reference-support .registry-foot{font-size:var(--text-sm)}
.support-details .product-value,.support-details .district-value{font-weight:700}
.support-details .product-item,.support-details .district-item{border-color:var(--border-soft)}
.reference-support{padding-top:var(--space-6);border-color:var(--border-soft)}
.reference-support .evidence-mapping>p:first-child{font-weight:700}
.reference-support .evidence-table .row-title{font-size:var(--text-base)}
.reference-support .evidence-table th{background:var(--chip-bg)}
.reference-support .evidence-notes h3{font-weight:700}
.evidence-downloads a{padding-block:var(--space-1)}
.footer{margin-top:var(--space-8);border:0;border-radius:var(--radius-lg);background:var(--fg);color:var(--accent-on);padding:var(--space-6);align-items:center;font-size:var(--text-sm);line-height:1.6}
.footer button{background:var(--surface);color:var(--fg);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap}
.footer a{color:var(--accent-on)}
.footer :focus-visible{outline-color:var(--accent-on)}
@media(hover:hover){
  button:not(:disabled):hover{background:var(--accent-hover);color:var(--fg)}
  .primary:not(:disabled):hover,.hero-action:hover{background:var(--accent-strong-hover);color:var(--accent-on)}
  .toc-links a:hover{background:var(--accent-hover);color:var(--fg);text-decoration:none}
  .region-row:hover,.data-table tbody tr:hover{background:var(--surface-warm);color:var(--fg)}
  .heat-table .industry-button:hover,.heat-table .country-button:hover,.data-table th button:hover,.data-table .name-button:hover{background:transparent;color:var(--fg);text-decoration:underline;text-underline-offset:4px}
  .heat-table button.heat-cell:hover{background:var(--heat-bg);color:var(--heat-fg)}
  .footer button:hover{background:var(--accent-hover);color:var(--fg)}
}
@media(max-width:1199px){
  :root{--map-panel-width:248px;--map-landing-gap:24px}
  .page{padding:var(--space-6)}
  .filters{grid-template-columns:1fr 2fr 1.2fr 1fr;gap:var(--space-3)}
  .filters button{grid-column:span 2}
  .section-head{flex-wrap:wrap;gap:var(--space-2)}
  .section-head .index{padding-top:0}
  .stats dd{font-size:var(--text-2xl)}
}
@media(max-width:900px){
  .map-stage{padding:var(--space-4);gap:var(--space-5)}
  .map-selection{padding:var(--space-5);border:0}
  .map-selection .hero-reference{margin-top:var(--space-2)}
}
@media(max-width:767px){
  :root{--section-heading-size:24px}
  .page{padding:var(--space-5) var(--space-4) var(--space-6)}
  .masthead{gap:var(--space-4);padding-bottom:var(--space-5)}
  .masthead h1{font-size:20px}
  .masthead .brand-mark{inline-size:200px;max-inline-size:100%}
  .masthead .dates{font-size:var(--text-xs)}
  .landing-hero.map-landing{padding-block:var(--space-5) var(--space-6)}
  .map-intro{gap:var(--space-4);margin-bottom:var(--space-5)}
  .map-intro h2{font-size:var(--text-2xl)}
  .map-stage{padding:var(--space-3) 0;background:var(--surface-warm)}
  .map-selection{margin-inline:var(--space-3);padding:var(--space-4)}
  .map-selection h3{font-size:var(--text-2xl)}
  .map-selection .map-readout{min-height:48px}
  .map-caption{gap:var(--space-2);padding-inline:var(--space-3)}
  .map-caption .map-scale,.hero-map-source{font-size:var(--text-xs)}
  .analysis-toc{gap:var(--space-3);padding-block:var(--space-4);margin-bottom:var(--space-5)}
  .toc-links{display:flex;gap:var(--space-2)}
  .toc-links a{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);min-height:44px}
  .filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--space-4);gap:var(--space-3) var(--space-2)}
  .filters .industry-field{grid-column:1/-1;grid-row:1}
  .filters .year-field{grid-column:1/-1}
  .filters button{grid-column:span 1;font-size:var(--text-sm);padding-inline:var(--space-3)}
  .scope{gap:var(--space-3);font-size:var(--text-sm)}
  .scope-tools{justify-content:flex-start;gap:var(--space-2)}
  .scope .scope-helper{display:block}
  .stats{margin-bottom:var(--space-8);padding-block:var(--space-3) var(--space-6);gap:var(--space-5) 0}
  .stats .od-stat{padding-inline:var(--space-3);--od-gap:4px}
  .stats .od-stat:nth-child(odd){padding-inline-start:0}
  .stats dd{font-size:28px}
  .stats small{font-size:var(--text-xs)}
  .stats dt{font-size:var(--text-sm)}
  .section-gap,.support-details{margin-top:var(--space-8)}
  .region{padding-top:var(--space-5)}
  .section-head h2,.size-section .section-head h2{font-size:var(--text-xl)}
  .section-head .index{font-size:var(--text-xs)}
  .domestic-breakdown .region-list{column-gap:var(--space-3)}
  .domestic-breakdown .region-row{min-height:44px;grid-template-columns:32px minmax(0,1fr) 48px;gap:var(--space-1);font-size:var(--text-sm)}
  .composition-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
  .heat-table .heat-cell,.heat-table .country-button{min-height:44px}
  .heat-table .industry-button,.heat-table .country-button{font-size:var(--text-xs)}
  .heat-table th:first-child{width:84px}
  .heat-table td{padding:var(--space-1)}
  .data-table th button{min-height:44px}
  .responsive-table thead tr{background:var(--chip-bg)}
  .responsive-table tbody tr{padding:var(--space-4) var(--space-3)}
  .support-details .section-head h2,.reference-support .section-head h2{font-size:20px}
  .support-details .responsive-table tbody tr{padding-inline:var(--space-2)}
  .reference-support .evidence-table tbody tr{padding-inline:0}
  .footer{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-5)}
}

/* The overview and the secondary bars share rows across both columns. */
.primary-body,.primary-overview,.primary-footnotes{min-width:0}
.primary-grid .section-head{flex-wrap:wrap}
.primary-grid .section-head .heat-selection{flex-basis:100%;min-width:0;margin:0;padding:0;border:0}
.primary-grid .section-head .heat-selection[hidden]{display:none}
.primary-footnotes .domestic-guide{margin:var(--space-2) 0 0}
.primary-body .composition,.primary-body .risk-summary{margin:var(--space-5) 0 0;padding:var(--space-4) 0 0;border-bottom:0;border-top:1px solid var(--border-soft)}
.primary-body .composition-legend{margin-block:var(--space-2) var(--space-3)}
@media(min-width:1280px){
  .primary-grid{row-gap:var(--space-4);align-items:stretch}
  .primary-grid>.region{display:grid;grid-template-rows:subgrid;grid-row:span 6;row-gap:var(--space-4)}
  .primary-grid>.region>.section-head{grid-row:1;align-self:start;margin:0}
  .primary-grid>.region>.primary-body{display:grid;grid-template-rows:subgrid;grid-row:2/span 5;row-gap:var(--space-4);align-self:stretch}
  .primary-body>.primary-overview{grid-row:1}
  .domestic-breakdown .primary-overview{display:grid}
  .domestic-breakdown .region-list{grid-auto-rows:minmax(40px,1fr);align-self:stretch}
  .primary-body .composition,.primary-body .risk-summary{display:grid;grid-template-rows:subgrid;grid-row:2/span 3;row-gap:var(--space-4);margin:0;align-self:stretch}
  .primary-body .composition-heading,.primary-body .risk-summary-heading{grid-row:1;margin:0;align-self:start}
  .primary-body .composition-heading{align-items:baseline;flex-wrap:wrap;gap:var(--space-2)}
  .primary-body .composition-legend{grid-row:2;margin:0;align-self:end}
  .primary-body .stacked-bar{grid-row:3;align-self:start}
  .primary-body .story-signals{grid-row:2/span 2;grid-template-rows:subgrid;row-gap:var(--space-4);padding:0}
  .primary-body .story-signal{display:grid;grid-template-rows:subgrid;grid-row:span 2;row-gap:var(--space-4);min-width:0}
  .primary-body .story-signal-head{grid-row:1;margin:0;align-self:end}
  .primary-body .story-signal-track{grid-row:2;align-self:start}
  .primary-body .story-country,.primary-body .story-empty{grid-row:1/span 2;align-self:end}
  .primary-body>.primary-footnotes{grid-row:5;align-self:start}
  .primary-footnotes>.source{margin:0}
}

/* Country labels keep their full name; the layout supplies the required width. */
.finance-table{table-layout:auto}
.finance-table th,.finance-table td,.finance-table th button,.finance-table .name-button{
  white-space:nowrap;word-break:normal;overflow-wrap:normal;text-wrap:nowrap;
}
.finance-table .country-col{max-width:none}
.finance-table th:first-child{width:1%}
.finance-table .name-button{max-width:none;font-size:var(--text-base)}
.finance-table th,.finance-table td{padding-inline:var(--space-2)}
.finance-table td[colspan]{white-space:normal;overflow-wrap:anywhere}
.heat-table{table-layout:auto}
.heat-table th:first-child{width:1%;white-space:nowrap}
.heat-table .country-name,.heat-table .country-button{white-space:nowrap;word-break:normal;overflow-wrap:normal;text-wrap:nowrap}
.heat-table .country-button{font-size:var(--text-sm);padding-inline-end:var(--space-2)}
@media(min-width:1536px){
  .comparison-grid>.span7{grid-column:span 4}
  .comparison-grid>.span5{grid-column:span 8}
}
@media(max-width:1535px){
  .comparison-grid>.span7,.comparison-grid>.span5{grid-column:1/-1}
}
@media(min-width:1024px) and (max-width:1279px){
  .primary-grid>.span5,.primary-grid>.span7{grid-column:1/-1}
}
@media(max-width:1023px){
  .finance-table,.finance-table thead,.finance-table tbody{display:block;width:100%}
  .finance-table thead tr{display:flex;flex-wrap:wrap;gap:0 var(--space-4);padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--border-soft);background:var(--chip-bg)}
  .finance-table thead th{display:block;width:auto!important;border:0;padding:0!important}
  .finance-table thead th button{min-height:44px;padding:var(--space-2) 0;white-space:nowrap;text-wrap:nowrap}
  .finance-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4);padding:var(--space-4) var(--space-3);border-bottom:1px solid var(--border-soft)}
  .finance-table tbody td{display:block;min-width:0;padding:0!important;border:0;text-align:start}
  .finance-table tbody td::before{content:attr(data-label);display:block;margin:0 0 var(--space-1);font-size:var(--text-sm);font-weight:400;color:var(--muted);white-space:nowrap}
  .finance-table tbody td.country-col{grid-column:1/-1;max-width:none}
  .finance-table tbody td.country-col::before{display:none}
  .finance-table .country-col .name-button{min-height:44px;font-size:var(--text-base);font-weight:600;padding:0;white-space:nowrap}
  .finance-table tbody td:nth-child(2){grid-column:1/-1;display:flex;align-items:center;gap:var(--space-2);text-align:start}
  .finance-table tbody td:nth-child(2)::before{margin:0}
  .finance-table tbody td.wide-value{grid-column:1/-1}
  .finance-table tbody td.num{white-space:nowrap;text-align:start}
  .finance-table tbody td.num .cell-value{font-size:var(--text-lg);line-height:1.5}
  .finance-table tbody td.year{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:baseline;gap:var(--space-2);border-top:1px solid var(--border-soft);padding-top:var(--space-2)!important}
  .finance-table tbody td.year::before{margin:0}
  .finance-table tbody td.year .cell-value{font-size:var(--text-sm)}
  .finance-table tbody td[colspan]{grid-column:1/-1;white-space:normal}
  #finance-scroll{scroll-padding-block-start:112px}
}

/* Maximum is a comparison marker, including ties, not a positive/negative rating. */
.size-column.is-highest,.size-column.is-negative.is-highest{fill:var(--chart-highlight);stroke:none}
.column-value.is-highest{fill:var(--chart-highlight-ink);font-weight:700}
