/**
 * Mobile / WebView foundation: viewport units, safe-area, page chrome.
 * Загружается после design-system.css
 */

:root {
  --ds-safe-top: env(safe-area-inset-top, 0px);
  --ds-safe-bottom: env(safe-area-inset-bottom, 0px);
  --ds-safe-left: env(safe-area-inset-left, 0px);
  --ds-safe-right: env(safe-area-inset-right, 0px);
  --siteapp-compact-header-h: 3.25rem;
  /* Единая «высота экрана» для расчётов (svh стабильнее vh в мобильном WebView) */
  --ds-vh-stable: 100svh;
}

@supports (height: 100dvh) {
  :root {
    --ds-vh-stable: 100dvh;
  }
}

/* Компактная шапка в WebView: вырез / статус-бар, липнет к верху при прокрутке */
html.siteapp-webview .app-topnav--compact {
  position: sticky;
  top: 0;
  z-index: var(--ds-z-sticky-page, 1010);
  padding-top: var(--ds-safe-top);
  padding-left: max(var(--ds-space-2), var(--ds-safe-left));
  padding-right: max(var(--ds-space-2), var(--ds-safe-right));
}

html.siteapp-webview .app-topnav-compact-inner {
  min-height: calc(48px + env(safe-area-inset-top, 0px));
}

/* Основной контент: горизонтальный safe-area в браузере на устройствах с закруглениями */
@media (max-width: 991.98px) {
  html:not(.siteapp-webview) main.container-page {
    padding-left: max(var(--ds-space-3), var(--ds-safe-left), var(--ds-space-4));
    padding-right: max(var(--ds-space-3), var(--ds-safe-right), var(--ds-space-4));
  }
}

/* Минимальная высота для полноэкранных слоёв без голого 100vh */
.ds-mobile-min-screen {
  min-height: 100svh;
  min-height: 100dvh;
}

/* Chrome / Yandex / Opera / Safari: без pull-to-refresh на AJAX-страницах */
@media (max-width: 991.98px) {
  html.siteapp-no-pull-refresh,
  html.siteapp-chat-page {
    overscroll-behavior-y: none;
  }

  html.siteapp-no-pull-refresh body {
    overscroll-behavior-y: none;
  }
}
