604fa7ac0b
Ссылки exam-prep (/exam-prep/*) скрывались отдельным async-механизмом (/api/exam-prep/ tracks), не входящим в синхронный кэш-CSS → мелькали на долю секунды после обновления. Теперь hideDisabledFeatures кэширует точные хрефы скрытых треков в localStorage (ls_examhide), а _applyFeatureCss добавляет их в инъект-CSS синхронно из кэша на ранней загрузке (до сборки сайдбара). При включении трека он убирается из кэша → снова виден (re-apply _applyFeatureCss после свежего fetch). hideEmptySidebarGroups перенесён в конец hideDisabledFeatures (учитывает скрытие exam-prep). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>