/* dangermouse report card (P23). Status colours follow REQUIREMENTS 4.2:
   red, yellow, green, gray. A visit class (non-human, verified non-human)
   is shown in its own neutral style, never as a status colour. */
:root {
  --bg: #fbfbfa; --fg: #1d1f21; --muted: #5f6368; --line: #e1e3e6; --panel: #ffffff;
  --red: #c5221f; --red-bg: #fce8e6;
  --yellow: #b06000; --yellow-bg: #fef7e0; --yellow-dot: #f9ab00;
  --green: #137333; --green-bg: #e6f4ea;
  --gray: #5f6368; --gray-bg: #f1f3f4; --gray-dot: #9aa0a6;
  --class: #3c4a8c; --class-bg: #e8eaf6;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #18191b; --fg: #e8eaed; --muted: #9aa0a6; --line: #34373b; --panel: #202124;
    --red: #f28b82; --red-bg: #3c1f1e; --yellow: #fdd663; --yellow-bg: #3a3017; --yellow-dot: #fdd663;
    --green: #81c995; --green-bg: #1e3326; --gray: #bdc1c6; --gray-bg: #2a2c2f; --gray-dot: #80868b;
    --class: #aab4f5; --class-bg: #262b45;
  }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg); font-size: 15px; line-height: 1.45; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.9em; word-break: break-all; }
a { color: var(--class); }
.top, main, footer { max-width: 1040px; margin: 0 auto; padding: 0 16px; }
.top { padding-top: 16px; }
.brand { margin: 0 0 12px; font-weight: 700; letter-spacing: 0.02em; }
/* Logo from assets/dangermouse-app-icon.png, 48px. Inline so it adds no
   request to the visit's measured asset list. */
.brand::before { content: ""; display: inline-block; width: 24px; height: 24px; margin-right: 8px; vertical-align: middle; background: url("data:image/png;base64,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") center / contain no-repeat; }
.brand span { font-weight: 400; color: var(--muted); margin-left: 6px; }
#overall { display: flex; gap: 16px; align-items: center; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; }
.grade { flex: none; min-width: 110px; text-align: center; padding: 14px 16px; border-radius: 8px; font-size: 1.4em; font-weight: 700; text-transform: uppercase; }
.grade.c-class { text-transform: none; font-size: 1.05em; max-width: 260px; }
.grade.c-red { background: var(--red-bg); color: var(--red); }
.grade.c-yellow { background: var(--yellow-bg); color: var(--yellow); }
.grade.c-green { background: var(--green-bg); color: var(--green); }
.grade.c-gray { background: var(--gray-bg); color: var(--gray); }
.grade.c-class { background: var(--class-bg); color: var(--class); }
.summary p { margin: 2px 0; }
.sum { font-size: 1.1em; font-weight: 600; }
.muted { color: var(--muted); font-size: 0.9em; }
.legend { color: var(--muted); font-size: 0.82em; margin: 8px 0 0; }
.legend .dot { margin-left: 8px; }
.badge { display: inline-block; background: var(--class-bg); color: var(--class); border-radius: 999px; padding: 0 8px; font-size: 0.82em; margin-left: 6px; white-space: nowrap; }
.sec, .block { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; margin: 16px 0; padding: 4px 0 8px; }
.sec h2, .block h2 { font-size: 1.05em; margin: 8px 16px; display: flex; align-items: center; gap: 8px; }
.block > p, .block > table { margin: 6px 16px; }
.counts { display: inline-flex; gap: 4px; font-size: 0.8em; font-weight: 600; }
.n { border-radius: 999px; padding: 0 7px; }
.n.c-red { background: var(--red-bg); color: var(--red); }
.n.c-yellow { background: var(--yellow-bg); color: var(--yellow); }
.n.c-green { background: var(--green-bg); color: var(--green); }
.n.c-gray { background: var(--gray-bg); color: var(--gray); }
.waiting { margin: 4px 16px 8px; padding: 6px 10px; border-radius: 6px; background: var(--gray-bg); color: var(--muted); font-size: 0.88em; }
.facet { border-top: 1px solid var(--line); }
.facet summary { cursor: pointer; list-style: none; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 7px 16px; }
.facet summary::-webkit-details-marker { display: none; }
.facet summary::before { content: "\25B8"; color: var(--muted); font-size: 0.8em; width: 0.8em; }
.facet[open] summary::before { content: "\25BE"; }
.dot { display: inline-block; width: 11px; height: 11px; border-radius: 50%; flex: none; position: relative; top: 1px; }
.dot.c-red { background: var(--red); }
.dot.c-yellow { background: var(--yellow-dot); }
.dot.c-green { background: var(--green); }
.dot.c-gray { background: var(--gray-dot); }
.fname { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 600; font-size: 0.92em; min-width: 12em; }
.verdict { flex: 1 1 16em; }
.facet.c-red .verdict { color: var(--red); }
.facet.c-yellow .verdict { color: var(--yellow); }
.facet.c-gray .verdict, .reason { color: var(--muted); }
.reason { flex-basis: 100%; padding-left: calc(0.8em + 21px); font-size: 0.86em; }
.note { flex-basis: 100%; padding-left: calc(0.8em + 21px); font-size: 0.84em; color: var(--muted); font-style: italic; }
.facet[data-pending] .verdict { font-style: italic; }
.checks { padding: 2px 16px 10px calc(16px + 0.8em + 10px); }
.check { border-left: 3px solid var(--line); padding: 2px 0 2px 10px; margin: 8px 0; }
.check.r-fail { border-left-color: var(--red); }
.check.r-pass { border-left-color: var(--green); }
.chead { margin: 0; }
.result { font-weight: 600; }
.weight { color: var(--muted); font-size: 0.85em; }
.cverdict, .creason, .counter, .kbv { margin: 2px 0; font-size: 0.9em; }
.creason, .counter, .kbv { color: var(--muted); }
table { border-collapse: collapse; width: auto; max-width: 100%; }
.ev { margin: 4px 0; font-size: 0.86em; display: block; overflow-x: auto; }
.ev th, .ev td, .kv th, .kv td { text-align: left; vertical-align: top; padding: 3px 10px 3px 0; border-bottom: 1px solid var(--line); }
.ev th, .kv th { color: var(--muted); font-weight: 600; }
.ev td { word-break: break-word; }
.evnote td { color: var(--muted); font-style: italic; }
.kv th { white-space: nowrap; }
footer { padding-bottom: 32px; color: var(--muted); font-size: 0.9em; }
.prose { max-width: 760px; }
.prose h2 { font-size: 1.1em; margin-top: 1.6em; }
@media (max-width: 600px) {
  #overall { flex-direction: column; align-items: stretch; }
  .fname { min-width: 0; }
}
