@font-face{font-family:LoginInter;src:url('../fonts/getting_started/inter-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:LoginInter;src:url('../fonts/getting_started/inter-medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:LoginInter;src:url('../fonts/getting_started/inter-semibold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:LoginPublic;src:url('../fonts/getting_started/publicsans-semibold.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--brand:var(--brand-primary,#087a5b);--hover:var(--brand-primary-hover,#06664c);--mint:var(--bs-sidebar-item-active-bg,#e5efec);--canvas:#ececf1;--surface:#fff;--ink:#20292f;--muted:#586578;--line:#d9dde1;--input:var(--brand-input-bg,#f8f9fa);--error:#aa2938;--space:4px;color-scheme:light}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#087a5b66 transparent}
body{margin:0;background:var(--surface);color:var(--ink);font:400 14px/1.5 LoginInter,Inter,sans-serif}
button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}
::selection{background:var(--mint);color:var(--ink)}input{caret-color:var(--brand)}a{color:var(--brand);text-underline-offset:3px}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
[hidden]{display:none!important}.login-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.login-shell{display:grid;grid-template-columns:minmax(480px,1.1fr) minmax(400px,1fr);min-height:100vh;min-height:100dvh}
.login-panel{display:flex;flex-direction:column;padding:40px 56px 24px;min-width:0}
.login-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;width:100%;max-width:540px;align-self:center}
.login-logo{display:block;width:168px;height:auto}
.login-language select{min-height:44px;padding:8px 12px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:4px;font-size:13px;cursor:pointer}
.login-body{width:100%;max-width:360px;margin:auto; padding:64px 0}
.login-body h1{font:600 24px/1.3 LoginPublic,LoginInter,sans-serif;letter-spacing:0;margin:0 0 8px}
.login-intro{color:var(--muted);margin:0 0 32px;font-size:13px}
.login-form{display:grid;gap:20px}.login-field{display:grid;gap:8px}.login-field>label{font-size:13px;font-weight:500}
.login-field>input,.login-password{width:100%;min-width:0;height:44px;border:1px solid var(--line);background:var(--input);border-radius:4px}
.login-field input{color:var(--ink);padding:0 12px;font-size:13px}.login-field input::placeholder{color:var(--muted);opacity:1}
.login-field>input:focus,.login-password:focus-within{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand);box-shadow:none}
.login-password{display:flex;align-items:center}.login-password input{width:100%;height:100%;min-width:0;border:0;background:transparent;outline:0;border-radius:4px;box-shadow:none}
.login-password input:focus-visible{outline:0;box-shadow:none}
.login-reveal{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted)}
.login-reveal:hover{color:var(--brand);background:var(--mint)}.login-reveal:focus-visible{outline-offset:-3px}
.login-remember{display:flex;align-items:center;gap:10px;min-height:44px;margin:-8px 0;font-size:13px;cursor:pointer;width:fit-content}
.login-remember input{width:16px;height:16px;margin:0;accent-color:var(--brand)}
.login-submit{min-height:44px;background:var(--brand);color:var(--surface);border:0;border-radius:4px;font-size:13px;font-weight:600;transition:background-color 160ms ease}
.login-submit:hover{background:var(--hover)}.login-submit:active{background:var(--hover)}
.login-field-error{color:var(--error);font-size:12px}.login-field>input[aria-invalid=true],.login-password:has(input[aria-invalid=true]){border-color:var(--error)}
.login-support{margin-top:24px;text-align:center}.login-support button{min-height:44px;background:none;border:0;padding:8px 12px;font-size:13px;color:var(--brand);border-radius:4px}
.login-support button:hover{text-decoration:underline;text-underline-offset:3px}.login-support-details{display:grid;gap:8px;margin:8px 0 0;color:var(--muted);font-size:12px}
.login-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;font-size:11px;color:var(--muted);width:100%;max-width:540px;align-self:center}
.login-brand-panel{display:flex;align-items:center;justify-content:center;padding:64px;background:var(--brand);color:var(--surface)}
.login-brand-content{width:100%;max-width:380px}.login-brand-content img{width:100%;height:auto;display:block}
.login-brand-content p{margin:36px 0 0;color:var(--mint);font-size:16px;line-height:1.7}
@media(max-width:960px){.login-shell{grid-template-columns:1fr}.login-brand-panel{display:none}.login-panel{padding:32px 40px 24px}.login-header,.login-footer{max-width:480px}.login-body{padding:60px 0;max-width:360px}}
@media(max-width:480px){.login-panel{padding:24px}.login-header{gap:16px}.login-logo{width:144px}.login-body{padding:48px 0 40px}.login-footer{flex-direction:column;gap:4px}.login-body h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* The approved login composition is shared by both existing auth endpoints. */
.login-language{display:flex;align-items:center;gap:8px;margin:0;flex-shrink:0}
.login-language-apply{min-height:44px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--brand);padding:8px 12px;font-size:13px}
.login-submit{display:flex;align-items:center;justify-content:center;gap:8px}
.login-submit:disabled{cursor:wait;opacity:.7}
.login-spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:login-spin 800ms linear infinite}
.login-alert{display:grid;gap:8px;margin:0;padding:12px;border:1px solid var(--error);border-radius:4px;color:var(--error);font-size:13px;overflow-wrap:anywhere}
.login-alert a{color:inherit}
.login-alert:focus{outline:2px solid var(--error);outline-offset:-1px}
.login-support-details{overflow:hidden}
.login-support-details a,.login-alert a{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
.login-support-details a{justify-content:center}
.login-custom-logo{padding:24px;background:var(--surface);border-radius:4px}
.login-logo{max-width:100%;object-fit:contain;object-position:left center}
.login-brand-content p{color:var(--login-brand-caption,#e5efec)}
.login-page::-webkit-scrollbar{width:6px;height:6px}
.login-page::-webkit-scrollbar-thumb{background:rgba(var(--brand-primary-rgb,8,122,91),.4);border-radius:4px}
.login-page::-webkit-scrollbar-track{background:transparent}
@keyframes login-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.login-spinner{animation:none}}
