.pulse {
    overflow: visible;
    position: relative;
}

i.pulse:before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}

i.pulse {
    width: 1.5rem;
    height: 1.5rem;
}

.pulse:after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border-radius: 50%;
    transition: opacity .3s, transform .3s;
    animation: pulse-animation 1.5s cubic-bezier(0.24, 0, 0.38, 1) infinite;
    z-index: 0;
}

@keyframes pulse-animation {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0;
        transform: scale(1.5);
    }
    100% {
        opacity: 0;
        transform: scale(1.5);
    }
}

.pulse-warning:after{
    background-color: rgb(255, 193, 7);
}

.enabledDot.active {
    color : greenyellow;
}

.enabledDot.active::before {
    box-shadow: 0 0 8px greenyellow;
    border-radius: 50%;
}

.enabledDot.inactive {
    color : red;
}

.enabledDot.inactive::before {
    box-shadow: 0 0 8px red;
    border-radius: 50%;
}

.enabledDot {
    overflow: visible;
    position: relative;
}

.enabledDot:hover {
    cursor: pointer;
}

i.enabledDot:before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}

i.enabledDot {
    width: 1.5rem;
    height: 1.5rem;
}

i.enabledDot.shake {
    animation: shake 0.5s;
    animation-iteration-count: 1;
}

@keyframes shake {
    0% { transform: translate(1px, 0); }
    10% { transform: translate(-1px, 0); }
    20% { transform: translate(-3px, 0px); }
    30% { transform: translate(3px, 0); }
    40% { transform: translate(1px, 0); }
    50% { transform: translate(-1px, 0); }
    60% { transform: translate(-3px, 0); }
    70% { transform: translate(3px, 0); }
    80% { transform: translate(-1px, 0x); }
    90% { transform: translate(1px, 0); }
    100% { transform: translate(1px, 0); }
  }