"use client";

import React, { useState, useMemo } from 'react';
import { Sparkles, Film, ClipboardList, Search, ChevronDown, ChevronUp } from 'lucide-react';

const parseEuro = (str: string) => {
  if (!str || str === '-') return null;
  const cleaned = str.replace(/\s/g, '').replace('€', '').replace(',', '.');
  return parseFloat(cleaned);
};

const euro = (n: number | null) => {
  if (n === null) return '-';
  return new Intl.NumberFormat('fr-FR', {
    minimumFractionDigits: 2,
    maximumFractionDigits: 2
  }).format(n) + ' €';
};

interface Emploi {
  nom: string;
  filiere: string;
  niveau: string;
  cddu: {
    semaine35h: number | null;
    semaine39h: number | null;
    jour7h: number | null;
    jour8h: number | null;
    mois35h: number | null;
    mois39h: number | null;
  };
  cdi: number | null;
}

const emploisData: Emploi[] = [
  // Filière D - Maquillage & Coiffure
  {
    nom: "Blocker / Rigger",
    filiere: "D",
    niveau: "IV",
    cddu: {
      semaine35h: parseEuro("861,07 €"),
      semaine39h: parseEuro("984,08 €"),
      jour7h: parseEuro("191,35 €"),
      jour8h: parseEuro("218,68 €"),
      mois35h: parseEuro("3 272,07 €"),
      mois39h: parseEuro("3 739,49 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Chef électricien",
    filiere: "D",
    niveau: "IIIB",
    cddu: {
      semaine35h: parseEuro("975,19 €"),
      semaine39h: parseEuro("1 114,51 €"),
      jour7h: parseEuro("216,71 €"),
      jour8h: parseEuro("247,67 €"),
      mois35h: parseEuro("3 705,74 €"),
      mois39h: parseEuro("4 235,12 €"),
    },
    cdi: parseEuro("2 289,87 €"),
  },
  {
    nom: "Chef machiniste",
    filiere: "D",
    niveau: "IIIB",
    cddu: {
      semaine35h: parseEuro("975,19 €"),
      semaine39h: parseEuro("1 114,51 €"),
      jour7h: parseEuro("216,71 €"),
      jour8h: parseEuro("247,67 €"),
      mois35h: parseEuro("3 705,74 €"),
      mois39h: parseEuro("4 235,12 €"),
    },
    cdi: parseEuro("2 289,87 €"),
  },
  {
    nom: "Chef maquilleur",
    filiere: "D",
    niveau: "IIIA",
    cddu: {
      semaine35h: parseEuro("871,49 €"),
      semaine39h: parseEuro("995,99 €"),
      jour7h: parseEuro("193,66 €"),
      jour8h: parseEuro("221,33 €"),
      mois35h: parseEuro("3 311,66 €"),
      mois39h: parseEuro("3 784,74 €"),
    },
    cdi: parseEuro("2 410,40 €"),
  },
  {
    nom: "Coiffeur",
    filiere: "D",
    niveau: "V",
    cddu: {
      semaine35h: parseEuro("703,86 €"),
      semaine39h: parseEuro("804,41 €"),
      jour7h: parseEuro("156,41 €"),
      jour8h: parseEuro("178,76 €"),
      mois35h: parseEuro("2 674,68 €"),
      mois39h: parseEuro("3 056,77 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Coiffeur perruquier",
    filiere: "D",
    niveau: "IV",
    cddu: {
      semaine35h: parseEuro("880,12 €"),
      semaine39h: parseEuro("1 005,85 €"),
      jour7h: parseEuro("195,58 €"),
      jour8h: parseEuro("223,52 €"),
      mois35h: parseEuro("3 344,44 €"),
      mois39h: parseEuro("3 822,21 €"),
    },
    cdi: parseEuro("1 988,58 €"),
  },
  {
    nom: "Électricien / Éclairagiste",
    filiere: "D",
    niveau: "V",
    cddu: {
      semaine35h: parseEuro("800,11 €"),
      semaine39h: parseEuro("914,41 €"),
      jour7h: parseEuro("177,80 €"),
      jour8h: parseEuro("203,20 €"),
      mois35h: parseEuro("3 040,40 €"),
      mois39h: parseEuro("3 474,73 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Machiniste",
    filiere: "D",
    niveau: "V",
    cddu: {
      semaine35h: parseEuro("800,11 €"),
      semaine39h: parseEuro("914,41 €"),
      jour7h: parseEuro("177,80 €"),
      jour8h: parseEuro("203,20 €"),
      mois35h: parseEuro("3 040,40 €"),
      mois39h: parseEuro("3 474,73 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Maquilleur",
    filiere: "D",
    niveau: "V",
    cddu: {
      semaine35h: parseEuro("703,86 €"),
      semaine39h: parseEuro("804,41 €"),
      jour7h: parseEuro("156,41 €"),
      jour8h: parseEuro("178,76 €"),
      mois35h: parseEuro("2 674,68 €"),
      mois39h: parseEuro("3 056,77 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Maquilleur et coiffeur effets spéciaux",
    filiere: "D",
    niveau: "IIIB",
    cddu: {
      semaine35h: parseEuro("1 056,37 €"),
      semaine39h: parseEuro("1 207,28 €"),
      jour7h: parseEuro("234,75 €"),
      jour8h: parseEuro("268,28 €"),
      mois35h: parseEuro("4 014,21 €"),
      mois39h: parseEuro("4 587,65 €"),
    },
    cdi: parseEuro("2 169,36 €"),
  },

  // Filière E - Post-production
  {
    nom: "Assistant de post-production",
    filiere: "E",
    niveau: "IV",
    cddu: {
      semaine35h: parseEuro("616,88 €"),
      semaine39h: parseEuro("705,01 €"),
      jour7h: parseEuro("137,09 €"),
      jour8h: parseEuro("156,67 €"),
      mois35h: parseEuro("2 344,16 €"),
      mois39h: parseEuro("2 679,03 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Assistant monteur",
    filiere: "E",
    niveau: "IV",
    cddu: {
      semaine35h: parseEuro("703,86 €"),
      semaine39h: parseEuro("804,41 €"),
      jour7h: parseEuro("156,41 €"),
      jour8h: parseEuro("178,76 €"),
      mois35h: parseEuro("2 674,68 €"),
      mois39h: parseEuro("3 056,77 €"),
    },
    cdi: parseEuro("1 928,32 €"),
  },
  {
    nom: "Assistant monteur adjoint",
    filiere: "E",
    niveau: "VI",
    cddu: {
      semaine35h: parseEuro("456,50 €"),
      semaine39h: parseEuro("521,72 €"),
      jour7h: parseEuro("101,45 €"),
      jour8h: parseEuro("115,94 €"),
      mois35h: parseEuro("2 342,34 €"),
      mois39h: parseEuro("2 676,95 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Chargé de post-production",
    filiere: "E",
    niveau: "IIIA",
    cddu: {
      semaine35h: parseEuro("1 035,68 €"),
      semaine39h: parseEuro("1 183,63 €"),
      jour7h: parseEuro("230,15 €"),
      jour8h: parseEuro("263,03 €"),
      mois35h: parseEuro("3 935,57 €"),
      mois39h: parseEuro("4 497,78 €"),
    },
    cdi: parseEuro("2 651,44 €"),
  },
  {
    nom: "Chef monteur",
    filiere: "E",
    niveau: "IIIA",
    cddu: {
      semaine35h: parseEuro("1 110,85 €"),
      semaine39h: parseEuro("1 269,54 €"),
      jour7h: parseEuro("246,86 €"),
      jour8h: parseEuro("282,12 €"),
      mois35h: parseEuro("4 221,22 €"),
      mois39h: parseEuro("4 824,24 €"),
    },
    cdi: parseEuro("2 651,44 €"),
  },
  {
    nom: "Directeur de post-production",
    filiere: "E",
    niveau: "II",
    cddu: {
      semaine35h: parseEuro("1 245,64 €"),
      semaine39h: parseEuro("1 423,59 €"),
      jour7h: parseEuro("276,81 €"),
      jour8h: parseEuro("316,35 €"),
      mois35h: parseEuro("4 733,44 €"),
      mois39h: parseEuro("5 409,64 €"),
    },
    cdi: parseEuro("2 892,47 €"),
  },
  {
    nom: "Étalonneur",
    filiere: "E",
    niveau: "IIIB",
    cddu: {
      semaine35h: parseEuro("950,84 €"),
      semaine39h: parseEuro("1 086,68 €"),
      jour7h: parseEuro("211,30 €"),
      jour8h: parseEuro("241,48 €"),
      mois35h: parseEuro("3 613,20 €"),
      mois39h: parseEuro("4 129,36 €"),
    },
    cdi: parseEuro("2 169,36 €"),
  },
  {
    nom: "Infographiste",
    filiere: "E",
    niveau: "IIIA",
    cddu: {
      semaine35h: parseEuro("1 035,68 €"),
      semaine39h: parseEuro("1 183,63 €"),
      jour7h: parseEuro("230,15 €"),
      jour8h: parseEuro("263,03 €"),
      mois35h: parseEuro("3 935,57 €"),
      mois39h: parseEuro("4 497,78 €"),
    },
    cdi: parseEuro("2 530,92 €"),
  },
  {
    nom: "Mixeur",
    filiere: "E",
    niveau: "II",
    cddu: {
      semaine35h: parseEuro("1 328,48 €"),
      semaine39h: parseEuro("1 518,26 €"),
      jour7h: parseEuro("295,22 €"),
      jour8h: parseEuro("337,39 €"),
      mois35h: parseEuro("5 048,21 €"),
      mois39h: parseEuro("5 769,37 €"),
    },
    cdi: parseEuro("2 892,47 €"),
  },
  {
    nom: "Superviseur d'effets spéciaux postproduction",
    filiere: "E",
    niveau: "IIIA",
    cddu: {
      semaine35h: parseEuro("1 162,83 €"),
      semaine39h: parseEuro("1 328,95 €"),
      jour7h: parseEuro("258,41 €"),
      jour8h: parseEuro("295,32 €"),
      mois35h: parseEuro("4 418,76 €"),
      mois39h: parseEuro("5 050,00 €"),
    },
    cdi: parseEuro("2 651,44 €"),
  },
  {
    nom: "Truquiste",
    filiere: "E",
    niveau: "IIIA",
    cddu: {
      semaine35h: parseEuro("965,63 €"),
      semaine39h: parseEuro("1 103,58 €"),
      jour7h: parseEuro("214,59 €"),
      jour8h: parseEuro("245,24 €"),
      mois35h: parseEuro("3 669,41 €"),
      mois39h: parseEuro("4 193,60 €"),
    },
    cdi: parseEuro("2 530,92 €"),
  },

  // Filière F - Production
  {
    nom: "Administrateur de production",
    filiere: "F",
    niveau: "IIIA",
    cddu: {
      semaine35h: parseEuro("864,60 €"),
      semaine39h: parseEuro("988,11 €"),
      jour7h: parseEuro("192,13 €"),
      jour8h: parseEuro("219,58 €"),
      mois35h: parseEuro("3 285,48 €"),
      mois39h: parseEuro("3 754,83 €"),
    },
    cdi: parseEuro("2 591,18 €"),
  },
  {
    nom: "Aide de plateau",
    filiere: "F",
    niveau: "VI",
    cddu: {
      semaine35h: parseEuro("475,42 €"),
      semaine39h: parseEuro("543,34 €"),
      jour7h: parseEuro("105,65 €"),
      jour8h: parseEuro("120,74 €"),
      mois35h: parseEuro("2 342,34 €"),
      mois39h: parseEuro("2 676,95 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Assistant d'émission",
    filiere: "F",
    niveau: "VI",
    cddu: {
      semaine35h: parseEuro("456,50 €"),
      semaine39h: parseEuro("521,72 €"),
      jour7h: parseEuro("101,45 €"),
      jour8h: parseEuro("115,94 €"),
      mois35h: parseEuro("2 342,34 €"),
      mois39h: parseEuro("2 676,95 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Assistant de production",
    filiere: "F",
    niveau: "IV",
    cddu: {
      semaine35h: parseEuro("703,86 €"),
      semaine39h: parseEuro("804,41 €"),
      jour7h: parseEuro("156,41 €"),
      jour8h: parseEuro("178,76 €"),
      mois35h: parseEuro("2 674,68 €"),
      mois39h: parseEuro("3 056,77 €"),
    },
    cdi: parseEuro("1 988,58 €"),
  },
  {
    nom: "Assistant de production adjoint",
    filiere: "F",
    niveau: "VI",
    cddu: {
      semaine35h: parseEuro("456,50 €"),
      semaine39h: parseEuro("521,72 €"),
      jour7h: parseEuro("101,45 €"),
      jour8h: parseEuro("115,94 €"),
      mois35h: parseEuro("2 342,34 €"),
      mois39h: parseEuro("2 676,95 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Assistant régisseur adjoint",
    filiere: "F",
    niveau: "VI",
    cddu: {
      semaine35h: parseEuro("456,50 €"),
      semaine39h: parseEuro("521,72 €"),
      jour7h: parseEuro("101,45 €"),
      jour8h: parseEuro("115,94 €"),
      mois35h: parseEuro("2 342,34 €"),
      mois39h: parseEuro("2 676,95 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Chargé de production",
    filiere: "F",
    niveau: "II",
    cddu: {
      semaine35h: parseEuro("948,41 €"),
      semaine39h: parseEuro("1 083,90 €"),
      jour7h: parseEuro("210,76 €"),
      jour8h: parseEuro("240,87 €"),
      mois35h: parseEuro("3 603,95 €"),
      mois39h: parseEuro("4 118,79 €"),
    },
    cdi: parseEuro("2 892,47 €"),
  },
  {
    nom: "Chauffeur",
    filiere: "F",
    niveau: "VI",
    cddu: {
      semaine35h: parseEuro("475,42 €"),
      semaine39h: parseEuro("543,34 €"),
      jour7h: parseEuro("105,65 €"),
      jour8h: parseEuro("120,74 €"),
      mois35h: parseEuro("2 342,34 €"),
      mois39h: parseEuro("2 676,95 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Chauffeur de salle",
    filiere: "F",
    niveau: "IIIB",
    cddu: {
      semaine35h: parseEuro("880,12 €"),
      semaine39h: parseEuro("1 005,85 €"),
      jour7h: parseEuro("195,58 €"),
      jour8h: parseEuro("223,52 €"),
      mois35h: parseEuro("3 344,44 €"),
      mois39h: parseEuro("3 822,21 €"),
    },
    cdi: parseEuro("2 169,36 €"),
  },
  {
    nom: "Coordinateur d'émission",
    filiere: "F",
    niveau: "IIIB",
    cddu: {
      semaine35h: parseEuro("735,16 €"),
      semaine39h: parseEuro("840,18 €"),
      jour7h: parseEuro("163,37 €"),
      jour8h: parseEuro("186,71 €"),
      mois35h: parseEuro("2 793,61 €"),
      mois39h: parseEuro("3 192,68 €"),
    },
    cdi: parseEuro("2 147,87 €"),
  },
  {
    nom: "Directeur de production",
    filiere: "F",
    niveau: "I",
    cddu: {
      semaine35h: parseEuro("1 509,58 €"),
      semaine39h: parseEuro("1 725,23 €"),
      jour7h: parseEuro("335,46 €"),
      jour8h: parseEuro("383,39 €"),
      mois35h: parseEuro("5 736,40 €"),
      mois39h: parseEuro("6 555,86 €"),
    },
    cdi: parseEuro("3 314,29 €"),
  },
  {
    nom: "Producteur exécutif",
    filiere: "F",
    niveau: "HN",
    cddu: {
      semaine35h: null,
      semaine39h: null,
      jour7h: null,
      jour8h: null,
      mois35h: null,
      mois39h: null,
    },
    cdi: null,
  },
  {
    nom: "Régisseur / Responsable des repérages",
    filiere: "F",
    niveau: "IIIB",
    cddu: {
      semaine35h: parseEuro("818,65 €"),
      semaine39h: parseEuro("935,61 €"),
      jour7h: parseEuro("181,92 €"),
      jour8h: parseEuro("207,91 €"),
      mois35h: parseEuro("3 110,89 €"),
      mois39h: parseEuro("3 555,29 €"),
    },
    cdi: parseEuro("2 169,36 €"),
  },
  {
    nom: "Régisseur adjoint",
    filiere: "F",
    niveau: "IV",
    cddu: {
      semaine35h: parseEuro("703,86 €"),
      semaine39h: parseEuro("804,41 €"),
      jour7h: parseEuro("156,41 €"),
      jour8h: parseEuro("178,76 €"),
      mois35h: parseEuro("2 674,68 €"),
      mois39h: parseEuro("3 056,77 €"),
    },
    cdi: parseEuro("1 988,58 €"),
  },
  {
    nom: "Régisseur de plateau / Chef de plateau",
    filiere: "F",
    niveau: "IV",
    cddu: {
      semaine35h: parseEuro("703,86 €"),
      semaine39h: parseEuro("804,41 €"),
      jour7h: parseEuro("156,41 €"),
      jour8h: parseEuro("178,76 €"),
      mois35h: parseEuro("2 674,68 €"),
      mois39h: parseEuro("3 056,77 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
  {
    nom: "Régisseur général",
    filiere: "F",
    niveau: "IIIA",
    cddu: {
      semaine35h: parseEuro("948,41 €"),
      semaine39h: parseEuro("1 083,90 €"),
      jour7h: parseEuro("210,76 €"),
      jour8h: parseEuro("240,87 €"),
      mois35h: parseEuro("3 603,95 €"),
      mois39h: parseEuro("4 118,79 €"),
    },
    cdi: parseEuro("2 651,44 €"),
  },
  {
    nom: "Responsable des enfants",
    filiere: "F",
    niveau: "IIIB",
    cddu: {
      semaine35h: parseEuro("735,16 €"),
      semaine39h: parseEuro("840,18 €"),
      jour7h: parseEuro("163,37 €"),
      jour8h: parseEuro("186,71 €"),
      mois35h: parseEuro("2 793,61 €"),
      mois39h: parseEuro("3 192,68 €"),
    },
    cdi: parseEuro("2 048,84 €"),
  },
  {
    nom: "Secrétaire de production",
    filiere: "F",
    niveau: "V",
    cddu: {
      semaine35h: parseEuro("616,88 €"),
      semaine39h: parseEuro("705,01 €"),
      jour7h: parseEuro("137,09 €"),
      jour8h: parseEuro("156,67 €"),
      mois35h: parseEuro("2 344,16 €"),
      mois39h: parseEuro("2 679,03 €"),
    },
    cdi: parseEuro("1 828,83 €"),
  },
];

const filieres = [
  { code: 'D', nom: 'Plateaux et tournage', icon: Sparkles, color: 'pink' },
  { code: 'E', nom: 'Postproduction', icon: Film, color: 'indigo' },
  { code: 'F', nom: 'Production', icon: ClipboardList, color: 'green' },
];

const colorClasses = {
  pink: {
    bg: 'bg-pink-50',
    border: 'border-pink-200',
    text: 'text-pink-900',
    hover: 'hover:bg-pink-100',
    gradient: 'from-pink-500 to-rose-600',
    ring: 'ring-pink-500',
  },
  indigo: {
    bg: 'bg-indigo-50',
    border: 'border-indigo-200',
    text: 'text-indigo-900',
    hover: 'hover:bg-indigo-100',
    gradient: 'from-indigo-500 to-purple-600',
    ring: 'ring-indigo-500',
  },
  green: {
    bg: 'bg-green-50',
    border: 'border-green-200',
    text: 'text-green-900',
    hover: 'hover:bg-green-100',
    gradient: 'from-green-500 to-emerald-600',
    ring: 'ring-green-500',
  },
};

interface EmploiCardProps {
  emploi: Emploi;
  color: keyof typeof colorClasses;
}

function EmploiCard({ emploi, color }: EmploiCardProps) {
  const [isExpanded, setIsExpanded] = useState(false);
  const [activeTab, setActiveTab] = useState<'cddu' | 'cdi'>('cdi');
  const colors = colorClasses[color];

  return (
    <div className={`rounded-xl border ${colors.border} bg-white overflow-hidden transition-all duration-200 hover:shadow-md`}>
      {/* Header */}
      <button
        onClick={() => setIsExpanded(!isExpanded)}
        className={`w-full px-4 py-3 flex items-center justify-between ${colors.hover} transition-colors`}
      >
        <div className="flex items-center gap-3">
          <span className={`inline-flex items-center px-2 py-1 rounded-md text-xs font-semibold ${colors.bg} ${colors.text}`}>
            Niveau {emploi.niveau}
          </span>
          <h3 className="text-sm font-semibold text-slate-900">{emploi.nom}</h3>
        </div>
        {isExpanded ? (
          <ChevronUp className="w-4 h-4 text-slate-400" />
        ) : (
          <ChevronDown className="w-4 h-4 text-slate-400" />
        )}
      </button>

      {/* Content */}
      {isExpanded && (
        <div className="border-t border-slate-100 p-4 space-y-4">
          {/* Tabs */}
          <div className="flex gap-2">
            <button
              onClick={() => setActiveTab('cdi')}
              className={`flex-1 px-4 py-2 rounded-lg text-xs font-semibold transition-all ${
                activeTab === 'cdi'
                  ? `bg-gradient-to-r ${colors.gradient} text-white shadow-sm`
                  : 'bg-slate-50 text-slate-600 hover:bg-slate-100'
              }`}
            >
              CDI / CDD
            </button>
            <button
              onClick={() => setActiveTab('cddu')}
              className={`flex-1 px-4 py-2 rounded-lg text-xs font-semibold transition-all ${
                activeTab === 'cddu'
                  ? `bg-gradient-to-r ${colors.gradient} text-white shadow-sm`
                  : 'bg-slate-50 text-slate-600 hover:bg-slate-100'
              }`}
            >
              CDDU
            </button>
          </div>

          {/* Content based on tab */}
          {activeTab === 'cdi' ? (
            <div className={`rounded-lg ${colors.bg} border ${colors.border} p-4`}>
              <p className="text-xs text-slate-600 mb-2">Salaire mensuel minimum</p>
              <p className={`text-2xl font-bold ${colors.text}`}>{euro(emploi.cdi)}</p>
            </div>
          ) : (
            <div className="space-y-3">
              {/* Par semaine */}
              <div className={`rounded-lg ${colors.bg} border ${colors.border} p-3`}>
                <p className="text-xs font-semibold text-slate-700 mb-2">Par semaine</p>
                <div className="grid grid-cols-2 gap-3 text-xs">
                  <div>
                    <p className="text-slate-500">Base 35h</p>
                    <p className={`font-bold ${colors.text}`}>{euro(emploi.cddu.semaine35h)}</p>
                  </div>
                  <div>
                    <p className="text-slate-500">Base 39h</p>
                    <p className={`font-bold ${colors.text}`}>{euro(emploi.cddu.semaine39h)}</p>
                  </div>
                </div>
              </div>

              {/* Par jour */}
              <div className={`rounded-lg ${colors.bg} border ${colors.border} p-3`}>
                <p className="text-xs font-semibold text-slate-700 mb-2">Par jour</p>
                <div className="grid grid-cols-2 gap-3 text-xs">
                  <div>
                    <p className="text-slate-500">Base 7h</p>
                    <p className={`font-bold ${colors.text}`}>{euro(emploi.cddu.jour7h)}</p>
                  </div>
                  <div>
                    <p className="text-slate-500">Base 8h</p>
                    <p className={`font-bold ${colors.text}`}>{euro(emploi.cddu.jour8h)}</p>
                  </div>
                </div>
              </div>

              {/* Par mois */}
              <div className={`rounded-lg ${colors.bg} border ${colors.border} p-3`}>
                <p className="text-xs font-semibold text-slate-700 mb-2">Par mois</p>
                <div className="grid grid-cols-2 gap-3 text-xs">
                  <div>
                    <p className="text-slate-500">Base 35h</p>
                    <p className={`font-bold ${colors.text}`}>{euro(emploi.cddu.mois35h)}</p>
                  </div>
                  <div>
                    <p className="text-slate-500">Base 39h</p>
                    <p className={`font-bold ${colors.text}`}>{euro(emploi.cddu.mois39h)}</p>
                  </div>
                </div>
              </div>
            </div>
          )}
        </div>
      )}
    </div>
  );
}

interface CategorieBFluxDataPart2Props {
  activeFiliere: string;
}

export default function CategorieBFluxDataPart2({ activeFiliere }: CategorieBFluxDataPart2Props) {
  const [searchTerm, setSearchTerm] = useState('');

  const filteredEmplois = useMemo(() => {
    // D'abord filtrer par la filière active
    let result = emploisData.filter(e => e.filiere === activeFiliere);

    // Puis appliquer le filtre de recherche
    if (searchTerm) {
      result = result.filter(e =>
        e.nom.toLowerCase().includes(searchTerm.toLowerCase())
      );
    }

    return result.sort((a, b) => a.nom.localeCompare(b.nom));
  }, [activeFiliere, searchTerm]);

  // Déterminer la couleur en fonction de la filière
  const getColorForFiliere = (filiereCode: string): keyof typeof colorClasses => {
    const filiere = filieres.find(f => f.code === filiereCode);
    return (filiere?.color as keyof typeof colorClasses) || 'blue';
  };
  const activeFiliereInfo = filieres.find(f => f.code === activeFiliere);

  return (
    <div className="space-y-6">
      {/* En-tête */}
      <div className="rounded-xl border bg-gradient-to-br from-amber-50 to-orange-50 p-4">
        <h2 className="text-lg font-semibold text-amber-900 mb-1">
          Filière {activeFiliere} - {activeFiliereInfo?.nom || 'Filière'}
        </h2>
        <p className="text-xs text-amber-600 mt-2">
          {emploisData.length} emplois - Grille de salaires CCNPA (IDCC 2642) - Valeurs 2025
        </p>
      </div>

      {/* Recherche */}
      <div className="space-y-4">
        {/* Barre de recherche */}
        <div className="relative">
          <Search className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-slate-400" />
          <input
            type="text"
            value={searchTerm}
            onChange={(e) => setSearchTerm(e.target.value)}
            placeholder={`Rechercher dans ${activeFiliereInfo?.nom || 'la filière'}...`}
            className="w-full pl-10 pr-4 py-2.5 rounded-lg border border-slate-200 focus:ring-2 focus:ring-amber-500 focus:border-transparent text-sm"
          />
        </div>

        {/* Résultats */}
        <div className="space-y-3">
          <div className="flex items-center justify-between">
            <h3 className="text-sm font-semibold text-slate-700">
              {filteredEmplois.length} emploi{filteredEmplois.length > 1 ? 's' : ''} trouvé{filteredEmplois.length > 1 ? 's' : ''}
            </h3>
            {searchTerm && (
              <button
                onClick={() => setSearchTerm('')}
                className="text-xs text-slate-500 hover:text-slate-700"
              >
                Effacer la recherche
              </button>
            )}
          </div>

          <div className="space-y-2">
            {filteredEmplois.map((emploi, index) => (
              <EmploiCard
                key={index}
                emploi={emploi}
                color={getColorForFiliere(emploi.filiere)}
              />
            ))}
          </div>

          {filteredEmplois.length === 0 && (
            <div className="text-center py-12">
              <p className="text-sm text-slate-500">Aucun emploi trouvé pour cette recherche.</p>
            </div>
          )}
        </div>
      </div>
    </div>
  );
}
