// screens-rg.jsx — Group 5: Responsible Gambling (3 screens)

const RG_TOOLS = [
  { id:'deposit-limit', icon:'ph-arrow-down-left', title:'Deposit limits',    desc:'Set daily, weekly, or monthly deposit caps', screen:'set-limit' },
  { id:'loss-limit',   icon:'ph-chart-line-down', title:'Loss limits',        desc:'Stop losses at a set amount per period',     screen:'set-limit' },
  { id:'session',      icon:'ph-clock',           title:'Session time limit', desc:'Set a time limit per gambling session',       screen:'set-limit' },
  { id:'break',        icon:'ph-coffee',          title:'Take a break',       desc:'Pause your account for 24 hrs to 6 weeks',   screen:'set-limit' },
  { id:'exclusion',    icon:'ph-prohibit',        title:'Self-exclusion',     desc:'Exclude yourself for 6 months or longer',    screen:'self-exclusion' },
  { id:'reality',      icon:'ph-bell',            title:'Reality check',      desc:"Pop-up reminders of how long you've played", screen:'set-limit' },
];

/* ── Screen 17: RG Hub ── */
function RGHubScreen({ navigate, goBack }) {
  const last30 = { deposited: 420, netPosition: -87.50 };

  return (
    <React.Fragment>
      <BackHeader title="Stay in Control" onBack={goBack}
        rightSlot={<div style={{ width:32, height:32, borderRadius:9, background:'rgba(245,160,58,0.12)', border:'1px solid rgba(245,160,58,0.3)', display:'flex', alignItems:'center', justifyContent:'center' }}><i className="ph ph-shield-check" style={{ fontSize:16, color:'var(--color-warning)' }} /></div>} />
      <div style={{ flex:1, overflowY:'auto', background:'var(--color-bg)' }}>

        {/* Limits summary */}
        <div style={{ padding:'16px 16px 8px' }}>
          <div style={{ fontFamily:'var(--font-body)', fontSize:11, fontWeight:600, color:'var(--color-text-muted)', textTransform:'uppercase', letterSpacing:0.5, marginBottom:10 }}>Your active limits</div>
          <div style={{ display:'flex', flexDirection:'column', gap:10 }}>
            {RG_LIMITS.map(limit => (
              <div key={limit.id} style={{ background:'var(--color-surface)', borderRadius:14, border:'1px solid var(--color-border)', padding:'14px' }}>
                <div style={{ display:'flex', justifyContent:'space-between', alignItems:'center', marginBottom:8 }}>
                  <span style={{ fontFamily:'var(--font-display)', fontWeight:600, fontSize:14, color:'var(--color-text-primary)' }}>{limit.label}</span>
                  <span style={{ fontFamily:'var(--font-display)', fontWeight:600, fontSize:13, color:limit.pct>=80?'var(--color-warning)':'var(--color-text-primary)', fontVariantNumeric:'tabular-nums' }}>
                    {limit.unit === '€' ? `€${limit.value} / €${limit.max}` : `${limit.value} / ${limit.max} min`}
                  </span>
                </div>
                <LimitBar pct={limit.pct} />
                {limit.pct >= 80 && (
                  <div style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-warning)', marginTop:6 }}>You're near your {limit.label.toLowerCase()}</div>
                )}
              </div>
            ))}
          </div>
        </div>

        {/* Tools list */}
        <div style={{ padding:'16px 16px 8px' }}>
          <div style={{ fontFamily:'var(--font-body)', fontSize:11, fontWeight:600, color:'var(--color-text-muted)', textTransform:'uppercase', letterSpacing:0.5, marginBottom:10 }}>Tools & settings</div>
          <div style={{ background:'var(--color-surface)', borderRadius:14, border:'1px solid var(--color-border)', overflow:'hidden' }}>
            {RG_TOOLS.map((tool, i) => (
              <div key={tool.id} onClick={() => navigate(tool.screen)} style={{ display:'flex', alignItems:'center', gap:12, padding:'13px 16px', borderBottom:i<RG_TOOLS.length-1?'1px solid var(--color-border-subtle)':undefined, cursor:'pointer' }}>
                <div style={{ width:36, height:36, borderRadius:10, background:'rgba(245,160,58,0.1)', border:'1px solid rgba(245,160,58,0.2)', display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0 }}>
                  <i className={`ph ${tool.icon}`} style={{ fontSize:18, color:'var(--color-warning)' }} />
                </div>
                <div style={{ flex:1 }}>
                  <div style={{ fontFamily:'var(--font-body)', fontSize:13, fontWeight:500, color:'var(--color-text-primary)', marginBottom:2 }}>{tool.title}</div>
                  <div style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-text-muted)' }}>{tool.desc}</div>
                </div>
                <i className="ph ph-caret-right" style={{ fontSize:14, color:'var(--color-text-muted)' }} />
              </div>
            ))}
          </div>
        </div>

        {/* Last 30 days */}
        <div style={{ padding:'8px 16px 16px' }}>
          <div style={{ fontFamily:'var(--font-body)', fontSize:11, fontWeight:600, color:'var(--color-text-muted)', textTransform:'uppercase', letterSpacing:0.5, marginBottom:10 }}>Last 30 days</div>
          <div style={{ background:'var(--color-surface)', borderRadius:14, border:'1px solid var(--color-border)', padding:'14px', display:'flex', gap:12 }}>
            <div style={{ flex:1, textAlign:'center', padding:'8px', borderRadius:10, background:'var(--color-bg)' }}>
              <div style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-text-muted)', marginBottom:4 }}>Deposited</div>
              <div style={{ fontFamily:'var(--font-display)', fontWeight:700, fontSize:18, color:'var(--color-text-primary)' }}>€{last30.deposited}</div>
            </div>
            <div style={{ flex:1, textAlign:'center', padding:'8px', borderRadius:10, background:'var(--color-bg)' }}>
              <div style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-text-muted)', marginBottom:4 }}>Net P&L</div>
              <div style={{ fontFamily:'var(--font-display)', fontWeight:700, fontSize:18, color:'var(--color-danger)' }}>−€{Math.abs(last30.netPosition)}</div>
            </div>
          </div>
          <button style={{ width:'100%', marginTop:10, background:'none', border:'none', cursor:'pointer', fontFamily:'var(--font-body)', fontSize:12, color:'var(--color-primary)', fontWeight:500 }}>
            <i className="ph ph-download-simple" style={{ fontSize:13, marginRight:4 }} />
            Download activity statement
          </button>
        </div>

        {/* External support */}
        <div style={{ padding:'0 16px 24px' }}>
          <div style={{ fontFamily:'var(--font-body)', fontSize:11, fontWeight:600, color:'var(--color-text-muted)', textTransform:'uppercase', letterSpacing:0.5, marginBottom:10 }}>Need support?</div>
          {[{name:'GamCare', url:'gamcare.org.uk', desc:'Free counselling & support'},{name:'BeGambleAware', url:'begambleaware.org', desc:'Information & advice'}].map(org => (
            <div key={org.name} style={{ display:'flex', justifyContent:'space-between', alignItems:'center', padding:'12px 14px', background:'var(--color-surface)', border:'1px solid var(--color-border)', borderRadius:12, marginBottom:8, cursor:'pointer' }}>
              <div>
                <div style={{ fontFamily:'var(--font-body)', fontSize:13, fontWeight:600, color:'var(--color-text-primary)' }}>{org.name}</div>
                <div style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-text-muted)' }}>{org.desc}</div>
              </div>
              <i className="ph ph-arrow-square-out" style={{ fontSize:16, color:'var(--color-primary)' }} />
            </div>
          ))}
        </div>
      </div>
    </React.Fragment>
  );
}

/* ── Screen 18: Set Limit ── */
function SetLimitScreen({ navigate, goBack }) {
  const [period, setPeriod] = React.useState('weekly');
  const [limitVal, setLimitVal] = React.useState(500);
  const current = 320;
  const isIncrease = limitVal > 500;

  return (
    <React.Fragment>
      <BackHeader title="Deposit Limit" onBack={goBack} />
      <div style={{ flex:1, overflowY:'auto', background:'var(--color-bg)', padding:'16px' }}>
        {/* Current limit */}
        <div style={{ background:'var(--color-surface)', borderRadius:14, border:'1px solid var(--color-border)', padding:'14px', marginBottom:16 }}>
          <div style={{ display:'flex', justifyContent:'space-between', alignItems:'center', marginBottom:6 }}>
            <span style={{ fontFamily:'var(--font-body)', fontSize:13, color:'var(--color-text-secondary)' }}>Current {period} limit</span>
            <span style={{ fontFamily:'var(--font-display)', fontWeight:700, fontSize:16, color:'var(--color-text-primary)' }}>€500</span>
          </div>
          <LimitBar pct={64} />
          <div style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-text-muted)', marginTop:6 }}>€{current} used of €500 this week</div>
        </div>

        {/* Period tabs */}
        <div style={{ display:'flex', background:'var(--color-surface)', borderRadius:12, padding:4, marginBottom:16, border:'1px solid var(--color-border)' }}>
          {['daily','weekly','monthly'].map(p => (
            <button key={p} onClick={() => setPeriod(p)} style={{ flex:1, height:36, borderRadius:9, background:period===p?'var(--color-primary)':'transparent', border:'none', cursor:'pointer', fontFamily:'var(--font-body)', fontSize:12, fontWeight:600, color:period===p?'#fff':'var(--color-text-muted)', textTransform:'capitalize', transition:'all 0.15s' }}>{p}</button>
          ))}
        </div>

        {/* Slider + input */}
        <div style={{ background:'var(--color-surface)', borderRadius:14, border:'1px solid var(--color-border)', padding:'16px', marginBottom:16 }}>
          <label style={{ fontFamily:'var(--font-body)', fontSize:11, fontWeight:600, color:'var(--color-text-muted)', textTransform:'uppercase', letterSpacing:0.5, display:'block', marginBottom:12 }}>New limit</label>
          <div style={{ height:52, borderRadius:12, background:'var(--color-bg)', border:'1.5px solid var(--color-primary)', display:'flex', alignItems:'center', padding:'0 16px', gap:8, marginBottom:16 }}>
            <span style={{ fontFamily:'var(--font-display)', fontWeight:600, fontSize:20, color:'var(--color-text-muted)' }}>€</span>
            <input type="number" value={limitVal} onChange={e => setLimitVal(Number(e.target.value))} min={10} max={2000}
              style={{ flex:1, background:'none', border:'none', outline:'none', fontFamily:'var(--font-display)', fontWeight:700, fontSize:26, color:'var(--color-text-primary)', fontVariantNumeric:'tabular-nums' }} />
          </div>
          <input type="range" min={10} max={2000} step={10} value={limitVal} onChange={e => setLimitVal(Number(e.target.value))}
            style={{ width:'100%', accentColor:'var(--color-primary)', marginBottom:8, cursor:'pointer' }} />
          <div style={{ display:'flex', justifyContent:'space-between' }}>
            <span style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-text-muted)' }}>€10</span>
            <span style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-text-muted)' }}>€2,000</span>
          </div>
        </div>

        {/* Regulatory info */}
        {isIncrease ? (
          <div style={{ background:'var(--color-rg-bg)', borderLeft:'3px solid var(--color-warning)', border:'1px solid rgba(245,160,58,0.28)', borderRadius:12, padding:'12px 14px', marginBottom:16, display:'flex', gap:10 }}>
            <i className="ph ph-clock" style={{ fontSize:18, color:'var(--color-warning)', flexShrink:0, marginTop:1 }} />
            <div>
              <div style={{ fontFamily:'var(--font-body)', fontSize:12, fontWeight:600, color:'var(--color-text-primary)', marginBottom:3 }}>24-hour delay applies</div>
              <div style={{ fontFamily:'var(--font-body)', fontSize:11, color:'var(--color-text-secondary)', lineHeight:1.5 }}>Increases to deposit limits take effect after 24 hours — this is required by regulation to protect players.</div>
            </div>
          </div>
        ) : (
          <div style={{ background:'rgba(39,196,132,0.08)', border:'1px solid rgba(39,196,132,0.25)', borderRadius:12, padding:'12px 14px', marginBottom:16, display:'flex', gap:10 }}>
            <i className="ph ph-check-circle" style={{ fontSize:18, color:'var(--color-success)', flexShrink:0 }} />
            <div style={{ fontFamily:'var(--font-body)', fontSize:12, color:'var(--color-text-secondary)', lineHeight:1.5 }}>Decreasing a limit takes effect immediately.</div>
          </div>
        )}
        <div style={{ height:8 }} />
      </div>
      <div style={{ padding:'12px 16px 12px', background:'var(--color-nav-bg)', borderTop:'1px solid var(--color-border)', display:'flex', flexDirection:'column', gap:8 }}>
        <button onClick={goBack} style={{ width:'100%', height:52, borderRadius:12, background:'var(--color-primary)', border:'none', cursor:'pointer', fontFamily:'var(--font-body)', fontSize:15, fontWeight:600, color:'#fff' }}>
          Save limit — €{limitVal}/week
        </button>
        <button onClick={goBack} style={{ width:'100%', height:40, borderRadius:12, background:'none', border:'none', cursor:'pointer', fontFamily:'var(--font-body)', fontSize:13, color:'var(--color-danger)', fontWeight:500 }}>Remove limit</button>
      </div>
    </React.Fragment>
  );
}

/* ── Screen 19: Self-Exclusion ── */
function SelfExclusionScreen({ navigate, goBack }) {
  const [duration, setDuration] = React.useState(null);
  const [step, setStep] = React.useState(1);
  const durations = [
    { id:'6m', label:'6 months', sub:'Until December 2025' },
    { id:'1y', label:'1 year',   sub:'Until June 2026' },
    { id:'5y', label:'5 years',  sub:'Until June 2030' },
    { id:'permanent', label:'Permanent', sub:'Cannot be reversed' },
  ];
  return (
    <React.Fragment>
      <BackHeader title="Self-Exclusion" onBack={step===2?()=>setStep(1):goBack} />
      <div style={{ flex:1, overflowY:'auto', background:'var(--color-bg)', padding:'20px 16px' }}>
        {step === 1 ? (
          <React.Fragment>
            <div style={{ background:'var(--color-surface)', borderRadius:14, border:'1px solid var(--color-border)', padding:'16px', marginBottom:20 }}>
              <div style={{ fontFamily:'var(--font-display)', fontWeight:600, fontSize:16, color:'var(--color-text-primary)', marginBottom:10 }}>What self-exclusion means</div>
              {['Your account will be closed for the chosen period','You will not be able to log in, deposit, or bet','Any open bets will be settled and winnings returned','Contact us to return after your exclusion period ends'].map((p,i) => (
                <div key={i} style={{ display:'flex', gap:8, marginBottom:8 }}>
                  <i className="ph ph-info" style={{ fontSize:14, color:'var(--color-text-muted)', marginTop:2, flexShrink:0 }} />
                  <span style={{ fontFamily:'var(--font-body)', fontSize:13, color:'var(--color-text-secondary)', lineHeight:1.5 }}>{p}</span>
                </div>
              ))}
            </div>

            <div style={{ fontFamily:'var(--font-body)', fontSize:12, fontWeight:600, color:'var(--color-text-muted)', textTransform:'uppercase', letterSpacing:0.5, marginBottom:10 }}>Choose duration</div>
            <div style={{ display:'flex', flexDirection:'column', gap:8, marginBottom:20 }}>
              {durations.map(d => (
                <div key={d.id} onClick={() => setDuration(d.id)} style={{ display:'flex', alignItems:'center', gap:12, padding:'14px', borderRadius:12, background:'var(--color-surface)', border:`1.5px solid ${duration===d.id?'var(--color-text-primary)':'var(--color-border)'}`, cursor:'pointer', transition:'border-color 0.15s' }}>
                  <div style={{ width:20, height:20, borderRadius:'50%', border:`2px solid ${duration===d.id?'var(--color-text-primary)':'var(--color-border)'}`, display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0 }}>
                    {duration===d.id && <div style={{ width:10, height:10, borderRadius:'50%', background:'var(--color-text-primary)' }} />}
                  </div>
                  <div style={{ flex:1 }}>
                    <div style={{ fontFamily:'var(--font-display)', fontWeight:600, fontSize:14, color:'var(--color-text-primary)' }}>{d.label}</div>
                    <div style={{ fontFamily:'var(--font-body)', fontSize:12, color:'var(--color-text-muted)' }}>{d.sub}</div>
                  </div>
                </div>
              ))}
            </div>

            <div style={{ display:'flex', flexDirection:'column', gap:8, marginBottom:8 }}>
              {[{name:'GamCare', url:'gamcare.org.uk'},{name:'BeGambleAware', url:'begambleaware.org'}].map(org => (
                <div key={org.name} style={{ display:'flex', justifyContent:'space-between', alignItems:'center', padding:'10px 14px', background:'var(--color-surface)', border:'1px solid var(--color-border)', borderRadius:10 }}>
                  <span style={{ fontFamily:'var(--font-body)', fontSize:12, color:'var(--color-text-primary)' }}>{org.name} — {org.url}</span>
                  <i className="ph ph-arrow-square-out" style={{ fontSize:14, color:'var(--color-primary)' }} />
                </div>
              ))}
            </div>
          </React.Fragment>
        ) : (
          <React.Fragment>
            <div style={{ textAlign:'center', marginBottom:24 }}>
              <div style={{ width:64, height:64, borderRadius:20, background:'var(--color-surface)', border:'1px solid var(--color-border)', display:'flex', alignItems:'center', justifyContent:'center', margin:'0 auto 16px' }}>
                <i className="ph ph-prohibit" style={{ fontSize:28, color:'var(--color-text-muted)' }} />
              </div>
              <h2 style={{ fontFamily:'var(--font-display)', fontWeight:700, fontSize:20, color:'var(--color-text-primary)', marginBottom:8 }}>Are you sure?</h2>
              <p style={{ fontFamily:'var(--font-body)', fontSize:13, color:'var(--color-text-secondary)', lineHeight:1.6 }}>
                You're about to exclude yourself for <strong style={{ color:'var(--color-text-primary)' }}>{durations.find(d=>d.id===duration)?.label}</strong>. This cannot be undone during the exclusion period.
              </p>
            </div>
          </React.Fragment>
        )}
        <div style={{ height:16 }} />
      </div>
      <div style={{ padding:'12px 16px 24px', background:'var(--color-nav-bg)', borderTop:'1px solid var(--color-border)', display:'flex', flexDirection:'column', gap:10 }}>
        {step === 1
          ? <button onClick={() => duration && setStep(2)} style={{ width:'100%', height:52, borderRadius:12, background:duration?'var(--color-text-primary)':'var(--color-border)', border:'none', cursor:duration?'pointer':'default', fontFamily:'var(--font-body)', fontSize:15, fontWeight:600, color:duration?'var(--color-bg)':'var(--color-text-muted)' }}>Continue</button>
          : <React.Fragment>
              <button onClick={() => navigate('account-blocked')} style={{ width:'100%', height:52, borderRadius:12, background:'var(--color-text-primary)', border:'none', cursor:'pointer', fontFamily:'var(--font-body)', fontSize:15, fontWeight:600, color:'var(--color-bg)' }}>Yes, exclude my account</button>
              <button onClick={() => setStep(1)} style={{ width:'100%', height:44, borderRadius:12, background:'none', border:'none', cursor:'pointer', fontFamily:'var(--font-body)', fontSize:14, color:'var(--color-text-muted)' }}>No, go back</button>
            </React.Fragment>}
      </div>
    </React.Fragment>
  );
}

Object.assign(window, { RGHubScreen, SetLimitScreen, SelfExclusionScreen });
