.docs-layout {
    display: flex;
    width: 900px;
    min-height: calc(100vh - 57px);
}

.sidebar {
    width: 220px;
    flex-shrink: 0;
    position: sticky;
    top: 57px;
    align-self: flex-start;
    padding: 32px 16px 32px 0;
    border-right: 1px solid var(--border);
    max-height: calc(100vh - 57px);
    overflow-y: auto;

    .sidebar-nav {
        display: flex;
        flex-direction: column;
        gap: 4px;

        a {
            display: block;
            padding: 6px 12px;
            color: var(--text-sub);
            font-size: 0.9em;
            border-radius: 6px;
            transition: 0.15s;

            &:hover {
                background: var(--bg-hover);
                color: var(--text-main);
                text-decoration: none;
            }

            &.active {
                background: var(--bg-active);
                color: var(--accent);
                font-weight: 600;
            }
        }
    }
}

.docs-content {
    flex: 1;
    min-width: 0;
    padding: 32px 0 60px 40px;

    .section {
        margin-bottom: 48px;
        scroll-margin-top: 80px;

        h2 {
            font-size: 1.6em;
            font-weight: 700;
            margin-bottom: 16px;
            border-bottom: 2px solid var(--border);
            padding-bottom: 8px;
        }

        h3 {
            font-size: 1.1em;
            font-weight: 600;
            color: var(--text-sub);
        }

        > p {
            margin-bottom: 16px;
            color: var(--text-sub);
        }
    }

    footer {
        text-align: center;
        padding: 32px 0;
        border-top: 1px solid var(--border);
        color: var(--text-muted);
        font-size: 0.85em;
        margin-top: 48px;
    }
}

.card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 16px;

    p {
        margin-bottom: 10px;

        &:last-child {
            margin-bottom: 0;
        }
    }

    pre {
        margin-top: 10px;
    }

    table {
        margin-top: 10px;
    }

    &.caution {
        border-color: #5a5a4a;
        color: #c8c8a0;
    }

    &.info {
        margin-top: 10px;
        border-color: #40405a;
        color: var(--text-main);

        strong {
            color: var(--accent);
        }
    }
}

.accordion-card {
    cursor: pointer;

    .accordion-header {
        display: flex;
        align-items: center;
        gap: 10px;
        user-select: none;

        h3 {
            margin: 0;
        }
    }

    .accordion-content {
        overflow: hidden;
        height: 0;
        transition: height 0.3s ease;
    }
}
