/* ── REPORT POSTS ──
   Used by posts built with _tools/reports/build-report.cjs: each titled section is a panel shown in full. */

.report-section {
  margin-bottom: 1.1rem; padding: 1.5rem 1.6rem 0.4rem; border-radius: 14px; scroll-margin-top: 110px;
  background: var(--panel); border: 1px solid var(--panel-border); box-shadow: var(--panel-shadow);
}
.report-section > h2 { font-size: clamp(1.4rem, 2.6vw, 1.8rem) !important; margin: 0 0 1rem !important; line-height: 1.25; }
.report-section-body { padding: 0 0 1rem; }
.report-section-body p { margin-bottom: 0.9rem; }
/* The article template lays list items out as flex rows; here text has to flow, so lists are blocks
   with the same gold dash hung to the left */
.article-body.report .report-section-body ul { display: block; list-style: none; padding: 0; margin: 0.25rem 0 0.75rem; }
.article-body.report .report-section-body li { display: block; position: relative; padding-left: 1.6rem; margin-bottom: 0.75rem; line-height: 1.75; font-size: 0.97rem; opacity: 0.9; }
.article-body.report .report-section-body li::before { content: '—'; position: absolute; left: 0; top: 0; color: #c8a96e !important; }
.article-body.report .report-section-body li ul { margin-top: 0.6rem; }
.article-body.report .report-section-body li li { opacity: 1; font-size: 0.93rem; }
.article-body.report .report-section-body li li::before { content: '·'; font-size: 1.2rem; line-height: 1.4; left: 0.35rem; }
.report-section-body a { text-decoration: underline; text-decoration-color: rgba(200,169,110,0.6); text-underline-offset: 3px; }
.report-section-body a:hover { color: var(--gold); }

/* Forecast table */
.rate-table-wrap { overflow-x: auto; margin: 1.25rem 0 0.75rem; border-radius: 10px; border: 1px solid rgba(255,255,255,0.12); }
.report .rate-table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.86rem; }
.report .rate-table th {
  text-align: left; padding: 0.75rem 0.9rem; font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 400; opacity: 0.75; border-bottom: 1px solid rgba(255,255,255,0.15); background: rgba(6,6,8,0.35);
}
.report .rate-table td { padding: 0.7rem 0.9rem; border-bottom: 1px solid rgba(255,255,255,0.07); opacity: 1; width: auto; }
.report .rate-table td:first-child { opacity: 1; width: auto; white-space: nowrap; }
.report .rate-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.report .rate-table td:last-child { color: #fff; }
.report .rate-table tr.is-forecast td:last-child { color: var(--gold) !important; }
.report .rate-table tr.is-total td { border-top: 1px solid rgba(255,255,255,0.18); }
.rate-status { font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.7; }
.is-forecast .rate-status { color: var(--gold) !important; opacity: 1; }
.rate-source { font-size: 0.82rem !important; font-style: italic; opacity: 0.65 !important; }

@media (max-width: 600px) {
  .report-section { padding: 1.2rem 1.1rem 0.3rem; }
}

/* Wide tables scroll inside their own box on phones instead of widening the whole page
   (grid columns otherwise grow to fit the table's minimum width) */
.article-layout > * { min-width: 0; }
