:root {
  --ink: #1d2327; --muted: #545d63; --line: #d5dadd; --bg: #fbfaf7; --panel: #ffffff;
  --accent: #0b5c6b; --ok: #1f6b3a; --wait: #8a5a00; --bad: #a12a1f; --none: #545d63;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--ink); background: var(--bg);
  line-height: 1.5;
}
body { margin: 0 auto; max-width: 72rem; padding: 1.5rem 1rem 3rem; }
h1 { font-size: 1.9rem; margin: 0 0 .25rem; }
h2 { font-size: 1.25rem; margin: 2rem 0 .5rem; display: flex; align-items: center; gap: .5rem; }
.lede { font-size: 1.1rem; max-width: 46rem; margin-top: .25rem; }
.step { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--accent); color: #fff; font-size: 1rem; }
a { color: var(--accent); }
button { font: inherit; min-height: 44px; padding: .5rem 1rem; border-radius: 6px; border: 1px solid var(--accent); background: var(--panel); color: var(--accent); cursor: pointer; }
button.primary { background: var(--accent); color: #fff; }
button:disabled { opacity: .55; cursor: not-allowed; }
button.link { border: none; background: none; padding: .5rem 0; text-decoration: underline; }
button:focus-visible, a:focus-visible, textarea:focus-visible, .drop:focus-within { outline: 3px solid #f2b705; outline-offset: 2px; }
.label { display: block; font-weight: 600; margin-bottom: .25rem; }
textarea { width: 100%; box-sizing: border-box; font: .95rem/1.4 ui-monospace, Menlo, Consolas, monospace; padding: .6rem; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); }
.drop { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding: 1rem; margin: .5rem 0; border: 2px dashed var(--line); border-radius: 8px; background: var(--panel); }
.drop.small { padding: .6rem 1rem; }
.drop.over { border-color: var(--accent); background: #eef6f7; }
.drop span { font-weight: 600; }
.status { margin: .25rem 0; padding-left: .75rem; border-left: 4px solid var(--line); }
.status[data-tone="ok"] { border-color: var(--ok); }
.status[data-tone="warn"] { border-color: var(--wait); }
.status[data-tone="bad"] { border-color: var(--bad); color: var(--bad); }
.optional { margin-top: 1rem; }
.optional summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.muted { color: var(--muted); }
.banner { padding: .75rem 1rem; border-radius: 6px; border-left: 6px solid; background: var(--panel); }
.banner.warn { border-color: var(--wait); }
.banner.bad { border-color: var(--bad); }
.asat { font-size: .95rem; color: var(--muted); }
.summary { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; padding: 0; list-style: none; font-weight: 600; }
.tone-ok { color: var(--ok); } .tone-wait { color: var(--wait); } .tone-bad { color: var(--bad); } .tone-none { color: var(--none); }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; background: var(--panel); font-size: .95rem; }
caption { text-align: left; padding: .5rem 0; color: var(--muted); }
th, td { text-align: left; vertical-align: top; padding: .6rem; border-bottom: 1px solid var(--line); }
th { background: #f0f2f3; }
td.num { color: var(--muted); }
td.date { white-space: nowrap; }
.name { font-weight: 600; }
.verdict { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; font-weight: 700; }
.v-icon { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; border: 2px solid currentColor; border-radius: 4px; font-size: .9rem; }
.v-possible { font-weight: 600; font-size: .8rem; padding: .05rem .4rem; border: 1px solid var(--wait); color: var(--wait); border-radius: 4px; }
.details p { margin: 0 0 .35rem; }
.details ul { margin: .25rem 0; padding-left: 1.1rem; }
.flags li { color: var(--wait); }
.src { margin: .5rem 0; }
.src-title { font-weight: 600; }
.src dl { display: grid; grid-template-columns: max-content 1fr; gap: .1rem .75rem; margin: 0; font-size: .88rem; }
.src dt { color: var(--muted); }
.src dd { margin: 0; font-family: ui-monospace, Menlo, Consolas, monospace; }
.how li { margin-bottom: .4rem; }
footer { margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .9rem; color: var(--muted); }
@media (prefers-color-scheme: dark) {
  :root { --ink: #e8eaeb; --muted: #a9b1b6; --line: #3a4247; --bg: #15191b; --panel: #1e2427; --accent: #5fc0cf; --ok: #6fcf8f; --wait: #f0b54a; --bad: #ff8a7a; --none: #a9b1b6; }
  th { background: #262d31; }
  .step, button.primary { color: #0b1a1d; }
  .drop.over { background: #1f3337; }
}
/* Explainer pages */
.sitenav { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin: 0 0 1rem; padding: 0 0 .75rem; border-bottom: 1px solid var(--line); font-size: .95rem; }
.sitenav a { display: inline-flex; align-items: center; min-height: 44px; }
.sitenav a[aria-current="page"] { font-weight: 700; color: var(--ink); text-decoration: none; }
article { max-width: 46rem; }
article h2 { display: block; }
article li { margin-bottom: .35rem; }
blockquote { margin: .75rem 0; padding: .5rem 1rem; border-left: 4px solid var(--accent); background: var(--panel); }
blockquote p { margin: .35rem 0; }
.cite { font-size: .9rem; color: var(--muted); margin-top: -.25rem; }
.cta { padding: .75rem 1rem; border-radius: 6px; background: var(--panel); border: 1px solid var(--line); }
.updated { color: var(--muted); font-size: .95rem; }
