/* ── Shared button system ─────────────────────────────────────────────────── */

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 9px 18px; border-radius: 8px; border: none;
  font-size: .85rem; font-weight: 600; cursor: pointer;
  transition: background .12s, color .12s, border-color .12s, opacity .12s;
  text-decoration: none;
}
.btn:disabled { opacity: .5; cursor: default; pointer-events: none; }

.btn-primary  { background: #2563eb; color: #fff; }
.btn-primary:hover  { background: #1d4ed8; }

.btn-secondary { background: none; color: #2563eb; border: 1px solid #2563eb; }
.btn-secondary:hover { background: #eff6ff; }

.btn-danger   { background: #fee2e2; color: #dc2626; border: 1px solid transparent; }
.btn-danger:hover   { background: #fecaca; }

.btn-ghost    { background: transparent; color: #475569; border: 1px solid #e2e8f0; }
.btn-ghost:hover    { background: rgba(0,0,0,.05); }

.btn-sm  { padding: 4px 11px; font-size: .78rem; border-radius: 6px; }
.btn-lg  { padding: 11px 24px; font-size: .95rem; }
.btn-full { width: 100%; }

/* Icon-only button — square, always transparent, SVG centered */
.btn-icon {
  padding: 0; width: 36px; height: 36px; border-radius: 8px; flex-shrink: 0;
  background: transparent; border-color: transparent;
  display: inline-flex !important; align-items: center; justify-content: center;
  line-height: 1;
}
.btn-icon.hist-hidden { display: none !important; }
.btn-icon:hover { background: rgba(0,0,0,.06); border-color: transparent; }
.btn-icon.btn-sm { width: 30px; height: 30px; border-radius: 6px; }
