
:root{--bg:#ffffff;--text:#111;--primary:#0ea5e9;--muted:#f3f7fb;--border:#e5e7eb}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial}
.wrap{max-width:1100px;margin:0 auto;padding:1rem}
.site-header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between}
.nav a{margin-right:1rem;color:#111;text-decoration:none}
.nav a:hover{color:var(--primary)}
.landing-hero{margin-top:1rem}
.hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:1rem;align-items:start}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}}
.lead-card{border:1px solid var(--border);border-radius:14px;padding:1rem;background:#fff}
.hero-title{margin:.25rem 0;font-size:clamp(24px,4vw,34px)}
.hero-sub{color:#333;margin:.25rem 0 1rem}
.cta-form label{display:block;margin:.5rem 0 .25rem}
.cta-inline{display:grid;grid-template-columns:1fr auto;gap:.5rem}
@media (max-width:800px){.cta-inline{grid-template-columns:1fr}}
.ad-card{border:1px solid var(--border);border-radius:14px;padding:1rem;background:#fff}
.ad-label{font-size:.75rem;color:#666;margin:0 0 .25rem 2px}
/* Extra spacing so ads are never adjacent to form controls */
.ads{margin:1.25rem 0}
.ads .ad-slot{margin-top:.5rem}
.hidden{display:none}
.checker label{display:block;margin:.5rem 0 .25rem}
.inline{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem}
input,button{padding:.75rem;border:1px solid var(--border);border-radius:10px}
button{background:var(--primary);color:#fff;border:none;font-weight:600;cursor:pointer}
button:hover{filter:brightness(.95)}
.help{color:#555}
.results{margin:1.5rem 0;display:grid;gap:1rem}
.card{border:1px solid var(--border);border-radius:14px;padding:1rem;background:#fff}
.card h4{margin:.25rem 0 .5rem}
.grid{display:grid;gap:1rem}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.badge{display:inline-block;padding:.25rem .5rem;border-radius:999px;font-size:.8rem}
.badge.ok{background:#e9f9ee;color:#087443}
.badge.warn{background:#fff8e6;color:#8a5c00}
.badge.fail{background:#feeaea;color:#7d0000}
.ad-slot{min-height:120px;border:1px dashed var(--border);border-radius:12px;background:var(--muted)}
.site-footer{border-top:1px solid var(--border);margin-top:2rem}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.promo a{color:var(--primary)}
.noscript{padding:1rem;background:#fff4d6;border-bottom:1px solid #f0d49a}
/* CMP modal */
.cmp.hidden{display:none}
.cmp{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:50}
.cmp__panel{background:#fff;max-width:560px;width:96%;border-radius:14px;border:1px solid var(--border);padding:1rem;box-shadow:0 10px 30px rgba(0,0,0,.1)}
.cmp__group{margin:.5rem 0}
.cmp__group small{display:block;color:#555}
.cmp__actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.75rem}
@media (max-width:800px){.inline{grid-template-columns:1fr;}.nav a{margin-right:.5rem}}
