/* ═══════════════════════════════════════════════════════════════════════════
   app-views.css — вкладки приложения (static/js/app-views.js).
   ═══════════════════════════════════════════════════════════════════════════ */

/* Область вкладок: между шапкой и нижним меню. Отступы ставит скрипт. */
.app-views {
  position: fixed;
  left: 0; right: 0; top: 0; bottom: 0;
  z-index: 1020;                 /* под шапкой (1030) и меню (2000) */
  overflow: hidden;              /* фона нет: при въезде вкладки под ней видно расписание */
}
/* Без открытой вкладки область невидима, но не display: none (атрибут
   hidden): тогда рамки не разложены, и каждый переход с расписания
   раскладывал все пять разом (~60 мс задержки на телефоне). Касания
   проходят к расписанию. */
.app-views { pointer-events: none; }
.app-views.is-idle { visibility: hidden; }
.app-view {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  border: 0;
  background: var(--bg);
  visibility: hidden;            /* скрытая рамка уже разложена — показ мгновенный */
  pointer-events: none;
}
.app-view.is-shown { visibility: visible; pointer-events: auto; z-index: 1; }
.app-view.is-buffer { visibility: hidden; }
/* Уходящий экран виден под приходящим, пока тот проявляется (app-views.js). */
.app-view.is-outgoing { visibility: visible; z-index: 0; }
.app-view-skeleton {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: var(--bg);
  z-index: 2;                    /* над рамкой своего раздела */
  transition: opacity var(--dur) var(--ease-out);
}
.app-view-skeleton.is-leaving { opacity: 0; }
.app-view-skeleton.is-hidden:not(.is-outgoing) { display: none; }
.app-view-skeleton.is-outgoing { z-index: 0; }

/* Шапка — над вкладкой: её меню (колокольчик, ☰) раскрываются поверх.
   Без position z-index не действует. */
.view-open .app-top { position: relative; }

/* Прокрутка вкладки не переходит на расписание под ней. Раньше для
   этого у страницы снималась прокрутка (overflow: hidden), но это
   меняло область просмотра, и все пять рамок раскладывались заново при
   каждом переходе с расписания (~60 мс на телефоне). */
.embedded, .embedded body { overscroll-behavior: contain; }

/* Страница внутри рамки: без своей шапки, меню и номера версии — их
   показывает приложение. Класс ставит base.html до отрисовки. */
.embedded .app-top, .embedded .mobile-nav, .embedded .app-version { display: none !important; }
.embedded body { padding-bottom: var(--sp-3) !important; }
