Nueva reserva {{-- KPIs row con sparklines + 1 destacado --}}
Revisar ahora
{{-- Chart principal + estadísticas --}}
Creadas Atendidas
@php $statusLabels = [ 'pending' => ['Pendientes', 'bg-amber-100 text-amber-700', 'bg-amber-500'], 'confirmed' => ['Confirmadas', 'bg-sky-100 text-sky-700', 'bg-sky-500'], 'completed' => ['Atendidas', 'bg-emerald-100 text-emerald-700','bg-emerald-500'], 'cancelled' => ['Canceladas', 'bg-rose-100 text-rose-700', 'bg-rose-500'], 'no_show' => ['No asistió', 'bg-ink-100 text-ink-700', 'bg-ink-400'], 'rescheduled' => ['Reprogramadas','bg-violet-100 text-violet-700', 'bg-violet-500'], ]; $totalStatus = max(1, array_sum($statusBreakdown)); @endphp
    @foreach ($statusLabels as $key => [$label, $pillClass, $barClass]) @php $count = (int) ($statusBreakdown[$key] ?? 0); $pct = round(($count / $totalStatus) * 100); @endphp @if ($count > 0 || $key === 'pending')
  • {{ $label }} {{ $count }} ({{ $pct }}%)
  • @endif @endforeach
{{-- Próximas + top servicios + top empleados --}}
Ver agenda → @if ($upcoming->isEmpty()) @else @endif
@if ($topServices->isEmpty())

Sin datos del mes aún.

@else
    @foreach ($topServices as $row)
  1. {{ $loop->iteration }}

    {{ $row->service?->name }}

    {{ $row->total }}
  2. @endforeach
@endif
{{ $company->publicUrl() }}
Abrir
{{-- Top empleados --}} @if ($topEmployees->isNotEmpty()) @endif