/* Shared layout rhythm: preserve each register's data and table structure. */
.ledger-site {
    --ledger-section-space: 32px;
    --ledger-heading-space: 16px;
    --ledger-page-width: 1080px;
    --ledger-record-width: 1080px;
    --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); }


@font-face {
    font-family: 'Libre Baskerville'; src: url("../fonts/LibreBaskerville.809486dace94.ttf") format('truetype');
    font-weight: 400 700; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Libre Baskerville'; src: url("../fonts/LibreBaskerville-Italic.cdf3c15b18a2.ttf") format('truetype');
    font-weight: 400 700; font-style: italic; font-display: swap;
}
.ledger-site {
    --font-body: Baskerville, 'Libre Baskerville', Georgia, serif;
    --ledger-data-size: 1.0625rem;
}
/* The same book width applies to archive, research and account pages. */
.ledger-site .ledger-volume { max-width: var(--ledger-page-width); }
.ledger-paper .data-table :is(tbody, tfoot) td,
.ledger-paper .data-table :is(tbody, tfoot) td :is(a, span, strong),
.ledger-paper .fact-value,
.ledger-paper .fact-value a,
.ledger-paper .scope-ledger dd,
.ledger-paper .home-index .contents-row {
    font-family: var(--font-body);
    font-size: var(--ledger-data-size);
    font-variant-numeric: lining-nums tabular-nums;
}
/* Keep large comparison tables inside the shared paper width. */
.ledger-paper .statistics-layout-grid { grid-template-columns: 180px minmax(0, 1fr); gap: 24px; }
@media (max-width: 1000px) {
    .ledger-paper .statistics-layout-grid { grid-template-columns: minmax(0, 1fr); }
}

/* A muted olive-brown surround distinguishes the cover from the cream paper. */
.ledger-site { background: #302e26; }

/* Statistical summaries have peer columns, including their first column.
   Two-column registers retain their left/right edge alignment. */
.ledger-paper :is(.person-statistics-table, .detail-ledger-table) tr:has(> :nth-child(3)) > :first-child {
    text-align: center;
}

@media (max-width: 700px) {
    /* Episode facts fit the paper instead of inheriting comparison-table widths. */
    .ledger-paper .episode-layout .data-table { min-width: 0; width: 100%; }
    .ledger-paper .episode-layout :is(.episode-overview, .episode-related, .team-metadata, .team-results) colgroup { display: none; }
    .ledger-paper .episode-layout :is(.episode-overview, .episode-related) .data-table,
    .ledger-paper .episode-layout :is(.team-metadata, .team-results) { table-layout: fixed; }
    .ledger-paper .episode-layout :is(th, td) { overflow-wrap: anywhere; padding: 12px 6px; }
    .ledger-paper .episode-layout .data-table tr > td:first-child { width: auto; }
    .ledger-paper .episode-layout .ledger-tabs { gap: 4px 18px; }

    /* Each item becomes a ruled entry with readable label/value lines. */
    .ledger-paper .episode-items,
    .ledger-paper .episode-items :is(thead, tbody, tr, th, td) { display: block; }
    .ledger-paper .episode-items colgroup { display: none; }
    .ledger-paper .episode-items .ledger-column-headings {
        position: absolute; width: 1px; height: 1px; overflow: hidden;
        clip-path: inset(50%); white-space: nowrap;
    }
    .ledger-paper .episode-items tbody tr { padding: 12px 0; border-bottom: 1px solid var(--line); }
    .ledger-paper .episode-items tbody td { border: 0; padding: 6px; text-align: right; }
    .ledger-paper .episode-items tbody .episode-item-name { text-align: left; padding-bottom: 10px; }
    .ledger-paper .episode-items td[data-label] { display: flex; justify-content: space-between; gap: 16px; }
    .ledger-paper .episode-items td[data-label]::before {
        content: attr(data-label); text-align: left; color: #665647;
        font-family: var(--font-heading); font-variant-caps: small-caps;
    }
    .ledger-paper .episode-items td.episode-item-empty { display: none; }
}
