/* 与夜行后台登录页共用同一组布局和组件样式；品牌文案独立。 */
:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#191714;background:#eceae5}*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}#loginError:empty{display:none}.hint{margin:0;color:#a8a29e;font-size:11px;line-height:1.6}
.login-page{position:relative;display:grid;min-height:100dvh;place-items:center;overflow:hidden;background:#eceae5;padding:28px}.login-page:before{position:absolute;inset:0;background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.85),transparent 34%),linear-gradient(rgba(41,37,36,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(41,37,36,.035) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px;content:""}.login-layout{position:relative;display:grid;width:min(100%,960px);min-height:590px;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:24px;background:#fff;box-shadow:0 30px 80px rgba(28,25,23,.16)}.login-intro{position:relative;display:flex;min-width:0;flex-direction:column;overflow:hidden;background:#201f1d;padding:42px;color:#fff}.login-intro:before{position:absolute;top:-110px;right:-90px;width:340px;height:340px;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:0 0 0 54px rgba(255,255,255,.025),0 0 0 108px rgba(255,255,255,.018);content:""}.login-intro:after{position:absolute;right:34px;bottom:34px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 36% 32%,rgba(245,158,11,.38),rgba(180,83,9,.05) 58%,transparent 60%);filter:blur(1px);content:""}.login-brand,.login-mobile-brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px}.login-brand img,.login-mobile-brand img{width:46px;height:46px;border-radius:13px}.login-brand p,.login-mobile-brand p{margin:0;color:#a8a29e;font-size:9px;font-weight:750;letter-spacing:.2em}.login-brand strong,.login-mobile-brand strong{display:block;margin-top:3px;font-size:15px;font-weight:650}.login-intro-copy{position:relative;z-index:1;margin:auto 0}.login-intro-copy>span{display:inline-flex;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.06);padding:6px 10px;color:#d6d3d1;font-size:10px;letter-spacing:.08em}.login-intro-copy h1{margin:20px 0 0;font-size:36px;font-weight:650;letter-spacing:-.04em;line-height:1.32}.login-intro-copy p{max-width:390px;margin:18px 0 0;color:#a8a29e;font-size:13px;line-height:1.8}.login-capabilities{position:relative;z-index:1;display:flex;gap:8px}.login-capabilities span{border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:7px 10px;color:#d6d3d1;font-size:10px}.login-copyright{position:absolute;right:42px;bottom:45px;z-index:1;margin:0;color:#57534e;font-size:8px;letter-spacing:.18em}.login-panel{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:54px 52px}.login-mobile-brand{display:none}.login-heading>span{color:#a16207;font-size:10px;font-weight:700;letter-spacing:.14em}.login-heading h2{margin:10px 0 0;color:#1c1917;font-size:30px;font-weight:680;letter-spacing:-.035em}.login-heading p{margin:8px 0 0;color:#a8a29e;font-size:12px}.login-form{display:grid;gap:17px;margin-top:34px}.login-form label{color:#44403c;font-size:12px;font-weight:600}.login-form input{box-sizing:border-box;display:block;width:100%;height:48px;margin-top:8px;border:1px solid #d6d3d1;border-radius:11px;background:#fafaf9;padding:0 14px;color:#1c1917;font:inherit;font-size:14px;font-weight:400;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.login-form input::placeholder{color:#c4c0bc}.login-form input:focus{border-color:#78716c;background:#fff;box-shadow:0 0 0 3px rgba(120,113,108,.1)}.login-form button{height:48px;margin-top:5px;border:1px solid #1c1917;border-radius:11px;background:#1c1917;color:#fff;font:inherit;font-size:13px;font-weight:650;cursor:pointer;transition:background .15s,transform .15s}.login-form button:hover:not(:disabled){background:#292524}.login-form button:active:not(:disabled){transform:translateY(1px)}.login-form button:disabled{cursor:wait;opacity:.55}.login-error{margin:-5px 0 0;border-radius:8px;background:#fff1f2;padding:9px 11px;color:#be123c;font-size:11px;line-height:1.5}.login-security{margin:22px 0 0;color:#c4c0bc;font-size:9px;text-align:center}.login-security:before{margin-right:5px;content:"●";color:#65a30d;font-size:6px;vertical-align:2px}
@media(max-width:760px){.login-page{place-items:stretch;background:#f7f6f3;padding:0}.login-page:before{background:radial-gradient(circle at 50% 0,rgba(245,158,11,.08),transparent 34%)}.login-layout{display:block;width:100%;min-height:100dvh;border:0;border-radius:0;background:transparent;box-shadow:none}.login-intro{display:none}.login-panel{box-sizing:border-box;min-height:100dvh;justify-content:center;padding:32px 24px}.login-mobile-brand{display:flex;margin-bottom:58px}.login-mobile-brand img{width:42px;height:42px;border-radius:12px}.login-mobile-brand p{color:#a8a29e}.login-mobile-brand strong{color:#292524;font-size:14px}.login-heading h2{font-size:28px}.login-heading p{font-size:12px}.login-form{margin-top:30px}.login-form input,.login-form button{height:50px}.login-security{margin-top:24px}}