// =========================================
// In-page modal / sheet for footer subpages
// =========================================
const { useState: _ms, useEffect: _me } = React;

const SUBPAGE_CONTENT = {
  // EMPRESA
  about: {
    eyebrow: 'Empresa',
    title: 'Quem somos',
    intro: 'Auditcash é um sistema brasileiro fundado em 2026 — feito por contadores, que já nasceu auditado. Nossa origem: ELEVQUALY CONSULTORIA E TREINAMENTOS LTDA · CNPJ 61.112.598/0001-03 · Fortaleza/CE.',
    body: [
      { h: 'Por que existimos', p: 'A relação entre marketplace e seller é assimétrica: o canal define a regra, aplica a regra e cobra a regra. O seller só vê o resultado no final do mês, sem evidência e sem caminho fácil pra contestar. Nós existimos pra inverter essa assimetria com tecnologia — fazer o seller saber exatamente quanto está perdendo e recuperar automaticamente.' },
      { h: 'Feito por contadores', p: 'Auditcash nasceu dentro de um escritório de contabilidade que atendia sellers de marketplace e via, todo mês, contas erradas batendo na mesa. Sistema feito por quem entende da regra fiscal — não por quem só sabe programar. Cada linha de código é validada por contador antes de virar funcionalidade.' },
      { h: 'Como ganhamos dinheiro', p: 'Só quando você recupera. Performance pricing como padrão: 0,7% do que conseguimos contestar e trazer de volta pro seu caixa, com piso de R$ 297/mês pra cobrir o custo operacional. Sem fidelidade.' },
      { h: 'Quem somos hoje', p: 'Time em Fortaleza, com background em contabilidade fiscal, fintech e auditoria. Operação 100% remote-first, escritório opcional na Aldeota. Estamos crescendo — vagas abertas em engenharia e produto.' },
      { h: 'Pra onde vamos', p: 'Em 2026 estamos focados em sellers brasileiros de R$ 200k a R$ 5M/mês de GMV. A visão de longo prazo: ser a camada de auditoria padrão de qualquer pagamento B2B no Brasil.' },
    ]
  },
  contact: {
    eyebrow: 'Empresa',
    title: 'Contato',
    intro: 'Time pequeno, resposta rápida. Sem chatbot, sem ticket-system labiríntico.',
    body: [
      { h: 'Comercial', p: 'contato@auditcash.com.br · resposta em até 4h em horário comercial.' },
      { h: 'Suporte de clientes', p: 'contato@auditcash.com.br · canal exclusivo no painel · SLA de 24h.' },
      { h: 'Imprensa', p: 'contato@auditcash.com.br · kit de marca e material institucional disponível mediante solicitação.' },
      { h: 'Endereço', p: 'Av. Dom Luís 500 · Aldeota · Fortaleza · CE · 60160-230.' },
    ]
  },
  // LEGAL
  privacy: {
    eyebrow: 'Legal',
    title: 'Política de Privacidade',
    intro: 'Versão 2.1 · vigente desde 01 de janeiro de 2026. Esta política descreve, em linguagem clara, como o Auditcash trata os dados pessoais e empresariais dos seus usuários. A versão integral em formato jurídico está disponível mediante solicitação ao DPO.',
    body: [
      { h: '1. Controlador dos dados',
        p: 'ELEVQUALY CONSULTORIA E TREINAMENTOS LTDA · CNPJ 61.112.598/0001-03 · Av. Dom Luís 500, Aldeota, Fortaleza/CE, 60160-230. Encarregado de Proteção de Dados (DPO): Mariana Silva · contato@auditcash.com.br.' },

      { h: '2. Quais dados coletamos',
        p: 'a) Dados de identificação do seller: CNPJ, razão social, nome fantasia, e-mail comercial, telefone, endereço fiscal. b) Dados transacionais dos marketplaces conectados via OAuth: pedidos (ID, SKU, valor, data), comissões aplicadas, fretes cobrados, repasses programados e estornos. c) Dados bancários via Open Finance: extrato de conta corrente (créditos e débitos relacionados a marketplaces), saldo no momento da consulta, identificação da instituição financeira. d) Dados de uso da plataforma: logs de acesso, ações no painel, dispositivos utilizados, cookies estritamente necessários (sessão e preferência de idioma/tema). Nunca coletamos: credenciais de login (você autentica diretamente no canal/banco), CPFs ou dados pessoais do consumidor final, dados de produtos não relacionados a divergência financeira.' },

      { h: '3. Bases legais de tratamento (Art. 7º LGPD)',
        p: 'a) Execução de contrato (Art. 7º, V) para tudo que é estritamente necessário à prestação do serviço — conexão com canais, varredura de divergências, abertura de contestação, exportação para auditoria fiscal. b) Legítimo interesse (Art. 7º, IX) para detecção proativa de novas categorias de divergência, sempre com avaliação prévia de impacto à privacidade (LIA) e balanceamento com seus direitos. c) Cumprimento de obrigação legal (Art. 7º, II) para retenção fiscal de dados transacionais (5 anos, conforme CTN). d) Consentimento explícito (Art. 7º, I) apenas para envio de comunicações comerciais não-essenciais — você pode revogar a qualquer momento sem perder acesso ao serviço.' },

      { h: '4. Como usamos os dados',
        p: 'Exclusivamente para: (i) detectar divergências entre o que foi vendido, cobrado e pago; (ii) gerar e protocolar contestações no padrão de cada canal; (iii) confirmar créditos no extrato bancário via Open Finance; (iv) gerar relatórios auditáveis (PDF/CSV) para o cliente e para auditoria fiscal; (v) melhorar a precisão do motor de regras (apenas com dados agregados e anonimizados, jamais individualizados). NÃO usamos seus dados para: treinar modelos de IA generativa, vender ou compartilhar com brokers, segmentar publicidade de terceiros, ou qualquer finalidade não declarada nesta política.' },

      { h: '5. Compartilhamento com terceiros',
        p: 'Compartilhamos dados apenas com: (a) o próprio marketplace ou banco envolvido na contestação, e somente o estritamente necessário (protocolo, valor, evidência) — nunca dados pessoais do consumidor; (b) processadores de infraestrutura sujeitos a DPA assinado: AWS (hospedagem), Stripe (pagamentos), Resend (e-mails transacionais); (c) autoridades públicas mediante ordem judicial ou requisição legal formal. Nenhum dado é transferido para fora do território brasileiro sem garantias adequadas (cláusulas-padrão, decisão de adequação ou consentimento específico, conforme Art. 33 LGPD).' },

      { h: '6. Retenção e descarte',
        p: 'Dados transacionais (pedidos, comissões, contestações): mantidos pelo tempo da contratação + 5 anos após cancelamento (exigência fiscal do CTN). Dados de identificação: mantidos enquanto durar o vínculo; após cancelamento, anonimizados em até 30 dias salvo retenção legal. Logs de acesso: 12 meses. Cookies: sessão (expira ao fechar navegador) e preferência de tema/idioma (1 ano). Você pode solicitar antecipação do descarte a qualquer momento — atendemos no menor prazo possível respeitando obrigações legais que ainda vigorem.' },

      { h: '7. Direitos do titular (Art. 18 LGPD)',
        p: 'Você tem direito a: (i) confirmar a existência de tratamento; (ii) acessar todos os seus dados; (iii) corrigir dados incompletos, inexatos ou desatualizados; (iv) anonimizar, bloquear ou eliminar dados desnecessários ou tratados em desconformidade; (v) portabilidade dos dados para outro fornecedor; (vi) eliminar dados tratados com base em consentimento; (vii) ser informado sobre compartilhamentos; (viii) revogar consentimento. Todos os pedidos são atendidos via painel (Configurações → Privacidade) ou e-mail ao DPO em até 15 dias úteis, gratuitamente.' },

      { h: '8. Segurança dos dados',
        p: 'TLS 1.3 em trânsito, AES-256 em repouso. Chaves gerenciadas em AWS KMS com rotação automática. Tokens OAuth com escopo mínimo (apenas leitura) e rotação a cada 60 dias. MFA obrigatório para colaboradores. Princípio do menor privilégio aplicado com revisão trimestral. Pentest semestral por empresa independente certificada. Programa de bug bounty privado ativo. Detalhes técnicos no documento "Segurança".' },

      { h: '9. Cookies e tecnologias similares',
        p: 'Usamos apenas o estritamente necessário: cookie de sessão (HTTPOnly, SameSite=Strict, expira ao logout), cookie de preferência (idioma, tema, tamanho de texto — 1 ano), e armazenamento local para estado da interface (não-identificável). Não usamos cookies de rastreamento, fingerprinting ou pixels de terceiros. Não temos integração com Google Analytics, Meta Pixel ou similares.' },

      { h: '10. Crianças e adolescentes',
        p: 'Auditcash é serviço B2B destinado a pessoas jurídicas representadas por adultos. Não coletamos intencionalmente dados de menores. Caso tomemos conhecimento de coleta acidental, anonimizamos ou eliminamos os dados imediatamente.' },

      { h: '11. Incidentes de segurança',
        p: 'Em caso de incidente envolvendo dados pessoais com risco ou dano relevante: comunicação à ANPD em até 72 horas e aos titulares afetados em até 7 dias úteis, conforme Art. 48 LGPD. A comunicação incluirá: natureza do incidente, dados afetados, medidas técnicas e organizacionais adotadas, riscos e medidas corretivas aplicadas.' },

      { h: '12. Alterações nesta política',
        p: 'Atualizações materiais (que ampliem ou modifiquem o tratamento) são notificadas por e-mail e aviso no painel com 30 dias de antecedência. Ajustes redacionais ou de clareza vigoram a partir da publicação. Histórico de versões disponível mediante solicitação.' },

      { h: '13. Contato e reclamações',
        p: 'Para qualquer dúvida ou exercício de direitos: contato@auditcash.com.br. Caso não esteja satisfeito com a resposta, você pode peticionar diretamente à Autoridade Nacional de Proteção de Dados (ANPD) em www.gov.br/anpd.' },
    ]
  },
  terms: {
    eyebrow: 'Legal',
    title: 'Termos de Uso',
    intro: 'Termos sem letrinha miúda traduzida em linguagem clara. Versão jurídica completa disponível em PDF.',
    body: [
      { h: 'O que oferecemos', p: 'Plataforma SaaS de conciliação financeira e contestação automática para sellers de marketplace. Não somos correspondente bancário, não movimentamos seu dinheiro, não temos custódia.' },
      { h: 'Quanto cobramos', p: 'Plano Performance: 0,7% sobre o valor efetivamente recuperado e creditado na sua conta (após confirmação Open Finance), com piso de R$ 297/mês. Planos fixos: valor mensal contratado, sem variável. Sem fidelidade.' },
      { h: 'Responsabilidades', p: 'Você é responsável pela exatidão dos dados que conecta. Nós somos responsáveis pela disponibilidade da plataforma (SLA 99,5%) e pela exatidão das contestações formatadas — se houver erro nosso, refazemos.' },
      { h: 'Cancelamento', p: 'A qualquer momento, sem multa. Acesso permanece até o fim do ciclo pago. Contestações já abertas continuam sendo monitoradas até resolução.' },
    ]
  },
  lgpd: {
    eyebrow: 'Legal',
    title: 'LGPD',
    intro: 'Lei 13.709/2018 — somos controladores dos dados que você nos confia, e tratamos como tal.',
    body: [
      { h: 'Base legal', p: 'Execução de contrato (Art. 7º, V) para tudo que é operacional, e legítimo interesse (Art. 7º, IX) para detecção de divergências — sempre balanceado com seus direitos.' },
      { h: 'DPO', p: 'Encarregado de Dados: Mariana Silva · contato@auditcash.com.br. Resposta a solicitações de titular em até 15 dias úteis, conforme Art. 19.' },
      { h: 'Incidentes', p: 'Em caso de incidente com risco a titulares, comunicação à ANPD em até 72h e aos titulares afetados em até 7 dias úteis, com plano de mitigação anexo.' },
      { h: 'Compartilhamento com canais', p: 'Quando contestamos, compartilhamos com o marketplace ou banco apenas o estritamente necessário: protocolo, valor, evidência. Nunca dados pessoais do consumidor final.' },
    ]
  },
  security: {
    eyebrow: 'Legal',
    title: 'Segurança',
    intro: 'Stack de segurança alinhada aos padrões fintech. Auditoria SOC 2 Type II em andamento (conclusão prevista Q3 2026).',
    body: [
      { h: 'Criptografia', p: 'TLS 1.3 em trânsito, AES-256 em repouso. Tokens OAuth com rotação automática. Credenciais bancárias nunca tocam nosso servidor — Open Finance via fluxo regulado pelo BCB.' },
      { h: 'Acesso', p: 'Princípio do menor privilégio. MFA obrigatório para todos os colaboradores. Logs de acesso imutáveis com retenção de 12 meses. Revisão trimestral de permissões.' },
      { h: 'Infraestrutura', p: 'AWS (sa-east-1). Backup diário criptografado em região secundária. RTO 4h, RPO 1h. Pentest semestral por empresa independente certificada.' },
      { h: 'Reporte de vulnerabilidade', p: 'contato@auditcash.com.br · PGP key disponível. Programa de bug bounty privado — entre em contato pra detalhes de escopo e recompensa.' },
    ]
  },
  status: {
    eyebrow: 'Legal',
    title: 'Status da plataforma',
    intro: 'Disponibilidade em tempo real. Todos os sistemas operando normalmente.',
    body: [
      { h: 'API core', p: 'Operacional · uptime 30d: 99,98% · latência p95: 142ms.', status: 'up' },
      { h: 'Conexões Open Finance', p: 'Operacional · 9 bancos ativos · última sincronização: agora.', status: 'up' },
      { h: 'Integrações marketplaces', p: 'Operacional · 10 canais ativos · throughput médio: 240 req/min.', status: 'up' },
      { h: 'Motor de contestação', p: 'Operacional · 0 contestações em fila · tempo médio: 47s por protocolo.', status: 'up' },
    ]
  },
  // RECURSOS
  docs: {
    eyebrow: 'Recursos',
    title: 'Documentação',
    intro: 'Guias para conectar, configurar regras de auditoria e exportar relatórios. Para devs, veja a aba API.',
    body: [
      { h: 'Primeiros passos', p: 'Em 8 minutos: criar conta · conectar primeiro marketplace via OAuth · conectar conta bancária via Open Finance · ver primeira divergência detectada.' },
      { h: 'Configurando tolerâncias', p: 'Ajuste por canal e categoria: comissão (faixa esperada), frete (tabela contratual), prazo de payout (D+N). Tolerâncias muito apertadas geram falsos positivos; muito largas deixam dinheiro na mesa.' },
      { h: 'Exportação e integrações', p: 'Excel, CSV, JSON via API. Integração nativa com Bling, Tiny, Omie, SAP e TOTVS. Webhook para qualquer ferramenta customizada — endpoint configurável no painel.' },
      { h: 'Auditoria fiscal', p: 'Cada divergência e contestação gera um pacote auditável (PDF + JSON) com protocolo, evidência, timestamps e cadeia de eventos — pronto para apresentar à Receita ou em arbitragem.' },
    ]
  },
  api: {
    eyebrow: 'Recursos',
    title: 'API',
    intro: 'REST API com autenticação OAuth 2.0. Documentação OpenAPI 3.1 completa em docs.auditcash.com.br/api.',
    body: [
      { h: 'Endpoints principais', p: 'GET /v1/divergences · POST /v1/contestations · GET /v1/reconciliation · GET /v1/sellers/{id}/exposure. Paginação cursor-based, rate limit 600 req/min por API key.' },
      { h: 'Webhooks', p: 'Eventos: divergence.detected, contestation.opened, contestation.resolved, payout.confirmed. Assinatura HMAC-SHA256, retry exponencial até 24h.' },
      { h: 'SDKs', p: 'Node.js · Python · Go (em beta). Postman collection oficial mantida atualizada.' },
      { h: 'Sandbox', p: 'Ambiente de teste com dados sintéticos realistas. Chaves de API geradas em 30 segundos no painel — sem aprovação prévia.' },
    ]
  },
  changelog: {
    eyebrow: 'Recursos',
    title: 'Novidades',
    intro: 'O que mudou recentemente no Auditcash. Atualizado a cada release.',
    body: [
      { h: 'Mai 2026 · v2.4', p: 'Carrossel de funcionalidades no painel. Suporte a multi-CNPJ no plano Growth (era exclusivo Enterprise). Filtros avançados de SKU por categoria fiscal.' },
      { h: 'Abr 2026 · v2.3', p: 'Integração nativa Shein e Carrefour. Detecção de estorno duplicado (era manual). Performance: -38% no tempo médio de varredura.' },
      { h: 'Mar 2026 · v2.2', p: 'Modo dark · acessibilidade completa (alto contraste, dislexia, daltonismo, calm mode). Tradução PT/EN.' },
      { h: 'Fev 2026 · v2.1', p: 'Performance pricing como plano default. SLA dedicado no Enterprise. Webhook signature v2 com chave rotacionável.' },
    ]
  },
  glossary: {
    eyebrow: 'Recursos',
    title: 'Glossário',
    intro: 'Termos que aparecem no painel e no extrato dos canais — explicados sem juridiquês.',
    body: [
      { h: 'GMV (Gross Merchandise Value)', p: 'Valor bruto vendido no canal, antes de qualquer dedução (comissão, frete, estorno). Base usada por todos marketplaces para calcular tarifas.' },
      { h: 'Comissão de canal', p: 'Percentual cobrado pelo marketplace sobre cada venda. Varia por categoria, modalidade (Clássico/Premium no ML), e às vezes por SKU. Aplicada errada é a fonte #1 de perda.' },
      { h: 'Payout / repasse', p: 'Valor líquido (GMV − comissão − frete − estornos) creditado na sua conta bancária. Prazo típico: D+14 ou D+30. Atraso ou inexistência = divergência.' },
      { h: 'Open Finance', p: 'Sistema regulado pelo BCB que permite, com seu consentimento, leitura de dados de contas bancárias por aplicações de terceiros. Não movimenta dinheiro, só lê extrato.' },
      { h: 'Conciliação', p: 'Processo de comparar três fontes: (1) o que foi vendido (pedido), (2) o que o marketplace cobrou (extrato do canal), (3) o que o banco recebeu (extrato bancário). Quando os três batem: ok. Quando não: divergência.' },
      { h: 'Contestação', p: 'Reclamação formal ao canal apontando uma cobrança indevida, com evidência (número do pedido, comprovante, regra aplicada incorretamente). Padronizada por marketplace.' },
    ]
  },
  help: {
    eyebrow: 'Recursos',
    title: 'Central de ajuda',
    intro: 'Respostas rápidas para as perguntas mais comuns. Não achou? contato@auditcash.com.br — SLA 24h.',
    body: [
      { h: 'Não consigo conectar meu Mercado Livre', p: 'Verifique se você tem permissão de administrador na conta ML. Se for conta corporativa, peça ao admin pra liberar OAuth de terceiros. Se persistir, abra um chamado com o erro exato.' },
      { h: 'Detectou uma divergência que não é divergência', p: 'Use o botão "Marcar como esperado" e descreva o motivo (ex: contrato custom de frete). O motor aprende em 7 dias e para de flaggar casos similares pra esse canal/SKU.' },
      { h: 'Contestação foi negada pelo marketplace', p: 'O Auditcash registra o motivo da negativa e sugere próximas ações (juntar evidência adicional, escalar pra arbitragem, ou aceitar). Você decide.' },
      { h: 'Posso pausar a auditoria temporariamente', p: 'Sim. No painel, "Configurações → Conexões → Pausar". Volta sozinha em 30 dias ou quando você reativar. Conexão fica ativa, apenas o motor de regras é desligado.' },
    ]
  },
};

function Modal({ id, onClose }) {
  const data = SUBPAGE_CONTENT[id];
  const t = useT();
  _me(() => {
    const esc = (e) => { if (e.key === 'Escape') onClose(); };
    document.addEventListener('keydown', esc);
    document.body.style.overflow = 'hidden';
    return () => { document.removeEventListener('keydown', esc); document.body.style.overflow = ''; };
  }, [onClose]);
  if (!data) return null;
  return (
    <div className="modal-backdrop" onClick={onClose} role="dialog" aria-modal="true" aria-label={data.title}>
      <div className="modal-sheet" onClick={(e) => e.stopPropagation()}>
        <button className="modal-close" onClick={onClose} aria-label="Fechar">
          <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>
        </button>
        <div className="modal-content">
          <div className="modal-eyebrow"><Eyebrow>{data.eyebrow}</Eyebrow></div>
          <h2 className="modal-title">{data.title}</h2>
          <p className="modal-intro">{data.intro}</p>
          <div className="modal-body">
            {data.body.map((b, i) => (
              <div key={i} className="modal-block">
                <h3 className="modal-block-h">
                  {b.status && <span className={`modal-status modal-status-${b.status}`}><span className="dot"></span></span>}
                  {b.h}
                </h3>
                <p className="modal-block-p">{b.p}</p>
              </div>
            ))}
          </div>
        </div>
      </div>
    </div>
  );
}

window.Modal = Modal;
window.SUBPAGE_CONTENT = SUBPAGE_CONTENT;
