/* Shared behavior contract. Feature CSS may style surfaces, never their viewport geometry. */
:root {
  --payhot-toast-z: 2147482990;
}

html.payhot-overlay-open,
body.payhot-overlay-open {
  overflow: hidden;
}

[data-payhot-overlay-panel] .payhot-dropdown-menu.is-portal {
  z-index: calc(var(--payhot-modal-panel-z, 2147483010) + 10);
}

[data-payhot-overlay-panel] .payhot-dropdown-dismiss.is-portal {
  z-index: calc(var(--payhot-modal-panel-z, 2147483010) + 9);
}

/* A portal menu is measured from the source control; it must never re-enter page flow. */
.payhot-dropdown-menu.is-portal {
  position: fixed;
  left: var(--payhot-dropdown-left, 0);
  top: var(--payhot-dropdown-top, 0);
  width: var(--payhot-dropdown-width, 100%);
  min-width: var(--payhot-dropdown-width, 100%);
  max-width: var(--payhot-dropdown-width, 100%);
  max-height: var(--payhot-dropdown-max-height, min(360px, calc(100dvh - 24px)));
}

/* Field mode keeps a short page-filter menu in the control's own geometry. */
.payhot-dropdown-menu.is-field-anchored {
  position: absolute;
  top: calc(100% + 8px);
  right: auto;
  bottom: auto;
  left: 0;
  width: 100%;
  min-width: 100%;
  max-width: 100%;
  z-index: var(--payhot-dropdown-field-layer, 1000);
}
