*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f5f6fa;color:#2d3a55}
a{color:#5b6cf0;text-decoration:none}h1{font-weight:400;margin:.2em 0}h3{margin-top:0}
header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid #e3e6ee;position:sticky;top:0;z-index:5}
header span{margin-left:auto;font-size:.9em;color:#778}
#mb{border:0;background:none;font-size:22px;cursor:pointer}
aside{position:fixed;top:53px;bottom:0;left:0;width:230px;background:#fff;border-right:1px solid #e3e6ee;padding:12px;transform:translateX(-100%);transition:.2s;z-index:4;overflow:auto}
aside.open{transform:none}aside a{display:block;padding:11px 12px;border-radius:8px;color:#4a5878}
aside a.on,aside a:hover{background:#eef0ff;color:#5b6cf0}
main{padding:18px;max-width:1000px;margin:auto}
@media(min-width:900px){aside{transform:none}main{margin-left:250px}#mb{display:none}}
.card{background:#fff;border:1px solid #e3e6ee;border-radius:10px;padding:18px;margin:14px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.stat b{display:block;font-size:1.8em}.stat{background:#fff;border:1px solid #e3e6ee;border-radius:10px;padding:14px}
label{display:block;margin:12px 0 4px;font-weight:600}
input,textarea{width:100%;padding:11px;border:1px solid #cfd5e3;border-radius:8px;font:inherit}
button.b{background:#5b6cf0;color:#fff;border:0;padding:11px 20px;border-radius:8px;font:inherit;cursor:pointer;margin-top:14px}
button.s{background:#eef0ff;color:#5b6cf0;border:0;padding:7px 12px;border-radius:6px;cursor:pointer}
button.d{background:#fdeceb;color:#d9433a;border:0;padding:7px 12px;border-radius:6px;cursor:pointer}
.auth{max-width:400px;margin:8vh auto;padding:0 16px}
table{width:100%;border-collapse:collapse;background:#fff}td,th{padding:9px;border-bottom:1px solid #eceff5;text-align:left;font-size:.9em;vertical-align:top}
.wrap{overflow:auto}.badge{padding:2px 10px;border-radius:12px;font-size:.8em;color:#fff;background:#999}
.badge.ok{background:#1fd8a0}.badge.bad{background:#e55}.badge.warn{background:#e9a825}
.pg a{display:inline-block;padding:6px 12px;border:1px solid #dde;margin-right:2px;border-radius:4px}.pg a.on{background:#5b6cf0;color:#fff}
code,pre{background:#f0f2f8;padding:2px 6px;border-radius:4px;word-break:break-all;white-space:pre-wrap}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#2d3a55;color:#fff;padding:10px 18px;border-radius:8px;display:none;z-index:9}
