.alert {
    position: relative;
    margin-top: 0.75rem;
    margin-bottom: 1.5rem;
    padding: 12px 15px;
    border-radius: 3px;
    font-size: 1.2rem;
    line-height: 1.5;
    text-shadow: 1px 1px rgba(255, 255, 255, 0.35);
}
/** remove espacamento superior no "primeiro filho" e inferior "ultimo filho" de .alert */
.alert > *:first-child {
    margin-top: 0;
    padding-top: 0;
}
.alert > *:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
}
.alert a {
    text-shadow: none;
}
.alert hr {
    background-color: transparent;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
    margin: 10px 0;
}
.alert.success {
    background-image: linear-gradient(to bottom, #01EBFF 5%, #00A4B3 95%);
    border: 2px solid #01EBFF;
    border-image: linear-gradient(to bottom, #00A4B3, #01EBFF, #01EBFF, #007580);
    border-image-slice: 2;
    color: #00171A;
}
.alert.warning {
    background-image: linear-gradient(to bottom, #E4D100 5%, #B3A400 95%);
    border: 2px solid #C1B700;
    border-image: linear-gradient(to bottom, #B3A400, #E4D100, #E4D100, #7E7300);
    border-image-slice: 2;
    color: #1A1700;
}
.alert.error {
    background-image: linear-gradient(to bottom, #FF0000 5%, #B30000 95%);
    border: 2px solid #DE0C02;
    border-image: linear-gradient(to bottom, #B30000, #FF0000, #FF0000, #800000);
    border-image-slice: 2;
    color: #1A0000;
}
.alert.success a {
    color: #000080;
    text-shadow: 0 0 1px blue, 1px 1px rgba(255, 255, 255, 0.60);
}
.alert.warning a {
    color: #685F00;
    text-shadow: 0 0 1px #8A852C, 1px 1px rgba(255, 255, 0, 0.60);
}
.alert.error a {
    text-shadow: 0 0 1px #B30000, 1.5px 1.5px rgba(255, 255, 255, 0.22);
}