body { 
    margin: 0; 
    padding-bottom: 3rem; 
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; 
}

#form { 
    background: rgba(0, 0, 0, 0.15); 
    padding: 0.25rem; 
    position: fixed; 
    bottom: 0; 
    left: 0; 
    right: 0; 
    display: flex; 
    height: 3rem; 
    box-sizing: border-box; 
    backdrop-filter: blur(10px); 
}

#input { 
    border: none; 
    padding: 0 1rem; 
    flex-grow: 1; 
    border-radius: 2rem; 
    margin: 0.25rem; 
}

#input:focus { 
    outline: none; 
}

#form > button { 
    background: #333; 
    border: none; 
    padding: 0 1rem; 
    margin: 0.25rem; 
    border-radius: 3px; 
    outline: none; 
    color: #fff; 
}

#messages { 
    list-style-type: none; 
    margin: 0; 
    padding: 0; 
}

#messages > li { 
    padding: 0.5rem 1rem; 
}

#messages > li:nth-child(odd) { 
    background: #efefef; 
}

#messages > p.connection {
    text-align: center;
    background: #00FF00;
    margin: 0 0 0 0;
    border: 1px solid #333;
}

#messages > p.disconnection {
    text-align: center;
    background: #FF0000;
    margin: 0 0 0 0;
    border: 1px solid #333;
}

.typing {
    align-items: center;
    display: flex;
    height: 17px;
}
.typing .dot {
    animation: mercuryTypingAnimation 1.8s infinite ease-in-out;
    background-color: #6CAD96;
    border-radius: 50%;
    height: 7px;
    margin-right: 4px;
    vertical-align: middle;
    width: 7px;
    display: inline-block;
}
.typing .dot:nth-child(1) {
    animation-delay: 200ms;
}
.typing .dot:nth-child(2) {
    animation-delay: 300ms;
}
.typing .dot:nth-child(3) {
    animation-delay: 400ms;
}
.typing .dot:last-child {
    margin-right: 0;
}

@keyframes mercuryTypingAnimation {
    0% {
        transform: translateY(0px);
        background-color:#6CAD96;
    }
    28% {
        transform: translateY(-7px);
        background-color:#9ECAB9;
    }
    44% {
        transform: translateY(0px);
        background-color: #B5D9CB;
    }
}