.status-pill,
.category-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    white-space: nowrap;
}

.status-open {
    background: #f7e7b0;
    color: #6b4e00;
}

.status-recovered {
    background: #cdebd8;
    color: #145b35;
}

.status-exhausted {
    background: #ead0d0;
    color: #7b1d1d;
}

.status-closed {
    background: #d7dde8;
    color: #334155;
}

.category-badge {
    border: 1px solid transparent;
    background: #e3dac7;
    color: var(--ink-soft);
}

.cat-expired_card {
    border-color: #e7c563;
    background: #f8edc5;
    color: #7a5b00;
}

.cat-insufficient_funds {
    border-color: #b9b2ff;
    background: #e5e3ff;
    color: #3730a3;
}

.cat-bank_decline {
    border-color: #c4ccd7;
    background: #e5e9ee;
    color: #334155;
}

.cat-fraud {
    border-color: #dfa4a4;
    background: #f3d4d4;
    color: #7b1d1d;
}

.cat-invalid_card {
    border-color: #d9b35f;
    background: #f4e4bd;
    color: #7a4c00;
}

.cat-processing_error {
    border-color: #a9c1e8;
    background: #dce9fb;
    color: #1e40af;
}

.cat-authentication_required {
    border-color: #9dd9b3;
    background: #d9f2e2;
    color: #145b35;
}

.cat-unknown {
    border-color: #c4ccd7;
    background: #e5e9ee;
    color: #334155;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 18px;
    border: 0;
    border-radius: var(--radius);
    font-weight: 800;
    text-decoration: none;
}

.btn-primary {
    background: var(--green);
    color: #fff;
}

.btn-primary:hover {
    background: var(--green-bright);
}

.btn-lg {
    min-height: 48px;
    padding-inline: 24px;
    font-size: 16px;
}

.empty-state {
    padding: 26px;
    color: var(--muted);
    text-align: center;
}
