html, body { height: 100%; margin: 0; padding: 0; overflow: hidden; }

.crm-login {
	position: relative;
	width: 100vw;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* 全屏 SVG 背景 */
.bg-svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	display: block;
}

/* 节点脉冲 */
.pulse {
	animation: pulseAnim 2.2s ease-in-out infinite;
	transform-origin: center;
}
@keyframes pulseAnim {
	0%, 100% { transform: scale(1); opacity: 0.5; }
	50% { transform: scale(2.5); opacity: 0.15; }
}

/* 居中登录卡 */
.crm-login-card {
	position: relative;
	z-index: 1;
	width: 380px;
	padding: 36px 38px 30px;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
}

.card-title {
	font-size: 20px;
	font-weight: 600;
	color: #222;
	text-align: center;
	letter-spacing: 1px;
}

/* 输入框 */
.crm-login-card .layui-form-item {
	margin-bottom: 18px;
}
.crm-login-card .layui-input-wrap {
	border-radius: 6px;
	overflow: hidden;
	border: 1px solid #e4e7ed;
	transition: border-color .2s, box-shadow .2s;
}
.crm-login-card .layui-input-wrap:focus-within {
	border-color: #1e9fff;
	box-shadow: 0 0 0 3px rgba(30, 159, 255, .12);
}
.crm-login-card .layui-input {
	height: 42px;
	line-height: 42px;
	border-radius: 0;
	border: none;
	font-size: 14px;
}
/* 覆盖 layui 框架默认 padding-left:35px → 40px */
.crm-login-card .layui-input-wrap .layui-input-prefix+.layui-input,
.crm-login-card .layui-input-wrap .layui-input-prefix~* .layui-input {
	padding-left: 40px;
}
.crm-login-card .layui-input:focus { box-shadow: none; }
.crm-login-card .layui-input-prefix {
	background: #fafbfc;
	border-right: 1px solid #e4e7ed;
	color: #999;
	padding-left: 14px;
	padding-right: 12px;
}
.crm-login-card .layui-input-prefix i { font-size: 17px; }

/* 登录按钮 */
.crm-login-btn {
	width: 100%;
	height: 42px;
	line-height: 42px;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 8px;
	border-radius: 6px;
	background: linear-gradient(135deg, #1e9fff 0%, #0f76a8 100%);
	border: none;
	box-shadow: 0 4px 14px rgba(30, 159, 255, .4);
	transition: filter .2s, box-shadow .2s, transform .15s;
}
.crm-login-btn:hover {
	filter: brightness(1.06);
	box-shadow: 0 6px 20px rgba(30, 159, 255, .5);
}
.crm-login-btn:active { transform: translateY(1px); }
.crm-login-btn:disabled { opacity: .7; cursor: not-allowed; }

/* 验证码图片 */
.captcha-img {
	width: 120px;
	height: 42px;
	border-radius: 6px;
	cursor: pointer;
	border: 1px solid #e4e7ed;
	background: #f5f7fa;
	flex: none;
}

/* 隐藏 PearAdmin 调试计时、loader、cover 等多余元素 */
.crm-login .loader-wrapper,
.crm-login .pear-loader,
.crm-login .layui-layer-loading,
.crm-login .pear-cover,
.crm-login [class*="load-time"],
.crm-login [class*="keepLoad"] { display: none !important; }
.loader-wrapper { display: none !important; }
.layui-layer-loading { display: none !important; }
.pear-cover { display: none !important; }

@media (max-width: 480px) {
	.crm-login-card { width: calc(100% - 40px); padding: 28px 24px 24px; }
}
