8a5ce82afa
El nivel/rango usaba el saldo de PD actual, que baja al gastar. Ahora se basa en el total donado = suma de pagos confirmados (Stripe mode test/live + SumUp), convertidos a PD (amount * 100). Cuenta todas las pasarelas y donaciones mixtas y no baja al gastar PD. Se usa max(donatedPD, saldo) para no rebajar el rango a nadie (p.ej. PD de promo). getAccountDashboard expone donatedPD. Verificado: cuenta 15 con €43 en pagos -> Nivel 11 aunque el saldo sea 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>