{{-- Trazabilidad de la ejecución. Los hitos se derivan del ERP, igual que el embudo de la vista principal: no se persisten. --}}
    @foreach ($trazabilidad as $indice => $paso) @php $siguiente = $trazabilidad[$indice + 1] ?? null; $lineaActiva = $siguiente && $siguiente['estado'] !== 'pendiente'; @endphp
  1. $paso['estado'] === 'cumplido', 'bg-amber-500 ring-[3px] ring-amber-100 dark:ring-amber-500/20' => $paso['estado'] === 'curso', 'border-2 border-[var(--borde-fuerte)] bg-[var(--superficie)]' => $paso['estado'] === 'pendiente', ])> @if ($indice < count($trazabilidad) - 1) $lineaActiva, 'bg-[var(--borde)]' => !$lineaActiva && $paso['estado'] === 'cumplido', ])> @endif
    $paso['estado'] !== 'pendiente', 'text-[var(--texto-tenue)]' => $paso['estado'] === 'pendiente'])>{{ $paso['titulo'] }} {{ $paso['fecha'] ? \Carbon\Carbon::parse($paso['fecha'])->format('d M Y') : '—' }} {{ $paso['detalle'] }}
  2. @endforeach
@if (empty($idPurchaseOrder))

La ejecución se alimenta del ERP y aparecerá cuando la orden tenga órdenes de servicio asociadas.

@endif