:root{--navy:#071b39;--brand:#1268e8;--cyan:#14b1cf;--ink:#17213c;--muted:#68758a;--line:#d9e2ed;--soft:#f5f7fb;--red:#bd3345;font-family:"DM Sans",sans-serif;color:var(--ink)}
*{box-sizing:border-box}html,body{margin:0;min-width:320px;min-height:100%;background:#fff}button,input{font:inherit}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(460px,52%) 1fr}.center-story{position:relative;overflow:hidden;color:#fff;min-height:100vh}.center-story>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:imageIn 1s ease both}.story-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,18,38,.35),rgba(5,18,38,.72) 62%,rgba(5,18,38,.94))}.center-brand{position:absolute;left:clamp(28px,5vw,70px);top:32px;display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}.center-brand>img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#fff}.center-brand span{display:grid}.center-brand strong{font:800 15px Manrope}.center-brand small{margin-top:3px;font-size:8px;color:#aec0d5;text-transform:uppercase;letter-spacing:1.1px}.story-copy{position:absolute;left:clamp(28px,7vw,100px);right:clamp(28px,7vw,100px);bottom:115px;max-width:680px;animation:contentIn .65s .12s ease both}.eyebrow,.login-title>span{font-size:9px;text-transform:uppercase;letter-spacing:1.6px;color:#6ee1f2;font-weight:800}.story-copy h1{font:800 clamp(38px,5vw,69px)/1.03 Manrope;letter-spacing:0;margin:14px 0 20px;overflow-wrap:anywhere}.story-copy>p{font-size:14px;line-height:1.65;color:#d8e2ee;max-width:580px}.story-stats{display:flex;gap:24px;flex-wrap:wrap;margin-top:35px;padding-top:23px;border-top:1px solid rgba(255,255,255,.22)}.story-stats span{display:flex;align-items:center;gap:7px;font-size:9px;color:#c3d1df}.story-stats svg{width:16px;color:#65d8ec}.story-stats b{font-weight:600}.story-footer{position:absolute;left:clamp(28px,5vw,70px);right:clamp(28px,5vw,70px);bottom:28px;display:flex;justify-content:space-between;gap:15px;font-size:8px;color:#8fa5bd}.login-workspace{min-height:100vh;display:flex;flex-direction:column;background:#fff}.login-workspace>header{height:70px;padding:0 clamp(24px,5vw,65px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f4}.login-workspace>header a,.secure-state{display:flex;align-items:center;gap:7px;color:#718096;font-size:9px;text-decoration:none}.login-workspace>header a:hover{color:var(--brand)}.login-workspace>header svg{width:14px}.secure-state svg{color:#17845f}.login-panel{width:min(430px,calc(100% - 44px));margin:auto;padding:38px 0}.mobile-brand{display:none}.login-title>span{color:var(--brand)}.login-title h2{font:800 clamp(27px,3vw,35px) Manrope;margin:8px 0}.login-title p{font-size:11px;line-height:1.55;color:var(--muted);margin:0 0 32px}.field{display:grid;gap:8px;margin:18px 0}.field>span{font-size:10px;font-weight:700}.control{height:50px;border:1px solid var(--line);border-radius:7px;display:grid;grid-template-columns:21px 1fr;align-items:center;gap:8px;padding:0 13px;background:#fff;transition:border-color .18s,box-shadow .18s,transform .18s}.control:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(18,104,232,.1);transform:translateY(-1px)}.control>svg{width:17px;color:#8190a4}.control input{height:46px;width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.control input::placeholder{color:#a5afbd}.password-control{grid-template-columns:21px 1fr 36px;padding-right:5px}.password-control button{width:36px;height:36px;border:0;border-radius:5px;background:transparent;color:#77869a;display:grid;place-items:center;cursor:pointer}.password-control button:hover{background:#f0f4f8;color:var(--brand)}.password-control button svg{width:16px}.form-options{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:6px 0 22px;color:#7a8799;font-size:9px}.form-options label{display:flex;align-items:center;gap:7px}.form-options input{width:15px;height:15px;accent-color:var(--brand)}.form-options>span{color:#8794a7}.form-error{display:none;grid-template-columns:18px 1fr;gap:8px;align-items:start;background:#fff0f2;color:var(--red);border:1px solid #f5ccd2;padding:11px;border-radius:6px;font-size:10px;margin-bottom:14px}.form-error.show{display:grid}.form-error svg{width:16px}.login-button{width:100%;height:48px;border:0;border-radius:7px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 8px 22px rgba(18,104,232,.2);transition:.18s}.login-button:hover{background:#0d59c8;transform:translateY(-1px);box-shadow:0 12px 28px rgba(18,104,232,.25)}.login-button:disabled{opacity:.58;cursor:wait;transform:none}.login-button svg{width:16px}.login-button.loading svg{animation:spin .8s linear infinite}.access-help{display:grid;grid-template-columns:20px 1fr;gap:10px;margin-top:27px;padding-top:22px;border-top:1px solid #edf0f4;color:#7a8799}.access-help>svg{width:17px;color:#73849b}.access-help p{margin:0;font-size:9px;line-height:1.5}.access-help strong{display:block;color:#435169;font-size:9px}.login-workspace>footer{height:54px;display:flex;align-items:center;justify-content:center;gap:20px;color:#9ba5b4;font-size:8px}.login-workspace>footer span:first-child{margin-right:auto;margin-left:30px}@keyframes imageIn{from{opacity:.75;transform:scale(1.025)}to{opacity:1;transform:none}}@keyframes contentIn{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:900px){.login-layout{display:block}.center-story{min-height:255px;height:34vh}.center-brand{top:20px;left:22px}.story-copy{left:22px;right:22px;bottom:28px}.story-copy h1{font-size:32px;margin:8px 0 10px}.story-copy>p,.story-stats,.story-footer{display:none}.login-workspace{min-height:66vh}.login-workspace>header{display:none}.login-panel{padding:32px 0}.mobile-brand{display:flex;align-items:center;gap:9px;margin-bottom:25px}.mobile-brand img{width:34px;height:34px;border-radius:50%}.mobile-brand strong{font:700 12px Manrope}.login-workspace>footer{padding:0 18px}.login-workspace>footer span:first-child{margin-left:0}}
@media(max-width:480px){.center-story{height:220px;min-height:220px}.center-brand strong{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.story-copy h1{font-size:28px}.login-panel{width:calc(100% - 34px);padding:27px 0}.login-title h2{font-size:26px}.login-title p{margin-bottom:25px}.form-options>span{display:none}.login-workspace>footer span:not(:first-child){display:none}}

/* Forgotten-password flow */
.link-button{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
.form-intro{margin:0 0 14px;color:#5b6b80;font-size:14px}
.form-done{display:flex;gap:8px;align-items:flex-start;margin:10px 0;padding:10px 12px;border-radius:8px;background:#e8f6ee;color:#17603a;font-size:14px}
.form-done[hidden]{display:none}
.form-error.success{background:#e8f6ee;color:#17603a}
#forgotForm .link-button{display:block;margin:14px auto 0}

/* App install button (pwa.js) */
.pwa-host:empty{display:none}.pwa-host{margin-top:14px}.pwa-install{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d6dee9;border-radius:9px;background:#fff;color:#10213b;font:inherit;font-weight:700;cursor:pointer}.pwa-install svg{width:18px;height:18px}
.pwa-update{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:12px;background:#102a51;color:#fff;border-radius:10px;padding:10px 12px 10px 16px;font-size:13.5px}.pwa-update button{min-height:36px;border:0;border-radius:7px;background:#fff;color:#102a51;font-weight:700;padding:0 14px}
.pwa-help{width:min(420px,calc(100% - 28px));padding:22px;border:0;border-radius:12px}.pwa-help ol{padding-inline-start:20px;display:grid;gap:8px}.pwa-help svg{width:18px;height:18px;vertical-align:-3px}.pwa-help button{min-height:44px;width:100%;border:0;border-radius:9px;background:#1268e8;color:#fff;font-weight:700}

/* Second sign-in step (login-mfa.js) */
.mfa-panel{display:grid;gap:12px}.mfa-steps{display:grid;gap:10px;padding-inline-start:20px;font-size:14px;margin:0}.mfa-qr{width:180px;margin:8px 0}.mfa-qr svg{width:100%;height:auto}.mfa-panel code{font-family:ui-monospace,Menlo,Consolas,monospace;background:#f4f6fa;border-radius:5px;padding:2px 6px}.mfa-panel input[name=code]{font-size:20px;letter-spacing:4px;text-align:center}.mfa-recovery{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;padding-inline-start:20px}.mfa-recovery-box{display:grid;gap:12px}
