/* Bookshelf landing layout only. The reading view and public navigation stay unchanged. */
.library-header { padding-top: 16px; padding-bottom: 16px; }
.library-intro { padding-top: 22px; padding-bottom: 12px; }
.library-kicker { margin-bottom: 10px; }
.library-intro h1 { font-size: 38px; }
.library-featured { padding-bottom: 12px; margin-bottom: 12px; border-bottom: 0; }
.library-featured-stage { min-height: 232px; }
.library-featured-rail { min-height: 232px; padding-top: 10px; padding-bottom: 18px; }
.library-featured-details { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 12px; row-gap: 2px; padding-top: 4px; border-top: 0; }
.library-featured-details h2 { flex: 0 1 auto; min-width: 0; margin: 0; font-size: 20px; line-height: 1.4; }
.library-featured-meta { display: flex; flex: 1 1 auto; align-items: baseline; justify-content: flex-start; gap: 12px; min-width: 0; font-size: 12px; line-height: 1.6; }
.library-featured-meta > p { margin: 0; }
.library-featured-meta > span { flex-shrink: 0; margin-left: auto; font-size: 10px; letter-spacing: .4px; }
.library-featured-description { flex: 0 0 100%; margin-top: 6px; font-size: 12px; }
.library-featured-preview-note { flex: 0 0 100%; margin-top: 6px; }
.library-collection { padding-top: 14px; border-top: 1px solid #c7d1c4; }
.library-section-heading { margin-bottom: 14px; }
.library-search { margin-bottom: 16px; }

/* Compact catalogue: real covers stay uncropped; empty positions are explicit. */
.library-books { grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: start; gap: 24px 20px; }
.library-book-cover { padding: 5px 2px 10px; }
.library-book-cover img { object-fit: contain; }
.library-book h3 { margin-top: 8px; margin-bottom: 3px; font-size: 13px; line-height: 1.5; }
.library-book p { font-size: 12px; line-height: 1.5; }
.library-book--pending { width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; }
.library-book--pending .library-book-cover { display: grid; place-items: center; padding: 0; border: 1px dashed #becbbb; border-radius: 2px; background: #eeeee4; color: #7c9080; font-family: "Songti SC", "STSong", serif; font-size: 42px; line-height: 1; }
.library-book--pending h3 { color: #657b69; font-weight: 500; }
.library-book--pending:hover .library-book-cover { border-color: #8ea78d; background: #e8eddf; }
.library-featured-book--pending .library-featured-front { border: 1px solid #d3dacb; background: #eceee1; }
.library-featured-question { display: block; font-family: "Songti SC", "STSong", serif; font-size: 64px; line-height: 1; color: #6d8470; }
.library-featured-book--pending .library-featured-spine { background: #d5dfcb; color: #48634b; }
.library-featured-book--pending .library-featured-spine > span { font-family: "Songti SC", "STSong", serif; font-size: 22px; line-height: 1; letter-spacing: 0; writing-mode: horizontal-tb; }
@media (min-width: 701px) and (max-width: 960px) {
  .library-books { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px 18px; }
}
@media (max-width: 700px) {
  .library-header { padding-top: 13px; padding-bottom: 13px; }
  .library-intro { padding-top: 18px; padding-bottom: 8px; }
  .library-intro h1 { font-size: 32px; }
  .library-kicker { margin-bottom: 8px; }
  .library-featured-stage, .library-featured-rail { min-height: 190px; }
  .library-featured-rail { padding-top: 8px; padding-bottom: 14px; }
  .library-featured { padding-bottom: 12px; margin-bottom: 12px; }
  .library-featured-details { column-gap: 12px; padding-top: 2px; }
  .library-featured-details h2 { font-size: 18px; }
  .library-featured-meta { font-size: 12px; }
  .library-section-heading h2 { font-size: 18px; }
  .library-books { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 14px; }
  .library-book h3 { margin-top: 7px; font-size: 12px; }
  .library-book p { font-size: 12px; }
  .library-book--pending .library-book-cover { font-size: 36px; }
  .library-featured-question { font-size: 52px; }
  .library-featured-book--pending .library-featured-spine > span { font-size: 20px; }
}
@media (max-width: 350px) {
  .library-featured-stage, .library-featured-rail { min-height: 180px; }
  .library-featured-details { column-gap: 8px; }
  .library-featured-details h2 { font-size: 18px; }
  .library-books { column-gap: 12px; }
  .library-book--pending .library-book-cover { font-size: 32px; }
  .library-featured-question { font-size: 48px; }
}
