:root {
  --navy-950: #07131f;
  --navy-900: #0b1b2a;
  --ink: #102233;
  --muted: #66788a;
  --line: #d5dde3;
  --paper: #f3f0e9;
  --white: #fffefa;
  --blue: #246db5;
  --teal: #16827d;
  --amber: #c77a16;
  --red: #cf4c3c;
  --green: #16875d;
  --slate: #73879a;
  --shadow: 0 10px 32px rgba(16, 34, 51, 0.07);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Segoe UI", "Aptos", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
}
button, select { font: inherit; }

.topbar {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 30;
  height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 28px 0 22px;
  background: #000;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.brand img { display: block; width: 250px; max-height: 52px; object-fit: contain; }
.topbar-meta, .status-line { display: flex; align-items: center; gap: 12px; }
.status-line { color: #dbe5ec; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 0 4px rgba(199,122,22,.15); }
.session-button { padding: 8px 12px; border: 1px solid rgba(255,255,255,.32); background: transparent; color: #d9e6ef; cursor: pointer; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.session-button:hover { border-color: #fff; color: #fff; }
.status-dot.pass { background: #66b89c; box-shadow: 0 0 0 4px rgba(102,184,156,.15); }
.language-button { border: 1px solid rgba(255,255,255,.28); color: #fff; background: transparent; padding: 7px 10px; cursor: pointer; }

.sidebar {
  position: fixed;
  inset: 74px auto 0 0;
  z-index: 20;
  width: 230px;
  display: flex;
  flex-direction: column;
  padding: 28px 18px 22px;
  background: var(--navy-950);
  color: #fff;
  overflow-y: auto;
}
.sidebar-eyebrow, .eyebrow { margin: 0 0 14px; color: #6ea6cf; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
#primary-nav { display: grid; gap: 3px; }
#primary-nav a { color: #b9c7d1; text-decoration: none; padding: 9px 11px; border-left: 2px solid transparent; font-size: 13px; }
#primary-nav a:hover, #primary-nav a.active { color: #fff; border-left-color: #73a8c9; background: rgba(255,255,255,.06); }
.sidebar-footer { margin-top: auto; padding: 18px 10px 0; border-top: 1px solid rgba(255,255,255,.12); color: #71899a; font-size: 10px; line-height: 1.35; letter-spacing: .08em; text-transform: uppercase; }

#app { min-height: 100vh; margin-left: 230px; padding-top: 74px; }
.page-shell { max-width: 1540px; margin: 0 auto; padding: 48px 48px 78px; }
.page-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 32px; align-items: end; margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid #c6d0d8; }
h1,h2,h3,p { margin-top: 0; }
h1 { max-width: 980px; margin-bottom: 10px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(38px,5vw,66px); font-weight: 400; line-height: 1; letter-spacing: -.035em; }
h2 { font-family: Georgia, "Times New Roman", serif; font-size: 28px; font-weight: 400; line-height: 1.14; }
h3 { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
.dek { max-width: 900px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.as-of-card { min-width: 230px; padding: 12px 0 2px 24px; border-left: 1px solid #aeb9c2; color: var(--muted); font-size: 10.5px; line-height: 1.7; text-transform: uppercase; letter-spacing: .08em; }
.as-of-card strong { display: block; color: var(--ink); }

.thesis-panel, .deep-dive-panel { margin: 0 0 24px; padding: 30px 34px; border: 1px solid var(--line); border-left: 4px solid var(--blue); background: var(--white); box-shadow: var(--shadow); }
.light-thesis { color: var(--ink); }
.light-thesis h2 { max-width: 1050px; margin-bottom: 16px; font-size: clamp(28px,3vw,43px); }
.light-thesis > p:last-child { max-width: 1080px; color: var(--muted); line-height: 1.65; }
.deep-dive-facts { display: flex; flex-wrap: wrap; gap: 10px 28px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.deep-dive-facts strong { color: var(--ink); }
.axis-reading { border-left-color: var(--teal); }
.axis-reading-drivers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; font-size: 13px; color: var(--muted); }
.axis-reading-drivers b { display: block; margin-bottom: 6px; color: var(--ink); }
.axis-focus, .growth-gdp-summary { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 28px; margin: 0 0 24px; padding: 20px 24px; border: 1px solid var(--line); background: var(--white); }
.axis-focus { border-left: 3px solid var(--slate); }
.axis-focus small, .growth-gdp-summary small { display: block; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.axis-focus strong, .growth-gdp-summary strong { display: block; font-size: 17px; }
.axis-focus p, .growth-gdp-summary p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.growth-gdp-summary { border-left: 3px solid var(--teal); }
.growth-gdp-summary a { font-size: 13px; }
.attribution-scope { display: flex; flex-wrap: wrap; gap: 12px 28px; padding: 12px 16px; margin-bottom: 16px; background: #f4f7f7; font-size: 13px; }
.axis-attribution-audit { margin-top: 16px; border: 1px solid var(--line); }
.axis-attribution-audit summary { padding: 14px 16px; cursor: pointer; font-size: 12px; }
.axis-attribution-audit small { display: block; color: var(--muted); }
.axis-attribution-audit tfoot { background: #f4f7f7; font-weight: 700; }
.axis-methodology { margin: 24px 0; border: 1px solid var(--line); background: var(--white); }
.axis-methodology > summary { padding: 18px; cursor: pointer; font-size: 12px; }
.axis-methodology .explain-grid { padding: 0 18px 18px; }
.diagnostic-heading { margin-top: 30px; }
.macro-market-overview { margin: 0 0 24px; border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.macro-market-heading { padding: 24px 30px 22px; border-bottom: 1px solid var(--line); }
.macro-market-heading .eyebrow { margin-bottom: 10px; font-size: 12px; }
.macro-market-heading h2 { max-width: 1050px; margin: 0; font-size: clamp(28px,2.7vw,39px); }
.macro-market-lenses { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--line); }
.diagnostic-lens { min-width: 0; padding: 23px 25px 21px; background: #fbfaf6; }
.macro-lens { border-top: 4px solid var(--blue); }
.market-lens { border-top: 4px solid var(--teal); }
.combined-lens { border-top: 4px solid var(--amber); background: #f8f5ee; }
.lens-header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.lens-header span { color: #456a86; font-size: 12px; font-weight: 700; letter-spacing: .10em; }
.lens-header time { flex: none; color: var(--muted); font-size: 12px; }
.lens-question { margin-bottom: 8px; color: var(--muted); font-size: 13px; font-weight: 600; }
.lens-reading { display: block; font-family: Georgia,"Times New Roman",serif; font-size: clamp(25px,2vw,31px); font-weight: 400; line-height: 1.18; }
.lens-summary-list { display: grid; gap: 0; margin: 20px 0 16px; border-top: 1px solid var(--line); }
.lens-summary-list > div { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.lens-summary-list dt { color: #526d82; font-size: 12px; font-weight: 700; }
.lens-summary-list dd { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.4; }
.lens-method { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.combined-evidence { margin: 18px 0 14px; color: #364d60; font-size: 14px; line-height: 1.55; }
.combined-implication { margin: 0; padding: 13px 15px; border-left: 3px solid var(--amber); background: #fffaf0; color: #364d60; font-size: 14px; line-height: 1.55; }
.positioning-strip { display: grid; grid-template-columns: minmax(250px,.75fr) minmax(0,1.45fr) auto; gap: 24px; align-items: center; padding: 19px 25px; background: var(--navy-900); color: #fff; }
.positioning-strip span { display: block; margin-bottom: 6px; color: #8db9d8; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.positioning-strip strong { font-family: Georgia,serif; font-size: 21px; font-weight: 400; }
.positioning-strip p { margin: 0; color: #e0e8ee; font-size: 14px; line-height: 1.55; }
.positioning-strip p span { display: inline; margin: 0 0 0 18px; color: #e0e8ee; font-size: inherit; font-weight: 400; letter-spacing: 0; }
.positioning-strip small { color: #aebdca; font-size: 12px; line-height: 1.5; text-align: right; }
.regime-compare-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.regime-compare-grid article { padding: 17px 20px; border: 1px solid var(--line); border-left: 3px solid var(--blue); background: var(--white); }
.regime-compare-grid span { display: block; margin-bottom: 8px; color: #526d82; font-size: 9.5px; font-weight: 700; letter-spacing: .10em; }
.regime-compare-grid strong { display: block; font-family: Georgia,serif; font-size: 22px; font-weight: 400; }
.regime-compare-grid p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }

.metric-grid { display: grid; gap: 14px; margin-bottom: 24px; }
.metric-grid.four { grid-template-columns: repeat(4,minmax(0,1fr)); }
.metric-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.metric-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.metric-grid.five { grid-template-columns: repeat(5,minmax(0,1fr)); }
.compact-metrics .metric-card { min-height: 132px; }
.metric-card { min-width: 0; min-height: 158px; padding: 21px 22px; border: 1px solid var(--line); border-top: 3px solid var(--slate); background: var(--white); }
.metric-card.accent-growth { border-top-color: var(--teal); }
.metric-card.accent-inflation { border-top-color: var(--amber); }
.metric-card.accent-liquidity { border-top-color: var(--blue); }
.metric-label { margin-bottom: 14px; color: #526d82; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.metric-value { margin-bottom: 9px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(24px,2.1vw,33px); line-height: 1.1; overflow-wrap: anywhere; }
.metric-detail { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.info-tip { width: 18px; height: 18px; margin-left: 7px; border: 1px solid #91a2af; border-radius: 50%; background: transparent; color: #526d82; cursor: help; font-size: 10px; font-weight: 700; }

.research-section { margin: 24px 0; padding: 26px 28px; border: 1px solid var(--line); background: var(--white); box-shadow: 0 5px 22px rgba(16,34,51,.04); overflow: hidden; }
.section-heading { margin-bottom: 20px; }
.section-heading h2 { margin-bottom: 7px; }
.section-heading p { max-width: 920px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.chart-section { min-height: 500px; }
.plotly-chart { width: 100%; min-height: 410px; }
.regime-plot-scroll { max-width: 100%; overflow-x: auto; }
.regime-plot-scroll .plotly-chart { min-width: 560px; }
.full-width .plotly-chart { min-height: 500px; }
.two-column { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; align-items: stretch; }
.axis-chart-stack, .sector-chart-stack { grid-template-columns: minmax(0,1fr); }
.axis-chart-stack .plotly-chart, .sector-chart-stack .plotly-chart { min-height: 560px; }
.split-wide { grid-template-columns: minmax(0,1.55fr) minmax(360px,.85fr); }
.two-column > .research-section { margin: 0 0 24px; }
.two-column .chart-section { min-height: 530px; }

.explain-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.explain-grid article { padding: 19px; border-left: 3px solid #aab8c3; background: #f7f6f2; }
.explain-grid strong { display: block; margin-bottom: 9px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.explain-grid p, .narrative-box p, .method-note p { color: #4e6070; line-height: 1.65; }
.metric-glossary { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.metric-glossary article { padding: 14px; border: 1px solid var(--line); background: #f7f6f2; }
.metric-glossary strong { display: block; margin-bottom: 7px; color: #526d82; font-size: 9.5px; letter-spacing: .07em; text-transform: uppercase; }
.metric-glossary p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.liquidity-explain { grid-template-columns: repeat(3,minmax(0,1fr)); }
.narrative-box { padding: 23px; border-left: 3px solid var(--blue); background: #f5f7f7; }
.narrative-box p:last-child { margin-bottom: 0; }
.method-note { margin-top: 24px; padding: 22px 26px; border: 1px solid #d8c7a9; background: #fff9ed; }
.method-note p { margin: 8px 0 0; }

.change-list article { display: grid; grid-template-columns: 120px minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.change-list span { color: #628098; font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; }
.change-list span small { display: block; margin-top: 5px; color: #8a98a3; font-size: 8px; letter-spacing: .03em; }
.change-list strong { font-size: 13px; }
.change-list em { color: var(--muted); font-size: 11px; font-style: normal; text-transform: uppercase; }
.empty-copy { color: var(--muted); }

.decision-section { border-top: 4px solid var(--blue); }
.committee-grid span, .model-evidence-grid span { color: #587891; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.committee-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin-top: 1px; background: var(--line); }
.committee-grid article { min-height: 165px; padding: 20px; background: #f8f7f3; }
.committee-grid strong { display: block; margin: 10px 0 7px; font-size: 15px; line-height: 1.4; }
.committee-grid p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.risk-check-section { border-top-color: var(--amber); }
.decision-status.aligned { color: var(--green); }
.decision-status.divergent { color: var(--amber); }
.evidence-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.evidence-card { position: relative; min-height: 280px; padding: 20px; border: 1px solid var(--line); background: #f8f7f3; }
.evidence-grade { position: absolute; top: 18px; right: 18px; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: var(--slate); color: #fff; font-family: Georgia,serif; font-size: 25px; }
.evidence-grade.grade-a { background: var(--green); }
.evidence-grade.grade-b { background: var(--blue); }
.evidence-grade.grade-c { background: var(--amber); }
.evidence-grade.grade-d { background: var(--red); }
.evidence-card > div:nth-child(2) span { display: block; color: #526d82; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.evidence-card > div:nth-child(2) strong { display: block; margin-top: 7px; font-family: Georgia,serif; font-size: 24px; font-weight: 400; }
.evidence-card dl { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px 14px; margin: 18px 0; padding-top: 15px; border-top: 1px solid var(--line); font-size: 10.5px; }
.evidence-card dt { color: var(--muted); }
.evidence-card dd { margin: 0; color: var(--ink); font-weight: 600; text-align: right; }
.evidence-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.evidence-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.evidence-summary article { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); background: #f8f7f3; }
.evidence-summary span { color: #526d82; font-size: 9px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.evidence-summary strong { font-family: Georgia,serif; font-size: 19px; font-weight: 400; }
.overview-details, .overview-help { margin-top: 16px; border: 1px solid var(--line); background: #fbfaf6; }
.overview-details > summary, .overview-help > summary { cursor: pointer; padding: 15px 18px; color: #526d82; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.overview-details[open] > summary, .overview-help[open] > summary { border-bottom: 1px solid var(--line); }
.overview-details .evidence-grid, .overview-help .explain-grid { padding: 16px; }
.overview-help { margin: 0 0 24px; }
.model-evidence-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.model-evidence-grid article { padding: 19px; border-left: 3px solid var(--blue); background: #f5f7f7; }
.model-evidence-grid strong { display: block; margin: 10px 0 8px; font-size: 14px; }
.model-evidence-grid p, .model-evidence-grid small { color: var(--muted); font-size: 11.5px; line-height: 1.55; }
.material-alerts { display: grid; grid-template-columns: 160px repeat(2,minmax(0,1fr)); gap: 1px; margin: 0 0 24px; border: 1px solid #dfc9a7; background: #dfc9a7; }
.material-alerts > span { padding: 17px; background: #fff6e6; color: #906015; font-size: 9px; font-weight: 700; letter-spacing: .1em; }
.material-alerts article { padding: 14px 17px; background: var(--white); }
.material-alerts strong { display: block; color: #7a4b0b; font-size: 12px; }
.material-alerts em { display: block; margin-top: 3px; color: #906015; font-size: 9px; font-style: normal; font-weight: 700; text-transform: uppercase; }
.alert-meta { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 5px; color: #806d55; font-size: 8.5px; letter-spacing: .05em; text-transform: uppercase; }
.alert-meta b { color: var(--red); }
.material-alerts p { margin: 5px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.45; }
.causal-changes article { grid-template-columns: 115px minmax(0,1fr); align-items: start; padding: 15px 0; }
.causal-changes strong { display: inline-block; margin-right: 8px; }
.causal-changes em { display: inline-block; }
.causal-changes p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.causal-changes b { color: var(--ink); }

.release-impact-section { border-top: 4px solid var(--teal); }
.release-summary { margin-bottom: 16px; }
.release-impact-chart { min-height: 540px; margin: 4px 0 18px; }
.release-impact-table td { font-variant-numeric: tabular-nums; }
.release-impact-table th:nth-child(n+2), .release-impact-table td:nth-child(n+2) { text-align: right; }
.release-impact-table td:first-child { min-width: 210px; text-align: left; }
.impact-positive { color: var(--teal); font-weight: 700; }
.impact-negative { color: var(--red); font-weight: 700; }
.evidence-chip { display: inline-grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--slate); color: #fff; font-weight: 700; }
.evidence-chip.grade-a { background: var(--green); }
.evidence-chip.grade-b { background: var(--blue); }
.evidence-chip.grade-c { background: var(--amber); }
.evidence-chip.grade-d { background: var(--red); }
.release-empty { padding: 26px; border: 1px dashed #aebbc5; background: #f7f8f6; }
.release-empty strong { display: block; margin-bottom: 8px; font-size: 13px; letter-spacing: .05em; text-transform: uppercase; }
.release-empty p { margin: 0; color: var(--muted); }
.compact-release-section { border-top-width: 2px; }
.compact-release-empty { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 18px; align-items: center; padding: 18px 20px; }
.compact-release-empty strong { margin: 0; }
.release-method { margin-top: 18px; padding: 17px 19px; border-left: 3px solid var(--slate); background: #f4f6f6; }
.release-method strong { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.release-method p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.horizon-summary { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 8px; color: #4e6070; font-size: 10.5px; }
.horizon-summary b { color: var(--ink); }
.trend-program-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin-bottom: 14px; background: var(--line); border: 1px solid var(--line); }
.trend-program-summary article { padding: 13px; background: #f8f7f3; }
.trend-program-summary span { display: block; color: #648198; font-size: 8px; font-weight: 700; letter-spacing: .07em; }
.trend-program-summary strong { display: block; margin-top: 6px; font-family: Georgia,serif; font-size: 18px; font-weight: 400; }
.trend-program-table table { font-size: 10px; }
.trend-program-table th, .trend-program-table td { padding: 9px 10px; }
.trend-program-table th:nth-child(n+2), .trend-program-table td:nth-child(n+2) { text-align: right; }
.trend-program-note { margin: 12px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.5; }
.trend-state { display: inline-block; padding: 3px 6px; border: 1px solid var(--line); font-size: 8.5px; font-weight: 700; text-transform: uppercase; }
.trend-state.bullish { color: var(--teal); border-color: var(--teal); }
.trend-state.bearish { color: var(--red); border-color: var(--red); }
.positive { color: var(--teal); }
.negative { color: var(--red); }

.nowcast-card-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 24px; }
.nowcast-target-card { padding: 19px; border: 1px solid var(--line); border-top: 3px solid var(--slate); background: #f9f8f4; }
.nowcast-target-card.growth { border-top-color: var(--teal); }
.nowcast-target-card.inflation { border-top-color: var(--amber); }
.nowcast-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.nowcast-card-head .evidence-chip { width: auto; min-width: 56px; height: 24px; padding: 0 8px; border-radius: 2px; font-family: Arial,sans-serif; font-size: 9px; letter-spacing: .04em; text-transform: uppercase; }
.nowcast-target-card small { color: #648198; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.nowcast-target-card h3 { margin: 7px 0 16px; font-size: 14px; text-transform: uppercase; }
.nowcast-target-card > strong { display: block; font-family: Georgia,serif; font-size: 29px; font-weight: 400; }
.nowcast-target-card > strong span { font-family: inherit; font-size: 14px; color: var(--muted); }
.nowcast-target-card > p { color: var(--muted); font-size: 11px; }
.nowcast-target-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--line); }
.nowcast-target-card dt { color: #648198; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
.nowcast-target-card dd { margin: 4px 0 0; font-size: 11px; font-variant-numeric: tabular-nums; }
.withheld-nowcasts { margin: 0 0 24px; border: 1px solid #dcc9a8; background: #fff9ed; }
.withheld-nowcasts > summary { cursor: pointer; padding: 14px 18px; color: #8c5c13; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.withheld-nowcasts > p { margin: 0; padding: 0 18px 14px; color: var(--muted); font-size: 11px; }
.withheld-nowcasts .table-wrap { margin: 0 18px 18px; }
.nowcast-guide { margin-top: 24px; }
.nowcast-validation-disclosure { display: flex; gap: 12px; margin: 14px 0 2px; padding: 10px 13px; border-left: 3px solid var(--blue); background: #f2f5f5; color: var(--muted); font-size: 11px; line-height: 1.45; }
.nowcast-validation-disclosure strong { flex: 0 0 auto; color: var(--ink); }
.target-nowcast-validation { min-height: 560px; }
.methodology-workspace { font-size: 1rem; line-height: 1.6; }
.methodology-workspace .section-heading p { font-size: .875rem; }
.methodology-workspace h3 { font-size: 1rem; line-height: 1.45; }
.methodology-workspace :focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.methodology-workspace [id^="methodology-"] { scroll-margin-top: 24px; }
.methodology-jump-nav { display: flex; flex-wrap: wrap; gap: 8px; }
.methodology-jump-nav button { padding: 10px 16px; min-height: 44px; border: 1px solid var(--line); background: var(--white); color: var(--ink); font: inherit; font-size: .875rem; cursor: pointer; }
.methodology-jump-nav button:hover { border-color: var(--blue); }
.methodology-products, .methodology-reading-grid, .methodology-models { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.methodology-products article { padding: 22px; border: 1px solid var(--line); border-top: 3px solid var(--teal); background: #f8f7f3; }
.methodology-products h3 { margin: 0 0 12px; }
.methodology-products p { margin: 0 0 14px; }
.methodology-limit { color: #4e6070; border-left: 2px solid var(--line); padding-left: 12px; font-size: .875rem; }
.methodology-workspace a { font-size: .875rem; text-underline-offset: 3px; }
.methodology-models { align-items: start; }
.methodology-details { border: 1px solid var(--line); background: var(--white); margin-top: 16px; min-width: 0; }
.methodology-models .methodology-details { margin: 0; }
.methodology-details > summary { cursor: pointer; padding: 18px 20px; font-size: 1rem; }
.methodology-details > summary strong { font-weight: 600; }
.methodology-details > summary span { display: block; margin: 5px 0 0 20px; color: var(--muted); font-size: .875rem; }
.methodology-details[open] > summary { border-bottom: 1px solid var(--line); }
.methodology-details-body { padding: 20px; }
.methodology-details-body > :first-child { margin-top: 0; }
.methodology-status-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.methodology-status-grid article { padding: 18px; background: #f8f7f3; border-left: 3px solid var(--slate); min-width: 0; }
.methodology-status-grid h3 { margin: 0 0 10px; font-size: .875rem; font-weight: 500; }
.methodology-status-grid strong { display: block; font-size: 1.125rem; font-weight: 500; }
.methodology-status-grid small { display: block; margin-top: 10px; font-size: .8125rem; overflow-wrap: anywhere; color: var(--muted); }
.methodology-audit-status { padding: 18px 22px; border-left: 3px solid var(--slate); background: #f3f6f6; margin-bottom: 18px; }
.methodology-audit-status.fail { border-left-color: var(--red); }
.methodology-audit-status.pass { border-left-color: var(--teal); }
.methodology-audit-status p { margin: 6px 0; }
.methodology-audit-status span { font-size: .875rem; }
.methodology-table-scroll { width: 100%; overflow-x: auto; }
.methodology-table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: .875rem; }
.methodology-table th, .methodology-table td { padding: 14px; border-bottom: 1px solid var(--line); text-align: left; font-variant-numeric: tabular-nums; }
.methodology-table th { font-weight: 600; }
.methodology-table thead th { color: var(--muted); }
.methodology-table small { display: block; margin-top: 4px; color: var(--muted); font-size: .8125rem; font-weight: 400; }
.methodology-note { font-size: .875rem; color: #4e6070; }
.methodology-workspace .identity-box p { margin: 0; font-size: 1rem; line-height: 1.7; color: #fff; }
.methodology-metadata, .methodology-glossary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 20px 0 0; }
.methodology-metadata div { min-width: 0; }
.methodology-metadata dd { margin: 4px 0 0; font-size: .8125rem; overflow-wrap: anywhere; }
.methodology-reading-grid article { border-left: 2px solid var(--line); padding: 8px 20px; }
.methodology-reading-grid h3 { margin: 0 0 12px; }
.methodology-reading-grid dt { font-weight: 600; }
.methodology-reading-grid dd { margin: 0 0 10px; }
.methodology-glossary div { padding: 18px; border: 1px solid var(--line); }
.methodology-glossary dt { font-weight: 600; margin-bottom: 10px; }
.methodology-glossary dd { margin: 0; color: #4e6070; }
.methodology-disclaimer { font-size: .875rem; padding: 20px; border-top: 1px solid var(--line); }
@media (max-width: 760px) {
  .methodology-products, .methodology-reading-grid, .methodology-models, .methodology-status-grid, .methodology-glossary, .methodology-metadata { grid-template-columns: minmax(0,1fr); }
  .methodology-workspace .research-section { padding: 20px 14px; }
  .methodology-details-body { padding: 16px; }
}
.identity-box { padding: 24px; margin-bottom: 18px; border-left: 4px solid var(--teal); background: var(--navy-900); color: #fff; overflow-x: auto; }
.identity-box code { color: #fff; font-family: "Segoe UI",sans-serif; font-size: 14px; white-space: nowrap; }

.risk-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.risk-card { position: relative; padding: 20px 20px 18px; border: 1px solid var(--line); background: #f8f7f3; }
.risk-card h3 { padding-right: 75px; }
.risk-card p { margin: 7px 0 0; color: var(--muted); font-size: 12.5px; line-height: 1.5; }
.macro-decision-bridge { border-top: 4px solid var(--blue); }
.macro-decision-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); background: var(--line); gap: 1px; }
.macro-decision-strip article { min-width: 0; padding: 18px; background: #fffefa; }
.macro-decision-strip span, .transition-headline span, .transition-ledger span, .macro-release-bridge span { display: block; color: #648198; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.macro-decision-strip strong { display: block; margin-top: 8px; font-size: 13px; line-height: 1.35; }
.macro-decision-strip p { margin: 8px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.5; }
.transition-monitor-panel { display: grid; grid-template-columns: minmax(220px,.72fr) minmax(0,2.28fr); border: 1px solid var(--line); background: var(--line); gap: 1px; }
.transition-headline { padding: 22px; border-left: 4px solid var(--amber); background: #fffefa; }
.transition-headline strong { display: block; margin-top: 10px; font-family: Georgia,serif; font-size: 29px; font-weight: 400; }
.transition-headline p { margin: 12px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.transition-ledger { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--line); }
.transition-ledger article { min-width: 0; padding: 18px; background: #f8f7f3; }
.transition-ledger strong { display: block; margin-top: 10px; font-family: Georgia,serif; font-size: 21px; font-weight: 400; font-variant-numeric: tabular-nums; }
.transition-ledger em { display: inline-block; margin-top: 7px; color: var(--blue); font-size: 10px; font-style: normal; font-weight: 700; }
.transition-ledger p { margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.4; }
.transition-method { grid-column: 1 / -1; margin: 0; padding: 11px 16px; background: #eef2f3; color: #5c7282; font-size: 9.5px; line-height: 1.45; }
.macro-release-bridge { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 24px 0; padding: 18px 20px; border: 1px solid var(--line); border-left: 4px solid var(--slate); background: #f7f8f6; }
.macro-release-bridge.has-news { border-left-color: var(--teal); }
.macro-release-bridge strong { display: block; margin-top: 6px; font-size: 13px; }
.macro-release-bridge p { margin: 5px 0 0; color: var(--muted); font-size: 10.5px; }
.macro-release-bridge a { flex: 0 0 auto; color: #245e89; font-size: 11px; font-weight: 700; text-decoration: none; }
.risk-priority-list { display: grid; gap: 10px; }
.risk-priority-card { display: grid; grid-template-columns: minmax(210px,.8fr) minmax(280px,1.05fr) minmax(260px,1fr); gap: 16px; align-items: start; padding: 18px; border: 1px solid var(--line); background: #f8f7f3; }
.risk-priority-head { display: grid; grid-template-columns: auto 1fr; gap: 4px 9px; align-items: center; }
.risk-priority-head > b { grid-row: 1 / 3; display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--navy-900); color: #fff; font-size: 11px; }
.risk-priority-head > span { color: #648198; font-size: 8.5px; letter-spacing: .06em; text-transform: uppercase; }
.risk-priority-head > strong { font-size: 13px; }
.risk-snapshot { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.risk-snapshot span { min-width: 0; padding: 8px; border: 1px solid var(--line); background: #fffefa; color: #648198; font-size: 8px; text-transform: uppercase; }
.risk-snapshot b { display: block; margin-top: 4px; color: var(--ink); font-size: 11px; font-variant-numeric: tabular-nums; }
.risk-reasons { grid-column: 3; display: flex; flex-wrap: wrap; gap: 6px; }
.risk-reasons span { padding: 5px 7px; border: 1px solid rgba(209,139,32,.35); background: rgba(209,139,32,.08); color: #8c5c13; font-size: 8.5px; font-weight: 700; }
.risk-priority-card > p { grid-column: 1 / 3; margin: 0; color: var(--muted); font-size: 10.5px; line-height: 1.5; }
.risk-priority-card > p strong { color: var(--ink); }
.risk-priority-card > p.risk-review { grid-column: 3; padding-left: 12px; border-left: 3px solid var(--amber); }
.secondary-risks { margin-top: 12px; border: 1px solid var(--line); background: #f5f6f5; }
.secondary-risks > summary { padding: 13px 16px; cursor: pointer; color: #4f687c; font-size: 10px; font-weight: 700; letter-spacing: .06em; list-style: none; text-transform: uppercase; }
.secondary-risks > summary span { display: inline-grid; min-width: 22px; height: 22px; margin-left: 8px; place-items: center; border-radius: 50%; background: #dfe5e8; }
.secondary-risks .risk-priority-list { padding: 10px; }
.model-contract { display: grid; grid-template-columns: auto 1fr; gap: 5px 10px; margin: 12px 0; padding: 10px; border: 1px solid var(--line); background: #fffefa; font-size: 9.5px; }
.model-contract b { color: #648198; text-transform: uppercase; }
.model-contract em { color: var(--ink); font-style: normal; font-weight: 600; }
.market-diagnostic-history { border-top: 3px solid var(--slate); }
.market-diagnostic-history .plotly-chart { min-height: 660px; }
#macro-regime-history, #overview-regime-history { min-height: 640px; }
.decision-chain { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; padding: 26px; border: 1px solid var(--line); background: #f8f7f3; }
.decision-chain span { padding: 9px 12px; background: var(--ink); color: white; font-size: 10px; font-weight: 700; letter-spacing: .07em; }
.decision-chain b { color: var(--slate); }
.status-contract-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.status-contract-grid article { border: 1px solid var(--line); background: var(--paper); padding: 14px 16px; }
.status-contract-grid small, .status-contract-grid strong { display: block; }
.status-contract-grid strong { margin-top: 7px; font-size: .92rem; overflow-wrap: anywhere; }
.macro-market-table td { min-width: 125px; }
.macro-market-table td:first-child { min-width: 220px; }
.macro-market-table td strong, .macro-market-table td small { display: block; }
.macro-market-table td small { margin-top: 6px; max-width: 330px; color: var(--muted); line-height: 1.4; }
.contract-status { font-weight: 700; font-size: 10px; letter-spacing: .04em; }
.macro-decision-hero { margin-bottom: 22px; padding: 28px 32px; border: 1px solid var(--line); border-left: 5px solid var(--slate); background: #f8f7f3; }
.macro-decision-hero.positive { border-left-color: var(--teal); }
.macro-decision-hero.caution { border-left-color: var(--amber); }
.macro-decision-hero.negative { border-left-color: var(--red); }
.macro-decision-hero .eyebrow { margin: 0 0 10px; color: #5f7d94; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.macro-decision-hero h2 { max-width: 1050px; margin: 0; font-family: Georgia,serif; font-size: clamp(25px,3vw,39px); font-weight: 400; line-height: 1.14; }
.macro-decision-hero > p:not(.eyebrow) { max-width: 1030px; margin: 15px 0; color: #496176; font-size: 13px; line-height: 1.55; }
.macro-decision-hero > div { display: flex; flex-wrap: wrap; gap: 10px 24px; padding-top: 13px; border-top: 1px solid var(--line); color: #496176; font-size: 11px; }
.live-decision-chain { display: grid; grid-template-columns: repeat(13,minmax(0,auto)); align-items: stretch; gap: 7px; }
.live-decision-chain article { min-width: 118px; padding: 14px; border: 1px solid var(--line); border-top: 3px solid var(--slate); background: #fffefa; }
.live-decision-chain article:nth-of-type(2) { min-width: 245px; }
.live-decision-chain article small, .live-decision-chain article strong { display: block; }
.live-decision-chain article small { margin-bottom: 7px; color: #648198; font-size: 8px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.live-decision-chain article strong { font-size: 11px; line-height: 1.4; }
.live-decision-chain > b { align-self: center; color: var(--slate); font-weight: 400; }
.macro-gate-chart .plotly-chart { min-height: 430px; }
.gate-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: -4px 0 8px; color: #4b6273; font-size: 10px; }
.gate-legend span { display: inline-flex; align-items: center; gap: 7px; }
.gate-legend span::before { width: 11px; height: 11px; content: ""; }
.gate-legend .pass::before { background: var(--teal); }
.gate-legend .watch::before { background: var(--amber); }
.gate-legend .fail::before { background: var(--red); }
.gate-legend .inactive::before { background: #d6dde1; }
.contract-chip { display: inline-block; padding: 5px 7px; border: 1px solid #b9c5cd; background: #eef1f2; color: #40596c; font-size: 9px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.contract-chip.positive { border-color: rgba(0,137,145,.38); background: rgba(0,137,145,.10); color: #006c72; }
.contract-chip.caution { border-color: rgba(202,125,22,.38); background: rgba(202,125,22,.10); color: #986011; }
.contract-chip.negative { border-color: rgba(207,74,56,.38); background: rgba(207,74,56,.10); color: #ae3c2d; }
.macro-contract-files { display: grid; gap: 12px; }
.macro-contract-detail { border: 1px solid var(--line); background: #f9f8f4; }
.macro-contract-detail > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; cursor: pointer; list-style: none; }
.macro-contract-detail > summary::-webkit-details-marker { display: none; }
.macro-contract-detail > summary span:first-child small, .macro-contract-detail > summary span:first-child strong { display: block; }
.macro-contract-detail > summary span:first-child small { margin-bottom: 4px; color: #648198; font-size: 9px; letter-spacing: .08em; }
.macro-contract-detail > summary span:first-child strong { font-size: 13px; text-transform: uppercase; }
.macro-contract-detail[open] > summary { border-bottom: 1px solid var(--line); }
.macro-contract-body { padding: 20px; }
.macro-contract-body h4 { margin: 20px 0 10px; color: #5c7385; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.contract-explanation { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.contract-explanation p { margin: 0; padding: 14px; background: #fffefa; color: #496176; font-size: 11.5px; line-height: 1.5; }
.condition-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.condition-checks > span { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 3px 7px; min-width: 170px; padding: 9px 11px; border: 1px solid var(--line); background: #fffefa; font-size: 10px; }
.condition-checks > span b { grid-row: 1 / 3; font-size: 16px; }
.condition-checks > span.pass b { color: var(--teal); }
.condition-checks > span.fail b { color: var(--red); }
.condition-checks > span small { color: var(--muted); font-variant-numeric: tabular-nums; }
.evidence-window-table th, .evidence-window-table td { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.evidence-window-table th:first-child, .evidence-window-table td:first-child { text-align: left; }
.evidence-window-table th[title] { cursor: help; text-decoration: underline dotted rgba(79,104,124,.55); text-underline-offset: 3px; }
.macro-evidence-grade { display: grid; grid-template-columns: .65fr 1fr 1fr 1.55fr; gap: 8px; }
.macro-evidence-grade article { min-width: 0; padding: 12px; border: 1px solid var(--line); border-top: 3px solid var(--slate); background: #fffefa; }
.macro-evidence-grade small, .macro-evidence-grade strong, .macro-evidence-grade span { display: block; }
.macro-evidence-grade small { color: #648198; font-size: 8px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.macro-evidence-grade strong { margin-top: 7px; overflow-wrap: anywhere; font-size: 12px; }
.macro-evidence-grade article:first-child strong { color: var(--ink); font-family: Georgia,serif; font-size: 25px; }
.macro-evidence-grade span { margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.metric-guide { margin: -5px 0 10px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.review-trigger-list { display: flex; flex-wrap: wrap; gap: 8px; }
.review-trigger-list span { padding: 8px 10px; border-left: 3px solid var(--amber); background: #fffefa; color: #496176; font-size: 10.5px; }
.confirmation-signal-list { display: flex; flex-wrap: wrap; gap: 8px; }
.confirmation-signal-list > span { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; min-width: 190px; padding: 9px 11px; border: 1px solid var(--line); background: #fffefa; }
.confirmation-signal-list > span > b { grid-row: 1 / 3; align-self: center; color: var(--slate); font-size: 18px; }
.confirmation-signal-list > span.support > b { color: var(--teal); }
.confirmation-signal-list > span.contradict > b { color: var(--red); }
.confirmation-signal-list > span strong { font-size: 10px; }
.confirmation-signal-list > span small { color: var(--muted); font-size: 8.5px; }
.confirmation-signal-table td { min-width: 125px; font-size: 10.5px; }
.confirmation-signal-table td:first-child { min-width: 230px; }
.confirmation-signal-table td small { margin-top: 5px; }
.evidence-archive { margin-top: 14px; padding: 0; border: 1px solid var(--line); background: #f5f6f5; }
.evidence-archive > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 16px; cursor: pointer; color: #4f687c; font-size: 10px; font-weight: 700; letter-spacing: .07em; list-style: none; text-transform: uppercase; }
.evidence-archive > summary::-webkit-details-marker { display: none; }
.evidence-archive > summary span { display: inline-flex; min-width: 24px; height: 24px; align-items: center; justify-content: center; border-radius: 50%; background: #dfe5e8; color: #40596c; }
.evidence-archive[open] > summary { border-bottom: 1px solid var(--line); }
.evidence-archive > .table-wrap, .evidence-archive > .macro-contract-files { margin: 12px; }
.governance-note { margin: 18px 0 0; padding: 14px 18px; border-left: 3px solid var(--slate); background: #f4f6f6; color: #5b7080; font-size: 10.5px; line-height: 1.5; }
.severity { position: absolute; top: 17px; right: 17px; padding: 4px 7px; color: #fff; background: var(--slate); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.severity.high { background: var(--red); }

.module-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.module-card { border: 1px solid var(--line); background: #f9f8f4; }
.module-card summary { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 20px; cursor: pointer; list-style: none; }
.module-card summary::-webkit-details-marker { display: none; }
.module-card summary small { display: block; margin-bottom: 5px; color: #648198; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.module-card summary strong { font-size: 14px; text-transform: uppercase; }
.module-card > p { padding: 0 20px; color: var(--muted); line-height: 1.55; }
.module-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding: 16px 20px; border-top: 1px solid var(--line); }
.module-metrics span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.module-metrics strong { display: block; margin-top: 4px; color: var(--ink); font-size: 13px; }
.module-driver-contract { padding: 4px 20px 22px; }
.module-driver-contract h4 { margin: 0 0 10px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.driver-evidence-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.driver-evidence-grid article { min-width: 0; padding: 14px; border: 1px solid var(--line); background: #fffefa; }
.driver-evidence-grid article > strong { display: block; margin-bottom: 9px; color: #587188; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.driver-detail-row { border-top: 1px solid rgba(203,215,223,.65); font-size: .875rem; }
.driver-detail-row:first-of-type { border-top: 0; }
.driver-detail-row summary { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; cursor: pointer; list-style: none; }
.driver-detail-row summary::-webkit-details-marker { display: none; }
.driver-detail-row summary span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.driver-detail-row[open] > summary > span { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.driver-detail-row summary span::before { content: "+"; display: inline-block; width: 13px; color: #6c8292; font-weight: 700; }
.driver-detail-row[open] summary span::before { content: "−"; }
.driver-detail-row summary b { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.driver-detail-body { margin: 0 0 10px 13px; padding: 10px; border-left: 2px solid #bdd0dc; background: #f5f7f7; font-size: .8125rem; }
.driver-detail-body p { margin: 0 0 9px; color: #344c5d; line-height: 1.45; }
.driver-detail-body dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 11px; margin: 0; }
.driver-detail-body dl div { min-width: 0; }
.driver-detail-body dt { color: #536b7c; font-size: .75rem; }
.driver-detail-body dd { margin: 2px 0 0; overflow-wrap: anywhere; color: var(--ink); font-variant-numeric: tabular-nums; }
.driver-detail-body small { display: block; margin-top: 9px; color: #536b7c; line-height: 1.4; }
.driver-attribution-gap { margin-top: 12px; border-top: 1px solid var(--line); font-size: .8125rem; }
.driver-attribution-gap > summary { display: block; padding: 10px 0; font-size: .8125rem; cursor: pointer; }
.driver-attribution-gap dl { margin: 0; }
.driver-attribution-gap dl div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-bottom: 8px; }
.driver-attribution-gap dt { color: var(--muted); }
.driver-attribution-gap dd { margin: 0; font-variant-numeric: tabular-nums; }
.driver-attribution-gap p { line-height: 1.5; color: var(--muted); }
.composition-summary { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 14px; }
.composition-summary article { padding: 18px; border: 1px solid var(--line); background: #f9f8f4; }
.composition-summary small { display: block; color: #648198; font-size: 9px; letter-spacing: .1em; }
.composition-summary strong { display: block; margin-top: 8px; }
.composition-summary p { color: var(--muted); line-height: 1.55; }
.module-plot { min-height: 355px; padding: 0 8px 8px; }

.state-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 66px; padding: 6px 9px; border-radius: 18px; background: var(--slate); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.state-pill.bullish, .state-pill.rising, .state-pill.leading, .state-pill.accelerating { background: var(--teal); }
.state-pill.bearish, .state-pill.falling, .state-pill.lagging, .state-pill.decelerating { background: var(--red); }
.state-pill.improving { background: var(--green); }
.state-pill.weakening { background: var(--amber); }

.liquidity-block-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.block-driver-evidence { grid-column: 1 / -1; padding-top: 6px; }
.liquidity-official-states .metric-card { min-height: 158px; }
.legacy-methodology { margin-top: -6px; padding: 13px 16px; border: 1px solid var(--line); background: #f6f5f1; color: var(--muted); }
.legacy-methodology summary { cursor: pointer; color: #526b7e; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.legacy-methodology p { max-width: 900px; margin: 10px 0 7px; line-height: 1.55; }
.block-card { display: grid; grid-template-columns: minmax(220px,.6fr) minmax(0,1.4fr); gap: 10px; min-height: 365px; padding: 20px; border: 1px solid var(--line); background: #f9f8f4; }
.block-card small { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.block-card h3 { margin-top: 8px; }
.block-card > div > strong { font-family: Georgia,serif; font-size: 28px; }
.block-card p { color: var(--muted); font-size: 11px; line-height: 1.5; }
.small-plot { min-height: 320px; }

/* Liquidity keeps monthly evidence separate from the operational legacy model. */
.liquidity-workspace { --evidence-ink: #344c5d; }
.liquidity-workspace p { line-height: 1.6; }
.liquidity-state-card > small { display: block; color: var(--muted); font-size: .875rem; }
.liquidity-state-card > strong { display: block; margin: 14px 0; font: 400 2rem Georgia, serif; }
.liquidity-state-card p { font-size: .875rem; margin-bottom: 10px; }
.liquidity-state-card .liquidity-cutoff { padding-top: 10px; border-top: 1px solid var(--line); font-size: .8125rem; }
.liquidity-reading-note { margin: -8px 0 24px; color: var(--evidence-ink); font-size: 1rem; }
.liquidity-workspace .section-heading p, .liquidity-workspace .metric-detail { font-size: .875rem; }
.liquidity-history-panel + .liquidity-history-panel { border-top: 1px solid var(--line); padding-top: 22px; }
.liquidity-history-panel h3 { font-size: .875rem; text-transform: none; }
.liquidity-history-panel .plotly-chart { min-height: 340px; }
.liquidity-workspace .liquidity-block-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
.liquidity-block-card { min-width: 0; padding: 24px; border: 1px solid var(--line); background: #f9f8f4; }
.liquidity-block-overview { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 28px; align-items: center; }
.liquidity-block-overview > div { min-width: 0; }
.liquidity-block-overview small { color: var(--muted); font-size: .8125rem; }
.liquidity-block-overview h3 { margin: 10px 0 22px; font: 400 1.6rem Georgia,serif; text-transform: none; letter-spacing: 0; }
.liquidity-block-overview p { font-size: .875rem; color: var(--evidence-ink); }
.liquidity-block-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.liquidity-block-metrics dt { font-size: .8125rem; color: var(--muted); }
.liquidity-block-metrics dd { margin: 7px 0 0; font-size: 1.25rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.liquidity-series-audit { border-top: 1px solid var(--line); margin-top: 16px; }
.liquidity-series-audit > summary, .liquidity-methodology > summary { cursor: pointer; padding: 16px 0; font-size: .875rem; color: var(--ink); }
.liquidity-series-audit > p { font-size: .875rem; max-width: 95ch; }
.liquidity-evidence-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.liquidity-evidence-grid > article { min-width: 0; padding: 18px; background: var(--white); border: 1px solid var(--line); }
.liquidity-evidence-grid h4 { margin: 0 0 14px; font-size: .875rem; }
.liquidity-driver summary { align-items: baseline; min-height: 44px; }
.liquidity-driver summary span { white-space: normal; overflow-wrap: normal; }
.liquidity-driver-body { padding: 14px; margin: 0 0 12px; background: #eff4f4; color: var(--evidence-ink); }
.liquidity-driver-body p { font-size: .8125rem; }
.liquidity-driver-body dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 20px; margin: 0; }
.liquidity-driver-body dl div { min-width: 0; }
.liquidity-driver-body dt { font-size: .8125rem; color: #536b7c; }
.liquidity-driver-body dd { font-size: .875rem; margin: 4px 0 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.liquidity-reconciliation { margin-top: 20px; }
.liquidity-reconciliation caption { text-align: left; padding: 14px; color: var(--ink); font-size: .875rem; }
.liquidity-reconciliation th { font-size: .8125rem; text-transform: none; letter-spacing: 0; }
.liquidity-reconciliation td { font-size: .875rem; font-variant-numeric: tabular-nums; }
.liquidity-workspace .legacy-methodology { margin-top: 16px; }
.liquidity-workspace .legacy-methodology > summary { font-size: .875rem; text-transform: none; letter-spacing: 0; }
.liquidity-workspace .legacy-methodology .chart-section { margin-top: 20px; }
.liquidity-methodology { margin-bottom: 24px; padding: 0 24px; border: 1px solid var(--line); background: var(--white); }
.liquidity-methodology .explain-grid { margin: 10px 0 20px; }
.liquidity-methodology .explain-grid strong { font-size: .875rem; }
.liquidity-methodology p, .liquidity-workspace .method-note p { font-size: 1rem; }
@media (max-width: 1050px) {
  .liquidity-block-overview, .liquidity-evidence-grid { grid-template-columns: minmax(0,1fr); }
  .liquidity-block-card { padding: 18px; }
}
@media (max-width: 600px) {
  .liquidity-driver-body dl, .liquidity-block-metrics { grid-template-columns: minmax(0,1fr); }
  .liquidity-state-card > strong { font-size: 1.75rem; }
  .liquidity-workspace .research-section { padding: 18px 12px; }
}

.monitor-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
.monitor-chart { min-height: 590px; border: 1px solid var(--line); }
.monitor-chart:last-child { grid-column: auto; }
.trend-heatmap-chart { min-height: 1240px; }
/* Rates: a comparable yield bridge, then traceable absolute/relative signals. */
.rates-workspace { font-size: 1rem; }
.rates-workspace .metric-label { font-size: .875rem; letter-spacing: .055em; }
.rates-workspace .metric-detail, .rates-workspace .section-heading p { font-size: .875rem; }
.rates-summary .metric-value { font-size: clamp(1.5rem,2vw,2rem); overflow-wrap: normal; }
.rates-cutoff { color: var(--muted); font-size: .875rem; line-height: 1.6; }
.rates-window-controls { display: flex; gap: 8px; margin-bottom: 16px; }
.rates-window-controls button { min-width: 70px; min-height: 40px; padding: 8px 16px; border: 1px solid var(--line); background: var(--white); color: var(--ink); font: inherit; cursor: pointer; }
.rates-window-controls button[aria-pressed="true"] { background: var(--ink); color: var(--white); border-color: var(--ink); }
.rates-workspace :focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.rates-decomposition-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.rates-decomposition-card { padding: 20px; border: 1px solid var(--line); border-top: 3px solid var(--blue); min-width: 0; }
.rates-decomposition-card h3 { margin: 0 0 18px; font-family: Georgia,serif; font-size: 1.5rem; }
.rates-equation { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.rates-equation span, .rates-equation small { display: block; color: var(--muted); font-size: .875rem; }
.rates-equation strong { display: block; margin: 6px 0; font-size: 1.5rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.rates-equation .rates-residual strong { font-size: 1.25rem; }
.rates-decomposition-card p { margin: 20px 0 0; line-height: 1.55; }
.rates-note { margin: 16px 0; font-size: .875rem; line-height: 1.6; color: var(--muted); }
.rates-details { margin-top: 16px; border: 1px solid var(--line); background: var(--white); }
.rates-details > summary { padding: 16px 20px; cursor: pointer; font-size: .875rem; line-height: 1.6; }
.rates-context { margin: 24px 0; }
.rates-context > p, .rates-context > .explain-grid { margin: 20px; line-height: 1.65; }
.rates-context .explain-grid strong, .rates-context .explain-grid h3, .rates-context .explain-grid small { font-size: .875rem; }
.rates-workspace .rates-history-chart { overflow-x: auto; }
.rates-workspace .rates-history-chart .plotly-chart { height: 900px; min-width: 360px; }
.rates-table-scroll { overflow-x: auto; width: 100%; }
.rates-table { border-collapse: collapse; width: 100%; min-width: 680px; font-size: .875rem; }
.rates-table th, .rates-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.rates-table thead th { color: var(--muted); font-weight: 600; }
.rates-table td:nth-child(3), .rates-table td:nth-child(4) { white-space: nowrap; }
.rates-table th[scope="row"] { font-weight: 500; }
.rates-table small { display: block; margin-top: 5px; color: var(--muted); font-size: .8125rem; line-height: 1.55; font-weight: 400; }
.rates-group-heading th { padding-top: 22px; background: #f7f6f2; }
.rates-signal-badge { display: inline-block; padding: 5px 9px; border-radius: 3px; background: #edf1f2; color: #485c6c; white-space: nowrap; }
.rates-signal-badge.bullish { color: #08656a; background: #e8f4f2; }
.rates-signal-badge.bearish { color: #a03926; background: #fff0e9; }
@media (max-width: 1100px) {
  .rates-workspace .rates-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .rates-decomposition-grid, .rates-workspace .rates-summary { grid-template-columns: minmax(0,1fr); }
  .rates-workspace .research-section { padding: 20px 12px; }
  .rates-workspace .rates-history-chart .plotly-chart { height: 1000px; }
  .rates-context > .explain-grid { grid-template-columns: minmax(0,1fr); }
}

.trend-heatmap-chart .plotly-chart, #trend-heatmap { min-height: 1120px; }

.trend-workspace { font-size: 1rem; }
.trend-workspace .metric-label, .trend-workspace .metric-detail, .trend-workspace .section-heading p, .trend-workspace .status-contract-grid small { font-size: .875rem; }
.trend-workspace .metric-label { letter-spacing: .05em; }
.trend-note { color: var(--muted); font-size: .875rem; line-height: 1.65; }
.trend-method { margin: 20px 0; border: 1px solid var(--line); background: var(--white); }
.trend-method > summary { padding: 16px 20px; cursor: pointer; font-size: .875rem; }
.trend-method > p { margin: 18px 20px; line-height: 1.65; }
.trend-method .table-wrap { margin: 20px; }
.trend-jump { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.trend-jump a { padding: 10px 16px; border: 1px solid var(--line); font-size: .875rem; }
.trend-monitor-card { min-width: 0; scroll-margin-top: 24px; border: 1px solid var(--line); }
.trend-monitor-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px 0; }
.trend-monitor-card h3 { margin: 0; font-size: 1rem; }
.trend-monitor-card h3 small { display: inline-block; margin-left: 8px; font-weight: 400; font-size: .875rem; color: var(--muted); }
.trend-monitor-card .monitor-chart { border: 0; height: 620px; min-height: 620px; }
.trend-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: .875rem; }
.trend-filter select { min-height: 42px; max-width: 100%; padding: 9px 12px; background: var(--white); border: 1px solid var(--line); color: var(--ink); font: inherit; }
.trend-breadth { display: flex; flex-wrap: wrap; gap: 12px 18px; margin: 20px 0; font-size: .875rem; }
.trend-legend::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 7px; border: 1px solid var(--line); background: var(--paper); }
.trend-legend.bullish::before { background: var(--teal); }
.trend-legend.bearish::before { background: var(--red); }
.trend-legend.neutral::before { background: #c7d0d8; }
.trend-heatmap-scroll { max-height: 820px; overflow: auto; border: 1px solid var(--line); }
.trend-workspace #trend-heatmap { min-height: 0; min-width: 800px; }
.trend-workspace .trend-table { font-size: .875rem; min-width: 900px; }
.trend-workspace .trend-table th { font-size: .8125rem; letter-spacing: .035em; }
.trend-table td { font-variant-numeric: tabular-nums; }
.trend-table td:nth-child(3), .trend-table td:nth-child(4) { white-space: nowrap; }
.trend-table small { font-size: .8125rem; }
.trend-workspace .state-pill { font-size: .75rem; }
.trend-workspace .state-pill.unavailable { background: #edf1f2; color: #506575; }
.trend-workspace :focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.strategy-research { min-width: 0; }
.strategy-contract { display: flex; justify-content: space-between; gap: 20px; padding: 15px 18px; margin-bottom: 18px; border-left: 3px solid var(--amber); background: #fff7e6; font-size: .875rem; line-height: 1.55; }
.strategy-contract strong { color: #9b5a00; letter-spacing: .035em; }
.strategy-contract span { color: var(--muted); text-align: right; }
.strategy-chart { min-height: 525px; margin: 20px 0; border: 1px solid var(--line); }
.strategy-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 20px 0; border: 1px solid var(--line); }
.strategy-grid.single { grid-template-columns: minmax(0,1fr); }
.strategy-grid article { min-width: 0; padding: 20px; }
.strategy-grid article + article { border-left: 1px solid var(--line); }
.strategy-grid small { color: var(--blue); font-size: .8125rem; letter-spacing: .06em; }
.strategy-grid h3 { margin: 9px 0; font: 500 1.35rem/1.25 Georgia,serif; }
.strategy-grid p { margin: 0; color: var(--muted); line-height: 1.6; }
.trend-workspace .strategy-table { min-width: 760px; }
.strategy-table td:last-child { font-weight: 700; }
@media (max-width: 900px) {
  .trend-workspace .metric-grid.four { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .strategy-contract { display: block; }
  .strategy-contract span { display: block; margin-top: 5px; text-align: left; }
}
@media (max-width: 620px) {
  .trend-workspace .metric-grid.four { grid-template-columns: minmax(0,1fr); }
  .trend-workspace .research-section { padding: 20px 12px; }
  .trend-monitor-card { overflow-x: auto; }
  .trend-monitor-card .monitor-chart { min-width: 400px; }
  .trend-monitor-card > header { flex-wrap: wrap; }
  .strategy-grid { grid-template-columns: minmax(0,1fr); }
  .strategy-grid article + article { border-left: 0; border-top: 1px solid var(--line); }
  .strategy-chart { overflow-x: auto; }
}

.table-wrap { overflow-x: auto; border: 1px solid var(--line); }
table { width: 100%; border-collapse: collapse; background: var(--white); font-size: 12px; }
th { padding: 12px 14px; background: #edf1f2; color: #4f687c; font-size: 9.5px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
td { padding: 12px 14px; border-top: 1px solid var(--line); vertical-align: middle; }
td small { display: block; margin-top: 3px; color: var(--muted); }
tbody tr:hover { background: #f8f8f4; }
.positive { color: var(--green); }
.negative { color: var(--red); }

.theme-scope { border-left: 3px solid var(--teal, #008694); padding: 16px 20px; background: var(--white); }
.theme-scope p { margin: 8px 0 0; font-size: 16px; line-height: 1.65; }
.theme-availability { margin: 20px 0; font-size: 14px; color: var(--muted); }
.theme-comparison table { min-width: 760px; font-size: 14px; }
.theme-comparison th { font-size: 12px; letter-spacing: .02em; }
.theme-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; align-items: start; }
.theme-card { min-width: 0; padding: 24px; border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.theme-head { display: flex; gap: 12px; flex-wrap: wrap; justify-content: space-between; align-items: center; color: #648198; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.theme-card h2 { margin: 10px 0 6px; font-size: 25px; }
.theme-card > p { color: var(--muted); font-size: 14px; line-height: 1.5; }
.theme-card .theme-history-label { font-size: 13px; padding: 10px 12px; background: #f2f4f2; }
.theme-metric-period { margin: 20px 0 0; font: 600 14px "Segoe UI", sans-serif; }
.theme-metric-period small { display: block; margin-top: 6px; color: var(--muted); font-weight: 400; }
.theme-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.theme-metrics span { color: #4f687c; font-size: 12px; line-height: 1.4; }
.theme-metrics strong { display: block; margin-top: 5px; color: var(--ink); font-size: 18px; font-variant-numeric: tabular-nums; }
.theme-details { margin-top: 20px; border-top: 1px solid var(--line); }
.theme-details summary { padding: 14px 0; cursor: pointer; color: #245e89; font-size: 14px; font-weight: 600; }
.theme-details summary:focus-visible, .theme-method summary:focus-visible { outline: 2px solid #008694; outline-offset: 3px; }
.theme-chart-note { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.theme-chart-window { margin: 10px 0 0; font-size: 13px; min-height: 20px; }
.theme-method { margin-top: 20px; border: 1px solid var(--line); background: var(--white); }
.theme-method > summary { padding: 20px; cursor: pointer; font-size: 16px; }
.theme-method .explain-grid { padding: 0 20px 20px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.theme-method p { font-size: 14px; line-height: 1.65; }
.history-disclosure { margin: 0 0 8px; color: #607789; font-size: 11px; line-height: 1.55; }
.theme-plot { min-height: 350px; }
.theme-composition-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.theme-constituents { min-width: 0; border: 1px solid var(--line); background: var(--white); padding: 16px; }
.theme-constituents summary { cursor: pointer; font-size: 17px; font-weight: 600; }
.theme-constituents summary small, .theme-constituents td small { display: block; font-size: 13px; color: var(--muted); margin-top: 5px; }
.theme-constituents summary:focus-visible { outline: 2px solid #008694; outline-offset: 3px; }
.theme-constituents p { font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.theme-constituents .table-wrap { max-height: 380px; margin-top: 16px; }
.theme-constituents table { min-width: 420px; width: 100%; font-size: 14px; }
.theme-constituents th { position: sticky; top: 0; background: #eaf0f2; font-size: 13px; }
.theme-constituents td { padding: 12px 10px; font-variant-numeric: tabular-nums; }
.theme-net-label { padding: 10px 12px; border-left: 3px solid var(--teal); }
@media (max-width: 760px) { .theme-composition-grid { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .theme-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) { .theme-method .explain-grid { grid-template-columns: 1fr; } .theme-card { padding: 18px 12px; } }
.data-pending { margin-top: 20px; padding: 12px; background: #f4f3ef; font-style: italic; }


.loading-state, .error-state { max-width: 760px; margin: 80px auto; padding: 34px; border: 1px solid var(--line); background: var(--white); }
.error-state { border-left: 4px solid var(--red); }
.error-state code { display: block; margin-top: 18px; overflow-wrap: anywhere; font-size: 11px; }

@media (max-width: 1180px) {
  .metric-grid.four { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .metric-grid.five { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .two-column, .split-wide { grid-template-columns: 1fr; }
  .module-grid, .liquidity-block-grid { grid-template-columns: 1fr; }
  .metric-glossary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .regime-compare-grid { grid-template-columns: 1fr; }
  .macro-market-lenses { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .combined-lens { grid-column: 1 / -1; }
  .positioning-strip { grid-template-columns: 1fr 1.5fr; }
  .positioning-strip small { grid-column: 1 / -1; text-align: left; }
  .committee-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .evidence-grid, .model-evidence-grid, .evidence-summary { grid-template-columns: 1fr; }
  .material-alerts { grid-template-columns: 140px minmax(0,1fr); }
  .composition-summary { grid-template-columns: 1fr 1fr; }
  .composition-summary article:first-child { grid-column: 1 / -1; }
  .nowcast-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .live-decision-chain { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .live-decision-chain > b { display: none; }
  .contract-explanation { grid-template-columns: 1fr; }
  .macro-evidence-grade { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .macro-decision-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .transition-monitor-panel { grid-template-columns: 1fr; }
  .transition-ledger { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .risk-priority-card { grid-template-columns: minmax(210px,.8fr) minmax(0,1.2fr); }
  .risk-reasons { grid-column: 1 / -1; }
  .risk-priority-card > p { grid-column: 1; }
  .risk-priority-card > p.risk-review { grid-column: 2; }
}

@media (max-width: 820px) {
  .topbar { height: 64px; padding: 0 14px; }
  .brand img { width: 190px; }
  .status-line { display: none; }
  .sidebar { position: fixed; inset: 64px 0 auto 0; width: auto; height: 48px; padding: 0 10px; overflow-x: auto; overflow-y: hidden; }
  .sidebar-eyebrow, .sidebar-footer { display: none; }
  #primary-nav { display: flex; min-width: max-content; height: 48px; align-items: center; }
  #primary-nav a { white-space: nowrap; border-left: 0; border-bottom: 2px solid transparent; padding: 14px 10px 12px; }
  #primary-nav a.active { border-left: 0; border-bottom-color: #73a8c9; }
  #app { margin-left: 0; padding-top: 112px; }
  .page-shell { padding: 28px 16px 54px; }
  .page-heading { grid-template-columns: 1fr; gap: 20px; }
  .as-of-card { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); padding-top: 14px; }
  .metric-grid.four, .metric-grid.three, .metric-grid.two, .metric-grid.five, .explain-grid, .risk-grid, .theme-grid, .monitor-grid, .metric-glossary, .liquidity-explain, .status-contract-grid, .driver-evidence-grid, .composition-summary, .nowcast-card-grid, .trend-program-summary { grid-template-columns: 1fr; }
  .compact-release-empty { grid-template-columns: 1fr; }
  .composition-summary article:first-child { grid-column: auto; }
  .monitor-chart:last-child { grid-column: auto; }
  .module-metrics { grid-template-columns: repeat(2,1fr); }
  .axis-reading-drivers { grid-template-columns: 1fr; }
  .axis-focus, .growth-gdp-summary { padding: 18px; }
  .block-card { grid-template-columns: 1fr; }
  .change-list article { grid-template-columns: 1fr; gap: 4px; }
  .committee-grid, .material-alerts { grid-template-columns: 1fr; }
  .macro-market-heading, .diagnostic-lens { padding: 22px 18px; }
  .lens-header { align-items: flex-start; flex-direction: column; gap: 5px; }
  .macro-market-lenses, .positioning-strip { grid-template-columns: 1fr; }
  .combined-lens, .positioning-strip small { grid-column: auto; }
  .positioning-strip { gap: 12px; padding: 20px 18px; }
  .positioning-strip p span { display: block; margin: 5px 0 0; }
  .chart-section, .two-column .chart-section { min-height: 480px; }
  .plotly-chart { min-height: 380px; }
  .monitor-chart { min-height: 520px; }
  .trend-heatmap-chart { min-height: 1020px; }
  .trend-heatmap-chart .plotly-chart, #trend-heatmap { min-height: 900px; }
  .macro-decision-hero { padding: 22px 20px; }
  .live-decision-chain { grid-template-columns: 1fr; }
  .macro-gate-chart .plotly-chart { min-height: 650px; }
  .macro-contract-detail > summary { align-items: flex-start; flex-direction: column; }
  .macro-evidence-grade { grid-template-columns: 1fr; }
  .macro-decision-strip, .transition-ledger { grid-template-columns: 1fr; }
  .macro-release-bridge { align-items: flex-start; flex-direction: column; }
  .risk-priority-card { grid-template-columns: 1fr; }
  .risk-reasons, .risk-priority-card > p, .risk-priority-card > p.risk-review { grid-column: 1; }
  .risk-priority-card > p.risk-review { padding-top: 10px; padding-left: 0; border-top: 3px solid var(--amber); border-left: 0; }
}
