// ── RESPONSIVE SWITCH ───────────────────────────────────────────────────────── let lastMobile = null; window.addEventListener('resize', () => { const m = isMobile(); if (m !== lastMobile) { lastMobile=m; scrollListenerAdded=false; if (channels.length) renderAll(); } }); window.addEventListener('load', () => { refreshReminderSchedules(); const savedSource = localStorage.getItem('gridtv-active-source'); if (savedSource === 'personal') { const epg = localStorage.getItem('gridtv-personal-epg'); const m3u = ALLOW_PERSONAL_M3U ? (localStorage.getItem('gridtv-personal-m3u') ?? '') : ''; if (epg) { currentEpgUrl = epg; currentM3uUrl = m3u; updateSourceDropdownLabel('✏ Personal EPG'); loadEPG(epg); if (m3u) loadM3U(m3u); return; } } else if (savedSource !== null) { const idx = parseInt(savedSource); const src = EPG_SOURCES[idx]; if (src) { activeSourceIndex = idx; currentEpgUrl = src.epg_url; currentM3uUrl = src.m3u_url ?? ''; if (src) updateSourceDropdownLabel(src.name); } } loadEPG(currentEpgUrl); loadM3U(currentM3uUrl); });