:root{--bg:#f7f7f5;--fg:#1c1c1a;--muted:#6b6b66;--line:#dcdcd6;--accent:#1d5c8a;--private:#5a3d7a;--card:#ffffff;--ok:#2d6a4f;--bad:#9b2226}
@media (prefers-color-scheme: dark){:root{--bg:#141414;--fg:#ebebe6;--muted:#9a9a93;--line:#2c2c2a;--accent:#7ab3e0;--private:#b89ad6;--card:#1d1d1b;--ok:#7fd1a5;--bad:#f28b8b}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
header{display:flex;gap:16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--card)}
header a{color:var(--fg);text-decoration:none;font-weight:700}
header nav a{font-weight:500;color:var(--accent);margin-left:14px}
main{max-width:1080px;margin:0 auto;padding:24px 16px}
h1{font-size:26px;margin:0 0 6px}h2{font-size:18px;margin:28px 0 10px}
p.lead{color:var(--muted);margin:0 0 18px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.card .k{font-size:12px;color:var(--muted)}.card .v{font-size:20px;font-weight:600;word-break:break-all}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
th,td{padding:8px 10px;border-top:1px solid var(--line);text-align:left;vertical-align:top}th{font-weight:600;color:var(--muted);font-size:13px}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
a{color:var(--accent)}
code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;word-break:break-all}
.private{color:var(--private);border:1px solid var(--private);border-radius:4px;padding:0 6px;font-size:12px}
.ok{color:var(--ok)}.bad{color:var(--bad)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin:10px 0}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
input,select,button{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg)}
input{min-width:120px}input.wide{flex:1;min-width:260px}
button{background:var(--accent);color:#fff;border-color:var(--accent);cursor:pointer}button:disabled{opacity:.5;cursor:default}
button.secondary{background:var(--card);color:var(--accent)}
#log{max-height:320px;overflow:auto;white-space:pre-wrap;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px}
.note{border-left:4px solid var(--private);padding:8px 12px;background:var(--card);margin:12px 0}
footer{color:var(--muted);font-size:13px;margin:40px 0 0;padding-top:12px;border-top:1px solid var(--line)}
@media (max-width:600px){header nav a{margin-left:8px}}
.gatebar{background:var(--card);border-bottom:1px solid var(--line);padding:6px 16px;font-size:13px;color:var(--muted)}
.note.gate{border-left-color:var(--bad)}
header nav{display:flex;flex-wrap:wrap}
