//
//  Button component
//
.pa-btn {
  --padd: var(--PADD) var(--PADD--MD);
  --font-size: 120%;
  --line-height: 1.4;
  --bg: var(--PS-COLOR--APP--GRAY);
  --color: var(--PS-COLOR--TEXT);
  --bg--hover: var(--PS-COLOR--APP--DARKGRAY);
  --color--hover: var(--PS-COLOR--TEXT);
  --radius: var(--BORDER-RADIUS--MD);
  --border: var(--DIVIDER--LIGHTEN);

  display: inline-block;
  margin: 0;
  padding: var(--padd);
  font-size: var(--font-size);
  line-height: var(--line-height);
  color: var(--color);
  background-color: var(--bg);
  border: none;
  border-radius: var(--radius);
  outline: none;
  box-shadow: inset 0 0 0 1px var(--border);
  text-decoration: none;
  cursor: pointer;

  i {
    @if $rtl {
      margin-left: var(--PADD);
    } @else {
      margin-right: var(--PADD);
    }

    opacity: .65;
  }

  &:hover,
  &:focus,
  .active {
    text-decoration: none;
    color: var(--color--hover);
    background-color: var(--bg--hover);
  }

  &:focus {
    outline: none;
    box-shadow: inset 0 0 0 1px var(--border);
  }
}

.pa-btn--action {
  --bg: var(--PS-COLOR--PRIMARY);
  --color: #fff;
  --bg--hover: var(--PS-COLOR--PRIMARY--DARK);
  --color--hover: #fff;
}

.pa-btn--loading {
  --color: #fff;
  --color--hover: #fff;
  background-color: #00DBDE;
  background-image: linear-gradient(90deg, #00DBDE 0%, #1a47d7 100%);
  background-size: 400% 400%;
  background-position: 0% 50%;
  animation: gradient-btn 2s ease infinite;
}

.pa-btn--abort {
  --bg: var(--PS-COLOR--ABORT);
  --color: #fff;
  --bg--hover: var(--PS-COLOR--ABORT--DARK);
  --color--hover: #fff;
}

.pa-btn--disabled {
  --bg: var(--PS-COLOR--APP--DARKGRAY);
  --color: var(--PS-COLOR--TEXT);
  --bg--hover: var(--PS-COLOR--APP--DARKGRAY);
  --color--hover: var(--PS-COLOR--TEXT);

  cursor: default;
}

.pa-btn--sm {
  --font-size: 100%;
  --line-height: 1.4;
}

.pa-btn--cancel {
  --bg: #e53935;
  --color: #fff;
  --bg--hover: #d32f2f;
  --color--hover: #fff;
}

.pa-btn--active {
  --bg: #66bb6a;
  --color: #fff;
  --bg--hover: #4caf50;
  --color--hover: #fff;
}

.ps-btn__group {
  .pa-btn {
    margin-left: -1px;
    border-radius: 0;

    &:first-child {
      margin-left: 0;
      border-top-left-radius: var(--radius);
      border-bottom-left-radius: var(--radius);
    }

    &:last-child {
      border-top-right-radius: var(--radius);
      border-bottom-right-radius: var(--radius);
    }
  }
}

@keyframes gradient-btn {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
