
.t-muted { color:var(--text-2); }
.t-dim   { color:var(--text-3); }
.t-yellow{ color:var(--yellow); }
.t-red   { color:var(--red); }
.t-green { color:var(--green); }

/* ── Buttons ─────────────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  padding:.62rem 1.25rem; border-radius:var(--full);
  font-size:.875rem; font-weight:700;
  transition:all var(--t2) var(--ease);
  user-select:none; white-space:nowrap; flex-shrink:0;
}
.btn:active { transform:scale(.95); }

.btn-primary, .btn-yellow { background:var(--yellow); color:#000; }
.btn-primary:hover, .btn-yellow:hover { background:var(--yellow-2); box-shadow:var(--glow-y); }

.btn-danger { background:var(--red); color:#fff; }
.btn-danger:hover { filter:brightness(1.08); }

.btn-dark { background:var(--card); color:var(--text-1); border:1px solid var(--border); }
.btn-dark:hover { background:var(--hover); }

.btn-surface { background:var(--card); color:var(--text-1); border:1px solid var(--border); }
.btn-surface:hover { background:var(--hover); }

.btn-outline { background:transparent; color:var(--yellow); border:1.5px solid var(--yellow); }
.btn-outline:hover { background:var(--yellow-bg); }

.btn-ghost { background:transparent; color:var(--text-2); border:1px solid var(--border); }
.btn-ghost:hover { background:var(--hover); color:var(--text-1); }

.btn-red { background:var(--red); color:#fff; }
.btn-red:hover { filter:brightness(1.1); }

.btn-green { background:var(--green); color:#000; }
.btn-green:hover { filter:brightness(.95); }

.btn-icon {
  width:38px; height:38px; padding:0; border-radius:var(--full);
  background:var(--card); color:var(--text-2); border:1px solid var(--border);
  font-size:1rem;
}
.btn-icon:hover { background:var(--hover); color:var(--text-1); }
.btn-icon.active { background:var(--yellow-bg); color:var(--yellow); border-color:var(--yellow-brd); }

.btn-sm  { padding:.42rem .9rem;  font-size:.8rem; }
.btn-lg  { padding:.8rem 1.75rem; font-size:.95rem; }
.btn-xl  { padding:1rem 2.2rem;   font-size:1rem; }
.btn-full{ width:100%; }
.btn-pill{ border-radius:var(--full) !important; }

.btn[disabled],.btn.loading { opacity:.5; pointer-events:none; }
.btn.loading::after {
  content:''; width:14px; height:14px; border:2px solid currentColor;
  border-top-color:transparent; border-radius:50%;
  animation:spin .6s linear infinite; margin-left:6px;
}

/* ── Inputs ──────────────────────────────────────────────────── */
.input {
  width:100%; background:var(--card); border:1.5px solid var(--border);
  border-radius:var(--r8); padding:.7rem 1rem;
  font-size:.9rem; color:var(--text-1);
  transition:border-color var(--t2), box-shadow var(--t2);
}
.input::placeholder { color:var(--text-3); }
.input:focus { border-color:var(--yellow); box-shadow:0 0 0 3px rgba(47,128,237,.1); }