{{ t('gamification.leaderboard.subtitle') }}
\n{{ t('gamification.leaderboard.load_error') }}
\n \n{{ t('gamification.leaderboard.empty') }}
\n| # | \n{{ t('gamification.leaderboard.col_user') }} | \n{{ t('gamification.leaderboard.col_email') }} | \n{{ t('gamification.leaderboard.col_xp') }} | \n{{ t('gamification.leaderboard.col_level') }} | \n{{ t('gamification.leaderboard.col_points') }} | \n{{ t('gamification.leaderboard.col_social') }} | \n{{ t('gamification.leaderboard.col_penalty') }} | \n{{ t('gamification.leaderboard.col_restriction') }} | \n{{ t('gamification.leaderboard.col_discoveries') }} | \n{{ t('gamification.leaderboard.col_services') }} | \n{{ t('gamification.leaderboard.col_updated') }} | \n{{ t('gamification.leaderboard.col_actions') }} | \n
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| \n \n {{ entry.rank }}\n \n | \n\n \n\n \n \n \n {{ getInitials(entry.user_name) }}\n \n {{ entry.user_name }}\n | \n\n \n {{ entry.user_email || '—' }} | \n\n \n\n \n \n {{ formatNumber(entry.total_xp) }}\n \n | \n\n \n \n \n {{ entry.current_level }}\n \n | \n\n \n{{ formatNumber(entry.total_points) }} | \n\n \n{{ formatNumber(entry.social_points) }} | \n\n \n\n 0\" class=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-rose-500/10 text-rose-400 border border-rose-500/20\">\n -{{ entry.penalty_points }}\n \n —\n | \n\n \n\n 0\" class=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-amber-500/10 text-amber-400 border border-amber-500/20\">\n {{ restrictionLabel(entry.restriction_level) }}\n \n —\n | \n\n \n{{ entry.places_discovered }} | \n\n \n{{ entry.services_submitted }} | \n\n \n{{ entry.updated_at ? formatDateTime(entry.updated_at) : '—' }} | \n\n \n\n | \n