/* Shared presentation for reference, character, search and information pages. */
.library-subpage { --font-ui: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.library-subpage main { max-width: 1240px; margin: 0 auto; padding: 0 32px 36px; overflow-wrap: anywhere; }
.library-subpage #main-content :is(h1,h2,h3,h4) { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; color: var(--ink); letter-spacing: -.025em; text-transform: none; background: none; -webkit-text-fill-color: currentColor; }
.library-subpage main h1 { font-size: clamp(32px,3.3vw,44px); line-height: 1.18; }
.library-subpage main h2 { font-size: 27px; line-height: 1.3; }
.library-subpage main h3 { font-size: 22px; line-height: 1.35; }
.library-subpage #main-content h4 { font: 600 12px/1.5 var(--font-ui); letter-spacing: .04em; }
.library-subpage main :is(p,li,dd,dt) { text-align: left; }
.library-subpage main a { color: var(--ink); }
.library-subpage main :is(.breadcrumb,.section-subtitle,.book-count,.back-link,.back-button) { font-family: var(--font-ui); }
.library-subpage main > .breadcrumb,
.library-subpage main.container > .breadcrumb,
.library-subpage .book-container > .breadcrumb { margin: 0; padding: 24px 0; border-bottom: 1px solid var(--rule); background: none; font: 12px/1.6 var(--font-ui); }
.library-subpage :is(.topic-hero,.relationship-header,.search-hero) { padding: 34px 0 28px; margin: 0 0 28px; border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; background: none; text-align: left; }
.library-subpage :is(.topic-hero,.relationship-header,.search-hero) h1 { max-width: 28ch; margin: 0 0 15px; }
.library-subpage :is(.topic-hero,.relationship-header,.search-hero) > p { max-width: 70ch; margin: 0; color: var(--muted-ink); font: 15px/1.7 var(--font-ui); }
.library-subpage .topic-stats { justify-content: flex-start; gap: 32px; margin-top: 22px; }
.library-subpage .topic-stats > div { min-width: 0; gap: 3px; }
.library-subpage .topic-stats strong { font: 500 22px/1.25 var(--font-ui); color: var(--ink); }
.library-subpage .topic-stats span { font: 11px/1.5 var(--font-ui); color: var(--muted-ink); letter-spacing: 0; text-transform: none; }
.library-subpage .hero-actions { justify-content: flex-start; gap: 10px; margin-top: 23px; }
.library-subpage :is(.hero-action,.error-link,.back-button,.region-btn,.filter-btn) { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 40px; padding: 9px 14px; border: 1px solid #bfc7bd; border-radius: 3px; background: transparent; box-shadow: none; color: var(--ink); font: 12px/1.6 var(--font-ui); text-decoration: none; letter-spacing: 0; transform: none; }
.library-subpage :is(.hero-action.primary,.error-link:not(.secondary),.region-btn.active,.filter-btn.active) { color: #fffef9; background: var(--ink); border-color: var(--ink); }
.library-subpage :is(.hero-action,.error-link,.back-button,.region-btn,.filter-btn):hover { transform: none; box-shadow: none; border-color: var(--old-gold); }
.library-subpage :is(.hero-action.primary,.error-link:not(.secondary)):hover { background: #315554; }
.library-subpage .reference-links { display: flex; gap: 24px; flex-wrap: wrap; margin: -7px 0 30px; font: 12px/1.7 var(--font-ui); }
.library-subpage .reference-links a { text-decoration: none; border-bottom: 1px solid #bec6bc; }
.library-subpage :is(.section-header,.section-header.compact) { display: block; margin-bottom: 22px; padding: 0; border: 0; }
.library-subpage .section-header h2 { margin: 0 0 8px; }
.library-subpage .section-title::before { display: none; }
.library-subpage .section-subtitle { max-width: 75ch; margin: 0; color: var(--muted-ink); font: 13px/1.7 var(--font-ui); }
.library-subpage :is(.topics-grid-section,.series-section,.source-trails-section,.archive-faq-section,.faq-section,.related-terms-section,.book-list-section) { margin: 32px 0; }
.library-subpage :is(.topic-card-grid,.series-card-grid,.source-trail-grid,.source-trail-evidence-grid) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.library-subpage :is(.topic-card,.topic-overview-card,.series-guide-card,.series-volume-card,.source-trail-card,.source-trail-evidence-card,.archive-faq-card,.faq-item,.coverage-quality-card,.library-note) { min-width: 0; min-height: 0; padding: 23px; border: 1px solid var(--rule); border-radius: 3px; background: #fffef9; box-shadow: none; transform: none; }
.library-subpage :is(.topic-card,.series-guide-card,.source-trail-card):hover { border-color: #a4afa0; background: #f1f2e9; box-shadow: none; transform: none; }
.library-subpage :is(.topic-card,.series-guide-card,.source-trail-card) { gap: 10px; }
.library-subpage :is(.topic-card,.series-guide-card,.source-trail-card) h2 { margin: 0 0 2px; font-size: 25px; }
.library-subpage :is(.topic-card,.series-guide-card,.source-trail-card,.topic-overview-card,.coverage-quality-card) p { margin: 0; color: var(--muted-ink); font: 14px/1.75 var(--font-ui); }
.library-subpage :is(.topic-card-count,.topic-card-link,.related-term-samples,.book-region,.book-reading-time,.book-meta-tag,.series-card-meta,.series-volume-meta,.source-excerpt-head,.source-excerpt-book,.reading-time-card-stats,.fact-grid,.path-book-list span,.path-book-list small) { color: var(--muted-ink); font: 11px/1.6 var(--font-ui); letter-spacing: 0; }
.library-subpage .topic-card-link { color: var(--ink); margin-top: 7px; }
.library-subpage :is(.series-card-meta,.series-volume-meta,.reading-time-card-stats) { gap: 14px; }
.library-subpage :is(.series-card-meta,.series-volume-meta,.reading-time-card-stats) span { padding: 0; border: 0; border-radius: 0; background: none; color: var(--muted-ink); font-weight: 400; }
.library-subpage .topic-overview-section { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 30px 0; }
.library-subpage .topic-overview-card h2 { margin: 0 0 16px; font-size: 23px; }
.library-subpage :is(.topic-chip,.book-region-tag,.region-tag,.region-badge,.type-badge) { padding: 4px 8px; background: #eeeee4; border: 0; border-radius: 2px; color: #56634f; font: 11px/1.5 var(--font-ui); }
.library-subpage .topic-chip:hover { color: var(--ink); background: #e3e8dc; }
.library-subpage .path-book-list { padding-left: 20px; margin: 12px 0 0; }
.library-subpage .path-book-list li { padding: 12px 0; border-bottom: 1px solid var(--rule); }
.library-subpage .path-book-list a { font: 17px/1.5 Georgia,serif; }
.library-subpage .source-excerpt-text { border-left: 2px solid #c1b18d; padding-left: 17px; font: 17px/1.75 Georgia,serif; color: var(--muted-ink); }
.library-subpage .source-excerpt-head strong { color: var(--old-gold); font: inherit; }
.library-subpage .source-excerpt-book { flex-wrap: wrap; }
.library-subpage .book-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.library-subpage .book-grid .book-card { padding: 23px; background: #fffef9; border: 1px solid var(--rule); border-radius: 3px; box-shadow: none; transform: none; gap: 12px; }
.library-subpage .book-card :is(.book-card-header,.book-card-body,.book-card-footer) { padding: 0; background: none; border: 0; }
.library-subpage .book-card .book-card-footer { margin-top: auto; }
.library-subpage .book-card h3 { margin: 6px 0; font-size: 23px; }
.library-subpage .book-card :is(p,.book-excerpt) { margin: 8px 0; color: var(--muted-ink); font: 16px/1.75 Georgia,serif; text-align: left; }
.library-subpage .book-card-meta { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; font: 11px/1.6 var(--font-ui); color: var(--muted-ink); }
.library-subpage :is(.read-button,.book-card-link,.view-book-link) { display: inline-flex; justify-content: space-between; align-items: center; gap: 18px; align-self: start; padding: 7px 0 4px; border: 0; border-bottom: 1px solid #bfc7bd; border-radius: 0; background: none; color: var(--ink); font: 12px/1.5 var(--font-ui); text-decoration: none; box-shadow: none; transform: none; }
.library-subpage :is(.read-button,.book-card-link,.view-book-link):hover { color: var(--old-gold); border-color: var(--old-gold); background: none; box-shadow: none; }
.library-subpage .series-volume-card { grid-template-columns: 84px minmax(0,1fr) auto; gap: 25px; }
.library-subpage .series-volume-index { color: var(--old-gold); font: 600 10px/1.6 var(--font-ui); letter-spacing: .08em; }
.library-subpage .series-volume-card p { margin: 8px 0 13px; color: var(--muted-ink); font: 16px/1.75 Georgia,serif; }
.library-subpage .series-region-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.library-subpage :is(.archive-faq-grid,.faq-grid) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.library-subpage :is(.archive-faq-card,.faq-item) { background: none; padding: 23px 0; border-width: 1px 0 0; border-radius: 0; }
.library-subpage :is(.archive-faq-card,.faq-item) h3 { margin: 0 0 12px; font-size: 21px; }
.library-subpage :is(.archive-faq-card,.faq-item) p { font: 14px/1.75 var(--font-ui); color: var(--muted-ink); }
/* Character index, profiles and relationship lists. */
.library-subpage .character-profile { padding: 0; margin: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.library-subpage .character-header { display: flex; align-items: center; gap: 30px; padding: 34px 0; border-bottom: 1px solid var(--rule); border-radius: 0; background: none; text-align: left; }
.library-subpage .character-header::after { display: none; }
.library-subpage .character-header-info { min-width: 0; text-align: left; }
.library-subpage .character-header-info h1 { margin: 0 0 13px; }
.library-subpage .character-header-info .character-name-cn { color: var(--muted-ink); font-size: 18px; }
.library-subpage .character-avatar-large { width: 104px; height: 104px; min-width: 104px; margin: 0; border: 1px solid var(--rule); background: #e9eadf; border-radius: 4px; box-shadow: none; }
.library-subpage .character-header :is(.character-title-large,.character-aliases) { font: 13px/1.7 var(--font-ui); color: var(--muted-ink); }
.library-subpage .character-profile > section { max-width: 76ch; margin: 30px 0 0 134px; padding: 0; border: 0; border-radius: 0; background: none; }
.library-subpage .character-profile > section h2 { margin: 0 0 15px; font-size: 27px; }
.library-subpage .character-profile > section p { font: 18px/1.8 Georgia,serif; color: var(--ink); }
.library-subpage .book-item-detailed { margin: 0; padding: 19px 0; border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; background: none; }
.library-subpage .character-books .book-title a { font: 21px/1.35 Georgia,serif; color: var(--ink); }
.library-subpage .character-books .book-description { font: 14px/1.75 var(--font-ui); color: var(--muted-ink); }
.library-subpage .related-links { margin: 36px 0; padding-top: 25px; border-top: 1px solid var(--rule); }
.library-subpage .links-grid { display: flex; gap: 14px 28px; flex-wrap: wrap; }
.library-subpage .link-card { padding: 7px 0; border: 0; border-bottom: 1px solid #bfc7bd; border-radius: 0; background: none; color: var(--ink); font: 12px/1.6 var(--font-ui); transform: none; box-shadow: none; }
.library-subpage .relationship-container { max-width: none; padding: 0; }
.library-subpage .relationship-header { margin-bottom: 0; }
.library-subpage .stats-bar { justify-content: flex-start; gap: 36px; margin: 0 0 26px; padding: 20px 0; border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; background: none; }
.library-subpage .stat-box { text-align: left; }
.library-subpage .stat-box .stat-number { font: 500 23px/1.4 var(--font-ui); color: var(--ink); }
.library-subpage .stat-box .stat-label { font: 11px/1.6 var(--font-ui); letter-spacing: 0; text-transform: none; }
.library-subpage .filter-section { align-items: start; }
.library-subpage .filter-section > label { padding-top: 9px; font: 12px/1.6 var(--font-ui); }
.library-subpage .relationship-section .book-card { padding: 24px 0; margin: 0; border: 0; border-top: 1px solid var(--rule); border-radius: 0; background: none; box-shadow: none; transform: none; }
.library-subpage .relationship-section .book-title { font-size: 24px; margin: 0 0 18px; }
.library-subpage .relationship-section .book-title a { color: var(--ink); }
.library-subpage .character-chip { border: 1px solid var(--rule); border-radius: 3px; padding: 6px 10px; gap: 9px; background: #fffef9; font: 12px/1.5 var(--font-ui); transform: none; }
.library-subpage .character-chip:hover { background: #ecefe4; transform: none; }
.library-subpage .character-chip img,.library-subpage .character-chip .char-icon { width: 26px; height: 26px; }
/* Search states share one clear reading column. */
.search-subpage main { max-width: 1040px; }
.library-subpage .search-page { padding: 0; }
.library-subpage .search-hero { padding-bottom: 0; border: 0; margin-bottom: 24px; }
.library-subpage .search-box.large { padding: 0; margin: 0 0 32px; border: 0; border-radius: 0; background: none; box-shadow: none; }
.library-subpage .search-box.large form { gap: 12px; }
.library-subpage .search-box.large .search-input { min-width: 0; min-height: 48px; padding: 12px 16px; border: 1px solid #bfc7bd; border-radius: 3px; font: 14px/1.6 var(--font-ui); }
.library-subpage .search-box.large .search-button { min-height: 48px; padding: 12px 24px; font-family: var(--font-ui); background: var(--ink); }
.library-subpage .search-suggestions { padding: 0; margin-top: 32px; text-align: left; }
.library-subpage .search-suggestions h2 { margin: 26px 0 16px; font-size: 25px; }
.library-subpage .suggestion-tags { justify-content: flex-start; }
.library-subpage .suggestion-tag,.library-subpage .region-quick-link { border-radius: 3px; background: #fffef9; border-color: var(--rule); color: var(--ink); font: 13px/1.6 var(--font-ui); padding: 11px 14px; box-shadow: none; transform: none; }
.library-subpage .region-quick-links { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.library-subpage .search-result-item { padding: 23px 0; margin: 0; border: 0; border-top: 1px solid var(--rule); border-radius: 0; background: none; box-shadow: none; }
.library-subpage .search-result-item .book-header { padding: 0; background: none; border: 0; }
.library-subpage .search-result-item h3 { margin: 0; font-size: 25px; }
.library-subpage .search-result-item .book-excerpt { padding: 0; margin: 14px 0; max-height: none; border: 0; border-radius: 0; background: none; text-align: left; }
.library-subpage .search-result-item .book-excerpt::after { display: none; }
.library-subpage .no-results-box { padding: 24px 0; border: 0; border-top: 1px solid var(--rule); border-radius: 0; background: none; text-align: left; }
.library-subpage .no-results-box strong { overflow-wrap: anywhere; }
.library-subpage .no-results-box > p { font: 15px/1.8 var(--font-ui); }
.library-subpage .search-tips { padding: 20px 0 0; max-width: 65ch; margin: 0; border: 0; border-radius: 0; background: none; }
.library-subpage .search-tips h3 { font-size: 21px; }
.library-subpage .search-tips li { font: 14px/1.8 var(--font-ui); }
.library-subpage .character-results-section { margin: 30px 0; }
.library-subpage .character-result-card { border-radius: 3px; background: #fffef9; box-shadow: none; transform: none; }
/* Information pages use a comfortable measure instead of nested padded cards. */
.document-subpage main { max-width: 884px; padding-bottom: 50px; }
.document-subpage .book-container { max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: none; }
.document-subpage .book-header { display: block; padding: 0; margin: 34px 0 28px; border: 0; background: none; }
.document-subpage .document-title { margin: 0; }
.document-subpage .book-content { max-width: 72ch; padding: 0; font: 18px/1.85 Georgia,serif; }
.document-subpage .book-content :is(p,ul,ol) { margin: 1em 0; font: inherit; text-align: left; }
.document-subpage .book-content h2 { margin: 1.5em 0 .6em; font-size: 26px; }
.document-subpage .book-content a { color: var(--ink); text-decoration-color: #a4afa0; text-underline-offset: 3px; }
.document-subpage .source-snapshot { margin: 24px 0; }
.library-subpage .error-container { padding: 60px 0 80px; max-width: 680px; margin: 0 auto; text-align: left; }
.library-subpage .error-code { font: 400 60px/1.1 Georgia,serif; letter-spacing: -.05em; color: var(--old-gold); }
.library-subpage .error-title { margin: 22px 0 16px; }
.library-subpage .error-message { font: 16px/1.8 var(--font-ui); }
.library-subpage .error-actions { justify-content: flex-start; margin-top: 25px; }
@media (max-width: 800px) {
  .library-subpage main { padding: 0 22px 28px; }
  .library-subpage .character-profile > section { margin-left: 0; }
  .library-subpage .series-region-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .library-subpage .series-volume-card { grid-template-columns: 1fr; gap: 12px; }
  .library-subpage .series-volume-actions { justify-items: start; }
}
@media (max-width: 580px) {
  .library-subpage main { padding: 0 20px 25px; }
  .library-subpage main :is(h1,.document-title) { font-size: 32px; line-height: 1.2; }
  .library-subpage main :is(h2,.section-title) { font-size: 25px; }
  .library-subpage main :is(h3,.book-title) { font-size: 21px; }
  .library-subpage :is(.topic-hero,.relationship-header,.search-hero) { padding: 27px 0 23px; margin-bottom: 24px; }
  .library-subpage :is(.topic-hero,.relationship-header,.search-hero) > p { font-size: 14px; line-height: 1.65; }
  .library-subpage .topic-stats { gap: 24px; margin-top: 19px; }
  .library-subpage .topic-stats strong { font-size: 20px; }
  .library-subpage .hero-actions { gap: 8px; margin-top: 20px; }
  .library-subpage :is(.hero-action,.error-link) { flex: 0 1 auto; width: auto; padding: 9px 12px; font-size: 11px; }
  .library-subpage :is(.topic-card,.topic-overview-card,.series-guide-card,.series-volume-card,.source-trail-card,.source-trail-evidence-card,.coverage-quality-card,.library-note,.book-grid .book-card) { padding: 19px; }
  .library-subpage :is(.topic-card,.series-guide-card,.source-trail-card) h2 { font-size: 24px; }
  .library-subpage .character-header { flex-direction: row; align-items: start; gap: 18px; padding: 28px 0; }
  .library-subpage .character-avatar-large { width: 70px; height: 70px; min-width: 70px; }
  .library-subpage .character-header-info h1 { font-size: 30px; }
  .library-subpage .character-profile > section { margin-top: 27px; }
  .library-subpage .character-profile > section p { font-size: 17px; }
  .library-subpage .stats-bar { gap: 18px 25px; }
  .library-subpage .stat-box .stat-label { max-width: 125px; font-size: 10px; }
  .library-subpage .character-chip { max-width: 100%; }
  .library-subpage .search-box.large .search-input { font-size: 16px; width: 100%; }
  .library-subpage .search-box.large .search-button { width: auto; padding: 10px 20px; }
  .library-subpage .region-quick-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .library-subpage .region-quick-link { padding: 10px 9px; font-size: 12px; gap: 7px; }
  .library-subpage .no-results-box { padding: 18px 0; }
  .document-subpage .book-content { font-size: 17px; line-height: 1.8; }
  .document-subpage .book-header { margin: 27px 0 23px; }
  .library-subpage .error-container { padding: 40px 0 55px; }
}
@media (max-width: 359px) { .library-subpage main { padding-left: 16px; padding-right: 16px; } }

.library-subpage main > section { content-visibility: visible; contain-intrinsic-size: auto; }
.library-subpage .error-container { border: 0; border-radius: 0; background: none; box-shadow: none; }
@media (max-width: 580px) {
  .library-subpage :is(.topic-card-grid,.series-card-grid,.source-trail-grid,.source-trail-evidence-grid,.topic-overview-section,.book-grid,.archive-faq-grid,.faq-grid) { grid-template-columns: minmax(0,1fr); gap: 16px; }
}
.library-subpage .coverage-metric-card { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 3px 14px; padding: 17px 0; border: 0; border-top: 1px solid var(--rule); border-radius: 0; background: none; box-shadow: none; }
.library-subpage .coverage-metric-card strong { grid-row: 1 / span 2; color: var(--ink); font: 500 23px/1.35 var(--font-ui); }
.library-subpage .coverage-metric-card h3 { margin: 0; font-size: 20px; }
.library-subpage .coverage-metric-card p { grid-column: 2; margin: 0; color: var(--muted-ink); font: 11px/1.6 var(--font-ui); }
@media (max-width: 580px) { .library-subpage .series-region-grid { grid-template-columns: minmax(0,1fr); gap: 0; } }
.library-subpage .source-trail-meta-row { display: flex; flex-wrap: wrap; gap: 7px 16px; }
.library-subpage .source-trail-meta-row span { padding: 0; background: none; border: 0; border-radius: 0; color: var(--muted-ink); font: 11px/1.6 var(--font-ui); }
.library-subpage .character-card h2 { margin: 0 0 6px; font-size: 20px; line-height: 1.3; }
