/* The report is a document: always light, US Letter / A4 friendly when printed. */
:root.doc {
  --bg: #ffffff; --card: #ffffff; --ink: #1b1f1d; --muted: #5d6460; --line: #dfe3dd;
  --accent: #0f766e; --warn: #b45309; --bad: #b91c1c; --good: #15803d; --grid: #eceee9; --idle: #d6dad3;
  --f1: #2563eb; --f2: #0f766e; --f3: #7c3aed; --f4: #c2410c; --f5: #be185d; --f6: #4d7c0f; --f7: #0369a1; --f8: #a16207;
}
html.doc, html.doc body { background: #f4f5f2; }
.toolbar { position: sticky; top: 0; z-index: 5; display: flex; gap: 8px; align-items: center; padding: 10px 16px;
  background: var(--card); border-bottom: 1px solid var(--line); }
.toolbar .grow { flex: 1; }
.report { max-width: 820px; margin: 16px auto 40px; padding: 28px 32px; background: var(--card);
  border: 1px solid var(--line); border-radius: 12px; }
.report h1 { font-size: 22px; margin: 0 0 4px; }
.report .meta { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--muted); }
.report .headline { font-size: 16px; font-weight: 600; margin: 14px 0 0; }
.report section { margin-top: 22px; break-inside: avoid; page-break-inside: avoid; }
.report h2 { font-size: 15px; margin: 0 0 2px; }
.report .window { font-size: 12px; color: var(--muted); margin: 0 0 8px; }
.report p { line-height: 1.5; margin: 6px 0; }
.report .callout { padding: 10px 12px; border-radius: 8px; border: 1px solid var(--line); }
.report .callout.stale { background: color-mix(in srgb, var(--warn) 10%, white); border-color: color-mix(in srgb, var(--warn) 45%, white); }
.report canvas { margin: 6px 0 4px; }
.report details { font-size: 13px; color: var(--muted); margin-top: 4px; }
.report details summary { cursor: pointer; color: var(--accent); }
.report details ul { margin: 4px 0; padding-left: 1.2em; }
.report .foot { font-size: 11px; color: var(--muted); margin-top: 26px; border-top: 1px solid var(--line); padding-top: 10px; }
.report .legend { margin-top: 2px; }
.report .err { font-weight: 600; }
@media (max-width: 700px) { .report { margin: 0; border-radius: 0; border-left: 0; border-right: 0; padding: 18px 16px; } }
@media print {
  @page { margin: 14mm; }
  html.doc, html.doc body { background: #fff; }
  .noprint { display: none !important; }
  .report { max-width: none; margin: 0; padding: 0; border: 0; }
  .report details { display: none; }
  .report section { break-inside: avoid; }
}

.toolbar .period { display: flex; gap: 6px; align-items: center; font-size: 12px; color: var(--muted); }
.toolbar .period select { font: inherit; font-size: 13px; padding: 4px 6px; border: 1px solid var(--line);
  border-radius: 6px; background: var(--card); color: var(--ink); }
.report .tbl.fsbtbl td, .report .tbl.fsbtbl th { text-align: right; }
.report .tbl.fsbtbl td:first-child, .report .tbl.fsbtbl th:first-child { text-align: left; }
.report .tbl.fsbtbl tr.none td { color: var(--muted); }
@media (max-width: 700px) { .toolbar { flex-wrap: wrap; } }

.report .replogo { display: block; height: 32px; width: auto; margin: 0 0 14px; }
@media print { .report .replogo { height: 28px; } }

/* Spectrum baseline report */
.report .repkv { width: 100%; border-collapse: collapse; font-size: 13px; }
.report .repkv th { text-align: left; font-weight: 600; color: var(--muted); width: 34%; padding: 4px 8px 4px 0; vertical-align: top; }
.report .repkv td { padding: 4px 0; border-bottom: 1px solid var(--line); }
.report .prewrap { white-space: pre-wrap; }
.report .spectbl { width: 100%; }
.report .spectbl td.v-quiet { color: var(--sev0); }
.report .spectbl td.v-light { color: var(--sev1t); }
.report .spectbl td.v-moderate { color: var(--sev2t); }
.report .spectbl td.v-heavy { color: var(--sev3); font-weight: 600; }
.report .spectbl td.v-busy { color: var(--sev4); font-weight: 600; }
.report .speclegend { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 6px 0 0; }
.report .speclegend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 4px; vertical-align: -1px; }
@media print { .report canvas { width: 100% !important; } }
.report .repkv td { text-align: left; }
.report .spectbl { table-layout: auto; }
.report .spectbl th, .report .spectbl td { white-space: normal; text-align: left; padding: 5px 6px; }
.report .spectbl td:nth-child(2), .report .spectbl td:nth-child(5) { white-space: nowrap; }

/* 0.1.49: saved scans */
.report .scanname { font-size: 17px; margin: 16px 0 6px; overflow-wrap: anywhere; }
.report .scantbl { width: 100%; margin-bottom: 8px; }
.report .scantbl th, .report .scantbl td { text-align: left; white-space: normal; padding: 4px 6px; }
.report.extra { margin-top: 24px; }
@media print { .report.extra { break-before: page; page-break-before: always; margin-top: 0; } }

/* 0.1.87: Traffic analysis in the report */
.report .trafficana .anarow { grid-template-columns: 64px minmax(110px, 200px) 1fr; }
.report .trafficana .anatext { font-size: 12px; }
@media print { .anameter > span { -webkit-print-color-adjust: exact; print-color-adjust: exact; } .report .trafficana .anarow { break-inside: avoid; } }

/* 0.1.87: consolidated scan report */
.report .combofsb { break-inside: avoid; margin-top: 14px; }
.report .combofsb h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; }
.report .sevchip { width: 12px; height: 12px; border-radius: 3px; display: inline-block; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.report .sevchip.sev0 { background: var(--sev0); } .report .sevchip.sev1 { background: var(--sev1); }
.report .sevchip.sev2 { background: var(--sev2); } .report .sevchip.sev3 { background: var(--sev3); } .report .sevchip.sev4 { background: var(--sev4); }
.report .cmptbl td.v-quiet { color: var(--sev0); } .report .cmptbl td.v-light { color: var(--sev1t); }
.report .cmptbl td.v-moderate { color: var(--sev2t); } .report .cmptbl td.v-heavy { color: var(--sev3); font-weight: 600; }
.report .cmptbl td.v-busy { color: var(--sev4); font-weight: 600; }
.report .method p { font-size: 13px; line-height: 1.45; }
