:root { --bg:#0d1117; --panel:#161b22; --line:#30363d; --fg:#e6edf3; --muted:#8b949e; --accent:#2f81f7;
        --ok:#1a7f37; --warn:#9a6700; --err:#cf222e; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif; }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
.top { display:flex; justify-content:space-between; align-items:center; padding:12px 24px; border-bottom:1px solid var(--line); }
.brand { font-weight:700; color:var(--fg); display:inline-flex; align-items:center; gap:9px; }
.brand img { display:block; }
.hints { margin:6px 0 12px; padding-left:18px; font-size:13px; }
.codes { list-style:none; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.codes code { font-size:15px; letter-spacing:.06em; }
.qr { background:#fff; padding:12px; border-radius:8px; width:max-content; margin:12px 0; }
.btn.danger { background:#8b2c25; }
nav a, nav form { margin-left:16px; }
.wrap { max-width:960px; margin:0 auto; padding:24px 16px; }
.hero { padding:48px 0 24px; } .hero h1 { font-size:2rem; margin:0 0 8px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:720px) { .grid2, .grid3 { grid-template-columns:1fr; } }
.card { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:16px 20px; margin:16px 0; }
.narrow { max-width:420px; margin:48px auto; }
label { display:block; margin:10px 0; } input[type=text], input[type=email], input[type=password], input:not([type]) {
  width:100%; padding:8px 10px; background:var(--bg); border:1px solid var(--line); border-radius:6px; color:var(--fg); }
.check { display:flex; gap:10px; align-items:flex-start; } .check input { margin-top:4px; }
.btn { display:inline-block; background:var(--accent); color:#fff; border:0; border-radius:6px; padding:8px 14px; cursor:pointer; font:inherit; }
.btn.small { padding:4px 10px; font-size:13px; } .btn:disabled { opacity:.4; cursor:not-allowed; }
button.link { background:none; border:0; color:var(--accent); cursor:pointer; font:inherit; }
.inline { display:inline; }
.table { width:100%; border-collapse:collapse; margin:12px 0; } .table th, .table td { text-align:left; padding:8px; border-bottom:1px solid var(--line); vertical-align:top; }
.table th { color:var(--muted); font-weight:500; }
code, pre { background:var(--bg); border:1px solid var(--line); border-radius:4px; padding:2px 6px; font-size:13px; }
pre { padding:12px; overflow:auto; }
.muted { color:var(--muted); } .small { font-size:13px; } .big { font-size:1.2rem; }
.ok { color:#3fb950; } .error { color:#ff7b72; } .warn { color:#d29922; }
.tag { display:inline-block; padding:2px 8px; border-radius:999px; font-size:12px; border:1px solid var(--line); }
.tag-approved, .tag-done, .tag-clean { border-color:var(--ok); color:#3fb950; }
.tag-pending, .tag-queued, .tag-running, .tag-findings { border-color:var(--warn); color:#d29922; }
.tag-declined, .tag-failed { border-color:var(--err); color:#ff7b72; }
.sev { display:inline-block; min-width:22px; text-align:center; padding:0 5px; border-radius:4px; font-size:12px; margin-right:2px; color:#fff; }
.sev.crit { background:#8e1519; } .sev.high { background:#cf222e; } .sev.med { background:#9a6700; } .sev.low { background:#1f6feb; } .sev.info { background:#484f58; }
footer { font-size:13px; border-top:1px solid var(--line); margin-top:48px; }

/* admin */
.admin-banner { display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:8px 14px; margin-bottom:18px; border:1px solid #8957e5; border-radius:8px;
  background:rgba(137,87,229,.12); }
.admin-banner nav { display:flex; gap:14px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:18px; }
.stat { display:flex; flex-direction:column; gap:2px; }
.stat .big { font-size:1.6rem; font-weight:700; }

/* readiness scores */
.score-row { margin: 14px 0 18px; }
.score-head { display:flex; justify-content:space-between; align-items:baseline; }
.score { font-size:1.4rem; font-weight:700; }
.score.good { color:#3fb950; } .score.ok { color:#d29922; } .score.poor { color:#ff7b72; }
.bar { height:6px; border-radius:3px; background:var(--line); overflow:hidden; margin:6px 0 10px; }
.bar span { display:block; height:100%; background:linear-gradient(90deg,#1f6feb,#3fb950); }
.checks { list-style:none; padding:0; margin:0; font-size:13px; }
.checks li { display:flex; gap:8px; padding:3px 0; align-items:flex-start; }
.checks .mark { width:14px; flex:none; }
.checks li.pass .mark { color:#3fb950; } .checks li.fail .mark { color:#ff7b72; }
.checks .fix { margin:2px 0 4px; padding-left:2px; }

/* onboarding wizard */
.step { border-left:3px solid var(--line); }
.step.done { border-left-color:#3fb950; }
.step.current { border-left-color:#1f6feb; }
.step.later { opacity:.6; }
.step h3 { display:flex; align-items:center; gap:10px; margin-top:0; }
.step .mark { display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:50%; background:var(--line); font-size:13px; flex:none; }
.step.done .mark { background:#3fb950; color:#0d1117; }
.step.current .mark { background:#1f6feb; color:#fff; }
.inline-check { display:flex; gap:8px; align-items:flex-start; font-size:14px; margin:10px 0; }
.inline-check input { width:auto; margin-top:3px; }
#payment-element { margin:14px 0; }
