/* WHMCS supplies modal/card colours and typography, including theme overrides. */
html.obm-entry-pending, html.obm-operation-pending { overflow: hidden; }
/* Blur the actual page roots: backdrop-filter can be isolated by theme layers
   or replaced by a theme's body pseudo-element. Keep both challenge hosts sharp.
   The class is removed on completion/cancel, restoring the theme's own filters. */
html.obm-entry-pending body > :not(#obm-entry-renew):not(.obm-ts-overlay):not(script):not(style):not(link),
html.obm-operation-pending body > :not(#obm-entry-renew):not(.obm-ts-overlay):not(script):not(style):not(link) {
    -webkit-filter: blur(6px) !important;
    filter: blur(6px) !important;
}
html.obm-entry-pending body::after {
    content: ''; position: fixed; inset: 0; z-index: 2147483645;
    background: rgba(0, 0, 0, .60); pointer-events: all;
}
.obm-ts-overlay {
    position: fixed; inset: 0; z-index: 2147483647;
    background: rgba(0, 0, 0, .60);
    display: flex; align-items: center; justify-content: center;
    padding: 16px; box-sizing: border-box; overflow: auto;
}
#obm-entry-renew {
    position: fixed; inset: 0; z-index: 2147483646;
    display: flex; align-items: center; justify-content: center;
    padding: 16px; overflow: auto; box-sizing: border-box;
}
#obm-entry-renew .modal-content {
    width: 100%; max-width: 440px; max-height: calc(100dvh - 32px);
    overflow: auto; padding: 24px; margin: auto; box-sizing: border-box;
}
#obm-entry-renew button, #obm-entry-renew a {
    min-height: 48px; padding: 12px 16px; touch-action: manipulation;
}
#obm-entry-renew [data-obm-widget] { min-height: 65px; margin: 16px 0; }
#obm-entry-renew [role=status] { margin: 12px 0; }
#obm-entry-renew a { display: inline-block; }
@media (max-width: 379px) {
    #obm-entry-renew { padding: 12px; }
    #obm-entry-renew .modal-content { padding: 16px; }
}
