/* Charta Admin Studio 1.3.1 — refined full-width login */
:root{--cas-login-primary:#4f6cf7;--cas-login-sidebar:#101b2d}
body.login{
	position:relative;
	min-height:100vh;
	margin:0;
	overflow-x:hidden;
	background:linear-gradient(135deg,#071525 0%,#0b2340 34%,#123b67 100%);
	color:#e6eef9;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
body.login:before{
	content:"";
	position:fixed;
	inset:0;
	z-index:0;
	background-image:
		radial-gradient(circle at 16% 18%,rgba(79,108,247,.24),transparent 20%),
		radial-gradient(circle at 76% 22%,rgba(56,189,248,.11),transparent 16%),
		radial-gradient(circle at 70% 76%,rgba(45,212,191,.10),transparent 18%),
		linear-gradient(135deg,rgba(3,14,28,.78),rgba(17,48,85,.20));
}
body.login:after{
	content:"";
	position:fixed;
	left:0;
	top:0;
	bottom:0;
	width:min(58vw,980px);
	z-index:1;
	background:
		radial-gradient(circle at 18% 22%,rgba(255,255,255,.04),transparent 22%),
		radial-gradient(circle at 80% 70%,rgba(79,108,247,.09),transparent 18%),
		linear-gradient(90deg,rgba(4,13,27,.18),rgba(4,13,27,0));
	pointer-events:none;
}
body.login.cas-login-style-ocean{background:linear-gradient(135deg,#041625 0%,#062f49 38%,#0a4d63 100%)}
body.login.cas-login-style-soft{background:linear-gradient(135deg,#202733 0%,#45494f 38%,#646c73 100%)}

body.login #login{
	position:absolute;
	top:50%;
	right:clamp(54px,8vw,126px);
	z-index:3;
	width:min(460px,calc(100vw - 38px));
	margin:0;
	padding:0;
	transform:translateY(-50%);
}
body.login #login:before{content:none!important;display:none!important;}
body.login #login:after{
	content:"";
	position:fixed;
	left:clamp(54px,6vw,86px);
	top:50%;
	width:min(42vw,560px);
	transform:translateY(-48%);
	z-index:2;
	pointer-events:none;
}
body.login #login .message,
body.login #login #login_error,
body.login #login h1,
body.login #login form,
body.login #login #nav,
body.login #login #backtoblog,
body.login #login .privacy-policy-page-link{
	position:relative;
	z-index:4;
}
body.login #login h1{
	margin:0 0 20px;
}
body.login #login h1 a{
	display:flex;align-items:center;justify-content:center;
	width:auto;height:auto;margin:0 auto 14px;
	background-image:none;color:#172033;text-indent:0;
	font-size:0;font-weight:850;line-height:1.25;
}
body.login #login h1 a:after{font-size:27px;letter-spacing:-.02em}
body.login #login:has(h1) + * {}
body.login h1:before{
	content:attr(data-branding);
}
body.login form{
	margin:0;
	padding:32px 32px 28px;
	border:1px solid rgba(214,224,237,.92);
	border-radius:26px;
	background:rgba(255,255,255,.96);
	box-shadow:0 28px 72px rgba(24,42,68,.17),inset 0 1px 0 rgba(255,255,255,.92);
	backdrop-filter:blur(18px);
}
body.login #login:has(form)::after,
body.login #login::marker{display:none}
body.login label{color:#405169;font-size:13px;font-weight:720}
body.login .input,body.login input[type=text],body.login input[type=password]{
	min-height:50px;
	margin-top:7px;
	padding:9px 13px;
	border:1px solid #d7e0ea;
	border-radius:12px;
	background:#f9fbfd;
	box-shadow:inset 0 1px 2px rgba(25,42,67,.025);
	font-size:16px;
	transition:border-color .18s,box-shadow .18s,background .18s;
}
body.login input:focus{border-color:var(--cas-login-primary);background:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--cas-login-primary) 12%,transparent);outline:0}
body.login .forgetmenot{margin-top:6px}
body.login .submit{margin-top:18px}
body.login .button-primary{
	min-height:48px;
	padding:0 22px;
	border:0;
	border-radius:12px;
	background:linear-gradient(135deg,var(--cas-login-primary),color-mix(in srgb,var(--cas-login-primary) 76%,#8ca2ff));
	font-weight:760;
	box-shadow:0 12px 28px color-mix(in srgb,var(--cas-login-primary) 28%,transparent);
	transition:transform .18s,box-shadow .18s,filter .18s;
}
body.login .button-primary:hover,body.login .button-primary:focus{filter:saturate(1.08);transform:translateY(-1px);box-shadow:0 16px 34px color-mix(in srgb,var(--cas-login-primary) 32%,transparent)}
body.login #login:before + * {}
body.login #nav,body.login #backtoblog{margin:18px 0 0;padding:0;text-align:center}
body.login #nav a,body.login #backtoblog a{color:#d8e4f2;font-weight:650}
body.login #nav a:hover,body.login #backtoblog a:hover{color:#fff}
body.login .privacy-policy-page-link{margin-top:18px;text-align:center}
body.login .privacy-policy-page-link a{color:#d8e4f2}
body.login .message,body.login #login_error{margin-bottom:16px;padding:13px 16px;border:1px solid rgba(255,255,255,.18);border-left:4px solid var(--cas-login-primary);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(28,48,76,.08);color:#1f2d3d}
body.login .language-switcher{position:fixed;z-index:5;right:24px;bottom:18px}
body.login #login:before{}
body.login #login .cas-hero-copy{display:none}
body.login .cas-login-hero{
	position:fixed;
	left:clamp(54px,6vw,86px);
	top:50%;
	z-index:2;
	width:min(40vw,560px);
	transform:translateY(-44%);
	pointer-events:none;
}
body.login .cas-login-hero__kicker{
	display:block;
	margin-bottom:16px;
	color:#9ec8ff;
	font-size:13px;
	font-weight:800;
	letter-spacing:.16em;
}
body.login .cas-login-hero__title{
	margin:0;
	color:#fff;
	font-size:clamp(38px,4vw,62px);
	font-weight:860;
	line-height:1.18;
	letter-spacing:-.03em;
	text-wrap:balance;
	text-shadow:0 16px 42px rgba(0,0,0,.26);
}
body.login .cas-login-hero__desc{
	margin:18px 0 0;
	max-width:520px;
	color:#cad8ea;
	font-size:16px;
	line-height:1.78;
}
body.login .cas-login-hero__tags{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-top:20px;
}
body.login .cas-login-hero__tags span{
	padding:8px 12px;
	border:1px solid rgba(255,255,255,.12);
	border-radius:999px;
	background:rgba(255,255,255,.06);
	color:#eef4ff;
	font-size:12px;
	font-weight:700;
	letter-spacing:.04em;
}
body.login .cas-login-card-heading{
	margin:0 0 20px;
	padding:0 6px;
	text-align:center;
}
body.login .cas-login-card-heading h2{
	margin:0;
	color:#f7fbff;
	font-size:27px;
	font-weight:840;
	line-height:1.28;
	letter-spacing:-.025em;
	text-shadow:0 8px 24px rgba(0,0,0,.20);
}
body.login .cas-login-card-heading p{
	margin:8px 0 0;
	color:#a9bdd5;
	font-size:12px;
	font-weight:720;
	line-height:1.5;
	letter-spacing:.10em;
}
body.login #login h1 + .cas-login-card-heading{margin-top:2px}
body.login .cas-login-card-heading + .message,
body.login .cas-login-card-heading + #login_error,
body.login .cas-login-card-heading + form{margin-top:0}
@media(max-width:1180px){
	body.login .cas-login-hero{left:40px;width:min(42vw,460px)}
	body.login #login{right:40px;width:min(430px,calc(100vw - 34px))}
	body.login .cas-login-hero__title{font-size:clamp(32px,3.4vw,48px)}
}
@media(max-width:960px){
	body.login{padding:24px 0 38px;background:linear-gradient(180deg,#08182b,#163b67)}
	body.login:after{display:none}
	body.login #login{
		position:relative;
		top:auto;
		right:auto;
		transform:none;
		width:min(430px,calc(100vw - 30px));
		margin:210px auto 0;
	}
	body.login #login:before{display:none!important}
	body.login .cas-login-hero{
		position:relative;
		left:auto;top:auto;transform:none;
		width:auto;
		margin:88px auto 28px;
		padding:0 22px;
		text-align:center;
	}
	body.login .cas-login-hero__tags{justify-content:center}
	body.login .cas-login-hero__desc{margin-inline:auto}
	body.login .language-switcher{position:relative;right:auto;bottom:auto;margin:18px auto 0;width:max-content}
}
@media(max-width:480px){
	body.login #login{margin-top:176px}
	body.login #login:before{display:none!important}
	body.login .cas-login-hero{margin-top:72px;padding:0 18px}
	body.login .cas-login-hero__title{font-size:28px;line-height:1.32}
	body.login .cas-login-hero__desc{font-size:14px;line-height:1.68}
	body.login form{padding:25px 21px 23px;border-radius:20px}
	body.login h1 a:after{font-size:23px}
}


/* Charta Admin Studio 1.3.2 — login heading spacing fix */
body.login #login h1{margin-bottom:12px}
body.login .cas-login-card-heading{position:relative;z-index:5}
@media(max-width:960px){
	body.login .cas-login-card-heading h2{font-size:24px}
	body.login .cas-login-card-heading p{font-size:11px;letter-spacing:.08em}
}
@media(max-width:480px){
	body.login .cas-login-card-heading{margin-bottom:16px}
	body.login .cas-login-card-heading h2{font-size:21px}
}

/* Charta Admin Studio 1.4.0 — unified native registration page */
body.login-action-register{overflow-y:auto;align-items:flex-start}
body.login-action-register .cas-login-hero{display:none}
body.login-action-register #login{
	position:relative!important;
	top:auto!important;
	right:auto!important;
	transform:none!important;
	width:min(920px,calc(100vw - 36px))!important;
	margin:88px auto 48px!important;
}
body.login-action-register #login h1{margin-bottom:10px}
body.login-action-register .cas-login-card-heading h2:after{content:" · 注册";color:#9ec8ff;font-size:.62em}
body.login-action-register form{padding:28px 30px 30px}
body.login-action-register #nav,body.login-action-register #backtoblog{color:#d8e4f2}
@media(max-width:960px){body.login-action-register #login{margin:86px auto 40px!important;width:min(700px,calc(100vw - 26px))!important}.login-action-register .cas-login-card-heading{margin-top:0}}
@media(max-width:520px){body.login-action-register #login{margin-top:72px!important}.login-action-register form{padding:22px 18px}}


/* Charta Admin Studio 1.6.1 — prominent login/register switch */
body.login .cas-account-switch{position:relative;z-index:5;display:grid;grid-template-columns:auto minmax(180px,1fr);align-items:center;gap:12px;margin:14px 0 0;padding:14px 16px;border:1px solid rgba(190,210,235,.24);border-radius:16px;background:rgba(255,255,255,.10);box-shadow:0 14px 34px rgba(0,0,0,.10);backdrop-filter:blur(12px)}
body.login .cas-account-switch>span{color:#d8e7f8;font-size:14px;font-weight:760;white-space:nowrap}
body.login .cas-account-switch__button{display:flex;align-items:center;justify-content:center;min-height:50px;padding:0 18px;border:1px solid rgba(255,255,255,.26);border-radius:12px;background:rgba(255,255,255,.13);color:#fff!important;font-size:16px;font-weight:820;text-decoration:none!important;letter-spacing:.02em;box-shadow:inset 0 1px 0 rgba(255,255,255,.18);transition:transform .18s,box-shadow .18s,background .18s}
body.login .cas-account-switch__button.is-register{border-color:transparent;background:linear-gradient(135deg,#18b7d8,#526ff4 58%,#7c5cf5);box-shadow:0 12px 30px rgba(43,116,235,.30)}
body.login .cas-account-switch__button:hover,body.login .cas-account-switch__button:focus{transform:translateY(-1px);background:rgba(255,255,255,.20);box-shadow:0 16px 34px rgba(0,0,0,.16);outline:3px solid rgba(125,211,252,.30);outline-offset:2px}
body.login .cas-account-switch__button.is-register:hover,body.login .cas-account-switch__button.is-register:focus{background:linear-gradient(135deg,#12c3dc,#4167f0 58%,#8662fa)}
body.login #nav .cas-original-register-link{display:none!important}
body.login-action-register .cas-account-switch{max-width:560px;margin:16px auto 0}
body.login-action-register .cas-account-switch__button{background:linear-gradient(135deg,#2563eb,#4f46e5)}
@media(max-width:520px){body.login .cas-account-switch{grid-template-columns:1fr;text-align:center;padding:13px}.login .cas-account-switch>span{white-space:normal}.login .cas-account-switch__button{width:auto;min-height:52px;font-size:16px}}

/* 2.0.0 login comfort. */
body.login.charta-login-studio #login{width:min(100% - 24px,430px)!important;}
body.login.charta-login-studio #loginform,body.login.charta-login-studio #registerform,body.login.charta-login-studio #lostpasswordform{
 padding:28px!important;border:1px solid #dce5ef!important;border-radius:20px!important;background:rgba(255,255,255,.97)!important;box-shadow:0 20px 54px rgba(15,35,64,.16)!important;backdrop-filter:blur(12px);
}
body.login.charta-login-studio input[type=text],body.login.charta-login-studio input[type=password],body.login.charta-login-studio input[type=email]{min-height:48px!important;border:1px solid #c8d6e5!important;border-radius:10px!important;background:#fff!important;}
body.login.charta-login-studio input:focus{border-color:#2563eb!important;box-shadow:0 0 0 3px rgba(37,99,235,.2)!important;}
body.login.charta-login-studio .button-primary{min-height:48px!important;border-radius:10px!important;background:#2563eb!important;font-weight:800!important;}
@media(max-width:480px){body.login.charta-login-studio #loginform,body.login.charta-login-studio #registerform,body.login.charta-login-studio #lostpasswordform{padding:22px 17px!important;border-radius:16px!important;}}
