:root {
  --bg: #fbfaf7; --fg: #1d1d1b; --muted: #6b6a66; --line: #e3e0d8; --card: #ffffff;
  --accent: #1f5f8b; --s1: #b3261e; --s2: #8a5a00; --s3: #49607a; --s4: #6b6a66;
  --quote: #f3f1ec;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #161615; --fg: #e9e7e2; --muted: #a09d96; --line: #34332f; --card: #1e1e1c;
    --accent: #7db4dc; --s1: #f08a80; --s2: #e0b25c; --s3: #9fb6cf; --s4: #a09d96;
    --quote: #262523;
  }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg);
  font: 16px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
main { max-width: 860px; margin: 0 auto; padding: 0 16px 64px; }
a { color: var(--accent); }
.top { max-width: 860px; margin: 0 auto; padding: 16px; display: flex; gap: 20px; align-items: baseline; }
.top .brand { font-weight: 650; text-decoration: none; color: var(--fg); margin-right: auto; }
h1 { font-size: 1.6rem; line-height: 1.25; margin: 8px 0 12px; }
h2 { font-size: 1.15rem; margin: 28px 0 8px; }
.intro p, .about p { max-width: 68ch; }
.filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 20px 0 8px; }
.filters input, .filters select, .filters button { font: inherit; padding: 6px 10px; border: 1px solid var(--line);
  border-radius: 6px; background: var(--card); color: var(--fg); }
.filters input { flex: 1 1 240px; }
.filters button { cursor: pointer; }
table.papers { width: 100%; border-collapse: collapse; }
.papers th, .papers td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--line); vertical-align: top; }
.papers th { font-size: .85rem; color: var(--muted); font-weight: 600; }
.papers td.n, .papers th.n { text-align: right; font-variant-numeric: tabular-nums; }
.papers .minorn { color: var(--muted); }
.papers .au { color: var(--muted); font-size: .85rem; }
@media (max-width: 600px) { .papers th:nth-child(3), .papers td:nth-child(3) { display: none; } }
.byline { margin: 0; }
.venue { color: var(--muted); margin: 2px 0 12px; }
.version { color: var(--muted); font-size: .9rem; }
.summary { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; }
details.finding { background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--s4);
  border-radius: 6px; margin: 8px 0; }
details.finding > summary { cursor: pointer; padding: 10px 12px; list-style-position: outside; }
.sev-s1 { border-left-color: var(--s1) !important; } .sev-s2 { border-left-color: var(--s2) !important; }
.sev-s3 { border-left-color: var(--s3) !important; }
.sev { font-size: .75rem; font-weight: 650; text-transform: uppercase; letter-spacing: .03em; margin-right: 6px; }
.sev-s1 .sev { color: var(--s1); } .sev-s2 .sev { color: var(--s2); } .sev-s3 .sev { color: var(--s3); }
.sev-s4 .sev { color: var(--s4); }
.finding .body { padding: 0 14px 12px; }
.locs { padding-left: 18px; margin: 4px 0; }
.pg { font-variant-numeric: tabular-nums; color: var(--muted); }
blockquote { margin: 4px 0 8px; padding: 6px 10px; background: var(--quote); border-radius: 4px;
  font-family: ui-monospace, Menlo, monospace; font-size: .85rem; overflow-wrap: anywhere; }
.note, .checks, .query { font-size: .92rem; }
.checks { color: var(--muted); }
.hand { color: var(--accent); }
details.minor { margin: 18px 0; }
details.minor > summary, details.fb > summary { cursor: pointer; color: var(--muted); }
.waiting, .none { color: var(--muted); }
details.fb { margin-top: 8px; }
form.feedback { display: grid; gap: 8px; margin-top: 8px; max-width: 520px; }
form.feedback fieldset { border: 1px solid var(--line); border-radius: 6px; display: grid; gap: 2px; }
form.feedback textarea, form.feedback input[type=email] { font: inherit; padding: 6px 8px; width: 100%;
  border: 1px solid var(--line); border-radius: 6px; background: var(--bg); color: var(--fg); }
form.feedback button { justify-self: start; font: inherit; padding: 6px 14px; border-radius: 6px;
  border: 1px solid var(--accent); background: var(--accent); color: var(--bg); cursor: pointer; }
form.feedback .hp { position: absolute; left: -9999px; }
.status { color: var(--muted); font-size: .9rem; }
.paperfb { margin-top: 28px; }
