/* Shared window policy. Keep modal focus, dismissal and permission behavior.
   Overlay shells stay in place; only their visual mask is removed. */
:root {
  --hendar-dialog-gap: clamp(8px, 1.5vw, 20px);
  --hendar-dialog-width-limit: min(64rem, calc(100vw - 2 * var(--hendar-dialog-gap)));
  --hendar-dialog-height-limit: min(86dvh, calc(100dvh - 2 * var(--hendar-dialog-gap) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)));
}

#modalBackdrop.modal-backdrop,
.modal-backdrop,
.hr-suite-drawer-layer,
.hr-suite-drawer-layer .hr-suite-drawer-backdrop,
.cpay-dialog-layer,
.notification-overlay,
.sidebar-overlay,
.employee-payroll-discard-prompt,
#requestDraftCenterV0948,
.hendar-chat-widget-v084 .hcw-scrim {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
dialog::backdrop {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#modalBackdrop.modal-backdrop,
.hr-suite-drawer-layer,
.hr-suite-drawer-layer.payroll-create,
.cpay-dialog-layer {
  box-sizing: border-box;
  padding: var(--hendar-dialog-gap) !important;
  padding-block: max(var(--hendar-dialog-gap), env(safe-area-inset-top, 0px)) max(var(--hendar-dialog-gap), env(safe-area-inset-bottom, 0px)) !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Both logical and physical dimensions override older mobile full-screen rules.
   No display override: hidden dialogs and inactive drawers remain hidden. */
#modalBackdrop.modal-backdrop > .modal,
.modal-backdrop > .modal,
.cpay-dialog-layer > .cpay-dialog,
.hr-suite-drawer-layer .hr-suite-drawer,
.hr-suite-drawer-layer.payroll-create .hr-suite-drawer,
dialog.eqv89-dialog,
#requestDraftCenterV0948 > section,
.employee-payroll-discard-prompt > div {
  box-sizing: border-box !important;
  width: fit-content !important;
  inline-size: fit-content !important;
  min-width: min(24rem, calc(100vw - 2 * var(--hendar-dialog-gap))) !important;
  min-inline-size: min(24rem, calc(100vw - 2 * var(--hendar-dialog-gap))) !important;
  max-width: var(--hendar-dialog-width-limit) !important;
  max-inline-size: var(--hendar-dialog-width-limit) !important;
  height: auto !important;
  block-size: auto !important;
  min-height: 0 !important;
  min-block-size: 0 !important;
  max-height: var(--hendar-dialog-height-limit) !important;
  max-block-size: var(--hendar-dialog-height-limit) !important;
  margin: auto !important;
  border: 1px solid var(--ds-border, #cbd5e1) !important;
  border-radius: 16px !important;
  overflow: auto !important;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 10px 30px rgb(15 23 42 / 18%) !important;
}

:is(.dropdown-menu, [role="menu"], [popover], .hr-suite-action-menu > div, .eqv89-action-menu > div) {
  height: auto !important;
  min-height: 0 !important;
  max-height: var(--hendar-dialog-height-limit) !important;
  max-width: calc(100vw - 16px) !important;
  overflow-y: auto;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* A single window scroll surface: short forms shrink, long forms remain intact. */
#modalBackdrop.modal-backdrop > .modal > *,
.cpay-dialog-layer > .cpay-dialog > *,
.hr-suite-drawer-layer .hr-suite-drawer > * {
  flex-shrink: 0 !important;
  min-inline-size: 0;
}
#modalBackdrop.modal-backdrop > .modal > :is(form, .modal-body, .modal-content, .theme-studio-body, .purchase-review-content, .notification-details-content),
.cpay-dialog-layer .cpay-dialog-body,
.hr-suite-drawer-layer .hr-suite-drawer form,
.hr-suite-drawer-layer .hr-suite-drawer-fields,
dialog.eqv89-dialog .eqv89-dialog-card,
dialog.eqv89-dialog .eqv89-dialog-body {
  height: auto !important;
  block-size: auto !important;
  min-height: 0 !important;
  min-block-size: 0 !important;
  max-height: none !important;
  max-block-size: none !important;
  overflow: visible !important;
}
#modalBackdrop.modal-backdrop > .modal > .modal-header {
  padding: 12px 16px !important;
  gap: 12px;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
#modalBackdrop.modal-backdrop > .modal > .modal-header > div { min-inline-size: 0; }
#modalBackdrop.modal-backdrop > .modal .form-actions {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
#modalBackdrop.modal-backdrop > .modal :is(h2, h3, p, label, strong, dd) { overflow-wrap: anywhere; }
#modalBackdrop.modal-backdrop > .modal :is(input:not([type=checkbox]):not([type=radio]), select, textarea) {
  min-inline-size: 0;
  max-inline-size: 100%;
  box-sizing: border-box;
}
#modalBackdrop.modal-backdrop > .modal :is(.form-grid, .workflow-entity-fields, .purchase-review-summary) > * { min-inline-size: 0; }

/* Independently mounted notification, draft and chat windows follow the cap. */
#notificationDrawer.notification-drawer, .notification-drawer {
  top: max(8px, env(safe-area-inset-top, 0px));
  height: auto !important;
  min-height: 0 !important;
  max-height: var(--hendar-dialog-height-limit) !important;
  max-width: calc(100vw - 16px) !important;
  border-radius: 14px;
  overflow: auto;
}
#requestDraftCenterV0948 > section > [data-request-draft-center-list] { min-height: 0; }
.hendar-chat-widget-v084.hendar-chat-widget-v084 .hcw-drawer {
  height: auto !important;
  min-height: 0 !important;
  max-height: var(--hendar-dialog-height-limit) !important;
  min-width: 0 !important;
  max-width: calc(100vw - 16px) !important;
  border-radius: 16px !important;
  overflow: auto !important;
}
.hendar-chat-widget-v084 .hcw-chat-panel,
.hendar-chat-widget-v084 .hcw-chat-layout,
.hendar-chat-widget-v084 .hcw-conversation,
.hendar-chat-widget-v084 .hcw-support-panel { height: auto !important; }
.hendar-chat-widget-v084 .hcw-messages { max-height: 40dvh; }
.hendar-chat-widget-v084 .hcw-drawer-header {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Payment: the required amount, date and proof are visible together.
   Receipt transcription remains optional and never gates saving. */
#modalBackdrop.modal-backdrop > #purchasePaymentExecutionModal { --hendar-dialog-width-limit: min(46rem, calc(100vw - 2 * var(--hendar-dialog-gap))); }
#purchasePaymentExecutionForm { gap: 12px; padding: 16px; }
#purchasePaymentExecutionForm .payment-type-selector { gap: 8px; }
#purchasePaymentExecutionForm .payment-type-card { padding: 9px 12px; min-height: 0; }
#purchasePaymentExecutionForm .purchase-execution-context { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0; }
#purchasePaymentExecutionForm .purchase-execution-context > div { padding: 8px 10px; min-height: 0; }
#purchasePaymentExecutionForm .purchase-execution-context .context-wide { grid-column: 1 / -1; }
#purchasePaymentExecutionForm .payment-confirmations { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
#purchasePaymentExecutionForm .payment-confirmations label { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
#purchasePaymentExecutionForm .payment-confirmations input { position: static; flex: 0 0 auto; margin-top: .4em; }
#purchasePaymentExecutionForm .payment-optional { border: 1px solid var(--ds-border, #cbd5e1); border-radius: 10px; padding: 10px 12px; }
#purchasePaymentExecutionForm .payment-optional > summary { cursor: pointer; font-weight: 700; }
#purchasePaymentExecutionForm .payment-optional > .form-grid { padding: 12px 0 0; }
#purchasePaymentExecutionForm .payment-inline-status { margin: 0; padding: 10px 12px; border: 1px solid currentColor; border-radius: 8px; overflow-wrap: anywhere; }
#purchasePaymentExecutionForm .payment-inline-status[data-kind=error] { color: #a62121; background: #fff5f5; }
#purchasePaymentExecutionForm .payment-inline-status[data-kind=progress] { color: #124b70; background: #f0f7fc; }
#purchasePaymentExecutionForm .form-actions { gap: 10px; padding: 10px 0 0; }
#purchaseReviewRecordActions { padding: 10px 16px; display: flex; flex-wrap: wrap; gap: 8px; }
#purchaseReviewRecordActions > button { flex: 0 1 auto; min-width: 0; }
.purchase-live-action { margin-block: 0 12px; }
.purchase-live-action > button { white-space: normal; }

@media (max-width: 600px) {
  #modalBackdrop.modal-backdrop > .modal > .modal-header { padding: 10px 12px !important; }
  #modalBackdrop.modal-backdrop > .modal :is(.form-grid, .workflow-entity-fields, .purchase-review-summary) { grid-template-columns: minmax(0, 1fr); }
  #purchasePaymentExecutionForm { padding: 12px; }
  #purchasePaymentExecutionForm .payment-type-selector,
  #purchasePaymentExecutionForm .payment-confirmations { grid-template-columns: minmax(0, 1fr); }
  #purchasePaymentExecutionForm .purchase-execution-context { grid-template-columns: minmax(0, 1fr); }
  #purchaseReviewRecordActions > button { flex: 1 1 12rem; white-space: normal; }
}
@media (max-width: 760px) {
  .hendar-chat-widget-v084.hendar-chat-widget-v084 .hcw-drawer {
    inset-inline: 8px !important;
    bottom: max(8px, env(safe-area-inset-bottom, 0px)) !important;
    width: calc(100vw - 16px) !important;
  }
}
