/* Portal UX refinement: shared public/member shell safety and responsive navigation. */
.library-portal { --portal-content-width: 1280px; }
.library-portal .container { width: 100%; max-width: var(--portal-content-width); }
.library-portal-header { isolation: isolate; }
.library-topbar { min-height: 36px; }
.library-topbar .container { gap: 1rem; flex-wrap: wrap; }
.library-navbar { min-height: 72px; border-bottom: 1px solid rgba(15,23,42,.08); }
.library-navbar .navbar-inner { min-height: 72px; gap: 1rem; }
.library-brand-logo { flex: 0 0 auto; display: inline-flex; align-items: center; min-width: 0; max-width: 260px; }
.library-brand-logo img { display:block; width:auto; max-width:220px; max-height:52px; object-fit:contain; }
.library-navbar .navbar-collapse { min-width:0; }
.library-navbar .navbar-nav { min-width:0; }
.library-navbar .nav-link { border-radius:.6rem; transition: background-color .16s ease,color .16s ease,transform .16s ease; }
.library-navbar .nav-link:hover { transform: translateY(-1px); }
.library-navbar .nav-link.active, .library-navbar .nav-item.active > .nav-link { font-weight:700; background: rgba(13,110,253,.08); color: var(--bs-primary,#0d6efd); }
.library-navbar .dropdown-menu { max-width:min(22rem, calc(100vw - 1rem)); max-height:min(70vh, 34rem); overflow:auto; z-index:1080; }
.library-main { min-width:0; overflow:clip; }
.library-main > section, .library-main > .container, .library-main .content-section { min-width:0; }
.library-main img, .library-main svg, .library-main video, .library-main iframe { max-width:100%; }
.library-main table { max-width:100%; }
.library-main .table-responsive { width:100%; max-width:100%; -webkit-overflow-scrolling:touch; }
.library-main .card, .library-main .feature-tile, .library-main .catalog-card, .library-main .news-card { min-width:0; overflow-wrap:anywhere; }
.library-portal-footer { border-top:1px solid rgba(15,23,42,.08); }
.library-portal-footer a { overflow-wrap:anywhere; }
.portal-member .member-main, .portal-public .library-main { min-height:0; }
.portal-member .library-brand-logo img { max-height:48px; }
.portal-member .member-hero { background: linear-gradient(120deg, color-mix(in srgb, var(--portal-primary,#071d32) 86%, #071d32), color-mix(in srgb, var(--portal-secondary,#0d4268) 78%, #0d4268)); }
.portal-member .member-main .content-section { padding-block: clamp(2rem,4vw,3.25rem); }
.portal-member .quick-link { transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.portal-member .quick-link:hover { box-shadow:0 .7rem 1.5rem rgba(15,23,42,.08); }
@media (max-width: 1199.98px) {
  .library-navbar .navbar-nav { gap:.15rem; }
  .library-navbar .nav-link { padding-inline:.65rem; }
  .library-brand-logo { max-width:210px; }
}
@media (max-width: 991.98px) {
  .library-navbar, .library-navbar .navbar-inner { min-height:64px; }
  .library-brand-logo img { max-width:190px; max-height:46px; }
  .library-navbar .navbar-collapse { padding:.75rem 0 1rem; }
  .library-navbar .navbar-nav { align-items:stretch !important; }
  .library-navbar .nav-item { width:100%; }
  .library-navbar .nav-link { white-space:normal; }
  .library-navbar .dropdown-menu { width:100%; max-width:100%; max-height:none; border:0; box-shadow:none; }
}
@media (max-width: 575.98px) {
  .library-topbar .container { padding-inline:.85rem; }
  .library-navbar .container { padding-inline:.85rem; }
  .library-brand-logo img { max-width:155px; max-height:42px; }
  .library-navbar .navbar-toggler { flex:0 0 auto; }
  .library-main .content-hero { padding-block:2.5rem; }
  .library-main .content-section { padding-block:2.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .library-navbar .nav-link, .portal-member .quick-link { transition:none; }
}
