// SimuladorScreen — "Quanto o meu imóvel rende por temporada?"
// ────────────────────────────────────────────────────────────────────────────
// É a principal ferramenta de captação de proprietários do site. Em vez de
// pedir o contato antes de entregar qualquer coisa, entrega primeiro a conta —
// e só depois oferece a avaliação presencial. Quem chega até o resultado já é
// um lead qualificado.
//
// Postura dos números: o simulador desconta a comissão da SBL E os custos que
// ficam com o proprietário na temporada (condomínio, IPTU, água, luz, internet),
// que no aluguel anual normalmente são do inquilino. Sem esse desconto a
// comparação fica inflada a favor da temporada — e o proprietário descobre isso
// depois de assinar, que é o pior momento possível.
//
// Todos os parâmetros do cálculo estão em seo/parametros-renda.js.
// ────────────────────────────────────────────────────────────────────────────

const _SIM_TIPOS = ['Apartamento', 'Flat', 'Studio', 'Casa', 'Cobertura'];

function moeda(v) {
  return 'R$ ' + Math.round(v).toLocaleString('pt-BR');
}
function moedaCurta(v) {
  if (Math.abs(v) >= 1000) return 'R$ ' + (v / 1000).toFixed(v >= 10000 ? 0 : 1).replace('.', ',') + ' mil';
  return moeda(v);
}

// ── Cálculo ───────────────────────────────────────────────────────────────
function calcularRenda(entrada) {
  const P = window.SBL_PARAMS_RENDA;
  const b = P.bairros[entrada.bairro];
  if (!b) return null;

  const mTipo = P.tipos[entrada.tipo] || 1;
  const mQuartos = P.quartos[String(entrada.quartos)] || 1;
  const escolhidos = P.diferenciais.filter((d) => entrada.diferenciais.indexOf(d.id) !== -1);
  const bonusDiaria = escolhidos.reduce((a, d) => a + d.diaria, 0);
  const bonusOcup = escolhidos.reduce((a, d) => a + d.ocupacao, 0);

  const diaria = b.diariaBase * mTipo * mQuartos * (1 + bonusDiaria);
  const ocupacao = Math.min(P.ocupacaoMaxima, b.ocupacaoBase + bonusOcup);
  const noites = Math.round(365 * ocupacao);

  const brutoAnual = diaria * noites;
  const comissao = brutoAnual * P.comissaoSBL;
  const custosAnuais = entrada.custoMensal * 12;
  const liquidoTemporada = brutoAnual - comissao - custosAnuais;

  // Comparação: no aluguel anual o inquilino costuma arcar com condomínio,
  // IPTU e contas, então esses custos não entram aqui.
  const aluguelMensal = b.aluguelBase * mTipo * mQuartos;
  const liquidoAnual = aluguelMensal * P.mesesEfetivosAnual * (1 - P.taxaAdminAnual);

  const f = P.margemFaixa;
  return {
    diaria, diariaMin: diaria * (1 - f), diariaMax: diaria * (1 + f),
    ocupacao, noites, brutoAnual, comissao, custosAnuais,
    liquidoTemporada,
    liquidoTemporadaMin: liquidoTemporada * (1 - f),
    liquidoTemporadaMax: liquidoTemporada * (1 + f),
    aluguelMensal, liquidoAnual,
    diferenca: liquidoTemporada - liquidoAnual,
    vantagem: liquidoAnual > 0 ? liquidoTemporada / liquidoAnual : 0,
  };
}

// ── Gráfico de sazonalidade ───────────────────────────────────────────────
// Barras verticais, uma série só: a altura já codifica a magnitude, e a cor
// distingue apenas alta temporada do restante — rampa de uma matiz, dois
// passos. Rótulo direto apenas no mês de pico; os demais valores saem no
// tooltip e na tabela, para não poluir doze barras com doze números.
function GraficoSazonalidade({ receitaAnual }) {
  const P = window.SBL_PARAMS_RENDA;
  const { isMobile } = window.useResponsive();
  const [ativo, setAtivo] = React.useState(-1);
  const [tabela, setTabela] = React.useState(false);

  const meses = P.sazonalidade.map((m) => ({
    ...m, valor: receitaAnual * m.peso / 12,
  }));
  const maximo = Math.max.apply(null, meses.map((m) => m.valor));
  const iPico = meses.reduce((best, m, i) => (m.valor > meses[best].valor ? i : best), 0);
  const alturaGrafico = isMobile ? 132 : 168;

  return (
    <div style={{ background: 'var(--surface-card)', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-xl)', padding: isMobile ? '22px 18px' : '28px 30px' }}>
      <div style={{ display: 'flex', alignItems: 'flex-start', justifyContent: 'space-between', gap: 16, flexWrap: 'wrap', marginBottom: 6 }}>
        <div>
          <h3 style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 20, color: 'var(--text-strong)', margin: '0 0 4px' }}>
            Como essa receita se distribui no ano
          </h3>
          <p style={{ fontFamily: 'var(--font-body)', fontSize: 13.5, color: 'var(--text-muted)', margin: 0, lineHeight: 1.5 }}>
            Receita bruta estimada por mês, segundo a sazonalidade de João Pessoa.
          </p>
        </div>
        <button
          onClick={() => setTabela((v) => !v)}
          style={{ background: 'none', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-pill)', padding: '7px 14px', cursor: 'pointer', fontFamily: 'var(--font-body)', fontSize: 12.5, color: 'var(--text-body)', whiteSpace: 'nowrap' }}
        >
          {tabela ? 'Ver gráfico' : 'Ver valores'}
        </button>
      </div>

      {/* Legenda — a identidade nunca depende só da cor: o texto nomeia cada classe. */}
      <div style={{ display: 'flex', gap: 18, margin: '14px 0 18px', flexWrap: 'wrap' }}>
        {[['Alta temporada', P.coresGrafico.alta], ['Demais meses', P.coresGrafico.normal]].map(([rotulo, cor]) => (
          <span key={rotulo} style={{ display: 'inline-flex', alignItems: 'center', gap: 7, fontFamily: 'var(--font-body)', fontSize: 12.5, color: 'var(--text-muted)' }}>
            <span style={{ width: 11, height: 11, borderRadius: 3, background: cor, display: 'inline-block' }} />
            {rotulo}
          </span>
        ))}
      </div>

      {tabela ? (
        <table style={{ width: '100%', borderCollapse: 'collapse', fontFamily: 'var(--font-body)', fontSize: 13.5 }}>
          <thead>
            <tr>
              <th style={{ textAlign: 'left', padding: '8px 4px', borderBottom: '1px solid var(--border-subtle)', color: 'var(--text-muted)', fontWeight: 600, fontSize: 12 }}>Mês</th>
              <th style={{ textAlign: 'right', padding: '8px 4px', borderBottom: '1px solid var(--border-subtle)', color: 'var(--text-muted)', fontWeight: 600, fontSize: 12 }}>Receita bruta estimada</th>
            </tr>
          </thead>
          <tbody>
            {meses.map((m) => (
              <tr key={m.mes}>
                <td style={{ padding: '7px 4px', borderBottom: '1px solid var(--border-subtle)', color: 'var(--text-body)' }}>
                  {m.mes}{m.alta ? ' · alta' : ''}
                </td>
                <td style={{ padding: '7px 4px', borderBottom: '1px solid var(--border-subtle)', textAlign: 'right', color: 'var(--text-strong)', fontWeight: 600 }}>
                  {moeda(m.valor)}
                </td>
              </tr>
            ))}
          </tbody>
        </table>
      ) : (
        <div>
          <div style={{ display: 'flex', alignItems: 'flex-end', gap: 2, height: alturaGrafico, position: 'relative' }}>
            {meses.map((m, i) => {
              const h = Math.max(3, (m.valor / maximo) * (alturaGrafico - 22));
              const cor = m.alta ? P.coresGrafico.alta : P.coresGrafico.normal;
              const on = ativo === i;
              return (
                <div
                  key={m.mes}
                  onMouseEnter={() => setAtivo(i)}
                  onMouseLeave={() => setAtivo(-1)}
                  onFocus={() => setAtivo(i)}
                  onBlur={() => setAtivo(-1)}
                  tabIndex={0}
                  role="img"
                  aria-label={`${m.mes}: ${moeda(m.valor)}`}
                  style={{ flex: 1, display: 'flex', flexDirection: 'column', justifyContent: 'flex-end', alignItems: 'center', height: '100%', cursor: 'default', position: 'relative', outline: 'none' }}
                >
                  {/* Rótulo direto só no pico — o resto sai no hover e na tabela. */}
                  {i === iPico && (
                    <span style={{ fontFamily: 'var(--font-body)', fontSize: 11, fontWeight: 700, color: 'var(--text-strong)', marginBottom: 5, whiteSpace: 'nowrap' }}>
                      {moedaCurta(m.valor)}
                    </span>
                  )}
                  <div style={{
                    width: '100%', height: h, background: cor,
                    borderRadius: '4px 4px 0 0',
                    boxShadow: on ? '0 0 0 2px var(--surface-card), 0 0 0 3px var(--brown-700)' : 'none',
                    transition: 'box-shadow 0.12s ease',
                  }} />
                  {on && (
                    <div style={{
                      position: 'absolute', bottom: h + 8, left: '50%', transform: 'translateX(-50%)',
                      background: 'var(--brown-900)', color: 'var(--cream-50)', padding: '7px 11px',
                      borderRadius: 8, fontFamily: 'var(--font-body)', fontSize: 12, whiteSpace: 'nowrap',
                      zIndex: 5, pointerEvents: 'none', boxShadow: '0 4px 14px rgba(30,20,12,0.28)',
                    }}>
                      <strong>{m.mes}</strong> · {moeda(m.valor)}
                    </div>
                  )}
                </div>
              );
            })}
          </div>
          {/* Linha de base discreta + rótulos dos meses em tinta neutra. */}
          <div style={{ height: 1, background: 'var(--border-subtle)', margin: '0 0 7px' }} />
          <div style={{ display: 'flex', gap: 2 }}>
            {meses.map((m) => (
              <div key={m.mes} style={{ flex: 1, textAlign: 'center', fontFamily: 'var(--font-body)', fontSize: isMobile ? 9.5 : 11, color: 'var(--text-muted)' }}>
                {m.mes}
              </div>
            ))}
          </div>
        </div>
      )}
    </div>
  );
}

// ── Controles ─────────────────────────────────────────────────────────────
function CampoRadio({ label, valor, opcoes, onChange }) {
  return (
    <div>
      <div style={{ fontFamily: 'var(--font-body)', fontSize: 12.5, fontWeight: 600, letterSpacing: '0.03em', color: 'var(--text-strong)', marginBottom: 9 }}>{label}</div>
      <div style={{ display: 'flex', flexWrap: 'wrap', gap: 8 }}>
        {opcoes.map((o) => {
          const on = String(o.valor) === String(valor);
          return (
            <button key={o.valor} type="button" onClick={() => onChange(o.valor)} aria-pressed={on}
              style={{
                padding: '9px 15px', borderRadius: 'var(--radius-pill)', cursor: 'pointer',
                fontFamily: 'var(--font-body)', fontSize: 13.5,
                border: '1px solid ' + (on ? 'var(--brown-600)' : 'var(--border-default)'),
                background: on ? 'var(--brown-600)' : 'var(--surface-card)',
                color: on ? 'var(--cream-50)' : 'var(--text-body)',
                fontWeight: on ? 600 : 400,
                transition: 'background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out)',
              }}>
              {o.label}
            </button>
          );
        })}
      </div>
    </div>
  );
}

function SimuladorScreen({ onNav, seo }) {
  const { Button } = window.SBLImVeisDesignSystem_08a506;
  const { isMobile, isTablet } = window.useResponsive();
  const P = window.SBL_PARAMS_RENDA;
  const bairros = (window.SBLRotas && window.SBLRotas.bairros) || [];

  const [bairro, setBairro] = React.useState('manaira');
  const [tipo, setTipo] = React.useState('Apartamento');
  const [quartos, setQuartos] = React.useState('2');
  const [difs, setDifs] = React.useState(['garagem']);
  const [custoMensal, setCustoMensal] = React.useState(P.bairros['manaira'].custoMensal);
  const [custoEditado, setCustoEditado] = React.useState(false);

  // Enquanto o proprietário não mexer no campo, o custo acompanha o bairro
  // escolhido; a partir do primeiro ajuste, respeitamos o valor dele.
  React.useEffect(() => {
    if (!custoEditado && P.bairros[bairro]) setCustoMensal(P.bairros[bairro].custoMensal);
  }, [bairro, custoEditado]);

  const r = calcularRenda({ bairro, tipo, quartos, diferenciais: difs, custoMensal: Number(custoMensal) || 0 });
  const nomeBairro = (bairros.find((b) => b.slug === bairro) || {}).nome || '';

  function alternarDif(id) {
    setDifs((atual) => atual.indexOf(id) !== -1 ? atual.filter((x) => x !== id) : atual.concat([id]));
  }

  const resumoParaWhatsapp = r
    ? `Olá! Simulei meu imóvel no site da SBL: ${tipo} de ${quartos} quarto(s) em ${nomeBairro}. `
      + `A estimativa foi de ${moeda(r.diaria)} por diária e cerca de ${moeda(r.liquidoTemporada)} líquidos por ano. `
      + `Gostaria de uma avaliação real.`
    : '';

  return (
    <div>
      {/* HERO */}
      <section style={{ background: 'var(--brown-900)', position: 'relative', overflow: 'hidden' }}>
        <div style={{ maxWidth: 1000, margin: '0 auto', padding: isMobile ? '52px 20px 46px' : '72px 40px 64px' }}>
          <div className="sbl-eyebrow" style={{ color: 'var(--rose-300)', marginBottom: 16 }}>Para proprietários · João Pessoa</div>
          <h1 style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: isMobile ? 31 : 46, lineHeight: 1.08, color: 'var(--cream-50)', margin: '0 0 18px', maxWidth: 760 }}>
            {seo ? seo.h1 : 'Quanto o seu imóvel pode render por temporada em João Pessoa'}
          </h1>
          <p style={{ fontFamily: 'var(--font-editorial)', fontStyle: 'italic', fontSize: isMobile ? 17 : 20, lineHeight: 1.55, color: 'var(--rose-100)', margin: 0, maxWidth: 640 }}>
            {seo ? seo.intro : 'Informe o bairro, o tipo e o tamanho do imóvel e veja uma estimativa da diária, da ocupação e da receita anual.'}
          </p>
        </div>
      </section>

      {/* SIMULADOR */}
      <section style={{ maxWidth: 1180, margin: '0 auto', padding: isMobile ? '36px 16px' : '56px 40px' }}>
        <div style={{ display: 'grid', gridTemplateColumns: isMobile || isTablet ? '1fr' : '420px 1fr', gap: isMobile ? 22 : 32, alignItems: 'start' }}>

          {/* Entradas */}
          <div style={{ background: 'var(--surface-card)', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-xl)', padding: isMobile ? '24px 20px' : '30px 28px', display: 'flex', flexDirection: 'column', gap: 24 }}>
            <div>
              <h2 style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 22, color: 'var(--text-strong)', margin: '0 0 6px' }}>Sobre o seu imóvel</h2>
              <p style={{ fontFamily: 'var(--font-body)', fontSize: 13.5, color: 'var(--text-muted)', margin: 0 }}>Nenhum dado seu é solicitado para ver o resultado.</p>
            </div>

            <div>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: 12.5, fontWeight: 600, color: 'var(--text-strong)', marginBottom: 9 }}>Bairro</div>
              <select
                value={bairro}
                onChange={(e) => setBairro(e.target.value)}
                style={{ width: '100%', height: 46, padding: '0 14px', borderRadius: 'var(--radius-md)', border: '1px solid var(--border-default)', background: 'var(--surface-card)', fontFamily: 'var(--font-body)', fontSize: 14.5, color: 'var(--text-strong)', cursor: 'pointer' }}
              >
                {bairros.filter((b) => P.bairros[b.slug]).map((b) => (
                  <option key={b.slug} value={b.slug}>{b.nome} — {b.cidade}</option>
                ))}
              </select>
            </div>

            <CampoRadio label="Tipo de imóvel" valor={tipo} onChange={setTipo}
              opcoes={_SIM_TIPOS.map((t) => ({ valor: t, label: t }))} />

            <CampoRadio label="Quartos" valor={quartos} onChange={setQuartos}
              opcoes={[{ valor: '1', label: '1' }, { valor: '2', label: '2' }, { valor: '3', label: '3' }, { valor: '4', label: '4 ou mais' }]} />

            <div>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: 12.5, fontWeight: 600, color: 'var(--text-strong)', marginBottom: 9 }}>Diferenciais</div>
              <div style={{ display: 'flex', flexDirection: 'column', gap: 9 }}>
                {P.diferenciais.map((d) => {
                  const on = difs.indexOf(d.id) !== -1;
                  return (
                    <label key={d.id} style={{ display: 'flex', alignItems: 'center', gap: 11, cursor: 'pointer', fontFamily: 'var(--font-body)', fontSize: 14, color: 'var(--text-body)' }}>
                      <input type="checkbox" checked={on} onChange={() => alternarDif(d.id)}
                        style={{ width: 17, height: 17, accentColor: 'var(--brown-600)', cursor: 'pointer' }} />
                      {d.label}
                    </label>
                  );
                })}
              </div>
            </div>

            <div>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: 12.5, fontWeight: 600, color: 'var(--text-strong)', marginBottom: 6 }}>
                Custo mensal do imóvel
              </div>
              <p style={{ fontFamily: 'var(--font-body)', fontSize: 12.5, color: 'var(--text-muted)', margin: '0 0 9px', lineHeight: 1.5 }}>
                Condomínio, IPTU, água, luz e internet. Na temporada esse custo é seu; no aluguel anual costuma ser do inquilino.
              </p>
              <div style={{ display: 'flex', alignItems: 'center', gap: 10 }}>
                <span style={{ fontFamily: 'var(--font-body)', fontSize: 14, color: 'var(--text-muted)' }}>R$</span>
                <input
                  type="number" min="0" step="50" value={custoMensal}
                  onChange={(e) => { setCustoEditado(true); setCustoMensal(e.target.value); }}
                  style={{ flex: 1, height: 46, padding: '0 14px', borderRadius: 'var(--radius-md)', border: '1px solid var(--border-default)', fontFamily: 'var(--font-body)', fontSize: 14.5, color: 'var(--text-strong)' }}
                />
                <span style={{ fontFamily: 'var(--font-body)', fontSize: 13.5, color: 'var(--text-muted)' }}>/ mês</span>
              </div>
            </div>
          </div>

          {/* Resultado */}
          <div style={{ display: 'flex', flexDirection: 'column', gap: 18 }}>
            {r && (
              <React.Fragment>
                <div style={{ background: 'var(--brown-700)', borderRadius: 'var(--radius-xl)', padding: isMobile ? '26px 22px' : '34px 36px', color: 'var(--cream-50)' }}>
                  <div className="sbl-eyebrow" style={{ color: 'var(--rose-300)', marginBottom: 16 }}>Estimativa para {nomeBairro}</div>
                  <div style={{ display: 'grid', gridTemplateColumns: isMobile ? '1fr 1fr' : 'repeat(3, 1fr)', gap: isMobile ? 20 : 28 }}>
                    <div>
                      <div style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: isMobile ? 26 : 32, lineHeight: 1.05 }}>{moeda(r.diaria)}</div>
                      <div style={{ fontFamily: 'var(--font-body)', fontSize: 12.5, color: 'var(--brown-100)', marginTop: 5 }}>
                        diária média<br />
                        <span style={{ color: 'var(--rose-300)' }}>{moeda(r.diariaMin)} a {moeda(r.diariaMax)}</span>
                      </div>
                    </div>
                    <div>
                      <div style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: isMobile ? 26 : 32, lineHeight: 1.05 }}>{Math.round(r.ocupacao * 100)}%</div>
                      <div style={{ fontFamily: 'var(--font-body)', fontSize: 12.5, color: 'var(--brown-100)', marginTop: 5 }}>
                        ocupação anual<br />
                        <span style={{ color: 'var(--rose-300)' }}>cerca de {r.noites} noites</span>
                      </div>
                    </div>
                    <div style={{ gridColumn: isMobile ? '1 / -1' : 'auto' }}>
                      <div style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: isMobile ? 26 : 32, lineHeight: 1.05 }}>{moedaCurta(r.liquidoTemporada)}</div>
                      <div style={{ fontFamily: 'var(--font-body)', fontSize: 12.5, color: 'var(--brown-100)', marginTop: 5 }}>
                        líquido por ano<br />
                        <span style={{ color: 'var(--rose-300)' }}>{moedaCurta(r.liquidoTemporadaMin)} a {moedaCurta(r.liquidoTemporadaMax)}</span>
                      </div>
                    </div>
                  </div>
                </div>

                {/* A conta aberta. É o que separa uma estimativa de uma promessa. */}
                <div style={{ background: 'var(--surface-card)', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-xl)', padding: isMobile ? '22px 20px' : '26px 30px' }}>
                  <h3 style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 19, color: 'var(--text-strong)', margin: '0 0 16px' }}>A conta, aberta</h3>
                  {[
                    ['Receita bruta das diárias', moeda(r.brutoAnual), false],
                    ['Comissão SBL (20%)', '− ' + moeda(r.comissao), false],
                    ['Condomínio, IPTU e contas', '− ' + moeda(r.custosAnuais), false],
                    ['Resultado líquido no ano', moeda(r.liquidoTemporada), true],
                  ].map(([rotulo, valor, forte]) => (
                    <div key={rotulo} style={{
                      display: 'flex', justifyContent: 'space-between', alignItems: 'baseline', gap: 16,
                      padding: '11px 0',
                      borderTop: forte ? '1px solid var(--border-default)' : '1px solid var(--border-subtle)',
                      marginTop: forte ? 6 : 0,
                    }}>
                      <span style={{ fontFamily: 'var(--font-body)', fontSize: forte ? 15 : 14, fontWeight: forte ? 600 : 400, color: forte ? 'var(--text-strong)' : 'var(--text-body)' }}>{rotulo}</span>
                      <span style={{ fontFamily: 'var(--font-body)', fontSize: forte ? 18 : 14.5, fontWeight: forte ? 700 : 500, color: forte ? 'var(--text-strong)' : 'var(--text-body)', whiteSpace: 'nowrap' }}>{valor}</span>
                    </div>
                  ))}

                  <div style={{ marginTop: 20, padding: '16px 18px', background: 'var(--color-bg-alt)', borderRadius: 'var(--radius-md)' }}>
                    <div style={{ fontFamily: 'var(--font-body)', fontSize: 14, color: 'var(--text-body)', lineHeight: 1.6 }}>
                      No <strong>aluguel anual</strong>, o mesmo imóvel renderia cerca de <strong>{moeda(r.aluguelMensal)}/mês</strong>, ou {moedaCurta(r.liquidoAnual)} líquidos no ano — já descontadas a taxa de administração e uma vacância média entre contratos.
                    </div>
                    <div style={{ fontFamily: 'var(--font-body)', fontSize: 14.5, fontWeight: 600, color: r.diferenca >= 0 ? 'var(--color-success)' : 'var(--color-warning)', marginTop: 10 }}>
                      {r.diferenca >= 0
                        ? `A temporada rende cerca de ${moedaCurta(r.diferenca)} a mais por ano neste cenário.`
                        : `Neste cenário, o aluguel anual rende cerca de ${moedaCurta(-r.diferenca)} a mais — e dá menos trabalho.`}
                    </div>
                  </div>
                </div>

                <GraficoSazonalidade receitaAnual={r.brutoAnual} />

                <div style={{ border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-lg)', padding: '18px 20px', background: 'var(--color-bg-alt)' }}>
                  <p style={{ fontFamily: 'var(--font-body)', fontSize: 13, color: 'var(--text-muted)', margin: 0, lineHeight: 1.65 }}>
                    <strong style={{ color: 'var(--text-body)' }}>Isto é uma estimativa, não uma promessa de receita.</strong> Os valores partem de médias de mercado em João Pessoa (atualizadas em {P.atualizadoEm}) e não consideram o estado de conservação, a mobília, a qualidade das fotos, a concorrência dentro do seu edifício nem a política de preços adotada. A avaliação presencial é gratuita e chega a um número com pé no chão.
                  </p>
                </div>
              </React.Fragment>
            )}
          </div>
        </div>
      </section>

      {/* CAPTAÇÃO */}
      <section style={{ background: 'var(--brown-900)' }}>
        <div style={{ maxWidth: 1180, margin: '0 auto', padding: isMobile ? '44px 20px' : '64px 40px' }}>
          <div style={{ display: 'grid', gridTemplateColumns: isMobile || isTablet ? '1fr' : '1fr 460px', gap: isMobile ? 30 : 56, alignItems: 'center' }}>
            <div>
              <div className="sbl-eyebrow" style={{ color: 'var(--rose-300)', marginBottom: 14 }}>Próximo passo</div>
              <h2 style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: isMobile ? 27 : 36, lineHeight: 1.12, color: 'var(--cream-50)', margin: '0 0 16px' }}>
                Quer o número real do seu imóvel?
              </h2>
              <p style={{ fontFamily: 'var(--font-body)', fontSize: 15.5, lineHeight: 1.7, color: 'var(--brown-100)', margin: '0 0 22px' }}>
                Agendamos uma visita sem custo, avaliamos o imóvel de perto e apresentamos uma projeção de diária e ocupação baseada no desempenho real da nossa carteira no seu bairro — incluindo o que precisa ser ajustado antes de anunciar.
              </p>
              <ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: 11 }}>
                {['Avaliação presencial gratuita', 'Sem taxa de cadastro ou mensalidade', 'Comissão de 20% só sobre o que você receber'].map((t) => (
                  <li key={t} style={{ display: 'flex', alignItems: 'center', gap: 10, fontFamily: 'var(--font-body)', fontSize: 14.5, color: 'var(--cream-50)' }}>
                    <i data-lucide="check" style={{ width: 17, height: 17, color: 'var(--rose-300)', flexShrink: 0 }}></i>
                    {t}
                  </li>
                ))}
              </ul>
            </div>

            <window.FormularioProprietario
              origem="simulador-de-renda"
              contexto={r ? {
                bairro: nomeBairro, tipo, quartos,
                diferenciais: difs.join(', '),
                diariaEstimada: Math.round(r.diaria),
                liquidoAnualEstimado: Math.round(r.liquidoTemporada),
              } : null}
              mensagemWhatsapp={resumoParaWhatsapp}
            />
          </div>
        </div>
      </section>

      {/* CONTEÚDO + FAQ */}
      {seo && (
        <section style={{ maxWidth: 820, margin: '0 auto', padding: isMobile ? '44px 20px' : '64px 40px' }}>
          {(seo.secoes || []).map((s) => (
            <div key={s.h2} style={{ marginBottom: 38 }}>
              <h2 style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: isMobile ? 24 : 30, color: 'var(--text-strong)', margin: '0 0 14px' }}>{s.h2}</h2>
              {(s.p || []).map((p, i) => (
                <p key={i} style={{ fontFamily: 'var(--font-body)', fontSize: 16.5, lineHeight: 1.75, color: 'var(--text-body)', margin: '0 0 15px' }}>{p}</p>
              ))}
            </div>
          ))}
          {seo.faq && seo.faq.length > 0 && (
            <div>
              <h2 style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: isMobile ? 24 : 30, color: 'var(--text-strong)', margin: '0 0 20px' }}>Perguntas frequentes</h2>
              <window.FaqLista itens={seo.faq} />
            </div>
          )}
          <div style={{ marginTop: 40, display: 'flex', gap: 12, flexWrap: 'wrap' }}>
            <Button variant="primary" iconRight="arrow-right" onClick={() => onNav('howitworks')}>Como funciona a administração SBL</Button>
            <Button variant="outline" onClick={() => onNav('announce')}>Quero anunciar meu imóvel</Button>
          </div>
        </section>
      )}
    </div>
  );
}
window.SimuladorScreen = SimuladorScreen;
window.calcularRenda = calcularRenda;
