:root {
  --ink: #0b1220;
  --paper: #f3f4f1;
  --line: #d8dbd4;
  --steel: #2f4858;
  --alert: #b3532e;
  --ok: #3a6b52;
  --mono: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.5;
}
.wrap { max-width: 720px; margin: 0 auto; padding: 48px 24px 96px; }
.brand {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--steel);
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 40px;
}
.brand::before { content: "▲"; color: var(--alert); }
h1 { font-size: 28px; margin: 0 0 8px; letter-spacing: -0.01em; }
.sub { color: #5a6070; margin: 0 0 32px; font-size: 15px; }
label { display: block; font-size: 13px; font-weight: 600; margin: 20px 0 6px; }
input[type=text], input[type=email], input[type=password], textarea, select {
  width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 4px;
  font-family: var(--sans); font-size: 14px; background: #fff;
}
input[type=file] { display: block; margin-top: 4px; }
textarea { min-height: 100px; resize: vertical; }
button {
  margin-top: 28px; background: var(--ink); color: #fff; border: none;
  padding: 12px 22px; border-radius: 4px; font-size: 14px; font-weight: 600;
  cursor: pointer; letter-spacing: 0.01em;
}
button:hover { background: #1a2740; }
button.danger { background: var(--alert); }
button.ghost { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.msg { padding: 12px 14px; border-radius: 4px; font-size: 13px; margin-top: 16px; display: none; }
.msg.show { display: block; }
.msg.err { background: #fbe9e2; color: var(--alert); border: 1px solid #e8c4b0; }
.msg.ok { background: #e7f0ea; color: var(--ok); border: 1px solid #c3dccb; }
.status-pill {
  display: inline-block; font-family: var(--mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.06em; padding: 4px 10px; border-radius: 999px;
}
.status-pending { background: #f0e6c8; color: #7a5c0a; }
.status-approved { background: #d9ece0; color: var(--ok); }
.status-denied { background: #f5d9d0; color: var(--alert); }
.status-completed { background: #d9ece0; color: var(--ok); }
.status-running, .status-queued { background: #dbe6ef; color: var(--steel); }
.status-failed { background: #f5d9d0; color: var(--alert); }
.card {
  background: #fff; border: 1px solid var(--line); border-radius: 6px;
  padding: 18px 20px; margin-bottom: 14px;
}
.card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.mono { font-family: var(--mono); font-size: 13px; }
.finding { border-top: 1px solid var(--line); padding: 10px 0; font-size: 13px; }
.cve { display: inline-block; background: #fbe9e2; color: var(--alert); font-family: var(--mono);
  font-size: 11px; padding: 2px 6px; border-radius: 3px; margin: 2px 4px 2px 0; }
nav a { color: var(--steel); text-decoration: none; font-size: 13px; margin-right: 16px; }
.spin { animation: spin 1s linear infinite; display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }
