diff --git a/README.md b/README.md
index a9c438d..81d1a81 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,12 @@ Sistema web para controle de custos de entregas hospitalares da **Gade Hospitala
---
-## 📋 CONTEXTO DO PROJETO (leia antes de tudo)
+> 💡 **Navegação:** as seções abaixo abrem e fecham — clique no título de cada uma.
+
+---
+
+
+📋 CONTEXTO DO PROJETO (leia antes de tudo)
A **Gade Hospitalar** precisa controlar o custo de cada operação de entrega
(UBS SUL, UBS LESTE, EMAD, STS, SAD, etc.).
@@ -20,9 +25,12 @@ O banco **já existe** e é atualizado a cada 1 hora por outro sistema externo:
O sistema novo cria suas próprias tabelas no mesmo PostgreSQL (schema separado ou prefixo)
e lê a tabela existente apenas para exibir e consolidar entregas.
+
+
---
-## 🏗️ Estado atual — O que já foi feito (Fase 1 ✅)
+
+🏗️ Estado atual — O que já foi feito (Fase 1 ✅)
```
logistica-controle-custos/
@@ -70,9 +78,12 @@ logistica-controle-custos/
└── ..._create_auditoria_logs.rb
```
+
+
---
-## 🚀 Setup do zero (próximo dev)
+
+🚀 Setup do zero (próximo dev)
### 1. Clone
```bash
@@ -109,9 +120,12 @@ Login: admin@gade.com
Senha: Gade@2026! ← ALTERE NO PRIMEIRO ACESSO
```
+
+
---
-## 🔧 Comandos do dia a dia
+
+🔧 Comandos do dia a dia
```bash
docker-compose exec app bundle exec rails db:migrate # nova migration
@@ -120,9 +134,12 @@ docker-compose logs -f app # logs em tempo real
docker-compose down # parar tudo
```
+
+
---
-## 🗺️ Fases de implementação
+
+🗺️ Fases de implementação
| Fase | Status | O que faz |
|------|--------|-----------|
@@ -137,9 +154,12 @@ docker-compose down # parar tudo
**🎉 PROJETO: 8 de 8 fases implementadas.**
+
+
---
-## 🔧 Análise de integração (11/06/2026) — Correções aplicadas
+
+🔧 Análise de integração (11/06/2026) — Correções aplicadas
As Fases 2/3 (commit `4724847`) foram desenvolvidas em paralelo às Fases 4-8 (commits `90ed705` e `8b3d4bc`), e a mesclagem gerou **conflitos que quebravam a aplicação**. Análise dos commits e correções:
@@ -302,9 +322,12 @@ docker-compose exec app bundle exec whenever --update-crontab
⚠️ Altere as senhas padrão no primeiro acesso em produção.
+
+
---
-## 🧪 Auditoria + Suíte de testes (15/06/2026)
+
+🧪 Auditoria + Suíte de testes (15/06/2026)
Revisão de código + criação da suíte RSpec (o projeto tinha `rspec-rails`/`factory_bot`/`capybara` no Gemfile, mas **nenhum teste** e **nenhum `spec/`**).
@@ -355,9 +378,12 @@ docker-compose exec app bundle exec rspec
> Os specs que dependem da tabela read-only `db_reem_simplerout_2026` stubam `Entrega` — o banco de teste não contém essa tabela externa.
+
+
---
-## 🔧 Correções + funcionalidades (16/06/2026)
+
+🔧 Correções + funcionalidades (16/06/2026)
### 🔴 Erros de runtime corrigidos (reportados em prints)
- **Logout** dava `No route matches [GET] /auth/logout` — o link usava `method: :delete` (rails-ujs), ignorado pelo Turbo. Agora usa `data-turbo-method`.
@@ -385,9 +411,12 @@ docker-compose exec app bundle exec rake reem:diagnostico
docker-compose exec app bundle exec rake reem:diagnostico INICIO=2026-02-01 FIM=2026-06-30
```
+
+
---
-## 🔧 Correções + funcionalidades (16/06/2026 — sessão 2)
+
+🔧 Correções + funcionalidades (16/06/2026 — sessão 2)
### 🔴 Bugs corrigidos
- **Dashboard zerado por filtro de conta:** `DB_EXISTING_ACCOUNT_ID` é uma **lista separada por vírgula**, não um trecho de SQL. Valor errado (ex.: `account_id IN ('95907', '')`) zerava tudo. Use `95907,` (vírgula no fim) para incluir também registros com conta vazia/NULL. O scope `Entrega.da_conta_gade` agora inclui `NULL` quando há token vazio na lista.
@@ -412,9 +441,12 @@ docker-compose exec app bundle exec rake reem:diagnostico INICIO=2026-02-01 FIM=
docker-compose exec app bundle exec rails db:migrate
```
+
+
---
-## 🗄️ Banco existente — referência rápida
+
+🗄️ Banco existente — referência rápida
| Campo | Uso |
|-------|-----|
@@ -430,9 +462,12 @@ docker-compose exec app bundle exec rails db:migrate
**Regra de pagamento:** `status = 'completed'` AND `checkout IS NOT NULL`
+
+
---
-## 🎨 Design — padrão da marca
+
+🎨 Design — padrão da marca
| Elemento | Cor | Hex |
|----------|-----|-----|
@@ -447,9 +482,12 @@ docker-compose exec app bundle exec rails db:migrate
- Botões mínimo 48px altura (acessibilidade touch)
- Tema escuro como padrão
+
+
---
-## 👥 Perfis de acesso
+
+👥 Perfis de acesso
| Perfil | Login | Acesso |
|--------|-------|--------|
@@ -458,10 +496,12 @@ docker-compose exec app bundle exec rails db:migrate
| Operador | email + senha | Consolidações (criar + validar) |
| Motorista | PIN 4 dígitos ou QR | Painel pessoal + baixar próprio PDF |
+
+
---
-
-## 🩺 Correção (11/06): container caía mostrando ajuda do "rails new"
+
+🩺 Correção (11/06): container caía mostrando ajuda do "rails new"
**Sintoma:** `docker-compose up` subia e o log mostrava o help do `rails new` em loop.
**Causa:** o repositório tinha os arquivos da aplicação (models/controllers/views) mas **não tinha o esqueleto de boot do Rails** — sem `config/application.rb` e `config.ru`, o comando `rails s` não reconhece a pasta como um app Rails e cai no modo "criar app novo".
@@ -506,15 +546,23 @@ docker-compose logs -f app # deve mostrar "Listening on http://0.0.0.0:3000"
# Acesse http://SEU_IP:3000 → admin@gade.com / Gade@2026!
```
-## 🔐 Segurança
+
+
+---
+
+
+🔐 Segurança
- **NUNCA** versione `.env`, `config/master.key` ou qualquer arquivo com senha
- Repositório **PRIVADO** em git.xenserver.com.br
- Use sempre `ENV['VARIAVEL']` no código Ruby
+
+
---
-## 🆕 Atualização 17/06/2026 — Pagamentos, Operações, Dashboard financeiro e UI
+
+🆕 Atualização 17/06/2026 — Pagamentos, Operações, Dashboard financeiro e UI
Conjunto de melhorias para deixar o sistema pronto para entrega final.
@@ -592,9 +640,12 @@ Conjunto de melhorias para deixar o sistema pronto para entrega final.
```
Aplicar com: `docker-compose exec app bundle exec rails db:migrate`
+
+
---
-## 🔧 Correções — Holerite PDF (18/06/2026)
+
+🔧 Correções — Holerite PDF (18/06/2026)
### 🔴 Bugs corrigidos
- **500 ao gerar holerite** (`gerar_pdf_holerite`): `Prawn::Errors::IncompatibleStringEncoding`
@@ -636,9 +687,12 @@ Aplicar com: `docker-compose exec app bundle exec rails db:migrate`
- **PDFs com Prawn**: usar **sempre** a fonte TTF registrada no `BasePdf` (DejaVu, UTF-8). Nunca
contar com a fonte embutida — ela quebra em qualquer caractere fora do Windows-1252.
+
+
---
-## 🆕 Atualização 19/06/2026 — Apontamento manual / Nota avulsa
+
+🆕 Atualização 19/06/2026 — Apontamento manual / Nota avulsa
Permite incluir numa consolidação uma **entrega que chegou por fora** (ex.: nota que entrou
depois e não está no banco mensal das operações). O usuário digita o **número da nota (NF =
@@ -692,3 +746,49 @@ docker-compose exec app bundle exec rails db:migrate
### 🧪 Testes
- `spec/models/consolidacao_spec.rb`: `classificadas_count` ignora apontamentos manuais e
`adicionar_apontamento!` (multi-tipo, idempotente, inclui o motorista e soma o valor).
+
+
+
+---
+
+
+🆕 Atualização 22/06/2026 — Pilar Extraordinária, Perfil Externo, Falhadas, Relatórios e Segurança QR
+
+### 🆕 Funcionalidades
+- **Pilar "Entrega Extraordinária"** — preço coringa para entregas fora do planejamento.
+ - Novo valor `extraordinaria` no `enum tipo` de `ConsolidacaoEntrega` (soma positiva, como Bônus). Sem migration de enum (coluna `integer`).
+ - Aparece em **todas** as telas dos pilares: wizard (passo 1), validação, revisão, nota avulsa, holerite, PDFs e composição do dashboard.
+ - **Preço padrão configurável** em *Configurações* (`preco_extraordinaria`) **e** **valor customizável por entrega**: ao marcar "Extra" no wizard abre um prompt já preenchido com o padrão (`valor_classificacao` no controller + `pedirValor()` no Stimulus).
+- **Card "Consolidado / Pago"** no topo do dashboard (total consolidado + total já pago do período; reusa `@fin_custo_total` / `@fin_pago`).
+- **Entregas falhadas no dashboard** — o card "Total Entregas" agora separa `entregues · pendentes · falhadas`.
+ - Novo `Entrega::STATUS_FALHA` + scope `falhadas`; o scope `pendentes` foi ajustado para não sobrepor (nem `completed` nem falha).
+- **Relatórios financeiros em PDF (admin):**
+ - Por **consolidação** — `Pdf::RelatorioFinanceiroConsolidacaoPdf` (botão "📊 Relatório financeiro" na tela da consolidação).
+ - Por **período** — `Pdf::RelatorioFinanceiroPeriodoPdf` (botão "🖨️ Relatório" no dashboard, respeita o filtro de período/operação).
+- **Novo perfil de usuário: "Externo (só dashboard)"** (`role: externo`).
+ - Login normal por e-mail/senha; enxerga **apenas o dashboard**. Bloqueado nas demais áreas pelas policies Pundit (`pode_consolidar?`/admin). Ideal para enviar a outras gerências visualizarem os indicadores.
+- **Filtro de data re-estilizado** — calendário no tema escuro (flatpickr dark + acento laranja) e atalhos rápidos: **Hoje / 7 dias / Este mês / 30 dias**.
+
+### 🔴 Bugs corrigidos
+- **Botão "Arquivar"** não funcionava em consolidação zerada / rascunho. `Consolidacao#arquivar!` e `#reativar!` passaram a usar `update_columns` (pulam validações e o callback de recálculo) — arquivar é soft-delete administrativo e deve sempre funcionar. `turbo_confirm` movido para o `
+