/* Tooltip wrapper */
.ds-tooltip-wrapper {
  position: relative;
  display: inline-block;
  width: fit-content;
}

/* Tooltip base */
.ds-tooltip {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: var(--size1, 4px);
  padding: var(--size2, 8px) var(--size3, 12px);
  background-color: var(--semantic-bg-neutral);
  border-radius: var(--br-xs, 4px);
  color: var(--semantic-text-white-primary);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 1000;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
  font-family: var(--body-x-small-fontFamily, var(--font-family, 'Satoshi', sans-serif));
  pointer-events: none;
  white-space: nowrap;
}

/* Visible state */
.ds-tooltip--visible {
  opacity: 1;
  visibility: visible;
}

/* Text */
.ds-tooltip__text {
  font-family: var(--body-x-small-fontFamily, var(--font-family, 'Satoshi', sans-serif));
  font-weight: var(--body-x-small-fontWeight, 400);
  font-size: var(--body-x-small-fontSize, 12px);
  line-height: var(--body-x-small-lineHeight, 150%);
}

/* Icon */
.ds-tooltip__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  color: var(--semantic-icon-inverse-bold);
}

/* Beak (arrow) */
.ds-tooltip__beak {
  position: absolute;
  width: 8px;
  height: 8px;
  background-color: var(--semantic-bg-neutral);
  transform: rotate(45deg);
  z-index: -1;
}

/* Placement: Top */
.ds-tooltip--top {
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
}

.ds-tooltip--top .ds-tooltip__beak {
  left: 50%;
  bottom: -4px;
  transform: translateX(-50%) rotate(45deg);
}

/* Placement: Top Left */
.ds-tooltip--top-left {
  bottom: calc(100% + 8px);
  left: 0;
}

.ds-tooltip--top-left .ds-tooltip__beak {
  left: var(--size3, 12px);
  bottom: -4px;
  transform: rotate(45deg);
}

/* Placement: Top Right */
.ds-tooltip--top-right {
  bottom: calc(100% + 8px);
  right: 0;
}

.ds-tooltip--top-right .ds-tooltip__beak {
  right: var(--size3, 12px);
  bottom: -4px;
  transform: rotate(45deg);
}

/* Placement: Right */
.ds-tooltip--right {
  left: calc(100% + 8px);
  top: 50%;
  transform: translateY(-50%);
}

.ds-tooltip--right .ds-tooltip__beak {
  left: -4px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

/* Placement: Bottom */
.ds-tooltip--bottom {
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
}

.ds-tooltip--bottom .ds-tooltip__beak {
  left: 50%;
  top: -4px;
  transform: translateX(-50%) rotate(45deg);
}

/* Placement: Bottom Left */
.ds-tooltip--bottom-left {
  top: calc(100% + 8px);
  left: 0;
}

.ds-tooltip--bottom-left .ds-tooltip__beak {
  left: var(--size3, 12px);
  top: -4px;
  transform: rotate(45deg);
}

/* Placement: Bottom Right */
.ds-tooltip--bottom-right {
  top: calc(100% + 8px);
  right: 0;
}

.ds-tooltip--bottom-right .ds-tooltip__beak {
  right: var(--size3, 12px);
  top: -4px;
  transform: rotate(45deg);
}

/* Placement: Left */
.ds-tooltip--left {
  right: calc(100% + 8px);
  top: 50%;
  transform: translateY(-50%);
}

.ds-tooltip--left .ds-tooltip__beak {
  right: -4px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
