// screens-transport.jsx — transport providers list + detail + request form + trip tracking (النقل)
(function(){
  const { useState } = React;
  const Icon = window.Icon;
  const { Header, HorseAvatar, Stars, Segmented, SecureNote } = window;

  // ── heart favorite toggle ──
  function FavBtn({ on, onClick, size=34 }){
    return (
      <button onClick={(e)=>{ e.stopPropagation(); onClick(); }} aria-label="مفضلة"
        style={{width:size, height:size, flex:'0 0 auto', border:'none', borderRadius:12, cursor:'pointer',
          background:on?'var(--bad-bg)':'var(--surface-2)', color:on?'var(--bad-fg)':'var(--faint)',
          display:'flex', alignItems:'center', justifyContent:'center', transition:'.15s'}}>
        <Icon name="heart" size={Math.round(size*0.55)} sw={2} fill={on?'var(--bad-fg)':undefined}/>
      </button>
    );
  }

  // ── truck icon tile ──
  function TruckTile({ size=62, accent }){
    return (
      <span style={{width:size, height:size, flex:'0 0 auto', borderRadius:18, display:'flex', alignItems:'center', justifyContent:'center',
        background:accent?'var(--green)':'var(--green-tint)', color:accent?'#fff':'var(--green)'}}>
        <Icon name="truck" size={Math.round(size*0.45)}/>
      </span>
    );
  }

  // ── inline dropdown select ──
  function Select({ value, options, onChange, icon }){
    const [open,setOpen] = useState(false);
    return (
      <div style={{position:'relative'}}>
        <button onClick={()=>setOpen(o=>!o)}
          style={{width:'100%', border:'none', cursor:'pointer', background:'var(--surface-2)', borderRadius:14, padding:'13px 14px',
            display:'flex', alignItems:'center', gap:10, textAlign:'right'}}>
          {icon && <span style={{color:'var(--green)'}}><Icon name={icon} size={18} sw={1.8}/></span>}
          <span className="ar lead" style={{flex:1, fontSize:14.5, color:'var(--ink)'}}>{value}</span>
          <span style={{color:'var(--faint)', transform:open?'rotate(-90deg)':'none', transition:'.15s'}}><Icon name="chevron-l" size={18}/></span>
        </button>
        {open && (
          <div className="card" style={{position:'absolute', top:'calc(100% + 6px)', left:0, right:0, zIndex:20, padding:6, boxShadow:'var(--sh-md)', maxHeight:210, overflowY:'auto'}}>
            {options.map(o=>(
              <button key={o} onClick={()=>{ onChange(o); setOpen(false); }}
                style={{width:'100%', border:'none', cursor:'pointer', background: o===value?'var(--green-tint)':'transparent', borderRadius:10, padding:'11px 12px', textAlign:'right'}}>
                <span className="ar" style={{fontSize:14, fontWeight:700, color:o===value?'var(--green-700)':'var(--ink-2)'}}>{o}</span>
              </button>
            ))}
          </div>
        )}
      </div>
    );
  }

  /* ───────────────────────── PROVIDERS LIST ───────────────────────── */
  function ProviderCard({ p, fav, onFav, onOpen }){
    return (
      <div className="card tap" onClick={onOpen} style={{padding:14, marginBottom:12, display:'flex', alignItems:'center', gap:13}}>
        <TruckTile size={60}/>
        <div style={{flex:1, minWidth:0}}>
          <div style={{display:'flex', alignItems:'center', gap:8}}>
            <span className="ar lead" style={{fontSize:16}}>{p.name}</span>
            <span className="badge info" style={{padding:'3px 9px', fontSize:11}}>{p.typeLabel}</span>
          </div>
          <div className="ar t-mut t-sm" style={{fontWeight:600, marginTop:3}}>{p.tagline}</div>
          <div style={{display:'flex', alignItems:'center', gap:10, marginTop:7}}>
            <Stars value={p.rating}/>
            <span className="ar t-mut t-xs" style={{fontWeight:600}}>({p.reviews})</span>
            <span style={{display:'inline-flex', alignItems:'center', gap:4, color:'var(--green)'}}>
              <Icon name="clock" size={13} sw={1.8}/>
              <span className="ar t-xs" style={{fontWeight:700}}>{p.eta}</span>
            </span>
            <span className="price" style={{fontSize:13, color:'var(--green)'}}>{p.price} <span style={{fontSize:9, color:'var(--muted)'}}>د.ك</span></span>
          </div>
        </div>
        <FavBtn on={fav} onClick={onFav}/>
      </div>
    );
  }

  function TransportScreen({ go, favTransport, toggleFavT }){
    const D = window.DATA;
    const [type,setType] = useState('all');
    const list = D.transportProviders.filter(p=>{
      if(type==='all') return true;
      if(type==='fav') return favTransport.includes(p.id);
      return p.type===type;
    });
    return (
      <div className="scroll pad-tab scr-anim">
        <Header title="النقل"
          right={<button className="hdr-btn" aria-label="رحلتي" onClick={()=>go('tripTrack')}><Icon name="pin" size={18}/></button>} />

        <div style={{padding:'0 16px 8px'}}>
          <div className="ar t-mut t-sm" style={{fontWeight:600, marginBottom:12}}>اختر شركة نقل لطلب رحلة لخيلك</div>
        </div>

        {/* type filter chips */}
        <div style={{padding:'0 16px 16px'}}>
          <div className="chips">
            {D.transportTypes.map(s=>(
              <button key={s.id} className={'chip ar '+(type===s.id?'on':'')} onClick={()=>setType(s.id)}>
                {s.id==='fav'
                  ? <span style={{display:'inline-flex', alignItems:'center', gap:5}}><Icon name="heart" size={13} sw={2} fill={type==='fav'?'#fff':undefined}/>{s.label}</span>
                  : s.label}
              </button>
            ))}
          </div>
        </div>

        {/* providers */}
        <div style={{padding:'0 16px'}}>
          {list.length ? list.map(p=>(
            <ProviderCard key={p.id} p={p}
              fav={favTransport.includes(p.id)}
              onFav={()=>toggleFavT(p.id)}
              onOpen={()=>go('transportProvider',{id:p.id})} />
          )) : (
            <div className="ar t-mut" style={{textAlign:'center', padding:'48px 0', fontWeight:600}}>
              {type==='fav' ? 'لم تقم بإضافة شركات للمفضلة بعد' : 'لا توجد شركات في هذا التصنيف'}
            </div>
          )}
        </div>

        <SecureNote text="جميع شركات النقل موثّقة ومرخّصة." />
      </div>
    );
  }

  /* ───────────────────────── PROVIDER DETAIL ───────────────────────── */
  function TransportProviderScreen({ back, params, go, favTransport, toggleFavT }){
    const D = window.DATA;
    const p = D.transportProviders.find(x=>x.id===params.id) || D.transportProviders[0];
    const fav = favTransport.includes(p.id);
    const stats = [ ['التقييم', p.rating, 'star'], ['الأسطول', p.fleet, 'truck'], ['الوصول', p.eta, 'clock'] ];
    return (
      <React.Fragment>
        <div className="scroll pad-cta scr-anim">
          <Header title="تفاصيل الشركة" onBack={back}
            right={<button className="hdr-btn" aria-label="اتصال"><Icon name="phone" size={18}/></button>} />

          <div style={{padding:'2px 16px 0'}}>
            {/* head */}
            <div className="card card-pad" style={{display:'flex', alignItems:'center', gap:14, marginBottom:12}}>
              <TruckTile size={64} accent/>
              <div style={{flex:1}}>
                <div style={{display:'flex', alignItems:'center', gap:8}}>
                  <span className="ar lead" style={{fontSize:18}}>{p.name}</span>
                  <span className="badge info" style={{padding:'3px 9px', fontSize:11}}>{p.typeLabel}</span>
                </div>
                <div className="ar t-mut t-sm" style={{fontWeight:600, marginTop:3}}>{p.tagline}</div>
                <div style={{marginTop:8}}><Stars value={p.rating}/> <span className="ar t-mut t-xs" style={{fontWeight:600}}>({p.reviews} تقييم)</span></div>
              </div>
              <FavBtn on={fav} onClick={()=>toggleFavT(p.id)} size={38}/>
            </div>

            {/* stat strip */}
            <div className="card" style={{display:'flex', textAlign:'center', marginBottom:12, overflow:'hidden'}}>
              {stats.map((s,i)=>(
                <div key={i} style={{flex:1, padding:'14px 4px', borderInlineStart:i?'1px solid var(--line)':'none'}}>
                  <span style={{color:'var(--green)', display:'inline-flex'}}><Icon name={s[2]} size={18}/></span>
                  <div className="ar lead" style={{fontSize:14, color:'var(--ink)', marginTop:5}}>{s[1]}</div>
                  <div className="ar t-mut t-xs" style={{fontWeight:600, marginTop:2}}>{s[0]}</div>
                </div>
              ))}
            </div>

            {/* features */}
            <div className="card card-pad" style={{marginBottom:12}}>
              <h3 className="ar lead" style={{margin:'0 0 12px', fontSize:16}}>المميزات</h3>
              {p.features.map((f,i)=>(
                <div key={i} style={{display:'flex', alignItems:'center', gap:11, padding:'9px 0'}}>
                  <span style={{width:26, height:26, borderRadius:9, background:'var(--ok-bg)', color:'var(--ok-fg)', display:'flex', alignItems:'center', justifyContent:'center', flex:'0 0 auto'}}>
                    <Icon name="check" size={15} sw={2.4}/>
                  </span>
                  <span className="ar" style={{fontSize:14, fontWeight:600, color:'var(--ink-2)'}}>{f}</span>
                </div>
              ))}
            </div>

            {/* price */}
            <div className="card card-pad" style={{display:'flex', alignItems:'center', justifyContent:'space-between'}}>
              <span className="ar t-mut t-sm" style={{fontWeight:700}}>تبدأ الأسعار من</span>
              <span className="price" style={{fontSize:20, color:'var(--green)'}}>{p.price} <span style={{fontSize:12, color:'var(--muted)'}}>د.ك</span></span>
            </div>

            <SecureNote text="الشركة موثّقة ومؤمّنة بالكامل." />
          </div>
        </div>

        <div className="cta-bar">
          <button className="btn btn-primary ar" onClick={()=>go('transportRequest',{id:p.id})}>
            <Icon name="truck" size={19} color="#fff"/> اطلب رحلة الآن
          </button>
        </div>
      </React.Fragment>
    );
  }

  /* ───────────────────────── REQUEST FORM ───────────────────────── */
  function TransportRequestScreen({ back, params, go }){
    const D = window.DATA;
    const p = D.transportProviders.find(x=>x.id===params.id) || D.transportProviders[0];
    const [from,setFrom] = useState(D.transportPlaces[0]);
    const [to,setTo] = useState(D.transportPlaces[2]);
    const [day,setDay] = useState('d0');
    const [slot,setSlot] = useState('10:00 ص');
    const [notes,setNotes] = useState('');
    const [done,setDone] = useState(false);
    const swap = ()=>{ setFrom(to); setTo(from); };

    if(done){
      const d = D.transportDays.find(x=>x.id===day);
      return (
        <div className="scroll scr-anim" style={{display:'flex', flexDirection:'column', alignItems:'center', justifyContent:'center', textAlign:'center', padding:'0 30px'}}>
          <div style={{width:96, height:96, borderRadius:'50%', background:'var(--ok-bg)', color:'var(--ok-fg)', display:'flex', alignItems:'center', justifyContent:'center', marginBottom:22}}>
            <Icon name="check" size={48} sw={2.4}/>
          </div>
          <div className="ar lead" style={{fontSize:21, color:'var(--ink)'}}>تم إرسال طلب الرحلة!</div>
          <div className="ar t-mut" style={{fontSize:14, fontWeight:600, marginTop:8, lineHeight:1.7}}>
            {p.name} · {from} ← {to}<br/>{d.label} {d.date} · {slot}
          </div>
          <button className="btn btn-primary ar" style={{marginTop:26, width:'auto', padding:'14px 28px'}} onClick={()=>go('tripTrack')}>تتبّع الرحلة</button>
          <button className="btn btn-line ar" style={{marginTop:10, width:'auto', padding:'12px 28px'}} onClick={()=>go('transport')}>العودة للشركات</button>
        </div>
      );
    }

    return (
      <React.Fragment>
        <div className="scroll pad-cta scr-anim">
          <Header title="طلب رحلة نقل" onBack={back} />

          <div style={{padding:'2px 16px 0'}}>
            {/* provider chip */}
            <div className="card card-pad" style={{display:'flex', alignItems:'center', gap:12, marginBottom:14}}>
              <TruckTile size={46} accent/>
              <div style={{flex:1}}>
                <div className="ar lead" style={{fontSize:15}}>{p.name}</div>
                <div className="ar t-mut t-xs" style={{fontWeight:600, marginTop:2}}>{p.typeLabel} · يبدأ من {p.price} د.ك</div>
              </div>
            </div>

            {/* route */}
            <h3 className="ar lead" style={{margin:'0 0 12px', fontSize:16}}>المسار</h3>
            <div className="card card-pad" style={{marginBottom:14}}>
              <div className="ar t-mut t-xs" style={{fontWeight:700, marginBottom:6}}>نقطة الانطلاق</div>
              <Select value={from} options={D.transportPlaces} onChange={setFrom} icon="pin"/>
              <div style={{display:'flex', justifyContent:'center', margin:'6px 0'}}>
                <button onClick={swap} aria-label="تبديل"
                  style={{width:34, height:34, border:'none', borderRadius:'50%', background:'var(--green-tint)', color:'var(--green)', cursor:'pointer', display:'flex', alignItems:'center', justifyContent:'center'}}>
                  <Icon name="reorder" size={18}/>
                </button>
              </div>
              <div className="ar t-mut t-xs" style={{fontWeight:700, marginBottom:6}}>الوجهة</div>
              <Select value={to} options={D.transportPlaces} onChange={setTo} icon="building"/>
            </div>

            {/* date */}
            <h3 className="ar lead" style={{margin:'0 0 12px', fontSize:16}}>التاريخ والوقت</h3>
            <div style={{display:'flex', gap:10, marginBottom:12}}>
              {D.transportDays.map(d=>{
                const on = day===d.id;
                return (
                  <button key={d.id} onClick={()=>setDay(d.id)} className="tap"
                    style={{flex:1, border:'none', cursor:'pointer', borderRadius:16, padding:'12px 4px', textAlign:'center',
                      background:on?'var(--green)':'var(--surface)', color:on?'#fff':'var(--ink)', boxShadow:'var(--sh-sm)'}}>
                    <div className="ar" style={{fontSize:12, fontWeight:700, opacity:on?.85:.6}}>{d.label}</div>
                    <div className="ar lead" style={{fontSize:14.5, marginTop:3}}>{d.date}</div>
                  </button>
                );
              })}
            </div>
            <div style={{display:'grid', gridTemplateColumns:'1fr 1fr 1fr', gap:10, marginBottom:14}}>
              {D.transportSlots.map(t=>{
                const on = slot===t;
                return (
                  <button key={t} onClick={()=>setSlot(t)} className="tap num"
                    style={{border:on?'1.5px solid var(--green)':'1.5px solid var(--line-2)', cursor:'pointer', borderRadius:13, padding:'12px 4px',
                      fontWeight:600, fontSize:13.5, background:on?'var(--green)':'var(--surface)', color:on?'#fff':'var(--ink-2)'}}>
                    {t}
                  </button>
                );
              })}
            </div>

            {/* horse */}
            <h3 className="ar lead" style={{margin:'0 0 12px', fontSize:16}}>الخيل</h3>
            <div className="card" style={{padding:14, display:'flex', alignItems:'center', gap:13, marginBottom:14}}>
              <HorseAvatar size={48}/>
              <div style={{flex:1}}>
                <div className="ar lead" style={{fontSize:15}}>{D.horse.name}</div>
                <div className="ar t-mut t-xs" style={{fontWeight:600, marginTop:2}}>{D.horse.breed} · {D.horse.age}</div>
              </div>
              <span className="badge ok"><span className="dot"/>محدد</span>
            </div>

            {/* notes */}
            <h3 className="ar lead" style={{margin:'0 0 12px', fontSize:16}}>ملاحظات (اختياري)</h3>
            <textarea value={notes} onChange={e=>setNotes(e.target.value)} rows={3} placeholder="أضف أي تعليمات خاصة للناقل…"
              className="ar" style={{width:'100%', border:'none', background:'var(--surface)', borderRadius:16, padding:'14px', fontSize:14, fontWeight:600,
                color:'var(--ink)', boxShadow:'var(--sh-sm)', resize:'none', fontFamily:"'Tajawal',sans-serif"}} />

            <SecureNote text="بيانات الرحلة محفوظة وآمنة." />
          </div>
        </div>

        <div className="cta-bar">
          <button className="btn btn-primary ar" onClick={()=>setDone(true)}>
            <Icon name="check" size={19} color="#fff"/> تأكيد طلب الرحلة
          </button>
        </div>
      </React.Fragment>
    );
  }

  /* ───────────────────────── TRIP TRACKING (kept) ───────────────────────── */
  const TABS = [
    { id:'status',  label:'حالة الرحلة' },
    { id:'details', label:'التفاصيل' },
    { id:'notes',   label:'الملاحظات' },
  ];

  function ProfileHead(){
    const h = window.DATA.horse; const t = window.DATA.transport;
    return (
      <div className="card card-pad" style={{display:'flex', gap:16, marginBottom:14, alignItems:'center'}}>
        <HorseAvatar size={84}/>
        <div style={{flex:1}}>
          <div className="ar lead" style={{fontSize:18, marginBottom:6}}>{h.name}</div>
          <div className="num t-mut t-sm" style={{fontWeight:600}}>{t.id}</div>
          <div style={{display:'flex', alignItems:'center', gap:6, marginTop:8, color:'var(--green)'}}>
            <Icon name="pin" size={15} sw={1.7}/>
            <span className="ar t-sm" style={{fontWeight:700}}>إلى {t.to}</span>
          </div>
        </div>
      </div>
    );
  }

  function StatusTab(){
    const steps = window.DATA.transport.steps;
    return (
      <div className="card card-pad">
        <div className="tl">
          {steps.map((s,i)=>{
            const isActive = s.active;
            return (
              <div className="tl-row" key={i}>
                <div className="tl-node">
                  <div className={'tl-dot '+(s.done?'':(isActive?'':'soft'))}
                    style={isActive?{background:'var(--gold)', boxShadow:'0 0 0 5px rgba(176,138,69,.20)'}:{}}>
                    <Icon name={isActive?'truck':(s.done?s.icon:s.icon)} size={20}/>
                  </div>
                  {i<steps.length-1 && <div className={'tl-line'+(s.done?'':' dashed')}/>}
                </div>
                <div className="tl-body">
                  <div style={{display:'flex', justifyContent:'space-between', gap:8, alignItems:'flex-start'}}>
                    <span className="ar lead" style={{fontSize:14.5, color:s.done||isActive?'var(--ink)':'var(--muted)'}}>{s.t}</span>
                    <span style={{textAlign:'left', whiteSpace:'nowrap'}}>
                      <span className="ar t-mut t-xs" style={{fontWeight:600, display:'block'}}>{s.date}</span>
                      <span className="num t-mut t-xs" style={{fontWeight:600, display:'inline-flex', alignItems:'center', gap:3}}>
                        {s.done && <Icon name="check" size={11} sw={2.6} color="var(--green)"/>}{s.time}
                      </span>
                    </span>
                  </div>
                  <div className="ar t-mut t-sm" style={{fontWeight:600, marginTop:3}}>{s.d}</div>
                  {isActive && <span className="badge warn" style={{marginTop:8}}><span className="dot"/>جاري التنفيذ الآن</span>}
                </div>
              </div>
            );
          })}
        </div>
      </div>
    );
  }

  function DetailsTab(){
    const t = window.DATA.transport;
    const rows = [
      { icon:'tag',    k:'رقم الطلب', v:t.id, num:true },
      { icon:'pin',    k:'نقطة الانطلاق', v:t.from },
      { icon:'building', k:'الوجهة', v:t.to },
      { icon:'truck',  k:'الناقل', v:t.driver },
      { icon:'card',   k:'لوحة المركبة', v:t.plate },
    ];
    return (
      <div className="card card-pad">
        {rows.map((r,i)=>(
          <div key={i} style={{display:'flex', alignItems:'center', gap:12, padding:'12px 0', borderTop:i?'1px solid var(--line)':'none'}}>
            <span style={{width:38, height:38, borderRadius:11, background:'var(--green-tint)', color:'var(--green)', display:'flex', alignItems:'center', justifyContent:'center', flex:'0 0 auto'}}>
              <Icon name={r.icon} size={19} sw={1.8}/>
            </span>
            <span className="ar t-mut t-sm" style={{fontWeight:700, flex:1}}>{r.k}</span>
            <span className={(r.num?'num':'ar lead')} style={{fontSize:14.5, color:'var(--ink)', fontWeight:700}}>{r.v}</span>
          </div>
        ))}
      </div>
    );
  }

  function NotesTab(){
    return (
      <div className="card card-pad">
        <div className="ar lead" style={{fontSize:15, marginBottom:8}}>ملاحظات الرحلة</div>
        <p className="ar t-sm" style={{margin:0, lineHeight:1.8, color:'var(--ink-2)', fontWeight:500}}>
          تم نقل الخيل في مركبة مكيّفة ومجهّزة خصيصاً لراحة الحيوان. تمت مراعاة فترات الراحة خلال الرحلة،
          وكان الخيل في حالة هدوء واستقرار طوال الطريق.
        </p>
        <div className="inset" style={{padding:14, marginTop:14, display:'flex', gap:10, alignItems:'center'}}>
          <span style={{color:'var(--green)'}}><Icon name="shield" size={18}/></span>
          <div className="ar t-sm" style={{fontWeight:600, color:'var(--ink-2)'}}>الرحلة مؤمّنة بالكامل ضد أي طارئ.</div>
        </div>
      </div>
    );
  }

  function TripTrackScreen({ back }){
    const [tab,setTab] = useState('status');
    return (
      <div className="scroll pad-tab scr-anim">
        <Header title="رحلة النقل" onBack={back}
          right={<button className="hdr-btn" aria-label="مشاركة"><Icon name="share" size={18}/></button>} />
        <div style={{padding:'2px 16px 0'}}>
          <ProfileHead/>
          <div style={{marginBottom:14}}>
            <Segmented items={TABS} value={tab} onChange={setTab}/>
          </div>
          {tab==='status' && <StatusTab/>}
          {tab==='details' && <DetailsTab/>}
          {tab==='notes' && <NotesTab/>}
          <SecureNote text="جميع بيانات رحلة النقل محفوظة وآمنة." />
        </div>
      </div>
    );
  }

  Object.assign(window, { TransportScreen, TransportProviderScreen, TransportRequestScreen, TripTrackScreen });
})();
