@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/inter/inter-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/inter/inter-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Shared brand shell; authentication remains static SSR. */
html,body { min-height:100%; margin:0; background:#fff; }
.login-body { --drm-font: "Inter Variable", "Segoe UI", sans-serif; min-height:100vh; min-height:100dvh; color:#102d4c; background:#fff; font-family:Inter,'Segoe UI',sans-serif; }
.login-page-wrapper { max-width:1440px; margin:0 auto; padding:0 56px; }
.login-topbar { min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid #e8edf2; }
.login-topbar img { width:220px; height:auto; display:block; }
.login-site-link { color:#435971; font-size:14px; text-decoration:none; display:flex; gap:12px; align-items:center; }
.login-site-link:hover { color:#052767; text-decoration:underline; }
.login-shell { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(340px,1fr); align-items:center; gap:72px; min-height:calc(100dvh - 101px); padding:52px 0; }
.login-eyebrow { display:block; color:#496479; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; margin-bottom:18px; }
.login-story h1 { max-width:620px; font-size:clamp(32px,3.5vw,49px); font-weight:700; line-height:1.15; letter-spacing:-.045em; color:#082c50; margin:0 0 22px; }
.login-story-lead { max-width:560px; font-size:16px; line-height:1.8; color:#607187; margin:0 0 30px; }
.login-brand-banner { width:100%; height:auto; display:block; border-radius:16px; border:1px solid #e5edf3; }
.login-capabilities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:30px; }
.login-capabilities > div { border-top:1px solid #dde5ed; padding-top:16px; }
.login-capabilities span { display:block; color:#967225; font-size:11px; margin-bottom:8px; }
.login-capabilities strong { display:block; font-size:13px; font-weight:600; }
.login-capabilities p { color:#61758a; font-size:11px; line-height:1.6; margin:6px 0 0; }
.login-card { width:100%; max-width:440px; justify-self:end; padding:38px; background:#fff; border:1px solid #e1e8ef; border-radius:20px; box-shadow:0 16px 60px rgba(18,50,81,.06); }
.login-header { margin-bottom:28px; }
.login-header .login-eyebrow { margin-bottom:12px; color:#967225; font-size:10px; }
.login-form-title { font-size:28px; font-weight:700; letter-spacing:-.035em; color:#082c50; margin:0 0 10px; }
.login-form-subtitle { font-size:14px; line-height:1.7; color:#617187; margin:0; }
.login-field-label { display:block; margin-bottom:8px; font-size:13px; font-weight:600; color:#304960; }
.login-card .mb-3 { margin-bottom:20px!important; }
.login-card .input-group { position:relative; display:flex; }
.login-card .input-group-text { position:absolute; top:50%; left:16px; transform:translateY(-50%); z-index:2; padding:0; border:0; background:transparent; color:#76899a; pointer-events:none; }
.login-card .input-group .form-control { width:100%; min-width:0; min-height:49px; padding:12px 42px; border:1px solid #d4dfe8; border-radius:8px!important; background:#fff; color:#15324d; font:inherit; font-size:14px; box-shadow:none; }
.login-card .form-control::placeholder { color:#7b8a99; }
.login-card .form-control:focus { outline:2px solid #b8d5e8; outline-offset:2px; border-color:#426f94; }
.login-card .password-toggle-btn { position:absolute; right:4px; top:4px; width:40px; height:41px; display:grid; place-items:center; background:transparent; color:#597087; border:0; border-radius:5px; z-index:3; cursor:pointer; }
.login-options { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; align-items:center; margin:4px 0 24px; font-size:12px; }
.login-remember { display:flex; align-items:center; gap:8px; }
.login-remember input { width:16px; height:16px; accent-color:#052767; }
.login-remember label { margin:0; color:#53687c; cursor:pointer; }
.login-forgot { color:#0d527d; text-decoration:none; }
.login-forgot:hover { text-decoration:underline; }
.login-submit-btn { width:100%; min-height:49px; padding:12px; border:1px solid #052767; border-radius:8px; background:#052767; color:#fff; font-size:14px; font-weight:600; cursor:pointer; transition:background .15s; }
.login-submit-btn:hover { background:#0d406f; }
.login-body a:focus-visible,.login-body button:focus-visible,.login-body input[type=checkbox]:focus-visible { outline:3px solid #4e9abc; outline-offset:3px; }
.login-form-footer { border-top:1px solid #e7edf2; padding-top:22px; margin-top:26px; }
.lang-switcher { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.login-card .lang-btn { padding:8px 10px; border-radius:6px; border:1px solid transparent; color:#65768b; text-decoration:none; font-size:11px; }
.login-card .lang-btn:hover { background:#f6f8fa; }
.login-card .lang-btn.active { color:#052767; background:#f1f6fa; border-color:#dae5ee; font-weight:600; }
.login-footer-brand { text-align:center; color:#728395; font-size:11px; margin-top:22px; }
.login-card .alert-danger { padding:12px; border:1px solid #efc5c2; border-radius:8px; background:#fff3f2; color:#a62320; font-size:13px; }
.login-card .text-danger { color:#b42318!important; font-size:12px; }
@media(max-width:1100px) { .login-page-wrapper { padding:0 32px; } .login-shell { gap:36px; } .login-card { padding:28px; } .login-capabilities { grid-template-columns:1fr; gap:10px; } .login-capabilities > div { display:flex; align-items:baseline; gap:12px; padding-top:10px; } .login-capabilities span { margin:0; } .login-capabilities p { margin:0; } }
@media(max-width:780px) { .login-page-wrapper { padding:0 22px; } .login-topbar { min-height:82px; } .login-topbar img { width:180px; } .login-site-link { font-size:12px; } .login-shell { grid-template-columns:1fr; gap:32px; min-height:0; padding:32px 0; } .login-card { justify-self:center; grid-row:1; max-width:460px; } .login-story { max-width:560px; margin:0 auto; padding:24px 0; border-top:1px solid #e5ebf1; } .login-story h1 { font-size:30px; } .login-story-lead { font-size:14px; } .login-capabilities { display:none; } }
@media(max-width:400px) { .login-page-wrapper { padding:0 16px; } .login-topbar img { width:156px; } .login-site-link { max-width:100px; } .login-card { padding:24px 20px; border-radius:14px; } .login-form-title { font-size:26px; } }
