/* Reports keep native tables at every width. Only the focusable region scrolls. */
.report-page .doc-layout, .report-page .doc-content { min-width: 0; }
.report-page .report-table-block { max-width: 100%; min-width: 0; }
.report-table-scroll {
  width: 100%; max-width: 100%; max-height: 32rem; overflow: auto;
  overscroll-behavior: contain; border: 1px solid var(--line-strong);
  border-radius: 8px; margin-bottom: 1.8rem; scroll-margin-top: 82px;
}
.report-table-scroll:focus-visible { outline: 2px solid var(--yield); outline-offset: 3px; }
.report-page .report-table-scroll table {
  display: table; border-collapse: separate; border-spacing: 0;
  width: max-content; min-width: 100%; max-width: none; overflow: visible; margin: 0;
}
.report-page .report-table-scroll th, .report-page .report-table-scroll td { white-space: nowrap; }
.report-page .report-table-scroll thead th { position: sticky; top: 0; z-index: 2; background: var(--panel); }
.report-page .report-table-scroll tr > :first-child { position: sticky; left: 0; z-index: 1; background: var(--panel); }
.report-page .report-table-scroll thead th:first-child { z-index: 3; }
.report-page .report-table-scroll tbody th { font-family: var(--mono); font-size: .85em; text-transform: none; letter-spacing: 0; color: var(--fg); }
.report-page .report-table-scroll tr > :first-child { white-space: normal; max-width: 10rem; overflow-wrap: anywhere; }
.report-page .report-table-scroll tr > :first-child code { white-space: normal; overflow-wrap: anywhere; }
.report-table-expand {
  display: flex; align-items: center; gap: .4rem; margin: 0 0 .5rem auto;
}
.report-table-expand[hidden] { display: none; }
.report-table-expand, .report-table-dialog button {
  font: inherit; font-size: .9rem; color: var(--fg); background: var(--panel);
  border: 1px solid var(--line-strong); border-radius: 6px; padding: .45rem .75rem; cursor: pointer;
}
.report-table-expand:hover, .report-table-dialog button:hover { background: var(--yield-soft); }
.report-table-expand:focus-visible, .report-table-dialog button:focus-visible {
  outline: 2px solid var(--yield); outline-offset: 3px;
}
.report-table-expandable { cursor: zoom-in; }
body.report-table-modal-open { overflow: hidden; }
.report-table-dialog {
  box-sizing: border-box; width: fit-content; max-width: 96vw; height: fit-content; max-height: 94vh; max-height: 94dvh;
  margin: auto; padding: 1rem; overflow: hidden;
  background: var(--panel); color: var(--fg); border: 1px solid var(--line-strong); border-radius: 8px;
}
.report-table-dialog[open] {
  display: flex; flex-direction: column; gap: 1rem;
}
.report-table-dialog::backdrop { background: color-mix(in srgb, var(--fg) 40%, transparent); }
:root[data-theme="dark"] .report-table-dialog::backdrop { background: color-mix(in srgb, #000 65%, transparent); }
.report-table-dialog-header {
  display: flex; align-items: start; justify-content: space-between; gap: 1rem;
  width: 100%; flex: none;
}
.report-table-dialog-header h2 { margin: 0; font-size: 1.3rem; line-height: 1.4; }
.report-table-dialog-header button { flex: none; }
.report-table-dialog-scroll {
  min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain;
  border: 1px solid var(--line-strong); border-radius: 8px;
}
.report-table-dialog-scroll:focus-visible { outline: 2px solid var(--yield); outline-offset: -3px; }
.report-table-dialog-scroll table {
  display: table; width: max-content; margin: 0; border-collapse: separate; border-spacing: 0;
  font-size: 1rem; font-variant-numeric: tabular-nums;
}
.report-table-dialog-scroll th, .report-table-dialog-scroll td {
  border: 1px solid var(--line); padding: .65rem .9rem; text-align: left;
  vertical-align: top; line-height: 1.5; white-space: nowrap;
}
.report-table-dialog-scroll td { color: var(--fg-soft); }
.report-table-dialog-scroll thead th {
  position: sticky; top: 0; z-index: 2; background: var(--panel); color: var(--fg-mute);
  font-family: var(--mono); font-weight: 500; font-size: .85rem;
  letter-spacing: .06em; text-transform: uppercase;
  white-space: normal; max-width: 12rem; overflow-wrap: anywhere;
}
.report-table-dialog-scroll tr > :first-child {
  position: sticky; left: 0; z-index: 1; background: var(--panel);
}
.report-table-dialog-scroll thead th:first-child { z-index: 3; }
.report-table-dialog-scroll tbody th {
  font-family: var(--mono); font-size: 1rem; font-weight: 500; color: var(--fg);
}
.report-table-dialog-scroll code {
  font-family: var(--mono); font-size: .86em; color: var(--fg);
  background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r); padding: .1em .4em;
}
.report-limitations { border-left: 3px solid var(--yield); padding: .5rem 1rem; margin-block: 1.5rem; }
.report-page .report-limitations h2 { font-size: 1.4rem; margin-top: 0; }
.report-corrections { border-left: 3px solid var(--yield); padding: .5rem 1rem; margin-block: 1.5rem; }
.report-corrections > h2 { margin-top: 0; }
.report-corrections li { margin-block: 1.5rem; scroll-margin-top: 82px; }
.report-page .report-corrections code, .report-page .report-editions code { overflow-wrap: anywhere; white-space: normal; }
.report-page .report-corrections pre code, .report-page .report-editions pre code { white-space: pre; overflow-wrap: normal; }
.report-corrections pre, .report-editions pre { max-width: 100%; }
.report-corrected { color: var(--fg); }
.report-anchor { font-size: .7em; margin-left: .5em; }
.report-cite { margin-top: 3rem; }
.report-cite dd { margin-left: 0; overflow-wrap: anywhere; margin-bottom: 1rem; }
.report-cite code { overflow-wrap: anywhere; }
.report-editions { list-style: none; padding: 0; }
.report-editions > li { border-top: 1px solid var(--line); padding-block: 1rem; }
.report-latest { display: inline-block; font-size: .85em; margin-left: .5rem; }
.report-page .report-figure { margin-block: 2rem; max-width: min(100%, 600px); break-inside: avoid; }
.report-figure-panel {
  max-width: 100%;
  border: 1px solid var(--line-strong); border-radius: 8px; background: var(--panel);
}
.report-figure svg { display: block; width: 100%; max-width: 100%; height: auto; }
.report-figure svg text { fill: var(--fg); font-family: var(--sans); font-size: 16px; }
.report-figure svg .chart-heading { font-size: 18px; font-weight: 600; }
.report-figure svg .chart-tick, .report-figure svg .chart-value,
.report-figure svg .chart-unit, .report-figure svg .chart-legend { font-size: 16px; }
.report-figure svg .chart-grid { stroke: var(--line); stroke-width: 1; }
.report-figure svg .chart-axis { stroke: var(--fg-soft); stroke-width: 1; }
.report-figure svg .chart-bar, .report-figure svg .chart-marker { fill: var(--yield); }
.report-figure svg .chart-whisker { stroke: var(--fg); stroke-width: 2; }
.report-figure svg .chart-dot { fill: var(--panel); stroke: var(--yield); stroke-width: 1.5; }
/* All four token colours clear 3:1 against --panel in both site palettes.
   A panel-coloured stroke separates adjacent segments without changing scale. */
.report-figure svg .chart-token { stroke: var(--panel); stroke-width: 1; }
.report-figure svg .chart-token-0 { fill: var(--yield); }
.report-figure svg .chart-token-1 { fill: var(--burn); }
.report-figure svg .chart-token-2 { fill: var(--fg-mute); }
.report-figure svg .chart-token-3 { fill: var(--fg-soft); }
.report-figure figcaption { margin-top: .75rem; color: var(--fg-soft); font-size: .95rem; line-height: 1.6; }
/* SVG font sizes are user units: at the 600px cap, these render at about
   17px for headings, 15px for row labels and 14px for ticks and values.
   Keep the larger phone sizes and their conservative label placement. */
@media (min-width: 700px) {
  .report-figure svg text { font-size: 11px; }
  .report-figure svg .chart-heading { font-size: 12.5px; }
  .report-figure svg .chart-tick, .report-figure svg .chart-value,
  .report-figure svg .chart-unit, .report-figure svg .chart-legend { font-size: 10px; }
}
@media print {
  .report-page { page: report; }
  .report-page .report-corrections pre code, .report-page .report-editions pre code { white-space: pre-wrap; overflow-wrap: anywhere; }
  .report-page .illo { max-width: 110mm; margin-inline: auto; break-inside: avoid; }
  @page report { size: landscape; }
  .report-table-expand, .report-table-dialog { display: none !important; }
  .report-figure { break-inside: avoid; page-break-inside: avoid; }
  .report-table-scroll { overflow: visible; max-height: none; }
  .report-page .report-table-scroll table { table-layout: fixed; width: 100%; }
  .report-page .report-table-scroll th, .report-page .report-table-scroll td { white-space: normal; position: static !important; overflow-wrap: anywhere; max-width: none !important; }
  .report-anchor { display: none; }
}
