/* finesse · register=product · reference=CGC dark centered login · palette=navy+blue · density=focused-form */
:root{color-scheme:dark;--page:#030710;--card:#06142a;--text:#eef5ff;--label:#bdd7f6;--muted:#84a6d1;--edge:rgba(76,150,226,.48);--field:#e7effe;--field-ink:#102443;--focus:#4cb4ff;--error:#ffb7bf}
*,*::before,*::after{box-sizing:border-box}
html{min-width:280px;min-height:100%;background:var(--page)}
body{margin:0;color:var(--text);font:15px/1.5 'Segoe UI','Microsoft YaHei UI','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased;background:radial-gradient(ellipse 90% 82% at 50% 0%,#0d2b56 0%,#071a37 39%,#030710 85%);min-height:100svh}
button,input,a{-webkit-tap-highlight-color:transparent}
button,input{font:inherit}
button,a{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:wait}
[hidden]{display:none!important}
.login-shell{min-height:100svh;display:grid;place-items:center;padding:40px 22px}
.login-card{width:min(100%,420px);padding:36px 34px 27px;border:1px solid var(--edge);border-radius:15px;background:rgba(5,19,41,.96);box-shadow:0 24px 80px rgba(0,8,24,.36),0 0 36px rgba(26,108,218,.08)}
.login-heading{text-align:center;margin-bottom:28px}
h1{margin:0;font-size:27px;line-height:1.35;font-weight:650;letter-spacing:-.025em}
.login-field+.login-field{margin-top:18px}
label{display:block;margin-bottom:7px;color:var(--label);font-size:14px;font-weight:500}
input{display:block;width:100%;height:47px;min-width:0;padding:11px 13px;border:1px solid #a9c6ed;border-radius:8px;outline:0;background:var(--field);color:var(--field-ink);caret-color:#075de4;font-size:15px;line-height:1.4;transition:border-color .16s,box-shadow .16s}
input::placeholder{color:#667c9c;opacity:1}
input:focus{border-color:var(--focus);box-shadow:0 0 0 3px rgba(42,143,255,.19)}
input[aria-invalid=true]{border-color:#e28595;box-shadow:0 0 0 3px rgba(226,91,116,.1)}
input:disabled{opacity:.8}
input:-webkit-autofill{-webkit-text-fill-color:var(--field-ink);-webkit-box-shadow:0 0 0 100px var(--field) inset}
.password-input{position:relative}
.password-input input{padding-right:46px}
.password-toggle{position:absolute;right:3px;top:3px;display:grid;place-items:center;width:41px;height:41px;padding:0;border:0;border-radius:6px;background:transparent;color:#5a7295;transition:color .16s,background .16s}
.password-toggle:hover{background:rgba(40,98,176,.07);color:#164f9b}
.password-toggle:focus-visible{outline:2px solid #196ddd;outline-offset:-3px}
.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.password-toggle .eye-closed{display:none}
.password-toggle[aria-pressed=true] .eye-open{display:none}
.password-toggle[aria-pressed=true] .eye-closed{display:block}
.login-submit{width:100%;min-height:48px;margin-top:24px;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 16px;color:#f5f9ff;font-size:16px;font-weight:650;letter-spacing:.035em;background:linear-gradient(180deg,#13a9ff 0%,#0874f5 70%,#0862e6 100%);border:1px solid rgba(61,168,255,.58);border-radius:8px;box-shadow:inset 0 1px 0 rgba(219,243,255,.16),0 5px 18px rgba(0,70,174,.16);transition:filter .16s,box-shadow .16s,transform .1s}
.login-submit:hover:not(:disabled){filter:brightness(1.09);box-shadow:inset 0 1px 0 rgba(219,243,255,.24),0 6px 22px rgba(0,85,202,.25)}
.login-submit:active:not(:disabled){transform:translateY(1px);filter:brightness(.98)}
.login-submit:focus-visible{outline:2px solid #84cbff;outline-offset:4px}
.login-submit:disabled{filter:saturate(.65);opacity:.8}
.login-spinner{width:16px;height:16px;border:2px solid rgba(236,247,255,.4);border-top-color:#edf7ff;border-radius:50%;animation:spin .75s linear infinite}
.login-error{margin:16px 0 0;padding:10px 12px;border:1px solid rgba(220,101,122,.25);border-radius:7px;background:rgba(155,48,71,.11);color:var(--error);font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.login-footer{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:20px;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
.login-footer a{color:#9cb9dd;text-decoration:none;transition:color .16s}
.login-footer a:hover{color:#d4e9ff}
.login-footer a span{margin-left:3px}
.login-footer a:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);margin:-1px;padding:0;border:0}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:440px){.login-shell{padding:24px 18px}.login-card{padding:31px 25px 25px;border-radius:13px}h1{font-size:24px}.login-heading{margin-bottom:25px}}
@media(max-width:340px){.login-card{padding-inline:20px}h1{font-size:22px}}
@media(max-height:540px){.login-shell{padding-block:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.login-spinner{border-color:#edf7ff}}
