:root{color-scheme:light dark;--fg:#1d2433;--muted:#5b6475;--bg:#f6f7f9;--card:#fff;--soft:#f0f3f8;--accent:#2457d6;--error:#b42318;--ok:#067647;--warn:#9a5b00;--border:#d7dbe3}
@media (prefers-color-scheme:dark){:root{--fg:#e7eaf0;--muted:#9aa3b5;--bg:#12151b;--card:#1b1f27;--soft:#232834;--accent:#7aa2ff;--error:#ff8a80;--ok:#6ce9a6;--warn:#fdb022;--border:#2c3340}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
main{max-width:720px;margin:40px auto;padding:32px;background:var(--card);border:1px solid var(--border);border-radius:14px}
@media (max-width:760px){main{margin:16px;padding:20px}}
header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.eyebrow{margin:0;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
h1{margin:4px 0 20px;font-size:1.45rem}h2{margin:8px 0 8px;font-size:1.2rem}h3{margin:0 0 8px;font-size:1rem}
.progress{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 24px;counter-reset:s}
.progress li{flex:1;font-size:.8rem;color:var(--muted);border-top:4px solid var(--border);padding-top:6px;counter-increment:s}
.progress li::before{content:counter(s) ". "}.progress li.done{border-color:var(--ok);color:var(--fg)}.progress li.current{border-color:var(--accent);color:var(--fg);font-weight:600}
@media (max-width:520px){.progress li{font-size:0;}.progress li.current{font-size:.8rem}}
label{display:block;margin:14px 0 4px;font-weight:600}
input[type=text],input[type=password],input[type=url],input:not([type]){width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:transparent;color:inherit;font:inherit}
input.invalid{border-color:var(--error)}
.hint{color:var(--muted);font-size:.9rem;margin:6px 0}.warn{color:var(--warn);margin:8px 0}.ok{color:var(--ok);margin:8px 0}
button{padding:10px 16px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;border:1px solid transparent}
button:disabled{opacity:.55;cursor:not-allowed}
.primary{background:var(--accent);color:#fff}.secondary{background:transparent;color:var(--accent);border-color:var(--accent)}
.link{background:none;border:0;color:var(--accent);padding:4px 6px}
form .primary{margin-top:18px}
.row{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
.panel{margin-top:16px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--soft)}
.secret{border-color:var(--warn)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:12px 0}
.card{text-align:left;font-weight:400;background:var(--card);border:1px solid var(--border);color:var(--fg);padding:12px;border-radius:10px}
.card strong{display:block}.card .meta{color:var(--muted);font-size:.85rem;overflow-wrap:anywhere}
.card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.badge{font-size:.72rem;padding:2px 8px;border-radius:99px;background:var(--soft);color:var(--muted)}
.badge.on{color:var(--ok)}.badge.off{color:var(--error)}
.copyrow{display:flex;gap:8px;align-items:center;margin:6px 0}
code{font:13px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--soft);padding:2px 6px;border-radius:6px;overflow-wrap:anywhere}
.copyrow code{flex:1;padding:8px 10px;border:1px solid var(--border)}
.token{word-break:break-all}
.copy{padding:8px 12px;background:transparent;color:var(--accent);border-color:var(--accent)}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}.check input{margin-top:4px}.check.big{font-weight:600;margin:16px 0}
.todo{padding-left:20px}.todo li{margin-bottom:18px}
.checks{list-style:none;padding:0;margin:12px 0}.checks li{padding:6px 0}
.checks li::before{display:inline-block;width:1.4em;font-weight:700}
.checks li.yes::before{content:"✓";color:var(--ok)}.checks li.no::before{content:"✗";color:var(--error)}.checks li.maybe::before{content:"!";color:var(--warn)}
.nav{display:flex;justify-content:space-between;margin-top:28px;gap:12px}.nav #next{margin-left:auto}
#status{padding:10px 12px;border-radius:8px;background:var(--soft)}#status.error{color:var(--error)}#status.okmsg{color:var(--ok)}
