.book-preview {
  position: fixed; z-index: 20; width: min(440px, calc(100vw - 24px));
  max-height: calc(100vh - 24px); overflow: auto;
  background: var(--bg); color: var(--fg); border: 1px solid var(--line);
  border-radius: 12px; padding: 20px; box-shadow: 0 12px 40px #0003;
  font-size: 14px; line-height: 1.5;
}
.book-preview[hidden] { display: none; }
.book-preview-top { display: grid; grid-template-columns: 92px 1fr; gap: 18px; }
.book-preview-cover { width: 92px; height: 138px; display: grid; place-items: center;
  background: var(--line); border-radius: 4px; overflow: hidden; color: var(--dim);
  text-align: center; font-size: 12px; }
.book-preview-cover img { width: 100%; height: 100%; object-fit: contain; }
.book-preview h2 { font-size: 17px; line-height: 1.3; margin: 0 0 6px; font-weight: 600; }
.book-preview-author { margin: 0 0 8px; }
.book-preview-meta { color: var(--dim); font-size: 12px; }
.book-preview-genres { margin-top: 6px; }
.book-preview-summary { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.book-preview-summary strong { text-transform: capitalize; }
.book-preview-scores { font-size: 12px; color: var(--dim); margin-top: 4px; }
.book-preview-description { margin: 12px 0 0; display: -webkit-box;
  -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.book-preview-hint { margin: 12px 0 0; font-size: 12px; color: var(--dim); }
a[data-book-preview]:focus-visible { outline: 2px solid var(--fg); outline-offset: 3px; }
