loadSurah method
تحميل سورة محددة Load specific surah
Implementation
Future<void> loadSurah(int surahNumber) async {
  try {
    isLoading(true);
    // شرح: إعادة تعيين البيانات السابقة
    // Explanation: Reset previous data
    resetData();
    _surahNumber = surahNumber;
    // شرح: التأكد من تحميل القرآن الكامل أولاً
    // Explanation: Ensure full Quran is loaded first
    final quranCtrl = QuranCtrl.instance;
    if (quranCtrl.staticPages.isEmpty) {
      await quranCtrl.loadQuranDataV1();
    }
    // شرح: فلترة آيات السورة المطلوبة
    // Explanation: Filter required surah ayahs
    final selectedSurahAyahs = quranCtrl.ayahs
        .where((ayah) => ayah.surahNumber == surahNumber)
        .toList();
    log('Loading surah $surahNumber, found ${selectedSurahAyahs.length} ayahs',
        name: 'SurahCtrl');
    if (selectedSurahAyahs.isEmpty) {
      log('No ayahs found for surah $surahNumber', name: 'SurahCtrl');
      isLoading(false);
      return;
    }
    surahAyahs.assignAll(selectedSurahAyahs);
    // شرح: إنشاء معلومات السورة
    // Explanation: Create surah information
    currentSurah.value = _createSurahModel(selectedSurahAyahs.first);
    // شرح: تقسيم آيات السورة إلى صفحات باستخدام نفس منطق QuranCtrl
    // Explanation: Divide surah ayahs into pages using the same logic as QuranCtrl
    await _createSurahPages(selectedSurahAyahs);
    log('Created ${surahPages.length} pages for surah $surahNumber',
        name: 'SurahCtrl');
    isLoading(false);
    update();
  } catch (e) {
    log('Error loading surah: $e', name: 'SurahCtrl');
    isLoading(false);
  }
}