:root { --txt-color: oklch(0.9 0 99); --bg-color: oklch(0.15 0.01 338.64); --light-bg-color: oklch(0.25 0.01 338.64); --login-bg-color: #5d7680; --primary-btn-color: #7bad9f; --accent-normal: #7bad9f; --accent-muted: #ff746c; --accent-deafened: #464459; --line-width: 2px; --line-color: oklch(0.7 0 0.99); } body { margin: 0; } #main { height: 100vh; display: flex; flex-direction: column; justify-content: space-around; background-color: var(--bg-color); overflow: auto; color: var(--txt-color); font-family: Nunito; font-size: 15pt; font-weight: 600; } hr { color: var(--line-color); background-color: var(--line-color); height: var(--line-width); border: none; } button { font-weight: bold; font-size: medium; border: none; border-radius: 4px; color: var(--txt-color); background-color: var(--primary-btn-color); cursor: pointer; } input { border: none; border-radius: 4px; background-color: white; color: black; } input:focus, input:focus-visible { border: none; outline: solid var(--line-width) var(--accent-normal); outline-offset: -3px; } a:link { color: var(--accent-normal); } a:visited { color: var(--accent-muted); } .userpil { border-radius: 100px; padding: 4px 8px; width: fit-content; img { height: 1em; vertical-align: text-bottom; } &.is_self { font-weight: bolder; } } .channel { &_details { flex: 0 0 100%; summary { cursor: pointer; } summary:focus-visible { outline: none; } } &_children { border-left: solid var(--line-color) var(--line-width); display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; margin-left: 5px; padding-left: 11px; padding-top: 4px; } } .chat { &_panel { display: flex; flex-direction: column; } &_history { overflow-y: auto; flex: 1 0 0; } &_message { display: flex; flex-direction: row; margin: 16px; gap: 8px; align-items: center; } &_box_wrapper { padding: 16px; border-top: solid var(--line-color) var(--line-width); } &_box { display: flex; flex-direction: row; gap: 16px; background-color: var(--light-bg-color); padding-top: 16px; padding-bottom: 16px; padding-left: 8px; padding-right: 16px; border-radius: 8px; input { color: white; background-color: var(--light-bg-color); font-size: larger; flex-grow: 1; border: none; } input:focus { outline: none; } } } .user_edit_button { background-color: oklch(0.53 0.1431 264.18); border-radius: 50%; aspect-ratio: 1 / 1; } .button_row { display: flex; gap: 10px; .spacer { flex-grow: 1; } } .toggle_button { padding: 8px; height: 100%; aspect-ratio: 1 / 1; background-color: unset; border: solid rgb(255 255 255 / 0.1) 3px; border-radius: 10px; color: rgb(255 255 255 / 50%); transition: all 0.5s ease-in-out; &.is_on { background-color: oklch(0.5 0.1381 21.71 / 20.12%); color: oklch(0.53 0.1505 21.71 / 89.38%); } .material-symbols-outlined { font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 48; vertical-align: middle; font-size: 35px; } } .server { &_grid { display: grid; height: 100%; background-color: var(--bg-color); grid-template-rows: 1fr auto; grid-template-columns: 1fr 2fr; grid-template-areas: "tree chat" "control chat"; @media screen and (max-width: 720px) { grid-template-rows: auto 1fr 1fr; grid-template-columns: 1fr; grid-template-areas: "tree" "control" "chat"; } } &_channel_box { padding: 16px; overflow: auto; grid-area: tree; } &_chat_box { display: flex; flex-direction: row; grid-area: chat; border-left: solid var(--line-color) var(--line-width); @media screen and (max-width: 720px) { border-left: unset; border-top: solid var(--line-color) var(--line-width); } } &_control_box { padding: 16px; margin: 16px; background-color: var(--light-bg-color); border-radius: 10px; overflow: hidden; grid-area: control; display: flex; gap: 10px; flex-direction: column; } } .login { max-width: 50vw; align-self: center; padding: 32px; border-radius: 16px; background-color: var(--login-bg-color); display: flex; flex-direction: column; gap: 16px; input, button { padding: 8px; } h1 { margin: 0; color: #b3c6b4; } &_bttn { font-weight: bold; font-size: large; } &_error { background-color: white; border-radius: 4px; overflow: auto; padding: 4px; color: red; pre { color: black; } } &_status { &.is_error { color: red; } } }