/*
 * Navigation rows.
 *
 * Global rather than scoped to NavigationMenuItem: the row is a NavLink, and Blazor's CSS isolation
 * only stamps its scope attribute onto HTML elements written in a component's own markup, never onto
 * a child component's rendered root, so a scoped rule would miss every row.
 */

.navigation-menu-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding-inline: 16px;
    background-color: transparent;
    color: var(--theme-text-muted-color);
    font-family: var(--brand-font-family);
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    text-decoration: none;
}

.navigation-menu-item:hover {
    background-color: var(--theme-surface-hover-color);
}

.navigation-menu-item:focus-visible {
    outline: 2px solid var(--theme-focus-ring-color);
    outline-offset: -2px;
}

.navigation-menu-item.active {
    background-color: var(--theme-surface-navigation-active-color);
    color: var(--theme-text-primary-color);
}

.navigation-menu-item.active::before {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 2px;
    background-color: var(--brand-primary-color);
}

.navigation-menu-item--action {
    font-weight: 400;
}

.navigation-menu-item__icon {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: var(--theme-text-disabled-color);
    background-color: currentColor;
    -webkit-mask: var(--navigation-menu-item-icon) center / contain no-repeat;
    mask: var(--navigation-menu-item-icon) center / contain no-repeat;
}

.navigation-menu-item.active .navigation-menu-item__icon {
    color: var(--theme-text-primary-color);
}

/* Figma draws the Lumi mark at 20px bleeding out of its 16px slot (inset -12.5% / -22.92%). */
.navigation-menu-item__logo {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    object-fit: contain;
    transform: scale(1.25);
}

.navigation-menu-item__label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.navigation-menu-item__badge {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    margin-inline-start: auto;
    padding-inline: 4px;
    border-radius: 4px;
    background-color: var(--theme-status-danger-subtle-color);
    box-shadow: 0 1px 1px rgb(0 0 0 / 0.06), 0 1px 1.5px rgb(0 0 0 / 0.1);
    color: var(--theme-status-danger-color);
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
}

.navigation-menu-item--home {
    --navigation-menu-item-icon: url("/images/navigation-icons/home.svg");
}

.navigation-menu-item--briefcase {
    --navigation-menu-item-icon: url("/images/navigation-icons/briefcase.svg");
}

.navigation-menu-item--diamond {
    --navigation-menu-item-icon: url("/images/navigation-icons/diamond.svg");
}

.navigation-menu-item--bell-ringing {
    --navigation-menu-item-icon: url("/images/navigation-icons/bell-ringing.svg");
}

.navigation-menu-item--broadcast {
    --navigation-menu-item-icon: url("/images/navigation-icons/broadcast.svg");
}

.navigation-menu-item--scroll {
    --navigation-menu-item-icon: url("/images/navigation-icons/scroll.svg");
}

.navigation-menu-item--magnifier-trend {
    --navigation-menu-item-icon: url("/images/navigation-icons/magnifier-trend.svg");
}

.navigation-menu-item--gear {
    --navigation-menu-item-icon: url("/images/navigation-icons/gear.svg");
}

.navigation-menu-item--mobile {
    flex: 0 0 auto;
    align-self: center;
    justify-content: center;
    gap: 0;
    width: 40px;
    height: 40px;
    min-width: 0;
    min-height: 0;
    padding-inline: 0;
    border-radius: 4px;
}

.navigation-menu-item--mobile.active {
    background-color: transparent;
}

.navigation-menu-item--mobile .navigation-menu-item__icon,
.navigation-menu-item--mobile .navigation-menu-item__logo {
    width: 24px;
    height: 24px;
}

.navigation-menu-item--mobile .navigation-menu-item__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.navigation-menu-item--mobile.active::before {
    inset-block: -16px auto;
    inset-inline: 50% auto;
    width: 40px;
    height: 3px;
    border-radius: 0 0 2px 2px;
    background-color: var(--theme-text-primary-color);
    transform: translateX(-50%);
}

.navigation-menu-item--mobile .navigation-menu-item__badge {
    position: absolute;
    top: -5px;
    inset-inline-end: -3px;
    margin-inline-start: 0;
}

[data-navigation-menu="collapsed"] .navigation-menu-item {
    justify-content: center;
    padding-inline: 16px;
}

[data-navigation-menu="collapsed"] .navigation-menu-item__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

[data-navigation-menu="collapsed"] .navigation-menu-item__badge {
    position: absolute;
    top: 3px;
    inset-inline-end: 8px;
    min-width: 0;
    height: auto;
    margin-inline-start: 0;
    padding: 1px 4px;
    font-size: 10px;
}

.navigation-menu-item--panel-left {
    --navigation-menu-item-icon: url("/images/navigation-icons/panel-left.svg");
    width: 100%;
    border: none;
    font-family: inherit;
    text-align: start;
    cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
    .navigation-menu--desktop {
        transition: none;
    }
}

.navigation-menu-item--drawer {
    min-height: 38px;
    padding-inline: 24px;
    border-inline-start: 4px solid transparent;
    color: var(--theme-text-disabled-color);
    font-size: 16px;
    line-height: 24px;
}

.navigation-menu-item--drawer:hover {
    background-color: color-mix(in srgb, var(--theme-text-inverse-color) 8%, transparent);
}

.navigation-menu-item--drawer.active {
    background-color: transparent;
    border-inline-start-color: var(--brand-secondary-color);
    color: var(--theme-text-inverse-color);
}

.navigation-menu-item--drawer.active::before {
    content: none;
}

.navigation-menu-item--drawer .navigation-menu-item__icon {
    color: var(--theme-text-disabled-color);
}

.navigation-menu-item--drawer.active .navigation-menu-item__icon {
    color: var(--theme-text-inverse-color);
}

.navigation-menu-drawer .user-profile-menu__control.e-dropdown-btn {
    padding-inline: 24px;
}

.navigation-menu-drawer .user-profile-menu__control.e-dropdown-btn:hover {
    background: color-mix(in srgb, var(--theme-text-inverse-color) 8%, transparent);
}

.navigation-menu-drawer .user-profile-menu__name {
    color: var(--theme-text-inverse-color);
}

.navigation-menu-drawer .user-profile-menu__email {
    color: var(--theme-text-disabled-color);
}
