> ## Documentation Index
> Fetch the complete documentation index at: https://docs.growtify.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Viabilidade técnica GHL

> Parecer de 08/09/2026: alcance da skin, limites reais e prova necessária antes da compra.

<Note>
  Revisão de 08/09/2026. O escopo é **redesign da experiência**: identidade, reposicionamento de elementos e mobile web. Pesquisa oficial e inspeção responsiva realizadas; **nenhuma skin foi injetada ou salva no CRM**.
</Note>

## Conclusão para decidir

**Podemos planejar uma experiência própria sobre o Growtify nativo. Não há evidência para prometer liberdade total em todas as páginas.** A compra do tema ainda não está tecnicamente liberada.

| Frente                              | Resultado                                                                                 |
| ----------------------------------- | ----------------------------------------------------------------------------------------- |
| Análise de mecanismos e riscos      | Inventário ampliado; cobertura integral ainda pendente                                    |
| Inspeção prática da interface atual | Desktop 1440 px e mobile 390 px; dashboard também a 768 px                                |
| Reposicionamento e correção mobile  | Estratégia definida; execução da alteração não testada                                    |
| Temas                               | Candidatos comparados por edição, componentes e licença                                   |
| Prova de CSS/JS e reversão          | **Não executada**: a ferramenta disponível permite leitura do DOM, não injeção temporária |
| Produção                            | Nenhuma configuração salva, mensagem enviada ou transação executada para esta auditoria   |

**Não confundir:** medir a interface atual comprova o problema; testar CSS/JS comprova a solução; o protótipo aprova o visual. São três entregas distintas.

## Auditoria ampliada de cobertura — 08/09/2026

<Warning>
  **Em execução; não homologada.** A varredura foi ampliada para a agência, suas configurações e os módulos da subconta de referência. Ainda faltam rotas, abas, editores, autenticação e testes responsivos integrais. Nenhuma prova de alteração/reversão foi executada. A retomada acrescentou 101 observações estruturadas em 69 caminhos distintos. A passagem mobile foi ampliada, mas voltou a sofrer falhas de leitura e navegação. Os números são registros de inspeção, não páginas homologadas.
</Warning>

### Como interpretar os resultados

| Estado                            | O que significa                                                                                       |
| --------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Inspecionado                      | Rota aberta e estrutura observada. Não comprova todos os estados nem personalização                   |
| Incorporado                       | Iframe identificado. O interior exige avaliação própria                                               |
| Pendente                          | A rota, aba ou estado ainda não recebeu evidência suficiente                                          |
| Não verificável no contexto atual | Falha de acesso, recurso indisponível ou falta de cenário seguro; motivo deve ser registrado          |
| Homologado                        | Alteração, interação, responsividade e reversão comprovadas. **Nenhuma superfície está neste estado** |

O escopo é o produto disponível à agência e à subconta de referência, incluindo navegação interna, configurações e autenticação. Registros de clientes não são páginas diferentes; uma lista vazia não comprova seu editor. Perfis de acesso, recursos contratados e funcionalidades em rollout precisam constar da cobertura. Não há denominador fechado para publicar percentual.

### Inventário inspecionado

Rotas da subconta usam o marcador `SUBCONTA`. Dados de clientes, identificadores reais e informações financeiras foram omitidos. A inspeção principal desta expansão ocorreu em desktop; a passagem mobile a 390 px continua parcial. Leituras em carregamento, com destino divergente ou largura incorreta não contam como validação.

<AccordionGroup>
  <Accordion title="Agência — entradas principais">
    | Rota                         | Observação confirmada                                                    |
    | ---------------------------- | ------------------------------------------------------------------------ |
    | /agency\_dashboard           | Dashboard; dois gráficos Highcharts observados na aba Summary            |
    | /ai-suite                    | Controles nativos e tabelas; não alterar limites/plano                   |
    | /ask-ai-agency               | Interface de chat; nenhuma mensagem enviada                              |
    | /prospecting                 | Iframe prod.analyzemy.business                                           |
    | /accounts                    | Lista e acesso à subconta de referência                                  |
    | /snapshots                   | Lista, paginação e controles; nenhum snapshot criado/atualizado          |
    | /reselling                   | Página com controles comerciais; nada salvo ou contratado                |
    | /marketplace                 | Iframe mp.gohighlevel.com                                                |
    | /affiliate\_portal/dashboard | Portal; sem transações                                                   |
    | /template-library-admin      | Biblioteca e controles de preview; editores ainda sem cobertura integral |
    | /partners                    | Iframe partners.gohighlevel.com                                          |
    | /university                  | Página de acesso ao University                                           |
    | /saas\_education             | Iframe [www.gohighlevel.com](http://www.gohighlevel.com)                 |
    | /ghl-swag                    | Carregamento não confirmado; revisar                                     |
    | /ideas                       | Redirecionamento para ambiente externo de ideias                         |
    | /mobile-app-customiser       | Iframe mobile-whitelabel-customizer.leadconnectorhq.com                  |
    | /desktop-whitelabel-app      | Formulário, preview e aba Status; nada salvo                             |
    | /integration                 | Sete abas inspecionadas na agência e na subconta; sem instalar apps      |
  </Accordion>

  <Accordion title="Agência — configurações">
    | Rota sob /settings/         | Observação confirmada                                                                             |
    | --------------------------- | ------------------------------------------------------------------------------------------------- |
    | profile                     | Iframe client-app-crm-settings; controles de perfil, senha e segurança observados sem acionamento |
    | company                     | Basic Details, White Label e Advanced Settings inspecionadas; sem salvar                          |
    | users → team                | Iframe client-app-crm-settings                                                                    |
    | billing                     | Interface comercial; nada contratado                                                              |
    | workflow-settings           | Iframe client-app-automation-workflows                                                            |
    | phone\_integration          | Tabela e controles; sem chamadas, movimentação ou exportação                                      |
    | email\_services             | Iframe ghl-isv-app-prod                                                                           |
    | default\_emails             | Preview e troca de templates; nenhum envio                                                        |
    | announcements               | Lista e paginação; nenhum anúncio publicado                                                       |
    | workflow-premium-features   | Tabela de configuração; nada ativado                                                              |
    | workflow-external-ai-models | Tabela de configuração; nada ativado                                                              |
    | domain-purchase             | Configurações comerciais; nenhuma compra                                                          |
    | private-integrations        | Lista; nenhum token acessado/gerado                                                               |
    | affiliate                   | Formulário; nada salvo                                                                            |
    | custom\_menu\_link          | Iframe client-app-crm-settings                                                                    |
    | stripe                      | Integração existente; nenhuma conexão/desconexão                                                  |
    | api\_key                    | Estado sem chaves; nenhum segredo lido ou criado                                                  |
    | compliance                  | Ofertas/configurações; nenhum termo aceito                                                        |
    | labs                        | Recursos experimentais; nenhum toggle alterado                                                    |
    | audit/logs                  | Lista, filtros e aba Exports; nada exportado                                                      |
    | media-storage-usage         | Tabela de utilização; sem exportação                                                              |
  </Accordion>

  <Accordion title="Subconta — áreas principais">
    Rotas relativas a /v2/location/SUBCONTA/. Observações não representam todas as abas/modais.

    | Rota                                                        | Observação confirmada                                                                                       |
    | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
    | dashboard                                                   | Dashboard com tabela e iframe app.reportei.com                                                              |
    | ask-ai                                                      | Interface de chat; nenhuma interação com IA enviada                                                         |
    | launchpad                                                   | Onboarding; nenhuma integração ativada                                                                      |
    | conversations/conversations                                 | Caixa de entrada; aplicação pode restaurar conversa previamente selecionada                                 |
    | calendars/view                                              | Calendário, gestão de visualização e filtros                                                                |
    | contacts/smart\_list/All                                    | Lista, filtros, campos, criação/importação disponíveis; nada salvo                                          |
    | opportunities/list → opportunities                          | Quadro, filtros, campos; não movimentar oportunidades                                                       |
    | payments/invoices                                           | Lista e controles de faturas; nada emitido                                                                  |
    | vibe                                                        | Iframe leadgen-vibe-ai-builder                                                                              |
    | ai-agents/getting-started                                   | Canvas e controles de onboarding; nenhuma chamada/IA executada                                              |
    | marketing/social-planner → marketing/social-planner/planner | Seis abas principais e oito abas de Settings inspecionadas; subabas de conteúdo/estatísticas ainda parciais |
    | automation/workflows                                        | Iframe client-app-automation-workflows                                                                      |
    | funnels-websites/funnels                                    | Lista e controles; nenhum funil criado                                                                      |
    | memberships/client-portal/dashboard                         | Dashboard e convites; nenhum convite/magic link gerado                                                      |
    | media-storage                                               | Biblioteca; nenhum arquivo enviado/removido                                                                 |
    | reputation/overview                                         | Highcharts observado; contagem varia com estado/carregamento; nenhuma solicitação enviada                   |
    | reporting/reports                                           | Lista e controles de relatórios; nada criado/exportado                                                      |
    | integration                                                 | Sete abas de Marketplace inspecionadas; sem instalar ou contratar                                           |
    | mobile\_app                                                 | Iframe mobile-whitelabel-customizer                                                                         |
    | settings/company                                            | Iframe client-app-crm-settings                                                                              |
  </Accordion>

  <Accordion title="Subconta — navegação interna inspecionada">
    | Família                     | Rotas observadas                                                                                                                                                                                                                                                                    |
    | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Conversas                   | conversations/manual\_actions; conversations/templates; conversations/trigger-links; conversations/analytics (canvas); conversations/settings                                                                                                                                       |
    | Calendários                 | calendars/appointments; settings/calendars (iframe calendar-app)                                                                                                                                                                                                                    |
    | Contatos                    | contacts/bulk/actions; settings/fields; tasks; businesses/list                                                                                                                                                                                                                      |
    | Oportunidades               | opportunities/forecast; opportunities/pipeline; opportunities/bulk-actions                                                                                                                                                                                                          |
    | Faturas e contratos         | payments/recurring-templates; payments/invoice-templates; payments/v2/estimates; payments/integrations/dashboard; payments/proposals-estimates; payments/proposals-estimates/templates                                                                                              |
    | Vendas e catálogo           | payments/v2/orders; payments/v2/abandoned-checkouts; payments/v2/subscriptions; payments/v2/paymentlinks; payments/v2/transactions; payments/products; payments/products/collections; payments/products/inventory; payments/products/reviews; payments/coupons; payments/gift-cards |
    | Configurações de pagamentos | payments/settings/receipts, taxes, shipping, shipping-origin, subscriptions, miscellaneous-charges e payment-links; payments/integrations                                                                                                                                           |
    | Agentes                     | ai-agents/agent-studio; ai-agents/voice-ai (canvas); ai-agents/conversation-ai; ai-agents/knowledge-base; ai-agents/agent-templates; ai-agents/content-ai; ai-agents/agent-logs                                                                                                     |
    | Marketing                   | marketing/emails/statistics (iframe email-home-prod); marketing/templates; marketing/countdown-timer; marketing/trigger-links                                                                                                                                                       |
    | Afiliados                   | marketing/affiliate-manager; campaigns. dashboard, affiliates e payouts retornaram ao contêiner base; interior/rota final não comprovado. Iframe client-app-affiliate-manager                                                                                                       |
  </Accordion>

  <Accordion title="Subconta — expansão após recuperação da conexão">
    | Família          | Rotas/observações confirmadas                                                                                                                                                                                                                                 |
    | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Automações       | automation/overview e automation/workflows/settings: contêiner do iframe de workflows                                                                                                                                                                         |
    | Sites            | funnels-websites/websites, stores e webinars: listas; analytics: sete canvas; blogs: lista; wordpress/dashboard: página inicial sem contratação                                                                                                               |
    | Portal           | Portal em memberships/client-portal: dashboard, settings, seis páginas de configuração e branded-app inspecionados                                                                                                                                            |
    | Captação         | form-builder/main, survey-builder/main, quiz-builder/main, funnels-websites/chat-widget e qr-codes. Listas/estados vazios não comprovam os editores                                                                                                           |
    | Empresa e equipe | settings/company, profile e staff/team: iframe CRM Settings; crm-settings: página externa ao iframe; settings/company-billing/billing: interface de cobrança sem transação                                                                                    |
    | Canais           | settings/calendars: iframe calendar-app; settings/smtp\_service: iframe ISV; settings/phone\_system: interface e frames auxiliares Stripe. WhatsApp: Numbers, Templates, Flows, Messaging Limits e Calling inspecionados por acessibilidade e DOM na retomada |
    | Dados            | settings/objects, custom\_values, import-data, scoring e preferences: estruturas inspecionadas. fields: inspeção inicial confirmada; segunda leitura ainda carregando, não contar como nova validação                                                         |
    | Infraestrutura   | settings/domain, external-tracking, lc-integrations e private-integrations: páginas inspecionadas, sem conexão/chave criada                                                                                                                                   |
    | Organização      | settings/tags: tabela; settings/labs: interface sem alteração de toggles                                                                                                                                                                                      |
  </Accordion>
</AccordionGroup>

### Gráficos e componentes: mecanismo por superfície

| Superfície observada                     | Constatação                                                       | Consequência / prova ainda necessária                                                               |
| ---------------------------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| Agency Dashboard                         | Highcharts nas abas Summary e Reselling                           | Examinar estilo, legenda, tooltip, filtros e resize. Não trocar a biblioteca por inferência         |
| Reputation Overview                      | Highcharts, com contagem dependente do estado                     | Não extrapolar configuração do dashboard da agência para este módulo                                |
| Analytics de Sites                       | Sete elementos canvas                                             | CSS do contêiner não redesenha séries/textos pintados no canvas; identificar recurso nativo de tema |
| Conversation Analytics e Voice AI        | Canvas presentes                                                  | Confirmar a finalidade e o mecanismo de cada canvas antes de tratá-lo como gráfico                  |
| Dashboard da subconta                    | Reportei incorporado                                              | A aparência interna depende de mecanismo do próprio relatório                                       |
| Sidebar e barras de ações                | Estrutura do documento principal                                  | Candidatas a CSS específico; comprovar foco, permissões, menus e transição de rotas                 |
| Formulários, tabelas e kanban            | Estruturas diferentes por módulo                                  | Validar modais, listas suspensas, colunas, rolagem e estados; não importar reset global             |
| Calendários e configurações incorporadas | Calendário, CRM Settings, ISV e Workflows em documentos separados | Identificar suporte próprio de estilo por frame. A skin do documento principal não basta            |
| Builders                                 | Listas de entrada inspecionadas, editores incompletos             | Não prometer redesenho de editores sem prova; preservar drag-and-drop e controles sensíveis         |

**Dark integral não está comprovado.** Não há uma lista fechada de telas que terão de permanecer claras. Módulos externos podem exigir tema próprio ou permanecer com aparência nativa; não aplicar inversão de cores geral para disfarçar o problema.

### Iframes identificados

| Origem                                                | Local observado                         | Alcance confirmado                                   |
| ----------------------------------------------------- | --------------------------------------- | ---------------------------------------------------- |
| `app.reportei.com`                                    | Dashboard da subconta                   | Contêiner observado                                  |
| `client-app-automation-workflows.leadconnectorhq.com` | Automações e configurações de workflows | Contêiner observado                                  |
| `client-app-crm-settings.leadconnectorhq.com`         | Perfil, equipe, empresa e custom menus  | Contêiner observado                                  |
| `calendar-app.leadconnectorhq.com`                    | Configurações de calendário             | Contêiner observado                                  |
| `ghl-isv-app-prod.leadconnectorhq.com`                | Serviços de e-mail                      | Contêiner observado                                  |
| `email-home-prod.leadconnectorhq.com`                 | E-mail Marketing                        | Contêiner observado                                  |
| `client-app-affiliate-manager.leadconnectorhq.com`    | Afiliados da subconta                   | Rotas podem retornar ao contêiner; interior pendente |
| `leadgen-vibe-ai-builder.leadconnectorhq.com`         | Vibe                                    | Contêiner observado                                  |
| `mobile-whitelabel-customizer.leadconnectorhq.com`    | Configurador de aplicativo              | Contêiner observado                                  |
| `prod.analyzemy.business`                             | Prospecting da agência                  | Contêiner observado                                  |
| `mp.gohighlevel.com`                                  | Marketplace da agência                  | Contêiner observado                                  |
| `partners.gohighlevel.com`                            | Partners                                | Contêiner observado                                  |
| `www.gohighlevel.com`                                 | SaaS Education                          | Contêiner observado                                  |
| `reputationhub.site`                                  | Widgets de Reputation                   | Preview incorporado                                  |
| `backend.memberships.apisystem.tech`                  | Assessment de Courses                   | Documento incorporado observado                      |
| `app.leadconnectorhq.com`                             | Preview de Template Library             | Seletores desktop/tablet/mobile inspecionados        |

Frames auxiliares, como os de pagamento, não tornam automaticamente toda a página externa. Tamanho, visibilidade e contexto precisam ser considerados. A ferramenta de auditoria ler um iframe **não demonstra que o CSS/JS do site pai possa controlá-lo**. [Isolamento entre origens — MDN](https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Same-origin_policy).

### Retomada — observações adicionais

Foram preservadas 101 observações estruturadas em 69 caminhos distintos nesta retomada. São registros de rotas e abas, não 101 páginas novas nem um percentual de conclusão. O inventário anterior permanece válido onde não atualizado abaixo.

| Área                                 | Inspeção adicional confirmada                                                                                | Limite restante                                                                                           |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------- |
| Company da agência                   | Basic Details, White Label e Advanced Settings                                                               | Nenhuma configuração salva                                                                                |
| Dashboard e AI Suite da agência      | Reselling; Plans & Limits, Usage Dashboard e AI Setup                                                        | Highcharts em Reselling; canvas em Usage. Alteração de estilo não testada                                 |
| Marketplace                          | Sete abas em agência e subconta, incluindo instalados, revenda, agentes, ganhos, suporte e templates         | Sem instalação, compra ou teste de cada app                                                               |
| Template Library                     | Preview existente e seletores desktop/tablet/mobile                                                          | Preview incorporado; nenhum template aplicado, editores não cobertos                                      |
| Portal                               | Domain Setup, Branding, App Permissions, Language, Chat Widget, Email e Branded App                          | Não salvar nem ativar; experiência final do cliente não homologada                                        |
| Courses                              | Dashboard, Products, Offers, Course Progress, Assessment, Member/Revenue Analytics e Course Builder Settings | Menus de domínio, marca e notificações e editores ainda pendentes                                         |
| Communities, Certificates e GoKollab | Grupos, domínio, branded app, escolha de certificado, e-mails e página de ativação                           | Sem criar comunidade/certificado nem ativar serviço                                                       |
| Reputation                           | Requests, Reviews, Video Testimonials, Widgets, Listings, GBP e Settings                                     | Estados internos e formulário/editor completo não homologados                                             |
| Reporting                            | Google Ads, Meta Ads, Attribution, Calls, Appointments e Local Marketing Audit                               | Filtros e cenários completos ainda pendentes                                                              |
| Pagamentos                           | Receipts, Taxes, Shipping, Shipping Origin, Subscriptions, Miscellaneous Charges e Payment Links             | Sete entradas efetivamente observadas; substitui a contagem anterior não comprovada de oito adicionais    |
| Calendários                          | Preferences, Availability e Connections; seletor de tipo de calendário aberto sem criação                    | Preferences usa iframe visível; frames ocultos não tornam Availability/Connections integralmente externas |
| WhatsApp                             | Numbers, Templates, Flows, Messaging Limits e Calling                                                        | Falha anterior de leitura superada; sem envio nem alteração                                               |
| Social Planner                       | Seis abas principais e oito abas de Settings                                                                 | Subabas de Content, Comments e Statistics não percorridas integralmente                                   |
| E-mail Marketing                     | Statistics, Campaigns e Templates; interior do iframe lido                                                   | Dois canvas em Statistics; lista vazia não comprova editor                                                |
| Afiliados                            | Campaigns, Media e Settings; demais destinos retornam ao onboarding                                          | Interior operacional depende de configuração existente; não criar campanha para auditar                   |
| Outras configurações                 | Brand Boards, Brand Voice, Ad Manager e Audit Logs                                                           | Nenhuma marca, anúncio ou registro criado                                                                 |

#### Gráficos e documentos incorporados adicionais

* Highcharts: Reselling da agência, Reputation e relatórios Google/Meta Ads. Quantidades variam com aba e carregamento.
* Canvas: Courses Dashboard, AI Suite Usage, Marketplace Earnings, Social Planner Statistics, Attribution, Calls e Statistics de E-mail. Presença de canvas não identifica automaticamente a biblioteca.
* Iframe visível em Widgets de Reputation: reputationhub.site.
* Iframe visível em Courses Assessment: backend.memberships.apisystem.tech.
* Preview de Template Library: app.leadconnectorhq.com; conteúdo aninhado em sites.leadconnectorhq.com.
* Local Marketing Audit usa prod.analyzemy.business também dentro da subconta.
* Ler o iframe pela ferramenta de inspeção não concede ao CSS do documento pai acesso ao seu interior.

#### Responsividade: resultado ainda parcial

As medições foram ampliadas para outras rotas a 390 × 844 px. O arquivo estruturado inclui leituras válidas, carregamentos incompletos e falhas; esses estados permanecem distintos. Controles parcialmente fora da largura foram detectados, por exemplo, em calendários e filtros dos relatórios Google/Meta Ads. São candidatos a defeito até revisão visual do contexto.

Não usar ausência de overflow na raiz como aprovação: o conteúdo pode estar cortado dentro de painéis. Não usar uma captura de carregamento, da rota anterior ou em 1280 px como evidência mobile. Tablet, orientação, teclado virtual, interiores de iframes e todos os estados ainda não estão cobertos.

A conexão foi recuperada para ampliar a inspeção, mas a leitura automática voltou a falhar em duas abas durante a passagem mobile. As novas tentativas não produziram cobertura suficiente para fechar essa etapa.

### O que falta para encerrar a cobertura

1. Menus internos remanescentes: subabas de Social Planner, configurações adicionais de Courses, estados de Reputation e módulos condicionados a plano/integração. GHL Swag continuou sem carregamento confirmado.
2. Editores e modais de Sites, formulários, surveys, quiz, e-mails, contratos, agentes e workflows; cenários de erro, validação, permissões e rolagem. Lista de entrada não homologa editor.
3. Interiores de iframes e mecanismos próprios de tema por módulo. Separar iframe visível, preview de conteúdo e frame auxiliar.
4. Login, logout, recuperação de senha, sessão expirada e MFA em sessão separada, sem mudar credenciais ou interromper o trabalho autenticado.
5. Desktop/tablet/mobile por rota e estado. Retomar da evidência salva, revalidando apenas carregamentos, medidas e destinos divergentes; não repetir toda a varredura.
6. Prova CSS/JS isolada: interação, persistência na navegação, gráficos e reversão. A ferramenta atual só admite inspeção; não salvar CSS global na agência para contornar o limite.

A auditoria integral não está concluída. A comparação de demos pode orientar a preferência visual; a compra continua condicionada à prova de adaptação e à licença adequada. Nenhum tema instala diretamente uma nova interface em todo o GHL.

### Critério de conclusão por página

Cada rota e estado precisa registrar: perfil/escopo, recurso disponível, largura, tema, componente, documento responsável, mecanismo de alteração, evidência antes/depois, interação preservada e resultado da reversão. Abas sem URL própria e modais contam como estados explícitos, não como cobertura presumida.

**Concluir a auditoria exige fechar as pendências ou registrar uma limitação comprovada para cada item.** Um conjunto de telas representativas ajuda a validar um mecanismo, mas não substitui a verificação de todas as páginas solicitadas. A escolha do tema não é o bloqueio atual.

## Evidências responsivas anteriores — amostra

Amostra da subconta de referência, com o estado e as personalizações já existentes. Não houve comparação com uma conta limpa; os problemas abaixo **não foram atribuídos exclusivamente ao código original do fornecedor**. Valores aproximados em pixels CSS.

| Tela / estado                                        | Observação                                                                            | Consequência para o redesign                                                              |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Sidebar                                              | 224 px expandida; 56 px recolhida no mobile; DOM e links nativos acessíveis           | Priorizar recolhimento e acesso claro ao menu; não remover módulos                        |
| Dashboard a 390 px                                   | Quatro indicadores com cerca de 82 px cada, rótulos cortados e rolagens internas      | Grade mobile própria, com uma coluna como primeiro teste                                  |
| Nova oportunidade a 390 px                           | Modal ocupa a tela, mas coluna lateral comprime campos; rótulos quebram verticalmente | Navegação do formulário acima do conteúdo; campos em coluna única                         |
| Nova oportunidade após carregamento direto em mobile | Compressão repetida; formulário vazio aberto e cancelado nas duas tentativas          | Não é apenas uma transição desktop → mobile                                               |
| Contatos a 390 px                                    | Botão Add Contact começa em x≈368 e tem ≈121 px de largura                            | Barra de ações precisa reorganizar-se, sem esconder criação/importação                    |
| Conversas a 390 px, sem conversa aberta              | Lista ≈319 px em x≈108; painel de conversa mede 0 px naquele estado                   | Testar alternância lista/conversa e retorno; não concluir que toda conversa está quebrada |
| Calendário a 390 px                                  | Painel Manage view ocupa grande parte da tela; grade e controles comprimidos          | Filtros em painel recolhível e visualização adequada à largura                            |
| Automações                                           | Lista de workflows em iframe de origem diferente                                      | CSS do documento principal não alcança o conteúdo interno                                 |
| AI Agents / entrada                                  | Tabela de 600 px dentro da tela de 390 px; canvas presente                            | Preservar rolagem contextual; canvas não é prova de motor de gráficos                     |
| Sites / lista                                        | Superfície principal inspecionada, sem abrir builders                                 | Não extrapolar o resultado da lista para o editor                                         |
| Gráficos                                             | Agência expõe marcação Highcharts; dashboard da subconta contém iframe externo        | Não presumir um motor único nem substituição por BK Lite                                  |

A largura total do documento permaneceu em 390 px em várias dessas telas **mesmo quando havia conteúdo cortado**. Verificar só `scrollWidth` da página não é um teste visual suficiente.

**Cobertura da amostra responsiva anterior:** agência/white label, dashboard, oportunidades e modal vazio, contatos, conversas sem abrir mensagem, calendário, lista de automações, entrada de AI Agents e lista de Sites. **Não coberto:** todos os submenus, estados de erro, perfis de acesso, formulário de contato preenchido, login desautenticado, recuperação/OAuth, editores internos, pagamentos, envio/salvamento e aparelho físico. A sessão do usuário não foi encerrada.

## O que podemos mover

A tabela é uma **recomendação de engenharia**, não uma coleção de alterações já implementadas.

| Mudança desejada                                        | Caminho preferencial                                              | Risco / limite                                                                           |
| ------------------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| Reordenar e redimensionar widgets                       | Editor nativo do dashboard, quando disponível                     | Layout e permissões devem ser conferidos; não foi salvo nenhum layout                    |
| Ajustar campos visíveis de cards                        | Manage Fields e apresentações nativas de oportunidades            | Preferências podem ser do usuário/navegador, não distribuição global                     |
| Reposicionar ações dentro da mesma barra                | Flex/Grid e quebra de linha, preservando os controles originais   | Ordem visual deve continuar coerente com teclado e leitor de tela                        |
| Sidebar mais clara e compacta                           | Estilizar raiz existente, estados ativo/expandido e itens nativos | Não clonar um segundo menu nem simular permissões por CSS                                |
| Trocar a coluna lateral do modal por navegação superior | Alteração de layout no mesmo componente                           | Exige teste de foco, rolagem, abas e validação; nenhum campo pode desaparecer            |
| Conversas em um painel por vez no mobile                | Aproveitar navegação nativa lista → conversa → voltar             | Não reconstruir mensagens, editor ou estado da conversa                                  |
| Mover componentes entre pais diferentes                 | Evitar; só estudar se o recurso nativo não resolver               | Pode quebrar estado, eventos, menus e renderização do framework                          |
| Barra inferior de atalhos                               | Candidata, não aprovada                                           | Só links/ações existentes e permitidos; não pode duplicar navegação ou esconder recursos |
| Conteúdo dentro de iframe externo                       | Apenas mecanismo próprio documentado para essa superfície         | CSS do pai não atravessa a origem; não contornar isolamento                              |

O GHL documenta [reorganização de widgets](https://help.gohighlevel.com/support/solutions/articles/155000001210-rearrange-widgets) e [configuração de cards/colunas de oportunidades](https://help.gohighlevel.com/support/solutions/articles/155000003910-customize-opportunity-cards-in-board-view). Há também [List View](https://help.gohighlevel.com/support/solutions/articles/155000002432-list-view-for-opportunities); usar um recurso nativo existente é preferível a reproduzi-lo por API.

A [MDN explica que CSS order não altera a ordem de leitura e tabulação](https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Flexible_box_layout/Ordering_items). A [documentação React alerta para alterações manuais em nós que o framework controla](https://react.dev/learn/manipulating-the-dom-with-refs). Isso justifica preservar a estrutura funcional, sem afirmar qual framework governa cada módulo do GHL.

## Contrato do mobile

Não é “desktop menor”. Estes são os requisitos de implementação e aceitação:

<AccordionGroup>
  <Accordion title="Navegação e ações" defaultOpen>
    * Menu recolhível com rótulos compreensíveis, estado ativo e acesso a todos os módulos permitidos.
    * Busca e ação principal visíveis; ações secundárias podem ir para menu acessível.
    * Sem depender de hover. Menu e modal precisam abrir, fechar e devolver o foco.
    * Meta de produto: alvos principais de toque de 44 × 44 px. Não confundir com o mínimo WCAG 2.2 de 24 × 24 px, que possui exceções.
  </Accordion>

  <Accordion title="Formulários, conversas e teclado">
    * Uma coluna nos formulários estreitos; rótulos acima dos campos e erros junto do campo.
    * Conteúdo rolável sem cortar os botões finais; teclado virtual não pode cobrir o campo ativo ou envio.
    * Conversas: lista, mensagem e detalhes acessíveis por navegação explícita, preservando rascunho, anexos e retorno.
    * Não desativar zoom. Testar orientação, barras do navegador e áreas seguras; somente safe-area não resolve teclado virtual.
  </Accordion>

  <Accordion title="Dashboard, tabelas, kanban e calendário">
    * Cards legíveis; número, rótulo e unidade não podem depender de tooltip.
    * Tabelas e kanban podem ter rolagem horizontal contextual; não transformar a página inteira em uma faixa larga.
    * Preferir lista/agenda nativa quando adequada, mantendo acesso à informação completa.
    * Filtros recolhíveis e explicação do filtro ativo. Não remover colunas ou ações essenciais só para caber.
    * Drag-and-drop precisa de alternativa por ação acessível quando a função nativa oferecer essa possibilidade.
  </Accordion>

  <Accordion title="Matriz de aceitação">
    * Larguras-alvo: 320, 390, 768, 1024 e 1440 px. Testar carregamento direto e mudança de largura.
    * Dark/light; conteúdo vazio, longo, carregando, erro e modal aberto.
    * Teclado e foco; zoom; toque real; iOS/Safari e Android/Chrome.
    * Não publicar sem conferir ações críticas e saída da skin.
    * Nesta auditoria foram medidos 390/1440 px e dashboard a 768 px; os outros cenários continuam pendentes.
  </Accordion>
</AccordionGroup>

Referências: [W3C — reflow](https://www.w3.org/WAI/WCAG22/Understanding/reflow.html), [alvos de toque](https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html) e [MDN — áreas seguras](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/env). Não há declaração de conformidade WCAG nesta etapa.

## Aplicação, distribuição e limites

<Tabs>
  <Tab title="CSS/JS nativo">
    Os campos Custom CSS/JS foram observados em Company → White Label. A documentação do GHL permite personalização visual, mas alerta para quebras e áreas desaconselhadas, incluindo builders, modais sensíveis e elementos sem seletor estável. O tema nativo da agência não comprova dark/light das subcontas. [Fonte oficial](https://help.gohighlevel.com/support/solutions/articles/48000982604-agency-company-settings-in-highlevel).

    **Estratégia:** tokens próprios → CSS específico por superfície → JavaScript mínimo, idempotente e reversível apenas quando necessário. Sem importar reset global, Tailwind/Bootstrap inteiro, sobrescrever funções do GHL ou acessar dados internos.

    O tema comprado será instalado **no protótipo**. No CRM entram adaptações compatíveis, não um aplicativo React sobre o aplicativo existente.
  </Tab>

  <Tab title="Plugin Marketplace">
    Custom JS/CSS em app é um mecanismo de distribuição, não permissão ilimitada de redesenho. A central de ajuda menciona distribuição Agency ou Agency & Sub-account, revisão prévia de até dez dias e código autocontido. Restringe carregamento remoto dinâmico, acesso sensível e banco direto. [Regras oficiais](https://help.gohighlevel.com/support/solutions/articles/155000003278-unlocking-customization-enhancing-marketplace-apps-with-custom-javascript).

    Reconfirmar alcance real no portal e nos iframes antes de escolher essa via. Um plugin **não foi criado nem submetido**. Não prometer atualização silenciosa de código remoto incompatível com a revisão.
  </Tab>

  <Tab title="Iframes, gráficos e login">
    O iframe da lista de automações e o relatório externo do dashboard são limites concretos do CSS do pai. [Same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Same-origin_policy). A ferramenta conseguir ler o frame não concede essa capacidade à skin.

    Gráficos: priorizar [temas nativos](https://help.gohighlevel.com/support/solutions/articles/155000003966-how-to-customize-dashboard-themes) e [configuração de widgets](https://help.gohighlevel.com/support/solutions/articles/155000001207-customizing-dashboard-widgets). Não extrair dados privados para redesenhar um gráfico paralelo. Troca de biblioteca não comprovada.

    Login real: preservar autenticação, MFA, recuperação e OAuth. O login fictício do protótipo não coletará credenciais reais. A aplicação ao login exige sessão de teste separada, não logout da sessão do usuário.
  </Tab>

  <Tab title="Fora do caminho escolhido">
    Custom Pages não substituem o CRM nativo; continuam fora do projeto. [Documentação](https://marketplace.gohighlevel.com/docs/2023-02-21/marketplace-modules/CustomPages/index.html).

    Custom Menu Links podem abrir ferramentas/documentação; não comprovam reordenação livre do menu nativo. [Documentação](https://help.gohighlevel.com/support/solutions/articles/48001185767-custom-menu-links).

    Não inclui aplicativo iOS/Android personalizado, PDF gerado pelo sistema, reverse proxy do CRM, scraping de dados de negócio ou backend paralelo. O protótipo estático não precisa de API.
  </Tab>
</Tabs>

## Prova pendente e segurança

<Warning>
  A restrição atual é da ferramenta de teste: ela não oferece injeção temporária de estilos/scripts nesta sessão. **Não alterei Custom CSS/JS da agência para contornar isso.** Esta limitação não prova impossibilidade no GHL, mas impede encerrar a prova prática.
</Warning>

<Steps>
  <Step title="Preparar teste local de sessão">
    Usar uma superfície de inspeção que permita estilos temporários no navegador ou ambiente de teste explicitamente isolado. Nenhuma publicação global e nenhuma conta nova sem necessidade. Preservar o código existente em local privado antes de qualquer mudança persistente futura.
  </Step>

  <Step title="Iniciar a prova sem tema e ampliar para todas as superfícies">
    Sidebar + barra de ações + modal vazio de oportunidade + grade do dashboard, com CSS neutro mínimo. Medir antes/depois em mobile e desktop; conferir navegação e foco. Identificar separadamente o alcance em frames. Esse piloto não encerra a auditoria: aplicar o protocolo a todas as rotas e estados do inventário, registrando exceções comprovadas.
  </Step>

  <Step title="Remover e repetir">
    Desativar os estilos de teste, recarregar e confirmar retorno à apresentação anterior. Depois validar estados dinâmicos e permissões no ambiente apropriado, sem usar dados comerciais reais para testes de escrita.
  </Step>

  <Step title="Liberar escolha e compra">
    Entregar matriz passou/falhou. Só então confirmar o pacote, a licença e os componentes da opção visual de Marcelo. O protótipo completo começa após receber o tema.
  </Step>
</Steps>

Na implementação futura, ativação por domínio/rota/conta e recurso desligado por padrão reduzem alcance acidental, mas não substituem permissões. Se uma raiz esperada desaparecer, não aplicar o ajuste daquele módulo; preservar a UI nativa. Sem loops agressivos, reordenação contínua de DOM, requisições extras de negócio ou logs com dados de clientes.

**Manutenção:** testar rotas críticas, versão anterior recuperável, monitoramento sem conteúdo sensível e alertas acionáveis. Correção automática irrestrita não está prometida. [Publicação e manutenção](/servidor).

**Próximo ponto:** viabilizar a prova temporária, não pedir uma compra às cegas. [Comparação técnica e visual dos temas](/temas).
