.article-toc {
  position: sticky; top: 104px; align-self: start; min-width: 0;
  border: 1px solid #dfe6ee; border-radius: 8px; background: #fff;
  color: #0f1e34; overflow: hidden; letter-spacing: 0;
}
.article-toc summary {
  padding: 16px 18px; cursor: pointer; color: #0f1e34;
  font-size: 14px; font-weight: 700; line-height: 1.6;
  list-style-position: inside;
}
.article-toc summary::marker { color: #c94325; }
.article-toc details[open] summary { border-bottom: 1px solid #e9eef5; }
.article-toc ol {
  list-style: none; margin: 0; padding: 10px; display: grid; gap: 2px;
  max-height: calc(100vh - 190px); max-height: calc(100dvh - 190px);
  overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin;
}
.article-toc li { margin: 0; min-width: 0; padding-inline-start: calc(var(--toc-depth, 0) * 12px); }
.article-toc a {
  display: block; padding: 8px 10px; min-height: 36px; border-radius: 4px;
  color: #52647a; text-decoration: none; font-size: 13px; font-weight: 500;
  line-height: 1.7; overflow-wrap: anywhere; text-align: start;
  border-inline-start: 2px solid transparent;
}
.article-toc a:hover { color: #aa341b; background: #fff6f2; }
.article-toc a[aria-current="location"] { color: #aa341b; background: #fff1eb; border-inline-start-color: #c94325; font-weight: 700; }
.article-toc a:focus-visible, .article-toc summary:focus-visible { outline: 2px solid #c94325; outline-offset: -2px; }
[data-article-body][id], [data-article-body] :is(h2, h3, h4, h5, h6)[id] { scroll-margin-top: var(--article-anchor-offset, 112px); }
.article-toc.article-toc-inline { position: static; order: 0; align-self: stretch; margin-bottom: 28px; }
.article-toc-inline ol { max-height: 320px; }
@media (max-width: 900px) {
  .article-toc { position: static; order: -1; margin-bottom: 26px; }
  .article-toc ol { max-height: 280px; }
}
