// Insight Flow Screens — product use-cases under Life Planning / Spending / Insurance
// Principles (same as insight_details.jsx): informational, never prescriptive.
// One accent. No endorsement language ("best", "recommended"). Explain the "why".

// ── Primitives (local copies, kept visually identical to insight_details.jsx) ──
function FlowHeroCard({ theme, children }) {
  const midnight = theme?.label === 'Midnight';
  return (
    <div style={{
      background: midnight
        ? 'linear-gradient(145deg,rgba(255,255,255,0.07),rgba(255,255,255,0.02))'
        : `linear-gradient(145deg,${theme.surface2},${theme.surface})`,
      borderRadius:22, padding:'26px 22px',
    }}>
      {children}
    </div>
  );
}

function FlowHighlight({ theme, accent, children }) {
  const midnight = theme?.label === 'Midnight';
  return (
    <div style={{ background: midnight ? `${accent}18` : `${accent}10`, borderRadius:14, padding:'13px 16px', marginTop:18 }}>
      {children}
    </div>
  );
}

function FlowCard({ theme, label, children }) {
  const midnight = theme?.label === 'Midnight';
  return (
    <div style={{
      background: midnight ? 'rgba(255,255,255,0.04)' : 'rgba(255,255,255,0.78)',
      border: midnight ? '0.5px solid rgba(255,255,255,0.08)' : 'none',
      borderRadius:18, padding:'18px 16px',
      boxShadow: midnight ? 'none' : '0 2px 14px rgba(0,0,0,0.05)',
    }}>
      {label && (
        <div style={{ fontFamily:FONTS.mono, fontSize:9.5, letterSpacing:1.3, textTransform:'uppercase', color:theme.textMute, marginBottom:12 }}>
          {label}
        </div>
      )}
      {children}
    </div>
  );
}

function FlowRow({ theme, accent, label, value, highlight, last }) {
  return (
    <div style={{
      display:'flex', justifyContent:'space-between', alignItems:'center',
      padding:'10px 0', borderBottom: last ? 'none' : `0.5px solid ${theme.line2}`,
    }}>
      <span style={{ fontFamily:FONTS.ui, fontSize:13, color:theme.textDim }}>{label}</span>
      <span style={{ fontFamily:FONTS.mono, fontSize:13, fontWeight: highlight ? 600 : 400, color: highlight ? accent : theme.text }}>{value}</span>
    </div>
  );
}

// name (+ optional sub) on the left, value on the right — for comparison tables
function FlowOptionRow({ theme, accent, name, sub, value, valueSub, tag, last }) {
  return (
    <div style={{
      display:'flex', alignItems:'center', padding:'12px 0',
      borderBottom: last ? 'none' : `0.5px solid ${theme.line2}`,
    }}>
      <div style={{ flex:1, minWidth:0 }}>
        <div style={{ display:'flex', alignItems:'center', gap:7 }}>
          <span style={{ fontFamily:FONTS.ui, fontSize:13.5, color:theme.text }}>{name}</span>
          {tag && (
            <span style={{ fontFamily:FONTS.mono, fontSize:8, color:theme.textMute, background:theme.line2, padding:'2px 7px', borderRadius:5, letterSpacing:0.4 }}>{tag}</span>
          )}
        </div>
        {sub && <div style={{ fontFamily:FONTS.ui, fontSize:11, color:theme.textDim, marginTop:1 }}>{sub}</div>}
      </div>
      <div style={{ textAlign:'right', flexShrink:0 }}>
        <div style={{ fontFamily:FONTS.mono, fontSize:14, fontWeight:600, color:theme.text }}>{value}</div>
        {valueSub && <div style={{ fontFamily:FONTS.mono, fontSize:9.5, color:theme.textMute, marginTop:1 }}>{valueSub}</div>}
      </div>
    </div>
  );
}

// bullet (dot/check) + text — for "what it covers" lists
function FlowBullet({ theme, accent, title, sub, last }) {
  return (
    <div style={{
      display:'flex', alignItems:'flex-start', gap:11, padding:'9px 0',
      borderBottom: last ? 'none' : `0.5px solid ${theme.line2}`,
    }}>
      <div style={{ width:6, height:6, borderRadius:3, background:accent, marginTop:6, flexShrink:0 }} />
      <div style={{ flex:1 }}>
        <div style={{ fontFamily:FONTS.ui, fontSize:13, color:theme.text }}>{title}</div>
        {sub && <div style={{ fontFamily:FONTS.ui, fontSize:11.5, color:theme.textDim, marginTop:1 }}>{sub}</div>}
      </div>
    </div>
  );
}

// numbered step
function FlowStep({ theme, accent, n, title, sub, last }) {
  return (
    <div style={{ display:'flex', gap:13, paddingBottom: last ? 0 : 16 }}>
      <div style={{ display:'flex', flexDirection:'column', alignItems:'center', flexShrink:0 }}>
        <div style={{
          width:24, height:24, borderRadius:12, background:`${accent}15`,
          display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0,
        }}>
          <span style={{ fontFamily:FONTS.mono, fontSize:11, fontWeight:600, color:accent }}>{n}</span>
        </div>
        {!last && <div style={{ width:1.5, flex:1, minHeight:14, background:theme.line2, marginTop:4 }} />}
      </div>
      <div style={{ flex:1, paddingTop:1 }}>
        <div style={{ fontFamily:FONTS.ui, fontSize:13.5, fontWeight:500, color:theme.text, lineHeight:1.3 }}>{title}</div>
        {sub && <div style={{ fontFamily:FONTS.ui, fontSize:12, color:theme.textDim, marginTop:2, lineHeight:1.45 }}>{sub}</div>}
      </div>
    </div>
  );
}

// coverage map row — status pill + label + detail
function FlowCoverRow({ theme, accent, label, detail, covered, last }) {
  return (
    <div style={{
      display:'flex', alignItems:'center', gap:12, padding:'11px 0',
      borderBottom: last ? 'none' : `0.5px solid ${theme.line2}`,
    }}>
      <div style={{
        width:22, height:22, borderRadius:11, flexShrink:0,
        background: covered ? `${accent}15` : (theme?.label === 'Midnight' ? 'rgba(255,255,255,0.06)' : 'rgba(0,0,0,0.05)'),
        display:'flex', alignItems:'center', justifyContent:'center',
      }}>
        {covered
          ? <Ico.check size={12} stroke={accent} sw={2.4} />
          : <div style={{ width:8, height:1.6, borderRadius:1, background:theme.textMute }} />}
      </div>
      <div style={{ flex:1, minWidth:0 }}>
        <div style={{ fontFamily:FONTS.ui, fontSize:13.5, color:theme.text }}>{label}</div>
        <div style={{ fontFamily:FONTS.ui, fontSize:11.5, color:theme.textDim, marginTop:1 }}>{detail}</div>
      </div>
      <span style={{
        fontFamily:FONTS.mono, fontSize:9, letterSpacing:0.6, textTransform:'uppercase',
        color: covered ? accent : theme.textMute,
      }}>
        {covered ? 'Covered' : 'Gap'}
      </span>
    </div>
  );
}

// two-stat highlight body
function FlowTwoStat({ theme, accent, leftLabel, leftValue, rightLabel, rightValue }) {
  return (
    <div style={{ display:'flex', alignItems:'center' }}>
      <div style={{ flex:1 }}>
        <div style={{ fontFamily:FONTS.ui, fontSize:11, color:theme.textDim, marginBottom:3 }}>{leftLabel}</div>
        <div style={{ fontFamily:FONTS.display, fontSize:18, color:theme.text, letterSpacing:-0.4 }}>{leftValue}</div>
      </div>
      <div style={{ width:1, alignSelf:'stretch', background:theme.line2, margin:'0 16px' }} />
      <div style={{ flex:1 }}>
        <div style={{ fontFamily:FONTS.ui, fontSize:11, color:accent, marginBottom:3 }}>{rightLabel}</div>
        <div style={{ fontFamily:FONTS.display, fontSize:18, color:accent, letterSpacing:-0.4 }}>{rightValue}</div>
      </div>
    </div>
  );
}

// "What this means" / "Why it matters" paragraph card
function FlowMeaning({ theme, label, children }) {
  return (
    <FlowCard theme={theme} label={label}>
      <div style={{ fontFamily:FONTS.ui, fontSize:13.5, color:theme.textDim, lineHeight:1.6 }}>
        {children}
      </div>
    </FlowCard>
  );
}

function FlowCTAs({ theme, accent, primary, secondary, onPrimary, onSecondary }) {
  return (
    <div style={{ padding:'20px 16px 0', display:'flex', flexDirection:'column', gap:10 }}>
      <button onClick={onPrimary} style={{
        width:'100%', background:accent, color:'#fff', border:'none',
        borderRadius:16, padding:'15px 20px', fontFamily:FONTS.ui, fontSize:15, fontWeight:600,
        cursor:'pointer', letterSpacing:-0.2,
      }}>{primary}</button>
      {secondary && (
        <button onClick={onSecondary} style={{
          width:'100%', background:'transparent', color:accent,
          border:`1.5px solid ${accent}30`, borderRadius:16, padding:'14px 20px',
          fontFamily:FONTS.ui, fontSize:15, fontWeight:600, cursor:'pointer', letterSpacing:-0.2,
        }}>{secondary}</button>
      )}
    </div>
  );
}

// icon + title + subtitle hero (for service / finder screens)
function FlowIconHero({ theme, accent, icon, title, subtitle, badge }) {
  const Icon = Ico[icon] || Ico.sparkle;
  return (
    <FlowHeroCard theme={theme}>
      <div style={{ display:'flex', alignItems:'center', gap:14 }}>
        <div style={{ width:46, height:46, borderRadius:14, background:`${accent}15`, display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0 }}>
          <Icon size={22} stroke={accent} />
        </div>
        <div style={{ flex:1, minWidth:0 }}>
          <div style={{ fontFamily:FONTS.display, fontSize:21, color:theme.text, letterSpacing:-0.4, lineHeight:1.15 }}>{title}</div>
          {subtitle && <div style={{ fontFamily:FONTS.ui, fontSize:13, color:theme.textDim, marginTop:4 }}>{subtitle}</div>}
        </div>
      </div>
      {badge && (
        <div style={{ marginTop:16, display:'inline-flex', alignItems:'center', gap:7, background:`${accent}12`, borderRadius:10, padding:'8px 12px' }}>
          <Ico.calendar size={13} stroke={accent} sw={1.7} />
          <span style={{ fontFamily:FONTS.ui, fontSize:12, fontWeight:600, color:accent }}>{badge}</span>
        </div>
      )}
    </FlowHeroCard>
  );
}

// label + big AED number hero
function FlowStatHero({ theme, accent, label, value, subtitle, prefixDh, children }) {
  return (
    <FlowHeroCard theme={theme}>
      <div style={{ fontFamily:FONTS.mono, fontSize:10, letterSpacing:1.4, textTransform:'uppercase', color:theme.textMute, marginBottom:10 }}>{label}</div>
      <div style={{ display:'flex', alignItems:'baseline', gap:5 }}>
        {prefixDh && <Dh size="1.1em" color={theme.text} />}
        <span style={{ fontFamily:FONTS.display, fontSize:46, color:theme.text, letterSpacing:-2, lineHeight:1 }}>{value}</span>
      </div>
      {subtitle && <div style={{ fontFamily:FONTS.ui, fontSize:13, color:theme.textDim, marginTop:6 }}>{subtitle}</div>}
      {children}
    </FlowHeroCard>
  );
}

// ════════════════════════════════════════════════════════════════════════════
// LIFE PLANNING
// ════════════════════════════════════════════════════════════════════════════

// ─── Intro to estate lawyer / professionals ──────────────────────────────────
const ESTATE_PROS = [
  { id:'sa', initials:'SA', name:'Sarah Al-Hashimi', firm:'Meridian Legal · Private Client',
    tags:['DIFC Wills','Guardianship'], meta:'12 yrs · English, Arabic · Dubai' },
  { id:'jw', initials:'JW', name:'James Whitfield', firm:'Cedar & Crowe · Estate Planning',
    tags:['Asset succession','Business'], meta:'9 yrs · English · Abu Dhabi' },
  { id:'pn', initials:'PN', name:'Priya Nair', firm:'Anchor Private · Wills & Trusts',
    tags:['Wills','Trusts','Probate'], meta:'15 yrs · English, Hindi · Remote' },
];

const ESTATE_OPTIONS = [
  { id:'call',  icon:'chat',      title:'Intro call',             sub:'30 min · video',         price:'Free',           cta:'intro call',   slots:true  },
  { id:'inper', icon:'briefcase', title:'In-person consultation', sub:'60 min · their office',  price:'AED 350',        cta:'consultation', slots:true  },
  { id:'will',  icon:'doc',       title:'Will drafting (DIFC)',   sub:'Full package',           price:'from AED 2,500', cta:'will drafting',slots:false },
];

const ESTATE_SLOTS = ['Tomorrow · 10:00', 'Tomorrow · 14:30', 'Thu · 11:00', 'Fri · 09:30'];

function EstateProCard({ theme, accent, pro, onView }) {
  const midnight = theme?.label === 'Midnight';
  return (
    <button onClick={onView} style={{
      width:'100%', textAlign:'left', cursor:'pointer',
      background: midnight ? 'rgba(255,255,255,0.04)' : 'rgba(255,255,255,0.78)',
      border: midnight ? '0.5px solid rgba(255,255,255,0.08)' : 'none',
      borderRadius:16, padding:15,
      boxShadow: midnight ? 'none' : '0 2px 14px rgba(0,0,0,0.05)',
      display:'flex', flexDirection:'column', gap:11,
    }}>
      <div style={{ display:'flex', alignItems:'center', gap:12 }}>
        <div style={{ width:42, height:42, borderRadius:21, background:`${accent}15`, display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0 }}>
          <span style={{ fontFamily:FONTS.display, fontSize:15, color:accent, letterSpacing:0.2 }}>{pro.initials}</span>
        </div>
        <div style={{ flex:1, minWidth:0 }}>
          <div style={{ fontFamily:FONTS.ui, fontSize:14, fontWeight:600, color:theme.text }}>{pro.name}</div>
          <div style={{ fontFamily:FONTS.ui, fontSize:11.5, color:theme.textDim, marginTop:1 }}>{pro.firm}</div>
        </div>
      </div>
      <div style={{ display:'flex', flexWrap:'wrap', gap:6 }}>
        {pro.tags.map(t => (
          <span key={t} style={{ fontFamily:FONTS.mono, fontSize:9, color:accent, background:`${accent}12`, padding:'3px 8px', borderRadius:6, letterSpacing:0.3 }}>{t}</span>
        ))}
      </div>
      <div style={{
        display:'flex', alignItems:'center', justifyContent:'space-between', gap:10,
        paddingTop:10, borderTop:`0.5px solid ${theme.line2}`,
      }}>
        <span style={{ fontFamily:FONTS.mono, fontSize:9.5, color:theme.textMute, letterSpacing:0.3, flex:1, minWidth:0, overflow:'hidden', textOverflow:'ellipsis', whiteSpace:'nowrap' }}>{pro.meta}</span>
        <span style={{ display:'flex', alignItems:'center', gap:3, flexShrink:0 }}>
          <span style={{ fontFamily:FONTS.ui, fontSize:11.5, fontWeight:600, color:accent, whiteSpace:'nowrap' }}>View availability</span>
          <Ico.chevR size={13} stroke={accent} sw={2} />
        </span>
      </div>
    </button>
  );
}

function EstateOptionsSheet({ theme, accent, midnight, pro, onClose, onConfirm }) {
  const [opt, setOpt]   = React.useState(0);
  const [slot, setSlot] = React.useState(0);
  const sheetBg  = midnight ? '#1B1F2E' : '#FFFFFF';
  const option   = ESTATE_OPTIONS[opt];
  const firstName = pro.name.split(' ')[0];

  const confirm = () => {
    const when = option.slots ? ` (${ESTATE_SLOTS[slot]})` : '';
    onConfirm(`${firstName} will confirm your ${option.cta}${when} by email`);
  };

  return (
    <div style={{ position:'absolute', inset:0, zIndex:60, display:'flex', flexDirection:'column', justifyContent:'flex-end' }}>
      <div onClick={onClose} style={{ position:'absolute', inset:0, background:'rgba(0,0,0,0.38)', backdropFilter:'blur(2px)', WebkitBackdropFilter:'blur(2px)' }} />

      <div style={{ position:'relative', zIndex:1, background:sheetBg, borderRadius:'24px 24px 0 0', boxShadow:'0 -8px 40px rgba(0,0,0,0.18)', maxHeight:'90%', overflow:'hidden', display:'flex', flexDirection:'column' }}>
        <div style={{ width:36, height:4, borderRadius:2, background: midnight ? 'rgba(255,255,255,0.18)' : 'rgba(0,0,0,0.12)', margin:'10px auto 0', flexShrink:0 }} />

        <div style={{ overflowY:'auto', padding:'16px 20px 28px' }}>

          {/* professional header */}
          <div style={{ display:'flex', alignItems:'center', gap:13, marginBottom:6 }}>
            <div style={{ width:46, height:46, borderRadius:23, background:`${accent}15`, display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0 }}>
              <span style={{ fontFamily:FONTS.display, fontSize:16, color:accent, letterSpacing:0.2 }}>{pro.initials}</span>
            </div>
            <div style={{ flex:1, minWidth:0 }}>
              <div style={{ fontFamily:FONTS.display, fontSize:18, color:theme.text, letterSpacing:-0.3, lineHeight:1.15 }}>{pro.name}</div>
              <div style={{ fontFamily:FONTS.ui, fontSize:12, color:theme.textDim, marginTop:2 }}>{pro.firm}</div>
            </div>
          </div>
          <div style={{ fontFamily:FONTS.mono, fontSize:9.5, color:theme.textMute, letterSpacing:0.3, marginBottom:18 }}>{pro.meta}</div>

          {/* options */}
          <div style={{ fontFamily:FONTS.mono, fontSize:9.5, letterSpacing:1.3, textTransform:'uppercase', color:theme.textMute, marginBottom:4 }}>Available options</div>
          {ESTATE_OPTIONS.map((o, i) => {
            const Icon = Ico[o.icon] || Ico.doc;
            const sel = i === opt;
            return (
              <button key={o.id} onClick={() => setOpt(i)} style={{
                width:'100%', textAlign:'left', cursor:'pointer', background:'transparent', border:'none',
                display:'flex', alignItems:'center', gap:13, padding:'13px 0',
                borderBottom: i < ESTATE_OPTIONS.length - 1 ? `0.5px solid ${theme.line2}` : 'none',
              }}>
                <div style={{ width:34, height:34, borderRadius:10, flexShrink:0, background: sel ? `${accent}15` : (midnight ? 'rgba(255,255,255,0.06)' : 'rgba(0,0,0,0.04)'), display:'flex', alignItems:'center', justifyContent:'center' }}>
                  <Icon size={16} stroke={sel ? accent : theme.textDim} sw={1.7} />
                </div>
                <div style={{ flex:1, minWidth:0 }}>
                  <div style={{ fontFamily:FONTS.ui, fontSize:13.5, fontWeight:500, color:theme.text }}>{o.title}</div>
                  <div style={{ fontFamily:FONTS.ui, fontSize:11.5, color:theme.textDim, marginTop:1 }}>{o.sub}</div>
                </div>
                <span style={{ fontFamily:FONTS.mono, fontSize:12, fontWeight:600, color: sel ? accent : theme.text, marginRight:4 }}>{o.price}</span>
                <div style={{ width:18, height:18, borderRadius:9, flexShrink:0, border:`1.5px solid ${sel ? accent : theme.line}`, display:'flex', alignItems:'center', justifyContent:'center' }}>
                  {sel && <div style={{ width:9, height:9, borderRadius:5, background:accent }} />}
                </div>
              </button>
            );
          })}

          {/* time slots */}
          {option.slots && (
            <div style={{ marginTop:18 }}>
              <div style={{ fontFamily:FONTS.mono, fontSize:9.5, letterSpacing:1.3, textTransform:'uppercase', color:theme.textMute, marginBottom:10 }}>Pick a time</div>
              <div style={{ display:'flex', flexWrap:'wrap', gap:8 }}>
                {ESTATE_SLOTS.map((s, i) => (
                  <button key={s} onClick={() => setSlot(i)} style={{
                    padding:'8px 13px', borderRadius:10, cursor:'pointer',
                    background: slot === i ? accent : 'transparent',
                    border: slot === i ? 'none' : `1px solid ${theme.line}`,
                    color: slot === i ? '#fff' : theme.textDim,
                    fontFamily:FONTS.ui, fontSize:12, fontWeight:500,
                  }}>{s}</button>
                ))}
              </div>
            </div>
          )}

          {/* reassurance */}
          <div style={{ display:'flex', alignItems:'center', gap:8, marginTop:18, marginBottom:16 }}>
            <Ico.shieldCheck size={13} stroke={theme.textMute} sw={1.6} />
            <span style={{ fontFamily:FONTS.ui, fontSize:11.5, color:theme.textMute }}>Free intro, no obligation · confirmed by email within 24h</span>
          </div>

          {/* confirm */}
          <button onClick={confirm} style={{
            width:'100%', background:accent, color:'#fff', border:'none',
            borderRadius:16, padding:'15px 20px', fontFamily:FONTS.ui, fontSize:15, fontWeight:600,
            cursor:'pointer', letterSpacing:-0.2,
          }}>
            Request {option.cta}
          </button>
        </div>
      </div>
    </div>
  );
}

function EstateIntroScreen({ theme, accent, onBack, onAskHimma }) {
  const midnight = theme?.label === 'Midnight';
  const [activePro, setActivePro] = React.useState(null);
  const [toast, setToast]         = React.useState('');

  const helps = [
    { title:'Drafting & registering a will', sub:'DIFC Wills or local courts (ADJD)' },
    { title:'Guardianship for minors',        sub:'Who cares for children if both parents pass' },
    { title:'Business & asset succession',    sub:'Meraki Media, property and investments' },
    { title:'Power of attorney',              sub:'Healthcare and financial directives' },
  ];

  const handleConfirm = (msg) => {
    setActivePro(null);
    setToast(msg);
    setTimeout(() => setToast(''), 3000);
  };

  return (
    <div style={{ position:'relative', height:'100%' }}>
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Will & Estate" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowIconHero theme={theme} accent={accent} icon="doc"
          title="Your estate has no plan on file"
          subtitle="AED 730,940 net worth with no documented will" />

        <FlowMeaning theme={theme} label="Why it matters in the UAE">
          Without a registered will, UAE courts distribute your assets under default succession rules, which may not match your wishes. Accounts can be frozen until the court rules, leaving dependents without access to funds.
        </FlowMeaning>

        <FlowCard theme={theme} label="What an estate professional helps with">
          {helps.map((h, i) => (
            <FlowBullet key={h.title} theme={theme} accent={accent} title={h.title} sub={h.sub} last={i === helps.length - 1} />
          ))}
        </FlowCard>

        {/* Who's available */}
        <div style={{ padding:'6px 4px 0' }}>
          <div style={{ fontFamily:FONTS.display, fontSize:17, color:theme.text, letterSpacing:-0.3 }}>Who's available</div>
          <div style={{ fontFamily:FONTS.ui, fontSize:12.5, color:theme.textDim, marginTop:3, lineHeight:1.45 }}>
            Licensed specialists who work with UAE residents.
          </div>
        </div>

        {ESTATE_PROS.map(pro => (
          <EstateProCard key={pro.id} theme={theme} accent={accent} pro={pro} onView={() => setActivePro(pro)} />
        ))}

      </div>

      {/* secondary action */}
      <div style={{ padding:'20px 16px 0' }}>
        <button onClick={onAskHimma} style={{
          width:'100%', background:'transparent', color:accent,
          border:`1.5px solid ${accent}30`, borderRadius:16, padding:'14px 20px',
          fontFamily:FONTS.ui, fontSize:15, fontWeight:600, cursor:'pointer', letterSpacing:-0.2,
        }}>
          Ask Himma about estate planning
        </button>
      </div>
    </Screen>

    {/* options sheet */}
    {activePro && (
      <EstateOptionsSheet
        theme={theme} accent={accent} midnight={midnight}
        pro={activePro}
        onClose={() => setActivePro(null)}
        onConfirm={handleConfirm}
      />
    )}

    {/* confirmation toast */}
    {toast && (
      <div style={{ position:'absolute', bottom:24, left:16, right:16, zIndex:70, background:theme.text, color:theme.bg, borderRadius:14, padding:'13px 16px', display:'flex', alignItems:'center', gap:10, boxShadow:'0 8px 28px rgba(0,0,0,0.22)' }}>
        <Ico.check size={16} stroke={theme.bg} sw={2.2} />
        <div style={{ fontFamily:FONTS.ui, fontSize:13, fontWeight:500, lineHeight:1.35 }}>{toast}</div>
      </div>
    )}

    </div>
  );
}

// ════════════════════════════════════════════════════════════════════════════
// SPENDING
// ════════════════════════════════════════════════════════════════════════════

// ─── Credit card rewards optimization ─────────────────────────────────────────
function CardRewardsScreen({ theme, accent, onBack, onAskHimma }) {
  // category | your flat rate | best-in-market category rate
  const cats = [
    { cat:'Dining',    spend:'AED 27,600/yr', yours:'1%', market:'up to 5%' },
    { cat:'Groceries', spend:'AED 21,600/yr', yours:'1%', market:'up to 3%' },
    { cat:'Travel',    spend:'AED 18,000/yr', yours:'1%', market:'up to 4%' },
    { cat:'Fuel',      spend:'AED 9,000/yr',  yours:'1%', market:'up to 4%' },
    { cat:'Online',    spend:'AED 14,400/yr', yours:'1%', market:'up to 2%' },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Spending" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowStatHero theme={theme} accent={accent}
          label="Card rewards · last 12 months"
          value="1,240" prefixDh
          subtitle="in rewards left unclaimed on your spending">
          <FlowHighlight theme={theme} accent={accent}>
            <FlowTwoStat theme={theme} accent={accent}
              leftLabel="You earned"   leftValue="AED 980"
              rightLabel="Was available" rightValue="AED 2,220" />
          </FlowHighlight>
        </FlowStatHero>

        <FlowCard theme={theme} label="Reward rates by category">
          {cats.map((c, i) => (
            <div key={c.cat} style={{
              display:'flex', alignItems:'center', padding:'11px 0',
              borderBottom: i < cats.length - 1 ? `0.5px solid ${theme.line2}` : 'none',
            }}>
              <div style={{ flex:1, minWidth:0 }}>
                <div style={{ fontFamily:FONTS.ui, fontSize:13.5, color:theme.text }}>{c.cat}</div>
                <div style={{ fontFamily:FONTS.ui, fontSize:11, color:theme.textDim, marginTop:1 }}>{c.spend}</div>
              </div>
              <span style={{ fontFamily:FONTS.mono, fontSize:12.5, color:theme.textMute, width:48, textAlign:'right' }}>{c.yours}</span>
              <Ico.arrowUR size={12} stroke={theme.textMute} sw={1.6} style={{ margin:'0 8px', flexShrink:0 }} />
              <span style={{ fontFamily:FONTS.mono, fontSize:12.5, fontWeight:600, color:accent, width:62, textAlign:'right' }}>{c.market}</span>
            </div>
          ))}
          <div style={{ display:'flex', justifyContent:'flex-end', marginTop:8 }}>
            <span style={{ fontFamily:FONTS.mono, fontSize:8.5, color:theme.textMute, letterSpacing:0.5, textTransform:'uppercase', width:48, textAlign:'right' }}>Yours</span>
            <span style={{ width:28 }} />
            <span style={{ fontFamily:FONTS.mono, fontSize:8.5, color:theme.textMute, letterSpacing:0.5, textTransform:'uppercase', width:62, textAlign:'right' }}>Market</span>
          </div>
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Your card earns a flat 1% on everything. Matching your top categories to category cards captures more without changing how you spend.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Compare rewards cards"
        secondary="Ask Himma about my cards"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── Mortgage optimization (existing loan reprice) ────────────────────────────
function MortgageOptimizationScreen({ theme, accent, onBack, onAskHimma }) {
  const today = [
    { label:'Outstanding balance', value:'AED 355,000' },
    { label:'Rate',                value:'4.99% fixed' },
    { label:'Monthly payment',     value:'AED 2,800' },
    { label:'Remaining term',      value:'15 years' },
  ];
  const repriced = [
    { label:'New rate',                  value:'≈ 3.75%' },
    { label:'Monthly payment',           value:'AED 2,580', highlight:true },
    { label:'Saved per month',           value:'−AED 220',  highlight:true },
    { label:'Interest over term',        value:'≈ −AED 39,500', highlight:true },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Spending" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowStatHero theme={theme} accent={accent}
          label="Your mortgage rate · JVC Studio"
          value="4.99%"
          subtitle="AED 355,000 outstanding · 15 years left">
          <FlowHighlight theme={theme} accent={accent}>
            <div style={{ display:'flex', justifyContent:'space-between', alignItems:'center' }}>
              <div>
                <div style={{ fontFamily:FONTS.ui, fontSize:13, color:accent, fontWeight:500 }}>Market rates today</div>
                <div style={{ fontFamily:FONTS.ui, fontSize:11, color:theme.textDim, marginTop:1 }}>≈ 3.75% on comparable terms</div>
              </div>
              <div style={{ display:'flex', alignItems:'baseline', gap:2 }}>
                <span style={{ fontFamily:FONTS.display, fontSize:20, color:accent }}>−</span>
                <Dh size="0.85em" color={accent} />
                <span style={{ fontFamily:FONTS.display, fontSize:20, color:accent, letterSpacing:-0.5 }}>220/mo</span>
              </div>
            </div>
          </FlowHighlight>
        </FlowStatHero>

        <FlowCard theme={theme} label="Your mortgage today">
          {today.map((r, i) => (
            <FlowRow key={r.label} theme={theme} accent={accent} label={r.label} value={r.value} last={i === today.length - 1} />
          ))}
        </FlowCard>

        <FlowCard theme={theme} label="If repriced to ~3.75%">
          {repriced.map((r, i) => (
            <FlowRow key={r.label} theme={theme} accent={accent} label={r.label} value={r.value} highlight={r.highlight} last={i === repriced.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Mortgage rates move, but lenders rarely lower yours automatically. Repricing with your bank or refinancing elsewhere can cut the rate. Weigh the saving against early-settlement (~1%) and new processing fees.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Compare mortgage rates"
        secondary="Ask Himma about refinancing"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── Loan optimization ────────────────────────────────────────────────────────
function LoanOptimizationScreen({ theme, accent, onBack, onAskHimma }) {
  const debts = [
    { name:'Credit card',   sub:'AED 9,600 · 39.9% APR',  value:'AED 3,830', valueSub:'interest/yr' },
    { name:'Personal loan', sub:'AED 52,000 · 8.5% APR',  value:'AED 4,420', valueSub:'interest/yr' },
    { name:'Car loan',      sub:'AED 31,000 · 5.2% APR',  value:'AED 1,610', valueSub:'interest/yr' },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Spending" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowStatHero theme={theme} accent={accent}
          label="Non-mortgage debt · interest this year"
          value="9,860" prefixDh
          subtitle="across 3 balances at different rates">
          <FlowHighlight theme={theme} accent={accent}>
            <div style={{ display:'flex', alignItems:'center', gap:10 }}>
              <Ico.lineChart size={18} stroke={accent} sw={1.7} />
              <span style={{ fontFamily:FONTS.ui, fontSize:13, color:accent, lineHeight:1.45 }}>
                Highest rate first: the card's 39.9% costs the most per dirham.
              </span>
            </div>
          </FlowHighlight>
        </FlowStatHero>

        <FlowCard theme={theme} label="Your debts by interest rate">
          {debts.map((d, i) => (
            <FlowOptionRow key={d.name} theme={theme} accent={accent}
              name={d.name} sub={d.sub} value={d.value} valueSub={d.valueSub}
              last={i === debts.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Paying the highest-APR balance first (the "avalanche" method) cuts the most interest per dirham. Consolidating high-rate debt into a single lower-rate facility can also reduce the total, as long as the fees don't outweigh it.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Explore consolidation options"
        secondary="Ask Himma about my debts"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── FX spend and commissions lost ────────────────────────────────────────────
function FxLeakageScreen({ theme, accent, onBack, onAskHimma }) {
  const sources = [
    { name:'Foreign card spend', sub:'AED 36,000 at ~3.5% markup',  value:'AED 1,260' },
    { name:'Brokerage USD FX',   sub:'AED 60,000 at ~1.4% spread',  value:'AED 840'   },
    { name:'International transfers', sub:'AED 9,000 at ~0.9%',      value:'AED 80'    },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Spending" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowStatHero theme={theme} accent={accent}
          label="FX fees & spreads · last 12 months"
          value="2,180" prefixDh
          subtitle="quietly lost to currency conversion">
          <FlowHighlight theme={theme} accent={accent}>
            <FlowTwoStat theme={theme} accent={accent}
              leftLabel="Card foreign spend" leftValue="AED 1,260"
              rightLabel="Brokerage FX"      rightValue="AED 840" />
          </FlowHighlight>
        </FlowStatHero>

        <FlowCard theme={theme} label="Where it leaks">
          {sources.map((s, i) => (
            <FlowOptionRow key={s.name} theme={theme} accent={accent}
              name={s.name} sub={s.sub} value={s.value}
              last={i === sources.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Banks typically add 2–4% on foreign-currency card spend, and brokers add a spread when converting to USD. Multi-currency accounts and specialist FX services charge a fraction of that.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Explore multi-currency options"
        secondary="Ask Himma about FX costs"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ════════════════════════════════════════════════════════════════════════════
// INSURANCE
// ════════════════════════════════════════════════════════════════════════════

// ─── Existing insurance optimization ──────────────────────────────────────────
function InsuranceReviewScreen({ theme, accent, onBack, onAskHimma }) {
  const map = [
    { label:'Health',             detail:'Employer plan in place',     covered:true  },
    { label:'Car',                detail:'AXA · renews Aug 2026',      covered:true  },
    { label:'Life',               detail:'No cover detected',          covered:false },
    { label:'Income / disability',detail:'No cover detected',          covered:false },
    { label:'Home contents',      detail:'AED 150K valuables exposed', covered:false },
    { label:'Legal',              detail:'No plan in place',           covered:false },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Insurance" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowIconHero theme={theme} accent={accent} icon="shieldCheck"
          title="2 of 6 protection types covered"
          subtitle="Health and car in place, four gaps to review" />

        <FlowCard theme={theme} label="Your coverage map">
          {map.map((m, i) => (
            <FlowCoverRow key={m.label} theme={theme} accent={accent}
              label={m.label} detail={m.detail} covered={m.covered}
              last={i === map.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          A yearly review catches three things: duplicate cover, gaps that leave income or assets exposed, and renewal savings.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Review my coverage"
        secondary="Ask Himma about my policies"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── Life insurance finder ────────────────────────────────────────────────────
function LifeInsuranceFinderScreen({ theme, accent, onBack, onAskHimma }) {
  const calc = [
    { label:'Income replacement (5 yr)', value:'AED 1,488,000' },
    { label:'Outstanding debts',          value:'AED 510,000' },
    { label:'Less liquid assets',         value:'− AED 400,000' },
    { label:'Estimated need',             value:'≈ AED 1.6M', highlight:true },
  ];
  const policies = [
    { name:'Hayah',   sub:'AED 1.5M · 20 yr', value:'AED 96',  valueSub:'per month' },
    { name:'Zurich',  sub:'AED 1.5M · 20 yr', value:'AED 102', valueSub:'per month' },
    { name:'MetLife', sub:'AED 2M · 20 yr',   value:'AED 118', valueSub:'per month' },
    { name:'Sukoon',  sub:'AED 2M · 25 yr',   value:'AED 134', valueSub:'per month' },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Insurance" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowStatHero theme={theme} accent={accent}
          label="Estimated cover need"
          value="1.6M" prefixDh
          subtitle="to replace income and clear debts" />

        <FlowCard theme={theme} label="How that's estimated">
          {calc.map((r, i) => (
            <FlowRow key={r.label} theme={theme} accent={accent} label={r.label} value={r.value} highlight={r.highlight} last={i === calc.length - 1} />
          ))}
        </FlowCard>

        <FlowCard theme={theme} label="Term cover options">
          {policies.map((p, i) => (
            <FlowOptionRow key={p.name} theme={theme} accent={accent}
              name={p.name} sub={p.sub} value={p.value} valueSub={p.valueSub}
              last={i === policies.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Term life pays a lump sum if you pass away during the term. Premiums are lowest while you're young and healthy.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Compare life cover"
        secondary="Ask Himma about life insurance"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── Disability insurance finder ──────────────────────────────────────────────
function DisabilityInsuranceScreen({ theme, accent, onBack, onAskHimma }) {
  const types = [
    { title:'Short-term', sub:'Illness or injury · weeks to months' },
    { title:'Long-term',  sub:'Lasting disability · through to retirement' },
  ];
  const sized = [
    { label:'60% of income',  value:'AED 14,880/mo' },
    { label:'Typical premium', value:'AED 95–180/mo' },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Insurance" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowStatHero theme={theme} accent={accent}
          label="Monthly income at risk"
          value="24,800" prefixDh
          subtitle="if illness or injury stops you working" />

        <FlowCard theme={theme} label="Two types of cover">
          {types.map((t, i) => (
            <FlowBullet key={t.title} theme={theme} accent={accent} title={t.title} sub={t.sub} last={i === types.length - 1} />
          ))}
        </FlowCard>

        <FlowCard theme={theme} label="Sized to your income">
          {sized.map((r, i) => (
            <FlowRow key={r.label} theme={theme} accent={accent} label={r.label} value={r.value} last={i === sized.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Your ability to earn is your largest financial asset. Most households overlook this cover because employer plans are limited, and end with the job.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Compare disability cover"
        secondary="Ask Himma about income protection"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── Legal insurance finder ───────────────────────────────────────────────────
function LegalInsuranceScreen({ theme, accent, onBack, onAskHimma }) {
  const when = [
    { title:'Contract & lease reviews' },
    { title:'Employment or business disputes', sub:'Useful if you run Meraki Media' },
    { title:'Tenancy & consumer issues' },
    { title:'Wills & power of attorney' },
  ];
  const tiers = [
    { name:'Essentials', sub:'Document review + helpline', value:'AED 40',  valueSub:'per month' },
    { name:'Standard',   sub:'+ legal representation',      value:'AED 85',  valueSub:'per month' },
    { name:'Family',     sub:'+ dependents & property',     value:'AED 130', valueSub:'per month' },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Insurance" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowIconHero theme={theme} accent={accent} icon="scale"
          title="Legal support without the hourly bill"
          subtitle="Subscription plans from ~AED 40/month" />

        <FlowCard theme={theme} label="When it helps">
          {when.map((w, i) => (
            <FlowBullet key={w.title} theme={theme} accent={accent} title={w.title} sub={w.sub} last={i === when.length - 1} />
          ))}
        </FlowCard>

        <FlowCard theme={theme} label="Plan tiers">
          {tiers.map((t, i) => (
            <FlowOptionRow key={t.name} theme={theme} accent={accent}
              name={t.name} sub={t.sub} value={t.value} valueSub={t.valueSub}
              last={i === tiers.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Legal plans swap unpredictable hourly fees for a flat monthly cost. They're most useful if you sign contracts regularly or run a business, where a quick review can prevent an expensive dispute.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Compare legal plans"
        secondary="Ask Himma about legal cover"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── Homeowners insurance finder ──────────────────────────────────────────────
function HomeInsuranceScreen({ theme, accent, onBack, onAskHimma }) {
  const includes = [
    { title:'Buildings',  sub:'Structure & fixtures' },
    { title:'Contents',   sub:'Furniture, electronics, appliances' },
    { title:'Valuables',  sub:'Jewellery, watches, art' },
    { title:'Liability',  sub:'Accidental damage to others' },
  ];
  const options = [
    { name:'Contents only',          sub:'Belongings cover',        value:'AED 120', valueSub:'per year' },
    { name:'Contents + valuables',   sub:'Scheduled high-value items', value:'AED 290', valueSub:'per year' },
    { name:'Full home + liability',  sub:'Buildings, contents, liability', value:'AED 480', valueSub:'per year' },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Insurance" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowStatHero theme={theme} accent={accent}
          label="Uninsured valuables & contents"
          value="150,400" prefixDh
          subtitle="in belongings with no cover in place">
          <FlowHighlight theme={theme} accent={accent}>
            <div style={{ display:'flex', alignItems:'center', gap:10 }}>
              <Ico.home size={18} stroke={accent} sw={1.7} />
              <span style={{ fontFamily:FONTS.ui, fontSize:13, color:accent, lineHeight:1.45 }}>
                Building cover ≠ contents. Your belongings need their own policy.
              </span>
            </div>
          </FlowHighlight>
        </FlowStatHero>

        <FlowCard theme={theme} label="What home cover includes">
          {includes.map((c, i) => (
            <FlowBullet key={c.title} theme={theme} accent={accent} title={c.title} sub={c.sub} last={i === includes.length - 1} />
          ))}
        </FlowCard>

        <FlowCard theme={theme} label="Cover options">
          {options.map((o, i) => (
            <FlowOptionRow key={o.name} theme={theme} accent={accent}
              name={o.name} sub={o.sub} value={o.value} valueSub={o.valueSub}
              last={i === options.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Contents cover is inexpensive relative to what it protects. High-value items like watches and jewellery often sit above a standard per-item limit, so they're worth listing separately, known as "scheduling".
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Compare home cover"
        secondary="Ask Himma about contents cover"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── Car insurance finder ─────────────────────────────────────────────────────
function CarInsuranceScreen({ theme, accent, onBack, onAskHimma }) {
  const policy = [
    { label:'Insurer',    value:'AXA' },
    { label:'Cover',      value:'Comprehensive' },
    { label:'Premium',    value:'AED 2,400/yr' },
    { label:'Renews',     value:'Aug 2026' },
    { label:'No-claims',  value:'3 years' },
  ];
  const market = [
    { name:'Comprehensive',      sub:'Full cover, agency or garage', value:'AED 1,950', valueSub:'from / yr' },
    { name:'Third-party',        sub:'Liability only',               value:'AED 750',   valueSub:'from / yr' },
    { name:'Agency repair add-on', sub:'Manufacturer workshops',     value:'+AED 400',  valueSub:'per year' },
  ];
  return (
    <Screen theme={theme} padTop={0} padBottom={48}>
      <InsightDetailNav theme={theme} label="Insurance" onBack={onBack} />
      <div style={{ padding:'8px 16px 0', display:'flex', flexDirection:'column', gap:14 }}>

        <FlowIconHero theme={theme} accent={accent} icon="car"
          title="Your car cover renews soon"
          subtitle="AXA · Comprehensive · AED 2,400/yr"
          badge="Renews August 2026" />

        <FlowCard theme={theme} label="Your policy">
          {policy.map((r, i) => (
            <FlowRow key={r.label} theme={theme} accent={accent} label={r.label} value={r.value} last={i === policy.length - 1} />
          ))}
        </FlowCard>

        <FlowCard theme={theme} label="Market comparison">
          {market.map((m, i) => (
            <FlowOptionRow key={m.name} theme={theme} accent={accent}
              name={m.name} sub={m.sub} value={m.value} valueSub={m.valueSub}
              last={i === market.length - 1} />
          ))}
        </FlowCard>

        <FlowMeaning theme={theme} label="What this means">
          Premiums often fall at renewal once you have a clean claims record, but loyalty pricing can creep up year on year. Comparing before the auto-renewal date keeps you on a fair rate.
        </FlowMeaning>

      </div>
      <FlowCTAs theme={theme} accent={accent}
        primary="Compare car cover"
        secondary="Ask Himma about my renewal"
        onPrimary={onAskHimma} onSecondary={onAskHimma}
      />
    </Screen>
  );
}

// ─── Exports ──────────────────────────────────────────────────────────────────
Object.assign(window, {
  EstateIntroScreen,
  CardRewardsScreen,
  MortgageOptimizationScreen,
  LoanOptimizationScreen,
  FxLeakageScreen,
  InsuranceReviewScreen,
  LifeInsuranceFinderScreen,
  DisabilityInsuranceScreen,
  LegalInsuranceScreen,
  HomeInsuranceScreen,
  CarInsuranceScreen,
});
