body {
	min-height: 100vh;
	/*background-image: url('https://imgs.freeimg.cn/s/6861824e3d827.png');*/
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow-x: hidden;
	overflow-y: hidden !important;
}
.bg-pattern {
	background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23ffffff' fill-opacity='0.03' fill-rule='evenodd'/%3E%3C/svg%3E");
}
.glass-effect {
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	background-color: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.18);
	box-shadow: 0 8px 32px 0 rgb(0 0 0 / 10%);
}
.text-shadow {
	text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
}
.login-box-scale {
	transform: scale(0.65);
}
.login-left {
	background: rgba(30, 94, 46, 0.3);
}
.login-side-img {
	height: 16rem;
	background: url('https://imgs.freeimg.cn/s/6861859156c2d.png') center/cover no-repeat;
}
.login-side-img-gradient {
	background: linear-gradient(to top,rgba(30,94,46,0.6),transparent);
	height: 100%;
}
.login-icon-circle {
	width: 40px;
	height: 40px;
}
.login-checkbox {
	background: rgba(255,255,255,0.1) !important;
	border: 1px solid rgba(255,255,255,0.2) !important;
	color: #1E5E2E !important;
	width: 16px;
	height: 16px;
	padding-right: 10px !important;
}
.login-form-checkbox {
	position: relative;
	display: block;
	padding-left: 0 !important;
}
.login-btn {
	background: #1E5E2E !important;
	color: #fff !important;
	border-radius: 0.7rem !important;
	font-weight: 500;
	font-size: 1.05rem;
	box-shadow: 0 4px 16px 0 rgba(30,94,46,0.08);
	transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
	padding: 0.7rem 0;
}
.login-btn:hover {
	background: #184c24 !important;
	transform: translateY(-4px);
	box-shadow: 0 8px 32px 0 rgba(30,94,46,0.15);
}
.login-captcha {
	height: 38px;
	cursor: pointer;
	position: relative;
	min-width: 90px;
	justify-content: center !important;
	align-items: center !important;
	border-radius: 0.7rem;
	font-size: 1rem;
}
.login-tab-active {
	border-bottom: 2px solid #1E5E2E !important;
	color: #1E5E2E !important;
	font-weight: 500;
	background: transparent !important;
}
.login-tab {
	/*border-bottom: 2px solid transparent !important;*/
	background: transparent !important;
	transition: color 0.3s;
	font-size: 1.25rem !important;
	line-height: 1.5rem !important;
	flex: 1;
	padding: 12px 0;
	border: none;
	font-weight: bold;
	--tw-text-opacity: 1;
	color: rgb(30 94 46 / var(--tw-text-opacity, 1));
}
@media (max-width: 768px) {
	.login-box-scale {
		transform: scale(1);
	}
}
.animate-shake {
	animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;
}
@keyframes shake {
	0%, 100% { transform: translateX(0); }
	10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
	20%, 40%, 60%, 80% { transform: translateX(5px); }
}
/* 导航栏优化 */
.login-navbar {
	height: 56px;
	min-height: 56px;
	background: rgba(255,255,255,0.10);
	box-shadow: 0 2px 8px 0 rgba(0,0,0,0.04);
	border-bottom: 1px solid rgba(255,255,255,0.18);
	display: flex;
	align-items: center;
}
.login-title {
	font-size: 2.1rem;
	font-weight: bold;
	color: #fff;
	text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
	margin-bottom: 0;
	margin-left: 10px;
}
.login-menu {
	gap: 2.5rem !important;
	align-items: center;
	height: 100%;
}
.login-menu-link {
	color: #fff !important;
	font-size: 1.18rem;
	font-weight: 600;
	text-decoration: none;
	transition: color 0.2s;
	line-height: 56px;
	padding: 0 8px;
}
.login-menu-link:hover {
	color: #1E5E2E !important;
}
/* 登录主容器靠右 */
.login-main-box {
	min-height: 100vh;
	justify-content: center;
	/*align-items: flex-end;*/
	position: relative;
}
.login-box-fix {
	margin-right: 0;
	margin-left: auto;
	width: 100%;
	max-width: 720px;
	min-width: 380px;
	background: rgba(255,255,255,0.16);
	box-shadow: 0 8px 32px 0 rgba(0,0,0,0.18);
	border-radius: 1.5rem;
	overflow: hidden;
	position: relative;
	padding: 0;
}
.login-left {
	background: rgba(30, 94, 46, 0.22);
	min-height: 100%;
	border-top-left-radius: 1.5rem;
	border-bottom-left-radius: 1.5rem;
	padding: 1.5rem 1rem;
}
.login-left-border {
	border-right: 2px solid rgba(30,94,46,0.10) !important;
}
.login-side-img {
	height: 11rem;
	background: url('/img/login_side.png') center/cover no-repeat;
	border-radius: 1rem;
}
.login-side-img-gradient {
	background: linear-gradient(to top,rgba(30,94,46,0.6),transparent);
	height: 100%;
}
.login-icon-circle {
	width: 40px;
	height: 40px;
}
.f {
	--tw-space-y-reverse: 0;
	margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
	margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

button, input, optgroup, select, textarea {
	 font-family: inherit !important;
	 font-feature-settings: inherit !important;
	 font-variation-settings: inherit !important;
	font-size: 100% !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	 letter-spacing: inherit !important;
	color: inherit;
	margin: 0;
	padding: 0;
}
/* 登录输入框/按钮优化 */
.login-input {
	--tw-ring-color: rgb(30 94 46 / 0.5);
	--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
	/*--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);*/
	box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
	background-color: rgb(255 255 255 / 0.7) !important;
	border-color: rgb(255 255 255 / 0.2);
	/*font-size: 0.98rem;*/
	/*height: 38px !important;*/
	/*min-height: 38px !important;*/
	line-height: 1.2;
	border-width: 1px;
	border-radius: 0.5rem;
	width: 100%;
	outline: 2px solid transparent;
	outline-offset: 2px;
	transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
	padding: 0.75rem 1rem 0.75rem 2.5rem;
}
.login-input::placeholder {
	color: #747373 !important;
	opacity: 1;
}
.login-inout-icon {
	padding: 12px 12px !important;
	align-items: center;
	display: flex;
	left: 0px;
	top: 0px;
	bottom: 0px;
	position: absolute;
	pointer-events: none;
	--tw-text-opacity: 1;
	color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.login-input-btn {
	transition: all 0.3s cubic-bezier(3.25, 2.8, 0.25, 1);
	--tw-text-opacity: 1;
	color: rgb(156 163 175 / var(--tw-text-opacity, 1));
	padding-right: 0.75rem;
	align-items: center;
	display: flex;
	right: 0px;
	top: 0px;
	bottom: 0px;
	position: absolute;
	cursor: pointer;
	-webkit-appearance: button;
	background-color: transparent;
	background-image: none;
	text-transform: none;

}

.login-btn {
	background: #1E5E2E !important;
	color: #fff !important;
	border-radius: 0.7rem !important;
	font-weight: 600;
	font-size: 1.05rem;
	box-shadow: 0 4px 16px 0 rgba(30,94,46,0.10);
	transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
	padding: 0.7rem 0;
}
.login-btn:hover {
	background: #184c24 !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 32px 0 rgba(30,94,46,0.18);
}
.login-captcha {
	height: 38px;
	cursor: pointer;
	position: relative;
	min-width: 90px;
	justify-content: center !important;
	align-items: center !important;
	border-radius: 0.7rem;
	font-size: 1rem;
}

/* 页脚 */
.fixed-bottom {
	left: 0;
	right: 0;
	width: 100%;
}
.login-bg {
	background-image: url('/img/bg.png') !important;
	background-size: cover !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	min-height: 100vh;
	width: 100vw;
}
.relative {
	position: relative;
}

.text-white {
	--tw-text-opacity: 1;
	color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
*, ::before, ::after {
	--tw-border-spacing-x: 0;
	--tw-border-spacing-y: 0;
	--tw-translate-x: 0;
	--tw-translate-y: 0;
	--tw-rotate: 0;
	--tw-skew-x: 0;
	--tw-skew-y: 0;
	--tw-scale-x: 1;
	--tw-scale-y: 1;
	--tw-pan-x: ;
	--tw-pan-y: ;
	--tw-pinch-zoom: ;
	--tw-scroll-snap-strictness: proximity;
	--tw-gradient-from-position: ;
	--tw-gradient-via-position: ;
	--tw-gradient-to-position: ;
	--tw-ordinal: ;
	--tw-slashed-zero: ;
	--tw-numeric-figure: ;
	--tw-numeric-spacing: ;
	--tw-numeric-fraction: ;
	--tw-ring-inset: ;
	--tw-ring-offset-width: 0px;
	--tw-ring-offset-color: #fff;
	--tw-ring-color: rgb(59 130 246 / 0.5);
	--tw-ring-offset-shadow: 0 0 #0000;
	--tw-ring-shadow: 0 0 #0000;
	--tw-shadow: 0 0 #0000;
	--tw-shadow-colored: 0 0 #0000;
	--tw-blur: ;
	--tw-brightness: ;
	--tw-contrast: ;
	--tw-grayscale: ;
	--tw-hue-rotate: ;
	--tw-invert: ;
	--tw-saturate: ;
	--tw-sepia: ;
	--tw-drop-shadow: ;
	--tw-backdrop-blur: ;
	--tw-backdrop-brightness: ;
	--tw-backdrop-contrast: ;
	--tw-backdrop-grayscale: ;
	--tw-backdrop-hue-rotate: ;
	--tw-backdrop-invert: ;
	--tw-backdrop-opacity: ;
	--tw-backdrop-saturate: ;
	--tw-backdrop-sepia: ;
	--tw-contain-size: ;
	--tw-contain-layout: ;
	--tw-contain-paint: ;
	--tw-contain-style: ;
}