[data-library] { max-width: 76rem; min-width: 0; overflow-wrap: anywhere; }
[data-library] h1, [data-library] h2, [data-library] h3 { max-width: 100%; }
[data-library] a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; max-width: 100%; }
[data-library] button, [data-library] input, [data-library] select { min-width: 0; min-height: 44px; max-width: 100%; }
[data-library] button { min-width: 44px; white-space: normal; overflow-wrap: anywhere; }

.lib-identity { margin-block: var(--s2) var(--s6); color: var(--muted); }
.lib-identity:empty { display: none; }
.lib-jump { position: static; margin-bottom: var(--s6); }
.lib-jump ul { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0; padding: 0; list-style: none; }
.lib-jump li { min-width: 0; max-width: 100%; }
.lib-jump a { padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: 999px; background: var(--canvas); color: var(--ink); text-decoration: none; }
.lib-jump a:hover { background: var(--surface); text-decoration: underline; }

.lib-section { min-width: 0; margin-block: var(--s6); padding-top: var(--s5); border-top: 1px solid var(--line); }
.lib-label, .lib-meta { margin-bottom: var(--s3); color: var(--muted); font-size: .875rem; }
.lib-body, .lib-body > *, .lib-body li > * { min-width: 0; max-width: 100%; }
.lib-body > :last-child { margin-bottom: 0; }
.lib-body ul, .lib-body ol { display: grid; gap: var(--s3); margin: 0 0 var(--s4); padding: 0; list-style: none; }
.lib-card, .lib-row, .lib-body li { padding: var(--s4); border: 1px solid var(--line); border-radius: var(--r2); background: var(--surface); color: var(--ink); }
.lib-card { display: grid; gap: var(--s3); margin-bottom: var(--s4); }
.lib-card h3, .lib-body li h3, .lib-body .panel h3 { margin: 0 0 var(--s3); }
.lib-card p, .lib-body li p { margin-bottom: var(--s2); }
.lib-title { color: var(--ink); font-weight: 600; }
.lib-snippet { white-space: pre-wrap; }
.lib-body li a > *, .lib-card a > * { min-width: 0; max-width: 100%; }
.lib-actions, .lib-filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); margin-block: var(--s3); }
.lib-filters > * { flex: 1 1 12rem; min-width: 0; max-width: 100%; }
.lib-body input[type="search"], .lib-body select { width: 100%; padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.lib-body button:not(.button):not(.pill) { padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); cursor: pointer; }
.lib-body button:not(.button):not(.pill):hover { background: var(--surface); }
.lib-show-all, .lib-more { display: flex; justify-content: center; width: 100%; margin-top: var(--s3); }
.lib-body .panel { padding: var(--s4); }
.lib-body .import-control { min-width: 0; }
.lib-body input[type="file"] { min-width: 0; width: 100%; }
.lib-body input[type="file"]::file-selector-button { min-height: 44px; max-width: 100%; white-space: normal; }

[data-library] h1 { margin-bottom: 12px; }
.lib-identity { margin-bottom: 24px; font-size: .875rem; }
.lib-jump { padding-block: 10px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
.lib-jump ul { gap: 4px 12px; }
.lib-jump a { border: 0; border-radius: 8px; padding: 8px 12px; color: var(--muted); font-size: .875rem; gap: 8px; }
.lib-jump a:hover { color: var(--ink); text-decoration: none; }
.lib-jump a[aria-current] { background: var(--surface); color: var(--ink); box-shadow: inset 0 -2px var(--active-marker); }
.lib-nav-count { font-size: .75rem; color: var(--muted); }
.lib-section { margin-block: 32px; padding-top: 24px; scroll-margin-top: 24px; }
.lib-section h2 { font-size: 1.625rem; margin-bottom: 20px; }
.lib-card, .lib-body li { border-radius: 12px; padding: 20px; background: var(--canvas); }
.lib-card h3, .lib-body li h3 { font-size: 1.25rem; line-height: 1.3; }
.lib-body .button { width: fit-content; min-height: 44px; padding-inline: 18px; border-radius: 8px; font-size: .875rem; }
.lib-meta { display: block; line-height: 1.5; }
.lib-body .day-card > a { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.lib-kind { margin: 0 0 10px; color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .09em; }
.lib-continue-copy { min-width: 0; }
#lib-continue .lib-body { display: grid; gap: 20px; }
#lib-continue .lib-card { margin: 0; padding: 24px; background: var(--surface); }
#lib-continue .lib-continue-book { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 24px; align-items: center; }
#lib-continue .lib-continue-course { display: flex; align-items: center; }
#lib-continue .lib-title { margin: 0 0 12px; font-size: 1.5rem; }
#lib-continue .button { margin-top: 12px; background: var(--primary-bg); color: var(--primary-text); border-color: var(--primary-bg); }
#lib-continue .button:hover { background: var(--primary-bg-hover); }
.lib-book-cover { width: 100%; aspect-ratio: 2 / 3; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; flex-shrink: 0; border: 1px solid var(--line); border-radius: 5px; padding: 14px; background: #eee6d5; color: #282520; box-shadow: 0 3px 8px rgb(0 0 0 / .07); transition: transform 160ms cubic-bezier(.2,.8,.2,1), box-shadow 160ms; overflow: hidden; }
.lib-cover-imprint { font-size: 6px; line-height: 1.5; letter-spacing: .12em; }
.lib-cover-title { font: 400 1.125rem/1.25 var(--serif); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.lib-cover-author { font-size: .625rem; }
.lib-book-cover { position: relative; }
.lib-cover-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lib-read-heard { display: flex !important; width: fit-content; margin-top: 8px; color: var(--ink); font-size: .875rem; text-underline-offset: 3px; }
.lib-body .lib-book-card { padding: 16px; margin: 0; }
.lib-body .lib-book-card .lib-card-link { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: 18px; width: 100%; text-decoration: none; padding: 0; }
.lib-book-copy { min-width: 0; }
.lib-book-copy .lib-title { display: block; font: 400 1.125rem/1.3 var(--serif); margin-bottom: 8px; }
.lib-book-copy .lib-meta { margin-bottom: 4px; font-size: .8125rem; }
.lib-reading-progress { display: block; height: 3px; background: var(--line); border-radius: 2px; margin-top: 14px; overflow: hidden; }
.lib-reading-progress > span { display: block; height: 100%; background: var(--ink); }
.lib-card-link:focus-visible { outline: 2px solid var(--focus); outline-offset: 6px; border-radius: 5px; }
.lib-card-link:focus-visible .lib-book-cover { transform: translateY(-3px); }
.lib-bookmark-card .lib-bookmark-label { font-size: .8125rem; color: var(--muted); }
.lib-bookmark-card .lib-snippet { font-family: var(--serif); font-size: 1.0625rem; line-height: 1.6; padding-left: 16px; border-left: 2px solid var(--line); margin-block: 10px 14px; }
.lib-show-all, .lib-more { width: fit-content; margin-left: auto; background: var(--canvas); color: var(--ink); }
.lib-empty { padding: 32px; margin-block: 32px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.lib-empty h2 { margin-bottom: 12px; }
.lib-empty p { color: var(--muted); }
#lib-settings .lib-body { display: grid; gap: 20px; }
#lib-settings .panel { margin: 0; padding: 24px; background: var(--surface); }
#lib-settings .lib-body > p { grid-column: 1 / -1; }
.library-sources { width: min(76rem, calc(100% - 2rem)); margin: 0 auto 32px; border-top: 1px solid var(--line); }
.library-sources > summary { min-height: 44px; padding-block: 12px; font-size: .8125rem; color: var(--muted); cursor: pointer; }
.library-sources .site-footer { border: 0; padding-block: 16px; }
.library-sources .footer-inner { width: 100%; }
:root[data-theme="dark"] .lib-book-cover { background: #29271f; color: #eee6d5; }
@media (min-width: 1000px) {
  #lib-continue .lib-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #lib-books .lib-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  #lib-courses .lib-list, #lib-notes .lib-list, #lib-settings .lib-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (hover: hover) and (pointer: fine) {
  .lib-card-link:hover .lib-book-cover { transform: translateY(-3px); box-shadow: 0 8px 18px rgb(0 0 0 / .13); }
  .lib-card-link:active .lib-book-cover { transform: translateY(-1px); }
}
@media (max-width: 40rem) {
  .lib-jump { margin-bottom: 20px; }
  .lib-jump ul { gap: 2px; }
  #lib-continue .lib-card { padding: 16px; }
  #lib-continue .lib-continue-book { grid-template-columns: 88px minmax(0, 1fr); gap: 16px; }
  #lib-continue .lib-title { font-size: 1.25rem; }
  .lib-book-cover { padding: 10px; }
  .lib-cover-title { font-size: 1rem; }
  .lib-card, .lib-body li { padding: 16px; }
  .lib-body .lib-book-card .lib-card-link { grid-template-columns: 76px minmax(0, 1fr); gap: 16px; }
  #lib-settings .panel, .lib-empty { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  [data-library], [data-library] * { scroll-behavior: auto; animation: none; transition: none; }
  .lib-card-link:is(:hover, :focus-visible, :active) .lib-book-cover { transform: none; }
}

.lib-book-cover.has-art{padding:0}
