// Primus IQ — Applications Screen const APPS = [ { id: 'prima', name: 'PRIMA', blurb: 'Deep market & literature research engine — searches projects, library, and the firm knowledge graph.', accent: '#7A1C1C' }, { id: 'rfp', name: 'RFP Maker', blurb: 'Drafts proposals, cost calculators and storylines from prior winning bids and project artefacts.', accent: '#876200' }, { id: 'climate', name: 'ClimateIQ', blurb: 'Sustainability disclosures, scope mapping, TCFD & CSRD drafting, greenwashing-risk scoring.', accent: '#2E6F40' }, ]; const ScreenApplications = ({ setRoute }) => (

Applications

Domain engines that chat with your projects, the library, and the firm's knowledge graph.

{APPS.map(app => (
setRoute(`app-${app.id}`)} style={{ padding: 22, borderRadius: 16, background: 'white', border: '1px solid var(--line)', cursor: 'pointer', transition: 'all 0.18s', display: 'flex', flexDirection: 'column', gap: 16, }} onMouseEnter={e => { e.currentTarget.style.boxShadow = '0 10px 24px rgba(60,30,20,0.08)'; e.currentTarget.style.borderColor = app.accent + '30'; e.currentTarget.style.transform = 'translateY(-2px)'; }} onMouseLeave={e => { e.currentTarget.style.boxShadow = 'none'; e.currentTarget.style.borderColor = 'var(--line)'; e.currentTarget.style.transform = 'translateY(0)'; }} >

{app.name}

{app.blurb}

Open {app.name}
))}
); const AppIcon = ({ id, color }) => ( {id === 'prima' && <>} {id === 'rfp' && <>} {id === 'climate' && <>} ); const ScreenAppDetail = ({ appId, setRoute }) => { const app = APPS.find(a => a.id === appId) || APPS[0]; return (
/ {app.name}

{app.name}

{app.blurb}

Recent {app.name} chats
{[ { t: 'GCC fintech IPO scan · 2021–2026', when: '2h ago' }, { t: 'Renewables capex benchmarking', when: '1d ago' }, { t: 'TCFD gap analysis · portfolio co.', when: '4d ago' }, ].map((c, i, arr) => (
e.currentTarget.style.background = 'var(--bg-soft)'} onMouseLeave={e => e.currentTarget.style.background = 'transparent'} > {c.t} {c.when}
))}
); }; Object.assign(window, { APPS, ScreenApplications, AppIcon, ScreenAppDetail, });