:root{
  --bg:#323434; --panel:#2b2d2d; --fg:#d8d9d8; --dim:#969798; --accent:#7ac8a8;
  --ok:#4caf7d; --bad:#d9534f; --border:#4a4c4c;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:'DejaVu Sans Mono','Courier New',monospace;
  padding:0;
}
a{ color:var(--accent); text-decoration:none; transition:opacity .15s ease; }
a:hover{ opacity:.85; text-decoration:underline; }
table td a{ color:var(--accent); font-weight:600; font-size:12px; }

.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px; border-bottom:1px solid var(--border);
}
.topbar .brand{ font-size:22px; font-weight:bold; }
.topbar a{ color:var(--dim); text-decoration:none; font-size:13px; }
.topbar a:hover{ color:var(--fg); }
.wrap{ max-width:960px; margin:0 auto; padding:28px; }
.card{
  background:var(--panel); border:1px solid var(--border); border-radius:10px;
  padding:24px; margin-bottom:20px;
}
h1{ font-size:20px; margin:0 0 16px; }
label{ display:block; font-size:12px; text-transform:uppercase; color:var(--dim); margin:14px 0 6px; }
input[type=text], input[type=password]{
  width:100%; padding:10px 12px; background:#232525; border:1px solid var(--border);
  border-radius:6px; color:var(--fg); font-family:inherit; font-size:14px;
}
button, .btn{
  display:inline-block; margin-top:18px; padding:10px 18px; background:var(--accent);
  color:#1c1e1e; border:none; border-radius:6px; font-weight:bold; cursor:pointer;
  font-family:inherit; font-size:14px; text-decoration:none;
}
button.secondary, .btn.secondary{ background:transparent; border:1px solid var(--border); color:var(--fg); }
button.danger, .btn.danger{ background:var(--bad); color:#fff; }
table{ width:100%; border-collapse:collapse; font-size:13px; }
th, td{ text-align:left; padding:10px; border-bottom:1px solid var(--border); }
th{ color:var(--dim); font-weight:normal; text-transform:uppercase; font-size:11px; }
.badge{ padding:3px 10px; border-radius:20px; font-size:11px; font-weight:bold; }
.badge.active{ background:rgba(76,175,125,.15); color:var(--ok); border:1px solid var(--ok); }
.badge.revoked{ background:rgba(217,83,79,.15); color:var(--bad); border:1px solid var(--bad); }
.error{ background:rgba(217,83,79,.12); border:1px solid var(--bad); color:#f2a9a7; padding:10px 14px; border-radius:6px; margin-bottom:14px; font-size:13px;}
.success{ background:rgba(76,175,125,.12); border:1px solid var(--ok); color:var(--ok); padding:10px 14px; border-radius:6px; margin-bottom:14px; font-size:13px;}
.mono-sm{ font-size:12px; color:var(--accent); word-break:break-all; }
.downloads a{ margin-right:12px; font-size:13px; }
.center{ text-align:center; }
