
.rpt-doc { --series-1: #2a78d6; --series-2: #eb6834; --series-3: #1baf7a; --line: #d8d8d4; --text: #14161a;
  --text-dim: #5a5f66; --panel: #ffffff; --panel-2: #f0efec; --unknown: #8a8f98;
  color: var(--text); background: #fff; font: 14px/1.45 'Segoe UI', system-ui, -apple-system, sans-serif; }
.rpt-doc *, .rpt-doc { box-sizing: border-box; }
.rpt-doc h1 { font-size: 26px; margin: 0 0 4px; }
.rpt-doc h2 { font-size: 19px; margin: 28px 0 10px; border-bottom: 2px solid var(--line); padding-bottom: 4px; }
.rpt-doc h3 { font-size: 15px; margin: 18px 0 8px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.5px; }
.rpt-doc .rpt-sub { font-size: 16px; }
.rpt-doc .rpt-meta { color: var(--text-dim); font-size: 12.5px; margin-top: 4px; }
.rpt-doc .rpt-table { width: 100%; border-collapse: collapse; margin: 8px 0 16px; font-variant-numeric: tabular-nums; }
.rpt-doc .rpt-table caption { text-align: left; font-weight: 700; padding: 6px 0; }
.rpt-doc .rpt-table th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.5px;
  color: var(--text-dim); border-bottom: 2px solid var(--line); padding: 5px 8px; }
.rpt-doc .rpt-table td { border-bottom: 1px solid var(--line); padding: 5px 8px; }
.rpt-doc .rpt-table .num, .rpt-doc .rpt-table th.num { text-align: right; }
.rpt-doc .rpt-table .strong td, .rpt-doc td.strong, .rpt-doc .strong { font-weight: 700; }
.rpt-doc .chart-wrap { position: relative; display: flex; flex-direction: column; gap: 6px; margin: 6px 0 14px; }
.rpt-doc .chart-wrap svg { width: 100%; height: auto; }
.rpt-doc .chart-legend { display: flex; gap: 16px; flex-wrap: wrap; color: var(--text-dim); font-size: 12.5px; }
.rpt-doc .chart-legend .key { display: inline-flex; align-items: center; gap: 6px; }
.rpt-doc .chart-legend .swatch { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.rpt-doc .rpt-bars { display: flex; flex-direction: column; gap: 7px; margin: 8px 0 14px; }
.rpt-doc .stacked-bar { display: flex; gap: 2px; height: 24px; }
.rpt-doc .stacked-bar .seg { display: flex; align-items: center; justify-content: center; font-weight: 700;
  font-size: 12px; color: #fff; min-width: 0; overflow: hidden; }
.rpt-doc .stacked-bar .seg:first-child { border-radius: 5px 0 0 5px; }
.rpt-doc .stacked-bar .seg:last-child { border-radius: 0 5px 5px 0; }
.rpt-doc .stacked-bar-row { display: flex; align-items: center; gap: 10px; }
.rpt-doc .stacked-bar-row .sb-label { color: var(--text-dim); font-size: 12.5px; min-width: 10em; }
.rpt-doc .stacked-bar-row .sb-total { font-variant-numeric: tabular-nums; font-weight: 700; min-width: 3em; text-align: right; }
.rpt-doc .stacked-bar-row .sb-track { flex: 1; min-width: 0; }
body.rpt-page { margin: 0 auto; padding: 28px 34px; max-width: 1000px; background: #fff; }
.rpt-print-btn { position: fixed; top: 14px; right: 14px; padding: 9px 16px; font: inherit; font-weight: 700;
  background: #2a78d6; color: #fff; border: 0; border-radius: 7px; cursor: pointer; }
@media print {
  body.rpt-page { padding: 0; max-width: none; }
  .rpt-print-btn { display: none; }
  .rpt-doc .page-break { break-before: page; }
  .rpt-doc .chart-wrap, .rpt-doc .rpt-bars { break-inside: avoid; page-break-inside: avoid; }
  .rpt-doc .rpt-table { break-inside: auto; }
  .rpt-doc .rpt-table thead { display: table-header-group; }
  .rpt-doc .rpt-table tr { break-inside: avoid; page-break-inside: avoid; }
  .rpt-doc h2, .rpt-doc h3 { break-after: avoid; page-break-after: avoid; break-inside: avoid; }
}
@page { size: A4; margin: 14mm 12mm; }
