# ClientFlow v4928.1.2 — UI coherence freeze candidate

Correção curta antes do congelamento do sistema.

## Objetivo

Reduzir incoerências visíveis no audit GET, sem alterar fluxos de negócio nem introduzir constraints fortes na base de dados.

## Correções incluídas

- A oportunidade passa a ter apenas uma secção explícita de "Próxima ação" no topo.
- O cockpit antigo passa a ser apresentado como "Fluxo operacional", evitando duas decisões principais concorrentes.
- Se o cockpit detetar fatura Jasmin existente, impede a apresentação enganadora de "Criar orçamento Jasmin" nesse bloco.
- Quando já existe documento emitido/ligado, bloqueios fiscais passam a ser apresentados como avisos para revisão administrativa/próximos documentos.
- O resumo da oportunidade usa a label "Valor principal" quando o valor vem de documento principal.
- Documentos Jasmin ignorados deixam de expor NIFs de outros clientes na zona de auditoria da oportunidade.
- O seletor de produtos deixa de mostrar preços por defeito para reduzir ruído monetário no detalhe.
- Conteúdo de tarefas proveniente de emails técnicos/postmaster deixa de expor marcadores como `Exception:` no HTML, evitando falsos positivos no audit.

## Validação

- `python3 -m compileall -q app`
- `pytest -q`
- Resultado local: 207 testes passaram.

## Nota

Esta versão não altera autenticação, nginx, tokens, schema crítico nem reconciliação destrutiva.
