:root { --bg:#121212; --panel:#1C1C1C; --line:#333; --text:#F2F2F2; --muted:#9A9A9A; --blue:#005FB8; --orange:#D35400; --red:#E06C75; --ok:#27AE60; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.45 "Segoe UI", sans-serif; background:var(--bg); color:var(--text); }
a { color:#7EC8FF; text-decoration:none; }
.top { display:flex; justify-content:space-between; align-items:center; padding:14px 22px; background:#0E0E0E; border-bottom:1px solid var(--line); }
.brand { color:#fff; font-weight:700; }
nav a { margin-left:16px; color:#ccc; }
main { max-width:1100px; margin:0 auto; padding:24px; }
h1 { font-size:22px; margin:0 0 12px; }
.muted { color:var(--muted); }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin:16px 0 24px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px 16px; }
.card b { display:block; font-size:22px; }
table { width:100%; border-collapse:collapse; background:var(--panel); }
th, td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); font-size:13px; vertical-align:top; }
th { color:var(--muted); font-weight:600; }
.badge { display:inline-block; padding:2px 8px; border-radius:999px; font-size:12px; }
.pending, .awaiting_payment, .awaiting_fingerprint { background:#5A3A00; }
.issued, .active, .paid { background:#145A32; }
.revoked, .rejected, .expired, .overdue, .suspended { background:#5A1A1A; }
select { background:#252525; color:#fff; border:1px solid #444; border-radius:6px; padding:8px 10px; }
ol { padding-left:20px; }
.row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
input, button { font:inherit; }
label { display:block; }
input[type=text], input[type=password], input[type=number], input[type=file], select {
  background:#252525; color:#fff; border:1px solid #444; border-radius:6px; padding:8px 10px; max-width:100%;
}
input[type=text], input[type=password], input[type=number] { min-width:220px; }
button, .btn { background:var(--blue); color:#fff; border:0; border-radius:6px; padding:8px 12px; cursor:pointer; }
.btn.primary, .btn.orange { background:var(--orange); }
.btn.secondary { background:var(--blue); }
.btn.gray { background:#333; }
.btn.red { background:#8B2E2E; }
button:disabled, .btn[disabled] { opacity:0.45; cursor:not-allowed; }
.login-wrap { max-width:440px; margin:40px auto; }
.section { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:20px; margin:16px 0; }
.section h2 { margin:0 0 10px; font-size:18px; }
.changelog { white-space:pre-wrap; background:#0E0E0E; padding:16px; border-radius:8px; overflow:auto; }
textarea { width:100%; max-width:640px; background:#252525; color:#fff; border:1px solid #444; border-radius:6px; padding:8px 10px; font:inherit; }
.open { background:#5A3A00; }
.closed { background:#333; }
.flash { padding:10px 12px; border-radius:8px; margin-bottom:14px; }
.flash.ok { background:#145A32; }
.flash.error { background:#5A1A1A; }
.box { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:18px; margin:12px 0; }
.mono { font-family:Consolas,monospace; font-size:12px; word-break:break-all; }
