/* SnagitPro: one saved body button, positioned beside the existing article TOC. */
body .dl-cta > a.sn-download-btn,
body .sn-home-download > a.sn-download-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 52px;
    max-width: 100%;
    padding: 13px 25px;
    border: 1px solid rgba(155, 220, 255, .45) !important;
    border-radius: 12px;
    background: linear-gradient(180deg, #71c8ff, var(--accent-hot, #4da3ff));
    color: #061b2b !important;
    font: 750 15px/1.5 var(--gh-font-body, Inter), ui-sans-serif, system-ui, sans-serif;
    letter-spacing: -.01em;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 8px 28px -16px var(--glow, rgba(47,134,232,.3));
    transition: background .16s ease, box-shadow .16s ease;
}
body a.sn-download-btn::before {
    content: '\2193';
    flex: 0 0 16px;
    width: 16px;
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
}
body .dl-cta > a.sn-download-btn:hover,
body .sn-home-download > a.sn-download-btn:hover {
    background: #8ad6ff;
    color: #061b2b !important;
    box-shadow: 0 8px 28px -13px rgba(77, 163, 255, .55);
}
body a.sn-download-btn:focus-visible {
    outline: 3px solid var(--ink, #f5f5f7);
    outline-offset: 5px;
}
.sn-home-download { margin-top: 22px; }
.sn-home-download .sn-download-btn { min-width: 210px; }
.dl-cta { margin: 24px 0; }

/* This card remains a descendant of .article-content. Only its coordinates
   follow the adjacent rail; its href, label and class are never edited. */
.article-layout.sn-download-layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    align-items: start;
}
.sn-download-layout .article-content { position: relative; }
.sn-download-layout > .article-sidebar {
    display: block;
    position: sticky;
    top: var(--sn-rail-sticky-top, 84px);
    padding-top: calc(var(--sn-download-height, 82px) + 22px);
}
.sn-download-layout .toc-panel { position: static; }
.sn-download-layout [data-sn-download-card] {
    position: absolute;
    top: var(--sn-download-top, 0px);
    left: var(--sn-download-left, 0px);
    width: var(--sn-download-width, 240px);
    margin: 0 !important;
    padding: 14px;
    border: 1px solid var(--hair, #3a3a3c);
    border-radius: 17px;
    background: linear-gradient(145deg, rgba(77, 163, 255, .09), transparent 72%), var(--card, #17171a);
    z-index: 2;
}
.sn-download-layout [data-sn-download-card] > a.sn-download-btn {
    display: flex;
    width: 100%;
    padding-inline: 16px;
}
.toc-panel > summary {
    margin-bottom: 12px;
    color: var(--accent-hot);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
}
.toc-panel > summary:focus-visible,
.toc-panel a:focus-visible {
    outline: 2px solid var(--cyan);
    outline-offset: 4px;
    border-radius: 3px;
}
.sn-download-layout .toc {
    max-height: max(100px, calc(100dvh - var(--sn-rail-sticky-top, 84px) - var(--sn-download-height, 82px) - 70px));
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--hair) transparent;
}
.sn-download-layout h2[id] { scroll-margin-top: calc(var(--sn-rail-sticky-top, 84px) + 12px); }

@media (max-width: 960px) {
    .article-layout.sn-download-layout { display: block; }
    .sn-download-layout > .article-sidebar {
        position: relative;
        top: auto;
        margin-bottom: 26px;
        padding-top: calc(var(--sn-download-height, 52px) + 16px);
    }
    .sn-download-layout [data-sn-download-card] {
        padding: 0;
        border: 0;
        border-radius: 0;
        background: none;
    }
    .sn-download-layout .toc-panel {
        padding: 14px 16px;
        border: 1px solid var(--hair-soft);
        border-radius: 12px;
        background: var(--card);
    }
    .toc-panel > summary { margin-bottom: 0; }
    .toc-panel[open] > summary { margin-bottom: 12px; }
    .sn-download-layout .toc { max-height: min(52vh, 360px); }
    .sn-download-layout .toc a { padding-block: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    body a.sn-download-btn { transition: none; }
}
