/* ===== Porta de entrada: só o login =====
   Produto próprio, entregue a um cliente específico. A única porta é
   e-mail e senha criados pela ValorIA: não existe botão público de
   visitante nem atalho por perfil.
   A visão de visitante continua existindo DENTRO do sistema: quem entrou
   troca o perfil para "Visitante" quando vai mostrar a tela para alguém.
   12/11: a apresentação (módulos, passos, perfis, limites, exemplo) saiu
   desta tela — o acesso está fechado, quem chega aqui já é autorizado.
   O texto inteiro está em claude/entrada-apresentacao-removida.md.
   Nada nesta tela identifica pessoa ou operação real.

   14/11, segunda decisão: a porta da demonstração SAIU.
   Ela entrava sem conferir senha nenhuma, com dados simulados. Enquanto
   o endereço estava atrás da trava da Vercel, isso não expunha nada.
   Ao tirar aquela trava — para o Paulo e os vendedores conseguirem
   entrar — qualquer um com o link passaria a ver o sistema por dentro.
   Então agora existe uma porta só. Para mostrar o app a alguém, crie um
   acesso com funcao 'visitante': entra de verdade e não grava nada.

   14/11, terceira rodada: a tela ficou limpa a pedido dele.
   Saiu o rodapé com "demonstração com dados simulados" e a nota que
   explicava a ValorIA: isto aqui é o sistema do cliente, não uma
   demonstração nossa. As cores ainda são as da ValorIA porque ele
   ainda não tem as da Transportadora Iunes; quando tiver, trocam. */

function Entrada({onConta}) {
  const [mail,setMail]=useState(''); const [pass,setPass]=useState('');
  const [indo,setIndo]=useState(false); const [erro,setErro]=useState('');
  const [esqueci,setEsqueci]=useState(false);
  const comConta=async()=>{
    setIndo(true); setErro('');
    /* onConta também pode recusar: a senha pode estar certa e o e-mail
       não estar na lista de autorizados. Por isso o await. */
    try{ const s=await bancoEntrar(mail,pass); await onConta(s); }
    catch(e){ setErro(e.message||'Não deu para entrar.'); setIndo(false); }
  };
  return <div className="en-wrap en-so-login">
    <header className="en-top">
      <span className="en-tag">Acesso restrito</span>
    </header>

    <div className="en-hero">
      <div className="en-hero-txt">
        <div className="en-brand en-marca-grande">
          <span className="brand-mark">V</span>
          <div><strong>Transportadora Iunes</strong><small>Distribuição de combustíveis</small></div>
        </div>
      </div>
      <section className="en-login">
        <h2>Entrar</h2>
        <label>E-mail<input id="lg-mail" type="email" value={mail} onChange={e=>setMail(e.target.value)} placeholder="voce@suaempresa.com.br" autoComplete="username"/></label>
        <label>Senha<input id="lg-pass" type="password" value={pass} onChange={e=>setPass(e.target.value)} placeholder="••••••••" autoComplete="current-password"/></label>
        <button className="primary" onClick={comConta} disabled={indo||!mail.trim()||!pass}>{indo?'Entrando...':'Entrar com minha conta'}</button>
        {erro && <p className="rs bad en-erro">{erro}</p>}

        {/* ⚠️ NÃO é o "esqueci minha senha" automático, de propósito.
            Sem servidor de e-mail próprio o Supabase recusa mandar mensagem
            para endereço fora da equipe do projeto, então o botão padrão
            prometeria um e-mail que nunca chega — pior do que não ter.
            Fonte: https://supabase.com/docs/guides/auth/auth-smtp
            Quando houver SMTP, isto vira o fluxo de verdade. */}
        <button className="en-link" onClick={()=>setEsqueci(v=>!v)}>Esqueci minha senha</button>
        {esqueci && <p className="en-login-nota en-esqueci">A senha é trocada pela ValorIA, não por e-mail
          automático. Peça uma senha temporária nova; no próximo acesso o sistema pede para você
          criar a sua.</p>}
      </section>
    </div>

    <footer className="en-foot">Sistema de gestão da distribuição</footer>
  </div>;
}
