:root {
  --bg-dark: #242423;
  --bg-light: #333533;
  --fg-light: #E8EDDF;
  --callout: rgb(255, 255, 102);
  --callout-dark: #101010;
}

* {
    font-size: 14px;
}

html, body, main {
    background-color: var(--bg-dark);
    color: #fff;
    font-family: "Inter", Arial, Helvetica, sans-serif, "Noto Color Emoji";
    font-weight: 400;
    text-shadow: rgb(77, 81, 86) 0px 0px 0px;
    height: 100%;
}

main {
    display: flex;
}

button:hover:not(.active) {
    filter: brightness(1.15);
    cursor: pointer;
}

#sidebar {
    flex: 3 30%;
    display: flex;
    flex-direction: column;
    overflow: auto;
    background-color: var(--bg-light);
}

#room-list {
    display: flex;
    flex-direction: column;
    overflow: auto;
    flex: 1;
}

#sidebar button {
    height: 40px;
    margin-bottom: 1px;
    background: var(--bg-light);
    color: #fff;
    overflow: hidden;
}

#sidebar button.active {
    background: var(--bg-dark);
    color: var(--callout);
    font-weight: bold;
    box-shadow: 0px 2px 2px rgba(0,0,0,0.9);
    z-index: 10;
}

#content {
    flex: 7 100%;
    overflow: auto;
    display: flex;
    flex-direction: column;
}

.message {
    display: flex;
    flex-direction: column;
    padding: 10px 0;
}

.message:last-child {
    padding-bottom: 20px;
}

.message .username {
    font-weight: bold;
    padding-bottom: 5px;
    color: var(--callout);
}

#messages {
    padding: 10px 20px;
    flex: 1;
}

form#new-message {
    bottom: 0;
    position: sticky;
    flex: 0 0 auto;
    width: 100%;
}

form {
    display: flex;
    border-top: 2px solid #242424;
}

form * {
    height: 40px;
    background: var(--fg-light);
    color: var(--bg-dark);
}

input {
    padding: 0 10px;
}

input:focus {
    outline: 0;
    filter: brightness(1.05);
}

input#username {
    text-align: right;
    flex: 1 25%;
    width: 25%;
    border-right: 1px solid #303030;
}

input#message {
    flex: 10 100%;
}

form button {
    padding: 0 10px;
}

#sidebar #new-room {
    display: flex;
    flex: 0 0 auto;
    flex-direction: row;
}

#new-room input:focus, #new-room button:hover {
    filter: brightness(1.2);
}

#new-room input {
    flex: 8 80%;
    width: 20%;
    background-color: var(--callout-dark);
    color: #fff;
}

#new-room button {
    flex: 2 20%;
    width: 20%;
    background-color: var(--bg-dark);
}

#status {
    padding: 5px 10px;
    text-align: center;
    font-size: 12px;
}

#status.pending::before {
  content: "status: connected";
}

#status.pending {
    background-color: yellow;
    color: #000;
}

#status.connected::before {
  content: "status: connected";
}

#status.connected {
    background-color: green;
    color: #fff;
}

#status.reconnecting::before {
  content: "status: reconnecting";
}

#status.reconnecting {
    background-color: red;
    color: #fff;
}
