.menu {
    display: flex;
    height: var(--menu-height);
    background-color: var(--color-bg-header);
    box-shadow: 0 0 5px 0 #00000099;
    z-index: var(--menu-z-index);
}

.menu__item {
    position: relative;
    cursor: pointer;
    color: var(--color-text-primary);
    font-size: var(--menu-item-font-size);
    line-height: var(--menu-item-line-height);
    list-style: none;
    display: flex;
    align-items: center;
    user-select: none;
}

.menu__title {
    flex-grow: 1;
}

.menu > .menu__item {
    padding: var(--menu-item-padding);
    justify-content: flex-start;
}

.menu__submenu .menu__item {
    padding: var(--menu-submenu-item-padding);
    justify-content: space-between;
}

.menu__arrow {
    flex-shrink: 0;
    margin-left: var(--menu-arrow-margin-left);
    font-size: var(--menu-arrow-font-size);
    color: var(--color-text-primary);
    display: none;
}

.menu__submenu .menu__item--has-submenu .menu__arrow {
    display: inline;
}

.menu__item:hover,
.menu__item--open {
    background-color: var(--color-bg-hover);
    color: var(--color-text-primary);
}

.menu__submenu {
    display: none;
    position: absolute;
    background-color: var(--color-bg-panel);
    border-radius: var(--border-radius-base);
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.7);
    list-style: none;
    min-width: var(--menu-submenu-min-width);
    z-index: 1000;
    padding: var(--menu-submenu-padding);
}

.menu > .menu__item--open > .menu__submenu {
    display: block;
    top: 100%;
    left: 0;
}

.menu__submenu .menu__item--open > .menu__submenu {
    display: block;
    top: var(--menu-submenu-nested-top);
    left: 100%;
    border-top-left-radius: var(--menu-submenu-nested-border-radius);
}
