:root{
  --void:#0A0B0C; --ink:#141719; --ink-2:#1B1E21; --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.16);
  --paper:#F2F3EE; --mute:#9CA1A0; --faint:#6B7070; --lime:#CFF24A; --on-lime:#0A0C05;
  --aqua:#3BA9E8; --violet:#7C5CFF; --ember:#FF6B2C; --rose:#FF3B63; --good:#3BE0A0;
}
*{box-sizing:border-box}
body{margin:0;background:
  radial-gradient(120vw 40vh at 50% -12%,rgba(207,242,74,.06),transparent 70%),var(--void);
  color:var(--paper);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,sans-serif;
  font-size:15px;line-height:1.5;padding-bottom:60px}
a{color:inherit;text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}

/* header + nav */
header{position:sticky;top:0;z-index:20;background:rgba(10,11,12,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:16px;height:60px}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:18px;letter-spacing:-.02em}
.brand b{width:11px;height:11px;border-radius:50%;background:var(--lime);box-shadow:0 0 16px var(--lime)}
.brand small{font-weight:600;font-size:11px;color:var(--faint);letter-spacing:.14em;text-transform:uppercase;margin-left:2px}
.nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{padding:8px 13px;border-radius:9px;color:var(--mute);font-weight:600;font-size:13.5px;white-space:nowrap}
.nav a:hover{color:var(--paper);background:rgba(255,255,255,.04)}
.nav a.on{color:var(--on-lime);background:var(--lime)}
.grow{flex:1}
.status{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--mute)}
.status .d{width:8px;height:8px;border-radius:50%}
.d.up{background:var(--good);box-shadow:0 0 10px var(--good)} .d.down{background:var(--rose)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:10px;
  border:1px solid var(--line-2);background:var(--ink);color:var(--paper);font-weight:600;font-size:13.5px;cursor:pointer}
.btn:hover{border-color:var(--lime)}
.btn.lime{background:var(--lime);color:var(--on-lime);border-color:transparent}
.btn.sm{height:32px;padding:0 11px;font-size:12.5px}
.btn.danger:hover{border-color:var(--rose);color:#FF9AA8}

/* headings */
h1.page{font-size:22px;letter-spacing:-.02em;margin:26px 0 2px}
.pagesub{color:var(--mute);font-size:14px;margin:0 0 4px}
h2{font-size:15px;letter-spacing:.02em;margin:32px 0 12px;display:flex;align-items:center;gap:10px}
h2 .tag{font-size:11px;color:var(--faint);font-weight:600;letter-spacing:.12em;text-transform:uppercase}

/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:18px}
.kpi{background:var(--ink);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.kpi .n{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1}
.kpi .l{color:var(--mute);font-size:12.5px;margin-top:7px}
.kpi .sub{color:var(--faint);font-size:11.5px;margin-top:3px}
.kpi.accent{background:linear-gradient(160deg,rgba(207,242,74,.12),transparent 70%);border-color:rgba(207,242,74,.3)}
.kpi.accent .n{color:var(--lime)}

/* panels + charts */
.panels{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-top:14px}
@media(max-width:760px){.panels{grid-template-columns:1fr}}
.panel{background:var(--ink);border:1px solid var(--line);border-radius:16px;padding:18px}
.panel h3{margin:0 0 14px;font-size:13.5px;color:var(--mute);font-weight:600}
.chart{display:flex;align-items:flex-end;gap:3px;height:120px}
.chart .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;position:relative}
.chart .col b{display:block;width:100%;background:linear-gradient(180deg,var(--lime),rgba(207,242,74,.35));
  border-radius:4px 4px 0 0;min-height:2px}
.chart .col:hover b{opacity:.8}
.chart .col .tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);white-space:nowrap;
  background:#000;border:1px solid var(--line-2);border-radius:6px;padding:3px 7px;font-size:11px;
  opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:4px}
.chart .col:hover .tip{opacity:1}
.axis{display:flex;justify-content:space-between;color:var(--faint);font-size:10.5px;margin-top:8px}
.clist{display:flex;flex-direction:column;gap:9px}
.crow{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;font-size:13.5px}
.cbar{grid-column:1/-1;height:6px;border-radius:3px;background:var(--ink-2);overflow:hidden}
.cbar i{display:block;height:100%;background:linear-gradient(90deg,var(--aqua),var(--violet));border-radius:3px}

/* tables */
.tablecard{background:var(--ink);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:14px}
.tbtools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.search{flex:1;min-width:180px;height:38px;border-radius:10px;border:1px solid var(--line-2);background:#0D0F11;
  color:var(--paper);padding:0 12px;font-size:14px}
.search:focus{outline:2px solid var(--lime);outline-offset:1px}
.tbwrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}
th,td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--faint);font-weight:600;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;user-select:none}
tbody tr:hover{background:rgba(255,255,255,.02)}
td.email{color:var(--paper)} td .mut,.mut{color:var(--faint)}
.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600}
.pill.on{background:rgba(59,224,160,.14);color:var(--good)} .pill.off{background:rgba(255,255,255,.06);color:var(--faint)}
.empty{padding:40px 16px;text-align:center;color:var(--faint)}
.count{color:var(--faint);font-size:12.5px}
.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:12px 16px}
.offline{margin-top:14px;background:rgba(255,59,99,.08);border:1px solid rgba(255,59,99,.3);color:#FF9AA8;
  border-radius:14px;padding:16px 18px;font-size:13.5px}
.offline code{background:rgba(255,255,255,.08);padding:1px 6px;border-radius:5px}

/* toast */
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);opacity:0;
  background:var(--lime);color:var(--on-lime);font-weight:700;padding:11px 18px;border-radius:12px;
  transition:transform .3s,opacity .3s;z-index:50}
.toast.show{transform:translateX(-50%);opacity:1}

/* login */
.login-body{min-height:100vh;display:grid;place-items:center}
.login-card{width:min(380px,92vw);background:var(--ink);border:1px solid var(--line);border-radius:20px;padding:30px 26px}
.login-card h1{font-size:18px;margin:22px 0 4px}
.login-card p.s{color:var(--mute);font-size:13.5px;margin:0 0 20px}
.login-card label{display:block;font-size:12px;color:var(--mute);margin:14px 0 6px}
.login-card input{width:100%;height:48px;border-radius:12px;border:1px solid var(--line-2);background:#0D0F11;
  color:var(--paper);padding:0 14px;font-size:15px}
.login-card input:focus{outline:2px solid var(--lime);outline-offset:1px}
.login-card button{width:100%;height:50px;margin-top:20px;border:0;border-radius:12px;background:var(--lime);
  color:var(--on-lime);font-weight:700;font-size:15px;cursor:pointer}
.login-card .err{margin-top:14px;color:#FF7B8E;font-size:13.5px}
