/* Shared TOC mechanics and neutral defaults. Only articles with a TOC get a shell. */
.publication-site .pub-reading-layout {
    --pub-toc-sidebar: 0;
    --pub-toc-offset: 24px;
    --pub-toc-color: var(--pub-text, #202428);
    --pub-toc-muted: var(--pub-muted, #5f6670);
    --pub-toc-accent: var(--pub-accent, #334155);
    --pub-toc-surface: var(--pub-surface, #f1f3f5);
    --pub-toc-line: var(--pub-line, #d8dce0);
    --pub-toc-radius: 2px;
    --pub-toc-font: var(--pub-body, Arial, sans-serif);
    --pub-toc-title-font: var(--pub-body, Arial, sans-serif);
    container: publication-reading / inline-size;
    width: 100%; min-width: 0; grid-column: 1 / -1;
}
.publication-site.admin-bar .pub-reading-layout { --pub-toc-offset: 56px; }
.publication-site .pub-reading-grid { min-width: 0; }
body.publication-site .pub-reading-grid > .ledger-content { min-width: 0; width: 100%; max-width: var(--pub-reading,680px); margin-inline: auto; }
.publication-site .pub-toc { max-width: var(--pub-reading,680px); margin: 0 auto 28px; width: 100%; color: var(--pub-toc-color); }
.publication-site .pub-toc__panel { border-block: 1px solid var(--pub-toc-line); background: var(--pub-toc-surface); border-radius: var(--pub-toc-radius); }
.publication-site .pub-toc__summary { display: flex; justify-content: space-between; gap: 16px; align-items: center; list-style: none; cursor: pointer; padding: 14px 16px; min-height: 48px; font: 600 14px/1.5 var(--pub-toc-title-font); }
.publication-site .pub-toc__summary::-webkit-details-marker { display: none; }
.publication-site .pub-toc__indicator { flex: 0 0 16px; position: relative; height: 16px; }
.publication-site .pub-toc__indicator::before, .publication-site .pub-toc__indicator::after { content: ''; position: absolute; background: currentColor; width: 12px; height: 1px; inset: 7px 2px; }
.publication-site .pub-toc__indicator::after { transform: rotate(90deg); }
.publication-site .pub-toc__panel[open] .pub-toc__indicator::after { transform: none; }
.publication-site .pub-toc__nav { padding: 0 8px 12px; max-height: min(65vh,36rem); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.publication-site .pub-toc__list, .publication-site .pub-toc__list ol { list-style: none; margin: 0; padding: 0; }
.publication-site .pub-toc__list ol { padding-inline-start: 15px; border-inline-start: 1px solid var(--pub-toc-line); margin-inline-start: 10px; }
.publication-site .pub-toc__list li { margin: 0; padding: 0; }
.publication-site .pub-toc__list a { display: block; padding: 11px 8px; min-height: 44px; font: 400 13px/1.55 var(--pub-toc-font); color: var(--pub-toc-muted); text-decoration: none; overflow-wrap: anywhere; border-inline-start: 2px solid transparent; }
.publication-site .pub-toc__list a:hover { color: var(--pub-toc-accent); text-decoration: underline; text-underline-offset: 3px; }
.publication-site .pub-toc__list a[aria-current="location"] { color: var(--pub-toc-accent); border-inline-start-color: currentColor; font-weight: 600; }
.publication-site .pub-toc :is(summary,a):focus-visible { outline: 2px solid var(--pub-toc-accent); outline-offset: -2px; }
.publication-site [data-pub-toc-heading] { scroll-margin-block-start: var(--pub-toc-offset,24px); }
.publication-site [data-pub-toc-heading]:focus-visible { outline: 2px solid var(--pub-toc-accent); outline-offset: 6px; }

/* Widen only the TOC's reading shell, keeping the original header/media measures.
   These selectors describe composition slots, never a particular brand. */
body.publication-site :is(.pub-narrow-article,.pub-image-first-reading):has(.pub-reading-layout) { max-width: none; }
body.publication-site :is(.pub-narrow-article,.pub-image-first-reading):has(.pub-reading-layout) > :not(.pub-reading-layout) { max-width: var(--pub-reading,680px); margin-inline: auto; }
body.publication-site .pub-narrow-article:has(.pub-reading-layout) > .ledger-cover { margin-inline: auto !important; }

/* A wide screen alone is insufficient: a narrow body beside a discovery rail
   must retain the disclosure unless its own available width can fit both. */
@media (min-width:1200px) {
    @container publication-reading (min-width:900px) {
        .publication-site .pub-reading-grid { --pub-toc-sidebar: 1; display: grid; grid-template-columns: 190px minmax(0,var(--pub-reading,680px)); gap: 32px; justify-content: center; align-items: start; }
        .publication-site .pub-toc { height: 100%; margin: 0; min-height: 0; }
        .publication-site .pub-toc__panel { position: sticky; top: var(--pub-toc-offset); max-height: calc(100vh - var(--pub-toc-offset) - 24px); max-height: calc(100dvh - var(--pub-toc-offset) - 24px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
        .publication-site .pub-toc__summary { padding: 12px; }
        .publication-site .pub-toc__nav { padding-inline: 4px; max-height: none; overflow: visible; }
        .publication-site .pub-toc__list a { min-height: 0; padding-block: 8px; font-size: 12px; }
        .publication-site .pub-toc__list ol { padding-inline-start: 10px; margin-inline-start: 7px; }
    }
}
@media print { .publication-site .pub-toc { display: none; } .publication-site .pub-reading-grid { display: block; } }
@media (prefers-reduced-motion:reduce) { .publication-site .pub-reading-layout { scroll-behavior: auto; } }
