.mirai-toc-widget .mirai-toc-body {
    max-height: 70vh;
    overflow-y: auto;
    padding-right: 4px;
}

.mirai-toc-body ul,
.mirai-toc-body ol {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mirai-toc-list {
    font-size: 0.9375rem;
    line-height: 1.6;
}

.mirai-toc-sublist {
    padding-left: 1rem !important;
    border-left: 2px solid var(--gt-border-color, rgba(50, 83, 180, 0.1));
    margin: 0.25rem 0 0.25rem 0.25rem !important;
}

.mirai-toc-item {
    margin: 0.25rem 0;
}

.mirai-toc-item a {
    display: block;
    padding: 0.35rem 0.5rem;
    border-radius: 6px;
    color: var(--gt-text-secondary, rgba(52, 73, 94, 0.66));
    text-decoration: none;
    transition: color 0.2s, background 0.2s;
    word-break: break-word;
}

.mirai-toc-item a:hover,
.mirai-toc-item a.active {
    color: var(--gt-info, #1890ff);
    background: var(--gt-info-hover, rgba(24, 144, 255, 0.09));
}

html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* 移动端目录 */
.mirai-mobile-toc {
    display: none;
}

@media (max-width: 768px) {
    .mirai-mobile-toc {
        display: block;
    }

    .mirai-mobile-toc-toggle {
        position: fixed;
        right: 1rem;
        bottom: calc(1rem + 60px + env(safe-area-inset-bottom));
        z-index: 999;
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.6rem 1rem;
        border: none;
        border-radius: 50px;
        background: var(--gt-info, #1890ff);
        color: #fff;
        font-size: 0.875rem;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
        cursor: pointer;
        transition: transform 0.2s, opacity 0.2s;
    }

    .mirai-mobile-toc-toggle:active {
        transform: scale(0.96);
    }

    .mirai-mobile-toc-overlay {
        position: fixed;
        inset: 0;
        z-index: 1000;
        background: rgba(0, 0, 0, 0.4);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }

    .mirai-mobile-toc.active .mirai-mobile-toc-overlay {
        opacity: 1;
        visibility: visible;
    }

    .mirai-mobile-toc-panel {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1001;
        max-height: 70vh;
        background: var(--gt-card-bg, #fff);
        border-radius: 16px 16px 0 0;
        transform: translateY(100%);
        transition: transform 0.3s ease;
        display: flex;
        flex-direction: column;
        box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
    }

    .mirai-mobile-toc.active .mirai-mobile-toc-panel {
        transform: translateY(0);
    }

    .mirai-mobile-toc-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0.875rem 1rem;
        border-bottom: 1px solid var(--gt-border-color, rgba(50, 83, 180, 0.1));
    }

    .mirai-mobile-toc-title {
        font-weight: 600;
        font-size: 1rem;
    }

    .mirai-mobile-toc-close {
        width: 32px;
        height: 32px;
        border: none;
        border-radius: 50%;
        background: transparent;
        color: var(--gt-text-secondary, rgba(52, 73, 94, 0.66));
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

    .mirai-mobile-toc-body {
        overflow-y: auto;
        padding: 0.75rem 1rem calc(1rem + env(safe-area-inset-bottom));
        -webkit-overflow-scrolling: touch;
    }

    .mirai-mobile-toc-body .mirai-toc-list {
        font-size: 1rem;
    }

    .mirai-mobile-toc-body .mirai-toc-item a {
        padding: 0.625rem 0.5rem;
    }

    body.mirai-mobile-toc-open {
        overflow: hidden;
    }
}
