:root{--bg:#0b0f14;--panel:#121821;--panel2:#18202b;--line:#1e2735;--text:#e6edf3;--muted:#9aa7b5;--accent:#5b8cff;--accent2:#3f6fe8;--ok:#3ddc97;--warn:#f5b83d;--bad:#ff6b6b;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);background:#080b10}
.brand{font-weight:800;letter-spacing:.12em;color:var(--text);font-size:15px}.brand span{color:var(--accent)}
.nav .links{display:flex;gap:18px;align-items:center;font-size:14px}.nav .links a{color:var(--muted)}.nav .links a:hover{color:var(--text);text-decoration:none}
main{max-width:520px;margin:32px auto;padding:0 16px}main.wide{max-width:960px}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:32px 16px}.foot a{color:var(--muted)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:18px}
h1{font-size:22px;margin:0 0 6px}h2{font-size:16px;margin:0 0 12px;color:var(--text)}p{margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:13px}
label{display:block;font-size:13px;color:var(--muted);margin:12px 0 6px}
input[type=text],input[type=email],input[type=password],select{width:100%;padding:11px 12px;background:#0d1219;border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:15px;outline:none}
input:focus,select:focus{border-color:var(--accent)}input[readonly]{color:var(--muted)}
.check{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:14px;color:var(--muted)}.check input{width:auto}
button,.btn{display:inline-block;padding:11px 18px;border-radius:8px;border:0;background:var(--accent);color:#fff;font-weight:700;font-size:15px;cursor:pointer;margin-top:14px}
button:hover,.btn:hover{background:var(--accent2);text-decoration:none}button[disabled]{opacity:.6;cursor:wait}
button.secondary{background:var(--panel2);color:var(--text);border:1px solid var(--line)}button.danger{background:#3a1d22;color:var(--bad);border:1px solid #5a2a31}
button.link{background:none;border:0;padding:0;margin:0;color:var(--muted);font-weight:400;font-size:14px}button.link:hover{color:var(--text);background:none}
button.sm{padding:6px 10px;font-size:13px;margin:0}
form.inline{display:inline}
.err{display:none;background:#3a1d22;border:1px solid #5a2a31;color:#ffb3b3;padding:10px 12px;border-radius:8px;margin:12px 0;font-size:14px}.err.show{display:block}
.ok{display:none;background:#12321f;border:1px solid #1f5a34;color:#9fe8bf;padding:10px 12px;border-radius:8px;margin:12px 0;font-size:14px}.ok.show{display:block}
.row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.row:last-child{border-bottom:0}.row .k{color:var(--muted)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.badge.active{background:#12321f;color:var(--ok)}.badge.grace{background:#3a2f12;color:var(--warn)}.badge.lapsed,.badge.none{background:#2a2f38;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.stat{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px}.stat .lbl{font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.stat .val{font-family:var(--mono);font-size:22px;margin-top:4px}.stat .sub{font-family:var(--mono);font-size:12px;color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-weight:600;padding:8px 6px;border-bottom:1px solid var(--line)}td{padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.hidden{display:none}.codes{font-family:var(--mono);columns:2;font-size:15px;line-height:1.9}.qr{background:#fff;padding:8px;border-radius:8px;display:inline-block}
.center{text-align:center}.mt{margin-top:16px}.links-row{display:flex;justify-content:space-between;margin-top:14px;font-size:13px}
@media (max-width:600px){.nav .links{gap:12px;font-size:13px}main{margin:18px auto}.card{padding:18px}.codes{columns:1}}
