<x-mb-layout pageTitle="{{ $row['name'] }}" :conversations="$conversations ?? []">
    @push('styles')
        <link href="{{ asset('assets/mb/css/creatives.css') }}?v={{ filemtime(public_path('assets/mb/css/creatives.css')) }}" rel="stylesheet">
        <link href="{{ asset('assets/mb/css/campaigns.css') }}?v={{ filemtime(public_path('assets/mb/css/campaigns.css')) }}" rel="stylesheet">
    @endpush

    @php
        $verdict = \App\Campaigns\PerformanceVerdict::tryFromStored($row['status']);
        $statusClass = $verdict?->statusClass() ?? 'queued';
        $statusLabel = $verdict?->label() ?? 'No verdict yet';
        $adPlatform = $row['platform'] === 'google' ? 'Google' : 'Meta';
    @endphp

    <div class="mb-page">
        <div class="mb-page-inner">
            <div class="mb-page-head">
                <div>
                    <a class="mb-back" href="{{ route('campaigns.performance') }}" wire:navigate><i class="bi bi-arrow-left"></i>All campaigns</a>
                    <div class="mb-title-row">
                        <h1 class="mb-page-title">{{ $row['name'] }}</h1>
                        <span class="mb-status is-{{ $statusClass }}"><span class="mb-dot"></span>{{ $statusLabel }}</span>
                    </div>
                    <p class="mb-page-sub">
                        {{ $row['platform'] === 'google' ? 'Google' : 'Meta' }}
                        · {{ $row['external_campaign_id'] }}
                        @if ($row['platform_status'])
                            · Platform {{ $row['platform_status'] }}
                        @endif
                        @if ($profile?->delivery_status)
                            · Delivery {{ $profile->delivery_status }}
                        @endif
                        @if ($profile?->regionLabel())
                            · {{ $profile->regionLabel() }}
                        @endif
                        @if ($profile?->platformLearningLabel())
                            · {{ $profile->platformLearningLabel() }}
                        @endif
                        @if (($row['trend'] ?? null) === 'improving')
                            · Improving vs prior 7 days
                        @elseif (($row['trend'] ?? null) === 'declining')
                            · Declining vs prior 7 days
                        @endif
                    </p>
                </div>
            </div>

            @if ($row['last_error'])
                <div class="mb-note is-error"><i class="bi bi-exclamation-triangle"></i><div><strong>Last sync failed.</strong> {{ $row['last_error'] }}</div></div>
            @endif

            <div class="mb-stats mb-perf-kpis">
                <div class="mb-stat">
                    <span class="mb-stat-icon is-ok"><i class="bi bi-currency-dollar"></i></span>
                    <span><span class="mb-stat-num">${{ number_format($lifetime['spend'], 2) }}</span><span class="mb-stat-label d-block">Lifetime spend</span></span>
                </div>
                <div class="mb-stat">
                    <span class="mb-stat-icon is-run"><i class="bi bi-cursor"></i></span>
                    <span><span class="mb-stat-num">{{ number_format($lifetime['clicks']) }}</span><span class="mb-stat-label d-block">{{ $adPlatform }} clicks</span></span>
                </div>
                <div class="mb-stat">
                    <span class="mb-stat-icon is-all"><i class="bi bi-eye"></i></span>
                    <span><span class="mb-stat-num">{{ number_format($lifetime['impressions']) }}</span><span class="mb-stat-label d-block">Lifetime impressions</span></span>
                </div>
                <div class="mb-stat">
                    <span class="mb-stat-icon is-all"><i class="bi bi-graph-up"></i></span>
                    <span><span class="mb-stat-num">{{ $lifetime['cpc'] === null ? '—' : '$'.number_format($lifetime['cpc'], 2) }}</span><span class="mb-stat-label d-block">{{ $adPlatform }} CPC</span></span>
                </div>
            </div>

            <div class="mb-card mb-perf-profile-card">
                <div class="mb-perf-history-head">
                    <h2 class="mb-perf-history-title">Campaign profile</h2>
                    <p class="mb-page-sub">Synced from Meta or Google on the last performance run.</p>
                </div>
                <dl class="mb-perf-profile-grid">
                    <div><dt>Name</dt><dd>{{ $profile?->name ?: $row['name'] }}</dd></div>
                    <div><dt>Platform</dt><dd>{{ $row['platform'] === 'google' ? 'Google' : 'Meta' }}</dd></div>
                    <div><dt>Objective</dt><dd>{{ $profile?->objective ?: '—' }}</dd></div>
                    <div><dt>Region</dt><dd>{{ $profile?->regionLabel() ?: '—' }}</dd></div>
                    <div><dt>Platform learning</dt><dd>{{ $profile?->platformLearningLabel() ?: '—' }}</dd></div>
                    <div><dt>Delivery</dt><dd>{{ $profile?->delivery_status ?: '—' }}</dd></div>
                    <div><dt>Platform status</dt><dd>{{ $profile?->platform_status ?: ($row['platform_status'] ?: '—') }}</dd></div>
                    <div><dt>Daily budget</dt><dd>{{ $daily_budget === null || $daily_budget === '' ? '—' : '$'.number_format((float) $daily_budget, 2) }}</dd></div>
                    <div><dt>Account</dt><dd>{{ $profile?->account_id ?: '—' }}</dd></div>
                    <div><dt>Started</dt><dd>{{ $profile?->started_at?->toDateString() ?: '—' }}</dd></div>
                </dl>
            </div>

            @if ($affiliate)
                <div class="mb-card mb-perf-detail-card">
                    <div class="mb-perf-history-head">
                        <h2 class="mb-perf-history-title">Actual conversion (Whale DB)</h2>
                        <p class="mb-page-sub">
                            Affiliate truth for orders, clicks, and sum CPC — not the same as Meta pixel conversions.
                            Matched on campaign id {{ $affiliate['campaign_id'] ?? $row['external_campaign_id'] }}
                            @if (! empty($affiliate['data_through']))
                                · Data through {{ $affiliate['data_through'] }}
                            @endif
                        </p>
                    </div>
                    <dl class="mb-perf-facts mb-perf-facts--inline">
                        <div><dt>7d clicks</dt><dd>{{ number_format((int) data_get($affiliate, '7d.clicks', 0)) }}</dd></div>
                        <div><dt>7d sum CPC</dt><dd>${{ number_format((float) data_get($affiliate, '7d.sum_cpc', 0), 2) }}</dd></div>
                        <div><dt>7d orders</dt><dd>{{ number_format((float) data_get($affiliate, '7d.orders', 0), 2) }}</dd></div>
                        <div><dt>7d net revenue</dt><dd>${{ number_format((float) data_get($affiliate, '7d.net_revenue', 0), 2) }}</dd></div>
                    </dl>
                    @if ($affiliate_daily !== [])
                        <div class="mb-table-wrap">
                            <table class="mb-table mb-perf-window-table">
                                <thead>
                                    <tr>
                                        <th>Date</th>
                                        <th>Clicks</th>
                                        <th>Sum CPC</th>
                                        <th>Orders</th>
                                        <th>Net revenue</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    @foreach ($affiliate_daily as $day)
                                        <tr>
                                            <td>{{ $day['date'] }}</td>
                                            <td>{{ number_format($day['clicks']) }}</td>
                                            <td>${{ number_format($day['sum_cpc'], 2) }}</td>
                                            <td>{{ number_format($day['orders'], 2) }}</td>
                                            <td>${{ number_format($day['net_revenue'], 2) }}</td>
                                        </tr>
                                    @endforeach
                                </tbody>
                            </table>
                        </div>
                    @endif
                    <p class="mb-cell-meta">Recommendation only — product owner decides any platform action.</p>
                </div>
            @endif

            <div class="mb-card mb-perf-detail-card">
                @php
                    $displayTimezone = 'Asia/Kolkata';
                    $formatTimestamp = static function ($value) use ($displayTimezone): string {
                        if ($value === null || $value === '') {
                            return '—';
                        }

                        return \Illuminate\Support\Carbon::parse($value)
                            ->timezone($displayTimezone)
                            ->format('M j, g:i A T');
                    };
                    $suggestionVerdict = \App\Campaigns\PerformanceVerdict::tryFromStored($row['status']);
                @endphp
                <div class="mb-perf-history-head">
                    <h2 class="mb-perf-history-title">Suggestion & window verdicts</h2>
                    <p class="mb-page-sub">
                        @if ($suggestion?->suggested_at)
                            Evaluated {{ $formatTimestamp($suggestion->suggested_at) }}
                        @else
                            Not evaluated yet
                        @endif
                        @if ($suggestion_run_type !== '')
                            · {{ ucfirst($suggestion_run_type) }} run
                        @endif
                        @if ($latest_hour?->stat_hour)
                            · Hourly data through {{ $formatTimestamp($latest_hour->stat_hour) }}
                        @endif
                        @if ($latest_hour?->fetched_at)
                            · Last hourly sync {{ $formatTimestamp($latest_hour->fetched_at) }}
                        @endif
                    </p>
                </div>

                <div class="mb-perf-detail-grid">
                    <div>
                        <div class="mb-perf-metric-label">Final suggestion</div>
                        @if ($suggestionVerdict)
                            <span class="mb-status is-{{ $suggestionVerdict->statusClass() }} mb-perf-suggestion-verdict">
                                <span class="mb-dot"></span>{{ $suggestionVerdict->label() }}
                            </span>
                        @endif
                        <p class="mb-perf-reason">{{ $row['reason'] ?: 'No suggestion yet. Run campaigns:sync-performance --map.' }}</p>
                        <div class="mb-cell-meta">
                            {{ $row['learning'] }}
                            @if ($suggestion)
                                · {{ $suggestion->source === 'llm' ? 'LLM' : 'PHP' }}
                                @if ($suggestion->confidence)
                                    · {{ $suggestion->confidence }} confidence
                                @endif
                                · pending
                            @endif
                        </div>
                    </div>
                    <dl class="mb-perf-facts">
                        <div class="mb-perf-facts-group-label" role="presentation">{{ $adPlatform }} (7 days)</div>
                        <div><dt>{{ $adPlatform }} spend</dt><dd>${{ number_format($platform_metrics_7d['spend'] ?? $row['spend_7d'], 2) }}</dd></div>
                        <div><dt>{{ $adPlatform }} clicks</dt><dd>{{ number_format($platform_metrics_7d['clicks'] ?? $row['clicks_7d']) }}</dd></div>
                        <div><dt>{{ $adPlatform }} CPC</dt><dd>{{ ($platform_metrics_7d['cpc'] ?? $row['cpc_7d']) === null ? '—' : '$'.number_format((float) ($platform_metrics_7d['cpc'] ?? $row['cpc_7d']), 2) }}</dd></div>
                        <div><dt>{{ $adPlatform }} conversion</dt><dd>{{ number_format((int) ($platform_metrics_7d['conversions'] ?? 0)) }}</dd></div>
                        <div><dt>{{ $adPlatform }} conversion value</dt><dd>${{ number_format((float) ($platform_metrics_7d['conversion_value'] ?? 0), 2) }}</dd></div>
                        @if ($affiliate)
                            <div class="mb-perf-facts-group-label" role="presentation">Whale DB — actual conversion (7 days)</div>
                            <div><dt>Clicks</dt><dd>{{ number_format((int) data_get($affiliate, '7d.clicks', 0)) }}</dd></div>
                            <div><dt>Sum CPC</dt><dd>${{ number_format((float) data_get($affiliate, '7d.sum_cpc', 0), 2) }}</dd></div>
                            <div><dt>Orders</dt><dd>{{ number_format((float) data_get($affiliate, '7d.orders', 0), 2) }}</dd></div>
                            <div><dt>Net revenue</dt><dd>${{ number_format((float) data_get($affiliate, '7d.net_revenue', 0), 2) }}</dd></div>
                        @endif
                        <div class="mb-perf-facts-group-label" role="presentation">Context</div>
                        <div><dt>Trend vs prior 7 days</dt><dd>{{ $row['trend_summary'] ?: '—' }}</dd></div>
                        <div><dt>Local status</dt><dd>{{ $local_status ?: '—' }}</dd></div>
                        <div><dt>Updated</dt><dd>{{ $row['updated_at']?->timezone($displayTimezone)->format('M j, g:i A T') ?? '—' }}</dd></div>
                    </dl>
                </div>

                @if ($suggestion_windows !== [])
                    <div class="mb-table-wrap mb-perf-suggestion-windows">
                        <table class="mb-table mb-perf-window-table">
                            <thead>
                                <tr>
                                    <th rowspan="2">Window</th>
                                    <th rowspan="2">Range (IST)</th>
                                    <th rowspan="2">Verdict</th>
                                    <th colspan="5">{{ $adPlatform }}</th>
                                    @if ($affiliate)
                                        <th colspan="4">Whale DB (actual)</th>
                                    @endif
                                    <th rowspan="2">Reason</th>
                                </tr>
                                <tr>
                                    <th>Spend</th>
                                    <th>{{ $adPlatform }} clicks</th>
                                    <th>{{ $adPlatform }} CPC</th>
                                    <th>{{ $adPlatform }} conversion</th>
                                    <th>{{ $adPlatform }} conv. value</th>
                                    @if ($affiliate)
                                        <th>Clicks</th>
                                        <th>Sum CPC</th>
                                        <th>Orders</th>
                                        <th>Net revenue</th>
                                    @endif
                                </tr>
                            </thead>
                            <tbody>
                                @foreach ($window_keys as $windowKey)
                                    @if (! isset($suggestion_windows[$windowKey]))
                                        @continue
                                    @endif
                                    @php
                                        $window = $suggestion_windows[$windowKey];
                                        $windowVerdict = \App\Campaigns\PerformanceVerdict::from($window['verdict'] ?? 'no_action');
                                        $windowRange = ($window['from'] ?? null) && ($window['to'] ?? null)
                                            ? $formatTimestamp($window['from']).' → '.$formatTimestamp($window['to'])
                                            : '—';
                                        $affWindow = match ($windowKey) {
                                            '3d' => data_get($affiliate, '3d'),
                                            '7d' => data_get($affiliate, '7d'),
                                            default => null,
                                        };
                                        $affWindow = is_array($affWindow) ? $affWindow : null;
                                    @endphp
                                    <tr>
                                        <td data-label="Window">{{ strtoupper($windowKey) }}</td>
                                        <td data-label="Range (IST)">{{ $windowRange }}</td>
                                        <td data-label="Verdict">
                                            <span class="mb-status is-{{ $windowVerdict->statusClass() }}"><span class="mb-dot"></span>{{ $windowVerdict->label() }}</span>
                                        </td>
                                        <td data-label="Spend">${{ number_format((float) ($window['spend'] ?? 0), 2) }}</td>
                                        <td data-label="{{ $adPlatform }} clicks">{{ number_format((int) ($window['clicks'] ?? 0)) }}</td>
                                        <td data-label="{{ $adPlatform }} CPC">{{ ($window['cpc'] ?? null) === null ? '—' : '$'.number_format((float) $window['cpc'], 2) }}</td>
                                        <td data-label="{{ $adPlatform }} conversion">{{ number_format((int) ($window['conversions'] ?? 0)) }}</td>
                                        <td data-label="{{ $adPlatform }} conv. value">${{ number_format((float) ($window['conversion_value'] ?? 0), 2) }}</td>
                                        @if ($affiliate)
                                            <td data-label="Clicks">{{ $affWindow ? number_format((int) ($affWindow['clicks'] ?? 0)) : '—' }}</td>
                                            <td data-label="Sum CPC">{{ $affWindow ? '$'.number_format((float) ($affWindow['sum_cpc'] ?? 0), 2) : '—' }}</td>
                                            <td data-label="Orders">{{ $affWindow ? number_format((float) ($affWindow['orders'] ?? 0), 2) : '—' }}</td>
                                            <td data-label="Net revenue">{{ $affWindow ? '$'.number_format((float) ($affWindow['net_revenue'] ?? 0), 2) : '—' }}</td>
                                        @endif
                                        <td data-label="Reason">{{ $window['reason'] ?? '—' }}</td>
                                    </tr>
                                @endforeach
                                @if (is_array($suggestion_hourly_verdict))
                                    @php
                                        $hourlyVerdict = \App\Campaigns\PerformanceVerdict::from($suggestion_hourly_verdict['verdict'] ?? 'no_action');
                                    @endphp
                                    <tr class="is-hourly-verdict">
                                        <td data-label="Window">Hourly check</td>
                                        <td data-label="Range (IST)">—</td>
                                        <td data-label="Verdict">
                                            <span class="mb-status is-{{ $hourlyVerdict->statusClass() }}"><span class="mb-dot"></span>{{ $hourlyVerdict->label() }}</span>
                                        </td>
                                        <td data-label="Spend">—</td>
                                        <td data-label="{{ $adPlatform }} clicks">—</td>
                                        <td data-label="{{ $adPlatform }} CPC">—</td>
                                        <td data-label="{{ $adPlatform }} conversion">—</td>
                                        <td data-label="{{ $adPlatform }} conv. value">—</td>
                                        @if ($affiliate)
                                            <td data-label="Clicks">—</td>
                                            <td data-label="Sum CPC">—</td>
                                            <td data-label="Orders">—</td>
                                            <td data-label="Net revenue">—</td>
                                        @endif
                                        <td data-label="Reason">{{ $suggestion_hourly_verdict['reason'] ?? '—' }}</td>
                                    </tr>
                                @endif
                            </tbody>
                        </table>
                    </div>
                @endif
            </div>

            @if (($latest_verdict ?? null) !== null)
                <div class="mb-card mb-perf-detail-card mb-perf-latest-log-card">
                    <div class="mb-perf-history-head">
                        <h2 class="mb-perf-history-title">Latest logged verdict</h2>
                        <p class="mb-page-sub">
                            {{ ucfirst($latest_verdict->run_type) }} run · {{ $formatTimestamp($latest_verdict->evaluated_at) }}
                        </p>
                    </div>
                    @php
                        $latestVerdictEnum = \App\Campaigns\PerformanceVerdict::from($latest_verdict->final_verdict);
                    @endphp
                    <div class="mb-perf-log-summary">
                        <span class="mb-status is-{{ $latestVerdictEnum->statusClass() }}"><span class="mb-dot"></span>{{ $latestVerdictEnum->label() }}</span>
                        <p class="mb-perf-reason">{{ $latest_verdict->final_reason }}</p>
                    </div>
                </div>
            @endif

            <div class="mb-card mb-perf-log-card">
                <div class="mb-perf-history-head">
                    <h2 class="mb-perf-history-title">Verdict log</h2>
                    <p class="mb-page-sub">Append-only history. Expand a run to see each analysis window.</p>
                </div>

                <form class="mb-toolbar mb-perf-log-filters" method="GET" action="{{ route('campaigns.performance.show', [$row['platform'], $row['external_campaign_id']]) }}">
                    @if (request('per_page'))
                        <input type="hidden" name="per_page" value="{{ request('per_page') }}">
                    @endif
                    @if (request('page'))
                        <input type="hidden" name="page" value="{{ request('page') }}">
                    @endif
                    <select class="mb-select" name="log_run_type" aria-label="Filter log by run type" onchange="this.form.submit()">
                        <option value="" @selected(($log_filters['run_type'] ?? '') === '')>All runs</option>
                        <option value="hourly" @selected(($log_filters['run_type'] ?? '') === 'hourly')>Hourly</option>
                        <option value="daily" @selected(($log_filters['run_type'] ?? '') === 'daily')>Daily</option>
                        <option value="manual" @selected(($log_filters['run_type'] ?? '') === 'manual')>Manual</option>
                    </select>
                    <select class="mb-select" name="log_verdict" aria-label="Filter log by verdict" onchange="this.form.submit()">
                        <option value="" @selected(($log_filters['verdict'] ?? '') === '')>All verdicts</option>
                        @foreach ($verdicts as $verdictOption)
                            <option value="{{ $verdictOption->value }}" @selected(($log_filters['verdict'] ?? '') === $verdictOption->value)>{{ $verdictOption->label() }}</option>
                        @endforeach
                    </select>
                    <select class="mb-select" name="log_days" aria-label="Filter log by date range" onchange="this.form.submit()">
                        <option value="0" @selected(($log_filters['days'] ?? 0) === 0)>All time</option>
                        <option value="7" @selected(($log_filters['days'] ?? 0) === 7)>Last 7 days</option>
                        <option value="30" @selected(($log_filters['days'] ?? 0) === 30)>Last 30 days</option>
                        <option value="90" @selected(($log_filters['days'] ?? 0) === 90)>Last 90 days</option>
                    </select>
                    <select class="mb-select" name="log_per_page" aria-label="Log rows per page" onchange="this.form.submit()">
                        <option value="10" @selected(($log_filters['per_page'] ?? 10) === 10)>10 / page</option>
                        <option value="25" @selected(($log_filters['per_page'] ?? 10) === 25)>25 / page</option>
                        <option value="50" @selected(($log_filters['per_page'] ?? 10) === 50)>50 / page</option>
                    </select>
                </form>

                @if ($verdict_logs->isEmpty())
                    <div class="mb-empty">
                        <div class="mb-empty-title">No verdict log entries yet</div>
                        <div>Run <code>php artisan campaigns:sync-performance --map</code> to evaluate windows and append log rows.</div>
                    </div>
                @else
                    <div class="mb-perf-log-list">
                        @foreach ($verdict_logs as $log)
                            @php
                                $finalVerdict = \App\Campaigns\PerformanceVerdict::from($log->final_verdict);
                                $windows = is_array($log->windows) ? $log->windows : [];
                            @endphp
                            <details class="mb-perf-log-entry">
                                <summary class="mb-perf-log-summary-row">
                                    <span class="mb-perf-log-when">{{ $log->evaluated_at?->format('M j, g:i A') ?? '—' }}</span>
                                    <span class="mb-tag">{{ ucfirst($log->run_type) }}</span>
                                    <span class="mb-status is-{{ $finalVerdict->statusClass() }}"><span class="mb-dot"></span>{{ $finalVerdict->label() }}</span>
                                    <span class="mb-perf-log-reason">{{ \Illuminate\Support\Str::limit($log->final_reason, 120) }}</span>
                                </summary>
                                <div class="mb-table-wrap">
                                    <table class="mb-table mb-perf-window-table">
                                        <thead>
                                            <tr>
                                                <th>Window</th>
                                                <th>Verdict</th>
                                                <th>Spend</th>
                                                <th>Clicks</th>
                                                <th>CPC</th>
                                                <th>Reason</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            @foreach ($window_keys as $windowKey)
                                                @if (! isset($windows[$windowKey]))
                                                    @continue
                                                @endif
                                                @php
                                                    $window = $windows[$windowKey];
                                                    $windowVerdict = \App\Campaigns\PerformanceVerdict::from($window['verdict'] ?? 'no_action');
                                                @endphp
                                                <tr>
                                                    <td data-label="Window">{{ strtoupper($windowKey) }}</td>
                                                    <td data-label="Verdict">
                                                        <span class="mb-status is-{{ $windowVerdict->statusClass() }}"><span class="mb-dot"></span>{{ $windowVerdict->label() }}</span>
                                                    </td>
                                                    <td data-label="Spend">${{ number_format((float) ($window['spend'] ?? 0), 2) }}</td>
                                                    <td data-label="Clicks">{{ number_format((int) ($window['clicks'] ?? 0)) }}</td>
                                                    <td data-label="CPC">{{ ($window['cpc'] ?? null) === null ? '—' : '$'.number_format((float) $window['cpc'], 2) }}</td>
                                                    <td data-label="Reason">{{ $window['reason'] ?? '—' }}</td>
                                                </tr>
                                            @endforeach
                                            @if (is_array($log->hourly_verdict))
                                                @php
                                                    $hourlyVerdict = \App\Campaigns\PerformanceVerdict::from($log->hourly_verdict['verdict'] ?? 'no_action');
                                                @endphp
                                                <tr class="is-hourly-verdict">
                                                    <td data-label="Window">Hourly</td>
                                                    <td data-label="Verdict">
                                                        <span class="mb-status is-{{ $hourlyVerdict->statusClass() }}"><span class="mb-dot"></span>{{ $hourlyVerdict->label() }}</span>
                                                    </td>
                                                    <td data-label="Spend">—</td>
                                                    <td data-label="Clicks">—</td>
                                                    <td data-label="CPC">—</td>
                                                    <td data-label="Reason">{{ $log->hourly_verdict['reason'] ?? '—' }}</td>
                                                </tr>
                                            @endif
                                            <tr class="is-final-verdict">
                                                <td data-label="Window"><strong>Final</strong></td>
                                                <td data-label="Verdict">
                                                    <span class="mb-status is-{{ $finalVerdict->statusClass() }}"><span class="mb-dot"></span>{{ $finalVerdict->label() }}</span>
                                                </td>
                                                <td data-label="Spend">—</td>
                                                <td data-label="Clicks">—</td>
                                                <td data-label="CPC">—</td>
                                                <td data-label="Reason">{{ $log->final_reason }}</td>
                                            </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </details>
                        @endforeach
                    </div>

                    <div class="mb-table-foot">
                        <span>Showing <strong>{{ $verdict_logs->firstItem() }}–{{ $verdict_logs->lastItem() }}</strong> of <strong>{{ $verdict_logs->total() }}</strong> log entries</span>
                        <div class="mb-pager">{{ $verdict_logs->onEachSide(1)->links() }}</div>
                    </div>
                @endif
            </div>

            @if (! ($chart['empty'] ?? true))
                <div class="mb-card mb-perf-chart-card">
                    <div class="mb-perf-history-head">
                        <h2 class="mb-perf-history-title">Daily performance</h2>
                        <p class="mb-page-sub">All {{ $chart['day_count'] }} dumped days. Not paginated. Line graph of spend and clicks.</p>
                    </div>
                    <div class="mb-perf-chart" data-perf-chart>
                        <div class="mb-perf-chart-legend">
                            <span class="mb-perf-legend is-spend">Spend</span>
                            <span class="mb-perf-legend is-clicks">Clicks</span>
                        </div>
                        <div class="mb-perf-chart-scroll">
                            <svg class="mb-perf-chart-svg" viewBox="0 0 {{ $chart['width'] }} {{ $chart['height'] }}" width="{{ $chart['width'] }}" role="img" aria-label="Line graph of spend and clicks for all {{ $chart['day_count'] }} days">
                                @php
                                    $gridYs = [
                                        $chart['pad_t'],
                                        (int) ($chart['pad_t'] + (($chart['base_y'] - $chart['pad_t']) * 0.34)),
                                        (int) ($chart['pad_t'] + (($chart['base_y'] - $chart['pad_t']) * 0.67)),
                                        $chart['base_y'],
                                    ];
                                @endphp
                                @foreach ($gridYs as $i => $gy)
                                    <line class="mb-perf-grid" x1="{{ $chart['pad_l'] }}" y1="{{ $gy }}" x2="{{ $chart['width'] - $chart['pad_r'] }}" y2="{{ $gy }}" />
                                    <text class="mb-perf-axis is-left" x="8" y="{{ $gy + 4 }}">{{ $chart['y_spend'][$i] }}</text>
                                    <text class="mb-perf-axis is-right" x="{{ $chart['width'] - 8 }}" y="{{ $gy + 4 }}" text-anchor="end">{{ $chart['y_clicks'][$i] }}</text>
                                @endforeach
                                <path class="mb-perf-area" d="{{ $chart['area'] }}" />
                                <polyline class="mb-perf-line is-spend" points="{{ $chart['points_spend'] }}" />
                                <polyline class="mb-perf-line is-clicks" points="{{ $chart['points_clicks'] }}" />
                                @foreach ($chart['dots_spend'] as $dot)
                                    <circle class="mb-perf-dot is-spend" cx="{{ $dot['x'] }}" cy="{{ $dot['y'] }}" r="3.5" />
                                @endforeach
                                @foreach ($chart['dots_clicks'] as $dot)
                                    <circle class="mb-perf-dot is-clicks" cx="{{ $dot['x'] }}" cy="{{ $dot['y'] }}" r="3.5" />
                                @endforeach
                                @foreach ($chart['x_ticks'] as $tick)
                                    <text class="mb-perf-axis is-bottom" x="{{ $tick['x'] }}" y="{{ $chart['height'] - 14 }}" text-anchor="middle">{{ $tick['label'] }}</text>
                                @endforeach
                                @foreach ($chart['days'] as $day)
                                    <rect class="mb-perf-hit"
                                          x="{{ $day['hit_x'] }}" y="{{ $chart['pad_t'] }}"
                                          width="{{ $day['hit_width'] }}" height="{{ $chart['base_y'] - $chart['pad_t'] }}"
                                          data-date="{{ $day['date'] }}"
                                          data-label="{{ $day['label'] }}"
                                          data-spend="{{ number_format($day['spend'], 2) }}"
                                          data-clicks="{{ number_format($day['clicks']) }}"
                                          data-impressions="{{ number_format($day['impressions']) }}"
                                          data-cpc="{{ $day['cpc'] === null ? '—' : number_format($day['cpc'], 2) }}" />
                                @endforeach
                            </svg>
                            <div class="mb-perf-tooltip" hidden>
                                <strong data-tip="label"></strong>
                                <span>Spend <b data-tip="spend"></b></span>
                                <span>Clicks <b data-tip="clicks"></b></span>
                                <span>CPC <b data-tip="cpc"></b></span>
                                <span>Impr. <b data-tip="impressions"></b></span>
                            </div>
                        </div>
                    </div>
                </div>
            @endif

            <div class="mb-card mb-perf-day-card">
                <div class="mb-perf-history-head">
                    <h2 class="mb-perf-history-title">Daily history</h2>
                    <p class="mb-page-sub">Newest first. Expand a day for hourly clicks, spend, and sync details.</p>
                </div>

                @if ($history->isEmpty())
                    <div class="mb-empty">
                        <div class="mb-empty-title">No daily stats yet</div>
                        <div>Run <code>php artisan campaigns:sync-performance</code> to dump Insights.</div>
                    </div>
                @else
                    <div class="mb-perf-day-list">
                        @foreach ($history as $day)
                            @php
                                $dayKey = $day->stat_date?->toDateString();
                                $hours = $dayKey ? ($hourly_by_date[$dayKey] ?? collect()) : collect();
                                $whaleDay = $dayKey && isset($affiliate_daily_by_date)
                                    ? $affiliate_daily_by_date->get($dayKey)
                                    : null;
                            @endphp
                            <details class="mb-perf-day-entry">
                                <summary class="mb-perf-day-summary-row">
                                    <span class="mb-perf-log-when">{{ $day->stat_date?->format('M j, Y') ?? '—' }}</span>
                                    <span class="mb-perf-day-metric"><span class="mb-perf-metric-label">Spend</span>${{ number_format((float) $day->spend, 2) }}</span>
                                    <span class="mb-perf-day-metric"><span class="mb-perf-metric-label">{{ $adPlatform }} clicks</span>{{ number_format((int) $day->clicks) }}</span>
                                    <span class="mb-perf-day-metric"><span class="mb-perf-metric-label">{{ $adPlatform }} CPC</span>{{ $day->cpc === null ? '—' : '$'.number_format((float) $day->cpc, 2) }}</span>
                                    @if ($whaleDay)
                                        <span class="mb-perf-day-metric"><span class="mb-perf-metric-label">Orders</span>{{ number_format((float) ($whaleDay['orders'] ?? 0), 2) }}</span>
                                        <span class="mb-perf-day-metric"><span class="mb-perf-metric-label">Clicks</span>{{ number_format((int) ($whaleDay['clicks'] ?? 0)) }}</span>
                                        <span class="mb-perf-day-metric"><span class="mb-perf-metric-label">Sum CPC</span>${{ number_format((float) ($whaleDay['sum_cpc'] ?? 0), 2) }}</span>
                                    @endif
                                    <span class="mb-perf-day-metric"><span class="mb-perf-metric-label">Status</span>{{ $day->platform_status ?: '—' }}</span>
                                </summary>
                                <dl class="mb-perf-day-detail-grid">
                                    <div><dt>Date</dt><dd>{{ $day->stat_date?->toDateString() ?? '—' }}</dd></div>
                                    <div><dt>Spend</dt><dd>${{ number_format((float) $day->spend, 2) }}</dd></div>
                                    <div><dt>Impressions</dt><dd>{{ number_format((int) $day->impressions) }}</dd></div>
                                    <div><dt>{{ $adPlatform }} clicks</dt><dd>{{ number_format((int) $day->clicks) }}</dd></div>
                                    <div><dt>CTR</dt><dd>{{ $day->ctr === null ? '—' : number_format((float) $day->ctr * 100, 2).'%' }}</dd></div>
                                    <div><dt>{{ $adPlatform }} CPC</dt><dd>{{ $day->cpc === null ? '—' : '$'.number_format((float) $day->cpc, 2) }}</dd></div>
                                    <div><dt>{{ $adPlatform }} conversion</dt><dd>{{ $day->conversions === null ? '—' : number_format((int) $day->conversions) }}</dd></div>
                                    <div><dt>{{ $adPlatform }} conversion value</dt><dd>{{ $day->conversion_value === null ? '—' : '$'.number_format((float) $day->conversion_value, 2) }}</dd></div>
                                    @if ($whaleDay)
                                        <div class="mb-perf-facts-group-label" role="presentation">Whale DB (same day)</div>
                                        <div><dt>Clicks</dt><dd>{{ number_format((int) ($whaleDay['clicks'] ?? 0)) }}</dd></div>
                                        <div><dt>Sum CPC</dt><dd>${{ number_format((float) ($whaleDay['sum_cpc'] ?? 0), 2) }}</dd></div>
                                        <div><dt>Orders</dt><dd>{{ number_format((float) ($whaleDay['orders'] ?? 0), 2) }}</dd></div>
                                        <div><dt>Net revenue</dt><dd>${{ number_format((float) ($whaleDay['net_revenue'] ?? 0), 2) }}</dd></div>
                                    @endif
                                    <div><dt>Payout</dt><dd>{{ $day->payout === null ? '—' : '$'.number_format((float) $day->payout, 2) }}</dd></div>
                                    <div><dt>Platform status</dt><dd>{{ $day->platform_status ?: '—' }}</dd></div>
                                    <div><dt>Delivery</dt><dd>{{ $day->delivery_status ?: '—' }}</dd></div>
                                    <div><dt>Synced</dt><dd>{{ $day->fetched_at?->format('M j, g:i A') ?? '—' }}</dd></div>
                                    @if ($day->last_error)
                                        <div class="is-error"><dt>Sync error</dt><dd>{{ $day->last_error }}</dd></div>
                                    @endif
                                </dl>

                                <div class="mb-perf-hour-block">
                                    <h3 class="mb-perf-hour-title">Hourly breakdown</h3>
                                    @if ($hours->isEmpty())
                                        <p class="mb-perf-hour-empty">
                                            No hourly rows for this day yet. Run
                                            <code>php artisan campaigns:sync-performance --hourly</code>
                                            to backfill hour-level stats.
                                        </p>
                                    @else
                                        <div class="mb-table-wrap">
                                            <table class="mb-table mb-perf-hour-table">
                                                <thead>
                                                    <tr>
                                                        <th>Hour</th>
                                                        <th>Spend</th>
                                                        <th>Impressions</th>
                                                        <th>{{ $adPlatform }} clicks</th>
                                                        <th>CTR</th>
                                                        <th>{{ $adPlatform }} CPC</th>
                                                        <th>Status</th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    @foreach ($hours as $hour)
                                                        <tr>
                                                            <td data-label="Hour">{{ $hour->stat_hour?->format('g:i A') ?? '—' }}</td>
                                                            <td data-label="Spend">${{ number_format((float) $hour->spend, 2) }}</td>
                                                            <td data-label="Impressions">{{ number_format((int) $hour->impressions) }}</td>
                                                            <td data-label="{{ $adPlatform }} clicks">{{ number_format((int) $hour->clicks) }}</td>
                                                            <td data-label="CTR">{{ $hour->ctr === null ? '—' : number_format((float) $hour->ctr * 100, 2).'%' }}</td>
                                                            <td data-label="{{ $adPlatform }} CPC">{{ $hour->cpc === null ? '—' : '$'.number_format((float) $hour->cpc, 2) }}</td>
                                                            <td data-label="Status">
                                                                {{ $hour->platform_status ?: '—' }}
                                                                @if ($hour->last_error)
                                                                    <div class="mb-cell-meta">{{ \Illuminate\Support\Str::limit($hour->last_error, 80) }}</div>
                                                                @endif
                                                            </td>
                                                        </tr>
                                                    @endforeach
                                                </tbody>
                                                <tfoot>
                                                    <tr class="is-hour-total">
                                                        <td data-label="Hour"><strong>Day total</strong></td>
                                                        <td data-label="Spend"><strong>${{ number_format((float) $hours->sum('spend'), 2) }}</strong></td>
                                                        <td data-label="Impressions"><strong>{{ number_format((int) $hours->sum('impressions')) }}</strong></td>
                                                        <td data-label="Clicks"><strong>{{ number_format((int) $hours->sum('clicks')) }}</strong></td>
                                                        <td data-label="CTR" colspan="3">
                                                            <span class="mb-cell-meta">Compared to daily dump above</span>
                                                        </td>
                                                    </tr>
                                                </tfoot>
                                            </table>
                                        </div>
                                    @endif
                                </div>
                            </details>
                        @endforeach
                    </div>

                    <div class="mb-table-foot">
                        <form method="GET" action="{{ route('campaigns.performance.show', [$row['platform'], $row['external_campaign_id']]) }}" class="mb-perf-page-size">
                            <span>Showing <strong>{{ $history->firstItem() }}–{{ $history->lastItem() }}</strong> of <strong>{{ $history->total() }}</strong></span>
                            <select class="mb-select" name="per_page" aria-label="Rows per page" onchange="this.form.submit()">
                                <option value="10" @selected($history->perPage() === 10)>10 / page</option>
                                <option value="25" @selected($history->perPage() === 25)>25 / page</option>
                                <option value="50" @selected($history->perPage() === 50)>50 / page</option>
                            </select>
                        </form>
                        <div class="mb-pager">{{ $history->onEachSide(1)->links() }}</div>
                    </div>
                @endif
            </div>
        </div>
    </div>
    @push('scripts')
        <script>
            document.querySelectorAll('[data-perf-chart]').forEach(function (root) {
                var tip = root.querySelector('.mb-perf-tooltip');
                if (! tip) {
                    return;
                }
                root.querySelectorAll('.mb-perf-hit').forEach(function (hit) {
                    hit.addEventListener('mouseenter', function () {
                        tip.querySelector('[data-tip="label"]').textContent = hit.getAttribute('data-label') || '';
                        tip.querySelector('[data-tip="spend"]').textContent = '$' + (hit.getAttribute('data-spend') || '0');
                        tip.querySelector('[data-tip="clicks"]').textContent = hit.getAttribute('data-clicks') || '0';
                        var cpc = hit.getAttribute('data-cpc') || '—';
                        tip.querySelector('[data-tip="cpc"]').textContent = cpc === '—' ? '—' : '$' + cpc;
                        tip.querySelector('[data-tip="impressions"]').textContent = hit.getAttribute('data-impressions') || '0';
                        tip.hidden = false;
                    });
                    hit.addEventListener('mousemove', function (event) {
                        var box = root.getBoundingClientRect();
                        tip.style.left = Math.min(event.clientX - box.left + 12, box.width - 180) + 'px';
                        tip.style.top = Math.max(8, event.clientY - box.top - 88) + 'px';
                    });
                    hit.addEventListener('mouseleave', function () {
                        tip.hidden = true;
                    });
                });
            });
        </script>
    @endpush
</x-mb-layout>
