/* One public login composition, with area-specific colors. No private views. */
html body :is(.guest-login-page,.fx154-login){--login-accent:#1769ff;--login-ink:#10285b;--login-line:#d8e3fa;--login-soft:#eef4ff;min-height:100dvh;background:#f7f9fd;color:var(--login-ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
html body .fx154-login{--login-accent:#087f60;--login-ink:#153129;--login-line:#d2e5dc;--login-soft:#eaf8f3;background:#f4f9f6}
html body :is(.guest-login-page,.fx154-login) :is(button,input,label,p,span,b){font-family:inherit}
html body .login-header .fx154-lbrand{margin:0}
html body .login-header .fx154-back{margin:0;min-height:44px}
html body :is(.guest-login-page>.guest-header,.fx154-login>.login-header){width:min(1240px,calc(100% - 48px));margin:0 auto;box-sizing:border-box;height:88px;display:flex;align-items:center;justify-content:space-between;padding:0;border:0;background:transparent;gap:20px;box-shadow:none}
html body :is(.guest-login-main,.fx154-loginshell){width:min(1240px,calc(100% - 48px));max-width:1240px;margin:0 auto;box-sizing:border-box;min-height:calc(100dvh - 88px);padding:32px 0 48px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:48px;align-items:center}
html body :is(.guest-login-copy,.fx154-lcopy){padding:0;min-width:0}
html body :is(.guest-login-copy,.fx154-lcopy) h1{font-size:clamp(30px,3vw,44px);line-height:1.15;letter-spacing:-1.2px;margin:18px 0;color:var(--login-ink);max-width:620px}
html body :is(.guest-login-copy,.fx154-lcopy)>p{font-size:16px;line-height:1.65;margin:0;max-width:590px;color:#64748b}
html body :is(.guest-login-trust,.fx154-lpts){display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:28px 0 0}
html body :is(.guest-login-trust,.fx154-lpts)>div{padding:16px 18px;border:1px solid var(--login-line);border-radius:14px;background:#fff}
html body :is(.guest-login-trust,.fx154-lpts) b{display:block;font-size:14px;margin:0 0 5px;color:var(--login-ink)}
html body :is(.guest-login-trust,.fx154-lpts) span{font-size:13px;line-height:1.5;color:#64748b}
html body :is(.guest-login-card,.fx154-lcard){width:100%;box-sizing:border-box;padding:30px;border:1px solid var(--login-line);border-radius:22px;background:#fff;box-shadow:0 18px 48px #10234d0d;min-width:0}
html body :is(.login-area-label,.fx154-lcard>.ey,.guest-login-copy>.guest-kicker,.fx154-lcopy>.login-area-label){display:inline-block;background:var(--login-soft);color:var(--login-accent);font-size:12px;font-weight:750;letter-spacing:.2px;padding:7px 11px;border-radius:20px}
html body :is(.guest-login-card,.fx154-lcard) h2{font-size:28px;line-height:1.2;letter-spacing:-.6px;margin:16px 0 8px;color:var(--login-ink)}
html body :is(.guest-login-card,.fx154-lcard)>p{font-size:14px;line-height:1.5;margin:0 0 22px;color:#64748b}
html body :is(.guest-field,.fx154-field){margin:18px 0 0}
html body :is(.guest-field>span:first-child,.fx154-field>label){display:block;font-size:13px;font-weight:700;margin:0 0 8px;color:var(--login-ink)}
html body :is(.guest-login-card,.fx154-lcard) input{min-height:48px;width:100%;box-sizing:border-box;margin:0;padding:12px 14px;font-family:inherit;font-size:16px;border:1px solid var(--login-line);border-radius:11px;background:#fff;color:var(--login-ink)}
html body .login-password-wrap{display:block;position:relative}
html body .login-password-wrap input{padding-right:86px}
html body .login-password-wrap button{position:absolute;right:4px;top:2px;min-height:44px;padding:0 10px;border:0;background:transparent;color:var(--login-accent);font-size:12px;font-weight:700;cursor:pointer;box-shadow:none}
html body :is(.guest-login-card>.btn-primary,.fx154-submit){margin-top:20px;min-height:48px;border:1px solid var(--login-accent);border-radius:11px;background:var(--login-accent);box-shadow:none;font-size:15px;font-weight:750;width:100%;padding:12px}
html body :is(.guest-login-card>[data-resident-forgot],.fx154-lcard>[data-fx154-forgot]){display:block;width:100%;min-height:44px;padding:10px;margin:4px 0 0;border:0;background:transparent;font-family:inherit;font-size:13px;font-weight:650;color:var(--login-accent);cursor:pointer}
html body :is(.guest-login-divider,.login-divider){display:flex;align-items:center;gap:12px;color:#94a3b8;font-size:13px;margin:14px 0}
html body :is(.guest-login-divider,.login-divider)::before,html body :is(.guest-login-divider,.login-divider)::after{content:"";height:1px;background:var(--login-line);flex:1}
html body :is(.guest-login-card>.btn-ghost,.fx154-lcard>.login-create){display:block;width:100%;min-height:46px;box-sizing:border-box;border:1px solid var(--login-line);border-radius:11px;background:#fff;color:var(--login-ink);font:inherit;font-size:14px;font-weight:650;padding:12px;cursor:pointer}
html body .login-legal{display:flex;flex-wrap:wrap;gap:16px;margin-top:18px}
html body .login-legal button{border:0;background:none;padding:0;min-height:32px;color:#64748b;font:inherit;font-size:12px;cursor:pointer}
html body .login-resident-entry{font-size:13px;color:#64748b;line-height:1.5;margin-top:16px;padding-top:16px;border-top:1px solid var(--login-line)}
html body .login-resident-entry button{display:block;min-height:44px;padding:8px 0;background:none;border:0;color:#1769ff;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
html body :is(.guest-login-page,.fx154-login) :is(button,input):focus-visible{outline:3px solid var(--login-accent);outline-offset:3px}
@media(max-width:900px){
 html body :is(.guest-login-main,.fx154-loginshell){grid-template-columns:minmax(0,1fr);width:min(520px,calc(100% - 32px));gap:22px;padding:16px 0 32px;min-height:0}
 html body :is(.guest-login-page>.guest-header,.fx154-login>.login-header){height:76px;width:calc(100% - 32px)}
 html body :is(.guest-login-copy,.fx154-lcopy) h1{font-size:28px;letter-spacing:-.6px;margin:12px 0}
 html body :is(.guest-login-copy,.fx154-lcopy)>p{font-size:14px}
 html body :is(.guest-login-trust,.fx154-lpts){display:none}
 html body :is(.guest-login-card,.fx154-lcard){padding:22px;border-radius:18px}
 html body .guest-tagline{display:none}
 html body :is(.guest-login-page,.fx154-login) .fx154-back{font-size:12px;min-height:44px;padding:8px 12px}
}
/* Keep both account entry points visible on a phone, without clipping on small screens. */
@media(max-width:600px){
 html body .guest-login-page>.guest-header{height:56px;width:calc(100% - 28px)}
 html body .guest-login-page>.guest-header>.btn-ghost{min-height:44px;padding:6px 10px;font-size:12px;white-space:nowrap}
 html body .guest-login-main{width:calc(100% - 28px);padding:4px 0 12px;gap:0;min-height:0}
 html body .guest-login-copy{display:none}
 html body .guest-login-card{padding:16px;border-radius:18px}
 html body .guest-login-card>.login-area-label{font-size:11px;padding:4px 9px}
 html body .guest-login-card h2{font-size:24px;margin:8px 0 5px}
 html body .guest-login-card>p{font-size:13px;margin:0 0 10px}
 html body .guest-login-card .guest-field{display:block;margin:10px 0 0}
 html body .guest-login-card .guest-field>span:first-child{margin-bottom:5px}
 html body .guest-login-card input{min-height:46px;padding:10px 12px}
 html body .guest-login-card>.btn-primary{min-height:46px;padding:10px;margin-top:12px}
 html body .guest-login-card>[data-resident-forgot]{margin:0;min-height:44px;padding:8px}
 html body .guest-login-divider{margin:6px 0;font-size:12px}
 html body .guest-login-card>.btn-ghost{min-height:44px;padding:10px;font-size:13px}
 html body .guest-login-card .guest-professional-entry{margin-top:10px;padding:10px}
 html body .guest-login-card .guest-professional-entry>span{font-size:11px;margin-top:3px}
 html body .guest-login-card .guest-professional-entry .guest-text-btn{margin-top:6px;min-height:44px;padding:9px;font-size:13px}
 html body .guest-login-card .fx-auth-legal-links{margin-top:6px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
 html body .guest-login-card .fx-auth-legal-links button{min-height:32px;font-size:11px;padding:4px;border:0;background:transparent}
}
@media(max-width:600px) and (max-height:700px){
 html body .guest-login-card>.login-area-label,html body .guest-login-card>p,html body .guest-login-card .fx130-hint{display:none}
 html body .guest-login-card h2{margin:0 0 8px;font-size:22px}
}
/* Registration is a focused public flow, never a five-tab resident workspace. */
html body:has(.guest-onboarding-shell) #bottomnav#bottomnav{display:none!important}
@media(max-width:600px){
 html body:has(.guest-onboarding-shell){padding-bottom:0!important}
 html body:has(.guest-onboarding-shell) #app{padding:0!important;min-width:0}
 html body .guest-onboarding-shell{min-height:100dvh;overflow-wrap:anywhere}
 html body .guest-onboarding-shell *{box-sizing:border-box;min-width:0}
 html body .guest-onboarding-shell>.guest-header{height:64px;width:calc(100% - 24px);margin:0 auto;padding:0;gap:8px}
 html body .guest-onboarding-shell .guest-header .guest-wordmark{font-size:26px}
 html body .guest-onboarding-shell .guest-header .guest-logo-mark{width:34px;height:34px;font-size:23px}
 html body .guest-onboarding-shell .guest-header>.btn{min-height:44px;padding:8px 10px;font-size:12px;white-space:nowrap}
 html body .guest-onboarding-shell .guest-ob-main{width:100%;max-width:100%;margin:0;padding:12px;grid-template-columns:minmax(0,1fr);gap:0}
 html body .guest-onboarding-shell .guest-ob-card{width:100%;padding:18px;border-radius:18px;box-shadow:0 8px 24px #10234d08}
 html body .guest-onboarding-shell .guest-ob-progress{grid-template-columns:28px minmax(0,1fr) 28px minmax(0,1fr) 28px minmax(0,1fr) 28px;margin-bottom:16px}
 html body .guest-onboarding-shell .guest-kicker{font-size:11px;padding:6px 10px}
 html body .guest-onboarding-shell .guest-ob-card h1{font-size:28px;line-height:1.15;margin:12px 0 8px}
 html body .guest-onboarding-shell .guest-ob-sub{font-size:14px;line-height:1.5;margin-bottom:18px}
 html body .guest-onboarding-shell .guest-field{width:100%;margin-bottom:12px}
 html body .guest-onboarding-shell input{width:100%;max-width:100%;min-height:48px;font-size:16px}
 html body .guest-onboarding-shell .visitor-area-hint,html body .guest-onboarding-shell .visitor-empty-help{padding:12px;gap:10px}
 html body .guest-onboarding-shell .guest-ob-actions{gap:10px}
 html body .guest-onboarding-shell .guest-ob-actions>.btn{flex:1;min-height:44px;padding:10px;font-size:13px}
 html body .guest-onboarding-shell .guest-ob-side{display:none}
}
