/* BIMAS shared components — canonical button contract (loads after module CSS) */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.625rem 1.25rem;
  border-radius: var(--r-lg, 0.75rem);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: -0.005em;
  cursor: pointer;
  border: none;
  white-space: nowrap;
  user-select: none;
  text-decoration: none;
  transition: transform 0.14s var(--ease), box-shadow 0.18s var(--ease), filter 0.14s var(--ease), background 0.18s var(--ease);
  position: relative;
}

.btn:active:not(:disabled) { transform: scale(0.97); }

.btn-primary {
  background: linear-gradient(135deg, var(--brand-blue), var(--brand-blue-mid));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 14px rgba(0, 87, 255, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.btn-primary:hover:not(:disabled) {
  filter: brightness(1.06);
  box-shadow: var(--shadow-blue);
  transform: translateY(-1px);
}

.btn-secondary {
  background: var(--surface-0);
  color: var(--text-primary);
  border: 1.5px solid var(--border);
  box-shadow: 0 1px 2px rgba(15, 23, 58, 0.04);
}

.btn-secondary:hover:not(:disabled) {
  background: var(--surface-1);
  border-color: var(--brand-blue-dim);
}

.btn-ghost {
  background: transparent;
  color: var(--text-tertiary);
}

.btn-ghost:hover:not(:disabled) {
  background: var(--surface-2);
  color: var(--text-primary);
}

.btn-danger {
  background: linear-gradient(135deg, var(--error), #dc2626);
  color: #fff;
}

.btn-success {
  background: linear-gradient(135deg, var(--success), #16a34a);
  color: #fff;
}

.btn-orange {
  background: linear-gradient(135deg, var(--brand-orange), var(--brand-orange-mid));
  color: #fff;
}

.btn-sm { padding: 0.4rem 0.875rem; font-size: 0.8125rem; }
.btn-lg { padding: 0.875rem 1.75rem; font-size: 1rem; }

.btn:focus-visible,
.icon-btn:focus-visible {
  outline: 2px solid var(--brand-blue);
  outline-offset: 2px;
}
