// Tooltip

.opacity(@value){
  opacity: @value;
}

// Base class
.tooltip {
  position: absolute;
  z-index: @zindex-tooltip;
  display: block;
  font-family: @font-family-base-component;
  font-size: @font-size-base-component;
  visibility: visible;
  font-weight: normal;
  letter-spacing: 0;
  .opacity(0);

  &.in     { .opacity(@tooltip-opacity); }
  &.top    { margin-top:  -3px; padding: @tooltip-arrow-width 0; }
  &.right  { margin-left:  3px; padding: 0 @tooltip-arrow-width; }
  &.bottom { margin-top:   3px; padding: @tooltip-arrow-width 0; }
  &.left   { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
  &.bottom-left { margin-top:   3px; padding: @tooltip-arrow-width 0; }
  &.bottom-right { margin-top:  3px; padding: @tooltip-arrow-width 0; }
}

// Wrapper for the tooltip content
.tooltip-inner {
  min-width: @tooltip-min-width;
  max-width: @tooltip-max-width;
  padding: 7px 12px 4px;
  box-sizing: border-box;
  color: @tooltip-color;
  text-align: left;
  text-decoration: none;
  background-color: @tooltip-bg;
  border-radius: @border-radius-base;

  & > span[class^="tooltip-icon"] {
    font-size: 16px;
    margin-right: 12px;
  }

  & > span[class="tooltip-icon-warning"] {
    color: @tooltip-icon-warning-color;
  }

  & > span[class="tooltip-icon-info"] {
    color: @tooltip-icon-info-color;
  }

  & > span[class="tooltip-icon-error"] {
    color: @tooltip-icon-error-color;
  }
}

// Arrows
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border: 0 solid transparent;
}

.tooltip {

  &.top .tooltip-arrow {
    bottom: 0;
    left: 50%;
    margin-left: -@tooltip-arrow-width;
    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
    border-top-color: @tooltip-arrow-color;
  }

  &.top-left .tooltip-arrow {
    bottom: 0;
    right: @tooltip-arrow-width;
    margin-bottom: -@tooltip-arrow-width;
    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
    border-top-color: @tooltip-arrow-color;
  }

  &.top-right .tooltip-arrow {
    bottom: 0;
    left: @tooltip-arrow-width;
    margin-bottom: -@tooltip-arrow-width;
    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
    border-top-color: @tooltip-arrow-color;
  }

  &.right .tooltip-arrow {
    top: 50%;
    left: 0;
    margin-top: -@tooltip-arrow-width;
    border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;
    border-right-color: @tooltip-arrow-color;
  }

  &.left .tooltip-arrow {
    top: 50%;
    right: 0;
    margin-top: -@tooltip-arrow-width;
    border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;
    border-left-color: @tooltip-arrow-color;
  }

  &.bottom .tooltip-arrow {
    top: 0;
    left: 50%;
    margin-left: -@tooltip-arrow-width;
    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
    border-bottom-color: @tooltip-arrow-color;
  }

  &.bottom-left .tooltip-arrow {
    top: 4px;
    left: 12px;
    margin-top: -@tooltip-arrow-width;
    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
    border-bottom-color: @tooltip-arrow-color;
  }

  &.bottom-right .tooltip-arrow {
    top: 4px;
    right: 12px;
    margin-top: -@tooltip-arrow-width;
    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
    border-bottom-color: @tooltip-arrow-color;
  }
}