
/* ========== 应用容器（样式下沉到 body，app-container div 已移除）========== */
/* body 直接作为 flex 根容器，同时承载 sidebar + main-content */
body {
	display: flex;
	height: 100vh;
	/* 与 base.css 保持一致：跟随软键盘收缩，输入栏才不会被顶出屏幕 */
	height: var(--app-height, 100vh);
	width: 100%;
	overflow: hidden;
}

/* ========== 侧边栏 ========== */
.sidebar {
	width: 280px;
	min-width: 280px;
	background: var(--color-bg-sidebar);
	border-right: 1px solid var(--color-border-sidebar);
	color: var(--color-text-inverse);
	display: flex;
	flex-direction: column;
	/* 【优化】transition 只过渡相关属性，避免 width 变化触发不必要的 repaint */
	transition: width var(--transition-normal),
		min-width var(--transition-normal),
		transform var(--transition-slow);
	z-index: 100;
	overflow: hidden;
}

.sidebar.collapsed {
	width: 0;
	min-width: 0;
}

.sidebar-content {
	flex: 1;
	padding: var(--space-lg);
	overflow-y: auto;
}

.new-chat-btn {
	width: 100%;
	padding: 12px 16px;
	background: var(--color-primary);
	color: var(--color-text-inverse);
	border: 1px solid var(--color-primary);
	border-radius: var(--radius-md);
	cursor: pointer;
	font-size: var(--font-size-md);
	font-weight: 600;
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

.new-chat-btn:hover {
	background: var(--color-primary-light);
	border-color: var(--color-primary);
}

.chat-history {
	margin-top: var(--space-lg);
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.history-item {
	padding: 10px 12px;
	border-radius: var(--radius-md);
	cursor: pointer;
	font-size: var(--font-size-sm);
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

.history-item:hover {
	background: rgba(255,255,255,0.08);
}

.history-item.active {
	background: var(--color-primary);
	color: var(--color-text-inverse);
}

.history-item svg {
	min-width: 16px;
	flex-shrink: 0;
	color: #66CCFF;
}

.history-item span {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.history-item .conv-delete {
	flex-shrink: 0;
	margin-left: auto;
	background: none;
	border: none;
	color: #99CCFF;
	cursor: pointer;
	font-size: 18px;
	padding: 0 4px;
	opacity: 0;
	transition: opacity var(--transition-normal);
	text-align: center;
	line-height: 1;
	user-select: none;
}

.history-item:hover .conv-delete {
	opacity: 1;
}

.conv-delete:hover {
	color: var(--color-text-inverse);
}

/* 今日提问计数 */
.sidebar-footer {
	margin-top: auto;
	padding: var(--space-md) var(--space-lg);
	border-top: 1px solid var(--color-border-sidebar);
	color: #99CCFF;
	font-size: var(--font-size-sm);
	text-align: center;
}



/* ========== 主区域 ========== */
.main-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
	background: var(--color-bg-primary);
}

.chat-header {
	/* flex:none —— 固定高度的头部不参与收缩，避免挤压输入栏 */
	flex: none;
	display: flex;
	align-items: center;
	padding: 10px var(--space-xl);
	background: var(--color-bg-primary);
	border-bottom: 1px solid var(--color-border);
	gap: var(--space-lg);
}

.menu-toggle {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--color-text-secondary);
	border-radius: var(--radius-md);
	display: flex;
	align-items: center;
	padding: var(--space-sm); /* 【优化】增大点击区域 */
}

.menu-toggle:hover {
	background: rgba(51, 153, 255, 0.12);
	color: var(--color-primary-dark);
}

.header-title h1 {
	font-size: var(--font-size-xl);
	font-weight: 600;
	color: var(--color-text-primary);
}

.header-subtitle {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	/* 【优化】确保 subtitle 换行不撑开布局 */
	display: block;
	line-height: 1.2;
}

/* 右上角真人答疑入口（低调文字按钮） */
.teacher-entry-btn {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: var(--space-sm);
	padding: 8px 12px;
	background: transparent;
	color: var(--color-primary);
	border: none;
	border-radius: var(--radius-full);
	font-size: var(--font-size-md);
	font-weight: 500;
	font-family: inherit;
	line-height: 1.5;
	cursor: pointer;
	user-select: none;
	white-space: nowrap;
	flex-shrink: 0;
	transition: color var(--transition-normal);
}

.teacher-entry-btn:hover {
	color: var(--color-primary-dark);
}

.teacher-entry-btn svg {
	flex-shrink: 0;
}


/* ========== 响应式设计（统一断点为 768px）========== */
@media (max-width: 768px) {
	.sidebar {
		position: fixed;
		left: 0;
		top: 0;
		height: 100vh;
		height: 100dvh;
		transform: translateX(-100%);
		z-index: 10000;
		/* 【优化】移动端只用 transform，不过渡 width，避免 reflow */
		transition: transform var(--transition-slow);
	}

	.sidebar.open {
		transform: translateX(0);
	}

	/* 【优化】移除 .sidebar.collapsed 的移动端特殊处理，transform 优先 */
	.sidebar.collapsed {
		transform: translateX(-100%);
		width: 280px;
		min-width: 280px;
	}

	.sidebar-overlay {
		position: fixed;
		inset: 0;
		background: var(--color-bg-overlay);
		z-index: 99;
		display: none;
	}

	.sidebar-overlay.show {
		display: block;
	}

	body,
	.main-content,
	.chat-messages {
		max-width: 100vw;
		overflow-x: hidden;
	}

	.message-avatar {
		width: 30px;
		height: 30px;
		font-size: 13px;
	}
}

/* 说明：其余移动端覆盖规则（气泡宽度、图片、输入区、欢迎页、Toast 等）统一放在
   最后加载的 styles/media.css 末尾。原因：媒体查询不提升选择器优先级，
   写在本文件会被后加载的 chat.css / tabs.css / media.css 同名规则覆盖。 */
