.prs-menu {
  border: 1px solid var(--prs-c-gray-300);
  width: 100vw;
  min-width: 12.5rem;
  max-width: 16rem;
  background-color: var(--prs-c-white);
  display: flex;
  flex-direction: column;
  box-shadow: 1px 3px 4px rgb(0 0 0 / 0.2);

  & :where(menu) {
    max-height: calc(50vh - 8.6rem);
    overflow-y: auto;
    & > * {
      border-bottom: 1px solid var(--prs-c-gray-300);
      &:last-child {
        border: 0 none;
      }
    }
  }

  & :where(.prs-menu-item) {
    padding: 0.5rem 1rem;
    width: 100%;
    max-width: 18.75rem;
    color: var(--prs-c-primary);
    font-size: 1rem;
    line-height: 1.5rem;
    text-align: start;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    border-radius: 0;
    cursor: pointer;
    transition-property: var(--prs-transition-property);
    transition-timing-function: var(--prs-transition-timing);
    transition-duration: var(--prs-transition-duration);

    &:where(:hover,.prs-menu-item_hover) {
      background-color: var(--prs-c-primary);
      color: var(--prs-c-white);
    }

    &:where(:focus-visible,:has(:focus-visible),.prs-menu-item_focus) {
      outline: 2px solid currentColor;
      outline-offset: -2px;
      box-shadow: none;
      &:hover {
        background-color: transparent;
        color: var(--prs-c-primary);
      }
    }

    &:where(:disabled,.prs-menu-item_disabled) {
      background: transparent;
      color: var(--prs-c-gray);
      cursor: not-allowed;
      pointer-events: none;
      outline: 0 none;
    }

    & :where(.prs-menu-item-label) {
      flex-grow: 1;
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    & :where(.prs-menu-icon) {
      flex-shrink: 0;
      font-size: 1.5rem;
      &:first-child {
        font-size: 1.125rem;
      }
      & :where(svg,.icon,iconify-icon) {
        display: block;
      }
    }

    & :where(.prs-checkbox) {
      margin: 0 1px;
      &:focus-visible {
        outline: 0 none;
      }
    }

    &:where(:hover,.prs-menu-item_hover) .prs-checkbox:checked {
      --check-bg: var(--prs-c-white);
      --check-fg: var(--prs-c-primary);
      border-color: var(--check-fg);
    }
  }

  & :where(.prs-menu-search) {
    border-bottom: 1px solid var(--prs-c-gray-300);
    padding: 0.625rem;
    display: block;
  }

  /* size */
  &:where(.prs-menu-sm) {
    & :where(.prs-menu-item) {
      padding: 0.25rem 1rem;
    }
  }

  /* open */
  :where(.prs-menu_open) {
    z-index: 999;
  }
}
