.paper-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: var(--space-lg);
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-md);
}

@media (max-width: 768px) {
    .paper-layout {
        grid-template-columns: 1fr;
    }
    .paper-sidebar {
        display: none;
    }
}

.paper-sidebar {
    position: sticky;
    top: var(--space-md);
    height: fit-content;
    max-height: calc(100vh - var(--space-lg));
    overflow-y: auto;
}

.paper-toc {
    background: var(--panel);
    border: 1px solid var(--line);
    padding: var(--space-sm);
}

.paper-toc__title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--fs-0);
    font-weight: 500;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xs);
}

.paper-toc__toggle {
    background: none;
    border: none;
    color: var(--muted);
    cursor: pointer;
    font-size: 0.75rem;
}

.paper-toc__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.paper-toc__item {
    margin: var(--space-xs) 0;
}

.paper-toc__item--sub {
    padding-left: var(--space-sm);
}

.paper-toc__item a {
    color: var(--muted);
    text-decoration: none;
    font-size: var(--fs-0);
    display: block;
    padding: 2px 0;
    transition: color 0.15s;
}

.paper-toc__item a:hover,
.paper-toc__item a.active {
    color: var(--accent);
}

.paper-content {
    max-width: 720px;
}

.paper-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--line);
}

.paper-back {
    color: var(--muted);
    text-decoration: none;
    font-size: var(--fs-0);
}

.paper-back:hover {
    color: var(--accent);
}

.paper-meta {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex: 1;
}

.paper-authors {
    color: var(--muted);
    font-size: var(--fs-0);
}

.paper-copy-link {
    background: transparent;
    border: 1px solid var(--line);
    color: var(--muted);
    padding: var(--space-xs) var(--space-sm);
    font-size: var(--fs-0);
    cursor: pointer;
    transition: all 0.15s;
}

.paper-copy-link:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.paper-body {
    line-height: 1.7;
}

.paper-body h1 {
    font-size: var(--fs-4);
    margin: var(--space-lg) 0 var(--space-sm);
}

.paper-body h2 {
    font-size: var(--fs-3);
    margin: var(--space-lg) 0 var(--space-sm);
}

.paper-body h3 {
    font-size: var(--fs-2);
    margin: var(--space-md) 0 var(--space-xs);
}

.paper-body p {
    margin: var(--space-sm) 0;
}

.paper-body ul, .paper-body ol {
    margin: var(--space-sm) 0;
    padding-left: var(--space-md);
}

.paper-body li {
    margin: var(--space-xs) 0;
}

.paper-body hr {
    border: none;
    border-top: 1px solid var(--line);
    margin: var(--space-md) 0;
}

.paper-body code {
    background: var(--panel);
    padding: 0.1em 0.3em;
    font-size: 0.9em;
}

.paper-body pre {
    background: var(--panel);
    padding: var(--space-sm);
    overflow-x: auto;
}

.paper-body pre code {
    background: none;
    padding: 0;
}

.paper-body blockquote {
    border-left: 3px solid var(--accent);
    margin: var(--space-sm) 0;
    padding-left: var(--space-sm);
    color: var(--muted);
}

.paper-body strong {
    font-weight: 500;
}

.heading-anchor {
    opacity: 0;
    margin-left: var(--space-xs);
    color: var(--muted);
    text-decoration: none;
    font-weight: 400;
    transition: opacity 0.15s;
}

h1:hover .heading-anchor,
h2:hover .heading-anchor,
h3:hover .heading-anchor,
h4:hover .heading-anchor {
    opacity: 1;
}

.heading-anchor:hover {
    color: var(--accent);
}

@media print {
    /* Hide non-print elements */
    .site-header,
    .site-footer,
    .consent-banner,
    .paper-sidebar,
    .paper-back,
    .paper-copy-link,
    .heading-anchor {
        display: none !important;
    }

    .paper-body hr {
        display: none !important;
    }

    /* Page setup */
    @page {
        size: A4;
        margin: 20mm 20mm 25mm 20mm;
    }

    /* Base typography - IBM Plex Mono only */
    body {
        background: #ffffff !important;
        color: #000000 !important;
        font-family: "IBM Plex Mono", Menlo, "Courier New", monospace !important;
        font-size: 10.5pt;
        line-height: 1.5;
    }

    /* Layout */
    .paper-layout {
        display: block;
        max-width: none;
        padding: 0;
    }

    .paper-content {
        max-width: none;
        background: #ffffff !important;
    }

    /* Front matter header */
    .paper-header {
        margin-bottom: 1.5rem;
        padding-bottom: 0.75rem;
        border-bottom: 1px solid #cccccc;
    }

    .paper-meta {
        justify-content: flex-start;
        gap: 0.5rem;
    }

    .paper-version {
        color: #333333 !important;
        font-size: 9pt;
    }

    .paper-status-sep {
        color: #333333 !important;
    }

    .badge {
        background: #eeeeee !important;
        color: #333333 !important;
        border-color: #999999 !important;
        font-size: 9pt;
    }

    /* Body text */
    .paper-body {
        font-size: 10pt;
        line-height: 1.5;
        color: #000000 !important;
        text-align: left;
    }

    /* Headings */
    .paper-body h1 {
        font-size: 20pt;
        line-height: 1.25;
        color: #000000 !important;
        margin-top: 0;
        margin-bottom: 0.5rem;
        page-break-after: avoid;
    }

    .paper-body h2 {
        font-size: 14pt;
        line-height: 1.3;
        color: #000000 !important;
        margin-top: 1.5rem;
        margin-bottom: 0.5rem;
        page-break-after: avoid;
    }

    .paper-body h3 {
        font-size: 12pt;
        line-height: 1.3;
        color: #000000 !important;
        margin-top: 1rem;
        margin-bottom: 0.4rem;
        page-break-after: avoid;
    }

    /* Paragraphs and lists */
    .paper-body p,
    .paper-body li {
        orphans: 4;
        widows: 4;
    }

    .paper-body ul,
    .paper-body ol {
        margin-left: 1.5rem;
        break-inside: avoid;
    }

    /* Keep heading with its first following element - prevents orphan headings */
    .paper-body h2 + p,
    .paper-body h2 + ul,
    .paper-body h2 + ol,
    .paper-body h2 + table,
    .paper-body h2 + .theorem,
    .paper-body h2 + .result,
    .paper-body h3 + p,
    .paper-body h3 + ul,
    .paper-body h3 + ol,
    .paper-body h3 + table,
    .paper-body h3 + .theorem,
    .paper-body h3 + .result,
    .paper-body h4 + p,
    .paper-body h4 + ul {
        break-before: avoid;
    }

    /* Block elements that should not be split */
    .paper-body .theorem,
    .paper-body .proof,
    .paper-body .result,
    .paper-body blockquote {
        break-inside: avoid;
        orphans: 4;
        widows: 4;
    }

    .paper-body h2[id="1-introduction"],
    .paper-body h2[id="appendix-a-notation-summary"],
    .paper-body h2[id="appendix-b-worked-example---circle-of-fifths"],
    .paper-body h2[id="appendix-c-computational-methods"] {
        break-before: page;
    }

    .pagebreak {
        page-break-before: always;
        break-before: page;
        height: 0;
        margin: 0;
        padding: 0;
    }

    /* Links - show URLs */
    .paper-body a {
        color: #000000 !important;
        text-decoration: underline;
    }

    .paper-body a[href^="http"]::after {
        content: " [" attr(href) "]";
        font-size: 8pt;
        color: #666666;
        word-break: break-all;
    }

    .paper-body a[href^="/"]::after {
        content: " [resonant4.io" attr(href) "]";
        font-size: 8pt;
        color: #666666;
    }

	    /* Tables - minimal horizontal rules */
	    .paper-body .paper-table {
	        border-collapse: collapse;
	        width: 100%;
	        margin: 1rem 0;
	        font-size: 9pt !important;
	        font-family: "IBM Plex Mono", Menlo, "Courier New", monospace !important;
	        line-height: 1.35;
	        page-break-inside: avoid;
	        background: #ffffff !important;
	    }

	    .paper-body .paper-table th,
	    .paper-body .paper-table td {
	        padding: 0.25rem 0.35rem !important;
        text-align: left;
        vertical-align: top;
	        border: none !important;
	        border-bottom: 1px solid #cccccc !important;
        background: #ffffff !important;
        color: #000000 !important;
    }

	    .paper-body .paper-table th {
        background: #ffffff !important;
        color: #000000 !important;
        font-weight: 500;
        border-top: 2px solid #000000 !important;
        border-bottom: 2px solid #000000 !important;
    }
    
    .paper-table td {
        background: #ffffff !important;
        color: #000000 !important;
    }

    .paper-table tr:last-child td {
        border-bottom: 1px solid #000000;
    }
    
    .paper-table tr:hover td {
        background: #ffffff !important;
    }

    /* Figures */
    .paper-figure {
        page-break-inside: avoid;
        margin: 1rem 0;
        text-align: center;
    }

    .paper-figure img {
        max-width: 100%;
        border: 1px solid #cccccc !important;
    }

    .paper-figure figcaption {
        font-size: 9pt;
        color: #333333 !important;
        margin-top: 0.5rem;
        text-align: center;
    }

    /* Code blocks */
    pre, code {
        font-family: "IBM Plex Mono", Menlo, "Courier New", monospace !important;
        font-size: 9.5pt;
        background: #f5f5f5 !important;
        color: #000000 !important;
        page-break-inside: avoid;
    }

    pre {
        padding: 0.75rem;
        border: 1px solid #cccccc;
        overflow-x: visible;
        white-space: pre-wrap;
    }

    /* Math - ensure rendered */
    .katex {
        font-size: 1em !important;
    }

    .katex-display {
        margin: 1rem 0;
        page-break-inside: avoid;
    }

    /* ToC for print */
    .paper-toc {
        display: block !important;
        margin: 1rem 0 2rem 0;
        padding: 1rem;
        background: #ffffff !important;
        border: 1px solid #cccccc;
        page-break-after: always;
    }

    .paper-toc__title {
        font-weight: 500;
        font-size: 8pt;
        color: #000000 !important;
        background: transparent !important;
        margin-bottom: 0.5rem;
        text-transform: none;
        letter-spacing: normal;
    }
    
    .paper-toc__item {
        margin: 0;
        font-size: 7.5pt;
        line-height: 1.2;
        background: transparent !important;
    }

    .paper-toc__item a {
        font-size: 7.5pt;
        line-height: 1.2;
    }

    .paper-toc__list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .paper-toc__item--sub {
        margin-left: 1.5rem;
    }

    .paper-toc a {
        color: #000000 !important;
        text-decoration: none;
    }

    .paper-toc a::after {
        content: none !important;
    }

    /* Horizontal rules */
    hr {
        border: none;
        border-top: 1px solid #cccccc;
        margin: 1.5rem 0;
    }

    /* Strong and emphasis */
    strong {
        font-weight: 500;
    }

    em {
        font-style: italic;
    }
}

.paper-figure {
    margin: var(--space-md) 0;
    padding: 0;
}

.paper-figure img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 1px solid var(--line);
}

.paper-figure figcaption {
    margin-top: var(--space-xs);
    font-size: var(--fs-0);
    color: var(--muted);
    line-height: 1.5;
}

.paper-table {
    width: 100%;
    border-collapse: collapse;
    margin: 2rem 0;
    font-size: 0.9rem;
    line-height: 1.5;
}

.paper-table th,
.paper-table td {
    border: 1px solid #333;
    padding: 0.75rem 1rem;
    vertical-align: top;
}

.paper-table th {
    background: #1a1b1e;
    font-weight: 500;
    text-align: left;
    color: #6fb1ff;
    border-bottom: 2px solid #6fb1ff;
}

.paper-table td {
    background: #0e0f11;
}

.paper-table tr:hover td {
    background: rgba(111, 177, 255, 0.08);
}

.paper-table code {
    font-size: 0.85em;
}

/* Version display */
.paper-version {
    color: var(--muted);
    font-size: var(--fs-0);
    font-family: var(--font-mono);
}

.paper-status-sep,
.paper-card__sep {
    color: var(--muted);
    opacity: 0.5;
}

.paper-doi-note {
    color: var(--muted);
    font-size: var(--fs-0);
    opacity: 0.75;
}

.paper-card__version {
    color: var(--muted);
    font-size: var(--fs-0);
    font-family: var(--font-mono);
}

/* Front matter for PDF */
.paper-front-matter {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--line);
}

.paper-title {
    font-size: 1.75rem;
    font-weight: 500;
    margin: 0 0 0.25rem 0;
    line-height: 1.25;
}

.paper-subtitle {
    font-size: 1.1rem;
    color: var(--muted);
    margin: 0 0 1rem 0;
}

.paper-authors {
    font-size: 1rem;
    margin: 0 0 0.25rem 0;
}

.paper-affiliation {
    font-size: 0.875rem;
    color: var(--muted);
    margin: 0 0 1rem 0;
}

.paper-abstract {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 1rem;
    padding: 1rem;
    background: rgba(111, 177, 255, 0.05);
    border-left: 3px solid var(--accent);
}

.paper-toc-inline {
    display: none;
}

@media print {
    .paper-front-matter {
        margin-bottom: 1.5rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid #cccccc;
    }

    .paper-title {
        font-size: 20pt;
        color: #000000 !important;
    }

    .paper-subtitle {
        font-size: 11pt;
        color: #333333 !important;
    }

    .paper-authors {
        font-size: 11pt;
        color: #000000 !important;
    }

    .paper-affiliation {
        font-size: 9pt;
        color: #333333 !important;
    }

    .paper-abstract {
        font-size: 9.5pt;
        background: transparent !important;
        border-left: 2px solid #333333;
        padding: 0.75rem 1rem;
        color: #000000 !important;
    }

    .paper-toc-inline {
        display: block !important;
        margin: 0;
        padding: 1rem;
        border: 1px solid #cccccc;
        page-break-before: always;
        page-break-after: always;
        page-break-inside: avoid;
    }

    .paper-toc-inline .paper-toc {
        display: block !important;
        margin: 0;
        padding: 0;
        border: none;
        background: #ffffff !important;
    }
    
    .paper-toc-inline .paper-toc__title {
        color: #000000 !important;
        background: transparent !important;
    }
    
    .paper-toc-inline .paper-toc__item {
        background: transparent !important;
    }
    
    .paper-toc-inline .paper-toc__item a {
        color: #000000 !important;
    }

    .paper-toc-inline .paper-toc__toggle {
        display: none;
    }
}
