@extends('layouts.app') @section('title', 'Application #' . $application->id) @push('styles') @endpush @section('breadcrumb') Dashboard Applications #{{ $application->id }} @endsection @section('content') {{-- Status banner --}} @if($application->isApproved())

Application approved

Roll number {{ $application->roll_number }} @if($application->approvedBy) · Approved by {{ $application->approvedBy->name }}@endif @if($application->approved_at) on {{ $application->approved_at->format('d M Y, h:i A') }}@endif.

@elseif($application->isRejected())

Application rejected

@if($application->rejectedBy)Rejected by {{ $application->rejectedBy->name }}@endif @if($application->rejected_at) on {{ $application->rejected_at->format('d M Y, h:i A') }}@endif. @if($application->remarks) Remarks: {{ $application->remarks }}@endif

@else

Pending review

Awaiting admin decision. Approving will auto-generate a roll number.

@endif {{-- Application timeline strip --}} @php $timelineSteps = [ ['key' => 'submitted', 'label' => 'Submitted', 'time' => $application->created_at, 'icon' => '', 'state' => 'is-done'], ['key' => 'review', 'label' => 'Under review', 'time' => null, 'icon' => '', 'state' => $application->isPending() ? 'is-current' : 'is-done'], ['key' => 'decision', 'label' => $application->isApproved() ? 'Approved' : ($application->isRejected() ? 'Rejected' : 'Decision'), 'time' => $application->approved_at ?? $application->rejected_at, 'icon' => $application->isRejected() ? '' : '', 'state' => $application->isApproved() ? 'is-done' : ($application->isRejected() ? 'is-rejected' : '')], ]; @endphp
{{-- ── MAIN CONTENT ── --}}
{{-- Candidate card --}}

Candidate

@if($application->candidateProfile) View full profile @endif
@if($application->candidateProfile)
{{ $application->user?->name }}
{{ $application->user?->name }}
{{ $application->user?->email }}
{{ $application->candidateProfile->status_label }}
CNIC
{{ $application->candidateProfile->cnic ?? '—' }}
Father's name
{{ $application->candidateProfile->father_name ?? '—' }}
Date of birth
{{ $application->candidateProfile->formatted_dob }} ({{ $application->candidateProfile->age }}y)
Gender
{{ $application->candidateProfile->gender_label }}
Phone
{{ $application->candidateProfile->phone ?? '—' }}
Profile completion
{{ $application->candidateProfile->completion_percentage }}%
@else
No candidate profile
This application is not linked to a candidate profile.
@endif
{{-- Post card --}}

Post

{{ $application->post?->code }}
{{ $application->post?->title }}
@if($application->post?->status_label)
{{ $application->post->status_label }}
@endif
BPS
{{ $application->post?->bps ?? '—' }}
Total seats
{{ number_format($application->post?->total_seats ?? 0) }}
Age limit
{{ $application->post?->min_age }} – {{ $application->post?->max_age }} yrs
Gender
{{ $application->post?->gender_label ?? '—' }}
@if($application->post?->quotas?->isNotEmpty())
Quota breakdown
@php $quotaPalette = ['var(--primary-500)', 'var(--accent-500)', 'var(--success-500)', 'var(--warning-500)', 'var(--purple-500, #8B5CF6)', 'var(--pink-500, #EC4899)', 'var(--primary-700)', 'var(--accent-700)']; $quotaTotal = max(1, (int) $application->post->quotas->sum('seats')); @endphp
{{ number_format($quotaTotal) }}
Total seats
@foreach($application->post->quotas as $i => $quota) @php $color = $quotaPalette[$i % count($quotaPalette)]; $pct = round(($quota->seats / $quotaTotal) * 100); @endphp
{{ $quota->quota_type_label ?? $quota->quota_type }} {{ $quota->seats }} {{ $pct }}%
@endforeach
@endif
{{-- ── RIGHT RAIL ── --}}
{{-- Reject Modal --}} @endsection @push('scripts') @endpush