button {
  position: relative;
  overflow: visible;
  display: inline-block;
  padding: 0.5em 1em;
  border: 1px solid #d4d4d4;
  margin: 0;
  text-decoration: none;
  text-shadow: 1px 1px 0 #fff;
  font:11px/arial;
  color: @darkGrey;
  white-space: nowrap;
  cursor: pointer;
  outline: none;
  .gradient (#f4f4f4, #ececec, #ececec);
  .radius(0.2em);
  /* IE hacks */
  zoom: 1;
  display: inline;

  &.only-icon {
    a {
      display: inline-block;
      text-indent: -5000px;
    }

    padding: 0.5em 0 0.5em 1em;
  }

  a:hover {
    text-decoration: none;
  }

  &.no-marge {
    margin: 0!important;
  }

  &::-moz-focus-inner {
    padding: 0;
    border: 0;
  }

  &.enabled,
  &:hover,
  &:focus,
  &:active,
  &.active {
    border-color: #3072b3;
    border-bottom-color: #2a65a0;
    text-decoration: none;
    text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
    color: #fff;
    .gradient (#599bdc, #3072b3, #3C8DDE);
  }

  &:active,
  &.active {
    border-color: #2a65a0;
    border-bottom-color: #3884CF;
    .gradient (#3072b3, #599bdc, #3072b3);
  }

  &.primary {
    font-weight: bold;
  }

  &.danger {
    color: #900;

    &.enabled,
    &:hover,
    &:focus,
    &:active {
      border-color: #b53f3a;
      border-bottom-color: #a0302a;
      color: #fff;
      .gradient (#dc5f59, #b33630, #dc5f59);
    }

    &:active,
    &.active {
      border-color: #a0302a;
      border-bottom-color: #bf4843;
      .gradient (#b33630, #dc5f59, #b33630);
    }
  }

  &.success {
    color: #009906;

    &.enabled,
    &:hover,
    &:focus,
    &:active {
      border-color: #39b53b;
      border-bottom-color: #29a02b;
      color: #fff;
      .gradient (#58dc5e, #2fb339, #58dc5e);
    }

    &:active,
    &.active {
      border-color: #29a032;
      border-bottom-color: #43bf48;
      .gradient (#2fb339, #58dc5e, #2fb339);
    }
  }

  &.safe {
    &.enabled,
    &:hover,
    &:focus,
    &:active {
      border-color: #686868;
      border-bottom-color: #767676;
      color: #fff;
      .gradient (#767676, #9e9e9e, #767676);
    }

    &:active,
    &.active {
      border-color: #767676;
      border-bottom-color: #686868;
      .gradient (#767676, #767676, #9e9e9e);
    }
  }
}
