document.addEventListener('DOMContentLoaded', () => { const tabs = document.querySelectorAll('.tabs .tab'); const contents = document.querySelectorAll('.tab-content'); const validTabs = new Set([...tabs].map(btn => btn.dataset.tab)); function showTab(name) { if (!validTabs.has(name)) name = 'report'; contents.forEach(el => el.style.display = 'none'); tabs.forEach(btn => btn.classList.remove('active')); const content = document.getElementById('tab-' + name); const btn = document.querySelector(`.tabs .tab[data-tab="${name}"]`); if (content) content.style.display = 'block'; if (btn) btn.classList.add('active'); if (name === 'analysis') window.analysisTab?.onTabOpen?.(); if (name === 'planner') window.plannerTab?.onTabOpen?.(); localStorage.setItem('ff14-mitigator-active-tab', name); } tabs.forEach(btn => btn.addEventListener('click', () => showTab(btn.dataset.tab))); window.showTab = showTab; const params = new URLSearchParams(window.location.search); showTab(params.get('tab') || localStorage.getItem('ff14-mitigator-active-tab') || 'report'); });