{{-- Profile Hero — top-of-page identity + stats + action bar. Receives: $profile : array from PilotPresenter::forProfile() $follow : PilotFollow|null $isFollowing : bool $mainBalance : float Action bar state machine: following → [+ Topup] [Unfollow] (wired to modals) not following + open → [Follow this pilot] (placeholder; Step 7c) not following + warmup → [Notify when open] (disabled) --}} @php $color = in_array($profile['avatar_color'], ['orange','purple','red'], true) ? $profile['avatar_color'] : 'orange'; $isAccepting = (bool) $profile['is_accepting_followers']; $profitClass = $profile['profit_30d'] > 0 ? 'up' : ($profile['profit_30d'] < 0 ? 'down' : ''); $profitSign = $profile['profit_30d'] > 0 ? '+' : ''; $profitStr = $profitSign . '$' . number_format(abs($profile['profit_30d']), 2); // Win-rate confidence (mute when small sample) $rateClass = $profile['trades_30d'] === 0 ? 'is-empty' : ($profile['trades_30d'] < 10 ? 'is-early' : ''); @endphp
{{-- Identity row --}}
{{ $profile['initials'] }}

{{ $profile['name'] }} @if($profile['is_live']) @endif

Min entry ${{ number_format($profile['min_entry'], 0) }} @if($profile['trading_style']) · {{ $profile['trading_style'] }} @endif

@if($isFollowing) Following · since {{ \Carbon\Carbon::parse($follow->started_at)->format('M j') }} @elseif($isAccepting) Accepting followers @else Warmup · opens soon @endif
{{-- Action bar --}}
@if($isFollowing) @elseif($isAccepting) @else @endif
{{-- Stat grid --}}
Win rate · 30d
@if($profile['trades_30d'] === 0) — @else {{ rtrim(rtrim(number_format($profile['win_rate'], 1), '0'), '.') }}% @endif
{{ number_format($profile['trades_30d']) }} trades
30d profit
{{ $profitStr }}
gross generated
Followers
{{ number_format($profile['followers']) }}
{{ $profile['followers'] === 1 ? 'active' : 'active total' }}