.article-shell{max-width:var(--container-max);margin:0 auto;padding:36px 24px 60px;display:grid;grid-template-columns:232px minmax(0,1fr) 260px;gap:40px;align-items:start}.article-main{max-width:var(--article-body-max);margin:0 auto;min-width:0}.article-toc{position:sticky;top:calc(var(--header-height) + 20px);max-height:calc(100vh - var(--header-height) - 40px);overflow-y:auto;font-size:14px;scrollbar-width:thin}.article-toc h4{font-size:12px;text-transform:uppercase;letter-spacing:1.2px;color:var(--color-text-faint);margin:0 0 10px;padding-left:10px}.toc-list{list-style:none;margin:0;padding:0;border-left:1px solid var(--color-border)}.toc-list li{margin:0}.toc-list a{display:block;padding:5px 10px;color:var(--color-text-muted);border-left:2px solid transparent;margin-left:-1px;line-height:1.5;transition:all var(--transition)}.toc-list a:hover{color:var(--color-accent);text-decoration:none}.toc-list a.active{color:var(--color-accent);border-left-color:var(--color-accent);font-weight:600;background:linear-gradient(90deg,var(--color-accent-soft),transparent)}.toc-list a.toc-h3{padding-left:22px;font-size:13px;color:var(--color-text-faint)}.article-side{position:sticky;top:calc(var(--header-height) + 20px);display:flex;flex-direction:column;gap:18px;font-size:14px}.side-card{background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:18px}.side-card h4{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--color-text-faint);margin:0 0 12px}.side-card ul{list-style:none;margin:0;padding:0}.side-card li{margin-bottom:2px}.side-card li a{display:block;padding:6px 8px;border-radius:var(--radius-sm);color:var(--color-text);line-height:1.5}.side-card li a:hover{background:#fff;color:var(--color-accent);text-decoration:none;box-shadow:var(--shadow-sm)}.side-cta{background:linear-gradient(160deg,var(--color-primary),var(--color-primary-light));color:#fff;border:none}.side-cta h4{color:#cfe0f4}.side-cta p{color:#d9e5f5;font-size:13.5px;line-height:1.7;margin:0 0 14px}.side-cta .btn{width:100%}.side-tags{display:flex;flex-wrap:wrap;gap:6px}.side-tags a{padding:3px 10px;border-radius:999px;background:#fff;border:1px solid var(--color-border);color:var(--color-text-muted);font-size:12.5px}.side-tags a:hover{border-color:var(--color-accent);color:var(--color-accent);text-decoration:none}.article-head{margin-bottom:32px}.article-title{font-size:clamp(26px,3vw,34px);line-height:1.35;margin:12px 0 14px;color:var(--color-primary-dark)}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13.5px;color:var(--color-text-faint)}.article-meta .dot{opacity:.5}.article-actions{display:flex;gap:8px;margin-top:18px}.article-actions .icon-btn{width:36px;height:36px}.article-body{font-size:1em;line-height:1.9;color:var(--color-text)}.article-body>*:first-child{margin-top:0}.article-body h2{font-size:1.45em;margin:1.9em 0 .7em;padding-bottom:.4em;border-bottom:1px solid var(--color-border)}.article-body h3{font-size:1.2em;margin:1.6em 0 .6em}.article-body h4{font-size:1.05em;margin:1.4em 0 .5em}.article-body p{margin-bottom:1.25em}.article-body ul,.article-body ol{margin:0 0 1.25em;padding-left:1.6em}.article-body li{margin-bottom:.35em}.article-body li::marker{color:var(--color-accent)}.article-body a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#2e6fd859}.article-body a:hover{text-decoration-color:var(--color-accent)}.article-body strong{color:var(--color-primary-dark);font-weight:700}.article-body table{width:100%;border-collapse:collapse;margin:1.4em 0 1.6em;font-size:.92em;line-height:1.7;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.article-body thead th{background:var(--color-primary);color:#fff;font-weight:600;text-align:left;padding:10px 14px;white-space:nowrap}.article-body tbody td{padding:10px 14px;border-bottom:1px solid var(--color-border);vertical-align:top}.article-body tbody tr:nth-child(2n){background:var(--color-bg-soft)}.article-body tbody tr:hover{background:var(--color-accent-soft)}.article-body code{font-family:var(--font-mono);font-size:.88em;background:var(--color-bg-soft-2);border:1px solid var(--color-border);border-radius:4px;padding:.15em .4em;color:#c23d5f}.article-body pre{background:#14263c;color:#dbe7f5;border-radius:var(--radius-md);padding:18px 20px;overflow-x:auto;margin:1.4em 0 1.6em;font-size:.88em;line-height:1.7}.article-body pre code{background:transparent;border:none;padding:0;color:inherit;font-size:1em}.article-body blockquote{margin:1.5em 0;padding:4px 20px 4px 24px;border-left:4px solid var(--color-accent);background:var(--color-bg-soft);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-muted)}.article-body blockquote p{margin-bottom:.5em}.article-body blockquote p:last-child{margin-bottom:0}.callout{margin:1.5em 0;padding:16px 20px;border-radius:var(--radius-md);background:var(--color-accent-soft);border:1px solid #c6dcf8;font-size:.95em;line-height:1.75}.callout.warn{background:#fff7e8;border-color:#f3dfb8}.callout.tip{background:#eefbf1;border-color:#c4e8d0}.callout strong:first-child{display:block;margin-bottom:4px;color:var(--color-primary);font-size:.92em}.callout p:last-child{margin-bottom:0}.article-body img{border-radius:var(--radius-md);border:1px solid var(--color-border);margin:1.4em 0}.article-body hr{border:none;border-top:1px solid var(--color-border);margin:2em 0}.tool-cta{margin-top:48px;padding:30px;border-radius:var(--radius-lg);background:linear-gradient(150deg,var(--color-primary) 0%,#2e5c92 100%);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.tool-cta h3{color:#fff;font-size:20px;margin-bottom:8px}.tool-cta p{color:#d3e0f0;margin:0;font-size:15px;line-height:1.7;max-width:460px}.article-pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px}.article-pager a{display:block;padding:16px 20px;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);transition:all var(--transition)}.article-pager a:hover{text-decoration:none;border-color:var(--color-accent);box-shadow:var(--shadow-md)}.article-pager .pager-label{font-size:12.5px;color:var(--color-text-faint);display:block;margin-bottom:4px}.article-pager .pager-title{font-weight:600;font-size:15px;color:var(--color-primary-dark)}.article-pager .next{text-align:right}.article-toolbar-mobile{display:none}@media(max-width:1200px){.article-shell{grid-template-columns:200px minmax(0,1fr);gap:32px}.article-side{display:none}}@media(max-width:900px){.article-shell{grid-template-columns:minmax(0,1fr);gap:0;padding:20px 16px 48px}.article-toc,.article-actions{display:none}.article-toolbar-mobile{display:flex;align-items:center;gap:8px;position:sticky;top:var(--header-height);z-index:50;background:#fffffff0;backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:8px 12px;margin:-20px 0 20px}.article-toolbar-mobile .spacer{flex:1}.toolbar-label{font-size:13px;color:var(--color-text-muted);margin-right:auto}.article-pager{grid-template-columns:1fr}.article-pager .next{text-align:left}}
