/* S2 article shell: the article body remains source-owned, this layer only
   changes presentation and adds safe hooks for the shared runtime. */
:root { --article-bg:#f7f6f2; --article-paper:#fff; --article-ink:#17191d; --article-muted:#626873; --article-line:#e4e1d8; --article-accent:#b48625; }
html:has(.s22-article-v2), html:has(.article-v2-progress) { background:var(--article-bg)!important; }
body:has(.s22-article-v2) { background:var(--article-bg)!important; color:var(--article-ink)!important; }
body:has(.s22-article-v2) .hero-grid, body:has(.s22-article-v2) .hero-glow, body:has(.s22-article-v2) .scan-line, body:has(.s22-article-v2) #stars-canvas { display:none!important; }
.s22-article-v2 { max-width:1180px; margin:0 auto; padding:36px 24px 80px; }
.s22-article-v2 .article-v2-layout { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:52px; align-items:start; }
.s22-article-v2 .article-v2-main { min-width:0; }
.s22-article-v2 .article-v2-toc { position:sticky; top:24px; border-left:1px solid var(--article-line); padding-left:20px; }
.s22-article-v2 .article-v2-toc a { display:block; padding:8px 0; color:var(--article-muted); text-decoration:none; font-size:13px; border-left:2px solid transparent; margin-left:-22px; padding-left:20px; }
.s22-article-v2 .article-v2-toc a.is-active, .s22-article-v2 .article-v2-toc a.active { color:var(--article-accent); border-left-color:var(--article-accent); font-weight:700; }
.s22-article-v2 .article-v2-summary, .s22-article-v2 .article-v2-cta, .s22-article-v2 .article-v2-sources, .s22-article-v2 .article-v2-products { background:var(--article-paper); border:1px solid var(--article-line); border-radius:14px; padding:22px 24px; margin:24px 0; }
.s22-article-v2 .article-v2-summary { border-left:3px solid var(--article-accent); }
.s22-article-v2 .article-v2-cta { background:#fffaf0; border-color:#e8d39a; }
.s22-article-v2 .article-v2-products a { color:#765b19; }
.s22-article-v2 table { display:block; overflow-x:auto; max-width:100%; }
.article-v2-progress { position:fixed; inset:0 0 auto; height:3px; background:var(--article-accent); transform:scaleX(0); transform-origin:left; z-index:2147483646; pointer-events:none; }
.article-v2-progress-label { color:var(--article-muted); font-size:13px; }
@media (max-width:1000px) {
  .s22-article-v2 { padding:24px 16px 24px; }
  .s22-article-v2 .article-v2-layout { display:block; }
  .s22-article-v2 .article-v2-toc { position:relative; top:auto; margin:12px 0 16px; }
  .s22-article-v2 .article-v2-toc.is-empty { display:none; }
  .s22-article-v2 .article-v2-main > .cta-block { margin-bottom:0; }
  .s22-article-v2 .article-v2-main > .seo-extra { margin-top:0; }
  .s22-article-v2 .article-v2-toc a { display:inline-block; margin:0 8px 8px 0; padding:9px 12px; border:1px solid var(--article-line); border-radius:999px; }
  .s22-article-v2 .article-v2-toc a.is-active { border-color:var(--article-accent); }
}
