:root{--bg:#f6f7f9;--panel:#fff;--ink:#1d2433;--muted:#5d6677;--line:#e2e5ea;--accent:#1f4e79;--accent-soft:#e6eef6;--ok:#1d7a45;--warn:#9a6400;--bad:#b3261e;--sim:#6b3fa0;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#14171c;--panel:#1c2027;--ink:#e7eaf0;--muted:#9aa3b2;--line:#2d333d;--accent:#7fb0e0;--accent-soft:#22303f;--ok:#5cc28a;--warn:#e0b35a;--bad:#f08a80;--sim:#b48be6}}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--accent)}button,input,textarea,select{font:inherit}button{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:6px;padding:6px 12px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:var(--bad);border-color:var(--bad)}button:disabled{opacity:.5;cursor:default}input,textarea,select{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;width:100%;padding:6px 8px}textarea{resize:vertical;min-height:80px}.layout{grid-template-columns:220px 1fr;min-height:100vh;display:grid}nav.side{background:var(--panel);border-right:1px solid var(--line);padding:16px 10px}nav.side h1{margin:0 8px 4px;font-size:14px}nav.side .sub{color:var(--muted);margin:0 8px 16px;font-size:12px}nav.side button{text-align:left;background:0 0;border:none;border-radius:6px;width:100%;padding:8px;display:block}nav.side button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}main{width:100%;max-width:1200px;padding:20px 24px}.banner{border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:14px}.banner.sim{background:color-mix(in srgb, var(--sim) 14%, transparent);color:var(--sim);border:1px solid var(--sim)}.banner.warn{background:color-mix(in srgb, var(--warn) 12%, transparent);color:var(--warn);border:1px solid var(--warn)}.banner.bad{background:color-mix(in srgb, var(--bad) 12%, transparent);color:var(--bad);border:1px solid var(--bad)}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:14px;padding:14px 16px}.card h2,.card h3{margin:0 0 10px;font-size:16px}.grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.stat .n{font-size:26px;font-weight:700}.stat .l{color:var(--muted);font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:7px 8px}th{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:600}tr.click{cursor:pointer}tr.click:hover{background:var(--accent-soft)}.tag{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;margin-right:4px;padding:1px 8px;font-size:12px;display:inline-block}.tag.ok{color:var(--ok);border-color:var(--ok)}.tag.warn{color:var(--warn);border-color:var(--warn)}.tag.bad{color:var(--bad);border-color:var(--bad)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.muted{color:var(--muted);font-size:13px}.msgs{flex-direction:column;gap:8px;max-height:60vh;padding:4px;display:flex;overflow:auto}.msg{border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-width:75%;padding:8px 10px;font-size:14px}.msg.in{background:var(--panel);align-self:flex-start}.msg.out{background:var(--accent-soft);align-self:flex-end}.msg .meta{color:var(--muted);margin-top:4px;font-size:11px}.two{grid-template-columns:1.4fr 1fr;gap:14px;display:grid}pre.draft{white-space:pre-wrap;background:var(--bg);border-radius:6px;margin:6px 0;padding:8px;font-family:inherit}.err{color:var(--bad);font-size:14px}.login{max-width:360px;margin:10vh auto}.login .card>*{margin-bottom:10px}label{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}@media (width<=800px){.layout{grid-template-columns:1fr}nav.side{border-right:none;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;display:flex}nav.side h1,nav.side .sub{width:100%}nav.side button{width:auto}.two{grid-template-columns:1fr}.msg{max-width:92%}main{padding:14px 16px}}
