#portal-navigation-status:not(.visually-hidden) {
    position: fixed;
    z-index: 1100;
    top: 1rem;
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(100% - 2rem);
    padding: .75rem 1rem;
    color: #172b4d;
    background: #fff;
    border: 1px solid #b6c4d6;
    border-radius: .375rem;
    box-shadow: 0 .25rem 1rem #0002;
}
.portal-loading { cursor: progress; }
.portal-loading::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    z-index: 1200;
    background: #215b96;
}
#portal-content [id] { scroll-margin-top: 8rem; }
#portal-runtime-status:not(.visually-hidden) {
    position: fixed;
    bottom: 1rem;
    left: 1rem;
    right: 1rem;
    z-index: 1100;
    padding: 1rem;
    background: #fff;
    color: #172b4d;
    border: 1px solid #b6c4d6;
    border-radius: .375rem;
}
.portal-skip-link { position: fixed; top: -10rem; left: 1rem; z-index: 1200; }
.portal-skip-link:focus { top: 1rem; background: white; color: #172b4d; padding: 1rem; }

/* Reserve the scrollbar gutter when successive pages have different heights. */
html { scrollbar-gutter: stable; }
#portal-header .navbar-brand-img { width: 280px; max-width: 100%; height: 60px; object-fit: contain; }
#portal-header .navbar-brand { display: inline-block; max-width: calc(100% - 1rem); }
.portal-validation-summary:focus { outline: 3px solid #215b96; outline-offset: 3px; }
.portal-validation-summary { scroll-margin-top: 8rem; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
    #bodyElement { opacity: 1 !important; }
}
