@php $inputClass = 'w-full border border-gray-200 rounded-lg px-3 py-2 text-sm text-gray-800 focus:outline-none focus:border-indigo-400 placeholder:text-gray-400 bg-white'; $labelClass = 'block text-xs font-medium text-gray-500 mb-1.5'; @endphp
{{-- HEADER --}}

{{ t('settings.title') }}

{{ t('settings.subtitle') }}

{{-- TAB NAVIGATION --}}
@foreach([ 'profile' => ['label' => t('settings.tab.profile'), 'icon' => 'user'], 'security' => ['label' => t('settings.tab.security'), 'icon' => 'lock-closed'], 'notifications' => ['label' => t('settings.tab.notifications'), 'icon' => 'bell'], 'smtp' => ['label' => t('settings.tab.smtp'), 'icon' => 'envelope'], 'credits' => ['label' => t('settings.tab.credits'), 'icon' => 'bolt'], ...(!auth()->user()->isInternalUser() ? ['affiliate' => ['label' => 'Affiliate', 'icon' => 'gift']] : []), 'account' => ['label' => t('settings.tab.account'), 'icon' => 'shield-exclamation'], ] as $key => $tab) @endforeach
{{-- ════════════════════════════════════════════════════════════ --}} {{-- TAB: PROFIL --}} {{-- ════════════════════════════════════════════════════════════ --}}
{{-- Card Header --}}

{{ t('settings.profile.title') }}

{{ t('settings.profile.subtitle') }}

{{-- Card Body --}}
@error('name')

{{ $message }}

@enderror
@error('email')

{{ $message }}

@enderror
{{-- Card Footer --}}
{{-- ════════════════════════════════════════════════════════════ --}} {{-- TAB: SICHERHEIT --}} {{-- ════════════════════════════════════════════════════════════ --}}

{{ t('settings.security.title') }}

{{ t('settings.security.subtitle') }}

@error('current_password')

{{ $message }}

@enderror
@error('new_password')

{{ $message }}

@enderror
{{-- ════════════════════════════════════════════════════════════ --}} {{-- TAB: BENACHRICHTIGUNGEN --}} {{-- ════════════════════════════════════════════════════════════ --}}

Benachrichtigungen

Steuere wie und wann du benachrichtigt wirst

{{-- In-App (immer aktiv) --}}

In-App Benachrichtigungen

System-Updates, Credit-Änderungen und Aria-Aktionen

Immer aktiv — nicht deaktivierbar

{{-- Push (Pro) --}} @php $isPro = auth()->user()->subscription?->isActive() ?? false; @endphp

Push Benachrichtigungen

@if(!$isPro) Pro @endif

Direkt auf dein Gerät — auch wenn die App geschlossen ist

@if($isPro)

Für: Termin-Erinnerungen, Geburtstage, Tägliche Agenda

@endif
@if($isPro) @else Upgraden → @endif
{{-- Email (Pro) --}}

E-Mail Benachrichtigungen

@if(!$isPro) Pro @endif

Tägliche Agenda, Wochenvorschau und Tagesrückblick per E-Mail

@if($isPro)

Wird gesendet von reminder@aziros.com

@endif
@if($isPro) @else Upgraden → @endif
{{-- ════════════════════════════════════════════════════════════ --}} {{-- TAB: SMTP --}} {{-- ════════════════════════════════════════════════════════════ --}}

{{ t('settings.smtp.title') }}

{{ t('settings.smtp.subtitle') }}

{{-- Info Box --}}

{{ t('settings.smtp.info_title') }}

{{ t('settings.smtp.info_body') }}

{{ t('settings.smtp.info_note') }}

{{-- Rate Limit Info --}}

{{ t('settings.smtp.rate_title') }}

{{ t('settings.smtp.rate_desc') }}

{{ $emailsSentToday }}

{{ t('settings.smtp.today_sent') }}

@foreach(['tls' => 'TLS', 'ssl' => 'SSL', 'null' => t('settings.smtp.none')] as $val => $lbl) @endforeach

{{ t('settings.smtp.test_title') }}

{{ t('settings.smtp.test_desc', ['email' => auth()->user()->email]) }}

@if($smtpStatus === 'success')
{{ t('settings.smtp.test_success') }}
@elseif($smtpStatus === 'error')
{{ t('settings.smtp.test_error', ['error' => $smtpError]) }}
@endif
{{-- ════════════════════════════════════════════════════════════ --}} {{-- ════════════════════════════════════════════════════════════ --}} {{-- TAB: CREDITS --}} {{-- ════════════════════════════════════════════════════════════ --}}
{{-- Übersicht-Cards --}}

{{ t('settings.credits.plan_limit') }}

{{ $planLimit === 0 ? '∞' : number_format($planLimit) }}

{{ t('settings.credits.resets') }}

{{ t('settings.credits.balance') }}

{{ number_format($bonusLeft) }}

{{ t('settings.credits.no_expire') }}

{{ t('settings.credits.effective') }}

{{ $effLimit === 0 ? '∞' : number_format($effLimit) }}

{{ t('settings.credits.plan_plus') }}

{{-- Progressbar --}} @if($effLimit > 0)
{{ t('settings.credits.usage') }} {{ number_format($monthUsage) }} / {{ number_format($effLimit) }}
@php $pct = min(100, $effLimit > 0 ? round($monthUsage / $effLimit * 100) : 0); $barColor = match(true) { $pct >= 100 => 'bg-red-500', $pct >= 80 => 'bg-amber-400', $pct >= 60 => 'bg-orange-400', default => 'bg-indigo-500', }; @endphp
@if($bonusLeft > 0 && $planLimit > 0) @php $planPct = min(100, round($planLimit / $effLimit * 100)); @endphp
↑ Plan ({{ number_format($planLimit) }})

{{ t('settings.credits.balance_note', ['limit' => number_format($planLimit)]) }}

@endif
@endif {{-- Transaktions-Verlauf --}}

{{ t('settings.credits.history') }}

{{ t('settings.credits.last_20') }}

@if($creditTransactions->isEmpty())

{{ t('settings.credits.no_transactions') }}

@else
@foreach($creditTransactions as $tx) @php [$txLabel, $txColor, $txBg] = match($tx->type) { 'onboarding' => [t('settings.credits.type.welcome'), '#059669', '#ECFDF5'], 'affiliate' => [t('settings.credits.type.affiliate'), '#4F46E5', '#EEF2FF'], 'admin_gift' => [t('settings.credits.type.gift'), '#9333EA', '#FAF5FF'], 'refund' => [t('settings.credits.type.refund'), '#059669', '#ECFDF5'], 'subscription' => [t('settings.credits.type.sub_bonus'), '#2563EB', '#EFF6FF'], 'usage' => [t('settings.credits.type.usage'), '#DC2626', '#FEF2F2'], 'event', 'event_update' => [t('settings.credits.type.event'), '#4F46E5', '#EEF2FF'], 'task', 'task_update' => [t('settings.credits.type.task'), '#065F46', '#ECFDF5'], 'note', 'note_update' => [t('settings.credits.type.note'), '#B45309', '#FFFBEB'], 'contact' => [t('settings.credits.type.contact'), '#1E40AF', '#EFF6FF'], 'email' => [t('settings.credits.type.email'), '#6B21A8', '#FAF5FF'], 'multi' => [t('settings.credits.type.multi'), '#9D174D', '#FDF2F8'], 'chat' => [t('settings.credits.type.chat'), '#374151', '#F3F4F6'], default => [$tx->type, '#374151', '#F3F4F6'], }; @endphp
{{ $txLabel }} {{ $tx->label }}

{{ $tx->created_at->diffForHumans() }}

@if(!empty($tx->duration_ms)) ·

{{ $tx->duration_ms < 1000 ? $tx->duration_ms . 'ms' : number_format($tx->duration_ms / 1000, 1) . 's' }}

@endif
{{ $tx->amount > 0 ? '+' : '' }}{{ number_format($tx->amount) }}
@endforeach
@endif
{{-- TAB: AFFILIATE --}} {{-- ════════════════════════════════════════════════════════════ --}} @if(!auth()->user()->isInternalUser())
{{-- Card Header --}}

{{ t('settings.affiliate.title') }}

{{ t('settings.affiliate.subtitle') }}

@if($affiliate) {{-- Stats --}}

{{ $affiliate->total_referrals }}

{{ t('settings.affiliate.invited') }}

{{ $affiliate->qualified_referrals }}

{{ t('settings.affiliate.qualified') }}

{{ $affiliate->total_credits_earned }}

{{ t('settings.affiliate.earned') }}

{{-- Referral Link --}}

{{ t('settings.affiliate.code') }} {{ $affiliate->code }} · {{ t('settings.affiliate.reward') }} 500 Credits

{{-- Referrals Tabelle --}} @if($referrals->isNotEmpty())
@foreach($referrals as $referral) @php $badge = match($referral->status) { 'pending' => [t('settings.affiliate.status.pending'), 'bg-amber-50 text-amber-700'], 'qualified' => [t('settings.affiliate.status.qualified'), 'bg-green-50 text-green-700'], 'paid' => [t('settings.affiliate.status.credited'), 'bg-indigo-50 text-indigo-700'], 'cancelled' => [t('settings.affiliate.status.cancelled'), 'bg-red-50 text-red-700'], default => [$referral->status, 'bg-gray-100 text-gray-600'], }; @endphp @endforeach
{{ t('common.name') }} {{ t('settings.affiliate.registered') }} {{ t('settings.affiliate.qualified_at') }} {{ t('common.status') }} {{ t('common.credits') }}
{{ $referral->referredUser?->name ?? t('settings.affiliate.status.unknown') }} {{ $referral->registered_at->format('d.m.Y') }} {{ $referral->qualifies_at->format('d.m.Y') }} @if($referral->status === 'pending') ({{ $referral->qualifies_at->diffForHumans() }}) @endif {{ $badge[0] }} {{ $referral->credits_awarded > 0 ? '+' . $referral->credits_awarded : '—' }}
@endif @else

{{ t('settings.affiliate.not_member') }}

{!! t('settings.affiliate.join_cta', ['credits' => '500 Credits']) !!}

@endif
@endif {{-- ════════════════════════════════════════════════════════════ --}} {{-- TAB: GEFAHRENZONE --}} {{-- ════════════════════════════════════════════════════════════ --}}

{{ t('settings.account.title') }}

{{ t('settings.account.subtitle') }}

{{ t('settings.account.delete') }}

{{ t('settings.account.delete_desc') }}