/* global React, ReactDOM, NOBBYO_ICONS */
const { useState: rS, useEffect: rE } = React;
const RI = window.NOBBYO_ICONS;

// ============================================================
// DATA
// ============================================================
const KPIS_BN = [
  { label: 'মোট আবেদন', val: '১,২৪৭', trend: '+১৮% ', good: true, bench: 'গত মাস', spark: [4, 6, 5, 8, 7, 9, 10, 8, 11, 10, 13, 14], icon: 'people' },
  { label: 'স্ক্রিন্ড আবেদনকারী', val: '২৮৪', trend: '+৭% ', good: true, bench: 'এই সপ্তাহ', spark: [3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10], icon: 'check' },
  { label: 'ইন্টারভিউ চলছে', val: '৪২', trend: '+১১ ', good: true, bench: 'গত ৭ দিন', spark: [2, 3, 4, 3, 5, 4, 6, 5, 7, 6, 8, 9], icon: 'video' },
  { label: 'গড় হায়ার সময়', val: '১৪ দিন', trend: '−৩ দিন', good: true, bench: 'বেঞ্চ ১৭', spark: [10, 9, 11, 8, 9, 7, 8, 6, 7, 5, 6, 5], icon: 'clock' },
];
const KPIS_EN = [
  { label: 'Total Applications', val: '1,247', trend: '+18%', good: true, bench: 'vs last mo', spark: [4, 6, 5, 8, 7, 9, 10, 8, 11, 10, 13, 14], icon: 'people' },
  { label: 'Screened', val: '284', trend: '+7%', good: true, bench: 'this week', spark: [3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10], icon: 'check' },
  { label: 'In Interview', val: '42', trend: '+11', good: true, bench: 'last 7 days', spark: [2, 3, 4, 3, 5, 4, 6, 5, 7, 6, 8, 9], icon: 'video' },
  { label: 'Avg Time to Hire', val: '14 days', trend: '−3 days', good: true, bench: 'bench 17', spark: [10, 9, 11, 8, 9, 7, 8, 6, 7, 5, 6, 5], icon: 'clock' },
];

const KPI_ICONS = {
  people: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>,
  check: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><polyline points="20 6 9 17 4 12"/></svg>,
  video: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2"/></svg>,
  clock: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>,
  briefcase: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><rect x="2" y="7" width="20" height="14" rx="2"/><path d="M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2"/></svg>,
  inbox: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><polyline points="22 12 16 12 14 15 10 15 8 12 2 12"/><path d="M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"/></svg>,
  chart: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><line x1="12" y1="20" x2="12" y2="10"/><line x1="18" y1="20" x2="18" y2="4"/><line x1="6" y1="20" x2="6" y2="16"/></svg>,
  cog: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>,
  spark: <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 2l1.5 6.5L20 10l-6.5 1.5L12 18l-1.5-6.5L4 10l6.5-1.5z"/></svg>,
  bell: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></svg>,
  search: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>,
};

const STAGES = [
  { id: 'applied', label_bn: 'নতুন আবেদন', label_en: 'Applied', color: '#2A3656' },
  { id: 'screening', label_bn: 'AI স্ক্রিনিং', label_en: 'AI Screening', color: '#F58220' },
  { id: 'interview', label_bn: 'ইন্টারভিউ', label_en: 'Interview', color: '#FFC400' },
  { id: 'offer', label_bn: 'অফার', label_en: 'Offer', color: '#52A22E' },
  { id: 'hired', label_bn: 'হায়ার্ড', label_en: 'Hired', color: '#E2126B' },
];

const COLORS = ['#E2126B', '#2A3656', '#52A22E', '#F58220', '#9333EA', '#0EA5E9', '#DC2626'];

const CANDIDATES = [
  { id: 1, stage: 'applied', name_bn: 'আমল হোসেন', name_en: 'Amal Hossain', role_bn: 'প্রোডাক্ট ডিজাইনার · ৫y', role_en: 'Product Designer · 5y', match: 94, av: 'A', source: 'NOBBYO AI', flags: ['Top 5%'], aiNote: 'Strong fintech fit', bar: 100 },
  { id: 2, stage: 'applied', name_bn: 'নুসরাত জাহান', name_en: 'Nusrat Jahan', role_bn: 'সিনিয়র UX · ৬y', role_en: 'Senior UX · 6y', match: 91, av: 'N', source: 'LinkedIn', flags: [], aiNote: '', bar: 90 },
  { id: 3, stage: 'applied', name_bn: 'রাকিবুল ইসলাম', name_en: 'Rakibul Islam', role_bn: 'প্রোডাক্ট ডিজাইনার', role_en: 'Product Designer', match: 78, av: 'R', source: 'Direct', flags: [], aiNote: '', bar: 78 },
  { id: 4, stage: 'applied', name_bn: 'ফাহিমা আক্তার', name_en: 'Fahima Akter', role_bn: 'UX · ৩y', role_en: 'UX · 3y', match: 72, av: 'F', source: 'Referral', flags: [], aiNote: '', bar: 72 },
  { id: 5, stage: 'screening', name_bn: 'সাজিদ আহমেদ', name_en: 'Sajid Ahmed', role_bn: 'প্রোডাক্ট ডিজাইনার · ৪y', role_en: 'Product Designer · 4y', match: 88, av: 'S', source: 'NOBBYO AI', flags: ['Portfolio reviewed'], aiNote: 'Strong portfolio', bar: 88 },
  { id: 6, stage: 'screening', name_bn: 'তানজিনা ইসলাম', name_en: 'Tanzina Islam', role_bn: 'UX রিসার্চার', role_en: 'UX Researcher', match: 85, av: 'T', source: 'NOBBYO AI', flags: [], aiNote: '', bar: 85 },
  { id: 7, stage: 'screening', name_bn: 'মাহি রহমান', name_en: 'Mahi Rahman', role_bn: 'প্রোডাক্ট ডিজাইনার', role_en: 'Product Designer', match: 82, av: 'M', source: 'LinkedIn', flags: [], aiNote: '', bar: 82 },
  { id: 8, stage: 'interview', name_bn: 'রিয়াদ হাসান', name_en: 'Riyad Hasan', role_bn: 'সিনিয়র ডিজাইনার', role_en: 'Senior Designer', match: 92, av: 'R', source: 'NOBBYO AI', flags: ['R2 today'], aiNote: 'Tech round 4pm', bar: 92 },
  { id: 9, stage: 'interview', name_bn: 'সানজিদা পারভেজ', name_en: 'Sanjida Parvez', role_bn: 'প্রোডাক্ট ডিজাইনার · ৭y', role_en: 'Product Designer · 7y', match: 89, av: 'S', source: 'Referral', flags: ['R3'], aiNote: '', bar: 89 },
  { id: 10, stage: 'offer', name_bn: 'আদনান চৌধুরী', name_en: 'Adnan Chowdhury', role_bn: 'লিড ডিজাইনার · ৮y', role_en: 'Lead Designer · 8y', match: 95, av: 'A', source: 'NOBBYO AI', flags: ['Offer sent'], aiNote: '৳১,৭৫,০০০ offered', bar: 95 },
  { id: 11, stage: 'hired', name_bn: 'মাইশা ইসলাম', name_en: 'Maisha Islam', role_bn: 'প্রোডাক্ট ডিজাইনার · ৪y', role_en: 'Product Designer · 4y', match: 93, av: 'M', source: 'NOBBYO AI', flags: ['Joining Jan 15'], aiNote: 'Q1 2026 start', bar: 100 },
];

const FUNNEL_BN = [
  { l: 'আবেদন', n: 1247, p: 100 },
  { l: 'স্ক্রিন্ড', n: 284, p: 23 },
  { l: 'ইন্টারভিউ', n: 42, p: 3.4 },
  { l: 'অফার', n: 14, p: 1.1 },
  { l: 'হায়ার্ড', n: 9, p: 0.7 },
];
const FUNNEL_EN = [
  { l: 'Applied', n: 1247, p: 100 },
  { l: 'Screened', n: 284, p: 23 },
  { l: 'Interview', n: 42, p: 3.4 },
  { l: 'Offer', n: 14, p: 1.1 },
  { l: 'Hired', n: 9, p: 0.7 },
];

const UPCOMING_BN = [
  { d: '১৪', m: 'নভে', t: 'রিয়াদ হাসান · R2 ইন্টারভিউ', sub: '৪:০০ PM · Zoom', who: 'R' },
  { d: '১৫', m: 'নভে', t: 'সানজিদা পারভেজ · R3 প্যানেল', sub: '১১:০০ AM · গুলশান', who: 'S' },
  { d: '১৬', m: 'নভে', t: 'নতুন posting review · iOS Dev', sub: 'Hiring panel', who: 'i' },
  { d: '১৭', m: 'নভে', t: 'আদনান চৌধুরী · অফার deadline', sub: '২৪ ঘণ্টা বাকি', who: 'A' },
];
const UPCOMING_EN = [
  { d: '14', m: 'Nov', t: 'Riyad Hasan · R2 Interview', sub: '4:00 PM · Zoom', who: 'R' },
  { d: '15', m: 'Nov', t: 'Sanjida Parvez · R3 Panel', sub: '11:00 AM · Gulshan', who: 'S' },
  { d: '16', m: 'Nov', t: 'Posting review · iOS Dev', sub: 'Hiring panel', who: 'i' },
  { d: '17', m: 'Nov', t: 'Adnan Chowdhury · Offer deadline', sub: '24h left', who: 'A' },
];

const ACTIVITY_BN = [
  { c: '#52A22E', i: '✓', t: '<strong>মাইশা ইসলাম</strong> অফার accept করেছেন', m: '২ ঘণ্টা আগে' },
  { c: '#F58220', i: '✦', t: 'AI <strong>৭ জন</strong> top match flag করেছে', m: '৩ ঘণ্টা আগে' },
  { c: '#2A3656', i: '↑', t: 'iOS Dev পদে <strong>২৩টি নতুন আবেদন</strong>', m: '৬ ঘণ্টা আগে' },
  { c: '#E2126B', i: '!', t: '<strong>আদনান চৌধুরী</strong>-কে অফার পাঠানো হয়েছে', m: 'গতকাল' },
];
const ACTIVITY_EN = [
  { c: '#52A22E', i: '✓', t: '<strong>Maisha Islam</strong> accepted offer', m: '2 hrs ago' },
  { c: '#F58220', i: '✦', t: 'AI flagged <strong>7 top matches</strong>', m: '3 hrs ago' },
  { c: '#2A3656', i: '↑', t: '<strong>23 new applications</strong> for iOS Dev', m: '6 hrs ago' },
  { c: '#E2126B', i: '!', t: 'Offer sent to <strong>Adnan Chowdhury</strong>', m: 'Yesterday' },
];

const AI_BRIEF_BN = [
  { n: '7', t: 'নতুন top-tier ম্যাচ আজ', s: 'Score ৯০+, immediate review করুন' },
  { n: '3', t: 'ইন্টারভিউ অপেক্ষমাণ ৩ দিন+', s: 'বিলম্ব করলে candidates হারাবেন' },
  { n: '2', t: 'job posting low-traffic', s: 'Title rewrite suggest করছি' },
];
const AI_BRIEF_EN = [
  { n: '7', t: 'New top-tier matches today', s: 'Scores 90+, review immediately' },
  { n: '3', t: 'Interviews stalled 3+ days', s: 'Risk of losing candidates' },
  { n: '2', t: 'Job postings low traffic', s: 'Suggesting title rewrites' },
];

const JOBS_BN = [
  { title: 'সিনিয়র প্রোডাক্ট ডিজাইনার', dept: 'Design · Gulshan', status: 'active', applied: 142, screened: 38, interview: 8, offer: 1, posted: '৬ দিন আগে', daysLeft: 6 },
  { title: 'স্টাফ ব্যাকএন্ড ইঞ্জিনিয়ার', dept: 'Engineering · Gulshan', status: 'active', applied: 86, screened: 24, interview: 5, offer: 0, posted: '১২ দিন আগে', daysLeft: 18 },
  { title: 'প্রোডাক্ট ম্যানেজার, পেমেন্টস', dept: 'Product · Gulshan', status: 'active', applied: 198, screened: 52, interview: 11, offer: 2, posted: '৩ দিন আগে', daysLeft: 27 },
  { title: 'iOS ডেভেলপার (মিড)', dept: 'Engineering · Hybrid', status: 'active', applied: 91, screened: 19, interview: 4, offer: 0, posted: '১ দিন আগে', daysLeft: 29 },
  { title: 'সিনিয়র ডেটা সায়েন্টিস্ট', dept: 'Data · Remote', status: 'closing', applied: 67, screened: 28, interview: 9, offer: 3, posted: '২৫ দিন আগে', daysLeft: 5 },
  { title: 'গ্রোথ মার্কেটিং লিড', dept: 'Marketing · Hybrid', status: 'paused', applied: 124, screened: 15, interview: 0, offer: 0, posted: '২০ দিন আগে', daysLeft: 10 },
  { title: 'কনটেন্ট স্ট্র্যাটেজিস্ট', dept: 'Marketing · Remote', status: 'draft', applied: 0, screened: 0, interview: 0, offer: 0, posted: 'Not posted', daysLeft: 0 },
];
const JOBS_EN = [
  { title: 'Senior Product Designer', dept: 'Design · Gulshan', status: 'active', applied: 142, screened: 38, interview: 8, offer: 1, posted: '6 days ago', daysLeft: 6 },
  { title: 'Staff Backend Engineer', dept: 'Engineering · Gulshan', status: 'active', applied: 86, screened: 24, interview: 5, offer: 0, posted: '12 days ago', daysLeft: 18 },
  { title: 'Product Manager, Payments', dept: 'Product · Gulshan', status: 'active', applied: 198, screened: 52, interview: 11, offer: 2, posted: '3 days ago', daysLeft: 27 },
  { title: 'iOS Developer (Mid)', dept: 'Engineering · Hybrid', status: 'active', applied: 91, screened: 19, interview: 4, offer: 0, posted: '1 day ago', daysLeft: 29 },
  { title: 'Senior Data Scientist', dept: 'Data · Remote', status: 'closing', applied: 67, screened: 28, interview: 9, offer: 3, posted: '25 days ago', daysLeft: 5 },
  { title: 'Growth Marketing Lead', dept: 'Marketing · Hybrid', status: 'paused', applied: 124, screened: 15, interview: 0, offer: 0, posted: '20 days ago', daysLeft: 10 },
  { title: 'Content Strategist', dept: 'Marketing · Remote', status: 'draft', applied: 0, screened: 0, interview: 0, offer: 0, posted: 'Not posted', daysLeft: 0 },
];

const SOURCES_BN = [
  { l: 'NOBBYO AI ম্যাচ', n: 487, p: 39, c: '#F58220' },
  { l: 'LinkedIn', n: 312, p: 25, c: '#0A66C2' },
  { l: 'রেফারেল', n: 187, p: 15, c: '#52A22E' },
  { l: 'Direct', n: 156, p: 12.5, c: '#2A3656' },
  { l: 'Job Boards', n: 105, p: 8.5, c: '#9333EA' },
];
const SOURCES_EN = [
  { l: 'NOBBYO AI Match', n: 487, p: 39, c: '#F58220' },
  { l: 'LinkedIn', n: 312, p: 25, c: '#0A66C2' },
  { l: 'Referral', n: 187, p: 15, c: '#52A22E' },
  { l: 'Direct', n: 156, p: 12.5, c: '#2A3656' },
  { l: 'Job Boards', n: 105, p: 8.5, c: '#9333EA' },
];

// 30-day trend data for charts (applications + interviews)
const TREND_APPS = [28, 32, 35, 30, 38, 42, 45, 41, 48, 52, 58, 55, 62, 65, 68, 72, 75, 71, 78, 82, 85, 88, 92, 90, 95, 98, 102, 108, 112, 118];
const TREND_INTS = [3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 8, 10, 10, 11, 12, 12, 13, 13, 14, 15, 14, 16, 17, 18, 18, 19, 20, 21, 22];

// ============================================================
// SIDEBAR
// ============================================================
function Sidebar({ active, setActive, lang }) {
  const navMain = [
    { id: 'overview', icon: 'chart', label_bn: 'ওভারভিউ', label_en: 'Overview' },
    { id: 'pipeline', icon: 'people', label_bn: 'পাইপলাইন', label_en: 'Pipeline', badge: '1,247' },
    { id: 'jobs', icon: 'briefcase', label_bn: 'জব পোস্ট', label_en: 'Job Posts', badge: '12' },
    { id: 'inbox', icon: 'inbox', label_bn: 'মেসেজ', label_en: 'Messages', badge: '8', hot: true },
    { id: 'analytics', icon: 'chart', label_bn: 'এনালিটিক্স', label_en: 'Analytics' },
  ];
  const navTools = [
    { id: 'ai', icon: 'spark', label_bn: 'AI স্ক্রিনিং', label_en: 'AI Screening' },
    { id: 'team', icon: 'people', label_bn: 'হায়ারিং টিম', label_en: 'Hiring Team' },
    { id: 'settings', icon: 'cog', label_bn: 'সেটিংস', label_en: 'Settings' },
  ];
  return (
    <aside className="rd-side">
      <div className="rd-side-brand">
        <div className="rd-side-mark">A</div>
        <div>
          <div className="rd-side-name">NOBBYO<span>·</span>JOBS</div>
          <div className="rd-side-sub">{lang === 'bn' ? 'এমপ্লয়ার' : 'Employer'}</div>
        </div>
      </div>
      <div className="rd-side-emp">
        <div className="rd-side-emp-logo">b</div>
        <div className="rd-side-emp-text">
          <div className="rd-side-emp-name">bKash</div>
          <div className="rd-side-emp-tier">{lang === 'bn' ? 'এন্টারপ্রাইজ' : 'Enterprise'}</div>
        </div>
        <div className="rd-side-emp-arr">⇅</div>
      </div>

      <div className="rd-side-section">{lang === 'bn' ? 'মূল' : 'Main'}</div>
      {navMain.map(it => (
        <button key={it.id} className={`rd-side-link ${active === it.id ? 'is-on' : ''}`} onClick={() => setActive(it.id)}>
          {KPI_ICONS[it.icon]}
          <span>{lang === 'bn' ? it.label_bn : it.label_en}</span>
          {it.badge && <span className={`rd-side-link-badge ${it.hot ? 'is-hot' : ''}`}>{it.badge}</span>}
        </button>
      ))}

      <div className="rd-side-section">{lang === 'bn' ? 'টুলস' : 'Tools'}</div>
      {navTools.map(it => (
        <button key={it.id} className={`rd-side-link ${active === it.id ? 'is-on' : ''}`} onClick={() => setActive(it.id)}>
          {KPI_ICONS[it.icon]}
          <span>{lang === 'bn' ? it.label_bn : it.label_en}</span>
        </button>
      ))}

      <div className="rd-side-foot">
        <div className="rd-side-user">
          <div className="rd-side-user-av">F</div>
          <div>
            <div className="rd-side-user-name">{lang === 'bn' ? 'ফারিহা চৌধুরী' : 'Fariha Chowdhury'}</div>
            <div className="rd-side-user-role">{lang === 'bn' ? 'হেড অফ পিপল' : 'Head of People'}</div>
          </div>
        </div>
      </div>
    </aside>
  );
}

// ============================================================
// TOPBAR
// ============================================================
function Topbar({ lang, setLang, onCompose }) {
  return (
    <div className="rd-topbar">
      <div className="rd-topbar-search">
        {KPI_ICONS.search}
        <span>{lang === 'bn' ? 'প্রার্থী, পদ, বা job খুঁজুন...' : 'Search candidates, roles, jobs...'}</span>
        <span className="rd-topbar-search-kbd">⌘K</span>
      </div>
      <div className="rd-topbar-actions">
        <div className="rd-range">
          <button className="is-on">{lang === 'bn' ? '৩০ দিন' : '30d'}</button>
          <button>{lang === 'bn' ? '৯০ দিন' : '90d'}</button>
          <button>{lang === 'bn' ? '১ বছর' : '1y'}</button>
        </div>
        <div className="lang-pill">
          <button className={lang === 'bn' ? 'active' : ''} onClick={() => setLang('bn')}>বাং</button>
          <button className={lang === 'en' ? 'active' : ''} onClick={() => setLang('en')}>EN</button>
        </div>
        <button className="rd-tb-btn-ic">{KPI_ICONS.bell}<span className="rd-tb-dot" /></button>
        <button className="rd-tb-btn rd-tb-cta" onClick={onCompose}>+ {lang === 'bn' ? 'নতুন জব পোস্ট' : 'Post a Job'}</button>
      </div>
    </div>
  );
}

// ============================================================
// KPI STRIP
// ============================================================
function KpiStrip({ lang }) {
  const kpis = lang === 'bn' ? KPIS_BN : KPIS_EN;
  return (
    <div className="rd-kpis">
      {kpis.map((k, i) => (
        <div key={i} className="rd-kpi">
          <div className="rd-kpi-head">
            <div className="rd-kpi-label">{k.label}</div>
            <div className="rd-kpi-icon">{KPI_ICONS[k.icon]}</div>
          </div>
          <div className="rd-kpi-num">{k.val}</div>
          <div className="rd-kpi-row">
            <span className={`rd-kpi-trend ${k.good ? '' : 'is-down'}`}>{k.trend}</span>
            <span className="rd-kpi-bench">{k.bench}</span>
          </div>
          <div className="rd-kpi-spark">
            {k.spark.map((v, j) => {
              const max = Math.max(...k.spark);
              return <div key={j} className={`rd-kpi-spark-bar ${j === k.spark.length - 1 ? 'is-active' : ''}`} style={{ height: `${(v / max) * 100}%` }} />;
            })}
          </div>
        </div>
      ))}
    </div>
  );
}

// ============================================================
// PIPELINE / KANBAN
// ============================================================
function CandidateCard({ c, lang, onOpen }) {
  return (
    <div className="rd-cand" onClick={() => onOpen(c)}>
      <div className="rd-cand-head">
        <div className="rd-cand-av" style={{ background: COLORS[c.id % COLORS.length] }}>{c.av}</div>
        <div className="rd-cand-info">
          <div className="rd-cand-name">{lang === 'bn' ? c.name_bn : c.name_en}</div>
          <div className="rd-cand-role">{lang === 'bn' ? c.role_bn : c.role_en}</div>
        </div>
      </div>
      <div className="rd-cand-meta">
        <span className={`rd-cand-pill is-match ${c.match >= 90 ? 'is-high' : ''}`}>{c.match}% {lang === 'bn' ? 'ম্যাচ' : 'match'}</span>
        <span className="rd-cand-pill is-source">{c.source}</span>
        {c.flags.map(f => <span key={f} className="rd-cand-pill is-flag">{f}</span>)}
      </div>
      <div className="rd-cand-bar"><div className="rd-cand-bar-fill" style={{ width: `${c.bar}%` }} /></div>
      {c.aiNote && <div className="rd-cand-ai">{c.aiNote}</div>}
      <div className="rd-cand-actions">
        <button className="rd-cand-action is-good" onClick={(e) => e.stopPropagation()}>{lang === 'bn' ? '→ এগিয়ে' : '→ Advance'}</button>
        <button className="rd-cand-action is-bad" onClick={(e) => e.stopPropagation()}>{lang === 'bn' ? 'রিজেক্ট' : 'Reject'}</button>
      </div>
    </div>
  );
}

function Pipeline({ lang, onOpen }) {
  const [filter, setFilter] = rS('all');
  return (
    <div className="rd-card">
      <div className="rd-card-head">
        <div>
          <div className="rd-card-title">{lang === 'bn' ? 'লাইভ পাইপলাইন' : 'Live Pipeline'}</div>
          <div className="rd-card-sub">{lang === 'bn' ? '১,২৪৭ আবেদনকারী, ৫ স্টেজ · drag করে এগিয়ে নিন' : '1,247 applicants, 5 stages · drag to advance'}</div>
        </div>
        <div className="rd-card-actions">
          <button className={`rd-card-act ${filter === 'all' ? 'is-on' : ''}`} onClick={() => setFilter('all')}>{lang === 'bn' ? 'সব' : 'All'}</button>
          <button className={`rd-card-act ${filter === 'top' ? 'is-on' : ''}`} onClick={() => setFilter('top')}>{lang === 'bn' ? 'টপ ম্যাচ ৯০+' : 'Top 90+'}</button>
          <button className={`rd-card-act ${filter === 'new' ? 'is-on' : ''}`} onClick={() => setFilter('new')}>{lang === 'bn' ? 'নতুন' : 'New'}</button>
        </div>
      </div>

      <div className="rd-job-bar">
        <span className="rd-job-bar-label">{lang === 'bn' ? 'পদ' : 'Role'}</span>
        <div className="rd-job-bar-pick">
          {lang === 'bn' ? 'সিনিয়র প্রোডাক্ট ডিজাইনার' : 'Senior Product Designer'}
          <span className="rd-job-bar-arrow">⇅</span>
        </div>
        <div className="rd-job-bar-meta">
          <span><strong>142</strong> {lang === 'bn' ? 'আবেদন' : 'applied'}</span>
          <span><strong>38</strong> {lang === 'bn' ? 'স্ক্রিন্ড' : 'screened'}</span>
          <span><strong>6</strong> {lang === 'bn' ? 'দিন বাকি' : 'days left'}</span>
        </div>
      </div>

      <div className="rd-kanban">
        {STAGES.map(s => {
          const cands = CANDIDATES.filter(c => c.stage === s.id && (filter === 'all' || (filter === 'top' && c.match >= 90) || (filter === 'new' && c.stage === 'applied')));
          return (
            <div key={s.id} className="rd-col">
              <div className="rd-col-head">
                <div className="rd-col-title">
                  <span className="rd-col-dot" style={{ background: s.color }} />
                  {lang === 'bn' ? s.label_bn : s.label_en}
                </div>
                <div className="rd-col-count">{cands.length}</div>
              </div>
              {cands.map(c => <CandidateCard key={c.id} c={c} lang={lang} onOpen={onOpen} />)}
            </div>
          );
        })}
      </div>
    </div>
  );
}

// ============================================================
// SIDE COL
// ============================================================
function SideCol({ lang }) {
  const brief = lang === 'bn' ? AI_BRIEF_BN : AI_BRIEF_EN;
  const funnel = lang === 'bn' ? FUNNEL_BN : FUNNEL_EN;
  const upcoming = lang === 'bn' ? UPCOMING_BN : UPCOMING_EN;
  const activity = lang === 'bn' ? ACTIVITY_BN : ACTIVITY_EN;

  return (
    <div className="rd-side-col">
      <div className="rd-mini rd-ai-brief">
        <div className="rd-ai-brief-tag">{lang === 'bn' ? 'NOBBYO AI · আজকের ব্রিফ' : 'NOBBYO AI · Today\'s Brief'}</div>
        <div className="rd-ai-brief-title">{lang === 'bn' ? 'আপনার মনোযোগ লাগবে' : 'Needs your attention'}</div>
        <div className="rd-ai-brief-list">
          {brief.map((b, i) => (
            <div key={i} className="rd-ai-brief-item">
              <div className="rd-ai-brief-num">{b.n}</div>
              <div><strong>{b.t}</strong>{b.s}</div>
            </div>
          ))}
        </div>
        <a href="ai-screening.html" className="rd-ai-brief-cta">{lang === 'bn' ? 'AI কমান্ড সেন্টার খুলুন →' : 'Open AI Command Center →'}</a>
      </div>

      <div className="rd-mini">
        <div className="rd-mini-title">
          {lang === 'bn' ? 'ফানেল' : 'Funnel'}
          <a href="job-search.html" className="rd-mini-title-r">→</a>
        </div>
        <div className="rd-funnel">
          {funnel.map((f, i) => (
            <div key={i} className="rd-funnel-row">
              <div className="rd-funnel-label">{f.l}</div>
              <div className="rd-funnel-track">
                <div className="rd-funnel-fill" style={{ width: `${f.p}%` }}>{f.p}%</div>
              </div>
              <div className="rd-funnel-num">{lang === 'bn' ? f.n.toString().replace(/\d/g, d => '০১২৩৪৫৬৭৮৯'[d]) : f.n.toLocaleString()}</div>
            </div>
          ))}
        </div>
      </div>

      <div className="rd-mini">
        <div className="rd-mini-title">{lang === 'bn' ? 'এই সপ্তাহে' : 'This Week'}</div>
        {upcoming.map((u, i) => (
          <div key={i} className="rd-upcoming-row">
            <div className="rd-upcoming-when">
              <div className="rd-upcoming-when-d">{u.d}</div>
              <div className="rd-upcoming-when-m">{u.m}</div>
            </div>
            <div className="rd-upcoming-text">
              <div className="rd-upcoming-title">{u.t}</div>
              <div className="rd-upcoming-sub"><span className="rd-upcoming-time">{u.sub}</span></div>
            </div>
          </div>
        ))}
      </div>

      <div className="rd-mini">
        <div className="rd-mini-title">{lang === 'bn' ? 'সাম্প্রতিক' : 'Recent Activity'}</div>
        {activity.map((a, i) => (
          <div key={i} className="rd-act-row">
            <div className="rd-act-icon" style={{ background: a.c }}>{a.i}</div>
            <div>
              <span dangerouslySetInnerHTML={{ __html: a.t }} />
              <span className="rd-act-time">{a.m}</span>
            </div>
          </div>
        ))}
      </div>
    </div>
  );
}

// ============================================================
// JOBS TABLE
// ============================================================
function JobsTable({ lang }) {
  const jobs = lang === 'bn' ? JOBS_BN : JOBS_EN;
  return (
    <div className="rd-card">
      <div className="rd-card-head">
        <div>
          <div className="rd-card-title">{lang === 'bn' ? 'খোলা পদসমূহ' : 'Active Roles'}</div>
          <div className="rd-card-sub">{lang === 'bn' ? '১২ active · ৪ closing soon' : '12 active · 4 closing soon'}</div>
        </div>
        <div className="rd-card-actions">
          <button className="rd-card-act is-on">{lang === 'bn' ? 'সক্রিয়' : 'Active'}</button>
          <button className="rd-card-act">{lang === 'bn' ? 'বিরতি' : 'Paused'}</button>
          <button className="rd-card-act">{lang === 'bn' ? 'ড্রাফট' : 'Drafts'}</button>
          <button className="rd-card-act">{lang === 'bn' ? 'সব' : 'All'}</button>
        </div>
      </div>
      <table className="rd-jobs-table">
        <thead>
          <tr>
            <th>{lang === 'bn' ? 'পদ' : 'Role'}</th>
            <th>{lang === 'bn' ? 'স্ট্যাটাস' : 'Status'}</th>
            <th>{lang === 'bn' ? 'আবেদন' : 'Applied'}</th>
            <th>{lang === 'bn' ? 'ফানেল' : 'Funnel'}</th>
            <th>{lang === 'bn' ? 'পোস্টেড' : 'Posted'}</th>
            <th></th>
          </tr>
        </thead>
        <tbody>
          {jobs.map((j, i) => (
            <tr key={i}>
              <td>
                <div className="rd-jobs-table-title">{j.title}</div>
                <div className="rd-jobs-table-sub">{j.dept}</div>
              </td>
              <td><span className={`rd-jobs-status is-${j.status}`}>{j.status === 'active' ? (lang === 'bn' ? 'সক্রিয়' : 'Active') : j.status === 'closing' ? (lang === 'bn' ? 'শেষ পর্যায়' : 'Closing') : j.status === 'paused' ? (lang === 'bn' ? 'বিরতি' : 'Paused') : (lang === 'bn' ? 'ড্রাফট' : 'Draft')}</span></td>
              <td><span className="rd-jobs-num">{j.applied}</span></td>
              <td>
                <div className="rd-jobs-funnel-mini">
                  <span className="rd-jobs-funnel-mini-cell f-screen">{j.screened}</span>
                  <span className="rd-jobs-funnel-mini-cell f-int">{j.interview}</span>
                  <span className="rd-jobs-funnel-mini-cell f-off">{j.offer}</span>
                </div>
              </td>
              <td style={{fontSize: 11.5, color: 'var(--ink-3)'}}>{j.posted}</td>
              <td>
                <div className="rd-jobs-actions">
                  <button className="rd-jobs-action" title="View">👁</button>
                  <button className="rd-jobs-action" title="Edit">✎</button>
                  <button className="rd-jobs-action" title="More">⋯</button>
                </div>
              </td>
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  );
}

// ============================================================
// ANALYTICS — Trend Chart
// ============================================================
function TrendChart({ lang }) {
  const W = 600, H = 220, P = 30;
  const max = Math.max(...TREND_APPS) * 1.1;
  const x = (i) => P + ((W - P * 2) * i) / (TREND_APPS.length - 1);
  const y = (v) => H - P - ((H - P * 2) * v) / max;
  const line = (data) => data.map((v, i) => `${i ? 'L' : 'M'}${x(i)},${y(v)}`).join(' ');
  const area = (data) => `${line(data)} L${x(data.length - 1)},${H - P} L${P},${H - P} Z`;

  return (
    <div className="rd-card">
      <div className="rd-card-head">
        <div>
          <div className="rd-card-title">{lang === 'bn' ? 'অ্যাপ্লিকেশন ট্রেন্ড' : 'Application Trend'}</div>
          <div className="rd-card-sub">{lang === 'bn' ? '৩০ দিনের আবেদন ও ইন্টারভিউ' : '30 days · applications and interviews'}</div>
        </div>
      </div>
      <div className="rd-chart">
        <svg viewBox={`0 0 ${W} ${H}`} preserveAspectRatio="none">
          <defs>
            <linearGradient id="rdGradOrange" x1="0" y1="0" x2="0" y2="1">
              <stop offset="0%" stopColor="#F58220" stopOpacity="0.35" />
              <stop offset="100%" stopColor="#F58220" stopOpacity="0" />
            </linearGradient>
            <linearGradient id="rdGradNavy" x1="0" y1="0" x2="0" y2="1">
              <stop offset="0%" stopColor="#2A3656" stopOpacity="0.18" />
              <stop offset="100%" stopColor="#2A3656" stopOpacity="0" />
            </linearGradient>
          </defs>
          {/* gridlines */}
          {[0.25, 0.5, 0.75].map(p => (
            <line key={p} x1={P} x2={W - P} y1={P + (H - P * 2) * p} y2={P + (H - P * 2) * p} stroke="#E8E1D5" strokeWidth="1" strokeDasharray="3 4" />
          ))}
          {/* areas */}
          <path d={area(TREND_APPS)} fill="url(#rdGradOrange)" />
          <path d={area(TREND_INTS)} fill="url(#rdGradNavy)" />
          {/* lines */}
          <path d={line(TREND_APPS)} fill="none" stroke="#F58220" strokeWidth="2.5" strokeLinejoin="round" strokeLinecap="round" />
          <path d={line(TREND_INTS)} fill="none" stroke="#2A3656" strokeWidth="2" strokeLinejoin="round" strokeLinecap="round" />
          {/* end dots */}
          <circle cx={x(TREND_APPS.length - 1)} cy={y(TREND_APPS[TREND_APPS.length - 1])} r="5" fill="#F58220" stroke="white" strokeWidth="2.5" />
          <circle cx={x(TREND_INTS.length - 1)} cy={y(TREND_INTS[TREND_INTS.length - 1])} r="5" fill="#2A3656" stroke="white" strokeWidth="2.5" />
        </svg>
      </div>
      <div className="rd-chart-legend">
        <span><span className="rd-chart-legend-dot" style={{background: '#F58220'}} /> {lang === 'bn' ? 'আবেদন' : 'Applications'}</span>
        <span><span className="rd-chart-legend-dot" style={{background: '#2A3656'}} /> {lang === 'bn' ? 'ইন্টারভিউ' : 'Interviews'}</span>
      </div>
    </div>
  );
}

function SourcesCard({ lang }) {
  const sources = lang === 'bn' ? SOURCES_BN : SOURCES_EN;
  return (
    <div className="rd-card">
      <div className="rd-card-head">
        <div>
          <div className="rd-card-title">{lang === 'bn' ? 'সোর্স ব্রেকডাউন' : 'Source Breakdown'}</div>
          <div className="rd-card-sub">{lang === 'bn' ? 'কোথা থেকে আবেদন আসছে' : 'Where applications come from'}</div>
        </div>
      </div>
      {sources.map((s, i) => (
        <div key={i} className="rd-source-row">
          <strong>{s.l}</strong>
          <div className="rd-source-bar">
            <div className="rd-source-fill" style={{ width: `${s.p}%`, background: s.c }} />
          </div>
          <div className="rd-source-num">{s.n}</div>
        </div>
      ))}
    </div>
  );
}

// ============================================================
// CANDIDATE DRAWER
// ============================================================
function CandidateDrawer({ c, onClose, lang }) {
  if (!c) return null;
  const skills = [
    { n: 'Figma', v: 95 },
    { n: 'User Research', v: 88 },
    { n: 'Design Systems', v: 92 },
    { n: 'Mobile UX', v: 90 },
    { n: 'Prototyping', v: 85 },
    { n: 'Fintech', v: 78 },
  ];
  return (
    <>
      <div className="rd-drawer-overlay" onClick={onClose} />
      <div className="rd-drawer">
        <div className="rd-drawer-head">
          <div className="rd-cand-av" style={{ background: COLORS[c.id % COLORS.length] }}>{c.av}</div>
          <div>
            <div className="rd-drawer-name">{lang === 'bn' ? c.name_bn : c.name_en}</div>
            <div className="rd-drawer-role">{lang === 'bn' ? c.role_bn : c.role_en} · 📍 {lang === 'bn' ? 'ঢাকা' : 'Dhaka'}</div>
          </div>
          <button className="rd-drawer-close" onClick={onClose}>✕</button>
        </div>

        <div className="rd-drawer-body">
          <div className="rd-drawer-section">
            <div className="rd-match-big">
              <div className="rd-match-big-orb">{c.match}%</div>
              <div className="rd-match-big-text">
                <strong>{lang === 'bn' ? 'AI ম্যাচ স্কোর' : 'AI Match Score'}</strong>
                {lang === 'bn' ? 'এই পদের জন্য top ৫% candidates এর মধ্যে। Strong fintech experience এবং design systems expertise।' : 'In top 5% for this role. Strong fintech experience and design systems expertise.'}
              </div>
            </div>
          </div>

          <div className="rd-drawer-section">
            <h4>{lang === 'bn' ? 'দক্ষতা ম্যাচ' : 'Skill Match'}</h4>
            <div className="rd-skills-bars">
              {skills.map(s => (
                <div key={s.n} className="rd-skill-row">
                  <div className="rd-skill-name">{s.n}</div>
                  <div className="rd-skill-bar"><div className="rd-skill-fill" style={{ width: `${s.v}%` }} /></div>
                  <div className="rd-skill-num">{s.v}%</div>
                </div>
              ))}
            </div>
          </div>

          <div className="rd-drawer-section">
            <h4>{lang === 'bn' ? 'অভিজ্ঞতা' : 'Experience'}</h4>
            <div style={{fontSize: 13, color: 'var(--ink-2)', lineHeight: 1.6}}>
              <div style={{padding: '8px 0', borderBottom: '1px dashed var(--line)'}}>
                <strong style={{color: 'var(--ink)'}}>{lang === 'bn' ? 'সিনিয়র প্রোডাক্ট ডিজাইনার' : 'Senior Product Designer'}</strong> · Pathao
                <div style={{fontSize: 11.5, color: 'var(--ink-3)', fontFamily: 'var(--font-mono)'}}>2022 — {lang === 'bn' ? 'বর্তমান' : 'Present'}</div>
              </div>
              <div style={{padding: '8px 0'}}>
                <strong style={{color: 'var(--ink)'}}>{lang === 'bn' ? 'প্রোডাক্ট ডিজাইনার' : 'Product Designer'}</strong> · Chaldal
                <div style={{fontSize: 11.5, color: 'var(--ink-3)', fontFamily: 'var(--font-mono)'}}>2020 — 2022</div>
              </div>
            </div>
          </div>

          <div className="rd-drawer-section">
            <h4>{lang === 'bn' ? 'AI স্ক্রিনিং নোট' : 'AI Screening Notes'}</h4>
            <div style={{background: 'var(--gold-mist)', padding: 14, borderRadius: 10, fontSize: 12.5, color: 'var(--ink-2)', lineHeight: 1.5, borderLeft: '3px solid var(--asb-orange)'}}>
              {lang === 'bn'
                ? '✦ Pathao Pay-তে digital wallet onboarding ৪১% → ৭৮% improve করার hands-on experience। bKash এর USSD-to-app transition strategy এর সাথে directly aligns। Portfolio quality top 5%।'
                : '✦ Hands-on experience improving digital wallet onboarding from 41% → 78% at Pathao Pay. Directly aligned with bKash\'s USSD-to-app transition. Portfolio quality in top 5%.'}
            </div>
          </div>
        </div>

        <div className="rd-drawer-actions">
          <a href="candidate-profile.html" className="btn btn-ghost">{lang === 'bn' ? 'ফুল প্রোফাইল' : 'Full Profile'}</a>
          <button className="btn btn-orange">{lang === 'bn' ? 'ইন্টারভিউ schedule' : 'Schedule Interview'}</button>
          <button className="btn btn-ink">{lang === 'bn' ? '→ এগিয়ে' : '→ Advance'}</button>
        </div>
      </div>
    </>
  );
}

// ============================================================
// PAGE — VIEWS
// ============================================================
function OverviewView({ lang, onOpen }) {
  return (
    <>
      <div className="rd-ph">
        <div className="rd-ph-l">
          <div className="rd-ph-tag">{lang === 'bn' ? 'ওভারভিউ · ৩০ দিন' : 'Overview · 30 days'}</div>
          <h1>{lang === 'bn' ? 'হ্যালো ফারিহা, আজ ৭ জন top match আছে' : 'Hello Fariha — 7 top matches today'}</h1>
          <div className="rd-ph-sub">{lang === 'bn' ? 'আপনার team-এর performance আজ track করুন' : 'Track your team\'s performance today'}</div>
        </div>
      </div>
      <KpiStrip lang={lang} />
      <div className="rd-two">
        <div>
          <Pipeline lang={lang} onOpen={onOpen} />
          <div style={{height: 14}} />
          <div className="rd-analytics">
            <TrendChart lang={lang} />
            <SourcesCard lang={lang} />
          </div>
        </div>
        <SideCol lang={lang} />
      </div>
    </>
  );
}

function JobsView({ lang }) {
  return (
    <>
      <div className="rd-ph">
        <div className="rd-ph-l">
          <div className="rd-ph-tag">{lang === 'bn' ? 'জব পোস্ট' : 'Job Posts'}</div>
          <h1>{lang === 'bn' ? 'সব পদ ম্যানেজ করুন' : 'Manage all roles'}</h1>
          <div className="rd-ph-sub">{lang === 'bn' ? '১২টি active · ১,২৪৭ মোট আবেদন' : '12 active · 1,247 total applications'}</div>
        </div>
      </div>
      <JobsTable lang={lang} />
    </>
  );
}

function PipelineView({ lang, onOpen }) {
  return (
    <>
      <div className="rd-ph">
        <div className="rd-ph-l">
          <div className="rd-ph-tag">{lang === 'bn' ? 'পাইপলাইন' : 'Pipeline'}</div>
          <h1>{lang === 'bn' ? 'প্রার্থী পাইপলাইন' : 'Candidate Pipeline'}</h1>
          <div className="rd-ph-sub">{lang === 'bn' ? 'কার্ড drag করে stages-এর মধ্যে move করুন' : 'Drag cards between stages to advance candidates'}</div>
        </div>
      </div>
      <Pipeline lang={lang} onOpen={onOpen} />
    </>
  );
}

function AnalyticsView({ lang }) {
  return (
    <>
      <div className="rd-ph">
        <div className="rd-ph-l">
          <div className="rd-ph-tag">{lang === 'bn' ? 'এনালিটিক্স' : 'Analytics'}</div>
          <h1>{lang === 'bn' ? 'হায়ারিং পারফরম্যান্স' : 'Hiring Performance'}</h1>
          <div className="rd-ph-sub">{lang === 'bn' ? 'গত ৩০ দিনের বিস্তারিত' : 'Detailed view of last 30 days'}</div>
        </div>
      </div>
      <KpiStrip lang={lang} />
      <div className="rd-analytics" style={{marginTop: 14}}>
        <TrendChart lang={lang} />
        <SourcesCard lang={lang} />
      </div>
    </>
  );
}

// ============================================================
// APP
// ============================================================
function RecruiterApp() {
  const [lang, setLang] = rS('bn');
  const [active, setActive] = rS('overview');
  const [openCand, setOpenCand] = rS(null);

  rE(() => {
    document.body.classList.toggle('lang-bn', lang === 'bn');
    document.body.classList.toggle('lang-en', lang === 'en');
  }, [lang]);

  return (
    <div className="rd-app">
      <Sidebar active={active} setActive={setActive} lang={lang} />
      <div className="rd-main">
        <Topbar lang={lang} setLang={setLang} onCompose={() => alert(lang === 'bn' ? 'নতুন জব পোস্ট ফর্ম খোলবে' : 'Open new job post form')} />
        <div className="rd-page">
          {active === 'overview' && <OverviewView lang={lang} onOpen={setOpenCand} />}
          {active === 'pipeline' && <PipelineView lang={lang} onOpen={setOpenCand} />}
          {active === 'jobs' && <JobsView lang={lang} />}
          {active === 'analytics' && <AnalyticsView lang={lang} />}
          {!['overview','pipeline','jobs','analytics'].includes(active) && <OverviewView lang={lang} onOpen={setOpenCand} />}
        </div>
      </div>
      {openCand && <CandidateDrawer c={openCand} onClose={() => setOpenCand(null)} lang={lang} />}
    </div>
  );
}

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