/* ============================================================================
   Table of Contents Navigation Component
   In-page navigation for documentation and devtools pages
   ============================================================================ */

/* ToC Container */
.toc-navigation {
    margin-bottom: var(--spacing-5);
}

/* Section Label */
.toc-section-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-gray-600);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--spacing-2);
}

/* Navigation List */
.toc-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    max-height: 400px;  /* Scrollable for long ToCs */
    overflow-y: auto;
}

.toc-nav-list li {
    margin-bottom: var(--spacing-2);
    padding-left: var(--spacing-3);
}

/* Navigation Links */
.toc-nav-link {
    display: block;
    color: var(--color-accent);
    text-decoration: none;
    line-height: 1.4;
    overflow: hidden;
    word-break: break-word;
    max-height: 4.2em;  /* 3 lines max */
}

.toc-nav-link:hover {
    color: var(--color-accent-dark);
    text-decoration: underline;
}

.toc-nav-link:focus {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.toc-nav-link.active {
    font-weight: var(--font-weight-bold);
}

/* Divider between ToC and Related Pages */
.toc-divider {
    border: none;
    border-top: var(--border-width-1) solid var(--border-color-light);
    margin: var(--spacing-5) 0;
}

/* Smooth Scroll Behavior */
html {
    scroll-behavior: smooth;
}

/* Respect motion preferences */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* Mobile: Collapsible ToC */
@media (max-width: 768px) {
    .toc-mobile-collapsible {
        margin-bottom: var(--spacing-4);
    }

    .toc-mobile-summary {
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-bold);
        color: var(--color-gray-600);
        text-transform: uppercase;
        letter-spacing: 0.05em;
        cursor: pointer;
        padding: var(--spacing-2);
        background-color: var(--color-gray-100);
        border-radius: var(--radius-base);
    }

    .toc-mobile-summary:hover {
        background-color: var(--color-gray-200);
    }
}
