.egeok-code-block-shell {
    position: relative;
    margin: 1rem 0;
}

.egeok-code-block-shell > pre {
    margin-top: 0;
    margin-bottom: 0;
}

.egeok-code-block-shell pre > code,
.egeok-code-copy-layer + .ProseMirror pre > code,
.prose-editor .ProseMirror pre > code {
    padding-right: 2.75rem;
}

.egeok-code-copy-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 0.375rem;
    background: rgba(255, 255, 255, 0.92);
    color: #475569;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease, background-color 0.15s ease, color 0.15s ease;
    z-index: 2;
}

.egeok-code-copy-btn:hover {
    background: #fff;
    color: #0f172a;
    border-color: rgba(15, 23, 42, 0.2);
}

.egeok-code-copy-btn:focus-visible {
    opacity: 1;
    outline: 2px solid var(--egeok-accent, #049622);
    outline-offset: 2px;
}

.egeok-code-copy-btn.is-copied {
    opacity: 1;
    color: var(--egeok-accent, #049622);
    border-color: rgba(4, 150, 34, 0.35);
}

.egeok-code-block-shell .egeok-code-copy-btn {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
}

.egeok-code-block-shell:hover .egeok-code-copy-btn,
.egeok-code-block-shell:focus-within .egeok-code-copy-btn {
    opacity: 1;
}

.egeok-code-copy-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 5;
}

.egeok-code-copy-btn--overlay {
    position: absolute;
    pointer-events: auto;
}

.egeok-code-copy-btn--overlay.is-visible,
.egeok-code-copy-btn--overlay:focus-visible,
.egeok-code-copy-btn--overlay.is-copied {
    opacity: 1;
}

.prose-editor {
    position: relative;
}
