:root{--bg:#f4f6f9;--card:#fff;--ink:#1f2d3a;--muted:#6b7785;--line:#dde3ea;--brand:#2e6da4;--ok:#1f7a3d;--okbg:#e7f6ec;--warn:#9a6b12;--warnbg:#fdf3e3;--bad:#b12727;--badbg:#fbeaea}
*{box-sizing:border-box}
body{margin:0;font:14px/1.5 "Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}
header{display:flex;align-items:center;gap:20px;padding:10px 20px;background:#173b5e;color:#fff;flex-wrap:wrap}
header nav{display:flex;gap:14px;flex:1;flex-wrap:wrap}
header a,header .link{color:#dce8f4;text-decoration:none;background:none;border:0;padding:0;font:inherit;cursor:pointer}
header a:hover,header .link:hover{color:#fff}
main{max-width:1200px;margin:0 auto;padding:20px 16px}
h1{font-size:22px;margin:0 0 14px}h2{font-size:16px;margin:22px 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:16px;margin-bottom:16px}
.narrow{max-width:360px;margin:60px auto}
label{display:block;margin:0 0 12px;font-weight:600}
label small{display:block;font-weight:400;color:var(--muted);margin-top:3px}
label.check{display:flex;align-items:center;gap:8px;font-weight:400}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:7px 9px;border:1px solid var(--line);border-radius:4px;font:inherit;background:#fff}
label.check input{display:inline;width:auto;margin:0}
button,.btn{display:inline-block;padding:7px 14px;border:0;border-radius:4px;background:var(--brand);color:#fff;font:inherit;cursor:pointer;text-decoration:none}
button.secondary{background:#fff;color:var(--brand);border:1px solid var(--brand)}
button.small{padding:3px 9px;font-size:12px}
.row{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:12px 14px;color:inherit;text-decoration:none}
.tile b{display:block;font-size:24px}.tile span{color:var(--muted)}
.tile.warn{border-color:#e8c88a;background:var(--warnbg)}.tile.bad{border-color:#e6a4a4;background:var(--badbg)}
.scroll{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:6px}
table{width:100%;border-collapse:collapse}
th,td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#f0f4f8;font-weight:600;white-space:nowrap}
.mono{font-family:Consolas,monospace;font-size:12px;word-break:break-all}
.muted{color:var(--muted)}
.tag{display:inline-block;padding:1px 7px;border-radius:10px;background:#eef1f4;font-size:12px}
.tag.ok{background:var(--okbg);color:var(--ok)}.tag.warn{background:var(--warnbg);color:var(--warn)}.tag.bad{background:var(--badbg);color:var(--bad)}
.alert{padding:9px 12px;border-radius:4px}.alert.ok{background:var(--okbg);color:var(--ok)}.alert.bad{background:var(--badbg);color:var(--bad)}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filters select,.filters input{width:auto;margin:0}
.inline{display:inline-flex;gap:4px;margin:0 4px 4px 0}.inline select{width:auto;margin:0;padding:2px 4px}
.actions{white-space:nowrap}
pre.secret{background:#0f1b27;color:#c8f7c5;padding:12px;border-radius:4px;overflow-x:auto;user-select:all}
code{background:#eef1f4;padding:1px 4px;border-radius:3px}
