/* ==========================================================================
   Davinci 达芬奇 · 认证页视觉系统（登录 / 注册 / 找回密码）
   企业级 Ant Design：浅灰背景 / 品牌蓝 #1677FF / 白色卡片
   ========================================================================== */

:root{
	--dv-bg:#F5F7FA;
	--dv-surface:#FFFFFF;
	--dv-surface-2:#FAFAFA;
	--dv-brand:#1677FF;
	--dv-brand-hi:#4096FF;
	--dv-brand-dark:#0958D9;
	--dv-brand-light:#E6F4FF;
	--dv-text:#333333;
	--dv-text-2:#606266;
	--dv-text-3:#909399;
	--dv-line:#E5E6EB;
	--dv-line-2:#D9E0E8;
	--dv-ease:cubic-bezier(0.16,1,0.3,1);
}

.dv-auth{
	position:relative;min-height:100vh;
	display:flex;align-items:center;justify-content:center;
	padding:40px 20px;
	background:var(--dv-bg);
	font-family:"Source Han Sans SC","Source Han Sans CN","Noto Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	color:var(--dv-text);
	overflow:hidden;
}
.dv-auth *{box-sizing:border-box;}
.dv-auth__bg{
	position:absolute;inset:0;pointer-events:none;
	background:
		radial-gradient(900px 500px at 50% -12%,rgba(22,119,255,0.08),transparent 62%),
		radial-gradient(600px 400px at 85% 100%,rgba(22,119,255,0.05),transparent 55%);
}
.dv-auth__bg::after{
	content:'';position:absolute;inset:0;
	background-image:radial-gradient(rgba(22,119,255,0.06) 1px,transparent 1px);
	background-size:24px 24px;
	mask-image:radial-gradient(ellipse at center,black,transparent 78%);
	-webkit-mask-image:radial-gradient(ellipse at center,black,transparent 78%);
}
.dv-auth__wrap{position:relative;width:100%;max-width:420px;z-index:2;}

.dv-auth__card{
	position:relative;
	background:var(--dv-surface);
	border:1px solid var(--dv-line);
	border-radius:12px;
	padding:40px 36px 32px;
	box-shadow:0 8px 32px rgba(0,0,0,0.08);
}
.dv-auth__card::before{
	content:'';position:absolute;top:0;left:0;right:0;height:3px;
	background:linear-gradient(90deg,var(--dv-brand),var(--dv-brand-hi),transparent);
	border-radius:12px 12px 0 0;
}

.dv-auth__brand{display:flex;align-items:center;gap:14px;margin-bottom:28px;}
.dv-auth__logo{
	width:46px;height:46px;flex:none;display:grid;place-items:center;
	background:linear-gradient(135deg,var(--dv-brand) 0%,var(--dv-brand-hi) 100%);
	color:#fff;font-size:24px;font-weight:800;border-radius:11px;
	box-shadow:0 4px 14px rgba(22,119,255,0.28);
}
.dv-auth__brand h1{font-size:21px;font-weight:600;margin:0;color:var(--dv-text);letter-spacing:-.3px;}
.dv-auth__brand p{margin:2px 0 0;font-size:12.5px;color:var(--dv-text-3);letter-spacing:1px;}

/* 选项卡 */
.dv-auth__tabs{
	display:flex;gap:6px;margin-bottom:26px;
	background:var(--dv-surface-2);border:1px solid var(--dv-line);
	border-radius:10px;padding:4px;
}
.dv-auth__tab{
	flex:1;text-align:center;padding:10px 0;border-radius:8px;
	font-size:14px;color:var(--dv-text-2);transition:.25s var(--dv-ease);
}
.dv-auth__tab:hover{color:var(--dv-text);}
.dv-auth__tab.active{
	background:var(--dv-brand-light);color:var(--dv-brand);
	box-shadow:inset 0 0 0 1px rgba(22,119,255,0.25);
}

.dv-auth__field{position:relative;margin-bottom:14px;}
.dv-auth__field .icon{
	position:absolute;left:14px;top:50%;transform:translateY(-50%);
	color:var(--dv-text-3);font-size:15px;pointer-events:none;
}
.dv-auth__field input{
	width:100%;height:50px;padding:0 16px 0 42px;
	background:#fff;
	border:1px solid var(--dv-line);border-radius:8px;
	color:var(--dv-text);font-size:14.5px;font-family:inherit;
	transition:border-color .25s,box-shadow .25s,background .25s;
}
.dv-auth__field input::placeholder{color:var(--dv-text-3);}
.dv-auth__field input:focus{
	outline:none;border-color:var(--dv-brand);
	background:#fff;
	box-shadow:0 0 0 3px rgba(22,119,255,0.12);
}
.dv-auth__field--plain input{padding-left:16px;}

.dv-auth__submit{
	width:100%;height:52px;margin-top:8px;border:0;border-radius:8px;
	background:var(--dv-brand);
	color:#fff;font-size:16px;font-weight:600;font-family:inherit;
	cursor:pointer;letter-spacing:1px;
	box-shadow:0 6px 18px rgba(22,119,255,0.26);
	transition:background-color .2s var(--dv-ease),box-shadow .25s,transform .2s;
}
.dv-auth__submit:hover{background:var(--dv-brand-hi);transform:translateY(-1px);box-shadow:0 10px 26px rgba(22,119,255,0.36);}
.dv-auth__submit:active{transform:translateY(0);}

.dv-auth__links{
	display:flex;justify-content:space-between;align-items:center;
	margin-top:18px;font-size:13.5px;
}
.dv-auth__links a{color:var(--dv-text-2);transition:color .2s;}
.dv-auth__links a:hover{color:var(--dv-brand);}
.dv-auth__divider{
	display:flex;align-items:center;gap:14px;margin:22px 0 16px;
	color:var(--dv-text-3);font-size:12px;letter-spacing:2px;
}
.dv-auth__divider::before,.dv-auth__divider::after{
	content:'';flex:1;height:1px;background:var(--dv-line);
}
.dv-auth__oauth{display:flex;justify-content:center;gap:14px;}
.dv-auth__oauth button{
	width:44px;height:44px;border-radius:8px;cursor:pointer;
	background:#fff;border:1px solid var(--dv-line);
	display:grid;place-items:center;font-size:19px;color:var(--dv-text-2);
	transition:.25s var(--dv-ease);
}
.dv-auth__oauth button:hover{border-color:var(--dv-brand);color:var(--dv-brand);background:var(--dv-brand-light);}

.dv-auth__foot{margin-top:22px;text-align:center;font-size:12.5px;color:var(--dv-text-3);}
.dv-auth__foot a{color:var(--dv-text-2);}
.dv-auth__foot a:hover{color:var(--dv-brand);}

/* 输入框自动填充白色化 */
.dv-auth input:-webkit-autofill,
.dv-auth input:-webkit-autofill:hover,
.dv-auth input:-webkit-autofill:focus{
	-webkit-box-shadow:0 0 0 1000px #fff inset;
	-webkit-text-fill-color:var(--dv-text);
	caret-color:var(--dv-text);
	border:1px solid var(--dv-line);
}

/* 验证码容器 */
.dv-auth__captcha{margin-bottom:14px;}

/* 验证码行 / 按钮 */
.dv-auth__row{display:flex;gap:10px;margin-bottom:14px;}
.dv-auth__row .dv-auth__field{flex:1;margin-bottom:0;}
.dv-auth__codebtn{
	flex:none;height:50px;padding:0 16px;border-radius:8px;white-space:nowrap;
	background:var(--dv-brand-light);border:1px solid rgba(22,119,255,0.3);
	color:var(--dv-brand);font-size:13.5px;font-family:inherit;cursor:pointer;
	transition:.25s var(--dv-ease);
}
.dv-auth__codebtn:hover{background:rgba(22,119,255,0.16);border-color:rgba(22,119,255,0.5);}
.dv-auth__codebtn[disabled]{
	opacity:.45;cursor:not-allowed;background:var(--dv-surface-2);
	color:var(--dv-text-3);border-color:var(--dv-line);
}

/* 下拉框 */
.dv-auth__field select{
	width:100%;height:50px;padding:0 16px;
	background:#fff;border:1px solid var(--dv-line);border-radius:8px;
	color:var(--dv-text);font-size:14.5px;font-family:inherit;
	appearance:none;-webkit-appearance:none;
}
.dv-auth__field select:focus{outline:none;border-color:var(--dv-brand);box-shadow:0 0 0 3px rgba(22,119,255,0.12);}
.dv-auth__field select option{color:#111;background:#fff;}

/* 同意条款 */
.dv-auth__agree{
	display:flex;align-items:center;gap:8px;margin:4px 0 18px;
	font-size:13px;color:var(--dv-text-2);cursor:pointer;
}
.dv-auth__agree input{accent-color:#1677FF;width:16px;height:16px;}
.dv-auth__agree a{color:var(--dv-brand);}
.dv-auth__agree a:hover{text-decoration:underline;}

.dv-auth__price{
	font-size:13px;color:var(--dv-text-2);margin:-14px 0 16px;
}
.dv-auth__price b{color:var(--dv-brand);font-size:15px;}

@media(max-width:520px){
	.dv-auth__card{padding:32px 22px 26px;}
}