// Vagabond RPG - Button Styles
// =============================

.vagabond {
  // Primary button
  .btn-primary {
    @include button-primary;
  }

  // Secondary button
  .btn-secondary {
    @include button-secondary;
  }

  // Small button variant
  .btn-sm {
    padding: $spacing-1 $spacing-2;
    font-size: $font-size-xs;
  }

  // Large button variant
  .btn-lg {
    padding: $spacing-3 $spacing-6;
    font-size: $font-size-lg;
  }

  // Icon button (square, for icons only)
  .btn-icon {
    @include button-base;
    @include flex-center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    background-color: transparent;
    border-color: transparent;
    color: var(--color-text-primary);

    &:hover:not(:disabled) {
      background-color: var(--color-bg-secondary);
      color: var(--color-accent-primary);
    }

    i {
      font-size: $font-size-base;
    }
  }

  // Small icon button (for +/- resource buttons)
  .btn-icon-sm {
    @include button-base;
    @include flex-center;
    width: 24px;
    height: 24px;
    padding: 0;
    background-color: var(--color-bg-primary);
    border: 1px solid var(--color-border);
    color: var(--color-text-primary);

    &:hover:not(:disabled) {
      background-color: var(--color-bg-secondary);
      border-color: var(--color-accent-primary);
      color: var(--color-accent-primary);
    }

    i {
      font-size: 10px;
      color: inherit;
    }
  }

  // Rollable button (for dice rolls)
  .btn-roll {
    @include button-base;
    background-color: var(--color-bg-input);
    color: var(--color-text-primary);
    border-color: var(--color-border);

    &:hover:not(:disabled) {
      background-color: var(--color-accent-highlight);
      border-color: var(--color-accent-primary);
    }

    i {
      margin-right: $spacing-2;
    }
  }

  // Danger button
  .btn-danger {
    @include button-base;
    background-color: var(--color-danger);
    color: var(--color-text-inverse);
    border-color: var(--color-danger);

    &:hover:not(:disabled) {
      filter: brightness(0.85);
    }
  }

  // Success button
  .btn-success {
    @include button-base;
    background-color: var(--color-success);
    color: var(--color-text-inverse);
    border-color: var(--color-success);

    &:hover:not(:disabled) {
      filter: brightness(0.85);
    }
  }

  // Button group
  .btn-group {
    display: inline-flex;

    .btn-primary,
    .btn-secondary {
      border-radius: 0;

      &:first-child {
        border-radius: $radius-md 0 0 $radius-md;
      }

      &:last-child {
        border-radius: 0 $radius-md $radius-md 0;
      }

      &:not(:last-child) {
        border-right: none;
      }
    }
  }
}
