:root{--brand:#168268;--brand-dark:#123b33;--text:#243b36;--muted:#74857e;--line:#e4ebe7;--canvas:#f4f7f5;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#fff}button,input{font:inherit}button{cursor:pointer}svg{display:block}button:focus-visible{outline:3px solid #71bda6;outline-offset:4px}.login-layout{min-height:100vh;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr)}.brand-panel{position:relative;display:flex;flex-direction:column;min-height:100vh;min-height:100svh;padding:44px clamp(40px,5vw,84px) 32px;overflow:hidden;background:var(--brand-dark);color:#f4f6ef}.brand-lockup{display:flex;align-items:center;gap:13px;font-size:19px;font-weight:600;letter-spacing:.03em;position:relative;z-index:1}.brand-icon{display:grid;place-items:center;width:40px;height:40px;background:#2f594b;border:1px solid #567566;border-radius:10px;color:#e6eddd}.brand-icon svg{width:28px;height:28px}.brand-content{width:100%;max-width:600px;margin:auto;padding-top:55px}.brand-kicker{display:flex;align-items:center;gap:9px;margin:0 0 21px;color:#bfd3c5;font-size:13px;letter-spacing:.11em}.brand-kicker span{width:6px;height:6px;border-radius:50%;background:#b7cba3}.brand-content h1{margin:0;font-size:clamp(33px,3.1vw,49px);line-height:1.36;letter-spacing:.04em;font-weight:600}.brand-description{margin:22px 0 0;font-size:15px;line-height:1.9;color:#b5cbbd;letter-spacing:.02em}.building-scene{width:calc(100% + 36px);margin:8px -18px -3px;max-height:350px}.building-scene svg{width:100%;height:auto;max-height:350px}.brand-footer{margin-top:22px;display:flex;align-items:center;gap:18px;font-size:12px;letter-spacing:.05em;color:#a8c1b2}.brand-footer i{width:3px;height:3px;border-radius:50%;background:#6f9583}.form-panel{position:relative;display:flex;align-items:center;justify-content:center;padding:80px 44px 95px;min-width:0;background:#fff}.login-form-wrap{width:100%;max-width:380px;animation:form-enter .45s ease-out both}.form-heading{margin-bottom:34px}.welcome-label{display:block;color:var(--brand);font-size:13px;font-weight:600;letter-spacing:.08em;margin-bottom:13px}.form-heading h2{font-size:28px;line-height:1.35;letter-spacing:.01em;margin:0 0 13px;font-weight:600}.form-heading p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.form-field{margin-bottom:23px}.form-field label{display:block;margin-bottom:10px;font-size:14px;font-weight:500;line-height:1.5}.input-wrap{position:relative}.input-icon{position:absolute;left:16px;top:16px;width:19px;height:19px;color:#81958a;pointer-events:none}.input-wrap input{display:block;width:100%;height:52px;border:1px solid #dbe4de;border-radius:8px;background:#fff;padding:0 16px 0 45px;color:var(--text);font-size:14px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.input-wrap input::placeholder{color:#a0ada5}.input-wrap input:hover{border-color:#afc5b8}.input-wrap input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #16826814;background:#fff}.password-wrap input{padding-right:54px}.password-toggle{position:absolute;right:6px;top:6px;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:6px;background:transparent;color:#87988e;transition:background .16s ease,color .16s ease}.password-toggle:hover{background:#f1f6f2;color:var(--brand)}.password-toggle svg{width:20px;height:20px}.eye-slash{display:none}.password-toggle[aria-pressed=true] .eye-slash{display:block}.login-submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:52px;margin-top:31px;border:1px solid var(--brand);border-radius:8px;background:var(--brand);color:#fff;font-size:15px;font-weight:600;letter-spacing:.04em;box-shadow:0 3px 8px #16826814;transition:background .16s ease,transform .12s ease,box-shadow .16s ease}.login-submit:hover{background:#126f59;border-color:#126f59;box-shadow:0 5px 12px #16826825}.login-submit:active{transform:translateY(1px);box-shadow:none}.login-submit:disabled{cursor:wait;background:#468f7d;border-color:#468f7d;box-shadow:none}.button-arrow{width:19px;height:19px}.button-spinner{display:none;width:16px;height:16px;border:2px solid #ffffff50;border-top-color:#fff;border-radius:50%;animation:button-spin .8s linear infinite}.login-submit:disabled .button-spinner{display:block}.login-submit:disabled .button-arrow{display:none}.submit-status{min-height:19px;margin:10px 0 0;text-align:center;font-size:12px;line-height:1.5;color:var(--muted)}.login-error{display:flex;align-items:flex-start;gap:9px;margin:-10px 0 24px;padding:12px 14px;border:1px solid #eddbd5;border-radius:8px;background:#fff7f3;color:#b25b42;font-size:13px;line-height:1.65;animation:error-enter .2s ease-out}.login-error svg{flex:none;width:18px;height:18px;margin-top:1px}.login-assistance{display:flex;justify-content:center;align-items:center;gap:7px;padding-top:23px;margin-top:16px;border-top:1px solid var(--line);color:#8b9a91}.login-assistance svg{width:16px;height:16px;flex:none}.login-assistance p{margin:0;font-size:12px;line-height:1.6}.form-footer{position:absolute;bottom:31px;left:24px;right:24px;text-align:center;font-size:12px;color:#a0aca4;margin:0}.form-footer span{margin:0 10px}@keyframes button-spin{to{transform:rotate(360deg)}}@keyframes form-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes error-enter{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1800px){.brand-content{padding-top:70px}.building-scene{margin-top:35px;max-height:410px}.building-scene svg{max-height:410px}.login-form-wrap{max-width:400px}.brand-panel{padding-top:54px;padding-bottom:42px}}
@media(max-width:1050px){.brand-panel{padding:34px 35px 27px}.brand-content h1{font-size:34px}.brand-description{font-size:14px}.form-panel{padding-right:32px;padding-left:32px}.brand-footer{gap:13px}.building-scene{width:calc(100% + 48px);margin-left:-24px;margin-right:-24px}}
@media(max-width:760px){.login-layout{display:block;min-height:100svh;background:var(--canvas)}.brand-panel{min-height:0;height:auto;padding:23px 25px;background:var(--brand-dark)}.brand-lockup{font-size:17px;gap:11px}.brand-icon{width:34px;height:34px;border-radius:8px}.brand-icon svg{width:25px;height:25px}.brand-content,.brand-footer{display:none}.form-panel{padding:56px 28px 100px;min-height:calc(100svh - 80px);align-items:flex-start;background:#fff}.login-form-wrap{max-width:400px}.form-heading h2{font-size:26px}.form-heading{margin-bottom:31px}.form-footer{bottom:27px}.input-wrap input{font-size:16px}.login-assistance{margin-top:14px}}
@media(max-height:720px) and (min-width:761px){.brand-panel{padding-top:26px;padding-bottom:23px}.brand-content{padding-top:24px}.brand-content h1{font-size:34px}.brand-kicker{margin-bottom:12px}.brand-description{margin-top:13px}.building-scene{max-height:245px}.building-scene svg{max-height:245px}.brand-footer{margin-top:10px}.form-panel{padding-top:48px;padding-bottom:65px}.form-footer{bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.login-submit:active{transform:none}.button-spinner{border-color:#ffffff80;border-top-color:#fff}}

.brand-icon-logo{overflow:hidden;background:#fff;border-color:rgba(255,255,255,.35)}
.brand-icon-logo img{display:block;width:100%;height:100%;object-fit:cover}


/* 登录页同样使用深色底，避免透明 Logo 圆角出现白边 */
.brand-icon-logo{background:#123b33;border-color:transparent}

