/* ══════════════════════════════
   BUTTONS
══════════════════════════════ */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 6px; padding: 0 18px; height: var(--touch-min);
  border-radius: var(--radius); font-family: var(--font);
  font-size: 14px; font-weight: 600; line-height: 1;
  border: 1.5px solid transparent;
  transition: all var(--ease); cursor: pointer;
  white-space: nowrap; user-select: none;
}
.btn:active:not(:disabled) { transform: scale(.97); }
.btn:disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }
.btn svg { flex-shrink: 0; }
.btn__text,.btn__loader { display:flex;align-items:center;justify-content:center;gap:6px; }

.btn--primary {
  background: linear-gradient(135deg,#2563EB 0%,#1D4ED8 100%);
  color: #fff; border-color: #2563EB;
  box-shadow: 0 2px 8px rgba(37,99,235,.25);
}
.btn--primary:hover  { background:linear-gradient(135deg,#1D4ED8 0%,#1E40AF 100%); box-shadow:0 4px 14px rgba(37,99,235,.35); }
.btn--secondary { background:var(--bg-surface); color:var(--text-primary); border-color:var(--border-strong); }
.btn--secondary:hover { background:var(--gray-100); }
.btn--ghost { background:transparent; color:var(--text-secondary); border-color:transparent; }
.btn--ghost:hover { background:var(--gray-100); color:var(--text-primary); }
.btn--danger { background:var(--danger); color:#fff; border-color:var(--danger); }
.btn--danger:hover { background:#B91C1C; }
.btn--success { background:var(--success); color:#fff; border-color:var(--success); }

.btn--sm { height:36px; padding:0 14px; font-size:12px; border-radius:var(--radius-sm); }
.btn--lg { height:var(--touch-lg); padding:0 24px; font-size:15px; border-radius:var(--radius-md); }
.btn--full { width:100%; }

/* Icon button */
.btn-icon {
  width:var(--touch-min); height:var(--touch-min);
  display:flex; align-items:center; justify-content:center;
  border-radius:var(--radius); color:var(--text-secondary);
  transition:all var(--ease); flex-shrink:0;
}
.btn-icon:hover  { background:var(--gray-100); color:var(--text-primary); }
.btn-icon:active { transform:scale(.9); }
.btn-icon--sm    { width:36px; height:36px; }
.btn-icon--ghost { background:transparent; }
.btn-icon--danger:hover { background:var(--danger-bg); color:var(--danger); }

/* ── v2.1 additions ── */
.btn--warning { background: var(--warning); color:#fff; border-color:var(--warning); }
.btn--warning:hover { background:#B45309; }
.btn--outline-primary {
  background: transparent; color: var(--primary);
  border-color: var(--primary);
}
.btn--outline-primary:hover { background: var(--primary-50); }
/* Loading spinner inside btn */
.btn__loader .spinner {
  width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
