/* 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; }

/* Venue records: concise metadata followed by episode and analysis registers. */
.ledger-site:not(.ledger-site--research) .ledger-volume:has(.venue-ledger) {
    max-width: var(--ledger-record-width);
}
.ledger-paper .venue-ledger .ledger-tabs { margin-block: 12px 16px; }
.ledger-paper .venue-ledger .scope-ledger { margin-block: 0 20px; }
.ledger-paper .venue-ledger .scope-ledger dd { text-align: right; }
.ledger-paper .venue-ledger .statistics-section-body { padding-bottom: 0; }
.ledger-paper .venue-ledger .statistics-main > .page-section { margin-block: 0 24px; }
.ledger-paper .venue-ledger .statistics-section { margin-bottom: 24px; }
.ledger-paper .venue-ledger .statistics-section:last-child { margin-bottom: 0; }
.ledger-paper .venue-ledger .venue-metadata { margin-bottom: 24px; }
.ledger-paper .venue-ledger .venue-metadata p { max-width: 75ch; margin: 0; }
.ledger-paper .venue-ledger .data-table th,
.ledger-paper .venue-ledger .data-table td { padding-block: var(--ledger-row-padding); }
.ledger-paper .venue-ledger .venue-facts { min-width: 0; width: 100%; table-layout: fixed; }
.ledger-paper .venue-ledger .venue-facts th { width: 35%; text-align: left; }
.ledger-paper .venue-ledger .venue-facts td { text-align: right; overflow-wrap: anywhere; }

/* Two-cell ledger rows place their heading/value pairs at opposite edges.
   Wider comparison tables retain their existing column alignment. */
.ledger-paper .data-table tr:has(> :first-child:nth-last-child(2)) > :first-child {
    text-align: left;
}
.ledger-paper .data-table tr:has(> :first-child:nth-last-child(2)) > :last-child {
    text-align: right;
}

/* Classification profiles use a moderate archive frame; catalogues and
   research retain room for multi-column comparisons. */
.ledger-site:not(.ledger-site--research) .ledger-volume:has(.classification-ledger) {
    max-width: var(--ledger-record-width);
}
.ledger-paper .classification-ledger .ledger-tabs { margin-block: 12px 16px; }
.ledger-paper .classification-ledger .page-description p { max-width: 75ch; }
.ledger-paper .classification-ledger .statistics-section-body { padding-bottom: 0; }
.ledger-paper .classification-ledger .statistics-main > .page-section { margin-block: 0 24px; }
.ledger-paper .classification-ledger .statistics-section { margin-bottom: 24px; }
.ledger-paper .classification-ledger .statistics-section:last-child { margin-bottom: 0; }
.ledger-paper .classification-ledger .detail-ledger-table th:first-child { width: auto; }
.ledger-paper .classification-ledger .data-table th,
.ledger-paper .classification-ledger .data-table td { padding-block: var(--ledger-row-padding); }
/* Short summaries fit small screens; longer registers scroll locally. */
.ledger-paper .classification-ledger .detail-ledger-table:has(thead tr > :first-child:nth-last-child(-n+2)) {
    min-width: 0;
}
.ledger-paper .catalogue-ledger .search-panel { margin-block: 0; }
.ledger-paper .catalogue-ledger .search-row { margin-block: 0 16px; }
.ledger-paper .catalogue-ledger form > details > .search-row { margin-top: 16px; }
.ledger-paper .catalogue-ledger form > .search-actions { margin-top: 16px; }
.ledger-paper .catalogue-ledger .data-table caption { text-align: left; padding: 0 10px 12px; }

/* Analytical registers retain their width and share the compact section rhythm. */
.ledger-paper .analysis-ledger .ledger-tabs { margin-block: 12px 16px; }
.ledger-paper .analysis-ledger .scope-ledger { margin-block: 0 24px; }
.ledger-paper .analysis-ledger .scope-ledger dd { text-align: right; }
.ledger-paper .analysis-ledger .statistics-section-body { padding-bottom: 0; }
.ledger-paper .analysis-ledger .statistics-section { margin-bottom: 24px; }
.ledger-paper .analysis-ledger .statistics-section:last-child { margin-bottom: 0; }
.ledger-paper .analysis-ledger .statistics-main > .page-section { margin-block: 0 24px; }
.ledger-paper .analysis-ledger .research-comparison-controls .search-row { margin-block: 0 16px; }
.ledger-paper .analysis-ledger .advanced-filters > .search-row { margin-top: 16px; }
.ledger-paper .analysis-ledger .research-comparison-controls button[type="submit"] { margin-top: 16px; }
.ledger-paper .analysis-ledger .data-table th,
.ledger-paper .analysis-ledger .data-table td { padding-block: var(--ledger-row-padding); }
