*{box-sizing:border-box}body{margin:0;font:400 15px/1.6 Inter,'Segoe UI',sans-serif;color:var(--text);background:var(--surface)}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--brand);outline-offset:3px}button:disabled{opacity:.65;cursor:wait}.login-shell{min-height:100svh;display:grid;grid-template-columns:1fr 1fr}.brand-panel{display:flex;flex-direction:column;justify-content:space-between;gap:64px;padding:48px clamp(32px,4.5vw,80px);background:var(--canvas);border-right:1px solid #e1e6ed}.brand-link{display:inline-flex;width:fit-content;min-height:48px;align-items:center}.brand-link picture{display:block}.brand-link img{display:block;max-width:100%;object-fit:contain}.brand-message{max-width:470px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--secondary);margin:0 0 24px}.brand-message h2{font:700 clamp(30px,3.1vw,46px)/1.25 Jakarta,Inter,sans-serif;letter-spacing:-.04em;margin:0;text-wrap:balance}.brand-message>p:last-child{margin:24px 0 0;color:var(--secondary)}footer{font-size:11px;color:var(--secondary);line-height:1.7}.form-panel{display:flex;justify-content:center;align-items:center;padding:56px 32px;min-width:0}.login-form{width:100%;max-width:400px}.form-brand{display:flex;margin:0 auto 32px}.form-heading{text-align:center;margin-bottom:32px}.form-heading h1{font:700 26px/1.3 Jakarta,Inter,sans-serif;letter-spacing:-.035em;margin:0 0 10px}.form-heading p{margin:0;color:var(--secondary);font-size:14px}.field{margin-bottom:22px}label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.label-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:8px}.label-row label{margin:0}.label-row a{font-size:12px}input:not([type=checkbox]){width:100%;min-width:0;min-height:48px;padding:12px 14px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px}input::placeholder{color:#66758a;font-size:14px}input[aria-invalid=true]{border-color:var(--danger)}.password-field{position:relative}.password-field input{padding-right:100px}.password-toggle{position:absolute;right:4px;top:2px;min-height:44px;border:0;background:transparent;color:var(--secondary);font-size:12px;padding:0 10px;cursor:pointer}.password-toggle[hidden]{display:none}.remember{display:flex;align-items:center;gap:10px;min-height:44px;margin:-8px 0 12px;font-weight:400}.remember input{width:17px;height:17px;margin:0;accent-color:var(--brand)}.button{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;border:1px solid var(--border);border-radius:8px;padding:12px 16px;background:var(--surface);color:var(--secondary);font-weight:600;font-size:14px;cursor:pointer}.button:hover{background:var(--canvas)}.button[data-login-primary]{background:#016dfc;border-color:#016dfc;color:#fff}.button[data-login-primary]:hover{background:#005dd9;border-color:#005dd9}.divider{display:flex;gap:14px;align-items:center;margin:28px 0 20px;font-size:12px;color:var(--secondary);text-align:center}.divider:before,.divider:after{content:'';height:1px;flex:1;background:#dce2eb}.register-link{text-align:center;font-size:13px;color:var(--secondary);margin:24px 0 0}.register-link a{font-weight:600}.field-error{color:var(--danger);font-size:12px;margin:8px 0 0}.field-error:empty{display:none}.errors,.status{padding:12px 14px;border-radius:8px;font-size:13px;margin:0 0 24px;overflow-wrap:anywhere}.errors{background:#fff3f3;border:1px solid #edc7c7;color:var(--danger)}.errors ul{margin:0;padding-left:18px}.status{background:#edf6ef;border:1px solid #c5dfcd}.mobile-footer{display:none}
@media(min-width:1600px){.form-panel{padding-left:72px;padding-right:72px}}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.brand-panel{display:none}.form-panel{min-height:100svh;padding:40px 24px}.mobile-footer{display:block;text-align:center;margin-top:48px}}
@media(max-width:380px){.form-panel{padding:28px 20px}.form-heading h1{font-size:24px}.label-row{gap:8px}}



.recovery{margin:-6px 0 18px;font-size:13px}.recovery summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--brand);font-weight:600}.recovery[open] summary{margin-bottom:8px}
