// mnm-empresa.jsx — Empresa shell + all sections (Resumen, Financiero, Transacciones, Productos, Hallazgos, Plan)
const { useState, useEffect, useRef } = React;

/* ─── SHARED GLASS CARD HELPER ─────────────────────────────────────────── */
function GCard({ children, style, pad }) {
  return (
    <div style={Object.assign({
      background:'var(--glass-bg)', backdropFilter:'var(--glass-blur)',
      WebkitBackdropFilter:'var(--glass-blur)', border:'0.5px solid var(--glass-border)',
      boxShadow:'var(--glass-shadow)', borderRadius:'var(--radius-card)',
      padding: pad !== undefined ? pad : '18px 20px',
      marginBottom:'14px',
    }, style)}>{children}</div>
  );
}

/* ─── RESUMEN EJECUTIVO ──────────────────────────────────────────────────── */
const AI_SUMMARIES = {
  A: {
    para: 'Tu restaurante generó $12,400 este mes y está ganando dinero — eso es bueno. Sin embargo, estás tardando más en cobrarle a tus clientes: pasaste de 32 a 58 días de cobro. Si no lo corriges, podrías quedarte sin caja en unas semanas aunque tengas ventas. El canal delivery tampoco te está dejando margen real después de las comisiones.',
    bullets: [
      {icon:null, txt:'Ingresos subieron 12% vs el mes pasado', sev:'green'},
      {icon:null, txt:'Tardas el doble en cobrar que hace un mes', sev:'yellow'},
      {icon:null, txt:'El canal delivery cubre apenas los costos', sev:'red'},
    ],
  },
  B: {
    para: 'LogiSaaS tuvo un mes sólido: $16,000 de ingresos recurrentes y un margen bruto del 85%. La retención de clientes se mantiene alta. Sin embargo, el costo de adquisición subió un 5% — si esto continúa, el payback period se alargará.',
    bullets: [
      {icon:null, txt:'MRR creció 8% — crecimiento consistente', sev:'green'},
      {icon:null, txt:'Margen bruto del 85% — saludable para SaaS', sev:'green'},
      {icon:null, txt:'CAC subió $10 — monitorear tendencia', sev:'yellow'},
    ],
  },
  C: {
    para: 'Consultoría RRHH aún no tiene ingresos registrados. Con un burn rate de $950/mes y $6,460 en caja, tienes aproximadamente 6.8 meses de runway. Es un buen momento para validar tu primer cliente y comenzar a generar ingresos.',
    bullets: [
      {icon:null, txt:'Runway de 6.8 meses — tiempo suficiente para validar', sev:'green'},
      {icon:null, txt:'Sin ingresos — fase de validación activa', sev:'yellow'},
      {icon:null, txt:'1 POC activo — foco en cerrarlo', sev:'yellow'},
    ],
  },
};

const BULLET_ICON = {
  green:  function(){return <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><circle cx="7" cy="7" r="5.5" stroke="#16A34A" strokeWidth="1.4"/><path d="M4.5 7l2 2 3-3" stroke="#16A34A" strokeWidth="1.4" strokeLinecap="round" strokeLinejoin="round"/></svg>;},
  yellow: function(){return <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M7 2L13 12H1L7 2Z" stroke="#D97706" strokeWidth="1.3" strokeLinejoin="round"/><path d="M7 6v2.5" stroke="#D97706" strokeWidth="1.3" strokeLinecap="round"/><circle cx="7" cy="10" r=".6" fill="#D97706"/></svg>;},
  red:    function(){return <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><circle cx="7" cy="7" r="5.5" stroke="#DC2626" strokeWidth="1.4"/><path d="M4.5 4.5l5 5M9.5 4.5l-5 5" stroke="#DC2626" strokeWidth="1.4" strokeLinecap="round"/></svg>;},
};
const BULLET_COLOR = {green:'#16A34A',yellow:'#D97706',red:'#DC2626'};

function ResumenSection({ company, setSection }) {
  const summary = AI_SUMMARIES[company.id] || AI_SUMMARIES.A;
  const kpis = (APP_DATA.getPeriod('Diciembre 2024')).kpis;
  const [regenerating, setRegenerating] = useState(false);

  const handleRegen = () => {
    setRegenerating(true);
    setTimeout(() => setRegenerating(false), 2000);
  };

  return (
    <div className="resumen-stack" style={{padding:'20px 24px', maxWidth:'900px', display:'flex', flexDirection:'column'}}>
      {/* AI summary */}
      <div className="resumen-ai">
      <GCard>
        <div style={{display:'flex', justifyContent:'space-between', alignItems:'flex-start', marginBottom:'14px'}}>
          <div style={{display:'flex', alignItems:'center', gap:'8px'}}>
            <div style={{width:'24px',height:'24px',borderRadius:'50%',background:'var(--glass-bg-atmo)',backdropFilter:'var(--glass-blur)',border:'0.5px solid var(--glass-border)',display:'flex',alignItems:'center',justifyContent:'center',fontSize:'12px'}}>✦</div>
            <span style={{fontSize:'10px',fontWeight:500,letterSpacing:'0.08em',textTransform:'uppercase',color:'var(--t3)'}}>Resumen ejecutivo · IA</span>
          </div>
          <button onClick={handleRegen} disabled={regenerating} style={{display:'flex',alignItems:'center',gap:'5px',padding:'4px 10px',borderRadius:'var(--radius-tag)',background:'var(--glass-bg)',backdropFilter:'var(--glass-blur)',border:'0.5px solid rgba(249,115,22,0.2)',color:'var(--t3)',fontSize:'11px',cursor:'pointer',fontFamily:'var(--font)'}}>
            {regenerating ? <span style={{width:'10px',height:'10px',borderRadius:'50%',border:'1.5px solid var(--t3)',borderTopColor:'transparent',animation:'spin 0.9s linear infinite',display:'inline-block'}}/> : '↻'}
            Regenerar
          </button>
        </div>
        {regenerating ? (
          <div style={{display:'flex',gap:'8px',alignItems:'flex-start',padding:'8px 0'}}>
            <div style={{flex:1}}>
              {[0,1,2].map(i=><div key={i} style={{height:'13px',background:'var(--glass-bg-atmo)',borderRadius:'4px',marginBottom:'8px',width:i===2?'60%':'100%',animation:`recBlink 1.2s ${i*0.2}s ease infinite`}}/>)}
            </div>
          </div>
        ) : (
          <>
            <p style={{fontSize:'13.5px',color:'var(--t1)',lineHeight:1.7,marginBottom:'16px',fontFamily:'var(--font)'}}>{summary.para}</p>
            <div style={{display:'flex',flexDirection:'column',gap:'7px',marginBottom:'14px'}}>
              {summary.bullets.map((b,i) => (
                <div key={i} style={{display:'flex',alignItems:'center',gap:'10px',padding:'8px 12px',background:`${BULLET_COLOR[b.sev]}10`,borderRadius:'var(--radius-sm)',border:`0.5px solid ${BULLET_COLOR[b.sev]}30`}}>
                  <span style={{lineHeight:0,flexShrink:0}}>{BULLET_ICON[b.sev]&&React.createElement(BULLET_ICON[b.sev])}</span>
                  <span style={{fontSize:'12.5px',color:'var(--t1)'}}>{b.txt}</span>
                </div>
              ))}
            </div>
            <button onClick={()=>setSection('hallazgos')} style={{fontSize:'12px',color:'var(--t2)',background:'none',border:'none',cursor:'pointer',fontFamily:'var(--font)',padding:0,textDecoration:'underline',textDecorationColor:'var(--border-2)'}}>Ver hallazgos completos →</button>
          </>
        )}
      </GCard>
      </div>

      {/* KPI cards */}
      <div className="resumen-kpis">
      <div style={{marginBottom:'6px',display:'flex',justifyContent:'space-between',alignItems:'center'}}>
        <span style={{fontSize:'10px',fontWeight:500,letterSpacing:'0.08em',textTransform:'uppercase',color:'var(--t3)'}}>Números clave</span>
        <div style={{display:'flex',gap:'4px'}}>
          {['Cash','Accrual'].map(m=><button key={m} style={{padding:'4px 10px',borderRadius:'var(--radius-tag)',background:m==='Cash'?'var(--glass-bg-atmo)':'transparent',border:m==='Cash'?'0.5px solid var(--glass-border)':'none',fontSize:'11px',fontWeight:500,color:'var(--t2)',cursor:'pointer',fontFamily:'var(--font)'}}>{m}</button>)}
        </div>
      </div>
      <div style={{display:'flex',flexWrap:'wrap',gap:'10px'}}>
        {kpis.map(k=><KPICard key={k.id} kpi={k}/>)}
      </div>
      </div>
    </div>
  );
}

/* ─── TRANSACCIONES SECTION ──────────────────────────────────────────────── */
const TXS_FULL = {
  A:[
    {id:1,fecha:'22 may',tipo:'gasto',  cat:'Insumos',   desc:'Compra semanal insumos',  monto:'−$840',    origen:'Manual',  origenColor:'var(--t3)'},
    {id:2,fecha:'21 may',tipo:'ingreso',cat:'Ventas',    desc:'Cierre caja mostrador',   monto:'+$1,240',  origen:'Manual',  origenColor:'var(--t3)'},
    {id:3,fecha:'20 may',tipo:'ingreso',cat:'Delivery',  desc:'Liquidación iFood',        monto:'+$380',    origen:'Integr.', origenColor:'var(--s-green)'},
    {id:4,fecha:'18 may',tipo:'gasto',  cat:'Servicios', desc:'Gas y electricidad',       monto:'−$210',    origen:'WA',      origenColor:'#25D366'},
    {id:5,fecha:'17 may',tipo:'ingreso',cat:'Catering',  desc:'Evento corporativo',       monto:'+$1,800',  origen:'Manual',  origenColor:'var(--t3)'},
    {id:6,fecha:'15 may',tipo:'gasto',  cat:'Nómina',    desc:'Pago quincenal equipo',   monto:'−$3,400',  origen:'Manual',  origenColor:'var(--t3)'},
    {id:7,fecha:'12 may',tipo:'ingreso',cat:'Ventas',    desc:'Cierre caja mostrador',   monto:'+$1,180',  origen:'Manual',  origenColor:'var(--t3)'},
    {id:8,fecha:'10 may',tipo:'gasto',  cat:'Renta',     desc:'Alquiler local mayo',     monto:'−$3,200',  origen:'Manual',  origenColor:'var(--t3)'},
  ],
  B:[
    {id:1,fecha:'22 may',tipo:'ingreso',cat:'Suscripciones',desc:'Nuevos clientes',     monto:'+$897',    origen:'Integr.', origenColor:'var(--s-green)'},
    {id:2,fecha:'19 may',tipo:'gasto',  cat:'Infraestructura',desc:'AWS mensual',       monto:'−$340',    origen:'Manual',  origenColor:'var(--t3)'},
    {id:3,fecha:'15 may',tipo:'gasto',  cat:'Nómina',    desc:'Equipo de ingeniería',   monto:'−$4,200',  origen:'Manual',  origenColor:'var(--t3)'},
  ],
  C:[],
};
const ORIG_LABELS = ['Todos','Manual','Integración','WhatsApp','CSV','Open Banking'];

function TransaccionesSection({ company }) {
  const txs = TXS_FULL[company.id] || [];
  const [filtroTipo, setFiltroTipo] = useState('todos');
  const [filtroOrigen, setFiltroOrigen] = useState('Todos');
  const [showAdd, setShowAdd] = useState(false);

  const filtered = txs.filter(tx => {
    if(filtroTipo !== 'todos' && tx.tipo !== filtroTipo) return false;
    if(filtroOrigen !== 'Todos' && !tx.origen.toLowerCase().includes(filtroOrigen.toLowerCase().slice(0,3))) return false;
    return true;
  });

  return (
    <div style={{padding:'20px 24px', maxWidth:'780px'}}>
      <div style={{display:'flex',justifyContent:'space-between',alignItems:'center',marginBottom:'16px'}}>
        <div>
          <h2 style={{fontSize:'16px',fontWeight:600,color:'var(--t1)',margin:0}}>Transacciones</h2>
          <p style={{fontSize:'11.5px',color:'var(--t3)',margin:'3px 0 0'}}>{filtered.length} registros · Mayo 2026</p>
        </div>
        <button onClick={()=>setShowAdd(true)} style={{padding:'8px 16px',borderRadius:'var(--radius-tag)',background:'var(--accent)',border:'none',color:'var(--accent-text)',fontSize:'12px',fontWeight:500,cursor:'pointer',fontFamily:'var(--font)'}}>+ Agregar</button>
      </div>

      {/* Filters */}
      <div style={{display:'flex',gap:'8px',marginBottom:'14px',flexWrap:'wrap'}}>
        <div style={{display:'flex',gap:'2px',padding:'3px',background:'var(--glass-bg)',backdropFilter:'var(--glass-blur)',border:'0.5px solid var(--glass-border)',borderRadius:'var(--radius-tag)'}}>
          {['todos','ingreso','gasto'].map(f=>(
            <button key={f} onClick={()=>setFiltroTipo(f)} style={{padding:'5px 12px',borderRadius:'var(--radius-tag)',background:filtroTipo===f?'var(--glass-bg-atmo)':'transparent',border:'none',fontSize:'11.5px',fontWeight:filtroTipo===f?600:400,color:filtroTipo===f?'var(--t1)':'var(--t3)',cursor:'pointer',fontFamily:'var(--font)',transition:'all 0.12s'}}>
              {f==='todos'?'Todos':f.charAt(0).toUpperCase()+f.slice(1)}s
            </button>
          ))}
        </div>
        <select value={filtroOrigen} onChange={e=>setFiltroOrigen(e.target.value)} style={{padding:'7px 12px',borderRadius:'var(--radius-tag)',fontSize:'11.5px',background:'var(--glass-bg)',backdropFilter:'var(--glass-blur)',border:'0.5px solid var(--glass-border)'}}>
          {ORIG_LABELS.map(o=><option key={o}>{o}</option>)}
        </select>
      </div>

      {txs.length === 0 ? (
        <GCard style={{textAlign:'center',padding:'40px'}}>
          <p style={{fontSize:'13px',color:'var(--t3)',marginBottom:'12px'}}>Sin transacciones aún.</p>
          <button onClick={()=>setShowAdd(true)} style={{padding:'9px 20px',borderRadius:'var(--radius-tag)',background:'var(--accent)',border:'none',color:'var(--accent-text)',fontSize:'12.5px',fontWeight:500,cursor:'pointer',fontFamily:'var(--font)'}}>+ Agregar primera transacción</button>
        </GCard>
      ) : (
        <GCard pad="0" style={{overflow:'hidden'}}>
          {filtered.map((tx,i)=>(
            <div key={tx.id} style={{padding:'12px 18px',display:'flex',alignItems:'center',gap:'12px',borderBottom:i<filtered.length-1?'0.5px solid var(--border)':'none',transition:'background 0.1s'}}
              onMouseEnter={e=>e.currentTarget.style.background='var(--glass-bg-atmo)'}
              onMouseLeave={e=>e.currentTarget.style.background='transparent'}>
              <div style={{width:'32px',height:'32px',borderRadius:'10px',background:tx.tipo==='ingreso'?'rgba(22,163,74,0.12)':'rgba(220,38,38,0.10)',display:'flex',alignItems:'center',justifyContent:'center',flexShrink:0}}>
                <svg width="13" height="13" viewBox="0 0 13 13" fill="none"><path d={tx.tipo==='ingreso'?'M6.5 10V3M4 5.5L6.5 3l2.5 2.5':'M6.5 3v7M4 7.5L6.5 10l2.5-2.5'} stroke={tx.tipo==='ingreso'?'#16A34A':'#DC2626'} strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"/></svg>
              </div>
              <div style={{flex:1,minWidth:0}}>
                <p style={{fontSize:'13px',fontWeight:500,color:'var(--t1)',margin:'0 0 2px',overflow:'hidden',textOverflow:'ellipsis',whiteSpace:'nowrap'}}>{tx.desc}</p>
                <div style={{display:'flex',gap:'8px',alignItems:'center'}}>
                  <span style={{fontSize:'11px',color:'var(--t3)'}}>{tx.fecha}</span>
                  <span style={{fontSize:'11px',color:'var(--t3)'}}>·</span>
                  <span style={{fontSize:'11px',color:'var(--t3)'}}>{tx.cat}</span>
                  <span style={{fontSize:'10px',fontWeight:500,padding:'1px 7px',borderRadius:'var(--radius-tag)',background:'var(--glass-bg-atmo)',color:tx.origenColor,border:'0.5px solid var(--glass-border)'}}>{tx.origen}</span>
                </div>
              </div>
              <span style={{fontFamily:'var(--font-mono)',fontSize:'14px',fontWeight:500,color:tx.tipo==='ingreso'?'#16A34A':'#DC2626',flexShrink:0}}>{tx.monto}</span>
              <button style={{background:'none',border:'none',cursor:'pointer',color:'var(--t3)',fontSize:'16px',opacity:0,transition:'opacity 0.1s',padding:'2px 6px'}}
                onMouseEnter={e=>e.currentTarget.style.opacity=1}
                onMouseLeave={e=>e.currentTarget.style.opacity=0}>⋯</button>
            </div>
          ))}
        </GCard>
      )}
    </div>
  );
}

/* ─── PRODUCTOS Y SERVICIOS SECTION ──────────────────────────────────────── */
function ProductosSection({ company }) {
  const products = (PRODUCTS_DATA && PRODUCTS_DATA[company.id]) || [];
  const [expanded, setExpanded] = useState(null);
  const [showCalc, setShowCalc] = useState(false);
  const [editProduct, setEditProduct] = useState(null);

  if(showCalc) return (
    <div style={{padding:'20px 24px'}}>
      <button onClick={()=>setShowCalc(false)} style={{display:'flex',alignItems:'center',gap:'6px',fontSize:'12.5px',color:'var(--accent)',background:'none',border:'none',cursor:'pointer',fontFamily:'var(--font)',padding:0,marginBottom:'14px',fontWeight:500}}>
        ← Volver a Productos
      </button>
      <CalculadoraListView setView={()=>{}}/>
    </div>
  );

  return (
    <div style={{padding:'20px 24px', maxWidth:'780px'}}>
      <div style={{display:'flex',justifyContent:'space-between',alignItems:'center',marginBottom:'16px'}}>
        <div>
          <h2 style={{fontSize:'16px',fontWeight:600,color:'var(--t1)',margin:0}}>Productos y Servicios</h2>
          <p style={{fontSize:'11.5px',color:'var(--t3)',margin:'3px 0 0'}}>{products.length} definidos · opcional</p>
        </div>
        <button onClick={()=>setShowCalc(true)} style={{padding:'8px 16px',borderRadius:'var(--radius-tag)',background:'var(--accent)',border:'none',color:'var(--accent-text)',fontSize:'12px',fontWeight:500,cursor:'pointer',fontFamily:'var(--font)'}}>+ Agregar</button>
      </div>

      {products.length === 0 ? (
        <GCard style={{textAlign:'center',padding:'40px'}}>
          <p style={{fontSize:'13px',color:'var(--t3)',marginBottom:'6px',lineHeight:1.65}}>Sin productos o servicios definidos.</p>
          <p style={{fontSize:'12px',color:'var(--t3)',marginBottom:'14px',lineHeight:1.65}}>Agrega uno para usar la Calculadora de Precios (VBP) y ver el margen por producto.</p>
          <button onClick={()=>setShowCalc(true)} style={{padding:'9px 20px',borderRadius:'var(--radius-tag)',background:'var(--accent)',border:'none',color:'var(--accent-text)',fontSize:'12.5px',fontWeight:500,cursor:'pointer',fontFamily:'var(--font)'}}>+ Agregar producto o servicio</button>
        </GCard>
      ) : (
        <div style={{display:'flex',flexDirection:'column',gap:'10px'}}>
          {products.map(p=>(
            <GCard key={p.id} pad="0" style={{overflow:'hidden',marginBottom:0}}>
              <div onClick={()=>setExpanded(expanded===p.id?null:p.id)} style={{padding:'14px 18px',cursor:'pointer',display:'flex',justifyContent:'space-between',alignItems:'center',gap:'12px'}}>
                <div style={{flex:1,minWidth:0}}>
                  <p style={{fontSize:'14px',fontWeight:600,color:'var(--t1)',margin:'0 0 5px'}}>{p.nombre}</p>
                  <div style={{display:'flex',gap:'16px',flexWrap:'wrap'}}>
                    {[['Precio','$'+p.precio,'var(--t1)'],['Costo','$'+p.costo,'var(--t2)'],['Margen',p.margen+'%',p.margen>40?'#16A34A':'#D97706']].map(r=>(
                      <span key={r[0]} style={{fontSize:'12px',color:'var(--t3)'}}>{r[0]} <strong style={{color:r[2],fontFamily:'var(--font-mono)'}}>{r[1]}</strong></span>
                    ))}
                  </div>
                </div>
                <div style={{textAlign:'right',flexShrink:0}}>
                  <p style={{fontFamily:'var(--font-mono)',fontSize:'14px',fontWeight:600,color:'#16A34A',margin:'0 0 2px'}}>${p.revenue.toLocaleString('es')}</p>
                  <p style={{fontSize:'10px',color:'var(--t3)',margin:0}}>revenue mayo</p>
                </div>
                <span style={{color:'var(--t3)',transition:'transform 0.2s',transform:expanded===p.id?'rotate(180deg)':'',lineHeight:0,flexShrink:0}}><Ic.Chevron/></span>
              </div>
              {expanded===p.id && (
                <div style={{padding:'0 18px 16px',borderTop:'0.5px solid var(--border)'}}>
                  <div style={{display:'flex',gap:'8px',marginTop:'12px'}}>
                    <button onClick={()=>setShowCalc(true)} style={{padding:'7px 14px',borderRadius:'var(--radius-tag)',background:'var(--glass-bg-atmo)',border:'0.5px solid var(--glass-border)',color:'var(--accent)',fontSize:'12px',fontWeight:500,cursor:'pointer',fontFamily:'var(--font)'}}>Calcular precio óptimo (VBP) →</button>
                    <button style={{padding:'7px 14px',borderRadius:'var(--radius-tag)',background:'var(--glass-bg)',border:'0.5px solid var(--glass-border)',color:'var(--t2)',fontSize:'12px',cursor:'pointer',fontFamily:'var(--font)'}}>Editar</button>
                  </div>
                </div>
              )}
            </GCard>
          ))}
          <button onClick={()=>setShowCalc(true)} style={{padding:'10px',borderRadius:'var(--radius-tag)',background:'none',border:'1px dashed var(--border-2)',color:'var(--t3)',fontSize:'12.5px',cursor:'pointer',fontFamily:'var(--font)',marginTop:'4px'}}>+ Agregar producto o servicio</button>
        </div>
      )}
    </div>
  );
}

/* ─── EMPRESA SHELL (main component exported) ────────────────────────────── */
function EmpresaShell({ companyId, section, setSection, onBack, setView }) {
  const c = COMPANIES_DATA.find(function(x){return x.id===companyId;})||COMPANIES_DATA[0];
  const estado = ESTADO_CFG[c.estado]||ESTADO_CFG.saludable;

  const header = (
    <div style={{flexShrink:0,borderBottom:'0.5px solid var(--border)',background:'var(--glass-sidebar-bg)',backdropFilter:'var(--glass-blur)',WebkitBackdropFilter:'var(--glass-blur)'}}>
      <div style={{padding:'10px 20px',display:'flex',alignItems:'center',justifyContent:'space-between',gap:'12px',flexWrap:'wrap'}}>
        <div style={{display:'flex',alignItems:'center',gap:'10px'}}>
          <button onClick={onBack} style={{fontSize:'12px',color:'var(--accent)',background:'none',border:'none',cursor:'pointer',fontFamily:'var(--font)',display:'flex',alignItems:'center',gap:'4px',padding:0,fontWeight:500}}>
            <svg width="12" height="12" viewBox="0 0 12 12" fill="none"><path d="M8 2L4 6l4 4" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round" strokeLinejoin="round"/></svg>
            Portafolio
          </button>
          <span style={{color:'var(--border-2)'}}>›</span>
          <div style={{display:'flex',alignItems:'center',gap:'8px'}}>
            {c.logo
              ? <img src={c.logo} alt={c.nombre} style={{width:'22px',height:'22px',borderRadius:'6px',objectFit:'cover'}}/>
              : <div style={{width:'22px',height:'22px',borderRadius:'6px',background:c.color+'22',display:'flex',alignItems:'center',justifyContent:'center',fontSize:'8px',fontWeight:800,color:c.color}}>{c.initials}</div>
            }
            <span style={{fontSize:'13.5px',fontWeight:600,color:'var(--t1)'}}>{c.nombre}</span>
            <span style={{fontSize:'9.5px',fontWeight:600,padding:'2px 7px',borderRadius:'var(--radius-tag)',background:estado.bg,color:estado.c}}>{estado.label}</span>
          </div>
        </div>
        <div style={{display:'flex',gap:'6px',alignItems:'center'}}>
          <div style={{display:'flex',gap:'2px',padding:'3px',background:'var(--glass-bg)',backdropFilter:'var(--glass-blur)',border:'0.5px solid var(--glass-border)',borderRadius:'var(--radius-tag)'}}>
            {['Cash','Accrual'].map(m=><button key={m} style={{padding:'5px 11px',borderRadius:'var(--radius-tag)',background:m==='Cash'?'var(--glass-bg-atmo)':'transparent',border:m==='Cash'?'0.5px solid var(--glass-border)':'none',fontSize:'11.5px',fontWeight:m==='Cash'?600:400,color:m==='Cash'?'var(--t1)':'var(--t3)',cursor:'pointer',fontFamily:'var(--font)'}}>{m}</button>)}
          </div>
          <select style={{padding:'6px 10px',borderRadius:'var(--radius-tag)',fontSize:'11.5px',background:'var(--glass-bg)',backdropFilter:'var(--glass-blur)',border:'0.5px solid var(--glass-border)',color:'var(--t2)'}}>
            <option>Mayo 2026</option><option>Abril 2026</option><option>Q1 2026</option>
          </select>
        </div>
      </div>
    </div>
  );

  return (
    <div style={{display:'flex',flexDirection:'column',height:'100%',overflow:'hidden'}}>
      {header}
      <div style={{flex:1,overflowY:'auto'}} className="main-scroll">
        {section==='resumen'       && <ResumenSection      company={c} setSection={setSection}/>}
        {section==='estructura'    && <EstructuraTab       companyId={companyId}/>}
        {section==='financiero'    && <FinancieroTab       companyId={companyId}/>}
        {section==='transacciones' && <TransaccionesSection company={c}/>}
        {section==='productos'     && <ProductosSection    company={c}/>}
        {section==='hallazgos'     && <HallazgosView       period="Diciembre 2024" setView={setView}/>}
        {section==='plan'          && <PlanAccionView      period="Diciembre 2024" setView={setView} acciones={BASE_ACCIONES} setAcciones={()=>{}}/>}
        {section==='boveda'        && <BóvedaSection       company={c}/>}
        {section==='team'          && <TeamSection         company={c}/>}
      </div>
    </div>
  );
}

Object.assign(window, { EmpresaShell, TransaccionesSection, ProductosSection });
