{{-- Seguimientos pendientes — tabla densa (reemplaza la grilla de cards). Misiles cuyo último intento dejó un next_followup_at agendado. Vencidos primero. Acción: outreach-open-btn → modal compartido. --}} @if($followupsDue->isNotEmpty())
📞 Seguimientos pendientes — leads para recontactar

Misiles con un follow-up agendado en su último contacto. Registrá el nuevo intento para reprogramar.

@if($followupCounts['overdue'] > 0) {{ $followupCounts['overdue'] }} vencido{{ $followupCounts['overdue'] === 1 ? '' : 's' }} @endif @if($followupCounts['today'] > 0) {{ $followupCounts['today'] }} hoy @endif {{ $followupCounts['total'] }} total
@foreach($followupsDue as $m) @php $att = $m->latestAttempt; $due = $att->next_followup_at; [$tempKey, $tempEmoji, $tempLabel, $tempClass] = $m->lead_temp; [, $chIcon, ] = $att->channel_label; [$outLabel, $outClass] = $att->outcome_label; $isOverdue = $due->copy()->startOfDay()->isPast() && !$due->isToday(); @endphp @endforeach
Lead Producto Temp Último contacto Recontactar Nota Acción
{{ $m->project_name ?: ($m->prospect_name ?: 'Sin nombre') }} @if($m->product_slug){{ $m->product_slug }}@else@endif {{ $tempEmoji }} {{ $att->attempted_at?->diffForHumans() }} {{ $outLabel }} {{ $isOverdue ? 'Vencido ' . $due->diffForHumans(null, true) : ($due->isToday() ? 'Hoy' : 'En ' . now()->startOfDay()->diffInDays($due->copy()->startOfDay()) . 'd') }} {{ $att->notes ? '“' . \Illuminate\Support\Str::limit($att->notes, 60) . '”' : '—' }}
@endif