
.chat-message.assistant {
	transition: opacity 0.5s ease-out;
}

.thinking {
	animation: blink 1.5s linear infinite;
	transition: opacity 0.5s ease-out;
}

@keyframes blink {
	0% { opacity: 1; }
	50% { opacity: 0.5; }
	100% { opacity: 1; }
}

.fade-out {
	opacity: 0;
}




html, body {
	margin: 0;
	padding: 0;
	height: 100%;
	width: 100%;
	background-color: #000;
	color: #e0e0e0;
	font-family: Roboto, Arial, sans-serif;
	line-height: 1.4;
}

#chatContainer {
	max-width: 650px;
	width: 100%;
	margin: 0 auto;
	scrollbar-width: none; 
	-ms-overflow-style: none; 
	flex: 1;
	overflow-y: auto;
	padding: 0 26px;
	box-sizing: border-box;
	background-color: #000;
	scroll-behavior: smooth;
	word-wrap: break-word;
	margin-bottom:0px;
}

#chatContainer::-webkit-scrollbar {
	display: none; 
}

@media (max-width: 768px) {
	#chatContainer {
		max-width: 100%;
	}
}



.online { color: green; }
.offline { color: red; }

.top-panel {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 20px;
	background-color: #000;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.8);
	position: sticky;
	top: 0;
	z-index: 200;
	height: 56px;
}
.left-section, .right-section {
	display: flex;
	align-items: center;
}
.admin-text, .admin-level {
	font-size: 1.3rem;
	font-weight: 400;
	color: white;
	margin-right: 15px;
}
.icon {
	width: 24px;
	height: 24px;
	cursor: pointer;
}
.flag-icon {
	height: 24px;
	cursor: pointer;
		border-radius: 4px;
}

section {
	display: flex;
	flex-direction: column;
	height: calc(100vh - 140px);
	overflow-y: auto;
}




.chat-message,
.favorite-message {
	margin: 0 0 20px 0;
	padding: 15px 20px;
	border-radius: 16px;
	max-width: 90%;
	word-wrap: break-word;
	overflow-wrap: break-word;
	font-size: 16px;
	box-sizing: border-box;
	position: relative;
	line-height: 1.5;
	color: #dedede;
}

@media screen and (min-width: 760px) {
	.chat-message,
	.favorite-message {
		font-size: 16px;
	}
}

.chat-message-text,
.favorite-message-text {
	margin-bottom: 12px;
}

.chat-message.user,
.favorite-message.user {
	background-color: #22242C;
	align-self: flex-end;
	margin-left: auto;
	border-radius: 10px 10px 0 10px;
}

.chat-message.user::after,
.favorite-message.user::after {
	content: "";
	position: absolute;
	right: -11px;
	bottom: 0;
	width: 0;
	height: 0;
	border: 12px solid transparent;
	border-left-color: #22242C;
	border-right: 0;
	border-bottom: 0;
}

.chat-message.assistant,
.favorite-message.assistant {
	background-color: #353944;
	align-self: flex-start;
	margin-right: auto;
	border-radius: 10px 10px 10px 0;
}

.chat-message.assistant::after,
.favorite-message.assistant::after {
	content: "";
	position: absolute;
	left: -11px;
	bottom: 0;
	width: 0;
	height: 0;
	border: 12px solid transparent;
	border-right-color: #353944;
	border-left: 0;
	border-bottom: 0;
}

.chat-message.user .timestamp,
.favorite-message.user .timestamp {
	text-align: right;
}

.chat-message.assistant .timestamp,
.favorite-message.assistant .timestamp {
	text-align: left;
}

.chat-message.error {
	background-color: #263238;
	align-self: flex-start;
	margin-right: auto;
	border-radius: 10px 10px 10px 0;
	color: #FF0000;
}

.timestamp {
	font-size: 1em;
	color: #999;
	margin-top: 5px;
	text-align: right;
}






#languageMenu {
	position: fixed;
	top: 0;
	right: 0; 
	width: 100%;
	max-width: 500px;
	height: 100%;
	background: #000;
	color: #fff;
	z-index: 300;
	padding: 20px;
	box-sizing: border-box;
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform 0.2s ease-out;
}

#languageMenu.active {
	transform: translateX(0);
}


.menu-content {
	
	padding-top: 60px;
}


.close-menu,
#favoritesScreen .close-menu {
	position: fixed;
	top: 10px;
	right: 10px;
	width: 60px;
	height: 60px;
	background-color: #000;
	border: none;
	border-radius: 50%;
	color: white;
	font-size: 3em;
	cursor: pointer;
}
.close-menu { z-index: 310; }
#favoritesScreen .close-menu {
	display: none;
}
#favoritesScreen.active .close-menu {
	display: block;
}
#languageMenu:not(.active) + .close-menu {
	display: none;
}
.close-menu:hover {
	color: #ff5722;
	transform: scale(1.2);
	transition: transform 0.2s ease, color 0.2s ease;
}


#favoritesScreen {
	position: fixed;
	bottom: -110%; 
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	color: #fff;
	z-index: 310;
	padding: 20px;
	box-sizing: border-box;
	overflow-y: auto;
	transition: bottom 0.4s ease;
}
#favoritesScreen.active {
	bottom: 0; 
}

#favoritesContainer {
	margin-top: 60px;
	max-width:600px;
	margin:0 auto;
}
.favorite-message {
	margin: 10px 0;
	padding: 15px 20px;
	background-color: #263238;
	border-radius: 10px;
	position: relative;
}
.favorite-message-text {
	margin-bottom: 5px;
}
.favorite-timestamp {
	font-size: 0.9em;
	color: #999;
	text-align: right;
}
.delete-favorite {
	position: absolute;
	bottom: 10px;
	left: 10px;
	background: none;
	border: none;
	cursor: pointer;
}

.copy-favorite {
	position: absolute;
	bottom: 10px;
	left: 40px;
	background: none;
	border: none;
	cursor: pointer;
}

.level-buttons {
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 40px;
	margin-top:20px;
}
.level-button {
	background: white;
	width:32%;
	border: 1px solid white;
	border-radius: 5px;
	color: black;
	padding: 8px 2px;
	font-size: 0.9em;
	cursor: pointer;
	transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.level-button:hover { background: #f0f0f0; }
.level-button.active {
	background-color: #ff5722;
	color: white;
	border-color: #ff5722;
}
.languages {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 40px;
}
.lang-button {
	background: white;
	border: 1px solid white;
	border-radius: 5px;
	color: black;
	padding: 10px;
	font-size: 1em;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	cursor: pointer;
	transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.lang-button:hover { background: #f0f0f0; }
.lang-button.active {
	background-color: #ff5722;
	color: white;
	border-color: #ff5722;
}
.lang-button img { 
	width: 30px; 
	height: auto; 
}














.panel-container {
	position: fixed;
	left: 0;
	bottom: 0;
	width: 200vw;
	display: flex;
	transition: transform 0.4s ease;
	z-index: 100;
}
.default-panel, .text-panel {
	width: 100vw;
	flex-shrink: 0;
	box-sizing: border-box;
}
.default-panel {
	background: #000;
	box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
	padding: 10px;
}
.bottom-panel {
	display: flex;
	padding-bottom: 10px;
	align-items: center;       
	justify-content: space-around; 
	
	height: 60px; 
	box-sizing: border-box;
}
.panel-item {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}
.panel-icon {
	width: 34px;
	height: 34px;
	object-fit: contain;
	cursor: pointer;
	filter: brightness(0.5); 
}





#rate-control {
	background-color: #37474F;
	color: #fff;
	border: none;
	border-radius: 28px;
	font-size: 16px;
	width: fit-content;
	padding: 10px 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
	user-select: none;
	touch-action: pan-y;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

#rate-control:hover {
	background-color: #455A64;
}

#rate-control .small-button {
	background-color: #546E7A;
	border: none;
	color: #fff;
	font-size: 20px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color 0.3s, transform 0.1s;
}

#rate-control .small-button:hover {
	background-color: #607D8B;
}

#rate-control .small-button:active {
	transform: scale(0.95);
	opacity: 0.8;
}

#rate-control #speedText {
	font-size: 18px;
	margin: 0 25px;
	white-space: nowrap;
	pointer-events: none;
}

  
  
  
  
  
  
  .hidden {
	display: none;
  }



.startBtn, .stopBtn {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background-size: 50%;
	background-repeat: no-repeat;
	background-position: center;
	cursor: pointer;
	border: 0;
	z-index: 900;
	position: absolute;
	transform: translateY(-5%);
}
.startBtn { 
	background-color: #7cb342; 
	background-image: url("../img/call.png");
	animation: glow-start 1.4s linear infinite;
}
@keyframes glow-start {
	0%, 100% { box-shadow: 0 0 5px #6b9b37; }
	50% { box-shadow: 0 0 30px #7cb342, 0 0 40px #7cb342; }
}
.circle-base {
	position: absolute;
	width: 54px;
	height: 54px;
	border: 20px solid #000;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 6px;
	padding-top: 4px;
z-index: 950;
}
.stopBtn {
	background-color: #e53935;
	background-image: url("../img/call_end.png");
	background-size: 34px 34px;
	background-repeat: no-repeat;
	background-position: center;
	animation: glow-stop 1.4s linear infinite;
	transition: background-color 0.1s ease-in-out, transform 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
	will-change: transform, box-shadow;
	transform: scale(1);
	box-shadow: 0 0 0 rgba(255,255,255,0); 
	margin-bottom:4px;
}




@keyframes glow-stop {
	0%, 100% { box-shadow: 0 0 5px #e53935; }
	50% { box-shadow: 0 0 30px #d50000, 0 0 40px #d50000; }
}
.hidden-button { display: none; }
.text-panel {
	background: #000;
	box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
	padding: 10px;
	display: flex;
	align-items: center;
}
.text-input-form {
	display: flex;
	align-items: center;
	width: 100%;
	margin-top: 0px;
}
.text-input {
	flex-grow: 1;
	height: 36px;
	background: #000;
	border: 1px solid #666;
	color: #fff;
	border-radius: 20px;
	padding: 2px 12px;
	font-size: 18px;
	outline: none;
	width:100%;
}
.send-button {
	background: none;
	border: none;
	cursor: pointer;
	margin-left: 5px;
}
.send-button img {
	width: 36px;
	height: 36px;
}
.mic-icon {
	width: 36px;
	height: 36px;
	object-fit: contain;
	cursor: pointer;
	margin-right: 5px;
	margin-left:5px;
}
.action-icon {
	width: 21px;
	height: 21px;
	cursor: pointer;
	opacity: 0.6;
	transition: opacity 0.2s ease;
	margin-right: 3px;
}
.action-icon:hover {
	opacity: 1;
}
.chat-message-actions {
	position: absolute;
	bottom: 17px;
	display: flex;
	gap: 10px;
}
.chat-message.user .chat-message-actions { left: 20px; }
.chat-message.assistant .chat-message-actions { right: 20px; }
.overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.7);
	z-index: 50;
	display: none;
}
#lock-screen {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.85);
	color: white;
	font-size: 24px;
	text-align: center;
	align-items: center;
	justify-content: center;
	z-index: 9999;
}
#lock-screen img { 
	filter: invert(1);
}
.button-menu {
	background: linear-gradient(135deg, #ff5722, #ff9800);
	border: none;
	border-radius: 30px;
	color: #fff;
	font-size: 16px;
	padding: 12px 24px;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.1s ease;
}
.button-logout {
	background-color:#263238;
	border: none;
	border-radius: 30px;
	color: #fff;
	font-size: 16px;
	padding: 12px 24px;
	cursor: pointer;
	text-decoration: none;
}

.button-save {
    background-color: #45A049;
	border: none;
	border-radius: 30px;
	color: #fff;
	font-size: 16px;
	padding: 12px 24px;
	cursor: pointer;
	text-decoration: none;
}


.status-panel {
	background-color: #263238;
	color: #7cb342;
	padding: 10px 25px;
	border-left: 15px solid #7cb342;
	border-bottom: 1px solid #111111;
	font-size: 14px;
	box-shadow: 0 6px 6px 0 rgba(0, 0, 0, 0.6);
	
}






.checkbox-row {
	display: grid;
	grid-template-columns: 1fr auto; 
	align-items: center;
	width: 100%;
	text-align: right;
	margin: 10px 0; 
}

.checkbox-label {
	font-size: 18px;
	color: #e0e0e0;
	text-align: left;
	padding: 10px 30px;
}

.switch {
	position: relative;
	display: inline-block;
	width: 50px;
	height: 28px;
	margin-right:20px;
}
.switch input {
	display: none;
}






.slider {
	width: 95%;
	padding: 10px;
	margin: 20px 0;
}

.slider label {
	display: block;
	margin-bottom: 5px;
	font-size: 16px;
	color: #e0e0e0;
}

.slider-control {
	display: flex;
	align-items: center;
	gap: 12px;
}

.slider-control input[type="range"] {
	width: 90%; 
	-webkit-appearance: none;
	height: 4px;
	background: #455a64;
	outline: none;
	border-radius: 4px;
}

.slider-control input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 16px;
	height: 16px;
	background: #2196F3;
	border-radius: 50%;
	cursor: pointer;
}

.slider-control span {
	width: 40px;
	text-align: right;
	font-size: 18px;
	color: #e0e0e0;
}




.status-ball {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	display: inline-block;
	margin-right: 10px;
	background-color: red; 
	font-size:10px;
	text-align:center;
	padding:3px;
	line-height:13px;
	margin-bottom:4px;
}







#equalizer {
	position: fixed;
	bottom: 60px;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 800px; 
	height: 110px;
	display: flex;
	align-items: flex-end;
	margin: 0 auto;
	z-index:4;
}

.bar {
	flex: 1;
	margin: 0 0px;
	background: linear-gradient(to top, #000, #455A64);
	border-right:1px solid #000000;
}



.hidden {
	display: none;
}

.record-timer {
	position: fixed;     
	bottom: 35px;
	left: 15%;
	font-weight: bold;
	color: #FFFFFF;
	z-index:600;
}

.default-panel.recording .hide-on-record {
	display: none !important;
}

.blink-circle {
	display: inline-block;
	width: 0.6em;
	height: 0.6em;
	border-radius: 50%;
	background-color: red;
	margin-right: 0.5em;
	animation: blink 0.5s infinite alternate;
}

@keyframes blink {
	from { opacity: 1; }
	to   { opacity: 0.2; }
}


.spinner {
	border: 4px solid #f3f3f3;       
	border-top: 4px solid #3498db;    
	border-radius: 50%;
	width: 20px;
	height: 20px;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

.lock-icon {
	position: fixed;
	bottom: 25px;
	right: 20%;
	z-index: 600;
}

@media (min-width: 1024px) {
	.lock-icon {
		display: none;
	}
}





* {
	scrollbar-width: thin;            
	scrollbar-color: #37474F #222;        
}


::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: #222;              
	border-radius: 4px;
}

::-webkit-scrollbar-thumb {
	background-color: #37474F;          
	border-radius: 4px;
	border: 2px solid #222;         
}

::-webkit-scrollbar-thumb:hover {
	background-color: #777;
}


.delete-all-btn {
	display: none;
	position: fixed;
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
	background: linear-gradient(135deg, #ff5722, #ff9800);
	border: none;
	border-radius: 30px;
	color: #fff;
	font-size: 14px;
	padding: 12px 24px;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.1s ease;
}

.delete-all-btn.active {
	display: block;
}



.toast {
	position: fixed;
	bottom: 100px;
	left: 50%;
	transform: translate(-50%, 20px);
	opacity: 0;
	background: rgba(0, 0, 0, 0.8);
	color: #fff;
	padding: 10px 20px;
	border-radius: 5px;
	z-index: 1001;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.toast-visible {
	transform: translate(-50%, 0);
	opacity: 1;
}




.language-selector-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	width: 100%;
	gap: 10px;
	flex-wrap: nowrap;
	margin-bottom:60px;
}

.language-group {
	flex: 1 1 auto;
	width: 50%; 
}


.language-group label {
	display: block;
	margin-bottom: 6px;
	font-weight: normal;
	font-size: 15px;
}

.language-dropdown {
	position: relative;
	display: inline-block;
	width: 100%;
}

.selected-language {
	background: white;
	border: 1px solid #ccc;
	padding: 10px 10px;
	font-size: 15px;
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	border-radius: 6px;
	width: 100%;
	justify-content: flex-start;
}

.selected-language img {
	width: 25px;
	height: 18px;
	object-fit: cover;
}

.language-list {
	position: absolute;
	top: 110%;
	left: 0;
	background: white;
	border: 1px solid #ccc;
	border-radius: 6px;
	list-style: none;
	margin: 0;
	padding: 5px 0;
	display: none;
	min-width: 100%;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
	z-index: 10;
}

.language-dropdown.active .language-list {
	display: block;
}

.language-list li {
	padding: 6px 10px;
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	white-space: nowrap;
	color:#111111;
}

.language-list li:hover {
	background-color: #f0f0f0;
	color:#111111;
}

.language-list img {
	width: 25px;
	height: 18px;
	object-fit: cover;
}





.modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 1000;
  align-items: center;
  justify-content: center;
}

.modal-overlay.active {
  display: flex;
}

.modal-box {
  background: #000;
  color: #fff;
  padding: 20px;
  border-radius: 5px;
  max-width: 300px;
  width: 90%;
  box-sizing: border-box;

  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

#customAlertIcon {
  display: none;
  width: 50px;
  height: 50px;
  margin-bottom: 10px;
}

.modal-buttons {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  gap: 10px;
}

.modal-button {
  cursor: pointer;
  background: linear-gradient(135deg, #ff5722, #ff9800);
  border: none;
  border-radius: 30px;
  color: #fff;
  font-size: 14px;
  padding: 12px 24px;
  text-decoration: none;
  transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.1s ease;
}

.modal-ok {
  margin-top: 20px;
}

.modal-box a {
  color: #ffd700; 
  font-weight: bold;
  text-decoration: underline;
  transition: color 0.2s ease;
}

.modal-box a:hover {
  color: #ff9800;
  text-decoration: none;
}


		