:root{--bg:#ffffff;--panel:#ffffff;--code:#f4f5f7;--line:#d5d9e0;--ink:#1f2937;--hi:#0b0f19;--lo:#566070;--id:#1d4ed8;--act:#b45309;--ok:#15803d;--bad:#b91c1c}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
.wrap{max-width:900px;margin:0 auto;padding:24px 16px 64px}h1{color:var(--hi);font-size:1.9rem;line-height:1.2;margin:.2em 0}h2{color:var(--hi);font-size:1.2rem;margin:0 0 .4em}
.banner{border:1px solid var(--act);border-radius:8px;padding:12px 14px;margin:16px 0;color:var(--hi)}
.step{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;margin:16px 0}.step.locked{opacity:.45}.n{color:var(--id);margin-right:.5em}
button{font:inherit;padding:9px 14px;border-radius:7px;border:1px solid var(--id);background:transparent;color:var(--id);cursor:pointer;margin:4px 8px 4px 0}button.primary{background:var(--id);color:#ffffff}button.alt{border-color:var(--act);color:var(--act)}button:disabled{opacity:.4;cursor:default}
button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--hi);outline-offset:2px}
a{color:var(--id)}pre{background:var(--code);border:1px solid var(--line);border-radius:6px;padding:10px;overflow:auto;font-size:.8rem;max-height:320px;white-space:pre-wrap;word-break:break-all}
table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;vertical-align:top;padding:7px 8px;border-bottom:1px solid var(--line)}th{color:var(--lo);font-weight:600}
.tw{overflow-x:auto}.ok{color:var(--ok)}.bad{color:var(--bad)}.muted{color:var(--lo);font-size:.92rem}select,textarea{font:inherit;background:#ffffff;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px;max-width:100%}textarea{width:100%;min-height:90px}[hidden]{display:none!important}
.hold{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 12px;font-size:.84rem}.hold span{border:1px solid var(--line);border-radius:6px;padding:5px 8px;color:var(--lo)}.hold span b{display:block;font-weight:600}.hold span.on{border-color:var(--id);background:#eef3fe;color:var(--hi)}
.note{border-left:3px solid var(--act);padding:6px 12px;margin:12px 0;font-size:.95rem}details{margin-top:8px}summary{cursor:pointer;color:var(--lo);font-size:.92rem}
@media (max-width:640px){.hold{grid-template-columns:repeat(2,1fr)}}
