/* Authentication surface is intentionally isolated from the mail workspace. */
.fm-auth-shell {
  min-height: 100vh;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  color: #eef4fb;
  background:
    radial-gradient(58rem 34rem at 12% 12%, rgba(35, 128, 223, .2), transparent 65%),
    radial-gradient(42rem 32rem at 95% 100%, rgba(86, 55, 163, .16), transparent 70%),
    #0d1118;
}
.fm-auth-shell * { box-sizing: border-box; }
.fm-auth-stage { width: min(1100px, calc(100% - 48px)); display: grid; grid-template-columns: minmax(310px, .9fr) minmax(380px, 460px); gap: clamp(42px, 8vw, 130px); align-items: center; justify-content: center; margin: auto; padding: 48px 0; }
.fm-auth-context { display: grid; align-content: center; gap: 48px; min-width: 0; }
.fm-auth-logo,.fm-auth-card-brand { display: flex; align-items: center; gap: 10px; font-size: 18px; letter-spacing: -.02em; }
.fm-auth-logo > span,.fm-auth-card-brand > span { display: grid; place-items: center; width: 34px; height: 34px; color: var(--color-accent-hover); border: 1px solid color-mix(in srgb, var(--color-accent) 28%, transparent); border-radius: 10px; background: linear-gradient(145deg, color-mix(in srgb, var(--color-accent) 25%, transparent), rgba(35, 51, 75, .72)); }
.fm-auth-logo .icon,.fm-auth-card-brand .icon { width: 20px; height: 20px; max-width: 20px; max-height: 20px; }
.fm-auth-logo strong,.fm-auth-card-brand strong { font-weight: 680; }.fm-auth-logo strong span,.fm-auth-card-brand strong span { color: var(--fm-orange); }
.fm-auth-copy { max-width: 470px; }.fm-auth-eyebrow,.fm-auth-step { margin: 0 0 10px; color: var(--color-accent-hover); font-size: 11px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.fm-auth-copy h2 { max-width: 540px; margin: 0; color: #f8fbff; font-size: clamp(29px, 3.1vw, 44px); line-height: 1.12; letter-spacing: -.045em; font-weight: 650; }.fm-auth-copy p:not(.fm-auth-eyebrow) { margin: 18px 0 0; color: #aebdce; font-size: 15px; line-height: 1.65; }
.fm-auth-features { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; color: #b8c7d8; font-size: 13px; }.fm-auth-features li { display: flex; align-items: center; gap: 9px; }.fm-auth-features .icon { width: 17px; height: 17px; color: var(--color-accent-hover); }
.fm-auth-card { width: 100%; padding: 36px; color: #eaf0f7; background: linear-gradient(145deg, rgba(30, 37, 48, .96), rgba(19, 24, 32, .97)); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; box-shadow: 0 28px 80px rgba(0,0,0,.42); }
.fm-auth-card-brand { display: none; margin-bottom: 27px; font-size: 16px; }.fm-auth-card h1 { margin: 0; color: #fff; font-size: 27px; line-height: 1.2; letter-spacing: -.035em; font-weight: 650; }.fm-auth-description { margin: 10px 0 0; color: #aebac8; font-size: 13px; line-height: 1.55; }
.fm-auth-card .auth-form { display: grid; gap: 16px; margin-top: 27px; }.fm-auth-card .auth-form label { display: grid; gap: 7px; color: #dce5ef; font-size: 12px; font-weight: 620; }.fm-auth-card .auth-form input { width: 100%; height: 43px; padding: 0 12px; color: #f5f8fc; background: rgba(5, 8, 13, .44); border: 1px solid rgba(185, 204, 225, .26); border-radius: 8px; box-shadow: none; }.fm-auth-card .auth-form input:hover { border-color: color-mix(in srgb, var(--color-accent-hover) 52%, transparent); }.fm-auth-card .auth-form input:focus { border-color: var(--color-focus-ring); outline: 2px solid color-mix(in srgb, var(--color-focus-ring) 22%, transparent); outline-offset: 0; }.fm-auth-card .auth-form small { color: #8e9caf; font-size: 11px; line-height: 1.5; }.fm-auth-card .auth-form .primary { width: 100%; height: 43px; margin-top: 5px; border: 1px solid color-mix(in srgb, var(--color-accent-hover) 28%, transparent); border-radius: 8px; font-size: 13px; font-weight: 650; }.fm-auth-card .notice { margin-top: 17px; }
.fm-auth-footer { display: flex; justify-content: space-between; width: min(1100px, calc(100% - 48px)); margin: 0 auto; padding: 16px 0 20px; color: #718094; border-top: 1px solid rgba(255,255,255,.07); font-size: 11px; }
@media (max-width: 820px) { .fm-auth-stage { width: min(500px, calc(100% - 32px)); grid-template-columns: 1fr; gap: 26px; padding: 30px 0; }.fm-auth-context { gap: 0; }.fm-auth-context .fm-auth-copy,.fm-auth-context .fm-auth-features { display: none; }.fm-auth-logo { display: none; }.fm-auth-card-brand { display: flex; }.fm-auth-card { padding: 28px; }.fm-auth-footer { width: min(500px, calc(100% - 32px)); } }
@media (max-width: 430px) { .fm-auth-card { padding: 24px 20px; border-radius: 12px; }.fm-auth-card h1 { font-size: 24px; }.fm-auth-footer { font-size: 10px; } }
