/* Keep the server-rendered print edition hidden during normal reading. */
@media screen { .ztc-reader-print { display:none !important; } }
/* C2 fused reader dock: public-page utilities stay outside the content layout. */
.ztc-reader-tools { --reader-edge:26px; --reader-safe-bottom:env(safe-area-inset-bottom,0px); color:var(--ztc-text-muted); font-family:var(--ztc-sans); }
.ztc-reader-tools[hidden], .ztc-reader-tools [hidden] { display:none !important; }
.ztc-reader-tools button { font:inherit; font-size:var(--ztc-fs-small); line-height:1.5; color:var(--ztc-text-muted); background:transparent; border:0; border-radius:var(--ztc-radius); min-height:44px; padding:10px 12px; display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; text-align:left; transition:background .15s,color .15s; }
.ztc-reader-tools button:hover { color:var(--ztc-action); background:var(--ztc-tint-info-bg); }
.ztc-reader-tools button:focus-visible, .reader-copy-buffer:focus-visible { outline:2px solid var(--ztc-action); outline-offset:3px; box-shadow:none; }
.ztc-reader-tools button:disabled { cursor:wait; opacity:.65; }
.reader-dock { position:fixed; right:max(var(--reader-edge),env(safe-area-inset-right)); bottom:max(var(--reader-edge),var(--reader-footer-clearance,0px),env(safe-area-inset-bottom)); z-index:var(--ztc-z-sticky,100); display:flex; flex-direction:column; padding:4px; border:1px solid var(--ztc-border); border-radius:29px; background:var(--ztc-white); box-shadow:var(--ztc-shadow-hover); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(8px); transition:opacity .2s,transform .2s,visibility .2s; }
.reader-dock.is-visible { opacity:1; visibility:visible; pointer-events:auto; transform:none; }
/* Yield immediately to mobile forms, tabs and links; never intercept their taps. */
.reader-dock.is-obstructed { transition:none; }
.ztc-reader-tools .reader-dock > button { position:relative; width:46px; height:46px; min-height:44px; flex:none; display:grid; place-items:center; border:0; padding:0; border-radius:50%; box-shadow:none; }
.reader-dock svg { width:19px; height:19px; }
.ztc-reader-tools .reader-dock > button[data-reader-action="top"] { color:var(--ztc-action); margin-top:5px; }
.reader-dock > button[data-reader-action="top"]::before { content:''; height:1px; position:absolute; top:-3px; left:10px; right:10px; background:var(--ztc-border); }
.reader-dock > button[aria-expanded="true"] { color:var(--ztc-action); background:var(--ztc-tint-info-bg); }
.reader-dock-tip { position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%); white-space:nowrap; font:400 12px/1.5 var(--ztc-sans); padding:6px 10px; border:1px solid var(--ztc-border); border-radius:5px; color:var(--ztc-text); background:var(--ztc-white); opacity:0; visibility:hidden; pointer-events:none; box-shadow:var(--ztc-shadow-hover); }
.reader-dock button:hover .reader-dock-tip, .reader-dock button:focus-visible .reader-dock-tip { opacity:1; visibility:visible; }
.has-open-panel .reader-dock-tip { display:none; }
.reader-status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.reader-dialog { box-sizing:border-box; position:fixed; inset:auto; right:calc(max(var(--reader-edge),env(safe-area-inset-right)) + 68px); bottom:max(var(--reader-edge),var(--reader-footer-clearance,0px)); z-index:var(--ztc-z-sticky,100); color:var(--ztc-text); background:var(--ztc-white); width:min(320px,calc(100vw - 120px)); max-height:max(180px,calc(100dvh - max(var(--reader-edge),var(--reader-footer-clearance,0px)) - 24px)); padding:16px; border:1px solid var(--ztc-border); border-radius:12px; margin:0; overflow:auto; overscroll-behavior:contain; box-shadow:var(--ztc-shadow-panel); }
.reader-dialog::backdrop { background:color-mix(in srgb,var(--ztc-surface-inverse-deep) 32%,transparent); }
.reader-dialog-heading { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:0 0 6px; }
.ztc-reader-tools .reader-dialog-heading h2 { font:600 16px/1.5 var(--ztc-sans); color:var(--ztc-text); margin:0; }
.ztc-reader-tools .reader-dialog-heading button { width:44px; padding:10px; margin:-4px -8px -4px 0; flex:none; }
.reader-qr { display:flex; justify-content:center; padding:8px 0; }
.reader-qr canvas { width:240px; height:240px; max-width:100%; aspect-ratio:1; object-fit:contain; }
.reader-dialog-note { margin:12px 0 4px; font-size:var(--ztc-fs-small); line-height:1.8; text-align:center; }
.reader-dialog-caption { font-size:var(--ztc-fs-caption); line-height:1.8; margin:0 0 8px; color:var(--ztc-text-muted); text-align:center; }
.reader-export-note { text-align:left; margin:12px 8px 4px; }
.ztc-reader-tools .reader-menu-action { display:flex; width:100%; justify-content:flex-start; padding:12px 8px; margin:0; border-bottom:1px solid var(--ztc-border); color:var(--ztc-text); }
.reader-dialog-status { margin:12px 8px 0; font-size:var(--ztc-fs-caption); line-height:1.7; color:var(--ztc-action); }
.reader-dialog-status:empty { display:none; }
.reader-copy-buffer { display:block; width:100%; min-height:160px; max-height:40dvh; resize:vertical; padding:12px; border:1px solid var(--ztc-border); border-radius:var(--ztc-radius); background:var(--ztc-white); color:var(--ztc-text); font:var(--ztc-fs-body)/1.7 var(--ztc-sans); box-sizing:border-box; }
.reader-wechat-guide { padding:12px; background:var(--ztc-tint-info-bg); font-size:var(--ztc-fs-small); line-height:1.9; color:var(--ztc-text); margin:0 0 8px; }
@media (max-width:767px) {
 .ztc-reader-tools { --reader-edge:16px; }
 .reader-dock { flex-direction:row; gap:2px; border-radius:28px; }
 .ztc-reader-tools .reader-dock > button { height:44px; width:44px; }
 .ztc-reader-tools .reader-dock > button[data-reader-action="top"] { margin-top:0; margin-left:5px; }
 .reader-dock > button[data-reader-action="top"]::before { top:10px; bottom:10px; left:-4px; right:auto; width:1px; height:auto; }
 .reader-dock-tip { display:none; }
 .reader-dialog { left:max(12px,env(safe-area-inset-left)); right:max(12px,env(safe-area-inset-right)); bottom:max(12px,env(safe-area-inset-bottom)); width:auto; max-width:none; max-height:calc(100dvh - 48px); z-index:var(--ztc-z-modal,500); border-radius:16px; padding:16px; }
 .reader-dialog-heading { margin-bottom:8px; }
 .ztc-reader-tools .reader-menu-action { min-height:50px; }
 .has-mobile-panel .reader-dock { visibility:hidden; pointer-events:none; }
 .reader-qr canvas { width:min(240px,100%); height:auto; }
}
@media (prefers-reduced-motion:reduce) { .ztc-reader-tools button, .reader-dock { transition:none; } .reader-dock { transform:none; } }

/* Direct AI entry: same shape, icon, type and spacing as the company website. */
.fol-knowledge-launch{box-sizing:border-box;position:fixed;right:max(26px,env(safe-area-inset-right));bottom:max(26px,env(safe-area-inset-bottom));z-index:var(--ztc-z-sticky,100);display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 16px;border:1px solid var(--ztc-border);border-radius:26px;background:var(--ztc-white);color:var(--ztc-brand-navy);font:600 14px/1.5 var(--ztc-sans);box-shadow:var(--ztc-shadow-hover);text-decoration:none;transition:color .2s,border-color .2s,opacity .2s}
.fol-knowledge-launch svg{width:19px;height:19px;flex:none}
.fol-knowledge-launch:is(:hover,:focus-visible){color:var(--ztc-brand-navy);background:var(--ztc-white);border-color:var(--ztc-brand-navy);text-decoration:none}
.fol-knowledge-launch:focus-visible{outline:2px solid var(--ztc-action);outline-offset:3px}
.fol-knowledge-launch.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.ztc-reader-tools *, .fol-knowledge-launch *{box-sizing:border-box}
.ztc-reader-tools .reader-dialog{font:400 14px/1.7 var(--ztc-sans)}
.ztc-reader-tools .reader-dialog p{white-space:normal;word-break:normal;overflow-wrap:anywhere}
.ztc-reader-tools .reader-dialog-heading svg{width:18px;height:18px}
@media(max-width:767px){.fol-knowledge-launch{right:max(16px,env(safe-area-inset-right));min-height:44px;padding:9px 14px}}
@media(prefers-reduced-motion:reduce){.fol-knowledge-launch{transition:none}}
@media(forced-colors:active){.reader-dock,.reader-dialog,.fol-knowledge-launch{border:1px solid ButtonText}}
@media print{.ztc-reader-tools,.fol-knowledge-launch{display:none!important}}

/* 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.fol-reader-print-ready > :not(.ztc-reader-print) {
        display: none !important;
    }

    body.fol-reader-print-ready > .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; }
}
