/* Isolated login presentation. Authentication and role routing stay in login.js. */
:root{color-scheme:light;--login-brand:#075640;--login-deep:#084334;--login-ink:#173e32;--login-muted:#5f736b;--login-paper:#f4f7f5;--login-line:#cbd8d1;--login-focus:#248262}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--login-paper)}
.cy-login{font-family:"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;color:var(--login-ink);font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}
.cy-login button,.cy-login input{font:inherit}.cy-login button,.cy-login a{-webkit-tap-highlight-color:transparent}.cy-login button{cursor:pointer}.cy-login .hidden{display:none!important}
.cy-login .cy-brand-art{display:block;width:100%;height:auto;aspect-ratio:1146/192;overflow:hidden}
.login-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(440px,1fr);min-height:100vh;min-height:100svh}
.login-brand-panel{position:relative;overflow:hidden;background:var(--login-brand);display:flex;flex-direction:column;min-width:0;padding:clamp(32px,4.4vw,72px);color:white}
.login-wordmark{position:relative;z-index:1;width:clamp(270px,31vw,460px);max-width:100%}
.login-wordmark .cy-brand-art{filter:invert(1)}
.login-identity{position:relative;flex:1;min-height:440px;margin:24px -72px 12px -40px;isolation:isolate}
.login-threads{position:absolute;inset:-60px 0 -100px;width:100%;height:calc(100% + 160px);color:#6ea990;opacity:.27}
.login-symbol{position:absolute;width:clamp(250px,29vw,410px);aspect-ratio:1;top:44%;left:47%;transform:translate(-50%,-50%);opacity:.94}
.login-symbol .cy-brand-art{aspect-ratio:1}
.login-brand-caption{position:absolute;bottom:0;left:40px;display:flex;gap:20px;align-items:flex-start}
.login-caption-line{display:block;width:32px;height:2px;background:#8fbaa5;margin-top:13px}
.login-brand-caption p{margin:0;font-size:clamp(20px,2.05vw,29px);line-height:1.6;font-weight:450;letter-spacing:1px}
.login-brand-note{margin:28px 0 0;font-size:12px;color:#c5dcd2}
.login-entry{position:relative;display:flex;flex-direction:column;padding:40px clamp(36px,6vw,98px) 28px;min-width:0;background:var(--login-paper)}
.login-legacy{align-self:flex-end;text-decoration:none;color:var(--login-muted);font-size:13px;display:inline-flex;align-items:center;min-height:44px;padding:0 8px;margin-right:-8px;border-radius:4px}
.login-entry-inner{width:100%;max-width:400px;margin:auto; padding:58px 0 70px}
.login-heading{margin-bottom:36px}.login-heading h1{font-size:30px;line-height:1.4;font-weight:650;letter-spacing:.3px;margin:0 0 12px}.login-heading p{font-size:14px;color:var(--login-muted);margin:0}
.login-form{display:grid;gap:24px}.login-field label{display:block;font-size:14px;font-weight:600;margin-bottom:10px}
.login-field input{display:block;width:100%;height:56px;border:1px solid var(--login-line);border-radius:6px;background:#fff;color:var(--login-ink);padding:14px 16px;outline:none;transition:border-color 140ms,box-shadow 140ms}
.login-field input::placeholder{color:#7c8982}.login-field input:focus{border-color:var(--login-focus);box-shadow:0 0 0 3px #2482621c}
.login-password{position:relative}.login-password input{padding-right:58px}.login-password button{position:absolute;right:5px;top:6px;width:44px;height:44px;border:0;border-radius:4px;color:var(--login-muted);background:transparent;display:grid;place-items:center}.login-password svg{width:22px;height:22px}.eye-slash{display:none}.login-password button[aria-pressed=true] .eye-slash{display:block}
.login-btn{height:56px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--login-brand);border-radius:6px;background:var(--login-brand);color:#fff;font-weight:600;margin-top:4px;transition:background 140ms,box-shadow 140ms}.login-btn svg{width:21px;height:21px}.login-btn:active{background:var(--login-deep)}.login-btn:disabled{cursor:wait;background:#426f5e;border-color:#426f5e}.login-btn:disabled:before{content:"";height:16px;width:16px;border:2px solid #ffffff66;border-top-color:#fff;border-radius:50%;animation:login-busy .8s linear infinite}
.cy-login button:focus-visible,.cy-login a:focus-visible{outline:3px solid var(--login-focus);outline-offset:4px}
.login-help{font-size:12px;color:var(--login-muted);margin:22px 0 0;line-height:1.7}.error-msg{padding:12px 14px;border:1px solid #e7b2af;border-left:3px solid #b24239;border-radius:4px;background:#fff5f3;color:#96382f;font-size:14px;overflow-wrap:anywhere}
.login-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px;color:var(--login-muted)}.login-footer button{background:none;border:0;color:inherit;font-size:12px;min-height:44px;padding:0 8px;margin-right:-8px;border-radius:4px}
.login-diagnostics{position:fixed;right:20px;bottom:24px;width:min(380px,calc(100vw - 40px));max-height:70vh;overflow:auto;padding:16px 20px;background:#fff;border:1px solid var(--login-line);border-radius:10px;box-shadow:0 12px 40px #183d3226;z-index:10;font-size:13px;overflow-wrap:anywhere}.login-diagnostics header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.login-diagnostics header button{width:44px;height:44px;border:0;background:none;font-size:24px;color:var(--login-muted)}
@media(hover:hover){.login-btn:hover{background:var(--login-deep);box-shadow:0 4px 12px #0756401c}.login-password button:hover,.login-legacy:hover,.login-footer button:hover{background:#e4ece7;color:var(--login-brand)}}
@media(min-width:1700px){.login-entry{padding-left:11vw;padding-right:11vw}.login-brand-panel{padding-left:7vw}.login-identity{margin-left:-40px}.login-wordmark{width:480px}.login-symbol{width:420px}}
@media(max-width:900px){.login-layout{display:flex;flex-direction:column}.login-brand-panel{padding:calc(42px + env(safe-area-inset-top,0px)) 28px 18px;background:var(--login-paper);overflow:visible;flex:none}.login-wordmark{width:290px;max-width:calc(100% - 28px);margin:0 auto}.login-wordmark .cy-brand-art{filter:none}.login-identity,.login-brand-note{display:none}.login-entry{padding:0 28px calc(16px + env(safe-area-inset-bottom,0px));flex:1;width:100%;max-width:480px;margin:auto}.login-legacy{order:3;align-self:center;font-size:12px;padding:0 12px;margin:0}.login-entry-inner{padding:30px 0 36px;margin:0 auto auto}.login-heading{margin-bottom:28px}.login-heading h1{font-size:26px;margin-bottom:9px}.login-heading p{font-size:13px}.login-form{gap:22px}.login-footer{margin-top:24px}.login-field input{height:54px}.login-btn{height:54px}.login-password button{top:5px}.login-diagnostics{bottom:calc(18px + env(safe-area-inset-bottom,0px))}}
@media(max-width:360px){.login-brand-panel{padding:32px 22px 10px}.login-entry{padding-left:22px;padding-right:22px}.login-wordmark{max-width:100%}.login-entry-inner{padding-top:26px}.login-heading h1{font-size:24px}.login-help{font-size:12px}}
@media(max-height:600px) and (min-width:901px){.login-identity{min-height:330px}.login-symbol{width:240px}.login-brand-caption p{font-size:20px}.login-entry-inner{padding:24px 0}.login-heading{margin-bottom:22px}.login-form{gap:18px}}
@keyframes login-busy{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
