/* Coverage is a semantic matrix: row-group/row headers, wrapping labels and
   an API-defined stage axis. Its palette and numeric cells belong to .dt. */
#module-vertical-coverage { min-width: 0; }
.vc-heading { flex-wrap: wrap; gap: 12px; }
.vc-heading h1, .vc-heading p { margin: 0; }
.vc-heading p { margin-top: 6px; }
.vc-updated { color: var(--muted); font-size: var(--text-xs); }
.vc-status:not(.sr-only) { margin-block: 12px; color: var(--danger); }
.vc-totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; margin: 20px 0; }
.vc-totals[hidden] { display: none; }
.vc-totals > div { padding-left: 12px; border-left: 1px solid var(--line); }
.vc-totals dt { color: var(--muted); font-size: var(--text-xs); }
.vc-totals dd { margin: 4px 0 0; font-weight: 600; font-size: var(--text-lg); font-variant-numeric: tabular-nums; }
.vc-wrap { --vc-label-width: 240px; margin-top: 16px; }
.vc-wrap:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.vc-matrix { min-width: calc(var(--vc-label-width) + var(--vc-numeric-width)); }
.vc-matrix .vc-label-col { width: var(--vc-label-width); }
.vc-matrix .vc-quality-col { width: 112px; }
.vc-matrix .vc-funds-col { width: 88px; }
.vc-matrix > thead > tr > th { white-space: normal; overflow-wrap: anywhere; }
.vc-matrix > tbody > tr > th {
    box-sizing: border-box;
    padding: calc((var(--dt-row-height) - 21px) / 2) 12px;
    border: 0;
    border-bottom: 1px solid var(--row-sep);
    line-height: 20px;
    text-align: left;
    font-weight: 400;
    text-transform: none;
    overflow-wrap: anywhere;
    background: var(--dt-row-bg, var(--table-body-bg));
}
.vc-matrix .vc-row-label { position: sticky; left: 0; z-index: 1; }
.vc-matrix > thead > tr > .vc-row-label { z-index: 4; }
.vc-matrix > tbody > tr[data-row-kind="section"] > th { background: var(--table-header-bg); font-weight: 600; }
.vc-matrix > tbody > tr[data-row-kind="section"] > th > span { display: block; position: sticky; left: 12px; max-width: calc(var(--vc-label-width) - 24px); }
.vc-wrap[data-scroll-left="true"] .vc-row-label { box-shadow: 3px 0 0 var(--line); }
/* Match the shared sticky-cell separator paint without making row headers td. */
.vc-matrix > tbody > tr > .vc-row-label { border-bottom-color: transparent; }
.vc-matrix > tbody > tr > .vc-row-label::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--row-sep); pointer-events: none; }
.vc-initial { min-height: 200px; padding: 20px; background: var(--table-body-bg); }
.vc-loading-bar { display: block; height: 12px; width: 65%; margin: 20px 0; border-radius: var(--radius-pill); background: var(--line); }
@media (max-width: 780px) {
    .vc-wrap { --vc-label-width: 200px; }
}
