.border-ok {
    border: 5px solid transparent!important;
}
.border-warning {
    border: 5px solid rgba(255,152,0,1)!important;
}
.border-error {
    border: 5px solid rgba(244,67,54,1)!important;
}

.blinking-border-ok {
    animation-name: blinking-border;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    border: 5px solid transparent;
}
.blinking-border-warning {
    animation-name: blinking-border;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    border: 5px solid rgba(255,152,0,1);
}
.blinking-border-error {
    animation-name: blinking-border;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    border: 5px solid rgba(244,67,54,1);
}
@keyframes blinking-border {
    50% {
        border: 5px solid transparent;
    }
}

@keyframes flash {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

@keyframes ping {
    75%, 100% {
        transform: scale(2);
        opacity: 0;
    }
}

@keyframes blinker {
    50% { opacity: 0.5; }
}

@keyframes border-blinker {
    50% { border-color: transparent; }
}