/* MragowoBus APEX 13.5.0.12 — Mobile Modal Viewport Fix
   Cel: wszystkie okna dialogowe zawsze startują w widocznym obszarze telefonu. */

:root{
  --mb-mobile-modal-top: max(10px, env(safe-area-inset-top, 0px));
  --mb-mobile-modal-bottom: max(10px, env(safe-area-inset-bottom, 0px));
}

/* Warstwy modalne istniejące w portalu. Nie zmieniamy ich widoczności —
   jedynie geometrię wtedy, gdy ich własny kod je otworzy. */
@media (max-width: 900px){
  .portal-modal,
  .tester-modal,
  .beta-popup,
  .command-palette,
  .mobile-menu-sheet,
  .mbe-modal,
  [data-mb-mobile-overlay="1"]{
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 2147483000 !important;
    box-sizing: border-box !important;
    padding:
      var(--mb-mobile-modal-top)
      max(10px, env(safe-area-inset-right, 0px))
      var(--mb-mobile-modal-bottom)
      max(10px, env(safe-area-inset-left, 0px)) !important;
    align-items: flex-start !important;
    justify-content: center !important;
    place-items: start center !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  /* Wysokie panele mają przewijać się WEWNĄTRZ okna, nie wypychać okna w dół. */
  .portal-modal-panel,
  .tester-panel,
  .beta-popup-card,
  .palette-panel,
  .mobile-menu-panel,
  .mbe-modal-card,
  [role="dialog"][aria-modal="true"],
  [data-mb-mobile-dialog="1"]{
    position: relative !important;
    top: 0 !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 0 auto !important;
    width: min(100%, 760px) !important;
    max-width: 100% !important;
    max-height: calc(100dvh - var(--mb-mobile-modal-top) - var(--mb-mobile-modal-bottom) - 2px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-behavior: auto !important;
    scroll-margin-top: 0 !important;
    box-sizing: border-box !important;
  }

  /* Backdrop zawsze przykrywa cały ekran, ale nie ustala położenia panelu. */
  .portal-modal-backdrop,
  .tester-backdrop,
  .beta-popup-backdrop,
  .palette-backdrop,
  .mobile-menu-backdrop,
  .mbe-modal-backdrop,
  [data-mb-mobile-backdrop="1"]{
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
  }

  /* Formularze logowania/rejestracji i zgód nie mogą startować poniżej ekranu. */
  .account-panel,
  .auth-security-panel,
  .place-panel,
  .market-submit-panel,
  .event-submit-panel,
  .comments-panel,
  .promotion-panel,
  .ad-lead-panel,
  .place-detail-panel{
    align-self: flex-start !important;
  }

  /* Zamknięcie zawsze dostępne u góry podczas przewijania długiego formularza. */
  .portal-modal-close,
  .tester-close,
  .beta-popup-close,
  .mbe-x{
    position: sticky !important;
    top: 0 !important;
    z-index: 8 !important;
    margin-left: auto !important;
  }

  /* Nie pozwalamy, aby stare centrowanie flex/grid przesuwało wysokie okno o połowę wysokości. */
  body.mb-mobile-modal-open{
    overflow: hidden !important;
    overscroll-behavior: none !important;
    touch-action: pan-x pan-y !important;
  }
}

/* Fallback dla starszych Android WebView bez pełnego dvh. */
@supports not (height: 100dvh){
  @media (max-width: 900px){
    .portal-modal,
    .tester-modal,
    .beta-popup,
    .command-palette,
    .mobile-menu-sheet,
    .mbe-modal,
    .cookie-consent,
    .cookie-modal,
    .consent-modal,
    .consent-popup,
    .consent-banner,
    .gdpr-modal,
    .gdpr-banner,
    .rodo-modal,
    .rodo-banner,
    .privacy-modal,
    #cookieConsent,
    #consentModal,
    #gdprModal,
    #rodoModal,
    [data-mb-mobile-overlay="1"]{
      height: var(--mb-vh, 100vh) !important;
    }
    .portal-modal-panel,
    .tester-panel,
    .beta-popup-card,
    .palette-panel,
    .mobile-menu-panel,
    .mbe-modal-card,
    .cookie-consent-card,
    .cookie-modal-card,
    .consent-card,
    .consent-panel,
    .gdpr-card,
    .rodo-card,
    .privacy-card,
    [role="dialog"][aria-modal="true"],
    [data-mb-mobile-dialog="1"]{
      max-height: calc(var(--mb-vh, 100vh) - var(--mb-mobile-modal-top) - var(--mb-mobile-modal-bottom) - 2px) !important;
    }
  }
}
