.btn {
    border-radius: 0.85rem;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease,
        background-color 0.18s ease,
        color 0.18s ease;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
}

.btn:hover,
.btn:focus {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.1);
}

.btn:focus,
.btn.focus {
    outline: none;
    box-shadow:
        0 0 0 0.2rem color-mix(in srgb, var(--ff-primary) 18%, transparent),
        0 12px 24px rgba(15, 23, 42, 0.1);
}

.btn:disabled,
.btn.disabled {
    transform: none;
    box-shadow: none;
}

.btn-sm,
.btn-group-sm > .btn {
    border-radius: 0.78rem;
}

.btn-primary,
.btn-success,
.btn-info,
.btn-danger,
.btn-warning,
.btn-secondary {
    border-color: transparent;
}

.btn-light,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-success,
.btn-outline-info,
.btn-outline-danger,
.btn-outline-warning {
    background: color-mix(in srgb, var(--ff-surface) 92%, transparent);
    backdrop-filter: blur(4px);
}

.btn-outline-primary {
    border-color: rgba(13, 110, 253, 0.28);
}

.btn-outline-secondary {
    border-color: rgba(108, 117, 125, 0.28);
}

.btn-outline-success {
    border-color: rgba(25, 135, 84, 0.28);
}

.btn-outline-info {
    border-color: rgba(13, 202, 240, 0.28);
}

.btn-outline-danger {
    border-color: rgba(220, 53, 69, 0.28);
}

.btn-outline-warning {
    border-color: rgba(255, 193, 7, 0.3);
}

.btn-light {
    color: var(--ff-text);
    background: var(--ff-surface-muted);
    border-color: var(--ff-border);
}

.btn-light:hover,
.btn-light:focus {
    color: var(--ff-text);
    border-color: var(--ff-primary);
    background: var(--ff-primary-soft);
}

.input-group > .btn,
.input-group-append > .btn {
    position: relative;
    z-index: 2;
}

[data-theme="escuro"] .btn-outline-secondary {
    color: #b4bdc9;
    border-color: #7f8997;
}

[data-theme="escuro"] .btn-outline-success {
    color: #77cf9d;
    border-color: #4da875;
}

[data-theme="escuro"] .btn-outline-info {
    color: #78cfe8;
    border-color: #479bb4;
}

[data-theme="escuro"] .btn-outline-warning {
    color: #e5bd68;
    border-color: #af873b;
}

[data-theme="escuro"] .btn-outline-danger {
    color: #f28b96;
    border-color: #bd5a65;
}

[data-theme="escuro"] .btn-outline-secondary:hover,
[data-theme="escuro"] .btn-outline-secondary:focus,
[data-theme="escuro"] .btn-outline-secondary:active,
[data-theme="escuro"] .btn-outline-secondary.active,
[data-theme="escuro"] .show > .btn-outline-secondary.dropdown-toggle {
    color: #ffffff;
    background-color: #6c757d;
    border-color: #6c757d;
}

[data-theme="escuro"] .btn-outline-success:hover,
[data-theme="escuro"] .btn-outline-success:focus,
[data-theme="escuro"] .btn-outline-success:active,
[data-theme="escuro"] .btn-outline-success.active,
[data-theme="escuro"] .show > .btn-outline-success.dropdown-toggle {
    color: #ffffff;
    background-color: #198754;
    border-color: #198754;
}

[data-theme="escuro"] .btn-outline-info:hover,
[data-theme="escuro"] .btn-outline-info:focus,
[data-theme="escuro"] .btn-outline-info:active,
[data-theme="escuro"] .btn-outline-info.active,
[data-theme="escuro"] .show > .btn-outline-info.dropdown-toggle {
    color: #202630;
    background-color: #78cfe8;
    border-color: #78cfe8;
}

[data-theme="escuro"] .btn-outline-warning:hover,
[data-theme="escuro"] .btn-outline-warning:focus,
[data-theme="escuro"] .btn-outline-warning:active,
[data-theme="escuro"] .btn-outline-warning.active,
[data-theme="escuro"] .show > .btn-outline-warning.dropdown-toggle {
    color: #202630;
    background-color: #e5bd68;
    border-color: #e5bd68;
}

[data-theme="escuro"] .btn-outline-danger:hover,
[data-theme="escuro"] .btn-outline-danger:focus,
[data-theme="escuro"] .btn-outline-danger:active,
[data-theme="escuro"] .btn-outline-danger.active,
[data-theme="escuro"] .show > .btn-outline-danger.dropdown-toggle {
    color: #ffffff;
    background-color: #c63f4d;
    border-color: #c63f4d;
}
