:root{--bg:#0f1115;--card:#181b22;--card2:#12151b;--b:#2a2f3a;--t:#e8eaf0;--m:#8b93a5;--p:#fe2c55;--g:#25f4ee;--ok:#3ddc84;--warn:#f5c542;--bad:#ff5c5c}
*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--t);font:15px/1.45 system-ui,"Segoe UI",sans-serif}
body.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
a{color:var(--g)}h1,h2,h3{margin:0 0 8px}h1{font-size:24px}h2{font-size:18px}h3{font-size:15px}.muted{color:var(--m)}.small{font-size:13px}[hidden]{display:none!important}
.card{background:var(--card);border:1px solid var(--b);border-radius:14px;padding:18px}.login{width:100%;max-width:420px;text-align:center}.logo{font-size:44px}
.btns{display:flex;flex-direction:column;gap:10px;margin:18px 0 8px}
.btn,button{background:#0f1218;color:var(--t);border:1px solid var(--b);border-radius:10px;padding:9px 14px;font:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:hover,button:hover:not(:disabled){border-color:var(--g)}button:disabled{opacity:.45;cursor:default}
.btn.pri,button.pri{background:var(--p);border-color:var(--p);font-weight:600;color:#fff}.btn.danger,button.danger{border-color:#7a2c3a;background:#2a1519;color:#ffb3bd}.btn.sm,button.sm{padding:4px 10px;font-size:13px}
.provider{padding:12px 14px;font-weight:600;font-size:16px}.provider::before{content:attr(data-i);display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:700;color:#fff}
.provider.google::before{background:#4285f4}.provider.discord::before{background:#5865f2}
.alert{background:#2a1519;border:1px solid #7a2c3a;color:#ffb3bd;border-radius:10px;padding:10px 12px;margin-top:12px;text-align:left}.alert.info{background:#10222a;border-color:#1f4b5a;color:#bdeeff}
input,select,textarea{background:#0f1218;color:var(--t);border:1px solid var(--b);border-radius:8px;padding:8px 10px;font:inherit;max-width:100%}textarea{width:100%;resize:vertical}label{display:block;color:var(--m);font-size:13px;margin:10px 0 4px}
header.top{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--b);flex-wrap:wrap}header.top .sp{flex:1}header.top .brand{font-weight:700;font-size:17px}
.avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#222;flex:none}.avatar.ph{display:grid;place-items:center;font-weight:700;background:linear-gradient(135deg,var(--g),var(--p));color:#0b0d11}.avatar.lg{width:56px;height:56px;font-size:22px}
.wrap{max-width:980px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:16px}.wrap.wide{max-width:1200px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.sp{justify-content:space-between}.grow{flex:1;min-width:160px}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid}.b-ok{color:var(--ok);border-color:#1e6b44;background:#10261b}.b-warn{color:var(--warn);border-color:#6b5a1e;background:#2a2410}.b-bad{color:var(--bad);border-color:#7a2c3a;background:#2a1519}.b-muted{color:var(--m);border-color:var(--b);background:#14171d}.b-info{color:var(--g);border-color:#1f4b5a;background:#10222a}
.lic{display:flex;flex-direction:column;gap:6px}.lic .big{font-size:22px;font-weight:700}.lic .row{margin-top:8px}.bar{height:8px;border-radius:6px;background:#0f1218;border:1px solid var(--b);overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--g),var(--p));width:var(--w,0%)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;padding:10px 20px;border-bottom:1px solid var(--b)}.tabs button{border-radius:999px}.tabs button.on{border-color:var(--g);background:#14232a}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.stat{background:var(--card2);border:1px solid var(--b);border-radius:12px;padding:12px;cursor:pointer;text-align:left;display:block}.stat b{display:block;font-size:26px}.stat span{color:var(--m);font-size:13px}.stat:hover{border-color:var(--g)}
.tw{overflow-x:auto;border:1px solid var(--b);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid #20242d;vertical-align:middle}th{color:var(--m);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:var(--card2);white-space:nowrap}tr:last-child td{border-bottom:0}tbody tr.click{cursor:pointer}tbody tr.click:hover{background:#171b23}
.who{display:flex;align-items:center;gap:10px;min-width:180px}.who b{display:block}.who small{color:var(--m)}.empty{padding:30px;text-align:center;color:var(--m)}
.pager{display:flex;align-items:center;gap:10px;justify-content:center;margin-top:6px}
.backdrop{position:fixed;inset:0;background:rgba(5,7,10,.7);display:flex;align-items:flex-start;justify-content:center;padding:4vh 14px;overflow:auto;z-index:50}.modal{background:var(--card);border:1px solid var(--b);border-radius:14px;width:100%;max-width:560px}.modal.wide{max-width:820px}
.mhead{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--b)}.mhead h2{margin:0}.mbody{padding:16px 18px;display:flex;flex-direction:column;gap:14px}.x{padding:2px 9px}
.sec{border:1px solid var(--b);border-radius:12px;padding:12px 14px;background:var(--card2)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:640px){.grid2{grid-template-columns:1fr}}
.ev{font-size:13px;padding:6px 0;border-bottom:1px solid #20242d}.ev:last-child{border-bottom:0}.ev time{color:var(--m);margin-right:8px}
code,.mono{font-family:ui-monospace,Consolas,monospace;font-size:13px}.token{background:#0b0d11;border:1px solid var(--b);border-radius:8px;padding:10px;word-break:break-all;user-select:all}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:#10261b;border:1px solid #1e6b44;color:#c9f5dc;padding:10px 16px;border-radius:10px}.toast.bad{background:#2a1519;border-color:#7a2c3a;color:#ffb3bd}
