@keyframes reconnected {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(2.5rem);
    }
}

#reconnecting {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;

    font-size: 1.2em;
    font-weight: bold;
    position: fixed;
    background: #cc3333;
    color: #fff;
    bottom: 0;
    left: 0;
    height: 2.5rem;
    padding: 1rem 1rem 1rem 1rem;
    border-top-right-radius: 3px;
    z-index: 105;
    opacity: 0;
    transform: translateY(2.5rem);
}

#reconnecting::before {
    font-size: 1.3em;
    content: 'p';
    margin-right: 0.4em;
}

#reconnecting::after {
    font-size: 1.3em;
    /*margin-right: 0.4em;*/
}

.offline #reconnecting,
.offline-close #reconnecting,
.offline-ping-timeout #reconnecting,
.offline-creating-socket #reconnecting,
.offline-reconnecting-in #reconnecting{
    transform: translateY(0);
    opacity: 1;
}

.offline-socket-error #reconnecting{
    background: #000000;
    transform: translateY(0);
    opacity: 1;
}

.online.reconnected #reconnecting {
    background: #629924;
    animation: reconnected 2.5s ease-out 1.5s backwards;
}

.online.reconnected #reconnecting::before {
    content: '?';
}

.online.reconnected #reconnecting::after {
    content: 'Reconnected';
}
.offline #reconnecting::after {
    content: 'Offline';
}
.offline-close #reconnecting::after {
    content: 'Closed';
}
.offline-ping-timeout #reconnecting::after {
    content: 'Ping timeout';
}
.offline-creating-socket #reconnecting::after {
    content: 'Trying to reconnect';
}
.offline-socket-error #reconnecting::after {
    content: 'Connection error';
}
.offline-reconnecting-in #reconnecting info-date::before {
    content: 'Reconnecting ';
}