:root{--fg:#0f172a;--muted:#475569;--bg:#fff;--soft:#f1f5f9;--brand:#4f46e5;--brand2:#4338ca;--ok:#15803d;--bad:#b91c1c;--warn:#b45309;--line:#e2e8f0}*{box-sizing:border-box}body{color:var(--fg);background:var(--bg);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55}a{color:var(--brand)}main{max-width:1040px;min-height:70vh;margin:0 auto;padding:24px 20px 64px}.site-header{justify-content:space-between;align-items:center;max-width:1040px;margin:0 auto;padding:16px 20px;display:flex}.site-header nav{align-items:center;gap:18px;display:flex}.site-header nav a{color:var(--fg);text-decoration:none}.logo{color:var(--fg);font-size:1.3rem;font-weight:800;text-decoration:none}.logo span{color:var(--brand)}.site-footer{color:var(--muted);border-top:1px solid var(--line);justify-content:center;gap:18px;padding:28px;font-size:.9rem;display:flex}.site-footer a{color:var(--muted)}.btn{background:var(--brand);cursor:pointer;border:0;border-radius:8px;padding:11px 18px;font-size:1rem;font-weight:600;text-decoration:none;display:inline-block;color:#fff!important}.btn:hover{background:var(--brand2)}.btn:disabled{opacity:.6;cursor:wait}.btn.small{padding:7px 12px;font-size:.9rem}.btn.ghost{border:1px solid var(--brand);background:0 0;color:var(--brand)!important}.btn.danger{border:1px solid var(--line);background:0 0;color:var(--bad)!important}input[type=text],input[type=email],input[type=password]{border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:11px 12px;font-size:1rem}.hero{text-align:center;padding:48px 0 24px}.hero h1{letter-spacing:-.02em;margin:0 0 16px;font-size:clamp(2rem,5vw,3.1rem);line-height:1.1}.hero p.lead{color:var(--muted);max-width:680px;margin:0 auto 28px;font-size:1.2rem}.launch-form{flex-wrap:wrap;gap:10px;max-width:620px;margin:0 auto;display:flex}.launch-form input{flex:300px}.launch-form .error{flex-basis:100%}.small-print{color:var(--muted);font-size:.88rem}.grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:32px 0;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:20px}.card h3{margin-top:0}.soft{background:var(--soft);border-radius:12px;padding:24px}.price{font-size:2.4rem;font-weight:800}.price small{color:var(--muted);font-size:1rem;font-weight:500}.plan.featured{border:2px solid var(--brand)}ul.ticks{padding-left:0;list-style:none}ul.ticks li:before{content:"✓ ";color:var(--ok);font-weight:700}.stack{flex-direction:column;gap:14px;max-width:420px;display:flex}.stack label{flex-direction:column;gap:6px;font-weight:600;display:flex}.stack label.check{color:var(--muted);flex-direction:row;align-items:flex-start;gap:8px;font-size:.92rem;font-weight:400}.inline{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.inline input{flex:280px}.inline-btn{flex-direction:column;gap:4px;margin-right:8px;display:inline-flex}.error{color:var(--bad);margin:4px 0}.ok{color:var(--ok);margin:4px 0}.grade{color:#fff;border-radius:16px;justify-content:center;align-items:center;width:84px;height:84px;font-size:2.6rem;font-weight:800;display:inline-flex}.grade-A{background:#15803d}.grade-B{background:#65a30d}.grade-C{background:#ca8a04}.grade-D{background:#ea580c}.grade-F{background:#b91c1c}.finding{border-left:4px solid var(--line);background:#fff;margin:10px 0;padding:8px 14px}.sev-critical{border-color:#b91c1c}.sev-high{border-color:#ea580c}.sev-medium{border-color:#ca8a04}.sev-low{border-color:#64748b}.sev-info{border-color:#cbd5e1}.badge{background:var(--soft);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-block}.badge.passing{color:var(--ok);background:#dcfce7}.badge.failing{color:var(--bad);background:#fee2e2}code,pre{background:var(--soft);word-break:break-all;border-radius:6px;padding:2px 6px;font-size:.88rem}pre{white-space:pre-wrap;padding:10px}table{border-collapse:collapse;width:100%}td,th{text-align:left;border-bottom:1px solid var(--line);padding:6px 8px;font-size:.94rem}.pending-banner{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:12px 16px}.spinner{border:3px solid var(--line);border-top-color:var(--brand);vertical-align:middle;border-radius:50%;width:18px;height:18px;animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
