/* Shared by the authoring frame and published articles. */
.prose,.article-head{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;color:#1f2329}
.prose{--body-size:16px;--leading:1.65;--paragraph-gap:10px;font-size:var(--body-size);line-height:var(--leading)}
.prose[data-preset="comfortable"]{--body-size:17px;--leading:1.85;--paragraph-gap:16px}
.prose[data-preset="technical"]{--body-size:15px;--leading:1.6;--paragraph-gap:8px}
.article-head h1{font-family:inherit;font-weight:650;font-size:32px;line-height:1.4}
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-family:inherit;line-height:1.4;font-weight:650;border:0;padding:0;letter-spacing:0}
.prose h1{font-size:28px;margin:24px 0 12px}.prose h2{font-size:24px;margin:22px 0 10px}.prose h3{font-size:20px;margin:18px 0 8px}.prose h4{font-size:18px;margin:16px 0 8px}
.prose .section-block>summary h2,.prose .section-block>summary h3{margin:12px 0 8px;border:0;padding:0}
.prose p,.prose ul,.prose ol{margin:0 0 var(--paragraph-gap)}.prose li{margin:4px 0}.prose p:empty{display:none}
.prose blockquote{margin:12px 0;padding:4px 16px;border-left:2px solid #c4c7ce;background:#f7f8fa;font:inherit;color:#646a73}
.prose .doc-grid{gap:16px;margin:12px 0}.prose .callout{padding:12px 16px;margin:12px 0}.prose figure{margin:12px 0}.prose img{margin:6px 0}
.prose table{display:table;width:100%;min-width:0;font-size:14px;line-height:1.6;border-collapse:collapse}.prose table td,.prose table th{min-width:0;max-width:none;padding:8px 12px;overflow-wrap:anywhere;vertical-align:top}.prose table img{min-width:0;max-width:100%;height:auto}.prose table pre{min-width:0;max-width:100%}
.prose pre,.prose code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.88em}.prose pre code{font-size:inherit}.prose pre{line-height:1.6}.prose .code-block{margin:12px 0}.prose .code-block pre{padding:12px 16px}
.prose video,.prose img{max-width:100%;box-sizing:border-box}.prose [data-media-sized]{display:block;max-width:100%;object-fit:contain}
@media(max-width:760px){.article-head h1{font-size:27px}.prose h1{font-size:25px}.prose h2{font-size:22px}.prose .doc-grid{grid-template-columns:1fr!important}}
.prose .doc-callout{padding:12px 16px;margin:12px 0}.prose .section-block{margin:14px 0}.prose table .doc-grid{min-width:0}.prose table p{margin-bottom:8px}.prose img[data-media-sized],.prose video[data-media-sized]{max-height:none}
/* Fold controls sit in the gutter: headings keep the paragraph's left edge. */
.prose .section-block>summary,.prose .list-fold>summary{position:relative;display:block;list-style:none;cursor:pointer;padding:0;gap:0}
.prose .section-block>summary::-webkit-details-marker,.prose .list-fold>summary::-webkit-details-marker{display:none}
.prose .section-block>summary:before,.prose .list-fold>summary:before{content:'▸';position:absolute;left:-22px;top:.25em;width:18px;text-align:center;color:#646a73;font:14px/1.5 system-ui}
.prose .section-block[open]>summary:before,.prose .list-fold[open]>summary:before{content:'▾'}
.prose .list-fold>summary:before{left:-38px;top:0}.prose .list-fold>summary>p{display:inline;margin:0}.prose .list-fold>summary{margin-bottom:6px}
.prose .list-fold>ul,.prose .list-fold>ol,.prose .list-fold>figure,.prose .list-fold>.doc-grid{margin-top:8px}
.prose .synced-content{min-width:0}.prose .synced-content:before{content:'同步内容';display:block;font-size:10px;color:#8f959e;margin:8px 0 4px}
.prose h5{font-size:17px;margin:14px 0 8px}.prose h6{font-size:16px;margin:14px 0 8px}
.column-resizer{z-index:1000;cursor:col-resize;touch-action:none;user-select:none;outline:none}
.column-resizer:after{content:'';position:absolute;left:4px;top:0;bottom:0;width:2px;background:#3370ff;opacity:.45}
.column-resizer:hover:after,.column-resizer:focus:after{opacity:1;width:3px}
.prose{padding-left:6px;box-sizing:border-box}

/* Header summary: reading order stays title, summary, table of contents, body. */
.article-intro.has-summary{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px;align-items:center;padding:28px 0 40px}
.article-intro.has-summary .article-head{max-width:none;padding:0}.article-summary{min-width:0}.article-summary .blog-tldr{margin:0 auto;width:100%}.article-summary .tldr-landscape{cursor:default}
@media(max-width:900px){.article-intro.has-summary{grid-template-columns:1fr;gap:22px}.article-intro.has-summary .article-head .eyebrow{margin-top:24px}}
/* Tables keep their authored pixel widths; the viewport scrolls instead. */
.prose .table-scroll{width:fit-content;max-width:100%;min-width:0;overflow-x:auto;overflow-y:auto;overscroll-behavior-x:contain;border:1px solid #dee0e3;border-radius:4px}
.prose .table-scroll table,.prose table{table-layout:fixed;max-width:none;width:max-content;min-width:0;margin:0;overflow:visible;border-collapse:collapse}
.prose table td,.prose table th{min-width:0;max-width:none;overflow-wrap:break-word;word-break:normal;border-color:#dee0e3;padding:10px 12px}
.prose table th{background:#f5f6f7}.prose table .doc-grid{min-width:0;grid-template-columns:var(--columns)!important}
.prose table .table-scroll{max-width:100%}.prose table pre{min-width:0;max-width:none;max-height:none}
/* Ordinary single images remain complete and centered. Grouped images use their columns. */
.prose img:not(.tldr-landscape){display:block;max-width:min(100%,500px);max-height:none;height:auto;margin:12px auto}
.prose :is(table,.doc-grid,.board-crop) img:not(.tldr-landscape){max-width:100%;min-width:0;max-height:none}
.prose .board-crop{max-width:min(100%,500px);margin:12px auto}.prose :is(table,.doc-grid) .board-crop{max-width:100%}
/* Feishu-like neutral code surface. Gutter is separate from selectable/copied text. */
.prose .code-block{position:relative;overflow:visible;min-width:0;margin:14px 0;border:1px solid #dee0e3;border-radius:4px;background:#f5f6f7;color:#1f2329}
.prose .code-block>summary{display:block;list-style:none;cursor:pointer;margin:0;padding:9px 14px 9px 48px;background:#f5f6f7;border-bottom:1px solid #e8e9eb;color:#646a73;font:12px/20px system-ui;min-height:39px}
.prose .code-block>summary::-webkit-details-marker{display:none}.prose .code-block>summary::after{content:'⌃';float:right;color:#8f959e}.prose .code-block:not([open])>summary::after{content:'⌄'}
.prose .code-block .code-scroll{display:flex;align-items:stretch;min-width:0;width:100%;overflow-x:auto;overflow-y:hidden;background:#f5f6f7;border-radius:0 0 4px 4px}
.prose .code-block pre,.prose .code-block pre.wrap-code{flex:1 0 auto;min-width:calc(100% - 44px);width:max-content;max-width:none;max-height:none;overflow:visible;margin:0;padding:12px 16px 12px 10px;border:0;border-radius:0;background:transparent;white-space:pre!important;overflow-wrap:normal!important;word-break:normal;font:13px/22px "SFMono-Regular",Consolas,"Liberation Mono",monospace;tab-size:4}
.prose .code-block pre code{display:block;margin:0;padding:0;border:0;background:none;color:inherit;white-space:pre;overflow-wrap:normal;font:inherit}
.prose .code-gutter{flex:0 0 44px;position:sticky;left:0;z-index:1;padding:12px 10px 12px 4px;background:#f5f6f7;color:#8f959e;border-right:1px solid #e8e9eb;text-align:right;white-space:pre;user-select:none;font:13px/22px "SFMono-Regular",Consolas,"Liberation Mono",monospace}
.prose .code-copy{position:absolute;z-index:4;top:5px;left:9px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:5px;border:1px solid transparent;border-radius:4px;background:#f5f6f7;color:#646a73;cursor:pointer;transition:none;will-change:transform}
.prose .code-copy:hover,.prose .code-copy:focus-visible{background:#e8e9eb;border-color:#c9cdd4;color:#245bdb}.prose .code-copy.copied{color:#168c4c}
.prose .hljs-comment,.prose .hljs-quote{color:#8f959e}.prose .hljs-keyword,.prose .hljs-literal{color:#a64d9e}.prose .hljs-string,.prose .hljs-regexp{color:#3a8c3f}.prose .hljs-number,.prose .hljs-attr{color:#245bdb}.prose .hljs-title,.prose .hljs-section{color:#986801}
/* Preview 15 complete code lines; horizontal scrolling remains available. */
.prose .code-block[data-code-collapsed="true"] :is(pre,.code-gutter){max-height:354px;overflow-y:hidden;mask-image:linear-gradient(to bottom,#000 calc(100% - 44px),transparent)}
.prose .code-expand{display:block;width:100%;padding:8px 16px;border:0;border-top:1px solid #e8e9eb;background:#f5f6f7;color:#646a73;font:12px/20px system-ui;cursor:pointer;border-radius:0 0 4px 4px}
.prose .code-expand:hover,.prose .code-expand:focus-visible{background:#e8e9eb;color:#245bdb}
.article-reading-tools{border-top:1px solid var(--line);padding:14px 0 0}.article-reading-tools+.article-grid{border-top:0;padding-top:18px}
.toc-toggle{border:1px solid var(--line);border-radius:4px;padding:5px 10px;background:transparent;color:var(--muted);font:12px/20px system-ui;cursor:pointer}.toc-toggle:hover{color:var(--ink);background:#eef0e8}
.article-grid.toc-hidden{grid-template-columns:minmax(0,1fr)}.article-grid.toc-hidden>aside{display:none}.article-grid.toc-hidden>.prose{width:100%;max-width:790px;margin-inline:auto}.document-page .article-grid.toc-hidden>.prose{max-width:1140px}
.prose .mermaid{white-space:normal}
