/* global React */
const { useState: useStateMU, useEffect: useEffectMU, useRef: useRefMU } = React;

// Reusable phone frame
const PhoneFrame = ({ children, screenStyle = {}, style = {} }) => (
  <div className="phone" style={style}>
    <div className="phone-screen" style={screenStyle}>
      <div className="phone-notch"></div>
      {children}
    </div>
  </div>
);

// ===== App-specific mocked screens (all CSS — placeholders for real shots) =====

// Private Video Recorder — vault-style
const PVRScreen = ({ active = false }) => (
  <div className={"app-screen pvr-screen" + (active ? " active" : "")}>
    <div style={{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"4px 4px 18px",color:"#9ca3af",fontSize:11,fontFamily:"var(--font-mono)"}}>
      <span style={{color:"#10b981"}}>● ENCRYPTED</span>
      <span><Icon name="lock" size={12} stroke={2}/></span>
    </div>
    <div style={{textAlign:"center",marginBottom:14}}>
      <div style={{fontSize:11,color:"#6b7280",letterSpacing:"0.12em",textTransform:"uppercase"}}>Vault</div>
      <div style={{fontFamily:"var(--font-display)",fontSize:22,fontWeight:600,marginTop:4,color:"#fff"}}>34 clips</div>
    </div>
    <div style={{display:"grid",gridTemplateColumns:"1fr 1fr",gap:6,flex:1,overflow:"hidden"}}>
      {Array.from({length:8}).map((_,i)=>(
        <div key={i} style={{
          aspectRatio:"3/4",
          borderRadius:8,
          background:`linear-gradient(${135+i*30}deg, #064e3b, #022c22)`,
          border:"1px solid rgba(16,185,129,0.15)",
          position:"relative",
          overflow:"hidden"
        }}>
          <div style={{position:"absolute",inset:0,background:`radial-gradient(circle at ${20+i*10}% ${30+i*8}%, rgba(16,185,129,0.3), transparent 60%)`}}></div>
          <div style={{position:"absolute",bottom:4,left:6,fontSize:9,color:"#a7f3d0",fontFamily:"var(--font-mono)"}}>0:{20+i*7}</div>
          <div style={{position:"absolute",top:4,right:4,width:14,height:14,borderRadius:"50%",background:"rgba(0,0,0,0.5)",display:"grid",placeItems:"center"}}>
            <Icon name="lock" size={8} stroke={2.5}/>
          </div>
        </div>
      ))}
    </div>
    <div style={{marginTop:12,display:"flex",justifyContent:"center"}}>
      <div style={{width:50,height:50,borderRadius:"50%",background:"#10b981",display:"grid",placeItems:"center",boxShadow:"0 0 24px rgba(16,185,129,0.6)"}}>
        <div style={{width:18,height:18,borderRadius:4,background:"#022c22"}}></div>
      </div>
    </div>
  </div>
);

// Motion Clock Camera
const MCCScreen = ({ active = false }) => (
  <div className={"app-screen mcc-screen" + (active ? " active" : "")} style={{padding:"56px 0 0",background:"linear-gradient(180deg,#1a1208,#000)"}}>
    <div style={{padding:"0 16px",display:"flex",justifyContent:"space-between",color:"#fbbf24",fontSize:11,fontFamily:"var(--font-mono)"}}>
      <span>REC ●</span>
      <span>00:42:18</span>
    </div>
    <div style={{position:"relative",flex:1,margin:"12px 8px",borderRadius:12,overflow:"hidden",background:"linear-gradient(135deg,#1f1408,#0a0604)",border:"1px solid rgba(245,158,11,0.2)"}}>
      {/* Crosshairs / motion grid */}
      <div style={{position:"absolute",inset:0,backgroundImage:"linear-gradient(rgba(245,158,11,0.08) 1px,transparent 1px),linear-gradient(90deg,rgba(245,158,11,0.08) 1px,transparent 1px)",backgroundSize:"20px 20px"}}></div>
      {/* Motion box */}
      <div style={{position:"absolute",top:"35%",left:"30%",width:80,height:100,border:"2px solid #f59e0b",borderRadius:4,boxShadow:"0 0 16px rgba(245,158,11,0.6)"}}>
        <div style={{position:"absolute",top:-18,left:0,fontSize:9,color:"#fbbf24",fontFamily:"var(--font-mono)",background:"rgba(0,0,0,0.7)",padding:"2px 4px",borderRadius:2}}>MOTION 92%</div>
      </div>
      {/* Big clock */}
      <div style={{position:"absolute",bottom:14,left:14,fontFamily:"var(--font-mono)",color:"#fbbf24",fontSize:32,fontWeight:600,textShadow:"0 0 12px rgba(245,158,11,0.5)"}}>
        14:23:08
      </div>
      <div style={{position:"absolute",bottom:54,left:14,fontFamily:"var(--font-mono)",color:"rgba(251,191,36,0.6)",fontSize:10}}>MAY 8 · 2026</div>
    </div>
    <div style={{padding:"0 16px 16px",display:"flex",justifyContent:"space-around",alignItems:"center"}}>
      <div style={{padding:"8px 10px",border:"1px solid rgba(245,158,11,0.3)",borderRadius:8,fontSize:10,color:"#fbbf24",fontFamily:"var(--font-mono)"}}>4K · 60fps</div>
      <div style={{width:46,height:46,borderRadius:"50%",border:"3px solid #f59e0b",display:"grid",placeItems:"center"}}>
        <div style={{width:14,height:14,borderRadius:3,background:"#f59e0b"}}></div>
      </div>
      <div style={{padding:"8px 10px",border:"1px solid rgba(245,158,11,0.3)",borderRadius:8,fontSize:10,color:"#fbbf24",fontFamily:"var(--font-mono)"}}>AUTO</div>
    </div>
  </div>
);

// TrueTide — fitness progress
const TTScreen = ({ active = false }) => (
  <div className={"app-screen tt-screen" + (active ? " active" : "")} style={{padding:"56px 14px 16px",background:"linear-gradient(180deg,#021929,#000)"}}>
    <div style={{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:14}}>
      <div>
        <div style={{fontSize:10,color:"#67e8f9",letterSpacing:"0.12em",textTransform:"uppercase",fontFamily:"var(--font-mono)"}}>Day 84</div>
        <div style={{fontFamily:"var(--font-display)",fontSize:18,fontWeight:600,color:"#fff"}}>Cut · Week 12</div>
      </div>
      <div style={{padding:"4px 10px",borderRadius:99,background:"rgba(6,182,212,0.15)",border:"1px solid rgba(6,182,212,0.3)",fontSize:10,color:"#22d3ee",fontWeight:600}}>−14 lb</div>
    </div>
    {/* Progress comparison */}
    <div style={{display:"grid",gridTemplateColumns:"1fr 1fr",gap:6,height:180,marginBottom:14}}>
      <div style={{borderRadius:8,background:"linear-gradient(180deg,#1e3a52,#0c1e2e)",position:"relative",overflow:"hidden",border:"1px solid rgba(6,182,212,0.2)"}}>
        <div style={{position:"absolute",top:6,left:6,fontSize:9,color:"#94a3b8",fontFamily:"var(--font-mono)"}}>FEB 12</div>
        <div style={{position:"absolute",bottom:0,left:"50%",transform:"translateX(-50%)",width:60,height:120,background:"radial-gradient(ellipse at top, rgba(148,163,184,0.5), transparent 70%)",borderRadius:"30px 30px 0 0"}}></div>
      </div>
      <div style={{borderRadius:8,background:"linear-gradient(180deg,#0e3a4a,#021929)",position:"relative",overflow:"hidden",border:"1px solid rgba(6,182,212,0.4)"}}>
        <div style={{position:"absolute",top:6,left:6,fontSize:9,color:"#67e8f9",fontFamily:"var(--font-mono)"}}>MAY 8</div>
        <div style={{position:"absolute",bottom:0,left:"50%",transform:"translateX(-50%)",width:48,height:120,background:"radial-gradient(ellipse at top, rgba(34,211,238,0.6), transparent 70%)",borderRadius:"24px 24px 0 0"}}></div>
      </div>
    </div>
    {/* Trend chart */}
    <div style={{height:60,position:"relative",marginBottom:10}}>
      <svg viewBox="0 0 200 60" style={{width:"100%",height:"100%"}}>
        <defs>
          <linearGradient id="ttGrad" x1="0" y1="0" x2="0" y2="1">
            <stop offset="0" stopColor="#22d3ee" stopOpacity="0.4"/>
            <stop offset="1" stopColor="#22d3ee" stopOpacity="0"/>
          </linearGradient>
        </defs>
        <path d="M0 12 Q30 18 50 22 T100 32 T150 42 T200 50 L200 60 L0 60Z" fill="url(#ttGrad)"/>
        <path d="M0 12 Q30 18 50 22 T100 32 T150 42 T200 50" stroke="#22d3ee" strokeWidth="1.5" fill="none"/>
      </svg>
    </div>
    <div style={{display:"flex",justifyContent:"space-between",fontSize:10,color:"#64748b",fontFamily:"var(--font-mono)"}}>
      <span>184 lb</span><span>weight ↘</span><span>170 lb</span>
    </div>
  </div>
);

// Dual Camera
const DCScreen = ({ active = false }) => (
  <div className={"app-screen dc-screen" + (active ? " active" : "")} style={{padding:0,background:"#000"}}>
    <div style={{position:"absolute",top:46,left:14,right:14,display:"flex",justifyContent:"space-between",zIndex:5}}>
      <div style={{padding:"4px 10px",borderRadius:99,background:"rgba(0,0,0,0.5)",backdropFilter:"blur(8px)",fontSize:10,color:"#c084fc",fontFamily:"var(--font-mono)"}}>● 01:24</div>
      <div style={{padding:"4px 10px",borderRadius:99,background:"rgba(168,85,247,0.2)",border:"1px solid rgba(168,85,247,0.4)",fontSize:10,color:"#e9d5ff",fontWeight:600}}>DUAL</div>
    </div>
    {/* Back camera (full) */}
    <div style={{position:"absolute",inset:0,background:"linear-gradient(135deg,#2a1845,#0a0218)"}}>
      <div style={{position:"absolute",inset:0,background:"radial-gradient(ellipse at 30% 70%, rgba(168,85,247,0.3), transparent 60%)"}}></div>
      <div style={{position:"absolute",bottom:"30%",left:"50%",transform:"translateX(-50%)",width:140,height:140,borderRadius:"50%",background:"radial-gradient(circle,rgba(192,132,252,0.4),transparent 70%)",filter:"blur(20px)"}}></div>
    </div>
    {/* Front camera (PIP) */}
    <div style={{position:"absolute",top:90,right:14,width:80,height:108,borderRadius:10,overflow:"hidden",border:"2px solid rgba(192,132,252,0.5)",boxShadow:"0 8px 24px rgba(0,0,0,0.6)"}}>
      <div style={{width:"100%",height:"100%",background:"linear-gradient(160deg,#3d2b5c,#1a0d2e)"}}>
        <div style={{position:"absolute",top:"40%",left:"50%",transform:"translateX(-50%)",width:30,height:30,borderRadius:"50%",background:"rgba(192,132,252,0.4)",filter:"blur(8px)"}}></div>
      </div>
    </div>
    {/* Bottom bar */}
    <div style={{position:"absolute",bottom:0,left:0,right:0,padding:"16px",background:"linear-gradient(180deg,transparent,rgba(0,0,0,0.8))",display:"flex",justifyContent:"space-around",alignItems:"center"}}>
      <div style={{width:38,height:38,borderRadius:9,background:"rgba(255,255,255,0.1)",display:"grid",placeItems:"center"}}>
        <Icon name="switch-camera" size={18} stroke={1.8} style={{color:"#fff"}}/>
      </div>
      <div style={{width:54,height:54,borderRadius:"50%",border:"3px solid #fff",display:"grid",placeItems:"center"}}>
        <div style={{width:18,height:18,borderRadius:4,background:"#ef4444"}}></div>
      </div>
      <div style={{width:38,height:38,borderRadius:9,background:"rgba(255,255,255,0.1)",display:"grid",placeItems:"center",fontSize:10,color:"#fff",fontFamily:"var(--font-mono)"}}>4K</div>
    </div>
  </div>
);

window.PhoneFrame = PhoneFrame;
window.PVRScreen = PVRScreen;
window.MCCScreen = MCCScreen;
window.TTScreen = TTScreen;
window.DCScreen = DCScreen;
