/* Markdown content uses the existing detail-page typography and colors. */
.markdown-body{overflow-wrap:anywhere}
.markdown-body>:first-child{margin-top:0}
.markdown-body :is(h1,h2,h3,h4,h5,h6){color:var(--ink);line-height:1.45;scroll-margin-top:96px}
.markdown-body h1{font-size:32px;margin:40px 0 18px;letter-spacing:-.025em}
.markdown-body h2{margin:0 0 14px}
.markdown-body h3{font-size:19px;margin:30px 0 12px;font-weight:600}
.markdown-body h4{font-size:17px;margin:24px 0 10px;font-weight:600}
.markdown-body :is(h5,h6){font-size:16px;margin:24px 0 10px;font-weight:600}
.markdown-body :is(p,ul,ol,blockquote,pre,.markdown-table,.markdown-figure,.diagram-block){margin:0 0 20px}
.markdown-body :is(ul,ol){padding-left:26px;color:#47596e;font-size:16px;line-height:1.95;max-width:72ch}
.markdown-body li+li{margin-top:6px}
.markdown-body li :is(ul,ol,p){margin-top:8px;margin-bottom:8px}
.markdown-body li>p:first-child{margin-top:0}
.markdown-body .task-list-item{list-style:none;margin-left:-22px;padding-left:0}
.markdown-body .task-list-item-checkbox{accent-color:var(--blue);margin-right:8px}
.markdown-body blockquote{padding:16px 20px;background:var(--wash);border-radius:10px;color:var(--article,#47596e)}
.markdown-body blockquote>:last-child{margin-bottom:0}
.markdown-body :not(pre)>code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9em;background:var(--wash);padding:2px 5px;border-radius:4px;color:var(--ink);overflow-wrap:anywhere}
.markdown-body pre{max-width:100%;overflow:auto;padding:20px;background:#f3f6fa;border-radius:10px;font:13px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:2;color:#263a53;overscroll-behavior-x:contain}
.markdown-body pre code{font:inherit;white-space:pre;overflow-wrap:normal}
.markdown-body a:not(.button-link):not(.markdown-figure>a){color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.markdown-body hr{border:0;border-top:1px solid var(--line);margin:36px 0}
.markdown-table{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:10px}
.markdown-table table{border-collapse:collapse;min-width:100%;width:max-content;font-size:14px;line-height:1.8;text-align:left;color:#47596e}
.markdown-table :is(th,td){padding:12px 16px;max-width:36ch;min-width:7ch;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.markdown-table th{background:var(--wash);font-weight:600;color:var(--ink)}
.markdown-table tbody tr:last-child td{border-bottom:0}
.markdown-body .markdown-figure{max-width:100%}
.markdown-figure>a{display:flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;margin-inline:auto;background:var(--wash);border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden}
.markdown-body img{max-width:100%;height:auto;vertical-align:middle}
.markdown-figure>a>img{display:block;width:auto;max-height:900px;object-fit:contain}
.markdown-figure figcaption{display:flex;justify-content:space-between;gap:20px;padding:10px 2px;color:var(--muted);font-size:12px;line-height:1.7}
.markdown-figure figcaption span{white-space:nowrap}
.markdown-figure figcaption svg{width:14px;height:14px}
.markdown-video .video-frame{display:flex;align-items:center;justify-content:center;padding:24px;background:var(--wash);border:1px solid var(--line);border-radius:10px}
.markdown-video .project-video{display:block;width:auto;max-width:100%;height:auto;max-height:780px;object-fit:contain;border-radius:4px}
.markdown-body .anchor-alias{display:block;scroll-margin-top:96px}
.toc[hidden]{display:none}
.case-body:has(>.toc[hidden]){grid-template-columns:1fr}
.toc .toc-level-3{padding-left:24px;font-size:12px}
.diagram-block{display:flex;flex-direction:column;padding:24px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;max-width:100%}
.diagram-viewport{overflow:auto;max-width:100%;overscroll-behavior-x:contain;overflow-wrap:normal;line-height:1.5}
.diagram-viewport svg{display:block;min-width:min(var(--diagram-width,600px),100%);max-width:none;width:var(--diagram-width,600px);height:auto;margin-inline:auto;stroke:none;fill:initial;stroke-width:initial}
/* Keep HTML labels isolated too, if a future diagram explicitly enables them. */
.markdown-body .diagram-viewport :is(p,span){font-size:inherit;line-height:inherit;color:inherit;letter-spacing:normal;margin:0;padding:0;max-width:none;overflow-wrap:normal}
.markdown-body .diagram-status{order:-1;margin:0 0 12px;font-size:14px;color:var(--muted);line-height:1.7}
.diagram-status[hidden],.diagram-viewport[hidden]{display:none}
.diagram-source summary{font-size:13px;color:var(--muted);cursor:pointer;padding:8px 0;min-height:36px}
.diagram-source pre{margin:8px 0 0;background:#edf1f7}
.diagram-source[open] summary{margin-bottom:4px}
.diagram-block[data-diagram-state="rendered"] .diagram-source{margin-top:12px}
.markdown-body ::selection{background:#dbe7ff;color:#172334}
.markdown-body :is(pre,.markdown-table,.diagram-viewport){scrollbar-color:#b1bed2 #edf1f7;scrollbar-width:thin}
.markdown-body :is(a,summary,[tabindex]):focus-visible{outline:3px solid var(--focus,#7c9cf0);outline-offset:4px}
@media(max-width:620px){
 .markdown-body :is(ul,ol){font-size:15px;padding-left:22px}
 .markdown-body h1{font-size:28px}.markdown-body h3{font-size:18px}
 .markdown-body pre{padding:16px;font-size:12px}
 .markdown-body blockquote{padding:14px 16px}
 .markdown-table :is(th,td){padding:10px 12px}
 .markdown-figure>a>img{max-height:none}
 .markdown-video .video-frame{padding:12px}
 .markdown-figure figcaption{flex-wrap:wrap;gap:4px 16px}
 .diagram-block{padding:12px}
}
@media print{.diagram-source{display:none}.diagram-viewport{overflow:visible}.diagram-viewport svg{max-width:100%;width:100%}}

/* 正文、列表、引用跟随容器宽度：与图片右边缘对齐，避免提前换行 */
.markdown-body :is(p,ul,ol,blockquote){max-width:none}

/* 图注不显示「点击查看原图」提示 */
.markdown-figure figcaption span{display:none}
