/*!
 * # Fomantic-UI - Button
 * http://github.com/fomantic/Fomantic-UI/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */

/*******************************
            Theme
*******************************/

@type    : 'element';
@element : 'button';

@import (multiple) '../../theme.config';

/*******************************
            Button
*******************************/

.ui.button {
  cursor: pointer;
  display: inline-block;

  min-height: 1em;

  outline: none;
  border: none;
  vertical-align: @verticalAlign;
  background: @background;
  color: @textColor;

  font-family: @fontFamily;

  margin: 0 @horizontalMargin @verticalMargin 0;
  padding: @verticalPadding @horizontalPadding (@verticalPadding + @shadowOffset);

  text-transform: @textTransform;
  text-shadow: @textShadow;
  font-weight: @fontWeight;
  line-height: @lineHeight;
  font-style: normal;
  text-align: center;
  text-decoration: none;

  border-radius: @borderRadius;
  box-shadow: @boxShadow;

  user-select: none;
  transition: @transition;
  will-change: @willChange;

  -webkit-tap-highlight-color: @tapColor;
}


/*******************************
            States
*******************************/

/*--------------
      Hover
---------------*/

.ui.button:hover {
  background-color: @hoverBackgroundColor;
  background-image: @hoverBackgroundImage;
  box-shadow: @hoverBoxShadow;
  color: @hoverColor;
}

.ui.button:hover .icon {
  opacity: @iconHoverOpacity;
}

/*--------------
      Focus
---------------*/

.ui.button:focus {
  background-color: @focusBackgroundColor;
  color: @focusColor;
  background-image: @focusBackgroundImage;
  box-shadow: @focusBoxShadow;
}

.ui.button:focus .icon {
  opacity: @iconFocusOpacity;
}

/*--------------
      Down
---------------*/

.ui.button:active,
.ui.active.button:active {
  background-color: @downBackgroundColor;
  background-image: @downBackgroundImage;
  color: @downColor;
  box-shadow: @downBoxShadow;
}

/*--------------
     Active
---------------*/

.ui.active.button {
  background-color: @activeBackgroundColor;
  background-image: @activeBackgroundImage;
  box-shadow: @activeBoxShadow;
  color: @activeColor;
}
.ui.active.button:hover {
  background-color: @activeHoverBackgroundColor;
  background-image: @activeHoverBackgroundImage;
  color: @activeHoverColor;
}
.ui.active.button:active {
  background-color: @activeBackgroundColor;
  background-image: @activeBackgroundImage;
}


/*--------------
    Loading
---------------*/

/* Specificity hack */
.ui.loading.loading.loading.loading.loading.loading.button {
  position: relative;
  cursor: default;
  text-shadow: none !important;
  color: transparent;
  opacity: @loadingOpacity;
  pointer-events: @loadingPointerEvents;
  transition: @loadingTransition;
}
.ui.loading.button:before {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;

  margin: @loaderMargin;
  width: @loaderSize;
  height: @loaderSize;

  border-radius: @circularRadius;
  border: @loaderLineWidth solid @invertedLoaderFillColor;
}
.ui.loading.button:after {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;

  margin: @loaderMargin;
  width: @loaderSize;
  height: @loaderSize;

  border-radius: @circularRadius;

  animation: loader @loaderSpeed infinite linear;
  border: @loaderLineWidth solid currentColor;
  color: @invertedLoaderLineColor;

  box-shadow: 0 0 0 1px transparent;
}
.ui.labeled.icon.loading.button .icon {
  background-color: transparent;
  box-shadow: none;
}

.ui.basic.loading.button:not(.inverted):before {
  border-color: @loaderFillColor;
}
.ui.basic.loading.button:not(.inverted):after {
  border-color: @loaderLineColor;
}

/*-------------------
      Disabled
--------------------*/

.ui.buttons .disabled.button:not(.basic),
.ui.disabled.button,
.ui.button:disabled,
.ui.disabled.button:hover,
.ui.disabled.active.button {
  cursor: default;
  opacity: @disabledOpacity !important;
  background-image: none;
  box-shadow: none;
  pointer-events: none !important;
}

/* Basic Group With Disabled */
.ui.basic.buttons .ui.disabled.button {
  border-color: @disabledBorderColor;
}

/*******************************
             Types
*******************************/

/*-------------------
       Animated
--------------------*/

.ui.animated.button {
  position: relative;
  overflow: hidden;
  padding-right: 0 !important;
  vertical-align: @animatedVerticalAlign;
  z-index: @animatedZIndex;
}

.ui.animated.button .content {
  will-change: transform, opacity;
}
.ui.animated.button .visible.content {
  position: relative;
  margin-right: @horizontalPadding;
}
.ui.animated.button .hidden.content {
  position: absolute;
  width: 100%;
}

/* Horizontal */
.ui.animated.button .visible.content,
.ui.animated.button .hidden.content {
  transition: right @animationDuration @animationEasing 0s;
}
.ui.animated.button .visible.content {
  left: auto;
  right: 0;
}
.ui.animated.button .hidden.content {
  top: 50%;
  left: auto;
  right: -100%;
  margin-top: -(@lineHeight / 2);
}
.ui.animated.button:focus .visible.content,
.ui.animated.button:hover .visible.content {
  left: auto;
  right: 200%;
}
.ui.animated.button:focus .hidden.content,
.ui.animated.button:hover .hidden.content {
  left: auto;
  right: 0;
}

/* Vertical */
.ui.vertical.animated.button .visible.content,
.ui.vertical.animated.button .hidden.content {
  transition: top @animationDuration @animationEasing, transform @animationDuration @animationEasing;
}
.ui.vertical.animated.button .visible.content {
  transform: translateY(0%);
  right: auto;
}
.ui.vertical.animated.button .hidden.content {
  top: -50%;
  left: 0;
  right: auto;
}
.ui.vertical.animated.button:focus .visible.content,
.ui.vertical.animated.button:hover .visible.content {
  transform: translateY(200%);
  right: auto;
}
.ui.vertical.animated.button:focus .hidden.content,
.ui.vertical.animated.button:hover .hidden.content {
  top: 50%;
  right: auto;
}

/* Fade */
.ui.fade.animated.button .visible.content,
.ui.fade.animated.button .hidden.content {
  transition: opacity @animationDuration @animationEasing, transform @animationDuration @animationEasing;
}
.ui.fade.animated.button .visible.content {
  left: auto;
  right: auto;
  opacity: 1;
  transform: scale(1);
}
.ui.fade.animated.button .hidden.content {
  opacity: 0;
  left: 0;
  right: auto;
  transform: scale(@fadeScaleHigh);
}
.ui.fade.animated.button:focus .visible.content,
.ui.fade.animated.button:hover .visible.content {
  left: auto;
  right: auto;
  opacity: 0;
  transform: scale(@fadeScaleLow);
}
.ui.fade.animated.button:focus .hidden.content,
.ui.fade.animated.button:hover .hidden.content {
  left: 0;
  right: auto;
  opacity: 1;
  transform: scale(1);
}

/*-------------------
       Inverted
--------------------*/

.ui.inverted.button {
  box-shadow: 0 0 0 @invertedBorderSize @white inset;
  background: transparent none;
  color: @white;
  text-shadow: none !important;
}

/* Group */
.ui.inverted.buttons .button {
  margin: @invertedGroupButtonOffset;
}
.ui.inverted.buttons .button:first-child {
  margin-left: 0;
}
.ui.inverted.vertical.buttons .button {
  margin: @invertedVerticalGroupButtonOffset;
}
.ui.inverted.vertical.buttons .button:first-child {
  margin-top: 0;
}

/* States */

/* Hover */
.ui.inverted.button:hover {
  background: @white;
  box-shadow: 0 0 0 @invertedBorderSize @white inset;
  color: @hoverColor;
}

/* Active / Focus */
.ui.inverted.button:focus,
.ui.inverted.button.active {
  background: @white;
  box-shadow: 0 0 0 @invertedBorderSize @white inset;
  color: @focusColor;
}

/* Active Focus */
.ui.inverted.button.active:focus {
  background: @midWhite;
  box-shadow: 0 0 0 @invertedBorderSize @midWhite inset;
  color: @focusColor;
}


/*-------------------
    Labeled Button
--------------------*/

.ui.labeled.button:not(.icon) {
  display: inline-flex;
  flex-direction: row;
  background: none;
  padding: 0 !important;
  border: none;
  box-shadow: none;
}

.ui.labeled.button > .button {
  margin: 0;
}
.ui.labeled.button > .label {
  display: flex;
  align-items: @labeledLabelAlign;
  margin: 0 0 0 @labeledLabelBorderOffset !important;
  font-size: @labeledLabelFontSize;
  padding: @labeledLabelPadding;
  border-color: @labeledLabelBorderColor;
}

/* Tag */
.ui.labeled.button > .tag.label:before {
  width: @labeledTagLabelSize;
  height: @labeledTagLabelSize;
}

/* Right */
.ui.labeled.button:not([class*="left labeled"]) > .button {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.ui.labeled.button:not([class*="left labeled"]) > .label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* Left Side */
.ui[class*="left labeled"].button > .button {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.ui[class*="left labeled"].button > .label {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

/*-------------------
       Social
--------------------*/

/* Facebook */
.ui.facebook.button {
  background-color: @facebookColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.facebook.button:hover {
  background-color: @facebookHoverColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}
.ui.facebook.button:active {
  background-color: @facebookDownColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}

/* Twitter */
.ui.twitter.button {
  background-color: @twitterColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.twitter.button:hover {
  background-color: @twitterHoverColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}
.ui.twitter.button:active {
  background-color: @twitterDownColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}

/* Google Plus */
.ui.google.plus.button {
  background-color: @googlePlusColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.google.plus.button:hover {
  background-color: @googlePlusHoverColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}
.ui.google.plus.button:active {
  background-color: @googlePlusDownColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}

/* Linked In */
.ui.linkedin.button {
  background-color: @linkedInColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}
.ui.linkedin.button:hover {
  background-color: @linkedInHoverColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}
.ui.linkedin.button:active {
  background-color: @linkedInDownColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}

/* YouTube */
.ui.youtube.button {
  background-color: @youtubeColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.youtube.button:hover {
  background-color: @youtubeHoverColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}
.ui.youtube.button:active {
  background-color: @youtubeDownColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}

/* Instagram */
.ui.instagram.button {
  background-color: @instagramColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.instagram.button:hover {
  background-color: @instagramHoverColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}
.ui.instagram.button:active {
  background-color: @instagramDownColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}

/* Pinterest */
.ui.pinterest.button {
  background-color: @pinterestColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.pinterest.button:hover {
  background-color: @pinterestHoverColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}
.ui.pinterest.button:active {
  background-color: @pinterestDownColor;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
}

/* VK */
.ui.vk.button {
  background-color: @vkColor;
  color: @white;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.vk.button:hover {
  background-color: @vkHoverColor;
  color: @white;
}
.ui.vk.button:active {
  background-color: @vkDownColor;
  color: @white;
}

/* WhatsApp */
.ui.whatsapp.button {
  background-color: @whatsAppColor;
  color: @white;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.whatsapp.button:hover {
  background-color: @whatsAppHoverColor;
  color: @white;
}
.ui.whatsapp.button:active {
  background-color: @whatsAppDownColor;
  color: @white;
}

/* Telegram */
.ui.telegram.button {
  background-color: @telegramColor;
  color: @white;
  background-image: @coloredBackgroundImage;
  box-shadow: @coloredBoxShadow;
}
.ui.telegram.button:hover {
  background-color: @telegramHoverColor;
  color: @white;
}
.ui.telegram.button:active {
  background-color: @telegramDownColor;
  color: @white;
}

/*--------------
     Icon
---------------*/

.ui.button > .icon:not(.button) {
  height: @iconHeight;
  opacity: @iconOpacity;
  margin: @iconMargin;
  transition: @iconTransition;
  vertical-align: @iconVerticalAlign;
  color: @iconColor;
}

.ui.button:not(.icon) > .icon:not(.button):not(.dropdown),
.ui.button:not(.icon) > .icons:not(.button):not(.dropdown) {
  margin: @iconMargin;
}
.ui.button:not(.icon) > .right.icon:not(.button):not(.dropdown) {
  margin: @rightIconMargin;
}

/*******************************
           Variations
*******************************/


/*-------------------
       Floated
--------------------*/

.ui[class*="left floated"].buttons,
.ui[class*="left floated"].button {
  float: left;
  margin-left: 0;
  margin-right: @floatedMargin;
}
.ui[class*="right floated"].buttons,
.ui[class*="right floated"].button {
  float: right;
  margin-right: 0;
  margin-left: @floatedMargin;
}

/*-------------------
       Compact
--------------------*/

.ui.compact.buttons .button,
.ui.compact.button {
  padding: @compactVerticalPadding @compactHorizontalPadding ( @compactVerticalPadding + @shadowOffset );
}
.ui.compact.icon.buttons .button,
.ui.compact.icon.button {
  padding: @compactVerticalPadding @compactVerticalPadding ( @compactVerticalPadding + @shadowOffset );
}
.ui.compact.labeled.icon.buttons .button,
.ui.compact.labeled.icon.button {
  padding: @compactVerticalPadding (@compactHorizontalPadding + @labeledIconWidth) ( @compactVerticalPadding + @shadowOffset );
}
.ui.compact.labeled.icon.buttons .button > .icon,
.ui.compact.labeled.icon.button > .icon {
  padding: @compactVerticalPadding 0 @compactVerticalPadding 0;
}

/*-------------------
        Sizes
--------------------*/

.ui.mini.buttons .button,
.ui.mini.buttons .or,
.ui.ui.ui.ui.mini.button {
  font-size: @mini;
}
.ui.tiny.buttons .button,
.ui.tiny.buttons .or,
.ui.ui.ui.ui.tiny.button {
  font-size: @tiny;
}
.ui.small.buttons .button,
.ui.small.buttons .or,
.ui.ui.ui.ui.small.button {
  font-size: @small;
}
.ui.buttons .button,
.ui.buttons .or,
.ui.button {
  font-size: @medium;
}
.ui.large.buttons .button,
.ui.large.buttons .or,
.ui.ui.ui.ui.large.button {
  font-size: @large;
}
.ui.big.buttons .button,
.ui.big.buttons .or,
.ui.ui.ui.ui.big.button {
  font-size: @big;
}
.ui.huge.buttons .button,
.ui.huge.buttons .or,
.ui.ui.ui.ui.huge.button {
  font-size: @huge;
}
.ui.massive.buttons .button,
.ui.massive.buttons .or,
.ui.ui.ui.ui.massive.button {
  font-size: @massive;
}

/* Dropdown coupled buttons sizes */
.ui.mini.buttons .dropdown {
  font-size: @mini;
}
.ui.mini.buttons .dropdown .menu > .item {
  font-size: @mini;
}
.ui.tiny.buttons .dropdown {
  font-size: @tiny;
}
.ui.tiny.buttons .dropdown .menu > .item {
  font-size: @tiny;
}
.ui.small.buttons .dropdown {
  font-size: @small;
}
.ui.small.buttons .dropdown .menu > .item {
  font-size: @small;
}
.ui.large.buttons .dropdown {
  font-size: @large;
}
.ui.large.buttons .dropdown .menu > .item {
  font-size: @large;
}
.ui.big.buttons .dropdown {
  font-size: @big;
}
.ui.big.buttons .dropdown .menu > .item {
  font-size: @big;
}
.ui.huge.buttons .dropdown {
  font-size: @huge;
}
.ui.huge.buttons .dropdown .menu > .item {
  font-size: @huge;
}
.ui.massive.buttons .dropdown {
  font-size: @massive;
}
.ui.massive.buttons .dropdown .menu > .item {
  font-size: @massive;
}

/*--------------
    Icon Only
---------------*/

.ui.icon.buttons .button,
.ui.icon.button {
  padding: @verticalPadding @verticalPadding ( @verticalPadding + @shadowOffset );
}
.ui.icon.buttons .button > .icon,
.ui.icon.button > .icon {
  opacity: @iconButtonOpacity;
  margin: 0 !important;
  vertical-align: top;
}


/*-------------------
        Basic
--------------------*/

.ui.basic.buttons .button,
.ui.basic.button {
  background: @basicBackground;
  color: @basicTextColor;
  font-weight: @basicFontWeight;
  border-radius: @basicBorderRadius;
  text-transform: @basicTextTransform;
  text-shadow: none !important;
  box-shadow: @basicBoxShadow;
}
.ui.basic.buttons {
  box-shadow: @basicGroupBoxShadow;
  border: @basicGroupBorder;
  border-radius: @borderRadius;
}
.ui.basic.buttons .button {
  border-radius: 0;
}

.ui.basic.buttons .button:hover,
.ui.basic.button:hover {
  background: @basicHoverBackground;
  color: @basicHoverTextColor;
  box-shadow: @basicHoverBoxShadow;
}
.ui.basic.buttons .button:focus,
.ui.basic.button:focus {
  background: @basicFocusBackground;
  color: @basicFocusTextColor;
  box-shadow: @basicFocusBoxShadow;
}
.ui.basic.buttons .button:active,
.ui.basic.button:active {
  background: @basicDownBackground;
  color: @basicDownTextColor;
  box-shadow: @basicDownBoxShadow;
}
.ui.basic.buttons .active.button,
.ui.basic.active.button {
  background: @basicActiveBackground;
  box-shadow: @basicActiveBoxShadow;
  color: @basicActiveTextColor;
}
.ui.basic.buttons .active.button:hover,
.ui.basic.active.button:hover {
  background-color: @transparentBlack;
}

/* Vertical */
.ui.basic.buttons .button:hover {
  box-shadow: @basicHoverBoxShadow inset;
}
.ui.basic.buttons .button:active {
  box-shadow: @basicDownBoxShadow inset;
}
.ui.basic.buttons .active.button {
  box-shadow: @basicActiveBoxShadow;
}

/* Standard Basic Inverted */
.ui.basic.inverted.buttons .button,
.ui.basic.inverted.button {
  background-color: transparent;
  color: @offWhite;
  box-shadow: @basicInvertedBoxShadow;
}
.ui.basic.inverted.buttons .button:hover,
.ui.basic.inverted.button:hover {
  color: @white;
  box-shadow: @basicInvertedHoverBoxShadow;
}
.ui.basic.inverted.buttons .button:focus,
.ui.basic.inverted.button:focus {
  color: @white;
  box-shadow: @basicInvertedFocusBoxShadow;
}
.ui.basic.inverted.buttons .button:active,
.ui.basic.inverted.button:active {
  background-color: @transparentWhite;
  color: @white;
  box-shadow: @basicInvertedDownBoxShadow;
}
.ui.basic.inverted.buttons .active.button,
.ui.basic.inverted.active.button {
  background-color: @transparentWhite;
  color: @invertedTextColor;
  text-shadow: @invertedTextShadow;
  box-shadow: @basicInvertedActiveBoxShadow;
}
.ui.basic.inverted.buttons .active.button:hover,
.ui.basic.inverted.active.button:hover {
  background-color: @strongTransparentWhite;
  box-shadow: @basicInvertedHoverBoxShadow;
}


/* Basic Group */
.ui.basic.buttons .button {
  border-left: @basicGroupBorder;
  box-shadow: none;
}
.ui.basic.vertical.buttons .button {
  border-left: none;
  border-left-width: 0;
  border-top: @basicGroupBorder;
}
.ui.basic.vertical.buttons .button:first-child {
  border-top-width: 0;
}

/*-------------------
       Tertiary
--------------------*/

/* Overline Mixin */

.ui.tertiary.button {
  transition: color @defaultDuration @defaultEasing !important;
  border-radius: 0;
  margin:
    (@verticalPadding  - @tertiaryLinePadding)
    (@horizontalMargin)
    (@verticalPadding + @shadowOffset + @verticalMargin - @tertiaryLinePadding)
    0
    !important;
  padding: @tertiaryLinePadding !important;

  & when (@tertiaryWithUnderline = true) {
    box-shadow: inset 0 -@tertiaryLineHeight 0 @tertiaryLineColor;
  }

  & when (@tertiaryWithOverline = true) {
    box-shadow: inset 0 @tertiaryLineHeight 0 @tertiaryLineColor;
  }

  & when (@tertiaryWithUnderline = false) and (@tertiaryWithOverline = false){
    box-shadow: none;
  }
  color: @tertiaryTextColor;
  background: @tertiaryBackgroundColor;
}

.ui.tertiary.button:hover {

  & when (@tertiaryHoverWithUnderline = true) {
    box-shadow: inset 0 -@tertiaryLineHeight 0 @tertiaryHoverLineColor;
  }

  & when (@tertiaryHoverWithOverline = true) {
    box-shadow: inset 0 @tertiaryLineHeight 0 @tertiaryHoverLineColor;
  }

  & when (@tertiaryHoverWithUnderline = false) and (@tertiaryHoverWithOverline = false) {
    box-shadow: none;
  }
  color: @tertiaryHoverColor;
  background: @tertiaryHoverBackgroundColor;
}

.ui.tertiary.button:focus {
  & when (@tertiaryFocusWithUnderline = true) {
    box-shadow: inset 0 -@tertiaryLineHeight 0 @tertiaryFocusLineColor;
  }

  & when (@tertiaryFocusWithOverline = true) {
    box-shadow: inset 0 @tertiaryLineHeight 0 @tertiaryFocusLineColor;
  }

  & when (@tertiaryFocusWithUnderline = false) and (@tertiaryFocusWithOverline = false){
    box-shadow: none;
  }
  color: @tertiaryFocusColor;
  background: @tertiaryFocusBackgroundColor;
}

.ui.tertiary.button:active {
  & when (@tertiaryActiveWithUnderline = true) {
    box-shadow: inset 0 -@tertiaryLineHeight 0 @tertiaryActiveLineColor;
    border-radius: @borderRadius @borderRadius 0 0;
  }

  & when (@tertiaryActiveWithOverline = true) {
    box-shadow: inset 0 @tertiaryLineHeight 0 @tertiaryActiveLineColor;
    border-radius: 0 0 @borderRadius @borderRadius;
  }

  & when (@tertiaryActiveWithUnderline = false) and (@tertiaryActiveWithOverline = false){
    box-shadow: none;
    border-radius: 0;
  }
  color: @tertiaryActiveColor;
  background: @tertiaryActiveBackgroundColor;
}

/*--------------
  Labeled Icon
---------------*/

.ui.labeled.icon.buttons .button,
.ui.labeled.icon.button {
  position: relative;
  padding-left: @labeledIconPadding !important;
  padding-right: @horizontalPadding !important;
}

/* Left Labeled */
.ui.labeled.icon.buttons > .button > .icon,
.ui.labeled.icon.button > .icon {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  line-height: 1;
  border-radius: 0;
  border-top-left-radius: inherit;
  border-bottom-left-radius: inherit;
  text-align: center;
  animation:none;
  padding: @verticalPadding 0 @verticalPadding 0;

  margin: @labeledIconMargin;
  width: @labeledIconWidth;
  background-color: @labeledIconBackgroundColor;
  color: @labeledIconColor;
  box-shadow: @labeledIconLeftShadow;
}

/* Right Labeled */
.ui[class*="right labeled"].icon.button {
  padding-right: @labeledIconPadding !important;
  padding-left: @horizontalPadding !important;
}
.ui[class*="right labeled"].icon.button > .icon {
  left: auto;
  right: 0;
  border-radius: 0;
  border-top-right-radius: inherit;
  border-bottom-right-radius: inherit;
  box-shadow: @labeledIconRightShadow;
}


.ui.labeled.icon.buttons > .button > .icon:before,
.ui.labeled.icon.button > .icon:before,
.ui.labeled.icon.buttons > .button > .icon:after,
.ui.labeled.icon.button > .icon:after {
  display: block;
  position: relative;
  width: 100%;
  top: 0;
  text-align: center;
}

.ui.labeled.icon.buttons .button > .icon {
  border-radius: 0;
}
.ui.labeled.icon.buttons .button:first-child > .icon {
  border-top-left-radius: @borderRadius;
  border-bottom-left-radius: @borderRadius;
}
.ui.labeled.icon.buttons .button:last-child > .icon {
  border-top-right-radius: @borderRadius;
  border-bottom-right-radius: @borderRadius;
}
.ui.vertical.labeled.icon.buttons .button:first-child > .icon {
  border-radius: 0;
  border-top-left-radius: @borderRadius;
}
.ui.vertical.labeled.icon.buttons .button:last-child > .icon {
  border-radius: 0;
  border-bottom-left-radius: @borderRadius;
}

/* Loading Icon in Labeled Button */
.ui.labeled.icon.button > .loading.icon:before {
  animation: loader 2s linear infinite;
}


/*--------------
     Toggle
---------------*/

/* Toggle (Modifies active state to give affordances) */
.ui.toggle.buttons .active.button,
.ui.buttons .button.toggle.active,
.ui.button.toggle.active {
  background-color: @positiveColor;
  box-shadow: none;
  text-shadow: @invertedTextShadow;
  color: @invertedTextColor;
}
.ui.button.toggle.active:hover {
  background-color: @positiveColorHover;
  text-shadow: @invertedTextShadow;
  color: @invertedTextColor;
}

/*--------------
    Circular
---------------*/

.ui.circular.button {
  border-radius: 10em;
}
.ui.circular.button > .icon {
  width: 1em;
  vertical-align: baseline;
}


/*-------------------
      Or Buttons
--------------------*/

.ui.buttons .or {
  position: relative;
  width: @orGap;
  height: @orHeight;
  z-index: @orZIndex;
}
.ui.buttons .or:before {
  position: absolute;
  text-align: center;
  border-radius: @circularRadius;

  content: @orText;
  top: 50%;
  left: 50%;
  background-color: @orBackgroundColor;
  text-shadow: @orTextShadow;

  margin-top: @orVerticalOffset;
  margin-left: @orHorizontalOffset;

  width: @orCircleSize;
  height: @orCircleSize;

  line-height: @orLineHeight;
  color: @orTextColor;

  font-style: @orTextStyle;
  font-weight: @orTextWeight;

  box-shadow: @orBoxShadow;
}
.ui.buttons .or[data-text]:before {
  content: attr(data-text);
}

/* Fluid Or */
.ui.fluid.buttons .or {
  width: 0 !important;
}
.ui.fluid.buttons .or:after {
  display: none;
}


/*-------------------
       Attached
--------------------*/


/* Singular */
.ui.attached.button {
  position: relative;
  display: block;
  margin: 0;
  border-radius: 0;
  box-shadow: @attachedBoxShadow;
}

/* Top / Bottom */
.ui.attached.top.button {
  border-radius: @borderRadius @borderRadius 0 0;
}
.ui.attached.bottom.button {
  border-radius: 0 0 @borderRadius @borderRadius;
}

/* Left / Right */
.ui.left.attached.button {
  display: inline-block;
  border-left: none;
  text-align: right;

  padding-right: @attachedHorizontalPadding;
  border-radius: @borderRadius 0 0 @borderRadius;
}
.ui.right.attached.button {
  display: inline-block;
  text-align: left;
  padding-left: @attachedHorizontalPadding;
  border-radius: 0 @borderRadius @borderRadius 0;
}

/* Plural */
.ui.attached.buttons {
  position: relative;
  display: flex;
  border-radius: 0;
  width: auto !important;
  z-index: @attachedZIndex;
  margin-left: @attachedOffset;
  margin-right: @attachedOffset;
}
.ui.attached.buttons .button {
  margin: 0;
}
.ui.attached.buttons .button:first-child {
  border-radius: 0;
}
.ui.attached.buttons .button:last-child {
  border-radius: 0;
}

/* Top / Bottom */
.ui[class*="top attached"].buttons {
  margin-bottom: @attachedOffset;
  border-radius: @borderRadius @borderRadius 0 0;
}
.ui[class*="top attached"].buttons .button:first-child {
  border-radius: @borderRadius 0 0 0;
}
.ui[class*="top attached"].buttons .button:last-child {
  border-radius: 0 @borderRadius 0 0;
}

.ui[class*="bottom attached"].buttons {
  margin-top: @attachedOffset;
  border-radius: 0 0 @borderRadius @borderRadius;
}
.ui[class*="bottom attached"].buttons .button:first-child {
  border-radius: 0 0 0 @borderRadius;
}
.ui[class*="bottom attached"].buttons .button:last-child {
  border-radius: 0 0 @borderRadius 0;
}

/* Left / Right */
.ui[class*="left attached"].buttons {
  display: inline-flex;
  margin-right: 0;
  margin-left: @attachedOffset;
  border-radius: 0 @borderRadius @borderRadius 0;
}
.ui[class*="left attached"].buttons .button:first-child {
  margin-left: @attachedOffset;
  border-radius: 0 @borderRadius 0 0;
}
.ui[class*="left attached"].buttons .button:last-child {
  margin-left: @attachedOffset;
  border-radius: 0 0 @borderRadius 0;
}

.ui[class*="right attached"].buttons {
  display: inline-flex;
  margin-left: 0;
  margin-right: @attachedOffset;
  border-radius: @borderRadius 0 0 @borderRadius;
}
.ui[class*="right attached"].buttons .button:first-child {
  margin-left: @attachedOffset;
  border-radius: @borderRadius 0 0 0;
}
.ui[class*="right attached"].buttons .button:last-child {
  margin-left: @attachedOffset;
  border-radius: 0 0 0 @borderRadius;
}

/*-------------------
        Fluid
--------------------*/

.ui.fluid.buttons,
.ui.fluid.button {
  width: 100%;
}
.ui.fluid.button {
  display: block;
}

.ui.two.buttons {
  width: 100%;
}
.ui.two.buttons > .button {
  width: 50%;
}

.ui.three.buttons {
  width: 100%;
}
.ui.three.buttons > .button {
  width: 33.333%;
}

.ui.four.buttons {
  width: 100%;
}
.ui.four.buttons > .button {
  width: 25%;
}

.ui.five.buttons {
  width: 100%;
}
.ui.five.buttons > .button {
  width: 20%;
}

.ui.six.buttons {
  width: 100%;
}
.ui.six.buttons > .button {
  width: 16.666%;
}

.ui.seven.buttons {
  width: 100%;
}
.ui.seven.buttons > .button {
  width: 14.285%;
}

.ui.eight.buttons {
  width: 100%;
}
.ui.eight.buttons > .button {
  width: 12.500%;
}

.ui.nine.buttons {
  width: 100%;
}
.ui.nine.buttons > .button {
  width: 11.11%;
}

.ui.ten.buttons {
  width: 100%;
}
.ui.ten.buttons > .button {
  width: 10%;
}

.ui.eleven.buttons {
  width: 100%;
}
.ui.eleven.buttons > .button {
  width: 9.09%;
}

.ui.twelve.buttons {
  width: 100%;
}
.ui.twelve.buttons > .button {
  width: 8.3333%;
}

/* Fluid Vertical Buttons */
.ui.fluid.vertical.buttons,
.ui.fluid.vertical.buttons > .button {
  display: flex;
  width: auto;
  justify-content: center;
}

.ui.two.vertical.buttons > .button {
  height: 50%;
}
.ui.three.vertical.buttons > .button {
  height: 33.333%;
}
.ui.four.vertical.buttons > .button {
  height: 25%;
}
.ui.five.vertical.buttons > .button {
  height: 20%;
}
.ui.six.vertical.buttons > .button {
  height: 16.666%;
}
.ui.seven.vertical.buttons > .button {
  height: 14.285%;
}
.ui.eight.vertical.buttons > .button {
  height: 12.500%;
}
.ui.nine.vertical.buttons > .button {
  height: 11.11%;
}
.ui.ten.vertical.buttons > .button {
  height: 10%;
}
.ui.eleven.vertical.buttons > .button {
  height: 9.09%;
}
.ui.twelve.vertical.buttons > .button {
  height: 8.3333%;
}


/*-------------------
       Colors
--------------------*/

each(@colors, {
  @color: replace(@key, '@', '');
  @c: @colors[@@color][color];
  @h: @colors[@@color][hover];
  @f: @colors[@@color][focus];
  @d: @colors[@@color][down];
  @a: @colors[@@color][active];
  @t: @colors[@@color][text];
  @s: @colors[@@color][shadow];
  @l: @colors[@@color][light];
  @lh: @colors[@@color][lightHover];
  @lf: @colors[@@color][lightFocus];
  @ld: @colors[@@color][lightDown];
  @la: @colors[@@color][lightActive];
  @lt: @colors[@@color][lightText];
  @ls: @colors[@@color][lightShadow];
  @ty: @colors[@@color][tertiary];
  @tyh: @colors[@@color][tertiaryHover];
  @tyf: @colors[@@color][tertiaryFocus];
  @tya: @colors[@@color][tertiaryActive];
  @isDark: @colors[@@color][isDark];
  @isVeryDark: @colors[@@color][isVeryDark];

  .ui.@{color}.buttons .button,
  .ui.@{color}.button {
    background-color: @c;
    color: @t;
    text-shadow: @s;
    background-image: @coloredBackgroundImage;
  }
  .ui.@{color}.button {
    box-shadow: @coloredBoxShadow;
  }
  .ui.@{color}.buttons .button:hover,
  .ui.@{color}.button:hover {
    background-color: @h;
    color: @t;
    text-shadow: @s;
  }
  .ui.@{color}.buttons .button:focus,
  .ui.@{color}.button:focus {
    background-color: @f;
    color: @t;
    text-shadow: @s;
  }
  .ui.@{color}.buttons .button:active,
  .ui.@{color}.button:active {
    background-color: @d;
    color: @t;
    text-shadow: @s;
  }
  .ui.@{color}.buttons .active.button,
  .ui.@{color}.buttons .active.button:active,
  .ui.@{color}.active.button,
  .ui.@{color}.button .active.button:active {
    background-color: @a;
    color: @t;
    text-shadow: @s;
  }

  /* Basic */
  .ui.basic.@{color}.buttons .button,
  .ui.basic.@{color}.button {
    background: transparent;
    box-shadow: 0 0 0 @basicBorderSize @c inset ;
    color: @c ;
  }
  .ui.basic.@{color}.buttons .button:hover,
  .ui.basic.@{color}.button:hover {
    background: transparent ;
    box-shadow: 0 0 0 @basicColoredBorderSize @h inset ;
    color: @h ;
  }
  .ui.basic.@{color}.buttons .button:focus,
  .ui.basic.@{color}.button:focus {
    background: transparent ;
    box-shadow: 0 0 0 @basicColoredBorderSize @f inset ;
    color: @h ;
  }
  .ui.basic.@{color}.buttons .active.button,
  .ui.basic.@{color}.active.button {
    background: transparent ;
    box-shadow: 0 0 0 @basicColoredBorderSize @a inset ;
    color: @d ;
  }
  .ui.basic.@{color}.buttons .button:active,
  .ui.basic.@{color}.button:active {
    box-shadow: 0 0 0 @basicColoredBorderSize @d inset ;
    color: @d ;
  }
  .ui.buttons:not(.vertical) > .basic.@{color}.button:not(:first-child) {
    margin-left: -@basicColoredBorderSize;
  }

  /* Inverted */
  .ui.inverted.@{color}.buttons .button,
  .ui.inverted.@{color}.button {
    background-color: transparent;

    & when (@isDark) {
      box-shadow: 0 0 0 @invertedBorderSize @solidBorderColor inset ;
      color: @invertedTextColor;
    }

    & when not (@isDark) {
      box-shadow: 0 0 0 @invertedBorderSize @l inset ;
      color: @l;
    }
  }
  .ui.inverted.@{color}.buttons .button:hover,
  .ui.inverted.@{color}.button:hover,
  .ui.inverted.@{color}.buttons .button:focus,
  .ui.inverted.@{color}.button:focus,
  .ui.inverted.@{color}.buttons .button.active,
  .ui.inverted.@{color}.button.active,
  .ui.inverted.@{color}.buttons .button:active,
  .ui.inverted.@{color}.button:active {
    box-shadow: none ;
    color: @lt;
  }
  .ui.inverted.@{color}.buttons .button:hover,
  .ui.inverted.@{color}.button:hover {
    background-color: @lh;
  }
  .ui.inverted.@{color}.buttons .button:focus,
  .ui.inverted.@{color}.button:focus {
    background-color: @lf;
  }
  .ui.inverted.@{color}.buttons .active.button,
  .ui.inverted.@{color}.active.button {
    background-color: @la;
  }
  .ui.inverted.@{color}.buttons .button:active,
  .ui.inverted.@{color}.button:active {
    background-color: @ld;
  }

  /* Inverted Basic */
  .ui.inverted.@{color}.basic.buttons .button,
  .ui.inverted.@{color}.buttons .basic.button,
  .ui.inverted.@{color}.basic.button {
    background-color: transparent;
    box-shadow: @basicInvertedBoxShadow ;
    color: @white ;
  }
  .ui.inverted.@{color}.basic.buttons .button:hover,
  .ui.inverted.@{color}.buttons .basic.button:hover,
  .ui.inverted.@{color}.basic.button:hover {
    box-shadow: 0 0 0 @invertedBorderSize @lh inset ;

    & when (@isDark) {
      color: @white ;
    }

    & when not (@isDark) {
      color: @l ;
    }
  }
  .ui.inverted.@{color}.basic.buttons .button:focus,
  .ui.inverted.@{color}.basic.buttons .button:focus,
  .ui.inverted.@{color}.basic.button:focus {
    box-shadow: 0 0 0 @invertedBorderSize @lf inset ;
    color: @l ;
  }
  .ui.inverted.@{color}.basic.buttons .active.button,
  .ui.inverted.@{color}.buttons .basic.active.button,
  .ui.inverted.@{color}.basic.active.button {
    box-shadow: 0 0 0 @invertedBorderSize @la inset ;

    & when (@isDark) {
      color: @white ;
    }

    & when not (@isDark) {
      color: @l ;
    }
  }
  .ui.inverted.@{color}.basic.buttons .button:active,
  .ui.inverted.@{color}.buttons .basic.button:active,
  .ui.inverted.@{color}.basic.button:active {
    box-shadow: 0 0 0 @invertedBorderSize @ld inset ;

    & when (@isDark) {
      color: @white ;
    }

    & when not (@isDark) {
      color: @l ;
    }
  }

  /* Tertiary */

  .ui.tertiary.@{color}.buttons .button,
  .ui.tertiary.@{color}.buttons .tertiary.button,
  .ui.tertiary.@{color}.button {
    background: transparent;

    & when (@tertiaryWithUnderline = true) {
      box-shadow: inset 0 -@tertiaryLineHeight 0 @ty;
    }

    & when (@tertiaryWithOverline = true) {
      box-shadow: inset 0 @tertiaryLineHeight 0 @ty;
    }

    & when (@tertiaryWithUnderline = false) and (@tertiaryWithOverline = false){
      box-shadow: none;
    }
    color: @c ;
  }

  .ui.tertiary.@{color}.buttons .button:hover,
  .ui.tertiary.@{color}.buttons button:hover,
  .ui.tertiary.@{color}.button:hover {

    & when (@tertiaryHoverWithUnderline = true) {
      box-shadow: inset 0 -@tertiaryLineHeight 0 @tyh;
    }

    & when (@tertiaryHoverWithOverline = true) {
      box-shadow: inset 0 @tertiaryLineHeight 0 @tyh;
    }

    & when (@tertiaryHoverWithUnderline = false) and (@tertiaryHoverWithOverline = false) {
      box-shadow: none ;
    }

    color: @tyh;
  }

  .ui.tertiary.@{color}.buttons .button:focus,
  .ui.tertiary.@{color}.buttons .tertiary.button:focus,
  .ui.tertiary.@{color}.button:focus {

    & when (@tertiaryFocusWithUnderline = true) {
      box-shadow: inset 0 -@tertiaryLineHeight 0 @tyf;
    }

    & when (@tertiaryFocusWithOverline = true) {
      box-shadow: inset 0 @tertiaryLineHeight 0 @tyf;
    }

    & when (@tertiaryFocusWithUnderline = false) and (@tertiaryFocusWithOverline = false) {
      box-shadow: none;
    }

    color: @tyf;
  }

  .ui.tertiary.@{color}.buttons .active.button,
  .ui.tertiary.@{color}.buttons .tertiary.active.button,
  .ui.tertiary.@{color}.active.button,
  .ui.tertiary.@{color}.buttons .button:active,
  .ui.tertiary.@{color}.buttons .tertiary.button:active,
  .ui.tertiary.@{color}.button:active {

    & when (@tertiaryActiveWithUnderline = true) {
      box-shadow: inset 0 -@tertiaryLineHeight 0 @tya;
    }

    & when (@tertiaryActiveWithOverline = true) {
      box-shadow: inset 0 @tertiaryLineHeight 0 @tya;
    }

    & when (@tertiaryActiveWithUnderline = false) and (@tertiaryActiveWithOverline = false) {
      box-shadow: none;
    }

    color: @a ;
  }
})

.addConsequence(@consequence) {

  @_backgroundColor: "@{consequence}Color";
  @_backgroundColorHover: "@{consequence}ColorHover";
  @_backgroundColorFocus: "@{consequence}ColorFocus";
  @_backgroundColorDown: "@{consequence}ColorDown";
  @_backgroundColorActive: "@{consequence}ColorActive";
  @_textColor: "@{consequence}TextColor";
  @_textShadow: "@{consequence}TextShadow";

  /* Standard */
  .ui.@{consequence}.buttons .button,
  .ui.@{consequence}.button {
    background-color: @@_backgroundColor;
    color: @@_textColor;
    text-shadow: @@_textShadow;
    background-image: @coloredBackgroundImage;
  }
  .ui.@{consequence}.button {
    box-shadow: @coloredBoxShadow;
  }
  .ui.@{consequence}.buttons .button:hover,
  .ui.@{consequence}.button:hover {
    background-color: @@_backgroundColorHover;
    color: @@_textColor;
    text-shadow: @@_textShadow;
  }
  .ui.@{consequence}.buttons .button:focus,
  .ui.@{consequence}.button:focus {
    background-color: @@_backgroundColorFocus;
    color: @@_textColor;
    text-shadow: @@_textShadow;
  }
  .ui.@{consequence}.buttons .button:active,
  .ui.@{consequence}.button:active {
    background-color: @@_backgroundColorDown;
    color: @@_textColor;
    text-shadow: @@_textShadow;
  }
  .ui.@{consequence}.buttons .active.button,
  .ui.@{consequence}.buttons .active.button:active,
  .ui.@{consequence}.active.button,
  .ui.@{consequence}.button .active.button:active {
    background-color: @@_backgroundColorActive;
    color: @@_textColor;
    text-shadow: @@_textShadow;
  }

  /* Basic */
  .ui.basic.@{consequence}.buttons .button,
  .ui.basic.@{consequence}.button {
    background: transparent;
    box-shadow: 0 0 0 @basicBorderSize @@_backgroundColor inset;
    color: @@_backgroundColor;
  }
  .ui.basic.@{consequence}.buttons .button:hover,
  .ui.basic.@{consequence}.button:hover {
    background: transparent;
    box-shadow: 0 0 0 @basicColoredBorderSize @@_backgroundColorHover inset;
    color: @@_backgroundColorHover;
  }
  .ui.basic.@{consequence}.buttons .button:focus,
  .ui.basic.@{consequence}.button:focus {
    background: transparent;
    box-shadow: 0 0 0 @basicColoredBorderSize @@_backgroundColorFocus inset;
    color: @@_backgroundColorHover;
  }
  .ui.basic.@{consequence}.buttons .active.button,
  .ui.basic.@{consequence}.active.button {
    background: transparent;
    box-shadow: 0 0 0 @basicColoredBorderSize @@_backgroundColorActive inset;
    color: @@_backgroundColorDown;
  }
  .ui.basic.@{consequence}.buttons .button:active,
  .ui.basic.@{consequence}.button:active {
    box-shadow: 0 0 0 @basicColoredBorderSize @@_backgroundColorDown inset;
    color: @@_backgroundColorDown;
  }
  .ui.buttons:not(.vertical) > .basic.@{consequence}.button:not(:first-child) {
    margin-left: -@basicColoredBorderSize;
  }
}

/*---------------
    Positive
----------------*/

.addConsequence(positive);

/*---------------
     Negative
----------------*/

.addConsequence(negative);

/*******************************
            Groups
*******************************/

.ui.buttons {
  display: inline-flex;
  flex-direction: row;
  font-size: 0;
  vertical-align: baseline;
  margin: @verticalMargin @horizontalMargin 0 0;
}
.ui.buttons:not(.basic):not(.inverted) {
  box-shadow: @groupBoxShadow;
}

/* Clearfix */
.ui.buttons:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

/* Standard Group */
.ui.buttons .button {
  flex: 1 0 auto;
  border-radius: 0;
  margin: @groupButtonOffset;
}
.ui.buttons:not(.basic):not(.inverted) > .button:not(.basic):not(.inverted) {
  box-shadow: @groupButtonBoxShadow;
}

.ui.buttons .button:first-child {
  border-left: none;
  margin-left: 0;
  border-top-left-radius: @borderRadius;
  border-bottom-left-radius: @borderRadius;
}
.ui.buttons .button:last-child {
  border-top-right-radius: @borderRadius;
  border-bottom-right-radius: @borderRadius;
}

/* Vertical  Style */
.ui.vertical.buttons {
  display: inline-flex;
  flex-direction: column;
}
.ui.vertical.buttons .button {
  display: block;
  float: none;
  width: 100%;
  margin: @verticalGroupOffset;
  box-shadow: @verticalBoxShadow;
  border-radius: 0;
}
.ui.vertical.buttons .button:first-child {
  border-top-left-radius: @borderRadius;
  border-top-right-radius: @borderRadius;
}
.ui.vertical.buttons .button:last-child {
  margin-bottom: 0;
  border-bottom-left-radius: @borderRadius;
  border-bottom-right-radius: @borderRadius;
}
.ui.vertical.buttons .button:only-child {
  border-radius: @borderRadius;
}

.loadUIOverrides();
