// data.jsx — content data for the flow
window.APPDATA = {
  positions: {
    id: [
      "Store Crew / Pramuniaga", "Kasir", "Supervisor Toko", "Merchandiser",
      "Sales Promotion (SPG/SPB)", "Admin Gudang", "Staf Logistik",
      "Management Trainee", "Area Coordinator", "Customer Service"
    ],
    en: [
      "Store Crew", "Cashier", "Store Supervisor", "Merchandiser",
      "Sales Promotion", "Warehouse Admin", "Logistics Staff",
      "Management Trainee", "Area Coordinator", "Customer Service"
    ]
  },
  locations: {
    id: ["Jakarta", "Bandung", "Surabaya", "Semarang", "Medan", "Makassar", "Denpasar", "Tangerang"],
    en: ["Jakarta", "Bandung", "Surabaya", "Semarang", "Medan", "Makassar", "Denpasar", "Tangerang"]
  },
  eduLevels: {
    id: ["SMA / SMK", "D3 (Diploma)", "S1 (Sarjana)", "S2 (Magister)"],
    en: ["High School", "Diploma (D3)", "Bachelor (S1)", "Master (S2)"]
  },
  // simulated CV extraction result
  cvResult: {
    fullName: "Putri Anggraini",
    wa: "812 3456 7890",
    email: "putri.anggraini@email.com",
    birthPlace: "Bandung",
    birthDate: "1999-04-12",
    address: "Jl. Merdeka No. 24, Coblong, Kota Bandung, Jawa Barat",
    edu: 2, // S1
    major: { id: "Manajemen Ritel", en: "Retail Management" },
    experience: {
      id: "Kasir Senior — Toko Sejahtera, Bandung (2021–2024)",
      en: "Senior Cashier — Toko Sejahtera, Bandung (2021–2024)"
    },
    position: 1, // Kasir
    location: 1, // Bandung
    salary: "4.500.000",
    instagram: "putri.anggraini",
    tiktok: "putrianggr",
    workHistory: [
      { company: "Toko Sejahtera, Bandung", position: { id: "Kasir Senior", en: "Senior Cashier" }, period: "2021 – 2024", salary: "4.200.000" },
      { company: "Minimarket Berkah, Cimahi", position: { id: "Pramuniaga", en: "Store Crew" }, period: "2019 – 2021", salary: "3.000.000" }
    ],
    family: { name: "Ibu Sri Wahyuni", relation: "relParent", phone: "813 1111 2222" }
  },
  // DISC groups: each word tagged with dimension D/I/S/C
  disc: [
    [{ id: "Tegas", en: "Assertive", d: "D" }, { id: "Antusias", en: "Enthusiastic", d: "I" }, { id: "Sabar", en: "Patient", d: "S" }, { id: "Teliti", en: "Precise", d: "C" }],
    [{ id: "Berani", en: "Bold", d: "D" }, { id: "Persuasif", en: "Persuasive", d: "I" }, { id: "Tenang", en: "Calm", d: "S" }, { id: "Analitis", en: "Analytical", d: "C" }],
    [{ id: "Kompetitif", en: "Competitive", d: "D" }, { id: "Ramah", en: "Friendly", d: "I" }, { id: "Setia", en: "Loyal", d: "S" }, { id: "Hati-hati", en: "Careful", d: "C" }],
    [{ id: "Langsung", en: "Direct", d: "D" }, { id: "Ekspresif", en: "Expressive", d: "I" }, { id: "Stabil", en: "Steady", d: "S" }, { id: "Sistematis", en: "Systematic", d: "C" }],
    [{ id: "Mandiri", en: "Independent", d: "D" }, { id: "Optimis", en: "Optimistic", d: "I" }, { id: "Pendengar", en: "A good listener", d: "S" }, { id: "Logis", en: "Logical", d: "C" }],
    [{ id: "Pemberani", en: "Daring", d: "D" }, { id: "Periang", en: "Cheerful", d: "I" }, { id: "Konsisten", en: "Consistent", d: "S" }, { id: "Teratur", en: "Orderly", d: "C" }],
    [{ id: "Pemimpin", en: "Leader", d: "D" }, { id: "Komunikatif", en: "Communicative", d: "I" }, { id: "Suportif", en: "Supportive", d: "S" }, { id: "Akurat", en: "Accurate", d: "C" }],
    [{ id: "Gigih", en: "Determined", d: "D" }, { id: "Spontan", en: "Spontaneous", d: "I" }, { id: "Kooperatif", en: "Cooperative", d: "S" }, { id: "Disiplin", en: "Disciplined", d: "C" }],
    [{ id: "Ambisius", en: "Ambitious", d: "D" }, { id: "Karismatik", en: "Charismatic", d: "I" }, { id: "Rendah hati", en: "Modest", d: "S" }, { id: "Cermat", en: "Meticulous", d: "C" }],
    [{ id: "Tegas ambil keputusan", en: "Decisive", d: "D" }, { id: "Inspiratif", en: "Inspiring", d: "I" }, { id: "Andal", en: "Reliable", d: "S" }, { id: "Objektif", en: "Objective", d: "C" }],
  ],
  discProfiles: {
    D: {
      id: "Dominan — pengambil keputusan & berorientasi hasil", en: "Dominant — decisive & results-oriented",
      name: "Dominan",
      desc: { id: "Anda cenderung tegas, percaya diri, dan berorientasi pada hasil. Anda menyukai tantangan dan mengambil keputusan dengan cepat. Lingkungan kerja yang dinamis dan kompetitif cocok untuk Anda.", en: "You tend to be assertive, confident, and results-oriented. You enjoy challenges and make decisions quickly. Dynamic and competitive work environments suit you well." },
      traits: { id: ["Tegas", "Berani", "Kompetitif", "Mandiri", "Berorientasi hasil"], en: ["Assertive", "Bold", "Competitive", "Independent", "Results-driven"] },
    },
    I: {
      id: "Influence — komunikatif & memotivasi", en: "Influence — communicative & motivating",
      name: "Influence",
      desc: { id: "Anda memiliki kemampuan komunikasi yang kuat dan mudah bergaul. Anda senang bekerja dalam tim, memotivasi orang lain, dan menciptakan suasana kerja yang positif.", en: "You have strong communication skills and are easy to get along with. You enjoy working in teams, motivating others, and creating a positive work atmosphere." },
      traits: { id: ["Komunikatif", "Optimis", "Persuasif", "Antusias", "Kolaboratif"], en: ["Communicative", "Optimistic", "Persuasive", "Enthusiastic", "Collaborative"] },
    },
    S: {
      id: "Steady — stabil, sabar & suportif", en: "Steady — stable, patient & supportive",
      name: "Steady",
      desc: { id: "Anda adalah orang yang konsisten, sabar, dan dapat diandalkan. Anda bekerja dengan baik dalam lingkungan yang stabil dan menjadi pilar dukungan bagi rekan kerja di sekitar Anda.", en: "You are consistent, patient, and reliable. You work well in stable environments and serve as a pillar of support for those around you." },
      traits: { id: ["Sabar", "Setia", "Suportif", "Konsisten", "Dapat diandalkan"], en: ["Patient", "Loyal", "Supportive", "Consistent", "Reliable"] },
    },
    C: {
      id: "Compliance — teliti, akurat & sistematis", en: "Compliance — precise, accurate & systematic",
      name: "Compliance",
      desc: { id: "Anda sangat teliti, analitis, dan menjunjung tinggi standar kualitas. Anda bekerja secara sistematis dan lebih suka memiliki informasi lengkap sebelum mengambil keputusan.", en: "You are highly meticulous, analytical, and uphold quality standards. You work systematically and prefer having complete information before making decisions." },
      traits: { id: ["Teliti", "Analitis", "Sistematis", "Akurat", "Terstruktur"], en: ["Meticulous", "Analytical", "Systematic", "Accurate", "Structured"] },
    },
  },
  // IQ questions (answer index correct)
  iq: [
    { type: "num", q: { id: "Lanjutkan deret berikut:", en: "Continue the sequence:" }, figs: ["2", "4", "8", "16", "?"], opts: ["24", "32", "30", "20"], a: 1 },
    { type: "num", q: { id: "Lanjutkan deret berikut:", en: "Continue the sequence:" }, figs: ["1", "1", "2", "3", "5", "?"], opts: ["7", "8", "9", "6"], a: 1 },
    { type: "word", q: { id: "Dokter : Rumah Sakit = Guru : ?", en: "Doctor : Hospital = Teacher : ?" }, opts: [{id:"Buku",en:"Book"},{id:"Sekolah",en:"School"},{id:"Murid",en:"Student"},{id:"Pena",en:"Pen"}], a: 1 },
    { type: "word", q: { id: "Kata mana yang tidak sekelompok?", en: "Which word does not belong?" }, opts: [{id:"Mawar",en:"Rose"},{id:"Melati",en:"Jasmine"},{id:"Anggrek",en:"Orchid"},{id:"Mangga",en:"Mango"}], a: 3 },
    { type: "num", q: { id: "Jika 5 pekerja membuat 5 produk dalam 5 menit, berapa menit 100 pekerja membuat 100 produk?", en: "If 5 workers make 5 products in 5 minutes, how many minutes for 100 workers to make 100 products?" }, opts: ["100", "20", "5", "1"], a: 2 },
    { type: "num", q: { id: "Lanjutkan deret berikut:", en: "Continue the sequence:" }, figs: ["3", "6", "12", "24", "?"], opts: ["36", "48", "30", "42"], a: 1 },
    { type: "word", q: { id: "Antonim dari 'Boros' adalah…", en: "The antonym of 'Wasteful' is…" }, opts: [{id:"Murah",en:"Cheap"},{id:"Hemat",en:"Thrifty"},{id:"Kaya",en:"Rich"},{id:"Mahal",en:"Expensive"}], a: 1 },
    { type: "num", q: { id: "Berapakah 15% dari 240?", en: "What is 15% of 240?" }, opts: ["24", "36", "30", "48"], a: 1 },
    { type: "num", q: { id: "Lanjutkan deret: 81, 27, 9, 3, ?", en: "Continue: 81, 27, 9, 3, ?" }, opts: ["0", "1", "2", "1.5"], a: 1 },
    { type: "word", q: { id: "Panas : Dingin = Terang : ?", en: "Hot : Cold = Bright : ?" }, opts: [{id:"Gelap",en:"Dark"},{id:"Siang",en:"Day"},{id:"Lampu",en:"Lamp"},{id:"Matahari",en:"Sun"}], a: 0 },
    { type: "num", q: { id: "Sebuah toko memberi diskon 25%. Harga akhir Rp90.000. Harga awal?", en: "A shop gives 25% off. Final price Rp90,000. Original price?" }, opts: ["110.000", "115.000", "120.000", "112.500"], a: 2 },
    { type: "num", q: { id: "Lanjutkan deret: 2, 5, 10, 17, ?", en: "Continue: 2, 5, 10, 17, ?" }, opts: ["24", "26", "28", "25"], a: 1 },
    { type: "word", q: { id: "Kata mana yang tidak sekelompok?", en: "Which word does not belong?" }, opts: [{id:"Kursi",en:"Chair"},{id:"Meja",en:"Table"},{id:"Lemari",en:"Cupboard"},{id:"Sepatu",en:"Shoe"}], a: 3 },
    { type: "num", q: { id: "Jika A=1, B=2, … berapa nilai C+A+B?", en: "If A=1, B=2, … what is C+A+B?" }, opts: ["5", "6", "7", "8"], a: 1 },
    { type: "num", q: { id: "Setengah dari seperempat 80 adalah…", en: "Half of a quarter of 80 is…" }, opts: ["10", "20", "8", "16"], a: 0 },
    { type: "word", q: { id: "Sinonim dari 'Cermat' adalah…", en: "A synonym for 'Meticulous' is…" }, opts: [{id:"Cepat",en:"Fast"},{id:"Teliti",en:"Careful"},{id:"Berani",en:"Brave"},{id:"Ramah",en:"Friendly"}], a: 1 },
    { type: "num", q: { id: "Lanjutkan deret: 1, 4, 9, 16, ?", en: "Continue: 1, 4, 9, 16, ?" }, opts: ["20", "25", "24", "30"], a: 1 },
    { type: "num", q: { id: "Sebuah mobil menempuh 180 km dalam 3 jam. Kecepatannya?", en: "A car travels 180 km in 3 hours. Its speed?" }, opts: ["50 km/j", "60 km/j", "55 km/j", "65 km/j"], a: 1 },
    { type: "word", q: { id: "Buku : Membaca = Pisau : ?", en: "Book : Reading = Knife : ?" }, opts: [{id:"Tajam",en:"Sharp"},{id:"Memotong",en:"Cutting"},{id:"Dapur",en:"Kitchen"},{id:"Besi",en:"Iron"}], a: 1 },
    { type: "num", q: { id: "Lanjutkan deret: 100, 90, 81, 73, ?", en: "Continue: 100, 90, 81, 73, ?" }, opts: ["66", "64", "65", "67"], a: 0 },
  ],

  // ===== IQ VISUAL — matriks gambar (8 soal, diambil 5 acak per sesi) =====
  iqFig: [
    // Q1: Panah berputar 45° searah jarum jam (E→SE→S→SW→W→NW→N→NE→E)
    {
      type: "matrix",
      q: { id: "Tentukan pola untuk melengkapi kotak '?'", en: "Find the pattern to complete '?'" },
      cells: [
        {t:"ar",d:"e"}, {t:"ar",d:"se"}, {t:"ar",d:"s"},
        {t:"ar",d:"sw"}, {t:"ar",d:"w"}, {t:"ar",d:"nw"},
        {t:"ar",d:"n"}, {t:"ar",d:"ne"}, null
      ],
      opts: [{t:"ar",d:"e"},{t:"ar",d:"n"},{t:"ar",d:"sw"},{t:"ar",d:"s"}],
      a: 0
    },
    // Q2: Jumlah titik = baris + kolom + 1
    {
      type: "matrix",
      q: { id: "Tentukan pola untuk melengkapi kotak '?'", en: "Find the pattern to complete '?'" },
      cells: [
        {t:"dots",n:1},{t:"dots",n:2},{t:"dots",n:3},
        {t:"dots",n:2},{t:"dots",n:3},{t:"dots",n:4},
        {t:"dots",n:3},{t:"dots",n:4},null
      ],
      opts: [{t:"dots",n:3},{t:"dots",n:4},{t:"dots",n:5},{t:"dots",n:6}],
      a: 2
    },
    // Q3: Urutan bentuk bergilir per baris (○ □ △ → □ △ ○ → △ ○ ?)
    {
      type: "matrix",
      q: { id: "Tentukan pola untuk melengkapi kotak '?'", en: "Find the pattern to complete '?'" },
      cells: [
        {t:"sh",s:"cir",sz:2,f:1},{t:"sh",s:"sq",sz:2,f:1},{t:"sh",s:"tri",sz:2,f:1},
        {t:"sh",s:"sq",sz:2,f:1},{t:"sh",s:"tri",sz:2,f:1},{t:"sh",s:"cir",sz:2,f:1},
        {t:"sh",s:"tri",sz:2,f:1},{t:"sh",s:"cir",sz:2,f:1},null
      ],
      opts: [{t:"sh",s:"sq",sz:2,f:1},{t:"sh",s:"tri",sz:2,f:1},{t:"sh",s:"cir",sz:2,f:1},{t:"sh",s:"dia",sz:2,f:1}],
      a: 0
    },
    // Q4: Ukuran bentuk membesar kiri→kanan, jenis berbeda per baris
    {
      type: "matrix",
      q: { id: "Tentukan pola untuk melengkapi kotak '?'", en: "Find the pattern to complete '?'" },
      cells: [
        {t:"sh",s:"tri",sz:1,f:1},{t:"sh",s:"tri",sz:2,f:1},{t:"sh",s:"tri",sz:3,f:1},
        {t:"sh",s:"sq",sz:1,f:1},{t:"sh",s:"sq",sz:2,f:1},{t:"sh",s:"sq",sz:3,f:1},
        {t:"sh",s:"cir",sz:1,f:1},{t:"sh",s:"cir",sz:2,f:1},null
      ],
      opts: [{t:"sh",s:"cir",sz:3,f:1},{t:"sh",s:"cir",sz:1,f:1},{t:"sh",s:"tri",sz:3,f:1},{t:"sh",s:"sq",sz:3,f:1}],
      a: 0
    },
    // Q5: Isian berganti (solid/outline) seperti papan catur per sel
    {
      type: "matrix",
      q: { id: "Tentukan pola untuk melengkapi kotak '?'", en: "Find the pattern to complete '?'" },
      cells: [
        {t:"sh",s:"cir",sz:2,f:1},{t:"sh",s:"cir",sz:2,f:0},{t:"sh",s:"cir",sz:2,f:1},
        {t:"sh",s:"cir",sz:2,f:0},{t:"sh",s:"cir",sz:2,f:1},{t:"sh",s:"cir",sz:2,f:0},
        {t:"sh",s:"cir",sz:2,f:1},{t:"sh",s:"cir",sz:2,f:0},null
      ],
      opts: [{t:"sh",s:"cir",sz:2,f:1},{t:"sh",s:"cir",sz:2,f:0},{t:"sh",s:"sq",sz:2,f:1},{t:"sh",s:"tri",sz:2,f:1}],
      a: 0
    },
    // Q6: Jumlah bentuk bertambah per kolom (1→2→3), jenis berbeda per baris
    {
      type: "matrix",
      q: { id: "Tentukan pola untuk melengkapi kotak '?'", en: "Find the pattern to complete '?'" },
      cells: [
        {t:"multi",s:"tri",n:1},{t:"multi",s:"tri",n:2},{t:"multi",s:"tri",n:3},
        {t:"multi",s:"sq",n:1},{t:"multi",s:"sq",n:2},{t:"multi",s:"sq",n:3},
        {t:"multi",s:"cir",n:1},{t:"multi",s:"cir",n:2},null
      ],
      opts: [{t:"multi",s:"cir",n:3},{t:"multi",s:"cir",n:2},{t:"multi",s:"tri",n:3},{t:"multi",s:"sq",n:3}],
      a: 0
    },
    // Q7: Garis berputar 45° searah per kolom (0°→45°→90° | 45°→90°→135° | 90°→135°→?)
    {
      type: "matrix",
      q: { id: "Tentukan pola untuk melengkapi kotak '?'", en: "Find the pattern to complete '?'" },
      cells: [
        {t:"line",a:0},{t:"line",a:45},{t:"line",a:90},
        {t:"line",a:45},{t:"line",a:90},{t:"line",a:135},
        {t:"line",a:90},{t:"line",a:135},null
      ],
      opts: [{t:"line",a:0},{t:"line",a:45},{t:"line",a:135},{t:"line",a:90}],
      a: 0
    },
    // Q8: Simbol ★ bergeser diagonal dari kiri-atas ke kanan-bawah
    {
      type: "matrix",
      q: { id: "Tentukan pola untuk melengkapi kotak '?'", en: "Find the pattern to complete '?'" },
      cells: [
        {t:"pos",sym:"★",pos:0},{t:"pos",sym:"★",pos:1},{t:"pos",sym:"★",pos:2},
        {t:"pos",sym:"★",pos:3},{t:"pos",sym:"★",pos:4},{t:"pos",sym:"★",pos:5},
        {t:"pos",sym:"★",pos:6},{t:"pos",sym:"★",pos:7},null
      ],
      opts: [{t:"pos",sym:"★",pos:8},{t:"pos",sym:"★",pos:0},{t:"pos",sym:"★",pos:6},{t:"pos",sym:"★",pos:2}],
      a: 0
    },
  ],

  // ===== APTITUDE (leader toko & kantor pusat) =====
  // posisi yang WAJIB test aptitude (index sesuai positions)
  // 2 Supervisor Toko, 3 Merchandiser, 7 Management Trainee, 8 Area Coordinator, 9 Customer Service
  aptitudePositions: [2, 3, 7, 8, 9],

  // Bagian A — Situational Judgement (skala Likert). ideal=5 → tindakan tepat; ideal=1 → tindakan keliru
  aptitudeSJT: [
    { s: { id: "Antrean kasir mengular di jam ramai dan satu kasir izin sakit mendadak.", en: "The checkout queue is long at peak hour and one cashier suddenly calls in sick." },
      a: { id: "Anda turun langsung membantu kasir sambil menata ulang penempatan staf.", en: "You step in to help at the till while reorganizing staff placement." }, ideal: 5 },
    { s: { id: "Seorang staf baru beberapa kali datang terlambat minggu ini.", en: "A new staff member has been late several times this week." },
      a: { id: "Menegurnya keras di depan pelanggan agar jera.", en: "Reprimanding them loudly in front of customers to set an example." }, ideal: 1 },
    { s: { id: "Produk terlaris hampir habis menjelang akhir pekan.", en: "A best-selling product is nearly out of stock before the weekend." },
      a: { id: "Segera koordinasi dengan gudang/toko terdekat untuk relokasi stok.", en: "Immediately coordinate with the warehouse/nearest store to relocate stock." }, ideal: 5 },
    { s: { id: "Dua anggota tim berselisih soal pembagian tugas.", en: "Two team members disagree over task allocation." },
      a: { id: "Mendengarkan kedua pihak lalu menyepakati pembagian yang adil.", en: "Listen to both sides then agree on a fair division." }, ideal: 5 },
    { s: { id: "Target penjualan bulanan tertinggal 20% di pekan ketiga.", en: "Monthly sales target is 20% behind in the third week." },
      a: { id: "Membiarkannya karena masih tersisa satu pekan.", en: "Leaving it be since there is still one week left." }, ideal: 1 },
    { s: { id: "Pelanggan komplain keras soal produk yang cacat.", en: "A customer complains strongly about a defective product." },
      a: { id: "Meminta maaf, menawarkan penukaran, dan mencatatnya untuk evaluasi.", en: "Apologize, offer a replacement, and log it for evaluation." }, ideal: 5 },
    { s: { id: "Anda menemukan selisih kas kecil di akhir shift.", en: "You find a small cash discrepancy at the end of the shift." },
      a: { id: "Menutupinya dengan uang pribadi tanpa melapor.", en: "Cover it with your own money without reporting." }, ideal: 1 },
    { s: { id: "Tim terlihat lelah dan motivasinya menurun.", en: "The team looks tired and their motivation is dropping." },
      a: { id: "Memberi apresiasi atas usaha mereka dan briefing singkat yang memotivasi.", en: "Appreciate their effort and give a short motivating briefing." }, ideal: 5 },
    { s: { id: "Kantor pusat menerapkan prosedur baru yang belum dipahami tim.", en: "Head office rolls out a new procedure the team does not yet understand." },
      a: { id: "Mempelajari prosedur lalu melatih tim sebelum diterapkan.", en: "Study the procedure then train the team before applying it." }, ideal: 5 },
    { s: { id: "Seorang staf mengusulkan ide display baru yang berbeda dari standar.", en: "A staff member proposes a new display idea that differs from the standard." },
      a: { id: "Menolaknya langsung tanpa mempertimbangkan karena tidak sesuai pakem.", en: "Rejecting it outright without consideration because it breaks the norm." }, ideal: 1 },
  ],

  // Bagian B — Penalaran (bertimer). a = index jawaban benar
  aptitudeReason: [
    { q: { id: "Lanjutkan deret:", en: "Continue the sequence:" }, figs: ["5", "11", "23", "47", "?"], opts: ["95", "94", "71", "59"], a: 0 },
    { q: { id: "Harga dinaikkan 30% lalu diberi diskon 30%. Harga akhir dibanding harga awal?", en: "Price raised 30% then discounted 30%. Final vs original price?" }, opts: [{id:"Sama",en:"Same"},{id:"Lebih murah 9%",en:"9% cheaper"},{id:"Lebih mahal 9%",en:"9% pricier"},{id:"Lebih murah 30%",en:"30% cheaper"}], a: 1 },
    { q: { id: "Lanjutkan deret:", en: "Continue the sequence:" }, figs: ["2", "3", "5", "8", "12", "?"], opts: ["15", "16", "17", "18"], a: 2 },
    { q: { id: "Toko A menjual 120 unit. Toko B menjual 25% lebih banyak. Toko B menjual…", en: "Store A sold 120 units. Store B sold 25% more. Store B sold…" }, opts: ["140", "150", "145", "160"], a: 1 },
    { q: { id: "Lanjutkan deret huruf:", en: "Continue the letter sequence:" }, figs: ["B", "D", "G", "K", "?"], opts: ["N", "O", "P", "M"], a: 2 },
    { q: { id: "Target 500, tercapai 380. Kekurangannya berapa persen?", en: "Target 500, achieved 380. What percent short?" }, opts: ["20%", "24%", "76%", "12%"], a: 1 },
    { q: { id: "Semua leader disiplin. Sebagian yang disiplin bersikap tegas. Maka…", en: "All leaders are disciplined. Some disciplined people are firm. Therefore…" }, opts: [{id:"Semua leader tegas",en:"All leaders are firm"},{id:"Sebagian leader mungkin tegas",en:"Some leaders may be firm"},{id:"Tidak ada leader yang tegas",en:"No leader is firm"},{id:"Semua orang tegas disiplin",en:"All firm people are disciplined"}], a: 1 },
    { q: { id: "Lanjutkan deret:", en: "Continue the sequence:" }, figs: ["1", "4", "9", "16", "25", "?"], opts: ["30", "36", "35", "49"], a: 1 },
    { q: { id: "4 staf melayani 60 pelanggan/jam. Dengan kecepatan sama, 6 staf melayani… per jam.", en: "4 staff serve 60 customers/hour. At the same rate, 6 staff serve… per hour." }, opts: ["80", "90", "100", "75"], a: 1 },
    { q: { id: "Stok awal 240 pcs. Terjual 5/8 bagian. Sisa stok?", en: "Initial stock 240 pcs. 5/8 sold. Remaining stock?" }, opts: ["90", "100", "80", "120"], a: 0 },
  ],
  aptitudeBands: {
    id: [
      { min: 85, label: "Sangat Baik", note: "Sangat siap untuk peran kepemimpinan" },
      { min: 70, label: "Baik", note: "Memenuhi kualifikasi peran leader" },
      { min: 55, label: "Cukup", note: "Berpotensi dengan pendampingan" },
      { min: 0,  label: "Perlu Pengembangan", note: "Disarankan pelatihan lanjutan" },
    ],
    en: [
      { min: 85, label: "Excellent", note: "Highly ready for a leadership role" },
      { min: 70, label: "Good", note: "Meets the leader role qualification" },
      { min: 55, label: "Adequate", note: "Promising with mentoring" },
      { min: 0,  label: "Needs Development", note: "Further training recommended" },
    ],
  }
};
window.APPDATA.needsAptitude = function (posIdx) {
  return window.APPDATA.aptitudePositions.indexOf(Number(posIdx)) !== -1;
};
