/* Research-platform foundation. Loaded last to standardise all current views. */
:root {
  --bg: #0b0d10;
  --panel: #111419;
  --panel2: #15191f;
  --surface-raised: #191e25;
  --text: #f0f1ee;
  --muted: #969ca5;
  --subtle: #707782;
  --accent: #67a7ff;
  --green: #62bd91;
  --orange: #d5a75b;
  --red: #dc7777;
  --line: #2b3038;
  --line-soft: #20252c;
  --radius: 6px;
  --sidebar-width: 244px;
}
body { background: var(--bg); font-size: 1rem; line-height: 1.55; }
body::before { display: none; }
a { color: #86b9ff; }
a:hover { color: #b8d6ff; }
a:focus-visible, button:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline-color: #8bc0ff; outline-offset: 3px; border-radius: 3px; }
.app-shell { grid-template-columns: var(--sidebar-width) minmax(0, 1fr); max-width: none; }
.site-sidebar { padding: 1.15rem .8rem 1rem; background: #0e1115; border-color: var(--line); }
.site-brand { gap: .65rem; min-height: 46px; padding: 0 .55rem .9rem; border-bottom: 1px solid var(--line); }
.brand-mark { width: 30px; height: 30px; border-radius: 4px; border: 1px solid #49688f; background: #162234; box-shadow: none; color: #a8cbff; font-size: .75rem; font-weight: 700; letter-spacing: .04em; }
.brand-name { color: #e5e7e4; font-size: .8125rem; font-weight: 650; letter-spacing: .01em; }
.brand-name > span { margin-top: .05rem; color: var(--subtle); font-size: .75rem; }
.app-nav { min-width: 0; margin-top: 1.1rem; }
.nav-group-label { margin: 0 .6rem .4rem; color: #646c76; font-size: .6875rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.nav-group-future { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line-soft); }
.site-tabs { margin: 0; gap: 2px; }
.site-tabs button, .nav-link { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: center; gap: .55rem; width: 100%; min-height: 36px; padding: .42rem .58rem; border: 1px solid transparent; border-radius: 4px; background: transparent; color: #a9afb7; font-size: .8125rem; font-weight: 500; text-align: left; text-decoration: none; }
.site-tabs button { cursor: pointer; }
.site-tabs button:hover, .nav-link[href]:hover { color: #eef0ed; background: #171b21; }
.site-tabs button[aria-selected="true"] { color: #f3f5f2; border-color: #343b45; background: #1a1f26; box-shadow: inset 2px 0 0 var(--accent); }
.site-tabs button[aria-selected="true"]::after { display: none; }
.nav-code { color: #626a74; font-size: .6875rem; font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.site-tabs button[aria-selected="true"] .nav-code { color: #80b5ff; }
.future-nav { display: grid; gap: 2px; }
.nav-link.is-disabled { color: #60666f; cursor: default; }
.nav-link.is-disabled > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-footer { gap: .25rem; padding: .9rem .6rem 0; border-top: 1px solid var(--line-soft); color: #646c76; font-size: .6875rem; }
.sidebar-footer > span { padding: 0; border: 0; color: inherit; }
.wrap { max-width: 1600px; padding: 1.25rem clamp(1.25rem, 2.4vw, 2.5rem) 2rem; }
.workspace-bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 34px; margin-bottom: 1rem; padding-bottom: .7rem; border-bottom: 1px solid var(--line); color: #7d848d; font-size: .75rem; letter-spacing: .035em; text-transform: uppercase; }
.workspace-status { display: flex; align-items: center; gap: .45rem; color: #939ba4; text-transform: none; letter-spacing: 0; }
.workspace-status i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.page-header { align-items: flex-end; gap: 1rem 2rem; margin-bottom: 1.25rem; padding-bottom: 1.15rem; border-color: var(--line); }
.eyebrow, .section-kicker { margin: 0 0 .35rem; color: #767e87; font-size: .6875rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
h1 { font-size: clamp(1.55rem, 2.2vw, 2.15rem); font-weight: 600; letter-spacing: -.025em; line-height: 1.2; }
h1 > span { display: inline; color: #adb3ba; }
.subtitle { margin-top: .45rem; color: #8f969f; font-size: .875rem; }
.updated { display: grid; gap: .1rem; margin: 0; padding: .45rem .65rem; border-color: #343a43; border-radius: 4px; background: #12161b; box-shadow: none; font-size: .6875rem; }
.updated time { color: #d5d8d4; font-size: .8125rem; }
.hero { grid-template-columns: minmax(0, .8fr) minmax(520px, 1.2fr); gap: .75rem; margin-bottom: .7rem; }
.hero-card, .summary, .card, .combo, .graph-card, #report-content, .timeline-chart-card, .policy-detail { border-color: var(--line); border-radius: var(--radius); background: var(--panel); box-shadow: none; }
.hero-card { padding: 1rem 1.1rem; background: #13171c; }
.hero-card::after { display: none; }
.panel-heading { margin-bottom: .55rem; }
.panel-heading .eyebrow { color: #7e8790; }
.snapshot-label, .small-label { color: #727a84; font-size: .6875rem; }
.snapshot-label { padding: 0; border: 0; }
.hero h2 { margin-bottom: .35rem; font-size: 1.05rem; font-weight: 600; letter-spacing: -.01em; }
.hero-card > p { color: #b3b8bd; font-size: .875rem; line-height: 1.55; }
.pill-row { gap: .35rem; padding-top: .75rem; }
.pill { padding: .15rem .4rem; border-color: #343a43; border-radius: 3px; background: #101318; color: #a7adb4; font-size: .6875rem; }
.summary { padding: .75rem 1rem; background: #111419; }
.summary .panel-heading { margin-bottom: .3rem; }
.summary .panel-heading h2 { font-size: .8125rem; text-transform: uppercase; letter-spacing: .07em; color: #8e969f; }
.memorise-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kpi-row { display: flex; min-width: 0; flex-direction: column; justify-content: flex-start; border-right: 1px solid var(--line-soft); }
.kpi-row:nth-child(-n+4) { border-bottom: 1px solid var(--line-soft); }
.kpi-row:nth-child(4n) { border-right: 0; }
.memorise-item, .kpi-row { gap: .15rem; padding: .58rem .65rem; border-color: var(--line-soft); }
.memorise-item dt, .kpi-row dt { color: #858c95; font-size: .75rem; }
.memorise-item dd, .kpi-row dd { color: #e7e9e6; font-family: "SFMono-Regular", Consolas, monospace; font-size: 1rem; font-weight: 600; letter-spacing: -.02em; }
.snapshot-note { margin-bottom: 1.3rem; padding: .45rem .65rem; border: 1px solid var(--line-soft); border-radius: 4px; background: #0f1216; }
.note-label, .snapshot-note p { font-size: .75rem; }
.section-heading { margin-bottom: .75rem; }
.section-heading h2 { gap: .55rem; font-size: 1.1rem; font-weight: 600; letter-spacing: -.01em; }
.section-heading p { margin-top: .15rem; color: #818892; font-size: .8125rem; }
.count { border-color: #343b44; border-radius: 3px; color: #aeb4ba; font-size: .6875rem; }
.legend, .graph-legend { gap: .8rem; color: #7f8790; font-size: .75rem; }
.grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.card { padding: 1rem; background: #111419; }
.card::before { left: 1rem; width: 18px; height: 1px; }
.card h3 { color: #9299a2; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.value { margin: .45rem 0 .1rem; font-family: "SFMono-Regular", Consolas, monospace; font-size: clamp(1.65rem, 2.4vw, 2.25rem); font-weight: 600; letter-spacing: -.045em; }
.unit { min-height: 2.5em; margin: .1rem 0 .5rem; color: #777f88; font-size: .75rem; line-height: 1.35; }
.status { margin-bottom: .65rem; padding: 0; border: 0; background: transparent; font-size: .75rem; }
.metadata-grid, .reading-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .7rem; margin: 0 0 .7rem; padding-top: .65rem; border-top: 1px solid var(--line-soft); }
.metadata-item { min-width: 0; }
.metadata-grid dt, .reading-meta dt { color: #737b84; font-size: .6875rem; text-transform: uppercase; letter-spacing: .045em; }
.metadata-grid dd, .reading-meta dd { margin: .12rem 0 0; color: #b9bec3; font-size: .75rem; line-height: 1.35; overflow-wrap: anywhere; }
.metadata-detail, .previous-period { display: block; margin-top: .08rem; color: #6f7780; font-size: .6875rem; }
.is-missing, .missing { color: #686f78 !important; }
.desc { margin-bottom: .8rem; color: #9ea4aa; font-size: .8125rem; line-height: 1.55; }
.analysis-expander { margin-top: auto; border-top: 1px solid var(--line-soft); }
.analysis-expander summary { padding: .65rem 0; color: #9fc6f9; font-size: .75rem; cursor: pointer; }
.analysis-expander p { margin: 0 0 .7rem; color: #b8c3d1; font-size: .8125rem; line-height: 1.55; }
.essay { margin-top: auto; padding: .7rem 0; border: 0; border-top: 1px solid var(--line-soft); border-radius: 0; background: transparent; }
.source { padding-top: .55rem; font-size: .75rem; }
.source-label { font-size: .6875rem; }
.source a { padding: .1rem 0; }
.combinations-section { margin-top: 1.75rem; }
.combo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.combo { padding: 1rem; background: #111419; }
.combo-number { width: auto; height: auto; border: 0; border-radius: 0; background: transparent; color: #77adf6; font-family: monospace; font-size: .6875rem; }
.combo h3 { margin: .5rem 0 .4rem; font-size: .9375rem; }
.combo p { color: #999fa6; font-size: .8125rem; line-height: 1.55; }
.combo .combo-note { margin-top: .65rem; padding-top: .55rem; font-size: .75rem; }
.report-heading { margin-bottom: .75rem; }
.edition-control label { font-size: .75rem; }
.edition-control select, .timeline-field select { min-height: 36px; padding-block: .35rem; border-color: #353c45; border-radius: 4px; background: #151920; color: #dedfdd; font-size: .8125rem; }
#report-content { background: #111419; }
.report-meta { padding: .65rem 1rem; background: #151920; color: #90969e; font-size: .75rem; }
.report-assessment { padding: 0; border: 0; background: transparent; font-size: .75rem; }
.report-coverage { padding: .6rem 1rem; background: #0f1216; font-size: .75rem; }
.report-layout { grid-template-columns: minmax(0, 1.9fr) minmax(300px, .8fr); }
.report-article { padding: 1.25rem 1.4rem; }
.report-title { max-width: none; margin-bottom: 1.25rem; font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 600; }
.report-section-label { margin-bottom: .4rem; color: #93bff7; font-size: .6875rem; }
.report-paragraph { color: #bec2c4; font-size: .875rem; line-height: 1.75; }
.report-outlook { margin-top: 1.25rem; padding: .85rem 1rem; border-color: #33475f; border-radius: 4px; background: #141b24; box-shadow: inset 2px 0 0 #5c91d5; }
.report-markets { padding: 1rem; background: #0f1216; }
.market-reading { padding: .8rem 0; }
.market-value { font-family: monospace; font-size: 1.3rem; font-weight: 600; }
.report-watch { margin-top: 1rem; padding: .7rem; border-radius: 4px; background: #12161b; }
.report-sources { padding-inline: 1rem; background: #0f1216; }
.source-list { gap: .65rem 1.4rem; font-size: .75rem; }
.timeline-controls { gap: .65rem; padding: .7rem; border: 1px solid var(--line); background: #0f1216; }
.timeline-presets, .segmented-control { display: flex; flex-wrap: wrap; gap: 0; margin: .65rem 0; }
.timeline-presets button, .segmented-control button, .policy-related button { min-height: 32px; padding: .3rem .6rem; border-color: #323943; border-radius: 0; background: #11151a; color: #8f969e; font-size: .75rem; }
.timeline-presets button:first-child, .segmented-control button:first-child { border-radius: 4px 0 0 4px; }
.timeline-presets button:last-child, .segmented-control button:last-child { border-radius: 0 4px 4px 0; }
.timeline-presets button + button, .segmented-control button + button { margin-left: -1px; }
.timeline-presets button[aria-pressed="true"], .policy-related button[aria-pressed="true"] { color: #e8edf5; background: #1a2635; border-color: #466991; }
.policy-filters { gap: .4rem 1rem; padding: .45rem 0 .65rem; }
.policy-filter { min-height: 30px; font-size: .75rem; }
.policy-filter input { width: 15px; height: 15px; }
.timeline-workspace { grid-template-columns: minmax(0, 1fr) minmax(270px, 310px); gap: .7rem; }
.timeline-chart-card { padding: .9rem; background: #111419; }
.timeline-chart-heading, .chart-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.timeline-chart-heading h3, .chart-header h3 { font-size: .9375rem; font-weight: 600; }
.timeline-unit, .chart-definition { margin: .15rem 0 0; color: #7f8790; font-size: .75rem; }
.timeline-latest, .chart-latest { color: #777f88; font-size: .6875rem; }
.timeline-latest strong, .chart-latest strong { color: #dfe4ea; font-family: monospace; font-size: 1.2rem; font-weight: 600; }
.timeline-reading { min-height: 3rem; margin-top: .45rem; font-size: .75rem; }
.timeline-reading strong { color: #8bbcff; font-family: monospace; font-size: 1.55rem; font-weight: 600; }
.timeline-series { stroke: #6fa9f5; stroke-width: 2; }
.timeline-data-dot { fill: #a9ccfa; }
.timeline-target { fill: #7d9cbd; opacity: .12; }
.timeline-gridline { stroke: #2c3239; }
.timeline-scrubber { margin-top: .65rem; padding-top: .55rem; }
.timeline-source { margin-top: .65rem; padding-top: .55rem; font-size: .75rem; }
.policy-marker, .event-marker { border-color: #3a414a; border-radius: 3px; background: #11151a; font-size: .6875rem; }
.policy-marker:hover, .policy-marker[aria-pressed="true"], .event-marker:hover, .event-marker[aria-pressed="true"] { background: #1c2229; }
.policy-event-list { gap: .45rem; }
.policy-event { padding: .65rem .75rem; border-radius: 4px; background: #111419; }
.policy-event-title { font-size: .8125rem; }
.policy-detail { padding: .9rem; border-top-width: 2px; background: #111419; }
.policy-detail h3 { font-size: 1.05rem; }
.policy-detail p { color: #aeb3b8; font-size: .8125rem; line-height: 1.55; }
.policy-analysis-block { margin-top: .7rem; padding-top: .65rem; }
.policy-evaluation { padding: .7rem; border-radius: 4px; background: #171c22; }
.timeline-empty, .empty-state { display: grid; gap: .15rem; padding: .65rem .75rem; border: 1px solid #4b4331; border-radius: 4px; background: #1b1812; color: #c9b98f; font-size: .8125rem; }
.empty-state span { color: #8f8671; font-size: .75rem; }
.timeline-table-scroll { border: 1px solid var(--line); border-radius: 4px; }
.timeline-table-scroll table, .data-table { width: 100%; border-collapse: collapse; color: #b9bec3; font-size: .75rem; }
.timeline-table-scroll caption, .data-table caption { padding: .45rem .6rem; color: #9198a0; background: #0f1216; text-align: left; }
.timeline-table-scroll th, .timeline-table-scroll td, .data-table th, .data-table td { padding: .5rem .65rem; border-bottom: 1px solid var(--line-soft); text-align: left; font-variant-numeric: tabular-nums; }
.timeline-table-scroll th, .data-table th { position: sticky; top: 0; background: #171b21; color: #d4d7d4; font-weight: 600; }
.has-tooltip { position: relative; }
.has-tooltip::after { content: attr(data-tooltip); position: absolute; left: 50%; bottom: calc(100% + 8px); z-index: 20; width: max-content; max-width: 250px; padding: .35rem .5rem; border: 1px solid #3b424b; border-radius: 3px; background: #20252c; color: #e5e7e5; font-size: .6875rem; line-height: 1.35; white-space: normal; opacity: 0; pointer-events: none; transform: translate(-50%, 3px); transition: opacity .12s, transform .12s; }
.has-tooltip:hover::after, .has-tooltip:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
footer { margin-top: 1.5rem; padding-top: .8rem; font-size: .6875rem; }
@media (hover: hover) { .card:hover, .graph-card:hover, .combo:hover { border-color: #3a424c; box-shadow: none; } }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .card:hover, .graph-card:hover, .combo:hover { transform: none; } }
@media (prefers-reduced-motion: no-preference) { [role="tabpanel"]:not([hidden]) { animation: none; } }
@media (max-width: 1350px) { .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .hero { grid-template-columns: 1fr; } }
@media (max-width: 1100px) {
  .site-sidebar { padding: .75rem 1rem .55rem; background: #0e1115; }
  .site-brand { min-height: 38px; width: 100%; padding: 0 0 .6rem; }
  .brand-name { display: block; }
  .brand-name > span { display: block; }
  .app-nav { margin-top: .55rem; }
  .nav-group-label, .future-nav, .nav-group-future, .sidebar-footer { display: none; }
  .site-tabs { display: flex; flex-direction: row; width: max-content; }
  .app-nav { display: flex; gap: .2rem; overflow-x: auto; scrollbar-width: thin; padding-bottom: .2rem; }
  .site-tabs button, .nav-link { display: flex; width: auto; flex: 0 0 auto; min-height: 34px; padding: .4rem .65rem; }
  .nav-code { display: none; }
  .site-tabs button[aria-selected="true"] { box-shadow: inset 0 -2px 0 var(--accent); }
  .wrap { padding-top: 1rem; }
}
@media (max-width: 900px) { .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .report-layout, .timeline-workspace { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 620px) {
  .workspace-bar { margin-bottom: .75rem; }
  .workspace-bar > span:first-child { display: none; }
  .workspace-status { margin-left: auto; }
  .page-header { align-items: flex-start; }
  h1 > span { display: block; }
  .hero { display: block; }
  .summary { margin-top: .65rem; }
  .memorise-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .memorise-item, .kpi-row { align-items: flex-start; flex-direction: column; }
  .grid, .combo-grid { grid-template-columns: minmax(0, 1fr); }
  .card { padding: .9rem; }
  .value { font-size: 2rem; }
  .metadata-grid, .reading-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-readings { grid-template-columns: minmax(0, 1fr); }
  .source-list { grid-template-columns: minmax(0, 1fr); }
  .timeline-controls { display: block; }
  .timeline-chart-scroll, .timeline-table-scroll { overflow-x: auto; overscroll-behavior-inline: contain; }
  .timeline-chart-card { padding: .7rem; }
}
@media (max-width: 380px) { .metadata-grid, .reading-meta { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .has-tooltip::after { transition: none; } }

/* Research-terminal refinement: flatter sections, denser statistical tables, colour reserved for data. */
.wrap { max-width: 1720px; }
.page-header { margin-bottom: .9rem; padding-bottom: .85rem; }
.updated { padding: 0; border: 0; background: transparent; }
.updated time { font-variant-numeric: tabular-nums; }
.hero {
  grid-template-columns: minmax(270px, .62fr) minmax(620px, 1.38fr);
  gap: 0;
  margin: 0 0 1rem;
  padding: .8rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.hero-card,
.summary {
  padding: .2rem 1.1rem .2rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.summary {
  padding: .2rem 0 .2rem 1.1rem;
  border-left: 1px solid var(--line);
}
.hero h2 { font-size: .9375rem; font-weight: 550; }
.hero-card > p { max-width: 64ch; color: #b7bcc2; font-size: .875rem; }
.pill-row { display: flex; flex-wrap: wrap; gap: .2rem .75rem; padding-top: .55rem; }
.pill {
  position: relative;
  padding: 0 0 0 .65rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #838b94;
}
.pill::before { content: ""; position: absolute; left: 0; top: .48em; width: 3px; height: 3px; border-radius: 50%; background: #68717b; }
.summary .panel-heading h2 { color: #a4abb3; font-size: .75rem; font-weight: 600; letter-spacing: .065em; }
.snapshot-table-scroll,
.indicator-table-scroll { overflow-x: auto; overscroll-behavior-inline: contain; }
.snapshot-table,
.indicator-table { width: 100%; border: 0; border-radius: 0; }
.snapshot-table { min-width: 590px; }
.snapshot-table caption,
.indicator-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.snapshot-table th,
.snapshot-table td {
  padding: .34rem .48rem;
  border-bottom: 1px solid var(--line-soft);
  background: transparent;
  font-size: .75rem;
}
.snapshot-table thead th { position: static; color: #747d86; background: transparent; font-size: .6875rem; font-weight: 600; letter-spacing: .055em; text-transform: uppercase; }
.snapshot-table tbody th { color: #aeb4bb; font-weight: 500; text-align: left; }
.numeric-cell { font-family: "SFMono-Regular", Consolas, monospace; font-variant-numeric: tabular-nums; white-space: nowrap; }
.snapshot-table .numeric-cell { color: #e2e6e9; }
.period-cell { color: #8d959e; white-space: nowrap; }
.snapshot-note {
  display: flex;
  gap: .65rem;
  margin-bottom: 1.3rem;
  padding: .45rem 0;
  border: 0;
  border-bottom: 1px solid var(--line-soft);
  border-radius: 0;
  background: transparent;
}
.note-label { flex: 0 0 auto; color: #737b84; }
.snapshot-note p { margin: 0; color: #858d96; }
.section-heading { padding-top: .35rem; border-top: 1px solid var(--line); }
.indicator-table { min-width: 1160px; table-layout: fixed; }
.indicator-table col { width: auto; }
.indicator-table th,
.indicator-table td {
  padding: .7rem .65rem;
  border-bottom: 1px solid var(--line);
  background: transparent;
  vertical-align: top;
  font-size: .75rem;
}
.indicator-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding-top: .48rem;
  padding-bottom: .48rem;
  background: #0f1216;
  color: #757e88;
  font-size: .6875rem;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.indicator-table thead th:nth-child(1) { width: 24%; }
.indicator-table thead th:nth-child(2) { width: 10%; }
.indicator-table thead th:nth-child(3) { width: 8%; }
.indicator-table thead th:nth-child(4) { width: 12%; }
.indicator-table thead th:nth-child(5) { width: 12%; }
.indicator-table thead th:nth-child(6) { width: 21%; }
.indicator-table thead th:nth-child(7) { width: 13%; }
.indicator-name-cell { position: relative; padding-left: .9rem !important; color: #e2e6e9; font-weight: 500; text-align: left; }
.indicator-name-cell::before { content: ""; position: absolute; left: 0; top: .85rem; width: 2px; height: 1.25rem; background: var(--tone, #737b84); }
.indicator-row.green { --tone: var(--green); }
.indicator-row.orange { --tone: var(--orange); }
.indicator-row.red { --tone: var(--red); }
.indicator-name-cell strong { display: block; font-size: .8125rem; font-weight: 600; }
.indicator-unit,
.indicator-description,
.table-secondary { display: block; margin-top: .18rem; color: #747c85; font-family: Inter, "Segoe UI", Arial, sans-serif; font-size: .6875rem; font-weight: 400; line-height: 1.4; white-space: normal; }
.indicator-description { margin-top: .35rem; color: #939aa2; font-size: .75rem; }
.latest-cell strong { color: #eef0ed; font-size: 1rem; font-weight: 600; }
.change-cell { color: #c4c9cd; }
.assessment-cell { color: #aeb4bb; }
.status-dot { display: inline-block; width: 6px; height: 6px; margin: 0 .42rem .08rem 0; border-radius: 50%; background: var(--tone); }
.status-dot.green { --tone: var(--green); }
.status-dot.orange { --tone: var(--orange); }
.status-dot.red { --tone: var(--red); }
.indicator-source-cell { overflow-wrap: anywhere; }
.indicator-source-cell a { display: block; color: #8eb8e8; text-decoration: none; }
.indicator-source-cell a:hover { text-decoration: underline; }
.analysis-cell .analysis-expander { margin: 0; border: 0; }
.analysis-cell .analysis-expander summary { padding: 0; color: #90b8e5; font-size: .75rem; white-space: nowrap; }
.analysis-cell .analysis-expander p { min-width: 250px; margin: .45rem 0 0; padding-top: .45rem; border-top: 1px solid var(--line-soft); color: #aeb7c1; font-size: .75rem; }
.combinations-section { margin-top: 1.5rem; }
.combo-grid { display: block; border-top: 1px solid var(--line); }
.combo {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: .8rem;
  padding: .85rem 0;
  border: 0;
  border-bottom: 1px solid var(--line-soft);
  border-radius: 0;
  background: transparent;
}
.combo-number { padding-top: .18rem; color: #709aca; }
.combo h3 { margin: 0 0 .2rem; font-size: .875rem; font-weight: 600; }
.combo p { margin: 0; max-width: 110ch; }
.combo .combo-note { margin-top: .35rem; padding: 0; border: 0; color: #747c85; }
#report-content { border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
.report-meta,
.report-coverage { padding-inline: 0; background: transparent; border-bottom: 1px solid var(--line-soft); }
.report-layout { gap: 0; }
.report-article { padding: 1.15rem 1.25rem 1.2rem 0; }
.report-markets { padding: 1.15rem 0 1.2rem 1.25rem; border-left: 1px solid var(--line); background: transparent; }
.report-outlook { padding: .8rem 0 .1rem .9rem; border: 0; border-left: 2px solid #547ba9; border-radius: 0; background: transparent; box-shadow: none; }
.report-watch { padding: .65rem 0 0; border-top: 1px solid var(--line-soft); border-radius: 0; background: transparent; }
.report-sources { padding-inline: 0; background: transparent; }
.timeline-controls {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: end;
  padding: .65rem 0;
  border: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: transparent;
}
.timeline-field input[type="date"] {
  min-height: 36px;
  padding: .35rem .5rem;
  border: 1px solid #353c45;
  border-radius: 4px;
  background: #11151a;
  color: #dfe2e5;
  font: inherit;
  font-size: .8125rem;
  color-scheme: dark;
}
.timeline-presets { margin: .55rem 0 .4rem; }
.timeline-workspace { grid-template-columns: minmax(0, 1fr) minmax(280px, 330px); gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.timeline-chart-card { overflow: visible; padding: .9rem 1rem .85rem 0; border: 0; border-radius: 0; background: transparent; }
.policy-detail { min-width: 0; padding: .9rem 0 .9rem 1rem; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: transparent; }
.timeline-plot { position: relative; }
.timeline-series { fill: none; stroke: #73a9df; stroke-width: 2; vector-effect: non-scaling-stroke; }
.timeline-series.is-forecast { stroke-dasharray: 6 5; opacity: .8; }
.timeline-data-dot.is-forecast { fill: #0b0d10; stroke: #9cc3eb; stroke-width: 1.5; }
.timeline-target { fill: #6e8dac; opacity: .1; }
.timeline-gridline { stroke: #252b32; stroke-dasharray: 2 6; }
.timeline-axis { font-size: 21px; fill: #838b94; }
.timeline-reading { min-height: 2.7rem; margin-top: .25rem; }
.timeline-reading-period { min-width: 9rem; color: #929aa3; }
.timeline-reading-frequency { color: #737c85; }
.timeline-hover-tooltip {
  position: absolute;
  z-index: 8;
  display: grid;
  min-width: 220px;
  max-width: 280px;
  padding: .55rem .65rem;
  border: 1px solid #454d57;
  border-radius: 4px;
  background: #171b21;
  color: #dce0e4;
  box-shadow: 0 8px 20px #0008;
  font-size: .75rem;
  line-height: 1.45;
  pointer-events: none;
  transform: translateX(-50%);
}
.timeline-hover-tooltip[hidden] { display: none; }
.timeline-hover-tooltip strong { color: #aeb6bf; font-weight: 550; }
.timeline-hover-tooltip b { color: #f2f4f2; font-family: "SFMono-Regular", Consolas, monospace; font-size: 1rem; font-weight: 600; }
.timeline-hover-tooltip span:last-child { margin-top: .25rem; color: #7e8790; }
.timeline-source {
  display: flex;
  flex-flow: row wrap;
  align-items: baseline;
  gap: .15rem .35rem;
  margin-top: .55rem;
  padding-top: .5rem;
  border-top: 1px solid var(--line-soft);
  color: #7e8790;
}
.timeline-source a { text-decoration: none; }
.timeline-source-meta { flex-basis: 100%; color: #707983 !important; }
.source-prefix { color: #9aa1a9 !important; }
.policy-events { margin-top: 1.1rem; }
.policy-event-list { display: block; border-top: 1px solid var(--line); }
.policy-event {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) 115px;
  align-items: center;
  gap: .75rem;
  width: 100%;
  padding: .48rem .35rem;
  border: 0;
  border-bottom: 1px solid var(--line-soft);
  border-radius: 0;
  background: transparent;
}
.policy-event:hover,
.policy-event[aria-pressed="true"] { background: #13171c; }
.policy-event[aria-pressed="true"] { box-shadow: inset 2px 0 0 var(--policy-color); }
.policy-event-date,
.policy-event-title,
.policy-event-category { margin: 0; font-size: .75rem; }
.policy-event-title { color: #cbd0d4; }
.policy-event-category { color: var(--policy-color); text-align: right; }
.policy-analysis-block { margin-top: .75rem; padding-top: .65rem; }
.policy-evaluation { padding: .65rem 0 0; border-radius: 0; background: transparent; }
.timeline-methodology { margin-top: 1rem; }
.timeline-methodology summary { font-size: .8125rem; }
.timeline-methodology p { font-size: .8125rem; }
.timeline-table-scroll { border: 0; border-top: 1px solid var(--line); border-radius: 0; }
.timeline-table-scroll th,
.timeline-table-scroll td { background: transparent; }
.timeline-table-scroll th { background: #11151a; }
.timeline-chart-help { font-size: .75rem; }
.timeline-band-label { font-size: .75rem; }
footer { border-top: 1px solid var(--line); }

@media (max-width: 1200px) {
  .hero { grid-template-columns: minmax(240px, .7fr) minmax(520px, 1.3fr); }
  .timeline-workspace { grid-template-columns: minmax(0, 1fr) 290px; }
}
@media (max-width: 900px) {
  .hero { grid-template-columns: minmax(0, 1fr); }
  .hero-card { padding: .2rem 0 .8rem; }
  .summary { padding: .8rem 0 .2rem; border-top: 1px solid var(--line-soft); border-left: 0; }
  .report-article { padding-right: 0; }
  .report-markets { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .timeline-workspace { grid-template-columns: minmax(0, 1fr); }
  .timeline-chart-card { padding-right: 0; }
  .policy-detail { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
}
@media (max-width: 620px) {
  .snapshot-note { display: block; }
  .timeline-controls { display: block; }
  .timeline-date-fields { margin-top: .65rem; }
  .timeline-date-fields .timeline-field { flex: 1 1 9rem; }
  .timeline-field input[type="date"] { width: 100%; }
  .timeline-presets { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .timeline-presets button { min-width: 0; padding-inline: .35rem; }
  .policy-event { grid-template-columns: 72px minmax(0, 1fr); }
  .policy-event-category { display: none; }
  .timeline-hover-tooltip { min-width: 200px; }
  .combo { grid-template-columns: 30px minmax(0, 1fr); }
}
