:root { --bg:#fff; --fg:#1b1f24; --muted:#5a6470; --line:#d5dae0; --accent:#1a5fb4; --ok:#1b7a3d; --bad:#b3261e; --card:#f5f7f9; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#14171a; --fg:#e6e9ec; --muted:#9aa5b1; --line:#323a42; --accent:#7ab0f5; --ok:#5ec27f; --bad:#ff8a80; --card:#1c2024; }
}
* { box-sizing: border-box; }
html { font-size: 17px; }
body { margin:0; background:var(--bg); color:var(--fg); font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; line-height:1.55; }
main, header, footer { max-width: 46rem; margin: 0 auto; padding: 0 1rem; }
header { padding-top: 1rem; }
nav { display:flex; flex-wrap:wrap; gap:.4rem 1rem; font-size:.9rem; border-bottom:1px solid var(--line); padding-bottom:.6rem; }
a { color: var(--accent); }
h1 { font-size:1.7rem; line-height:1.25; margin:1.2rem 0 .6rem; }
h2 { font-size:1.2rem; margin:1.8rem 0 .5rem; }
h3 { font-size:1rem; margin:1.2rem 0 .3rem; }
#reported { margin-top:.8rem; }
.note { background:var(--card); border:1px solid var(--line); border-radius:6px; padding:.7rem .9rem; font-size:.92rem; }
.muted { color:var(--muted); }
footer { margin: 2.5rem auto 2rem; font-size:.85rem; color:var(--muted); border-top:1px solid var(--line); padding-top:.8rem; }
fieldset { border:1px solid var(--line); border-radius:6px; margin:1rem 0; padding:.6rem .9rem .9rem; }
legend { font-weight:600; padding:0 .3rem; }
label { display:block; margin:.55rem 0 .15rem; font-size:.92rem; }
label.inline { display:flex; gap:.5rem; align-items:flex-start; }
input[type=text], input[type=date], input[type=tel], input[type=password], select, textarea {
  width:100%; padding:.45rem .55rem; font:inherit; color:var(--fg); background:var(--bg); border:1px solid var(--line); border-radius:4px; }
button { font:inherit; padding:.45rem .9rem; border-radius:4px; border:1px solid var(--accent); background:var(--accent); color:#fff; cursor:pointer; margin:.5rem .4rem .2rem 0; }
button.secondary { background:transparent; color:var(--accent); }
button:disabled { opacity:.45; cursor:not-allowed; }
fieldset:disabled { opacity:.5; }
table { border-collapse:collapse; width:100%; font-size:.9rem; }
th, td { border:1px solid var(--line); padding:.4rem .5rem; text-align:left; vertical-align:top; }
.tablewrap { overflow-x:auto; }
.result { font-weight:700; font-size:1.2rem; margin:.6rem 0; }
.result.ok { color:var(--ok); }
.result.bad { color:var(--bad); }
code, .mono { font-family: ui-monospace, Consolas, monospace; font-size:.92em; }
.logrow { font-size:.85rem; border-bottom:1px solid var(--line); padding:.3rem 0; word-break:break-word; }
ol.steps li, ul.tight li { margin:.35rem 0; }
.blank { display:inline-block; min-width:12rem; border-bottom:1px solid var(--fg); }
@media print {
  nav, footer .noprint, .noprint { display:none; }
  :root { --bg:#fff; --fg:#000; --line:#555; --muted:#333; --card:#fff; }
  body { font-size:11pt; }
  th, td { padding:.6rem .5rem; }
}
