/* Clear Mint — Family Wealth Hub pages 2: Assets & Liabilities, Children,
   Shared Expenses, Documents, Permissions. Exposes window.FwhAssets / FwhChildren
   / FwhExpenses / FwhDocuments / FwhPermissions. Uses the themed FH kit + CMFamily. */
(function(){
  const I = window.CMIcon;
  const useC = () => React.useContext(window.FHTheme);
  const hexA = window.FHhexA || ((h,a)=>h);
  const money = n => '$' + Math.round(+n||0).toLocaleString();
  const compact = window.fwhCompact || (n=>'$'+Math.round(n));
  const Kpi = ({k}) => window.FwhKpi ? React.createElement(window.FwhKpi,{k}) : null;
  const Avatar = (p) => window.FwhAvatar ? React.createElement(window.FwhAvatar,p) : null;
  const btn = (C,primary) => window.fwhBtnStyle ? window.fwhBtnStyle(C,primary) : {};
  const Pill = ({children,color}) => { const C=useC(); return <span style={{fontSize:11,fontWeight:700,color:color,background:hexA(color,0.14),borderRadius:999,padding:'3px 9px',whiteSpace:'nowrap'}}>{children}</span>; };
  const fmtMoneyDec = n => '$'+(+n||0).toLocaleString('en-CA',{minimumFractionDigits:2,maximumFractionDigits:2});

  /* ===================== ASSETS & LIABILITIES ===================== */
  function FwhAssets({ D }){
    const C = useC(); const { FHCard, FHLine, FHBar } = window;
    const a = D.assets;
    const Row = ({ r, total, neg }) => (
      <div style={{display:'grid',gridTemplateColumns:'minmax(0,1.4fr) 90px 1fr',gap:12,alignItems:'center',padding:'13px 0',borderBottom:'1px solid '+C.line}}>
        <div style={{display:'flex',alignItems:'center',gap:12,minWidth:0}}>
          <span style={{width:38,height:38,flex:'0 0 38px',borderRadius:11,background:hexA(r.color,0.14),color:r.color,display:'flex',alignItems:'center',justifyContent:'center'}}>{React.createElement(window.FHIcon,{name:r.icon,size:18})}</span>
          <div style={{minWidth:0}}><div style={{fontSize:13.5,fontWeight:700,color:C.ink}}>{r.label}</div><div style={{fontSize:11.5,color:C.sub}}>{r.sub}</div></div>
        </div>
        <div className="num" style={{fontSize:13.5,fontWeight:800,color:C.ink,textAlign:'right'}}>{money(r.value)}</div>
        <div style={{display:'flex',alignItems:'center',gap:9}}><FHBar pct={r.pct} color={neg?C.red:C.emerald} height={7}/><span className="num" style={{fontSize:11.5,color:C.sub,width:38,textAlign:'right'}}>{r.pct}%</span></div>
      </div>
    );
    return (
      <div style={{display:'flex',flexDirection:'column',gap:18}}>
        <div style={{display:'grid',gridTemplateColumns:'repeat(4,1fr)',gap:14}} className="fh-4col">{a.kpis.map((k,i)=><Kpi key={i} k={k}/>)}</div>
        <div style={{display:'grid',gridTemplateColumns:'1fr 1fr',gap:16}} className="fh-2col">
          <FHCard title="Assets" right={<span className="num" style={{fontSize:16,fontWeight:800,color:C.emerald,fontFamily:'var(--font-serif)'}}>{money(a.assetTotal)}</span>}>
            <div style={{display:'grid',gridTemplateColumns:'minmax(0,1.4fr) 90px 1fr',gap:12,fontSize:11,fontWeight:700,color:C.mut,textTransform:'uppercase',letterSpacing:'.04em',paddingBottom:6}}><span></span><span style={{textAlign:'right'}}>Amount</span><span>% of Assets</span></div>
            {a.assetRows.map((r,i)=><Row key={i} r={r}/>)}
            <div style={{textAlign:'center',marginTop:14}}><span style={{fontSize:13,color:C.emerald,fontWeight:700,cursor:'pointer'}} onClick={()=>location.hash='#/assets'}>View all assets →</span></div>
          </FHCard>
          <FHCard title="Liabilities" right={<span className="num" style={{fontSize:16,fontWeight:800,color:C.red,fontFamily:'var(--font-serif)'}}>{money(a.liabTotal)}</span>}>
            <div style={{display:'grid',gridTemplateColumns:'minmax(0,1.4fr) 90px 1fr',gap:12,fontSize:11,fontWeight:700,color:C.mut,textTransform:'uppercase',letterSpacing:'.04em',paddingBottom:6}}><span></span><span style={{textAlign:'right'}}>Amount</span><span>% of Liabilities</span></div>
            {a.liabRows.map((r,i)=><Row key={i} r={r} neg/>)}
            <div style={{textAlign:'center',marginTop:14}}><span style={{fontSize:13,color:C.red,fontWeight:700,cursor:'pointer'}} onClick={()=>location.hash='#/liabilities'}>View all liabilities →</span></div>
          </FHCard>
        </div>
        <div style={{display:'grid',gridTemplateColumns:'1.5fr 1fr',gap:16}} className="fh-2col">
          <FHCard title="Net Worth Over Time" info right={<window.FHSelect options={['1 Year','5 Years','All']} value="1 Year" onChange={()=>{}}/>}>
            <div style={{display:'flex',alignItems:'baseline',gap:10,marginBottom:8}}><span style={{fontFamily:'var(--font-serif)',fontSize:24,fontWeight:700,color:C.ink}}>{money(a.nwTrend.series[a.nwTrend.series.length-1])}</span><span style={{fontSize:12.5,color:C.emerald,fontWeight:700}}>↑ 8.7% ({a.nwTrend.abs})</span></div>
            <FHLine height={230} money x={a.nwTrend.x} series={[{name:'Net Worth',data:a.nwTrend.series,color:C.emerald,dots:true}]}/>
          </FHCard>
          <FHCard title="Asset vs Liability Breakdown" info>
            <div style={{display:'flex',alignItems:'center',gap:18,flexWrap:'wrap'}}>
              {window.CMChart && window.CMChart.CMDonut && <div style={{width:170}}><window.CMChart.CMDonut height={170} dark={C.name==='dark'} centerValue={compact(a.kpis[2].raw)} centerLabel="Net Worth" data={[{value:a.assetTotal,label:'Assets',color:C.emerald},{value:a.liabTotal,label:'Liabilities',color:C.red}]}/></div>}
              <div style={{flex:1,minWidth:150,display:'flex',flexDirection:'column',gap:11}}>
                {[['Total Assets',a.assetTotal,'80.5%',C.emerald],['Total Liabilities',a.liabTotal,'19.5%',C.red],['Net Worth',a.kpis[2].raw,'100%',C.sub]].map((r,i)=>(
                  <div key={i} style={{display:'flex',alignItems:'center',gap:9,fontSize:12.5}}>
                    <span style={{width:9,height:9,borderRadius:3,background:r[3]}}/>
                    <span style={{flex:1,color:C.sub}}>{r[0]}</span>
                    <span className="num" style={{fontWeight:800,color:C.ink}}>{money(r[1])}</span>
                    <span className="num" style={{color:C.sub,width:44,textAlign:'right'}}>{r[2]}</span>
                  </div>
                ))}
              </div>
            </div>
          </FHCard>
        </div>
      </div>
    );
  }
  window.FwhAssets = FwhAssets;

  /* ===================== CHILDREN ===================== */
  function FwhChildren({ D }){
    const C = useC(); const { FHCard, FHLine, FHBar } = window;
    const ch = D.children; const [sel,setSel] = React.useState(0);
    const kid = ch.children[sel] || ch.children[0];
    return (
      <div style={{display:'flex',flexDirection:'column',gap:18}}>
        <div style={{display:'grid',gridTemplateColumns:'repeat(6,1fr)',gap:14}} className="fh-kpi6">{ch.kpis.map((k,i)=><Kpi key={i} k={k}/>)}</div>
        <div style={{display:'grid',gridTemplateColumns:'320px 1.4fr 1fr',gap:16,alignItems:'start'}} className="fh-3col">
          <FHCard title="Your Children" right={<span style={{fontSize:12,color:C.emerald,fontWeight:700,cursor:'pointer'}}>+ Add Child</span>}>
            <div style={{display:'flex',flexDirection:'column',gap:9,marginTop:4}}>
              {ch.children.map((k,i)=>(
                <button key={i} onClick={()=>setSel(i)} style={{display:'flex',alignItems:'center',gap:11,padding:'12px',borderRadius:13,border:'1px solid '+(i===sel?hexA(k.color,0.4):C.line),background:i===sel?hexA(k.color,0.08):'transparent',cursor:'pointer',fontFamily:'inherit',textAlign:'left'}}>
                  <Avatar name={k.name} color={k.color} size={42}/>
                  <div style={{flex:1,minWidth:0}}><div style={{fontSize:13,fontWeight:700,color:C.ink,display:'flex',alignItems:'center',gap:6}}>{k.name.split(' ')[0]}{k.primary&&<span style={{fontSize:9.5,fontWeight:800,color:C.emerald,background:hexA(C.emerald,0.14),borderRadius:999,padding:'1px 6px'}}>Primary</span>}</div><div style={{fontSize:11,color:C.sub}}>Age {k.age} · {k.grade}</div></div>
                  <div style={{textAlign:'right'}}><div style={{fontSize:10,color:C.sub}}>Education Fund</div><div className="num" style={{fontSize:13,fontWeight:800,color:C.ink}}>{money(k.fund)}</div></div>
                </button>
              ))}
            </div>
          </FHCard>
          <FHCard title={kid.name} right={<span style={{fontSize:12,color:C.emerald,fontWeight:700,cursor:'pointer'}}>Edit</span>}>
            <div style={{fontSize:12,color:C.sub,marginTop:-4,marginBottom:14}}>Age {kid.age} · {kid.grade} · {kid.goal}</div>
            <div style={{display:'flex',justifyContent:'space-between',alignItems:'baseline',marginBottom:6}}>
              <div><div style={{fontSize:12,color:C.sub}}>Education Fund Progress</div><div style={{fontFamily:'var(--font-serif)',fontSize:26,fontWeight:700,color:C.ink}}>{money(kid.fund)}</div></div>
              <div style={{textAlign:'right'}}><div style={{fontSize:12,color:C.sub}}>Goal: {money(kid.target)}</div><div style={{fontSize:13,fontWeight:800,color:C.ink}}>{kid.pct}% of goal</div></div>
            </div>
            <FHBar pct={kid.pct} color={C.emerald} height={9}/>
            {kid.change!=null && <div style={{fontSize:12,color:C.emerald,fontWeight:700,marginTop:8}}>↑ {money(kid.change)} ({kid.changePct}%) this month</div>}
            <div style={{display:'grid',gridTemplateColumns:'1fr 1fr 1fr',gap:12,marginTop:16}}>
              {[['Projected at Age 18',money(kid.proj18),'At 6% average return'],['Years to Goal',kid.yearsToGoal+' years','On track'],['Monthly Contribution',money(kid.monthly),'Automatic transfer']].map((m,i)=>(
                <div key={i} style={{background:C.panel2,border:'1px solid '+C.line,borderRadius:12,padding:'13px 14px'}}><div style={{fontSize:11,color:C.sub,fontWeight:600}}>{m[0]}</div><div style={{fontFamily:'var(--font-serif)',fontSize:18,fontWeight:700,color:C.ink,margin:'3px 0 2px'}}>{m[1]}</div><div style={{fontSize:10.5,color:C.emerald}}>{m[2]}</div></div>
              ))}
            </div>
          </FHCard>
          <FHCard title="Education Goals" right={<span style={{fontSize:12,color:C.emerald,fontWeight:700,cursor:'pointer'}}>+ Add Goal</span>}>
            <div style={{display:'flex',flexDirection:'column',gap:14,marginTop:2}}>
              {ch.eduGoals.map((g,i)=>(
                <div key={i} style={{display:'flex',alignItems:'center',gap:12}}>
                  <span style={{width:34,height:34,flex:'0 0 34px',borderRadius:10,background:hexA(g.color,0.14),color:g.color,display:'flex',alignItems:'center',justifyContent:'center'}}>{React.createElement(window.FHIcon,{name:g.icon,size:16})}</span>
                  <div style={{flex:1,minWidth:0}}>
                    <div style={{display:'flex',justifyContent:'space-between',marginBottom:4}}><span style={{fontSize:12.5,fontWeight:700,color:C.ink}}>{g.name}</span><span className="num" style={{fontSize:12,fontWeight:800,color:C.ink}}>{money(g.saved)}</span></div>
                    <div style={{fontSize:10.5,color:C.sub,marginBottom:5}}>Target: {money(g.target)}</div>
                    <div style={{display:'flex',alignItems:'center',gap:8}}><FHBar pct={g.pct} color={g.color} height={6}/><span style={{fontSize:11,fontWeight:700,color:g.color,width:32,textAlign:'right'}}>{g.pct}%</span></div>
                  </div>
                </div>
              ))}
            </div>
          </FHCard>
        </div>
        <div style={{display:'grid',gridTemplateColumns:'1.3fr 1fr 1fr',gap:16}} className="fh-3col">
          <FHCard title="Education Fund Growth" info right={<window.FHSelect options={['6 Months','1 Year']} value="1 Year" onChange={()=>{}}/>}>
            <FHLine height={200} money x={ch.growth.x} series={[{name:'Fund',data:ch.growth.series,color:C.emerald,dots:true}]}/>
          </FHCard>
          <FHCard title="Contributions & Activity">
            {ch.activity.map((a,i)=>(
              <div key={i} style={{display:'flex',alignItems:'center',gap:11,padding:'10px 0',borderBottom:i<ch.activity.length-1?'1px solid '+C.line:'none'}}>
                <span style={{width:32,height:32,flex:'0 0 32px',borderRadius:9,background:hexA(a.color,0.14),color:a.color,display:'flex',alignItems:'center',justifyContent:'center'}}>{React.createElement(window.FHIcon,{name:a.icon,size:15})}</span>
                <div style={{flex:1,minWidth:0}}><div style={{fontSize:12.5,fontWeight:600,color:C.ink}}>{a.desc}</div><div style={{fontSize:11,color:C.sub}}>{a.when}</div></div>
                <span className="num" style={{fontSize:13,fontWeight:800,color:C.emerald}}>+{money(a.amount)}</span>
              </div>
            ))}
          </FHCard>
          <FHCard title="Upcoming Milestones">
            {ch.milestones.map((m,i)=>(
              <div key={i} style={{display:'flex',alignItems:'center',gap:11,padding:'10px 0',borderBottom:i<ch.milestones.length-1?'1px solid '+C.line:'none'}}>
                <span style={{width:32,height:32,flex:'0 0 32px',borderRadius:9,background:hexA(m.color,0.14),color:m.color,display:'flex',alignItems:'center',justifyContent:'center'}}>{React.createElement(window.FHIcon,{name:m.icon,size:15})}</span>
                <div style={{flex:1,minWidth:0}}><div style={{fontSize:12.5,fontWeight:600,color:C.ink}}>{m.name}</div><div style={{fontSize:11,color:C.sub}}>{m.when}</div></div>
                {m.tag&&<Pill color={C.emerald}>{m.tag}</Pill>}
              </div>
            ))}
          </FHCard>
        </div>
      </div>
    );
  }
  window.FwhChildren = FwhChildren;

  /* ===================== SHARED EXPENSES ===================== */
  function FwhExpenses({ D }){
    const C = useC(); const { FHCard, FHLine, FHBar, FHDonut } = window;
    const e = D.expenses;
    const STATUSC = { Paid:C.emerald, Outstanding:C.amber, Owed:C.red };
    const CATC = { Housing:'#7848C0', Groceries:C.emerald, Utilities:C.blue, Transportation:C.amber, Insurance:C.teal, Other:C.sub };
    return (
      <div style={{display:'flex',flexDirection:'column',gap:18}}>
        <div style={{display:'grid',gridTemplateColumns:'repeat(5,1fr)',gap:14}} className="fh-kpi6">{e.kpis.map((k,i)=><Kpi key={i} k={k}/>)}</div>
        <div style={{display:'grid',gridTemplateColumns:'1.1fr 1.1fr 1fr',gap:16}} className="fh-3col">
          <FHCard title="Shared Expenses by Category" info>
            <div style={{display:'flex',alignItems:'center',gap:14,flexWrap:'wrap'}}>
              {window.CMChart&&window.CMChart.CMDonut&&<div style={{width:160}}><window.CMChart.CMDonut height={160} dark={C.name==='dark'} centerValue={fmtMoneyDec(e.total)} centerLabel="Total" data={e.cats.map(c=>({value:c.value,label:c.label,color:c.color}))}/></div>}
              <div style={{flex:1,minWidth:140,display:'flex',flexDirection:'column',gap:8}}>
                {e.cats.map((c,i)=>(
                  <div key={i} style={{display:'flex',alignItems:'center',gap:8,fontSize:12}}>
                    <span style={{width:9,height:9,borderRadius:3,background:c.color}}/>
                    <span style={{flex:1,color:C.sub}}>{c.label}</span>
                    <span className="num" style={{fontWeight:700,color:C.ink}}>{fmtMoneyDec(c.value)}</span>
                    <span className="num" style={{color:C.sub,width:38,textAlign:'right'}}>{c.pct}%</span>
                  </div>
                ))}
              </div>
            </div>
          </FHCard>
          <FHCard title="Monthly Trend" info right={<window.FHSelect options={['6 Months','1 Year']} value="6 Months" onChange={()=>{}}/>}>
            <FHLine height={210} money x={e.trend.x} series={[{name:'Spending',data:e.trend.series,color:C.emerald,dots:true}]}/>
          </FHCard>
          <FHCard title="Budget Progress" info right={<window.FHSelect options={['This Month','Last Month']} value="This Month" onChange={()=>{}}/>}>
            <div style={{display:'flex',alignItems:'center',gap:16,flexWrap:'wrap'}}>
              <FHDonut value={e.budget.pct} size={120} label={e.budget.pct+'%'} sub={'of $'+e.budget.budget.toLocaleString()} color={C.emerald}/>
              <div style={{flex:1,minWidth:130,display:'flex',flexDirection:'column',gap:10}}>
                {[['Spent',e.budget.spent,C.emerald],['Remaining',e.budget.remaining,C.sub],['Budget',e.budget.budget,C.blue]].map((r,i)=>(
                  <div key={i} style={{display:'flex',alignItems:'center',gap:8,fontSize:12.5}}><span style={{width:9,height:9,borderRadius:3,background:r[2]}}/><span style={{flex:1,color:C.sub}}>{r[0]}</span><span className="num" style={{fontWeight:800,color:C.ink}}>{fmtMoneyDec(r[1])}</span></div>
                ))}
              </div>
            </div>
          </FHCard>
        </div>
        <div style={{display:'grid',gridTemplateColumns:'1.7fr 1fr',gap:16,alignItems:'start'}} className="fh-2col">
          <FHCard title="Shared Expenses" right={<button style={btn(C,true)}><I.Plus size={15}/>Add Expense</button>}>
            <div style={{fontSize:12.5,color:C.sub,marginTop:-6,marginBottom:12}}>All shared expenses tracked for your family.</div>
            <div style={{overflowX:'auto'}}>
              <table style={{width:'100%',borderCollapse:'collapse',minWidth:660}}>
                <thead><tr>{['Date','Description','Category','Paid By','Amount','Split','Status',''].map((h,i)=><th key={i} style={{textAlign:i===4?'right':'left',fontSize:11,fontWeight:800,letterSpacing:'.04em',textTransform:'uppercase',color:C.mut,padding:'0 10px 12px'}}>{h}</th>)}</tr></thead>
                <tbody>
                  {e.rows.map((r,i)=>(
                    <tr key={i} style={{borderTop:'1px solid '+C.line}}>
                      <td style={{padding:'12px 10px',fontSize:12.5,color:C.sub,whiteSpace:'nowrap'}}>{r.date}</td>
                      <td style={{padding:'12px 10px',fontSize:13,fontWeight:600,color:C.ink}}>{r.desc}</td>
                      <td style={{padding:'12px 10px'}}><Pill color={CATC[r.cat]||C.sub}>{r.cat}</Pill></td>
                      <td style={{padding:'12px 10px'}}><div style={{display:'flex',alignItems:'center',gap:8}}><Avatar name={r.by} color={C.emerald} size={26}/><span style={{fontSize:12.5,color:C.ink,whiteSpace:'nowrap'}}>{r.by}</span></div></td>
                      <td style={{padding:'12px 10px',textAlign:'right'}}><span className="num" style={{fontSize:13,fontWeight:800,color:C.ink}}>{fmtMoneyDec(r.amount)}</span></td>
                      <td style={{padding:'12px 10px',fontSize:12,color:C.sub,whiteSpace:'nowrap'}}>{r.split}</td>
                      <td style={{padding:'12px 10px'}}><Pill color={STATUSC[r.status]||C.sub}>{r.status}</Pill></td>
                      <td style={{padding:'12px 10px',textAlign:'right'}}><I.Dots size={16} style={{color:C.mut,cursor:'pointer'}}/></td>
                    </tr>
                  ))}
                </tbody>
              </table>
            </div>
            <div style={{textAlign:'center',marginTop:14}}><span style={{fontSize:13,color:C.emerald,fontWeight:700,cursor:'pointer'}}>View all expenses →</span></div>
          </FHCard>
          <div style={{display:'flex',flexDirection:'column',gap:16}}>
            <FHCard title="Top Contributors" info right={<span style={{fontSize:11,color:C.sub}}>This Month</span>}>
              {e.contributors.map((c,i)=>(
                <div key={i} style={{display:'flex',alignItems:'center',gap:11,padding:'9px 0'}}>
                  <Avatar name={c.name} color={c.color} size={30}/>
                  <div style={{flex:1,minWidth:0}}><div style={{fontSize:12.5,fontWeight:600,color:C.ink}}>{c.name}</div><div style={{marginTop:4}}><FHBar pct={c.pct*2} color={c.color} height={5}/></div></div>
                  <div style={{textAlign:'right'}}><div className="num" style={{fontSize:12.5,fontWeight:800,color:C.ink}}>{fmtMoneyDec(c.amount)}</div><div style={{fontSize:10.5,color:C.sub}}>{c.pct}%</div></div>
                </div>
              ))}
              <div style={{textAlign:'center',marginTop:8}}><span style={{fontSize:12.5,color:C.emerald,fontWeight:700,cursor:'pointer'}}>View all contributors →</span></div>
            </FHCard>
            <FHCard title="Recent Activity" info right={<span style={{fontSize:12,color:C.emerald,fontWeight:700,cursor:'pointer'}}>View all</span>}>
              {[['Groceries - Walmart marked as paid','May 20, 2024 at 6:45 PM','By Sarah',C.emerald,'Check'],['New expense added: Electricity Bill','May 19, 2024 at 9:12 AM','By Alex',C.blue,'Plus'],['Water Bill payment is outstanding','May 8, 2024 at 8:30 AM','By System',C.amber,'Info']].map((r,i)=>(
                <div key={i} style={{display:'flex',gap:11,padding:'11px 0',borderBottom:i<2?'1px solid '+C.line:'none'}}>
                  <span style={{width:30,height:30,flex:'0 0 30px',borderRadius:9,background:hexA(r[3],0.14),color:r[3],display:'flex',alignItems:'center',justifyContent:'center'}}>{React.createElement(I[r[4]]||I.Info,{size:15})}</span>
                  <div style={{flex:1}}><div style={{fontSize:12.5,color:C.ink,fontWeight:600,lineHeight:1.4}}>{r[0]}</div><div style={{fontSize:11,color:C.sub,marginTop:1}}>{r[1]} · {r[2]}</div></div>
                </div>
              ))}
            </FHCard>
          </div>
        </div>
      </div>
    );
  }
  window.FwhExpenses = FwhExpenses;

  /* ===================== DOCUMENTS ===================== */
  function FwhDocuments({ D }){
    const C = useC(); const { FHCard, FHBar } = window;
    const d = D.documents;
    const EXTC = { pdf:C.red, xls:C.emerald, doc:C.blue, img:C.purple };
    const FileIcon = ({ext}) => <span style={{width:34,height:34,flex:'0 0 34px',borderRadius:9,background:hexA(EXTC[ext]||C.sub,0.14),color:EXTC[ext]||C.sub,display:'flex',alignItems:'center',justifyContent:'center'}}><I.File size={16}/></span>;
    const CATC = { Mortgages:C.amber, Investments:C.blue, Insurance:C.purple, Legal:C.emerald, Taxes:C.teal, Planning:C.blue, Debts:C.red, Property:C.pink||'#E0568A' };
    return (
      <div style={{display:'flex',flexDirection:'column',gap:18}}>
        <div style={{display:'grid',gridTemplateColumns:'repeat(5,1fr)',gap:14}} className="fh-kpi6">{d.kpis.map((k,i)=><Kpi key={i} k={k}/>)}</div>
        <div style={{display:'grid',gridTemplateColumns:'1fr 320px',gap:16,alignItems:'start'}} className="fh-2col">
          <FHCard title="All Documents" right={<div style={{display:'flex',gap:9}}><button style={btn(C,false)}><I.File size={15}/>Upload Document</button><button style={btn(C,true)}><I.Plus size={15}/>New Folder</button></div>}>
            <div style={{fontSize:12.5,color:C.sub,marginTop:-6,marginBottom:14}}>Store, organize, and manage important family documents.</div>
            <div style={{display:'flex',gap:10,marginBottom:14,flexWrap:'wrap'}}>
              <div style={{position:'relative',flex:1,minWidth:180}}><I.Search size={15} style={{position:'absolute',left:12,top:11,color:C.mut}}/><input placeholder="Search documents…" style={{width:'100%',padding:'10px 12px 10px 35px',borderRadius:10,border:'1px solid '+C.line,background:C.panel,color:C.ink,fontFamily:'inherit',fontSize:13}}/></div>
              {['All Categories','All Owners','All Tags'].map((t,i)=><span key={i} style={{display:'inline-flex',alignItems:'center',gap:6,border:'1px solid '+C.line2,borderRadius:10,padding:'9px 12px',fontSize:12.5,fontWeight:600,color:C.ink,cursor:'pointer'}}>{t}<I.Chevron size={13}/></span>)}
            </div>
            <div style={{overflowX:'auto'}}>
              <table style={{width:'100%',borderCollapse:'collapse',minWidth:680}}>
                <thead><tr>{['Name','Category','Uploaded By','Date Added','Expiry Date','Shared With',''].map((h,i)=><th key={i} style={{textAlign:'left',fontSize:11,fontWeight:800,letterSpacing:'.04em',textTransform:'uppercase',color:C.mut,padding:'0 10px 12px'}}>{h}</th>)}</tr></thead>
                <tbody>
                  {d.rows.map((r,i)=>(
                    <tr key={i} style={{borderTop:'1px solid '+C.line}}>
                      <td style={{padding:'12px 10px'}}><div style={{display:'flex',alignItems:'center',gap:11}}><FileIcon ext={r.ext}/><div style={{minWidth:0}}><div style={{fontSize:13,fontWeight:600,color:C.ink,whiteSpace:'nowrap'}}>{r.name}</div><div style={{fontSize:11,color:C.sub}}>{r.size}</div></div></div></td>
                      <td style={{padding:'12px 10px'}}><Pill color={CATC[r.cat]||C.sub}>{r.cat}</Pill></td>
                      <td style={{padding:'12px 10px'}}><div style={{display:'flex',alignItems:'center',gap:8}}><Avatar name={r.by} color={C.emerald} size={26}/><span style={{fontSize:12.5,color:C.ink,whiteSpace:'nowrap'}}>{r.by}</span></div></td>
                      <td style={{padding:'12px 10px',fontSize:12,color:C.sub,whiteSpace:'nowrap'}}>{r.added}<div style={{fontSize:11}}>{r.time}</div></td>
                      <td style={{padding:'12px 10px',fontSize:12,whiteSpace:'nowrap',color:r.expiry?C.amber:C.mut}}>{r.expiry||'—'}</td>
                      <td style={{padding:'12px 10px'}}><span style={{display:'inline-flex',alignItems:'center',gap:5,fontSize:12,color:C.sub}}><I.User size={13}/>{r.shared}</span></td>
                      <td style={{padding:'12px 10px',textAlign:'right'}}><I.Dots size={16} style={{color:C.mut,cursor:'pointer'}}/></td>
                    </tr>
                  ))}
                </tbody>
              </table>
            </div>
            <div style={{display:'flex',alignItems:'center',justifyContent:'space-between',marginTop:14,flexWrap:'wrap',gap:10}}>
              <div style={{display:'flex',gap:6}}>{['‹','1','2','3','…','6','›'].map((p,i)=><span key={i} style={{minWidth:30,height:30,display:'inline-flex',alignItems:'center',justifyContent:'center',borderRadius:8,border:'1px solid '+C.line,fontSize:12.5,fontWeight:700,color:p==='1'?'#fff':C.ink,background:p==='1'?C.emDeep:'transparent',cursor:'pointer'}}>{p}</span>)}</div>
              <span style={{fontSize:12.5,color:C.sub}}>Showing 1 to 8 of 48 documents</span>
            </div>
          </FHCard>
          <div style={{display:'flex',flexDirection:'column',gap:16}}>
            <FHCard title="Document Categories">
              <div style={{fontSize:12,color:C.sub,marginTop:-4,marginBottom:10}}>Manage and browse by category.</div>
              {d.cats.map((c,i)=>(
                <div key={i} style={{display:'flex',alignItems:'center',gap:10,padding:'8px 0',borderBottom:i<d.cats.length-1?'1px solid '+C.line:'none'}}>
                  <span style={{width:28,height:28,flex:'0 0 28px',borderRadius:8,background:hexA(c.color,0.14),color:c.color,display:'flex',alignItems:'center',justifyContent:'center'}}>{React.createElement(window.FHIcon,{name:c.icon,size:14})}</span>
                  <span style={{flex:1,fontSize:12.5,color:C.ink,fontWeight:600}}>{c.label}</span>
                  <span className="num" style={{fontSize:12.5,fontWeight:800,color:C.sub}}>{c.count}</span>
                </div>
              ))}
              <div style={{textAlign:'center',marginTop:10}}><span style={{fontSize:12.5,color:C.emerald,fontWeight:700,cursor:'pointer'}}>View all categories →</span></div>
            </FHCard>
            <FHCard title="Storage Overview">
              <div style={{fontSize:12.5,color:C.sub,marginBottom:8}}>You're using {d.storage.used} GB of {d.storage.total} GB ({d.storage.pct}%)</div>
              <FHBar pct={d.storage.pct} color={C.emerald} height={9}/>
              <div style={{textAlign:'center',marginTop:12}}><span style={{fontSize:12.5,color:C.emerald,fontWeight:700,cursor:'pointer'}}>Manage Storage →</span></div>
            </FHCard>
            <FHCard title="Recent Activity" right={<span style={{fontSize:12,color:C.emerald,fontWeight:700,cursor:'pointer'}}>View all</span>}>
              {d.recent.map((r,i)=>(
                <div key={i} style={{display:'flex',gap:11,padding:'9px 0',borderBottom:i<d.recent.length-1?'1px solid '+C.line:'none'}}>
                  <FileIcon ext={r.ext}/>
                  <div style={{flex:1,minWidth:0}}><div style={{fontSize:12.5,fontWeight:600,color:C.ink,whiteSpace:'nowrap',overflow:'hidden',textOverflow:'ellipsis'}}>{r.name}</div><div style={{fontSize:11,color:C.sub}}>{r.sub||('Uploaded by '+r.by)}</div></div>
                  <span style={{fontSize:11,color:C.sub,whiteSpace:'nowrap'}}>{r.when}</span>
                </div>
              ))}
            </FHCard>
          </div>
        </div>
      </div>
    );
  }
  window.FwhDocuments = FwhDocuments;

  /* ===================== PERMISSIONS ===================== */
  function FwhPermissions({ D }){
    const C = useC(); const { FHCard, FHBar } = window;
    const p = D.permissions;
    const accessColor = a => a==='Full Access'?C.emerald:a==='View Only'?C.blue:a==='Invitation Sent'?C.amber:C.sub;
    return (
      <div style={{display:'flex',flexDirection:'column',gap:18}}>
        <div style={{display:'grid',gridTemplateColumns:'repeat(5,1fr)',gap:14}} className="fh-kpi6">{p.kpis.map((k,i)=><Kpi key={i} k={k}/>)}</div>
        <div style={{display:'grid',gridTemplateColumns:'1fr 320px',gap:16,alignItems:'start'}} className="fh-2col">
          <FHCard title="Family Member Permissions" right={<button style={btn(C,true)}><I.Settings size={14}/>Manage Roles</button>}>
            <div style={{fontSize:12.5,color:C.sub,marginTop:-6,marginBottom:14}}>Manage access levels and what each member can see and do.</div>
            <div style={{overflowX:'auto'}}>
              <table style={{width:'100%',borderCollapse:'collapse',minWidth:680}}>
                <thead><tr>{['Member','Role','Access Level','Last Active','',''].map((h,i)=><th key={i} style={{textAlign:'left',fontSize:11,fontWeight:800,letterSpacing:'.04em',textTransform:'uppercase',color:C.mut,padding:'0 10px 12px'}}>{h}</th>)}</tr></thead>
                <tbody>
                  {p.rows.map((r,i)=>(
                    <tr key={i} style={{borderTop:'1px solid '+C.line}}>
                      <td style={{padding:'13px 10px'}}><div style={{display:'flex',alignItems:'center',gap:11}}><Avatar name={r.name} color={r.avatarColor} size={38}/><div><div style={{fontSize:13,fontWeight:700,color:C.ink,display:'flex',alignItems:'center',gap:6}}>{r.name}{r.you&&<span style={{fontSize:9.5,fontWeight:800,color:C.emerald,background:hexA(C.emerald,0.14),borderRadius:999,padding:'1px 6px'}}>You</span>}</div><div style={{fontSize:11.5,color:C.sub}}>{r.email}</div></div></div></td>
                      <td style={{padding:'13px 10px'}}><div style={{fontSize:12.5,fontWeight:600,color:C.ink}}>{r.role}</div><div style={{fontSize:11,color:C.sub}}>{r.sub}</div></td>
                      <td style={{padding:'13px 10px'}}><div style={{display:'flex',alignItems:'center',gap:6,fontSize:12.5,fontWeight:700,color:accessColor(r.access)}}>{r.access==='Full Access'?<I.Lock size={14}/>:r.access==='View Only'?<I.User size={14}/>:<I.Spark size={14}/>}{r.access}</div></td>
                      <td style={{padding:'13px 10px'}}>{r.online?<span style={{fontSize:12,color:C.emerald,fontWeight:700,display:'flex',alignItems:'center',gap:5}}><span style={{width:7,height:7,borderRadius:999,background:C.emerald}}/>Online</span>:r.invited?<span style={{fontSize:12,color:C.amber,fontWeight:700}}>Pending</span>:<span style={{fontSize:12,color:C.sub}}>{r.last}</span>}<div style={{fontSize:11,color:C.sub}}>{r.online?r.last:(r.expires||'')}</div></td>
                      <td style={{padding:'13px 10px'}}>{r.invited?<button style={{...btn(C,false),padding:'6px 12px',fontSize:12}}>Resend</button>:null}</td>
                      <td style={{padding:'13px 10px',textAlign:'right'}}><I.Dots size={16} style={{color:C.mut,cursor:'pointer'}}/></td>
                    </tr>
                  ))}
                </tbody>
              </table>
            </div>
            <button style={{...btn(C,false),width:'100%',justifyContent:'center',marginTop:14,borderStyle:'dashed'}}><I.User size={15}/>Invite Family Member</button>
          </FHCard>
          <div style={{display:'flex',flexDirection:'column',gap:16}}>
            <FHCard title="Access Level Guide" right={<span style={{fontSize:12,color:C.emerald,fontWeight:700,cursor:'pointer'}}>View all roles</span>}>
              {p.accessGuide.map((g,i)=>(
                <div key={i} style={{display:'flex',gap:11,padding:'11px 0',borderBottom:i<p.accessGuide.length-1?'1px solid '+C.line:'none'}}>
                  <span style={{width:32,height:32,flex:'0 0 32px',borderRadius:9,background:hexA(g.color,0.14),color:g.color,display:'flex',alignItems:'center',justifyContent:'center'}}>{React.createElement(window.FHIcon,{name:g.icon,size:15})}</span>
                  <div style={{flex:1}}><div style={{fontSize:12.5,fontWeight:700,color:C.ink}}>{g.name}</div><div style={{fontSize:11.5,color:C.sub,lineHeight:1.45,marginTop:2}}>{g.desc}</div></div>
                </div>
              ))}
            </FHCard>
            <FHCard title="Permission Activity" right={<span style={{fontSize:12,color:C.emerald,fontWeight:700,cursor:'pointer'}}>View all</span>}>
              {p.activity.map((a,i)=>(
                <div key={i} style={{display:'flex',gap:11,padding:'10px 0',borderBottom:i<p.activity.length-1?'1px solid '+C.line:'none'}}>
                  <span style={{width:28,height:28,flex:'0 0 28px',borderRadius:8,background:hexA(a.color,0.14),color:a.color,display:'flex',alignItems:'center',justifyContent:'center'}}>{a.type==='grant'?<I.Plus size={14}/>:a.type==='invite'?<I.User size={14}/>:<I.User size={14}/>}</span>
                  <div style={{flex:1}}><div style={{fontSize:12,color:C.ink,fontWeight:600,lineHeight:1.4}}>{a.text}</div><div style={{fontSize:10.5,color:C.sub,marginTop:1}}>{a.when}</div></div>
                  <span style={{fontSize:11,color:C.sub}}>By {a.by}</span>
                </div>
              ))}
            </FHCard>
            <FHCard title="Security & Privacy" right={<span style={{fontSize:11,color:C.emerald,fontWeight:700,display:'inline-flex',alignItems:'center',gap:4}}><I.Shield size={13}/>All Secure</span>}>
              <div style={{fontSize:12.5,color:C.sub,lineHeight:1.5}}>Your family data is encrypted and access is secured with bank-level protection.</div>
            </FHCard>
          </div>
        </div>
        <FHCard title="What Members Can Access" info>
          <div style={{fontSize:12.5,color:C.sub,marginTop:-6,marginBottom:14}}>Overview of permissions across key areas.</div>
          <div style={{display:'grid',gridTemplateColumns:'repeat(6,1fr)',gap:14}} className="fh-kpi6">
            {p.whatAccess.map((w,i)=>(
              <div key={i} style={{textAlign:'center'}}>
                <span style={{width:38,height:38,borderRadius:11,background:hexA(C.emerald,0.13),color:C.emerald,display:'inline-flex',alignItems:'center',justifyContent:'center',marginBottom:8}}>{React.createElement(window.FHIcon,{name:w.icon,size:18})}</span>
                <div style={{fontSize:12.5,fontWeight:700,color:C.ink}}>{w.label}</div>
                <div style={{fontSize:11,color:C.sub,margin:'2px 0 7px'}}>{w.members}/{w.total} members</div>
                <FHBar pct={w.members/w.total*100} color={C.emerald} height={5}/>
              </div>
            ))}
          </div>
        </FHCard>
      </div>
    );
  }
  window.FwhPermissions = FwhPermissions;
})();
