:root{--ink:#31333F;--muted:#5b5e6b;--line:#e3e5ea;--side:#F0F2F6;--red:#d62f2f;--red-dark:#b82424;
--ok-bg:#E7F4EA;--ok:#145c2a;--warn-bg:#FFF1D6;--warn:#7a5200;--bad-bg:#FDE7E9;--bad:#8B1E2B}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);background:#fff}
a{color:#0b5cad}a:hover{color:#063f78}
h1{font-size:28px;margin:0 0 12px}h2{font-size:19px;margin:0 0 10px}
.test-banner{background:#8B1E2B;color:#fff;font-weight:700;text-align:center;padding:6px 10px;letter-spacing:.5px}
.shell{display:flex;min-height:100vh}
.sidebar{width:250px;flex-shrink:0;background:var(--side);padding:18px 14px;display:flex;flex-direction:column;gap:4px}
.brand{font-size:20px;font-weight:700;padding:0 10px}
.depot{font-size:13px;color:var(--muted);padding:2px 10px 14px}
.nav{display:block;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none}
.nav:hover{background:#e6e9ef;color:var(--ink)}.nav.active{background:#fff;font-weight:600}
.grow{flex-grow:1}.who{font-size:13px;color:var(--muted);padding:8px 10px}
.main{flex-grow:1;padding:26px 36px 60px;max-width:1200px;min-width:0}
.card{border:1px solid var(--line);border-radius:10px;padding:18px;margin:0 0 16px;background:#fff}
.form{display:flex;flex-direction:column;gap:8px;max-width:520px}
.form input[type=text],.form input[type=password],.form input[type=file],.form input:not([type]){font:inherit;font-size:16px;height:42px;padding:6px 10px;border:1px solid #c9ccd6;border-radius:8px;background:var(--side)}
fieldset{border:0;padding:0;margin:0 0 6px}legend{font-weight:600;margin-bottom:4px}
.radio,.check{display:inline-flex;gap:6px;align-items:center;margin-right:14px}
.btn{font:inherit;font-size:15px;min-height:44px;padding:8px 16px;border:1px solid #c9ccd6;background:#fff;color:var(--ink);border-radius:8px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn:hover{border-color:var(--red);color:var(--red)}
.btn-primary{background:var(--red);border-color:var(--red);color:#fff}.btn-primary:hover{background:var(--red-dark);color:#fff}
.btn-sm{min-height:34px;font-size:13px;padding:4px 10px}
.alert{border-radius:8px;padding:10px 14px;margin:0 0 12px}
.alert-error{background:var(--bad-bg);color:var(--bad)}.alert-warning{background:var(--warn-bg);color:var(--warn)}
.alert-success,.alert-info{background:var(--ok-bg);color:var(--ok)}
.chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;background:var(--side)}
.chip-ok{background:var(--ok-bg);color:var(--ok)}.chip-bad{background:var(--bad-bg);color:var(--bad)}
.muted{color:var(--muted);font-size:14px}
.tbl{border-collapse:collapse;width:100%;font-size:14px}
.tbl th{text-align:left;font-weight:600;background:#F7F8FA;border-bottom:1px solid var(--line);padding:8px}
.tbl td{border-bottom:1px solid #eef0f3;padding:7px 8px}
.scroll{overflow-x:auto}
.summary{display:grid;grid-template-columns:220px 1fr;gap:6px 12px}.summary dt{font-weight:600}.summary dd{margin:0}
.auth{max-width:560px;margin:40px auto}
.qr svg{width:220px;height:220px;background:#fff}
.secret{word-break:break-all}
.codes{columns:2;font-size:16px}
@media (max-width:760px){.shell{flex-direction:column}.sidebar{width:auto}.main{padding:18px 16px}}
