:root { --button-background: #52585C } body { margin: 0; height: 100%; } main { display: grid; grid-template-columns: 25% auto; height: 100%; } .panel { padding-left: 20px; padding-right: 20px; display: flex; flex-direction: column; } ul { list-style-type: none; padding: 0; margin: 0; } button { background-color: var(--transparent); border: none; cursor: pointer; } button::after { background-color: var(--button-background); border-radius: 100%; display: block; width: 20px; height: 20px; padding: 8px; } button:hover::after { background-color: var(--accent); } .classic_button { background-color: var(--button-background); color: white; cursor: pointer; padding: 10px 20px; border-radius: 8px; font-weight: bold; } .classic_button:hover { background-color: var(--accent); } .file_picker { display: flex; align-items: center; cursor: pointer; } .file_picker::after { content: url("/static/imgs/icons/attach/ACCENT_COLOR"); width: 2em; } .popup h2.warning::before { content: url("/static/imgs/icons/warning/ACCENT_COLOR"); width: 2em; display: inline-block; vertical-align: middle; } .switch_preference { display: flex; align-items: center; } .preference_description { flex-grow: 1; width: 0; /*fix unknown display bug of .switch*/ margin-right: 20px; } .preference_description p:last-of-type { font-size: .8em; } .switch { position: relative; display: inline-block; width: 60px; height: 34px; } .switch input { opacity: 0; width: 0; height: 0; } .switch span { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius: 34px; transition: .3s; } .switch span::before { position: absolute; content: ""; height: 26px; width: 26px; left: 4px; bottom: 4px; background-color: white; border-radius: 50%; transition: .3s; } .switch input:checked + span { background-color: var(--accent); } .switch input:focus + span { box-shadow: 0 0 1px var(--accent); } .switch input:checked + span:before { transform: translateX(26px); } #avatarContainer { position: relative; } #avatarContainer .avatar { font-size: 2.5em; } #removeAvatar { position: absolute; bottom: 0; cursor: pointer; } #removeAvatar:hover { color: var(--accent); } #profile_info section { display: block; margin-bottom: 20px; border-top: 1px solid black; } #profile_info section:first-of-type { border-top: unset; } #profile_info section:first-of-type h3 { margin: 0; } #profile_info input { margin: 10px; } #profile_info>div>div p { font-weight: normal; font-size: 0.9em; } #session_info .avatar { font-size: 2.5em; display: block; margin: auto; } #session_info .name { display: flex; justify-content: center; } #session_info .name button::after { content: url("/static/imgs/icons/refresh"); } #session_info .session_field { display: flex; gap: .3em; } #session_info .session_field p { margin-top: 0; } #session_info .session_field p:first-child { color: #34db4a; } #session_info .session_field p:last-child { font-weight: bold; } .button_row { display: flex; gap: 15px; } .section_title { margin-left: 8px; font-weight: bold; opacity: 0.5; } .section_title:first-of-type { margin-top: 25px; } #left_panel { background-color: #1D2228; } #right_panel { background-color: #15191E; overflow: hidden; } #me { border-bottom: 2px solid var(--accent); padding: 10px; display: flex; align-items: center; cursor: pointer; } #me>div { display: flex; align-items: center; flex-grow: 1; } #me p { font-size: 1.7em; margin: 0; font-weight: bold; display: inline; } #me>div:hover p { color: var(--accent); } #me .avatar { font-size: 1.2em; } #left_panel ul:last-of-type, #msg_log { flex-grow: 1; } #left_panel ul li { font-size: 1.1em; padding: 15px; height: 50px; box-sizing: border-box; margin-left: 8px; margin-bottom: 10px; border-radius: 8px; cursor: pointer; display: flex; align-items: center; } #left_panel ul li>p { display: inline; font-weight: bold; flex-grow: 1; } #left_panel ul li .avatar { font-size: .9em; } #left_panel ul li:hover, #left_panel ul li.current { background-color: #333940; } #left_panel ul li p::after { content: url("/static/imgs/icons/warning/ACCENT_COLOR"); display: inline-block; width: 1em; margin-left: 5px; vertical-align: middle; } #left_panel ul li.is_contact p::after { content: unset; } #left_panel ul li.is_verified p::after { content: url("/static/imgs/icons/verified/ACCENT_COLOR"); } #left_panel ul li.not_seen::after { content: ""; width: 12px; height: 12px; background-color: var(--accent); border-radius: 12px; } #aira_version { opacity: 0.5; font-weight: bold; margin: 8px; } #refresher button::after { content: url("/static/imgs/icons/refresh"); } #refresher, #connect_box>div { position: relative; } #show_local_ips, #refresher button { position: absolute; right: 10px; top: 15px; z-index: 1; } #show_local_ips::after { content: url("/static/imgs/icons/info/52585C"); background-color: unset; padding: unset; width: 38px; height: 38px; } #show_local_ips:hover::after { background-color: unset; content: url("/static/imgs/icons/info/ACCENT_COLOR"); } .popup ul { list-style-type: unset; } #chat_header { flex-direction: row; align-items: center; padding: 20px 20px; } #chat_header>div { display: flex; align-items: center; flex-grow: 1; cursor: pointer; } #chat_header>div:hover p { color: var(--accent); } #chat_header>div>p { /*name*/ font-size: 1.5em; font-weight: bold; margin: 0; } #chat_header p::after { content: url("/static/imgs/icons/warning/ACCENT_COLOR"); display: inline-block; width: 1.2em; vertical-align: middle; margin-left: 10px; } #chat_header.is_contact p::after { content: unset; } #chat_header.is_verified p::after { content: url("/static/imgs/icons/verified/ACCENT_COLOR"); } #chat_header.is_contact #delete_conversation::after { content: url("/static/imgs/icons/delete_conversation"); } #add_contact::after { content: url("/static/imgs/icons/add_contact"); } #chat_header.is_contact #remove_contact::after { content: url("/static/imgs/icons/remove_contact"); } #chat_header.is_contact #verify { display: unset; } #chat_header #verify, #chat_header.is_verified #verify, #chat_header.is_contact #add_contact, #chat_header.offline #add_contact { display: none; } #chat_header.is_contact #verify::after { content: url("/static/imgs/icons/verified"); } #logout::after { content: url("/static/imgs/icons/logout"); } #message_input { border: unset; padding: 20px; font-size: 1.1em; } #file_transfer { border-top: 2px solid var(--accent); position: relative; } #file_transfer.active { display: block; } #file_transfer span { font-weight: bold; } #file_control { display: flex; align-items: center; } #file_cancel { padding: 0; } #file_cancel::after { background-color: unset; width: 20px; content: url("/static/imgs/icons/cancel/ACCENT_COLOR"); } #file_progress { display: none; gap: 10px; align-items: center; margin-bottom: 15px; } #file_transfer.active>#file_progress { display: flex; } #file_status { margin-top: 0; } #file_percent, #file_speed { font-weight: bold; margin: 0; border-left: 2px solid var(--accent); padding-left: 10px; } #file_progress_bar { flex-grow: 1; height: 25px; } #file_progress_bar div { height: 100%; background-color: var(--accent); } #msg_log { overflow-y: auto; white-space: pre-wrap; } #msg_log li { display: flex; align-items: end; gap: 10px; margin-bottom: 10px; padding-right: 10px; } #msg_log li>div { flex-grow: 1; } #msg_log li .timestamp { opacity: .5; font-family: "Liberation Sans", Arial, sans-serif; font-size: .8em; } #msg_log p { font-size: 1.1em; margin: 0; } #msg_log .avatar { font-size: .8em; } #msg_log li .header { display: flex; align-items: center; } #msg_log li .header p { color: var(--accent); font-weight: bold; margin-left: .5em; } #msg_log li .content { margin-left: 3em; } #msg_log li .content p { word-break: break-word; } #msg_log a { color: #238cf5; } #msg_log .file { display: flex; align-items: end; border-left: 3px solid var(--accent); padding-left: 15px; } #msg_log .file div { /*title and filename container*/ display: flex; flex-direction: column; } #msg_log .file h4 { margin: 0; } #msg_log .file p { color: var(--accent); } #msg_log .file a::after { content: url("/static/imgs/icons/download/ACCENT_COLOR"); display: block; width: 2em; margin-left: 15px; } #message_box, #message_box.online #offline_warning, #chat_header, #msg_log, #file_transfer { display: none; } #message_box.active { display: block; } #message_box { border-top: 2px solid red; margin-bottom: 0; } #message_box>div:nth-child(2) { display: flex; } #message_box.online { border-top-color: var(--accent); } #offline_warning { margin-left: 20px; display: flex; align-items: center; gap: 25px; } #offline_warning::before { content: url("/static/imgs/icons/warning/ff0000"); display: block; width: 2em; } #offline_warning h3 { color: red; display: inline-block; margin-bottom: .3em; } #offline_warning p { margin-top: 0; } #msg_log li.pending_msgs_divider { border-top: 1px solid grey; padding-top: 10px; margin-top: 30px; margin-left: 100px; margin-right: 100px; } #msg_log li.pending_msgs_divider h4 { margin: auto; opacity: .5; } .lds-spinner { color: official; position: relative; width: 82px; height: 82px; } .lds-spinner div { transform-origin: 40px 40px; animation: lds-spinner 1.2s linear infinite; } .lds-spinner div:after { content: " "; display: block; position: absolute; top: 3px; left: 37px; width: 6px; height: 18px; border-radius: 20%; background: #fff; } .lds-spinner div:nth-child(1) { transform: rotate(0deg); animation-delay: -1.1s; } .lds-spinner div:nth-child(2) { transform: rotate(30deg); animation-delay: -1s; } .lds-spinner div:nth-child(3) { transform: rotate(60deg); animation-delay: -0.9s; } .lds-spinner div:nth-child(4) { transform: rotate(90deg); animation-delay: -0.8s; } .lds-spinner div:nth-child(5) { transform: rotate(120deg); animation-delay: -0.7s; } .lds-spinner div:nth-child(6) { transform: rotate(150deg); animation-delay: -0.6s; } .lds-spinner div:nth-child(7) { transform: rotate(180deg); animation-delay: -0.5s; } .lds-spinner div:nth-child(8) { transform: rotate(210deg); animation-delay: -0.4s; } .lds-spinner div:nth-child(9) { transform: rotate(240deg); animation-delay: -0.3s; } .lds-spinner div:nth-child(10) { transform: rotate(270deg); animation-delay: -0.2s; } .lds-spinner div:nth-child(11) { transform: rotate(300deg); animation-delay: -0.1s; } .lds-spinner div:nth-child(12) { transform: rotate(330deg); animation-delay: 0s; } @keyframes lds-spinner { 0% { opacity: 1; } 100% { opacity: 0; } } #pending_msgs_indicator { display: none; align-items: center; justify-content: center; gap: 15px; margin-bottom: 20px; } #pending_msgs_indicator.sending { display: flex; } #disconnected { display: none; height: 100%; align-items: center; justify-content: center; } #disconnected.disconnected { display: flex; } #disconnected img { width: 70px; height: 70px; }