/* ═══════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: 10px 22px;
  border-radius: var(--r-md);
  font-family: var(--font-body);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
  transition:
    background-color var(--t-fast),
    color var(--t-fast),
    border-color var(--t-fast),
    box-shadow var(--t-fast),
    transform var(--t-fast);
  text-decoration: none;
  border: 1px solid transparent;
}

.btn:active { transform: translateY(1px); }

/* Sizes */
.btn-sm  { padding: 8px 18px; font-size: .83rem; }
.btn-lg  { padding: 13px 28px; font-size: .95rem; }
.btn-xl  { padding: 16px 36px; font-size: 1rem; }
.btn-full { width: 100%; justify-content: center; }

/* Variants */
.btn-primary {
  background-color: var(--green);
  color: #FFF;
  border-color: var(--green);
}
.btn-primary:hover {
  background-color: var(--green-dark);
  border-color: var(--green-dark);
  box-shadow: var(--shadow-green);
  transform: translateY(-1px);
}

.btn-ghost {
  background-color: transparent;
  color: var(--text-secondary);
  border-color: var(--bg-border);
}
.btn-ghost:hover {
  background-color: var(--bg-subtle);
  color: var(--text);
  border-color: #CBD5E1;
}

.btn-danger {
  background-color: var(--dn);
  color: #FFF;
  border-color: var(--dn);
}
.btn-danger:hover {
  background-color: #B91C1C;
  box-shadow: 0 4px 16px rgba(220,38,38,.3);
  transform: translateY(-1px);
}

.btn-outline-green {
  background-color: transparent;
  color: var(--green);
  border-color: var(--green);
}
.btn-outline-green:hover {
  background-color: var(--green-dim);
}