/* Editorial pages: guides, templates, import-error fixes. Builds on ui.css tokens. */
.article-top{background:linear-gradient(180deg,var(--paper) 0%,#fff 100%);border-bottom:1px solid var(--line)}
.article-wrap{padding-top:28px;padding-bottom:72px}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:28px;font-size:.85rem;color:var(--faint)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--blue)}
.crumbs [aria-current]{color:var(--ink-2);font-weight:550}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;align-items:start}
.article{min-width:0;max-width:760px;color:var(--ink-2);font-size:1.0625rem;line-height:1.78}
.article .kicker{margin-bottom:14px}
.article h1{font-size:clamp(2rem,3.4vw,3rem);line-height:1.08;margin:0 0 18px}
.article-lead{font-size:1.2rem;line-height:1.6;color:var(--muted);margin-bottom:14px}
.article-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:.85rem;color:var(--faint);margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.article-meta span+span::before{content:"·";margin-right:14px}
.article h2{font-size:1.55rem;margin:48px 0 14px;scroll-margin-top:96px}
.article h3{font-size:1.15rem;margin:28px 0 8px}
.article p{color:var(--ink-2)}
.article ul,.article ol{padding-left:1.3em;margin:0 0 18px}
.article li{margin:6px 0}
.article li::marker{color:var(--faint)}
.article a:not(.btn){color:var(--blue)}
.article strong{color:var(--ink)}
.article :not(pre)>code{overflow-wrap:anywhere}
.article code{font-family:var(--mono);font-size:.86em;background:var(--paper-2);border-radius:6px;padding:2px 6px;color:var(--ink)}
.article pre{background:var(--ink);color:#e3ebf8;border-radius:14px;padding:18px 20px;overflow-x:auto;margin:14px 0 24px;font-size:.86rem;line-height:1.65}
.article pre code{background:none;color:inherit;padding:0;font-size:inherit;white-space:pre}
.article table{border-collapse:separate;border-spacing:0;width:100%;margin:14px 0 26px;font-size:.93rem;line-height:1.55;display:block;overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.article th,.article td{border-bottom:1px solid var(--line);padding:10px 14px;text-align:left;vertical-align:top;min-width:120px}
.article tr:last-child td{border-bottom:0}
.article th{background:var(--paper);color:var(--ink);font-weight:650}
.error-callout{border:1px solid #f3c6c2;border-left:4px solid var(--red);background:var(--red-50);border-radius:12px;padding:14px 18px;margin:0 0 30px}
.error-callout span{display:block;font:700 .72rem/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:6px}
.error-callout code{background:none;padding:0;font-size:.98rem;color:#6e1c17;white-space:pre-wrap;word-break:break-word}
.template-download{margin:0 0 32px}
.template-download .btn{white-space:normal;max-width:100%;text-align:center}
.article-faq{margin-top:48px}
.article-faq details{border-top:1px solid var(--line);padding:16px 0}
.article-faq details:last-child{border-bottom:1px solid var(--line)}
.article-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;font-weight:650;color:var(--ink)}
.article-faq summary::-webkit-details-marker{display:none}
.article-faq summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--blue);font-weight:600;transition:transform .15s}
.article-faq details[open] summary::after{transform:rotate(45deg)}
.article-faq details p{margin:10px 0 0}
.article-cta{margin:56px 0 8px;background:linear-gradient(120deg,var(--blue-50),#e9f8f4);border:1px solid var(--blue-100);border-radius:var(--r-xl);padding:28px 30px;display:grid;gap:18px}
.article-cta h2{margin:0 0 8px;font-size:1.35rem}
.article-cta p{margin:0;color:var(--ink-2)}
.article-cta-actions{display:flex;flex-wrap:wrap;gap:12px}
.article-aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:18px}
.toc{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;font-size:.9rem;box-shadow:var(--shadow-sm)}
.toc strong{display:block;margin-bottom:10px;font:700 .72rem/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.toc ol{margin:0;padding:0;list-style:none;display:grid;gap:2px}
.toc a{display:block;padding:5px 8px;margin:0 -8px;border-radius:8px;color:var(--ink-2);text-decoration:none;line-height:1.4}
.toc a:hover{background:var(--paper);color:var(--ink)}
.aside-cta{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow)}
.aside-cta strong{display:block;font:750 1.05rem/1.3 var(--display);margin-bottom:6px;color:#fff}
.aside-cta p{color:#c3cfe4;font-size:.88rem;line-height:1.55;margin:0 0 16px}
.aside-cta .btn{background:#fff;color:var(--ink)}
.aside-cta .btn:hover{background:var(--blue-50);color:var(--ink)}
.related-section{margin-top:72px}
.related-section>h2{font-size:1.6rem;margin-bottom:6px}
.related-section>p{margin-bottom:22px}
.hub-intro{max-width:820px;padding:28px 0 8px}
.hub-intro h1{font-size:clamp(2.1rem,3.8vw,3.2rem);line-height:1.08;margin:0 0 16px}
.hub-intro .article-lead{max-width:680px}
.hub-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.hub-nav a{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:7px 14px;font-size:.88rem;font-weight:600;color:var(--ink-2);text-decoration:none;box-shadow:var(--shadow-sm)}
.hub-nav a:hover{border-color:#b9c7dc;color:var(--ink)}
.related-section[id]{scroll-margin-top:96px}
@media (max-width:1080px){
  .article-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .article-aside{position:static}
  .toc{display:none}
}
@media (max-width:760px){
  .article-wrap{padding-top:18px;padding-bottom:48px}
  .article{font-size:1rem}
  .article h2{font-size:1.35rem;margin-top:38px}
  .article-lead{font-size:1.08rem}
  .article-cta{padding:22px}
  .article-cta-actions .btn{width:100%}
  .crumbs{margin-bottom:18px}
  .related-section{margin-top:56px}
}
