/* Special styles to hide the border and </> icon on hover */

.markdown-source-view.mod-cm6 .cm-embed-block:not(.cm-table-widget, .cm-lang-base):has(.menu-container):hover {
    border-width: 0;
    outline: 0;
    box-shadow: var(--background-primary) 0 0 0 1px inset !important;
    background-color: transparent !important;
    outline: 1px solid transparent;

    .edit-block-button {
        top: 0em;
        bottom: 0;
        left: 0;
        width: 0.5rem;
        padding: 0;

        cursor: help;

        svg {
            display: none;
        }
    }
}

.menu-container,
.menu-container a {
    transition: 125ms;
}

/* 
 •·················•·················•
    | Menu Container Styles |
 •·················•·················•
*/

/* Default style variant */

.menu-container.default {
    display: flex;
    gap: 1em;
    flex-wrap: wrap;
    border-radius: 6px;
    background-color: var(--bg, var(--background-primary));
    font-family: var(--font, inherit);

    a {
        padding: 0.6em 1em;
        text-decoration: none;
        border-radius: 4px;
        transition: all 0.2s ease;
        font-weight: 500;
        border: 1px solid var(--border, var(--background-modifier-border));
        color: var(--text, var(--text-normal));
        font-family: var(--font, inherit);

        &:hover {
            color: var(--accent, var(--text-accent));
            border-color: var(--hover-border, var(--accent, var(--text-accent)));
        }

        &.menu-internal-link {
            color: var(--internal-text, var(--text, var(--text-normal)));
            border-color: var(--internal-border, var(--border, var(--background-modifier-border)));
            background-color: var(--internal-bg, transparent);
            font-family: var(--internal-font, var(--font, inherit));

            &:hover {
                color: var(--internal-accent, var(--accent, var(--text-accent)));
                border-color: var(--internal-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--internal-hover-bg, var(--hover-bg, transparent));
            }
        }

        &.menu-external-link {
            color: var(--external-text, var(--text, var(--text-normal)));
            border-color: var(--external-border, var(--border, var(--background-modifier-border)));
            background-color: var(--external-bg, transparent);
            font-family: var(--external-font, var(--font, inherit));

            &:hover {
                color: var(--external-accent, var(--accent, var(--text-accent)));
                border-color: var(--external-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--external-hover-bg, var(--hover-bg, transparent));
            }
        }

        &.menu-file-link {
            color: var(--file-text, var(--text, var(--text-normal)));
            border-color: var(--file-border, var(--border, var(--background-modifier-border)));
            background-color: var(--file-bg, transparent);
            font-family: var(--file-font, var(--font, inherit));

            &:hover {
                color: var(--file-accent, var(--accent, var(--text-accent)));
                border-color: var(--file-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--file-hover-bg, var(--hover-bg, transparent));
            }
        }
    }

    &.wide a {
        flex-grow: 1;
        flex-basis: 150px;
        text-align: center;
    }
}

/* .menu-file-link
.menu-external-link
.menu-internal-link */



/* Minimal style variant */
.menu-container.minimal {
    display: flex;
    gap: 0.2em;
    flex-wrap: wrap;
    transition: 125ms;
    background-color: var(--bg, transparent);
    font-family: var(--font, inherit);

    a {
        padding: 0.4em 0.8em;
        text-decoration: none;
        border-radius: 3px;
        transition: color 0.15s ease;
        font-size: 0.9em;
        font-weight: normal;
        color: var(--text, var(--text-normal));
        font-family: var(--font, inherit);

        &:hover {
            background-color: var(--hover-bg, var(--background-secondary));
            color: var(--accent, var(--text-accent));
        }

        &.menu-internal-link {
            color: var(--internal-text, var(--internal, var(--text-accent)));
            font-family: var(--internal-font, var(--font, inherit));

            &:hover {
                color: var(--internal-accent, var(--internal-hover, var(--text-accent-hover)));
                background-color: var(--internal-hover-bg, var(--hover-bg, var(--background-secondary)));
            }
        }

        &.menu-external-link {
            color: var(--external-text, var(--external, var(--text-faint)));
            font-family: var(--external-font, var(--font, inherit));

            &:hover {
                color: var(--external-accent, var(--external-hover, var(--text-normal)));
                background-color: var(--external-hover-bg, var(--hover-bg, var(--background-secondary)));
            }
        }

        &.menu-file-link {
            color: var(--file-text, var(--file, var(--text-faint)));
            font-family: var(--file-font, var(--font, inherit));

            &:hover {
                color: var(--file-accent, var(--file-hover, var(--text-normal)));
                background-color: var(--file-hover-bg, var(--hover-bg, var(--background-secondary)));
            }
        }
    }
}

/* Minimal style variant */
.menu-container.slate {
    display: flex;
    gap: 0.2em;
    flex-wrap: wrap;
    background-color: var(--bg, transparent);
    font-family: var(--font, inherit);

    a {
        padding: 0.4em 0.8em;
        text-decoration: none;
        border-radius: 3px;
        transition: color 0.15s ease;
        font-size: 0.9em;
        font-weight: normal;
        background-color: var(--item-bg, var(--background-secondary));
        border: 1px solid var(--border, var(--background-secondary));
        color: var(--text, var(--text-faint));
        font-family: var(--font, inherit);

        &:hover {
            background-color: var(--hover-bg, var(--background-secondary));
            color: var(--accent, var(--text-accent));
            border: 1px solid var(--hover-border, var(--accent, var(--text-accent)));
        }

        &.menu-internal-link {
            color: var(--internal-text, var(--text, var(--text-faint)));
            border-color: var(--internal-border, var(--border, var(--background-secondary)));
            background-color: var(--internal-bg, var(--item-bg, var(--background-secondary)));
            font-family: var(--internal-font, var(--font, inherit));

            &:hover {
                color: var(--internal-accent, var(--accent, var(--text-accent)));
                border-color: var(--internal-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--internal-hover-bg, var(--hover-bg, var(--background-secondary)));
            }
        }

        &.menu-external-link {
            color: var(--external-text, var(--text, var(--text-faint)));
            border-color: var(--external-border, var(--border, var(--background-secondary)));
            background-color: var(--external-bg, var(--item-bg, var(--background-secondary)));
            font-family: var(--external-font, var(--font, inherit));

            &:hover {
                color: var(--external-accent, var(--accent, var(--text-accent)));
                border-color: var(--external-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--external-hover-bg, var(--hover-bg, var(--background-secondary)));
            }
        }

        &.menu-file-link {
            color: var(--file-text, var(--text, var(--text-faint)));
            border-color: var(--file-border, var(--border, var(--background-secondary)));
            background-color: var(--file-bg, var(--item-bg, var(--background-secondary)));
            font-family: var(--file-font, var(--font, inherit));

            &:hover {
                color: var(--file-accent, var(--accent, var(--text-accent)));
                border-color: var(--file-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--file-hover-bg, var(--hover-bg, var(--background-secondary)));
            }
        }
    }
}


.menu-container.horizon {
    display: flex;
    gap: 0.5em;
    flex-wrap: wrap;
    border-radius: 8px;
    background-color: var(--bg, var(--background-primary));
    font-family: var(--font, 'Space Grotesk', Inter, sans-serif);

    a {
        font-family: var(--font, 'Space Grotesk', Inter, sans-serif);
        font-size: var(--fs, 0.9rem);
        white-space: nowrap;
        color: var(--text, var(--cyan-500, darkcyan));
        text-align: center;
        text-decoration: none;
        border: 1px solid var(--border, var(--cyan-500, darkcyan));
        border-radius: 3px;
        padding-block: var(--size-2, 0.5em);
        padding-inline: var(--size-3, 2em);
        transition: 250ms;

        &:hover {
            color: var(--accent, var(--orange-500, darkorange));
            border: 1px solid var(--hover-border, var(--accent, var(--orange-500, darkorange)));
        }

        &.menu-internal-link {
            color: var(--internal-text, var(--text, var(--cyan-500, darkcyan)));
            border-color: var(--internal-border, var(--border, var(--cyan-500, darkcyan)));
            background-color: var(--internal-bg, transparent);
            font-family: var(--internal-font, var(--font, 'Space Grotesk', Inter, sans-serif));

            &:hover {
                color: var(--internal-accent, var(--accent, var(--orange-500, darkorange)));
                border-color: var(--internal-hover-border, var(--hover-border, var(--accent, var(--orange-500, darkorange))));
                background-color: var(--internal-hover-bg, var(--hover-bg, transparent));
            }
        }

        &.menu-external-link {
            color: var(--external-text, var(--text, var(--cyan-500, darkcyan)));
            border-color: var(--external-border, var(--border, var(--cyan-500, darkcyan)));
            background-color: var(--external-bg, transparent);
            font-family: var(--external-font, var(--font, 'Space Grotesk', Inter, sans-serif));

            &:hover {
                color: var(--external-accent, var(--accent, var(--orange-500, darkorange)));
                border-color: var(--external-hover-border, var(--hover-border, var(--accent, var(--orange-500, darkorange))));
                background-color: var(--external-hover-bg, var(--hover-bg, transparent));
            }
        }

        &.menu-file-link {
            color: var(--file-text, var(--text, var(--cyan-500, darkcyan)));
            border-color: var(--file-border, var(--border, var(--cyan-500, darkcyan)));
            background-color: var(--file-bg, transparent);
            font-family: var(--file-font, var(--font, 'Space Grotesk', Inter, sans-serif));

            &:hover {
                color: var(--file-accent, var(--accent, var(--orange-500, darkorange)));
                border-color: var(--file-hover-border, var(--hover-border, var(--accent, var(--orange-500, darkorange))));
                background-color: var(--file-hover-bg, var(--hover-bg, transparent));
            }
        }
    }

    &.wide a {
        flex-grow: 1;
        flex-basis: 150px;
        text-align: center;
    }
}

.menu-container.aether {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.5em;
    background-color: var(--bg, transparent);
    font-family: var(--font, inherit);

    a {
        text-align: center;
        text-decoration: none;
        font-weight: 600;
        padding: 0.5em 1em;
        border-radius: 8px;
        color: var(--text, var(--text-normal));
        border: 1px solid var(--border, var(--background-modifier-border));
        font-family: var(--font, inherit);

        &:hover {
            color: var(--accent, var(--text-accent));
            border-color: var(--hover-border, var(--accent, var(--text-accent)));
            background-color: var(--hover-bg, var(--background-modifier-hover));
        }

        &.menu-internal-link {
            color: var(--internal-text, var(--text, var(--text-normal)));
            border-color: var(--internal-border, var(--border, var(--background-modifier-border)));
            background-color: var(--internal-bg, transparent);
            font-family: var(--internal-font, var(--font, inherit));

            &:hover {
                color: var(--internal-accent, var(--accent, var(--text-accent)));
                border-color: var(--internal-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--internal-hover-bg, var(--hover-bg, var(--background-modifier-hover)));
            }
        }

        &.menu-external-link {
            color: var(--external-text, var(--text, var(--text-normal)));
            border-color: var(--external-border, var(--border, var(--background-modifier-border)));
            background-color: var(--external-bg, transparent);
            font-family: var(--external-font, var(--font, inherit));

            &:hover {
                color: var(--external-accent, var(--accent, var(--text-accent)));
                border-color: var(--external-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--external-hover-bg, var(--hover-bg, var(--background-modifier-hover)));
            }
        }

        &.menu-file-link {
            color: var(--file-text, var(--text, var(--text-normal)));
            border-color: var(--file-border, var(--border, var(--background-modifier-border)));
            background-color: var(--file-bg, transparent);
            font-family: var(--file-font, var(--font, inherit));

            &:hover {
                color: var(--file-accent, var(--accent, var(--text-accent)));
                border-color: var(--file-hover-border, var(--hover-border, var(--accent, var(--text-accent))));
                background-color: var(--file-hover-bg, var(--hover-bg, var(--background-modifier-hover)));
            }
        }
    }
}