:root {
    --btn-text-strong: #3d3143;
    --btn-text-soft: #6b5a67;
    --btn-border-soft: rgba(132, 101, 130, 0.24);
    --btn-border-strong: rgba(106, 77, 122, 0.38);
    --btn-bg-soft: rgba(255, 255, 255, 0.9);
    --btn-shadow-soft: 0 14px 30px rgba(148, 102, 130, 0.18);
    --btn-shadow-strong: 0 18px 34px rgba(177, 118, 148, 0.26);
    --btn-gradient-primary: linear-gradient(130deg, #ffc6d5 0%, #ffdcbf 42%, #d7cbff 100%);
    --btn-gradient-primary-hover: linear-gradient(130deg, #ffbfd0 0%, #ffd6b5 42%, #cdc0ff 100%);
    --btn-gradient-disabled: linear-gradient(130deg, #fde2e8 0%, #fcebdc 42%, #ebe5fb 100%);
}

body .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    border-radius: 999px;
    font-weight: 800;
    letter-spacing: -0.01em;
    transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

body .btn:hover,
body .btn:focus {
    transform: translateY(-1px);
    text-decoration: none;
}

body .btn:focus,
body .btn.focus {
    box-shadow: 0 0 0 0.18rem rgba(177, 129, 170, 0.22);
}

body .btn-primary {
    color: var(--btn-text-strong);
    background: var(--btn-gradient-primary);
    background-color: transparent;
    border-color: rgba(163, 131, 182, 0.22);
    box-shadow: var(--btn-shadow-strong);
}

body .btn-primary:hover,
body .btn-primary:focus,
body .btn-primary.focus {
    color: #31253a;
    background: var(--btn-gradient-primary-hover);
    background-color: transparent;
    border-color: rgba(132, 101, 130, 0.34);
    box-shadow: 0 20px 36px rgba(177, 118, 148, 0.3);
}

body .btn-primary:not(:disabled):not(.disabled):active,
body .btn-primary:not(:disabled):not(.disabled).active,
.show > body .btn-primary.dropdown-toggle,
body .show > .btn-primary.dropdown-toggle {
    color: #2e2234;
    background: linear-gradient(130deg, #f9b9c9 0%, #f8d1ab 42%, #c7b8ff 100%);
    background-color: transparent;
    border-color: rgba(122, 92, 136, 0.44);
    box-shadow: 0 12px 22px rgba(177, 118, 148, 0.22);
}

body .btn-outline-secondary,
body .btn-ghost {
    color: var(--btn-text-soft);
    background: var(--btn-bg-soft);
    background-color: var(--btn-bg-soft);
    border-color: var(--btn-border-soft);
    box-shadow: var(--btn-shadow-soft);
}

body .btn-outline-secondary:hover,
body .btn-outline-secondary:focus,
body .btn-ghost:hover,
body .btn-ghost:focus {
    color: #493b4b;
    background: #fff7fb;
    background-color: #fff7fb;
    border-color: var(--btn-border-strong);
    box-shadow: 0 16px 28px rgba(128, 96, 126, 0.18);
}

body .btn-outline-secondary:not(:disabled):not(.disabled):active,
body .btn-outline-secondary:not(:disabled):not(.disabled).active,
body .btn-ghost:not(:disabled):not(.disabled):active,
body .btn-ghost:not(:disabled):not(.disabled).active {
    color: #3f3242;
    background: #f7eef4;
    background-color: #f7eef4;
    border-color: rgba(122, 92, 136, 0.44);
}

body .btn.disabled,
body .btn:disabled {
    opacity: 1;
    cursor: not-allowed;
    transform: none;
}

body .btn-primary.disabled,
body .btn-primary:disabled {
    color: #7a6b79;
    background: var(--btn-gradient-disabled);
    background-color: transparent;
    border-color: rgba(179, 156, 190, 0.32);
    box-shadow: none;
}

body .btn-outline-secondary.disabled,
body .btn-outline-secondary:disabled,
body .btn-ghost.disabled,
body .btn-ghost:disabled {
    color: #988a97;
    background: rgba(255, 255, 255, 0.72);
    background-color: rgba(255, 255, 255, 0.72);
    border-color: rgba(167, 147, 166, 0.26);
    box-shadow: none;
}
