:root{--bg:#f6f7f9;--fg:#1d2330;--mut:#667085;--card:#fff;--line:#e3e6eb;--acc:#2f5bea;--ok:#13795b;--warn:#a15c00;--bad:#b42318}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg)}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 28px;background:#111827;color:#fff}
.top a{color:#dbe3ff;margin-left:16px;text-decoration:none}.brand{font-weight:700;margin-left:0!important;color:#fff!important;letter-spacing:.3px}
.top nav{display:flex;align-items:center}main{max-width:1060px;margin:28px auto;padding:0 20px}
h1{font-size:24px;margin:0 0 12px}h2{font-size:18px;margin:22px 0 10px}h3{font-size:15px;margin:0 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin:12px 0}.card.sub{background:#fafbfc}
.narrow{max-width:440px;margin:30px auto}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;margin:10px 0;font-weight:500}input,select,textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid #cfd4dc;border-radius:7px;font:inherit}
label.check{font-weight:400}label.check input{display:inline;width:auto;margin-right:6px}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:7px;padding:8px 14px;font:inherit;cursor:pointer;text-decoration:none}
.btn.ghost{background:#fff;color:var(--acc);border:1px solid #c8d3fb}.btn.danger{background:var(--bad)}.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.small{padding:2px 8px;font-size:13px}button.link{background:none;border:0;color:#dbe3ff;cursor:pointer;font:inherit;margin-left:16px}
form.inline{display:inline}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.row input{width:auto}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f1f3f6;font-weight:600;font-size:13px}
.tree tr.dir td{background:#fafbfc;font-weight:600}.d1{padding-left:32px}.d2{padding-left:52px}.d3{padding-left:72px}.d4{padding-left:92px}
.chip{display:inline-block;padding:1px 8px;border-radius:99px;background:#eef0f4;font-size:12px}
.chip.pub{background:#e6f4ee;color:var(--ok)}.chip.priv{background:#eef1ff;color:#3538cd}.chip.warn{background:#fff4e5;color:var(--warn)}.chip.bad{background:#fdecea;color:var(--bad)}
.chip.t-hot{background:#fff1ec;color:#b93815}.chip.t-warm{background:#fff8e1;color:#93680a}.chip.t-cold{background:#e8f3fb;color:#175cd3}
.flash{padding:10px 14px;border-radius:8px;margin:10px 0;background:#e6f4ee;color:var(--ok)}.flash.err{background:#fdecea;color:var(--bad)}.flash.warn{background:#fff4e5;color:var(--warn)}
.muted{color:var(--mut)}.small{font-size:13px}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px;word-break:break-all}.path{word-break:break-all}
pre.preview,pre.codes{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:8px;overflow:auto;max-height:420px}
dl{display:grid;grid-template-columns:130px 1fr;gap:4px 10px;margin:0}dt{color:var(--mut)}dd{margin:0;word-break:break-word}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 4px 0 8px}.dot.up{background:#12b76a}.dot.down{background:#f04438}
.meter{height:12px;background:#e3e6eb;border-radius:99px;overflow:hidden;max-width:420px}.fill{height:100%;width:0;background:var(--acc)}
.hero{padding:40px 0}.hero h1{font-size:32px}.qr{display:block;width:220px;height:220px;margin:10px auto;background:#fff}
.evidence ul{padding-left:18px;margin:6px 0}
@media(max-width:760px){.grid2{grid-template-columns:1fr}}
