.alert {
    position: relative;
    padding: 0.75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
}

.alert-heading {
    color: inherit;
}

.alert-link {
    font-weight: 700;
}

.alert-dismissible {
    padding-right: 4rem;
}

.alert-dismissible .close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0.75rem 1.25rem;
    color: inherit;
}

.alert-primary {
    color: #081529;
    background-color: #cfd4dc;
    border-color: #bcc3cd;
}

.alert-primary hr {
    border-top-color: #adb6c2;
}

.alert-primary .alert-link {
    color: black;
}

.alert-secondary {
    color: #196953;
    background-color: #d6f4ec;
    border-color: #c5f0e4;
}

.alert-secondary hr {
    border-top-color: #b1ebdb;
}

.alert-secondary .alert-link {
    color: #0f4032;
}

.alert-success {
    color: #11694f;
    background-color: #d2f4ea;
    border-color: #c1f0e2;
}

.alert-success hr {
    border-top-color: #acebd8;
}

.alert-success .alert-link {
    color: #0a3d2e;
}

.alert-info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
}

.alert-info hr {
    border-top-color: #abdde5;
}

.alert-info .alert-link {
    color: #062c33;
}

.alert-warning {
    color: #856404;
    background-color: #fff3cd;
    border-color: #ffeeba;
}

.alert-warning hr {
    border-top-color: #ffe8a1;
}

.alert-warning .alert-link {
    color: #533f03;
}

.alert-danger {
    color: #792424;
    background-color: #fbdada;
    border-color: #f9cbcb;
}

.alert-danger hr {
    border-top-color: #f6b4b4;
}

.alert-danger .alert-link {
    color: #521818;
}

.alert-light {
    color: #818182;
    background-color: #fefefe;
    border-color: #fdfdfe;
}

.alert-light hr {
    border-top-color: #ececf6;
}

.alert-light .alert-link {
    color: #686868;
}

.alert-dark {
    color: #1b1e21;
    background-color: #d6d8d9;
    border-color: #c6c8ca;
}

.alert-dark hr {
    border-top-color: #b9bbbe;
}

.alert-dark .alert-link {
    color: #040505;
}

.fade {
    transition: opacity 0.15s linear;
}

@media screen and (prefers-reduced-motion: reduce) {
    .fade {
        transition: none;
    }
}

.fade:not(.show) {
    opacity: 0;
}