.lux-menu-trigger-wrapper {
  display: inline-flex;
  min-width: 0;
}

.lux-menu-wrapper {
  z-index: 999;
}

.lux-menu {
  border-radius: var(--border-radius);
  border: 1px solid var(--menu-border-color);
  overflow: hidden;
  background-color: var(--menu-bg-color);
}

.lux-menu-arrow,
.lux-menu-arrow:before {
  position: absolute;
  width: 8px;
  height: 8px;
  background: inherit;
  background-color: var(--menu-bg-color);
}

.lux-menu-arrow {
  visibility: hidden;
}

.lux-menu-arrow:before {
  visibility: visible;
  content: "";
  transform: rotate(45deg);
}

.lux-menu-wrapper {
  &[data-popper-placement^="top"] .lux-menu-arrow {
    bottom: -4px;

    &:before {
      border-bottom: 1px solid var(--menu-border-color);
      border-right: 1px solid var(--menu-border-color);
    }
  }

  &[data-popper-placement^="bottom"] .lux-menu-arrow {
    top: -4px;

    &:before {
      border-top: 1px solid var(--menu-border-color);
      border-left: 1px solid var(--menu-border-color);
    }
  }

  &[data-popper-placement^="left"] .lux-menu-arrow {
    right: -4px;

    &:before {
      border-left: 1px solid var(--menu-border-color);
      border-bottom: 1px solid var(--menu-border-color);
    }
  }

  &[data-popper-placement^="right"] > .lux-menu-arrow {
    left: -4px;

    &:before {
      border-right: 1px solid var(--menu-border-color);
      border-top: 1px solid var(--menu-border-color);
    }
  }
}

.lux-menu-wrapper.inverted {
  .lux-menu,
  .lux-menu-arrow,
  .lux-menu-arrow:before {
    background-color: var(--menu-inverted-bg-color);
  }

  .lux-menu,
  .lux-menu-arrow:before {
    border-color: var(--menu-inverted-border-color);
  }
}

.lux-menu-content {
  min-width: 120px;
  max-width: 240px;
}

.lux-menu-search-wrapper {
  position: relative;
  background-color: var(--menu-search-bg-color);
  border-bottom: 1px solid var(--menu-search-divider-color);

  input {
    background: transparent;
    border: 0;
    padding: 0.375rem 0.75rem;
    outline: 0;
    width: 100%;
    color: var(--input-color);
  }
}

.lux-menu-content {
  .rows {
    max-height: 50vh;
  }

  .create-row,
  .no-result {
    font-size: 0.9rem;
    padding: 0.375rem 0.75rem;
  }

  .no-result {
    color: var(--menu-no-result-color);
  }

  .create-row {
    cursor: pointer;

    .icon {
      margin-right: 0.75rem;
      width: 1rem;
      height: 1rem;
      color: var(--menu-item-icon-color);

      :global(svg) {
        width: 1rem;
        height: 1rem;
      }
    }

    span {
      font-weight: var(--medium-font-weight);
    }

    &.selected {
      color: var(--menu-item-hover-color);
      background-color: var(--menu-item-hover-bg-color);

      .icon {
        color: var(--menu-item-icon-hover-color);
      }
    }
  }
}

.lux-menu-item {
  padding: 0.375rem 0.75rem;
  color: var(--menu-item-color);
  font-size: 0.9rem;
  cursor: pointer;
  position: relative;
  z-index: 1;

  &.selected {
    color: var(--menu-item-hover-color);
    background-color: var(--menu-item-hover-bg-color);

    .lux-menu-icon {
      color: var(--menu-item-icon-hover-color);
    }

    .lux-menu-right-text {
      color: var(--menu-item-hover-color);
    }
  }

  .icon-text {
    min-width: 0;
  }

  .menu-icon {
    margin-right: 0.75rem;
    width: 1rem;
    height: 1rem;
    color: var(--menu-item-icon-color);
    justify-content: center;

    :global(svg) {
      width: 1rem;
      height: 1rem;
    }
  }

  .menu-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .menu-right-text {
    color: var(--menu-item-secondary-color);
    margin-left: 1rem;
  }
}
