body {
	font-family: 'Noto Sans TC', sans-serif;
	background-color: #f4f7fa;
	color: #333;
}
pre {
	background-color: #f0f4f8;
	padding: 12px;
	border-radius: 4px;
	word-wrap: break-word;
	color: #444;
	line-height: 1.6;
}
.log-card {
	background-color: #ffffff;
	border: 1px solid #e0e6ed;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
	border-radius: 8px;
	padding: 16px;
	margin-bottom: 16px;
	transition: box-shadow 0.3s ease;
	position: relative;
	overflow: hidden;
}
.log-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.log-card.expanded {
	max-height: unset;
}
.log-details {
	opacity: 0;
	height: 0;
	overflow: hidden;
	transition: opacity 0.5s ease, height 0.5s ease;
}
.log-card.expanded .log-details {
	opacity: 1;
	height: auto;
}
@keyframes bounce {
	0%, 100% {
		transform: translate(-50%, 0);
	}
	50% {
		transform: translate(-50%, 6px);
	}
}
.custom-answer {
	background-color: #fff7f7;
	color: #cc0000;
	padding: 12px;
	border-radius: 6px;
	text-align: left;
}
.custom-sources {
	background-color: #eff7ff;
	color: #0056b3;
	padding: 10px;
	border-radius: 6px;
	font-size: 1em;
}
.custom-answer, .custom-question, .custom-sources {
	white-space: pre-wrap;
	/* 自動換行 */
	word-wrap: break-word;
	/* 單字斷行 */
	overflow-x: hidden;
	/* 防止左右卷軸 */
	text-align: left;
	line-height: 1.8;         /* 增加行距，使文字更易讀 */
	letter-spacing: 0.05em;   /* 字距微調，增加閱讀舒適度 */
	font-size: 1.05em;        /* 微幅增大字體，更清晰 */
}
.toast-container {
	position: fixed;
	bottom: 1rem;
	right: 1rem;
	z-index: 1055;
}
.fade-out {
	opacity: 0;
	transition: opacity 0.5s ease;
}
@keyframes spin {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}
.rotate-refresh {
	animation: spin 0.5s linear !important;
}
.custom-answer-highlight {
	border: 2px solid red;
	/* 紅色邊框 */
	color: #000;
	/* 黑色文字 */
	background-color: #fff7f7;
	/* 淡紅背景 */
}
.custom-question {
	background-color: #f2fff7;
	/* 淡綠背景 */
	color: #000;
	/* 黑色文字 */
	padding: 12px;
	border-radius: 6px;
	text-align: left;
}
.custom-question-highlight {
	border: 2px solid #28a745;
	/* 綠色邊框 */
	white-space: pre-wrap;
	word-wrap: break-word;
	text-align: left;
	/* 文字靠左對齊 */
}
.source-table {
	font-size: 0.9em;
	word-break: break-all;
	margin-top: 10px;
}
.source-table th {
	background-color: #e9f1fb;
	color: #0056b3;
	text-align: center;
}
.source-table td {
	vertical-align: middle;
	text-align: center;
}
.source-table td:nth-child(4) {
	text-align: left;
	/* 標題欄靠左 */
}
.source-table td:nth-child(5) {
	text-align: left;
	/* 標題欄靠左 */
}
.source-tag {
	display: inline-block;
	color: #ffffff;
	font-weight: bold;
	padding: 0px 4px 0px 4px;
	border-radius: 8px;
}
.source-web {
	background-color: #a00; /* 深紅色 */
}
.source-line {
	background-color: #080; /* 深綠色 */
}