:root{
  --ts-text-dim:#cbd5e1;
  --ts-ring:rgba(255,255,255,.08);
  --burp-orange:#ff6633;
  --burp-status-ok:#6aab73;
}

.hero-grid{display:grid; grid-template-columns: 1.2fr 1fr; gap:40px; align-items:center}

.stat{background:rgba(255,255,255,.04); border:1px solid var(--ring); border-radius:16px; padding:16px; text-align:center}

.stat b{font-size:22px; display:block}

.about .box{background:rgba(255,255,255,.04); border:1px solid var(--ring); border-radius:18px; padding:22px}

@media (max-width:1024px){
  .hero-grid, .about{grid-template-columns:1fr}
  .logos{grid-template-columns:repeat(3,1fr)}
}

@media (max-width:760px){
  section{padding:32px 0}
  .hero{padding:64px 0 48px}
}

@media (max-width:640px){
  .logos{grid-template-columns:repeat(5,1fr); gap:6px;}
  .logos img{height:24px;}
}

#metodologia .cards{margin-top:36px}

#metodologia .card{padding-top:38px; overflow:visible}

#metodologia .card .chip{position:absolute; top:-16px; left:16px; width:36px; height:36px; display:grid; place-items:center; padding:0; font-size:12px; font-weight:700; background:linear-gradient(135deg, var(--blue), var(--red)); border:none; color:#fff; border-radius:50%; box-shadow:0 6px 16px rgba(4,107,210,.3), 0 0 0 3px rgba(15,23,42,.95); letter-spacing:0}

.burp-window{border-radius:10px;overflow:hidden;border:1px solid #3c3f41;box-shadow:0 0 0 1px rgba(0,0,0,.4),0 20px 60px rgba(0,0,0,.5),0 0 80px rgba(4,107,210,.06);background:#1c1c1c;font-family:'SF Mono','Cascadia Code','JetBrains Mono','Fira Code',Consolas,monospace;font-size:12.5px;line-height:1.55}

.burp-titlebar{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#2b2b2b;border-bottom:1px solid #3c3f41}

.burp-dots{display:flex;gap:6px}

.burp-dots span{width:12px;height:12px;border-radius:50%}

.burp-dots .d-red{background:#ff5f57}

.burp-dots .d-yellow{background:#febc2e}

.burp-dots .d-green{background:#28c840}

.burp-title-text{color:#bbb;font-size:12px;font-family:Inter,system-ui,sans-serif;flex:1;text-align:center}

.burp-tabs{display:flex;background:#2b2b2b;border-bottom:1px solid #3c3f41;overflow-x:auto;overflow-y:hidden}

.burp-tab{padding:7px 16px;color:#bbb;font-size:12px;font-family:Inter,system-ui,sans-serif;white-space:nowrap;border-right:1px solid rgba(60,63,65,.6);cursor:default;user-select:none;flex-shrink:0}

.burp-tab.active{background:#3c3f41;color:#e8e8e8;border-bottom:2px solid #ff6633;margin-bottom:-1px}

.burp-repeater{display:grid;grid-template-columns:1fr 1fr;min-height:320px}

@media(max-width:700px){
  .burp-repeater{grid-template-columns:1fr}
}

.burp-pane{display:flex;flex-direction:column}

.burp-pane+.burp-pane{border-left:1px solid #3c3f41}

@media(max-width:700px){
  .burp-pane+.burp-pane{border-left:none;border-top:1px solid #3c3f41}
}

.burp-pane-header{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#2b2b2b;border-bottom:1px solid #3c3f41;font-family:Inter,system-ui,sans-serif;font-size:11.5px;color:#bbb}

.burp-pane-header .label{font-weight:600;color:#e8e8e8}

.burp-pane-tabs{display:flex;gap:0;background:rgba(43,43,43,.6);border-bottom:1px solid #3c3f41}

.burp-pane-tab{padding:5px 12px;font-size:11px;font-family:Inter,system-ui,sans-serif;color:#bbb;cursor:default;border-right:1px solid rgba(60,63,65,.4);flex-shrink:0}

.burp-pane-tab.active{background:#3c3f41;color:#e8e8e8}

.burp-code{flex:1;padding:10px 14px;overflow-x:auto;overflow-y:hidden;background:#1c1c1c;white-space:pre;color:#bbb;font-variant-ligatures:none;font-size:11px;line-height:1.5}

.h-method{color:#cc7832;font-weight:600}

.h-url{color:#e8e8e8}

.h-proto{color:#bbb}

.h-header{color:#ffc66d}

.h-value{color:#bbb}

.h-status-ok{color:#6aab73;font-weight:600}

.h-comment{color:#808080;font-style:italic}

.h-danger{color:#ff6b68;font-weight:600}

.h-payload{color:#ff6633;font-weight:600}

/* O destaque acompanha o TEXTO, nao o painel: o .burp-code tem overflow-x:auto,
   entao uma largura calculada sobre a caixa visivel para no meio das linhas mais
   longas e o fim delas fica sem marcacao ao rolar na horizontal. */
.h-line-vuln{display:inline-block;width:max-content;min-width:calc(100% + 28px);text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0 -14px;padding:0 14px;background:rgba(255,102,51,.12);border-left:2px solid #ff6633}

.burp-target-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#2b2b2b;border-bottom:1px solid #3c3f41}

.burp-send-btn{padding:4px 14px;background:#ff6633;color:#fff;border:none;border-radius:3px;font-size:12px;font-family:Inter,system-ui,sans-serif;font-weight:600;cursor:default}

.burp-target-input{flex:1;background:#1c1c1c;border:1px solid #3c3f41;border-radius:3px;padding:4px 8px;color:#e8e8e8;font-family:'SF Mono',Consolas,monospace;font-size:12px}

.bypass-box{margin-top:24px;padding:20px;border-radius:14px;background:rgba(255,102,51,.06);border:1px solid rgba(255,102,51,.18)}

.bypass-box h3{font-size:16px;font-weight:700;color:#ff6633;margin-bottom:10px}

.bypass-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px}

.bypass-step{padding:12px;background:rgba(0,0,0,.25);border-radius:10px;border:1px solid rgba(255,255,255,.05)}

.bypass-step .step-num{font-size:10px;font-weight:700;color:#ff6633;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}

.bypass-step code{display:block;font-family:'SF Mono',Consolas,monospace;font-size:13px;color:#e8e8e8;margin:6px 0 4px;word-break:break-all}

.bypass-step p{font-size:12px;color:var(--muted)}

.bypass-step .strike{text-decoration:line-through;color:#666}

.bypass-step .result{color:#ff6b68;font-weight:600}

.annotation-bar{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}

.annotation{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:rgba(255,255,255,.03);border:1px solid var(--ring);border-radius:10px;flex:1;min-width:220px}

.annotation .num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--grad);color:#fff;font-size:11px;font-weight:700;flex-shrink:0;margin-top:1px}

.annotation .txt{font-size:13px;color:#cbd5e1;line-height:1.45}

.annotation .txt strong{color:#fff;font-weight:600}

.about{display:grid; gap:32px; grid-template-columns:1.1fr 1fr}

.band{align-items:center; background:radial-gradient(600px 200px at 10% -50%, rgba(4,107,210,.25), transparent), radial-gradient(600px 200px at 90% 130%, rgba(224,53,53,.25), transparent), linear-gradient(90deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); border:1px solid var(--ring); border-radius:22px; display:flex; gap:20px; padding:24px}

.card{background:rgba(255,255,255,.04); border:1px solid var(--ring); border-radius:18px; overflow:hidden; padding:22px; position:relative; transition:transform .2s ease, border-color .2s ease}

.cards{gap:20px; grid-template-columns:repeat(3,1fr)}

@media(max-width:1024px){
  .list{grid-template-columns:1fr}
}

@media(max-width:360px){
  footer .wrapper{padding-left:32px !important; padding-right:32px !important}
}

@media(max-width:640px){
  .band{align-items:flex-start; flex-direction:column}
  nav ul{display:none}
}

@media(min-width:1025px){
  footer .wrapper{padding-left:20px !important; padding-right:20px !important}
}

/* --- mobile: colapsa p/ 1 coluna no celular.
   Fica no FIM e na folha da PAGINA de proposito: o css da pagina
   carrega depois do base.css, entao um @media no base seria anulado
   pela regra de topo daqui (mesma especificidade). --- */
@media (max-width:1024px){ .hero-grid{grid-template-columns:1fr} }
@media (max-width:1024px){ .about{grid-template-columns:1fr} }
