:root{--red:#DA0810;--red-600:#B7060D;--ink:#1c2026;--mut:#6b7280;--line:#e5e7eb;--bg:#f4f5f7;--ok:#1E9E5A;--warn:#D99400}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
h1,h2{font-family:Poppins,Inter,sans-serif;margin:0 0 12px}
.top{background:#fff;border-bottom:1px solid var(--line);padding:12px 24px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.top b{color:var(--red);font-family:Poppins,sans-serif}
.top a{color:var(--ink);text-decoration:none;font-weight:500}
.top a:hover{color:var(--red)}
.top .sp{flex:1}
.wrap{max-width:1100px;margin:24px auto;padding:0 16px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px}
.login{max-width:380px;margin:9vh auto}
label{display:block;font-weight:600;margin:12px 0 4px}
input,select{width:100%;padding:9px 11px;border:1px solid #cfd3d9;border-radius:8px;font:inherit;background:#fff}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}
.row>div{flex:1;min-width:150px}
button,.btn{background:var(--red);color:#fff;border:0;border-radius:8px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}
button:hover{background:var(--red-600)}
button.gh{background:#fff;color:var(--ink);border:1px solid #cfd3d9}
button.gh:hover{background:#f0f1f3}
button.sm{padding:5px 10px;font-size:12px}
button:disabled{opacity:.5;cursor:default}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;text-transform:uppercase;color:var(--mut)}
.tag{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:600;background:#eef0f3}
.tag.ok{background:#e3f6ec;color:var(--ok)}.tag.bad{background:#fde8e9;color:var(--red-600)}.tag.warn{background:#fff3d6;color:#8a5d00}
.msg{padding:10px 12px;border-radius:8px;margin:12px 0;display:none}
.msg.on{display:block}.msg.err{background:#fde8e9;color:var(--red-600)}.msg.okm{background:#e3f6ec;color:#0f6a3b}.msg.warn{background:#fff3d6;color:#8a5d00}
.pass{font-family:Consolas,monospace;font-size:18px;background:#fffbe6;border:1px dashed var(--warn);padding:10px;border-radius:8px;user-select:all}
.mut{color:var(--mut)}
.pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:12px}
.det{font-size:12px;color:var(--mut);word-break:break-word}
