:root{--primary:#36919C;--accent:#B0CA1F;--ink:#1c2b31;--text:#33454c;--muted:#6a7a82;--line:#dfe6e9;--bg:#f5f8f9;--white:#fff;--radius:14px;--crit:#c62f3a;--high:#e8833a;--med:#d9a514;--low:#6b8ea3;--ok:#1f9d55}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Open Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;font-size:16px;line-height:1.6;color:var(--text);background:var(--white)}
h1,h2,h3,h4{font-family:'Montserrat','Open Sans',sans-serif;color:var(--ink);line-height:1.2;margin:0 0 .5em}
a{color:var(--primary)}
img{max-width:100%;height:auto}
.container{width:100%;max-width:1160px;margin:0 auto;padding:0 20px}
.container.narrow{max-width:820px}
.muted{color:var(--muted)}.small{font-size:13px}
.no-print{}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:#eef3f5;padding:1px 6px;border-radius:5px;word-break:break-all}

/* header / footer */
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.brand img{display:block;height:44px;width:auto}
.header-link{font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;text-decoration:none;color:var(--primary);padding:9px 18px;border:2px solid var(--primary);border-radius:100px}
.header-link:hover{background:var(--primary);color:#fff}
.site-footer{background:#14262c;color:#b9c8ce;padding:28px 0;font-size:14px;margin-top:60px}
.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer-inner strong{display:block;color:#fff;font-family:'Montserrat',sans-serif}
.footer-links{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.footer-links a{color:var(--accent);text-decoration:none}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;line-height:1;padding:15px 28px;border-radius:100px;border:2px solid transparent;cursor:pointer;text-decoration:none;transition:.15s}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{filter:brightness(.92)}
.btn-accent{background:var(--accent);color:#14262c}
.btn-accent:hover{filter:brightness(.95)}
.btn-ghost{background:#fff;color:var(--primary);border-color:var(--primary)}
.btn-ghost:hover{background:var(--primary);color:#fff}
.btn-block{width:100%}

/* hero */
.hero{background:linear-gradient(135deg,#eaf5f6 0%,#f6faf0 100%);padding:56px 0 64px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.eyebrow{font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--primary);margin:0 0 10px}
.hero h1{font-size:clamp(30px,4.4vw,46px);font-weight:800}
.lead{font-size:18px;color:var(--text)}
.ticks{list-style:none;padding:0;margin:22px 0 0}
.ticks li{position:relative;padding-left:30px;margin:10px 0;font-weight:500}
.ticks li:before{content:"";position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:50%;background:var(--accent)}
.ticks li:after{content:"";position:absolute;left:6px;top:8px;width:5px;height:9px;border:solid #14262c;border-width:0 2px 2px 0;transform:rotate(45deg)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 30px rgba(20,38,44,.06)}
.hero-form{padding:28px}
.hero-form h2{font-size:22px;margin-bottom:16px}

/* form */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{margin-bottom:14px}
.field label{display:block;font-weight:600;font-size:14px;margin-bottom:5px;color:var(--ink)}
.field .opt{font-weight:400;color:var(--muted)}
.field input[type=text],.field input[type=email],.field input[type=tel],.field select{width:100%;padding:12px 14px;font:inherit;border:1.5px solid #cfd9dd;border-radius:10px;background:#fff;color:var(--ink)}
.field input:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(54,145,156,.18)}
.field-error{display:block;color:var(--crit);font-size:13px;margin-top:4px;min-height:0}
.field-error:empty{display:none}
.form-error{margin-bottom:10px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400!important;font-size:13px!important;color:var(--muted)!important}
.check input{margin-top:4px;flex:none}
.hp-field{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
.form-note{font-size:13px;color:var(--muted);text-align:center;margin:10px 0 0}
.btn-loading{display:none}
.audit-form.is-loading .btn-label{display:none}
.audit-form.is-loading .btn-loading{display:inline!important}
.audit-form.is-loading button{opacity:.8;pointer-events:none}

/* sections */
.section{padding:64px 0}
.section-alt{background:var(--bg)}
.section-title{font-size:clamp(24px,3.2vw,34px);text-align:center;font-weight:800}
.section-sub{text-align:center;color:var(--muted);max-width:640px;margin:0 auto 34px}
.grid{display:grid;gap:22px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;border-top:4px solid var(--accent)}
.feature h3{font-size:18px}
.feature p{margin:0;color:var(--text);font-size:15px}
.step{text-align:center;padding:10px 18px}
.step-n{display:inline-flex;width:46px;height:46px;border-radius:50%;background:var(--primary);color:#fff;font-family:'Montserrat',sans-serif;font-weight:800;align-items:center;justify-content:center;margin-bottom:10px}
.faq{border-bottom:1px solid var(--line);padding:14px 0}
.faq summary{cursor:pointer;font-weight:700;font-family:'Montserrat',sans-serif;color:var(--ink)}
.faq p{margin:10px 0 0}
.prose h2{font-size:20px;margin-top:28px}
.prose li{margin:6px 0}

/* status (progresso / erro) */
.status-card{max-width:680px;margin:56px auto;text-align:center;padding:0 20px}
.status-card h1{font-size:clamp(24px,3.4vw,32px)}
.status-card .host{color:var(--primary);word-break:break-all}
.status-icon{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;background:#eaf5f6;display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-weight:800;color:var(--primary);font-size:22px}
.status-icon-error{background:#fdecee;color:var(--crit)}
.spinner{width:32px;height:32px;border:4px solid #cfe5e8;border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;display:block}
@keyframes spin{to{transform:rotate(360deg)}}
.progress{height:14px;background:#e4eaed;border-radius:10px;overflow:hidden;margin:26px 0 8px}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:10px;transition:width .5s ease}
.progress-text{color:var(--muted);font-size:14px;margin:0 0 22px}
.steps{list-style:none;padding:0;margin:0 auto;max-width:440px;text-align:left}
.steps li{position:relative;padding:7px 0 7px 32px;color:var(--muted);font-size:15px}
.steps li:before{content:"";position:absolute;left:3px;top:11px;width:14px;height:14px;border-radius:50%;border:2px solid #cfd9dd;background:#fff}
.steps li.is-current{color:var(--ink);font-weight:600}
.steps li.is-current:before{border-color:var(--primary);background:var(--primary);box-shadow:0 0 0 4px rgba(54,145,156,.2)}
.steps li.is-done{color:var(--ink)}
.steps li.is-done:before{border-color:var(--ok);background:var(--ok)}
.status-error{margin-top:20px;color:var(--high);font-size:14px}

/* relatório */
.report-container{padding-top:28px}
.report-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin-bottom:18px}
.report-actions .btn{padding:12px 22px;font-size:14px}
.summary{display:grid;grid-template-columns:200px 1fr;gap:28px;padding:30px;align-items:center}
.summary-gauge{text-align:center}
.gauge{width:180px;height:180px;display:block;margin:0 auto 8px}
.gauge-num{font-family:'Montserrat',sans-serif;font-weight:800;font-size:38px}
.gauge-sub{font-size:11px;fill:#6a7a82}
.grade-badge{display:inline-block;color:#fff;font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;padding:5px 16px;border-radius:100px}
.summary-text h1{font-size:clamp(24px,3.4vw,34px);word-break:break-word;margin-bottom:6px}
.summary-text .eyebrow{margin-bottom:4px}
.headline{font-size:19px;font-weight:600;color:var(--ink);margin:0 0 8px}
.gain{background:#f3f8dc;border-left:4px solid var(--accent);padding:10px 14px;border-radius:8px;font-size:15px}
.summary-counts{grid-column:1 / -1;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.count{border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}
.count strong{display:block;font-family:'Montserrat',sans-serif;font-size:26px;line-height:1.1}
.count span{font-size:13px;color:var(--muted)}
.count-critical strong{color:var(--crit)}.count-high strong{color:var(--high)}.count-medium strong{color:var(--med)}.count-low strong{color:var(--low)}.count-ok strong{color:var(--ok)}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:18px 0}
.cat{padding:16px 18px}
.cat-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.cat-label{font-weight:600;color:var(--ink);font-size:14.5px}
.cat-score{font-family:'Montserrat',sans-serif;font-size:24px}
.bar{height:9px;background:#e6ecef;border-radius:6px;overflow:hidden;margin:8px 0}
.bar div{height:100%;border-radius:6px}
.cat-foot{font-size:12.5px;color:var(--muted)}
.notice{background:#fff7e6;border:1px solid #f1d9a4;color:#7a5a14;padding:12px 16px;border-radius:10px;font-size:14px}
.notice-ok{background:#e9f7ef;border-color:#b9e2c9;color:#1f6b43}

.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:2px solid var(--line);margin:28px 0 18px}
.tab{background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-2px;padding:12px 16px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;color:var(--muted);cursor:pointer}
.tab.is-active{color:var(--primary);border-bottom-color:var(--primary)}
.tab-panel{display:none}.tab-panel.is-active{display:block}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px;font-size:14px}
.filters input[type=search]{padding:10px 14px;border:1.5px solid #cfd9dd;border-radius:100px;font:inherit;min-width:260px}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:100px;padding:6px 14px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;color:var(--text)}
.chip.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.issue{border:1px solid var(--line);border-left:5px solid #ccc;border-radius:10px;margin-bottom:10px;background:#fff}
.issue.sev-critical{border-left-color:var(--crit)}.issue.sev-high{border-left-color:var(--high)}.issue.sev-medium{border-left-color:var(--med)}.issue.sev-low{border-left-color:var(--low)}
.issue>summary{list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;font-weight:700;color:var(--ink)}
.issue>summary::-webkit-details-marker{display:none}
.issue>summary:after{content:"+";font-size:20px;color:var(--muted);margin-left:4px}
.issue[open]>summary:after{content:"\2212"}
.issue-title{flex:1}
.issue-meta{display:flex;gap:10px;align-items:center;white-space:nowrap}
.badge{display:inline-block;color:#fff;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:100px}
.pts{font-size:13px;color:var(--muted);font-weight:600}
.issue-body{padding:0 16px 16px;font-size:15px}
.issue-body p{margin:0 0 8px}
.detail{background:#f1f6f7;border-radius:8px;padding:8px 12px;font-weight:600;color:var(--ink)}
.urls{margin-top:8px}.urls summary{cursor:pointer;color:var(--primary);font-weight:600;font-size:14px}
.urls ul{margin:8px 0 0;padding-left:18px}.urls li{margin:4px 0}
.speed-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.speed-card{padding:20px}
.speed-head{display:flex;gap:16px;align-items:center;margin-bottom:10px}
.speed-head h3{margin:0}
.speed-score{font-family:'Montserrat',sans-serif;font-size:46px;line-height:1}
.metrics{width:100%;border-collapse:collapse;margin:6px 0 10px}
.metrics td{padding:7px 4px;border-bottom:1px solid #edf1f3;font-size:14.5px}
.metrics td:last-child{text-align:right}
.opps{padding-left:18px;font-size:14px}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{background:#f1f5f6;text-align:left;padding:10px 12px;font-size:12.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);white-space:nowrap}
.table td{padding:9px 12px;border-top:1px solid #edf1f3;vertical-align:top}
.nowrap{white-space:nowrap;max-width:340px;overflow:hidden;text-overflow:ellipsis}
.status{display:inline-block;font-weight:700;font-size:12.5px;padding:2px 9px;border-radius:100px}
.status-ok{background:#e1f4e9;color:#1f6b43}.status-redir{background:#fff1da;color:#8a5a00}.status-bad{background:#fde3e5;color:#a02530}
.tag{display:inline-block;background:#eef3f5;color:#41545c;border-radius:6px;font-size:12px;padding:2px 8px;margin:1px 2px 1px 0}
.passed{list-style:none;padding:0;margin:0;columns:2;column-gap:30px}
.passed li{break-inside:avoid;padding:6px 0;font-size:15px}
.ok-mark{color:var(--ok);font-weight:800;margin-right:6px}
.cta{display:flex;justify-content:space-between;gap:24px;align-items:center;background:var(--primary);color:#fff;border-radius:var(--radius);padding:30px 34px;margin:34px 0 12px}
.cta h2{color:#fff;font-size:24px;margin-bottom:6px}.cta p{margin:0;color:#eaf6f7}
.cta-actions{text-align:center;flex:none}
.cta-contact{display:block;font-size:13px;margin-top:8px;color:#dff0f2}
.disclaimer{font-size:12.5px;color:var(--muted);text-align:center;max-width:760px;margin:10px auto 0}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:28px}
  .grid-3{grid-template-columns:1fr}
  .summary{grid-template-columns:1fr;text-align:center}
  .summary-counts{grid-template-columns:repeat(2,1fr)}
  .speed-grid{grid-template-columns:1fr}
  .cta{flex-direction:column;text-align:center}
  .passed{columns:1}
}
@media (max-width:560px){
  .form-row{grid-template-columns:1fr}
  .hero{padding:32px 0 40px}.hero-form{padding:20px}
  .issue>summary{flex-direction:column;align-items:flex-start}
  .filters input[type=search]{min-width:0;width:100%}
  .header-link{display:none}
}
@media print{
  .no-print,.site-header,.site-footer,.tabs{display:none!important}
  body{font-size:12px}
  .tab-panel{display:block!important;page-break-inside:auto}
  .card,.issue{box-shadow:none;page-break-inside:avoid}
  .issue .issue-body{display:block}
  details>*{display:block}
  .cta{background:#fff;color:#000;border:2px solid var(--primary)}.cta h2,.cta p{color:#000}
  #tab-pages{page-break-before:always}
}
