/* =============================================================================
   Button Component Styles
   ============================================================================= */

/* Base button styles */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-family: 'Dongle', sans-serif;
  font-weight: 400;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  box-sizing: border-box;
  white-space: nowrap;
  user-select: none;
}

.btn:focus {
  outline: 2px solid var(--color-medium-gold);
  outline-offset: 2px;
}

.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}

/* Button sizes */
.btn--small {
  padding: 4px 8px;
  font-size: 12px;
  min-height: 28px;
}

.btn--medium {
  padding: 6px 12px;
  font-size: 14px;
  min-height: 32px;
}

.btn--large {
  padding: 8px 16px;
  font-size: 16px;
  min-height: 40px;
}

/* Button variants */
.btn--default {
  background-color: #f8f9fa;
  border-color: #ddd;
  color: var(--color-dark-purple);
}

.btn--default:hover:not(:disabled) {
  background-color: #e9ecef;
  border-color: #adb5bd;
}

.btn--default:active:not(:disabled) {
  background-color: #dee2e6;
  transform: translateY(1px);
}

.btn--primary {
  background-color: var(--color-medium-gold);
  border-color: var(--color-medium-gold);
  color: var(--color-dark-purple);
  font-weight: 500;
}

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

.btn--primary:active:not(:disabled) {
  background-color: var(--color-dark-gold);
  border-color: var(--color-dark-gold);
  transform: translateY(1px);
}

.btn--secondary {
  background-color: transparent;
  border-color: var(--color-medium-gold);
  color: var(--color-medium-gold);
}

.btn--secondary:hover:not(:disabled) {
  background-color: var(--color-medium-gold);
  color: var(--color-dark-purple);
}

.btn--secondary:active:not(:disabled) {
  background-color: var(--color-dark-gold);
  border-color: var(--color-dark-gold);
  color: var(--color-dark-purple);
  transform: translateY(1px);
}

.btn--active {
  background-color: #ffe066;
  border-color: #ffcc02;
  color: var(--color-dark-purple);
  font-weight: bold;
}

.btn--active:hover:not(:disabled) {
  background-color: #ffd700;
  border-color: #e6b800;
}

.btn--active:active:not(:disabled) {
  background-color: #ccac00;
  border-color: #b8a000;
  transform: translateY(1px);
}

.btn--icon {
  background-color: transparent;
  border-color: transparent;
  color: var(--color-dark-purple);
  padding: 6px;
  min-width: 32px;
}

.btn--icon:hover:not(:disabled) {
  background-color: rgba(0, 0, 0, 0.05);
  border-color: #ddd;
}

.btn--icon:active:not(:disabled) {
  background-color: rgba(0, 0, 0, 0.1);
  transform: translateY(1px);
}

/* Special state for zoom-to-fit (default active state) */
.btn--zoom-fit {
  background-color: #e3f2fd;
  border-color: #90caf9;
  color: var(--color-dark-purple);
  font-weight: 500;
}

.btn--zoom-fit:hover:not(:disabled) {
  background-color: #bbdefb;
  border-color: #64b5f6;
}

.btn--zoom-fit:active:not(:disabled) {
  background-color: #90caf9;
  border-color: #42a5f5;
  transform: translateY(1px);
}

/* Button groups */
.btn-group {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

.btn-group--compact {
  gap: 4px;
}

.btn-group--spread {
  gap: 12px;
}
