:root {
  --pm-viewport-height: 100vh;
  --pm-visual-viewport-height: 100vh;
  --pm-safe-top: env(safe-area-inset-top, 0px);
  --pm-safe-right: env(safe-area-inset-right, 0px);
  --pm-safe-bottom: env(safe-area-inset-bottom, 0px);
  --pm-safe-left: env(safe-area-inset-left, 0px);
}

@supports (height: 100dvh) {
  :root {
    --pm-viewport-height: 100dvh;
    --pm-visual-viewport-height: 100dvh;
  }
}

html.pm-has-visual-viewport {
  --pm-viewport-height: var(--pm-visual-viewport-height);
}

html.pm-is-webkit {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html.pm-is-webkit,
html.pm-is-webkit body {
  min-height: var(--pm-viewport-height);
}

html.pm-is-webkit body {
  padding-right: var(--pm-safe-right);
  padding-left: var(--pm-safe-left);
  overscroll-behavior-x: none;
}

html.pm-is-webkit input,
html.pm-is-webkit select,
html.pm-is-webkit textarea {
  font-size: 16px;
}

html.pm-is-webkit .manage-header,
html.pm-is-webkit .manage-nav,
html.pm-is-webkit .manage-modal,
html.pm-is-webkit .manage-kpi-overlay {
  transform: translateZ(0);
  backface-visibility: hidden;
}

html.pm-is-webkit .manage-kpi-overlay-panel {
  backface-visibility: hidden;
}

html.pm-is-webkit .manage-nav,
html.pm-is-webkit .manage-table-wrap,
html.pm-is-webkit .manage-modal-dialog,
html.pm-is-webkit .manage-kpi-overlay-body,
html.pm-is-webkit [class*="scroll"] {
  -webkit-overflow-scrolling: touch;
}

@supports (-webkit-touch-callout: none) {
  html.pm-is-webkit .manage-main {
    min-height: var(--pm-viewport-height);
  }

  html.pm-is-webkit .manage-nav {
    height: var(--pm-viewport-height);
    padding-bottom: max(18px, var(--pm-safe-bottom));
  }

  html.pm-is-webkit .manage-modal-dialog,
  html.pm-is-webkit .manage-kpi-overlay-panel {
    max-height: calc(var(--pm-viewport-height) - max(24px, var(--pm-safe-top)) - max(24px, var(--pm-safe-bottom)));
  }
}

