@media (max-width: 767px), (pointer: coarse) and (max-device-width: 767px), (pointer: coarse) and (max-device-height: 767px) {
  /* Only the list extends its background behind the browser chrome. A leaving
     list must not extend the height of an incoming chat or profile. */
  html:root:not(#nx-transition-disabled):not(#nx-transition-disabled):not(#nx-transition-disabled):not(#nx-transition-disabled):not(#nx-transition-disabled) .app-mobile-layout--app:has(.tm-shell[data-nexti-mobile-view="chat"]),
  html:root:not(#nx-transition-disabled):not(#nx-transition-disabled):not(#nx-transition-disabled):not(#nx-transition-disabled):not(#nx-transition-disabled) .app-mobile-layout--app:has(.tm-shell[data-nexti-mobile-view="info"]) {
    bottom: auto !important;
    height: var(--nexti-app-viewport-height, 100dvh) !important;
    max-height: var(--nexti-app-viewport-height, 100dvh) !important;
  }
  html:root .app-mobile-layout--app .tm-shell[data-nexti-mobile-view] { position: relative; }
  html:root .app-mobile-layout--app .tm-shell > .tm-mobile-chats.nexti-mobile-list-leave-active {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    flex: none !important;
    /* Keep Vue's unmount lifecycle; only remove the obsolete screen's paint. */
    visibility: hidden !important;
    pointer-events: none !important;
  }
  /* WAAPI entrance effects otherwise override the component's normal opacity:0
     and can show messages through its initial loading skeleton. */
  html:root .app-mobile-layout--app .tg-chat-container.is-initial-loading .tg-chat-container__scroll {
    opacity: 0 !important;
    pointer-events: none !important;
  }
  /* Vue can keep the skeleton mounted during its leave animation. Once the
     timeline is ready, that old skeleton must no longer paint over messages. */
  html:root .app-mobile-layout--app .tg-chat-container:not(.is-initial-loading) .tg-chat-container__initial-skeleton {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}
