/* finesse · page: secure-login · register=product · palette=stone+petrol
 * controls: default · hover · focus-visible · active · disabled · loading · error · success */
:root{--bg:#f3f3ef;--panel:#fdfdf9;--panel-soft:#eef1ee;--ink:#203039;--ink-2:#51616a;--ink-3:#687a80;--accent:#236b75;--accent-dark:#174e58;--accent-soft:#e4f0ef;--rail:#1c3038;--rail-2:#294149;--rail-text:#d6e1e1;--rail-muted:#9eb1b4;--rail-accent:#8ec2c0;--border:#dfe5e2;--danger:#9f3438;--danger-soft:#fbefee;--success:#2f7461;--focus:#72aaa8;--shadow:0 28px 80px rgba(25,49,57,.13);font-family:"Segoe UI","Microsoft YaHei",Arial,sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow-x:clip}body{background:var(--bg);font-size:14px;line-height:1.5}.login-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr)}
.brand-panel{min-width:0;background:var(--rail);color:var(--rail-text);padding:clamp(30px,5vw,72px);display:flex;flex-direction:column;position:relative;overflow:hidden}.brand-panel::after{content:"";position:absolute;right:-14%;bottom:-18%;width:min(520px,55vw);aspect-ratio:1;border:1px solid rgba(142,194,192,.16);border-radius:50%;box-shadow:0 0 0 70px rgba(142,194,192,.025),0 0 0 140px rgba(142,194,192,.018);pointer-events:none}.brand-lockup,.mobile-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.brand-mark{width:44px;height:44px;border:1px solid #527077;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:700;letter-spacing:-6px;padding-right:6px;color:#ecf5f0;flex:none}.brand-mark span{font-size:21px;color:var(--rail-accent)}.brand-lockup strong{font-size:23px;letter-spacing:2px;line-height:1}.brand-lockup small{display:block;font-size:9px;letter-spacing:2.8px;margin-top:6px;color:var(--rail-muted)}.brand-copy{max-width:620px;margin:auto 0;position:relative;z-index:1}.eyebrow{margin:0 0 14px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:1.8px}.brand-copy .eyebrow{color:var(--rail-accent)}.brand-copy h1{font-size:clamp(31px,4vw,58px);line-height:1.12;letter-spacing:-1.8px;font-weight:650;margin:0;overflow-wrap:anywhere;min-width:0}.brand-copy>p:last-child{max-width:530px;color:var(--rail-muted);font-size:14px;line-height:1.9;margin:27px 0 0}.server-note{display:flex;align-items:center;gap:9px;font-size:11px;color:#bfd0ce;position:relative;z-index:1}.server-note i{width:7px;height:7px;border-radius:50%;background:#83b6a5;box-shadow:0 0 0 5px rgba(131,182,165,.1)}
.login-panel{min-width:0;padding:clamp(24px,5vw,72px);display:flex;flex-direction:column;align-items:center;justify-content:center}.mobile-brand{display:none;color:var(--rail);align-self:flex-start}.mobile-brand strong{font-size:20px;letter-spacing:2px}.login-card{width:min(430px,100%);background:var(--panel);border:1px solid rgba(36,67,70,.08);border-radius:18px;padding:clamp(25px,4vw,42px);box-shadow:var(--shadow)}.login-card header h2{font-size:28px;line-height:1.2;letter-spacing:-.7px;margin:0 0 10px;font-weight:650}.login-card header>p:last-child{font-size:12px;color:var(--ink-3);line-height:1.75;margin:0 0 27px}.field{display:grid;gap:7px;margin-top:17px}.field label{font-size:12px;color:var(--ink-2);font-weight:600}.field input{width:100%;min-width:0;min-height:48px;border:1px solid var(--border);border-radius:9px;background:#fafbf7;color:var(--ink);padding:11px 13px;font:inherit;outline:2px solid transparent;outline-offset:2px;transition:border-color .16s,background-color .16s,box-shadow .16s}.field input:active{background:var(--panel)}.field input:focus-visible{outline-color:var(--focus);border-color:var(--accent);background:var(--panel)}.field input[aria-invalid="true"]{border-color:var(--danger);background:var(--danger-soft)}.form-message{min-height:21px;margin:11px 0 9px;color:var(--danger);font-size:11px;line-height:1.6}.form-message.success{color:var(--success)}button{width:100%;min-height:48px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:#f4faf7;padding:11px 16px;font:inherit;font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer;outline:2px solid transparent;outline-offset:3px;display:flex;align-items:center;justify-content:center;gap:9px;transition:background-color .16s,border-color .16s}button:focus-visible{outline-color:var(--focus)}button:active{background:var(--accent-dark);border-color:var(--accent-dark)}button:disabled{opacity:.62;cursor:not-allowed}.button-progress{display:none;width:15px;height:15px;border:2px solid rgba(244,250,247,.42);border-top-color:#f4faf7;border-radius:50%;animation:spin .7s linear infinite}button[data-state="loading"] .button-progress{display:block}button[data-state="success"]{background:var(--success);border-color:var(--success)}button[data-state="error"]{background:var(--danger);border-color:var(--danger)}.privacy-note{font-size:10px;line-height:1.7;color:var(--ink-3);margin:18px 0 0;text-align:center}.login-panel footer{width:min(430px,100%);font-size:9px;color:var(--ink-3);letter-spacing:.8px;margin-top:22px;text-align:center}.login-panel footer span{margin:0 5px;color:#9aabaa}
@media(hover:hover){.field input:hover{border-color:#aec4c0}.login-card button:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}}
@media(max-width:760px){.login-shell{display:block;min-height:100dvh}.brand-panel{display:none}.login-panel{min-height:100dvh;padding:24px 18px max(24px,env(safe-area-inset-bottom));justify-content:flex-start}.mobile-brand{display:flex;margin:2px 0 34px}.mobile-brand .brand-mark{width:40px;height:40px;font-size:23px;color:var(--rail)}.login-card{margin:auto 0;padding:27px 21px;border-radius:15px}.login-card header h2{font-size:24px}.field input{font-size:16px}.login-panel footer{margin-top:28px}}
@media(max-width:340px){.login-panel{padding-left:12px;padding-right:12px}.login-card{padding-left:17px;padding-right:17px}.mobile-brand{margin-bottom:22px}}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.button-progress{border-top-color:#f4faf7}}
