/* Central-site modal shell. Feature styles own size and content layout only. */
.bi-central-site {
    --bi-modal-radius: 14px;
    --bi-modal-border: #c7dced;
    --bi-modal-heading-background: #edf6fc;
    --bi-modal-heading-color: #244d71;
    --bi-modal-divider: #dceaf4;
    --bi-modal-shadow: 0 22px 65px #082d6233;
}
.bi-central-site :where(.modal-content) {
    color: var(--bi-navy, #082d62);
    background: #fff;
    border: 1px solid var(--bi-modal-border);
    border-radius: var(--bi-modal-radius);
    box-shadow: var(--bi-modal-shadow);
}
.bi-central-site :where(.modal-header) {
    flex-shrink: 0;
    align-items: center;
    gap: 12px;
    padding: var(--bi-modal-header-padding, 16px 20px);
    border-bottom: 1px solid var(--bi-modal-divider);
    border-radius: calc(var(--bi-modal-radius) - 1px) calc(var(--bi-modal-radius) - 1px) 0 0;
    background: var(--bi-modal-heading-background);
}
.bi-central-site :where(.modal-title) {
    margin: 0;
    color: var(--bi-modal-heading-color);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.bi-central-site .modal-header p { margin: 7px 0 0; color: var(--bi-muted, #687b9c); font-size: 14px; line-height: 1.45; }
.bi-central-site .modal-header > .btn-close {
    flex: none;
    box-sizing: content-box;
    width: 16px;
    height: 16px;
    margin: -3px -6px -3px auto;
    padding: 9px;
    border-radius: 6px;
    opacity: .6;
    transition: background-color .18s ease, opacity .18s ease;
}
.bi-central-site .modal .btn-close:hover { background-color: #dcecf8; opacity: 1; }
.bi-central-site .modal .btn-close:focus-visible { outline: 2px solid #78a9cc; outline-offset: 2px; box-shadow: none; opacity: 1; }
.bi-central-site :where(.modal-body) { padding: 20px; }
.bi-central-site :where(.modal-footer) { gap: 8px; padding: 12px 20px; border-top: 1px solid var(--bi-modal-divider); }
.bi-central-site .modal-footer > * { margin: 0; }
.bi-central-site .modal.fade .modal-dialog { transform: translateY(12px) scale(.98); transition: transform .22s cubic-bezier(.22, 1, .36, 1); }
.bi-central-site .modal.show .modal-dialog { transform: none; }
@media (max-width: 575.98px) {
    .bi-central-site .modal-title { font-size: 21px; }
    .bi-central-site .modal-fullscreen-sm-down { --bi-modal-radius: 0px; }
    .bi-central-site .modal-fullscreen-sm-down .modal-content { border: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .bi-central-site .modal.fade, .bi-central-site .modal.fade .modal-dialog, .bi-central-site .modal .btn-close { transition: none; }
    .bi-central-site .modal.fade .modal-dialog { transform: none; }
}

/* Reusable success notice, with the same shell as the other site dialogs. */
.bi-success-notice .modal-dialog { max-width: 440px; margin-inline: auto; padding-inline: 12px; }
.bi-success-notice .bi-success-icon { flex: none; color: #47876d; font-size: 24px; }
.bi-success-notice .modal-body p { margin: 0; color: #60758a; font-size: 16px; line-height: 1.5; }
