// Chrome: headers, footers, sidebars for each product

const PublicHeader = ({ locale, setLocale, currency, setCurrency, onNav, current }) => {
  const [menu, setMenu] = React.useState(false);
  const navItems = [
    ['listings','Aktiviteler'], ['hotels','Konaklama'], ['destinations','Destinasyonlar'],
    ['categories','Kategoriler'], ['blog','Blog'], ['about','Hakkımızda'], ['contact','İletişim']
  ];
  return <header style={{position:'sticky', top:0, zIndex:50, background:'rgba(251,247,242,.85)',
    backdropFilter:'blur(20px) saturate(160%)', borderBottom:'1px solid var(--color-line)'}}>
    <div style={{maxWidth:1440, margin:'0 auto', padding:'14px 32px', display:'flex', alignItems:'center', gap:28}}>
      <button onClick={()=>onNav('home')} style={{display:'flex', alignItems:'center', gap:10, border:0, background:'transparent', padding:0, cursor:'default'}}>
        <Logo size={84}/>
      </button>
      <nav style={{display:'flex', gap:4, marginLeft:16}}>
        {navItems.map(([key,label]) =>
          <button key={key} onClick={()=>onNav(key)} style={{padding:'8px 14px', border:0, background:'transparent',
            color: current===key ? 'var(--color-ink-strong)' : 'var(--color-ink-dim)',
            fontSize:14, fontWeight:600, cursor:'default', borderRadius:8}}>{label}</button>)}
      </nav>
      <div style={{flex:1}}/>
      <button style={{border:0, background:'transparent', padding:8, color:'var(--color-ink-dim)', cursor:'default'}}><Icon name="search" size={18}/></button>
      <Select value={locale} onChange={setLocale} options={[{value:'tr',label:'🇹🇷 TR'},{value:'en',label:'🇬🇧 EN'},{value:'ar',label:'🇸🇦 AR'}]} style={{padding:'6px 10px', fontSize:13, width:'auto'}}/>
      <Select value={currency} onChange={setCurrency} options={['TRY','USD','EUR']} style={{padding:'6px 10px', fontSize:13, width:'auto'}}/>
      <Btn variant="outline" size="sm" onClick={()=>onNav('supplier-apply')}>Tedarikçi Ol</Btn>
      <Btn variant="ghost" size="sm" onClick={()=>onNav('login')}>Giriş</Btn>
      <Btn variant="primary" size="sm" onClick={()=>onNav('register')}>Kayıt</Btn>
    </div>
  </header>;
};

const PublicFooter = ({ onNav }) => {
  return <footer style={{background:'var(--color-dark-800)', color:'var(--color-on-dark)', marginTop:80}}>
    {/* CTA band */}
    <div style={{padding:'64px 32px', borderBottom:'1px solid rgba(255,244,239,.1)'}}>
      <div style={{maxWidth:1440, margin:'0 auto', display:'grid', gridTemplateColumns:'1fr auto', alignItems:'center', gap:40}}>
        <div>
          <div className="eyebrow" style={{color:'var(--color-brand-300)'}}>DENEYIMINI PAYLAŞ</div>
          <h2 style={{color:'#fff', marginTop:8, fontSize:48}}>Ülkenin her köşesini dolaş.<br/>Deneyimini paylaş.</h2>
        </div>
        <Btn variant="primary" size="lg" onClick={()=>onNav('supplier-apply')} iconRight="arrow">Tedarikçi Ol</Btn>
      </div>
    </div>
    {/* newsletter */}
    <div style={{padding:'40px 32px', borderBottom:'1px solid rgba(255,244,239,.1)', background:'rgba(255,244,239,.03)'}}>
      <div style={{maxWidth:1440, margin:'0 auto', display:'grid', gridTemplateColumns:'1fr 1fr', gap:40, alignItems:'center'}}>
        <div>
          <div className="eyebrow" style={{color:'var(--color-brand-300)'}}>BÜLTEN</div>
          <div style={{fontSize:24, fontWeight:700, color:'#fff', marginTop:6, letterSpacing:'-0.02em'}}>Hayaline en yakın rotayı ilk sen gör.</div>
        </div>
        <div style={{display:'flex', gap:10}}>
          <input className="input" placeholder="e-posta adresin" style={{background:'rgba(255,244,239,.08)', border:'1px solid rgba(255,244,239,.2)', color:'#fff'}}/>
          <Btn variant="primary">Abone Ol</Btn>
        </div>
      </div>
    </div>
    {/* link grid */}
    <div style={{padding:'56px 32px 32px'}}>
      <div style={{maxWidth:1440, margin:'0 auto', display:'grid', gridTemplateColumns:'2fr 1fr 1fr 1fr 1fr', gap:40}}>
        <div>
          <div style={{display:'flex', alignItems:'center', gap:10, marginBottom:16}}>
            <Logo size={84} style={{filter:'brightness(0) invert(1)'}}/>
          </div>
          <p style={{fontSize:14, color:'rgba(245,239,231,.7)', maxWidth:320, lineHeight:1.6}}>
            Türkiye'nin en uzak köşelerindeki aktivite ve deneyimleri, güvenilir yerel rehberler aracılığıyla keşfet.
          </p>
          <div style={{display:'flex', gap:12, marginTop:20, color:'rgba(245,239,231,.6)'}}>
            {['globe','message','share','camera'].map(i => <Icon key={i} name={i} size={18}/>)}
          </div>
        </div>
        {[
          ['Keşfet', [['Tüm Aktiviteler','listings'],['Konaklama','hotels'],['Destinasyonlar','destinations'],['Kategoriler','categories'],['Editör Seçkisi','blog']]],
          ['Hesap', [['Giriş','login'],['Kayıt','register'],['Rezervasyonlarım','account-bookings'],['Favorilerim','account-wishlist']]],
          ['Tedarikçi', [['Tedarikçi Ol','supplier-apply'],['Otelini Listele','supplier-apply'],['Panele Giriş','supplier-dashboard'],['Komisyon','help']]],
          ['Şirket', [['Hakkımızda','about'],['Blog','blog'],['Kariyer','about'],['Yardım Merkezi','help']]],
        ].map(([h, items]) => <div key={h}>
          <div style={{fontSize:13, fontWeight:700, color:'#fff', marginBottom:14, letterSpacing:'.02em'}}>{h}</div>
          {items.map(([label,r]) => <div key={label} onClick={()=>onNav(r)} style={{fontSize:13, color:'rgba(245,239,231,.7)', padding:'6px 0', cursor:'pointer'}}>{label}</div>)}
        </div>)}
      </div>
    </div>
    {/* bottom */}
    <div style={{padding:'20px 32px', borderTop:'1px solid rgba(255,244,239,.1)'}}>
      <div style={{maxWidth:1440, margin:'0 auto', display:'flex', justifyContent:'space-between', alignItems:'center', fontSize:12, color:'rgba(245,239,231,.6)', flexWrap:'wrap', gap:16}}>
        <div>© 2026 Vagoonya · Türkiye</div>
        <div style={{display:'flex', gap:20}}>
          <span>Kullanım Koşulları</span><span>Gizlilik</span><span>Çerez</span><span>KVKK</span>
        </div>
        <div style={{display:'flex', gap:10, alignItems:'center'}}>
          {['VISA','MC','TROY','iyzico'].map(b => <div key={b} style={{padding:'4px 10px', border:'1px solid rgba(255,244,239,.2)', borderRadius:6, fontSize:10, fontWeight:700, letterSpacing:'.06em'}}>{b}</div>)}
        </div>
      </div>
    </div>
  </footer>;
};

// ─── SIDEBAR (supplier/admin/account) ──────────────────────────
const Sidebar = ({ title, badge, groups, current, onNav, user, dark }) => {
  return <aside style={{width:260, flexShrink:0, background:dark?'var(--color-dark-900)':'var(--color-surface-raised)',
    borderRight:`1px solid ${dark?'rgba(255,244,239,.1)':'var(--color-line)'}`,
    display:'flex', flexDirection:'column', minHeight:'100vh', position:'sticky', top:0}}>
    <div style={{padding:'22px 22px 18px', display:'flex', alignItems:'center', gap:10, borderBottom:`1px solid ${dark?'rgba(255,244,239,.08)':'var(--color-line)'}`}}>
      <Logo size={56} style={dark?{filter:'brightness(0) invert(1)'}:{}}/>
      {badge && <span style={{marginLeft:'auto', fontSize:10, fontWeight:700, padding:'3px 8px',
        borderRadius:'var(--r-pill)', background:'var(--color-brand-50)', color:'var(--color-brand-700)', letterSpacing:'.04em'}}>{badge}</span>}
    </div>
    {user && <div style={{padding:'14px 18px', display:'flex', alignItems:'center', gap:10, borderBottom:`1px solid ${dark?'rgba(255,244,239,.08)':'var(--color-line)'}`}}>
      <Avatar src={user.avatar} name={user.name} size={36}/>
      <div style={{minWidth:0}}>
        <div style={{fontSize:13, fontWeight:700, color:dark?'#fff':'var(--color-ink)', whiteSpace:'nowrap', overflow:'hidden', textOverflow:'ellipsis'}}>{user.name}</div>
        <div style={{fontSize:11, color:dark?'rgba(245,239,231,.55)':'var(--color-ink-low)', whiteSpace:'nowrap', overflow:'hidden', textOverflow:'ellipsis'}}>{user.email}</div>
      </div>
    </div>}
    <nav style={{padding:'12px 10px', flex:1}}>
      {groups.map((g, gi) => <div key={gi} style={{marginBottom:18}}>
        {g.title && <div style={{fontSize:10, fontWeight:700, color:dark?'rgba(245,239,231,.5)':'var(--color-ink-low)',
          padding:'8px 12px 4px', letterSpacing:'.12em', textTransform:'uppercase'}}>{g.title}</div>}
        {g.items.map(([key, label, icon, count]) => {
          const active = current === key;
          return <button key={key} onClick={()=>onNav(key)} style={{
            width:'100%', display:'flex', alignItems:'center', gap:10, padding:'9px 12px',
            border:0, borderRadius:'var(--r-md)', cursor:'default', marginBottom:2,
            background: active ? (dark?'rgba(255,244,239,.08)':'var(--color-brand-50)'):'transparent',
            color: active ? (dark?'#fff':'var(--color-brand-700)') : (dark?'rgba(245,239,231,.75)':'var(--color-ink-dim)'),
            fontSize:13.5, fontWeight: active ? 700 : 500, textAlign:'left'}}>
            <Icon name={icon} size={17}/>
            <span>{label}</span>
            {count != null && <span style={{marginLeft:'auto', fontSize:11, fontWeight:700,
              padding:'1px 7px', borderRadius:'var(--r-pill)',
              background: active ? 'var(--color-brand-500)' : (dark?'rgba(255,244,239,.1)':'var(--color-surface-sunken)'),
              color: active ? 'var(--color-on-brand)' : (dark?'rgba(245,239,231,.8)':'var(--color-ink)')}}>{count}</span>}
          </button>;
        })}
      </div>)}
    </nav>
    <div style={{padding:'12px 16px', borderTop:`1px solid ${dark?'rgba(255,244,239,.08)':'var(--color-line)'}`}}>
      <button style={{width:'100%', padding:'9px 12px', border:0, borderRadius:'var(--r-md)', background:'transparent',
        color:dark?'rgba(245,239,231,.6)':'var(--color-ink-dim)', fontSize:13, display:'flex', alignItems:'center', gap:10, cursor:'default'}}>
        <Icon name="logout" size={16}/> Çıkış Yap
      </button>
    </div>
  </aside>;
};

const TopBar = ({ title, breadcrumbs, actions, dark }) => (
  <div style={{padding:'16px 32px', borderBottom:`1px solid ${dark?'rgba(255,244,239,.08)':'var(--color-line)'}`,
    display:'flex', alignItems:'center', justifyContent:'space-between', background:dark?'var(--color-dark-900)':'var(--color-surface-raised)',
    position:'sticky', top:0, zIndex:10}}>
    <div>
      {breadcrumbs && <div style={{fontSize:12, color:dark?'rgba(245,239,231,.5)':'var(--color-ink-low)', marginBottom:4, display:'flex', gap:6, alignItems:'center'}}>
        {breadcrumbs.map((b,i) => <React.Fragment key={i}>
          {i>0 && <Icon name="chevron" size={11}/>}
          <span>{b}</span>
        </React.Fragment>)}
      </div>}
      {title && <h3 style={{fontSize:22, color:dark?'#fff':'var(--color-ink-strong)'}}>{title}</h3>}
    </div>
    <div style={{display:'flex', gap:8, alignItems:'center'}}>{actions}</div>
  </div>
);

Object.assign(window, { PublicHeader, PublicFooter, Sidebar, TopBar });
