/* The approved shared sign-in card. Enrollment/recovery/workspaces are untouched. */
.shared-login {
  --login-page: #eef2f7;
  --login-surface: #fff;
  --login-text: #1c2b40;
  --login-secondary: #596b82;
  --login-stroke: #dce3ed;
  --login-field: #fbfcfe;
  --login-blue: #2364c4;
  --login-button: #2364c4;
  --login-button-hover: #1c54a7;
  --login-soft: #e7eef8;
  --login-red: #a52d36;
  --login-error: #fff1f1;
  --login-shadow: #27395612;
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  padding: 48px 24px 32px;
  display: grid;
  align-content: center;
  justify-items: center;
  background: var(--login-page);
  color: var(--login-text);
  font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  -webkit-text-size-adjust: 100%;
  color-scheme: light;
}
.shared-login *, .shared-login *::before, .shared-login *::after { box-sizing: border-box; }
.shared-login [hidden] { display: none !important; }
.shared-login-panel { width: min(100%, 420px); min-width: 0; }
.shared-login-card { padding: 32px 34px 28px; background: var(--login-surface); border: 1px solid var(--login-stroke); border-radius: 20px; box-shadow: 0 16px 48px -16px var(--login-shadow); overflow-wrap: anywhere; }
.shared-login-brand { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 27px; }
.shared-login-brand img { display: block; width: 118px; max-width: 50%; height: auto; }
.shared-login-brand span { font-size: 11px; font-weight: 600; letter-spacing: .14em; color: var(--login-secondary); }
.shared-login h1 { margin: 0; font-size: 28px; font-weight: 650; line-height: 1.2; letter-spacing: -.035em; }
.shared-login-intro { margin: 9px 0 27px; color: var(--login-secondary); font-size: 14px; }
.shared-login-form { margin: 0; }
.shared-login-field { margin: 0 0 19px; }
.shared-login-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.shared-login label { font-size: 13px; font-weight: 600; }
.shared-login a, .shared-login-link { color: var(--login-blue); font-size: 12px; text-decoration: none; font-weight: 500; text-underline-offset: 3px; }
.shared-login a:hover, .shared-login-onboarding summary:hover .shared-login-link { text-decoration: underline; }
.shared-login input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]) { display: block; width: 100%; min-width: 0; height: 48px; border: 1px solid var(--login-stroke); border-radius: 9px; background: var(--login-field); color: var(--login-text); padding: 0 13px; font: inherit; font-size: 16px; box-shadow: 0 1px 2px var(--login-shadow); }
.shared-login input::placeholder { color: var(--login-secondary); opacity: 1; }
.shared-login input[aria-invalid="true"] { border-color: var(--login-red); }
.shared-login :is(input,button,a,summary):focus-visible { outline: 3px solid var(--login-blue); outline-offset: 3px; }
.shared-login-password { position: relative; }
.shared-login .shared-login-password input { padding-right: 69px; }
.shared-login-show { position: absolute; inset: 2px 3px 2px auto; min-width: 57px; border: 0; border-radius: 7px; background: transparent; color: var(--login-secondary); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.shared-login-show:hover { background: var(--login-soft); color: var(--login-text); }
.shared-login-action { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; width: 100%; max-width: 100%; border-radius: 9px; padding: 11px 15px; font: inherit; font-size: 14px; font-weight: 600; text-align: center; line-height: 1.5; cursor: pointer; }
.shared-login-primary { color: #fff; background: var(--login-button); border: 1px solid var(--login-button); margin-top: 6px; }
.shared-login-primary:hover { background: var(--login-button-hover); border-color: var(--login-button-hover); }
.shared-login-divider { display: flex; gap: 14px; align-items: center; margin: 18px 0; font-size: 12px; color: var(--login-secondary); }
.shared-login-divider::before, .shared-login-divider::after { content: ""; height: 1px; flex: 1; background: var(--login-stroke); }
.shared-login-passkey { border: 1px solid var(--login-stroke); background: var(--login-surface); color: var(--login-text); }
.shared-login-passkey:hover { background: var(--login-field); }
.shared-login-passkey svg { flex-shrink: 0; }
.shared-login button:disabled { opacity: .6; cursor: default; }
.shared-login-check { display: flex; gap: 9px; align-items: center; margin-bottom: 19px; }
.shared-login-check input { width: 18px; height: 18px; accent-color: var(--login-blue); }
.shared-login-first { border-top: 1px solid var(--login-stroke); margin-top: 25px; padding-top: 21px; display: flex; justify-content: center; align-items: center; gap: 7px; flex-wrap: wrap; color: var(--login-secondary); font-size: 12px; }
.shared-login-onboarding { display: block; text-align: center; }
.shared-login-onboarding summary { display: flex; justify-content: center; align-items: center; gap: 7px; flex-wrap: wrap; list-style: none; cursor: pointer; }
.shared-login-onboarding summary::-webkit-details-marker { display: none; }
.shared-login-onboarding p { margin: 14px 0 0; text-align: left; }
.shared-login-device { color: var(--login-secondary); text-align: center; font-size: 11px; line-height: 1.65; margin: 21px auto 0; max-width: 366px; }
.shared-login-device p { margin: 0; }
.shared-login-device a { display: inline-block; font-size: 11px; text-decoration: underline; }
.shared-login .shared-login-errors, .shared-login .security-status, .shared-login .security-messages { margin: 0 0 18px; padding: 11px 12px; border-radius: 8px; font-size: 13px; }
.shared-login .shared-login-errors, .shared-login .security-status[data-error="true"] { background: var(--login-error); color: var(--login-red); }
.shared-login .security-status, .shared-login .security-messages { background: var(--login-soft); }
.shared-login .security-error, .shared-login .errorlist { color: var(--login-red); }
.shared-login .errorlist { margin: 8px 0 0; padding-left: 19px; font-size: 13px; }
.shared-login-errors .errorlist { margin: 0; padding: 0; list-style: none; }
.shared-login .security-messages p { margin: 0 0 8px; }
.shared-login .security-messages p:last-child { margin-bottom: 0; }
.shared-login-help { margin: 14px 0 0; color: var(--login-secondary); font-size: 12px; }
html[data-theme="dark"] .shared-login { --login-page: #111820; --login-surface: #1b2532; --login-text: #f0f4fa; --login-secondary: #a7b6cb; --login-stroke: #344357; --login-field: #151e2b; --login-blue: #5295f2; --login-button: #2866bf; --login-button-hover: #3370c5; --login-soft: #22334b; --login-red: #ffb0b4; --login-error: #38262e; --login-shadow: #00000035; color-scheme: dark; }
@media (max-width: 480px) {
  .shared-login { padding: 35px 22px 27px; background: var(--login-surface); align-content: start; }
  .shared-login-panel { max-width: 360px; }
  .shared-login-card { padding: 0; border: 0; box-shadow: none; border-radius: 0; }
  .shared-login-brand { margin-bottom: 36px; }
  .shared-login-intro { margin-bottom: 31px; }
  .shared-login h1 { font-size: 29px; }
  .shared-login-device { margin-top: 28px; }
  .shared-login-first { margin-top: 27px; }
}
@media (pointer: coarse) {
  .shared-login-label a, .shared-login-first a, .shared-login-onboarding summary, .shared-login-device a { min-height: 44px; display: inline-flex; align-items: center; }
  .shared-login-label:has(a) { margin-bottom: 0; }
  .shared-login-device a { justify-content: center; }
}
