/* Versioned login-page styles: separate URL avoids stale app.css caches. */
.auth-body{background:#f7f2ec;color:#342b2a}
.auth-shell{grid-template-columns:minmax(430px,52%) 1fr;background:#fff;overflow:hidden}
.auth-visual{min-height:100vh;padding:42px 8%;background:radial-gradient(ellipse at 75% 68%,rgba(227,143,111,.43),transparent 35%),linear-gradient(145deg,#8b4e43 0%,#6e3e3b 54%,#4c3337 100%)}
.auth-visual:before{content:"";position:absolute;inset:14px;border:1px solid rgba(255,241,229,.13);border-radius:24px;pointer-events:none;z-index:-1}
.auth-grain{position:absolute;inset:0;opacity:.17;z-index:-1;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.5) .55px,transparent .7px);background-size:5px 5px;mask-image:linear-gradient(120deg,#000,transparent 72%)}
.auth-visual .brand-mark{background:#e69b79;color:#603a38;border-radius:10px}.auth-visual .eyebrow{color:#f2c6a9}
.visual-copy{max-width:590px;margin-top:-6px}.visual-copy h1{font-size:clamp(38px,4.1vw,61px);line-height:1.22;letter-spacing:-1.7px;margin:22px 0;color:#fff8f0}.visual-copy p{color:#f0d4c7;font-size:15px;line-height:1.8;max-width:390px}.visual-bottom{color:#e9c8bb}
.auth-mascot{position:absolute;width:min(39vw,420px);height:min(39vw,420px);right:7%;bottom:13%;display:grid;place-items:center;pointer-events:none;filter:drop-shadow(0 28px 40px rgba(42,19,22,.22))}
.mascot-face{position:relative;width:64%;height:68%;border-radius:48% 52% 47% 53%/51% 48% 52% 49%;background:linear-gradient(145deg,#ffe4bd,#f1a779);box-shadow:inset -16px -17px 0 rgba(190,99,79,.16),inset 9px 8px 0 rgba(255,255,255,.55);transform:rotate(-7deg);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.mascot-face:before,.mascot-face:after{content:"";position:absolute;width:28%;height:28%;top:-10%;background:#f7bd91;border-radius:80% 20% 55% 35%;z-index:-1}.mascot-face:before{left:7%;transform:rotate(-20deg)}.mascot-face:after{right:4%;transform:rotate(26deg) scaleX(-1)}
.mascot-eyes{position:absolute;left:17%;right:17%;top:29%;display:flex;justify-content:space-between;gap:12%}.mascot-eye{position:relative;display:block;width:36%;height:66px;max-height:6vw;min-height:44px;border-radius:50%;overflow:hidden;background:#fffaf1;box-shadow:inset 0 -4px 0 rgba(150,78,63,.12)}
.mascot-eye i{position:absolute;left:50%;top:50%;width:26px;height:30px;border-radius:50%;background:#49353a;transform:translate(calc(-50% + var(--eye-x,0px)),calc(-50% + var(--eye-y,0px)));transition:transform .09s linear}.mascot-eye i:after{content:"";position:absolute;top:5px;left:5px;width:7px;height:7px;background:#fff;border-radius:50%}.mascot-eye:after{content:"";position:absolute;inset:-3px 0 auto;height:0;background:#d77e68;border-radius:0 0 50% 50%;transition:height .2s ease}.auth-shell.is-password-focused .mascot-eye:after{height:110%}
.mascot-cheek{position:absolute;top:55%;width:14%;height:7%;border-radius:50%;background:rgba(216,108,99,.42);filter:blur(3px)}.cheek-left{left:8%}.cheek-right{right:8%}.mascot-mouth{position:absolute;left:44%;top:61%;width:14%;height:12%;border-bottom:4px solid #8d4d4b;border-radius:0 0 60% 60%;transform:rotate(-3deg)}
.mascot-hand{position:absolute;width:31%;height:27%;right:-15%;top:45%;border-radius:55% 45% 55% 45%;background:#ffd8ac;border:5px solid #e99676;transform:rotate(-26deg) translateY(80%);opacity:0;transition:all .28s ease}.auth-shell.is-password-focused .mascot-hand{opacity:1;transform:rotate(-26deg) translateY(0)}
.mascot-orbit{position:absolute;border:1px solid rgba(255,236,215,.3);border-radius:50%;transform:rotate(-18deg)}.orbit-a{width:94%;height:47%}.orbit-b{width:78%;height:100%;transform:rotate(48deg);border-color:rgba(255,236,215,.18)}.mascot-spark{position:absolute;color:#ffd2a8;font-size:27px;animation:mascot-float 3.5s ease-in-out infinite}.spark-one{top:13%;left:15%}.spark-two{right:10%;bottom:21%;font-size:20px;animation-delay:-1.2s}
.mascot-caption{position:absolute;right:0;bottom:2%;padding:11px 18px;border:1px solid rgba(255,255,255,.36);border-radius:16px;background:rgba(255,245,235,.16);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#fff5e9;font-size:12px;letter-spacing:1px;box-shadow:0 10px 30px rgba(38,19,20,.1)}@keyframes mascot-float{50%{transform:translateY(-9px) rotate(10deg)}}
.auth-panel{position:relative;justify-content:center;padding:56px 9%;background:radial-gradient(ellipse at 90% 4%,rgba(236,218,201,.35),transparent 30%),rgba(255,255,255,.92)}.auth-form-wrap{max-width:400px}.auth-form-wrap>.eyebrow{color:#ad705c;letter-spacing:2px}.auth-form-wrap h2{font-size:31px;letter-spacing:-.8px;color:#382d2b}.auth-form-wrap>.muted{line-height:1.7;color:#958985}.form-stack{gap:19px}.form-stack label{color:#594b47}.form-stack label input{border-color:#eae1dc;border-radius:12px;padding:14px 15px;background:#fffdfb}.form-stack label input:focus{border-color:#c78068;box-shadow:0 0 0 4px rgba(199,128,104,.13)}
.btn-primary{background:#985b4e;box-shadow:0 8px 18px rgba(131,73,63,.2)}.btn-primary:hover{background:#7f483f}.auth-foot a{color:#9b5c4f}.admin-link{border-radius:12px}.auth-separator{background:#eee6e1}.auth-copyright{position:absolute;bottom:28px;left:0;right:0;color:#b2a7a1}
@media(max-width:1050px){.auth-shell{grid-template-columns:46% 1fr}.auth-mascot{width:37vw;height:37vw;right:2%}.mascot-eye{height:48px;min-height:38px}.mascot-eye i{width:20px;height:24px}}
@media(max-width:720px){.auth-shell{display:flex;flex-direction:column;overflow:hidden}.auth-visual{min-height:255px;padding:22px 25px 18px}.auth-visual:before{inset:8px;border-radius:18px}.visual-copy{margin:24px 0 8px;max-width:63%;z-index:2}.visual-copy .eyebrow{font-size:8px;letter-spacing:1.2px}.visual-copy h1{font-size:27px;line-height:1.2;margin:9px 0}.visual-copy p{font-size:11px;line-height:1.5;margin:0}.auth-mascot{width:190px;height:190px;right:-9px;bottom:24px;opacity:.96}.mascot-face{width:63%;height:65%}.mascot-eye{height:35px;min-height:30px}.mascot-eye i{width:16px;height:19px}.mascot-eye i:after{width:5px;height:5px}.mascot-mouth{border-width:3px}.mascot-caption{font-size:9px;padding:7px 10px;bottom:-2%;right:13%}.mascot-spark{font-size:17px}.auth-panel{min-height:calc(100vh - 255px);padding:25px 25px 58px}.auth-form-wrap{margin:25px auto}.auth-copyright{bottom:19px}}
@media(prefers-reduced-motion:reduce){.mascot-spark{animation:none}.mascot-eye i,.mascot-eye:after,.mascot-hand{transition:none}}

/* 两个入口各有清晰的品牌语气：客服端温暖，管理端沉稳。 */
.auth-body .auth-visual{background:radial-gradient(circle at 78% 74%,rgba(244,174,125,.46),transparent 31%),radial-gradient(circle at 12% 8%,rgba(220,157,133,.22),transparent 35%),linear-gradient(145deg,#854e48,#633d41 58%,#49343a)}
.auth-body .auth-panel{background:radial-gradient(ellipse at 90% 8%,rgba(232,199,175,.3),transparent 30%),#fbf8f4}
.auth-body .auth-form-wrap{padding:38px 36px;border:1px solid #f0e5dc;border-radius:22px;background:rgba(255,255,255,.86);box-shadow:0 22px 65px rgba(83,58,47,.08)}
.auth-body .auth-form-wrap h2{font-size:29px}.auth-body .auth-mascot{width:min(35vw,390px);height:min(35vw,390px);right:8%;bottom:12%}
.auth-admin{background:#f0f0e9}
.auth-admin .auth-shell{grid-template-columns:minmax(430px,52%) 1fr;background:#f5f5ef}
.auth-admin .auth-visual{background:radial-gradient(ellipse at 80% 65%,rgba(169,157,107,.22),transparent 38%),linear-gradient(145deg,#27332e,#202a27 68%,#1e2523)}
.auth-admin .auth-visual:before{border-color:rgba(230,224,191,.13)}
.auth-admin .auth-grain{opacity:.09}
.auth-admin .brand-mark{background:#c9b879;color:#26312a}
.auth-admin .auth-visual .eyebrow{color:#d4c993}
.auth-admin .visual-copy .eyebrow{font-size:0;letter-spacing:0}.auth-admin .visual-copy .eyebrow:after{content:"管理中心 · 专属入口";font-size:10px;letter-spacing:1.8px}
.auth-admin .visual-copy h1{color:#f2f0e5;font-size:clamp(37px,3.8vw,54px)}
.auth-admin .visual-copy h1{font-size:0;line-height:0}.auth-admin .visual-copy h1:after{content:"管理后台，安全有序";display:block;font-size:clamp(37px,3.8vw,54px);line-height:1.22;letter-spacing:-1.5px}
.auth-admin .visual-copy p{color:#bfc8bd}
.auth-admin .visual-copy p{font-size:0}.auth-admin .visual-copy p:after{content:"统一管理团队账号、接待授权与服务数据。";font-size:15px;line-height:1.8}
.auth-admin .visual-bottom{color:#c9cbb7}
.auth-admin .auth-mascot{display:none}
.auth-admin .auth-visual:after{content:"";position:absolute;z-index:0;right:7%;bottom:16%;width:54%;height:27%;min-height:190px;border:1px solid rgba(237,230,190,.2);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025)),linear-gradient(90deg,transparent 0 8%,rgba(222,209,153,.5) 8% 23%,transparent 23% 28%,rgba(222,209,153,.26) 28% 43%,transparent 43% 48%,rgba(222,209,153,.38) 48% 68%,transparent 68%),linear-gradient(180deg,transparent 0 20%,rgba(234,231,211,.22) 20% 21%,transparent 21% 56%,rgba(234,231,211,.16) 56% 57%,transparent 57%);box-shadow:0 28px 75px rgba(0,0,0,.18);backdrop-filter:blur(4px);transform:perspective(900px) rotateY(-9deg) rotateX(3deg)}
.auth-admin .auth-panel{background:radial-gradient(ellipse at 100% 0,rgba(209,207,175,.25),transparent 35%),#f7f7f2}
.auth-admin .auth-form-wrap{padding:42px 38px;border:1px solid #e8e8dc;border-radius:18px;background:#fff;box-shadow:0 22px 60px rgba(41,49,40,.08)}
.auth-admin .auth-form-wrap>.eyebrow{color:#777447}
.auth-admin .auth-form-wrap h2{color:#28332d;font-size:29px}
.auth-admin .auth-form-wrap>.muted{font-size:0}.auth-admin .auth-form-wrap>.muted:after{content:"请使用平台管理员账号继续。";font-size:14px}
.auth-admin .form-stack label input{border-color:#e5e7df;background:#fff}
.auth-admin .form-stack label input:focus{border-color:#97966a;box-shadow:0 0 0 4px rgba(131,132,91,.13)}
.auth-admin .btn-primary{background:#34473d;box-shadow:0 8px 18px rgba(42,60,48,.16)}.auth-admin .btn-primary:hover{background:#293a32}
.auth-admin .auth-foot a{color:#65734c}.auth-admin .auth-copyright{color:#9da294}
@media(max-width:720px){.auth-user .auth-form-wrap,.auth-admin .auth-form-wrap{padding:27px 22px}.auth-admin .auth-visual{min-height:255px}.auth-admin .auth-visual:after{right:5%;bottom:12%;width:44%;height:55%;min-height:110px;opacity:.68}.auth-admin .visual-copy{max-width:66%}}
@media(max-width:720px){.auth-body .auth-form-wrap{padding:27px 22px}}

/* 登录与注册页跟随工作台的浅蓝白色主题 */
.auth-body{background:#edf7ff}
.auth-visual{background:#1687ed;color:#fff;border-right:1px solid #0f7cda}
.auth-visual:before{border-color:#ffffff35}.brand-light .brand-mark{background:#ffffff26;color:#fff}.visual-copy .eyebrow{color:#dff2ff}.visual-copy h1{color:#fff}.visual-copy p{color:#d8efff}.visual-bottom{color:#d8efff}
.auth-panel{background:#f5faff}.auth-top{color:#6f8da5}.secure{color:#52738d}.auth-form-wrap{max-width:420px;padding:34px 36px;border:1px solid #d6eafa;border-radius:20px;background:#fff;box-shadow:0 14px 35px rgba(61,128,177,.09)}.auth-form-wrap>.eyebrow{color:#1687ed}.auth-form-wrap h2{color:#173b5b}.auth-form-wrap>.muted{color:#7895aa}.form-stack label{color:#315876}.form-stack label input,.form-stack label select,.form-stack label textarea{border-color:#d8e9f7;background:#fff;color:#173b5b}.form-stack label input:focus,.form-stack label select:focus,.form-stack label textarea:focus{border-color:#7ebcf0;box-shadow:0 0 0 4px rgba(22,135,237,.12)}.form-stack input::placeholder{color:#9bb2c3}.btn-primary{background:#1687ed;box-shadow:0 7px 16px #1687ed2b}.btn-primary:hover{background:#0873d4}.auth-foot{color:#7895aa}.auth-foot a,.admin-link{color:#1687ed}.auth-separator{background:#e3eff7}.auth-separator span{background:#fff;color:#8aa2b5}.admin-link{border-color:#d6eafa;color:#52738d;background:#fff}.admin-icon{color:#1687ed}.demo-note,.auth-copyright{color:#8aa2b5}.auth-mascot{filter:drop-shadow(0 28px 40px rgba(14,88,142,.22))}.mascot-caption{background:#fff;color:#285574;border-color:#d6eafa}.auth-body .alert-error{background:#fff0ef;border-color:#ffe2df}.auth-body .alert-success{background:#eaf8f1;border-color:#d3f0e1}
.auth-body .auth-visual{background:#1687ed;color:#fff}.auth-body .auth-panel{background:#f5faff}.auth-body .auth-visual .brand-mark{background:#ffffff26;color:#fff}.auth-body .auth-visual .eyebrow{color:#dff2ff}
.auth-admin{background:#edf7ff}.auth-admin .auth-shell{background:#edf7ff}.auth-admin .auth-visual{background:#1687ed}.auth-admin .auth-visual:before{border-color:#ffffff35}.auth-admin .auth-visual .eyebrow{color:#dff2ff}.auth-admin .visual-copy p{color:#d8efff}.auth-admin .visual-bottom{color:#d8efff}.auth-admin .auth-panel{background:#f5faff}.auth-admin .auth-form-wrap{border-color:#d6eafa;background:#fff;box-shadow:0 14px 35px rgba(61,128,177,.09)}.auth-admin .auth-form-wrap>.eyebrow{color:#1687ed}.auth-admin .auth-form-wrap h2{color:#173b5b}.auth-admin .auth-form-wrap>.muted{color:#7895aa}.auth-admin .form-stack label{color:#315876}.auth-admin .form-stack label input{border-color:#d8e9f7}.auth-admin .form-stack label input:focus{border-color:#7ebcf0;box-shadow:0 0 0 4px rgba(22,135,237,.12)}.auth-admin .btn-primary{background:#1687ed;box-shadow:0 7px 16px #1687ed2b}.auth-admin .btn-primary:hover{background:#0873d4}.auth-admin .auth-foot a{color:#1687ed}.auth-admin .auth-copyright{color:#8aa2b5}
