:root {
	--shadow-dark:0 6px 10px rgba(40,40,40,0.2);
	--shadow-darker:0 6px 10px rgba(40,40,40,0.4);
	--font-family:'Helvetica Neue', 'Lucida Grande', 'Tahoma', 'Verdana', 'Arial', sans-serif;
}
html {
	font-family:var(--font-family);
}
body {
	background:rgb(20,20,20);
	color:rgb(245,245,245);
	margin:0;
	padding:0;
	overflow:hidden;
}
button, input {
	border:none;
	outline:none;
	transition:background 0.25s, color 0.25s;
}
.noselect {
	-webkit-user-select:none;
	-khtml-user-select:none;
	-moz-user-select:none;
	-ms-user-select:none;
	user-select:none;
	outline:none;
}
.select {
	-webkit-user-select:all;
	-khtml-user-select:all;
	-moz-user-select:all;
	-ms-user-select:all;
	user-select:all;
	outline:none;
}
.hidden {
	display:none;
	visibility:hidden;
	position:absolute;
	z-index:-1;
}
::-webkit-scrollbar {
	display:block;
	width:4px;
	background:rgba(90,90,220,0);
}
::-webkit-scrollbar-thumb {
	border-radius:2px;
	background:rgba(120,120,250,1);
}
::-webkit-scrollbar-thumb:hover {
	background:rgba(120,120,250,0.8);
}
::-webkit-scrollbar-track { 
	background:rgb(30,30,30);
}

.incognito-icon {
	background:rgb(40,40,40);
	fill:rgb(245,245,245);
	width:32px;
	height:32px;
	padding:10px;
	border-radius:50%;
	position:absolute;
	top:20px;
	right:20px;
	cursor:pointer;
	transition:background 0.25s;
	z-index:110;
}
#desktop .incognito-icon:hover {
	background:rgb(120,120,250);
}
.logout-icon {
	background:rgb(40,40,40);
	fill:rgb(245,245,245);
	width:32px;
	height:32px;
	padding:10px;
	border-radius:50%;
	position:absolute;
	top:20px;
	left:20px;
	cursor:pointer;
	transition:background 0.25s;
	z-index:110;
}
#desktop .logout-icon:hover {
	background:rgb(120,120,250);
}
.chat-input-wrapper {
	position:absolute;
	bottom:20px;
	left:20px;
	width:100%;
	font-size:0;
}
.chat-input-field {
	background:rgb(40,40,40);
	color:rgb(245,245,245);
	width:calc(100% - 40px - 30px - 50px);
	height:50px;
	font-size:16px;
	padding:0 15px 0 15px;
	border-radius:5px 0 0 5px;
}
.chat-input-button {
	cursor:pointer;
	padding:0;
	height:50px;
	width:50px;
	background:rgb(50,50,50);
	vertical-align:top;
	transition:background 0.25s;
	border-radius:0 5px 5px 0;
}
#desktop .chat-input-button:hover {
	background:rgb(120,120,250);
}
.chat-input-button svg {
	width:28px;
	height:28px;
	fill:rgb(245,245,245);
	background:none;
}

.messages-list {
	position:absolute;
	top:0;
	left:92px;
	width:calc(100% - 184px);
	height:calc(100% - 70px);
	overflow-x:hidden;
	overflow-y:scroll;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
}
.messages-list::-webkit-scrollbar {
	display:none;
}
.chat-bubble-wrapper {
	font-size:0;
	display:block;
	width:calc(100% - 40px);
	padding:10px 20px 0 20px;
	height:auto;
	position:relative;
	pointer-events:none;
}
.chat-bubble-wrapper.me {
	text-align:right;
}
.chat-bubble-wrapper.me .chat-bubble.active {
	background:rgb(60,60,60);
	cursor:default;
}
.chat-bubble-wrapper.others {
	text-align:left;
}
.chat-bubble-wrapper.others .chat-bubble {
	background:rgb(120,120,250);
}
.chat-bubble-wrapper.others .chat-bubble.active {
	background:rgb(80,80,240);
	cursor:default;
}
#desktop .chat-bubble-wrapper.others .chat-bubble.active:hover {
	background:rgb(80,80,240);
}
#desktop .chat-bubble-wrapper.others .chat-bubble:hover {
	background:rgb(100,100,240);
}
.chat-bubble-wrapper:first-of-type {
	padding-top:20px;
}
.chat-bubble-wrapper:last-of-type {
	padding-bottom:20px;
}
.chat-bubble {
	background:rgb(40,40,40);
	font-size:16px;
	position:relative;
	display:inline-block;
	width:auto;
	max-width:50%;
	padding:10px;
	color:rgb(245,245,245);
	border-radius:5px;
	text-align:left;
	cursor:pointer;
	transition:background 0.25s;
	pointer-events:auto;
	word-break:break-all;
	text-overflow:ellipsis;
}
.chat-bubble span {
	line-height:25px;
	pointer-events:none;
}
.chat-bubble-time {
	top:calc(50% - 40px / 2);
	position:absolute;
	width:auto;
	white-space:nowrap;
	height:40px;
	font-size:12px;
	background:none;
	color:rgb(200,200,200);
	pointer-events:none;
}
.chat-bubble-wrapper.me .chat-bubble-time {
	right:calc(100% + 5px);
}
.chat-bubble-wrapper.others .chat-bubble-time {
	left:calc(100% + 5px);
}

.privacy-wrapper {
	display:none;
	position:absolute;
	z-index:120;
	top:0;
	left:0;
	width:100%;
	height:100%;
	overflow:hidden;
	background:rgba(0,0,0,0.9);
}
.privacy-wrapper .close-icon {
	background:rgb(40,40,40);
	fill:rgb(245,245,245);
	width:32px;
	height:32px;
	padding:10px;
	border-radius:50%;
	position:absolute;
	top:20px;
	left:20px;
	cursor:pointer;
	transition:background 0.25s;
}
#desktop .privacy-wrapper .close-icon:hover {
	background:rgb(120,120,250);
}
.privacy-section {
	position:absolute;
	top:92px;
	width:calc(50% - 30px);
	height:calc(100% - 92px - 100px);
}
.privacy-section.me {
	left:20px;
}
.privacy-section.others {
	right:20px;
}
.privacy-text {
	background:rgb(20,20,20);
	color:rgb(245,245,245);
	font-size:16px;
	width:calc(100% - 20px);
	outline:none;
	border:none;
	margin-bottom:10px;
	padding:10px;
	height:33.33333%;
	resize:none;
	text-decoration:none;
	border-radius:5px;
}
.privacy-text.conversation-id {
	position:absolute;
	color:rgb(245,245,245);
	font-weight:bold;
	font-size:18px;
	top:20px;
	left:0;
	width:100%;
	display:block;
	text-align:center;
	background:none;
	pointer-events:none;
}

.loading-overlay {
	display:none;
	z-index:101;
	position:absolute;
	background:rgba(0,0,0,0.9);
	top:0;
	left:0;
	height:100%;
	width:100%;
}
.loading-overlay span {
	position:absolute;
	z-index:102;
	line-height:40px;
	font-size:20px;
	padding:0;
	margin:0;
	text-align:center;
	width:500px;
	left:calc(50% - 500px / 2);
	top:calc(50% - 40px / 2);
	color:rgb(200,200,200);
}

.hidden-area {
	font-size:0;
	width:0;
	height:0;
	position:absolute;
	z-index:-100;
}

.error-overlay {
	position:absolute;
	z-index:998;
	top:0;
	bottom:0;
	width:100%;
	height:100%;
	background:rgba(0,0,0,0.9);
}
.error-wrapper {
	position:absolute;
	z-index:999;
	background:rgb(40,40,40);
	display:block;
	overflow:hidden;
	border-radius:5px;
}
.error-wrapper a {
	text-decoration:none;
}
.error-top {
	height:30px;
	width:100%;
	background:rgb(60,60,60);
}
.error-bottom {
	height:calc(100% - 30px);
	width:100%;
	overflow-x:hidden;
	overflow-y:scroll;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
	text-align:center;
}
.error-title {
	color:rgb(245,245,245);
	font-size:16px;
	font-weight:bold;
	line-height:30px;
	display:block;
	width:calc(100% - 20px);
	padding:0 10px 0 10px;
}
.error-text {
	font-size:16px;
	color:rgb(245,245,245);
	line-height:25px;
	padding:10px;
	width:calc(100% - 20px);
	display:block;
	text-align:left;
}
.error-button {
	background:rgb(120,120,250);
	background:-webkit-linear-gradient(to right, rgb(90,90,220), rgb(120,120,250));
	background:linear-gradient(to right, rgb(90,90,220), rgb(120,120,250));
	border-radius:2px;
	display:inline-block;
	height:50px;
	padding:0;
	font-weight:bold;
	width:calc(100% - 30px);
	transition:background 0.25s, transform 0.25s;
	color:rgb(245,245,245);
	font-size:18px;
	cursor:pointer;
	margin-top:10px;
}
.error-button:hover {
	transform:scale(0.9);
}

.notification-area {
	z-index:666;
	position:fixed;
	left:0px;
	bottom:0px;
	padding:10px;
	height:auto;
	max-height:calc(100% - 10px);
	min-width:300px;
	max-width:500px;
	pointer-events:none;
	overflow:hidden;
	display:none;
}
.notification-wrapper {
	position:relative;
	min-width:300px;
	max-width:500px;
	margin-top:10px;
	height:auto;
	padding:10px 15px 15px 15px;
	background:rgb(0,150,255);
	box-shadow:0px 10px 20px rgba(0,0,0,0.1);
	transition:left 0.4s;
	overflow:hidden;
	border-radius:5px;
	color:rgb(245,245,245);
	display:none;
	background:rgb(245,100,70);
	background:-webkit-linear-gradient(to right, rgb(240,140,70), rgb(245,100,70));
	background:linear-gradient(to right, rgb(240,140,70), rgb(245,100,70));
}
.notification-wrapper.message {
	padding:0;
	background:rgb(40,40,40);
	box-shadow:0px 10px 20px rgba(0,0,0,0.3);
	opacity:0.9;
	cursor:pointer;
	pointer-events:auto;
	transition:background 0.25s;
}
#desktop .notification-wrapper.message:hover {
	background:rgb(50,50,50);
}
.notification-title-wrapper {
	display:block;
	font-size:18px;
	font-weight:bold;
}
.notification-description-wrapper {
	display:block;
	font-size:16px;
	margin:10px 0 0 0;
}
.notification-message-top {
	background:rgb(10,10,10);
	padding:5px 10px 5px 10px;
}
.notification-message-bottom {
	padding:10px;
}