:root {
  --ink: #17212b;
  --muted: #52616d;
  --line: #d7e0e5;
  --paper: #ffffff;
  --page: #edf3f2;
  --deep: #102f33;
  --teal: #147d78;
  --teal-dark: #0d5b59;
  --teal-soft: #e0f2ef;
  --rust: #ae5c36;
  --display: "Bodoni 72", "Bodoni MT", Didot, Georgia, serif;
  --body: "Times New Roman", Times, serif;
}
* { box-sizing: border-box; }
html { background: var(--page); }
body { margin: 0; color: var(--ink); background: linear-gradient(125deg, #f8fbfa 0%, var(--page) 56%, #e7eef3 100%); font-family: var(--body); line-height: 1.5; }
a { color: inherit; }
.skip-link { position: absolute; left: -9999px; top: 0; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 5; padding: .65rem .9rem; color: #fff; background: var(--deep); }
.app-header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 4.4rem; padding: .8rem max(1.2rem, calc((100vw - 1220px) / 2)); color: #f7fffd; background: var(--deep); border-bottom: 1px solid rgba(255,255,255,.14); }
.brand { font-family: var(--display); font-size: 1.35rem; font-weight: 700; text-decoration: none; }
.brand span { color: #8be3d5; }
.app-header nav { display: flex; gap: 1.2rem; font-size: .95rem; }
.app-header nav a { color: #cbe6e1; text-decoration: none; }
.app-header nav a:hover, .app-header nav .nav-active { color: #fff; text-decoration: underline; text-underline-offset: .25rem; }
.app-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: calc(100vh - 4.4rem); }
.sidebar { position: sticky; top: 0; align-self: start; height: calc(100vh - 4.4rem); overflow-y: auto; padding: 1.4rem .9rem 1.5rem 1.2rem; background: #f8fbfa; border-right: 1px solid var(--line); }
.sidebar-label { margin: 0 0 .7rem .65rem; color: var(--teal-dark); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.view-navigation { display: grid; gap: .2rem; }
.view-navigation a { padding: .57rem .65rem; color: var(--muted); border-left: 3px solid transparent; text-decoration: none; line-height: 1.3; }
.view-navigation a:hover { color: var(--deep); background: #eaf3f1; }
.view-navigation a.nav-active { color: var(--deep); background: var(--teal-soft); border-left-color: var(--teal); font-weight: 700; }
.app-shell { min-width: 0; width: min(1220px, 100%); margin: 0 auto; padding: clamp(2rem, 5vw, 4.5rem) 1.25rem 5rem; }
.intro h1 { font-size: clamp(2.2rem, 4vw, 4rem); }
.pending-view { min-height: 60vh; padding-top: 1.5rem; animation: rise-in .45s ease both; }
.pending-view h1 { margin: .4rem 0 1rem; font-size: clamp(2rem, 4vw, 3.6rem); }
.pending-status { display: inline-block; margin-top: 1.5rem; padding: .55rem .75rem; color: #754522; background: #fff3df; border: 1px solid #e6c89a; font-size: .85rem; font-weight: 800; text-transform: uppercase; }
.policy-intro h1 { max-width: 900px; font-size: clamp(2.2rem, 4vw, 4rem); }
.policy-metrics { margin-top: 1.25rem; }
.policy-guide, .policy-explorer, .generated-dashboard-panel, .policy-quality { margin-top: 1rem; }
.policy-guide h2 { font-size: 1.65rem; }
.policy-guide > p:not(.eyebrow) { max-width: 1000px; }
.policy-legend { margin-top: .9rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.policy-legend summary, .generated-dashboard-panel summary, .quality-details summary, .policy-provenance summary { color: var(--deep); cursor: pointer; font-weight: 800; }
.policy-legend .methodology-grid { margin-top: .75rem; }
.policy-legend .methodology-card { padding: .9rem; background: #f7faf9; border-left: 3px solid var(--teal); }
.policy-legend .methodology-card p:first-child { margin-top: 0; }
.policy-controls { display: grid; grid-template-columns: minmax(180px, 330px) minmax(0, 1fr); align-items: end; gap: 1rem; margin: .9rem 0 1rem; }
.scenario-toggle-group, .driver-options { min-width: 0; margin: 0; padding: .5rem .75rem .65rem; border: 1px solid var(--line); }
.scenario-toggle-group legend, .driver-options legend { padding: 0 .25rem; color: var(--muted); font-weight: 700; }
.scenario-toggle-group { display: flex; flex-wrap: wrap; gap: .45rem 1rem; }
.scenario-toggle-group label, .driver-checkboxes label { display: flex; align-items: center; gap: .4rem; font-weight: 600; }
.scenario-toggle-group input, .driver-checkboxes input { accent-color: var(--teal); }
.policy-chart-wrap { width: 100%; min-width: 0; height: 380px; margin: .5rem 0 1rem; overflow: hidden; }
.policy-chart-wrap svg { display: block; width: 100%; height: 100%; overflow: visible; }
.policy-chart-wrap.compact-chart { height: 340px; }
.policy-series-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.policy-series-dot { fill: #fff; stroke-width: 2; }
.chart-axis { stroke: #85959b; stroke-width: 1; }
.policy-bar { fill: var(--teal); }
.policy-bar.negative { fill: var(--rust); }
.shock-bar { fill: var(--teal); }
.shock-bar.detected { fill: var(--rust); }
.policy-generated-chart { width: 100%; height: 6800px; border: 0; background: #fff; }
.generated-dashboard-panel { padding: 1rem 1.25rem; }
.generated-dashboard-panel summary strong { display: inline; margin-left: .5rem; font-family: var(--body); font-size: 1rem; }
.policy-analysis-section { margin-top: 2rem; }
.policy-analysis-section > .section-heading { margin-bottom: .75rem; }
.policy-analysis-section h2 { font-size: 1.8rem; }
.policy-tabs { display: flex; gap: .25rem; overflow-x: auto; border-bottom: 2px solid var(--deep); }
.policy-tabs button { flex: 0 0 auto; padding: .65rem .8rem; color: var(--muted); background: transparent; border: 0; border-bottom: 3px solid transparent; font: inherit; font-weight: 700; cursor: pointer; }
.policy-tabs button[aria-selected="true"] { color: var(--deep); border-bottom-color: var(--rust); }
.policy-tabs button:focus-visible, summary:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgba(20,125,120,.35); outline-offset: 2px; }
.policy-tab-panel { margin-top: 0; border-top: 0; }
.policy-tab-panel h2, .policy-quality h2 { font-size: 1.7rem; }
.driver-options { margin-bottom: 1rem; }
.driver-checkboxes { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.driver-checkboxes label { color: var(--ink); }
.driver-summary, .quality-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: .75rem 0; }
.driver-summary .metric-card, .quality-summary .metric-card { min-width: 0; min-height: 100px; }
.driver-summary strong { overflow-wrap: anywhere; font-family: var(--body); font-size: 1.1rem; line-height: 1.2; }
.quality-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.quality-summary .metric-card strong { font-size: 1.5rem; }
.quality-details { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.quality-details h3, .policy-tab-panel h3 { margin: 1.2rem 0 .5rem; font-family: var(--display); }
.quality-details .table-wrap { margin-bottom: 1rem; }
.policy-provenance { margin-top: 1rem; }
.policy-provenance details { min-width: 0; }
.policy-provenance .table-wrap { margin-top: .8rem; }
.policy-provenance p { overflow-wrap: anywhere; }
.policy-provenance code { overflow-wrap: anywhere; }
.policy-tab-panel td, .policy-quality td { overflow-wrap: anywhere; }
.gis-intro h1 { max-width: 900px; font-size: clamp(2.2rem, 4vw, 4rem); }
.gis-controls { display: grid; grid-template-columns: 1fr 1fr 1.6fr auto; align-items: end; gap: .8rem; margin: 1.4rem 0 1rem; padding: 1rem; background: rgba(255,255,255,.88); border: 1px solid var(--line); }
.gis-table-toggle { display: flex; align-items: center; gap: .5rem; min-height: 2.75rem; white-space: nowrap; }
.gis-table-toggle input { width: 1.1rem; height: 1.1rem; accent-color: var(--teal); }
.gis-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); margin: .9rem 0; }
.gis-kpis .metric-card { min-width: 0; min-height: 112px; padding: .85rem; }
.gis-kpis .metric-card strong { overflow-wrap: anywhere; font-size: clamp(1.35rem, 2.1vw, 2rem); }
.gis-reading-guide { margin-top: .9rem; }
.gis-reading-guide h2, .gis-map-panel h2, .gis-ranking-panel h2, .gis-country-detail h2, .gis-table-panel h2 { font-size: 1.6rem; }
.period-badge { flex: 0 0 auto; padding: .35rem .6rem; color: var(--teal-dark); background: var(--teal-soft); border: 1px solid #b9ded8; font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.gis-metric-guide { margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.gis-metric-guide summary { color: var(--deep); cursor: pointer; font-weight: 800; }
.gis-metric-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .8rem; }
.gis-guide-item { min-width: 0; padding: .75rem; background: #f7faf9; border-left: 3px solid #b9c8ce; }
.gis-guide-item.is-current { background: var(--teal-soft); border-left-color: var(--teal); }
.gis-guide-item strong { display: block; color: var(--deep); }
.gis-guide-category { display: inline-block; margin-top: .2rem; color: var(--teal-dark); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.gis-guide-item p { margin: .4rem 0 0; color: var(--muted); font-size: .9rem; }
.gis-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .9fr); align-items: start; gap: 1rem; margin-top: 1rem; }
.gis-map-panel, .gis-ranking-panel { min-width: 0; }
.gis-map-frame { width: 100%; aspect-ratio: 800 / 570; min-height: 300px; overflow: hidden; background: #eef4f3; border: 1px solid var(--line); }
#gis-map { display: block; width: 100%; height: 100%; touch-action: manipulation; }
.gis-country-shape { cursor: pointer; stroke: #334155; stroke-width: 1.05px; vector-effect: non-scaling-stroke; transition: stroke .12s ease, stroke-width .12s ease, filter .12s ease; }
.gis-country-shape:hover, .gis-country-shape:focus, .gis-country-shape.is-selected { stroke: #102f33; stroke-width: 2.8px; filter: brightness(1.05); outline: none; }
.gis-country-shape:focus-visible { stroke: #ae5c36; stroke-width: 4px; }
.gis-map-legend { margin-top: .75rem; padding: .75rem .8rem; background: #fff; border: 1px solid var(--line); }
.gis-map-legend-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; color: var(--deep); font-size: .9rem; }
.gis-map-legend-heading span { color: var(--muted); font-size: .82rem; }
.gis-map-legend-bar { height: 15px; margin-top: .55rem; border: 1px solid rgba(15,23,42,.17); }
.gis-map-legend-scale { display: flex; justify-content: space-between; gap: .5rem; margin-top: .35rem; color: var(--muted); font-size: .78rem; }
.gis-map-legend-scale span { line-height: 1.3; }
.gis-map-legend-scale span:nth-child(2) { text-align: center; }
.gis-map-legend-scale span:last-child { text-align: right; }
.gis-ranking-note { min-height: 2.5rem; color: var(--muted); font-size: .9rem; }
.gis-ranking { max-height: 700px; overflow: auto; border-top: 1px solid var(--line); }
.gis-ranking-row { display: grid; grid-template-columns: 2rem minmax(5.5rem, 1fr) minmax(3.5rem, .8fr) auto; align-items: center; gap: .5rem; width: 100%; min-height: 2.15rem; padding: .25rem .35rem; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid #e3e9eb; text-align: left; font: inherit; cursor: pointer; }
.gis-ranking-row:hover, .gis-ranking-row.is-selected { background: var(--teal-soft); }
.gis-ranking-row:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(20,125,120,.4); outline-offset: -2px; }
.gis-rank-number { color: var(--muted); font-size: .78rem; text-align: right; }
.gis-rank-country { min-width: 0; overflow: hidden; font-size: .85rem; text-overflow: ellipsis; white-space: nowrap; }
.gis-rank-track { display: block; height: .55rem; overflow: hidden; background: #e4ebeb; }
.gis-rank-fill { display: block; height: 100%; min-width: 2px; }
.gis-rank-value { min-width: 4.1rem; font-size: .78rem; font-variant-numeric: tabular-nums; text-align: right; }
.gis-country-detail, .gis-table-panel { margin-top: 1rem; }
.gis-country-period { margin: -.3rem 0 1rem; color: var(--muted); }
.gis-country-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; }
.gis-country-metrics > div { min-width: 0; padding: .65rem .7rem; background: #f7faf9; border-top: 2px solid var(--teal); }
.gis-country-metrics span { display: block; color: var(--muted); font-size: .8rem; }
.gis-country-metrics strong { display: block; margin-top: .2rem; color: var(--deep); overflow-wrap: anywhere; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.gis-table-panel td { overflow-wrap: anywhere; }
.comparison-intro h1 { max-width: 900px; font-size: clamp(2.2rem, 4vw, 4rem); }
.comparison-controls { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(170px, .75fr) minmax(220px, 1.4fr); align-items: end; gap: .8rem; margin: 1.4rem 0 1rem; padding: 1rem; background: rgba(255,255,255,.88); border: 1px solid var(--line); }
input[type="search"] { width: 100%; min-height: 2.75rem; padding: .4rem .65rem; color: var(--ink); background: #fff; border: 1px solid #b9c8ce; border-radius: 3px; font: inherit; }
input[type="search"]:focus { outline: 3px solid rgba(20,125,120,.2); border-color: var(--teal); }
.comparison-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: .9rem 0; }
.comparison-summary .metric-card { min-width: 0; min-height: 112px; }
.comparison-summary .metric-card strong { overflow-wrap: anywhere; font-size: clamp(1.35rem, 2.4vw, 2rem); font-variant-numeric: tabular-nums; }
.comparison-reading-guide { margin-top: .9rem; }
.comparison-reading-guide h2, .comparison-chart-panel h2, .comparison-table-panel h2 { font-size: 1.65rem; }
.comparison-geography { flex: 0 0 auto; padding: .35rem .6rem; color: var(--teal-dark); background: var(--teal-soft); border: 1px solid #b9ded8; font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.comparison-reading-guide > p { max-width: 1040px; }
.comparison-gap-note { padding: .65rem .75rem; background: #f5f1e8; border-left: 3px solid var(--rust); }
.comparison-methodology { margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.comparison-methodology summary { color: var(--deep); cursor: pointer; font-weight: 800; }
.comparison-definitions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .8rem; }
.comparison-definitions article { min-width: 0; padding: .75rem; background: #f7faf9; border-left: 3px solid var(--teal); }
.comparison-definitions h3 { margin: 0 0 .3rem; color: var(--deep); font-family: var(--display); font-size: 1.08rem; }
.comparison-definitions p { margin: .35rem 0 0; color: var(--muted); font-size: .9rem; overflow-wrap: anywhere; }
.comparison-series-family { display: inline-block; color: var(--teal-dark); font-size: .76rem; font-weight: 800; text-transform: uppercase; }
.comparison-provenance { margin-top: .85rem; padding-top: .5rem; border-top: 1px solid var(--line); }
.comparison-provenance p { margin: .45rem 0; overflow-wrap: anywhere; }
.comparison-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.comparison-chart-panel { min-width: 0; }
.comparison-chart-wrap { width: 100%; height: 360px; min-width: 0; overflow: hidden; }
.comparison-chart-wrap svg { display: block; width: 100%; height: 100%; }
.comparison-table-panel { margin-top: 1rem; }
.comparison-table-panel td { font-variant-numeric: tabular-nums; }
[data-dashboard-view][hidden], [data-policy-panel][hidden] { display: none !important; }
.intro { animation: rise-in .55s ease both; }
.intro-row { display: flex; justify-content: space-between; gap: 2rem; align-items: end; }
.eyebrow { margin: 0 0 .35rem; color: var(--teal-dark); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
h1, h2 { font-family: var(--display); line-height: 1.08; }
h1 { max-width: 800px; margin: 0; font-size: clamp(2.6rem, 7vw, 5.8rem); letter-spacing: 0; }
h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 2.45rem); }
.intro-copy { max-width: 700px; margin: 1rem 0 0; color: var(--muted); font-size: 1.1rem; }
.status-pill { flex: 0 0 auto; padding: .55rem .8rem; color: var(--teal-dark); background: var(--teal-soft); border: 1px solid #b9ded8; font-size: .88rem; font-weight: 700; }
.status-pill[data-status="blocked"] { color: #8e3529; background: #fff0eb; border-color: #efc2b6; }
.control-bar, .panel { background: rgba(255,255,255,.88); border: 1px solid var(--line); box-shadow: 0 14px 35px rgba(16,47,51,.07); }
.control-bar { margin-top: 2.3rem; padding: 1.15rem 1.25rem 1.3rem; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.controls-grid { display: grid; grid-template-columns: 1.15fr 1.15fr .7fr; gap: .9rem; }
label { display: grid; gap: .35rem; color: var(--muted); font-weight: 700; }
select { width: 100%; min-height: 2.75rem; padding: .4rem .65rem; color: var(--ink); background: #fff; border: 1px solid #b9c8ce; border-radius: 3px; font: inherit; }
select:focus { outline: 3px solid rgba(20,125,120,.2); border-color: var(--teal); }
.notice { margin-top: 1rem; padding: .85rem 1rem; color: var(--muted); background: #fff; border: 1px solid var(--line); }
.notice.error { color: #8e3529; background: #fff4f0; border-color: #efc2b6; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .85rem; margin-top: 1rem; }
.metric-card { min-height: 132px; padding: 1rem 1.05rem; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 9px 20px rgba(16,47,51,.05); }
.metric-primary { color: #fff; background: var(--deep); border-color: var(--deep); }
.metric-label, .metric-foot { display: block; color: var(--muted); font-size: .9rem; }
.metric-primary .metric-label, .metric-primary .metric-foot { color: #c8e5df; }
.metric-card strong { display: block; margin: .35rem 0 .2rem; font-family: var(--display); font-size: clamp(1.8rem, 3.5vw, 3rem); line-height: 1; }
.analysis-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .8fr); gap: 1rem; margin-top: 1rem; }
.panel { padding: 1.25rem; }
.panel-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: start; margin-bottom: 1rem; }
.panel-meta { color: var(--muted); font-size: .9rem; white-space: nowrap; }
.chart-wrap { height: 330px; padding: .3rem 0; border-bottom: 1px solid var(--line); }
#trend-chart { width: 100%; height: 100%; overflow: visible; }
.chart-gridline { stroke: #dfe8e8; stroke-width: 1; }
.chart-axis-label { fill: #68777d; font: 13px var(--body); }
.chart-line { fill: none; stroke: var(--teal); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.chart-area { fill: rgba(20,125,120,.12); }
.chart-dot { fill: #fff; stroke: var(--teal); stroke-width: 3; }
.chart-text, .table-note, .muted-note { color: var(--muted); font-size: .94rem; }
.chart-text { margin: .9rem 0 0; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .95rem; }
th, td { padding: .7rem .45rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; }
td:nth-child(2) { font-weight: 700; white-space: nowrap; }
.table-note { margin: .9rem 0 0; }
.member-state-panel { margin-top: 1rem; }
.member-state-panel tr.selected-country { background: var(--teal-soft); }
.member-state-panel tr.eu-reference { background: #f5f1e8; }
.member-state-panel td:first-child { color: var(--muted); font-weight: 700; }
.partner-panel { margin-top: 1rem; }
.partner-controls { display: grid; grid-template-columns: 1.2fr 1.2fr .75fr 1fr .85fr; gap: .75rem; margin-bottom: 1rem; }
.partner-panel tr.selected-partner { background: #fff3df; }
.benchmark-panel { margin-top: 1rem; }
.benchmark-controls { max-width: 240px; margin-bottom: .75rem; }
.benchmark-description { max-width: 820px; color: var(--muted); }
.benchmark-panel th:nth-child(2) { color: var(--teal-dark); }
.benchmark-panel th:nth-child(3) { color: var(--rust); }
.macro-panel { margin-top: 1rem; }
.macro-controls { max-width: 280px; margin-bottom: .75rem; }
.macro-description { max-width: 820px; color: var(--muted); }
.macro-panel tr.forecast-row { background: #f5f1e8; }
.gdp-controls { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(180px, .7fr) minmax(220px, 1fr); gap: .8rem; margin: 1rem 0; }
.gdp-controls input { width: 100%; min-height: 2.75rem; padding: .4rem .65rem; color: var(--ink); background: #fff; border: 1px solid #b9c8ce; border-radius: 3px; font: inherit; }
.gdp-controls input:focus { outline: 3px solid rgba(20,125,120,.2); border-color: var(--teal); }
.gdp-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gdp-reading-guide, .gdp-snapshot-panel { margin-top: 1rem; }
.gdp-reading-guide p { max-width: 980px; }
.gdp-gap-note { padding-left: .8rem; border-left: 3px solid var(--rust); }
.gdp-line-key { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: 1rem 0; color: var(--muted); font-size: .88rem; }
.gdp-line-key span { display: inline-flex; align-items: center; gap: .4rem; }
.gdp-swatch, .gdp-dash { display: inline-block; width: 1.25rem; height: 0; border-top: 3px solid; }
.gdp-swatch.nominal { border-color: #b45309; }
.gdp-swatch.real { border-color: #0f766e; }
.gdp-dash { border-color: var(--ink); }
.gdp-dash.baseline { border-top-style: dashed; }
.gdp-dash.imec { border-top-style: dotted; }
.gdp-dash.mattei { border-top-style: double; }
.gdp-provenance { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.gdp-provenance summary { color: var(--teal-dark); font-weight: 700; cursor: pointer; }
.gdp-chart-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-top: 1rem; }
.gdp-chart-wrap { width: 100%; height: 360px; min-width: 0; }
.gdp-chart-wrap svg { display: block; width: 100%; height: 100%; }
.gdp-chart-wrap .policy-series-line { stroke-width: 3; }
.gdp-chart-wrap .policy-series-dot { r: 2.7; }
.gdp-snapshot-panel .table-wrap { overflow-x: auto; }
.gdp-snapshot-panel th, .gdp-snapshot-panel td { font-variant-numeric: tabular-nums; }
.essip-controls { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin: 1rem 0 .75rem; }
.essip-series-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem 1rem; margin: 0 0 1rem; padding: .8rem 1rem; border: 1px solid var(--line); background: rgba(255,255,255,.72); }
.essip-series-controls legend { padding: 0 .3rem; color: var(--muted); font-weight: 700; }
.essip-series-controls label { display: inline-flex; align-items: center; gap: .4rem; }
.essip-series-controls input { accent-color: var(--teal); }
.essip-reading-guide, .essip-total-panel { margin-top: 1rem; }
.essip-reading-guide p { max-width: 980px; }
.essip-gap-note { padding-left: .8rem; border-left: 3px solid var(--rust); }
.essip-legend { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: 1rem 0; color: var(--muted); font-size: .88rem; }
.essip-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.essip-swatch { display: inline-block; width: 1.25rem; height: 0; border-top: 3px solid; }
.essip-swatch.ess1 { border-color: #1f5f5b; }
.essip-swatch.ess2 { border-color: #b47038; }
.essip-swatch.ess3 { border-color: #2f6c8f; }
.essip-swatch.industry { border-color: #111; }
.essip-swatch.estimate, .essip-swatch.mattei { border-color: #111; border-top-style: dotted; }
.essip-swatch.baseline { border-color: #36454f; }
.essip-swatch.imec { border-color: #d97706; border-top-style: dashed; }
.essip-provenance { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.essip-provenance summary { color: var(--teal-dark); font-weight: 700; cursor: pointer; }
.essip-definitions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.essip-definitions p { min-width: 0; padding: .75rem; border-left: 3px solid var(--line); background: rgba(255,255,255,.65); }
.essip-total-panel { min-width: 0; }
.essip-chart-wrap { width: 100%; height: 380px; min-width: 0; }
.essip-chart-wrap svg { display: block; width: 100%; height: 100%; }
.essip-chart-wrap .policy-series-line { stroke-width: 3; }
.essip-chart-wrap .policy-series-dot { r: 2.7; }
.essip-sector-section { margin-top: 1.3rem; }
.essip-sector-section .section-heading { margin-bottom: 1rem; }
.essip-sector-charts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.essip-sector-panel { min-width: 0; }
.essip-sector-panel h3 { margin: 0; font-family: var(--display); font-size: 1.45rem; line-height: 1.15; }
.prodcom-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1rem 0 .75rem; max-width: 640px; }
.prodcom-activity-controls { margin: 0 0 1rem; padding: .75rem 1rem; border: 1px solid var(--line); background: rgba(255,255,255,.72); }
.prodcom-activity-controls legend { padding: 0 .3rem; color: var(--muted); font-weight: 700; }
#prodcom-activity-toggles { display: flex; flex-wrap: wrap; gap: .55rem 1rem; }
#prodcom-activity-toggles label { display: inline-flex; align-items: center; gap: .4rem; }
#prodcom-activity-toggles input { accent-color: var(--teal); }
.prodcom-activity-swatch { display: inline-block; width: 1.1rem; height: 0; border-top: 3px solid var(--activity-color); }
.prodcom-method, .prodcom-model-panel { margin-top: 1rem; }
.prodcom-method p { max-width: 1000px; }
.prodcom-method-note { padding-left: .8rem; border-left: 3px solid var(--rust); }
.prodcom-legend { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin: 1rem 0; color: var(--muted); font-size: .88rem; }
.prodcom-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.prodcom-swatch { display: inline-block; width: 1.25rem; height: 0; border-top: 3px solid; }
.prodcom-swatch.value { border-color: #1f5f5b; }
.prodcom-swatch.index { border-color: #b47038; }
.prodcom-swatch.yoy { border-color: #2f6c8f; }
.prodcom-swatch.forecast { border-color: #36454f; border-top-style: dashed; }
.prodcom-provenance { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.prodcom-provenance summary { color: var(--teal-dark); font-weight: 700; cursor: pointer; }
.prodcom-total-section, .prodcom-activity-section { margin-top: 1.3rem; }
.prodcom-total-grid, .prodcom-activity-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.prodcom-chart-panel { min-width: 0; }
.prodcom-chart-panel h3 { margin: 0; font-family: var(--display); font-size: 1.4rem; line-height: 1.15; }
.prodcom-chart-wrap { width: 100%; height: 340px; min-width: 0; }
.prodcom-chart-wrap svg { display: block; width: 100%; height: 100%; }
.prodcom-chart-wrap .policy-series-line { stroke-width: 3; }
.prodcom-chart-wrap .policy-series-dot { r: 2.6; }
.prodcom-share-wrap { height: 460px; }
.prodcom-group-label { font-size: 11px; }
.prodcom-yoy-bar { shape-rendering: crispEdges; }
.prodcom-model-panel .table-wrap { overflow-x: auto; }
.prodcom-model-panel table { min-width: 680px; }
.macro-interaction-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin: 1rem 0; }
.macro-interaction-kpis .metric-card { min-width: 0; }
.macro-interaction-reading, .macro-interaction-index-panel, .macro-interaction-raw-panel, .macro-interaction-model-panel, .macro-interaction-correlation-panel, .macro-interaction-source-panel { margin-top: 1rem; }
.macro-interaction-reading p, .macro-interaction-source-panel p { max-width: 1050px; }
.macro-interaction-definition { padding-left: .8rem; border-left: 3px solid var(--rust); }
.macro-interaction-forecast-note { margin: .8rem 0 0; padding: .75rem .9rem; border-left: 3px solid var(--rust); }
.macro-interaction-series-controls { margin: .8rem 0; padding: .7rem .9rem; border: 1px solid var(--line); background: rgba(255,255,255,.72); }
.macro-interaction-series-controls legend { padding: 0 .3rem; color: var(--muted); font-weight: 700; }
#macro-interaction-series-toggles { display: flex; flex-wrap: wrap; gap: .55rem 1rem; }
#macro-interaction-series-toggles label { display: inline-flex; align-items: center; gap: .4rem; min-width: 0; }
#macro-interaction-series-toggles input { accent-color: var(--teal); }
.macro-interaction-legend, .macro-interaction-raw-legend { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem 1rem; margin: .7rem 0; color: var(--muted); font-size: .88rem; }
.macro-interaction-legend span, .macro-interaction-raw-legend span { display: inline-flex; align-items: center; gap: .4rem; min-width: 0; }
.macro-interaction-line-swatch { display: inline-block; flex: 0 0 auto; width: 1.25rem; height: 0; border-top: 3px solid var(--macro-series-color, #1f5f5b); }
.macro-interaction-line-swatch.forecast { border-color: #36454f; border-top-style: dashed; }
.macro-interaction-line-swatch.base { border-color: #36454f; border-top-style: dotted; }
.macro-interaction-shock-swatch { display: inline-block; flex: 0 0 auto; width: 1.1rem; height: .65rem; background: rgba(180,112,56,.17); border: 1px solid rgba(180,112,56,.45); }
.macro-interaction-bar-swatch { display: inline-block; flex: 0 0 auto; width: .75rem; height: .75rem; background: var(--teal); opacity: .35; }
.macro-interaction-bar-swatch.forecast { opacity: .16; }
.macro-interaction-chart-wrap { width: 100%; height: 480px; min-width: 0; }
.macro-interaction-raw-chart-wrap { height: 420px; }
.macro-interaction-chart-wrap svg { display: block; width: 100%; height: 100%; }
.macro-interaction-series-line { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.macro-interaction-forecast-line { fill: none; stroke-width: 2.7; stroke-dasharray: 8 5; stroke-linejoin: round; stroke-linecap: round; }
.macro-interaction-series-dot { fill: #fff; stroke-width: 2; }
.macro-interaction-base-line { stroke: rgba(17,17,17,.45); stroke-width: 1.4; stroke-dasharray: 2 5; }
.macro-interaction-shock-band { fill: rgba(180,112,56,.10); }
.macro-interaction-shock-label { fill: var(--muted); font-size: 11px; }
.macro-interaction-change-bar { shape-rendering: crispEdges; }
.macro-interaction-change-bar.forecast { opacity: .14; }
.macro-interaction-controls { display: grid; grid-template-columns: minmax(220px, 320px); margin: .5rem 0; }
.macro-interaction-summary-section { margin-top: 1.3rem; }
.macro-interaction-summary-section .section-heading { margin-bottom: .8rem; }
.macro-interaction-series-summaries { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.macro-interaction-summary-card { min-width: 0; border-top: 3px solid var(--macro-series-color); }
.macro-interaction-summary-card h3 { margin: 0 0 .55rem; font-family: var(--display); font-size: 1.2rem; }
.macro-interaction-summary-card p { margin: .35rem 0; overflow-wrap: anywhere; }
.macro-interaction-model-panel summary, .macro-interaction-source-panel summary { color: var(--teal-dark); font-weight: 700; cursor: pointer; }
.macro-interaction-model-panel summary strong, .macro-interaction-source-panel summary strong { display: block; margin-top: .15rem; color: var(--ink); font-family: var(--display); font-size: 1.35rem; }
.macro-interaction-model-panel .table-wrap, .macro-interaction-source-panel .table-wrap, .macro-interaction-correlation-panel .table-wrap { overflow-x: auto; }
.macro-interaction-model-panel table { min-width: 680px; }
.macro-interaction-source-panel table { min-width: 1120px; }
.macro-interaction-correlation-panel table { min-width: 720px; }
.macro-interaction-source-intro { margin-top: .8rem; }
.macro-panel tr.forecast-row td:nth-child(3) { color: var(--rust); font-weight: 700; }
.industrial-panel, .digital-panel, .scenario-panel { margin-top: 1rem; }
.module-controls, .scenario-controls { display: flex; gap: .75rem; max-width: 520px; margin-bottom: .75rem; }
.scenario-controls { display: grid; grid-template-columns: 1fr 1fr; }
.scenario-panel tr:nth-child(3n + 1) { background: #f7faf9; }
.gis-panel { margin-top: 1rem; }
.gis-panel tr.selected-gis { background: var(--teal-soft); }
.provenance-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 1rem; margin-top: 1rem; }
.source-panel { border-top: 4px solid var(--teal); }
.note-panel { border-top: 4px solid var(--rust); }
.panel p { color: var(--muted); }
.source-details { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin: 1.2rem 0; }
.source-details div { min-width: 0; padding-top: .55rem; border-top: 1px solid var(--line); }
dt { color: var(--muted); font-size: .8rem; }
dd { margin: .2rem 0 0; overflow-wrap: anywhere; font-weight: 700; }
.text-link { color: var(--teal-dark); font-weight: 700; text-underline-offset: .18em; }
@media (max-width: 850px) { .gdp-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gdp-controls label:last-child { grid-column: 1 / -1; } .essip-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); } .essip-definitions { grid-template-columns: 1fr; } .prodcom-controls { max-width: none; } .macro-interaction-series-summaries { grid-template-columns: repeat(2, minmax(0, 1fr)); } .macro-interaction-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 580px) { .gdp-controls { grid-template-columns: 1fr; } .gdp-controls label:last-child { grid-column: auto; } .gdp-chart-wrap { height: 300px; } .essip-controls { grid-template-columns: 1fr; } .essip-chart-wrap { height: 300px; } .essip-series-controls { align-items: flex-start; } .prodcom-controls { grid-template-columns: 1fr; } .prodcom-chart-wrap { height: 300px; } .prodcom-share-wrap { height: 440px; } .macro-interaction-controls, .macro-interaction-kpis, .macro-interaction-series-summaries { grid-template-columns: 1fr; } .macro-interaction-chart-wrap { height: 350px; } .macro-interaction-raw-chart-wrap { height: 330px; } .macro-interaction-index-panel .panel-heading, .macro-interaction-raw-panel .panel-heading { align-items: flex-start; } .macro-interaction-index-panel .panel-meta, .macro-interaction-raw-panel .panel-meta { max-width: 100%; text-align: left; overflow-wrap: anywhere; } }
[hidden] { display: none !important; }
@keyframes rise-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 1000px) { .partner-controls { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 850px) { .app-layout { grid-template-columns: 220px minmax(0, 1fr); } .intro-row, .section-heading { align-items: start; flex-direction: column; } .metric-grid { grid-template-columns: repeat(2, 1fr); } .analysis-grid, .provenance-grid, .gis-workspace-grid, .comparison-chart-grid { grid-template-columns: 1fr; } .policy-controls { grid-template-columns: minmax(160px, 1fr); } .quality-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gis-ranking { max-height: 520px; } .comparison-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); } .comparison-controls label:last-child { grid-column: 1 / -1; } }
@media (max-width: 580px) { .app-header { align-items: start; flex-direction: column; gap: .5rem; } .app-header nav { gap: .8rem; font-size: .88rem; } .app-layout { display: block; } .sidebar { position: static; height: auto; padding: .75rem; border-right: 0; border-bottom: 1px solid var(--line); } .view-navigation { display: flex; overflow-x: auto; gap: .35rem; padding-bottom: .25rem; } .view-navigation a { flex: 0 0 auto; max-width: 220px; border-left: 0; border-bottom: 3px solid transparent; } .view-navigation a.nav-active { border-bottom-color: var(--teal); } .app-shell { padding: 1.5rem .85rem 3rem; } .controls-grid, .metric-grid { grid-template-columns: 1fr; } .metric-card { min-height: 108px; } .source-details { grid-template-columns: 1fr; } .panel { padding: 1rem; } .panel-meta { max-width: 48%; white-space: normal; text-align: right; } .policy-quality .panel-heading { flex-wrap: wrap; } .policy-quality .panel-heading > div { min-width: 0; max-width: 100%; } .policy-quality .panel-meta { max-width: 100%; text-align: left; overflow-wrap: anywhere; } .table-wrap table { table-layout: fixed; font-size: .82rem; } .table-wrap th, .table-wrap td { overflow-wrap: anywhere; word-break: break-word; } .policy-tabs { margin-right: 0; } .policy-tabs button { padding: .58rem .65rem; font-size: .88rem; } .policy-chart-wrap { height: 300px; margin-left: -.2rem; width: calc(100% + .4rem); } .policy-chart-wrap.compact-chart { height: 300px; } .policy-chart-wrap svg { overflow: hidden; } .driver-summary, .quality-summary { grid-template-columns: 1fr 1fr; } .driver-summary .metric-card, .quality-summary .metric-card { min-height: 92px; padding: .75rem; } .driver-summary strong, .quality-summary .metric-card strong { font-size: 1.15rem; } .scenario-toggle-group { gap: .4rem .7rem; } .policy-generated-chart { height: 6000px; } .generated-dashboard-panel { padding: .9rem; } .generated-dashboard-panel summary strong { display: block; margin: .4rem 0 0; } .gis-controls { grid-template-columns: 1fr 1fr; gap: .65rem; padding: .8rem; } .gis-controls label:nth-child(3) { grid-column: 1 / -1; } .gis-table-toggle { min-height: 2.4rem; } .gis-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gis-kpis .metric-card:last-child { grid-column: 1 / -1; } .gis-kpis .metric-card { min-height: 95px; } .gis-kpis .metric-card strong { font-size: 1.35rem; } .gis-workspace-grid { grid-template-columns: minmax(0, 1fr); } .gis-map-frame { min-height: 260px; aspect-ratio: 1 / .9; } .gis-ranking { max-height: 520px; } .gis-ranking-row { grid-template-columns: 1.6rem minmax(5rem, 1fr) minmax(2.2rem, .7fr) auto; gap: .35rem; } .gis-rank-country { font-size: .8rem; } .gis-rank-value { min-width: 3.6rem; font-size: .72rem; } .gis-country-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gis-metric-details { grid-template-columns: 1fr; } .gis-reading-guide .panel-heading { flex-direction: row; align-items: center; } .gis-reading-guide .panel-meta { max-width: none; } .comparison-controls { grid-template-columns: 1fr; } .comparison-controls label:last-child { grid-column: auto; } .comparison-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .comparison-summary .metric-card { min-height: 94px; padding: .8rem; } .comparison-summary .metric-card strong { font-size: 1.3rem; } .comparison-chart-wrap { height: 300px; } .comparison-definitions { grid-template-columns: 1fr; } .comparison-reading-guide .panel-heading { flex-direction: row; align-items: center; } .comparison-geography { max-width: 100%; } }
/* Stage 9: Multi-API ESS research view */
.multi-api-ess-view { min-width: 0; }
.maess-research-warning { margin: 1.2rem 0; padding: 1rem 1.1rem; color: #713b23; background: #fff3e8; border: 1px solid #e7b78d; border-left: 5px solid var(--rust); box-shadow: 0 8px 20px rgba(16,47,51,.04); }
.maess-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; min-width: 0; margin: 1rem 0; padding: .7rem .9rem .85rem; background: rgba(255,255,255,.88); border: 1px solid var(--line); }
.maess-controls legend { padding: 0 .25rem; color: var(--deep); font-weight: 800; }
.maess-controls label { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; }
.maess-controls input { accent-color: var(--teal); }
.maess-horizon-controls { margin-top: -.35rem; }
.maess-horizon-controls > span { color: var(--deep); font-weight: 800; }
.maess-reading { margin-top: .9rem; }
.maess-reading p, .maess-source-map-panel p, .maess-model-panel p, .maess-selected-features-panel p, .maess-context-panel p, .maess-original-quality p { max-width: 1050px; }
.maess-note { padding: .65rem .75rem; overflow-wrap: anywhere; word-break: break-word; background: #f5f1e8; border-left: 3px solid var(--rust); }
.maess-legend { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; padding-top: .75rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .88rem; }
.maess-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.maess-swatch { display: inline-block; width: 1.5rem; height: .18rem; background: var(--teal); }
.maess-swatch.observed { background: #111827; }
.maess-swatch.baseline { background: #6b7280; }
.maess-swatch.augmented { background: var(--teal); }
.maess-swatch.interval { height: .65rem; background: rgba(20,125,120,.18); border: 1px solid rgba(20,125,120,.5); }
.maess-section, .maess-chart-grid, .maess-target-grid { min-width: 0; }
.maess-section { margin-top: 1.25rem; }
.maess-chart-grid, .maess-target-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.maess-target-panel, .maess-chart-panel { min-width: 0; }
.maess-target-panel h3, .maess-chart-panel h3 { margin: 0 0 .7rem; font-family: var(--display); font-size: 1.25rem; line-height: 1.2; overflow-wrap: anywhere; }
.maess-chart-wrap { width: 100%; min-width: 0; height: 340px; overflow: hidden; }
.maess-chart-wrap.maess-tall-chart { height: 440px; }
.maess-chart-wrap svg { display: block; width: 100%; height: 100%; }
.maess-target-caption { min-height: 2rem; margin: .35rem 0 0; color: var(--muted); font-size: .85rem; }
.maess-target-source { margin: .2rem 0 .7rem; color: var(--muted); font-size: .78rem; }
.maess-quality-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin: .9rem 0; }
.maess-quality-kpis > div { min-width: 0; padding: .75rem; background: #f7faf9; border-top: 2px solid var(--teal); }
.maess-quality-kpis span { display: block; color: var(--muted); font-size: .8rem; }
.maess-quality-kpis strong { display: block; margin-top: .2rem; color: var(--deep); font-size: clamp(1.1rem, 2vw, 1.5rem); overflow-wrap: anywhere; }
.maess-backtest-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.maess-backtest-card { min-width: 0; padding: .7rem; background: #fff; border: 1px solid var(--line); }
.maess-backtest-card h4 { margin: 0 0 .35rem; color: var(--deep); font-family: var(--display); font-size: 1rem; }
.maess-backtest-card .maess-chart-wrap { height: 280px; }
.maess-model-explanations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: .8rem 0; }
.maess-model-explanations article { min-width: 0; padding: .7rem; background: #f7faf9; border-left: 3px solid var(--teal); }
.maess-model-explanations strong { color: var(--deep); }
.maess-model-explanations p { margin: .3rem 0 0; color: var(--muted); font-size: .88rem; }
.maess-chart-legend { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin: .25rem 0 .6rem; color: var(--muted); font-size: .78rem; }
.maess-chart-legend span { display: inline-flex; align-items: center; gap: .25rem; }
.maess-chart-legend i { display: inline-block; width: .8rem; height: .18rem; background: var(--teal); }
.maess-table-wrap { width: 100%; min-width: 0; overflow-x: auto; }
.maess-table-wrap table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: .86rem; }
.maess-table-wrap th, .maess-table-wrap td { padding: .52rem .6rem; border-bottom: 1px solid #dfe7e8; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.maess-table-wrap th { color: var(--deep); background: #edf5f3; font-weight: 800; }
.maess-table-wrap td { font-variant-numeric: tabular-nums; }
.maess-table-wrap .maess-empty { color: var(--muted); font-style: italic; }
.maess-method-notes, .maess-artifact-list { padding-left: 1.3rem; }
.maess-method-notes li, .maess-artifact-list li { margin: .35rem 0; overflow-wrap: anywhere; }
.maess-artifact-list { columns: 2; column-gap: 2rem; color: var(--muted); font-size: .83rem; }
.maess-original-quality-source { overflow-wrap: anywhere; }
.multi-api-ess-view .chart-gridline { stroke: #e1e8e9; stroke-width: 1; }
.multi-api-ess-view .chart-axis { stroke: #85959b; stroke-width: 1; }
.multi-api-ess-view .chart-axis-label { fill: #52616d; font: 12px "Times New Roman", serif; }
.multi-api-ess-view .maess-svg-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.multi-api-ess-view .maess-svg-dot { fill: #fff; stroke-width: 2; }
.multi-api-ess-view .maess-bar { opacity: .88; }
.maess-source-map-panel, .maess-context-panel, .maess-original-quality, .maess-preview-panel, .maess-evidence-panel, .maess-provenance-panel { margin-top: 1rem; }
@media (max-width: 920px) {
  .maess-target-grid, .maess-chart-grid { grid-template-columns: minmax(0, 1fr); }
  .maess-backtest-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .maess-quality-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .maess-controls { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .maess-horizon-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .maess-horizon-controls > span { grid-column: 1 / -1; }
  .maess-backtest-grid, .maess-model-explanations { grid-template-columns: minmax(0, 1fr); }
  .maess-chart-wrap { height: 300px; }
  .maess-chart-wrap.maess-tall-chart { height: 520px; }
  .maess-backtest-card .maess-chart-wrap { height: 290px; }
  .maess-artifact-list { columns: 1; }
  .multi-api-ess-view .panel-heading { flex-wrap: wrap; }
  .multi-api-ess-view .panel-meta { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
}

/* Stage 10: Digital intensity and scenario overlays */
.digital-intensity-view { min-width: 0; }
.dii-reading-note, .dii-scenario-panel, .dii-summary-panel, .dii-country-table-panel, .dii-provenance-panel { margin-top: 1rem; }
.dii-reading-note { border-left: 4px solid var(--rust); }
.dii-reading-note p:not(.eyebrow) { max-width: 1080px; }
.dii-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1rem 0; }
.dii-kpis .metric-card { min-width: 0; }
.dii-kpis .metric-card strong { font-variant-numeric: tabular-nums; }
.dii-scenario-panel h2, .dii-summary-panel h2, .dii-country-table-panel h2, .dii-provenance-panel h2 { font-size: 1.7rem; }
.dii-scenario-panel .panel-heading { flex-wrap: wrap; }
.dii-scenario-panel .panel-meta { max-width: 100%; }
.dii-scenario-swatch { display: inline-block; width: 1.45rem; height: .2rem; border-top: 3px solid var(--dii-scenario-color); }
.dii-scenario-swatch.dii-scenario-dash { border-top-style: dashed; }
.dii-scenario-swatch.dii-scenario-dot { border-top-style: dotted; }
.dii-charts-section { min-width: 0; margin-top: 1.4rem; }
.dii-charts-section > .section-heading { margin-bottom: .75rem; }
.dii-charts-section h2 { font-size: 1.8rem; }
.dii-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; min-width: 0; }
.dii-chart-panel { min-width: 0; }
.dii-chart-panel .panel-heading { align-items: start; gap: .5rem; }
.dii-chart-panel .panel-heading > div { min-width: 0; }
.dii-chart-panel h2 { font-size: 1.35rem; line-height: 1.2; overflow-wrap: anywhere; }
.dii-chart-panel .panel-meta { max-width: 42%; white-space: normal; text-align: right; }
.dii-chart-wrap { width: 100%; min-width: 0; height: 350px; overflow: hidden; }
.dii-chart-wrap svg { display: block; width: 100%; height: 100%; }
.digital-intensity-view .chart-gridline { stroke: #e1e8e9; stroke-width: 1; }
.digital-intensity-view .chart-axis { stroke: #85959b; stroke-width: 1; }
.digital-intensity-view .chart-axis-label { fill: #52616d; font: 12px "Times New Roman", serif; }
.digital-intensity-view .chart-axis-title { fill: #52616d; font: 12px "Times New Roman", serif; }
.digital-intensity-view .dii-series-line { fill: none; stroke-width: 2.7; stroke-linecap: round; stroke-linejoin: round; }
.digital-intensity-view .dii-series-dot { fill: #fff; stroke-width: 2; }
.digital-intensity-view .dii-scatter-dot { stroke: #fff; stroke-width: 1.5; }
.digital-intensity-view .dii-scatter-label { font-weight: 700; }
.dii-global-legend { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin-top: .7rem; color: var(--muted); font-size: .86rem; }
.dii-global-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.dii-global-legend i { display: inline-block; width: 1.4rem; height: .6rem; }
.dii-legend-historical { border-top: 2px solid #1f5f5b; }
.dii-legend-future { background: rgba(180,112,56,.1); border: 1px solid rgba(180,112,56,.3); }
.dii-tabs { margin-top: .5rem; }
.dii-tab-panel { min-width: 0; padding-top: .75rem; }
.dii-tab-panel table { min-width: 1420px; }
.dii-tab-panel th, .dii-tab-panel td { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.dii-baseline-row { background: #f3f6f6; font-weight: 700; }
.dii-table-controls { display: grid; grid-template-columns: minmax(180px, 1.3fr) minmax(160px, 1fr) minmax(120px, .7fr) minmax(130px, .8fr); align-items: start; gap: .75rem; margin: .9rem 0; }
.dii-table-controls label { min-width: 0; }
.dii-table-controls select[multiple] { height: 8rem; padding: .3rem; }
.dii-table-status { margin: .4rem 0; color: var(--muted); font-size: .88rem; }
.dii-table-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; margin: .8rem 0; }
.dii-table-kpis .metric-card { min-width: 0; min-height: 92px; padding: .7rem; }
.dii-table-kpis .metric-card strong { font-size: 1.25rem; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.dii-source-table-wrap { width: 100%; min-width: 0; overflow-x: auto; }
.dii-source-table-wrap table { min-width: 1400px; table-layout: auto; font-size: .86rem; }
.dii-source-table-wrap th, .dii-source-table-wrap td { max-width: 240px; padding: .48rem .55rem; vertical-align: top; overflow-wrap: anywhere; word-break: break-word; }
.dii-source-table-wrap td:nth-child(11) { min-width: 240px; }
.dii-method-notes, .dii-artifact-list { padding-left: 1.3rem; }
.dii-method-notes li, .dii-artifact-list li { margin: .35rem 0; overflow-wrap: anywhere; }
.dii-artifact-list { columns: 2; column-gap: 2rem; color: var(--muted); font-size: .85rem; }
@media (max-width: 920px) {
  .dii-chart-grid { grid-template-columns: minmax(0, 1fr); }
  .dii-kpis, .dii-table-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dii-table-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .dii-kpis, .dii-table-kpis { grid-template-columns: 1fr 1fr; }
  .dii-chart-wrap { height: 300px; }
  .dii-chart-panel .panel-heading { flex-wrap: wrap; }
  .dii-chart-panel .panel-meta { max-width: 100%; text-align: left; }
  .dii-table-controls { grid-template-columns: minmax(0, 1fr); }
  .dii-table-controls select[multiple] { height: 7rem; }
  .dii-artifact-list { columns: 1; }
  .dii-summary-panel .panel-heading, .dii-country-table-panel .panel-heading, .dii-provenance-panel .panel-heading { flex-wrap: wrap; }
  .dii-summary-panel .panel-meta, .dii-country-table-panel .panel-meta, .dii-provenance-panel .panel-meta { max-width: 100%; text-align: left; }
}

/* Stage 11: Energy-partner evidence */
.energy-partners-view { min-width: 0; }
.energy-partners-view .panel { min-width: 0; }
.ep-reading-note { margin-top: 1rem; border-left: 4px solid var(--rust); }
.ep-reading-note p:not(.eyebrow) { max-width: 1100px; }
.ep-controls-panel, .ep-summary-panel, .ep-analysis-panel { margin-top: 1rem; }
.ep-controls { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin: .8rem 0; }
.ep-controls label { min-width: 0; }
.ep-checkbox-control { display: flex; align-items: center; align-self: end; gap: .5rem; min-height: 2.75rem; padding: .4rem .65rem; border: 1px solid var(--line); background: rgba(255,255,255,.72); }
.ep-checkbox-control input { width: 1rem; height: 1rem; accent-color: var(--teal); }
.ep-source-status { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin-top: 1rem; }
.ep-status-item { display: grid; gap: .25rem; min-width: 0; padding: .7rem .8rem; border: 1px solid var(--line); background: #f7faf9; }
.ep-status-item span { color: var(--muted); font-size: .8rem; }
.ep-status-item strong { color: var(--deep); overflow-wrap: anywhere; }
.ep-warning { border-left: 4px solid var(--rust); }
.ep-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; min-width: 0; margin-top: 1rem; }
.ep-chart-panel { min-width: 0; }
.ep-chart-panel .panel-heading { flex-wrap: wrap; }
.ep-chart-panel h2 { font-size: 1.35rem; line-height: 1.2; }
.ep-chart-panel .panel-meta { max-width: 100%; white-space: normal; text-align: right; }
.ep-chart-wrap { width: 100%; min-width: 0; overflow: hidden; }
.ep-chart-wrap svg { display: block; width: 100%; height: auto; }
.ep-chart-empty { display: grid; place-items: center; min-height: 220px; margin: 0; padding: 1rem; color: var(--muted); text-align: center; background: #f7faf9; border: 1px dashed var(--line); }
.ep-gridline { stroke: #e1e8e9; stroke-width: 1; }
.ep-axis-label { fill: #52616d; font: 11px Arial, sans-serif; }
.ep-axis-title { fill: #52616d; font: 12px Arial, sans-serif; }
.ep-bar-label, .ep-bar-value { fill: #31434b; font: 11px Arial, sans-serif; }
.ep-bar-value { font-weight: 700; }
.ep-bar { opacity: .9; }
.ep-line { fill: none; }
.ep-legend { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin: .4rem 0 .8rem; color: var(--muted); font-size: .85rem; }
.ep-legend > span { display: inline-flex; align-items: center; gap: .4rem; }
.ep-legend i { width: 1rem; height: .2rem; }
.ep-summary-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; }
.ep-summary-card { min-width: 0; min-height: 105px; padding: .8rem; }
.ep-summary-card .metric-label { font-size: .82rem; }
.ep-summary-card strong { font-size: clamp(1.15rem, 2vw, 1.75rem); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.ep-tabs { display: flex; flex-wrap: wrap; gap: .25rem; margin: .5rem 0 0; border-bottom: 2px solid var(--deep); }
.ep-tabs button { padding: .65rem .8rem; color: var(--teal-dark); background: transparent; border: 0; border-bottom: 3px solid transparent; font: inherit; font-weight: 700; cursor: pointer; }
.ep-tabs button[aria-selected="true"] { color: var(--deep); border-bottom-color: var(--rust); }
.ep-tabs button:focus-visible { outline: 3px solid rgba(20,125,120,.25); outline-offset: -2px; }
.ep-tab-panel { min-width: 0; padding-top: .9rem; }
.ep-tab-panel h3 { margin-top: 1.35rem; }
.ep-table-wrap { width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.energy-partners-view .ep-table-wrap table { width: max-content; min-width: 100%; table-layout: auto; font-size: .84rem; }
.energy-partners-view .ep-table-wrap th, .energy-partners-view .ep-table-wrap td { max-width: 360px; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.energy-partners-view .ep-table-wrap td { font-variant-numeric: tabular-nums; }
.ep-gauge-card { max-width: 760px; padding: 1rem; border: 1px solid var(--line); background: #f7faf9; }
.ep-gauge-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem; margin-bottom: 1.1rem; }
.ep-gauge-heading strong { color: var(--deep); font-family: var(--display); font-size: 2rem; }
.ep-gauge-heading span { color: var(--muted); font-weight: 700; }
.ep-gauge-track { position: relative; display: flex; height: 1rem; overflow: visible; border-radius: 1rem; }
.ep-gauge-zone { height: 100%; }
.ep-gauge-low { width: 33%; background: #d7e9e5; }
.ep-gauge-middle { width: 33%; background: #f3ede2; }
.ep-gauge-high { width: 34%; background: #d7a39a; }
.ep-gauge-marker { position: absolute; top: -.28rem; width: .38rem; height: 1.55rem; margin-left: -.19rem; background: var(--deep); border: 2px solid #fff; box-shadow: 0 1px 4px rgba(16,47,51,.35); }
.ep-gauge-axis { display: flex; justify-content: space-between; margin-top: .25rem; color: var(--muted); font-size: .75rem; }
@media (max-width: 920px) {
  .ep-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ep-chart-grid { grid-template-columns: minmax(0, 1fr); }
  .ep-summary-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .ep-controls { grid-template-columns: minmax(0, 1fr); }
  .ep-source-status { grid-template-columns: minmax(0, 1fr); }
  .ep-summary-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ep-chart-panel .panel-heading { align-items: start; }
  .ep-chart-panel .panel-meta { max-width: 100%; text-align: left; }
  .ep-tabs { gap: .1rem; }
  .ep-tabs button { padding: .55rem .56rem; font-size: .88rem; }
  .ep-reading-note, .ep-controls-panel, .ep-summary-panel, .ep-analysis-panel { padding: 1rem; }
}

/* Stage 12: ESS country-year audit table */
.energy-table-view { min-width: 0; }
.et-reading-note, .et-controls-panel, .et-table-panel, .et-provenance-panel { min-width: 0; margin-top: 1rem; }
.et-reading-note p:not(.eyebrow) { max-width: 1100px; }
.et-controls { display: grid; grid-template-columns: minmax(220px, 1.5fr) minmax(180px, 1fr) minmax(120px, .65fr) minmax(120px, .55fr); gap: .8rem; margin: .8rem 0; }
.et-controls label { min-width: 0; }
.et-controls input, .et-controls select { width: 100%; min-height: 2.75rem; padding: .4rem .65rem; color: var(--ink); background: #fff; border: 1px solid #b9c8ce; border-radius: 3px; font: inherit; }
.et-controls select[multiple] { min-height: 9rem; padding: .25rem; }
.et-controls input:focus, .et-controls select:focus { outline: 3px solid rgba(20,125,120,.2); border-color: var(--teal); }
.et-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin-top: 1rem; }
.et-summary .metric-card { min-width: 0; }
.et-summary .metric-card strong { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.et-table-wrap { width: 100%; min-width: 0; max-width: 100%; max-height: min(72vh, 850px); overflow: auto; overscroll-behavior: contain; border: 1px solid var(--line); }
.et-table-wrap:focus-visible { outline: 3px solid rgba(20,125,120,.25); outline-offset: 2px; }
.energy-table-view .et-table { width: max-content; min-width: 100%; table-layout: auto; font-size: .82rem; white-space: nowrap; }
.energy-table-view .et-table th { position: sticky; top: 0; z-index: 1; padding: .5rem .55rem; color: var(--deep); background: #edf5f3; text-transform: none; letter-spacing: 0; }
.energy-table-view .et-table td { padding: .48rem .55rem; font-variant-numeric: tabular-nums; }
.energy-table-view .et-table th:first-child, .energy-table-view .et-table td:first-child { position: sticky; left: 0; z-index: 2; background: #f7faf9; }
.energy-table-view .et-table th:first-child { z-index: 3; background: #edf5f3; }
.et-sort-button { padding: .12rem 0; color: inherit; background: none; border: 0; font: inherit; font-weight: 800; text-align: left; cursor: pointer; }
.et-sort-button:hover, .et-sort-button:focus-visible { color: var(--teal-dark); text-decoration: underline; }
.et-sort-button:focus-visible { outline: 2px solid rgba(20,125,120,.45); outline-offset: 2px; }
.et-empty-cell { padding: 1.2rem !important; color: var(--muted); text-align: center !important; }
.et-pagination { display: flex; align-items: center; justify-content: center; gap: .8rem; margin-top: .8rem; }
.et-pagination button { min-height: 2.4rem; padding: .4rem .8rem; color: var(--deep); background: #f7faf9; border: 1px solid var(--line); border-radius: 3px; font: inherit; font-weight: 700; cursor: pointer; }
.et-pagination button:hover:not(:disabled) { border-color: var(--teal); color: var(--teal-dark); }
.et-pagination button:disabled { opacity: .5; cursor: not-allowed; }
.et-pagination span { min-width: 6.5rem; color: var(--muted); text-align: center; font-variant-numeric: tabular-nums; }
.et-provenance-panel summary { color: var(--deep); font-weight: 800; cursor: pointer; }
.et-provenance-panel p { overflow-wrap: anywhere; }
@media (max-width: 920px) {
  .et-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .et-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .et-controls { grid-template-columns: minmax(0, 1fr); }
  .et-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .et-table-panel, .et-controls-panel, .et-reading-note, .et-provenance-panel { padding: 1rem; }
  .energy-table-view .panel-heading { flex-wrap: wrap; }
  .energy-table-view .panel-meta { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
  .et-table-wrap { max-height: 65vh; }
}

/* Stage 13: canonical formula reference */
.formula-atlas-view { min-width: 0; }
.formula-atlas-view .intro-row { align-items: center; }
.formula-atlas-view .intro-copy { max-width: 900px; }
.fa-home-link { display: inline-flex; align-items: center; justify-content: center; min-height: 2.7rem; flex: 0 0 auto; padding: .45rem .85rem; color: var(--deep); background: #f7faf9; border: 1px solid var(--line); border-radius: 3px; font-weight: 700; text-decoration: none; }
.fa-home-link:hover { border-color: var(--teal); color: var(--teal-dark); }
.fa-home-link:focus-visible, .fa-related-links a:focus-visible, .fa-source-notes a:focus-visible { outline: 3px solid rgba(20,125,120,.3); outline-offset: 2px; }
.fa-copy-note { margin: .7rem 0; color: var(--muted); font-size: .9rem; }
.fa-formula-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: .9rem; min-width: 0; margin: .9rem 0 1rem; }
.fa-formula-card { min-width: 0; background: #fff; }
.formula-atlas-view .fa-formula-card h2 { margin: 0 0 .65rem; color: var(--deep); font-family: var(--display); font-size: 1.25rem; line-height: 1.2; }
.formula-atlas-view .fa-formula-card code { display: block; max-width: 100%; margin: .55rem 0 .75rem; padding: .7rem .8rem; overflow-wrap: anywhere; white-space: normal; user-select: text; color: #0f172a; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 6px; font-family: Consolas, "Courier New", monospace; font-size: .88rem; line-height: 1.48; }
.formula-atlas-view .fa-formula-card p { margin: .4rem 0 0; color: var(--muted); line-height: 1.54; overflow-wrap: anywhere; }
.fa-formula-highlight { border-color: #155e75; background: linear-gradient(180deg, #f5fbfb 0%, #fff 82%); box-shadow: 0 8px 20px rgba(21,94,117,.1); }
.fa-formula-badge { display: inline-flex; width: fit-content; margin: -.1rem 0 .35rem; padding: .28rem .5rem; color: #155e75; background: #e7f5f6; border: 1px solid rgba(21,94,117,.22); border-radius: 999px; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.fa-ess4-direction-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: .7rem 0; }
.fa-ess4-direction-row p { min-width: 0; margin: 0 !important; padding: .62rem .68rem; color: #334155 !important; background: #fff; border: 1px solid var(--line); border-radius: 6px; font-size: .84rem; line-height: 1.4; }
.fa-ess4-direction-row strong { display: block; margin-bottom: .18rem; color: var(--deep); }
.fa-related-panel, .fa-source-notes { min-width: 0; margin-top: 1rem; }
.formula-atlas-view .fa-related-panel h2 { margin: -.25rem 0 .8rem; color: var(--deep); font-family: var(--display); font-size: 1.35rem; }
.fa-related-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.fa-related-links a, .fa-source-notes > a { display: inline-flex; align-items: center; min-height: 2.45rem; padding: .4rem .7rem; color: var(--teal-dark); background: #f7faf9; border: 1px solid var(--line); border-radius: 3px; font-weight: 700; text-decoration: none; }
.fa-related-links a:hover, .fa-source-notes > a:hover { border-color: var(--teal); text-decoration: underline; }
.fa-source-notes summary { color: var(--deep); font-weight: 800; cursor: pointer; }
.fa-source-notes p { max-width: 1000px; color: var(--muted); }
@media (max-width: 920px) {
  .formula-atlas-view .intro-row { align-items: start; }
}
@media (max-width: 560px) {
  .formula-atlas-view .intro-row { flex-direction: column; gap: .8rem; }
  .formula-atlas-view .intro-copy { max-width: 100%; }
  .fa-ess4-direction-row { grid-template-columns: minmax(0, 1fr); }
  .formula-atlas-view .fa-formula-card, .formula-atlas-view .fa-related-panel, .formula-atlas-view .fa-source-notes { padding: 1rem; }
  .fa-related-links a { min-height: 2.7rem; }
}

/* Stage 14: methodology documents */
.methodology-sources-view { min-width: 0; }
.methodology-sources-view .intro-row { align-items: center; }
.methodology-sources-view .intro-copy { max-width: 980px; }
.ms-atlas-link, .ms-related-links a { display: inline-flex; align-items: center; min-height: 2.55rem; padding: .42rem .72rem; color: var(--teal-dark); background: #f7faf9; border: 1px solid var(--line); border-radius: 3px; font-weight: 700; text-decoration: none; }
.ms-atlas-link { flex: 0 0 auto; color: var(--deep); }
.ms-atlas-link:hover, .ms-related-links a:hover { border-color: var(--teal); text-decoration: underline; }
.ms-atlas-link:focus-visible, .ms-related-links a:focus-visible, .ms-contents-panel a:focus-visible { outline: 3px solid rgba(20,125,120,.3); outline-offset: 2px; }
.ms-related-panel, .ms-contents-panel, .ms-document { min-width: 0; margin-top: 1rem; }
.methodology-sources-view .ms-related-panel h2 { margin: -.3rem 0 .75rem; color: var(--deep); font-family: var(--display); font-size: 1.4rem; }
.ms-related-links { display: flex; flex-wrap: wrap; gap: .48rem; }
.ms-content-layout { display: grid; grid-template-columns: minmax(190px, .32fr) minmax(0, 1fr); align-items: start; gap: 1rem; min-width: 0; margin-top: 1rem; }
.ms-contents-panel { position: sticky; top: .75rem; max-height: calc(100vh - 1.5rem); overflow: auto; }
.ms-contents-panel summary { color: var(--deep); font-weight: 800; cursor: pointer; }
.ms-contents-panel nav { margin-top: .7rem; }
.ms-contents-panel ol { margin: 0; padding-left: 1.2rem; }
.ms-contents-panel li { margin: .3rem 0; color: var(--muted); line-height: 1.32; }
.ms-contents-panel li.ms-toc-level-3 { margin-left: .6rem; list-style-type: circle; }
.ms-contents-panel li.ms-toc-level-4, .ms-contents-panel li.ms-toc-level-5, .ms-contents-panel li.ms-toc-level-6 { margin-left: 1rem; list-style-type: square; }
.ms-contents-panel a { color: var(--teal-dark); text-decoration-thickness: .06em; text-underline-offset: .12em; overflow-wrap: anywhere; }
.ms-document-list { min-width: 0; }
.ms-document { padding: clamp(1rem, 2.4vw, 1.65rem); overflow-wrap: anywhere; }
.ms-document:first-child { margin-top: 0; }
.ms-document h2, .ms-document h3, .ms-document h4, .ms-document h5, .ms-document h6 { color: var(--deep); font-family: var(--display); line-height: 1.22; scroll-margin-top: 1rem; }
.ms-document h2 { margin: .1rem 0 .9rem; font-size: clamp(1.55rem, 2.6vw, 2rem); }
.ms-document h3 { margin: 1.55rem 0 .55rem; padding-top: .4rem; border-top: 1px solid var(--line); font-size: 1.42rem; }
.ms-document h4 { margin: 1.2rem 0 .45rem; font-size: 1.2rem; }
.ms-document h5, .ms-document h6 { margin: 1rem 0 .4rem; font-size: 1.05rem; }
.ms-document p { margin: .55rem 0 .9rem; line-height: 1.62; }
.ms-document ul, .ms-document ol { margin: .55rem 0 1rem; padding-left: 1.55rem; }
.ms-document li { margin: .32rem 0; padding-left: .12rem; line-height: 1.55; }
.ms-document a { color: var(--teal-dark); text-decoration-thickness: .06em; text-underline-offset: .12em; overflow-wrap: anywhere; }
.ms-document code { padding: .06rem .22rem; color: #183d41; background: #edf5f3; border: 1px solid #dce9e6; border-radius: 3px; font-family: Consolas, "Courier New", monospace; font-size: .88em; overflow-wrap: anywhere; }
.ms-document pre { max-width: 100%; margin: .8rem 0 1rem; padding: .8rem; overflow: auto; overscroll-behavior-x: contain; color: #f1f5f4; background: #173337; border-radius: 4px; line-height: 1.45; }
.ms-document pre code { padding: 0; color: inherit; background: transparent; border: 0; font-size: .85rem; overflow-wrap: normal; white-space: pre; }
.ms-document hr { height: 1px; margin: 1.4rem 0; background: var(--line); border: 0; }
@media (max-width: 920px) {
  .methodology-sources-view .intro-row { align-items: start; }
  .ms-content-layout { grid-template-columns: minmax(0, .4fr) minmax(0, 1fr); }
  .ms-contents-panel { top: .5rem; max-height: calc(100vh - 1rem); }
}
@media (max-width: 680px) {
  .methodology-sources-view .intro-row { flex-direction: column; gap: .8rem; }
  .methodology-sources-view .intro-copy { max-width: 100%; }
  .ms-content-layout { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .ms-contents-panel { position: static; max-height: 36vh; }
  .ms-document { padding: 1rem; }
  .ms-related-links a, .ms-atlas-link { min-height: 2.7rem; }
}

/* Stage 15: publication readiness register */
.publication-readiness-view { min-width: 0; }
.publication-readiness-view .intro-copy { max-width: 960px; }
.publication-readiness-view .intro-row { align-items: center; }
.publication-readiness-view .status-pill[data-status="ready_with_limitations"] { color: #754522; background: #fff6e6; border-color: #e6c89a; }
.publication-readiness-view .status-pill[data-status="ready"] { color: #155e45; background: #eaf7ef; border-color: #afd9bd; }
.publication-readiness-view .status-pill[data-status="unknown"] { color: #52616d; background: #f3f6f7; border-color: #cbd5da; }
.pr-summary { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; }
.pr-summary .metric-card { min-width: 0; min-height: 112px; padding: .85rem; }
.pr-summary .metric-label, .pr-summary .metric-foot { overflow-wrap: anywhere; }
.pr-summary .metric-card strong { overflow-wrap: anywhere; font-size: clamp(1.35rem, 2.2vw, 2.15rem); font-variant-numeric: tabular-nums; }
.pr-overall-card { border-top: 4px solid var(--teal); }
.pr-overall-card[data-status="blocked"] { border-top-color: #ae4335; }
.pr-overall-card[data-status="ready_with_limitations"] { border-top-color: #bd7627; }
.pr-overall-card[data-status="ready"] { border-top-color: #27845d; }
.pr-pass-card { border-top: 3px solid #27845d; }
.pr-warn-card { border-top: 3px solid #bd7627; }
.pr-fail-card, .pr-blocking-card { border-top: 3px solid #ae4335; }
.pr-build-meta { margin: .75rem 0; color: var(--muted); font-size: .9rem; overflow-wrap: anywhere; }
.pr-news-note { color: #614c20; background: #fff9e9; border-color: #e9d8a8; overflow-wrap: anywhere; }
.pr-active-message { overflow-wrap: anywhere; }
.pr-message-success { color: #155e45; background: #eff8f1; border-color: #b7ddc3; }
.pr-message-warning { color: #754522; background: #fff6e6; border-color: #e6c89a; }
.pr-message-error { color: #8e3529; background: #fff4f0; border-color: #efc2b6; }
.pr-check-panel, .pr-issue-panel, .pr-register-panel { min-width: 0; margin-top: 1rem; }
.pr-table-wrap { width: 100%; max-width: 100%; max-height: min(68vh, 760px); overflow: auto; overscroll-behavior: contain; }
.pr-table { min-width: 740px; width: 100%; table-layout: fixed; }
.pr-table th, .pr-table td { overflow-wrap: anywhere; word-break: break-word; }
.pr-table th:nth-child(1) { width: 14%; }
.pr-table th:nth-child(2) { width: 21%; }
.pr-table th:nth-child(3) { width: 10%; }
.pr-table th:nth-child(4) { width: 10%; }
.pr-table th:nth-child(5) { width: 45%; }
.pr-issue-list { display: grid; gap: .65rem; min-width: 0; }
.pr-issue-card { min-width: 0; background: #fff; border: 1px solid var(--line); border-left: 4px solid #8a989d; }
.pr-issue-card.pr-status-pass { border-left-color: #27845d; }
.pr-issue-card.pr-status-warn { border-left-color: #bd7627; }
.pr-issue-card.pr-status-fail { border-left-color: #ae4335; }
.pr-issue-card > summary { padding: .8rem .85rem; color: var(--deep); cursor: pointer; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.pr-issue-card > summary::marker { color: var(--teal-dark); }
.pr-issue-card > summary strong { margin: 0 .4rem; font-family: var(--display); font-size: 1.15rem; }
.pr-status-badge { display: inline-flex; align-items: center; min-height: 1.55rem; padding: .13rem .42rem; border: 1px solid currentColor; border-radius: 2px; font-family: var(--body); font-size: .75rem; font-weight: 800; letter-spacing: .04em; vertical-align: middle; }
.pr-status-badge.pr-status-pass { color: #155e45; background: #eff8f1; }
.pr-status-badge.pr-status-warn { color: #754522; background: #fff6e6; }
.pr-status-badge.pr-status-fail { color: #8e3529; background: #fff4f0; }
.pr-status-badge.pr-status-unknown { color: #52616d; background: #f3f6f7; }
.pr-issue-category { display: inline-block; margin-left: .25rem; color: var(--muted); font-size: .82rem; font-weight: 500; }
.pr-blocking-label { display: inline-block; margin-left: .4rem; color: #8e3529; font-size: .8rem; font-weight: 800; }
.pr-blocking-label:empty { display: none; }
.pr-issue-details { min-width: 0; padding: .15rem .95rem 1rem; border-top: 1px solid var(--line); }
.pr-detail-field { min-width: 0; margin-top: .75rem; }
.pr-detail-field h3 { margin: 0 0 .2rem; color: var(--deep); font-family: var(--body); font-size: .93rem; }
.pr-detail-field p { margin: 0; line-height: 1.55; overflow-wrap: anywhere; word-break: break-word; }
.pr-detail-field code, .pr-register-content code { padding: .04rem .18rem; color: #183d41; background: #edf5f3; border: 1px solid #dce9e6; border-radius: 3px; font-family: Consolas, "Courier New", monospace; font-size: .88em; overflow-wrap: anywhere; }
.pr-detail-field pre { max-width: 100%; margin: .35rem 0; padding: .7rem; overflow: auto; color: #f1f5f4; background: #173337; border-radius: 4px; white-space: pre-wrap; overflow-wrap: anywhere; }
.pr-detail-field pre code { padding: 0; color: inherit; background: transparent; border: 0; white-space: pre-wrap; }
.pr-register-panel > summary, .pr-register-document > summary { color: var(--deep); font-weight: 800; cursor: pointer; }
.pr-register-panel > .table-note code { overflow-wrap: anywhere; word-break: break-word; }
.pr-register-document { min-width: 0; margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.pr-register-content { min-width: 0; max-width: 100%; padding-top: .5rem; overflow-wrap: anywhere; }
.pr-register-content h2, .pr-register-content h3, .pr-register-content h4, .pr-register-content h5, .pr-register-content h6 { color: var(--deep); font-family: var(--display); line-height: 1.25; scroll-margin-top: 1rem; }
.pr-register-content h2 { margin: 1.4rem 0 .6rem; font-size: 1.55rem; }
.pr-register-content h2:first-child { margin-top: .4rem; }
.pr-register-content h3 { margin: 1.2rem 0 .4rem; font-size: 1.25rem; }
.pr-register-content p, .pr-register-content li { line-height: 1.55; overflow-wrap: anywhere; }
.pr-register-content ul, .pr-register-content ol { padding-left: 1.5rem; }
.pr-register-content li { margin: .3rem 0; }
.pr-register-content pre { max-width: 100%; padding: .8rem; overflow: auto; overscroll-behavior-x: contain; color: #f1f5f4; background: #173337; border-radius: 4px; }
.pr-register-content pre code { padding: 0; color: inherit; background: transparent; border: 0; white-space: pre; }
.pr-register-content hr { margin: 1.4rem 0; border: 0; border-top: 1px solid var(--line); }
@media (max-width: 1050px) {
  .pr-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  .publication-readiness-view .intro-row { align-items: start; }
  .publication-readiness-view .panel-heading { flex-wrap: wrap; }
  .publication-readiness-view .panel-meta { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 580px) {
  .publication-readiness-view .intro-row { flex-direction: column; gap: .8rem; }
  .pr-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pr-summary .metric-card { min-height: 96px; padding: .72rem; }
  .pr-summary .metric-label, .pr-summary .metric-foot { font-size: .82rem; }
  .pr-summary .metric-card strong { font-size: 1.35rem; }
  .pr-overall-card { grid-column: 1 / -1; }
  .pr-table-wrap { max-height: 60vh; }
  .pr-issue-card > summary { padding: .75rem; }
  .pr-issue-details { padding-right: .75rem; padding-left: .75rem; }
  .pr-register-content { font-size: .94rem; }
}


/* Keep a route back to the public website available while scrolling any dashboard view. */
.site-guide-floating {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 10000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.7rem;
  padding: .6rem 1rem;
  border: 1px solid #8be3d5;
  border-radius: 999px;
  color: #f7fffd;
  background: #0c3437;
  box-shadow: 0 3px 14px rgba(0, 0, 0, .22);
  font: 700 .9rem/1.2 system-ui, sans-serif;
  text-decoration: none;
}
.site-guide-floating:hover { background: #147d78; }
.site-guide-floating:focus-visible { outline: 3px solid #147d78; outline-offset: 3px; }
@media (max-width: 580px) {
  .site-guide-floating { right: .65rem; bottom: .65rem; min-height: 2.5rem; padding: .55rem .8rem; font-size: .82rem; }
}
