.book-detail .book-hero { grid-template-columns: 230px minmax(0, 1fr); gap: 32px; padding: 16px 24px; margin-bottom: 20px; align-items: start; }
.book-presentation-cover { padding-top: 4px; --book-ratio: .6984; }
.book-presentation-cover .book-mockup { --book-height: 300px; --book-angle: -12deg; margin: 0 auto 12px; }
.book-presentation-cover .book-mockup-front { box-shadow: 3px 5px 6px color-mix(in srgb,var(--shadow-color) 16%,transparent), 10px 18px 23px -7px color-mix(in srgb,var(--shadow-color) 30%,transparent); }
.book-hero-content { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.book-hero .story-content-warnings { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.book-hero .book-heading h1 { margin: 0 0 8px; line-height: 1.15; overflow-wrap: anywhere; }
.book-primary-actions .book-library-form { margin: 0; }
.book-primary-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.book-hero .book-primary-actions .button { margin: 0; }
.book-hero .book-library-action { color: var(--green); }
.book-reading-position { width: 100%; margin: 0; font-size: var(--text-small); }
.book-secondary-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
.book-secondary-actions form, .book-secondary-actions .reading-session-actions { margin: 0; }
.book-secondary-actions .text-button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 0; font-size: var(--text-small); line-height: 1.4; text-decoration: none; }
.book-secondary-actions .text-button:hover { text-decoration: underline; text-underline-offset: 3px; }
.book-hero .post-actions { margin: 0; padding: 0; gap: 4px; font-size: var(--text-small); }
.book-hero .book-sharing-actions { display: inline-flex; align-items: center; gap: 4px; }
.book-hero .post-actions > a, .book-hero .book-sharing-actions > :is(button, .book-report-action) { min-height: 44px; padding-inline: 6px; gap: 6px; font-size: inherit; }
.book-hero .like-actions .text-button { min-height: 44px; padding: 10px 14px; gap: 8px; font-size: inherit; }
.book-hero .book-report-action { border-radius: 10px; }
.book-hero .book-report-action:hover { color: var(--green); background: var(--surface-soft); }
.book-report-editor .reading-editor-actions { flex-wrap: wrap; justify-content: flex-end; }
.book-hero .integration-note { font-size: var(--text-small); line-height: 1.5; padding: 10px 14px; }
.book-metadata { background: var(--surface-soft); border: 1px solid var(--line); border-radius: 10px; padding: 24px; }
.book-metadata h2 { font-size: var(--text-section); }
.book-metadata dl { grid-template-columns: minmax(120px, 1fr) minmax(0, 3fr); gap: 0; margin: 0; }
.book-metadata dt, .book-metadata dd { padding: 12px 0; border-bottom: 1px solid var(--line); line-height: 1.5; overflow-wrap: anywhere; }
.book-metadata dt { color: var(--muted); padding-right: 20px; }
.book-metadata dt:last-of-type, .book-metadata dd:last-of-type { border-bottom: 0; }
@media(max-width:760px) {
    .book-detail .book-hero { grid-template-columns: 112px minmax(0, 1fr); gap: 16px; padding: 12px 0; }
    .book-hero-content { display: contents; }
    .book-presentation-cover { grid-column: 1; grid-row: 1; }
    .book-presentation-cover .book-mockup { --book-height: 154px; margin-bottom: 0; }
    .book-heading { grid-column: 2; grid-row: 1; min-width: 0; }
    .book-hero .book-heading h1 { font-size: clamp(1.25rem, 6vw, var(--text-section)); hyphens: auto; }
    .book-primary-actions, .book-secondary-actions, .book-hero .discussion-interactions { grid-column: 1 / -1; }
    .book-primary-actions .button { flex: 1 1 240px; justify-content: center; }
    .book-detail .book-hero .post-actions { margin-left: 0; }
    .book-metadata { padding: 18px; }
    .book-metadata dl { grid-template-columns: minmax(90px, 1fr) minmax(0, 2fr); font-size: var(--text-small); }
}
@media(max-width:420px) {
    .book-detail .book-hero { grid-template-columns: minmax(0, 1fr); }
    .book-presentation-cover { grid-row: auto; justify-self: center; }
    .book-heading { grid-column: 1; grid-row: auto; }
}

.book-credits { margin-top: 24px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: var(--text-small); }
.book-credits summary { width: fit-content; cursor: pointer; padding: 8px 0; }
.book-credits summary:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
.book-credits ul { margin: 8px 0; padding-left: 20px; line-height: 1.7; }
.book-credits li + li { margin-top: 6px; }

.book-share-menu { position: relative; }
.book-share-menu summary { cursor: pointer; display: flex; align-items: center; gap: 6px; list-style: none; }
.book-share-menu summary::-webkit-details-marker { display: none; }
.book-share-options { position: absolute; top: calc(100% + 8px); right: 0; z-index: 10; min-width: 220px; padding: 8px; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 8px 24px color-mix(in srgb,var(--shadow-color) 13.3%,transparent); }
.book-share-options > a, .book-share-options button { display: block; width: 100%; text-align: left; padding: 10px; font-size: var(--text-base); }
.book-detail .book-community { padding: 16px; margin-block: 16px; }
.book-detail .book-community-stats { margin-block: 12px; }
.book-detail [data-book-tabs-panel] { padding-inline: 42px; }
.book-detail .book-tabs { position: relative; padding: 0; gap: 24px; }
.book-tabs > a { min-width: 44px; min-height: 44px; padding-inline: 0; flex-shrink: 0; }
.book-tabs-indicator { display: none; position: absolute; bottom: 0; left: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--primary); pointer-events: none; }
.book-tabs[data-indicator-ready] .book-tabs-indicator { display: block; }
.book-tabs[data-indicator-ready] > a.active { border-bottom-color: transparent; }
.book-detail .book-tab { padding: 18px 0; }
html[data-focus-modality=pointer] .book-detail .book-tab:focus { outline: none; }
.book-chapters-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 20px; }
.book-tab .book-chapters-heading h2 { margin: 0; }
.book-chapter-total { padding: 5px 10px; border-radius: var(--radius-pill); background: var(--sage); color: var(--green); font-size: var(--text-small); }
.book-detail .chapter-list { display: grid; gap: 10px; margin: 0; padding: 0; }
.book-detail .chapter-list > li { margin: 0; padding: 0; border: 0; }
.book-detail .chapter-link { display: grid; grid-template-columns: 48px minmax(0, 1fr) 36px; align-items: center; gap: 16px; min-height: 86px; padding: 16px 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); box-shadow: 0 2px 0 var(--surface-soft); }
.chapter-number { position: relative; display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid color-mix(in srgb, var(--green) 18%, var(--sage)); border-radius: 12px; background: var(--sage); color: var(--green); font: 700 var(--text-card)/1 var(--font-display); font-variant-numeric: tabular-nums; }
.chapter-completed { position: absolute; top: -6px; right: -6px; display: grid; place-items: center; width: 20px; height: 20px; border: 2px solid var(--surface); border-radius: 50%; background: var(--green); color: var(--green-ink); font-size: 10px; }
.chapter-copy { min-width: 0; }
.chapter-title { font: 700 var(--text-card)/1.35 var(--font-display); overflow-wrap: anywhere; }
.chapter-arrow { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--surface-soft); color: var(--green); }
.book-detail .chapter-link:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; background: var(--surface-soft); }
@media (hover: hover) and (pointer: fine) {
    .book-detail .chapter-link:hover { border-color: var(--green); background: var(--surface-soft); box-shadow: 0 4px 14px var(--shadow); }
    .chapter-link:hover .chapter-number, .chapter-link:hover .chapter-arrow { background: var(--green); color: var(--green-ink); }
}
@media (prefers-reduced-motion: no-preference) {
    .chapter-link { transition: background .16s, border-color .16s, box-shadow .16s; }
    .chapter-number, .chapter-arrow { transition: background .16s, color .16s; }
    .chapter-arrow i { transition: transform .16s; }
    .chapter-link:hover .chapter-arrow i { transform: translateX(2px); }
}
@media (max-width: 600px) {
    .book-detail .chapter-link { grid-template-columns: 40px minmax(0, 1fr) 30px; gap: 12px; padding: 14px 12px; }
    .chapter-number { width: 40px; height: 44px; font-size: var(--text-base); }
    .chapter-title { font-size: var(--text-base); }
    .chapter-arrow { width: 30px; height: 30px; }
}
.book-detail .book-metadata { padding: 16px; }
.book-detail .book-metadata dt, .book-detail .book-metadata dd { padding-block: 7px; }
.merchant-icon { width: 18px; height: 18px; object-fit: contain; border-radius: 3px; flex: none; }

.book-tab > h2 { margin: 0 0 12px; }
.book-summary { margin: 0 0 32px; }
.book-summary + .book-metadata { margin-top: 0; }
.book-reviews-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
.book-tab .book-reviews-heading h2 { margin: 0; }
.book-reviews-heading .button { flex-shrink: 0; }
.book-reviews-empty { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.book-reviews-empty-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--sage); color: var(--green); font-size: var(--text-card); }
.book-reviews-empty-copy p { margin: 0; color: var(--muted); font-size: var(--text-small); line-height: 1.5; }
.book-reviews-empty-copy .book-reviews-empty-title { margin-bottom: 4px; color: var(--ink); font-size: var(--text-base); font-weight: 700; }
.book-reviews-empty .button { max-width: 100%; white-space: normal; }
@media (max-width: 760px) {
    .book-reviews-empty { grid-template-columns: 40px minmax(0, 1fr); padding: 20px; }
    .book-reviews-empty-icon { width: 40px; height: 40px; }
    .book-reviews-empty .button { grid-column: 1 / -1; justify-self: start; }
}

.review-rating { border: 0; padding: 0; margin: 24px 0; }
.review-rating legend { font-weight: 700; margin-bottom: 10px; }
.review-rating-stars { position: relative; width: 240px; height: 48px; }
.review-rating-art { display: flex; height: 48px; align-items: center; pointer-events: none; }
.review-rating-art i { width: 48px; text-align: center; font-size: 32px; background: linear-gradient(to right, var(--warning) var(--star-fill, 0%), var(--track) var(--star-fill, 0%)); background-clip: text; -webkit-text-fill-color: transparent; }
.review-rating-hit { position: absolute; top: 0; width: 24px; height: 48px; cursor: pointer; border-radius: 4px; }
.review-rating-hit input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.review-rating-hit:focus-within { outline: 2px solid var(--forest); outline-offset: 2px; }
.review-rating-hit--1 { left: 0; width: 48px; }
.review-rating-hit--2 { left: 48px; }
.review-rating-hit--3 { left: 72px; }
.review-rating-hit--4 { left: 96px; }
.review-rating-hit--5 { left: 120px; }
.review-rating-hit--6 { left: 144px; }
.review-rating-hit--7 { left: 168px; }
.review-rating-hit--8 { left: 192px; }
.review-rating-hit--9 { left: 216px; }
.review-rating output { display: block; margin-top: 6px; font-size: var(--text-small); color: var(--muted); }

.book-rating-summary { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; min-height: 36px; margin: 2px 0 0; color: var(--ink); text-decoration: none; }
.book-rating-stars { display: inline-flex; gap: 4px; color: var(--warning); font-size: 1.15rem; }
.book-rating-summary strong { font-size: var(--text-base); }
.book-rating-summary strong span, .book-rating-summary-count { font-size: var(--text-small); color: var(--muted); font-weight: 400; }
.book-rating-summary-count { text-decoration: underline; text-underline-offset: 3px; }
.book-rating-summary:hover .book-rating-summary-count { color: var(--ink); }
.book-rating-summary:focus-visible { outline: 2px solid var(--forest); outline-offset: 4px; border-radius: 4px; }

.book-author-details { display: flex; flex-direction: column; align-items: start; gap: 6px; margin-bottom: 4px; }
.book-hero .book-author-details .author-line { margin: 0; font-size: var(--text-base); line-height: 1.4; }
.book-author-details .book-author-genre { margin: 0; color: var(--muted); font-size: var(--text-small); }
.book-author-details .book-tags { margin: 0; color: var(--muted); font-size: var(--text-small); }
.book-tropes { display:flex; flex-wrap:wrap; gap:6px; width:100%; margin:8px 0; padding:0; list-style:none; }
.book-tropes li { padding:4px 9px; border:1px solid var(--line); border-radius:6px; background:var(--sage); color:var(--green); font-size:var(--text-small); }

@media(max-width:760px) { .book-detail [data-book-tabs-panel] { padding-inline: 0; } .book-detail .book-tabs { gap: 16px; } }

@media (max-width: 760px) { .book-primary-actions .book-library-form { flex: 1 1 240px; } .book-library-form .button { width: 100%; } }
