String generateVerifier([Random? rng]) { final r = rng ?? Random.secure(); final bytes = List<int>.generate(48, (_) => r.nextInt(256)); return _b64url(bytes); }