/* =====================================================================
   CALCULADORA ONLINE — parte pública
   Layout aprovado: painel escuro à esquerda, formulário à direita,
   símbolos matemáticos caindo ao fundo.
   ===================================================================== */

:root{
  --primary:#3b82f6; --primary-dark:#1d4ed8; --primary-light:#60a5fa;
  --accent:#f59e0b; --dark-blue:#0f172a; --light:#f8fafc;
  --gray-100:#f1f5f9; --gray-200:#e2e8f0; --gray-300:#cbd5e1;
  --gray-400:#94a3b8; --gray-500:#64748b; --gray-800:#1e293b;
  --verde:#059669; --verde-claro:#d1e7dd; --verde-linha:#a3cfbb;
  --vermelho:#dc2626;
  --shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);
  --shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);
}

*{margin:0;padding:0;box-sizing:border-box;font-family:'Inter','Segoe UI',Roboto,sans-serif}
html,body{min-height:100%}
body{background:#0f172a;display:flex;flex-direction:column}
button{font:inherit;cursor:pointer;border:0;background:none}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.mono{font-family:ui-monospace,'SF Mono',Consolas,monospace;font-variant-numeric:tabular-nums}
.oculto{display:none!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ------------------------------------------------------------- PALCO */
.site{background:linear-gradient(135deg,#fff 0%,#f8fafc 30%,#e2e8f0 100%);
  position:relative;display:flex;align-items:center;justify-content:center;
  min-height:100vh;padding:20px;overflow:hidden}

.floating-symbols,.calculation-particles,.data-waves{position:absolute;inset:0;
  overflow:hidden;z-index:0;pointer-events:none}
.symbol{position:absolute;color:rgba(59,130,246,.5);font-family:Arial,monospace;
  font-weight:bold;animation:floatDown 12s linear infinite}
.symbol.red{color:rgba(239,68,68,.5)} .symbol.green{color:rgba(34,197,94,.5)}
.symbol.yellow{color:rgba(234,179,8,.5)} .symbol.purple{color:rgba(168,85,247,.5)}
.symbol.small{font-size:1.2rem} .symbol.medium{font-size:1.8rem} .symbol.large{font-size:2.5rem}
@keyframes floatDown{0%{transform:translateY(-100px) rotate(0);opacity:0}
  10%{opacity:.5}90%{opacity:.5}100%{transform:translateY(100vh) rotate(360deg);opacity:0}}
.data-waves{opacity:.3}
.wave{position:absolute;width:200%;height:100px;animation:wave 12s ease-in-out infinite;
  background:linear-gradient(90deg,transparent 0%,rgba(59,130,246,.15) 25%,
    rgba(34,197,94,.15) 50%,rgba(234,179,8,.15) 75%,transparent 100%)}
.wave:nth-child(1){top:20%;animation-delay:0s} .wave:nth-child(2){top:40%;animation-delay:-2s}
.wave:nth-child(3){top:60%;animation-delay:-4s} .wave:nth-child(4){top:80%;animation-delay:-6s}
@keyframes wave{0%,100%{transform:translateX(-50%) rotate(0)}50%{transform:translateX(-50%) rotate(3deg)}}
.particle{position:absolute;width:25px;height:25px;background:rgba(59,130,246,.2);
  border-radius:50%;animation:particle 10s linear infinite;border:1px solid rgba(59,130,246,.3)}
.particle.green{background:rgba(34,197,94,.2);border-color:rgba(34,197,94,.3)}
.particle.yellow{background:rgba(234,179,8,.2);border-color:rgba(234,179,8,.3)}
.particle.purple{background:rgba(168,85,247,.2);border-color:rgba(168,85,247,.3)}
@keyframes particle{0%{transform:translateY(100vh) scale(0);opacity:0}
  10%{opacity:.5;transform:scale(1)}90%{opacity:.5}
  100%{transform:translateY(-100px) translateX(50px) scale(0);opacity:0}}

/* ----------------------------------------------------------- CAIXÃO */
.modal-container{width:100%;max-width:880px;border-radius:24px;overflow:hidden;
  background:var(--light);position:relative;z-index:10;
  animation:slideUpScale .8s cubic-bezier(.16,1,.3,1);
  box-shadow:0 25px 50px -12px rgba(0,0,0,.25),0 0 0 1px rgba(255,255,255,.1)}
@keyframes slideUpScale{0%{opacity:0;transform:translateY(60px) scale(.9)}
  100%{opacity:1;transform:translateY(0) scale(1)}}
.modal-layout{display:grid;grid-template-columns:1fr 1.3fr}

.sidebar{background:linear-gradient(135deg,#0f172a 0%,#1e40af 100%);color:var(--light);
  padding:40px 30px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.sidebar::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;
  z-index:0;background:radial-gradient(circle,rgba(96,165,250,.15) 0%,rgba(15,23,42,0) 70%);
  animation:pulse 4s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.1}50%{transform:scale(1.1);opacity:.2}}
.sidebar-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column}
.badge-free{background:linear-gradient(135deg,#f59e0b 0%,#f97316 100%);color:#fff;
  display:flex;justify-content:center;align-items:center;padding:12px 24px;border-radius:50px;
  font-weight:700;font-size:1rem;margin:0 auto 30px;width:80%;text-align:center;
  border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 15px rgba(245,158,11,.4);
  animation:badgePulse 2s ease-in-out infinite}
@keyframes badgePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
/* Título em branco liso.
   Antes usava degradê recortado no texto com text-fill transparent.
   O degradê termina no fim da caixa, não no fim da palavra: a última
   letra caía fora e ficava transparente — o "a" de Dívida sumia.
   Um degradê de branco para cinza claro não agrega nada que justifique
   o risco de engolir letra. */
/* Título em branco liso, numa linha só.
   O degradê recortado no texto engolia a última letra — o degradê vai
   até o fim da CAIXA, não da palavra, e o "a" de Dívida caía fora.
   O nowrap voltou: em tela larga o título é de uma linha, e o tamanho
   encolhe sozinho quando o espaço aperta, em vez de quebrar. */
.sidebar h1{font-weight:700;margin-bottom:16px;line-height:1.2;
  font-size:clamp(1.55rem, 3.4vw, 2.4rem);
  white-space:nowrap;text-align:center;color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.12)}
.sidebar p{font-size:1.1rem;opacity:.9;line-height:1.5;margin:0 auto 30px;
  text-align:center;max-width:90%}
.features-list{margin-top:auto;padding-top:30px}
.feature-item{display:flex;align-items:center;margin-bottom:12px;padding-left:20px;
  opacity:0;transform:translateX(-30px);animation:slideInLeft .6s ease-out forwards}
.feature-item:nth-child(1){animation-delay:.2s} .feature-item:nth-child(2){animation-delay:.4s}
.feature-item:nth-child(3){animation-delay:.6s} .feature-item:nth-child(4){animation-delay:.8s}
@keyframes slideInLeft{to{opacity:1;transform:translateX(0)}}
.feature-icon{background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.1) 100%);
  min-width:36px;height:36px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;margin-right:12px;border:1px solid rgba(255,255,255,.2)}
.feature-icon svg{width:18px;height:18px;fill:var(--accent)}
.feature-text{font-size:.95rem;font-weight:500}
.car-illustration{position:absolute;bottom:-20px;right:-40px;width:180px;height:180px;
  opacity:.1;z-index:0;animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}}

/* -------------------------------------------------------- FORMULÁRIO */
.content{padding:30px 40px;position:relative;background:linear-gradient(135deg,#fff 0%,#f8fafc 100%)}
.step-header{display:flex;align-items:center;margin-bottom:20px}
.step-marker{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-weight:600;font-size:.9rem;margin-right:12px;
  box-shadow:0 4px 8px rgba(59,130,246,.3);animation:stepPulse 3s ease-in-out infinite}
@keyframes stepPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
.step-title{font-size:1.3rem;font-weight:600;color:var(--gray-800)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.input-group{margin-bottom:14px}
.input-label{display:block;margin-bottom:6px;font-weight:500;font-size:.95rem;color:var(--gray-800)}
.input-wrapper,.select-wrapper{position:relative;background:#fff;border-radius:12px}
.input-field,.select-field{width:100%;border:2px solid var(--gray-200);background:transparent;
  padding:12px 12px 12px 44px;border-radius:12px;font-size:1rem;transition:all .25s ease;
  box-shadow:0 1px 3px rgba(0,0,0,.1);position:relative;z-index:1}
.select-field{appearance:none;padding-right:40px}
.input-field:focus,.select-field:focus{outline:none;border-color:var(--primary);
  transform:translateY(-2px);box-shadow:0 0 0 3px rgba(59,130,246,.2)}
.input-field.erro{border-color:var(--vermelho)}
.input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);
  color:var(--primary);pointer-events:none;z-index:2}
.input-icon svg{width:20px;height:20px}
.select-wrapper::after{content:'';position:absolute;right:14px;top:50%;width:10px;height:10px;
  border-right:2px solid var(--gray-400);border-bottom:2px solid var(--gray-400);
  transform:translateY(-70%) rotate(45deg);pointer-events:none}

.security-bar{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);
  border:1px solid rgba(59,130,246,.1);border-radius:12px;padding:16px;display:flex;
  align-items:center;margin:16px 0 24px;position:relative;overflow:hidden}
.security-bar::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(59,130,246,.1),transparent);
  animation:securityScan 3s ease-in-out infinite}
@keyframes securityScan{0%{left:-100%}100%{left:100%}}
.security-icon{background:rgba(59,130,246,.08);width:40px;height:40px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin-right:14px;flex-shrink:0;
  border:1px solid rgba(59,130,246,.2);position:relative;z-index:1}
.security-icon svg{width:20px;height:20px;color:var(--primary)}
.security-text{font-size:.9rem;color:var(--gray-800);line-height:1.4;position:relative;z-index:1}

.button-container{display:flex;justify-content:center}
.primary-button{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:#fff;padding:16px 48px;border-radius:12px;font-size:1.1rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;transition:all .25s ease;
  box-shadow:0 8px 16px -4px rgba(29,78,216,.4);position:relative;overflow:hidden}
.primary-button::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}
.primary-button:hover::before{left:100%}
.primary-button:hover{transform:translateY(-3px);box-shadow:0 12px 24px -4px rgba(29,78,216,.5)}
.primary-button[disabled]{opacity:.6;pointer-events:none}
.button-icon{margin-right:10px;transition:transform .3s ease;display:flex}
.primary-button:hover .button-icon{transform:rotate(180deg)}
.button-icon svg{width:20px;height:20px}

/* ------------------------------------------------------------ MODAL */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000;display:none;
  align-items:center;justify-content:center;padding:16px}
.ov.on{display:flex}
.lead-modal{background:#fff;border-radius:15px;overflow:hidden;width:100%;max-width:500px;
  max-height:92%;overflow-y:auto;animation:fadeInUp .35s ease}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.lead-modal .mh{background:linear-gradient(135deg,#0057b8,#0086ff);color:#fff;
  padding:16px 20px;display:flex;align-items:center}
.lead-modal .mh h5{font-weight:600;font-size:1.15rem;flex:1}
.lead-modal .mh button{color:#fff;opacity:.85;font-size:22px;line-height:1;padding:0 4px}
.lead-modal .mb{padding:1.5rem;text-align:center}
.success-icon{color:#28a745;margin-bottom:1rem;line-height:1;display:flex;justify-content:center}
.lead-modal h4{font-size:1.4rem;font-weight:600;margin-bottom:1rem;color:var(--gray-800)}
.lead-modal .mb>p{font-size:.95rem;color:#4b5563;line-height:1.55}
.lead-form{text-align:left;margin-top:1.5rem}
.lead-form .fg{margin-bottom:1rem}
.lead-form label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:14px}
.lead-form .pos{position:relative}
.lead-form .pos svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);
  color:#0086ff;z-index:2;pointer-events:none;width:18px;height:18px}
.lead-form input[type=text]{width:100%;padding:12px 16px 12px 40px;border:2px solid #e2e8f0;
  border-radius:8px;height:48px;font-size:16px;background:#fff;color:#374151}
.lead-form input[type=text]:focus{outline:none;border-color:#0086ff;
  box-shadow:0 0 0 3px rgba(0,134,255,.1)}
.form-check{display:flex;align-items:flex-start;gap:9px;margin-bottom:1rem}
.form-check input{width:17px;height:17px;margin-top:2px;flex-shrink:0;accent-color:#0086ff}
.form-check label{font-size:12.5px;color:#4b5563;font-weight:400;margin:0}
.lead-modal .mf{padding:1rem 1.5rem 1.5rem;display:flex;justify-content:center;gap:10px}
.btn-lead{background:linear-gradient(135deg,#0057b8,#0086ff);color:#fff;padding:13px 32px;
  border-radius:8px;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:8px}
.btn-lead:hover{filter:brightness(1.08)}
.btn-lead[disabled]{opacity:.45;pointer-events:none}

.girando{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;border-radius:50%;animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}

.aviso-erro{background:#fef2f2;border:1px solid #fecaca;color:#7f1d1d;border-radius:9px;
  padding:11px 13px;font-size:13px;line-height:1.5;margin-bottom:14px;text-align:left}

/* --------------------------------------------------------- RESULTADO */
.res{background:#f1f5f9;min-height:100vh;padding-bottom:40px}
.res-top{background:#fff;border-bottom:1px solid var(--gray-200);padding:14px 20px;
  display:flex;align-items:center;gap:11px}
.res-top .lg{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
.res-top b{font-size:15px;font-weight:700;color:var(--gray-800)}
.container{max-width:960px;margin:0 auto;padding:28px 18px}
.card{background:#fff;border-radius:12px;box-shadow:var(--shadow);margin-bottom:22px}
.card-body{padding:1.75rem}
.card-title{font-size:1.5rem;font-weight:600;text-align:center;margin-bottom:1.5rem;
  color:var(--gray-800)}
.alert{border-radius:10px;padding:1.1rem 1.25rem;margin-bottom:1.5rem}
.alert-success{background:var(--verde-claro);border:1px solid var(--verde-linha);color:#0a3622}
.alert-neutro{background:#e7f1ff;border:1px solid #b6d4fe;color:#052c65}
.alert-heading{font-size:1.15rem;font-weight:600;display:flex;align-items:center;gap:9px;
  margin-bottom:.5rem}
.alert p{font-size:.93rem;line-height:1.55}
.hl{background:linear-gradient(135deg,#0f172a 0%,#1e40af 100%);border-radius:12px;
  padding:24px;color:#fff;text-align:center;margin-bottom:1.5rem}
.hl .k{font-size:.8rem;color:#bfdbfe;font-weight:600;letter-spacing:.06em}
.hl .v{font-size:2.6rem;font-weight:800;margin:6px 0;letter-spacing:-.02em}
.hl .s{font-size:.9rem;color:#dbeafe}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:1.5rem}
.stat{background:#f8fafc;border:1px solid var(--gray-200);border-radius:10px;padding:16px;
  text-align:center}
.stat .v{font-size:1.3rem;font-weight:700;color:var(--primary-dark)}
.stat .v.g{color:var(--verde)} .stat .v.r{color:var(--vermelho)}
.stat .l{font-size:.75rem;color:var(--gray-500);margin-top:5px;font-weight:600;letter-spacing:.03em}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.tbl th{text-align:left;padding:10px 12px;background:#f8fafc;
  border-bottom:2px solid var(--gray-200);font-size:.78rem;color:var(--gray-500);
  font-weight:700;letter-spacing:.03em}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--gray-100)}
.tbl td:last-child,.tbl th:last-child{text-align:right}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.doc{border:2px solid var(--gray-200);border-radius:10px;padding:16px;text-align:center;
  background:#fff;transition:all .2s;text-decoration:none;display:block;color:inherit}
.doc:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow)}
.doc .ic{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;
  margin:0 auto 10px;background:#eff6ff;color:var(--primary-dark)}
.doc b{display:block;font-size:.92rem;font-weight:600;color:var(--gray-800)}
.doc small{display:block;font-size:.76rem;color:var(--gray-500);margin-top:3px}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:1.2rem}
.btn2{padding:11px 22px;border-radius:9px;font-size:.92rem;font-weight:600;
  display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.btn2.blue{background:var(--primary-dark);color:#fff}
.btn2.green{background:var(--verde);color:#fff}
.btn2.out{background:#fff;border:1px solid var(--gray-300);color:var(--gray-800)}
.muted{background:#fff9e6;border:1px solid #ffe08a;border-radius:9px;padding:12px 14px;
  font-size:.85rem;color:#7a5b00;line-height:1.5;display:flex;gap:9px}
.muted svg{flex-shrink:0;margin-top:2px}

/* ------------------------------------------------------- RESPONSIVO */
@media(max-width:900px){
  .modal-layout{grid-template-columns:1fr}
  .sidebar{padding:30px} .car-illustration{display:none}
  .content{padding:25px} .form-row{grid-template-columns:1fr;gap:8px}
  .sidebar h1{white-space:normal}
  .stat-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  .site{padding:10px}
  .sidebar{padding:24px 20px}
  .sidebar h1{font-size:1.5rem;white-space:normal}
  .content{padding:20px}
  .hl .v{font-size:2rem}
  .stat-grid{grid-template-columns:1fr}
  .primary-button{width:100%;padding:16px}
}
