/* 目录占据独立栏位，不覆盖正文；无章节的页面保留原有宽度。 */
.wy-nav-content.has-page-toc {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

.has-page-toc > .rst-content {
    min-width: 0;
}

.page-toc {
    grid-row: 1;
    min-width: 0;
    max-height: 240px;
    overflow-y: auto;
    overscroll-behavior: contain;
    font-size: 13px;
    line-height: 1.5;
    letter-spacing: 0;
    scrollbar-width: thin;
}

.page-toc ul {
    list-style: none;
    margin: 0;
    padding: 0;
    border-left: 1px solid #E1E4E5;
}

.page-toc li {
    margin: 0;
    padding: 0;
}

.page-toc a,
.page-toc a:visited {
    display: block;
    margin-left: -1px;
    padding: 4px 8px 4px calc(12px + var(--toc-depth, 0) * 12px);
    border-left: 2px solid transparent;
    color: #555;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.page-toc a:hover,
.page-toc a.active {
    border-left-color: #BE3C1E;
    background: #F5F5F5;
    color: #BE3C1E;
}

.page-toc a:focus-visible {
    outline: 2px solid #BE3C1E;
    outline-offset: -2px;
}

@media (min-width: 1280px) {
    /* hidden 会产生非页面滚动容器，使右栏 sticky 失效；clip 只裁剪横向溢出。 */
    html,
    body.wy-body-for-nav {
        overflow-x: clip;
        overflow-y: visible;
    }

    .wy-nav-content.has-page-toc {
        max-width: 1380px;
        padding-right: 16px;
        grid-template-columns: minmax(0, 1fr) clamp(260px, calc(6.25vw + 160px), 280px);
        gap: clamp(40px, calc(11.25vw - 140px), 76px);
        align-items: start;
    }

    .page-toc {
        grid-column: 2;
        grid-row: 1;
        position: sticky;
        top: 72px;
        max-height: calc(100vh - 96px);
    }
}
