/* A Grund Társulat — Android scroll stabilizálás v6.9.2
   Cél: Android Chrome/PWA alatt ne maradjon beragadva a teljes oldal görgetése
   menü, téma-animáció, billentyűzet vagy modal használata után. */

html {
  min-height: 100%;
  height: auto !important;
  overflow-x: hidden;
  overflow-y: auto !important;
  overscroll-behavior-y: auto;
  touch-action: pan-y pinch-zoom;
  -webkit-text-size-adjust: 100%;
}

body.app-page,
body.auth-page {
  min-height: 100%;
  height: auto !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  overscroll-behavior-y: auto !important;
  touch-action: pan-y pinch-zoom !important;
}

.app-shell,
.page-column,
.page-content {
  height: auto !important;
  max-height: none;
}

/* A drawer háttere önmagában elnyeli az érintést, ezért a teljes BODY
   lezárása Androidon felesleges és bizonyos készülékeken beragadhat. */
@media (max-width: 850px) {
  body.app-page.sidebar-open {
    overflow-y: visible !important;
    touch-action: pan-y pinch-zoom !important;
  }

  body.app-page.sidebar-open .sidebar,
  body.app-page.sidebar-open .side-nav {
    touch-action: pan-y !important;
  }

  body.app-page .sidebar-backdrop {
    touch-action: manipulation !important;
  }

  .side-nav {
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
}

/* A nyitóanimáció alatt szándékosan lezárjuk a hátteret. */
body.app-page.theme-opening-active {
  overflow: hidden !important;
  touch-action: none !important;
}

/* Ha a JS a mobil billentyűzet miatt átmeneti osztályt használ,
   attól még a dokumentum függőleges görgetése maradjon elérhető. */
body.app-page.city-keyboard-open:not(.theme-opening-active) {
  overflow-y: visible !important;
  touch-action: pan-y pinch-zoom !important;
}

/* Láthatatlan overlay ne foghasson érintést. */
.sidebar-backdrop:not(.is-active),
[hidden] {
  pointer-events: none;
}

body.sidebar-open .sidebar-backdrop {
  pointer-events: auto;
}

/* A valóban megnyitott dialogok saját scrollt kaphatnak. */
[role="dialog"]:not([hidden]),
.modal:not([hidden]),
[data-new-chat-modal]:not([hidden]),
[data-info-modal]:not([hidden]) {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* Android/PWA: a touch görgetéshez ne legyen globális none az oldal tartalmán. */
.page-column,
.page-content,
.panel,
.card,
.dashboard-grid,
.personal-dashboard,
.personal-dashboard-shell {
  touch-action: pan-y pinch-zoom;
}

/* A játékterek megtarthatják a saját gesztuskezelésüket. */
canvas,
.flappy-canvas,
.city-game-stage,
[data-game-stage] {
  touch-action: none;
}
