.btn {
    border-radius: 1rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
    padding: 0.72rem 1.35rem;
    font-weight: 600;
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus {
    box-shadow: 0 0 0 0.2rem var(--ecs-color-focus);
}

.btn-primary,
.btn-primary-ecs,
.btn-ecs-save {
    color: var(--ecs-color-surface);
    background-color: var(--ecs-color-primary);
    border-color: var(--ecs-color-primary-border);
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn-primary-ecs:hover,
.btn-primary-ecs:focus-visible,
.btn-ecs-save:hover,
.btn-ecs-save:focus-visible {
    color: var(--ecs-color-surface);
    background-color: var(--ecs-color-primary-border);
    border-color: #9E254F;
    text-decoration: none;
    box-shadow: 0 0.5rem 1rem rgba(206, 50, 105, 0.18);
    transform: translateY(-1px);
}

.btn-primary-ecs:active,
.btn-ecs-save:active {
    color: var(--ecs-color-surface) !important;
    background-color: var(--ecs-color-primary-border) !important;
    border-color: #9E254F !important;
    transform: translateY(0);
    box-shadow: none;
}

.btn-outline-ecs {
    color: var(--ecs-color-primary);
    border-color: var(--ecs-color-primary);
    background-color: transparent;
}

.btn-outline-ecs:hover,
.btn-outline-ecs:focus-visible {
    color: var(--ecs-color-surface);
    background-color: var(--ecs-color-primary);
    border-color: var(--ecs-color-primary);
    box-shadow: 0 0.85rem 1.8rem rgba(206, 50, 105, 0.2);
    transform: translateY(-1px) scale(1.02);
}

.btn-tertiary,
.btn-ecs-info-solid {
    color: var(--ecs-color-surface);
    background-color: var(--ecs-color-tertiary);
    border-color: var(--ecs-color-tertiary-border);
}

.btn-tertiary:hover,
.btn-tertiary:focus-visible,
.btn-ecs-info-solid:hover,
.btn-ecs-info-solid:focus-visible {
    background-color: var(--ecs-color-tertiary-border) !important;
    border-color: #545b62 !important;
    color: var(--ecs-color-surface) !important;
    box-shadow: 0 0.85rem 1.8rem rgba(108, 117, 125, 0.18);
    transform: translateY(-1px) scale(1.02);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
    transform: translateY(-1px) scale(1.02);
}

.btn-ecs-info-solid {
    min-width: 55px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px !important;
    border-radius: 1rem !important;
}

.btn-ecs-delete {
    background-color: #e35d6a;
    border: 1px solid #d44c59;
    color: #fff;
}

.btn-ecs-delete:hover,
.btn-ecs-delete:focus-visible {
    background-color: #c82333;
    border-color: #bd2130;
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 0.5rem 1rem rgba(200, 35, 51, 0.15);
}

.btn-ecs-delete:active {
    background-color: #bd2130 !important;
    border-color: #a71d2a !important;
    color: #fff !important;
    transform: translateY(0);
    box-shadow: none;
}

.btn-ecs-back {
    background-color: var(--ecs-color-surface-soft);
    border: 1px solid var(--ecs-color-border);
    color: var(--ecs-color-text);
}

.btn-ecs-back:hover {
    background-color: #dddadd;
    border-color: var(--ecs-color-primary);
    color: var(--ecs-color-primary);
    transform: translateY(-1px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05);
}