.library-shell { max-width: 1160px; }
.library-shell .guide-hero h1 { font-weight: 700; }
.library-intro { color: #526172; font-size: 14px; }
.library-filters { display: grid; grid-template-columns: 2fr repeat(4, 1fr) auto; gap: 12px; margin: 28px 0 16px; align-items: end; }
.library-filters label { display: grid; gap: 6px; font-size: 13px; font-weight: 600; min-width: 0; }
.library-filters input, .library-filters select, .library-filters button, #empty-reset { min-height: 42px; width: 100%; border: 1px solid #c9d1d9; border-radius: 6px; padding: 8px; background: #fff; color: #263849; font: inherit; }
.library-filters button, #empty-reset { cursor: pointer; width: auto; }
.library-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 28px 22px; margin: 20px 0 36px; }
.library-book { min-width: 0; }
.book-cover { height: 230px; display: flex; align-items: flex-end; justify-content: center; padding: 0 8px 12px; border-bottom: 4px solid #acbac6; text-decoration: none; }
.book-cover img { max-width: 100%; height: 214px; object-fit: contain; object-position: bottom; }
.service-cover { width: 100%; min-height: 195px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid #ced7df; border-radius: 6px; padding: 16px; background: #f4f7f9; color: #273d50; }
.service-cover span, .service-cover small { font-size: 12px; font-weight: 400; }
.service-cover strong { font-size: 18px; font-weight: 600; line-height: 1.5; }
.book-caption { padding-top: 12px; }
.library-book h2 { font-size: 16px; line-height: 1.5; margin: 8px 0; font-weight: 600; }
.library-book h2 a { color: #20364b; text-decoration: none; }
.library-book a:hover { text-decoration: underline; }
.library-book .book-provider, .library-book .book-meta { font-size: 12px; line-height: 1.6; margin: 6px 0; color: #566575; }
.book-access { font-size: 12px; font-weight: 600; color: #245a53; }
.library-book details { font-size: 12px; line-height: 1.65; margin-top: 10px; overflow-wrap: anywhere; }
.library-book summary { cursor: pointer; color: #42576c; }
.library-book details p { font-size: 12px; }
.cover-fallback { padding: 30px 8px; color: #526172; font-size: 13px; }
#library-count { font-size: 14px; color: #526172; }
#library-empty { padding: 36px 0; }
.library-shell [hidden] { display: none !important; }
.library-shell :focus-visible { outline: 3px solid #286ba3; outline-offset: 3px; }
@media(max-width: 900px) { .library-filters { grid-template-columns: repeat(3, 1fr); } }
@media(max-width: 560px) { .library-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } .library-search { grid-column: 1 / -1; } .library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; } .book-cover { height: 205px; padding-inline: 0; } .book-cover img { height: 189px; } .service-cover { padding: 12px; min-height: 180px; } .service-cover strong { font-size: 16px; } }
