:root{--bg:#f8fafc;--card:#fff;--ink:#0f172a;--mut:#64748b;--line:#e2e8f0;--pass:#16a34a;--warn:#d97706;--fail:#dc2626;--skip:#64748b;--info:#2563eb;--acc:#0f172a}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:#1d4ed8}
.sr{position:absolute;left:-9999px}
.top{display:flex;justify-content:space-between;align-items:center;max-width:960px;margin:0 auto;padding:14px 18px}
.brand{display:flex;gap:8px;align-items:center;font-weight:800;font-size:20px;color:var(--ink);text-decoration:none}
.top nav a{margin-left:16px;color:var(--mut);text-decoration:none;font-size:15px}
main{max-width:960px;margin:0 auto;padding:0 18px}
.hero{text-align:center;padding:36px 0 20px}
.hero h1{font-size:clamp(28px,6vw,46px);line-height:1.1;margin:0 0 12px;letter-spacing:-.02em}
.sub{color:var(--mut);max-width:620px;margin:0 auto 22px;font-size:18px}
.search{display:flex;gap:8px;max-width:560px;margin:0 auto}
.search input{flex:1;min-width:0;font-size:18px;padding:14px 16px;border:2px solid var(--line);border-radius:12px;background:#fff}
.search input:focus{outline:none;border-color:#334155}
.search button{font-size:17px;font-weight:700;padding:0 22px;border:0;border-radius:12px;background:var(--acc);color:#fff;cursor:pointer}
.search button:disabled{opacity:.6;cursor:wait}
.examples{color:var(--mut);font-size:14px;margin:12px 0 0}
.examples a{margin:0 4px}
.err{color:var(--fail);font-weight:600;margin-top:14px}
.result{margin:10px 0 40px}
.summary{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px}
.ring{position:relative;width:132px;height:132px}
.ring svg{transform:rotate(-90deg)}
.ring .l{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .l b{font-size:46px;line-height:1}
.ring .l span{font-size:14px;color:var(--mut)}
.sum-h{font-size:22px;margin:0 0 4px;word-break:break-all}
.cov{color:var(--mut);font-size:14px;margin:2px 0 10px}
.bars{display:grid;gap:6px}
.bar{display:grid;grid-template-columns:150px 1fr 42px;gap:8px;align-items:center;font-size:14px}
.bar .t{height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.bar .t i{display:block;height:100%;border-radius:4px}
.bar .n{text-align:right;font-weight:700}
.share{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.btn{font:inherit;font-size:14px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;text-decoration:none}
.btn:hover{border-color:#94a3b8}
.prov{display:inline-block;font-size:12px;font-weight:700;color:var(--warn);background:#fef3c7;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.group{margin-top:26px}
.group h2{font-size:18px;margin:0 0 10px;display:flex;justify-content:space-between;align-items:baseline}
.group h2 small{color:var(--mut);font-weight:600;font-size:14px}
.check{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--skip);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.check.pass{border-left-color:var(--pass)}.check.warn{border-left-color:var(--warn)}.check.fail{border-left-color:var(--fail)}.check.info{border-left-color:var(--info)}
.ch{display:flex;gap:10px;align-items:baseline;justify-content:space-between}
.ch h3{font-size:16px;margin:0}
.pill{flex:none;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:999px;color:#fff;background:var(--skip)}
.pill.pass{background:var(--pass)}.pill.warn{background:var(--warn)}.pill.fail{background:var(--fail)}.pill.info{background:var(--info)}
.check p{margin:6px 0 0}
.check .d{color:var(--mut);font-size:14px}
.check .src{color:#94a3b8;font-size:12px;margin-top:6px}
.check details{margin-top:8px}
.check summary{cursor:pointer;font-weight:700;font-size:14px;color:#1d4ed8}
.code{display:flex;gap:6px;align-items:stretch;margin-top:6px}
.code code{flex:1;min-width:0;display:block;background:#0f172a;color:#e2e8f0;border-radius:8px;padding:8px 10px;font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto;white-space:pre}
.val{margin-top:6px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;color:#334155;background:#f1f5f9;border-radius:8px;padding:6px 8px;overflow-x:auto;white-space:pre-wrap;word-break:break-all}
.tech{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tech span{font-size:13px;background:#f1f5f9;border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.tech span em{color:var(--mut);font-style:normal;font-size:11px;margin-left:4px}
.pending{color:var(--mut);font-size:14px;display:flex;gap:8px;align-items:center;padding:10px 2px}
.spin{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:s 0.8s linear infinite}
@keyframes s{to{transform:rotate(360deg)}}
.notice{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px}
.how{border-top:1px solid var(--line);padding:26px 0 10px;color:#334155}
.how h2{margin-top:0}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cols h3{font-size:16px;margin:0 0 4px}
.cols p{margin:0;font-size:15px}
.foot{max-width:960px;margin:0 auto;padding:20px 18px 40px;color:var(--mut);font-size:14px;text-align:center}
@media (max-width:640px){
  .summary{grid-template-columns:1fr;justify-items:center;text-align:center}
  .summary>div{width:100%}
  .bar{grid-template-columns:110px 1fr 38px;text-align:left}
  .share{justify-content:center}
  .cols{grid-template-columns:1fr}
  .search button{padding:0 16px}
  .top nav a{margin-left:10px}
}
.puny{font-size:13px;color:var(--mut);font-weight:500}
.spot{margin-top:0}
.spot h2{font-size:20px}
.full-h{font-size:18px;margin:28px 0 10px;color:#334155}
.seo{border-top:1px solid var(--line);padding:26px 0 10px;color:#334155}
.seo h2{font-size:22px;margin:0 0 10px}
.seo h3{font-size:17px;margin:18px 0 4px}
.seo p,.seo li{font-size:15.5px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px}
.faq summary{font-weight:700;cursor:pointer}
.faq details p{margin:8px 0 0}
.tools{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0 0;font-size:14px}
.tools a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 12px;text-decoration:none;color:#334155}
.tools a[aria-current]{background:var(--acc);color:#fff;border-color:var(--acc)}
.selrow{max-width:560px;margin:8px auto 0;display:flex;gap:8px;align-items:center;font-size:14px;color:var(--mut)}
.selrow input{flex:1;font-size:15px;padding:8px 12px;border:1px solid var(--line);border-radius:10px}
.snippet{display:block;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:12px;font:13px/1.5 ui-monospace,Menlo,monospace;white-space:pre-wrap;word-break:break-all}
body[data-mode=widget]{background:#fff}
body[data-mode=widget] main{padding:0 12px}
body[data-mode=widget] .hero{padding:14px 0 6px}
body[data-mode=widget] .hero h1{font-size:22px}
body[data-mode=widget] .sub{font-size:15px;margin-bottom:12px}
.wfoot{text-align:center;font-size:13px;color:var(--mut);padding:10px 0 14px}
.wfoot a{color:var(--mut);font-weight:700}
.btn-acc{background:var(--acc);color:#fff;border-color:var(--acc);font-weight:700}
.btn-acc:hover{border-color:var(--acc);opacity:.92}
.again{margin-top:30px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 20px}
.again h2{font-size:18px;margin:0}
.check.mini{padding:10px 12px;margin-bottom:8px}
.check.mini p{font-size:15px}
.seefull{text-align:center;margin:14px 0 6px}
.seefull .btn{font-size:16px;padding:10px 18px}
body[data-mode=widget] .result{margin-bottom:6px}
/* compact widget sizing */
body[data-mode=widget] .hero{padding:10px 0 4px}
body[data-mode=widget] .hero h1{margin:0 0 4px}
body[data-mode=widget] .sub{margin:0 0 8px}
body[data-mode=widget] .summary{padding:14px 16px;gap:16px}
body[data-mode=widget] .group{margin-top:14px}
body[data-mode=widget] .group h2{margin-bottom:6px;font-size:16px}
.check.mini{padding:7px 12px;margin-bottom:6px}
.check.mini h3{font-size:15px}
.check.mini p{font-size:14px;margin-top:2px}
.check.mini details{margin-top:2px}
.check.mini summary{font-size:13px}
body[data-mode=widget] .seefull{margin:10px 0 0}
body[data-mode=widget] .wfoot{padding:6px 0 8px}
.kit{background:#f8fafc;border:1px dashed #94a3b8;border-radius:12px;padding:12px 14px;margin:12px 0;font-size:15px}
.kit-on{border-style:solid;border-color:#16a34a;background:#f0fdf4}
.kit-h{margin:0 0 8px}
.kit-soon{color:#92400e;margin:6px 0}
.kit-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.kit-form label{flex:1;min-width:220px;display:flex;flex-direction:column;font-size:13px;color:var(--mut)}
.kit-form input{font-size:15px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;margin-top:2px}
.kit-msg{color:#b91c1c;font-size:14px;margin:6px 0 0;min-height:1em}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal-box{background:#fff;border-radius:16px;max-width:560px;width:100%;padding:18px 20px;max-height:90vh;overflow:auto}
.modal-box h2{margin:0 0 6px;font-size:20px}
.builder{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.builder label{display:flex;flex-direction:column;font-size:13px;color:var(--mut)}
.builder input[type=text],.builder input[type=url]{font-size:15px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;margin-top:2px}
.builder .row{grid-column:1/-1;flex-direction:row;align-items:center;gap:8px;font-size:15px;color:var(--ink)}
.paid-tag{font-size:11px;font-weight:800;color:#2563eb;margin-left:4px}
.wl-logo{max-height:40px;max-width:200px;display:block;margin:0 auto 6px}
#print-report{display:none}
@media (max-width:640px){.builder{grid-template-columns:1fr}}
@media print{
  body>*:not(#print-report){display:none!important}
  #print-report{display:block!important;color:#0f172a;font-size:11pt}
  @page{margin:16mm}
}
.pr-head{display:flex;align-items:center;gap:14px;border-bottom:4px solid var(--brand,#0f172a);padding-bottom:10px;margin-bottom:14px}
.pr-head img{max-height:48px;max-width:180px}
.pr-head .pr-ag{font-size:16pt;font-weight:800}
.pr-title{font-size:18pt;margin:0 0 2px}
.pr-meta{color:#475569;font-size:10pt;margin:0 0 12px}
.pr-sum{display:flex;gap:18px;align-items:center;border:1px solid #e2e8f0;border-radius:10px;padding:12px;margin-bottom:12px;break-inside:avoid}
.pr-grade{width:80px;height:80px;border-radius:50%;border:8px solid var(--gc);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}
.pr-grade b{font-size:28pt;line-height:1;color:var(--gc)}
.pr-grade span{font-size:9pt;color:#475569}
.pr-cats td{padding:2px 12px 2px 0}
.pr-sec{font-size:13pt;margin:16px 0 6px;color:var(--brand,#0f172a)}
.pr-check{border-left:4px solid #94a3b8;padding:4px 0 4px 10px;margin:0 0 8px;break-inside:avoid}
.pr-check.pass{border-color:#16a34a}.pr-check.warn{border-color:#d97706}.pr-check.fail{border-color:#dc2626}.pr-check.info{border-color:#2563eb}
.pr-check h4{margin:0;font-size:11pt}
.pr-check p{margin:2px 0}
.pr-st{font-size:8.5pt;font-weight:800;text-transform:uppercase;margin-left:6px;color:#475569}
.pr-fix{background:#f1f5f9;border-radius:6px;padding:4px 8px;font-size:10pt}
.pr-fix code{font-family:ui-monospace,Menlo,monospace;font-size:9pt;word-break:break-all}
.pr-foot{margin-top:18px;border-top:1px solid #e2e8f0;padding-top:6px;color:#475569;font-size:9pt}
.faqdoc h2{margin-top:28px}
.faqdoc h3{font-size:18px;margin:18px 0 6px}
.faqdoc pre.code{display:block;white-space:pre-wrap;padding:10px 12px;font-size:13px}
.kitbuy-inline{align-self:center;font-size:14px;font-weight:700;color:#2563eb;margin-left:2px}
.kitbuy-box,.plan-upsell{margin:14px 0 0;padding:10px 12px;border:1px dashed #94a3b8;border-radius:12px;background:#f8fafc;font-size:15px}
.kitbuy-box .btn,.plan-upsell .btn{margin-left:6px}
.leadform{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.leadform input[name=name],.leadform input[name=email]{flex:1;min-width:160px;font-size:15px;padding:9px 10px;border:1px solid var(--line);border-radius:10px}
.leadform .hp,.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.leadform .consent{flex-basis:100%;font-size:14px}
.leadform .d{flex-basis:100%;font-size:12px;color:var(--mut);margin:2px 0 0}
.dash h2{margin-top:26px}
.mon .ch h3 a{color:inherit}
.alerts{list-style:none;padding:0;margin:0}
.alerts li{border-bottom:1px solid var(--line);padding:8px 0;font-size:15px}
.alerts details{margin-top:4px}
.tablewrap{overflow-x:auto}
table.leads{border-collapse:collapse;width:100%;font-size:14px}
table.leads th,table.leads td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.pcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.pcard{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;display:flex;flex-direction:column}
.pcard h3{margin:0 0 4px}
.pcard ul{padding-left:18px;margin:8px 0 12px;font-size:14px;flex:1}
.pprice{font-size:26px;font-weight:800;margin:0}
.pprice small{font-size:14px;font-weight:600}
.pcard.hl{border:2px solid var(--acc,#2563eb)}
.dashform{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.dashform input,.dashform select,.dashform textarea{font-size:15px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.dashform input[type=text],.dashform input[type=url],.dashform textarea{flex:1;min-width:220px}
.keyhelp{margin:8px 0;padding:10px 12px;border:1px solid #fecaca;background:#fff7f7;border-radius:12px;font-size:15px;color:inherit}
.keyhelp ul{margin:4px 0 8px;padding-left:20px}
.keyhelp .kh-form{margin-top:8px}
.keyhelp textarea{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
