<%# Prévia do PDF em POP-UP, com navegação entre as folhas no mesmo desenho do carrossel do motorista (setas grandes + contador "3 de 72"). ── O ESTADO "ABERTA" MORA NA URL (?previa=1) ────────────────────────────── Foram três tentativas até aqui, e cada uma quebrou de um jeito: 1. modal por JavaScript → morreu junto com os assets 404 no servidor: o botão não fazia NADA e a tela abria normal, sem erro visível; 2.
nativo → funcionava, mas não é pop-up e não dava para navegar entre as folhas sem fechar; 3. :target (#previa) → abria com o JS fora do ar e parava de abrir quando ele voltava: o Turbo intercepta o clique, revisita a página e o hash se perde no caminho. Pior dos mundos — funcionava no ambiente quebrado e falhava no ambiente são. Com a prévia na query string nada disso se aplica: é uma página como outra qualquer, o Turbo trata como navegação normal, funciona sem JavaScript, sobrevive ao F5 e ao "voltar", e o link pode ser enviado para outra pessoa já com a folha aberta. Fechado, este partial não renderiza NADA: o iframe nem existe, então o servidor não monta um PDF que ninguém pediu (era o custo do desenho original, que montava o iframe a cada carregamento da tela). <%# AVISO SEMPRE VISÍVEL, não um alerta que aparece só no erro: quando o navegador se recusa a desenhar o PDF, ele não avisa ninguém — o quadro fica branco e a leitura natural é "o sistema está quebrado". O navegador tem uma opção, ligada por padrão em algumas instalações, de BAIXAR PDF em vez de exibir; bloqueador de conteúdo (Brave Shields, uBlock) e bloqueio de pop-up derrubam o mesmo quadro. Como não dá para detectar isso de dentro da página (o iframe é opaco por segurança), a saída honesta é dizer onde fica a alternativa. %>

Quadro em branco? O navegador pode estar configurado para baixar PDF em vez de exibir, ou um bloqueador está barrando — <%= link_to 'abra em outra aba', pdf_admin_romaneio_path(@romaneio, veiculo: @veiculo), target: '_blank', rel: 'noopener', class: 'underline text-gray-300 hover:text-white' %> ou libere PDF para este site nas permissões (cadeado da barra de endereço).

<%# Controles no mesmo desenho do carrossel do motorista (redondos, 56px, próximo em laranja), mas como LINKS: cada folha é uma URL. Na ponta vira apagado em vez de sumir — botão que some muda o layout no meio da conferência e o operador perde o alvo do clique. %>
<% if anterior %> <%= link_to admin_romaneio_path(@romaneio, veiculo: anterior, previa: 1), 'aria-label': "Folha anterior (#{anterior})", class: 'w-14 h-14 rounded-full flex items-center justify-center bg-[#1a1a1a]/90 backdrop-blur border border-white/15 text-white hover:border-orange-500 transition-colors' do %> <%= icone :voltar, cor: nil, tamanho: 'w-6 h-6', espaco: false %> <% end %> <% else %> <%= icone :voltar, cor: nil, tamanho: 'w-6 h-6', espaco: false %> <% end %> <%= posicao ? posicao + 1 : 1 %> de <%= nomes.size %> · <%= @veiculo %> <% if proximo %> <%= link_to admin_romaneio_path(@romaneio, veiculo: proximo, previa: 1), 'aria-label': "Próxima folha (#{proximo})", class: 'w-14 h-14 rounded-full flex items-center justify-center bg-orange-500/90 backdrop-blur border border-orange-400 text-black hover:bg-orange-500 transition-colors' do %> <%= icone :avancar, cor: nil, tamanho: 'w-6 h-6', espaco: false %> <% end %> <% else %> <%= icone :avancar, cor: nil, tamanho: 'w-6 h-6', espaco: false %> <% end %>