{{-- Evidence quick-scan (lives on same side as the sidebar) --}}
{{-- ── Main area: PDF + sidebar ─────────────────────────────────────────── --}}
{{-- PDF viewer — wire:ignore keeps Livewire's morphdom away from this subtree.
The canvas, text layer, and highlight overlay are managed entirely by Alpine/PDF.js.
Alpine's $wire.itemsData binding still updates highlights reactively because
that's driven by Alpine watching Livewire state, not by DOM morphing. --}}
{{-- Floating page nav — centred above the canvas --}}
Page /
{{-- Canvas centred inside the scrollable area --}}
{{-- Text layer — invisible, non-interactive; used only for computeTextHighlights() positioning --}}
{{-- Highlight overlay --}}
{{-- Draw ghost — all styles come from ghostStyle() because Alpine's
:style string binding sets cssText and would wipe a static style attr --}}