// SSO landing page — pre-auth view. const Login = ({ onLogin }) => { const [pickerOpen, setPickerOpen] = React.useState(false); const [hovered, setHovered] = React.useState(null); return (
{/* Left rail — brand */}
{/* deco */} {/* logo */}
p
portfolio
Application Portfolio Mgmt
{/* hero quote */}
The single ledger for everything we ship
Ideas, projects, components, and tickets — moving through one set of gates, visible to the people who own them.
12
Projects in flight
4
Strategic initiatives
11
Phase gates
{/* Right — sign-in */}
Sign in

Welcome back.

Continue with your Earlens identity provider. New here? Ask your manager to add you to a workspace.

or
By signing in, you agree to Earlens’s acceptable-use policy. All actions in portfolio are logged for SOC 2 compliance.
{/* Persona picker — proxies for SSO */} {pickerOpen && ( setPickerOpen(false)} width={680}>
Demo
Pick an identity to sign in as
Each role sees a different home view, different available actions, and different gates. You can switch later from the sidebar.
{APM_PEOPLE.map(p => ( ))}
)}
); }; const LoginPage = Login; Object.assign(window, { Login, LoginPage });