
:root{--bg:#fff;--fg:#1a1a1a;--muted:#555;--line:#d0d0d0;--accent:#0b5cad;--accent-fg:#fff;--ok:#1d6b2f;--warn:#8a4b00;--err:#a4161a;--card:#f6f7f9;color-scheme:light dark}
@media (prefers-color-scheme:dark){:root{--bg:#121417;--fg:#f0f0f0;--muted:#b5b5b5;--line:#3a3f45;--accent:#6aa9ff;--accent-fg:#0b0d10;--ok:#7bd88f;--warn:#ffc46b;--err:#ff8a8a;--card:#1c2026}}
*{box-sizing:border-box}
html{font-size:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:1rem/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--bg);padding:.5rem;z-index:10}
header.site,footer.site{border-bottom:1px solid var(--line);padding:.75rem 1rem}
footer.site .cancel-link{font-weight:700}
footer.site{border-top:1px solid var(--line);border-bottom:0;margin-top:3rem;font-size:.9rem;color:var(--muted)}
.wrap{max-width:48rem;margin:0 auto;padding:0 1rem}
header.site .wrap{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:space-between}
.brand{font-weight:700;text-decoration:none;color:var(--fg);font-size:1.15rem}
nav ul,footer ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center}
main{padding:1.5rem 0}
h1{font-size:1.6rem;line-height:1.25;margin:.5rem 0 1rem}
h2{font-size:1.2rem;margin:2rem 0 .75rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:.5rem;padding:1rem;margin:1rem 0}
.btn,button{display:inline-block;font:inherit;border:2px solid var(--accent);background:var(--accent);color:var(--accent-fg);padding:.6rem 1.1rem;border-radius:.4rem;cursor:pointer;text-decoration:none;min-height:44px}
.btn.secondary,button.secondary{background:transparent;color:var(--accent)}
button.link{background:none;border:0;color:var(--accent);padding:0;min-height:0;text-decoration:underline}
form.inline{display:inline}
label{display:block;font-weight:600;margin:1rem 0 .25rem}
.hint{color:var(--muted);font-size:.92rem;margin:.2rem 0}
input[type=text],input[type=email],input[type=date],textarea,select{width:100%;font:inherit;padding:.55rem .65rem;border:1px solid var(--muted);border-radius:.35rem;background:var(--bg);color:var(--fg)}
.check{display:flex;gap:.6rem;align-items:flex-start;margin:.75rem 0}.check input{margin-top:.35rem;width:1.15rem;height:1.15rem}.check label{font-weight:400;margin:0}
fieldset{border:1px solid var(--line);border-radius:.4rem;margin:1rem 0;padding:.5rem 1rem 1rem}legend{font-weight:600;padding:0 .3rem}
.input-suffix{display:flex;align-items:stretch}.input-suffix input{border-radius:.35rem 0 0 .35rem}.input-suffix span{border:1px solid var(--muted);border-left:0;padding:.55rem .65rem;border-radius:0 .35rem .35rem 0;background:var(--card);white-space:nowrap}
.status{font-weight:600}.ok{color:var(--ok)}.warn{color:var(--warn)}.err{color:var(--err)}
.alert{border-left:4px solid var(--err);padding:.75rem 1rem;background:var(--card);margin:1rem 0}
.notice{border-left:4px solid var(--accent);padding:.75rem 1rem;background:var(--card);margin:1rem 0}
ol.steps{list-style:none;padding:0;margin:1rem 0;display:flex;flex-wrap:wrap;gap:.5rem}
ol.steps li{padding:.25rem .6rem;border:1px solid var(--line);border-radius:1rem;font-size:.9rem;color:var(--muted)}
ol.steps li.done{color:var(--ok);border-color:var(--ok)}ol.steps li[aria-current=step]{color:var(--fg);border-color:var(--accent);font-weight:600}
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:.5rem 0}dl.facts dt{color:var(--muted)}dl.facts dd{margin:0;overflow-wrap:anywhere}
.qr{width:min(18rem,80vw);height:auto;display:block;margin:1rem 0;border:8px solid #fff;border-radius:.25rem}
.linkbox{overflow-wrap:anywhere;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;background:var(--card);border:1px solid var(--line);padding:.5rem;border-radius:.3rem}
table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
@media (max-width:30rem){h1{font-size:1.35rem}dl.facts{grid-template-columns:1fr}dl.facts dd{margin-bottom:.4rem}}
@media print{header.site nav,footer.site,.skip,form{display:none}body{background:#fff;color:#000}a{color:#000}.notice,.card{background:#fff}}
