# Design: Distância em km na tela do motorista (Edicaorota)

**Data:** 2026-05-25  
**Escopo:** `editar_rota.php` — HTML + JS inline apenas, sem backend, sem migration.

## Contexto

A tela do motorista (`/edicao-rota/<token>`) é usada para planejar a rota do dia seguinte. O motorista acessa no almoço ou ao final do dia de entregas, pelo celular. O JS já calcula a distância Haversine por segmento (`distanciaKm()`) mas só converte para tempo — o valor em km nunca é exibido.

## O que muda

### 1. Por parada — distância do segmento

Cada `<li>` no `#listaParadas` tem um `.parada-rodape` com `[data-tempo]`. Adicionar `[data-dist]` ao lado, exibindo a distância da parada anterior até esta parada (segmento). Formato: `"X,X km"` ou `"XXX m"` quando < 1 km. Paradas sem coordenada exibem `"—"`.

### 2. Total no resumo

O `.resumo-rota` (card com "Tempo total" e "Previsão retorno") ganha um item "Distância total" com id `#resumoDist`, preenchido com a soma de todos os segmentos.

## Mudanças técnicas

Arquivo único: `componentes/Missoes/Logistica/sinais/Edicaorota/html/editar_rota.php`

- **HTML:** `<span data-dist>—</span>` no `.parada-rodape` de cada `<li>`; novo `.resumo-item` com `#resumoDist` no `.resumo-rota`
- **JS:** função `formatarKm(km)` (retorna string formatada); acumular `distanciaAcumKm` no loop de `atualizarTempos()`; preencher `[data-dist]` e `#resumoDist`; atualizar assinatura de `atualizarResumo(totalMin, totalKm)`

## Fora do escopo

- Distância real de rota (OSRM) — o OSRM já é usado para o polyline do mapa; usar sua distância nos cards exigiria coordenar a resposta assíncrona com o loop síncrono de `atualizarTempos()`. Haversine (linha reta) é suficiente como estimativa de planejamento.
- Backend, migration, API — nenhuma mudança.
