/*
 * UiService's shared layers only. Fixed priorities sit above native View dialogs
 * (1040) and Friends (1045): confirmation 1060, inline cover 1070, wait 1080,
 * orientation 1090. No native top-layer dialog or Bootstrap styles are involved.
 */
body.ui-service-blocked {
    overflow: hidden !important;
    padding-right: var(--ui-service-body-padding-right) !important;
}
#uiServiceCoverDiv {
    position: fixed;
    inset: 0;
    z-index: 1070;
    background: transparent;
    outline: 0;
}
.ui-service-overlay {
    box-sizing: border-box;
    position: fixed;
    inset: 0;
    z-index: 1060;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    color: #212529;
    background: rgba(0,0,0,.5);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    outline: 0;
}
.ui-service-overlay *, .ui-service-overlay *::before, .ui-service-overlay *::after { box-sizing: border-box; }
.ui-service-wait { z-index: 1080; background: transparent; }
.ui-service-orientation { z-index: 1090; }
.ui-service-panel { position: relative; width: calc(100% - 1rem); max-width: 500px; margin: .5rem auto; color: inherit; background: #fff; border: 1px solid rgba(0,0,0,.175); border-radius: .5rem; overflow-wrap: break-word; }
.ui-service-header { display: flex; align-items: center; padding: 1rem; border-bottom: 1px solid #dee2e6; }
.ui-service-overlay .ui-service-title { margin: 0; font: inherit; font-size: 1.25rem; font-weight: 500; line-height: 1.5; }
.ui-service-body { position: relative; padding: 1rem; }
.ui-service-body p { margin: 0 0 1rem; }
.ui-service-body img { vertical-align: middle; }
.ui-service-center { text-align: center; }
.ui-service-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; padding: .75rem; border-top: 1px solid #dee2e6; }
.ui-service-footer > * { margin: .25rem; }
.ui-service-overlay .ui-service-button { display: inline-block; padding: .375rem .75rem; font: inherit; font-weight: 400; line-height: 1.5; text-align: center; vertical-align: middle; cursor: pointer; user-select: none; color: #fff; border: 1px solid transparent; border-radius: .375rem; }
.ui-service-overlay .ui-service-danger { background: #dc3545; border-color: #dc3545; }
.ui-service-overlay .ui-service-danger:hover, .ui-service-overlay .ui-service-danger:focus-visible { background: #bb2d3b; border-color: #b02a37; }
.ui-service-overlay .ui-service-danger:active { background: #b02a37; border-color: #a52834; }
.ui-service-overlay .ui-service-secondary { background: #6c757d; border-color: #6c757d; }
.ui-service-overlay .ui-service-secondary:hover, .ui-service-overlay .ui-service-secondary:focus-visible { background: #5c636a; border-color: #565e64; }
.ui-service-overlay .ui-service-secondary:active { background: #565e64; border-color: #51585e; }
.ui-service-danger:focus-visible { outline: 0; box-shadow: 0 0 0 .25rem rgba(225,83,97,.5); }
.ui-service-secondary:focus-visible { outline: 0; box-shadow: 0 0 0 .25rem rgba(130,138,145,.5); }
.ui-service-overlay .ui-service-close { box-sizing: content-box; flex: 0 0 auto; width: 1em; height: 1em; padding: .5rem; margin: -.5rem -.5rem -.5rem auto; font: inherit; line-height: 1; color: #000; background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; border: 0; border-radius: .375rem; opacity: .5; cursor: pointer; }
.ui-service-close:hover { opacity: .75; }
.ui-service-close:focus { outline: 0; box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); opacity: 1; }
.ui-service-progress { display: flex; height: 1rem; margin-top: .5rem; overflow: hidden; background: #e9ecef; border-radius: .375rem; }
.ui-service-progress-bar { width: 100%; background-color: #ffc107; background-image: linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent); background-size: 1rem 1rem; animation: ui-service-stripes 1s linear infinite; }
.ui-service-spinner { width: 32px; height: 32px; vertical-align: middle; }
.ui-service-spinner-label { display: inline-block; }

/* Retain the public registration page's existing custom waiting-card appearance. */
.ui-service-public-wait { color: #333; background: rgba(0,0,0,.4); font-family: Arial, sans-serif; line-height: normal; }
.ui-service-public-wait .ui-service-panel { box-sizing: content-box; width: 80%; max-width: 400px; margin: 15% auto; padding: 30px; background: #f7f9fc; border: 1px solid #888; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,.1); text-align: center; }
.ui-service-public-wait .ui-service-body { padding: 0; }
.ui-service-public-wait .ui-service-title { margin: 1.67em 0; font-size: .83em; font-weight: 700; line-height: normal; }
.ui-service-public-wait .ui-service-progress { height: 22px; margin-top: 20px; background: #f4f4f4; border: 1px solid #ccc; border-radius: 5px; }

@keyframes ui-service-stripes { from { background-position: 1rem 0; } to { background-position: 0 0; } }
@media (min-width: 576px) {
    .ui-service-panel { width: calc(100% - 3.5rem); margin: 1.75rem auto; }
}
@media (prefers-reduced-motion: reduce) {
    .ui-service-progress-bar { animation: none; }
}
