.rs-btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border: 0;
    border-radius: 999px;
    padding: .72rem 1.15rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--rs-transition);
}
.rs-btn-sm { min-height: 38px; padding: .45rem .8rem; font-size: .9rem; }
.rs-btn-primary { background: var(--rs-red); color: var(--rs-white); box-shadow: 0 10px 24px rgba(196, 22, 28, .22); }
.rs-btn-primary:hover { background: var(--rs-red-dark); color: var(--rs-white); transform: translateY(-1px); }
.rs-btn-outline { background: transparent; color: var(--rs-red); border: 1px solid rgba(196, 22, 28, .28); }
.rs-btn-outline:hover { background: rgba(196, 22, 28, .08); color: var(--rs-red-dark); }
.rs-btn-danger { background: var(--rs-danger); color: var(--rs-white); box-shadow: 0 10px 24px rgba(220, 53, 69, .18); }
.rs-btn-danger:hover { background: #bb2d3b; color: var(--rs-white); transform: translateY(-1px); }
.rs-btn-light { background: var(--rs-white); color: var(--rs-dark); border: 1px solid rgba(34, 34, 34, .08); }
.rs-input {
    min-height: 46px;
    border-radius: var(--rs-radius-sm);
    border-color: rgba(34, 34, 34, .12);
    font-size: 1rem;
}
.rs-input:focus {
    border-color: var(--rs-red);
    box-shadow: 0 0 0 .2rem rgba(196, 22, 28, .12);
}
.rs-alert { border: 0; border-radius: var(--rs-radius-md); box-shadow: var(--rs-shadow-card); }
.rs-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    background: rgba(255, 212, 59, .35);
    color: var(--rs-red-dark);
    padding: .35rem .7rem;
    font-size: .78rem;
    font-weight: 800;
}
.rs-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}
.rs-campaign-card, .rs-outlet-card, .rs-admin-card, .rs-empty-state, .rs-error-card {
    background: var(--rs-white);
    border-radius: var(--rs-radius-lg);
    box-shadow: var(--rs-shadow-soft);
    border: 1px solid rgba(34, 34, 34, .06);
}
.rs-campaign-card {
    overflow: hidden;
    color: var(--rs-dark);
    display: flex;
    flex-direction: column;
}
.rs-campaign-card:hover, .rs-outlet-card:hover { transform: translateY(-2px); box-shadow: var(--rs-shadow-card); }
.rs-campaign-card img { width: 100%; height: 172px; object-fit: cover; }
.rs-campaign-card div { padding: 1rem; }
.rs-campaign-card h3 { margin: .7rem 0 .35rem; }
.rs-campaign-card p { color: var(--rs-muted); margin: 0 0 .75rem; }
.rs-campaign-card-compact { min-height: 170px; }
.rs-outlet-card {
    padding: 1.1rem;
    color: var(--rs-dark);
    transition: var(--rs-transition);
}
.rs-outlet-card strong { display: block; font-size: 1.2rem; margin-bottom: .35rem; }
.rs-outlet-card p { color: var(--rs-muted); margin-bottom: .75rem; }
.rs-card-actions { display: flex; flex-wrap: wrap; gap: .75rem; font-weight: 700; }
.rs-empty-state, .rs-error-card { padding: 2rem; text-align: center; }
.rs-empty-icon { font-size: 2.4rem; margin-bottom: .7rem; }
.rs-check {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-weight: 600;
}
.rs-check input { width: 1.15rem; height: 1.15rem; accent-color: var(--rs-red); }
.rs-checkbox-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .5rem .9rem; }
.rs-image-preview, .rs-current-image { max-width: 220px; border-radius: var(--rs-radius-md); margin-top: .8rem; box-shadow: var(--rs-shadow-soft); }
.rs-image-preview[src=""], .rs-image-preview:not([src]) { display: none; }
