.rs-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.72rem 1.1rem;
    border: 1px solid transparent;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
    line-height: 1;
    transition: transform 0.18s ease, border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.rs-btn-sm {
    height: auto;
    padding: 6px 14px;
}

.rs-btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--rs-shadow-sm);
}

.rs-btn-primary {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 52%, #1d4ed8 100%);
    border-color: #2563eb;
    color: #ffffff;
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.24);
}

.rs-btn-primary:hover,
.rs-btn-primary:focus {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    border-color: #1d4ed8;
    color: #ffffff;
}

.rs-btn-info {
    background: linear-gradient(135deg, rgba(59,130,246,.18) 0%, rgba(37,99,235,.14) 100%);
    border-color: rgba(37, 99, 235, .34);
    color: #1d4ed8;
}
.rs-btn-info:hover,
.rs-btn-info:focus {
    background: linear-gradient(135deg, rgba(59,130,246,.24) 0%, rgba(37,99,235,.18) 100%);
    border-color: rgba(37, 99, 235, .48);
    color: #1e40af;
}

.rs-btn-success {
    background: linear-gradient(135deg, rgba(34,197,94,.18) 0%, rgba(22,163,74,.14) 100%);
    border-color: rgba(22, 163, 74, .34);
    color: #15803d;
}
.rs-btn-success:hover,
.rs-btn-success:focus {
    background: linear-gradient(135deg, rgba(34,197,94,.24) 0%, rgba(22,163,74,.18) 100%);
    border-color: rgba(22, 163, 74, .46);
    color: #166534;
}

.rs-btn-warning {
    background: linear-gradient(135deg, rgba(251,191,36,.22) 0%, rgba(245,158,11,.16) 100%);
    border-color: rgba(217, 119, 6, .34);
    color: #b45309;
}
.rs-btn-warning:hover,
.rs-btn-warning:focus {
    background: linear-gradient(135deg, rgba(251,191,36,.28) 0%, rgba(245,158,11,.22) 100%);
    border-color: rgba(217, 119, 6, .46);
    color: #92400e;
}

.rs-btn-danger {
    background: linear-gradient(135deg, rgba(248,113,113,.20) 0%, rgba(239,68,68,.14) 100%);
    border-color: rgba(220, 38, 38, .34);
    color: #b91c1c;
}
.rs-btn-danger:hover,
.rs-btn-danger:focus {
    background: linear-gradient(135deg, rgba(248,113,113,.26) 0%, rgba(239,68,68,.20) 100%);
    border-color: rgba(220, 38, 38, .48);
    color: #991b1b;
}

html[data-rs-theme="gelap"] .rs-btn-primary {
    background: var(--rs-accent-strong);
    border-color: var(--rs-accent-strong);
    color: #ffffff;
}
html[data-rs-theme="gelap"] .rs-btn-info,
html[data-rs-theme="gelap"] .rs-btn-success,
html[data-rs-theme="gelap"] .rs-btn-warning,
html[data-rs-theme="gelap"] .rs-btn-danger {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 12px 24px rgba(0,0,0,.24);
}
html[data-rs-theme="gelap"] .rs-btn-info { color: #bfdbfe; border-color: rgba(96,165,250,.32); background: rgba(37,99,235,.20); }
html[data-rs-theme="gelap"] .rs-btn-success { color: #bbf7d0; border-color: rgba(74,222,128,.28); background: rgba(22,163,74,.20); }
html[data-rs-theme="gelap"] .rs-btn-warning { color: #fde68a; border-color: rgba(251,191,36,.30); background: rgba(245,158,11,.20); }
html[data-rs-theme="gelap"] .rs-btn-danger { color: #fecaca; border-color: rgba(248,113,113,.30); background: rgba(220,38,38,.20); }

.rs-btn-soft {
    background: var(--rs-panel-strong);
    border-color: var(--rs-border);
    color: var(--rs-text);
}

.rs-btn-soft:hover,
.rs-btn-soft:focus {
    border-color: var(--rs-border-strong);
    color: var(--rs-text);
}

.rs-btn-ghost {
    background: transparent;
    border-color: var(--rs-border-strong);
    color: var(--rs-text-soft);
}

.rs-btn-ghost:hover,
.rs-btn-ghost:focus {
    background: var(--rs-surface-muted);
    color: var(--rs-text);
}

/* Icon buttons */
.rs-btn-icon,
.rs-btn.rs-btn-icon,
button.rs-btn-icon,
a.rs-btn-icon {
    width: 42px;
    min-width: 42px;
    height: 42px;
    min-height: 42px;
    padding: 0 !important;
    border-radius: 999px;
    color: var(--rs-text) !important;
    background: color-mix(in srgb, var(--rs-surface) 84%, transparent) !important;
    border-color: color-mix(in srgb, var(--rs-border-strong) 74%, transparent) !important;
    box-shadow: var(--rs-glass-highlight, inset 0 1px 0 rgba(255,255,255,.28)), 0 10px 24px rgba(15, 23, 42, .08);
    backdrop-filter: blur(14px) saturate(130%);
    -webkit-backdrop-filter: blur(14px) saturate(130%);
}

.rs-btn-icon svg,
.rs-btn.rs-btn-icon svg,
button.rs-btn-icon svg,
a.rs-btn-icon svg {
    width: 18px;
    height: 18px;
    stroke: currentColor !important;
    stroke-width: 2.35;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
    opacity: 1 !important;
}

.rs-btn-icon:hover,
.rs-btn-icon:focus {
    color: var(--rs-text) !important;
    border-color: var(--rs-border-strong) !important;
    background: color-mix(in srgb, var(--rs-surface) 94%, transparent) !important;
}

.rs-btn-icon.rs-btn-sm,
.rs-btn-sm.rs-btn-icon,
.rs-action-row .rs-btn-icon {
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
}

.rs-btn-icon.rs-btn-sm svg,
.rs-btn-sm.rs-btn-icon svg,
.rs-action-row .rs-btn-icon svg {
    width: 16px;
    height: 16px;
}

.rs-btn-info.rs-btn-icon,
.rs-btn-success.rs-btn-icon,
.rs-btn-warning.rs-btn-icon,
.rs-btn-danger.rs-btn-icon {
    background: color-mix(in srgb, currentColor 10%, rgba(255,255,255,.92)) !important;
}
.rs-btn-info.rs-btn-icon { color: #2563eb !important; border-color: rgba(37,99,235,.26) !important; }
.rs-btn-success.rs-btn-icon { color: #15803d !important; border-color: rgba(22,163,74,.24) !important; }
.rs-btn-warning.rs-btn-icon { color: #b45309 !important; border-color: rgba(217,119,6,.26) !important; }
.rs-btn-danger.rs-btn-icon { color: #b91c1c !important; border-color: rgba(220,38,38,.26) !important; }

html[data-rs-theme="gelap"] .rs-btn-icon,
html[data-rs-theme="gelap"] .rs-btn.rs-btn-icon,
html[data-rs-theme="gelap"] button.rs-btn-icon,
html[data-rs-theme="gelap"] a.rs-btn-icon,
html[data-rs-theme="gelap"] .rs-btn-primary.rs-btn-icon,
html[data-rs-theme="gelap"] .rs-page-header .rs-btn-icon {
    color: #f8fafc !important;
    background: rgba(255, 255, 255, .085) !important;
    border-color: rgba(255, 255, 255, .18) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 12px 26px rgba(0,0,0,.28);
}

html[data-rs-theme="gelap"] .rs-btn-icon:hover,
html[data-rs-theme="gelap"] .rs-btn-icon:focus,
html[data-rs-theme="gelap"] .rs-page-header .rs-btn-icon:hover,
html[data-rs-theme="gelap"] .rs-page-header .rs-btn-icon:focus {
    color: #ffffff !important;
    background: rgba(255, 255, 255, .14) !important;
    border-color: rgba(255, 255, 255, .28) !important;
}

.rs-btn-icon--success { color: var(--rs-success) !important; }
.rs-btn-icon--danger { color: var(--rs-danger) !important; }
.rs-btn-icon--warning { color: var(--rs-warning) !important; }
.rs-btn-icon--info { color: var(--rs-info) !important; }

html[data-rs-theme="gelap"] .rs-btn-icon--success { color: #86efac !important; }
html[data-rs-theme="gelap"] .rs-btn-icon--danger { color: #fca5a5 !important; }
html[data-rs-theme="gelap"] .rs-btn-icon--warning { color: #fde68a !important; }
html[data-rs-theme="gelap"] .rs-btn-icon--info { color: #bfdbfe !important; }

/* Final semantic icon button colors. */
.rs-btn-icon.rs-btn-primary,
.rs-btn-primary.rs-btn-icon {
    color: #ffffff !important;
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%) !important;
    border-color: rgba(37, 99, 235, 0.45) !important;
}

.rs-btn-icon.rs-btn-info,
.rs-btn-info.rs-btn-icon {
    color: #0f5f9f !important;
    background: linear-gradient(135deg, rgba(56,189,248,.30) 0%, rgba(59,130,246,.16) 100%) !important;
    border-color: rgba(14, 165, 233, .34) !important;
}

.rs-btn-icon.rs-btn-success,
.rs-btn-success.rs-btn-icon,
.rs-btn-icon--success {
    color: #15803d !important;
    background: linear-gradient(135deg, rgba(34,197,94,.28) 0%, rgba(22,163,74,.14) 100%) !important;
    border-color: rgba(22, 163, 74, .34) !important;
}

.rs-btn-icon.rs-btn-warning,
.rs-btn-warning.rs-btn-icon,
.rs-btn-icon--warning {
    color: #b45309 !important;
    background: linear-gradient(135deg, rgba(251,191,36,.32) 0%, rgba(245,158,11,.16) 100%) !important;
    border-color: rgba(217, 119, 6, .34) !important;
}

.rs-btn-icon.rs-btn-danger,
.rs-btn-danger.rs-btn-icon,
.rs-btn-icon--danger {
    color: #b91c1c !important;
    background: linear-gradient(135deg, rgba(248,113,113,.30) 0%, rgba(239,68,68,.14) 100%) !important;
    border-color: rgba(220, 38, 38, .34) !important;
}

html[data-rs-theme="gelap"] .rs-btn-icon.rs-btn-primary,
html[data-rs-theme="gelap"] .rs-btn-primary.rs-btn-icon { color: #dbeafe !important; background: rgba(37,99,235,.24) !important; border-color: rgba(96,165,250,.32) !important; }
html[data-rs-theme="gelap"] .rs-btn-icon.rs-btn-info,
html[data-rs-theme="gelap"] .rs-btn-info.rs-btn-icon { color: #bae6fd !important; background: rgba(14,165,233,.20) !important; border-color: rgba(56,189,248,.32) !important; }
html[data-rs-theme="gelap"] .rs-btn-icon.rs-btn-success,
html[data-rs-theme="gelap"] .rs-btn-success.rs-btn-icon,
html[data-rs-theme="gelap"] .rs-btn-icon--success { color: #bbf7d0 !important; background: rgba(22,163,74,.22) !important; border-color: rgba(74,222,128,.30) !important; }
html[data-rs-theme="gelap"] .rs-btn-icon.rs-btn-warning,
html[data-rs-theme="gelap"] .rs-btn-warning.rs-btn-icon,
html[data-rs-theme="gelap"] .rs-btn-icon--warning { color: #fde68a !important; background: rgba(245,158,11,.22) !important; border-color: rgba(251,191,36,.32) !important; }
html[data-rs-theme="gelap"] .rs-btn-icon.rs-btn-danger,
html[data-rs-theme="gelap"] .rs-btn-danger.rs-btn-icon,
html[data-rs-theme="gelap"] .rs-btn-icon--danger { color: #fecaca !important; background: rgba(220,38,38,.22) !important; border-color: rgba(248,113,113,.32) !important; }
