/* Browser print edition. The server renders this body-level section so Ctrl+P
   works without JavaScript. This is a reading copy, not a press-ready PDF. */
.ztc-reader-print {
    display: none !important;
}

@page {
    size: A4;
    margin: 17mm 16mm 18mm;
}

@media print {
    html,
    body {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        position: static !important;
        transform: none !important;
        background: var(--ztc-white, #fff) !important;
        color: var(--ztc-text, #2d3142) !important;
        scroll-behavior: auto !important;
    }

    /* Enqueued only for pages that contain the server-rendered print edition. */
    body > :not(.ztc-reader-print) {
        display: none !important;
    }

    body > .ztc-reader-print {
        display: block !important;
        position: static !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        color: var(--ztc-text, #2d3142) !important;
        background: var(--ztc-white, #fff) !important;
        font: 400 11pt/1.8 var(--ztc-sans, "PingFang SC", system-ui, sans-serif);
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
        orphans: 3;
        widows: 3;
    }

    .ztc-reader-print,
    .ztc-reader-print * {
        box-sizing: border-box !important;
        animation: none !important;
        transition: none !important;
        box-shadow: none !important;
        text-shadow: none !important;
        filter: none !important;
        opacity: 1 !important;
        transform: none !important;
    }

    .reader-print-header {
        margin: 0 0 9mm;
        padding: 0 0 7mm;
        border-bottom: .6pt solid var(--ztc-border, #e4e7ec);
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .reader-print-header > img {
        display: block;
        width: 38mm;
        max-width: 100%;
        height: auto;
        max-height: 12mm;
        margin: 0 0 3mm;
        object-fit: contain;
        object-position: left center;
    }

    .reader-print-source,
    .reader-print-meta,
    .reader-print-footer {
        color: var(--ztc-text-muted, #58595b);
        font: 400 9pt/1.65 var(--ztc-sans, "PingFang SC", system-ui, sans-serif);
        overflow-wrap: anywhere;
    }

    .reader-print-source {
        margin: 0 0 7mm;
    }

    .reader-print-title {
        margin: 0 0 4mm;
        color: var(--ztc-text, #2d3142);
        font: 700 24pt/1.35 var(--ztc-serif, "Songti SC", Georgia, serif);
        letter-spacing: -.01em;
        text-wrap: pretty;
    }

    .reader-print-meta {
        margin: 0;
    }

    /* The PHP projection removes page controls and unsafe inline markup.
       These resets also neutralize legacy newsletter layout/white-on-blue text. */
    .reader-print-body,
    .reader-print-body * {
        position: static !important;
        float: none !important;
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        color: var(--ztc-text, #2d3142) !important;
        background: transparent !important;
        font-family: inherit !important;
        font-size: inherit !important;
        line-height: inherit !important;
        letter-spacing: normal !important;
        text-indent: 0 !important;
        text-align: start !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        content-visibility: visible !important;
    }

    .reader-print-body :is(section, article, div, figure, p, blockquote, ul, ol, dl, pre) {
        width: auto !important;
        height: auto !important;
    }

    .reader-print-body :is(section, article, div, figure) {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .reader-print-body :is(p, ul, ol, dl, blockquote, pre, table, figure) {
        margin-block: 0 4mm !important;
    }

    .reader-print-body :is(h1, h2, h3, h4, h5, h6) {
        height: auto !important;
        margin: 8mm 0 3mm !important;
        padding: 0 !important;
        border: 0 !important;
        color: var(--ztc-text, #2d3142) !important;
        font-family: var(--ztc-serif, "Songti SC", Georgia, serif) !important;
        font-weight: 700 !important;
        line-height: 1.45 !important;
        break-after: avoid;
        page-break-after: avoid;
        orphans: 3;
        widows: 3;
    }

    .reader-print-body :is(h1, h2) { font-size: 15pt !important; }
    .reader-print-body h3 { font-size: 13pt !important; }
    .reader-print-body :is(h4, h5, h6) { font-size: 11pt !important; }

    .reader-print-body p,
    .reader-print-body li {
        orphans: 3;
        widows: 3;
    }

    .reader-print-body :is(ul, ol) {
        padding: 0 0 0 6mm !important;
        list-style-position: outside !important;
    }

    .reader-print-body ul { list-style-type: disc !important; }
    .reader-print-body ol { list-style-type: decimal !important; }
    .reader-print-body ul ul { list-style-type: circle !important; }
    .reader-print-body ol ol { list-style-type: lower-alpha !important; }
    .reader-print-body li { display: list-item !important; margin: 0 0 1.5mm !important; }
    .reader-print-body li > :is(ul, ol) { margin: 1.5mm 0 0 !important; }
    .reader-print-body dt { margin-top: 3mm; font-weight: 700; }
    .reader-print-body dd { margin: 0 0 3mm 6mm; }

    .reader-print-body blockquote {
        padding: 1mm 0 1mm 4mm !important;
        border: 0 !important;
        border-left: 1.5pt solid var(--ztc-border, #e4e7ec) !important;
    }

    .reader-print-body a {
        color: var(--ztc-action, #0067b4) !important;
        text-decoration: underline !important;
        text-underline-offset: .12em;
    }

    /* Do not append every href: long URLs would overwhelm citations and tables.
       The canonical source is explicitly present in the print header/footer. */
    .reader-print-body a::after { content: none !important; }

    .reader-print-body :is(img, svg) {
        display: block !important;
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 220mm !important;
        margin: 3mm auto 2mm !important;
        object-fit: contain !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .reader-print-body figcaption {
        display: block !important;
        margin: 2mm 0 4mm !important;
        color: var(--ztc-text-muted, #58595b) !important;
        font-size: 9pt !important;
        line-height: 1.6 !important;
        break-before: avoid;
        page-break-before: avoid;
    }

    .reader-print-body table {
        display: table !important;
        width: 100% !important;
        height: auto !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
        border-spacing: 0 !important;
        font-size: 9pt !important;
        line-height: 1.6 !important;
    }

    .reader-print-body thead { display: table-header-group !important; }
    .reader-print-body tbody { display: table-row-group !important; }
    .reader-print-body tfoot { display: table-footer-group !important; }
    .reader-print-body tr { display: table-row !important; }
    .reader-print-body :is(th, td) {
        display: table-cell !important;
        width: auto !important;
        height: auto !important;
        padding: 2mm !important;
        border: .6pt solid var(--ztc-border, #e4e7ec) !important;
        vertical-align: top !important;
    }

    .reader-print-body th { font-weight: 700 !important; }
    .reader-print-body caption { margin-bottom: 2mm; font-weight: 700; }

    .reader-print-body pre,
    .reader-print-body pre * {
        white-space: pre-wrap !important;
        overflow-wrap: anywhere !important;
        font-family: ui-monospace, SFMono-Regular, Consolas, monospace !important;
        font-size: 9pt !important;
        line-height: 1.65 !important;
    }

    .reader-print-body pre {
        padding: 3mm !important;
        border: .6pt solid var(--ztc-border, #e4e7ec) !important;
    }

    .reader-print-body hr {
        height: 0 !important;
        margin: 5mm 0 !important;
        border: 0 !important;
        border-top: .6pt solid var(--ztc-border, #e4e7ec) !important;
    }

    .reader-print-body :is(button, input, textarea, select, form, dialog, iframe, video, audio, canvas, script, style, noscript),
    .reader-print-body [hidden],
    .reader-print-body [aria-hidden="true"],
    .reader-print-body [data-reader-exclude],
    .reader-print-body [data-site-read-exclude] {
        display: none !important;
    }

    .reader-print-footer {
        margin: 9mm 0 0;
        padding: 4mm 0 0;
        border-top: .6pt solid var(--ztc-border, #e4e7ec);
    }

    .reader-print-footer p { margin: 0 0 1.5mm; }
    .reader-print-footer a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
}
