// Public legal pages (Privacy Policy + Terms of Use), rendered outside the
// auth gate so they're reachable logged-out at /privacy and /terms. Content
// mirrors legal/POLITICA-DE-PRIVACIDADE.md and legal/TERMOS-DE-USO.md — keep
// the two in sync when either changes.

const LEGAL_UPDATED = "10 de junho de 2026";
const LEGAL_CONTACT = "contato@yudiganeko.com";
const LEGAL_ENTITY = "YUDI GANEKO TECNOLOGIA LTDA";
const LEGAL_CNPJ = "60.344.960/0001-09";

const LegalShell = ({ title, subtitle, children, onHome }) => (
  <div style={{ minHeight: "100vh", background: "var(--bg)" }}>
    <div style={{ maxWidth: 780, margin: "0 auto", padding: "32px 24px 80px" }}>
      <div className="row-gap" style={{ alignItems: "center", gap: 10, marginBottom: 28 }}>
        <a
          href="/"
          onClick={(e) => { if (onHome) { e.preventDefault(); onHome(); } }}
          className="row-gap"
          style={{ alignItems: "center", gap: 10, textDecoration: "none", color: "inherit" }}
        >
          <span style={{ width: 30, height: 30, borderRadius: 8, background: "var(--brand)", display: "grid", placeItems: "center", color: "#fff", fontFamily: "var(--font-display)", fontWeight: 800 }}>G</span>
          <span style={{ fontFamily: "var(--font-display)", fontWeight: 700, fontSize: 17, letterSpacing: "-0.02em" }}>GenerateThumb</span>
        </a>
        <div className="spacer" style={{ flex: 1 }} />
        <a href="/" onClick={(e) => { if (onHome) { e.preventDefault(); onHome(); } }} className="btn btn-sm">← Início</a>
      </div>

      <h1 className="display" style={{ fontSize: 34, margin: "0 0 6px", letterSpacing: "-0.02em" }}>{title}</h1>
      <p className="muted-2" style={{ margin: "0 0 4px", fontSize: 13 }}>Última atualização: {LEGAL_UPDATED}</p>
      {subtitle}

      <div className="legal-body" style={{ marginTop: 24, lineHeight: 1.7, fontSize: 15, color: "var(--text-2)" }}>
        {children}
      </div>
    </div>
  </div>
);

const H = ({ children }) => (
  <h2 style={{ fontFamily: "var(--font-display)", fontSize: 20, letterSpacing: "-0.01em", margin: "28px 0 10px", color: "var(--text)" }}>{children}</h2>
);
const P = ({ children }) => <p style={{ margin: "0 0 12px" }}>{children}</p>;
const UL = ({ children }) => <ul style={{ margin: "0 0 12px", paddingLeft: 22 }}>{children}</ul>;

const PrivacyPage = ({ onHome }) => (
  <LegalShell
    title="Política de Privacidade"
    onHome={onHome}
    subtitle={
      <p className="muted-2" style={{ margin: 0, fontSize: 13 }}>
        Controlador: {LEGAL_ENTITY} — CNPJ {LEGAL_CNPJ}. Encarregado (DPO): {LEGAL_CONTACT}.
      </p>
    }
  >
    <P>
      Esta Política descreve como o GenerateThumb (generatethumb.com), operado por {LEGAL_ENTITY},
      trata os dados pessoais de seus usuários, em conformidade com a Lei nº 13.709/2018 (LGPD). Ao
      criar uma conta e usar o serviço, você declara estar ciente desta Política.
    </P>

    <H>1. Quais dados coletamos</H>
    <P><strong>Conta e autenticação:</strong> o acesso é feito por login com a sua conta Google.
      Recebemos do Google o seu e-mail, nome e foto de perfil para criar e identificar sua conta, além
      do identificador e data de criação da conta.</P>
    <P><strong>Uso e conteúdo:</strong> imagens que você envia como referência ("avatares"); prompts e
      textos que você digita; URLs de vídeos do YouTube e metadados públicos associados (título, autor,
      miniatura); thumbnails geradas; e o histórico de gerações e de transações de créditos.</P>
    <P><strong>Pagamento:</strong> plano contratado, status da assinatura e identificadores de cobrança.
      Não armazenamos dados completos de cartão — o pagamento é processado integralmente pela Stripe.</P>

    <H>2. Para que usamos e com qual base legal</H>
    <UL>
      <li>Criar/manter sua conta e autenticar o acesso — execução de contrato.</li>
      <li>Gerar thumbnails e processar suas imagens e prompts — execução de contrato.</li>
      <li>Processar pagamentos e gerir créditos/assinatura — execução de contrato e obrigação legal/fiscal.</li>
      <li>Prevenir fraude e abuso e garantir a segurança — legítimo interesse.</li>
      <li>Comunicações de marketing (se houver) — consentimento, revogável a qualquer momento.</li>
    </UL>

    <H>3. Compartilhamento e operadores</H>
    <P>Compartilhamos dados, apenas no necessário, com: <strong>Supabase</strong> (banco de dados,
      autenticação e armazenamento das imagens); <strong>Stripe</strong> (pagamentos e assinaturas);
      <strong> Luma AI</strong> (modelo de IA que gera as imagens — recebe seus prompts e as imagens de
      referência/origem); <strong>Vercel</strong> (hospedagem); e <strong>Google</strong> (provedor de
      login). Não vendemos seus dados pessoais.</P>

    <H>4. Transferência internacional</H>
    <P>Parte dos operadores acima (Stripe, Luma AI, Vercel e Google) processa dados fora do Brasil,
      inclusive nos Estados Unidos. Esses dados poderão ser transferidos internacionalmente, com base
      nas hipóteses do art. 33 da LGPD e exigindo de cada prestador padrões adequados de proteção.</P>

    <H>5. Suas imagens e responsabilidade sobre o conteúdo</H>
    <P>As imagens de referência e as thumbnails geradas ficam em armazenamento privado, acessíveis
      apenas por links assinados temporários ligados à sua conta. Você é responsável por ter os direitos
      necessários sobre o que envia, incluindo autorização de uso de imagem de pessoas retratadas. Não
      envie fotos de terceiros sem consentimento, nem conteúdo ilegal.</P>

    <H>6. Por quanto tempo guardamos</H>
    <P>Mantemos seus dados enquanto a conta estiver ativa. Encerrada a conta, os dados associados são
      excluídos. Registros financeiros podem ser retidos pelo prazo exigido pela legislação fiscal.</P>

    <H>7. Segurança</H>
    <P>Os dados trafegam por conexões criptografadas (HTTPS) e ficam em ambiente protegido; o acesso às
      imagens é restrito por links assinados de validade curta. Em caso de incidente de segurança
      relevante, comunicaremos os titulares e a ANPD conforme a LGPD.</P>

    <H>8. Seus direitos e como exercê-los</H>
    <P>Nos termos do art. 18 da LGPD, você pode confirmar, acessar, corrigir, anonimizar, bloquear,
      eliminar e portar seus dados, além de revogar consentimento. Você pode <strong>excluir a sua conta
      e todos os dados associados</strong> a qualquer momento na tela Conta → Excluir conta — isso remove
      perfil, avatares, thumbnails, imagens e histórico de créditos, e cancela assinaturas ativas. Para
      qualquer outro direito, escreva para {LEGAL_CONTACT}.</P>

    <H>9. Cookies</H>
    <P>Usamos armazenamento local/cookies estritamente necessários para manter sua sessão autenticada.
      Caso passemos a usar analytics ou marketing, atualizaremos esta Política e, quando exigido,
      solicitaremos seu consentimento.</P>

    <H>10. Crianças e adolescentes</H>
    <P>O serviço é destinado a maiores de 18 anos. Não coletamos intencionalmente dados de menores sem o
      consentimento dos responsáveis.</P>

    <H>11. Encarregado (DPO) e contato</H>
    <P>Para assuntos de privacidade e dados pessoais, fale com o nosso encarregado pelo e-mail {LEGAL_CONTACT}.</P>

    <H>12. Alterações</H>
    <P>Podemos atualizar esta Política periodicamente. A data no topo indica a última revisão; mudanças
      relevantes serão comunicadas pelos canais do serviço.</P>
  </LegalShell>
);

const TermsPage = ({ onHome }) => (
  <LegalShell
    title="Termos de Uso"
    onHome={onHome}
    subtitle={
      <p className="muted-2" style={{ margin: 0, fontSize: 13 }}>
        Operado por {LEGAL_ENTITY} — CNPJ {LEGAL_CNPJ}. Contato: {LEGAL_CONTACT}.
      </p>
    }
  >
    <P>Estes Termos regem o uso do GenerateThumb (generatethumb.com), serviço de geração de thumbnails
      por inteligência artificial operado por {LEGAL_ENTITY}. Ao criar uma conta ou usar o serviço, você
      concorda com estes Termos. Se não concordar, não utilize o serviço.</P>

    <H>1. O serviço</H>
    <P>O GenerateThumb permite gerar imagens (thumbnails) a partir de prompts, imagens de referência e
      metadados de vídeos, usando modelos de IA de terceiros (Luma AI). O serviço funciona por um sistema
      de créditos: cada geração consome créditos do seu saldo.</P>

    <H>2. Conta</H>
    <UL>
      <li>O acesso é feito por login com a sua conta Google; você é responsável por mantê-la segura.</li>
      <li>Você é responsável por toda atividade realizada na sua conta.</li>
      <li>O serviço é destinado a maiores de 18 anos.</li>
      <li>Você pode excluir sua conta a qualquer momento na tela Conta → Excluir conta.</li>
    </UL>

    <H>3. Créditos, planos e pagamento</H>
    <UL>
      <li>Créditos são adquiridos por pacote avulso ou concedidos conforme o plano de assinatura.</li>
      <li>Preços, quantidades de crédito e condições vigentes são exibidos no momento da compra.</li>
      <li>O pagamento é processado pela Stripe; assinaturas renovam automaticamente até o cancelamento.</li>
      <li>Quando uma geração falha por erro do serviço, o crédito correspondente é estornado.</li>
    </UL>

    <H>4. Cancelamento e reembolso</H>
    <P>Você pode cancelar a assinatura a qualquer momento pelo portal de cobrança, deixando de ser
      cobrado nos ciclos seguintes; o acesso permanece até o fim do período já pago.</P>
    <P><strong>Direito de arrependimento (art. 49 do CDC):</strong> em compras pela internet, você pode
      desistir em até 7 dias da contratação. Nesse prazo, reembolsaremos os valores referentes a créditos
      ainda não utilizados. Créditos já consumidos em gerações concluídas não são reembolsáveis, por se
      tratar de serviço efetivamente prestado. Para solicitar, use o portal de cobrança ou escreva para
      {" "}{LEGAL_CONTACT}.</P>

    <H>5. Uso aceitável</H>
    <P>Você concorda em não usar o serviço para: criar conteúdo ilegal, difamatório ou que viole direitos
      de terceiros; gerar imagens de pessoas reais sem consentimento, inclusive deepfakes enganosos;
      produzir conteúdo sexual envolvendo menores ou material que incite ódio ou violência; ou burlar
      limites de uso, cobrança e segurança. Podemos suspender ou encerrar contas que violem estes Termos.</P>

    <H>6. Conteúdo do usuário</H>
    <P>Você declara possuir os direitos sobre as imagens e textos que envia e nos concede licença limitada
      para processá-los apenas para prestar o serviço (incluindo o envio aos provedores de IA). Você é o
      único responsável pelo conteúdo enviado e pelo uso que faz das imagens geradas.</P>

    <H>7. Direitos sobre as imagens geradas</H>
    <P>As imagens são produzidas por modelo de terceiro (Luma AI). Os direitos que você possui sobre o
      resultado são aqueles repassados pelos termos do provedor de IA. Na medida em que tais direitos nos
      sejam concedidos, nós os transferimos a você para uso pessoal e comercial das thumbnails geradas.
      Não garantimos exclusividade nem a possibilidade de registro do resultado como obra própria.</P>

    <H>8. Serviços de terceiros</H>
    <P>O serviço depende de prestadores como Luma AI, Supabase, Stripe, Vercel e Google. Indisponibilidades
      ou alterações nesses serviços podem afetar o funcionamento, sem que isso configure descumprimento de
      nossa parte.</P>

    <H>9. Disponibilidade e isenção de garantias</H>
    <P>O serviço é fornecido "no estado em que se encontra". Não garantimos disponibilidade ininterrupta,
      ausência de erros, nem que as imagens atenderão a uma finalidade específica. Geração por IA pode
      produzir resultados imprecisos ou inesperados.</P>

    <H>10. Limitação de responsabilidade</H>
    <P>Na máxima extensão permitida em lei, nossa responsabilidade por danos decorrentes do uso do serviço
      limita-se ao valor pago por você nos 12 meses anteriores ao fato. Não respondemos por danos
      indiretos, lucros cessantes, ou pelo uso que você faça das imagens geradas. Nada nestes Termos afasta
      direitos irrenunciáveis do consumidor previstos no CDC.</P>

    <H>11. Privacidade</H>
    <P>O tratamento de dados pessoais é regido pela nossa{" "}
      <a href="/privacy" onClick={(e) => { if (onHome) { e.preventDefault(); window.history.pushState({}, "", "/privacy"); window.dispatchEvent(new PopStateEvent("popstate")); } }}>Política de Privacidade</a>,
      que integra estes Termos.</P>

    <H>12. Alterações</H>
    <P>Podemos alterar estes Termos a qualquer momento. Mudanças relevantes serão comunicadas pelos canais
      do serviço. O uso continuado após a alteração implica concordância.</P>

    <H>13. Lei aplicável e foro</H>
    <P>Estes Termos são regidos pela legislação brasileira. Fica eleito o foro do domicílio do consumidor
      para dirimir controvérsias, conforme o CDC.</P>

    <H>14. Contato</H>
    <P>Dúvidas sobre estes Termos: {LEGAL_CONTACT}.</P>
  </LegalShell>
);

window.PrivacyPage = PrivacyPage;
window.TermsPage = TermsPage;
