/* Custom rules only lay out charts and preserve readable scrolling; typography and colors come from default1. */
.chart-scroll { overflow-x: auto; }
.chart-scroll svg { min-width: 620px; }
.fig-svg text.chart-title { font-family: var(--font-body); font-size: 16px; font-weight: 650; fill: var(--fg); }
.fig-svg text.model-label, .fig-svg text.value-label { font-size: 12px; fill: var(--fg); }
.fig-svg text.value-label { font-weight: 700; }
.primary-bar { fill: var(--accent); }
.secondary-bar { fill: var(--sun); }
.cell { fill: var(--accent-soft); }
.cell-0 { fill: var(--surface); stroke: var(--rule); }
.cell-1 { fill: color-mix(in srgb, var(--accent) 12%, var(--surface)); }
.cell-2 { fill: color-mix(in srgb, var(--accent) 25%, var(--surface)); }
.cell-3 { fill: color-mix(in srgb, var(--accent) 40%, var(--surface)); }
.cell-4 { fill: color-mix(in srgb, var(--accent) 55%, var(--surface)); }
.fig-svg text.cell-label { fill: var(--fg); font-weight: 650; }
.workflow-box { fill: var(--accent-soft); stroke: var(--rule); }
.legend { display: flex; flex-wrap: wrap; gap: 1.2em; font-size: .88rem; color: var(--muted); }
.key { display: inline-block; width: .8em; height: .8em; margin-right: .4em; background: var(--accent); }
.key.support { background: var(--sun); }
details > * + * { margin-top: 1em; }
td, th { vertical-align: top; }
code.hash { overflow-wrap: anywhere; word-break: break-all; }
@media print { .chart-scroll { overflow: visible; } details { break-inside: avoid; } }

/* Two-line labels keep the configured effort visible without widening charts. */
.fig-svg text.effort-label, .fig-svg .effort-label { font-size: 9px; font-weight: 400; fill: var(--muted); }
