@if($videoOnly) Videos waiting for Omni — whole catalog @elseif($repairTotal > 0) {{ $syncOnly ? 'Pending prepare / Shopify sync — whole catalog' : 'Needs attention — whole catalog' }} @else Videos without Omni — whole catalog @endif

@if($videoOnly) {{ $repairVideoMissing }} product(s) have an original video and no AI version. Photos/Shopify are already done — this pass only runs Omni → crop → sync. @if($omniPaused) Omni is paused until {{ $omniResumeAt ?: 'reset' }} (Miami). @endif @elseif($repairTotal > 0) {{ $repairTotal }} product(s) need work (photos / sync / Omni video). Omni fail → that product is left unchanged; 3 generate fails in a row stops the queue. @else {{ $repairVideoMissing }} product(s) still use the original video (no AI). Omni is paused — counts stay visible until you can run Enhance pending videos. @endif

@if($omniPaused && $videoOnly && $repairQueued < 1) @elseif($repairQueued > 0)
0 ? "\n• {$repairVideoDeferred} more videos wait until ".($omniResumeAt ?: 'Omni reset')." (Miami)" : "")."\n\nOmni fail → skip that product. 3 fails in a row → stop queue." ));"> @csrf
@elseif($repairVideoMissing > 0) View in Improve ({{ $repairVideoMissing }} no Omni) @endif
@if($repairRedo > 0) @endif @if($repairSync > 0) @endif @if($repairVideoMissing > 0) @endif @if($repairBusy > 0)
{{ $repairBusy }} working right now Left alone by the repair pass until their own job finishes.
@endif

Click a count box to review products. Use Done to leave a product alone. @if($repairCapped && $repairQueued > 0) This run takes the first {{ $repairQueued }} of {{ $repairTotal }} — press again for the rest. @endif Progress appears in Improve existing.