/* AI Radar. System fonts, no remote assets, no inline styles.
   Palette: ink on off-white, hairline rules, one accent (links and trending only). */
:root {
  --paper: #f5f5f2;
  --panel: #ebece8;
  --ink: #16181b;
  --muted: #59616a;
  --rule: #d6d9d3;
  --rule-strong: #a3a9a2;
  --bar: #8b9299;
  --accent: #0a6b5f;
  --good: #1d6f36;
  --bad: #b0222b;
  --serif: "Iowan Old Style", "Charter", "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --gap: 16px;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #131619;
    --panel: #1b1f23;
    --ink: #e4e6e2;
    --muted: #9aa2a9;
    --rule: #2a3036;
    --rule-strong: #4b545c;
    --bar: #6a737b;
    --accent: #5cc5b1;
    --good: #6acb87;
    --bad: #f2838b;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.55 var(--sans); overflow-wrap: break-word; }
a { color: inherit; text-decoration-color: var(--rule-strong); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--accent); text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
code { font: 0.86em var(--mono); }
h1, h2, h3, h4 { margin: 0; font-weight: 600; }
p { margin: 0 0 8px; }
ul, ol { margin: 0; padding: 0; }
mark { background: none; color: inherit; font-weight: 700; text-decoration: underline 2px var(--accent); text-underline-offset: 2px; }

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 var(--gap); }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: var(--gap); top: 8px; background: var(--paper); padding: 4px 8px; z-index: 3; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* masthead: one compact row on desktop, two on phones */
.mast { border-bottom: 2px solid var(--ink); }
.mast-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 24px; padding-top: 10px; padding-bottom: 8px; }
.brand { font: 700 21px/1 var(--serif); text-decoration: none; letter-spacing: -0.01em; white-space: nowrap; }
.nav { order: 1; flex: 1 1 auto; min-width: 0; display: flex; gap: 2px 16px; font-size: 14px; overflow-x: auto; scrollbar-width: none; }
.nav::-webkit-scrollbar { display: none; }
.nav a { text-decoration: none; color: var(--muted); padding: 3px 0; border-bottom: 2px solid transparent; white-space: nowrap; }
.nav a:hover { color: var(--ink); }
.nav a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--ink); }
.qform { order: 2; flex: 0 0 auto; position: relative; display: flex; align-items: center; }
.qform input { font: 14px var(--sans); color: var(--ink); background: var(--paper); border: 1px solid var(--rule-strong); border-radius: 3px; padding: 4px 28px 4px 8px; width: clamp(150px, 18vw, 220px); }
.qform input:focus { border-color: var(--ink); outline: none; box-shadow: 0 0 0 1px var(--ink); }
.qform input::placeholder { color: var(--muted); }
.kbd { position: absolute; right: 7px; font: 11px var(--mono); color: var(--muted); border: 1px solid var(--rule-strong); border-radius: 2px; padding: 0 4px; pointer-events: none; }
.qform input:focus + .kbd { display: none; }
.qres { position: absolute; top: calc(100% + 6px); right: 0; z-index: 2; width: min(440px, calc(100vw - 32px)); max-height: 70vh; overflow-y: auto; background: var(--paper); border: 1px solid var(--ink); padding: 4px 0; }
.qres[hidden] { display: none; }
@media (max-width: 760px) {
  .mast-row { gap: 6px 12px; }
  .qform { order: 0; flex: 1; justify-content: flex-end; }
  .qform input { width: 100%; max-width: 260px; }
  .nav { order: 3; flex-basis: 100%; overflow-x: auto; scrollbar-width: none; gap: 2px 14px; margin: 0 calc(-1 * var(--gap)); padding: 0 var(--gap); }
  .nav::-webkit-scrollbar { display: none; }
  .qres { position: fixed; top: 52px; left: 16px; right: 16px; width: auto; }
}

/* search results (dropdown + page) */
.sr-group { padding: 4px 0; }
.sr-group + .sr-group { border-top: 1px solid var(--rule); }
.sr-h { font-size: 12px; color: var(--muted); padding: 4px 12px 2px; margin: 0; font-weight: 600; }
.sr-item { display: block; padding: 6px 12px; text-decoration: none; }
.sr-item:hover, .sr-item[aria-selected="true"] { background: var(--panel); color: var(--ink); }
.sr-item[aria-selected="true"] { box-shadow: inset 2px 0 0 var(--accent); }
.sr-title { display: block; font-weight: 600; font-size: 14px; line-height: 1.35; }
.sr-meta { display: flex; flex-wrap: wrap; gap: 0 10px; font-size: 12px; color: var(--muted); }
.sr-sub { display: block; font-size: 13px; color: var(--muted); margin-top: 2px; }
.sr-none { padding: 8px 12px; color: var(--muted); margin: 0; font-size: 14px; }
.sr-all { display: block; padding: 6px 12px; font-size: 13px; border-top: 1px solid var(--rule); color: var(--accent); }
.sr-all[aria-selected="true"] { background: var(--panel); }
.qform-page { margin-top: 10px; }
.qform-page input { width: 100%; max-width: 560px; font-size: 17px; padding: 8px 10px; }
.sresults { max-width: 760px; }
.sresults .sr-h { font: 600 13px var(--sans); padding: 14px 0 4px; border-bottom: 1px solid var(--ink); color: var(--muted); }
.sresults .sr-item { padding: 8px 0; border-bottom: 1px solid var(--rule); }
.sresults .sr-item:hover, .sresults .sr-item[aria-selected="true"] { background: none; }
.sresults .sr-item[aria-selected="true"] { box-shadow: inset 3px 0 0 var(--accent); padding-left: 10px; }
.sresults .sr-title { font: 600 17px/1.35 var(--serif); }
.sresults .sr-none { padding: 12px 0; }
.sresults .sr-group + .sr-group { border-top: 0; }

/* page heads */
.dayhead, .pagehead { padding: 16px 0 10px; border-bottom: 1px solid var(--rule); margin-bottom: 14px; }
.dayhead h1, .pagehead h1 { font: 600 clamp(24px, 3.6vw, 34px)/1.15 var(--serif); letter-spacing: -0.015em; }
.lede { max-width: 72ch; color: var(--muted); margin-top: 6px; }
.dateline { display: flex; flex-wrap: wrap; gap: 2px 16px; margin: 6px 0 0; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }

.banner { border-left: 3px solid var(--ink); padding: 6px 12px; margin: 0 0 14px; max-width: 80ch; color: var(--muted); }
.banner b { color: var(--ink); }
.empty { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 14px 0; color: var(--muted); max-width: 72ch; }
.note { font-size: 13px; color: var(--muted); margin-top: 6px; }

/* layout */
.grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 40px; }
@media (min-width: 980px) {
  .grid { grid-template-columns: minmax(0, 1fr) 330px; }
  .col-side { border-left: 1px solid var(--rule); padding-left: 24px; }
}
.col-main, .col-side { min-width: 0; }
.block { margin-bottom: 26px; }
.block > h2, .month h2 { font: 700 13px/1.3 var(--sans); padding-bottom: 5px; border-bottom: 1px solid var(--ink); margin-bottom: 8px; }

/* digest */
.digest { list-style: none; }
.digest li { padding: 7px 0; border-bottom: 1px solid var(--rule); max-width: 80ch; }
.d-text { font: 17px/1.45 var(--serif); }
.d-src { font-size: 13px; color: var(--accent); white-space: nowrap; text-decoration: none; }
.d-src:hover { text-decoration: underline; }
.off { font-size: 12px; color: var(--muted); margin-left: 6px; white-space: nowrap; }
.off::before { content: "("; }
.off::after { content: ")"; }

/* category chips: plain text links separated by space, no pills */
.catchips { display: flex; flex-wrap: wrap; gap: 2px 14px; font-size: 13px; margin: 0 0 12px; }
.catchips a { text-decoration: none; color: var(--muted); padding: 2px 0; border-bottom: 1px solid transparent; }
.catchips a span { font-family: var(--mono); font-size: 11px; }
.catchips a:hover { color: var(--accent); }
.catchips a[aria-pressed="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.anchor { position: absolute; }
.f-cat { display: none; }

/* categories + topics */
.cat { margin-bottom: 18px; scroll-margin-top: 8px; }
.cat > h3 { font: 600 19px/1.25 var(--serif); display: flex; align-items: baseline; gap: 8px; margin-bottom: 2px; }
.count { font: 12px var(--mono); color: var(--muted); font-variant-numeric: tabular-nums; }
.topic { padding: 9px 0 10px; border-top: 1px solid var(--rule); }
.topic-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.topic-title { font: 600 16px/1.35 var(--sans); }
.topic-heat { display: inline-flex; align-items: center; gap: 6px; flex: none; }
.topic-sum { margin: 3px 0 2px; max-width: 75ch; }
.topic-why { color: var(--muted); max-width: 75ch; margin-bottom: 3px; }
.topic-why span { color: var(--ink); }
.topic-meta { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 12.5px; color: var(--muted); margin: 3px 0 5px; align-items: baseline; }
.ev { white-space: nowrap; }
.ev-high { color: var(--ink); font-weight: 600; }
.ev-medium { color: var(--ink); }
.ev-low { color: var(--muted); font-style: italic; }
.flag { color: var(--accent); font-weight: 600; }
.srcs { list-style: none; font-size: 14px; }
.srcs li { padding: 1px 0 1px 10px; border-left: 1px solid var(--rule-strong); margin: 5px 0; line-height: 1.4; }
.src-t { margin-right: 8px; }
.src-meta { display: inline-flex; flex-wrap: wrap; gap: 0 10px; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.dom { color: var(--ink); }
.kind { font-family: var(--mono); font-size: 11px; }
.eng { white-space: nowrap; }
.eng b { font-weight: 600; color: var(--ink); }
.more { margin-top: 2px; }
.more summary { cursor: pointer; font-size: 13px; color: var(--muted); padding: 6px 0; }
.more summary:hover { color: var(--accent); }

/* meters: heat and score bars (widths are fixed classes .w-0 .. .w-100) */
.meter { display: inline-block; width: 60px; height: 5px; background: var(--rule); vertical-align: middle; }
.meter i { display: block; height: 100%; background: var(--bar); }
.meter.hot i { background: var(--accent); }
.meter.score i { background: var(--ink); opacity: 0.55; }
.n { font: 12px var(--mono); font-variant-numeric: tabular-nums; min-width: 2ch; text-align: right; color: var(--muted); }

/* trending strip */
.trend { list-style: none; }
.trend li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; align-items: baseline; padding: 5px 0; border-bottom: 1px solid var(--rule); font-size: 14px; line-height: 1.35; }
.trend a { text-decoration: none; }
.trend a:hover { text-decoration: underline; }
.trend-bar { display: inline-flex; align-items: center; gap: 6px; }

/* tables */
.tw { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; position: relative; }
table { border-collapse: collapse; width: 100%; font-size: 14px; }
th, td { text-align: left; padding: 5px 12px 5px 0; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
thead th { font-size: 12px; font-weight: 600; color: var(--muted); border-bottom: 1px solid var(--ink); white-space: nowrap; vertical-align: bottom; }
.num { text-align: right; font-family: var(--mono); font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
th.num { font-family: var(--sans); font-size: 12px; }
td:last-child, th:last-child { padding-right: 0; }
.nowrap { white-space: nowrap; font-variant-numeric: tabular-nums; }
.m-name { font-weight: 600; }
.m-sub, .m-id { display: block; font-weight: 400; font-size: 12px; color: var(--muted); }
.m-id { font-family: var(--mono); font-size: 11px; }
.mini td, .mini th { padding-right: 8px; }
table.data { min-width: 640px; }
table.data td.wide { min-width: 220px; max-width: 360px; color: var(--muted); }
table.data tbody tr:hover { background: var(--panel); }
tr:target { background: var(--panel); box-shadow: inset 3px 0 0 var(--accent); }
.links a { display: inline-block; margin-right: 10px; font-size: 13px; white-space: nowrap; }
.badge { font-size: 12px; color: var(--muted); white-space: nowrap; }
.badge.off { color: var(--ink); }
.badge.off::before, .badge.off::after { content: none; }
.th-unit { display: block; font-weight: 400; font-size: 11px; color: var(--muted); }

/* sortable headers (buttons are added by JS) */
button.sort { all: unset; cursor: pointer; display: inline-block; }
button.sort:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
button.sort::after { content: "\2195"; color: var(--rule-strong); margin-left: 3px; font-size: 11px; }
th[aria-sort="ascending"] button.sort::after { content: "\2191"; color: var(--ink); }
th[aria-sort="descending"] button.sort::after { content: "\2193"; color: var(--ink); }
/* right-aligned columns: arrow on the left so multi-line headers stay tidy */
th.num button.sort::after { content: none; }
th.num button.sort::before { content: "\2195"; color: var(--rule-strong); margin-right: 3px; font-size: 11px; }
th.num[aria-sort="ascending"] button.sort::before { content: "\2191"; color: var(--ink); }
th.num[aria-sort="descending"] button.sort::before { content: "\2193"; color: var(--ink); }
.th-unit { display: block; }

/* filters (JS only) */
.filter, .cmp-tools { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 10px; align-items: center; font-size: 13px; }
.filter[hidden], .cmp-tools[hidden] { display: none; }
.chip { font: 13px var(--sans); color: var(--muted); background: none; border: 0; border-bottom: 1px solid transparent; border-radius: 0; padding: 2px 0; cursor: pointer; }
.chip:hover { color: var(--accent); }
.chip span { font-family: var(--mono); font-size: 11px; margin-left: 4px; }
.chip[aria-pressed="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.chip:disabled { opacity: 0.5; cursor: default; }
.cmp-tools .chip { border: 1px solid var(--rule-strong); border-radius: 3px; padding: 3px 9px; color: var(--ink); }
.cmp-tools .chip[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.search { font: 14px var(--sans); color: var(--ink); background: var(--paper); border: 1px solid var(--rule-strong); border-radius: 3px; padding: 4px 8px; width: 220px; max-width: 100%; }
.cmp-count { font-size: 13px; color: var(--muted); }
.f-prov, .f-q, .f-cmp { display: none; }

/* benchmarks */
.tabs { display: flex; gap: 0 18px; border-bottom: 1px solid var(--ink); margin-bottom: 14px; overflow-x: auto; scrollbar-width: none; }
.tab { font: 14px var(--sans); color: var(--muted); background: none; border: 0; border-bottom: 3px solid transparent; padding: 6px 0 5px; cursor: pointer; white-space: nowrap; }
.tab:hover { color: var(--ink); }
.tab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--ink); font-weight: 600; }
.board { margin-bottom: 30px; scroll-margin-top: 8px; }
.board[hidden] { display: none; }
.board-head h2 { font: 600 22px/1.2 var(--serif); letter-spacing: -0.01em; margin-bottom: 2px; }
.board-desc { max-width: 72ch; }
.facts { display: flex; flex-wrap: wrap; gap: 2px 22px; font-size: 13px; margin: 2px 0 8px; }
.facts div { display: flex; gap: 6px; }
.facts dt { color: var(--muted); }
.facts dd { margin: 0; }
.board-table { min-width: 500px; max-width: 760px; }
.board-table .rank { color: var(--muted); width: 3ch; }
.board-table .prov, .cmp .prov { color: var(--muted); font-size: 13px; }
.board-table .score { font-weight: 600; color: var(--ink); }
.barcol { width: 34%; min-width: 110px; padding-left: 6px; }
.barcol .meter { width: 100%; height: 7px; }
.delta.good { color: var(--good); }
.delta.bad { color: var(--bad); }
.compare { border-top: 2px solid var(--ink); padding-top: 14px; }
.compare > h2 { font: 600 22px/1.2 var(--serif); border-bottom: 0; letter-spacing: -0.01em; padding-bottom: 0; margin-bottom: 4px; }
.cmp { min-width: 760px; }
.cmp td.best { font-weight: 700; text-decoration: underline 2px var(--ink); text-underline-offset: 3px; }
.cmp thead th { white-space: normal; min-width: 72px; }
.cmp .pick { width: 26px; }
.cmp .pick input { margin: 0; accent-color: var(--ink); }
/* compact board rows: column roles come from position, not per-cell classes (keeps 9 boards under 100 KB) */
table.data.bt { min-width: 500px; max-width: 760px; }
.bt td:nth-child(1), .bt td:nth-child(4), .bt td:nth-child(6) { text-align: right; font-family: var(--mono); font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bt td:nth-child(1) { color: var(--muted); width: 3ch; }
.bt td:nth-child(2) { font-weight: 600; }
.bt td:nth-child(3) { color: var(--muted); font-size: 13px; }
.bt td:nth-child(4) { font-weight: 600; }
.bt td.bar { width: 34%; min-width: 110px; padding-left: 6px; vertical-align: middle; }
.bt td.bar i { display: block; height: 7px; background: var(--ink); opacity: 0.5; }
.inv .bt td.bar i { opacity: 0.3; }
.bt td.g { color: var(--good); }
.bt td.b { color: var(--bad); }
.cmp td:first-child { font-weight: 600; }
.cmp td:nth-child(2) { color: var(--muted); font-size: 13px; }
.cmp td:nth-child(n+3) { text-align: right; font-family: var(--mono); font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cmp td.b { font-weight: 700; text-decoration: underline 2px var(--ink); text-underline-offset: 3px; }
.cmp.picking td:nth-child(2) { font-weight: 600; color: var(--ink); font-size: 14px; }
.cmp.picking td:nth-child(3) { color: var(--muted); font-family: var(--sans); text-align: left; }
@media (max-width: 560px) {
  table.data.bt { min-width: 0; }
  .mt th:nth-child(2), .mt td:nth-child(2) { display: none; }
  .mt td:nth-child(3) { min-width: 150px; }
  .mt td:nth-child(3) code { white-space: nowrap; }
  .bt th:nth-child(3), .bt td:nth-child(3) { display: none; }
  .bt td.bar { min-width: 56px; width: 22%; }
  .bt td, .bt th { padding-right: 8px; }
}
.attr { font-size: 12px; color: var(--muted); max-width: 80ch; margin: -4px 0 8px; }
.srcs small { display: block; font-size: 12.5px; line-height: 1.4; color: var(--muted); font-variant-numeric: tabular-nums; }
.srcs li { max-width: 80ch; }
.srcs small b { font-weight: 400; color: var(--ink); }
.mt td:nth-child(1) { white-space: nowrap; font-variant-numeric: tabular-nums; }
.mt td:nth-child(2) { color: var(--muted); font-size: 13px; }
.mt td:nth-child(3) code { display: block; font-size: 11px; color: var(--muted); }
.mt td:nth-child(4), .mt td:nth-child(5), .mt td:nth-child(6) { text-align: right; font-family: var(--mono); font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.mt td:nth-child(7) { min-width: 220px; max-width: 360px; color: var(--muted); }
.mt td:nth-child(8) { font-size: 12px; color: var(--muted); white-space: nowrap; }
.mt td:nth-child(9) a { display: inline-block; margin-right: 8px; font-size: 13px; white-space: nowrap; }
/* security: same calm palette, set apart by a heavier rule and its own page */
.sec > h2 { display: flex; align-items: baseline; gap: 8px; border-bottom-width: 2px; }
.h-more { margin-left: auto; font-weight: 400; font-size: 12px; color: var(--muted); }
.sec .topic:first-of-type { border-top: 0; }
.seclist { list-style: none; }
.seclist > li { display: grid; grid-template-columns: 4.5em minmax(0, 1fr); gap: 0 14px; padding: 10px 0; border-bottom: 1px solid var(--rule); scroll-margin-top: 8px; }
@media (max-width: 560px) {
  .seclist > li { grid-template-columns: minmax(0, 1fr); }
  .sec-day { padding-top: 0; }
}
.sec-day { font: 13px var(--mono); font-variant-numeric: tabular-nums; padding-top: 3px; }
.sec-day a { text-decoration: none; color: var(--muted); }
.sec-day a:hover { color: var(--accent); }
.sec-prod { color: var(--ink); font-weight: 600; }
.secmeta { display: flex; flex-wrap: wrap; gap: 2px 12px; align-items: baseline; font-size: 13px; color: var(--muted); margin: 4px 0; }
.secmeta code { font-size: 12px; color: var(--ink); }
.sev { color: var(--ink); }
.sev-critical { font-weight: 800; text-decoration: underline 2px; text-underline-offset: 3px; }
.sev-high { font-weight: 700; }
.cvss { font-family: var(--mono); font-size: 12px; font-variant-numeric: tabular-nums; color: var(--ink); }
.pkg { color: var(--ink); }
.bt td a, .cmp td a { text-decoration: underline dotted var(--rule-strong); text-underline-offset: 3px; }
.bt td a:hover, .cmp td a:hover { text-decoration: underline; }
/* topic titles link to /t/<id>/; topic pages */
.topic-title a { text-decoration: none; }
.topic-title a:hover { text-decoration: underline; color: var(--accent); }
.d-more { font-size: 12px; color: var(--muted); white-space: nowrap; margin-left: 4px; }
.crumbs { display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 13px; color: var(--muted); padding-top: 14px; }
.crumbs a { color: var(--muted); }
.tpage .pagehead { padding-top: 6px; }
.tpage .pagehead h1 { max-width: 30ch; }
.t-sum { font: 18px/1.5 var(--serif); }
.tpage .srcs { font-size: 15px; }
.tpage .srcs li { margin: 8px 0; }
.tpage p.ev-high, .tpage p.ev-medium { font-weight: 400; }
/* topic page: reading layout */
.tbody { max-width: 68ch; min-width: 0; }
.tside { min-width: 0; }
.cards-wide { display: none; }
@media (min-width: 1100px) { .cards-wide { display: block; } .cards-narrow { display: none; } }
.tside > section:first-child > h2 { margin-top: 4px; }
@media (min-width: 1100px) {
  .tgrid { display: grid; grid-template-columns: minmax(0, 68ch) minmax(280px, 340px); gap: 0 56px; }
  .tside { padding-top: 4px; }
  .tside .mc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; }
}
.tbody h2, .tside h2 { font: 600 19px/1.3 var(--serif); margin: 26px 0 8px; padding-bottom: 4px; border-bottom: 1px solid var(--rule); }
.tbody p { margin: 0 0 10px; }
.lead { font: 19px/1.6 var(--serif); margin: 4px 0 16px; }
.todo { margin: 0 0 8px; border-left: 3px solid var(--ink); padding: 2px 0 2px 14px; }
.todo div { margin: 4px 0; }
.todo dt { font-weight: 700; font-size: 13px; }
.todo dd { margin: 0; }
.why-line { color: var(--muted); }
.why-line b { color: var(--ink); }
.facts-list { margin: 0; }
.facts-list div { display: grid; grid-template-columns: minmax(8em, 34%) minmax(0, 1fr); gap: 2px 14px; padding: 6px 0; border-bottom: 1px solid var(--rule); }
.facts-list dt { color: var(--muted); font-size: 14px; }
.facts-list dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.facts-list div > dd:only-child { grid-column: 1 / -1; font-weight: 400; }
@media (max-width: 560px) { .facts-list div { grid-template-columns: minmax(0, 1fr); gap: 0; } }

.kf { list-style: none; margin: 2px 0 4px; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.kf li { padding-left: 12px; position: relative; }
.kf b { font-weight: 600; color: var(--ink); }
.kf li::before { content: ""; position: absolute; left: 2px; top: 0.65em; width: 4px; height: 4px; background: var(--muted); }
.more-link { margin: 4px 0 0; font-size: 13px; }
.more-link a { color: var(--accent); text-decoration: none; }
.more-link a:hover { text-decoration: underline; }
.mcard { padding: 2px 0 12px; margin-bottom: 8px; }
.mcard + .mcard { border-top: 1px solid var(--rule); padding-top: 10px; }
.mcard h3 { font: 600 17px/1.3 var(--sans); display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.mc-prov { font-weight: 400; font-size: 13px; color: var(--muted); }
.mc-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 12px; margin: 8px 0 2px; }
.mc-facts dt { font-size: 12px; color: var(--muted); }
.mc-facts dd { margin: 0; text-align: left; font-size: 15px; }
.mc-scores { margin-top: 8px; font-size: 14px; }
@media (max-width: 560px) { .mc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; } }
.tl-h { font: 600 13px var(--sans); color: var(--muted); margin: 12px 0 4px; }
.timeline { list-style: none; }
.timeline li { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: 2px 14px; padding: 6px 0; border-bottom: 1px solid var(--rule); }
.tl-when { font: 12px/1.5 var(--mono); color: var(--muted); font-variant-numeric: tabular-nums; }
.tl-when span { display: block; }
.tl-what small { display: block; font-size: 12.5px; color: var(--muted); }
.tl-what small b { font-weight: 400; color: var(--ink); }
@media (max-width: 560px) {
  .timeline li { grid-template-columns: minmax(0, 1fr); }
  .tl-when span { display: inline; margin-left: 8px; }
  .lead { font-size: 18px; }
}
.related li { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.hl-title a { text-decoration: none; }
.hl-title a:hover { text-decoration: underline; }
.boardnav { border-bottom: 1px solid var(--rule); padding-bottom: 8px; }

/* home teaser */
.teaser { margin-bottom: 10px; }
.teaser h3 { font: 600 14px/1.3 var(--sans); display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.teaser h3 a { text-decoration: none; }
.teaser h3 a:hover { text-decoration: underline; }
.unit { font-weight: 400; font-size: 12px; color: var(--muted); text-align: right; }
.podium { list-style: none; counter-reset: p; font-size: 13px; }
.podium li { counter-increment: p; display: flex; gap: 8px; padding: 2px 0; border-bottom: 1px solid var(--rule); }
.podium li::before { content: counter(p); font-family: var(--mono); color: var(--muted); width: 1.5ch; }
.pm { flex: 1; min-width: 0; }

/* source status */
.status { list-style: none; font-size: 13px; }
.status li { display: grid; grid-template-columns: 1fr auto 5ch; gap: 0 10px; padding: 3px 0; border-bottom: 1px solid var(--rule); font-family: var(--mono); }
.st-state { color: var(--muted); }
.status .fail .st-state, .st.fail { color: var(--bad); font-weight: 600; }
.st.ok { color: var(--muted); }
.st-err { grid-column: 1 / -1; color: var(--muted); font-size: 12px; }

/* trending page */
.heatlist { list-style: none; }
.heatlist > li { display: grid; grid-template-columns: 3ch 64px minmax(0, 1fr); gap: 0 12px; padding: 10px 0; border-bottom: 1px solid var(--rule); align-items: start; scroll-margin-top: 8px; }
.heatlist > li.f-cat { display: none; }
.hl-n { font-size: 15px; font-weight: 600; padding-top: 2px; }
.hl-bar { padding-top: 8px; }
.hl-bar .meter { width: 64px; }
.hl-title { font: 600 17px/1.35 var(--serif); }
@media (max-width: 560px) {
  .heatlist > li { grid-template-columns: 3ch minmax(0, 1fr); }
  .hl-bar { display: none; }
}

/* archive */
.days { list-style: none; }
.days li { display: grid; grid-template-columns: 16em 9em minmax(0, 1fr); gap: 2px 16px; padding: 5px 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.day-link { font-weight: 600; }
.day-meta { font-size: 13px; color: var(--muted); display: flex; gap: 8px; }
.day-top { color: var(--muted); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 700px) {
  .days li { grid-template-columns: minmax(0, 1fr) auto; }
  .day-top { grid-column: 1 / -1; }
}

/* sources + about */
.feeds { display: flex; flex-wrap: wrap; gap: 2px 16px; font-size: 14px; }
.plain { list-style: none; }
.plain li { padding: 4px 0; border-bottom: 1px solid var(--rule); }
.prose { max-width: 70ch; }
.prose h2 { font: 600 20px/1.3 var(--serif); margin: 22px 0 6px; }
.prose ol { padding-left: 22px; }
.prose li { margin-bottom: 6px; }
.defs { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; }
.defs dd { margin: 0; }

/* footer */
.foot { border-top: 1px solid var(--ink); margin-top: 32px; padding: 14px 0 28px; font-size: 13px; color: var(--muted); }
.disclaimer { color: var(--ink); max-width: 80ch; }
.foot-meta { display: flex; flex-wrap: wrap; gap: 4px 18px; }

@media (max-width: 560px) {
  .topic-head { flex-direction: column; gap: 2px; }
  .d-text { font-size: 16px; }
  .defs { grid-template-columns: 1fr; }
  .dayhead, .pagehead { padding-top: 12px; }
}
@media print { .mast .nav, .qform, .filter, .cmp-tools, .tabs { display: none; } .board[hidden] { display: block; } }

/* bar widths (generated) */
.w-0{width:0%}.w-1{width:1%}.w-2{width:2%}.w-3{width:3%}.w-4{width:4%}.w-5{width:5%}.w-6{width:6%}.w-7{width:7%}.w-8{width:8%}.w-9{width:9%}.w-10{width:10%}.w-11{width:11%}.w-12{width:12%}.w-13{width:13%}.w-14{width:14%}.w-15{width:15%}.w-16{width:16%}.w-17{width:17%}.w-18{width:18%}.w-19{width:19%}.w-20{width:20%}.w-21{width:21%}.w-22{width:22%}.w-23{width:23%}.w-24{width:24%}.w-25{width:25%}.w-26{width:26%}.w-27{width:27%}.w-28{width:28%}.w-29{width:29%}.w-30{width:30%}.w-31{width:31%}.w-32{width:32%}.w-33{width:33%}.w-34{width:34%}.w-35{width:35%}.w-36{width:36%}.w-37{width:37%}.w-38{width:38%}.w-39{width:39%}.w-40{width:40%}.w-41{width:41%}.w-42{width:42%}.w-43{width:43%}.w-44{width:44%}.w-45{width:45%}.w-46{width:46%}.w-47{width:47%}.w-48{width:48%}.w-49{width:49%}.w-50{width:50%}.w-51{width:51%}.w-52{width:52%}.w-53{width:53%}.w-54{width:54%}.w-55{width:55%}.w-56{width:56%}.w-57{width:57%}.w-58{width:58%}.w-59{width:59%}.w-60{width:60%}.w-61{width:61%}.w-62{width:62%}.w-63{width:63%}.w-64{width:64%}.w-65{width:65%}.w-66{width:66%}.w-67{width:67%}.w-68{width:68%}.w-69{width:69%}.w-70{width:70%}.w-71{width:71%}.w-72{width:72%}.w-73{width:73%}.w-74{width:74%}.w-75{width:75%}.w-76{width:76%}.w-77{width:77%}.w-78{width:78%}.w-79{width:79%}.w-80{width:80%}.w-81{width:81%}.w-82{width:82%}.w-83{width:83%}.w-84{width:84%}.w-85{width:85%}.w-86{width:86%}.w-87{width:87%}.w-88{width:88%}.w-89{width:89%}.w-90{width:90%}.w-91{width:91%}.w-92{width:92%}.w-93{width:93%}.w-94{width:94%}.w-95{width:95%}.w-96{width:96%}.w-97{width:97%}.w-98{width:98%}.w-99{width:99%}.w-100{width:100%}
