:root {
  --tag-background: transparent;
  --tag-color: var(--color-neutral-100);
  --tag-icon-color: currentColor;
  --tag-button-background: transparent;
  --tag-height: 24px;
  --tag-opacity: 0.72;
}

.gray {
  --tag-background: var(--color-neutral-30-rgb);
  --tag-outline: var(--color-neutral-40-rgb);
  --tag-button-background: var(--color-neutral-20);
}

.yellow {
  --tag-background: var(--color-warning-20-rgb);
  --tag-outline: var(--color-warning-20-rgb);
  --tag-button-background: var(--color-warning-20);
}

.green {
  --tag-background: var(--color-success-10-rgb);
  --tag-outline: var(--color-success-20-rgb);
  --tag-button-background: var(--color-success-20);
}

.red {
  --tag-background: var(--color-error-20-rgb);
  --tag-outline: var(--color-error-30-rgb);
  --tag-button-background: var(--color-error-20);
}

.blue {
  --tag-background: var(--color-accent-20-rgb);
  --tag-outline: var(--color-accent-30-rgb);
  --tag-button-background: var(--color-accent-20);
}

.purple {
  --tag-background: var(--color-support-quaternary-20-rgb);
  --tag-outline: var(--color-support-quaternary-30-rgb);
  --tag-button-background: var(--color-support-quaternary-20);
}

.dark {
  --tag-opacity: 0.88;
  --tag-background: var(--color-neutral-0-rgb);
  --tag-outline: var(--color-neutral-30-rgb);
  --tag-button-background: var(--color-neutral-20);
}

.ai {
  --tag-color: var(--color-neutral-100);
}

.disabled {
  --tag-background: var(--color-neutral-30-rgb);
  --tag-outline: var(--color-neutral-30-rgb);
  --tag-color: var(--color-neutral-60);
  --tag-button-background: var(--color-neutral-20);
  cursor: not-allowed;
}

.tag {
  background: rgba(var(--tag-background), var(--tag-opacity));
  height: var(--tag-height);
  max-height: var(--tag-height);
  min-width: var(--tag-height);
  font-size: 12px;
  border: 1px solid rgb(var(--tag-outline));
  border-radius: calc(var(--tag-height) / 2);
  color: var(--tag-color);

  &.ai,
  &.secondary.ai {
    border: 1px solid rgba(160, 115, 255, 1);
    background: linear-gradient(
      208deg,
      rgba(160, 115, 255, 0.32) 31.76%,
      rgba(1, 220, 205, 0.32) 123.33%
    );
  }

  &.secondary {
    --tag-icon-color: rgb(var(--tag-background));
    --tag-color: var(--color-neutral-100);
    background: rgb(var(--color-neutral-30-rgb), 0.72);
    border-radius: var(--border-radius-tiny);
    border: none;

    &.showRemoveAsIcon {
      .removeButton {
        display: none;
      }

      &:hover {
        .removeButton {
          display: block;
        }
        .tagIcon {
          display: none;
        }
      }
    }

    &.yellow {
      --tag-icon-color: var(--color-warning-30);
    }

    &.green {
      --tag-icon-color: var(--color-success-30);
    }

    &.red {
      --tag-icon-color: var(--color-error-40);
    }

    &.gray {
      --tag-icon-color: var(--color-neutral-80);
    }

    &.blue {
      --tag-icon-color: var(--color-accent-30);
    }

    &.dark {
      --tag-icon-color: var(--color-neutral-100);
    }

    &.purple {
      --tag-icon-color: var(--color-support-quaternary-50);
    }

    &.ai {
      --tag-icon-color: var(--color-neutral-100);
    }
  }

  &.selectable {
    cursor: pointer;
  }

  .tagIcon,
  .removeButton {
    width: calc(var(--tag-height) - 8px);
    height: calc(var(--tag-height) - 8px);
    line-height: 12px;
    font-size: 12px;
  }

  button {
    color: var(--tag-color);
    background-color: transparent;
    border: none;
    outline: none;
    border-radius: 50%;
    padding: 0;
    margin: 0;
    cursor: pointer;
    &:hover {
      background: var(--tag-button-background);
    }
  }
  .label {
    padding: 0 4px;
  }
  .tagIcon {
    font-size: 12px;
    color: var(--tag-icon-color);
  }
  .label span {
    text-overflow: ellipsis;
    overflow: hidden;
  }

  &.tiny {
    --tag-height: 16px;
    .label {
      padding: 0;
      padding: 0 4px;
      font-size: 12px;
    }
    .tagIcon {
      font-size: 12px;
    }

    &.tiny .disabled {
      background-color: var(--color-neutral-40);
      color: var(--color-neutral-70);
    }
  }

  &.link {
    .label span:hover {
      text-decoration: underline;
    }
  }
}