/* 樱花动漫：登录、注册、邮箱找回密码公共样式 */
:root {
	--auth-primary: #f45d89;
	--auth-primary-hover: #dc4776;
	--auth-primary-soft: #fff0f5;
	--auth-ring: rgba(244, 93, 137, .16);
	--auth-text: #272a34;
	--auth-secondary: #646977;
	--auth-muted: #8b91a0;
	--auth-border: #e4e7ed;
	--auth-surface: #fff;
	--auth-soft: #fafbfc;
	--auth-danger: #d9365e;
	--auth-success: #1d9d68;
}

html { min-height: 100%; scrollbar-gutter: stable; }

body.auth-page {
	box-sizing: border-box;
	min-height: 100vh;
	min-height: 100dvh;
	margin: 0;
	padding: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: var(--auth-text);
	background:
		radial-gradient(circle at 12% 12%, rgba(255, 183, 207, .35), transparent 30%),
		radial-gradient(circle at 88% 84%, rgba(251, 114, 153, .16), transparent 28%),
		linear-gradient(145deg, #fff8fa 0%, #f7f8fb 55%, #fff1f6 100%);
	-webkit-text-size-adjust: 100%;
}

body.auth-page::before,
body.auth-page::after {
	content: "";
	position: fixed;
	pointer-events: none;
	border-radius: 999px 30px 999px 30px;
	background: rgba(251, 114, 153, .08);
	transform: rotate(35deg);
}
body.auth-page::before { width: 150px; height: 68px; top: 8%; right: 7%; }
body.auth-page::after { width: 110px; height: 50px; left: 5%; bottom: 8%; transform: rotate(-28deg); }

.auth-page *, .auth-page *::before, .auth-page *::after { box-sizing: border-box; }
.auth-page button, .auth-page input { font: inherit; }
.auth-page a { font-size: inherit; color: inherit; }
.auth-page button, .auth-page a, .auth-page input { -webkit-tap-highlight-color: transparent; }
.auth-page :focus-visible { outline: 3px solid var(--auth-ring); outline-offset: 2px; }

.auth-shell {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(300px, .88fr) minmax(430px, 1.12fr);
	width: min(980px, 100%);
	min-height: 640px;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .9);
	border-radius: 24px;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 24px 70px rgba(70, 37, 50, .13);
}
.auth-page-register .auth-shell, .auth-page-findpass .auth-shell { min-height: 700px; }

.auth-brand {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 52px 44px 44px;
	color: #fff;
	background:
		radial-gradient(circle at 78% 17%, rgba(255,255,255,.22), transparent 18%),
		linear-gradient(145deg, #ff91b0 0%, #f45d89 48%, #dc4778 100%);
}
.auth-brand::before, .auth-brand::after {
	content: "";
	position: absolute;
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 50%;
}
.auth-brand::before { width: 310px; height: 310px; right: -170px; top: 110px; }
.auth-brand::after { width: 190px; height: 190px; left: -105px; bottom: 68px; }

.auth-brand-home {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: max-content;
	min-height: 38px;
	padding: 0 14px;
	border: 1px solid rgba(255,255,255,.38);
	border-radius: 999px;
	color: #fff !important;
	text-decoration: none;
	background: rgba(255,255,255,.12);
	transition: background-color 160ms ease, transform 160ms ease;
}
.auth-brand-home:hover { background: rgba(255,255,255,.2); transform: translateY(-1px); }
.auth-brand-copy, .auth-brand-foot { position: relative; z-index: 1; }
.auth-brand-mark {
	display: grid;
	place-items: center;
	width: 62px;
	height: 62px;
	margin-bottom: 24px;
	border: 1px solid rgba(255,255,255,.42);
	border-radius: 20px 8px 20px 8px;
	background: rgba(255,255,255,.16);
	box-shadow: 0 12px 30px rgba(130,28,67,.16);
	font-size: 28px;
}
.auth-brand h2 { margin: 0 0 16px; color: #fff; font-size: 30px; font-weight: 750; line-height: 1.28; }
.auth-brand p { margin: 0; color: rgba(255,255,255,.86); font-size: 15px; line-height: 1.85; }
.auth-brand-foot { color: rgba(255,255,255,.68); font-size: 12px; }
.auth-benefits { position: relative; z-index: 1; display: grid; gap: 12px; margin: 34px 0 0; padding: 0; list-style: none; }
.auth-benefits li { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.92); }
.auth-benefits li::before {
	content: "✓";
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	border-radius: 50%;
	background: rgba(255,255,255,.18);
	font-size: 12px;
	font-weight: 700;
}

.auth-panel { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 48px 58px; background: var(--auth-surface); }
.auth-page-register .auth-panel, .auth-page-findpass .auth-panel { justify-content: flex-start; }
.auth-header { margin-bottom: 30px; text-align: left; }
.auth-header h1 { margin: 0; color: var(--auth-text); font-size: 28px; font-weight: 750; line-height: 1.3; }
.auth-header p { margin: 9px 0 0; color: var(--auth-secondary); font-size: 14px; }

.auth-section + .auth-section { margin-top: 26px; padding-top: 24px; border-top: 1px solid #f0f1f4; }
.auth-section-title { display: flex; align-items: center; gap: 9px; margin: 0 0 18px; color: var(--auth-text); font-size: 15px; font-weight: 700; }
.auth-section-title span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 8px; color: var(--auth-primary); background: var(--auth-primary-soft); font-size: 12px; }
.auth-field { margin-bottom: 18px; }
.auth-label-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.auth-label { display: inline-block; color: var(--auth-text); font-size: 14px; font-weight: 650; }
.auth-field-note { color: var(--auth-muted); font-size: 12px; }

.auth-control {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 48px;
	overflow: hidden;
	border: 1px solid var(--auth-border);
	border-radius: 10px;
	background: var(--auth-soft);
	transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
.auth-control:hover { border-color: #d4d8df; }
.auth-control:focus-within { border-color: var(--auth-primary); background: #fff; box-shadow: 0 0 0 3px var(--auth-ring); }
.auth-field.is-error .auth-control { border-color: var(--auth-danger); background: #fff4f6; box-shadow: 0 0 0 3px rgba(217,54,94,.1); }
.auth-input {
	width: 100% !important;
	min-width: 0;
	height: 46px !important;
	margin: 0 !important;
	padding: 0 14px !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	color: var(--auth-text) !important;
	background: transparent !important;
	font-size: 15px !important;
	line-height: 46px !important;
	box-shadow: none !important;
	-webkit-appearance: none;
}
.auth-input::placeholder { color: #a6acb8; font-size: 14px; font-weight: 400; }
.auth-control-action {
	align-self: stretch;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 48px;
	padding: 0 13px;
	border: 0;
	border-left: 1px solid var(--auth-border);
	color: var(--auth-secondary);
	background: transparent;
	cursor: pointer;
	font-size: 13px;
	white-space: nowrap;
	transition: color 160ms ease, background-color 160ms ease;
}
.auth-control-action:hover { color: var(--auth-primary-hover); background: var(--auth-primary-soft); }
.auth-control-action:disabled { color: var(--auth-muted); background: #f2f3f5; cursor: not-allowed; }
.auth-captcha { display: block; width: 104px; height: 38px; margin-right: 5px; flex: 0 0 104px; border: 1px solid #eceef2; border-radius: 7px; background: #fff; object-fit: cover; cursor: pointer; }
.auth-error { margin: 6px 2px 0; color: var(--auth-danger); font-size: 12px; line-height: 1.45; }
.auth-helper { margin: 7px 2px 0; color: var(--auth-muted); font-size: 12px; }

.auth-password-rules { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 8px 2px 0; padding: 0; list-style: none; color: var(--auth-muted); font-size: 12px; }
.auth-password-rules li::before { content: "○"; margin-right: 4px; }
.auth-password-rules li.is-valid { color: var(--auth-success); }
.auth-password-rules li.is-valid::before { content: "✓"; }

.auth-meta { display: flex; align-items: center; justify-content: flex-end; min-height: 24px; margin: -2px 0 18px; }
.auth-link, .auth-text-button { border: 0; padding: 0; color: var(--auth-primary) !important; background: none; text-decoration: none; cursor: pointer; transition: color 160ms ease; }
.auth-link:hover, .auth-text-button:hover { color: var(--auth-primary-hover) !important; text-decoration: underline; }
.auth-submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 50px;
	margin: 4px 0 0;
	padding: 0 22px;
	border: 0;
	border-radius: 11px;
	color: #fff !important;
	background: linear-gradient(135deg, #ff789f 0%, var(--auth-primary) 56%, #e64c7b 100%);
	box-shadow: 0 10px 22px rgba(244,93,137,.25);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .06em;
	cursor: pointer;
	transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}
.auth-submit:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 13px 28px rgba(244,93,137,.34); filter: saturate(1.04); }
.auth-submit:active:not(:disabled) { transform: translateY(0); }
.auth-submit:disabled { box-shadow: none; filter: grayscale(.18); opacity: .68; cursor: not-allowed; }
.auth-submit.is-loading::before { content: ""; width: 16px; height: 16px; margin-right: 9px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: auth-spin 700ms linear infinite; }
@keyframes auth-spin { to { transform: rotate(360deg); } }

.auth-switch { margin: 23px 0 0; color: var(--auth-secondary); text-align: center; }
.auth-secondary-links { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 16px; color: var(--auth-muted); font-size: 13px; }
.auth-secondary-links a { color: var(--auth-secondary); text-decoration: none; }
.auth-secondary-links a:hover { color: var(--auth-primary); }
.auth-third-party { margin-top: 26px; }
.auth-divider { display: flex; align-items: center; gap: 14px; margin-bottom: 17px; color: var(--auth-muted); font-size: 12px; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; flex: 1; background: #eceef2; }
.auth-oauth-list { display: flex; justify-content: center; gap: 12px; margin: 0; padding: 0; list-style: none; }
.auth-oauth-link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 116px; height: 42px; padding: 0 16px; border: 1px solid var(--auth-border); border-radius: 10px; color: var(--auth-secondary) !important; background: #fff; text-decoration: none; transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease; }
.auth-oauth-link:hover { border-color: rgba(244,93,137,.34); color: var(--auth-primary) !important; background: var(--auth-primary-soft); }
.auth-oauth-link i { font-size: 20px; }

.auth-steps { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 30px; padding: 0; list-style: none; counter-reset: auth-step; }
.auth-step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 7px; color: var(--auth-muted); font-size: 12px; text-align: center; counter-increment: auth-step; }
.auth-step::before { content: counter(auth-step); position: relative; z-index: 1; display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--auth-border); border-radius: 50%; color: var(--auth-muted); background: #fff; font-weight: 700; }
.auth-step:not(:last-child)::after { content: ""; position: absolute; top: 14px; left: calc(50% + 14px); width: calc(100% - 28px); height: 1px; background: var(--auth-border); }
.auth-step.is-active, .auth-step.is-complete { color: var(--auth-primary); }
.auth-step.is-active::before, .auth-step.is-complete::before { border-color: var(--auth-primary); color: #fff; background: var(--auth-primary); }
.auth-step.is-complete::before { content: "✓"; }
.auth-step.is-complete::after { background: var(--auth-primary); }
.auth-notice { margin-bottom: 20px; padding: 13px 14px; border: 1px solid #f2d8e1; border-radius: 10px; color: #8b4660; background: #fff8fa; font-size: 13px; line-height: 1.6; }
.auth-panel-section[hidden], .auth-success[hidden] { display: none !important; }
.auth-success { padding: 54px 0 30px; text-align: center; }
.auth-success-icon { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 22px; border-radius: 50%; color: #fff; background: linear-gradient(135deg, #40c991, var(--auth-success)); box-shadow: 0 14px 30px rgba(29,157,104,.22); font-size: 30px; font-weight: 700; }
.auth-success h2 { margin: 0 0 10px; color: var(--auth-text); font-size: 24px; }
.auth-success p { margin: 0; color: var(--auth-secondary); }
.auth-resend { margin: 16px 0 0; color: var(--auth-muted); font-size: 13px; text-align: center; }
.auth-resend button:disabled { color: var(--auth-muted) !important; text-decoration: none; cursor: not-allowed; }

.auth-toast-region { position: fixed; z-index: 10000000000; top: max(20px, env(safe-area-inset-top)); left: 50%; display: grid; gap: 10px; width: min(92vw, 380px); transform: translateX(-50%); pointer-events: none; }
.auth-toast { padding: 12px 16px; border: 1px solid rgba(0,0,0,.06); border-radius: 10px; color: #fff; background: rgba(37,40,50,.96); box-shadow: 0 12px 30px rgba(0,0,0,.18); font-size: 14px; text-align: center; animation: auth-toast-in 180ms ease-out; }
.auth-toast.is-error { background: rgba(190,42,78,.97); }
.auth-toast.is-success { background: rgba(25,139,91,.97); }
@keyframes auth-toast-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.auth-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.auth-mobile-register-progress, .auth-mobile-next, .auth-mobile-back { display: none; }
.auth-mobile-register-progress { margin: 0; padding: 0; list-style: none; }

@media (max-width: 1023px) {
	body.auth-page { padding: 24px; }
	.auth-shell { display: block; width: min(620px, 100%); min-height: 0; }
	.auth-brand { display: none; }
	.auth-panel, .auth-page-register .auth-panel, .auth-page-findpass .auth-panel { justify-content: flex-start; padding: 42px 48px; }
	.auth-header { text-align: center; }
}

@media (max-width: 540px) {
	body.auth-page, body#reg.auth-page {
		align-items: flex-start;
		min-width: 320px;
		padding: 0 !important;
		color: #182033;
		background: #f5f7fb;
	}
	body.auth-page::before, body.auth-page::after { display: none; }

	.auth-shell, .auth-page-register .auth-shell, .auth-page-findpass .auth-shell {
		display: block;
		width: 100%;
		min-height: 100vh;
		min-height: 100dvh;
		overflow: visible;
		border: 0;
		border-radius: 0;
		background: linear-gradient(180deg, #fff0f5 0, #f7f8fc 280px, #f7f8fc 100%);
		box-shadow: none;
	}

	.auth-brand {
		position: relative;
		display: flex;
		min-height: 168px;
		padding: max(14px, env(safe-area-inset-top)) 20px 38px;
		justify-content: flex-start;
		gap: 18px;
		background:
			radial-gradient(circle at 83% 15%, rgba(255,255,255,.30), transparent 22%),
			radial-gradient(circle at 17% 105%, rgba(255,255,255,.18), transparent 32%),
			linear-gradient(145deg, #ff91b2 0%, #f45d89 52%, #df4778 100%);
	}
	.auth-brand::before { width: 210px; height: 210px; right: -118px; top: -86px; border-color: rgba(255,255,255,.24); }
	.auth-brand::after { width: 118px; height: 118px; left: -62px; bottom: -48px; border-color: rgba(255,255,255,.18); }
	.auth-brand-home {
		min-height: 34px;
		padding: 0 12px;
		border-color: rgba(255,255,255,.34);
		background: rgba(255,255,255,.12);
		font-size: 12px;
		backdrop-filter: blur(6px);
	}
	.auth-brand-copy { display: flex; align-items: center; gap: 13px; margin-top: auto; }
	.auth-brand-mark {
		width: 46px;
		height: 46px;
		margin: 0;
		flex: 0 0 46px;
		border-radius: 15px 7px 15px 7px;
		box-shadow: 0 10px 24px rgba(130,28,67,.16);
		font-size: 22px;
	}
	.auth-brand h2 { margin: 0; font-size: 21px; font-weight: 760; line-height: 1.32; letter-spacing: .01em; }
	.auth-brand p, .auth-benefits, .auth-brand-foot { display: none; }

	.auth-panel, .auth-page-register .auth-panel, .auth-page-findpass .auth-panel {
		position: relative;
		z-index: 2;
		width: 100%;
		min-height: 0;
		margin-top: -24px;
		padding: 31px 20px calc(26px + env(safe-area-inset-bottom));
		border-radius: 26px 26px 0 0;
		background: #fff;
		box-shadow: 0 -10px 36px rgba(83,45,61,.10);
	}
	.auth-panel::before {
		content: "";
		display: block;
		width: 36px;
		height: 4px;
		margin: -17px auto 20px;
		border-radius: 999px;
		background: #eceef3;
	}
	.auth-header { margin-bottom: 23px; text-align: left; }
	.auth-header h1 { font-size: 26px; font-weight: 760; line-height: 1.25; letter-spacing: -.02em; }
	.auth-header p { margin-top: 7px; color: #697386; font-size: 13px; line-height: 1.65; }

	.auth-section + .auth-section { margin-top: 22px; padding-top: 20px; }
	.auth-section-title { margin-bottom: 17px; font-size: 16px; }
	.auth-section-title span { width: 26px; height: 26px; border-radius: 9px; }
	.auth-field { margin-bottom: 16px; }
	.auth-label-row { margin-bottom: 8px; }
	.auth-label { font-size: 14px; font-weight: 680; }
	.auth-field-note { max-width: 52%; color: #8a94a6; font-size: 11px; text-align: right; }
	.auth-control {
		min-height: 52px;
		border-color: #e4e7ee;
		border-radius: 14px;
		background: #f8f9fc;
	}
	.auth-control:focus-within { background: #fff; box-shadow: 0 0 0 4px rgba(244,93,137,.12); }
	.auth-input { height: 50px !important; padding: 0 15px !important; font-size: 16px !important; line-height: 50px !important; }
	.auth-input::placeholder { color: #a3acbc; font-size: 14px; }
	.auth-control-action { min-width: 48px; padding-right: 13px; padding-left: 13px; font-size: 13px; }
	#btn_send_email.auth-control-action { min-width: 104px; color: var(--auth-primary); font-weight: 650; }
	.auth-captcha { width: 96px; height: 40px; margin-right: 5px; flex-basis: 96px; border-radius: 10px; }
	.auth-error { margin-top: 7px; }
	.auth-password-rules { gap: 7px 8px; margin-top: 9px; }
	.auth-password-rules li { padding: 4px 8px; border-radius: 999px; background: #f5f6f9; line-height: 1.25; }
	.auth-password-rules li.is-valid { background: #effaf5; }

	.auth-meta { margin: -1px 2px 16px; }
	.auth-submit { min-height: 52px; margin-top: 3px; border-radius: 14px; box-shadow: 0 10px 22px rgba(244,93,137,.22); }
	.auth-switch { margin-top: 20px; }
	.auth-secondary-links { display: none; }
	.auth-third-party { margin-top: 22px; }
	.auth-oauth-link { min-width: 0; flex: 1; }

	.auth-steps { margin: 0 0 23px; }
	.auth-step { gap: 6px; font-size: 11px; }
	.auth-step::before { width: 30px; height: 30px; }
	.auth-step:not(:last-child)::after { top: 15px; left: calc(50% + 15px); width: calc(100% - 30px); }
	.auth-notice {
		display: grid;
		grid-template-columns: 24px minmax(0, 1fr);
		gap: 10px;
		margin-bottom: 18px;
		padding: 13px;
		border-radius: 13px;
		font-size: 12px;
		line-height: 1.65;
	}
	.auth-notice::before { content: "i"; display: grid; place-items: center; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; color: #fff; background: var(--auth-primary); font-size: 12px; font-weight: 800; }
	.auth-success { padding: 36px 0 22px; }
	.auth-resend { margin-top: 15px; }

	.auth-mobile-register-progress {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin: -2px 0 24px;
		counter-reset: mobile-register-step;
	}
	#register_form.is-mobile-steps .auth-mobile-register-progress { display: grid; }
	.auth-mobile-register-progress li { position: relative; display: flex; align-items: center; gap: 8px; color: #8a94a6; font-size: 12px; counter-increment: mobile-register-step; }
	.auth-mobile-register-progress li::before { content: counter(mobile-register-step); position: relative; z-index: 1; display: grid; place-items: center; width: 26px; height: 26px; flex: 0 0 26px; border: 1px solid #dfe3ea; border-radius: 50%; color: #8a94a6; background: #fff; font-weight: 700; }
	.auth-mobile-register-progress li:first-child::after { content: ""; position: absolute; z-index: 0; top: 13px; left: 26px; width: calc(100% - 18px); height: 1px; background: #e3e6ec; }
	.auth-mobile-register-progress li span { position: relative; z-index: 1; padding-right: 8px; background: #fff; }
	#register_form:not(.is-mobile-step-two) .auth-mobile-register-progress li:first-child,
	#register_form.is-mobile-step-two .auth-mobile-register-progress li:last-child { color: var(--auth-primary); font-weight: 700; }
	#register_form:not(.is-mobile-step-two) .auth-mobile-register-progress li:first-child::before,
	#register_form.is-mobile-step-two .auth-mobile-register-progress li:last-child::before { border-color: var(--auth-primary); color: #fff; background: var(--auth-primary); }
	#register_form.is-mobile-step-two .auth-mobile-register-progress li:first-child::before { content: "✓"; border-color: var(--auth-success); color: #fff; background: var(--auth-success); }
	#register_form.is-mobile-step-two .auth-mobile-register-progress li:first-child::after { background: var(--auth-success); }

	#register_form.is-mobile-steps:not(.is-mobile-step-two) .auth-register-email,
	#register_form.is-mobile-steps:not(.is-mobile-step-two) .auth-register-captcha,
	#register_form.is-mobile-steps:not(.is-mobile-step-two) .auth-register-submit { display: none; }
	#register_form.is-mobile-steps.is-mobile-step-two .auth-register-account { display: none; }
	#register_form.is-mobile-steps .auth-mobile-next { display: inline-flex; }
	#register_form.is-mobile-steps.is-mobile-step-two .auth-mobile-back { display: inline-flex; }
	.auth-mobile-next { margin-top: 3px; }
	.auth-mobile-back { align-items: center; min-height: 36px; margin: -5px 0 12px; border: 0; padding: 0; color: var(--auth-primary); background: transparent; font-size: 13px; font-weight: 650; cursor: pointer; }

	.auth-page-register .auth-header { margin-bottom: 19px; }
	.auth-page-register .auth-section-title { display: none; }
	.auth-page-register .auth-section + .auth-section { margin-top: 0; padding-top: 0; border-top: 0; }
	.auth-page-findpass .auth-header { margin-bottom: 20px; }
	.auth-toast-region { top: max(12px, env(safe-area-inset-top)); width: calc(100vw - 32px); }
}

@media (max-width: 360px) {
	.auth-brand { padding-right: 16px; padding-left: 16px; }
	.auth-panel, .auth-page-register .auth-panel, .auth-page-findpass .auth-panel { padding-right: 16px; padding-left: 16px; }
	.auth-control-action { padding-right: 10px; padding-left: 10px; }
	#btn_send_email.auth-control-action { min-width: 94px; }
	.auth-captcha { width: 88px; flex-basis: 88px; }
	.auth-brand h2 { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.auth-page *, .auth-page *::before, .auth-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* 认证页精修：收敛移动端层级、反馈和操作密度 */
.auth-code-send {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 46px;
	margin: -2px 0 18px;
	padding: 0 18px;
	border: 1px solid rgba(244, 91, 135, .28);
	border-radius: 11px;
	color: #df3f72;
	background: #fff8fa;
	font-size: 14px;
	font-weight: 680;
	cursor: pointer;
	transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}
.auth-code-send:hover:not(:disabled) { border-color: rgba(244, 91, 135, .48); color: #cf3266; background: #fff1f5; }
.auth-code-send:disabled { border-color: #e7e4e6; color: #969099; background: #f7f6f7; cursor: not-allowed; }

.auth-recovery-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 7px 10px;
	margin-top: 17px;
	color: var(--auth-muted);
	font-size: 13px;
}
.auth-recovery-actions .auth-text-button { min-height: 32px; padding: 0 3px; }
.auth-recovery-actions .auth-text-button:disabled { color: var(--auth-muted) !important; text-decoration: none; cursor: not-allowed; }

@media (max-width: 540px) {
	body.auth-page, body#reg.auth-page {
		color: #25232a;
		background: #f6f7fa;
	}
	.auth-shell, .auth-page-register .auth-shell, .auth-page-findpass .auth-shell {
		background: linear-gradient(180deg, #fff4f7 0, #faf9fa 210px, #faf9fa 100%);
	}
	.auth-brand {
		min-height: 130px;
		padding: max(12px, env(safe-area-inset-top)) 18px 29px;
		gap: 10px;
		background:
			radial-gradient(circle at 84% 10%, rgba(255,255,255,.30), transparent 25%),
			linear-gradient(145deg, #fa7da2 0%, #f45b87 58%, #e34b79 100%);
	}
	.auth-brand-home {
		min-height: 32px;
		padding: 0 11px;
		background: rgba(255,255,255,.14);
	}
	.auth-brand-copy { gap: 11px; }
	.auth-brand-mark {
		width: 42px;
		height: 42px;
		flex-basis: 42px;
		border-radius: 13px 6px 13px 6px;
		font-size: 20px;
	}
	.auth-brand h2 { font-size: 19px; line-height: 1.35; }
	.auth-panel, .auth-page-register .auth-panel, .auth-page-findpass .auth-panel {
		align-items: center;
		margin-top: -18px;
		padding: 28px 20px calc(25px + env(safe-area-inset-bottom));
		border-radius: 22px 22px 0 0;
		box-shadow: 0 -8px 28px rgba(72, 43, 54, .07);
	}
	.auth-panel::before { display: none; content: none; }
	.auth-panel > * { width: 100%; max-width: 440px; }
	.auth-header { margin-bottom: 20px; }
	.auth-header h1 { font-size: 24px; font-weight: 750; }
	.auth-header p { margin-top: 6px; color: #716b76; line-height: 1.55; }
	.auth-control {
		border-color: #e7e4e7;
		background: #fbfafb;
	}
	.auth-control:hover { border-color: #dcd7dc; }
	.auth-control:focus-within {
		border-color: #f45b87;
		background: #fff;
		box-shadow: 0 0 0 3px rgba(244, 91, 135, .08);
	}
	.auth-submit {
		background: linear-gradient(135deg, #f7628c 0%, #f34f80 100%);
		box-shadow: 0 8px 18px rgba(244, 91, 135, .17);
		letter-spacing: .035em;
	}
	.auth-submit:hover:not(:disabled) { box-shadow: 0 10px 22px rgba(244, 91, 135, .22); }
	.auth-code-send { min-height: 48px; border-radius: 14px; font-size: 14px; }
	.auth-notice {
		border-color: #ece8eb;
		color: #6f6872;
		background: #faf9fa;
	}
	.auth-notice::before { background: #f45b87; }
	.auth-recovery-actions {
		gap: 4px 9px;
		margin-top: 14px;
		padding-top: 2px;
		font-size: 12px;
	}
	.auth-third-party { margin-top: 20px; }
}

@media (max-width: 540px) and (max-height: 700px) {
	.auth-brand { min-height: 108px; padding-bottom: 22px; }
	.auth-brand-home { min-height: 30px; }
	.auth-brand-mark { width: 38px; height: 38px; flex-basis: 38px; font-size: 18px; }
	.auth-brand h2 { font-size: 18px; }
	.auth-panel, .auth-page-register .auth-panel, .auth-page-findpass .auth-panel {
		margin-top: -14px;
		padding-top: 24px;
	}
}
/* PC 认证页精修：品牌、比例、表单层级与宽屏注册布局 */

@media (min-width: 1024px) {
	:root {
		--auth-primary: #cf3266;
		--auth-primary-hover: #b62453;
		--auth-primary-soft: #fff1f5;
		--auth-ring: rgba(207, 50, 102, .14);
		--auth-muted: #727783;
	}

	body.auth-page {
		padding: 32px;
		background:
			radial-gradient(circle at 14% 12%, rgba(242, 119, 157, .16), transparent 31%),
			radial-gradient(circle at 88% 84%, rgba(211, 63, 109, .09), transparent 28%),
			linear-gradient(145deg, #fdfbfc 0%, #f6f7f9 56%, #fff8fa 100%);
	}
	body.auth-page::before,
	body.auth-page::after { background: rgba(207, 50, 102, .045); }

	.auth-shell {
		grid-template-columns: 360px minmax(0, 1fr);
		width: min(1020px, 100%);
		min-height: 620px;
		border-color: rgba(75, 57, 65, .08);
		border-radius: 24px;
		background: #fff;
		box-shadow: 0 24px 62px rgba(56, 39, 46, .11);
	}
	.auth-page-register .auth-shell {
		grid-template-columns: 350px minmax(0, 1fr);
		width: min(1180px, 100%);
		min-height: 720px;
	}
	.auth-page-findpass .auth-shell {
		grid-template-columns: 360px minmax(0, 1fr);
		width: min(1040px, 100%);
		min-height: 660px;
	}

	.auth-brand {
		padding: 48px 38px 40px;
		background:
			radial-gradient(circle at 82% 14%, rgba(255,255,255,.18), transparent 20%),
			linear-gradient(155deg, #f682a4 0%, #eb5d87 52%, #d94373 100%);
	}
	.auth-brand::before { border-color: rgba(255,255,255,.15); }
	.auth-brand::after { border-color: rgba(255,255,255,.12); }
	.auth-brand-home {
		min-height: 36px;
		border-color: rgba(255,255,255,.34);
		background: rgba(255,255,255,.10);
	}
	.auth-brand-mark {
		width: 56px;
		height: 56px;
		margin-bottom: 20px;
		border-radius: 18px 7px 18px 7px;
		font-size: 25px;
	}
	.auth-brand h2 { margin-bottom: 14px; font-size: 28px; line-height: 1.3; }
	.auth-brand p { font-size: 14px; line-height: 1.8; }
	.auth-benefits { gap: 10px; margin-top: 28px; }
	.auth-benefits li { font-size: 13px; }
	.auth-brand-foot { color: rgba(255,255,255,.74); }

	.auth-panel { padding: 46px 64px; }
	.auth-page-register .auth-panel { padding: 38px 46px 36px; }
	.auth-page-findpass .auth-panel { padding: 44px 62px; }
	.auth-header { margin-bottom: 25px; }
	.auth-header h1 { font-size: 30px; letter-spacing: -.025em; }
	.auth-header p { margin-top: 7px; color: #646977; font-size: 14px; }

	.auth-page-login .auth-header,
	.auth-page-login #login_form,
	.auth-page-login .auth-panel > .auth-switch,
	.auth-page-login .auth-third-party {
		width: 100%;
		max-width: 440px;
		margin-right: auto;
		margin-left: auto;
	}
	.auth-page-findpass .auth-header,
	.auth-page-findpass .auth-steps,
	.auth-page-findpass .auth-panel-section,
	.auth-page-findpass .auth-success,
	.auth-page-findpass #login_link {
		width: 100%;
		max-width: 460px;
		margin-right: auto;
		margin-left: auto;
	}

	.auth-field { margin-bottom: 12px; }
	.auth-label-row { margin-bottom: 8px; }
	.auth-label { font-weight: 680; }
	.auth-control {
		min-height: 50px;
		border-color: #e3e1e4;
		border-radius: 11px;
		background: #fbfafb;
	}
	.auth-control:hover { border-color: #d3cfd4; }
	.auth-control:focus-within {
		border-color: var(--auth-primary);
		background: #fff;
		box-shadow: 0 0 0 3px rgba(207, 50, 102, .09);
	}
	.auth-input {
		height: 48px !important;
		padding-right: 15px !important;
		padding-left: 15px !important;
		font-size: 15px !important;
		line-height: 48px !important;
	}
	.auth-input::placeholder { color: #9297a2; }
	.auth-error {
		min-height: 17px;
		margin-top: 5px;
		line-height: 1.4;
	}
	.auth-error[hidden] { display: block; visibility: hidden; }

	.auth-control-action[data-password-toggle] {
		min-width: 48px;
		padding: 0;
		border-left-color: #e7e4e7;
		font-size: 0;
	}
	.auth-control-action[data-password-toggle]::before {
		content: "";
		width: 20px;
		height: 20px;
		background: center / 20px 20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23646977' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.8 10s3.1-5.2 8.2-5.2 8.2 5.2 8.2 5.2-3.1 5.2-8.2 5.2S1.8 10 1.8 10Z'/%3E%3Ccircle cx='10' cy='10' r='2.3'/%3E%3C/svg%3E");
	}
	.auth-control-action[data-password-toggle].is-password-visible::before {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23646977' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.1 10s3-5 7.9-5 7.9 5 7.9 5-3 5-7.9 5-7.9-5-7.9-5Z'/%3E%3Cpath d='m3 3 14 14'/%3E%3C/svg%3E");
	}
	.auth-captcha {
		width: 108px;
		height: 40px;
		flex-basis: 108px;
		border-color: #e7e4e7;
		border-radius: 8px;
	}

	.auth-submit {
		min-height: 50px;
		border-radius: 11px;
		background: linear-gradient(135deg, #d94172 0%, #c82e61 100%);
		box-shadow: 0 8px 18px rgba(180, 37, 83, .18);
		letter-spacing: .035em;
	}
	.auth-submit:hover:not(:disabled) {
		box-shadow: 0 10px 22px rgba(180, 37, 83, .23);
		filter: none;
	}
	.auth-switch { color: #646977; }

	.auth-page-register .auth-header {
		width: 100%;
		max-width: 760px;
		margin-bottom: 22px;
	}
	.auth-page-register .auth-section-title {
		margin-bottom: 16px;
		font-size: 16px;
	}
	.auth-page-register .auth-section-title span {
		width: 27px;
		height: 27px;
		border-radius: 9px;
	}
	.auth-page-register .auth-password-rules {
		gap: 7px;
		margin-top: 7px;
	}
	.auth-page-register .auth-password-rules li {
		padding: 4px 8px;
		border-radius: 999px;
		background: #f7f6f8;
	}
	.auth-page-register .auth-password-rules li.is-valid { background: #eef9f4; }
	.auth-page-register .auth-register-submit {
		width: min(380px, 100%);
		margin: 9px auto 0;
	}
	.auth-page-register .auth-code-send {
		width: auto;
		min-width: 176px;
		margin: -1px 0 16px auto;
	}
	.auth-page-register .auth-switch { margin-top: 18px; }

	.auth-page-findpass .auth-steps { margin-bottom: 25px; }
	.auth-page-findpass .auth-notice {
		grid-template-columns: 22px minmax(0, 1fr);
		gap: 10px;
		border-color: #e6e8ec;
		color: #5f6570;
		background: #f8f9fb;
	}
	.auth-page-findpass .auth-notice::before {
		content: "i";
		display: grid;
		place-items: center;
		width: 21px;
		height: 21px;
		margin-top: 1px;
		border-radius: 50%;
		color: #fff;
		background: #7b8290;
		font-size: 12px;
		font-weight: 800;
	}
	.auth-page-findpass .auth-success { min-height: 380px; align-content: center; }
}

@media (min-width: 1024px) and (max-width: 1179px) {
	body.auth-page { padding: 24px; }
	.auth-shell,
	.auth-page-register .auth-shell,
	.auth-page-findpass .auth-shell {
		grid-template-columns: 320px minmax(0, 1fr);
		width: min(1080px, 100%);
	}
	.auth-brand { padding: 42px 32px 36px; }
	.auth-brand h2 { font-size: 26px; }
	.auth-benefits { margin-top: 24px; }
	.auth-panel,
	.auth-page-register .auth-panel,
	.auth-page-findpass .auth-panel { padding: 40px 44px; }
}

@media (min-width: 1180px) {
	.auth-page-register .auth-register-form.has-email-verification {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 32px;
		align-items: start;
	}
	.auth-page-register .auth-mobile-register-progress,
	.auth-page-register .auth-register-submit { grid-column: 1 / -1; }
	.auth-page-register .auth-register-account { grid-column: 1; padding-right: 2px; }
	.auth-page-register .auth-register-email {
		grid-column: 2;
		margin-top: 0;
		padding-top: 0;
		padding-left: 30px;
		border-top: 0;
		border-left: 1px solid #eeebee;
	}
}

@media (min-width: 1024px) and (max-height: 760px) {
	body.auth-page {
		align-items: flex-start;
		padding-top: 20px;
		padding-bottom: 20px;
	}
	.auth-shell { margin-top: auto; margin-bottom: auto; }
}
