/**
 * Cross-site mobile polish — account menu, header search, safe areas.
 * Avoid global layout breakers (no blanket img / body overflow rules).
 *
 * Account + search panels are fixed under the sticky header so they open
 * next to the control the user tapped (not at the bottom of the screen).
 * v20260829a — #3569 phone extras on public static pages
 */

@media (max-width: 900px) {
  .dropdown-toggle.account-dropdown-toggle {
    min-height: 44px;
    min-width: 44px;
  }

  /* Keep Bootstrap dropdown parent from clipping the fixed panel */
  .account-utilities.nav-right > .dropdown {
    position: static;
  }
}

@media (max-width: 640px) {
  /*
   * Account menu: full-bleed sheet under the header.
   * Override Bootstrap absolute + any bottom-anchored rules.
   */
  .pb-acct-menu.dropdown-menu,
  .account-dropdown-menu.pb-acct-menu,
  .account-utilities .dropdown-menu {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    top: calc(56px + env(safe-area-inset-top, 0px) + 8px) !important;
    bottom: auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
    float: none !important;
    max-height: min(70dvh, calc(100dvh - 56px - env(safe-area-inset-top, 0px) - 72px - env(safe-area-inset-bottom, 0px)));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    z-index: 10060;
    border-radius: 16px !important;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18) !important;
  }

  .pb-acct-head {
    padding: 16px !important;
  }

  .pb-acct-menu > li > a,
  .account-dropdown-menu > li > a {
    min-height: 44px;
    padding: 12px 16px !important;
  }

  /* Header search panel: same top anchor as account menu */
  .pb-header-search-panel {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
    top: calc(56px + env(safe-area-inset-top, 0px) + 8px) !important;
    bottom: auto !important;
    max-height: min(75dvh, calc(100dvh - 56px - env(safe-area-inset-top, 0px) - 72px - env(safe-area-inset-bottom, 0px)));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    z-index: 10055;
  }

  .pb-header-search.is-open .pb-header-search-shell {
    width: min(100%, 72vw) !important;
  }

  /* #3569 slim: public static marketing pages */
  .pb-static-page,
  .pb-static-page.pb-wide {
    padding: 12px 12px 48px !important;
  }
  .pb-static-page .pb-static-hero,
  .pb-static-page .pb-about-hero,
  .pb-static-page .pb-privacy-hero,
  .pb-static-page .pb-terms-hero {
    padding: 20px 16px !important;
    margin-bottom: 16px !important;
    border-radius: 14px !important;
  }
  .pb-static-page .pb-static-hero::after,
  .pb-static-page .pb-about-hero::after {
    display: none !important;
  }
  .pb-static-page .pb-static-hero-badge,
  .pb-static-page .pb-privacy-hero-badge,
  .pb-static-page .pb-terms-hero-badge,
  .pb-static-page .pb-about-hero .pb-static-hero-badge,
  .pb-static-page .pb-about-hero .pills,
  .pb-static-page .pb-privacy-sidebar,
  .pb-static-page .pb-terms-sidebar,
  .pb-static-page .pb-privacy-btn-outline,
  .pb-static-page .pb-terms-btn--outline {
    display: none !important;
  }
  .pb-static-page .pb-about-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 0 0 16px !important;
  }
  .pb-static-page .pb-about-cta {
    padding: 16px !important;
    margin-top: 20px !important;
  }
}

@media (max-width: 420px) {
  .pb-header-search.is-open .pb-header-search-shell {
    width: min(100%, 58vw) !important;
  }
}

/* Contain overflow only on known wide modules — not whole site */
@media (max-width: 960px) {
  .pb-tool-main,
  .pb-tools-main,
  .pb-account-main,
  #common-home .pb-home-section {
    max-width: 100%;
    overflow-x: auto;
  }
}

@supports (padding: max(0px)) {
  .top-nav-inner {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
}
