@if(session('success'))
{{ session('success') }} @if(session('temp_password'))
Password temporal: {{ session('temp_password') }}
⚠️ Copialo ahora, no se vuelve a mostrar. Pasáselo al cliente por canal seguro.
@endif
@endif @if(session('error'))
{{ session('error') }}
@endif @if(session('info'))
{{ session('info') }}
@endif
{{-- Datos del user --}}

Datos del usuario

Email
{{ $user->email }}
Nombre
{{ trim(($user->first_name ?? '') . ' ' . ($user->last_name ?? '')) ?: '—' }}
Email verificado
@if($user->email_verified_at) {{ $user->email_verified_at->format('d/m/Y H:i') }} @else No verificado
@csrf
@endif
Stripe Customer ID
@if($user->stripe_id) {{ $user->stripe_id }} @else @endif
Registrado
{{ $user->created_at?->format('d/m/Y H:i') ?? '—' }}
Último login
@if($user->last_login_at) {{ \Carbon\Carbon::parse($user->last_login_at)->diffForHumans() }} · {{ \Carbon\Carbon::parse($user->last_login_at)->format('d/m/Y H:i') }} @else Nunca @endif
{{-- Roles --}}

Roles Spatie

Cambiar afecta permisos del portal inmediatamente.
@csrf @method('PATCH')
@foreach($allRoles as $r)
@endforeach
{{-- Acciones de soporte --}}

Acciones de soporte

@csrf Genera un password aleatorio y lo muestra una sola vez.
{{-- Proyectos del user --}}

Proyectos {{ $projects->count() }}

@if($projects->isEmpty())
Este usuario no tiene proyectos.
@else @foreach($projects as $project) @php [$badgeLabel, $badgeClass] = $project->status_badge; @endphp
{{ $project->project_name }}
{{ $badgeLabel }}
@if($project->product_name)
{{ $project->product_name }}
@endif
@if($project->domain)
Dominio
{{ $project->domain }}
@endif @if($project->amount_usd)
Plan
USD {{ number_format($project->amount_usd, 2) }} /mes
@endif @if($project->trial_ends_at && $project->trial_ends_at->isFuture())
Trial hasta
{{ $project->trial_ends_at->format('d/m/Y') }}
@endif @if($project->server)
Server
{{ $project->server }}
@endif
@if($project->airtable_record_id) @endif
@endforeach @endif
{{-- Admin notes — sólo visibles para staff, no se exponen al user. Útil para tags rápidos: "cliente exigente", "billing trabado en 2026-04", "atender con prioridad". --}} @can('customers.edit', \App\Models\User::class)

Notas internas (solo staff)

@csrf @method('PATCH')
@error('admin_notes')
{{ $message }}
@enderror
Máx. 5000 caracteres. Visible solo para staff con permiso customers.edit.
@endcan