//** {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: "Microsoft YaHei", sans-serif;
}*

html {
	font-size: 62.5%;
	/* 魔法基准值，1rem=10px */
}

body {
	background-color: #f5f5f5;
}

.schedule-container {
	max-width: 1920px;
	margin: 0 auto;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	overflow: auto !important;
	margin-bottom: 300px;
}

table {
	width: 100%;
	border-collapse: collapse;
	text-align: center;
}

th,
td {
	border: 1px solid #ddd;
	padding: 12px 8px;
	vertical-align: middle;
}

tr.db-bot-line {
	border-bottom: 3px double #ccc;
}

#title-panel{
	text-align: center;
	margin: 0 auto;
	padding:0.7rem;
}

#title {
	text-align: center;
	font-weight: bold;
	padding: 1rem 0 1rem 0;
}

.current-week{
font-size:2rem;
font-weight:bold;
color:#d9534f;
}

.fontTit{
	font-size: 2.3rem;
}

/* 周次标题样式 */
.week-title {
	background-color: #fff2cc;
	font-weight: bold;
	font-size: 2.5rem;
	color: #d9534f;
}

.weekend {
	display: none;
	font-size: 1.6rem;
	line-height: 1.6;
}

/* 日期/星期行样式 */

th{
	padding:10px;
	background-color:#eef2ff;
	text-align:center;
	font-weight:normal;
}

.weekday {
	color: #333;
	font-weight: bold;
	margin-top: 4px;
	font-size: 1.8rem;
}

/* ============ 日期行吸顶特效 ============ */
/* 滚动导致表头日期行被顶部导航遮住后，由 JS 克隆一份日期行固定在导航条正下方，
   z-index 低于 .topnav(1200)，保证不会挡住头部菜单；日期行重新露出时隐藏，恢复原样。 */
#date-sticky-bar {
	position: fixed;
	/* top 由 JS 按导航条实际高度写入（导航高度随内容/断点变化），这里只是兜底值 */
	top: 48px;
	left: 0;
	right: 0;
	/* 低于 .topnav(1200)：任何情况下都不会盖住头部菜单 */
	z-index: 1100;
	display: none;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}

#date-sticky-bar.is-visible {
	display: block;
}

#date-sticky-bar .date-sticky-inner {
	max-width: 1920px;
	margin: 0 auto;
	overflow: hidden;
	/* 与 .schedule-container 的横向滚动联动（移动端窄屏） */
	scrollbar-width: none;
}

#date-sticky-bar table {
	width: 100%;
	border-collapse: collapse;
	text-align: center;
	/* 列宽由 JS 按原表实测值写入，固定布局才不会被可用宽度重新分配 */
	table-layout: fixed;
}

#date-sticky-bar th {
	background-color: #eef2ff;
	text-align: center;
	font-weight: normal;
	border: 1px solid #ddd;
	/* 不在这里写 padding/font-size：base 规则与响应式媒体查询里的 th 样式
	   已经把内边距算好了，写死会让吸顶行的行高和原表不一致 */
	/* 页面没有全局 box-sizing 重置，这里必须声明 border-box，
	   否则 JS 写入的实测列宽（含 padding/边框）会被当成内容宽度，列宽和行高都会走样 */
	box-sizing: border-box;
}

/* 时间段列样式 */
.time-col {
	font-weight: bold;
	font-size: 1.2rem;
}

/* 课程单元格样式 */
.course-cell {
	font-size: 1.6rem;
	line-height: 1.6;
}

.course-cell. {
	background-color: #fff2cc;
}

.course-cell. {
	background-color: #fde6cc;
}

/* 节假日列：该列所有 td 的课程文字置为淡灰色 */
.holiday-col {
	color: #b9b9b9;
}

/* ============ 课程定位闪烁（#course=周-星期-节次）============ */
/* 用 inset 阴影叠在单元格原有背景之上，不影响背景色本身，也不影响文字 */
@keyframes courseCellFlash {

	0%,
	36%,
	72%,
	100% {
		box-shadow: inset 0 0 0 100rem rgba(255, 173, 20, 0);
	}

	18%,
	54% {
		box-shadow: inset 0 0 0 100rem rgba(255, 173, 20, .85);
	}
}

.course-flash {
	animation: courseCellFlash 1.8s ease-in-out 1 both;
}

/* ============ 单元格鼠标经过：渐进着色特效 ============ */
/* 1) 背景色平滑过渡，鼠标离开时按同样的缓动渐回原来的背景色 */
#currTable td {
	position: relative;
	z-index: 0;
	overflow: hidden;
	transition: background-color .45s cubic-bezier(.4, 0, .2, 1);
}

/* 2) 涟漪层：以鼠标位置为圆心向外扩散的高亮
      z-index:-1 让它压在单元格背景之上、文字之下，不遮挡课程文字 */
#currTable td::after {
	content: "";
	position: absolute;
	left: var(--cell-x, 50%);
	top: var(--cell-y, 50%);
	width: 260%;
	height: 260%;
	transform: translate(-50%, -50%) scale(0);
	border-radius: 50%;
	background: radial-gradient(circle closest-side,
			rgba(255, 183, 77, .55) 0%,
			rgba(255, 183, 77, .30) 45%,
			rgba(255, 183, 77, 0) 100%);
	opacity: 0;
	pointer-events: none;
	z-index: -1;
	transition: transform .55s cubic-bezier(.22, .61, .36, 1), opacity .4s ease;
}

/* 3) 悬停着色：!important 用于覆盖 JS（setColumnBg）写在行内的背景色 */
#currTable td:hover {
	background-color: #ffe4b0 !important;
}

#currTable td:hover::after {
	transform: translate(-50%, -50%) scale(1);
	opacity: 1;
}

/* 4) 打印 / 减弱动效偏好下关闭特效 */
@media print {
	#currTable th::after,
	#currTable td::after {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {

	#currTable th,
	#currTable td,
	#currTable th::after,
	#currTable td::after {
		transition: none;
	}
}

/* 响应式适配 */
@media (max-width: 768px) {
	html {
		font-size: 62.5%;
		/* 魔法基准值，1rem=10px */
	}

	body {
		padding: 1%;
	}

	table {
		font-size: 1.6rem;
	}

	th,
	td {
		padding: 6px 4px;
		max-width: 15%;
		width: 2rem;
	}

	.hide {
		display: none !important;
	}
	.week-title {
		max-width: 10%;
	}
}

@media (max-width: 1024px) {
	html {
		font-size: 62.5%;
		/* 魔法基准值，1rem=10px */
	}

	body {
		padding: 1%;
	}

	table {
		font-size: 1.6rem;
	}

	th,
	td {
		padding: 6px 4px;
	}
}

@media (max-width: 1440px) {
	html {
		font-size: 62.5%;
		/* 魔法基准值，1rem=10px */
	}

	body {
		padding: 1%;
	}

	table {
		font-size: 1.6rem;
	}

	th,
	td {
		padding: 6px 4px;
	}
}

@media (max-width: 1920px) {
	html {
		font-size: 62.5%;
		/* 魔法基准值，1rem=10px */
	}

	body {
		padding: 0 0.5% 0.5% 1%;
	}

	table {
		font-size: 1.6rem;
	}

	th,
	td {
		padding: 6px 4px;
	}
}

.btn-group {
	padding: 0.5rem 0 0 0;
	display: flex;
	flex-wrap: wrap;
	/* 开启 Flex 布局 */
	row-gap: 0.4rem;
	column-gap: 1rem;
	/* 按钮之间的间距，比 margin 更好用 */
	justify-content: center;
	/* 可选：让按钮组居中，或者用 flex-start 左对齐 */
}

.btn-group .break {
	width: 100%;
}

/* 基础按钮样式 */
.btn {
	display: inline-block;
	padding: 8px 16px;
	border-radius: 8px;
	/* 圆角大小 */
	border: none;
	font-size: 1.8rem;
	font-weight: bold;
	text-align: center;
	cursor: pointer;
	transition: all 0.2s ease;
	white-space: nowrap;
	user-select: none;
}

.btn:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}

.btn:active {
	transform: translateY(0);
}

/* 主色蓝 */
.btn-primary {
	background: #1677ff;
	color: #fff;
}

/* 成功绿 */
.btn-success {
	background: #00b42a;
	color: #fff;
}

/* 警告橙 */
.btn-warning {
	background: #ff7d00;
	color: #fff;
}

/* 危险红 */
.btn-danger {
	background: #f53f3f;
	color: #fff;
}

/* 信息浅蓝 */
.btn-info {
	background: #40a9ff;
	color: #fff;
}

/* 灰色（默认/次要） */
.btn-default {
	background: #f5f5f5;
	color: #333;
}

/* 紫色（优雅） */
.btn-purple {
	background: #722ed1;
	color: #fff;
}

/* 浅黄*/
.btn-buff {
	background: #FFFAE8;
	color: #000;
}

/* 青色（清爽） */
.btn-cyan {
	background: #13c2c2;
	color: #fff;
}

.btn-week {
	width: 3.5rem;
	padding: 0.5rem 0.8rem;
	margin-right:0.5rem;
	margin-bottom: 0.5rem;
}

.btn-week-active {
	background-color: #fff2cc;
	color: #d9534f;
}

.remark {
	font-weight: bold;
	display: inline-block;
	padding: 2px 4px;
	border-radius: 3px;
	/* 圆角大小 */
	border: none;
	font-size: 1.4rem;
	font-weight: bold;
	text-align: center;
	cursor: pointer;
	transition: all 0.2s ease;
	white-space: nowrap;
	user-select: none;
}

/** 颜色 start **/

.color-red {
	background: #f53f3f;
	color: #fff;
}

.color-orange {
	background: #ea580c;
	color: #fff;
}
.color-green{
	background: #6BD089;
	color: #fff;
}
	

/** 颜色 end**/
.option-container {
	margin: 0 auto;
	width: 100%;
	text-align: right;
	max-width: 1920px;
	padding: 1rem 0 1rem 0;
}

#bottom-btn-bar {
	position: fixed;
	left: 50%;
	bottom: 1rem;
	/* 离底部20px */
	transform: translateX(-50%);
	z-index: 999;

	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem;
	padding: 10px 16px;
	width: 95%;
	max-width: 600px;

	/* 极高透明度背景 */
	background: rgba(255, 255, 255, 0.01);
	backdrop-filter: blur(6px);
	border-radius: 40px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}


#week-btn-bar {
	display: none;
}

@media print {
	/* 在此处编写仅对打印生效的CSS规则 */
	.schedule-container {
		max-width: 1920px;
		margin: 0 auto;
		background: #fff;
		border-radius: 8px;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
		width: 100%;
	}

	#bottom-btn-bar {
		display: none;
	}

	/* 打印时隐藏日期吸顶条 */
	#date-sticky-bar {
		display: none !important;
	}
}

/** icon font start **/
@font-face {
  font-family: "iconfont"; /* Project id  */
  src: url('iconfont.ttf?t=1789539340193') format('truetype');
}

.iconfont {
  font-family: "iconfont" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-worker:before {
  content: "\e65a";
}

.icon-moon:before {
  content: "\e647";
}

.icon-denglong:before {
  content: "\e61b";
}

.icon-zongzi:before {
  content: "\e62c";
}

.icon-balloon:before {
  content: "\e661";
}

.icon-bianpao:before {
  content: "\e64f";
}

/* ==========================================================================
   顶部自适应多级菜单（course.html）
   移动端(<=768px)：整条导航折叠为左上角的汉堡按钮，点击后从左侧滑出抽屉，
                    二/三级菜单以手风琴方式逐级展开；
   桌面端(>=769px)：横向导航条，二级下拉菜单、三级向右飞出菜单，
                    支持鼠标悬停与键盘 Tab 聚焦展开。
   ========================================================================== */
/* 统一盒模型：这里必须显式声明 border-box。
   菜单项用的是 width:100% + 左右 padding，默认的 content-box 会让每一项
   比容器宽 32px，在移动端抽屉里就会撑出横向滚动条。 */
.topnav,
.topnav *,
.topnav *::before,
.topnav *::after {
	box-sizing: border-box;
}

.topnav {
	position: sticky;
	top: 0;
	z-index: 1200;
	background: #fff;
	border-bottom: 1px solid #e9edf4;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}

.topnav-bar {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: 1920px;
	margin: 0 auto;
	padding: 6px 10px;
	min-height: 48px;
}

/* 汉堡按钮：移动端固定在最左侧 */
.topnav-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 38px;
	padding: 0 12px;
	border: 1px solid #dfe4ec;
	border-radius: 8px;
	background: #fff;
	color: #333;
	font-family: inherit;
	font-size: 1.6rem;
	font-weight: 700;
	cursor: pointer;
	user-select: none;
}

.topnav-toggle:active {
	background: #f2f5fa;
}

.topnav-toggle-icon {
	position: relative;
	display: block;
	flex: none;
	width: 18px;
	height: 12px;
}

.topnav-toggle-icon span {
	position: absolute;
	left: 0;
	width: 18px;
	height: 2px;
	border-radius: 2px;
	background: #333;
	transition: transform .22s ease, opacity .18s ease, top .22s ease;
}

.topnav-toggle-icon span:nth-child(1) {
	top: 0;
}

.topnav-toggle-icon span:nth-child(2) {
	top: 5px;
}

.topnav-toggle-icon span:nth-child(3) {
	top: 10px;
}

/* 展开时汉堡变叉号 */
.topnav.is-open .topnav-toggle-icon span:nth-child(1) {
	top: 5px;
	transform: rotate(45deg);
}

.topnav.is-open .topnav-toggle-icon span:nth-child(2) {
	opacity: 0;
}

.topnav.is-open .topnav-toggle-icon span:nth-child(3) {
	top: 5px;
	transform: rotate(-45deg);
}

.topnav-brand {
	min-width: 0;
	overflow: hidden;
	font-size: 1.8rem;
	font-weight: 700;
	color: #1677ff;
	text-decoration: none;
	text-overflow: ellipsis;
	white-space: nowrap;
	transition: color .2s ease, font-size .2s ease;
}

/* 页面标题被吸顶导航遮住后，品牌位临时改显标题内容 */
.topnav-brand.is-title-shown {
	font-size: 1.7rem;
	color: #d9534f;
}

.topnav-list,
.topnav .submenu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.topnav-link,
.topnav .submenu-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	padding: 12px 16px;
	border: 0;
	background: transparent;
	color: #333;
	font-family: inherit;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

/* 展开指示箭头 */
.caret {
	flex: none;
	width: 0;
	height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	opacity: .55;
	transition: transform .2s ease;
}

/* ---------- 移动端：左侧抽屉 ---------- */
.topnav-menu {
	position: fixed;
	top: 0;
	right: auto;
	bottom: 0;
	left: 0;
	width: 84%;
	max-width: 320px;
	padding: 0 0 20px;
	background: #fff;
	box-shadow: 2px 0 18px rgba(0, 0, 0, .2);
	transform: translateX(-102%);
	transition: transform .25s ease;
	/* 只纵向滚动，禁止横向滚动条；同时阻止滚动穿透到页面 */
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	z-index: 1210;
}

.topnav.is-open .topnav-menu {
	transform: translateX(0);
}

.topnav-menu-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 16px;
	border-bottom: 1px solid #eef1f6;
}

.topnav-menu-title {
	font-size: 1.7rem;
	font-weight: 700;
	color: #1677ff;
}

.topnav-close {
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 8px;
	background: #f2f5fa;
	color: #333;
	font-size: 2.2rem;
	line-height: 1;
	cursor: pointer;
}

.topnav-backdrop {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0, 0, 0, .35);
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease, visibility .2s ease;
	z-index: 1205;
}

.topnav.is-open .topnav-backdrop {
	opacity: 1;
	visibility: visible;
}

/* 子菜单默认收起，展开方式由下面两套响应式规则分别决定 */
.topnav .submenu {
	display: none;
}

/* ---------- 移动端专属：子菜单内联手风琴展开 ----------
   注意：整套手风琴样式只在 <=768px 生效，切到桌面端后 .open 不再影响显示，
   避免窄屏展开的状态被带到宽屏。 */
@media (max-width: 768px) {
	.topnav .submenu {
		background: #fafbfd;
		border-top: 1px solid #f0f2f6;
		border-bottom: 1px solid #f0f2f6;
	}

	.topnav .submenu .submenu {
		background: #f5f7fb;
	}

	.topnav .topnav-item.open>.submenu,
	.topnav .submenu li.open>.submenu {
		display: block;
	}

	.topnav .submenu .submenu .submenu-link {
		padding-left: 30px;
	}

	.topnav .open>.topnav-link .caret,
	.topnav .submenu li.open>.submenu-link .caret {
		transform: rotate(180deg);
	}
}

/* 当前课表高亮 */
.topnav .topnav-item>.topnav-link.is-active,
.topnav .submenu-link.is-active {
	background: #fff2cc;
	color: #d9534f;
}

/* ---------- 桌面端：横向导航 + 下拉 / 飞出 ---------- */
@media (min-width: 769px) {
	.topnav-toggle {
		display: none;
	}

	.topnav-menu {
		position: static;
		display: block;
		width: auto;
		max-width: none;
		padding: 0;
		background: transparent;
		box-shadow: none;
		transform: none;
		overflow: visible;
	}

	.topnav-menu-head {
		display: none;
	}

	.topnav-backdrop {
		display: none;
	}

	.topnav-list {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}

	/* 一级项和带有下级的菜单项都要成为定位基准，
	   否则三级飞出菜单会以整个二级面板为基准，出现错位 */
	.topnav-item,
	.topnav .submenu li.has-sub {
		position: relative;
	}

	.topnav-link {
		width: auto;
		padding: 10px 14px;
		border-radius: 8px;
	}

	.topnav .submenu {
		position: absolute;
		top: 100%;
		left: 0;
		/* 与触发器留出一点间距，避免和导航条底边、阴影糊在一起 */
		margin-top: 8px;
		min-width: 200px;
		padding: 6px;
		background: #fff;
		border: 1px solid #e9edf4;
		border-radius: 10px;
		box-shadow: 0 10px 28px rgba(0, 0, 0, .14);
		display: none;
	}

	/* 透明桥接区：补上面那 8px 空隙，鼠标从触发器移到面板上时不会中断 hover */
	.topnav .submenu::before {
		content: "";
		position: absolute;
		top: -8px;
		right: 0;
		left: 0;
		height: 8px;
	}

	/* 三级菜单向右飞出，-7px 用于抵消面板 padding+边框，使其首行与被悬停的那一行对齐 */
	.topnav .submenu .submenu {
		top: -7px;
		left: 100%;
		margin: 0 0 0 6px;
		background: #fff;
	}

	/* 桥接左右 6px 空隙 */
	.topnav .submenu .submenu::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: -8px;
		width: 8px;
	}

	/* 桌面端只认悬停 / 键盘聚焦，不认移动端遗留的 .open，
	   因此窄屏展开的状态不会在宽屏残留（点击展开由 JS 走 focus-within 实现） */
	.topnav-item.has-sub:hover>.submenu,
	.topnav-item.has-sub:focus-within>.submenu,
	.topnav .submenu li.has-sub:hover>.submenu,
	.topnav .submenu li.has-sub:focus-within>.submenu {
		display: block;
	}

	.topnav .submenu li+li {
		margin-top: 2px;
	}

	.topnav .submenu-link {
		width: 100%;
		padding: 10px 12px;
		border-radius: 6px;
		white-space: nowrap;
	}

	.topnav .topnav-link:hover,
	.topnav .submenu-link:hover {
		background: #eef2ff;
		color: #1677ff;
	}

	/* 鼠标进入子面板 / 键盘聚焦时，父级项保持高亮，视觉上才连成一体 */
	.topnav-item.has-sub:hover>.topnav-link,
	.topnav-item.has-sub:focus-within>.topnav-link,
	.topnav .submenu li.has-sub:hover>.submenu-link,
	.topnav .submenu li.has-sub:focus-within>.submenu-link {
		background: #eef2ff;
		color: #1677ff;
	}

	.topnav .topnav-link:focus-visible,
	.topnav .submenu-link:focus-visible {
		outline: 2px solid #1677ff;
		outline-offset: -2px;
	}

	/* 桌面端三级菜单箭头朝右 */
	.topnav .submenu li.has-sub>.submenu-link .caret {
		transform: rotate(-90deg);
	}

}

@media print {
	.topnav {
		display: none !important;
	}
}


/** icon font end **/