.rs-btn,
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 40px;
    padding: 0.58rem 0.9rem;
    border: 1px solid var(--rs-border);
    border-radius: 0;
    background: color-mix(in srgb, var(--rs-panel-strong) 72%, transparent);
    color: var(--rs-text-soft);
    font: inherit;
    font-weight: 300;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.04);
    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:hover,
.rs-btn:focus,
.btn:hover,
.btn:focus {
    transform: translateY(-1px);
    border-color: var(--rs-border-strong);
    color: var(--rs-text);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.07);
    outline: none;
}

.rs-btn:disabled,
.rs-btn.is-disabled,
.btn:disabled,
.btn.disabled {
    cursor: not-allowed;
    opacity: 0.68;
    transform: none;
    box-shadow: none;
}

.rs-btn-sm,
.btn-sm {
    min-height: 34px;
    padding: 0.42rem 0.72rem;
    font-size: 0.86rem;
}

.rs-btn-icon {
    width: 40px;
    min-width: 40px;
    height: 40px;
    padding: 0;
    aspect-ratio: 1 / 1;
    font-size: 1.08rem;
}

.rs-btn-icon.rs-btn-sm,
.rs-btn-sm.rs-btn-icon,
.btn-sm.rs-btn-icon {
    width: 36px;
    min-width: 36px;
    height: 36px;
    font-size: 1rem;
}

.rs-btn-svg,
.rs-btn-icon svg {
    width: 1.18rem;
    height: 1.18rem;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.85;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rs-btn-icon > span[aria-hidden="true"] {
    display: inline-grid;
    place-items: center;
    font-size: 1.16rem;
    line-height: 1;
}

.rs-btn-icon > .rs-btn-text,
.rs-btn-icon > span:not([aria-hidden="true"]):not(.rs-theme-toggle__icon):not(.rs-app-user-menu__avatar) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.rs-btn-primary,
.btn-primary {
    background: var(--rs-accent-strong);
    border-color: color-mix(in srgb, var(--rs-accent-strong) 72%, transparent);
    color: #fff;
}

.rs-btn-primary:hover,
.rs-btn-primary:focus,
.btn-primary:hover,
.btn-primary:focus {
    background: color-mix(in srgb, var(--rs-accent-strong) 90%, #fff);
    color: #fff;
}

.rs-btn-soft,
.btn-light,
.rs-btn-ghost,
.btn-outline-secondary {
    background: color-mix(in srgb, var(--rs-accent) 5%, rgba(255, 255, 255, 0.66));
    border-color: color-mix(in srgb, var(--rs-accent) 14%, var(--rs-border));
    color: var(--rs-text-soft);
}

.rs-btn-info,
.btn-info {
    background: color-mix(in srgb, #2563eb 14%, rgba(255, 255, 255, 0.70));
    border-color: color-mix(in srgb, #2563eb 34%, var(--rs-border));
    color: #1d4ed8;
}

.rs-btn-success,
.btn-success {
    background: color-mix(in srgb, var(--rs-success) 15%, rgba(255, 255, 255, 0.72));
    border-color: color-mix(in srgb, var(--rs-success) 36%, var(--rs-border));
    color: var(--rs-success);
}

.rs-btn-warning,
.btn-warning {
    background: color-mix(in srgb, var(--rs-warning) 16%, rgba(255, 255, 255, 0.74));
    border-color: color-mix(in srgb, var(--rs-warning) 38%, var(--rs-border));
    color: var(--rs-warning);
}

.rs-btn-danger,
.btn-danger {
    background: color-mix(in srgb, var(--rs-danger) 14%, rgba(255, 255, 255, 0.74));
    border-color: color-mix(in srgb, var(--rs-danger) 36%, var(--rs-border));
    color: var(--rs-danger);
}

.btn-outline-primary,
.rs-btn-outline-primary {
    background: transparent;
    border-color: color-mix(in srgb, var(--rs-accent) 38%, var(--rs-border));
    color: var(--rs-accent);
}

.btn-outline-primary:hover,
.rs-btn-outline-primary:hover,
.btn-outline-primary:focus,
.rs-btn-outline-primary:focus {
    background: var(--rs-accent);
    border-color: var(--rs-accent);
    color: var(--rs-accent-contrast);
}

.rs-inline-actions,
.rs-actions,
.actions,
.rs-action-group,
.rs-row-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.48rem;
}

.rs-actions,
.actions,
.rs-action-group,
.rs-row-actions {
    justify-content: flex-end;
}

.rs-inline-actions--footer {
    margin-top: 1.5rem;
}

.rs-row-actions .rs-btn-icon {
    width: 38px;
    min-width: 38px;
    height: 38px;
    font-size: 1rem;
}

html[data-rs-theme="gelap"] .rs-btn,
html[data-rs-theme="gelap"] .btn {
    background: rgba(255, 255, 255, 0.045);
    border-color: rgba(255, 255, 255, 0.085);
    color: var(--rs-text-soft);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.16);
}

html[data-rs-theme="gelap"] .rs-btn:hover,
html[data-rs-theme="gelap"] .rs-btn:focus,
html[data-rs-theme="gelap"] .btn:hover,
html[data-rs-theme="gelap"] .btn:focus {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.14);
    color: var(--rs-text);
}

html[data-rs-theme="gelap"] .rs-btn-primary,
html[data-rs-theme="gelap"] .btn-primary {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.16);
    color: var(--rs-text);
}

html[data-rs-theme="gelap"] .rs-btn-info,
html[data-rs-theme="gelap"] .btn-info {
    background: rgba(96, 165, 250, 0.12);
    border-color: rgba(96, 165, 250, 0.30);
    color: #93c5fd;
}

html[data-rs-theme="gelap"] .rs-btn-success,
html[data-rs-theme="gelap"] .btn-success {
    background: rgba(125, 211, 192, 0.12);
    border-color: rgba(125, 211, 192, 0.30);
    color: var(--rs-success);
}

html[data-rs-theme="gelap"] .rs-btn-warning,
html[data-rs-theme="gelap"] .btn-warning {
    background: rgba(240, 195, 106, 0.12);
    border-color: rgba(240, 195, 106, 0.30);
    color: var(--rs-warning);
}

html[data-rs-theme="gelap"] .rs-btn-danger,
html[data-rs-theme="gelap"] .btn-danger {
    background: rgba(241, 154, 178, 0.12);
    border-color: rgba(241, 154, 178, 0.30);
    color: var(--rs-danger);
}

.tooltip {
    --bs-tooltip-border-radius: 0;
    --bs-tooltip-opacity: .94;
    font-weight: 300;
    letter-spacing: .01em;
}
