/* V167 - mobiele sidebar/drawer: volledige viewport, bruikbare breedte en vaste accountzone. */
@media (max-width: 767px) {
  :root {
    --lvs-mobile-sidebar-width: min(88vw, 340px);
    --lvs-mobile-sidebar-height: 100dvh;
    --lvs-mobile-sidebar-top: 0px;
  }

  body.lvs-mobile-menu-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  /* React mobile overlay - class-robust: we position the actual sidebar itself. */
  #root .fixed.inset-0.md\:hidden:has(.lvs-sidebar-shell),
  #root .fixed.inset-0.z-40.md\:hidden:has(.lvs-sidebar-shell) {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: var(--lvs-mobile-sidebar-height) !important;
    min-height: var(--lvs-mobile-sidebar-height) !important;
    max-height: var(--lvs-mobile-sidebar-height) !important;
    overflow: hidden !important;
    z-index: 100 !important;
    overscroll-behavior: none !important;
  }

  #root .fixed.inset-0.md\:hidden:has(.lvs-sidebar-shell) > div:has(.lvs-sidebar-shell),
  #root .fixed.inset-0.z-40.md\:hidden:has(.lvs-sidebar-shell) > div:has(.lvs-sidebar-shell) {
    width: var(--lvs-mobile-sidebar-width) !important;
    min-width: var(--lvs-mobile-sidebar-width) !important;
    max-width: var(--lvs-mobile-sidebar-width) !important;
    height: var(--lvs-mobile-sidebar-height) !important;
    min-height: var(--lvs-mobile-sidebar-height) !important;
    max-height: var(--lvs-mobile-sidebar-height) !important;
    overflow: hidden !important;
  }

  #root .fixed.inset-0.md\:hidden .lvs-sidebar-shell,
  #root .fixed.inset-0.z-40.md\:hidden .lvs-sidebar-shell {
    position: fixed !important;
    top: var(--lvs-mobile-sidebar-top) !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    width: var(--lvs-mobile-sidebar-width) !important;
    min-width: var(--lvs-mobile-sidebar-width) !important;
    max-width: var(--lvs-mobile-sidebar-width) !important;
    flex-basis: var(--lvs-mobile-sidebar-width) !important;
    height: var(--lvs-mobile-sidebar-height) !important;
    min-height: var(--lvs-mobile-sidebar-height) !important;
    max-height: var(--lvs-mobile-sidebar-height) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    padding-top: env(safe-area-inset-top, 0px) !important;
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
    transform: none !important;
    box-shadow: 18px 0 45px rgba(15, 23, 42, .24) !important;
  }

  /* Zelfde gedrag voor standalone organisatieportaal. */
  .lvs-standalone-app .sidebar.lvs-sidebar-shell {
    position: fixed !important;
    inset: 0 auto auto 0 !important;
    width: var(--lvs-mobile-sidebar-width) !important;
    min-width: var(--lvs-mobile-sidebar-width) !important;
    max-width: var(--lvs-mobile-sidebar-width) !important;
    flex-basis: var(--lvs-mobile-sidebar-width) !important;
    height: var(--lvs-mobile-sidebar-height) !important;
    min-height: var(--lvs-mobile-sidebar-height) !important;
    max-height: var(--lvs-mobile-sidebar-height) !important;
    padding-top: env(safe-area-inset-top, 0px) !important;
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
    box-sizing: border-box !important;
  }

  /* Header compacter zodat op kleine schermen meer navigatie zichtbaar blijft. */
  #root .lvs-sidebar-shell > :first-child,
  .lvs-standalone-app .sidebar-head {
    min-height: 72px !important;
    padding: 14px 16px !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
  }

  #root .lvs-sidebar-logo,
  .lvs-standalone-app .brand img {
    width: auto !important;
    max-width: min(176px, calc(var(--lvs-mobile-sidebar-width) - 74px)) !important;
    max-height: 46px !important;
    object-fit: contain !important;
  }

  #root .lvs-sidebar-shell button[aria-label="Menu sluiten"],
  .lvs-standalone-app .sidebar-close {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    display: grid !important;
    place-items: center !important;
    flex: 0 0 42px !important;
  }

  /* Alleen dit middendeel scrollt. Header, account en credit blijven bereikbaar. */
  #root .lvs-sidebar-shell > nav,
  .lvs-standalone-app .sidebar.lvs-sidebar-shell > nav {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior-y: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: auto !important;
    padding-top: 12px !important;
    padding-bottom: 16px !important;
    touch-action: pan-y !important;
  }

  #root .lvs-sidebar-shell > nav > div + div {
    margin-top: 14px !important;
  }

  #root .lvs-sidebar-shell .lvs-nav-link,
  .lvs-standalone-app .sidebar.lvs-sidebar-shell .lvs-nav-link {
    min-height: 44px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  /* Accountzone mag nooit worden platgedrukt door een lange navigatie. */
  #root .lvs-sidebar-shell > .lvs-sidebar-account-wrap,
  .lvs-standalone-app .sidebar.lvs-sidebar-shell > .sidebar-bottom {
    flex: 0 0 auto !important;
    min-height: 0 !important;
  }

  #root .lvs-sidebar-shell > .lvs-sidebar-account-wrap {
    padding: 12px 14px 8px !important;
  }

  #root .lvs-sidebar-user-card,
  .lvs-standalone-app .sidebar-user-card {
    min-height: 60px !important;
    padding: 10px 12px !important;
    gap: 10px !important;
  }

  .lvs-innoweb-credit {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 4px 14px 12px !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }
}

@media (max-width: 380px) {
  :root { --lvs-mobile-sidebar-width: 92vw; }
  #root .lvs-sidebar-logo,
  .lvs-standalone-app .brand img { max-width: 162px !important; }
}

@media (max-width: 767px) and (max-height: 620px) {
  #root .lvs-sidebar-shell > :first-child,
  .lvs-standalone-app .sidebar-head {
    min-height: 62px !important;
    padding-block: 9px !important;
  }
  #root .lvs-sidebar-logo,
  .lvs-standalone-app .brand img { max-height: 38px !important; }
  #root .lvs-sidebar-shell > nav,
  .lvs-standalone-app .sidebar.lvs-sidebar-shell > nav {
    padding-top: 8px !important;
    padding-bottom: 10px !important;
  }
  #root .lvs-sidebar-shell > nav > div + div { margin-top: 10px !important; }
  #root .lvs-sidebar-user-card,
  .lvs-standalone-app .sidebar-user-card {
    min-height: 52px !important;
    padding-block: 8px !important;
  }
  .lvs-innoweb-credit { padding-bottom: 8px !important; }
}
