@use '../../assets/styles/colors' as *;
@use '../../assets/styles/fonts';

.ff-button {
  background-color: var(--primary-button-text-color);
  border-radius: 4px;
  padding: 4px 8px;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  gap: 4px;
  justify-content: center;
  align-items: center;
  @extend .fontXs;
  border: 2px solid transparent;

  &--transparent {
    background-color: transparent;
  }

  &--primary,
  &--delete,
  &--danger,
  &--secondary {
    position: relative;
    cursor: pointer;
    border-radius: 4px;
    z-index: 1;
    border: none;
    overflow: hidden;

    &:before {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: 4px;
      padding: 0.6px;

      background: var(--primary-button-border);
      mask:
        linear-gradient(var(--primary-button-text-color) 0 0) content-box,
        linear-gradient(var(--primary-button-text-color) 0 0);
      mask-composite: exclude;
      -webkit-mask:
        linear-gradient(var(--primary-button-text-color) 0 0) content-box,
        linear-gradient(var(--primary-button-text-color) 0 0);
      -webkit-mask-composite: destination-out;
      z-index: -1;
    }

    &:hover {
      background: var(--primary-button-hover);
    }

    &:disabled {
      opacity: 50%;
      cursor: no-drop;

      &:before {
        content: '';
        position: absolute;
        inset: 0;
        border-radius: 4px;
        padding: 0.6px;
        -webkit-mask-composite: destination-out;
        mask-composite: exclude;
        z-index: -1;
      }
    }
  }

  &--primary {
    background: var(--primary-button-color);

    &:before {
      background: var(--primary-button-border);
    }

    &:hover {
      background: var(--primary-button-hover);
    }
  }

  &--delete {
    background: var(--delete-button-color);
    color: var(--primary-button-text-color);

    &:before {
      background: var(--delete-button-border);
    }

    &:hover {
      background: var(--delete-button-hover);
    }
  }

  &--warning {
    background: var(--warning-button-color);
    border: var(--warning-button-border);
  }

  &--secondary {
    &:before {
      background: var(--primary-button-border);
    }

    &:hover {
      background: var(--secondary-button-hover);
    }
  }

  &--danger {
    color: var(--status-rejected-text-color);

    &:before {
      background: var(--status-rejected-text-color);
    }

    &:hover {
      background: var(--danger-button-hover);
    }
  }

  &--tertiary {
    border: none;
    background: var(--tertiary-button-color);

    &:hover {
      background: var(--tertiary-button-hover);
    }

    &:disabled {
      opacity: 0.5;
      cursor: no-drop;
    }
  }

  &--small {
    @extend .fontXs;
    font-weight: 500;
    padding: 4.5px 8px;
    line-height: 15px;
  }

  &--medium {
    @extend .fontXs;
    font-weight: 500;
    padding: 6px 12px;
  }

  &--large {
    @extend .fontMd;
    padding: 8px 16px;
  }

  &-primary--text {
    color: var(--primary-button-text-color);
  }

  &-secondary--text,
  &-tertiary--text {
    background: var(--secondary-button-color-text);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}

.ff-button-icon {
  cursor: pointer;
}

.ff-button-choose-file-text {
  color: var(--dotted-border-color);
}

.ff-button-choose-file {
  display: flex;
  justify-content: space-between;
}
