/* 登录与注册页：独立于后台布局，避免影响已登录后的管理界面。 */
:root{color-scheme:light}
body.auth-page{min-height:100vh;margin:0;display:grid;place-items:center;padding:32px 18px;overflow-x:hidden;background:#101b3b;color:#0b1a36;font-family:Arial,"Microsoft YaHei",sans-serif;position:relative}
body.auth-page:before,body.auth-page:after{content:"";position:fixed;width:52vmax;height:52vmax;border-radius:50%;pointer-events:none;filter:blur(4px);opacity:.8}
body.auth-page:before{top:-30vmax;left:-20vmax;background:radial-gradient(circle,rgba(50,104,221,.42),rgba(50,104,221,0) 68%)}
body.auth-page:after{right:-26vmax;bottom:-30vmax;background:radial-gradient(circle,rgba(12,176,162,.38),rgba(12,176,162,0) 68%)}
.auth-shell{width:min(100%,500px);position:relative;z-index:1}
.auth-card{padding:42px;border:1px solid rgba(255,255,255,.75);border-radius:26px;background:rgba(255,255,255,.9);box-shadow:0 26px 70px rgba(3,13,37,.32),inset 0 1px 0 rgba(255,255,255,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.auth-card.wide{width:min(100%,570px)}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px;color:#607398;font-size:14px;font-weight:700;letter-spacing:.2px}
.auth-brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#1f55dd,#13a99e);box-shadow:0 10px 20px rgba(30,83,210,.24);color:#fff;font-size:20px;font-weight:800}
.auth-card h1{margin:0;color:#0a1e43;font-size:29px;letter-spacing:-.5px}.auth-subtitle{margin:9px 0 28px;color:#6a7c9d;font-size:15px;line-height:1.6}
.auth-card label{display:block;margin:18px 0 8px;color:#203b65;font-size:14px;font-weight:700}.auth-card .input{display:block;width:100%;height:52px;border:1px solid #d4dfef;border-radius:14px;background:rgba(255,255,255,.78);padding:0 15px;color:#102446;box-shadow:inset 0 1px 2px rgba(15,33,62,.03);transition:border-color .2s,box-shadow .2s,background .2s}.auth-card .input::placeholder{color:#9aa9bf}.auth-card .input:focus{outline:0;border-color:#3172ec;background:#fff;box-shadow:0 0 0 4px rgba(49,114,236,.14)}
.auth-card .btn{min-height:50px;border:0;border-radius:14px;background:linear-gradient(135deg,#245be1,#2769db);box-shadow:0 10px 18px rgba(31,88,222,.24);padding:0 18px;color:#fff;font-weight:700;cursor:pointer;transition:transform .18s,box-shadow .18s}.auth-card .btn:hover{transform:translateY(-1px);box-shadow:0 13px 22px rgba(31,88,222,.3)}.auth-card .btn:active{transform:translateY(0)}
.auth-card .btn.secondary{background:rgba(239,244,252,.9);box-shadow:none;color:#24436f;border:1px solid #d8e2f0}.auth-card .btn.secondary:hover{background:#fff;box-shadow:0 7px 14px rgba(24,52,91,.08)}
.auth-actions{display:flex;gap:10px;align-items:center;margin-top:26px}.auth-actions .btn{flex:1;text-align:center;display:grid;place-items:center;text-decoration:none}.auth-links{margin:20px 0 0;text-align:center;color:#7183a2;font-size:14px}.auth-links a{color:#2464dd;font-weight:700;text-decoration:none}.auth-note{margin:0 0 22px;padding:14px 16px;border:1px solid rgba(117,157,220,.2);border-radius:15px;background:rgba(232,241,255,.75);color:#48648e;font-size:14px;line-height:1.75}.auth-result{margin:0 0 20px;padding:12px 14px;border-radius:13px;white-space:pre-wrap}.status-bad.auth-result{background:#fff0f1;color:#c33245}.status-ok.auth-result{background:#ecfbf3;color:#167349}.auth-card .status-bad:not(.auth-result){padding:10px 12px;border-radius:12px;background:#fff0f1;color:#c33245}.code-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.code-row .btn{min-height:52px;white-space:nowrap}.auth-foot{margin-top:20px;text-align:center;color:rgba(224,235,255,.75);font-size:13px}
.captcha-row{display:grid;grid-template-columns:1fr 132px;gap:10px;align-items:center}.captcha-row .input{min-width:0}.captcha-image{height:46px;padding:0;border:1px solid #d4dfef;border-radius:10px;overflow:hidden;background:#eef6ff;cursor:pointer}.captcha-image img{display:block;width:132px;height:46px}.captcha-hint{margin:7px 0 0;color:#7183a2;font-size:12px}
@media(max-width:560px){body.auth-page{padding:18px 14px}.auth-card{padding:30px 22px;border-radius:22px}.auth-card h1{font-size:26px}.code-row{grid-template-columns:1fr}.code-row .btn{width:100%}.auth-actions{flex-direction:column}.auth-actions .btn{width:100%;flex:none}.captcha-row{grid-template-columns:1fr 116px}.captcha-image,.captcha-image img{width:116px}}
