/* global React, ReactDOM, NOBBYO_ICONS, PageHeader, PageTopBar, PageFooter, usePageLang */
const { useState: cS, useEffect: cE, useMemo: cM } = React;
const CI = window.NOBBYO_ICONS;

// =================== PROFILE DATA ===================
const PROFILE = {
  name: { bn: 'ফাহিম আহমেদ', en: 'Fahim Ahmed' },
  initials: 'FA',
  pronoun: 'he/him',
  headline: { bn: 'সিনিয়র প্রোডাক্ট ডিজাইনার · মোবাইল-ফার্স্ট অ্যাপের জন্য', en: 'Senior Product Designer · for mobile-first apps' },
  loc: { bn: 'ঢাকা, বাংলাদেশ', en: 'Dhaka, Bangladesh' },
  open: true,
  remote: { bn: 'রিমোট/হাইব্রিড', en: 'Remote / Hybrid' },
  expectedSalary: { bn: '৳ ১.৪ – ২ লাখ', en: '৳ 140K – 200K' },
  noticePeriod: { bn: '২ সপ্তাহ', en: '2 weeks' },
  avatar: '#7E5E9F', // background color (placeholder)
  banner: 'mesh', // visual style
  views: 1842,
  searches: 24,
  recruiters: 6,
  matchAvg: 87,
  bio: {
    bn: '৬ বছর ধরে বাংলাদেশের সবচেয়ে বড় কনজিউমার অ্যাপগুলোর জন্য মোবাইল-ফার্স্ট প্রোডাক্ট ডিজাইন করছি। বিশ্বাস করি, ভাল ডিজাইন তিন ভাষায় কাজ করে — বাংলা, ইংরেজি এবং নীরবতা।',
    en: '6 years designing mobile-first products for some of Bangladesh\'s largest consumer apps. I believe great design works in three languages — Bangla, English, and silence.',
  },
  contact: {
    email: 'fahim.ahmed@gmail.com',
    phone: '+৮৮০ ১৭১২ ৩৪৫৬৭৮',
    web: 'fahim.design',
    github: 'fahimd',
    dribbble: 'fahim_ux',
    linkedin: 'fahim-ahmed-bd',
  },
  skills: [
    { name: 'Figma', level: 95, group: 'design' },
    { name: 'Mobile UX', level: 88, group: 'design' },
    { name: 'Design Systems', level: 90, group: 'design' },
    { name: 'User Research', level: 78, group: 'research' },
    { name: 'Prototyping', level: 92, group: 'design' },
    { name: 'Bangla Typography', level: 96, group: 'design' },
    { name: 'HTML/CSS', level: 72, group: 'code' },
    { name: 'After Effects', level: 65, group: 'motion' },
  ],
  langs: [
    { name: { bn: 'বাংলা', en: 'Bangla' }, level: 'native', stars: 5 },
    { name: { bn: 'ইংরেজি', en: 'English' }, level: 'fluent', stars: 5 },
    { name: { bn: 'হিন্দি', en: 'Hindi' }, level: 'conversational', stars: 3 },
  ],
  experience: [
    {
      role: { bn: 'সিনিয়র প্রোডাক্ট ডিজাইনার', en: 'Senior Product Designer' },
      co: 'bKash', logo: 'b', bg: '#E2126B',
      from: { bn: 'মার্চ ২০২৩', en: 'Mar 2023' }, to: { bn: 'বর্তমান', en: 'Present' },
      months: 22,
      loc: { bn: 'ঢাকা · হাইব্রিড', en: 'Dhaka · Hybrid' },
      notes: {
        bn: [
          'মার্চেন্ট পেমেন্ট ফ্লো নতুনভাবে ডিজাইন করেছি — কনভার্শন ১৮% বেড়েছে।',
          'বাংলা-প্রথম ডিজাইন সিস্টেম তৈরি করেছি যা এখন ৪টি অ্যাপ ব্যবহার করছে।',
          'ক্রস-ফাংশনাল ৭ জনের টিম মেন্টরিং।',
        ],
        en: [
          'Redesigned merchant payment flow — 18% lift in conversion.',
          'Built a Bangla-first design system now used across 4 apps.',
          'Mentor a cross-functional team of 7.',
        ],
      },
      tags: ['Fintech', 'Design Systems', 'Bangla UX'],
    },
    {
      role: { bn: 'প্রোডাক্ট ডিজাইনার', en: 'Product Designer' },
      co: 'Pathao', logo: 'P', bg: '#E81E2C',
      from: { bn: 'জানু ২০২১', en: 'Jan 2021' }, to: { bn: 'ফেব্রু ২০২৩', en: 'Feb 2023' },
      months: 26,
      loc: { bn: 'ঢাকা · অফিস', en: 'Dhaka · On-site' },
      notes: {
        bn: [
          'রাইডার অ্যাপের জন্য নতুন আর্নিং ড্যাশবোর্ড — ১২০K+ রাইডার ব্যবহার করছেন।',
          'অনবোর্ডিং ফ্লোতে ড্রপ-অফ ৩৪% থেকে ১২% নামিয়ে এনেছি।',
        ],
        en: [
          'Designed a new earnings dashboard for the rider app — 120K+ active riders.',
          'Cut onboarding drop-off from 34% to 12%.',
        ],
      },
      tags: ['Mobile', 'Logistics', 'Onboarding'],
    },
    {
      role: { bn: 'UI/UX ডিজাইনার', en: 'UI/UX Designer' },
      co: 'Brain Station 23', logo: 'B', bg: '#1B4789',
      from: { bn: 'জুন ২০১৯', en: 'Jun 2019' }, to: { bn: 'ডিসে ২০২০', en: 'Dec 2020' },
      months: 18,
      loc: { bn: 'ঢাকা', en: 'Dhaka' },
      notes: {
        bn: [
          'এন্টারপ্রাইজ ক্লায়েন্টদের জন্য ১৫+ ওয়েব এবং মোবাইল প্রোডাক্ট ডিজাইন।',
          'এজেন্সি জুনিয়রদের অনবোর্ড করার প্রসেস তৈরি।',
        ],
        en: [
          'Designed 15+ web and mobile products for enterprise clients.',
          'Built the agency\'s junior designer onboarding process.',
        ],
      },
      tags: ['Agency', 'Enterprise'],
    },
  ],
  projects: [
    { title: { bn: 'bKash মার্চেন্ট রিডিজাইন', en: 'bKash Merchant Redesign' }, year: 2024, color: '#E2126B', kind: { bn: 'কেস স্টাডি', en: 'Case Study' }, blurb: { bn: '১৮% কনভার্শন উন্নতি', en: '18% conversion lift' } },
    { title: { bn: 'বাংলা টাইপ স্কেল', en: 'Bangla Type Scale' }, year: 2024, color: '#2A3656', kind: { bn: 'ওপেন সোর্স', en: 'Open Source' }, blurb: { bn: 'Hind Siliguri-ভিত্তিক স্কেল', en: 'Scale based on Hind Siliguri' } },
    { title: { bn: 'Pathao রাইডার অ্যাপ v3', en: 'Pathao Rider App v3' }, year: 2022, color: '#E81E2C', kind: { bn: 'প্রোডাক্ট', en: 'Product' }, blurb: { bn: '১২০K+ ডেইলি অ্যাকটিভ', en: '120K+ daily active' } },
    { title: { bn: 'Khoma Personal Finance', en: 'Khoma Personal Finance' }, year: 2023, color: '#0A6B3F', kind: { bn: 'সাইড প্রজেক্ট', en: 'Side Project' }, blurb: { bn: '৩,০০০ ব্যবহারকারী', en: '3K users' } },
  ],
  education: [
    { school: { bn: 'বুয়েট', en: 'BUET' }, full: { bn: 'বাংলাদেশ প্রকৌশল বিশ্ববিদ্যালয়', en: 'Bangladesh University of Engineering and Technology' }, deg: { bn: 'B.Sc. কম্পিউটার সায়েন্স', en: 'B.Sc. Computer Science' }, year: '2015–2019', gpa: '3.84/4.0' },
    { school: { bn: 'নটরডেম কলেজ', en: 'Notre Dame College' }, full: { bn: 'নটরডেম কলেজ, ঢাকা', en: 'Notre Dame College, Dhaka' }, deg: { bn: 'HSC · বিজ্ঞান', en: 'HSC · Science' }, year: '2013–2015', gpa: 'A+' },
  ],
  certs: [
    { name: { bn: 'Google UX ডিজাইন প্রফেশনাল', en: 'Google UX Design Professional' }, by: 'Coursera', year: 2022 },
    { name: { bn: 'Nielsen Norman UX মাস্টার', en: 'Nielsen Norman UX Master' }, by: 'NN/g', year: 2023 },
    { name: { bn: 'IELTS · ৭.৫', en: 'IELTS · 7.5' }, by: 'British Council', year: 2021 },
  ],
  achievements: [
    { ic: '🏆', bn: 'BASIS ন্যাশনাল ICT অ্যাওয়ার্ড ২০২৩', en: 'BASIS National ICT Award 2023', meta: { bn: 'বেস্ট ফিনটেক UX', en: 'Best Fintech UX' } },
    { ic: '🎤', bn: 'UX বাংলাদেশ কনফারেন্স স্পিকার', en: 'UX Bangladesh Conference Speaker', meta: { bn: '২০২৩, ২০২৪', en: '2023, 2024' } },
    { ic: '✍️', bn: 'বাংলা ডিজাইন রিসার্চ পেপার', en: 'Bangla Design Research Paper', meta: { bn: 'ACM CHI ২০২৪', en: 'ACM CHI 2024' } },
  ],
  endorsements: [
    { who: { bn: 'মাহবুব রহমান', en: 'Mahbub Rahman' }, role: { bn: 'হেড অফ ডিজাইন · Pathao', en: 'Head of Design · Pathao' }, avatarBg: '#7E5E9F',
      text: { bn: '"ফাহিম এমন একজন ডিজাইনার যে সমস্যাটা ঠিকভাবে বুঝে — তারপর সমাধান দেয়। বাংলা UX এ তার দখল অসাধারণ।"', en: '"Fahim is the rare designer who understands the problem first, then solves it. His Bangla UX work is exceptional."' } },
    { who: { bn: 'সাবরিনা হোসেন', en: 'Sabrina Hossain' }, role: { bn: 'প্রোডাক্ট লিড · bKash', en: 'Product Lead · bKash' }, avatarBg: '#E2126B',
      text: { bn: '"৬ মাসে আমাদের ডিজাইন সিস্টেমকে ৪টি অ্যাপের জন্য স্কেল করেছে। বিরল প্রতিভা।"', en: '"Scaled our design system across 4 apps in 6 months. Rare talent."' } },
  ],
};

// =================== HEADER (cover + identity) ===================
function ProfileHeader({ editing, setEditing, lang }) {
  return (
    <section className="cp-hero">
      <div className="cp-cover" aria-hidden="true">
        <svg viewBox="0 0 1200 240" preserveAspectRatio="xMidYMid slice">
          <defs>
            <linearGradient id="cp-grad" x1="0%" y1="0%" x2="100%" y2="100%">
              <stop offset="0%" stopColor="#2A3656" />
              <stop offset="50%" stopColor="#3D4870" />
              <stop offset="100%" stopColor="#1A2240" />
            </linearGradient>
            <pattern id="cp-dots" width="32" height="32" patternUnits="userSpaceOnUse">
              <circle cx="16" cy="16" r="1.5" fill="rgba(247,244,237,0.12)" />
            </pattern>
          </defs>
          <rect width="1200" height="240" fill="url(#cp-grad)" />
          <rect width="1200" height="240" fill="url(#cp-dots)" />
          {/* Bangla swirl forms */}
          <g opacity="0.18">
            <circle cx="180" cy="60" r="120" fill="none" stroke="#F58220" strokeWidth="1.5" />
            <circle cx="180" cy="60" r="80" fill="none" stroke="#F58220" strokeWidth="1" />
            <circle cx="180" cy="60" r="40" fill="none" stroke="#F58220" strokeWidth="0.5" />
          </g>
          <g opacity="0.12">
            <path d="M 1000 -20 Q 1100 100 1000 220" stroke="#FFA84A" strokeWidth="80" fill="none" strokeLinecap="round" />
          </g>
          <text x="60" y="180" fontFamily="var(--font-bn-display)" fontSize="120" fill="rgba(247,244,237,0.05)" fontWeight="700" fontStyle="italic">আ</text>
          <text x="1080" y="56" fontFamily="var(--font-display)" fontSize="36" fill="rgba(247,244,237,0.07)" fontWeight="800" letterSpacing="0.05em">CV/2025</text>
        </svg>
      </div>

      <div className="container cp-hero-inner">
        <div className="cp-id">
          <div className="cp-avatar" style={{ background: PROFILE.avatar }}>
            {PROFILE.initials}
            {PROFILE.open && <span className="cp-avatar-status" title="Open to work"></span>}
          </div>

          <div className="cp-id-text">
            <div className="cp-name-row">
              <h1 className="cp-name">
                <span className="t-bn">{PROFILE.name.bn}</span>
                <span className="t-en">{PROFILE.name.en}</span>
              </h1>
              <span className="cp-pronoun">({PROFILE.pronoun})</span>
              <span className="cp-verified" title="Verified profile">
                {CI.check}
                <span className="t-bn">যাচাইকৃত</span>
                <span className="t-en">Verified</span>
              </span>
            </div>
            <p className="cp-headline">
              <span className="t-bn">{PROFILE.headline.bn}</span>
              <span className="t-en">{PROFILE.headline.en}</span>
            </p>
            <div className="cp-meta-row">
              <span className="cp-meta-item">
                {CI.pin}
                <span className="t-bn">{PROFILE.loc.bn}</span>
                <span className="t-en">{PROFILE.loc.en}</span>
              </span>
              {PROFILE.open && (
                <span className="cp-open-pill">
                  <span className="cp-open-dot"></span>
                  <span className="t-bn">এখনই হায়ারিং উপলব্ধ</span>
                  <span className="t-en">Available to hire now</span>
                </span>
              )}
              <span className="cp-meta-item">
                <span style={{ fontSize: 14 }}>⇄</span>
                <span className="t-bn">{PROFILE.remote.bn}</span>
                <span className="t-en">{PROFILE.remote.en}</span>
              </span>
              <span className="cp-meta-item">
                <span style={{ fontSize: 14 }}>💼</span>
                <span className="t-bn">৬ বছর অভিজ্ঞতা</span>
                <span className="t-en">6 yrs experience</span>
              </span>
            </div>
          </div>

          <div className="cp-cta">
            {editing ? (
              <button className="cp-edit-btn cp-edit-btn-on" onClick={() => setEditing(false)}>
                {CI.check}
                <span className="t-bn">সংরক্ষণ</span>
                <span className="t-en">Save changes</span>
              </button>
            ) : (
              <>
                <button className="cp-cta-primary">
                  {CI.send}
                  <span className="t-bn">যোগাযোগ করুন</span>
                  <span className="t-en">Contact</span>
                </button>
                <button className="cp-cta-secondary">
                  ⬇
                  <span className="t-bn">CV ডাউনলোড</span>
                  <span className="t-en">Download CV</span>
                </button>
                <button className="cp-edit-btn" onClick={() => setEditing(true)}>
                  ✎ <span className="t-bn">এডিট</span><span className="t-en">Edit</span>
                </button>
              </>
            )}
          </div>
        </div>
      </div>
    </section>
  );
}

// =================== STATS STRIP ===================
function StatsStrip({ lang }) {
  const stats = [
    { num: PROFILE.views.toLocaleString(), bn: 'প্রোফাইল ভিউ', en: 'Profile views', sub: { bn: 'গত ৩০ দিন', en: 'last 30 days' }, color: 'orange' },
    { num: PROFILE.searches, bn: 'রিক্রুটার সার্চ', en: 'Recruiter searches', sub: { bn: 'এই সপ্তাহ', en: 'this week' }, color: 'navy' },
    { num: PROFILE.recruiters, bn: 'রিক্রুটার ম্যাসেজ', en: 'Recruiter messages', sub: { bn: 'নতুন', en: 'new' }, color: 'gold' },
    { num: PROFILE.matchAvg + '%', bn: 'গড় ম্যাচ স্কোর', en: 'Avg match score', sub: { bn: 'আপনার ১২ আবেদনে', en: 'across 12 applications' }, color: 'green' },
  ];
  return (
    <section className="cp-stats">
      <div className="container">
        <div className="cp-stats-grid">
          {stats.map((s, i) => (
            <div key={i} className={'cp-stat cp-stat-' + s.color}>
              <div className="cp-stat-num">{s.num}</div>
              <div className="cp-stat-label">
                <span className="t-bn">{s.bn}</span>
                <span className="t-en">{s.en}</span>
              </div>
              <div className="cp-stat-sub">
                <span className="t-bn">{s.sub.bn}</span>
                <span className="t-en">{s.sub.en}</span>
              </div>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

// =================== ABOUT + SKILLS ===================
function About({ lang }) {
  return (
    <section className="cp-sec cp-about">
      <SectionTitle bn="সম্পর্কে" en="About" no="01" />
      <p className="cp-bio">
        <span className="t-bn">{PROFILE.bio.bn}</span>
        <span className="t-en">{PROFILE.bio.en}</span>
      </p>
      <div className="cp-pref-grid">
        <div className="cp-pref">
          <span className="cp-pref-label">
            <span className="t-bn">প্রত্যাশিত বেতন</span>
            <span className="t-en">Expected salary</span>
          </span>
          <span className="cp-pref-val">
            <span className="t-bn">{PROFILE.expectedSalary.bn}</span>
            <span className="t-en">{PROFILE.expectedSalary.en}</span>
            <small>/<span className="t-bn">মাস</span><span className="t-en">mo</span></small>
          </span>
        </div>
        <div className="cp-pref">
          <span className="cp-pref-label">
            <span className="t-bn">নোটিশ পিরিয়ড</span>
            <span className="t-en">Notice period</span>
          </span>
          <span className="cp-pref-val">
            <span className="t-bn">{PROFILE.noticePeriod.bn}</span>
            <span className="t-en">{PROFILE.noticePeriod.en}</span>
          </span>
        </div>
        <div className="cp-pref">
          <span className="cp-pref-label">
            <span className="t-bn">পছন্দের কর্মপদ্ধতি</span>
            <span className="t-en">Work mode</span>
          </span>
          <span className="cp-pref-val">
            <span className="t-bn">{PROFILE.remote.bn}</span>
            <span className="t-en">{PROFILE.remote.en}</span>
          </span>
        </div>
      </div>
    </section>
  );
}

function Skills({ lang }) {
  const groups = {
    design: { bn: 'ডিজাইন', en: 'Design' },
    research: { bn: 'রিসার্চ', en: 'Research' },
    code: { bn: 'কোড', en: 'Code' },
    motion: { bn: 'মোশন', en: 'Motion' },
  };
  const grouped = uM_groupSkills();
  return (
    <section className="cp-sec cp-skills-sec">
      <SectionTitle bn="দক্ষতা" en="Skills" no="02" />
      <div className="cp-skills-grouped">
        {Object.entries(grouped).map(([k, list]) => (
          <div key={k} className="cp-skills-group">
            <div className="cp-skills-group-label">
              <span className="t-bn">{groups[k]?.bn || k}</span>
              <span className="t-en">{groups[k]?.en || k}</span>
            </div>
            <div className="cp-skills-list">
              {list.map(s => (
                <div key={s.name} className="cp-skill" data-tier={s.level >= 90 ? 'expert' : s.level >= 75 ? 'advanced' : 'intermediate'}>
                  <span className="cp-skill-name">{s.name}</span>
                  <span className="cp-skill-bar"><span className="cp-skill-fill" style={{ width: s.level + '%' }}></span></span>
                  <span className="cp-skill-num">{s.level}</span>
                </div>
              ))}
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}
function uM_groupSkills() {
  const out = {};
  PROFILE.skills.forEach(s => { (out[s.group] = out[s.group] || []).push(s); });
  Object.values(out).forEach(arr => arr.sort((a,b) => b.level - a.level));
  return out;
}

// =================== EXPERIENCE TIMELINE ===================
function Experience({ lang }) {
  return (
    <section className="cp-sec cp-exp">
      <SectionTitle bn="অভিজ্ঞতা" en="Experience" no="03" />
      <div className="cp-timeline">
        {PROFILE.experience.map((exp, i) => (
          <div key={i} className={'cp-tl-item' + (i === 0 ? ' is-current' : '')}>
            <div className="cp-tl-marker">
              <div className="cp-tl-logo" style={{ background: exp.bg }}>{exp.logo}</div>
              {i < PROFILE.experience.length - 1 && <div className="cp-tl-line"></div>}
            </div>
            <div className="cp-tl-body">
              <div className="cp-tl-head">
                <h3 className="cp-tl-role">
                  <span className="t-bn">{exp.role.bn}</span>
                  <span className="t-en">{exp.role.en}</span>
                </h3>
                <div className="cp-tl-co">
                  {exp.co}
                  {i === 0 && (
                    <span className="cp-tl-current">
                      <span className="cp-tl-current-dot"></span>
                      <span className="t-bn">বর্তমান</span>
                      <span className="t-en">Current</span>
                    </span>
                  )}
                </div>
                <div className="cp-tl-meta">
                  <span><span className="t-bn">{exp.from.bn}</span><span className="t-en">{exp.from.en}</span> — <span className="t-bn">{exp.to.bn}</span><span className="t-en">{exp.to.en}</span></span>
                  <span>·</span>
                  <span>{Math.floor(exp.months / 12)}<span className="t-bn">বছর</span><span className="t-en">y</span> {exp.months % 12}<span className="t-bn">মা</span><span className="t-en">m</span></span>
                  <span>·</span>
                  <span><span className="t-bn">{exp.loc.bn}</span><span className="t-en">{exp.loc.en}</span></span>
                </div>
              </div>
              <ul className="cp-tl-notes">
                {exp.notes[lang].map((n, k) => <li key={k}>{n}</li>)}
              </ul>
              <div className="cp-tl-tags">
                {exp.tags.map(t => <span key={t} className="cp-tl-tag">{t}</span>)}
              </div>
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}

// =================== PROJECTS ===================
function Projects({ lang }) {
  return (
    <section className="cp-sec cp-proj-sec">
      <SectionTitle bn="প্রজেক্ট ও কেস স্টাডি" en="Projects & Case Studies" no="04" />
      <div className="cp-proj-grid">
        {PROFILE.projects.map((p, i) => (
          <a key={i} href="#" onClick={(e)=>e.preventDefault()} className="cp-proj">
            <div className="cp-proj-art" style={{ '--c': p.color }}>
              <span className="cp-proj-art-bg"></span>
              <svg viewBox="0 0 100 60" className="cp-proj-art-mark">
                <circle cx="20" cy="30" r="14" fill="rgba(255,255,255,0.18)" />
                <rect x="40" y="22" width="40" height="16" rx="3" fill="rgba(255,255,255,0.22)" />
                <rect x="40" y="42" width="24" height="6" rx="2" fill="rgba(255,255,255,0.14)" />
              </svg>
              <span className="cp-proj-year">{p.year}</span>
            </div>
            <div className="cp-proj-text">
              <div className="cp-proj-kind">
                <span className="t-bn">{p.kind.bn}</span>
                <span className="t-en">{p.kind.en}</span>
              </div>
              <div className="cp-proj-title">
                <span className="t-bn">{p.title.bn}</span>
                <span className="t-en">{p.title.en}</span>
              </div>
              <div className="cp-proj-blurb">
                <span className="t-bn">{p.blurb.bn}</span>
                <span className="t-en">{p.blurb.en}</span>
              </div>
            </div>
          </a>
        ))}
      </div>
    </section>
  );
}

// =================== EDUCATION + CERTS + LANG ===================
function EducationBlock({ lang }) {
  return (
    <section className="cp-sec cp-edu-sec">
      <SectionTitle bn="শিক্ষা" en="Education" no="05" />
      <div className="cp-edu-list">
        {PROFILE.education.map((e, i) => (
          <div key={i} className="cp-edu">
            <div className="cp-edu-school">
              <span className="t-bn">{e.school.bn}</span>
              <span className="t-en">{e.school.en}</span>
            </div>
            <div className="cp-edu-deg">
              <span className="t-bn">{e.deg.bn}</span>
              <span className="t-en">{e.deg.en}</span>
            </div>
            <div className="cp-edu-meta">
              <span>{e.year}</span>
              <span>·</span>
              <span>GPA: {e.gpa}</span>
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}

function CertsBlock({ lang }) {
  return (
    <section className="cp-sec cp-cert-sec">
      <SectionTitle bn="সার্টিফিকেট ও কোর্স" en="Certifications" no="06" />
      <div className="cp-cert-list">
        {PROFILE.certs.map((c, i) => (
          <div key={i} className="cp-cert">
            <div className="cp-cert-icon">📜</div>
            <div>
              <div className="cp-cert-name">
                <span className="t-bn">{c.name.bn}</span>
                <span className="t-en">{c.name.en}</span>
              </div>
              <div className="cp-cert-meta">{c.by} · {c.year}</div>
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}

function LangsBlock({ lang }) {
  const labelMap = { native: { bn: 'মাতৃভাষা', en: 'Native' }, fluent: { bn: 'সাবলীল', en: 'Fluent' }, conversational: { bn: 'কথোপকথন', en: 'Conversational' } };
  return (
    <section className="cp-sec cp-lang-sec">
      <SectionTitle bn="ভাষা" en="Languages" no="07" />
      <div className="cp-lang-list">
        {PROFILE.langs.map((l, i) => (
          <div key={i} className="cp-lang">
            <div className="cp-lang-name">
              <span className="t-bn">{l.name.bn}</span>
              <span className="t-en">{l.name.en}</span>
            </div>
            <div className="cp-lang-stars">
              {[1,2,3,4,5].map(n => (
                <span key={n} className={'cp-lang-star' + (n <= l.stars ? ' is-on' : '')}>●</span>
              ))}
            </div>
            <div className="cp-lang-level">
              <span className="t-bn">{labelMap[l.level].bn}</span>
              <span className="t-en">{labelMap[l.level].en}</span>
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}

// =================== ACHIEVEMENTS + ENDORSEMENTS ===================
function Achievements({ lang }) {
  return (
    <section className="cp-sec cp-ach-sec">
      <SectionTitle bn="অর্জন ও স্বীকৃতি" en="Achievements & Recognition" no="08" />
      <div className="cp-ach-grid">
        {PROFILE.achievements.map((a, i) => (
          <div key={i} className="cp-ach">
            <span className="cp-ach-ic">{a.ic}</span>
            <div>
              <div className="cp-ach-text">
                <span className="t-bn">{a.bn}</span>
                <span className="t-en">{a.en}</span>
              </div>
              <div className="cp-ach-meta">
                <span className="t-bn">{a.meta.bn}</span>
                <span className="t-en">{a.meta.en}</span>
              </div>
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}

function Endorsements({ lang }) {
  return (
    <section className="cp-sec cp-endo-sec">
      <SectionTitle bn="রেকমেন্ডেশন" en="Endorsements" no="09" />
      <div className="cp-endo-grid">
        {PROFILE.endorsements.map((e, i) => (
          <div key={i} className="cp-endo">
            <div className="cp-endo-quote">"</div>
            <p className="cp-endo-text">
              <span className="t-bn">{e.text.bn.replace(/^"|"$/g,'')}</span>
              <span className="t-en">{e.text.en.replace(/^"|"$/g,'')}</span>
            </p>
            <div className="cp-endo-by">
              <span className="cp-endo-avatar" style={{ background: e.avatarBg }}>
                {e.who[lang].split(' ').map(s=>s[0]).join('').slice(0,2)}
              </span>
              <div>
                <div className="cp-endo-who">
                  <span className="t-bn">{e.who.bn}</span>
                  <span className="t-en">{e.who.en}</span>
                </div>
                <div className="cp-endo-role">
                  <span className="t-bn">{e.role.bn}</span>
                  <span className="t-en">{e.role.en}</span>
                </div>
              </div>
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}

// =================== SIDEBAR ===================
function ProfileSidebar({ lang }) {
  const completion = 92;
  return (
    <aside className="cp-side">
      {/* Completion */}
      <div className="cp-side-card cp-side-comp">
        <div className="cp-side-title">
          <span className="t-bn">প্রোফাইল সম্পূর্ণতা</span>
          <span className="t-en">Profile completeness</span>
        </div>
        <div className="cp-comp-bar"><div className="cp-comp-fill" style={{ width: completion + '%' }}></div></div>
        <div className="cp-comp-row">
          <span className="cp-comp-num">{completion}%</span>
          <span className="cp-comp-tier">
            <span className="t-bn">এক্সপার্ট লেভেল</span>
            <span className="t-en">Expert level</span>
          </span>
        </div>
        <ul className="cp-comp-todo">
          <li className="is-done">✓ <span className="t-bn">বেসিক তথ্য</span><span className="t-en">Basic info</span></li>
          <li className="is-done">✓ <span className="t-bn">অভিজ্ঞতা</span><span className="t-en">Experience</span></li>
          <li className="is-done">✓ <span className="t-bn">৪+ স্কিল</span><span className="t-en">4+ skills</span></li>
          <li className="is-done">✓ <span className="t-bn">প্রজেক্ট</span><span className="t-en">Projects</span></li>
          <li className="is-todo">○ <span className="t-bn">ভিডিও পরিচিতি যোগ করুন</span><span className="t-en">Add video intro</span></li>
        </ul>
      </div>

      {/* Contact */}
      <div className="cp-side-card cp-contact">
        <div className="cp-side-title">
          <span className="t-bn">যোগাযোগ</span>
          <span className="t-en">Contact</span>
        </div>
        <ul className="cp-contact-list">
          <li><span className="cp-contact-ic">✉</span><a href={'mailto:' + PROFILE.contact.email}>{PROFILE.contact.email}</a></li>
          <li><span className="cp-contact-ic">📱</span><span>{PROFILE.contact.phone}</span></li>
          <li><span className="cp-contact-ic">🌐</span><a href={'https://' + PROFILE.contact.web} target="_blank" rel="noopener noreferrer">{PROFILE.contact.web}</a></li>
          <li><span className="cp-contact-ic">in</span><a href={'https://linkedin.com/in/' + PROFILE.contact.linkedin.replace(/^@/,'')} target="_blank" rel="noopener noreferrer">{PROFILE.contact.linkedin}</a></li>
          <li><span className="cp-contact-ic">▤</span><a href={'https://dribbble.com/' + PROFILE.contact.dribbble.replace(/^@/,'')} target="_blank" rel="noopener noreferrer">{PROFILE.contact.dribbble}</a></li>
          <li><span className="cp-contact-ic">⌘</span><a href={'https://github.com/' + PROFILE.contact.github.replace(/^@/,'')} target="_blank" rel="noopener noreferrer">{PROFILE.contact.github}</a></li>
        </ul>
      </div>

      {/* Availability */}
      <div className="cp-side-card cp-avail">
        <div className="cp-avail-pulse"></div>
        <div className="cp-avail-title">
          <span className="t-bn">এখনই হায়ারিং উপলব্ধ</span>
          <span className="t-en">Open to hire — now</span>
        </div>
        <div className="cp-avail-detail">
          <div><span className="t-bn">যোগদান</span><span className="t-en">Start</span><b><span className="t-bn">{PROFILE.noticePeriod.bn}</span><span className="t-en">{PROFILE.noticePeriod.en}</span></b></div>
          <div><span className="t-bn">বেতন</span><span className="t-en">Salary</span><b><span className="t-bn">{PROFILE.expectedSalary.bn}</span><span className="t-en">{PROFILE.expectedSalary.en}</span></b></div>
          <div><span className="t-bn">কর্মপদ্ধতি</span><span className="t-en">Mode</span><b><span className="t-bn">{PROFILE.remote.bn}</span><span className="t-en">{PROFILE.remote.en}</span></b></div>
        </div>
      </div>

      {/* AI suggested jobs */}
      <div className="cp-side-card cp-ai-jobs">
        <div className="cp-side-title">
          <span className="cp-ai-mini">{CI.spark}</span>
          <span className="t-bn">আপনার জন্য AI ম্যাচ</span>
          <span className="t-en">AI matches for you</span>
        </div>
        {[
          { co: 'Pathao', title: { bn: 'সিনিয়র প্রোডাক্ট ডিজাইনার', en: 'Senior Product Designer' }, match: 96, bg: '#E81E2C', logo: 'P' },
          { co: 'Chaldal', title: { bn: 'লিড ডিজাইনার', en: 'Lead Designer' }, match: 91, bg: '#10B981', logo: 'C' },
          { co: 'ShopUp', title: { bn: 'প্রোডাক্ট ডিজাইনার', en: 'Product Designer' }, match: 89, bg: '#F59E0B', logo: 'S' },
        ].map((j, i) => (
          <a key={i} href="job-detail.html" className="cp-ai-job">
            <span className="cp-ai-job-logo" style={{ background: j.bg }}>{j.logo}</span>
            <div className="cp-ai-job-text">
              <div className="cp-ai-job-co">{j.co}</div>
              <div className="cp-ai-job-title">
                <span className="t-bn">{j.title.bn}</span>
                <span className="t-en">{j.title.en}</span>
              </div>
            </div>
            <div className="cp-ai-job-match">{j.match}<small>%</small></div>
          </a>
        ))}
        <a href="job-search.html" className="cp-ai-jobs-all">
          <span className="t-bn">সব ম্যাচ →</span>
          <span className="t-en">View all matches →</span>
        </a>
      </div>
    </aside>
  );
}

// =================== HELPER ===================
function SectionTitle({ bn, en, no }) {
  return (
    <div className="cp-sec-title">
      <span className="cp-sec-no">{no}</span>
      <h2>
        <span className="t-bn">{bn}</span>
        <span className="t-en">{en}</span>
      </h2>
    </div>
  );
}

// =================== APP ===================
function App() {
  const [lang, setLang] = window.usePageLang('bn');
  const [editing, setEditing] = cS(false);

  return (
    <>
      <PageTopBar lang={lang} setLang={setLang} />
      <PageHeader active={null} />
      <ProfileHeader editing={editing} setEditing={setEditing} lang={lang} />
      <StatsStrip lang={lang} />
      <section className="cp-body">
        <div className="container cp-body-grid">
          <main className="cp-main">
            <About lang={lang} />
            <Skills lang={lang} />
            <Experience lang={lang} />
            <Projects lang={lang} />
            <div className="cp-two-col">
              <EducationBlock lang={lang} />
              <CertsBlock lang={lang} />
            </div>
            <LangsBlock lang={lang} />
            <Achievements lang={lang} />
            <Endorsements lang={lang} />
          </main>
          <ProfileSidebar lang={lang} />
        </div>
      </section>

      <PageFooter lang={lang} />

      {editing && (
        <div className="cp-edit-bar">
          <span className="cp-edit-bar-pulse"></span>
          <span>
            <span className="t-bn">এডিট মোড সক্রিয় · যেকোনো সেকশনে ক্লিক করে এডিট করুন</span>
            <span className="t-en">Edit mode active · click any section to edit</span>
          </span>
          <button className="cp-edit-bar-done" onClick={() => setEditing(false)}>
            ✓ <span className="t-bn">শেষ</span><span className="t-en">Done</span>
          </button>
        </div>
      )}
    </>
  );
}

ReactDOM.createRoot(document.getElementById('root')).render(<App />);
