.verdict { display: grid; grid-template-columns: auto 1fr; gap: 6px 18px; align-items: center; }
.verdict .num { font-size: 2.6rem; line-height: 1; font-weight: 700; }
.verdict .label { font-size: 1.1rem; text-transform: uppercase; letter-spacing: .06em; }
.meter { grid-column: 1 / -1; height: 6px; background: var(--border); position: relative; }
.meter > span { position: absolute; inset: 0 auto 0 0; background: currentColor; }
.v-malicious, .v-patch-now, .v-dangerous-if-exposed { color: var(--sev-critical); }
.v-suspicious, .v-high-priority, .v-risky-if-exposed { color: var(--sev-medium); }
.v-low-risk, .v-moderate, .v-minor { color: var(--sev-low); }
.v-nothing-found, .v-low-priority, .v-common { color: var(--sev-ok); }

.sig { display: grid; grid-template-columns: 6.5rem 1fr; gap: 10px; padding: 5px 0; border-bottom: 1px dashed var(--border); }
.sig:last-child { border-bottom: 0; }
.sig .src { color: var(--fg-dim); font-size: .82em; }
.sig .tid { color: var(--faint); font-size: .82em; }

.prov-status { font-size: .75em; }
.st-ok { color: var(--sev-ok); } .st-no_data { color: var(--faint); } .st-error { color: var(--sev-critical); } .st-skipped { color: var(--fg-dim); }
details .ms { margin-left: auto; color: var(--faint); font-size: .8em; }
.val-list { margin: 0; padding-left: 1.1rem; }
.pivot { cursor: pointer; }
.history-row { display: flex; gap: 10px; padding: 4px 0; border-bottom: 1px dashed var(--border); }
.history-row button { border: 0; padding: 0; color: var(--soft); text-align: left; }
.history-row button:hover { color: var(--hl); }

@media print {
  .verdict .num, h1, h2 { color: #000 !important; }
  details { border-color: #999; }
  details:not([open]) { display: none; }
}
