/* Button Component Styles */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-sm) var(--spacing-lg);
  font-size: var(--font-size-base);
  font-weight: 500;
  border-radius: var(--radius-md);
  cursor: pointer;
  border: none;
  transition: all var(--transition-fast);
  text-decoration: none;
  white-space: nowrap;
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Primary button */
.btn--primary {
  background: var(--color-primary);
  color: var(--color-background);
}

.btn--primary:hover:not(:disabled) {
  background: #ffed4a;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

.btn--primary:active:not(:disabled) {
  transform: translateY(0);
}

/* Secondary button */
.btn--secondary {
  background: var(--color-secondary);
  color: var(--color-text);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.btn--secondary:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.3);
}

/* Outline button */
.btn--outline {
  background: transparent;
  color: var(--color-primary);
  border: 2px solid var(--color-primary);
}

.btn--outline:hover:not(:disabled) {
  background: var(--color-primary);
  color: var(--color-background);
}

/* Ghost button */
.btn--ghost {
  background: transparent;
  color: var(--color-text);
}

.btn--ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
}

/* Danger button */
.btn--danger {
  background: var(--color-error);
  color: var(--color-text);
}

.btn--danger:hover:not(:disabled) {
  background: #d32f2f;
}

/* Success button */
.btn--success {
  background: var(--color-success);
  color: var(--color-text);
}

.btn--success:hover:not(:disabled) {
  background: #45a049;
}

/* Size variants */
.btn--sm {
  padding: var(--spacing-xs) var(--spacing-md);
  font-size: var(--font-size-sm);
}

.btn--lg {
  padding: var(--spacing-md) var(--spacing-xl);
  font-size: var(--font-size-lg);
}

/* Full width */
.btn--full {
  width: 100%;
}

/* Icon buttons */
.btn--icon {
  padding: var(--spacing-sm);
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
}

/* Button group */
.btn-group {
  display: inline-flex;
  gap: var(--spacing-sm);
}

.btn-group .btn {
  flex: 1;
  opacity: 0.5;
  transition: opacity var(--transition-fast), filter var(--transition-fast);
}

.btn-group .btn--active {
  opacity: 1;
  filter: brightness(1.3);
}

/* Active state for toggle buttons */
.btn--active {
  box-shadow: inset 0 0 0 2px #ffd700;
  transform: scale(0.98);
}

.btn--success.btn--active {
  background: #2e7d32;
  box-shadow: inset 0 0 0 2px #1b5e20;
}

.btn--danger.btn--active {
  background: #c62828;
  box-shadow: inset 0 0 0 2px #b71c1c;
}

.btn--secondary.btn--active {
  background: rgba(255, 215, 0, 0.15);
  box-shadow: inset 0 0 0 2px #ffd700;
  color: #ffd700;
}
