Projeto Gemed 2.1

MENSAGERIA — AUDITORIA DAS TELAS IMPLEMENTADAS

Versão 1.0 — 21/10/2026

---

## 1. Escopo, fontes e método

**O que foi auditado:** 10 capturas de tela (5 telas × tema claro e escuro), todas em desktop. Ver o Anexo B para a lista e os nomes dos arquivos (pasta `Capturas/`).

| # | Tela | Origem |
| --- | --- | --- |
| 1 e 2 | Painel de Mensagens (Central do Médico) | claro / escuro |
| 3 e 4 | Lista de conversas ("Mensagens e notificações") | claro / escuro |
| 5 e 6 | Nova mensagem | claro / escuro |
| 7 e 8 | Conversa (detalhe da thread) | claro / escuro |
| 9 e 10 | Modal da conversa (aberto pelo painel da Central) | claro / escuro |

**Fontes de comparação:**

- Central do Médico — Especificação v5.7 (seções 2.5 e 2.8), Definição v5.7 (RN-CM-015, 019, 021, 022), Cenários de Teste v5.7 (CT-MSG), Registro de Decisões v1.6 e Protótipo v5.7 (renderizado para comparação).
- Design System (versão de 14/10/2026) e o guia "Mudanças no Design System — guia para desenvolvimento" v1.2.
- Decisões Transversais v1.3 (DT-001 a DT-012).
- Infra-estrutura/Conversas-e-Alertas.md e DDL `GescomMensageria.sql` (Biblioteca de Schema).
- Menu Lateral (CIU-E5) e `CargaSegGlobal.xlsx` (nome do item de menu).

**Como foi medido (para você poder contestar):**

- **Cores:** medidas nos pixels das capturas. As capturas estão em Display P3 sem perfil embutido; convertidas para sRGB, os fundos, os neutros do tema escuro, `neutral-darker`, `primary-pure` e `secondary-light` bateram com os tokens do Design System com diferença de até 3/255. Onde o valor medido coincide com um valor **antigo** do Design System, é esse valor antigo que está no código.
- **Contrastes:** calculados (WCAG 2.x) sobre os valores convertidos.
- **Tamanhos em px CSS:** estimados assumindo captura em 2x. Tratar como aproximação.

**Convenção deste documento:** o que está em "Observado" é fato (visto ou medido nas capturas). "Inferência" é marcada. Propostas minhas são marcadas **[INVENÇÃO]** — não são decisões nem estão em nenhum documento do projeto.

**Gravidade:** **Alta** = quebra regra explícita da especificação ou do Design System, ou reprova contraste WCAG AA. **Média** = inconsistência visível ou funcional sem quebra direta de regra. **Baixa** = acabamento.

**Limite importante:** só o painel (tela 1/2) e o modal (tela 9/10) têm especificação (Cockpit §2.5, que chama a tela dedicada de "fora do escopo desta especificação"). **As telas 3 a 8 (lista, nova mensagem, conversa) não têm Definição nem Especificação.** Para elas só é possível comparar com regras gerais (RN-CM-015/019/022, Design System, DT) e com os Cenários CT-MSG-01 a 04, que já assumem a tela "Nova mensagem".

---

## 2. Resumo

1. **Painel:** o card tem botão "Ver" no lugar de "Resolvido" (S-01).
2. **Modal:** "Resolvido" é um botão verde preenchido; a especificação pede o estilo terciário (contorno neutro) (S-02).
3. **Lista:** o status ("Enviada", "Resolvida"…) é texto em preto/branco puro, 16 px, maior que o assunto (14 px) — fora do Design System (D-01).
4. **Texto de informação em `neutral-medium`** (meta, subtítulos, placeholders, texto de ajuda): 2,45:1 no claro — o Design System proíbe esse uso (D-02).
5. **Valores antigos do Design System no tema claro** (anteriores a 14/10): prazo laranja 2,29:1, texto do chip do paciente 2,59:1, "Resolver" 3,00:1, `neutral-pure` 3,77:1 (D-03). Isso também aparece no painel da Central, já existente: é pendência de adoção do app, não só da mensageria.
6. **Aba "Usuários" ativa** com texto em `primary-pure` sobre branco: 1,67:1 (D-04).
7. **"Vencida"** é regra nova sem especificação, apresentada de três formas diferentes (vermelho no card, laranja no modal, laranja sem rótulo nas finalizadas) e com borda lateral vermelha só na lista (S-04, S-05, H-01).
8. **Título da lista "Mensagens e notificações"**: o menu e o painel dizem "Mensagens" (S-06).
9. **Rótulos e posições divergentes** entre modal e página: "Responder"/"Enviar", "Resolvido"/"Resolver", "Voltar" à direita numa tela e à esquerda na outra (H-02, H-03).
10. **Ninguém vê o destinatário** em nenhuma tela de conversa, e o próprio remetente aparece na lista de destinatários (L-07, L-08).

---

## 3. Desvios da especificação

| ID | Grav. | Tela | Observado | Especificado | Fonte |
| --- | --- | --- | --- | --- | --- |
| S-01 | Alta | Painel (1, 2) | O card tem o botão "Ver". Não há "Resolvido" no card. | Cada card exibe o botão "Resolvido" (com confirmação). O descarte só existe no modal. Motivo registrado: resolver é ação frequente e repetitiva. | Especificação §2.5 "Ação no card" e §2.8 (Button Tertiary); CT-MSG-19 (a) e CT-MSG-20; guia dev v5 §4.5; US-CM-008 |
| S-02 | Alta | Modal (9, 10) | "Resolvido" é botão verde preenchido (`primary-pure`), o maior destaque do modal. | "Resolvido" = Tertiary: fundo transparente, contorno 1 px `neutral-light`, texto `neutral-dark`. O verde primário não é usado em "Resolvido" desde a v5. | Especificação §2.8; guia dev v5 §4.5 ("Resolvido: texto `primary-pure` → contorno `neutral-light`"); Protótipo v5.7 (`btn-tertiary`) |
| S-03 | Baixa | Modal (9, 10) | "Descartado" tem fundo tingido (`error-light`: #FFEBEE no claro, #3A222F no escuro). No claro o texto (#D32F2F) sobre esse fundo dá 4,36:1. | Danger: fundo transparente, contorno 1 px `error-dark`, texto `error-dark`. | Especificação §2.8; guia dev v5 §4.5 |
| S-04 | Média | Lista (3, 4) | Cards "Vencida" têm borda lateral vermelha (`error-pure`). O mesmo estado no painel (1, 2) não tem borda. | A borda lateral é o indicador de **não lida** (3 px `secondary-dark`). Conversa lida = sem borda. | Especificação §2.5 (Conversas não lidas) e §2.8 (Message Icon) |
| S-05 | Média | Painel × Modal | A mesma conversa, com prazo vencido, é "Vencida · 15/10, 16:00" em vermelho no card e "Responder até 15/10, 16:00" em laranja no modal. | "Responder até {hora}" com ícone `clock`. A especificação não prevê estado vencido (ver L-04). | Especificação §2.5 (Prazo) |
| S-06 | Média | Lista (3, 4) | Título "Mensagens e notificações". | "Mensagens": é o nome do item de menu (`Processo` "Mensageria", termo pt-BR "Mensagens", rota `messages`) e o título do painel é link para "a tela dedicada de Mensagens". A v4.26 trocou "Notificações" por "Mensagens" de propósito, para unificar a grafia. | Especificação §2.5 "Navegação" e v4.26; `CargaSegGlobal.xlsx` (TermoTraducao) |
| S-07 | Média | Modal (9, 10) | Cada mensagem mostra só a hora ("14:57"), numa conversa de 6 dias atrás. | "Cada uma com autor e timestamp". Os exemplos da especificação e do protótipo são todos do mesmo dia, então não definem o caso de outro dia. | Especificação §2.5 "Ação ao clicar no card" |
| S-08 | Baixa | Painel e Modal | "há 6 dias · Dr. Gilliard…" com "há" em minúscula. | O exemplo da especificação é "Há 15 min · Sandra" (maiúscula; separador "·" confere). | Especificação §2.5 (card) |
| S-09 | Média | Nova mensagem (5, 6) | Campos de prazo nativos do navegador: "dd/mm/aaaa" e "--:--", com os ícones nativos de calendário e relógio. | Todo texto exibido segue o idioma da clínica, não o do navegador. Campos nativos `date`/`time` usam o formato e a língua do navegador. Risco — confirmar no ambiente de uma clínica en-US ou es-419. | DT-012; Especificação §2.5 (i18n) |

---

## 4. Desvios do Design System

| ID | Grav. | Observado | Design System | Medida |
| --- | --- | --- | --- | --- |
| D-01 | Alta | **Status na lista** ("Enviada", "Resolvida", "Descartada"): texto em **#000000 (claro) e #FFFFFF (escuro)**, 16 px (cap height 11,5 px), maior que o assunto (14 px) e que a meta (12 px). Parece elemento sem estilo (cor padrão do navegador). Na página da conversa o mesmo status está em texto pequeno no subtítulo. | Regra 1: "Hex, `rgb()`, `white`, `black` ou `#fff` escritos direto no componente são proibidos". Status de agenda usa chip com tokens `-bg`/`-fg`; o Design System não tem tokens de cor para status de conversa (ver L-09). | Cor medida; cap height medida |
| D-02 | Alta | **Texto de informação em `neutral-medium`:** meta ("há 6 dias · autor"), data/hora, subtítulos de página, texto de ajuda ("A conversa fica em destaque…"), "Opcional", "Enviando para", login do usuário, placeholder da busca, aba "Equipes" inativa, rótulos "Paciente"/"Prazo", autor e horário na página da conversa. | §2: `neutral-medium` = "placeholder, texto desabilitado". Acessibilidade (Especificação §2.8): "`neutral-medium` não é usado como texto de informação (nem em placeholder)". Para texto secundário o papel é `neutral-pure`. | Claro #94A7C4: **2,45:1** sobre branco, 2,24:1 sobre a página. Escuro #6F80A0: 4,25:1 sobre a superfície (< 4,5). `neutral-pure`: 5,5:1 (claro) e 7,1:1 (escuro). |
| D-03 | Alta | **Valores antigos de tokens no tema claro** (o tema escuro está correto). Ver tabela D-03 abaixo. | Regra C8 e novo `neutral-pure` (05/10 e 14/10/2026), guia "Mudanças no Design System" v1.2. | Ver tabela |
| D-04 | Alta | **Aba "Usuários" ativa** (Nova mensagem): texto e ícone em `primary-pure` (#00E676) sobre branco. | Texto colorido usa `{marca}-dark`. `primary-pure` é preenchimento/acento, não texto. | **1,67:1** (claro). No escuro 10,2:1 passa, mas o papel continua errado. |
| D-05 | Média | **Chip do paciente** mistura famílias: fundo `secondary-light` (azul) com borda e texto `primary` (verde). Aparece no painel, na lista e na página. | §2 e §9: fundo tingido e texto da **mesma família** (`{marca}-light` + `{marca}-dark`). No sistema, verde = ação primária e diagnóstico. A especificação só pede "link com o nome do paciente". | Texto #00B01C sobre #E1F5FE: 2,59:1 |
| D-06 | Média | **Botões fora dos padrões:** (a) "Voltar para mensagens", "Descartar" e "Ver": preenchimento ou contorno `neutral-lighter` com texto `neutral-pure` (valor antigo). (b) "Resolver" (página): texto `secondary-dark` sobre `secondary-light`. (c) Botões primários ("Nova mensagem", "Enviar", "Resolvido"): texto #012856 (`neutral-dark`) nos dois temas. (d) Altura visual ≈ 26–28 px. | (a) Tertiary: transparente, contorno 1 px `neutral-light`, texto `neutral-dark`. (b) Secondary: fundo `secondary-light`, texto `neutral-darker`. (c) Texto sobre `primary-pure` = `--color-on-primary` (claro #01013B, escuro #161C2E). (d) `--btn-height-sm` 32 px, `--btn-height` 40 px; área clicável mínima 44×44 px; o Protótipo v5.7 usa botões de 44 px. | (b) 3,00:1. (c) #012856 sobre #00E676 = 8,74:1: passa, mas é outro token. (d) Estimativa em 2x; a área clicável real não dá para ver na captura. |
| D-07 | Média | **Fundo do modal (overlay):** preto a ~30%, igual nos dois temas. | C7: `--color-overlay` claro `rgba(1,1,59,0.40)`, escuro `rgba(0,0,0,0.60)`. | Medido: branco → #B2B2B2 e #F5F5F5 → #ABABAB (30% de preto). |
| D-08 | Média | **Borda de campos** (Assunto, Mensagem, Prazo, Horário, busca do cabeçalho, caixa de resposta): `neutral-lighter`. | Borda de campos = `neutral-light` (§2). O Protótipo v5.7 usa `neutral-pure` na busca e na resposta, e a Especificação §2.8 pede ≥ 3:1 em componentes gráficos. | `neutral-lighter` sobre branco: **1,21:1** (`neutral-light`: 1,66:1; `neutral-pure`: 5,5:1) |
| D-09 | Baixa | **Avatar de iniciais** ("AC"): texto `primary-dark` (valor antigo) sobre `neutral-lighter`. | Avatar do usuário: `neutral-dark`/`base-pure`. Avatar do paciente em Procedimentos: `neutral-light`/`neutral-dark`. Não há avatar de iniciais verde. | 2,40:1 |
| D-10 | Baixa | **Contador do painel** ("4"): texto `neutral-dark`. | Badge Contador: texto `neutral-darker`. | — |
| D-11 | Baixa | **Fundo da página** no claro: #F5F5F5. | `--color-base-dark`: #F5F6FA. | Diferença de 5 no canal azul |

**Tabela D-03 — tokens do tema claro com valor antigo:**

| Token | Valor no código (medido) | Valor atual do Design System | Onde aparece nas capturas | Contraste do valor no código |
| --- | --- | --- | --- | --- |
| `highlight-dark` | #FF8F00 | #A15A00 | Prazo das conversas finalizadas (lista) e "Responder até" (modal) | 2,29:1 sobre branco |
| `primary-dark` | #00B01C | #007A13 | Texto do chip do paciente; iniciais "AC" | 2,59:1 sobre o chip |
| `secondary-dark` | #0091EA | #0066A5 | "Resolver" e "VOCÊ" (página da conversa) | 3,00:1 sobre `secondary-light` |
| `error-dark` | #D32F2F | #B62727 | "Vencida"; "Descartado" | 4,98:1 sobre branco (passa); 4,36:1 sobre `error-light` |
| `neutral-pure` | #6B85AC | #526A90 | Ícone de conversa lida; rótulos dos campos; "0/200"; botões Voltar/Descartar/Ver; meta do modal | 3,77:1 sobre branco; 3,45:1 sobre a página |

Observação: o painel da Central (captura 1) mostra os mesmos valores antigos. É pendência de adoção do Design System de 14/10 em todo o app, não um erro específico da mensageria. Corrigir uma vez no arquivo de tema (`Para Desenvolvedores/Tema claro e escuro/gemed-theme.css` é a referência).

---

## 5. Harmonia com o resto do sistema

| ID | Grav. | Observação |
| --- | --- | --- |
| H-01 | Média | **Prazo vencido tem três apresentações:** "Vencida · data" em vermelho (cards abertos), "Responder até data" em laranja (modal) e data em laranja sem rótulo ao lado do status (conversas já finalizadas). Laranja (aviso) numa conversa já encerrada não indica nada que o usuário possa agir. Borda lateral vermelha só na lista (S-04). |
| H-02 | Média | **"Voltar para mensagens"** fica à direita na "Nova mensagem" e à esquerda (acima do título) na página da conversa. O título muda de altura entre as telas por causa disso. |
| H-03 | Média | **Rótulos diferentes para a mesma ação:** modal e painel usam "Responder", "Resolvido", "Descartado"; a página usa "Enviar", "Resolver", "Descartar". Na especificação, "Resolver"/"Descartar" são os botões de **confirmação** do diálogo. |
| H-04 | Média | **Modal × página da conversa:** (a) no modal a mensagem do próprio usuário é alinhada à direita, sem balão, com o texto quebrando em ragged-left (difícil de ler em mais de uma linha); na página é alinhada à esquerda, num cartão com borda verde `primary-pure` e etiqueta "VOCÊ". (b) O modal não mostra o paciente; a página mostra. (c) Hora sem data no modal; data e hora completas na página. (d) O título do modal é o assunto; no Protótipo v5.7 o título era o autor. |
| H-05 | Baixa | **Formatos de data:** relativo no painel e no modal ("há 6 dias"); absoluto na lista ("15/10/2026, 14:57"); prazo sempre sem ano ("15/10, 16:00"). |
| H-06 | Baixa | **Borda verde (`primary-pure`) em volta da mensagem própria** (página). No resto do sistema `primary-pure` é preenchimento de botão; o destaque de card é a borda lateral. "VOCÊ" em caixa alta (o Design System evita caixa alta em texto secundário na linha do tempo; não há regra geral). |
| H-07 | Média | **Abas "Usuários"/"Equipes"** têm estilo próprio (texto verde, sem contorno). O padrão existente para alternar visões é o Toggle Pill da Central (fundo `secondary-light`, contorno 1 px `neutral-dark`, texto `neutral-darker`). |
| H-08 | Baixa | **Itálico** no texto de pré-visualização da lista; o painel mostra o mesmo texto sem itálico. (O Protótipo v5.7 usa itálico em outro lugar — linha "Revisão automática" do card de prescrição — então não é proibido; falta só consistência.) |
| H-09 | Média | **Campo "Mensagem \*":** o rótulo flutuante fica centralizado verticalmente na caixa de 300 px, não no topo. Parece defeito do componente de textarea multilinha. O resto do sistema usa placeholder (busca da Central), não rótulo flutuante. |
| H-10 | Média | **Caixa de resposta do modal sem rótulo nem placeholder visível.** O Protótipo v5.7 tem o placeholder "Escreva uma resposta…" e `aria-label`. Não dá para ver nas capturas se há nome acessível. |
| H-11 | Média | **"Selecione um destinatário ao lado":** "ao lado" só vale no layout de duas colunas. A premissa do projeto é mobile first; em tela estreita o seletor deve ficar acima do formulário (inferência — não há captura mobile). |
| H-12 | Baixa | **Ordenação da lista (inferência):** a ordem visível é por prazo crescente, sem prazo por último — a regra do painel aplicada à lista inteira. Isso coloca as conversas já encerradas (prazos antigos) no topo e as abertas e vencidas depois delas. |
| H-13 | Baixa | **Marca "Gemed" vertical** cortada na borda direita das telas 3 a 8, fora dos cards. Não encontrei na especificação; confirmar se é elemento do app ou artefato da captura. |
| H-14 | Baixa | **Título de página + subtítulo** (28 px + frase) é um padrão novo: a Central e a Agenda não têm título de página, só painéis e barra de data. Como as próximas telas (Pacientes do médico, Prescrições pendentes, Procedimentos do dia) vão precisar do mesmo cabeçalho, vale registrar como padrão no Design System. |

---

## 6. Lacunas: implementado sem especificação

| ID | O que está implementado e não está especificado | Pergunta a decidir |
| --- | --- | --- |
| L-01 | **Tela dedicada de Mensagens (lista)**, que a Especificação §2.5 chama de "fora do escopo". | Quais conversas aparecem (todas as suas, incluindo finalizadas?), filtros (abertas/finalizadas), busca, paginação, ordenação. |
| L-02 | **Tela "Nova mensagem"**: destinatário por usuário ou equipe, assunto (200), mensagem (8000), prazo (data + hora), "Vincular contexto". Só existe nos Cenários CT-MSG-01 a 04 e 16. | O limite de 8000 não está em nenhum documento (no DDL, `Mensagem.Conteudo` é `nvarchar(MAX)`; o assunto de 200 confere com `Conversa.Assunto nvarchar(200)`). O que "contexto" aceita além do paciente (o DDL tem `ProcessoTipo`/`ProcessoChave`)? |
| L-03 | **Página da conversa** (detalhe), ao lado do modal da Central. | Quando abrir o modal e quando a página? Qual é a fonte única do layout da thread? |
| L-04 | **Estado "Vencida":** a única definição é o texto da tela Nova mensagem ("A conversa fica em destaque como vencida quando o prazo passar"). | Fuso (a clínica, como DT-001/DT-005?), efeito na ordenação e no contador, se vale para alertas do sistema, e se some quando a conversa é resolvida. |
| L-05 | **Conversa Resolvida ou Descartada perde o campo de resposta** (informado por você; não veio captura). A especificação só dispensa o campo para alertas do sistema. | A API deve recusar resposta em conversa finalizada? Qual mensagem de erro (catálogo `MSG_`)? |
| L-06 | **Prazo anterior ao envio:** 3 das 6 conversas visíveis na lista têm prazo anterior à data de criação ("teste de horas": criada 07/10 15:35, prazo 06/10 17:06; "Paciente Richards": 09/10 09:43 × 07/10 18:30; "Favor": 13/10 09:42 × 09/10 19:00). Pode ser massa de teste. | A tela deve impedir prazo no passado? |
| L-07 | **O remetente aparece na lista de destinatários** (Dr. Gilliard, o usuário logado, aparece na lista da captura 5). | Pode enviar para si mesmo? |
| L-08 | **O destinatário não aparece em lugar nenhum** (lista, página, modal): quem enviou não vê para quem (usuário ou equipe) nem quem leu. | A thread deve mostrar "Para: …"? **[INVENÇÃO]** exibir o destinatário no cabeçalho da página da conversa. |
| L-09 | **Status da conversa** como texto sem cor definida. Os rótulos em português conferem com o `CHECK` do DDL (Sent, Read, Responded, Resolved, Dismissed → Enviada, Lida, Respondida, Resolvida, Descartada). | Mapa de cores/chips por status (o Design System só tem tokens de status de agenda). |
| L-10 | **Textos novos sem catálogo:** "Nova mensagem", "Voltar para mensagens", "Ver", "Vencida", "Prazo para resolução", "Vincular contexto", "Opcional", "Para quem você quer enviar?" etc. A especificação exige catálogo `MSG_` em pt-BR, en-US e es-419 (§2.5, Internacionalização) e DT-012 (idioma da clínica). | Catalogar e traduzir. |
| L-11 | **Sino do cabeçalho** sem contador, em todas as telas; o título "…e notificações" sugere relação com ele. | O que o sino abre? Mostra não lidas? |
| L-12 | **SBIS (P-CM-026):** resolver/descartar sem trilha de auditoria continua em aberto no Registro de Decisões; a tela de lista e a página da conversa ampliam a superfície onde isso acontece. | Confirmar se a mensageria fica como canal auxiliar fora do SBIS. |

---

## 6.1 Resolução das lacunas (22/10/2026)

O solicitante respondeu às lacunas L-01 a L-12 em 21 e 22/10/2026. As decisões estão em `(MSG-Redesenho) Regras e textos 22-10-2026.md` e no protótipo `(MSG-Redesenho) Protótipo das telas 22-10-2026.html`.

| Lacuna | Decisão |
|---|---|
| L-01, L-03 | Lista com duas abas (Abertas, Finalizadas); página da conversa e modal com o mesmo conteúdo (RN-MSG-011). |
| L-04 | Fuso da clínica, com a linha de fuso da Agenda do Médico; Vencida vale para alertas do sistema (RN-MSG-003, RN-MSG-005). Ordenação em duas camadas (RN-MSG-002). |
| L-05 | Conversa finalizada perde o campo de resposta; finalizar sem resposta é permitido e não gera mensagem (RN-MSG-009). |
| L-06 | Prazos passados eram massa de testes; o prazo não pode ser anterior ao envio (RN-MSG-004). |
| L-07 | Revertida: o usuário pode enviar mensagem para si mesmo e aparece na lista de destinatários (RN-MSG-007). |
| L-08 | O destinatário passa a aparecer nas telas de conversa (RN-MSG-006). |
| L-09 | Cores dos estados: aprovadas (P-MSG-03). |
| L-10 | Textos documentados nos três idiomas (seção 5 do documento de regras). |
| L-02, L-11, L-12 | Não tratadas nesta rodada (P-MSG-05, P-MSG-06). |

Desvios S-01 a S-09, D-01 a D-11 e H-02 a H-14: refletidos no redesenho. Sem decisão ainda: cores dos botões do modal (S-02, S-03), em discussão (P-MSG-01).

---

## 7. Não verificável com as capturas

- Confirmação ao resolver/descartar (D-CM-032: `alertdialog`, foco inicial em "Cancelar", Esc cancela).
- Estado **não lida** no painel e na lista (borda e ícone `secondary-dark`, não lidas primeiro) — todas as conversas das capturas são do próprio remetente.
- Selo "Respondida"; sufixo de equipe no autor ("Sandra (Farmácia)"); ícone `bell` e modal sem campo de resposta para alertas do sistema.
- Estado vazio do painel ("Sem mensagens pendentes").
- Página da conversa Resolvida/Descartada (sem campo de resposta).
- Aba "Equipes", campo "Vincular contexto" expandido, botão "Enviar" da Nova mensagem e erros de validação.
- **Mobile (360 px) e teclado/leitor de tela:** nenhuma captura. A premissa do projeto é mobile first, então esta é a maior lacuna da auditoria.
- Link `ConversaAnteriorId` (conversa anterior de um alerta recorrente).

---

## 8. O que está conforme

- **Painel:** título "Mensagens" com contador; ordem (prazo mais próximo primeiro, sem prazo depois); ícone de pessoa para origem usuário; meta "tempo · autor" com o separador "·"; prazo com ícone `clock`; paciente como link; sem negrito (RN-CM-019).
- **Modal:** campo de resposta + "Responder" (aparenta desabilitado com o campo vazio), "Descartado" no estilo de perigo, "Resolvido", prazo e fechar (X).
- **Nova mensagem:** destinatário usuário ou equipe (`DestinoTipo` `User`/`Team`), assunto com 200, vínculo opcional de paciente e prazo opcional (`PrazoEmUtc`), coerentes com o DDL e com CT-MSG-01 a 04.
- **Tema escuro:** todos os valores medidos (fundos, neutros, `error-dark`, `highlight-dark`, `primary-dark`, `secondary-dark`, `secondary-light`) batem com o Design System. A troca de tema funciona nas cinco telas.
- **Fotos de usuário** não convertidas no escuro (regra 4). **Cabeçalho** (menu, busca "Procurar paciente", sino, avatar) igual ao da Central.
- **Bordas e superfícies:** cartões em `base-pure`, fundo em `base-dark`, bordas de cartão em `neutral-lighter`, ambos os temas.

---

## 9. Próximos passos sugeridos

**[INVENÇÃO]** — sugestões minhas, não decisões:

1. Decidir S-01 e S-02 (botões do card e do modal) e registrar no Registro de Decisões. Se "Ver" for intencional, a especificação §2.5 e os CT-MSG-19/20 precisam mudar.
2. Passar ao desenvolvimento uma lista única de tokens: D-02, D-03, D-04, D-06 (c), D-07, D-08, D-11. São correções de tema, sem decisão de produto.
3. Abrir a Definição e a Especificação da Mensageria nesta pasta (`01 - Definição`, `02 - Especificação`…), absorvendo `Infra-estrutura/Conversas-e-Alertas.md`, a seção 2.5 do Cockpit e as telas 3 a 8, e decidindo as perguntas da seção 6.
4. Enviar capturas dos estados da seção 7 (começando por mobile e por "não lida") para fechar a auditoria.

---

## Anexo A — Medições de cor (tema claro, sRGB)

| Elemento | Medido | Token / valor |
| --- | --- | --- |
| Cartões, modal | #FFFFFF | `base-pure` ✓ |
| Fundo da página | #F5F5F5 | `base-dark` #F5F6FA (D-11) |
| Título, assunto, corpo, "Vincular contexto" | #01013B | `neutral-darker` ✓ |
| Meta, subtítulos, ajuda, "Opcional", login, placeholder, aba inativa | #95A7C4 | `neutral-medium` #94A7C4 (D-02) |
| Rótulos de campo, "0/200", ícone lido, Voltar/Descartar/Ver, meta do modal | #6B85AC | `neutral-pure` antigo; atual #526A90 (D-03) |
| Status na lista | #000000 | nenhum (D-01) |
| "Vencida", "Descartado" | #D32F2F | `error-dark` antigo; atual #B62727 (D-03) |
| Prazo laranja | #FF8F00 | `highlight-dark` antigo; atual #A15A00 (D-03) |
| Chip do paciente: fundo / texto / borda | #E1F5FE / #00B01D / #A2EFCA | `secondary-light` ✓ / `primary-dark` antigo / — (D-05) |
| "Resolver", "VOCÊ": fundo / texto | #E1F5FE / #0091EA | `secondary-light` ✓ / `secondary-dark` antigo |
| Borda lateral "Vencida" | #F44336 | `error-pure` ✓ (uso: S-04) |
| Botão primário: fundo / texto | #01E676 / #012856 | `primary-pure` ✓ / `neutral-dark` (D-06 c) |
| Aba "Usuários" ativa | #01E676 | `primary-pure` como texto (D-04) |
| Borda de cartões e campos | #E5EAF0 | `neutral-lighter` ✓ (campos: D-08) |
| Fundo de "Descartado" | #FFEBEE | `error-light` (S-03) |
| Overlay do modal | preto a ~30% | `--color-overlay` (D-07) |

No tema escuro todos os valores equivalentes batem com o Design System.

---

## Anexo B — Capturas (pasta `Capturas/`)

| Arquivo | Tela |
| --- | --- |
| 01 - Painel de Mensagens (Central) - claro.png | Painel de Mensagens |
| 02 - Painel de Mensagens (Central) - escuro.png | Painel de Mensagens |
| 03 - Lista de conversas - claro.png | Lista |
| 04 - Lista de conversas - escuro.png | Lista |
| 05 - Nova mensagem - claro.png | Nova mensagem |
| 06 - Nova mensagem - escuro.png | Nova mensagem |
| 07 - Conversa - claro.png | Página da conversa |
| 08 - Conversa - escuro.png | Página da conversa |
| 09 - Modal da conversa - claro.png | Modal |
| 10 - Modal da conversa - escuro.png | Modal |

---

## Histórico de Versões

- **v1.1** (22/10/2026) — Acrescentada a seção 6.1 com as decisões do solicitante sobre as lacunas. A v1.0 está em `Histórico/`. Nenhum achado alterado.
- **v1.0** (21/10/2026) — Criação da pasta Mensageria e da primeira auditoria, a pedido do solicitante, comparando as telas implementadas (painel, lista, nova mensagem, conversa e modal, em claro e escuro) com a Especificação da Central do Médico v5.7, o Design System de 14/10/2026 e o restante do sistema. O documento `Infra-estrutura/Conversas-e-Alertas.md` não foi movido nem alterado.
