/* Library report view (app/report_view.py, doc 501 sec 6). Every rule is scoped under .vf-report,
   so this file changes nothing else in the Terminal. Tokens follow the Library catalogue's dark
   palette (docs/495). Tables are plain HTML tables, so the global DataTable dark-text rule in
   custom.css never applies here. ASCII only. */
.vf-report {
  --vfr-bg: #171717; --vfr-panel: #1D1B18; --vfr-panel-2: #201E1B; --vfr-ink: #ECEAE5;
  --vfr-ink-2: #C8C3BA; --vfr-ink-3: #8F8A80; --vfr-rule: #2E2B27; --vfr-gold: #D4A053;
  --vfr-gold-soft: #3A2E1B; --vfr-flag: #F2A57C; --vfr-flag-bg: #3A2416; --vfr-ok: #5CC59A;
  --vfr-blue: #4B95E9;
  background: var(--vfr-bg); color: var(--vfr-ink); border: 1px solid var(--vfr-rule);
  border-radius: 10px; padding: 14px 18px 10px; margin: 6px 0 14px; font-size: 12.5px;
  line-height: 1.55; font-variant-numeric: tabular-nums; max-width: 1100px;
}
.vf-report * { box-sizing: border-box; }
.vf-report .vfr-head { display: flex; flex-wrap: wrap; justify-content: space-between;
  align-items: baseline; gap: 8px 16px; margin-bottom: 10px; }
.vf-report .vfr-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.vf-report .vfr-rid { font-family: 'JetBrains Mono', monospace; font-size: 11.5px; font-weight: 600;
  color: var(--vfr-bg); background: var(--vfr-gold); border-radius: 4px; padding: 1px 7px; }
.vf-report .vfr-name { font-size: 16px; font-weight: 600; color: var(--vfr-ink); }
.vf-report .vfr-asof { font-size: 11.5px; color: var(--vfr-ink-3); }
.vf-report .vfr-actions { display: flex; gap: 6px; }
.vf-report .vfr-lab { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px;
  letter-spacing: 1.4px; text-transform: uppercase; color: var(--vfr-gold); margin-bottom: 1px; }
.vf-report .vfr-lab-inline { display: inline-block; margin: 0 8px 0 0; color: var(--vfr-ink-3); }
.vf-report .vfr-answer { border-left: 4px solid var(--vfr-gold); background: var(--vfr-gold-soft);
  border-radius: 0 6px 6px 0; padding: 10px 14px 8px; margin: 0 0 10px; }
.vf-report .vfr-ans { font-size: 15px; line-height: 1.45; font-weight: 600; color: var(--vfr-ink);
  margin: 0 0 8px; }
.vf-report .vfr-so { font-size: 12.5px; color: var(--vfr-ink-2); margin: 0 0 4px; }
.vf-report .vfr-gap { font-size: 12px; color: var(--vfr-flag); margin: 6px 0 2px; }
.vf-report .vfr-gap .vfr-lab { color: var(--vfr-flag); }
.vf-report .vfr-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px;
  margin: 0 0 10px; }
.vf-report .vfr-kpi { background: var(--vfr-panel); border: 1px solid var(--vfr-rule);
  border-radius: 8px; padding: 8px 12px 9px; }
.vf-report .vfr-kpi b { display: block; font-size: 19px; font-weight: 650; line-height: 1.25;
  color: var(--vfr-ink); }
.vf-report .vfr-kpi span { display: block; font-size: 11px; line-height: 1.35;
  color: var(--vfr-ink-3); margin-top: 3px; }
@media (max-width: 640px) { .vf-report .vfr-kpis { grid-template-columns: 1fr; } }
.vf-report .vfr-settings { display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
  margin: 0 0 6px; }
.vf-report .vfr-chip { display: inline-flex; align-items: baseline; gap: 4px;
  font-family: 'JetBrains Mono', monospace; font-size: 10.5px; line-height: 1.5; padding: 1px 8px;
  border-radius: 10px; border: 1px solid var(--vfr-rule); background: var(--vfr-panel);
  color: var(--vfr-ink-2); }
.vf-report .vfr-chip i { font-style: normal; color: var(--vfr-ink-3); }
.vf-report button.vfr-chip { cursor: pointer; }
.vf-report .vfr-chip-user { background: var(--vfr-gold-soft); color: var(--vfr-ink);
  border-color: #5A4626; }
.vf-report .vfr-chip-user:hover, .vf-report .vfr-action:hover { border-color: var(--vfr-gold); }
.vf-report .vfr-chip-firm { border-style: dashed; }
.vf-report .vfr-action { color: var(--vfr-ink); padding: 2px 10px; }
.vf-report .vfr-primary { background: var(--vfr-gold); color: #1a1a1a; border-color: var(--vfr-gold); }
.vf-report .vfr-edit { flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; padding: 8px 10px;
  margin: 0 0 8px; border: 1px dashed var(--vfr-rule); border-radius: 8px;
  background: var(--vfr-panel-2); }
.vf-report .vfr-edit-field { display: flex; flex-direction: column; gap: 2px; }
.vf-report .vfr-edit-label { font-size: 10.5px; color: var(--vfr-ink-3); margin: 0; }
.vf-report .vfr-edit-input { background: #111; color: var(--vfr-ink); border: 1px solid var(--vfr-rule);
  border-radius: 4px; padding: 2px 6px; font-size: 12px; width: 150px; }
.vf-report .vfr-edit-actions { display: flex; gap: 6px; }
.vf-report .vfr-chart { margin: 12px 0 6px; }
.vf-report .vfr-finding { font-weight: 600; font-size: 13px; color: var(--vfr-ink); margin: 0 0 2px; }
.vf-report .vfr-caption { font-size: 11px; color: var(--vfr-ink-3); margin-top: 2px; }
.vf-report .vfr-graph { width: 100%; }
.vf-report .vfr-text { color: var(--vfr-ink-2); margin: 8px 0; font-size: 12.5px; }
.vf-report .vfr-tblock { margin: 10px 0 12px; }
.vf-report .vfr-table-title { font-weight: 600; font-size: 12px; color: var(--vfr-ink); margin: 0 0 4px; }
.vf-report .vfr-tw { overflow-x: auto; border: 1px solid var(--vfr-rule); border-radius: 6px; }
.vf-report table.vfr-table { border-collapse: collapse; width: 100%; font-size: 11.5px;
  margin: 0; background: transparent; color: var(--vfr-ink-2); }
.vf-report table.vfr-table th { text-align: left; font-weight: 600; color: var(--vfr-ink);
  background: var(--vfr-panel); padding: 6px 9px; border-bottom: 1px solid var(--vfr-rule);
  white-space: nowrap; }
.vf-report table.vfr-table td { padding: 5px 9px; border-top: 1px solid var(--vfr-rule);
  color: var(--vfr-ink-2) !important; vertical-align: top; background: transparent; }
.vf-report table.vfr-table tbody tr:nth-child(even) td { background: rgba(255, 255, 255, 0.025); }
.vf-report table.vfr-table tbody tr:hover td { background: rgba(212, 160, 83, 0.07); }
.vf-report table.vfr-table tr.vfr-hl td { background: var(--vfr-gold-soft) !important;
  color: var(--vfr-ink) !important; font-weight: 600; }
.vf-report table.vfr-table .vfr-r { text-align: right; }
.vf-report table.vfr-table .vfr-c { text-align: center; }
.vf-report .vfr-note { font-size: 11px; color: var(--vfr-ink-3); margin-top: 3px; }
.vf-report .vfr-bt { border: 1px solid var(--vfr-rule); border-radius: 8px; background: var(--vfr-panel);
  padding: 10px 12px; margin: 14px 0 10px; }
.vf-report .vfr-bt-internal, .vf-report .vfr-bt-pending { border-style: dashed; }
.vf-report .vfr-bt-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px;
  margin-bottom: 4px; }
.vf-report .vfr-badge { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 1px;
  text-transform: uppercase; padding: 1px 8px; border-radius: 4px; background: var(--vfr-gold-soft);
  color: var(--vfr-gold); }
.vf-report .vfr-badge-internal, .vf-report .vfr-badge-pending { background: var(--vfr-flag-bg);
  color: var(--vfr-flag); }
.vf-report .vfr-bt-blurb { font-size: 11.5px; color: var(--vfr-ink-3); }
.vf-report .vfr-bt-rule { color: var(--vfr-ink-2); margin: 4px 0 6px; }
.vf-report .vfr-bt-tiles { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.vf-report .vfr-bt-tile { background: var(--vfr-bg); border: 1px solid var(--vfr-rule);
  border-radius: 6px; padding: 4px 10px; }
.vf-report .vfr-bt-tile b { display: block; font-size: 14px; color: var(--vfr-ink); }
.vf-report .vfr-bt-tile span { font-size: 10.5px; color: var(--vfr-ink-3); }
.vf-report .vfr-bt-note { font-size: 11.5px; color: var(--vfr-ink-3); margin-top: 6px; }
.vf-report .vfr-prereg { font-family: 'JetBrains Mono', monospace; font-size: 11px; margin-top: 4px; }
.vf-report .vfr-prereg-pass { color: var(--vfr-ok); }
.vf-report .vfr-prereg-fail, .vf-report .vfr-prereg-deviation { color: var(--vfr-flag); }
.vf-report .vfr-prov { margin-top: 14px; padding-top: 8px; border-top: 1px solid var(--vfr-rule);
  font-size: 10.5px; color: var(--vfr-ink-3); }
.vf-report .vfr-status:not(:empty) { margin-top: 8px; font-size: 11.5px; color: var(--vfr-gold);
  font-family: 'JetBrains Mono', monospace; }
.vf-report .vfr-block-error { border: 1px solid var(--vfr-flag); color: var(--vfr-flag);
  background: var(--vfr-flag-bg); border-radius: 6px; padding: 8px 10px; }
.vf-report.vfr-error { border-color: var(--vfr-flag); }
.vf-report .vfr-error-title { font-weight: 600; color: var(--vfr-flag); font-size: 13px; }
.vf-report .vfr-error-sub { color: var(--vfr-ink-2); margin: 2px 0 4px; }
.vf-report.vfr-error li { color: var(--vfr-ink-2); font-family: 'JetBrains Mono', monospace;
  font-size: 11px; }
