:root {
  --fg: #1d2330;
  --muted: #5d6677;
  --line: #d9dee7;
  --bg: #fbfbfc;
  --accent: #1f5fbf;
  --warn: #8a4b00;
  --warn-bg: #fff4e2;
  --ok: #1d6b3a;
  font: 15px/1.55 system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--fg);
  background: var(--bg);
}
body { margin: 0; }
.top, main { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.top { padding-top: 24px; border-bottom: 1px solid var(--line); padding-bottom: 12px; }
h1 { font-size: 1.5rem; margin: 0 0 4px; }
h2 { font-size: 1.3rem; margin: 36px 0 6px; padding-top: 12px; border-top: 2px solid var(--fg); }
h3 { font-size: 1.05rem; margin: 24px 0 8px; }
h4 { font-size: .95rem; margin: 16px 0 6px; }
h5 { font-size: .85rem; margin: 6px 0 2px; color: var(--muted); }
a { color: var(--accent); word-break: break-all; }
.muted { color: var(--muted); font-weight: normal; font-size: .9em; }
.unknown { color: var(--muted); font-style: italic; }
.fail { color: var(--warn); background: var(--warn-bg); padding: 0 4px; border-radius: 3px; }
.rules summary { cursor: pointer; color: var(--accent); }
.cats { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 16px 0 4px; }
.cats a { font-weight: 600; }
.snapline, .session { font-size: .88rem; color: var(--muted); }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
table { border-collapse: collapse; width: 100%; font-size: .88rem; }
caption { text-align: left; padding: 8px 10px; font-weight: 600; }
th, td { text-align: left; vertical-align: top; padding: 8px 10px; border-top: 1px solid var(--line); }
thead th { background: #f1f3f7; font-weight: 600; white-space: nowrap; }
table.compare td, table.compare th[scope="row"] { min-width: 120px; }
td.snap, .snap { font-size: .82rem; color: var(--muted); }
.status { font-size: .78rem; padding: 1px 6px; border-radius: 10px; border: 1px solid var(--line); white-space: nowrap; }
.status-verified { color: var(--ok); border-color: var(--ok); }
.status-partial { color: var(--warn); border-color: #d9a45a; }
.status-TO_BE_COLLECTED { color: var(--muted); border-style: dashed; }
.badge { font-size: .75rem; padding: 1px 6px; border-radius: 3px; margin-right: 4px; white-space: nowrap; }
.badge-observed { background: #e4f1e8; color: var(--ok); }
.badge-site_self_claim { background: var(--warn-bg); color: var(--warn); }
.badge-third_party_estimate { background: #ece6f7; color: #4f2f8f; }
.badge-judgment { background: #e3ecf9; color: var(--accent); }
.judgment { border-left: 3px solid var(--accent); padding: 4px 12px; margin: 10px 0; background: #fff; }
.judgment p { margin: 4px 0; }
.cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cols ul { margin: 0; padding-left: 18px; font-size: .88rem; }
.dossier { border: 1px solid var(--line); border-radius: 6px; margin: 10px 0; background: #fff; }
.dossier > summary { cursor: pointer; padding: 10px 14px; }
.dossier > summary .name { font-weight: 600; }
.dossier > summary p { margin: 4px 0 0; color: var(--muted); font-size: .9rem; }
.dossier[open] > summary { border-bottom: 1px solid var(--line); }
.dossier > section { padding: 0 14px 6px; }
.facts { list-style: none; padding: 0; margin: 0; }
.fact { border-top: 1px dashed var(--line); padding: 8px 0; }
.fact .claim { margin: 0 0 4px; font-weight: 600; }
blockquote { margin: 4px 0; padding: 4px 10px; border-left: 3px solid var(--line); color: #333b4a; font-size: .88rem; }
dl.meta { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; font-size: .84rem; margin: 6px 0; }
dl.meta dt { color: var(--muted); }
dl.meta dd { margin: 0; }
.unknowns, .tracked { font-size: .88rem; padding-left: 18px; }
@media (max-width: 700px) {
  .cols { grid-template-columns: 1fr; }
  dl.meta { grid-template-columns: 1fr; }
  dl.meta dt { margin-top: 4px; }
}
