/** Codapi Code Runner
 * Interactive code execution for multiple languages
 */
.markdown-section .codapi-runner {
    margin-top: var(--margin-block);
    margin-bottom: 0;
    border-radius: var(--border-radius) var(--border-radius) 0 0;
    background-color: var(--code-control-back-color);
    padding: 0;

    pre[class*="language-"] {
        margin: 0;
        padding: 0;
        border-radius: var(--border-radius) var(--border-radius) 0 0;

        > code {
            display: block;
            margin: 0;
            padding: 1rem 1.5rem !important;
            border: none !important;
        }
    }
}

.markdown-section .codapi-runner:has(+ codapi-snippet) {
    margin-bottom: 0;
}

.markdown-section codapi-snippet {
    display: block;
    margin-bottom: var(--margin-block);
    codapi-toolbar {
        display: flex;
        padding: 0.5em 1em;
        font-size: 0.9em;
        width: 100%;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        background-color: var(--code-control-back-color);
        border-top: 1px solid var(--border-color);

        a, button {
            color: var(--code-control-color);
            text-decoration: none;
            cursor: pointer;

            &:hover, &:active {
                color: var(--code-control-color--high);
            }
        }

        button {
            margin-right: 1em;
            padding-left: 30px;
            height: 1.3em;
            line-height: 1;
            background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20'><polygon fill='transparent' stroke='%23777' stroke-width='2' stroke-linejoin='round' points='15,10 1,19 1,1'/></svg>") no-repeat;

            &:hover {
                background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20'><polygon stroke='%2324a7ff' fill='%2324a7ff' stroke-width='2' stroke-linejoin='round' points='15,10 1,19 1,1'/></svg>");
            }
        }

        codapi-status {
            color: var(--code-control-info-color);
        }
    }

    codapi-output {
        --code-line-height: var(--code-output-line-height);

        display: block;
        position: relative;
        background-color: var(--code-control-back-color);
        border-top: 1px solid var(--border-color);
        border-radius: 0 0 var(--border-radius) var(--border-radius);

        &[hidden] {
            display: none;
        }

        pre {
            margin: 0;

            code {
                background-color: var(--code-bg-color);
                display: block;
                width: 100%;
                margin: 0;
                border: none !important;
                padding: 1rem !important;
                overflow-x: auto;
                font-family: var(--code-font-family);
                line-height: var(--code-output-line-height);
                font-variant-ligatures: none;
                font-feature-settings: "liga" 0, "calt" 0;
            }
        }

        a[href="#close"] {
            position: absolute;
            right: 0.75em;
            top: 0.25em;
            color: var(--code-control-color);
            text-decoration: none;
            cursor: pointer;
        }
    }
}

