.fatebook-reader, .fatebook-tool-bridge {
    --book-accent:#594765;
    --book-hover:#45354F;
    --book-ink:#353139;
    --book-muted:#6D6573;
    --book-tint:#F5F1F8;
    --book-line:#E4DCE9;
}
/* Shared report reader: offer stays separate from streamed content. */
.fatebook-reader {position:relative;max-width:100%;margin:1.5rem auto;color:var(--book-ink)}
.fatebook-reader-heading {padding:1.25rem;border:1px solid var(--book-line);background:var(--book-tint);border-radius:.5rem}
.fatebook-reader-heading p {font-size:.875rem;margin:.75rem 0 0;line-height:1.8}
.fatebook-reader-state {font-weight:600;color:var(--book-accent)}
.fatebook-toc {display:flex;gap:.5rem;flex-wrap:wrap;padding:1rem 0;border-bottom:1px solid var(--book-line);margin-bottom:1.5rem}
.fatebook-toc[hidden],.fatebook-buybar[hidden],.fatebook-offer[hidden] {display:none!important}
.fatebook-toc a {padding:.35rem .7rem;background:var(--book-tint);border-radius:.25rem;color:var(--book-accent);font-size:.875rem}
.fatebook-reader-content {max-width:850px;margin:auto;line-height:1.85}
.fatebook-reader-content .markdown-content {line-height:1.85}
.fatebook-reader-content [id] {scroll-margin-top:1rem}
.fatebook-reader .paywall-block {background:var(--book-tint)!important;border:1px solid var(--book-line)!important;box-shadow:none!important;padding:1.25rem!important;text-align:left!important;border-radius:.5rem!important}
.fatebook-reader .paywall-block .text-danger {color:var(--book-muted)!important}
.fatebook-reader .paywall-block .fs-3 {display:none}
.fatebook-reader .paywall-block .fs-5 {font-size:.875rem!important}
.fatebook-reader .paywall-block h5 {font-size:1rem}
.fatebook-scope {font-size:.9rem;line-height:1.85;font-weight:500}
.fatebook-reader .paywall-preview {max-height:none;overflow:visible;mask-image:none;-webkit-mask-image:none;padding-bottom:.5rem}
.fatebook-reader .paywall-order-btn {background:var(--book-accent);border-color:var(--book-accent);color:white;font-size:.9rem;white-space:normal}
.fatebook-reader .paywall-order-btn:hover {background:var(--book-hover)}
.fatebook-buybar {position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--book-tint);border:1px solid var(--book-line);border-radius:.5rem;padding:1rem;box-shadow:0 -3px 15px #243b3312;margin-top:1.5rem}
.fatebook-offer-label {font-weight:600;font-size:.95rem}
.fatebook-offer-label small {display:block;font-size:.75rem;font-weight:400;color:var(--book-muted);margin-top:.25rem}
.fatebook-offer {scroll-margin-top:1rem;margin-top:2rem}
.fatebook-reader-error:not(:empty) {padding:1rem;margin:1rem 0;background:#fff5dd;border:1px solid #e5d9b2;border-radius:.5rem}
.fatebook-tool-bridge {border:1px solid var(--book-line);background:var(--book-tint);border-radius:.5rem;padding:1.5rem;margin:1.5rem 0}
@media(max-width:575.98px){
 .fatebook-buybar {gap:.5rem;padding:.75rem .6rem calc(.75rem + env(safe-area-inset-bottom));border-radius:0}
 .fatebook-offer-label {font-size:.8rem;flex:1}
 .fatebook-buybar button {max-width:50%;padding:.6rem}
 .fatebook-toc {flex-wrap:nowrap;overflow-x:auto}
 .fatebook-toc a {white-space:nowrap}
 .fatebook-reader-heading {padding:1rem}
}
.fatebook-more {padding:1rem;background:var(--book-tint);border:1px solid var(--book-line);border-radius:.5rem}
.fatebook-more summary {cursor:pointer;color:var(--book-accent);font-weight:600}
.fatebook-more[open] summary {margin-bottom:1rem}
.fatebook-more > div + div {margin-top:1rem}

/* Report typography follows reading roles, not the reused heading tag names.
   rem values correspond to 30/26/21/18/16px at the default 16px root size. */
:where(.fatebook-reader, .remote-fate-stream, .remote-everything-report) {
    --book-title-size: 1.875rem;
    --book-chapter-size: 1.625rem;
    --book-section-size: 1.3125rem;
    --book-detail-size: 1.125rem;
}
.fatebook-reader-content {font-size:1rem}
.remote-fate-report :is(h1,h2,h3,h4,h5,h6),
.remote-everything-header > h1 {line-height:1.45}
/* Main title: standalone specialist book or the combined book cover. */
.remote-fate-report > header > h1,
.remote-everything-header > h1 {
    font-size:var(--book-title-size, 1.875rem);
    font-weight:700;
}
/* A combined book's child reports are left-aligned chapters. */
.remote-fate-stream:has(> .remote-everything-header) > .remote-fate-report > header {
    text-align:left!important;
    padding-bottom:.75rem!important;
}
.remote-fate-stream:has(> .remote-everything-header) > .remote-fate-report > header > h1,
.remote-everything-report > .vstack > section > .card-body > h2 {
    font-size:var(--book-chapter-size);
    font-weight:700;
}
/* Section titles, including the server-rendered combined-report fallback. */
.remote-report-section > header > h2,
.remote-everything-report > .vstack > section > .card-body > .vstack > section > h3 {
    font-size:var(--book-section-size);
    font-weight:600;
}
/* Headings inside analysis text sit below the section title. */
.remote-fate-report .markdown-content :is(h1,h2,h3),
.remote-section-blocks > :is(h3,h4),
.remote-section-blocks > div > :is(h3,h4) {
    font-size:var(--book-detail-size, 1.125rem);
    font-weight:600;
}
.remote-fate-report .markdown-content h4 {font-size:1.0625rem}
.remote-fate-report .markdown-content :is(h5,h6) {font-size:1rem}
/* Preserve modest section gaps; give each child book more breathing room. */
.remote-fate-stream:has(> .remote-everything-header) > .remote-fate-report ~ .remote-fate-report,
.remote-everything-report > .vstack > section + section {margin-top:1.25rem}
@media(max-width:767.98px) {
    :where(.fatebook-reader, .remote-fate-stream, .remote-everything-report) {
        --book-title-size:1.625rem;
        --book-chapter-size:1.4375rem;
        --book-section-size:1.25rem;
    }
    .remote-fate-stream:has(> .remote-everything-header) > .remote-fate-report ~ .remote-fate-report,
    .remote-everything-report > .vstack > section + section {margin-top:.75rem}
}

/* One accent per site; body text and secondary labels remain neutral. */
.fatebook-reader .remote-fate-report :is(h1,h2,h3,h4,h5,h6):not(.text-danger),
.fatebook-reader .remote-everything-header > h1,
.fatebook-tool-bridge > h2,
.fatebook-reader .fatebook-offer h2 {
    color:var(--book-accent)!important;
}
.fatebook-reader .remote-fate-report .markdown-content,
.fatebook-reader .remote-fate-report .markdown-content blockquote {
    color:var(--book-ink);
}
.fatebook-reader :is(.remote-birth-info,.remote-fate-tags,.figure-caption),
.fatebook-reader .text-muted,
.fatebook-tool-bridge .text-muted {color:var(--book-muted)!important}
.fatebook-reader .paywall-block > p:not(.fatebook-scope),
.fatebook-reader .paywall-block strong.text-danger,
.fatebook-reader .paywall-table-row .small {
    color:var(--book-muted)!important;
    font-size:.875rem!important;
    font-weight:400!important;
}
.fatebook-reader .paywall-table-row > td {
    --bs-table-bg:var(--book-tint);
    background-color:var(--book-tint)!important;
    border-color:var(--book-line)!important;
    color:var(--book-ink)!important;
}
.fatebook-reader .border-bottom {border-bottom-color:var(--book-line)!important}
.fatebook-reader .fatebook-offer h2 {text-shadow:none!important}
.fatebook-reader .fatebook-offer .card-body > .d-flex .text-danger {
    color:var(--book-accent)!important;
}
.fatebook-reader .fatebook-offer .btn-primary {
    --bs-btn-bg:var(--book-accent);
    --bs-btn-border-color:var(--book-accent);
    --bs-btn-hover-bg:var(--book-hover);
    --bs-btn-hover-border-color:var(--book-hover);
    --bs-btn-active-bg:var(--book-hover);
    --bs-btn-active-border-color:var(--book-hover);
    --bs-btn-disabled-bg:var(--book-accent);
    --bs-btn-disabled-border-color:var(--book-accent);
}
.fatebook-reader .fatebook-offer .btn {box-shadow:none!important}
.fatebook-reader .btn-outline-primary {
    --bs-btn-color:var(--book-accent);
    --bs-btn-border-color:var(--book-accent);
    --bs-btn-hover-bg:var(--book-accent);
    --bs-btn-hover-border-color:var(--book-accent);
    --bs-btn-active-bg:var(--book-hover);
    --bs-btn-active-border-color:var(--book-hover);
}
.fatebook-tool-bridge .btn-primary {
    background:var(--book-accent);border-color:var(--book-accent);
}
.fatebook-tool-bridge .btn-primary:hover {background:var(--book-hover);border-color:var(--book-hover)}
.fatebook-reader :is(button,a,summary):focus-visible,
.fatebook-tool-bridge :is(button,a):focus-visible {
    outline:2px solid var(--book-accent);outline-offset:3px;box-shadow:none;
}
