/* Mobile navigation hardening.
   This file is intentionally loaded after the rest of the application styles so
   later visual layers cannot accidentally hide the authenticated navigation. */

@media (max-width: 900px) {
  #app:not(.hidden) {
    display: block !important;
    min-height: 100dvh;
  }

  #app:not(.hidden) #side.side {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 140 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  #app:not(.hidden) #side .mobile-side-head {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 142 !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 62px !important;
    padding: calc(9px + env(safe-area-inset-top, 0px)) 12px 9px !important;
    pointer-events: auto !important;
  }

  #app:not(.hidden) #mobilemenu.mobile-menu {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 144 !important;
    min-width: 46px !important;
    width: 46px !important;
    min-height: 46px !important;
    height: 46px !important;
    padding: 11px !important;
    place-content: center !important;
    gap: 4px !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }

  #app:not(.hidden) #mobilemenu.mobile-menu span {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 20px !important;
    height: 2px !important;
    border-radius: 999px !important;
  }

  #app:not(.hidden) #side .nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 141 !important;
    width: 100% !important;
    max-height: calc(100dvh - 62px - env(safe-area-inset-bottom, 0px)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
  }

  #app:not(.hidden) #side.menu-open .nav {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  #app:not(.hidden) #side .nav button {
    min-height: 46px !important;
    touch-action: manipulation !important;
  }

  /* Modals must always sit above the navigation sheet. */
  #ov.overlay {
    z-index: 320 !important;
  }
}
