'use strict'; const { user, isTeacher, isAdmin } = LS.initPage(); window._simQuizAllowed = true; // default; overridden after permission fetch for students LS.showBoardIfAllowed(); /* ════════════════════════════════ SIM CATALOGUE (defined after P_* consts below) ════════════════════════════════ */ let _catFilter = 'all'; var _disabledSimIds = new Set(); let _simModuleDisabled = false; function filterSims(cat, btn) { _catFilter = cat; document.querySelectorAll('.lab-filter').forEach(b => b.classList.remove('active')); btn.classList.add('active'); renderSims(); } function renderSims() { const base = _catFilter === 'all' ? SIMS : SIMS.filter(s => s.cat === _catFilter); const list = base.filter(s => !s.id || !_disabledSimIds.has(s.id)); document.getElementById('sim-grid').innerHTML = list.map(s => `