/* Where we cover (#/coverage) and the internal coverage dashboard (#/coverage/internal): features/coverage.js.
   Reuses the Sources page's parts (page-head, facts3, sr-find, sr-g groups, sb badges, rtable); only what they lack
   is here. Design language: web/DESIGN.md. */
.cv-cta { margin: 32px 0 8px; }
.cv-list { margin-bottom: 4px; }
.cv-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 60px; padding: 10px 0; }
.cv-row + .cv-row { border-top: 1px solid var(--sep-2); }
.sb.soon { background: var(--soon-tint); color: var(--soon); }
.cv-next { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.cv-next-g { padding: 18px 22px; border-radius: var(--r-card); background: var(--cool); }
.cv-next-g h4 { font-size: 15px; font-weight: 650; margin-bottom: 4px; }
.cv-next-g p { color: var(--label-2); font-size: 15px; line-height: 1.5; }
.cv-how p { color: var(--label-2); max-width: 64ch; line-height: 1.55; }
.cv-how .cv-nla { margin-top: 12px; font-size: var(--fs-s); }

/* dashboard */
.cv-kpis { margin-top: 8px; }
.cv-kpis span { max-width: 22em; }
.cv-topics th[scope="row"] { font-weight: 600; white-space: nowrap; }
.cv-topics td { min-width: 240px; vertical-align: top; }
.cv-meter { display: flex; align-items: center; gap: 12px; }
.cv-bar { flex: 1; height: 8px; border-radius: 4px; background: var(--chart-grid); overflow: hidden; }
.cv-bar i { display: block; height: 100%; border-radius: 4px; background: var(--accent); min-width: 4px; }
.cv-meter b { font: 700 26px/1 var(--display); font-variant-numeric: tabular-nums; min-width: 3.4em; text-align: right; }
.cv-sub { display: block; margin: 4px 0 6px; font-size: 13px; color: var(--label-2); font-variant-numeric: tabular-nums; }
.cv-na { color: var(--label-3); font-size: 14px; }
.cv-ok { display: flex; align-items: center; gap: 8px; color: var(--applies); font-weight: 550; }
.cv-ok .ico { width: 18px; height: 18px; }
.cv-err li p { color: var(--danger); }
.cv-warn > summary { cursor: pointer; color: var(--label-2); font-size: 14px; min-height: 44px; display: flex; align-items: center; }
.cv-h3 { margin: 20px 0 8px; font-size: 15px; font-weight: 650; text-transform: capitalize; }
.cv-h3 span { color: var(--label-3); font-weight: 500; }
.cv-reg td, .cv-reg th { font-size: 13.5px; }
.cv-reg td.num, .cv-reg th.num { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
  .cv-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .cv-row .sb { justify-self: start; }
  .cv-topics td { min-width: 200px; }
}
.cv-gaps > summary { cursor: pointer; display: flex; align-items: center; min-height: 44px; }
.cv-gaps > summary .cv-h3 { margin: 0; }
.cv-reg-wrap { max-height: 70vh; overflow: auto; border-radius: var(--r-in); box-shadow: inset 0 0 0 1px var(--sep-2); }
.cv-reg thead th { position: sticky; top: 0; background: var(--bg); z-index: 1; }
