
### EXEMPLOS 

## Tela: Pacientes

Segue o padrão de listagem com as seguintes particularidades:

### Cartões de Resumo
- 3 cartões: Total de Pacientes, Ativos, Inativos.
- Contagem dinâmica baseada no array `patients`.

### Busca
- Busca multi-termo: cada palavra digitada é testada independentemente contra nome, sobrenome, CPF, WhatsApp, email e plano de saúde.
- Filtro de status (Todos, Ativos, Inativos) via select.

### Tabela
- Colunas: Checkbox, Nome (Title Case), CPF (formatado XXX.XXX.XXX-XX), WhatsApp (formatado (XX) XXXXX-XXXX com link direto), Idade (calculada automaticamente), Plano, Status (Switch).
- Ação de clique no WhatsApp abre `wa.me`.
- Paginação com seletor de tamanho de página.

### Formulário de Criação/Edição
- Campos: Nome*, Sobrenome, Email, Data de Nascimento, CPF (máscara), WhatsApp (máscara), RG (máscara), Sexo (select), ID Externo.
- Plano de Saúde: `SearchableSelect` com opção "Cadastrar novo plano" inline.
- Número da Carteirinha: campo condicional (aparece quando há plano selecionado).
- Alergias: sistema de tags — digitação + Enter para adicionar, X para remover.
- Observações Gerais: `Textarea`.
- Toggle "Ativo" no formulário.

### Exportação
- CSV, XML e PDF com dados filtrados.
- Nomeação: `pacientes_YYYYMMDD.ext`.

### Importação
- Dialog dedicado para importação de pacientes via CSV.
- Fluxo: Upload → Mapeamento de colunas → Preview → Execução.

---

## Tela: Colaboradores

Segue o padrão de listagem com complexidade adicional de permissões e disponibilidade:

### Cartões de Resumo
- Métricas contextuais: Total, Ativos, Inativos.

### Tabela
- Colunas: Nome (Title Case), Função, Especialidade, Conselho Regional, Cor (badge colorido), Status (Switch), Ações (Editar, Excluir).
- Badge de cor do colaborador: círculo colorido exibindo a cor atribuída.
- Exclusão requer motivo (via `DeleteReasonDialog`).

### Formulário de Criação/Edição (Tabs)
O diálogo de colaboradores é dividido em abas (`Tabs`):
- **Dados Pessoais:** Nome*, Sobrenome, Email*, Telefone (máscara), Sexo.
- **Profissional:** Função (select com presets por área de atuação), Especialidade, Conselho Regional, Data de Admissão, Valor/Hora.
- **Cor e Visual:** Paleta de 12 cores pré-definidas + input hexadecimal customizado. Preview do badge com a cor selecionada. Cor do texto calculada automaticamente ou editável.
- **Disponibilidade:** Dias da semana (Segunda a Domingo) com horários de início e fim para cada dia. Suporte a múltiplos turnos por dia.
- **Ausências:** Cadastro de períodos de ausência com motivo (Férias, Atestado, Licença, Falta, Folga, Outro), data início e fim.
- **Permissões:** Nível de acesso vinculado ao cadastro de Níveis de Acesso. Permissões detalhadas granulares.
- **Redes Sociais:** Facebook, LinkedIn, Skype, Assinatura de Email.

### Exclusão com Motivo
- Ao excluir, abre `DeleteReasonDialog` obrigatório.
- Motivo é persistido na tabela `deletion_logs`.

### Importação
- Campos importáveis: Nome, Sobrenome, Email, Telefone, Função, Especialidade, Conselho Regional, Valor/Hora.

---

## Tela: Status

Tela de gerenciamento dos status utilizados no sistema de agendamentos e trilhas:

### Cartões de Resumo
- 3 cartões: Total, Com ícone, Sem ícone.

### Tabela
- Colunas: Preview (badge colorido com o nome do status), Nome, Código (exibido em `code` monospaced), Ícone (nome traduzido), Ações (Editar, Excluir).
- Preview do status: `rounded-full px-3 py-1 text-xs font-semibold` com `backgroundColor` e `color` dinâmicos.
- Exclusão requer motivo obrigatório.

### Formulário de Criação/Edição
- **Nome:** Texto livre obrigatório.
- **Código:** Sanitizado automaticamente para lowercase, sem espaços, apenas `a-z0-9_-`, máximo 50 caracteres. Validação de unicidade em tempo real.
- **Cor de fundo:** Paleta de 15 cores pré-definidas + input hexadecimal customizado.
- **Cor do texto:** Mesma mecânica, com preview dinâmico.
- **Ícone:** Select com 20 opções de ícones Lucide (clock, check, x, alert-circle, star, heart, etc.). Labels traduzidos para português.
- **Preview ao vivo:** Badge atualizado em tempo real conforme o usuário edita nome, cor e ícone.

### Comportamento de Exclusão
- Verifica se o status está vinculado a agendamentos antes de excluir (proteção de integridade).
- Log de exclusão com motivo persistido.