/* Shared portal safety and accessibility fixes */
.portal-public { overflow-x: hidden; }
.portal-public .library-app { min-height: 100vh; display: flex; flex-direction: column; }
.portal-public .library-main { flex: 1 0 auto; min-width: 0; width: 100%; }
.portal-public .library-main > * { min-width: 0; }
.portal-public img, .portal-public svg, .portal-public video, .portal-public iframe, .portal-public object, .portal-public embed { max-width: 100%; }
.portal-public .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.portal-public .subject-card, .portal-public .availability-box, .portal-public .resource-table { min-width: 0; overflow-wrap: anywhere; }
.portal-public .portal-page { min-width: 0; }
.portal-public .portal-page .row > * { min-width: 0; }
.portal-public .btn { white-space: normal; }
.portal-public .navbar-brand { min-width: 0; }
.portal-public .navbar-brand img { width: auto; max-width: min(220px, 45vw); max-height: 58px; object-fit: contain; }
.portal-public .library-topbar, .portal-public .library-navbar { color: var(--portal-topbar-text, var(--portal-navbar-text, #212529)); }
.portal-public .library-topbar a, .portal-public .library-navbar a { color: inherit; }
.portal-public .library-navbar .nav-link { color: var(--portal-navbar-text, #212529); }
.portal-public .library-navbar .nav-link:hover, .portal-public .library-navbar .nav-link:focus { color: var(--portal-navbar-hover-text, var(--portal-navbar-text, #212529)); }
.portal-public .library-navbar .nav-link.active { color: var(--portal-navbar-active-text, var(--portal-primary, #0d6efd)); font-weight: 700; }
.portal-public .library-navbar .nav-link.active::after { background: var(--portal-primary, #0d6efd); }
.portal-public .library-navbar .dropdown-menu { max-height: min(70vh, 520px); overflow-y: auto; }
.portal-public .library-navbar .btn { color: var(--portal-button-text, #fff); background-color: var(--portal-primary, #0d6efd); border-color: var(--portal-primary, #0d6efd); }
.portal-public .library-navbar .btn:hover, .portal-public .library-navbar .btn:focus { color: var(--portal-button-hover-text, #fff); background-color: var(--portal-primary-hover, var(--portal-primary, #0d6efd)); border-color: var(--portal-primary-hover, var(--portal-primary, #0d6efd)); }
.portal-public .portal-context-bar { position: relative; z-index: 1; }
.portal-public .portal-hero-image { overflow: hidden; }
.portal-public .portal-hero-image .container { position: relative; z-index: 1; }
.portal-public .portal-page-repository-viewer .ratio { min-height: 280px; }
.portal-public .portal-page-repository-viewer .availability-box { height: 100%; }
.portal-public .portal-page-repository-viewer .d-flex[role="group"] .btn { flex: 0 0 auto; }
@media (max-width: 991.98px) {
  .portal-public .library-navbar { position: relative !important; }
  .portal-public .navbar-collapse { padding: .75rem 0; }
  .portal-public .navbar-nav { align-items: stretch !important; }
  .portal-public .navbar-nav .nav-link { padding: .65rem .75rem; }
  .portal-public .navbar-nav .btn { display: inline-flex; align-items: center; justify-content: center; width: auto; }
  .portal-public .library-navbar .dropdown-menu { max-height: none; }
}
@media (max-width: 575.98px) {
  .portal-public .library-brand-logo img { max-width: 150px; max-height: 46px; }
  .portal-public .library-topbar .container { align-items: flex-start !important; }
  .portal-public .portal-page-repository-viewer .ratio { min-height: 220px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-public *, .portal-public *::before, .portal-public *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
