*{
	padding: 0;
	margin: 0;
	font-size: 16px;
	font-weight: 500;
}
body{
	overflow: hidden;
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	background: url("../images/background.jpg") repeat-x;
	background-size: cover;
	background-position: center;
	height: calc(100dvh - 16px);
	position: relative;
	margin: 8px;
}
a{
	display: inline-block;
	background: linear-gradient(135deg, #ffffff, #f8f9fa);
	color: #333;
	border: 2px solid #008CBA;
	border-radius: 12px;
	font-size: 16px;
	text-align: center;
	width: 100px;
	text-decoration: none;
	padding: 4px;
	font-weight: 500;
	transition: all 0.3s ease;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
a:hover {
	background: linear-gradient(135deg, #008CBA, #0066cc);
	color: white;
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0, 140, 186, 0.3);
}
.big_title{
	text-align: center;
	text-decoration:none;
	font-size: 42px;
	/* font-weight: 700; */
	color: #008CBA;
	display: inline;
	text-shadow: 0 2px 4px rgba(0, 140, 186, 0.2);
	letter-spacing: -0.5px;
}

.title-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-top: 4px;
	margin-bottom: 4px;
}
.announcement{
	max-width: min(82%, 960px);
	height: 36px;
	line-height: 36px;
	border-radius: 18px;
	padding: 0 12px;
	border: 1px solid #008CBA;
	background: linear-gradient(135deg,#ffffff,#f0f7ff);
	color:#0b5ea8;
	font-size:16px;
	overflow:hidden;
	white-space:nowrap;
}
.announcement-inner{
	display:inline-block;
	will-change: transform;
}

/* 移动端优化：公告置于标题下方并放大尺寸 */
@media (max-width: 640px){
	.title-row{
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
	.big_title{
		font-size: 34px;
	}
	.announcement{
		max-width: 100%;
		width: 100%;
		height: 40px;
		line-height: 40px;
		border-radius: 20px;
		font-size: 16px;
	}
}

input[type=text] {
	background: linear-gradient(135deg, #f8f9fa, #e9ecef);
	color: #333;
	border: 1.5px solid #e0e6ed;
	border-radius: 10px;
	padding: 4px;
	font-size: 15px;
	transition: all 0.3s;
	box-shadow: 0 2px 8px rgba(0, 140, 186, 0.06);
	width: 100%;
	font-family: inherit;
}

input[type=text]:focus {
	outline: none;
	border-color: #008CBA;
	box-shadow: 0 4px 16px rgba(0, 140, 186, 0.13);
	background: #fff;
}

input[type=password] {
	background: linear-gradient(135deg, #f8f9fa, #e9ecef);
	color: #333;
	border: 1.5px solid #e0e6ed;
	border-radius: 10px;
	padding: 4px;
	font-size: 15px;
	transition: all 0.3s;
	box-shadow: 0 2px 8px rgba(0, 140, 186, 0.06);
	width: 100%;
	font-family: inherit;
	margin-bottom: 8px;
}

input[type=password]:focus {
	outline: none;
	border-color: #008CBA;
	box-shadow: 0 4px 16px rgba(0, 140, 186, 0.13);
	background: #fff;
}

input[type=tel] {
	background: linear-gradient(135deg, #f8f9fa, #e9ecef);
	color: #333;
	border: 1.5px solid #e0e6ed;
	border-radius: 10px;
	padding: 4px;
	font-size: 15px;
	transition: all 0.3s;
	box-shadow: 0 2px 8px rgba(0, 140, 186, 0.06);
	width: 100%;
	font-family: inherit;
}

input[type=tel]:focus {
	outline: none;
	border-color: #008CBA;
	box-shadow: 0 4px 16px rgba(0, 140, 186, 0.13);
	background: #fff;
}
form{
	position: absolute;
	top: 50%;
	background: rgba(255, 255, 255, 0.95);
	left: max(25%, 155px);
	padding: 20px;
	width: 280px;
	transform: translateX(-50%) translateY(-50%);
	text-align: center;
	border-radius: 24px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	z-index: 2;
}
.download_button{
	float:right;
}
input {
	margin-top: 8px;
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
input[type='submit']{
	background: linear-gradient(135deg, #008CBA, #0066cc);
	border: none;
	color: white;
	font-size: 16px;
	border-radius: 12px;
	width: 180px;
	height: 40px;
	cursor: pointer;
	font-weight: 600;
	transition: all 0.3s ease;
	box-shadow: 0 4px 12px rgba(0, 140, 186, 0.3);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
input[type='submit']:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0, 140, 186, 0.4);
	background: linear-gradient(135deg, #0066cc, #004499);
}
.selected-classes{
	min-height: 45px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	align-items: center;
	margin-top: 4px;
	background: rgba(248, 249, 250, 0.8);
	border-radius: 12px;
}
.add {
	display: inline-block;
	border: 2px solid #008CBA;
	border-radius: 50%;
	width: 24px;
	height: 24px;
	cursor: pointer;
	background: linear-gradient(135deg, #ffffff, #f8f9fa);
	transition: all 0.3s ease;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	text-align: center;
	font-weight: bold;
	color: #008CBA;
}
.add:hover {
	transform: scale(1.1);
	box-shadow: 0 4px 12px rgba(0, 140, 186, 0.3);
	background: linear-gradient(135deg, #008CBA, #0066cc);
	color: white;
}
.selected-classes button{
	background: linear-gradient(135deg, #ffffff, #f8f9fa);
	border: 1px solid #e0e6ed;
	font-size: 14px;
	border-radius: 8px;
	padding: 4px 8px;
	cursor: pointer;
	color: #333;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	font-weight: 500;
}
.selected-classes button:hover {
	background: linear-gradient(135deg, #008CBA, #0066cc);
	color: white;
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0, 140, 186, 0.3);
}
.selected-classes div{
	border: 2px solid #98d4e8;
	border-radius: 8px;
	padding: 4px 8px;
	margin: 4px;
	padding-left: 8px;
	background: linear-gradient(135deg, #f0f8ff, #e6f3ff);
	box-shadow: 0 2px 8px rgba(152, 212, 232, 0.2);
	font-weight: 500;
	color: #008CBA;
}
.help {
	position: absolute;
	left: 16px;
	bottom: 16px;
	width: 40px;
	height: 40px;
	font-size: 20px;
	line-height: 40px;
	border-radius: 50%;
	background: linear-gradient(135deg, #008CBA, #0066cc);
	color: white;
	text-decoration: none;
	transition: all 0.3s ease;
	box-shadow: 0 4px 12px rgba(0, 140, 186, 0.3);
	z-index: 2;
}
.help:hover {
	transform: translateY(-2px) scale(1.1);
	box-shadow: 0 6px 20px rgba(0, 140, 186, 0.4);
}
select {
	background: linear-gradient(135deg, #ffffff, #f8f9fa);
	color: #333;
	border: 2px solid #e0e6ed;
	border-radius: 8px;
	padding: 4px;
	font-size: 14px;
	transition: all 0.3s ease;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	font-weight: 500;
}
select:focus {
	outline: none;
	border-color: #008CBA;
	box-shadow: 0 4px 16px rgba(0, 140, 186, 0.2);
}
a[href="/help?name=04_教师使用守则.md"]{
	border: none;
	color: blue !important;
	background-color: white;
	margin-top: 4px;
}
a[href="/help?name=04_教师使用守则.md"]:hover{
	background: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.error-message {
  color: red;
  margin-top: 6px;
}

.remember-checkbox {
	appearance: none;
	width: 16px;
	height: 16px;
	border: 2px solid #3498db;
	border-radius: 3px;
	margin-top: -0.2px;
	cursor: pointer;
	position: relative;
	transform: translateX(2px) translateY(7px);
}

.remember-checkbox:checked {
	background-color: #3498db;
	border-color: #3498db;
}

.remember-checkbox:checked::after {
	content: "✓";
	color: white;
	font-size: 12px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.agreement label {
	margin-left:2px;
	vertical-align: middle;
	cursor: pointer;
}