.button {
    border-radius: var(--borderRadiusFull, 99999px);
    border: 0;
    font-weight: 500;
    padding: 2px 24px;
}

.button.button-outline {
    padding: 5px 24px;
    height: calc(var(--textNormalSize, 16px)*3);
}

/* Default */
.button.button-default.active,
.button.button-default:active,
.button.button-default:focus,
.button.button-default:hover {
    color: var(--textColorDefault40, #ffffff);
    background: var(--colorDefault30, #7c8ec8);
}

/* Positive */
.button.button-positive {
    background: transparent;
    border: 1px solid var(--colorPrimary40, #1351b4);
}

.button.button-positive span,
.button.button-positive i {
    color: var(--colorPrimary40, #1351b4);
}

.button.button-positive.active,
.button.button-positive:active,
.button.button-positive:focus,
.button.button-positive:hover {
    background: var(--colorPrimary10, #d6daeb);
    border: 1px solid var(--colorPrimary40, #1351b4);
}

.button.button-positive:active i,
.button.button-positive:active span,
.button.button-positive.activated i,
.button.button-positive.activated span {
    color: var(--colorPrimary40, #1351b4);
}

/* Balanced */
.button.button-balanced.active,
.button.button-balanced:active,
.button.button-balanced:focus,
.button.button-balanced:hover {
    color: var(--textColorSuccess40, #ffffff);
    background: var(--colorSuccess30, #8ac389);
}

/* energized */
.button.button-energized.active,
.button.button-energized:active,
.button.button-energized:focus,
.button.button-energized:hover {
    color: var(--textColorWarning40, #ffffff);
    background: var(--colorWarning30, #fbce7c);
}

/* assertive */
.button.button-assertive.active,
.button.button-assertive:active,
.button.button-assertive:focus,
.button.button-assertive:hover {
    color: var(--textColorDanger40, #ffffff);
    background: var(--colorDanger30, #eb7f7b);
}

/* royal */
.button.button-royal.active,
.button.button-royal:active,
.button.button-royal:focus,
.button.button-royal:hover {
    color: var(--textColorRoyal40, #ffffff);
    background: var(--colorRoyal30, #a594ee);
}

/* dark */
.button.button-dark.active,
.button.button-dark:active,
.button.button-dark:focus,
.button.button-dark:hover {
    color: var(--textColorDark40, #ffffff);
    background: var(--colorDark30, #898989);
}

/* Calm */
.button.button-calm {
    background: var(--colorCalm40, #11c1f3);
    color: var(--textColorCalm40, #383838);
}

.button.button-calm.active,
.button.button-calm:active,
.button.button-calm:focus,
.button.button-calm:hover {
    color: var(--textColorCalm40, #383838);
    background: var(--colorCalm50, #0fa9d5);
}

/* Stable */
.button.button-stable {
    background: var(--colorStable40, #f8f8f8);
    color: var(--textColorStable40, #444444);
}

.button.button-stable.active,
.button.button-stable:active,
.button.button-stable:focus,
.button.button-stable:hover {
    color: var(--textColorStable40, #444444);
    background: var(--colorStable50, #c2c2c2);
}

/* Light */
.button.button-light {
    background: var(--colorLight40, #ffffff);
    color: var(--textColorLight40, #000000);
}

.button.button-light.active,
.button.button-light:active,
.button.button-light:focus,
.button.button-light:hover {
    background: var(--colorLight40, #ffffff);
    color: var(--textColorLight40, #000000);
}

.button.button-light span,
.button.button-light i {
    color: var(--textColorLight40, #000000);
}

/* Link */
.button.button-link {
    background: transparent;
    border: none;
}

.button.button-link i,
.button.button-link span {
    color: var(--colorPrimary40, #4f46e5);
}

.button.button-link.active,
.button.button-link:active {
    box-shadow: inset 0 3px 5px rgb(0 0 0 / 13%);
}

.button.button-link.disabled,
.button.button-link[disabled]:hover {
    color: var(--colorPrimary40, #1351b4);
}

.button.button-link:focus,
.button.button-link:hover {
    color: var(--colorPrimary40, #1351b4);
    text-decoration: underline;
    background: transparent;
}

.button.button-link:focus i,
.button.button-link:hover i {
    text-decoration: none;
}

/* Light - Outline */

.button.button-light.button-outline {
    border-color: var(--colorLight50, #dfdfdf);
}

.button.button-light.button-outline span,
.button.button-light.button-outline i {
    color: var(--colorLight50, #dfdfdf);
}

.button.button-light.button-outline:active,
.button.button-light.button-outline.activated {
    background: var(--colorLight50, #dfdfdf);
}

/* Stable - Outline */
.button.button-stable.button-outline {
    border-color: var(--colorStable50, #d9d9d9);
}

.button.button-stable.button-outline span,
.button.button-stable.button-outline i {
    color: var(--colorStable50, #d9d9d9);
}

.button.button-stable.button-outline:active,
.button.button-stable.button-outline.activated {
    background: var(--colorStable50, #d9d9d9);
}

/* Colors */
.button span.default,
.button i.default {
    color: var(--textColorDefault40, #ffffff);
}

.button span.light,
.button i.light {
    color: var(--colorPrimary40, #1351b4);
}

.button span.stable,
.button i.stable {
    color: var(--textColorStable40, #f8f8f8);
}

.button span.positive,
.button i.positive {
    color: var(--colorPrimary40, #1351b4);
}

.button span.calm,
.button i.calm {
    color: var(--textColorCalm40, #ffffff);
}

.button span.assertive,
.button i.assertive {
    color: var(--textColorDanger40, #ffffff);
}

.button span.balanced,
.button i.balanced {
    color: var(--textColorSuccess40, #ffffff);
}

.button span.energized,
.button i.energized {
    color: var(--textColorWarning40, #ffffff);
}

.button span.royal,
.button i.royal {
    color: var(--textColorRoyal40, #ffffff);
}

.button span.dark,
.button i.dark {
    color: var(--textColorDark40, #ffffff);
}