<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Leave Details</title>
    <link rel="stylesheet" href="{{ asset('css/style.css') }}">
</head>
<body class="leave-popup-page">
    <div class="leave-popup">
        <div class="leave-popup__header">
            <h2 class="leave-popup__name">{{ $leave->user->name }}</h2>
            <p class="leave-popup__type">{{ $leave->leaveType->name }}</p>
        </div>

        <div class="leave-popup__meta">
            <div class="leave-popup__label">Applied On</div>
            <div class="leave-popup__value">{{ \Carbon\Carbon::parse($leave->created_at)->format('M d, Y h:i A') }}</div>
            <div class="leave-popup__label">Dates</div>
            <div class="leave-popup__value">
                {{ \Carbon\Carbon::parse($leave->start_date)->format('M d, Y') }} to {{ \Carbon\Carbon::parse($leave->end_date)->format('M d, Y') }}
            </div>

            @if($leave->is_half_day)
                <div class="leave-popup__label">Half Day</div>
                <div class="leave-popup__value">{{ ucfirst(str_replace('_', ' ', $leave->half_leave)) }}</div>
            @endif
            
            <div class="leave-popup__label">Requested Days</div>
            <div class="leave-popup__value"> 
                <span class="status-badge 
                    @if($leave->status === 'approved') status-badge--approved
                    @elseif($leave->status === 'rejected') status-badge--rejected
                    @elseif(in_array($leave->status, ['cancelled', 'withdrawal_pending'], true)) status-badge--pending
                    @else status-badge--pending @endif">{{ rtrim(rtrim(number_format((float) $leave->total_days, 1, '.', ''), '0'), '.') }} {{ (float) $leave->total_days === 1.0 ? 'Day' : 'Days' }}
                </span>
                </div>

            <div class="leave-popup__label">Status</div>
            <div class="leave-popup__value">
                <span class="status-badge
                    @if($leave->status === 'approved') status-badge--approved
                    @elseif($leave->status === 'rejected') status-badge--rejected
                    @elseif(in_array($leave->status, ['cancelled', 'withdrawal_pending'], true)) status-badge--pending
                    @else status-badge--pending @endif">
                    {{ str_replace('_', ' ', $leave->status) }}
                </span>
            </div>
            <div class="leave-popup__label">Available Leaves</div>
            <div class="leave-popup__value">
                <span class="status-badge
                    @if($availableLeaves === null) status-badge--approved
                    @elseif($availableLeaves <= 0) status-badge--rejected
                    @else status-badge--approved
                    @endif">
                    {{ $availableLeaves === null ? 'Unlimited' : $availableLeaves . ' Day(s)' }}
                </span>
            </div>
        </div>

        <div class="leave-popup__reason">
            <p class="leave-popup__reason-title">Reason</p>
            <p class="leave-popup__reason-text">{{ $leave->reason }}</p>
        </div>

        <div class="leave-popup__reason">
            <p class="leave-popup__reason-title">Remark</p>
            <p class="leave-popup__reason-text">{{ $leave->remark ?: 'No remark added yet.' }}</p>
        </div>

        @if(filled($leave->withdrawal_reason) && in_array($leave->status, ['withdrawal_pending', 'cancelled'], true))
            <div class="leave-popup__reason">
                <p class="leave-popup__reason-title">Withdrawal reason</p>
                <p class="leave-popup__reason-text">{{ $leave->withdrawal_reason }}</p>
            </div>
        @endif

        <div class="leave-popup__actions">
            @php
                $canEditOwnRequest = (int) ($leave->user_id) === (int) auth()->id() && $leave->status === 'pending';
                $canWithdrawOwn = $canWithdraw ?? (auth()->user()?->can('withdraw', $leave) ?? false);
                $canReviewWithdrawRequest = $canReviewWithdraw ?? (($canApprove ?? false) && $leave->status === 'withdrawal_pending');
            @endphp
            @if($leave->status === 'pending' && ($canApprove ?? auth()->user()?->can('approve', $leave)))
                <form action="{{ route('leaves.update-status', $leave) }}" method="POST" style="width: 100%;">
                    @csrf
                    <div class="leave-popup__field">
                        <label for="remark" class="leave-popup__input-label">Add Remark (Optional)</label>
                        <textarea id="remark" name="remark" class="leave-popup__textarea" placeholder="Write approval/rejection remark...">{{ old('remark', $leave->remark) }}</textarea>
                    </div>
                    <div class="leave-popup__button-row">
                        <button type="submit" name="status" value="approved" class="leave-popup__button leave-popup__button--approve">Approve</button>
                        <button type="submit" name="status" value="rejected" class="leave-popup__button leave-popup__button--reject">Reject</button>
                    </div>
                </form>
            @endif
            @if($canReviewWithdrawRequest)
                <form action="{{ route('leaves.withdraw.review', $leave) }}" method="POST" style="width: 100%;">
                    @csrf
                    <div class="leave-popup__field">
                        <label for="withdraw_remark" class="leave-popup__input-label">Remark (Optional)</label>
                        <textarea id="withdraw_remark" name="remark" class="leave-popup__textarea" placeholder="Optional remark for the employee...">{{ old('remark') }}</textarea>
                    </div>
                    <div class="leave-popup__button-row">
                        <button type="submit" name="decision" value="accepted" class="leave-popup__button leave-popup__button--approve" onclick="return confirm('Accept this withdrawal? Leave will be cancelled and balance restored.')">Accept withdraw</button>
                        <button type="submit" name="decision" value="rejected" class="leave-popup__button leave-popup__button--reject" onclick="return confirm('Reject this withdrawal? Leave will stay approved.')">Reject withdraw</button>
                    </div>
                </form>
            @endif
            @if($canEditOwnRequest)
                <div class="leave-popup__button-row" style="width: 100%;">
                    <a href="{{ route('leaves.edit', $leave) }}" class="btn-icon-action btn-icon-action--edit" title="Edit" aria-label="Edit"><i class="bi bi-pencil-square"></i></a>
                    <form action="{{ route('leaves.destroy', $leave) }}" method="POST" class="inline" onsubmit="return confirm('Cancel this leave request?')">
                        @csrf
                        @method('DELETE')
                        <button type="submit" class="btn-icon-action btn-icon-action--delete" title="Delete" aria-label="Delete"><i class="bi bi-trash3"></i></button>
                    </form>
                </div>
            @elseif($canWithdrawOwn)
                <form action="{{ route('leaves.withdraw', $leave) }}" method="POST" style="width: 100%;" onsubmit="return confirm('Submit withdrawal request? An admin must accept it before your leave is cancelled.')">
                    @csrf
                    <div class="leave-popup__field">
                        <label for="withdrawal_reason" class="leave-popup__input-label">Why are you withdrawing this leave?</label>
                        <textarea id="withdrawal_reason" name="withdrawal_reason" class="leave-popup__textarea" required minlength="3" maxlength="1000" placeholder="Explain why you need to withdraw this leave...">{{ old('withdrawal_reason') }}</textarea>
                        @error('withdrawal_reason')
                            <p class="mt-1 text-sm text-red-600">{{ $message }}</p>
                        @enderror
                    </div>
                    <div class="leave-popup__button-row">
                        <button type="submit" class="leave-popup__button leave-popup__button--reject">Request withdraw</button>
                    </div>
                </form>
            @elseif($leave->status === 'withdrawal_pending' && (int) $leave->user_id === (int) auth()->id())
                <p class="leave-popup__no-action">Withdrawal requested. Waiting for admin approval.</p>
            @elseif(! ($leave->status === 'pending' && ($canApprove ?? auth()->user()?->can('approve', $leave))) && ! $canReviewWithdrawRequest)
                <p class="leave-popup__no-action">No action required</p>
            @endif
        </div>
    </div>
</body>
</html>
