/* Shared layout rhythm: preserve each register's data and table structure. */
.ledger-site {
    --ledger-section-space: 32px;
    --ledger-heading-space: 16px;
    --ledger-page-width: 1360px;
    --ledger-record-width: 1200px;
    --ledger-row-padding: 12px;
    --ledger-rule: #8a704e;
    --ledger-section-size: 1.3rem;
}
.ledger-volume { max-width: var(--ledger-page-width); }
.ledger-footer { text-align: center; }
.ledger-footer p { max-width: 760px; margin-inline: auto; }
.ledger-footer nav { justify-content: center; }

/* title, tabs and episode/series registers. */
.ledger-paper .ledger-content { padding-top: 24px; }
.ledger-paper .ledger-content .hero { padding-top: 0; }
.ledger-paper .ledger-content > .hero,
.ledger-paper .index-header { margin: 0 0 24px; }
.ledger-paper .hero-title { margin: 0; line-height: 1.15; }
.ledger-paper .ledger-tabs { flex-wrap: wrap; gap: 8px 24px; margin-top: 20px; }
.ledger-paper .ledger-tabs a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ledger-paper .ledger-tabs a:focus-visible { outline: 2px solid var(--link); outline-offset: 4px; }
.ledger-paper .episode-layout { display: block; }
.ledger-paper .episode-layout .episode-summary { gap: var(--ledger-section-space); margin-bottom: var(--ledger-section-space); }
.ledger-paper .episode-summary > .team-ledger-sections { gap: var(--ledger-section-space); }
.ledger-paper .series-register h2 { margin: var(--ledger-section-space) 0 var(--ledger-heading-space); font-size: 1.5rem; }
.ledger-paper .series-register .page-section > h2:first-child { margin-top: 0; }

/* profile, object and place directories share one section rhythm. */
.ledger-paper .index-layout { display: block; }
.ledger-paper .page-section + .page-section { margin-top: var(--ledger-section-space); }
.ledger-paper .hero + .page-section { margin-top: 24px; }
.ledger-paper .person-ledger .page-section,
.ledger-paper .item-summary > .detail-card { margin-bottom: var(--ledger-section-space); }
.ledger-paper .person-register > .panel + .panel { margin-top: var(--ledger-section-space); }
.ledger-paper .card-title,
.ledger-paper .section-heading { margin-top: 0; margin-bottom: var(--ledger-heading-space); }
.ledger-paper .person-biography { max-width: 75ch; }

/* comparative tables keep local scrolling and clear section headings. */
.ledger-paper .table-shell { min-width: 0; max-width: 100%; }
.ledger-paper .statistics-section { margin-bottom: var(--ledger-section-space); }
.ledger-paper .statistics-main .performance-section { margin-block: var(--ledger-section-space); }
.ledger-paper .statistics-section > summary,
.ledger-paper .statistics-section > header.statistics-section-title { padding-block: var(--ledger-heading-space); }
.ledger-paper .statistics-section-body > .table-shell { margin-top: 0; }
@media (max-width: 700px) {
    .ledger-site { --ledger-section-space: 24px; }
    .ledger-paper .ledger-tabs { gap: 4px 20px; }
    .ledger-footer { padding-inline: 16px; }
}

.ledger-paper .statistics-sidebar .statistics-methodology-link a { display: inline; }

/* Enhanced item/person sections own their spacing, rather than stacking
   wrapper padding and margins around an already ruled statistics section. */
.ledger-paper .item-layout .detail-card:has(> .statistics-section) {
    padding: 0;
    border-top: 0;
    margin-bottom: 24px;
}
.ledger-paper :is(.item-layout, .person-ledger) .statistics-section {
    margin-bottom: 24px;
}
.ledger-paper :is(.item-layout, .person-ledger) .statistics-section:last-child {
    margin-bottom: 0;
}
.ledger-paper :is(.item-layout, .person-ledger) .statistics-section-body {
    padding-bottom: 0;
}
.ledger-paper .person-ledger .statistics-main > .page-section {
    margin-block: 0 24px;
}
.ledger-paper .person-ledger .ledger-tabs {
    margin-block: 12px 16px;
}
.ledger-paper .person-ledger nav[aria-label="Person appearance pages"] {
    margin-top: 20px;
}


/* Page families share the shell, not a single content width or density.
   Research retains the wider register even when its subject is a person. */
.ledger-site:not(.ledger-site--research) .ledger-volume:has(.episode-layout, .person-ledger) {
    max-width: var(--ledger-record-width);
}
.ledger-paper :is(.index-layout, .series-register, .records-layout) .data-table th,
.ledger-paper :is(.index-layout, .series-register, .records-layout) .data-table td {
    padding-block: var(--ledger-row-padding);
}
.ledger-paper .episode-layout .data-table td,
.ledger-paper .episode-layout .data-table tfoot td {
    padding-block: 14px;
}
.ledger-paper .series-register .card-title,
.ledger-paper .object-place-ledger .card-title {
    font-size: var(--ledger-section-size);
}
.ledger-paper nav.search-actions[aria-label] {
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 12px 24px;
}
.ledger-paper :is(.data-table, .fact-value, .quick-link-list, .search-actions) a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ledger-paper :is(.data-table, .fact-value, .quick-link-list, .search-actions) a:focus-visible {
    outline: 2px solid var(--link);
    outline-offset: 3px;
}
/* Remove a duplicate frame only when the section enhancer supplies its own rule. */
.ledger-paper :is(.person-register, .object-place-ledger, .records-layout) :is(.card, .panel):has(> .statistics-section) {
    border-top: 0;
    padding-block: 0;
}
@media (max-width: 700px) {
    .ledger-site { --ledger-row-padding: 10px; }
}

/* Team metadata values align with the right edge of their ruled rows. */
.ledger-paper .episode-layout .team-metadata tbody td.ledger-value-right { text-align: right; }

/* Right-aligned values for two-column record summaries. */
.ledger-paper .episode-layout :is(.episode-overview, .episode-related) tbody td:last-child,
.ledger-paper .account-summary .fact-value { text-align: right; }
.ledger-paper .account-summary-actions { margin-top: 24px; gap: 16px 28px; }
.ledger-paper .account-summary-actions > a,
.ledger-paper .account-summary-actions .account-action {
    font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.4;
}
.ledger-footer .footer-membership {
    font-weight: 600; background: #5b4030; border-color: #cbb998;
}
.ledger-footer .footer-membership:hover { background: #f1e5cc; color: #29221d; }
