/**
 * Badge
 */
.badge {
  display: inline-block;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  color: var(--badge--color);
  background: var(--badge--background);
  border-style: var(--badge--border-style, var(--badge--border-top-style, var(--border-top-style)) var(--badge--border-right-style, var(--border-right-style)) var(--badge--border-bottom-style, var(--border-bottom-style)) var(--badge--border-left-style, var(--border-left-style)));
  border-width: var(--badge--border-width, var(--badge--border-top-width, var(--border-top-width)) var(--badge--border-right-width, var(--border-right-width)) var(--badge--border-bottom-width, var(--border-bottom-width)) var(--badge--border-left-width, var(--border-left-width)));
  border-color: var(--badge--border-color, var(--badge--border-top-color, var(--border-top-color)) var(--badge--border-right-color, var(--border-right-color)) var(--badge--border-bottom-color, var(--border-bottom-color)) var(--badge--border-left-color, var(--border-left-color)));
  border-radius: var(--badge--border-radius, var(--badge--border-top-left-radius, var(--border-top-left-radius)) var(--badge--border-top-right-radius, var(--border-top-right-radius)) var(--badge--border-bottom-right-radius, var(--border-bottom-right-radius)) var(--badge--border-bottom-left-radius, var(--border-bottom-left-radius)));
  font-size: var(--badge--font-size, var(--font-size));
  box-shadow: var(--badge--box-shadow, var(--badge--box-shadow-x-offset, var(--box-shadow-offset-x)) var(--badge--box-shadow-y-offset, var(--box-shadow-offset-y)) var(--badge--box-shadow-blur-radius, var(--box-shadow-blur-radius)) var(--badge--box-shadow-spread-radius, var(--box-shadow-spread-radius)) var(--badge--box-shadow-color, var(--box-shadow-color)));
  padding: var(--badge--padding, var(--badge--padding-top, var(--padding-top)) var(--badge--padding-right, var(--padding-right)) var(--badge--padding-bottom, var(--padding-bottom)) var(--badge--padding-left, var(--padding-left)));
  font-weight: var(--badge--font-weight, var(--font-weight-semibold));
  transition-property: var(--badge--transition-property, background-color, color, border-color);
  transition-duration: var(--badge--transition-duration, var(--transition-duration));
  transition-timing-function: var(--badge--transition-timing-function, var(--transition-timing-function));
}
a:hover .badge, a:focus .badge {
  text-decoration: none;
  background: var(--badge--link--hover--background, var(--badge--background));
}
.button .badge {
  position: relative;
  top: -1px;
}
.badge.-pill {
  --border-radius: 50%;
}

/**
 * Color variants
 */
.badge.-primary {
  --badge--background: var(--badge--primary--background, var(--color-primary));
  --badge--border-top-color: var(
      --badge--primary--border-top-color,
      var(--color-primary-shade-50)
  );
  --badge--border-right-color: var(
      --badge--primary--border-right-color,
      var(--color-primary-shade-50)
  );
  --badge--border-bottom-color: var(
      --badge--primary--border-bottom-color,
      var(--color-primary-shade-50)
  );
  --badge--border-left-color: var(
      --badge--primary--border-left-color,
      var(--color-primary-shade-50)
  );
  --badge--color: var(--badge--primary--color, var(--contrast-text-color-primary));
}
.badge.-secondary {
  --badge--background: var(--badge--secondary--background, var(--color-secondary));
  --badge--border-top-color: var(
      --badge--secondary--border-top-color,
      var(--color-secondary-shade-50)
  );
  --badge--border-right-color: var(
      --badge--secondary--border-right-color,
      var(--color-secondary-shade-50)
  );
  --badge--border-bottom-color: var(
      --badge--secondary--border-bottom-color,
      var(--color-secondary-shade-50)
  );
  --badge--border-left-color: var(
      --badge--secondary--border-left-color,
      var(--color-secondary-shade-50)
  );
  --badge--color: var(--badge--secondary--color, var(--contrast-text-color-secondary));
}
.badge.-info {
  --badge--background: var(--badge--info--background, var(--color-info));
  --badge--border-top-color: var(--badge--info--border-top-color, var(--color-info-shade-50));
  --badge--border-right-color: var(
      --badge--info--border-right-color,
      var(--color-info-shade-50)
  );
  --badge--border-bottom-color: var(
      --badge--info--border-bottom-color,
      var(--color-info-shade-50)
  );
  --badge--border-left-color: var(
      --badge--info--border-left-color,
      var(--color-info-shade-50)
  );
  --badge--color: var(--badge--info--color, var(--contrast-text-color-info));
}
.badge.-success {
  --badge--background: var(--badge--success--background, var(--color-success));
  --badge--border-top-color: var(
      --badge--success--border-top-color,
      var(--color-success-shade-50)
  );
  --badge--border-right-color: var(
      --badge--success--border-right-color,
      var(--color-success-shade-50)
  );
  --badge--border-bottom-color: var(
      --badge--success--border-bottom-color,
      var(--color-success-shade-50)
  );
  --badge--border-left-color: var(
      --badge--success--border-left-color,
      var(--color-success-shade-50)
  );
  --badge--color: var(--badge--success--color, var(--contrast-text-color-success));
}
.badge.-warning {
  --badge--background: var(--badge--warning--background, var(--color-warning));
  --badge--border-top-color: var(
      --badge--warning--border-top-color,
      var(--color-warning-shade-50)
  );
  --badge--border-right-color: var(
      --badge--warning--border-right-color,
      var(--color-warning-shade-50)
  );
  --badge--border-bottom-color: var(
      --badge--warning--border-bottom-color,
      var(--color-warning-shade-50)
  );
  --badge--border-left-color: var(
      --badge--warning--border-left-color,
      var(--color-warning-shade-50)
  );
  --badge--color: var(--badge--warning--color, var(--contrast-text-color-warning));
}
.badge.-danger {
  --badge--background: var(--badge--danger--background, var(--color-danger));
  --badge--border-top-color: var(
      --badge--danger--border-top-color,
      var(--color-danger-shade-50)
  );
  --badge--border-right-color: var(
      --badge--danger--border-right-color,
      var(--color-danger-shade-50)
  );
  --badge--border-bottom-color: var(
      --badge--danger--border-bottom-color,
      var(--color-danger-shade-50)
  );
  --badge--border-left-color: var(
      --badge--danger--border-left-color,
      var(--color-danger-shade-50)
  );
  --badge--color: var(--badge--danger--color, var(--contrast-text-color-danger));
}
.badge.-light {
  --badge--background: var(--badge--light--background, var(--color-light));
  --badge--border-top-color: var(
      --badge--light--border-top-color,
      var(--color-light-shade-50)
  );
  --badge--border-right-color: var(
      --badge--light--border-right-color,
      var(--color-light-shade-50)
  );
  --badge--border-bottom-color: var(
      --badge--light--border-bottom-color,
      var(--color-light-shade-50)
  );
  --badge--border-left-color: var(
      --badge--light--border-left-color,
      var(--color-light-shade-50)
  );
  --badge--color: var(--badge--light--color, var(--contrast-text-color-light));
}
.badge.-dark {
  --badge--background: var(--badge--dark--background, var(--color-dark));
  --badge--border-top-color: var(--badge--dark--border-top-color, var(--color-dark-tint-50));
  --badge--border-right-color: var(
      --badge--dark--border-right-color,
      var(--color-dark-tint-50)
  );
  --badge--border-bottom-color: var(
      --badge--dark--border-bottom-color,
      var(--color-dark-tint-50)
  );
  --badge--border-left-color: var(
      --badge--dark--border-left-color,
      var(--color-dark-tint-50)
  );
  --badge--color: var(--badge--dark--color, var(--contrast-text-color-dark));
}

/**
 * Size variants
 */
.badge.-sm {
  --badge--border-top-left-radius: var(
      --badge--sm--border-top-left-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-sm))
  );
  --badge--border-top-right-radius: var(
      --badge--sm--border-top-right-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-sm))
  );
  --badge--border-bottom-right-radius: var(
      --badge--sm--border-bottom-right-radius,
      calc(var(--border-bottom-right-radius) * var(--size-multiplier-sm))
  );
  --badge--border-bottom-left-radius: var(
      --badge--sm--border-bottom-left-radius,
      calc(var(--border-bottom-left-radius) * var(--size-multiplier-sm))
  );
  --badge--font-size: var(
      --badge--sm--font-size,
      calc(calc(var(--font-size) * var(--size-multiplier-sm)) * 0.8)
  );
  --badge--padding-top: var(
      --badge--sm--padding-top,
      calc(calc(var(--padding-top) * var(--size-multiplier-sm)) * 0.25)
  );
  --badge--padding-right: var(
      --badge--sm--padding-right,
      calc(calc(var(--padding-right) * var(--size-multiplier-sm)) * 0.5)
  );
  --badge--padding-bottom: var(
      --badge--sm--padding-bottom,
      calc(calc(var(--padding-bottom) * var(--size-multiplier-sm)) * 0.25)
  );
  --badge--padding-left: var(
      --badge--sm--padding-left,
      calc(calc(var(--padding-left) * var(--size-multiplier-sm)) * 0.5)
  );
}
.badge.-md {
  --badge--border-top-left-radius: var(
      --badge--md--border-top-left-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-md))
  );
  --badge--border-top-right-radius: var(
      --badge--md--border-top-right-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-md))
  );
  --badge--border-bottom-right-radius: var(
      --badge--md--border-bottom-right-radius,
      calc(var(--border-bottom-right-radius) * var(--size-multiplier-md))
  );
  --badge--border-bottom-left-radius: var(
      --badge--md--border-bottom-left-radius,
      calc(var(--border-bottom-left-radius) * var(--size-multiplier-md))
  );
  --badge--font-size: var(
      --badge--md--font-size,
      calc(calc(var(--font-size) * var(--size-multiplier-md)) * 0.8)
  );
  --badge--padding-top: var(
      --badge--md--padding-top,
      calc(calc(var(--padding-top) * var(--size-multiplier-md)) * 0.25)
  );
  --badge--padding-right: var(
      --badge--md--padding-right,
      calc(calc(var(--padding-right) * var(--size-multiplier-md)) * 0.5)
  );
  --badge--padding-bottom: var(
      --badge--md--padding-bottom,
      calc(calc(var(--padding-bottom) * var(--size-multiplier-md)) * 0.25)
  );
  --badge--padding-left: var(
      --badge--md--padding-left,
      calc(calc(var(--padding-left) * var(--size-multiplier-md)) * 0.5)
  );
}
.badge.-lg {
  --badge--border-top-left-radius: var(
      --badge--lg--border-top-left-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-lg))
  );
  --badge--border-top-right-radius: var(
      --badge--lg--border-top-right-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-lg))
  );
  --badge--border-bottom-right-radius: var(
      --badge--lg--border-bottom-right-radius,
      calc(var(--border-bottom-right-radius) * var(--size-multiplier-lg))
  );
  --badge--border-bottom-left-radius: var(
      --badge--lg--border-bottom-left-radius,
      calc(var(--border-bottom-left-radius) * var(--size-multiplier-lg))
  );
  --badge--font-size: var(
      --badge--lg--font-size,
      calc(calc(var(--font-size) * var(--size-multiplier-lg)) * 0.8)
  );
  --badge--padding-top: var(
      --badge--lg--padding-top,
      calc(calc(var(--padding-top) * var(--size-multiplier-lg)) * 0.25)
  );
  --badge--padding-right: var(
      --badge--lg--padding-right,
      calc(calc(var(--padding-right) * var(--size-multiplier-lg)) * 0.5)
  );
  --badge--padding-bottom: var(
      --badge--lg--padding-bottom,
      calc(calc(var(--padding-bottom) * var(--size-multiplier-lg)) * 0.25)
  );
  --badge--padding-left: var(
      --badge--lg--padding-left,
      calc(calc(var(--padding-left) * var(--size-multiplier-lg)) * 0.5)
  );
}