.chat_message {
	display: flex;
	flex-direction: column;
	gap: 0.75em;
}
.chat_user_message {
	align-items: flex-end;
}
.chat_start_message_container,
.chat_content {
	max-width: 75%;
	width: max-content;
	padding: 1em 1.4em;
	border-radius: var(--br);
}
.chat_start_message_container {
	width: 100%;
	max-width: none;
	background-color: var(--chat_start_message_bg, var(--bg25));
}
.chat_start_message_container p {
	font-size: var(--chat_start_message_fontsize, 1.3rem);
	font-weight: var(--chat_start_message_fontweight, 500);
	color: var(--chat_start_message_color, var(--font));
	line-height: var(--chat_start_message_lineheight, 1.5);
}
.chat_messages_container:empty {
	display: none;
}
.chat_response > .chat_content,
.chat_typing > .chat_content {
	background-color: var(--chat_response_bg, var(--bg25));
}
.chat_user_message > .chat_content {
	background-color: var(--chat_user_message_bg, var(--prim));
	--chat_content_color: var(--chat_user_message_color, white);
}
.chat_response + .chat_response,
.chat_user_message + .chat_user_message {
	margin-top: 0.75em;
}
.chat_content p,
.chat_content ul,
.chat_content ol {
	font-size: var(--chat_content_fontsize, 1.5rem);
	font-weight: var(--chat_content_fontweight, 400);
	color: var(--chat_content_color, var(--font));
	line-height: var(--chat_content_lineheight, 1.5);
}
.chat_content p:not(:last-child),
.chat_content ul:not(:last-child),
.chat_content ol:not(:last-child) {
	margin-bottom: 0.5em;
}
.chat_content ul,
.chat_content ol {
	padding-left: 1.4em;
}
.chat_form button {
	position: absolute;
	aspect-ratio: 1;
	border-radius: 50%;
	right: 0;
	bottom: 0;
	height: calc(var(--form_rowheight) - 1.4rem);
	margin: 0.7rem;
	--button_icon_size: 1.9rem;
	--button_icon_strokewidth: 2.2;
}
.chat_form button > svg {
	margin-left: 0.15em;
}
.chat_form button:not(:disabled) {
	overflow: visible;
}
.chat_form button:not(:disabled):before {
	content: "";
	position: absolute;
	inset: -0.7rem;
}
.chat_form textarea {
	border-radius: calc(var(--form_rowheight) / 2);
	font-size: var(--chat_textarea_fontsize, 1.5rem);
	scrollbar-width: none;
	padding-left: 2rem;
	padding-right: 5rem;
}
.chat_typing > .chat_content {
	border-bottom-left-radius: 0;
	display: flex;
	gap: 0.3rem;
}
.chat_typing > .chat_content > span {
	background-color: var(--soft);
	border-radius: 50%;
	width: 0.5rem;
	height: 0.5rem;
	animation: typing 1.8s infinite ease-in-out;
}
.chat_typing > .chat_content > span:nth-child(1) {
	animation-delay: 0.2s;
}
.chat_typing > .chat_content > span:nth-child(2) {
	animation-delay: 0.3s;
}
.chat_typing > .chat_content > span:nth-child(3) {
	animation-delay: 0.4s;
}
@keyframes typing {
	0% { transform: translateY(0); opacity: 0.7; }
	28% { transform: translateY(-0.4rem); opacity: 0.4; }
	44% { transform: translateY(0); opacity: 0.2; }
}