
:root{--bg:#0f1720;--panel:#16212e;--ink:#e8eef5;--muted:#93a4b5;--brand:#2fb3a6;
--accent:#f4b942;--bad:#e05561;--ok:#39b06b;--line:#243244}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--brand)}
header{background:var(--panel);border-bottom:1px solid var(--line);padding:14px 20px;
display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
header .brand{font-weight:600;letter-spacing:.3px}
header .brand small{color:var(--muted);font-weight:400;margin-left:8px}
nav a{margin-right:14px;text-decoration:none;color:var(--muted)}
nav a.active,nav a:hover{color:var(--ink)}
main{max-width:1080px;margin:0 auto;padding:22px 20px 60px}
h1{font-size:22px;margin:0 0 4px}
h2{font-size:17px;margin:26px 0 10px}
p.sub{color:var(--muted);margin:0 0 18px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}
.stat b{display:block;font-size:24px;margin-bottom:2px}
.stat span{color:var(--muted);font-size:13px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
input,select{background:#0c141d;border:1px solid var(--line);color:var(--ink);border-radius:7px;
padding:9px 11px;font:inherit;width:100%;max-width:420px}
button,.btn{background:var(--brand);color:#06231f;border:0;border-radius:7px;padding:9px 14px;
font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
button.ghost,.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}
button.danger{background:var(--bad);color:#fff}
label{display:block;margin:12px 0 4px;color:var(--muted);font-size:13px}
pre{background:#0c141d;border:1px solid var(--line);border-radius:8px;padding:12px;
overflow:auto;font-size:12.5px;max-height:420px}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600}
.pill.active{background:rgba(57,176,107,.16);color:#6ede9c}
.pill.disabled{background:rgba(224,85,97,.16);color:#ff9aa2}
.pill.archived{background:rgba(244,185,66,.16);color:var(--accent)}
.pill.used{background:rgba(147,164,181,.18);color:var(--muted)}
.pill.revoked{background:rgba(224,85,97,.16);color:#ff9aa2}
.pill.expired{background:rgba(147,164,181,.18);color:var(--muted)}
.msg{padding:11px 14px;border-radius:8px;margin:0 0 16px;border:1px solid var(--line)}
.msg.ok{border-color:rgba(57,176,107,.5);background:rgba(57,176,107,.10)}
.msg.err{border-color:rgba(224,85,97,.5);background:rgba(224,85,97,.10)}
.msg.warn{border-color:rgba(244,185,66,.5);background:rgba(244,185,66,.10)}
.token{font:13px ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
.inline{display:inline}
.muted{color:var(--muted)}
.center{text-align:center}
.spaced{margin-top:12px}
.ack{color:var(--muted);font-size:13px;display:flex;gap:8px;align-items:flex-start;margin:6px 0}
.ack input{width:auto;margin-top:2px}
.loginwrap{max-width:380px;margin:9vh auto}
