/* Public Money 3 identity. Keep module names and private operations off sign-in. */
body.login-page[data-workspace-page="login"] {
  --login-canvas: #f2f0ea;
  --login-copy: #203d32;
  --login-muted: #748077;
  --login-line: #dedfd3;
  --login-action: #214e3f;
  --login-action-hover: #173c30;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 48px 28px;
  background: radial-gradient(ellipse at 5% 90%, #e9e3d588 0, transparent 42%), radial-gradient(ellipse at 95% 4%, #ffffff66 0, transparent 45%), var(--login-canvas);
  font-family: "Segoe UI", system-ui, sans-serif;
}
body.login-page[data-workspace-page="login"] .login-shell { position: relative; width: min(1000px, 100%); }
body.login-page[data-workspace-page="login"] .login-card { display: grid; grid-template-columns: 1fr 1fr; min-height: 598px; border: 1px solid #e0e3d8; border-radius: 28px; background: #fcfcf8; box-shadow: 0 28px 80px #243d2814, 0 3px 10px #243d2805; overflow: hidden; }
body.login-page[data-workspace-page="login"] .login-intro { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 0; padding: 32px 34px 22px; overflow: hidden; background: radial-gradient(ellipse at 60% 35%, #fffdf580, transparent 65%), #f6f3eb; }
body.login-page[data-workspace-page="login"] .login-intro::after { content: ""; position: absolute; inset: auto -20% -67% -20%; width: 140%; height: 88%; border: 1px solid #99856a22; border-radius: 50%; pointer-events: none; }
body.login-page[data-workspace-page="login"] .login-brand { position: relative; z-index: 1; gap: 10px; align-items: center; }
body.login-page[data-workspace-page="login"] .login-logo-frame { display: grid; place-items: center; width: 44px; height: 48px; padding: 0; background: none; border: 0; box-shadow: none; }
body.login-page[data-workspace-page="login"] .login-logo { width: 44px; height: 44px; object-fit: contain; filter: none; }
body.login-page[data-workspace-page="login"] .login-brand h1 { margin: 0; color: #30383c; font-size: 25px; font-weight: 600; letter-spacing: -.8px; }
body.login-page[data-workspace-page="login"] .money3-tree { display: block; width: calc(100% + 28px); max-width: none; height: auto; margin: -1px -14px -6px; aspect-ratio: 500 / 480; object-fit: contain; }
body.login-page[data-workspace-page="login"] .money3-brand-line { display: flex; align-items: center; justify-content: center; gap: 13px; padding: 12px 12px 9px; color: #746b60; font-size: 9px; letter-spacing: 3.5px; font-weight: 500; }
body.login-page[data-workspace-page="login"] .money3-brand-line::before, body.login-page[data-workspace-page="login"] .money3-brand-line::after { content: ""; width: 25px; height: 1px; background: #9c918070; }
body.login-page[data-workspace-page="login"] .login-form-panel { display: flex; flex-direction: column; justify-content: center; padding: 64px clamp(32px, 5vw, 62px); background: #fcfcf8; }
body.login-page[data-workspace-page="login"] .login-form-kicker { margin: 0 0 15px; color: #7a846e; font-size: 10px; font-weight: 600; letter-spacing: 2.2px; }
body.login-page[data-workspace-page="login"] .login-form-panel > h2 { margin: 0 0 12px; color: #203d32; font-family: Georgia, "Times New Roman", serif; font-size: 46px; font-weight: 400; letter-spacing: -1.8px; line-height: 1.05; }
body.login-page[data-workspace-page="login"] .login-copy { margin: 0 0 34px; color: #788276; font-size: 13px; line-height: 1.6; }
body.login-page[data-workspace-page="login"] .login-form { gap: 21px; }
body.login-page[data-workspace-page="login"] .login-form .field { gap: 9px; }
body.login-page[data-workspace-page="login"] .login-form .field > span { color: #46574b; font-size: 12px; font-weight: 600; }
body.login-page[data-workspace-page="login"] .login-form input { width: 100%; min-width: 0; height: 50px; padding: 12px 14px; color: #203d32; background: #f6f6ef; border: 1px solid #dddfd2; border-radius: 9px; box-shadow: none; font: inherit; font-size: 15px; }
body.login-page[data-workspace-page="login"] .login-form input:focus { background: #fffefa; border-color: #5a7c60; outline: 3px solid #a2b69440; outline-offset: 1px; box-shadow: none; }
body.login-page[data-workspace-page="login"] .login-password-control { display: flex; gap: 0; border-radius: 9px; }
body.login-page[data-workspace-page="login"] .login-password-control input { border-radius: 9px 0 0 9px; border-right: 0; }
body.login-page[data-workspace-page="login"] #passwordToggle { flex: 0 0 62px; min-width: 62px; min-height: 50px; padding: 0 12px; border: 1px solid #dddfd2; border-left: 0; border-radius: 0 9px 9px 0; color: #3b604b; background: #f6f6ef; font-size: 11px; font-weight: 600; cursor: pointer; }
body.login-page[data-workspace-page="login"] #passwordToggle:hover { background: #ebeee2; }
body.login-page[data-workspace-page="login"] .login-form .primary-button { display: flex; align-items: center; justify-content: center; gap: 20px; min-height: 52px; margin-top: 6px; padding: 14px; color: #fffdf2; background: #214e3f; border: 1px solid #214e3f; border-radius: 9px; font-size: 13px; font-weight: 600; box-shadow: 0 5px 12px #214e3f12; transition: background .18s, transform .18s; }
body.login-page[data-workspace-page="login"] .login-form .primary-button::after { content: "\2192"; font-size: 19px; font-weight: 400; line-height: 1; }
body.login-page[data-workspace-page="login"] .login-form .primary-button:hover { background: #173c30; transform: translateY(-1px); }
body.login-page[data-workspace-page="login"] .login-form .primary-button:disabled { transform: none; opacity: .7; cursor: wait; }
body.login-page[data-workspace-page="login"] :is(button, a):focus-visible { outline: 3px solid #9eaa74; outline-offset: 3px; }
body.login-page[data-workspace-page="login"] .login-error { margin: 0; padding: 12px 14px; color: #963e34; background: #fbeddf; border: 1px solid #e8c5b6; border-radius: 8px; font-size: 12px; line-height: 1.6; }
body.login-page[data-workspace-page="login"] .money3-form-flourish { display: flex; justify-content: center; align-items: center; gap: 9px; margin-top: 34px; }
body.login-page[data-workspace-page="login"] .money3-form-flourish::before, body.login-page[data-workspace-page="login"] .money3-form-flourish::after { content: ""; width: 32px; height: 1px; background: #dcded0; }
body.login-page[data-workspace-page="login"] .money3-form-flourish span { width: 7px; height: 7px; background: #b2b78c; border-radius: 6px 1px; transform: rotate(-20deg); }
@media (max-width: 700px) {
  body.login-page[data-workspace-page="login"] { padding: 22px 16px; }
  body.login-page[data-workspace-page="login"] .login-shell { width: min(430px, 100%); }
  body.login-page[data-workspace-page="login"] .login-card { grid-template-columns: minmax(0, 1fr); min-height: 0; border-radius: 22px; }
  body.login-page[data-workspace-page="login"] .login-intro { min-height: 152px; padding: 28px 25px; justify-content: center; }
  body.login-page[data-workspace-page="login"] .login-brand { width: fit-content; gap: 6px; }
  body.login-page[data-workspace-page="login"] .login-brand h1 { font-size: 25px; }
  body.login-page[data-workspace-page="login"] .money3-tree { position: absolute; width: 180px; height: 174px; right: -30px; bottom: -10px; margin: 0; opacity: .8; }
  body.login-page[data-workspace-page="login"] .money3-brand-line { display: none; }
  body.login-page[data-workspace-page="login"] .login-form-panel { padding: 32px 28px 26px; }
  body.login-page[data-workspace-page="login"] .login-form-panel > h2 { font-size: 37px; }
  body.login-page[data-workspace-page="login"] .login-form-kicker { margin-bottom: 12px; font-size: 9px; }
  body.login-page[data-workspace-page="login"] .login-copy { margin-bottom: 26px; }
  body.login-page[data-workspace-page="login"] .login-form input { font-size: 16px; }
  body.login-page[data-workspace-page="login"] .money3-form-flourish { margin-top: 25px; }
}
@media (max-width: 360px) {
  body.login-page[data-workspace-page="login"] { padding: 14px 12px; }
  body.login-page[data-workspace-page="login"] .login-intro { min-height: 124px; padding: 20px; }
  body.login-page[data-workspace-page="login"] .login-brand h1 { font-size: 23px; }
  body.login-page[data-workspace-page="login"] .money3-tree { right: -52px; opacity: .5; }
  body.login-page[data-workspace-page="login"] .login-form-panel { padding: 28px 22px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  body.login-page[data-workspace-page="login"] *, body.login-page[data-workspace-page="login"] *::after { transition: none; }
}
/* The second step appears only after the account password is accepted. */
.login-mfa-step[hidden] { display: none !important; }
.login-mfa-step { display: grid; gap: 16px; }
.login-mfa-options { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 9px; }
.login-text-action { padding: 3px 0; border: 0; background: transparent; color: #176b58; font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.login-text-action:hover { color: #0e4437; }
.login-text-action:focus-visible { outline: 2px solid #397d5e; outline-offset: 4px; }
.login-text-action:disabled { opacity: .55; cursor: wait; }
/* Touch devices need readable inputs without Safari's automatic focus zoom. */
@media (max-width: 1024px), (pointer: coarse) {
  body.login-page[data-workspace-page="login"] .login-form input { font-size: 16px; }
  body.login-page[data-workspace-page="login"] .login-text-action { min-height: 44px; }
}
