/* ============================================================
   becker-fullscreen.css — единый каркас полноэкранности BECKER
   Подключать ПОСЛЕ остальных стилей файла (перекрывает высоты).
   Работает в паре с becker-fullscreen.js (Telegram expand + dvh).
   ============================================================ */

:root{
  /* высота вьюпорта: js прокидывает сюда стабильную высоту Telegram,
     иначе — динамическая dvh. Используй var(--app-vh) для «на весь экран». */
  --app-vh: 100vh;
  --app-vh: 100dvh;
  --safe-top:    env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left:   env(safe-area-inset-left, 0px);
  --safe-right:  env(safe-area-inset-right, 0px);
}

/* растянуть корень на всю доступную высоту без «резинки» и белых полос */
html, body{
  min-height:100vh;
  min-height:100dvh;
}
body{
  overscroll-behavior-y:none;   /* убирает белую полосу при оттягивании */
}

/* безопасные зоны: под «чёлку»/Dynamic Island сверху и home-indicator снизу.
   Классы аддитивны — добавляют инсет поверх текущих отступов элемента. */
.safe-top{
  padding-top:calc(env(safe-area-inset-top, 0px) + var(--safe-top-extra, 0px));
}
.safe-bottom{
  padding-bottom:calc(env(safe-area-inset-bottom, 0px) + var(--safe-bottom-extra, 0px));
}

/* плавающие снизу элементы (кнопки, помощник Бекс) не должны залезать под home-indicator */
.safe-bottom-fixed{
  bottom:calc(env(safe-area-inset-bottom, 0px) + var(--safe-bottom-gap, 12px)) !important;
}
