.filter-row { display: flex; gap: 10px; margin-bottom: 0; flex-wrap: wrap; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border); }
.filter-btn { padding: 5px 13px; border-radius: 100px; font-size: .77rem; font-weight: 600; cursor: pointer; border: 1px solid var(--border); background: transparent; color: var(--text-2); transition: all .15s; }
.filter-btn:hover { border-color: rgba(255,255,255,.12); color: var(--text-1); }
.filter-btn.active { border-color: var(--g); color: var(--g); background: rgba(0,230,118,.06); }
.filter-search { flex: 1; min-width: 160px; max-width: 260px; }
.tx-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.tx-table th { text-align: left; font-size: .7rem; font-weight: 600; letter-spacing: .4px; text-transform: uppercase; color: var(--text-3); padding: 8px 12px; border-bottom: 1px solid var(--border); }
.tx-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); color: var(--text-1); vertical-align: middle; }
.tx-table tr:last-child td { border-bottom: none; }
.badge { display: inline-block; padding: 2px 8px; border-radius: 100px; font-size: .68rem; font-weight: 600; }
.badge-earn { background: rgba(0,230,118,.1); color: var(--g); border: 1px solid var(--border-g); }
.badge-spend { background: rgba(239,68,68,.1); color: #f87171; border: 1px solid rgba(239,68,68,.22); }
.badge-expire { background: rgba(156,163,175,.1); color: #9ca3af; border: 1px solid rgba(156,163,175,.22); }
.badge-bonus { background: rgba(245,158,11,.1); color: #fbbf24; border: 1px solid rgba(245,158,11,.22); }
.coins-earn { color: var(--g); font-weight: 600; }
.coins-spend { color: #f87171; font-weight: 600; }
.empty-state { text-align: center; padding: 40px 20px; color: var(--text-3); font-size: .84rem; }
