  :root { --bg: #fff; --fg: #1d1d1f; --muted: #6e6e73; --line: #d2d2d7; --accent: #0a64d8; --bad: #c4231c; --ok: #1a7f37; --warn: #9a6700; --code: #f4f4f6; }
  @media (prefers-color-scheme: dark) { :root { --bg: #161618; --fg: #f2f2f4; --muted: #9a9aa2; --line: #3a3a40; --accent: #5aa3ff; --bad: #ff6b63; --ok: #4cc26a; --warn: #e3b341; --code: #232327; } }
  body { background: var(--bg); color: var(--fg); font: 15px/1.5 system-ui, sans-serif; margin: 0; padding-block: 1.5rem; padding-inline: 1rem; }
  main { max-width: 44rem; margin: 0 auto; }
  h1 { margin: 0 0 .25rem; font-size: 1.6rem; }
  h2 { font-size: 1.05rem; margin: 0 0 .5rem; }
  section { border-top: 1px solid var(--line); padding-block: 1rem; }
  section.off { opacity: .45; pointer-events: none; }
  h3 { font-size: 1rem; margin: 0 0 .4rem; }
  .sub { border: 1px solid var(--line); border-radius: 8px; padding: .7rem 1rem; margin-block: .75rem; }
  .sub.active { border-color: var(--accent); }
  .sub.off { opacity: .45; pointer-events: none; }
  .sub.done { opacity: .75; }
  .sub ol { margin-block: .3rem .7rem; }
  .num { display: inline-block; min-width: 1.8rem; padding-inline: .3rem; margin-right: .3rem; border-radius: 4px; background: var(--code); text-align: center; }
  button { font: inherit; padding: .45rem .9rem; border: 1px solid var(--accent); background: var(--accent); color: #fff; border-radius: 6px; cursor: pointer; }
  button.plain { background: none; color: var(--accent); }
  button:disabled { opacity: .4; cursor: default; }
  a { color: var(--accent); }
  .muted { color: var(--muted); }
  .bad { color: var(--bad); } .ok { color: var(--ok); } .warn { color: var(--warn); }
  .box { background: var(--code); border-radius: 6px; padding: .6rem .8rem; margin-block: .6rem; }
  progress { width: 100%; }
  pre { background: var(--code); padding: .7rem; border-radius: 6px; overflow: auto; max-height: 20rem; white-space: pre-wrap; font-size: 12px; }
  select, input[type=file] { font: inherit; max-width: 100%; }
  code { background: var(--code); padding: 0 .25rem; border-radius: 3px; }
