/* LANHS Library Catalog — all redesign custom styles combined in cascade order. */

/* ===== catalog-bookstore-inspired.css ===== */
/* Bookstore-inspired LANHS catalog; loaded after existing catalog styles. */
.library-page {
  --lanhs-wine: #74263c;
  --lanhs-wine-dark: #561a2b;
  --lanhs-line: #eee5e7;
  --lanhs-muted: #81767a
}

.library-page .catalog-layout {
  display: grid !important;
  grid-template-columns: minmax(215px, 255px) minmax(0, 1fr) !important;
  gap: 26px !important;
  align-items: start;
  margin-top: 28px
}

.library-page .catalog-filter-panel {
  background: #fff !important;
  border: 1px solid var(--lanhs-line) !important;
  border-radius: 15px !important;
  padding: 0 !important;
  box-shadow: 0 6px 24px rgba(74, 25, 40, .045) !important;
  overflow: hidden;
  position: sticky;
  top: 90px
}

.library-page .catalog-filter-panel .filter-head {
  padding: 20px 19px !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--lanhs-line);
  display: flex;
  justify-content: space-between;
  align-items: center
}

.library-page .catalog-filter-panel .filter-head h2 {
  font-size: 17px !important;
  color: #291e23 !important;
  margin: 0 !important
}

.library-page .catalog-filter-panel .filter-head a {
  font-size: 11px;
  color: var(--lanhs-wine) !important
}

.library-page .catalog-filter-form {
  display: block !important;
  padding: 0 !important
}

.library-page .catalog-filter-group {
  border-bottom: 1px solid var(--lanhs-line);
  padding: 0 !important
}

.library-page .catalog-filter-group summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 18px;
  color: #3b3034;
  font-size: 12px;
  font-weight: 750
}

.library-page .catalog-filter-group summary::-webkit-details-marker {
  display: none
}

.library-page .catalog-filter-group summary .fa-chevron-down {
  margin-left: auto;
  font-size: 10px;
  color: #97878b;
  transition: transform .2s
}

.library-page .catalog-filter-group:not([open]) summary .fa-chevron-down {
  transform: rotate(-90deg)
}

.library-page .catalog-filter-options {
  padding: 0 17px 15px;
  display: grid;
  gap: 10px;
  max-height: 215px;
  overflow: auto
}

.library-page .catalog-check {
  display: flex !important;
  align-items: center;
  gap: 9px;
  min-height: 20px;
  font-size: 12px !important;
  color: #62565a !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 500 !important;
  margin: 0 !important;
  cursor: pointer
}

.library-page .catalog-check input {
  appearance: auto !important;
  accent-color: var(--lanhs-wine);
  width: 15px !important;
  height: 15px !important;
  min-width: 15px;
  box-shadow: none !important;
  margin: 0 !important
}

.library-page .catalog-apply {
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: calc(100% - 34px) !important;
  margin: 18px 17px 8px !important;
  padding: 12px !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: var(--lanhs-wine) !important;
  color: white !important;
  font-size: 12px !important;
  font-weight: 750 !important
}

.library-page .catalog-reset {
  display: block;
  text-align: center;
  margin: 0 17px 18px;
  padding: 9px;
  border: 1px solid var(--lanhs-line);
  border-radius: 9px;
  color: #87777c;
  text-decoration: none;
  font-size: 12px
}

.library-page .catalog-results {
  min-width: 0
}

.library-page .catalog-results-head {
  background: #fff !important;
  border: 1px solid var(--lanhs-line) !important;
  border-radius: 13px !important;
  padding: 16px 19px !important;
  margin-bottom: 16px !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px
}

.library-page .catalog-results-title strong {
  font-size: 18px !important;
  color: #2b2025
}

.library-page .catalog-count {
  font-size: 11px !important;
  color: var(--lanhs-muted) !important
}

.library-page .books-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 15px !important
}

.library-page .books-grid .book-card {
  min-width: 0 !important;
  border: 1px solid #f0e9eb !important;
  border-radius: 13px !important;
  box-shadow: 0 3px 13px rgba(48, 25, 33, .045) !important;
  background: #fff !important;
  overflow: hidden !important;
  padding: 10px !important;
  position: relative !important;
  transition: transform .2s, box-shadow .2s
}

.library-page .books-grid .book-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(48, 25, 33, .1) !important
}

.library-page .book-cover-link {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  cursor: pointer
}

.library-page .book-cover {
  width: 100% !important;
  aspect-ratio: 3/4 !important;
  height: auto !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  position: relative !important
}

.library-page .book-cover img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important
}

.library-page .books-grid .catalog-fav {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  z-index: 4 !important;
  background: #fff !important;
  color: var(--lanhs-wine) !important;
  width: 31px !important;
  height: 31px !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 9px #0002 !important
}

.library-page .books-grid .catalog-fav.saved {
  background: var(--lanhs-wine) !important;
  color: #fff !important
}

.library-page .book-body {
  padding: 12px 3px 3px !important;
  min-width: 0
}

.library-page .book-meta-row {
  font-size: 9px !important;
  color: #8e7b80 !important;
  text-transform: uppercase;
  letter-spacing: .03em;
  gap: 4px
}

.library-page .book-title {
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #2f2328 !important;
  line-height: 1.35 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 35px
}

.library-page .book-author {
  font-size: 11px !important;
  color: #887b80 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.library-page .book-actions {
  display: flex !important;
  gap: 6px !important;
  margin-top: 12px !important
}

.library-page .book-actions .btn-read {
  background: var(--lanhs-wine) !important;
  color: #fff !important;
  border-radius: 8px !important;
  flex: 1 !important;
  font-size: 11px !important;
  padding: 10px 6px !important
}

.library-page .book-actions .btn-details {
  border: 1px solid #e9dfe2 !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: var(--lanhs-wine) !important;
  font-size: 11px !important;
  padding: 9px 7px !important
}

.library-page .catalog-pagination {
  display: flex;
  justify-content: center;
  gap: 7px;
  align-items: center;
  flex-wrap: wrap;
  margin: 26px 0 8px
}

.library-page .catalog-pagination a {
  min-width: 34px;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid #eee3e6;
  background: white;
  border-radius: 8px;
  padding: 7px 11px;
  text-decoration: none;
  color: #66565b;
  font-size: 12px
}

.library-page .catalog-pagination a.active {
  background: var(--lanhs-wine);
  color: #fff;
  border-color: var(--lanhs-wine)
}

@media(max-width:1150px) {
  .library-page .books-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important
  }
}

@media(max-width:780px) {
  .library-page .catalog-layout {
    grid-template-columns: 1fr !important
  }

  .library-page .catalog-filter-panel {
    position: static
  }

  .library-page .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important
  }
}

@media(max-width:420px) {
  .library-page .books-grid {
    gap: 10px !important
  }

  .library-page .books-grid .book-card {
    padding: 7px !important
  }

  .library-page .book-actions {
    flex-wrap: wrap
  }

  .library-page .book-actions .btn-details {
    flex: 1
  }
}


/* ===== catalog-goodreads-style.css ===== */
/* Goodreads-like book-first layout with LANHS maroon identity */
.library-page {
  --lanhs-wine: #79182e;
  --lanhs-line: #e8e2e1
}

.library-page .catalog-hero {
  min-height: 0 !important;
  background: #f7f5f4 !important;
  color: #30282b !important;
  padding: 27px 22px !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin-bottom: 27px !important
}

.library-page .catalog-hero:before,
.library-page .catalog-hero:after {
  display: none !important
}

.library-page .catalog-hero-content {
  max-width: 720px !important;
  margin: auto !important;
  text-align: center !important
}

.library-page .catalog-eyebrow {
  color: #8b3446 !important;
  font-size: 10px !important
}

.library-page .catalog-hero h1 {
  font-size: 27px !important;
  color: #2e2528 !important;
  margin: 5px 0 !important
}

.library-page .catalog-hero p {
  color: #807679 !important;
  font-size: 12px !important;
  margin-bottom: 16px !important
}

.library-page .catalog-hero-search {
  max-width: 620px !important;
  margin: auto !important;
  display: flex !important;
  gap: 7px !important
}

.library-page .catalog-search {
  background: white !important;
  border: 1px solid #e1dada !important;
  border-radius: 4px !important;
  min-height: 39px !important;
  box-shadow: none !important
}

.library-page .catalog-submit {
  background: #79182e !important;
  color: #fff !important;
  border-radius: 4px !important;
  padding: 0 20px !important
}

.library-page .catalog-popular {
  display: none !important
}

.library-page .catalog-layout {
  grid-template-columns: 185px minmax(0, 1fr) !important;
  gap: 29px !important;
  max-width: 1140px !important;
  margin: 0 auto 35px !important
}

.library-page .catalog-filter-panel {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  position: static !important;
  overflow: visible !important
}

.library-page .catalog-filter-panel .filter-head {
  padding: 0 0 12px !important;
  border-bottom: 1px solid #e6dfdf !important
}

.library-page .catalog-filter-panel .filter-head h2 {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important
}

.library-page .catalog-filter-group {
  border-bottom: 1px solid #e8e2e1 !important
}

.library-page .catalog-filter-group summary {
  padding: 14px 0 10px !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  font-size: 11px !important
}

.library-page .catalog-filter-group summary>i:first-child {
  display: none !important
}

.library-page .catalog-filter-options {
  padding: 0 0 13px !important;
  max-height: 260px !important;
  gap: 0 !important
}

.library-page .catalog-check {
  padding: 5px !important;
  font-size: 11px !important;
  min-height: 25px !important
}

.library-page .catalog-check input {
  width: 13px !important;
  height: 13px !important;
  min-width: 13px !important
}

.library-page .catalog-apply {
  width: 100% !important;
  margin: 15px 0 8px !important;
  border-radius: 4px !important
}

.library-page .catalog-reset {
  margin: 0 !important;
  border: 0 !important
}

.library-page .catalog-results-head {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid #e8e2e1 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 0 14px !important;
  margin-bottom: 20px !important
}

.library-page .catalog-results-title .catalog-results-icon {
  display: none !important
}

.library-page .catalog-results-title strong {
  font-size: 14px !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important
}

.library-page .catalog-sort {
  margin-left: auto !important
}

.library-page .books-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 25px 18px !important
}

.library-page .books-grid .book-card,
.library-page .books-grid .book-card:hover {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  text-align: center !important;
  transform: none !important;
  overflow: visible !important
}

.library-page .book-cover-link {
  max-width: 155px !important;
  margin: 0 auto !important
}

.library-page .book-cover {
  aspect-ratio: 3/4.3 !important;
  border-radius: 2px !important;
  box-shadow: 0 2px 9px #30202b26 !important
}

.library-page .book-cover-badge,
.library-page .book-pdf-tag,
.library-page .book-meta-row {
  display: none !important
}

.library-page .books-grid .catalog-fav {
  top: 7px !important;
  right: max(5px, calc((100% - 155px)/2 + 5px)) !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: white !important;
  color: #79182e !important
}

.library-page .books-grid .catalog-fav.saved {
  background: #79182e !important;
  color: white !important
}

.library-page .book-body {
  padding: 10px 0 0 !important;
  text-align: center !important
}

.library-page .book-title {
  font-size: 12px !important;
  min-height: 0 !important;
  margin-bottom: 3px !important
}

.library-page .book-author {
  font-size: 10px !important
}

.library-page .book-actions {
  justify-content: center !important;
  margin-top: 9px !important
}

.library-page .book-actions .btn-read {
  max-width: 145px !important;
  background: white !important;
  color: #79182e !important;
  border: 1px solid #ded4d6 !important;
  border-radius: 20px !important;
  padding: 7px 12px !important;
  font-size: 10px !important
}

.library-page .book-actions .btn-read:hover {
  background: #79182e !important;
  color: white !important
}

@media(max-width:1050px) {
  .library-page .books-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important
  }
}

@media(max-width:700px) {
  .library-page .catalog-layout {
    grid-template-columns: 1fr !important;
    gap: 20px !important
  }

  .library-page .catalog-filter-panel {
    border: 1px solid #e8e2e1 !important;
    border-radius: 6px !important;
    padding: 12px !important
  }

  .library-page .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important
  }

  .library-page .catalog-hero {
    padding: 20px 12px !important
  }
}


/* ===== catalog-final-reference.css ===== */

/* Final reference-matched LANHS catalog. Overrides previous catalog styles. */
.library-page {
  --lanhs-wine: #821629;
  --lanhs-wine-dark: #690d1e
}

.library-page .catalog-layout {
  display: grid !important;
  grid-template-columns: 220px minmax(0, 1fr) !important;
  gap: 20px !important;
  max-width: 1420px !important;
  margin: 24px auto 45px !important;
  align-items: start !important
}

.library-page .catalog-results {
  min-width: 0 !important
}

.library-page .catalog-filter-panel {
  background: #fff !important;
  border: 1px solid #e9e4e2 !important;
  border-radius: 9px !important;
  padding: 0 15px 16px !important;
  box-shadow: 0 2px 12px rgba(40, 20, 25, .035) !important
}

.library-page .catalog-filter-panel .filter-head {
  padding: 16px 0 13px !important
}

.library-page .catalog-filter-panel .filter-head h2 {
  font-size: 13px !important;
  color: #7c1729 !important
}

.library-page .catalog-filter-group summary {
  font-size: 11px !important;
  font-weight: 750 !important;
  color: #7e182b !important
}

.library-page .catalog-filter-options {
  max-height: 310px !important
}

.library-page .catalog-check {
  font-size: 11px !important
}

.library-page .catalog-hero {
  margin: 0 0 15px !important;
  padding: 19px 20px !important;
  background: #faf8f7 !important;
  border: 1px solid #eae3e1 !important;
  border-radius: 9px !important
}

.library-page .catalog-hero-content {
  max-width: none !important;
  text-align: left !important;
  margin: 0 !important
}

.library-page .catalog-hero .catalog-eyebrow {
  display: none !important
}

.library-page .catalog-hero h1 {
  font-size: 13px !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  color: #81172b !important;
  margin: 0 0 9px !important
}

.library-page .catalog-hero p {
  display: none !important
}

.library-page .catalog-hero-search {
  max-width: none !important;
  margin: 0 !important;
  gap: 9px !important
}

.library-page .catalog-search {
  min-height: 42px !important;
  flex: 1 !important
}

.library-page .catalog-submit {
  min-width: 108px !important;
  background: #831529 !important
}

.library-page .catalog-results-head {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  padding: 0 0 12px !important;
  margin-bottom: 17px !important
}

.library-page .catalog-results-title strong {
  font-size: 12px !important
}

.library-page .catalog-count {
  font-size: 11px !important
}

.library-page .books-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 26px 19px !important
}

.library-page .books-grid .book-card {
  text-align: left !important;
  min-width: 0 !important
}

.library-page .book-cover-link {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important
}

.library-page .book-cover {
  aspect-ratio: 3/3.65 !important;
  max-height: none !important;
  border-radius: 3px !important;
  box-shadow: 0 1px 7px #20151b20 !important
}

.library-page .books-grid .catalog-fav {
  right: 7px !important;
  top: 7px !important
}

.library-page .book-body {
  text-align: left !important;
  padding: 9px 0 0 !important
}

.library-page .book-title {
  font-size: 12px !important;
  font-weight: 750 !important
}

.library-page .book-author {
  font-size: 11px !important;
  color: #686064 !important
}

.library-page .book-meta-row {
  display: flex !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  margin-top: 5px !important;
  order: 3 !important
}

.library-page .book-meta-row span {
  font-size: 9px !important;
  text-transform: uppercase !important;
  color: #92858a !important
}

.library-page .book-body {
  display: flex !important;
  flex-direction: column !important
}

.library-page .book-actions {
  margin-top: 10px !important;
  justify-content: stretch !important
}

.library-page .book-actions .btn-read {
  width: 100% !important;
  max-width: none !important;
  border: 1px solid #89192e !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #811529 !important;
  min-height: 32px !important;
  font-weight: 700 !important
}

.library-page .book-actions .btn-read:hover {
  background: #831529 !important;
  color: #fff !important
}

.library-page .catalog-pagination {
  margin-top: 30px !important
}

@media(max-width:1280px) {
  .library-page .books-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important
  }
}

@media(max-width:960px) {
  .library-page .catalog-layout {
    grid-template-columns: 190px minmax(0, 1fr) !important
  }

  .library-page .books-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 23px 13px !important
  }
}

@media(max-width:700px) {
  .library-page .catalog-layout {
    grid-template-columns: 1fr !important;
    margin-top: 14px !important
  }

  .library-page .catalog-filter-panel {
    padding: 0 12px 12px !important
  }

  .library-page .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important
  }

  .library-page .catalog-hero {
    padding: 15px !important
  }

  .library-page .catalog-submit {
    min-width: 78px !important
  }
}

/* Book-cover visibility and breathing room — requested revision. */
.library-page .books-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  column-gap: 30px !important;
  row-gap: 46px !important;
  align-items: start !important;
}

.library-page .books-grid .book-card {
  min-width: 0 !important;
  max-width: 100% !important
}

.library-page .book-cover-link {
  display: block !important;
  width: 100% !important
}

.library-page .book-cover {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3/4.25 !important;
  overflow: hidden !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.library-page .book-cover img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

.library-page .book-body {
  padding-top: 12px !important
}

.library-page .book-actions {
  margin-top: 13px !important
}

@media(max-width:1150px) {
  .library-page .books-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 24px !important;
    row-gap: 36px !important
  }
}

@media(max-width:800px) {
  .library-page .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 20px !important;
    row-gap: 30px !important
  }
}

@media(max-width:450px) {
  .library-page .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 14px !important;
    row-gap: 26px !important
  }
}


/* ===== catalog-modal-login-refresh.css ===== */

/* Book details modal: clean, balanced LANHS burgundy/cream layout. */
#catalogBookModal[hidden],
#catalogLoginGate[hidden] {
  display: none !important
}

#catalogBookModal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 11000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important
}

#catalogBookModal .catalog-modal-backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(25, 12, 17, .65) !important;
  backdrop-filter: blur(5px) !important
}

#catalogBookModal .catalog-modal-dialog {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(180px, 38%) minmax(0, 1fr) !important;
  gap: 0 !important;
  width: min(800px, 100%) !important;
  max-height: min(85vh, 730px) !important;
  overflow: auto !important;
  background: #fff !important;
  border-radius: 16px !important;
  box-shadow: 0 25px 80px rgba(32, 10, 19, .32) !important;
  border: 1px solid #eee4e3 !important;
  padding: 0 !important;
  outline: none !important
}

#catalogBookModal .catalog-modal-art {
  background: #f8f3f1 !important;
  padding: 35px 30px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 390px !important
}

#catalogBookModal .catalog-modal-art img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  max-height: 410px !important;
  height: auto !important;
  object-fit: contain !important;
  border-radius: 5px !important;
  box-shadow: 0 8px 22px rgba(38, 15, 22, .17) !important
}

#catalogBookModal .catalog-modal-art img[hidden],
#catalogBookModal #catalogModalPlaceholder[hidden] {
  display: none !important
}

#catalogBookModal #catalogModalPlaceholder {
  color: #8b3447 !important;
  font-size: 56px !important
}

#catalogBookModal .catalog-modal-info {
  padding: 42px 35px 34px !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important
}

#catalogBookModal .catalog-modal-kicker {
  font-size: 10px !important;
  letter-spacing: .12em !important;
  font-weight: 800 !important;
  color: #8a2538 !important;
  margin-bottom: 14px !important
}

#catalogBookModal #catalogModalTitle {
  font-size: 25px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  color: #2e1e22 !important;
  margin: 0 0 9px !important
}

#catalogBookModal .catalog-modal-author {
  font-size: 13px !important;
  color: #81767a !important;
  margin: 0 0 18px !important
}

#catalogBookModal .catalog-modal-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  margin-bottom: 23px !important
}

#catalogBookModal .catalog-modal-tags span {
  background: #f8eeee !important;
  color: #7d2438 !important;
  border: 1px solid #efdfe2 !important;
  padding: 6px 10px !important;
  border-radius: 100px !important;
  font-size: 10px !important;
  font-weight: 700 !important
}

#catalogBookModal .catalog-modal-info h3 {
  font-size: 13px !important;
  color: #4b3037 !important;
  margin: 0 0 9px !important
}

#catalogBookModal .catalog-modal-description {
  font-size: 12px !important;
  line-height: 1.85 !important;
  color: #645b5e !important;
  margin: 0 0 22px !important;
  max-height: 165px !important;
  overflow: auto !important
}

#catalogBookModal .catalog-modal-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: auto !important;
  width: 100% !important
}

#catalogBookModal .catalog-modal-read {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  background: #81192e !important;
  color: #fff !important;
  border: 1px solid #81192e !important;
  padding: 12px 20px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
  font-size: 12px !important;
  font-weight: 750 !important
}

#catalogBookModal .catalog-modal-read[hidden] {
  display: none !important
}

#catalogBookModal .catalog-modal-secondary {
  padding: 12px 17px !important;
  border-radius: 8px !important;
  border: 1px solid #e7dadd !important;
  background: #fff !important;
  color: #782137 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  cursor: pointer !important
}

#catalogBookModal .catalog-modal-hint {
  font-size: 10px !important;
  line-height: 1.5 !important;
  color: #93898b !important;
  margin: 14px 0 0 !important
}

#catalogBookModal .catalog-modal-close {
  position: absolute !important;
  z-index: 2 !important;
  top: 15px !important;
  right: 15px !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: #fff !important;
  border: 1px solid #ebdfe1 !important;
  color: #7c2438 !important;
  cursor: pointer !important
}

#catalogLoginGate {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px
}

#catalogLoginGate .catalog-login-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(27, 10, 17, .66);
  backdrop-filter: blur(5px)
}

#catalogLoginGate .catalog-login-dialog {
  position: relative;
  width: min(420px, 100%);
  background: #fff;
  border-radius: 16px;
  padding: 38px 30px 30px;
  text-align: center;
  box-shadow: 0 20px 65px #18070b50;
  outline: none
}

#catalogLoginGate .catalog-login-symbol {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  margin: 0 auto 17px;
  border-radius: 50%;
  background: #f8e9ed;
  color: #821a30;
  font-size: 27px
}

#catalogLoginGate h2 {
  font-size: 22px;
  line-height: 1.3;
  color: #3a2229;
  margin: 0 0 10px;
  font-weight: 800
}

#catalogLoginGate p {
  font-size: 13px;
  line-height: 1.7;
  color: #74696d;
  margin: 0 0 25px
}

#catalogLoginGate .catalog-login-actions {
  display: grid;
  gap: 10px
}

#catalogLoginGate .catalog-login-primary,
#catalogLoginGate .catalog-login-secondary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
  cursor: pointer
}

#catalogLoginGate .catalog-login-primary {
  background: #81192e;
  border: 1px solid #81192e;
  color: #fff
}

#catalogLoginGate .catalog-login-secondary {
  background: #fff;
  border: 1px solid #e5d7dc;
  color: #7a2338
}

#catalogLoginGate .catalog-login-close {
  position: absolute;
  right: 14px;
  top: 14px;
  width: 32px;
  height: 32px;
  border: 1px solid #eadde1;
  border-radius: 50%;
  background: #fff;
  color: #8a2b41;
  cursor: pointer
}

body.catalog-login-open {
  overflow: hidden
}

@media(max-width:640px) {
  #catalogBookModal {
    padding: 14px !important
  }

  #catalogBookModal .catalog-modal-dialog {
    grid-template-columns: 1fr !important;
    max-height: 90vh !important
  }

  #catalogBookModal .catalog-modal-art {
    min-height: 0 !important;
    padding: 22px !important
  }

  #catalogBookModal .catalog-modal-art img {
    max-height: 220px !important
  }

  #catalogBookModal .catalog-modal-info {
    padding: 22px !important
  }

  #catalogBookModal #catalogModalTitle {
    font-size: 21px !important
  }

  #catalogBookModal .catalog-modal-description {
    max-height: 115px !important
  }
}



/* ===== FINAL REPAIR: 4 compact book columns, comfortable spacing ===== */
.library-page .catalog-layout {
  grid-template-columns: 195px minmax(0, 1fr) !important;
  gap: 26px !important;
  max-width: 1230px !important;
}

.library-page .books-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 38px 25px !important;
  align-items: start !important;
}

.library-page .books-grid .book-card {
  min-width: 0 !important;
  max-width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

.library-page .books-grid .book-cover-link {
  display: block !important;
  width: 100% !important;
  max-width: 178px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
}

.library-page .books-grid .book-cover {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 4 !important;
  overflow: hidden !important;
  border-radius: 4px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.library-page .books-grid .book-cover img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

.library-page .books-grid .book-body {
  width: 100% !important;
  max-width: 190px !important;
  padding: 10px 0 0 !important;
}

.library-page .books-grid .catalog-fav {
  top: 7px !important;
  right: max(7px, calc((100% - 178px)/2 + 7px)) !important;
}

.library-page .book-actions .btn-read {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
  min-height: 34px !important;
  padding: 8px 10px !important;
  font-size: 11px !important;
}

.library-page .book-actions .btn-read i {
  display: inline-block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  font-size: 12px !important;
}

.library-page .book-meta-row {
  order: 3 !important;
  margin-top: 7px !important;
}

.library-page .book-title {
  order: 1 !important;
}

.library-page .book-author {
  order: 2 !important;
}

.library-page .book-actions {
  order: 4 !important;
}

@media(max-width:1050px) {
  .library-page .books-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 30px 20px !important;
  }
}

@media(max-width:760px) {
  .library-page .catalog-layout {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .library-page .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 25px 16px !important;
  }

  .library-page .books-grid .book-cover-link {
    max-width: 165px !important;
  }

  .library-page .books-grid .catalog-fav {
    right: max(7px, calc((100% - 165px)/2 + 7px)) !important;
  }
}

/* ===== 2026-10-27: fixed public navbar clearance and seamless footer ===== */
/* The public header is fixed/sticky above the catalog: reserve space for it. */
body:has(.public-catalog-shell) {
  background: #ffffff !important;
}

body:has(.public-catalog-shell) .public-catalog-shell.library-page {
  box-sizing: border-box !important;
  padding-top: 118px !important;
  padding-bottom: 55px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  min-height: 0 !important;
  background: #ffffff !important;
}

body:has(.public-catalog-shell) .public-catalog-shell .catalog-layout {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Avoid a gray band caused by shared layout background before the footer. */
body:has(.public-catalog-shell) .public-catalog-shell+footer,
body:has(.public-catalog-shell) .public-footer {
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  body:has(.public-catalog-shell) .public-catalog-shell.library-page {
    padding-top: 106px !important;
    padding-bottom: 34px !important;
  }
}


/* 2026-10-27: measured navbar breathing room + polished book dialog */
body:has(.public-catalog-shell) .public-catalog-shell.library-page {
  padding-top: 151px !important;
  padding-bottom: 68px !important;
}

body:has(.public-catalog-shell) .public-catalog-shell .catalog-layout {
  margin-top: 0 !important;
}

/* Keep all catalog content comfortably below the fixed public navigation. */
body:has(.public-catalog-shell) .public-catalog-shell .catalog-filter-panel,
body:has(.public-catalog-shell) .public-catalog-shell .catalog-hero {
  scroll-margin-top: 140px;
}

#catalogBookModal {
  z-index: 12000 !important;
  padding: 22px !important;
}

#catalogBookModal .catalog-modal-backdrop {
  background: rgba(23, 15, 18, .57) !important;
  backdrop-filter: blur(3px) !important;
}

#catalogBookModal .catalog-modal-dialog {
  width: min(760px, 100%) !important;
  grid-template-columns: 280px minmax(0, 1fr) !important;
  border: 1px solid #ede5e3 !important;
  border-radius: 13px !important;
  box-shadow: 0 25px 75px rgba(25, 9, 16, .27) !important;
  overflow: auto !important;
  max-height: calc(100dvh - 48px) !important;
}

#catalogBookModal .catalog-modal-art {
  background: #f7f4f2 !important;
  min-height: 400px !important;
  padding: 35px 28px !important;
  border-right: 1px solid #f0e9e7 !important;
}

#catalogBookModal .catalog-modal-art img {
  max-height: 360px !important;
  box-shadow: 0 8px 24px #28181b25 !important;
}

#catalogBookModal .catalog-modal-info {
  padding: 38px 35px 30px !important;
  align-items: stretch !important;
}

#catalogBookModal .catalog-modal-kicker {
  font-size: 10px !important;
  letter-spacing: .12em !important;
  color: #8a2438 !important;
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  margin-bottom: 14px !important;
}

#catalogBookModal #catalogModalTitle {
  font-size: 24px !important;
  line-height: 1.25 !important;
  letter-spacing: -.025em !important;
  color: #2c2024 !important;
  margin-bottom: 7px !important;
}

#catalogBookModal .catalog-modal-author {
  font-size: 12px !important;
  margin-bottom: 18px !important;
}

#catalogBookModal .catalog-modal-tags {
  margin-bottom: 23px !important;
}

#catalogBookModal .catalog-modal-tags span {
  background: #faf4f4 !important;
  color: #7f263a !important;
  font-size: 10px !important;
  padding: 6px 11px !important;
}

#catalogBookModal .catalog-modal-info h3 {
  font-size: 12px !important;
  font-weight: 800 !important;
  color: #372a2d !important;
  margin-bottom: 9px !important;
}

#catalogBookModal .catalog-modal-description {
  font-size: 12px !important;
  line-height: 1.85 !important;
  max-height: 160px !important;
  overflow: auto !important;
  margin-bottom: 24px !important;
}

#catalogBookModal .catalog-modal-actions {
  display: flex !important;
  gap: 10px !important;
  align-items: stretch !important;
}

#catalogBookModal .catalog-modal-read {
  gap: 10px !important;
  border-radius: 7px !important;
  padding: 12px 17px !important;
  white-space: nowrap !important;
}

#catalogBookModal .catalog-modal-secondary {
  border-radius: 7px !important;
  padding: 12px 15px !important;
  white-space: nowrap !important;
}

#catalogBookModal .catalog-modal-hint {
  font-size: 10px !important;
  margin: 12px 0 0 !important;
  color: #877b7e !important;
}

#catalogBookModal .catalog-modal-guest-note {
  display: flex !important;
  align-items: flex-start !important;
  gap: 9px !important;
  padding: 11px 12px !important;
  margin-top: 14px !important;
  border-radius: 7px !important;
  border: 1px solid #eadfe2 !important;
  background: #faf5f6 !important;
  color: #684d54 !important;
  font-size: 11px !important;
  line-height: 1.65 !important;
}

#catalogBookModal .catalog-modal-guest-note i {
  margin-top: 3px !important;
  color: #8b263c !important;
}

#catalogBookModal .catalog-modal-guest-note a {
  font-weight: 800 !important;
  color: #7c1830 !important;
  text-decoration: underline !important;
}

#catalogBookModal .catalog-modal-close {
  top: 13px !important;
  right: 13px !important;
}

#catalogLoginGate .catalog-login-dialog {
  border: 1px solid #efe5e7;
  box-shadow: 0 25px 75px #24131a40;
}

#catalogLoginGate .catalog-login-primary {
  gap: 10px;
}

@media(max-width:760px) {
  body:has(.public-catalog-shell) .public-catalog-shell.library-page {
    padding-top: 135px !important;
    padding-bottom: 38px !important;
  }
}

@media(max-width:640px) {
  #catalogBookModal .catalog-modal-dialog {
    grid-template-columns: 1fr !important;
    max-height: calc(100dvh - 28px) !important;
  }

  #catalogBookModal .catalog-modal-art {
    min-height: 0 !important;
    padding: 22px !important;
    border-right: 0 !important;
    border-bottom: 1px solid #f0e9e7 !important;
  }

  #catalogBookModal .catalog-modal-art img {
    max-height: 205px !important;
  }

  #catalogBookModal .catalog-modal-info {
    padding: 23px 22px 26px !important;
  }

  #catalogBookModal #catalogModalTitle {
    font-size: 21px !important;
  }

  #catalogBookModal .catalog-modal-actions {
    flex-wrap: wrap !important;
  }
}

/* Click-to-read only: Read Book is a button, not a navigation link. */
#catalogModalRead {
  cursor: pointer;
  font-family: inherit;
}

#catalogLoginGate[hidden] {
  display: none !important;
}

/* Modern Library Book Details — approved preview, Oct 2026 */
#catalogBookModal .catalog-modal-backdrop {
  background: rgba(19, 16, 18, .59) !important;
  backdrop-filter: blur(2px) !important;
}

#catalogBookModal .catalog-modal-dialog {
  width: min(865px, 100%) !important;
  grid-template-columns: 390px minmax(0, 1fr) !important;
  min-height: 550px !important;
  max-height: calc(100dvh - 40px) !important;
  background: #fff !important;
  border: 1px solid #eee6e6 !important;
  border-radius: 17px !important;
  box-shadow: 0 32px 95px rgba(17, 9, 11, .27) !important;
  overflow: auto !important;
}

#catalogBookModal .catalog-modal-art {
  background: linear-gradient(130deg, #f9f5f4 0%, #f5efee 100%) !important;
  border: 0 !important;
  border-right: 1px solid #f0e8e8 !important;
  padding: 48px 44px !important;
  min-height: 550px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#catalogBookModal .catalog-modal-art img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 420px !important;
  object-fit: contain !important;
  border-radius: 6px !important;
  box-shadow: 0 12px 29px rgba(37, 17, 23, .19) !important;
}

#catalogBookModal .catalog-modal-info {
  padding: 53px 34px 42px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  min-width: 0 !important;
}

#catalogBookModal .catalog-modal-kicker {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .105em !important;
  color: #89152d !important;
  margin: 0 34px 17px 0 !important;
}

#catalogBookModal #catalogModalTitle {
  font-size: 32px !important;
  line-height: 1.2 !important;
  letter-spacing: -.035em !important;
  color: #181416 !important;
  font-weight: 800 !important;
  margin: 0 24px 9px 0 !important;
}

#catalogBookModal .catalog-modal-author {
  font-size: 14px !important;
  color: #625c60 !important;
  line-height: 1.5 !important;
  margin: 0 0 24px !important;
}

#catalogBookModal .catalog-modal-divider {
  height: 1px;
  background: #e9e3e4;
  margin: 0 0 26px;
  flex-shrink: 0;
}

#catalogBookModal .catalog-modal-info h3 {
  font-size: 15px !important;
  font-weight: 800 !important;
  color: #7e1b31 !important;
  margin: 0 0 12px !important;
}

#catalogBookModal .catalog-modal-description {
  font-size: 14px !important;
  line-height: 1.8 !important;
  color: #595358 !important;
  margin: 0 0 29px !important;
  max-height: 190px !important;
  overflow: auto !important;
}

#catalogBookModal .catalog-modal-actions {
  display: flex !important;
  gap: 9px !important;
  align-items: stretch !important;
  margin-top: auto !important;
  flex-wrap: wrap !important;
}

#catalogBookModal .catalog-modal-read,
#catalogBookModal .catalog-modal-secondary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  min-height: 49px !important;
  padding: 13px 19px !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  border-radius: 9px !important;
  white-space: nowrap !important;
}

#catalogBookModal .catalog-modal-read {
  background: #87122b !important;
  border: 1px solid #87122b !important;
  color: #fff !important;
}

#catalogBookModal .catalog-modal-read:hover {
  background: #6e1025 !important;
}

#catalogBookModal .catalog-modal-secondary {
  background: #fff !important;
  border: 1px solid #9d2740 !important;
  color: #87122b !important;
}

#catalogBookModal .catalog-modal-secondary:hover {
  background: #fcf4f5 !important;
}

#catalogBookModal .catalog-modal-close {
  position: absolute !important;
  top: 19px !important;
  right: 19px !important;
  z-index: 4 !important;
  width: 39px !important;
  height: 39px !important;
  border: 1px solid #f0e4e6 !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: #8c2035 !important;
}

#catalogBookModal .catalog-modal-hint {
  font-size: 11px !important;
  color: #83787c !important;
  margin: 12px 0 0 !important;
}

@media(max-width:800px) {
  #catalogBookModal .catalog-modal-dialog {
    grid-template-columns: 42% 58% !important;
    min-height: 0 !important;
  }

  #catalogBookModal .catalog-modal-art {
    min-height: 460px !important;
    padding: 30px !important;
  }

  #catalogBookModal .catalog-modal-info {
    padding: 45px 27px 30px !important;
  }

  #catalogBookModal #catalogModalTitle {
    font-size: 27px !important;
  }
}

@media(max-width:600px) {
  #catalogBookModal {
    padding: 12px !important;
  }

  #catalogBookModal .catalog-modal-dialog {
    grid-template-columns: 1fr !important;
    max-height: calc(100dvh - 24px) !important;
  }

  #catalogBookModal .catalog-modal-art {
    min-height: 0 !important;
    padding: 26px 40px !important;
    border-right: 0 !important;
    border-bottom: 1px solid #f0e8e8 !important;
  }

  #catalogBookModal .catalog-modal-art img {
    max-height: 225px !important;
  }

  #catalogBookModal .catalog-modal-info {
    padding: 28px 24px 27px !important;
  }

  #catalogBookModal #catalogModalTitle {
    font-size: 25px !important;
  }

  #catalogBookModal .catalog-modal-description {
    max-height: none !important;
  }

  #catalogBookModal .catalog-modal-actions {
    gap: 10px !important;
  }

  #catalogBookModal .catalog-modal-read,
  #catalogBookModal .catalog-modal-secondary {
    flex: 1 1 145px !important;
  }
}

/* Favorite overlay: positioned relative to the cover, not the book card. */
.library-page .books-grid .book-card .catalog-cover-wrap {
  position: relative !important;
  width: 100% !important;
  max-width: 178px !important;
  margin: 0 auto !important;
  isolation: isolate;
}

.library-page .books-grid .catalog-cover-wrap>.book-cover-link {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.library-page .books-grid .catalog-cover-wrap>.catalog-fav,
.library-page .books-grid .catalog-cover-wrap>.catalog-fav.saved {
  position: absolute !important;
  top: 7px !important;
  right: 7px !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 5 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: #831529 !important;
  box-shadow: 0 2px 7px rgba(0, 0, 0, .16) !important;
  transform: none !important;
  line-height: 1 !important;
  cursor: pointer;
}

.library-page .books-grid .catalog-cover-wrap>.catalog-fav i {
  font-size: 13px !important;
  color: #831529 !important;
  line-height: 1 !important;
  margin: 0 !important;
}

@media (max-width: 700px) {
  .library-page .books-grid .book-card .catalog-cover-wrap {
    max-width: 165px !important;
  }
}

/* STABLE FAVORITE: no class/icon replacement; color-only change. */
.library-page .books-grid .catalog-cover-wrap>button.catalog-fav,
.library-page .books-grid .catalog-cover-wrap>button.catalog-fav:hover,
.library-page .books-grid .catalog-cover-wrap>button.catalog-fav:active,
.library-page .books-grid .catalog-cover-wrap>button.catalog-fav:focus {
  position: absolute !important;
  top: 7px !important;
  right: 7px !important;
  bottom: auto !important;
  left: auto !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #fff !important;
  box-shadow: 0 2px 7px rgba(0, 0, 0, .16) !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
  z-index: 5 !important;
  line-height: 1 !important;
}

.library-page .books-grid .catalog-cover-wrap>button.catalog-fav i,
.library-page .books-grid .catalog-cover-wrap>button.catalog-fav:hover i,
.library-page .books-grid .catalog-cover-wrap>button.catalog-fav:active i {
  display: block !important;
  width: 13px !important;
  height: 13px !important;
  font-size: 13px !important;
  line-height: 13px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
  color: #b8aeb2 !important;
}

.library-page .books-grid .catalog-cover-wrap>button.catalog-fav[data-favorited="1"] i,
.library-page .books-grid .catalog-cover-wrap>button.catalog-fav[data-favorited="1"]:hover i {
  color: #831529 !important;
}