:root{--bg:#f7f6f2;--card:#fff;--ink:#1d2320;--muted:#5f6b66;--line:#e2e0d8;--accent:#2f6b4f;--qb:#2ca01c;--danger:#a33a2b;--ok-bg:#e9f4ec;--warn-bg:#fbf1e3}@media (prefers-color-scheme:dark){:root{--bg:#141816;--card:#1c211f;--ink:#e8ece9;--muted:#9aa6a0;--line:#2c3430;--accent:#7fc3a0;--ok-bg:#1f3328;--warn-bg:#3a2f1f}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0}body{font:16px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}main{max-width:640px;margin:0 auto;padding:48px 16px 64px}main.wide{max-width:1040px}.brand{letter-spacing:.02em;color:var(--accent);margin-bottom:28px;font-weight:700}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:24px}h1{margin:0 0 12px;font-size:1.6rem;line-height:1.25}h2{margin:0 0 12px;font-size:1.1rem}p{margin:0 0 12px}.muted{color:var(--muted);font-size:.92rem}.qb-button{background:var(--qb);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:12px 22px;font-size:1rem;font-weight:600;text-decoration:none;display:inline-block}.qb-button:hover{filter:brightness(.95)}.note{border-radius:8px;margin-bottom:16px;padding:12px 14px}.note.ok{background:var(--ok-bg)}.note.warn{background:var(--warn-bg)}ul.tight{margin:0 0 12px;padding-left:20px}footer{color:var(--muted);margin-top:32px;font-size:.85rem}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 6px}th{color:var(--muted);font-weight:600}input,button,select{font:inherit}input[type=text],input[type=password]{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--ink);border-radius:6px;padding:8px 10px}.btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:8px 14px}.btn.secondary{color:var(--accent);border:1px solid var(--accent);background:0 0}.btn.danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.row{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.row>label{color:var(--muted);flex:180px;font-size:.9rem;display:block}.secret{word-break:break-all;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px;font-family:ui-monospace,Menlo,monospace}.status{font-weight:600}.status.active{color:var(--accent)}.status.needs_reauth,.status.disconnected{color:var(--danger)}.scroll{overflow-x:auto}
