:root{--ink:#102d67;--text:#273b5d;--muted:#78869e;--line:#dbe3ef;--surface:rgba(255,255,255,.9);--focus:#347de0;--error:#d74646;--shadow:0 22px 65px rgba(51,75,112,.12)}
*{box-sizing:border-box}html{min-height:100%}body{min-height:100vh;margin:0;color:var(--text);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;background:radial-gradient(circle at 8% 10%,rgba(255,205,214,.55),transparent 32%),radial-gradient(circle at 92% 8%,rgba(184,239,231,.55),transparent 32%),linear-gradient(135deg,#fff9fa,#f8fbff 54%,#f4fdfb);background-attachment:fixed}.svg-sprite{position:absolute;width:0;height:0}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}a{text-decoration:none}.auth-header{display:flex;position:absolute;top:34px;left:48px;align-items:center;gap:20px}.brand,.card-brand{color:var(--ink);font-family:"Trebuchet MS",sans-serif;font-size:30px;letter-spacing:-2px}.brand span,.card-brand span{color:#5276aa}.divider{width:1px;height:24px;background:#b9c5d6}.back-home{display:flex;min-height:44px;align-items:center;gap:5px;color:var(--ink);font-weight:600}.back-home svg{width:17px}.auth-main{display:grid;min-height:calc(100vh - 72px);padding:88px 24px 30px;place-items:center}.auth-card{width:min(660px,100%);padding:34px 42px 30px;border:1px solid rgba(167,184,207,.45);border-radius:22px;background:var(--surface);box-shadow:var(--shadow);backdrop-filter:blur(20px)}.card-brand{text-align:center}.form-heading{margin:20px 0 25px;text-align:center}.form-heading h1{margin:0 0 7px;color:var(--ink);font-size:34px;letter-spacing:.03em}.form-heading p{margin:0;color:var(--muted)}.field{display:block;margin-bottom:16px}.field>span:first-child{display:block;margin:0 0 7px;color:var(--ink);font-size:14px;font-weight:700}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.input-wrap{display:flex;min-height:54px;align-items:center;gap:11px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:rgba(250,252,255,.76);transition:.2s}.input-wrap:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px rgba(52,125,224,.13);background:#fff}.input-wrap>svg{flex:0 0 auto;color:#7486a4}.input-wrap input{width:100%;min-width:0;border:0;outline:0;color:var(--text);background:transparent;font-size:15px}.input-wrap input::placeholder{color:#9aa7bb}.password-toggle{display:grid;width:40px;height:40px;flex:0 0 auto;padding:0;place-items:center;border:0;border-radius:50%;color:#7486a4;background:transparent}.password-toggle:hover{background:#eef3fa}.field-error{display:block;min-height:16px;margin-top:4px;color:var(--error);font-size:11px}.form-options{display:flex;align-items:center;justify-content:space-between;margin:-3px 0 13px}.checkbox{display:flex;min-height:44px;align-items:center;gap:9px;font-size:13px}.checkbox input{width:18px;height:18px;accent-color:var(--ink)}.form-options a,.agreement a,.login-link button{color:#1767cf}.form-error{min-height:18px;margin:0 0 7px;color:var(--error);font-size:13px;text-align:center}.submit-button,.switch-button{width:100%;min-height:54px;border-radius:11px;font-size:16px;font-weight:700}.submit-button{position:relative;border:0;color:#fff;background:var(--ink);box-shadow:0 10px 24px rgba(16,45,103,.18)}.submit-button:hover{background:#173b7d}.submit-button:disabled{cursor:not-allowed;opacity:.7}.spinner{display:none;position:absolute;top:50%;right:20px;width:18px;height:18px;margin-top:-9px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.submit-button.loading .spinner{display:block}.or-divider{display:flex;align-items:center;gap:15px;margin:18px 0;color:#8795aa;font-size:12px}.or-divider:before,.or-divider:after{height:1px;flex:1;background:var(--line);content:""}.switch-button{border:1px solid #7890b6;color:var(--ink);background:#fff}.switch-button:hover{background:#f5f8fc}.return-hint{margin:18px 0 0;color:var(--muted);font-size:12px;text-align:center}.agreement{margin:0 0 6px}.login-link{margin:16px 0 0;text-align:center}.login-link button{min-height:44px;padding:0 4px;border:0;background:transparent;font-weight:700}footer{display:flex;min-height:72px;align-items:center;justify-content:center;gap:28px;color:#536b91;font-size:13px}footer span{width:1px;height:20px;background:#b9c5d6}footer a{color:inherit}.toast{position:fixed;z-index:10;bottom:26px;left:50%;padding:12px 20px;border-radius:999px;color:#fff;background:var(--ink);box-shadow:0 12px 30px rgba(16,45,103,.25);opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}button,a,input{font:inherit}button,a{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(52,125,224,.32);outline-offset:3px}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.auth-header{position:static;padding:16px 18px 0;gap:12px}.auth-header .brand{font-size:24px}.divider{height:20px}.back-home{font-size:13px}.auth-main{min-height:auto;padding:26px 14px 14px;place-items:start center}.auth-card{padding:26px 20px 22px;border-radius:18px}.card-brand{font-size:25px}.form-heading{margin:16px 0 22px}.form-heading h1{font-size:28px}.form-heading p{font-size:13px}.field-grid{grid-template-columns:1fr;gap:0}.input-wrap{min-height:52px}.field{margin-bottom:12px}.agreement{align-items:flex-start;line-height:1.6}.agreement input{margin-top:3px;flex:0 0 auto}footer{min-height:60px}.toast{width:calc(100% - 32px);text-align:center}}
@media(max-width:380px){.auth-card{padding-inline:16px}.auth-header{padding-inline:14px}.back-home svg,.divider{display:none}.form-heading h1{font-size:25px}.input-wrap{padding-inline:11px}.input-wrap input{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Normalize browser-native form controls so every platform uses the same visual language. */
input{-webkit-appearance:none;appearance:none;border-radius:0;box-shadow:none}
.input-wrap input{padding:0}
.input-wrap input:-webkit-autofill,.input-wrap input:-webkit-autofill:hover,.input-wrap input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px #fbfcff inset;caret-color:var(--text);transition:background-color 9999s ease-out}
.checkbox input{display:grid;width:19px;height:19px;flex:0 0 auto;padding:0;place-items:center;border:1.5px solid #9cacbf;border-radius:5px;background:#fff;cursor:pointer}
.checkbox input:checked{border-color:var(--ink);background:var(--ink)}
.checkbox input:checked:after{width:8px;height:4px;margin-top:-2px;border-bottom:2px solid #fff;border-left:2px solid #fff;content:"";transform:rotate(-45deg)}
.checkbox input:focus-visible{outline:none}
input:focus,input:focus-visible,select:focus,select:focus-visible,textarea:focus,textarea:focus-visible{outline:none;-webkit-tap-highlight-color:transparent}
