/* =========================
   LESSON SPA (VERTICAL FLOW)
========================= */

/*
    Этот файл содержит ТОЛЬКО стили,
    необходимые для SPA-навигации урока.

    Никаких стилей темы, sidebar и т.д. здесь нет.
*/


/* =========================
   FLOW CONTAINER
========================= */

/* контейнер "склеенных" страниц во время перехода */
.lesson-flow {
    position: relative;
    width: 100%;
}


/* временные страницы (текущая + новая) */
.lesson-page {
    width: 100%;
}


/* =========================
   STATE: LOADING
========================= */

/* блокируем клики во время анимации */
#main.is-loading {
    pointer-events: none;
}


/* =========================
   SCROLL BEHAVIOR
========================= */

/* плавный нативный скролл */
html {
    scroll-behavior: smooth;
}


/* =========================
   ANIMATION ISOLATION
========================= */

/*
    Отключаем любые анимации темы,
    которые могут ломать SPA-переход
*/
body.lesson-animating .content-area,
body.lesson-animating .main-content {
    transform: none !important;
    opacity: 1 !important;
    transition: none !important;
}


/* =========================
   STABILITY FIXES
========================= */

/* защита от layout-скачков */
.entry-content {
    position: relative;
}


.lesson-viewport {
    position: relative;
}


.cache-loader-spinner {  position: absolute;  top: 50%;  left: 50%;  transform: translate(-50%, -50%);  width: 50px;  height: 50px;  border: 4px solid rgba(0, 0, 0, 0.1);  border-top: 4px solid #333;  border-radius: 50%;  animation: spin 1s linear infinite;  z-index: 9999;  pointer-events: auto; /* блокирует клики */}
@keyframes spin {  to { transform: translate(-50%, -50%) rotate(360deg); }}