button,
.button {
    background: var(--colorDefault40, #3b448e);
    text-align: center;
    color: var(--textColorDefault40, #ffffff);
    border: 0;
    transition: all 0.4s;
}

.button span {
    font-weight: 500;
}

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

.button.button-outline span,
.button.button-outline i {
    color: var(--colorDefault40, #3b448e);
    font-weight: 400;
}

.button.button-outline {
    border: 1px solid;
    background-image: none;
}

.button-custom {
    display: block;
    margin-top: 10px;
    margin-bottom: 10px;
}

/* Theme default */
.button.button-default {
    background: var(--colorDefault40, #3b448e);
}

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

.button.button-default:active,
.button.button-default.active,
.button.button-default.activated {
    background: var(--colorDefault60, #2b3268);
}

.button.button-default:active i,
.button.button-default:active span,
.button.button-default.activated i,
.button.button-default.activated span {
    color: var(--textColorDefault40, #ffffff);
}

/* Theme default - Outline */
.button.button-default.button-outline {
    border-color: var(--colorDefault40, #3b448e);
    background: transparent;
}

.button.button-default.button-outline span,
.button.button-default.button-outline i {
    color: var(--colorDefault40, #3b448e);
}

.button.button-default.button-outline:active,
.button.button-default.button-outline.activated {
    background: var(--colorDefault40, #3b448e);
}

.button.button-default.button-outline:active span,
.button.button-default.button-outline.activated span,
.button.button-default.button-outline:active i,
.button.button-default.button-outline.activated i {
    color: var(--textColorDefault40, #ffffff);
}

/* Positive */
.button.button-positive {
    background: var(--colorPrimary40, #387ef5);
}

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

.button.button-positive:active,
.button.button-positive.activated {
    background: var(--colorPrimary60, #387ef5);
}

.button.button-positive:active i,
.button.button-positive:active span,
.button.button-positive.activated i,
.button.button-positive.activated span {
    color: var(--textColorPrimary60);
}

/* Positive - Outline */

.button.button-positive.button-outline {
    border-color: var(--colorPrimary40, #387ef5);
}

.button.button-positive.button-outline span,
.button.button-positive.button-outline i {
    color: var(--colorPrimary40, #387ef5);
}

.button.button-positive.button-outline:active,
.button.button-positive.button-outline.activated {
    background: var(--colorPrimary40, #387ef5);
}

.button.button-positive.button-outline:active span,
.button.button-positive.button-outline.activated span,
.button.button-positive.button-outline:active i,
.button.button-positive.button-outline.activated i {
    color: var(--textColorPrimary40, #ffffff);
}

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

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

.button.button-calm:active,
.button.button-calm.activated {
    background: var(--colorCalm60, #0c8db2);
}

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

/* Calm - Outline */
.button.button-calm.button-outline {
    border-color: var(--colorCalm40, #11c1f3);
}

.button.button-calm.button-outline span,
.button.button-calm.button-outline i {
    color: var(--colorCalm40, #11c1f3);
}

.button.button-calm.button-outline:active,
.button.button-calm.button-outline.activated {
    background: var(--colorCalm40, #11c1f3);
}

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

/* Assertive */
.button.button-assertive {
    background: var(--colorDanger40, #ef473a);
}

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

.button.button-assertive:active,
.button.button-assertive.activated {
    background: var(--colorDanger60);
}

.button.button-assertive:active i,
.button.button-assertive:active span,
.button.button-assertive.activated i,
.button.button-assertive.activated span {
    color: var(--textColorDanger60);
}


/* Assertive - Outline */

.button.button-assertive.button-outline {
    border-color: var(--colorDanger40, #ef473a);
}

.button.button-assertive.button-outline span,
.button.button-assertive.button-outline i {
    color: var(--colorDanger40, #ef473a);
}

.button.button-assertive.button-outline:active,
.button.button-assertive.button-outline.activated {
    background: var(--colorDanger40, #ef473a);
}

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

/* Energized */
.button.button-energized {
    background: var(--colorWarning40, #ffc900);
}

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

.button.button-energized:active,
.button.button-energized.activated {
    background: var(--colorWarning60);
}

.button.button-energized:active i,
.button.button-energized:active span,
.button.button-energized.activated i,
.button.button-energized.activated span {
    color: var(--textColorWarning60);
}

/* Energized - Outline */

.button.button-energized.button-outline {
    border-color: var(--colorWarning40, #ffc900);
}

.button.button-energized.button-outline span,
.button.button-energized.button-outline i {
    color: var(--colorWarning40, #ffc900);
}

.button.button-energized.button-outline:active,
.button.button-energized.button-outline.activated {
    background: var(--colorWarning40, #ffc900);
}

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

/* Balanced */
.button.button-balanced {
    background: var(--colorSuccess40, #33cd5f);
}

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

.button.button-balanced:active,
.button.button-balanced.activated {
    background: var(--colorSuccess60, #259646);
}

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

/* Balanced - Outline */

.button.button-balanced.button-outline {
    border-color: var(--colorSuccess40, #33cd5f);
}

.button.button-balanced.button-outline span,
.button.button-balanced.button-outline i {
    color: var(--colorSuccess40, #33cd5f);
}

.button.button-balanced.button-outline:active,
.button.button-balanced.button-outline.activated {
    background: var(--colorSuccess40, #33cd5f);
}

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

/* Royal */
.button.button-royal {
    background: var(--colorRoyal40, #3b448e);
}

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

.button.button-royal:active,
.button.button-royal.activated {
    background: var(--colorRoyal60, #644eab);
}

.button.button-royal:active i,
.button.button-royal:active span,
.button.button-royal.activated i,
.button.button-royal.activated span {
    color: var(--textColorRoyal60, #644eab);
}

/* Royal - Outline */
.button.button-royal.button-outline {
    border-color: var(--colorRoyal40, #3b448e);
}

.button.button-royal.button-outline span,
.button.button-royal.button-outline i {
    color: var(--colorRoyal40, #3b448e);
}

.button.button-royal.button-outline:active,
.button.button-royal.button-outline.activated {
    background: var(--colorRoyal40, #3b448e);
}

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

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

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

.button.button-light:active,
.button.button-light.activated {
    background: var(--colorLight60, #bbbbbb);
    color: var(--textColorLight60, #b5b5b5);
}

/* Light - Outline */

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

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

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

.button.button-light.button-outline:active span,
.button.button-light.button-outline.activated span,
.button.button-light.button-outline:active i,
.button.button-light.button-outline.activated i {
    color: var(--textColorLight40, #444444);
}

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

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

.button.button-stable:active,
.button.button-stable.activated {
    background: var(--colorStable60, #b6b6b6);
    color: var(--textColorStable60, #b5b5b5);
}

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

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

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

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

/* Dark */
.button.button-dark {
    background: var(--colorDark40, #444444);
}

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

.button.button-dark:active,
.button.button-dark.activated {
    background: var(--colorDark70, #252525);
}

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

/* Dark - Outline */
.button.button-dark.button-outline {
    border-color: var(--colorDark40, #444444);
}

.button.button-dark.button-outline span,
.button.button-dark.button-outline i {
    color: var(--colorDark40, #444444);
}

.button.button-dark.button-outline:active,
.button.button-dark.button-outline.activated {
    background: var(--colorDark40, #444444);
}

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

/* Clear */
.button-clear {
    background: transparent;
}

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

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

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

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

.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);
}
