*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;place-items:center;background:#edf1f2;font:15px 'Segoe UI',Arial,sans-serif;color:#142d38;padding:28px 16px}main{width:min(100%,470px);background:#fff;border:1px solid #d5dfe1;border-radius:12px;padding:30px;box-shadow:0 14px 44px #142d3812}main>img{display:block;width:225px;max-width:100%;height:76px;object-fit:contain;margin-bottom:10px}.tag{display:inline-block;background:#e7f4ee;color:#126752;font-size:10px;letter-spacing:1.4px;padding:5px 8px;border-radius:4px}h1{font-size:24px;letter-spacing:-.5px;margin:16px 0 8px}p{color:#596d76;line-height:1.55;margin:8px 0}form{margin-top:22px}label{display:block;font-size:13px;font-weight:600;margin:14px 0}input{display:block;width:100%;margin-top:6px;height:42px;padding:8px 10px;border:1px solid #b8c9d0;border-radius:5px;font-size:16px}input:focus{outline:2px solid #167c68;outline-offset:1px}button{width:100%;border:0;border-radius:5px;background:#167c68;color:white;padding:12px;font:600 15px 'Segoe UI',Arial;cursor:pointer}button:disabled{opacity:.6}#login-error{color:#a82a21;font-size:13px}
.login-help{border-top:1px solid #e1e6e8;margin-top:20px;padding-top:18px;font-size:13px}
.login-help summary{cursor:pointer;list-style:none;border-radius:5px}.login-help summary::-webkit-details-marker{display:none}
.support-help>summary{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 13px;border:1px solid #b8c9d0;color:#245547;font-weight:600;background:#f7faf9}
.support-help>summary::after{content:'+';font-size:18px;font-weight:400}.support-help[open]>summary::after{content:'−'}
.password-help{margin-top:13px}.password-help>summary{width:max-content;padding:3px 0;color:#16745f;text-decoration:underline;text-underline-offset:3px}
.login-help summary:focus-visible,.login-help a:focus-visible{outline:2px solid #167c68;outline-offset:3px}
.help-content{padding:9px 2px 2px}.help-content h2{font-size:14px;margin:7px 0}.help-content a{color:#126b59;overflow-wrap:anywhere}.help-content small{display:block;color:#6a7d85;font-size:11px;margin-top:4px}.help-note{font-size:12px}

.mfa-page textarea,.mfa-page select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #b8c9d0;border-radius:5px;font-size:14px}.mfa-page textarea{min-height:230px;resize:vertical;font-family:monospace}.mfa-page input[type="checkbox"]{display:inline;width:auto;height:auto;margin:0 8px 0 0}.mfa-page #error{color:#a82a21}.mfa-page #logout{width:auto;padding:8px 12px}

/* Public sign-in. Keep the shared account-security screens on their own layout. */
.mfa-footer{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:24px;padding-top:18px;border-top:1px solid #e0e7e9}
.mfa-footer a{color:#147663;font-size:13px}.mfa-footer [hidden]{display:none}
.mfa-email main{width:min(100%,440px);padding:34px 32px 24px;border-radius:16px}
.mfa-email main>img{width:210px;height:64px;margin:0 auto 26px}
.mfa-email .tag{display:none}.mfa-email h1{font-size:25px;line-height:1.25;margin:0 0 12px}
.mfa-email #description{font-size:14px;line-height:1.6}.mfa-email form{margin-top:24px;display:flex;flex-direction:column;gap:16px}
.mfa-email form>button{min-height:46px;margin:0}.mfa-email label{margin:0}
.mfa-email .code-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.mfa-email .code-entry{position:relative;height:56px}
.mfa-email .code-entry input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:.01;z-index:1;cursor:text;font-size:24px}
.mfa-email .code-boxes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;height:100%;pointer-events:none}
.mfa-email .code-boxes span{display:grid;place-items:center;border:1.5px solid #c3ced2;border-radius:8px;background:#fafcfb;font-size:25px;font-weight:600;color:#15313f}
.mfa-email .code-entry:focus-within .code-active{border-color:#087f70;box-shadow:0 0 0 3px #087f7018;background:white}
.mfa-email .mfa-hint{font-size:12px;margin:-7px 0 0;color:#627680}
.mfa-email .remember-choice{display:flex;align-items:flex-start;gap:10px;padding:8px 0 10px;font-size:14px;line-height:1.45;cursor:pointer}
.mfa-email .remember-choice input{flex:0 0 auto;width:17px;height:17px;margin:2px 0 0;accent-color:#087f70}
.mfa-email .remember-choice small{display:block;font-size:12px;font-weight:400;color:#627680;margin-top:3px}
.mfa-email button.mfa-text-button,.mfa-email #logout{background:transparent;color:#147663;font-size:13px;padding:8px;min-height:36px}
.mfa-email button.mfa-text-button{text-decoration:underline;text-underline-offset:3px}
.mfa-email button:focus-visible{outline:2px solid #087f70;outline-offset:3px}.mfa-email #error:empty{display:none}
@media(max-width:420px){.mfa-email main{padding:28px 22px 20px}.mfa-email h1{font-size:23px}.mfa-email .code-boxes{gap:6px}}
.login-page {
  --login-background: #f7f8f6;
  --login-text: #15313f;
  --login-muted: #536e7c;
  --login-accent: #147663;
  --login-border: #c4d0d5;
  display: grid;
  grid-template-rows: auto 1fr auto;
  place-items: stretch;
  min-height: 100vh;
  min-height: 100svh;
  padding: 0 clamp(20px, 3.34vw, 48px);
  background: var(--login-background);
  color: var(--login-text);
}
.login-header, .login-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.login-header {
  min-height: 107px;
  border-bottom: 1px solid #dfe5e3;
}
.login-header img { display: block; width: 140px; height: auto; }
.login-footer {
  min-height: 68px;
  border-top: 1px solid #dfe5e3;
  color: var(--login-muted);
  font-size: 11px;
}
.login-page .login-main {
  align-self: center;
  justify-self: center;
  width: min(100%, 370px);
  padding: 48px 0 82px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.login-main h1 {
  margin: 0;
  font-size: clamp(27px, 5vw, 34px);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -.035em;
}
.login-main .login-intro {
  margin: 14px 0 0;
  color: var(--login-muted);
  font-size: 14px;
}
.login-page #login { margin: 36px 0 0; }
.login-field + .login-field { margin-top: 24px; }
.login-field-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.login-page label { margin: 0; font-size: 13px; font-weight: 600; }
.login-page input {
  margin-top: 7px;
  height: 52px;
  padding: 0 15px;
  border: 1px solid var(--login-border);
  background: transparent;
  color: var(--login-text);
  font: inherit;
  font-size: 16px;
}
.login-page input::placeholder { color: #647c89; font-size: 14px; opacity: 1; }
.login-password-field { position: relative; }
.login-password-field input { padding-inline-end: 50px; }
.login-page .login-password-toggle {
  position: absolute;
  inset: 0 0 0 auto;
  display: grid;
  place-items: center;
  width: 46px;
  padding: 0;
  background: transparent;
  color: var(--login-muted);
}
.login-password-toggle svg { width: 17px; height: 17px; }
.login-password-toggle .login-eye-slash { display: none; }
.login-password-toggle[aria-pressed="true"] .login-eye-slash { display: block; }
.login-page .login-primary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 52px;
  margin-top: 29px;
  padding: 0 18px;
  background: var(--login-accent);
  font-size: 14px;
}
.login-primary span { font-size: 17px; }
.login-page .login-primary:hover:not(:disabled) { background: #106453; }
.login-page .login-link {
  width: auto;
  padding: 2px 0;
  background: transparent;
  color: #086652;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
}
.login-page .login-support { color: var(--login-muted); }
.login-page .login-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.login-page button:focus-visible { outline: 2px solid var(--login-accent); outline-offset: 3px; }
.login-page #login-error:empty, .login-page #reset-message:empty { display: none; }
.login-page #link-error { color: #a82a21; font-size: 13px; }
.login-page #link-error:empty { display: none; }
.login-page .login-contact {
  margin: 26px 0 0;
  color: var(--login-muted);
  text-align: center;
  font-size: 12px;
}
.login-contact .login-link { margin-inline-start: 4px; }
.login-dialog {
  width: min(420px, calc(100% - 32px));
  max-height: calc(100% - 32px);
  padding: 26px;
  border: 1px solid var(--login-border);
  border-radius: 10px;
  background: var(--login-background);
  color: var(--login-text);
  box-shadow: 0 16px 54px #15313f24;
}
.login-dialog::backdrop { background: #15313f55; }
.login-dialog h2 { margin: 0 0 10px; font-size: 22px; }
.login-dialog p { font-size: 14px; }
.login-dialog form[method="dialog"] { margin-top: 18px; }
.login-dialog .login-primary { margin-top: 16px; }
@media (max-width: 600px), (max-height: 640px) {
  .login-header { min-height: 76px; }
  .login-header img { width: 122px; }
  .login-footer { min-height: 54px; }
  .login-page .login-main { padding: 36px 0 44px; }
}
