/* Shared accessibility and navigation rules, loaded after page styles. */
body { padding-top: 0 !important; margin: 0; }
main { min-height: 50vh; padding-bottom: 2rem; }
a { color: #0056b3; }
a:not(.btn):not(.navbar-brand):not(.nav-link) { text-decoration: underline; text-underline-offset: .15em; }
:focus-visible { outline: 3px solid #111; outline-offset: 3px; box-shadow: 0 0 0 6px #ffdf5d; }
.skip-link { position: absolute; left: 1rem; top: -8rem; z-index: 2000; background: #fff; color: #111; padding: 1rem; }
.skip-link:focus { top: 1rem; }
.navbar { position: relative; }
.navbar-brand { white-space: normal; max-width: 100%; }
.navbar-nav { gap: .25rem; }
.navbar-dark .navbar-nav .nav-link, .nav-details summary { color: #fff; padding: .65rem; }
.nav-details { position: relative; }
.nav-details summary { cursor: pointer; }
.nav-details ul { list-style: none; padding: .5rem; margin: 0; background: #343a40; min-width: 12rem; }
.nav-details a { display: block; padding: .6rem; color: #fff !important; }
.nav-details a:hover, .nav-details a:focus-visible { background: #72d1e1; color: #102a31 !important; }
.theme-control { align-self: flex-start; padding: 0; }
#darkModeToggle { position: static; display: block; background: transparent; color: #fff; border: 0; padding: .65rem; margin: 0; font: inherit; line-height: inherit; }
#darkModeToggle:hover, #darkModeToggle:active, #darkModeToggle[aria-pressed="true"] { background: #44534a; color: #fff; font: inherit; line-height: inherit; transform: none; border: 0; }
#darkModeToggle { transition: background-color .15s ease; box-shadow: none; }
[hidden] { display: none !important; }
.site-footer a { display: inline-block; color: #fff !important; margin: .3rem 1rem .3rem 0; padding: .2rem 0; }
.external-link-panel { background: #eef4f6; border: 1px solid #687e87; border-radius: .4rem; margin: 1rem 0; padding: 1.25rem; width: 100%; }
.btn-primary { background-color: #0056b3; border-color: #0056b3; }
.btn-success { background-color: #207536; border-color: #207536; }
body.dark-mode { background: #1c1f22; color: #fff; }
body.dark-mode h1, body.dark-mode h2, body.dark-mode h3, body.dark-mode h4, body.dark-mode h5, body.dark-mode h6 { color: #fff; }
body.dark-mode a { color: #d1adff; }
body.dark-mode .btn { color: #fff; }
body.dark-mode .external-link-panel, body.dark-mode .breadcrumb, body.dark-mode .list-group-item { background: #282e33; color: #fff; }
body.dark-mode .text-muted { color: #bfc7cd !important; }
.carousel-caption { background: rgba(0,0,0,.75); padding: .5rem; }
.carousel-caption h3 { color: #fff; margin: 0; }
.portfolio-item:focus-within .caption { opacity: 1; }
img { max-width: 100%; }
p, li, a, h1, h2, h3, h4, h5, h6 { overflow-wrap: anywhere; }
.gallery-dialog { border: 0; border-radius: .5rem; padding: 1rem; max-width: 95vw; max-height: 95vh; }
.gallery-dialog::backdrop { background: rgba(0,0,0,.8); }
.gallery-dialog img { display: block; max-height: 70vh; width: auto; margin: 1rem auto; }
@media (min-width: 992px) { .nav-details[open] ul { position: absolute; z-index: 1050; right: 0; } }
html:not(.js) .navbar-collapse { display: block; }
html:not(.js) .navbar-toggler { display: none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
