:root{
  --ink:#0e1420; --panel:#161d2b; --panel-2:#1d2634; --line:#28324333;
  --line-solid:#2b3547; --text:#e6ebf2; --muted:#93a0b4; --dim:#63708a;
  --accent:#3ddc84; --accent-dim:#1f6f47; --amber:#f0a63a; --red:#e2564d;
  --mono:ui-monospace,"JetBrains Mono",SFMono-Regular,Menlo,monospace;
  --sans:"Inter",system-ui,-apple-system,Segoe UI,sans-serif;
  --radius:10px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--sans);
  font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1040px;margin:0 auto;padding:28px 22px}
.center{max-width:400px;margin:8vh auto;padding:0 22px}

.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.02em}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-dim)}
.brand small{color:var(--dim);font-weight:400;letter-spacing:.04em}

.topbar{display:flex;justify-content:space-between;align-items:center;
  padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--line-solid)}
.topbar .who{color:var(--muted);font-size:13px}

.card{background:var(--panel);border:1px solid var(--line-solid);
  border-radius:var(--radius);padding:22px}
.card+.card{margin-top:18px}
h1{font-size:20px;font-weight:600;margin:0 0 4px}
h2{font-size:15px;font-weight:600;margin:0 0 14px;color:var(--muted);
  text-transform:uppercase;letter-spacing:.06em}
.sub{color:var(--muted);font-size:13px;margin:0 0 20px}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.stat{background:var(--panel);border:1px solid var(--line-solid);border-radius:var(--radius);padding:16px}
.stat .n{font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.stat .l{color:var(--dim);font-size:12px;text-transform:uppercase;letter-spacing:.05em}

table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--dim);font-weight:500;font-size:12px;
  text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;border-bottom:1px solid var(--line-solid)}
td{padding:10px;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:none}
.mono{font-family:var(--mono);font-size:13px;color:var(--text)}
.muted{color:var(--muted)}

.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;
  font-weight:500;border:1px solid transparent}
.pill.active{color:var(--accent);border-color:var(--accent-dim);background:#12331f}
.pill.suspended{color:var(--amber);border-color:#5c451c;background:#33260f}
.pill.revoked,.pill.blocked{color:var(--red);border-color:#5c2420;background:#331512}

label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}
input,select{width:100%;padding:11px 12px;background:var(--panel-2);color:var(--text);
  border:1px solid var(--line-solid);border-radius:8px;font-size:15px;font-family:inherit}
input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.otp{font-family:var(--mono);font-size:22px;letter-spacing:.4em;text-align:center}

.btn{display:inline-block;padding:11px 18px;background:var(--accent);color:#062012;
  border:none;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;font-family:inherit}
.btn:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line-solid)}
.btn.sm{padding:6px 11px;font-size:13px}
.btn.danger{background:transparent;color:var(--red);border:1px solid #5c2420}
.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.row>div{flex:1;min-width:140px}
.actions{display:flex;gap:6px;flex-wrap:wrap}

.alert{padding:11px 14px;border-radius:8px;font-size:14px;margin-bottom:16px}
.alert.err{background:#331512;color:#f0a79f;border:1px solid #5c2420}
.alert.info{background:#0f2a33;color:#9fd8e2;border:1px solid #1c4a5c}

.qr{background:#fff;padding:14px;border-radius:10px;width:210px;margin:6px auto 14px}
.qr img{width:100%;display:block}
.secret{font-family:var(--mono);font-size:13px;color:var(--muted);text-align:center;
  word-break:break-all;margin-bottom:16px}
.hint{color:var(--dim);font-size:12.5px;margin-top:8px}
.divider{display:flex;align-items:center;gap:12px;color:var(--dim);font-size:12px;margin:18px 0}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line-solid)}
@media (max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
