@php $searchTrim = trim($search); @endphp

{{ __('budgets.subscriptions_page.monthly_cost') }}

{{ \App\Support\Money::formatEur($totalMonthly) }}

{{ __('budgets.subscriptions_page.per_year', ['amount' => \App\Support\Money::formatEur($totalMonthly * 12)]) }}

{{ __('budgets.subscriptions_page.active') }}

{{ count($active) }}

{{ __('budgets.subscriptions_page.subscriptions_count_label') }}

{{ __('budgets.subscriptions_page.unused') }}

{{ count($zombies) }}

@if (count($zombies) > 0) {{ __('budgets.subscriptions_page.zombie_wasted', ['amount' => \App\Support\Money::formatEur($zombieYearly)]) }} @else {{ __('budgets.subscriptions_page.none_detected') }} @endif

{{ __('budgets.subscriptions_page.shared') }}

{{ $sharedCount }}

{{ __('budgets.subscriptions_page.split_costs') }}

{{ __('budgets.subscriptions_page.insight_upcoming_renewals') }}

{{ $upcomingRenewals }}

{{ __('budgets.subscriptions_page.insight_zombie_cost') }}

{{ \App\Support\Money::formatEur($zombieYearly) }}

{{ __('budgets.subscriptions_page.insight_yearly_commitment') }}

{{ \App\Support\Money::formatEur($annualCommitment) }}

@if (count($zombies) > 0)

{{ __('budgets.subscriptions_page.zombie_title') }}

{{ __('budgets.subscriptions_page.zombie_body', ['names' => collect($zombies)->pluck('name')->join(', '), 'amount' => \App\Support\Money::formatEur($zombieYearly)]) }}

@endif @if (count($musicSubs) > 1)

{{ __('budgets.subscriptions_page.duplicate_music_title') }}

{{ __('budgets.subscriptions_page.duplicate_music_body', [ 'names' => collect($musicSubs)->pluck('name')->join(__('budgets.subscriptions_page.name_list_separator')), 'amount' => \App\Support\Money::formatEur((count($musicSubs) - 1) * 9.99 * 12), ]) }}

@endif @if (count($streamingSubs) > 2)

{{ __('budgets.subscriptions_page.streaming_title') }}

{{ __('budgets.subscriptions_page.streaming_body', [ 'count' => count($streamingSubs), 'amount' => \App\Support\Money::formatEur((count($streamingSubs) - 1) * 10 * 12), ]) }}

@endif

{{ __('budgets.subscriptions_page.all_subscriptions') }}

@if (count($filtered) === 0)

{{ __('budgets.subscriptions_page.empty_title') }}

{{ $searchTrim !== '' ? __('budgets.subscriptions_page.empty_filtered') : __('budgets.subscriptions_page.empty_hint') }}

@else
@foreach ($filtered as $s) @php $isZombie = ($s['status'] ?? '') === 'zombie'; $lowUsage = (($s['usageScore'] ?? 100) < 30) && ($s['status'] ?? '') === 'active'; $subCat = \App\Support\CategoryCatalog::get($s['categoryId'] ?? 'other'); @endphp
@if ($isZombie) @else @endif

{{ $s['name'] }}

@if ($isZombie) {{ __('budgets.subscriptions_page.badge_unused') }} @endif @if ($lowUsage && ! $isZombie) {{ __('budgets.subscriptions_page.badge_low_usage') }} @endif @if (! empty($s['shared'])) @endif
@php $__rawBc = (string) ($s['billingCycle'] ?? 'monthly'); $bc = in_array($__rawBc, ['monthly', 'quarterly', 'yearly'], true) ? $__rawBc : 'monthly'; $cycleLabel = __('budgets.subscriptions_page.billing_' . $bc); $renewDate = \App\Support\RelativeDayLabel::upcomingDay(\Carbon\Carbon::parse($s['nextRenewal'] ?? ''), $locale); @endphp

{{ __('budgets.subscriptions_page.renews_line', ['cycle' => $cycleLabel, 'date' => $renewDate]) }} @if (isset($s['usageScore'])) {{ __('budgets.subscriptions_page.usage_suffix', ['pct' => $s['usageScore']]) }} @endif

{{ \App\Support\Money::formatEur((float) ($s['cost'] ?? 0)) }}

@php $__raw = (string) ($s['billingCycle'] ?? 'monthly'); $__bc = in_array($__raw, ['monthly', 'quarterly', 'yearly'], true) ? $__raw : 'monthly'; $__suffixKey = $__bc === 'yearly' ? 'suffix_yr' : ($__bc === 'quarterly' ? 'suffix_qtr' : 'suffix_mo'); @endphp

/{{ __('budgets.subscriptions_page.' . $__suffixKey) }}

@endforeach
@endif @if ($savingsHasOpportunities)

{{ __('budgets.subscriptions_page.savings_heading') }}

@if (count($zombies) > 0)

• {{ count($zombies) === 1 ? __('budgets.subscriptions_page.savings_zombies_one', ['count' => count($zombies), 'amount' => \App\Support\Money::formatEur($zombieYearly)]) : __('budgets.subscriptions_page.savings_zombies_other', ['count' => count($zombies), 'amount' => \App\Support\Money::formatEur($zombieYearly)]) }}

@endif @if ($musicYearlySavings > 0.009)

• {{ __('budgets.subscriptions_page.savings_music', ['count' => count($musicSubs), 'amount' => \App\Support\Money::formatEur($musicYearlySavings)]) }}

@endif @if ($adobeYearlySavings > 0.009)

• {{ __('budgets.subscriptions_page.savings_adobe', ['names' => collect($adobeSubs)->pluck('name')->unique()->filter()->join(', '), 'amount' => \App\Support\Money::formatEur($adobeYearlySavings)]) }}

@endif @if ($savingsTotal > 0.009)

{{ __('budgets.subscriptions_page.savings_total', ['amount' => \App\Support\Money::formatEur($savingsTotal)]) }}

@endif
@endif @if ($mobileSearchOpen)

@if ($searchTrim !== '') {{ __('budgets.subscriptions_page.mobile_results', ['count' => count($filtered)]) }} @else {{ __('budgets.subscriptions_page.mobile_hint') }} @endif

@endif @if ($editing !== null)

{{ $editing === 'new' ? __('budgets.subscriptions_page.add_subscription_title') : __('budgets.subscriptions_page.edit_subscription_title') }}

@if ($editing !== 'new') @endif
@if (count($smartSuggestions) > 0)

{{ __('budgets.subscriptions_page.smart_actions') }}

@foreach (array_slice($smartSuggestions, 0, 3) as $sug) @php $tone = $sug['tone'] ?? 'default'; @endphp

{{ $sug['label'] }}

@if (! empty($sug['detail']))

{{ $sug['detail'] }}

@endif
@endforeach
@endif
@foreach (['monthly', 'quarterly', 'yearly'] as $c) @endforeach
@foreach (['active', 'inactive', 'trial'] as $st) @endforeach
@foreach ($categories as $cid => $c) @endforeach
{{ __('budgets.subscriptions_page.shared_subscription') }}
@if ($editShared) @endif
@endif