:root{--bg:#f6f6f8;--card:#fff;--text:#1d1d1f;--muted:#6e6e73;--line:#e3e3e8;--accent:#5b3cc4;--accent-text:#fff;--danger:#c4314b;--ok:#1f8a4c}@media (prefers-color-scheme:dark){:root{--bg:#111114;--card:#1b1b20;--text:#f2f2f5;--muted:#a0a0a8;--line:#2c2c33;--accent:#8f74ff;--danger:#ff6b81;--ok:#4cd18a}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header.top{display:flex;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}header.top .brand{font-weight:700;letter-spacing:.02em}header.top nav{display:flex;gap:14px;flex:1 1;flex-wrap:wrap}main{max-width:1040px;margin:24px auto;padding:0 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px}.narrow{max-width:400px;margin:64px auto}h1{font-size:22px;margin:0 0 12px}h2{font-size:17px;margin:0 0 10px}label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}input,select{padding:8px 10px;border:1px solid var(--line);background:var(--bg);color:var(--text);width:100%}button,input,select{font:inherit;border-radius:8px}button{padding:8px 14px;border:0;background:var(--accent);color:var(--accent-text);cursor:pointer}button.secondary{color:var(--accent)}button.danger,button.secondary{background:transparent;border:1px solid var(--line)}button.danger{color:var(--danger)}.row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.row>*{flex:1 1;min-width:140px}.row>button{flex:0 0 auto}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.table-wrap{overflow-x:auto}.muted{color:var(--muted)}.small{font-size:12px}.msg{padding:10px 12px;border-radius:8px;margin-bottom:12px}.msg.error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.msg.ok{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok)}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;border:1px solid var(--line)}code.block{display:block;word-break:break-all;background:var(--bg);padding:10px;border-radius:8px;border:1px solid var(--line)}form.inline{display:inline-flex;gap:6px;align-items:center;margin:0}form.inline select{width:auto;padding:4px 8px}form.inline button{padding:4px 10px;font-size:13px}