._button_17v5n_1 {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  font-family: inherit;
  font-weight: var(--font-weight-medium);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}

._button_17v5n_1:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

._button_17v5n_1:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

._content_17v5n_26 {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-sm);
}

._icon_17v5n_32 {
  display: inline-flex;
  align-items: center;
  font-size: 1.15em;
}

._loading_17v5n_38 ._content_17v5n_26 {
  visibility: hidden;
}

._spinner_17v5n_42 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

._sizeSm_17v5n_49 {
  min-height: 32px;
  padding: 0 var(--spacing-md);
  font-size: var(--font-size-sm);
}

._sizeMd_17v5n_55 {
  min-height: 40px;
  padding: 0 var(--spacing-lg);
  font-size: var(--font-size-sm);
}

._sizeLg_17v5n_61 {
  min-height: 48px;
  padding: 0 var(--spacing-xl);
  font-size: var(--font-size-md);
}

._fullWidth_17v5n_67 {
  width: 100%;
}

._primary_17v5n_71 {
  background: var(--color-primary);
  color: var(--white);
}

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

._secondary_17v5n_80 {
  background: var(--color-surface);
  border-color: var(--color-border);
  color: var(--color-text);
}

._secondary_17v5n_80:hover:not(:disabled) {
  background: var(--color-surface-muted);
}

._ghost_17v5n_90 {
  background: transparent;
  color: var(--color-text);
}

._ghost_17v5n_90:hover:not(:disabled) {
  background: var(--color-surface-muted);
}

._danger_17v5n_99 {
  background: var(--color-danger);
  color: var(--white);
}

._danger_17v5n_99:hover:not(:disabled) {
  filter: brightness(0.92);
}

._text_17v5n_108 {
  background: transparent;
  color: var(--color-primary);
  min-height: auto;
  padding: 0;
}

._text_17v5n_108:hover:not(:disabled) {
  text-decoration: underline;
}
