/**
 * Buttons. Minimum touch target is 44px per WCAG 2.5.5 / mobile guidance.
 */

.calcoryn-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: var(--touch-target-min);
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  font-family: var(--font-family-base);
  font-size: var(--text-base);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  text-decoration: none;
  transition: background-color var(--motion-duration-fast) var(--motion-easing),
    border-color var(--motion-duration-fast) var(--motion-easing),
    color var(--motion-duration-fast) var(--motion-easing);
}

.calcoryn-btn--primary {
  background-color: var(--color-primary-blue);
  color: #ffffff;
}

.calcoryn-btn--primary:hover {
  background-color: var(--color-primary-blue-hover);
}

.calcoryn-btn--secondary {
  background-color: var(--color-card);
  border-color: var(--color-border);
  color: var(--color-text-primary);
}

.calcoryn-btn--secondary:hover {
  border-color: var(--color-primary-blue);
  color: var(--color-primary-blue);
}

.calcoryn-btn--icon {
  padding: var(--space-2);
  width: var(--touch-target-min);
}

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

/* "Copy result" affordance shows a text-based confirmation, never relies on
   color/icon change alone, so screen reader and colorblind users get the
   same feedback. */
.calcoryn-btn__status {
  font-size: var(--text-sm);
  color: var(--color-success);
  font-weight: var(--font-weight-medium);
}
