:root { --bg:#f6f6f4; --fg:#151515; --muted:#6b6b6b; --card:#fff; --line:#e3e3df; --accent:#151515; --ok:#1f8a4c; --wait:#b7791f; --bad:#c0392b; color-scheme: light dark; }
@media (prefers-color-scheme: dark) { :root { --bg:#111; --fg:#eee; --muted:#9a9a9a; --card:#1a1a1a; --line:#2b2b2b; --accent:#eee; } }
* { box-sizing: border-box; }
body { margin:0; font: 15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; background: var(--bg); color: var(--fg); }
header { display:flex; gap:1rem; align-items:center; justify-content:space-between; padding:.8rem 1.2rem; border-bottom:1px solid var(--line); background:var(--card); flex-wrap:wrap; }
nav { display:flex; gap:.8rem; } nav a { color:var(--muted); text-decoration:none; } nav a.on { color:var(--fg); font-weight:600; }
main { max-width: 52rem; margin: 0 auto; padding: 1.2rem; } main.narrow { max-width: 26rem; margin-top: 12vh; }
h1 { font-size: 1.6rem; margin:0 0 .2rem; } h2 { font-size: 1.15rem; margin: 1.2rem 0 .6rem; } h3 { font-size: 1rem; margin:0 0 .5rem; }
.card { background: var(--card); border:1px solid var(--line); border-radius: 10px; padding: 1rem; margin-bottom: .8rem; }
.card.inline { display:flex; gap:.5rem; } .card.inline input { flex:1; }
label { display:block; margin:.5rem 0; font-size:.9rem; color: var(--muted); } label input { display:block; width:100%; margin-top:.2rem; }
input { font: inherit; padding:.55rem .65rem; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--fg); }
button { font: inherit; padding:.5rem .9rem; border-radius:8px; border:1px solid var(--accent); background:var(--accent); color:var(--bg); cursor:pointer; }
button.secondary, button.ghost { background:transparent; color:var(--fg); } button.ghost { border-color: var(--line); }
button:disabled { opacity:.5; cursor: default; }
.row { display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:.3rem 0; } .actions { display:flex; gap:.4rem; }
.muted { color: var(--muted); } .small { font-size: .85rem; } .error { color: var(--bad); }
.dot::before { content:'●'; margin: 0 .25rem 0 .5rem; } .dot { font-size:.85rem; color: var(--muted); } .dot.ok::before { color: var(--ok); } .dot.wait::before { color: var(--wait); } .dot.bad::before { color: var(--bad); }
pre.cmd, pre.log { background: var(--bg); border:1px solid var(--line); border-radius:8px; padding:.6rem; white-space: pre-wrap; word-break: break-all; font-size:.85rem; }
pre.log { max-height: 16rem; overflow:auto; }
.tabs { display:flex; gap:.4rem; margin:.6rem 0; } .tabs button { background:transparent; color:var(--muted); border-color:var(--line); } .tabs button.on { color:var(--fg); border-color:var(--accent); }

.install h3 { margin-top:.9rem; } details.guide { margin:.4rem 0 .6rem; } details.guide summary { cursor:pointer; color:var(--fg); } details.guide ol { padding-left:1.2rem; margin:.4rem 0; }
.wizard { margin-top:.6rem; border-top:1px solid var(--line); padding-top:.6rem; }
.wizard .bar { height:6px; background:var(--line); border-radius:3px; margin:.3rem 0 .6rem; overflow:hidden; } .wizard .bar span { display:block; height:100%; background:var(--ok); }
.wizard .step { border:1px solid var(--line); border-radius:8px; margin:.35rem 0; } .wizard .step.on { border-color:var(--accent); }
.wizard .steph { width:100%; text-align:left; background:transparent; color:var(--fg); border:0; padding:.55rem .7rem; font-weight:500; } .wizard .step.done .steph { color:var(--muted); }
.wizard .stepb { padding:0 .7rem .7rem; } .wizard .stepb ol { padding-left:1.2rem; margin:.2rem 0 .6rem; }
.qrrow { display:flex; gap:1rem; align-items:flex-start; flex-wrap:wrap; } img.qr { width:180px; height:180px; background:#fff; padding:6px; border-radius:8px; }

.event pre.msg { white-space: pre-wrap; word-break: break-word; font-size: 12px; background: #f4f4f2; padding: .5rem; border-radius: .4rem; max-height: 24rem; overflow: auto; }
.warn { background: #fff6e0; border: 1px solid #f0c060; border-radius: .5rem; padding: .6rem .8rem; margin: .5rem 0; }
.table { overflow-x: auto; } .table table { border-collapse: collapse; font-size: 13px; } .table th, .table td { border-bottom: 1px solid #e5e5e2; padding: .35rem .5rem; text-align: left; white-space: nowrap; }
