.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.65rem 1.2rem;border-radius:var(--radius-md);border:1px solid transparent;
  font-weight:500;font-size:.9rem;cursor:pointer;font-family:inherit;
  white-space:nowrap;min-height:38px;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease;
}
.btn:active{transform:scale(0.97)}
.btn-sm{padding:.45rem .9rem;font-size:.85rem;min-height:32px}
.btn-lg{padding:.8rem 1.6rem;font-size:1rem;min-height:46px}

.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-sm)}
.btn-primary:active{background:var(--accent-hover);transform:scale(0.97)}

.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--text)}
.btn-secondary:hover{background:var(--surface-2);border-color:var(--line-strong)}

.btn-ghost{background:transparent;border-color:transparent;color:var(--text-soft)}
.btn-ghost:hover{background:var(--surface-2);color:var(--text)}

.btn-danger{background:var(--danger-soft);border-color:#fca5a5;color:var(--danger)}
.btn-danger:hover{background:#fee2e2}

.btn-outline-accent{background:transparent;border-color:var(--accent);color:var(--accent)}
.btn-outline-accent:hover{background:var(--accent-soft)}

.icon-btn{
  width:38px;height:38px;border-radius:var(--radius-md);
  border:1px solid var(--line);
  display:grid;place-items:center;
  background:var(--surface);color:var(--text-soft);
  flex-shrink:0;
}
.icon-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--line-strong)}
.icon-btn:active{transform:scale(0.93)}
