/* ═══ HNS 물질 통합 검색 데이터베이스 ═══ */
/* 화물적부도 277종 / 해양시설 56종 / 용선자 화물코드 983종 = 총 1,316종 기반 */

export interface HNSSearchSubstance {
  id: number;
  abbreviation: string; // 약자/제품명 (화물적부도 코드)
  nameKr: string; // 국문명
  nameEn: string; // 영문명
  synonymsEn: string; // 영문 동의어
  synonymsKr: string; // 국문 동의어/용도
  unNumber: string; // UN번호
  casNumber: string; // CAS번호
  transportMethod: string; // 운송방법
  sebc: string; // SEBC 거동분류
  /* 물리·화학적 특성 */
  usage: string;
  state: string;
  color: string;
  odor: string;
  flashPoint: string;
  autoIgnition: string;
  boilingPoint: string;
  density: string; // 비중 (물=1)
  solubility: string;
  vaporPressure: string;
  vaporDensity: string; // 증기밀도 (공기=1)
  explosionRange: string; // 폭발범위
  /* 위험등급·농도기준 */
  nfpa: { health: number; fire: number; reactivity: number; special: string };
  hazardClass: string;
  ergNumber: string;
  idlh: string;
  aegl2: string;
  erpg2: string;
  /* 방제거리 */
  responseDistanceFire: string;
  responseDistanceSpillDay: string;
  responseDistanceSpillNight: string;
  marineResponse: string;
  /* PPE */
  ppeClose: string;
  ppeFar: string;
  /* MSDS 요약 */
  msds: {
    hazard: string;
    firstAid: string;
    fireFighting: string;
    spillResponse: string;
    exposure: string;
    regulation: string;
  };
  /* IBC CODE */
  ibcHazard: string;
  ibcShipType: string;
  ibcTankType: string;
  ibcDetection: string;
  ibcFireFighting: string;
  ibcMinRequirement: string;
  /* EmS */
  emsCode: string;
  emsFire: string;
  emsSpill: string;
  emsFirstAid: string;
  /* 화물적부도 코드 */
  cargoCodes: Array<{ code: string; name: string; company: string; source: string }>;
  /* 항구별 반입 */
  portFrequency: Array<{ port: string; portCode: string; lastImport: string; frequency: string }>;
}

export const HNS_SEARCH_DB: HNSSearchSubstance[] = [
  {
    id: 1,
    abbreviation: '13BD',
    nameKr: '1,3-부타디엔',
    nameEn: '1,3-BUTADIENE',
    synonymsEn: 'BUTADIENE / PYRROYLENE / DIVINYL / BIVINYL',
    synonymsKr: '부타디엔 · 합성고무·합성수지 원료',
    unNumber: '1010',
    casNumber: '106-99-0',
    transportMethod: '산적액체(2류)',
    sebc: 'G (Gas)',
    usage: '합성고무, 합성수지 원료',
    state: '기체(액화)',
    color: '무색',
    odor: '약간 방향취',
    flashPoint: '-76°C',
    autoIgnition: '420°C',
    boilingPoint: '-4.4°C',
    density: '0.62 (액체)',
    solubility: '0.1 g/L',
    vaporPressure: '2,410 mmHg (25°C)',
    vaporDensity: '1.87',
    explosionRange: '2.0% ~ 11.5%',
    nfpa: { health: 2, fire: 4, reactivity: 2, special: '' },
    hazardClass: '인화성 가스 (Class 2.1)',
    ergNumber: '116P',
    idlh: '2,000 ppm',
    aegl2: '6,600 ppm',
    erpg2: '5,000 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.3km',
    responseDistanceSpillNight: '1.1km',
    marineResponse: '기체 확산, 해상수거 불가',
    ppeClose: '레벨A: 완전밀폐 화학보호복+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '인화성 가스 구분1, 발암성 구분1A, 생식독성 구분2',
      firstAid: '흡입 시 신선한 공기, 호흡곤란 시 산소 공급',
      fireFighting: '물분무, CO₂, 건조분말',
      spillResponse: '점화원 제거, 환기, 가스검지기 작동',
      exposure: 'TWA 2 ppm, STEL 없음',
      regulation: '고압가스안전관리법, 산업안전보건법',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2PG (독립형탱크)',
    ibcDetection: '가연성가스검지기',
    ibcFireFighting: '건조분말, CO₂',
    ibcMinRequirement: 'IMO 2TYPE 이상, 냉각설비',
    emsCode: 'F-D, S-U',
    emsFire:
      '가연성 극히 높음. 물분무로 냉각, 소규모 건조분말/CO₂. 대규모 화재 시 안전거리 확보 후 냉각 주수.',
    emsSpill: '기체 유출 시 환기 확보. 점화원 제거. 증기운 형성 시 대피.',
    emsFirstAid: '흡입: 신선한 공기 이동. 동상(액화가스): 미온수로 해동. 의료조치.',
    cargoCodes: [
      { code: '13BD', name: '1,3-BUTADIENE', company: '국제공통', source: '적부도' },
      { code: 'BD', name: 'BUTADIENE', company: 'LG화학', source: '용선자' },
      { code: 'BUTD', name: 'BUTADIENE', company: '일본선사', source: '제품명' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-02', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-28', frequency: '높음' },
      { port: '대산항', portCode: 'KRDAE', lastImport: '2025-03-15', frequency: '중간' },
    ],
  },
  {
    id: 2,
    abbreviation: 'STYN',
    nameKr: '스티렌 모노머',
    nameEn: 'STYRENE MONOMER',
    synonymsEn: 'VINYLBENZENE / ETHENYLBENZENE / PHENYLETHYLENE',
    synonymsKr: '스틸렌 · 석유화학 중합원료',
    unNumber: '2055',
    casNumber: '100-42-5',
    transportMethod: '산적액체(3류)',
    sebc: 'F (Floater)',
    usage: '합성수지, PS, ABS 원료',
    state: '액체',
    color: '무색~연황색',
    odor: '달콤한 방향취',
    flashPoint: '31°C',
    autoIgnition: '490°C',
    boilingPoint: '145°C',
    density: '0.906',
    solubility: '0.03%',
    vaporPressure: '6.4 mmHg (25°C)',
    vaporDensity: '3.6',
    explosionRange: '0.9% ~ 6.8%',
    nfpa: { health: 2, fire: 3, reactivity: 2, special: '' },
    hazardClass: '인화성 액체 (Class 3)',
    ergNumber: '128P',
    idlh: '700 ppm',
    aegl2: '130 ppm',
    erpg2: '250 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.1km',
    responseDistanceSpillNight: '0.4km',
    marineResponse: '해수면 부유, 오일펜스 유사 봉쇄 가능',
    ppeClose: '레벨B: 비밀폐형 화학보호복+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '인화성 액체 구분3, 급성 독성(흡입) 구분4, 눈 자극성 구분2A',
      firstAid: '흡입 시 신선한 공기, 피부접촉 시 비눗물 세척',
      fireFighting: '알코올 내성 포말, CO₂, 건조분말',
      spillResponse: '오일펜스 설치, 흡착제 회수',
      exposure: 'TWA 20 ppm, STEL 40 ppm',
      regulation: '위험물안전관리법 제4류',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '가연성가스검지기',
    ibcFireFighting: '내알코올 포말, 물분무',
    ibcMinRequirement: 'IMO 2TYPE 이상, 억제제(TBC) 첨가',
    emsCode: 'F-E, S-D',
    emsFire: '인화성 액체. 내알코올 포말, CO₂, 건조분말. 탱크 화재 시 안전거리 확보 후 냉각 주수.',
    emsSpill: '해수면 부유. 오일펜스 설치하여 확산 봉쇄. 흡착제로 회수. 중합 방지 확인.',
    emsFirstAid: '흡입: 신선한 공기 이동. 피부: 비눗물 세척. 눈: 15분 세안. 경구: 구토유발 금지.',
    cargoCodes: [
      { code: 'STYN', name: 'STYRENE MONOMER', company: '국제공통', source: '적부도' },
      { code: 'SM', name: 'STYRENE MONOMER', company: 'LG화학', source: '용선자' },
      { code: 'STY', name: 'STYRENE', company: '일본선사', source: '제품명' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-30', frequency: '높음' },
      { port: '인천항', portCode: 'KRINC', lastImport: '2025-02-20', frequency: '낮음' },
    ],
  },
  {
    id: 3,
    abbreviation: '14BD',
    nameKr: '1,4-부탄디올',
    nameEn: '1,4-BUTANEDIOL',
    synonymsEn: 'BUTANE-1,4-DIOL / TETRAMETHYLENE GLYCOL',
    synonymsKr: '부틸렌글리콜 · 플라스틱 가소제 원료',
    unNumber: '2810',
    casNumber: '110-63-4',
    transportMethod: '포장(6.1합), 산적액체(2류)',
    sebc: 'D (Dissolver)',
    usage: '중간체, 가소제',
    state: '점성있는 액체',
    color: '무색',
    odor: '무취',
    flashPoint: '121°C',
    autoIgnition: '350°C',
    boilingPoint: '230°C',
    density: '1.02',
    solubility: '1,000 g/L (잘녹음)',
    vaporPressure: '0.01 mmHg (25°C)',
    vaporDensity: '3.1',
    explosionRange: '1.95% ~ 18.3%',
    nfpa: { health: 1, fire: 0, reactivity: 1, special: '' },
    hazardClass: '독성-부식성 (기연성)',
    ergNumber: '153',
    idlh: '— (미설정)',
    aegl2: '— (미설정)',
    erpg2: '— (미설정)',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.2km',
    responseDistanceSpillNight: '0.5km',
    marineResponse: '해상수거 불가 (D: 완전 용해)',
    ppeClose: '레벨A: 완전밀폐 화학보호복+SCBA',
    ppeFar: '레벨C: 일체형 화학보호복+정화식호흡기',
    msds: {
      hazard: '급성 독성(경구) 구분4, 피부 자극성 구분2',
      firstAid: '흡입 시 신선한 공기, 피부접촉 시 물로 세척, 눈접촉 시 15분 이상 세안',
      fireFighting: '물분무, 내알코올 포말',
      spillResponse: '흡수제(모래, 흙)로 회수, 배수구 차단',
      exposure: 'TWA 없음, STEL 없음',
      regulation: '위험물안전관리법 제4류',
    },
    ibcHazard: '오염상의 위험성(P)',
    ibcShipType: 'IMO 3TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '없음',
    ibcFireFighting: '내알코올 포말',
    ibcMinRequirement: '적재 선박 IMO 3TYPE 이상',
    emsCode: 'F-E, S-D',
    emsFire: '가연성 있음, 연소 시 자극성/독성 가스 발생. 물분무, 내알코올 포말, CO₂ 사용.',
    emsSpill: '물에 용해 → 해상 회수 불가. 배수구·수로 차단. 흡수제 사용 후 회수.',
    emsFirstAid: '흡입: 신선한 공기 이동. 피부: 오염 의복 제거, 물로 세척. 눈: 15분 이상 세안.',
    cargoCodes: [
      { code: '14BD', name: '1,4-BUTANEDIOL', company: '국제공통', source: '적부도' },
      { code: 'BDO', name: 'BUTANEDIOL', company: 'BASF', source: '용선자' },
      {
        code: 'BUTYLENE GLYCOL',
        name: '1,4-BUTYLENE GLYCOL',
        company: '일본선사',
        source: '제품명',
      },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-03-28', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-25', frequency: '중간' },
      { port: '인천항', portCode: 'KRINC', lastImport: '2025-03-15', frequency: '낮음' },
    ],
  },
  {
    id: 4,
    abbreviation: 'BASEOIL',
    nameKr: '윤활유(기유)',
    nameEn: 'HYDRAULIC FLUID',
    synonymsEn: 'BASE OIL / HYDRAULIC FLUID / Y LUBE / emulsified',
    synonymsKr: '유압유 · 가동장비·선박 엔진',
    unNumber: '1270',
    casNumber: '64742-54-7',
    transportMethod: '산적액체(3류)',
    sebc: 'F (Floater)',
    usage: '윤활, 유압 시스템',
    state: '점성 액체',
    color: '연황~갈색',
    odor: '약한 석유취',
    flashPoint: '200°C↑',
    autoIgnition: '300°C↑',
    boilingPoint: '300~600°C',
    density: '0.85~0.90',
    solubility: '불용성',
    vaporPressure: '<0.01 mmHg',
    vaporDensity: '>5',
    explosionRange: '1.0% ~ 5.0%',
    nfpa: { health: 0, fire: 1, reactivity: 0, special: '' },
    hazardClass: '인화성 액체 (Class 3)',
    ergNumber: '128',
    idlh: '— (미설정)',
    aegl2: '— (미설정)',
    erpg2: '— (미설정)',
    responseDistanceFire: '100m',
    responseDistanceSpillDay: '—',
    responseDistanceSpillNight: '—',
    marineResponse: '해수면 부유, 유흡착제 회수 가능',
    ppeClose: '레벨D: 작업복+안전안경',
    ppeFar: '레벨D: 작업복+안전안경',
    msds: {
      hazard: '인화성 액체 구분4, 흡인 유해성 구분1',
      firstAid: '흡입 시 신선한 공기, 피부접촉 시 비눗물 세척',
      fireFighting: '포말, CO₂, 건조분말',
      spillResponse: '오일펜스 설치, 유흡착제 회수',
      exposure: 'TWA 5 mg/m³ (오일미스트)',
      regulation: '위험물안전관리법 제4류',
    },
    ibcHazard: '오염상의 위험성(P)',
    ibcShipType: 'IMO 3TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '없음',
    ibcFireFighting: '포말',
    ibcMinRequirement: 'IMO 3TYPE',
    emsCode: 'F-E, S-E',
    emsFire: '고인화점 물질. 포말, CO₂, 건조분말로 소화.',
    emsSpill: '해수면 부유. 오일펜스·유흡착제로 회수.',
    emsFirstAid: '흡입: 신선한 공기. 피부: 비눗물 세척. 경구: 의료조치.',
    cargoCodes: [
      { code: 'BASEOIL', name: 'HYDRAULIC FLUID', company: '국제공통', source: '적부도' },
      { code: 'HYD', name: 'HYDRAULIC OIL', company: 'Shell', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '부산항', portCode: 'KRPUS', lastImport: '2025-03-30', frequency: '높음' },
      { port: '인천항', portCode: 'KRINC', lastImport: '2025-03-28', frequency: '중간' },
    ],
  },
  {
    id: 5,
    abbreviation: 'XYLENE',
    nameKr: '자일렌',
    nameEn: 'XYLENE (mixed isomers)',
    synonymsEn: 'DIMETHYLBENZENE / XYLOL',
    synonymsKr: '크실렌 · 도료·용제 원료',
    unNumber: '1307',
    casNumber: '1330-20-7',
    transportMethod: '산적액체(3류)',
    sebc: 'FE (Floater/Evaporator)',
    usage: '도료, 용제, PET 원료',
    state: '액체',
    color: '무색',
    odor: '달콤한 방향취',
    flashPoint: '27°C',
    autoIgnition: '463°C',
    boilingPoint: '138~144°C',
    density: '0.864',
    solubility: '0.02%',
    vaporPressure: '8.8 mmHg (25°C)',
    vaporDensity: '3.66',
    explosionRange: '1.0% ~ 7.0%',
    nfpa: { health: 2, fire: 3, reactivity: 0, special: '' },
    hazardClass: '인화성 액체 (Class 3)',
    ergNumber: '130',
    idlh: '900 ppm',
    aegl2: '920 ppm',
    erpg2: '200 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.1km',
    responseDistanceSpillNight: '0.3km',
    marineResponse: '해수면 부유+증발, 오일펜스 봉쇄 및 대기 모니터링',
    ppeClose: '레벨B: 비밀폐형 화학보호복+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '인화성 액체 구분3, 급성 독성(흡입) 구분4, 피부 자극성 구분2',
      firstAid: '흡입 시 신선한 공기, 피부접촉 시 비눗물 세척',
      fireFighting: '알코올 내성 포말, CO₂, 건조분말',
      spillResponse: '오일펜스 설치, 흡착제 회수, 증기 억제 포말',
      exposure: 'TWA 100 ppm, STEL 150 ppm',
      regulation: '위험물안전관리법 제4류',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '가연성가스검지기',
    ibcFireFighting: '내알코올 포말, 물분무',
    ibcMinRequirement: 'IMO 2TYPE 이상',
    emsCode: 'F-E, S-D',
    emsFire: '인화성 액체. 내알코올 포말, CO₂, 건조분말. 물분무로 냉각.',
    emsSpill: '해수면 부유+증발. 오일펜스 봉쇄 후 흡착제 회수.',
    emsFirstAid: '흡입: 신선한 공기 이동. 피부: 비눗물 세척. 눈: 15분 세안.',
    cargoCodes: [
      { code: 'XYLENE', name: 'XYLENE (mixed isomers)', company: '국제공통', source: '적부도' },
      { code: 'MX', name: 'MIXED XYLENE', company: 'SK에너지', source: '용선자' },
      { code: 'PX', name: 'PARA-XYLENE', company: '삼성토탈', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-02', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '대산항', portCode: 'KRDAE', lastImport: '2025-03-20', frequency: '중간' },
    ],
  },
  {
    id: 6,
    abbreviation: 'MEOH',
    nameKr: '메탄올',
    nameEn: 'METHANOL',
    synonymsEn: 'METHYL ALCOHOL / WOOD ALCOHOL / CARBINOL',
    synonymsKr: '메틸알코올 · 석유화학 원료·연료',
    unNumber: '1230',
    casNumber: '67-56-1',
    transportMethod: '산적액체(3류)',
    sebc: 'ED (Evaporator/Dissolver)',
    usage: '용제, 포르말린 원료, 연료',
    state: '액체',
    color: '무색',
    odor: '약한 알코올취',
    flashPoint: '11°C',
    autoIgnition: '464°C',
    boilingPoint: '64.7°C',
    density: '0.791',
    solubility: '완전 혼화',
    vaporPressure: '127 mmHg (25°C)',
    vaporDensity: '1.11',
    explosionRange: '6.0% ~ 36.5%',
    nfpa: { health: 1, fire: 3, reactivity: 0, special: '' },
    hazardClass: '인화성 액체 (Class 3), 독성',
    ergNumber: '131',
    idlh: '6,000 ppm',
    aegl2: '2,100 ppm',
    erpg2: '1,000 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.1km',
    responseDistanceSpillNight: '0.3km',
    marineResponse: '해수에 완전 용해 → 수질 오염 장기화',
    ppeClose: '레벨B: 비밀폐형 화학보호복+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '인화성 액체 구분2, 급성 독성(경구) 구분3, 급성 독성(흡입) 구분3',
      firstAid: '흡입 시 신선한 공기, 경구 섭취 시 즉시 의료조치',
      fireFighting: '내알코올 포말, CO₂, 건조분말',
      spillResponse: '흡수제 회수, 해수 희석 방지',
      exposure: 'TWA 200 ppm, STEL 250 ppm',
      regulation: '위험물안전관리법 제4류, 산업안전보건법',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '가연성가스검지기, 독성가스검지기',
    ibcFireFighting: '내알코올 포말',
    ibcMinRequirement: 'IMO 2TYPE 이상',
    emsCode: 'F-E, S-D',
    emsFire: '인화성 높음, 불꽃 보이지 않음 주의. 내알코올 포말 필수.',
    emsSpill: '해수에 완전 용해. 회수 불가. 확산 모니터링.',
    emsFirstAid: '경구: 즉시 의료조치(해독제: 에탄올/포메피졸). 흡입: 신선한 공기.',
    cargoCodes: [
      { code: 'MEOH', name: 'METHANOL', company: '국제공통', source: '적부도' },
      { code: 'METH', name: 'METHANOL', company: 'SABIC', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-02', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '인천항', portCode: 'KRINC', lastImport: '2025-03-28', frequency: '중간' },
      { port: '대산항', portCode: 'KRDAE', lastImport: '2025-03-25', frequency: '중간' },
    ],
  },
  {
    id: 7,
    abbreviation: 'TOLU',
    nameKr: '톨루엔',
    nameEn: 'TOLUENE',
    synonymsEn: 'METHYLBENZENE / TOLUOL / PHENYLMETHANE',
    synonymsKr: '톨루올 · 석유화학 용제·TDI 원료',
    unNumber: '1294',
    casNumber: '108-88-3',
    transportMethod: '산적액체(3류)',
    sebc: 'FE (Floater/Evaporator)',
    usage: '용제, TDI 원료, 석유화학',
    state: '액체',
    color: '무색',
    odor: '달콤한 방향취',
    flashPoint: '4°C',
    autoIgnition: '480°C',
    boilingPoint: '110.6°C',
    density: '0.867',
    solubility: '0.05%',
    vaporPressure: '28.4 mmHg (25°C)',
    vaporDensity: '3.14',
    explosionRange: '1.1% ~ 7.1%',
    nfpa: { health: 2, fire: 3, reactivity: 0, special: '' },
    hazardClass: '인화성 액체 (Class 3)',
    ergNumber: '130',
    idlh: '500 ppm',
    aegl2: '560 ppm',
    erpg2: '300 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.1km',
    responseDistanceSpillNight: '0.4km',
    marineResponse: '해수면 부유 → 증발. 오일펜스 봉쇄 + 대기 모니터링',
    ppeClose: '레벨B: 비밀폐형 화학보호복+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '인화성 액체 구분2, 급성 독성(흡입) 구분4, 생식독성 구분2',
      firstAid: '흡입 시 신선한 공기, 피부접촉 시 비눗물 세척',
      fireFighting: '내알코올 포말, CO₂, 건조분말',
      spillResponse: '오일펜스 설치, 흡착제 회수',
      exposure: 'TWA 50 ppm, STEL 150 ppm',
      regulation: '위험물안전관리법 제4류',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '가연성가스검지기',
    ibcFireFighting: '내알코올 포말, 물분무',
    ibcMinRequirement: 'IMO 2TYPE 이상',
    emsCode: 'F-E, S-D',
    emsFire: '인화성 높음. 내알코올 포말, CO₂. 물분무로 냉각.',
    emsSpill: '해수면 부유. 오일펜스 봉쇄 후 흡착제 회수.',
    emsFirstAid: '흡입: 신선한 공기. 피부: 비눗물. 눈: 15분 세안.',
    cargoCodes: [
      { code: 'TOLU', name: 'TOLUENE', company: '국제공통', source: '적부도' },
      { code: 'TOL', name: 'TOLUENE', company: 'SK에너지', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-02', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '대산항', portCode: 'KRDAE', lastImport: '2025-03-25', frequency: '중간' },
    ],
  },
  {
    id: 8,
    abbreviation: 'NH3',
    nameKr: '암모니아',
    nameEn: 'AMMONIA (anhydrous)',
    synonymsEn: 'ANHYDROUS AMMONIA / REFRIGERANT R-717',
    synonymsKr: '암모니아 · 비료·냉매·화학원료',
    unNumber: '1005',
    casNumber: '7664-41-7',
    transportMethod: '산적액체(2류)',
    sebc: 'GD (Gas/Dissolver)',
    usage: '비료, 냉매, 화학원료',
    state: '기체(액화)',
    color: '무색',
    odor: '강한 자극취',
    flashPoint: '— (불연)',
    autoIgnition: '651°C',
    boilingPoint: '-33.4°C',
    density: '0.73 (액체)',
    solubility: '31% (매우 높음)',
    vaporPressure: '8,585 mmHg (25°C)',
    vaporDensity: '0.59',
    explosionRange: '15.0% ~ 28.0%',
    nfpa: { health: 3, fire: 1, reactivity: 0, special: '' },
    hazardClass: '독성 가스 (Class 2.3), 부식성',
    ergNumber: '125',
    idlh: '300 ppm',
    aegl2: '160 ppm',
    erpg2: '150 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.5km',
    responseDistanceSpillNight: '2.0km',
    marineResponse: '기화 → 독성 가스운 형성. 수중 독성도 높음',
    ppeClose: '레벨A: 완전밀폐 화학보호복+SCBA',
    ppeFar: '레벨B: 비밀폐형+SCBA',
    msds: {
      hazard: '급성 독성(흡입) 구분3, 피부 부식성 구분1A, 심한 눈 손상 구분1',
      firstAid: '흡입 시 신선한 공기, 피부 부식 시 다량의 물로 세척',
      fireFighting: '물분무(냉각), 건조분말',
      spillResponse: '물분무로 가스운 제어, 환기 확보',
      exposure: 'TWA 25 ppm, STEL 35 ppm',
      regulation: '고압가스안전관리법, 산업안전보건법, 화학물질관리법',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F), 독성(T)',
    ibcShipType: 'IMO 1TYPE',
    ibcTankType: '1PG (독립형가압탱크)',
    ibcDetection: '독성가스검지기, 가연성가스검지기',
    ibcFireFighting: '물분무, 건조분말',
    ibcMinRequirement: 'IMO 1TYPE, 가압탱크, 독성가스 방호설비',
    emsCode: 'F-C, S-U',
    emsFire: '가연성은 낮으나 폭발범위 내에서 점화 가능. 물분무로 냉각. 독성 가스 확산 주의.',
    emsSpill: '기화 가스 → 풍하측 대피. 물분무로 가스운 억제. 해수 접촉 시 수중 독성 확산.',
    emsFirstAid: '흡입: 즉시 신선한 공기. 피부: 다량의 물. 눈: 15분 이상 세안. 호흡곤란 시 산소.',
    cargoCodes: [
      { code: 'NH3', name: 'AMMONIA (anhydrous)', company: '국제공통', source: '적부도' },
      { code: 'AMM', name: 'AMMONIA', company: '남해화학', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-28', frequency: '중간' },
      { port: '평택항', portCode: 'KRPTK', lastImport: '2025-03-20', frequency: '낮음' },
    ],
  },
  {
    id: 9,
    abbreviation: 'BENZ',
    nameKr: '벤젠',
    nameEn: 'BENZENE',
    synonymsEn: 'BENZOL / CYCLOHEXATRIENE / PHENYL HYDRIDE',
    synonymsKr: '벤졸 · 석유화학 기초원료',
    unNumber: '1114',
    casNumber: '71-43-2',
    transportMethod: '산적액체(3류)',
    sebc: 'FE (Floater/Evaporator)',
    usage: '석유화학 기초원료, 합성수지',
    state: '액체',
    color: '무색',
    odor: '달콤한 방향취',
    flashPoint: '-11°C',
    autoIgnition: '498°C',
    boilingPoint: '80°C',
    density: '0.879',
    solubility: '0.18%',
    vaporPressure: '94.8 mmHg (25°C)',
    vaporDensity: '2.77',
    explosionRange: '1.2% ~ 7.8%',
    nfpa: { health: 2, fire: 3, reactivity: 0, special: '' },
    hazardClass: '인화성 액체 (Class 3), 발암성',
    ergNumber: '130',
    idlh: '500 ppm',
    aegl2: '800 ppm',
    erpg2: '150 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.1km',
    responseDistanceSpillNight: '0.3km',
    marineResponse: '해수면 부유+증발, 오일펜스 봉쇄',
    ppeClose: '레벨B: 비밀폐형+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '인화성 액체 구분2, 발암성 구분1A, 급성 독성(흡입) 구분3',
      firstAid: '흡입 시 신선한 공기, 피부접촉 시 비눗물 세척',
      fireFighting: '내알코올 포말, CO₂, 건조분말',
      spillResponse: '오일펜스 설치, 흡착제 회수, 환기',
      exposure: 'TWA 1 ppm, STEL 5 ppm',
      regulation: '위험물안전관리법 제4류, 산업안전보건법(발암물질)',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '가연성가스검지기',
    ibcFireFighting: '내알코올 포말',
    ibcMinRequirement: 'IMO 2TYPE 이상',
    emsCode: 'F-E, S-D',
    emsFire: '인화성 높음(인화점 -11°C). 내알코올 포말, CO₂, 건조분말.',
    emsSpill: '해수면 부유. 오일펜스 봉쇄 후 흡착제 회수. 발암물질 주의.',
    emsFirstAid: '흡입: 신선한 공기. 피부: 비눗물 세척. 발암성 주의 — 노출 기록 보관.',
    cargoCodes: [
      { code: 'BENZ', name: 'BENZENE', company: '국제공통', source: '적부도' },
      { code: 'BZ', name: 'BENZENE', company: 'SK에너지', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-02', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-30', frequency: '높음' },
    ],
  },
  {
    id: 10,
    abbreviation: 'CL2',
    nameKr: '염소',
    nameEn: 'CHLORINE',
    synonymsEn: 'MOLECULAR CHLORINE / BERTHOLITE',
    synonymsKr: '염소가스 · 수처리·화학공업',
    unNumber: '1017',
    casNumber: '7782-50-5',
    transportMethod: '산적액체(2류)',
    sebc: 'G (Gas)',
    usage: '수처리, 화학공업, 소독',
    state: '기체(액화)',
    color: '황록색',
    odor: '강한 자극취',
    flashPoint: '— (불연)',
    autoIgnition: '— (불연)',
    boilingPoint: '-34°C',
    density: '1.56 (액체)',
    solubility: '0.7%',
    vaporPressure: '6,627 mmHg (25°C)',
    vaporDensity: '2.49',
    explosionRange: '—',
    nfpa: { health: 3, fire: 0, reactivity: 0, special: 'OX' },
    hazardClass: '독성 가스 (Class 2.3), 부식성, 산화성',
    ergNumber: '124',
    idlh: '10 ppm',
    aegl2: '2 ppm',
    erpg2: '3 ppm',
    responseDistanceFire: '800m (주변 화재 시)',
    responseDistanceSpillDay: '1.0km',
    responseDistanceSpillNight: '3.5km',
    marineResponse: '기화 → 해수면 체류(무거움). 독성 가스운 형성',
    ppeClose: '레벨A: 완전밀폐+SCBA 필수',
    ppeFar: '레벨B: 비밀폐형+SCBA',
    msds: {
      hazard: '급성 독성(흡입) 구분2, 피부 부식성 구분1A, 수생환경 유해성 구분1',
      firstAid: '흡입 시 즉시 신선한 공기, 호흡정지 시 인공호흡',
      fireFighting: '물분무(냉각), 주변 소화',
      spillResponse: '풍하측 대피, 물분무로 가스운 억제',
      exposure: 'TWA 0.5 ppm, STEL 1 ppm',
      regulation: '고압가스안전관리법, 화학물질관리법(사고대비물질)',
    },
    ibcHazard: '안전상의 위험성(S), 독성(T), 부식성(C)',
    ibcShipType: 'IMO 1TYPE',
    ibcTankType: '1PG (독립형가압탱크)',
    ibcDetection: '독성가스검지기(필수)',
    ibcFireFighting: '물분무(냉각)',
    ibcMinRequirement: 'IMO 1TYPE, 독성가스 방호장비 필수',
    emsCode: 'F-C, S-R',
    emsFire: '비가연성이나 산화성. 주변 화재 시 탱크 냉각 필수. 독성가스 확산 주의.',
    emsSpill: '공기보다 무거움 → 저지대 체류. 물분무로 가스운 억제. 풍하측 대피.',
    emsFirstAid: '흡입: 즉시 대피, 산소 공급. IDLH 10ppm 극히 낮음 — 미량에도 위험.',
    cargoCodes: [{ code: 'CL2', name: 'CHLORINE', company: '국제공통', source: '적부도' }],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-03-15', frequency: '낮음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-02-28', frequency: '낮음' },
    ],
  },
  {
    id: 11,
    abbreviation: 'H2',
    nameKr: '수소',
    nameEn: 'HYDROGEN',
    synonymsEn: 'COMPRESSED HYDROGEN / LIQUID HYDROGEN',
    synonymsKr: '수소 · 연료전지·정유·반도체',
    unNumber: '1049',
    casNumber: '1333-74-0',
    transportMethod: '산적액체(2류)',
    sebc: 'G (Gas)',
    usage: '연료전지, 정유, 반도체',
    state: '기체(액화)',
    color: '무색',
    odor: '무취',
    flashPoint: '— (불연: 자동점화)',
    autoIgnition: '500°C',
    boilingPoint: '-252.9°C',
    density: '0.07 (기체)',
    solubility: '0.0016%',
    vaporPressure: '— (극고압)',
    vaporDensity: '0.07',
    explosionRange: '4.0% ~ 75.0%',
    nfpa: { health: 0, fire: 4, reactivity: 0, special: '' },
    hazardClass: '인화성 가스 (Class 2.1)',
    ergNumber: '115',
    idlh: '— (단순질식)',
    aegl2: '—',
    erpg2: '—',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.1km',
    responseDistanceSpillNight: '0.3km',
    marineResponse: '급속 상승 확산, BLEVE 위험(액화수소)',
    ppeClose: '레벨B: 비밀폐형+SCBA',
    ppeFar: '레벨D: 작업복(환기 확보 시)',
    msds: {
      hazard: '인화성 가스 구분1, 가압가스(압축/액화)',
      firstAid: '질식: 산소 공급, 동상(액화): 미온수 해동',
      fireFighting: '건조분말, CO₂, 물분무(냉각)',
      spillResponse: '점화원 제거, 환기, 가스검지기',
      exposure: 'TWA 없음 (단순 질식제)',
      regulation: '고압가스안전관리법',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 1TYPE (특수)',
    ibcTankType: '1PG (독립형가압탱크/극저온)',
    ibcDetection: '가연성가스검지기(필수)',
    ibcFireFighting: '건조분말, CO₂',
    ibcMinRequirement: 'IMO 1TYPE, 극저온 설비, 방폭구역',
    emsCode: 'F-D, S-U',
    emsFire: '폭발범위 극히 넓음(4~75%). 물분무로 냉각. 누출 시 점화원 완전 제거.',
    emsSpill: '급속 상승 확산. 밀폐공간 축적 → 폭발 위험. 환기 확보.',
    emsFirstAid: '질식: 산소 공급. 동상(액화수소): 미온수로 서서히 해동.',
    cargoCodes: [
      { code: 'H2', name: 'HYDROGEN', company: '국제공통', source: '적부도' },
      { code: 'LH2', name: 'LIQUID HYDROGEN', company: '수소선사', source: '용선자' },
    ],
    portFrequency: [
      { port: '인천항', portCode: 'KRINC', lastImport: '2025-03-20', frequency: '낮음' },
      { port: '평택항', portCode: 'KRPTK', lastImport: '2025-02-15', frequency: '낮음' },
    ],
  },
  {
    id: 12,
    abbreviation: 'LPG',
    nameKr: 'LPG (프로판/부탄)',
    nameEn: 'LPG (PROPANE/BUTANE)',
    synonymsEn: 'LIQUEFIED PETROLEUM GAS / PROPANE / N-BUTANE',
    synonymsKr: 'LPG · 연료·석유화학 원료',
    unNumber: '1075',
    casNumber: '68476-85-7',
    transportMethod: '산적액체(2류)',
    sebc: 'G (Gas)',
    usage: '연료, 석유화학 원료',
    state: '기체(액화)',
    color: '무색',
    odor: '무취(부취제 첨가)',
    flashPoint: '-104°C',
    autoIgnition: '450°C',
    boilingPoint: '-42°C (프로판)',
    density: '0.50 (액체)',
    solubility: '0.01%',
    vaporPressure: '8,460 mmHg (25°C)',
    vaporDensity: '1.52',
    explosionRange: '2.1% ~ 9.5%',
    nfpa: { health: 1, fire: 4, reactivity: 0, special: '' },
    hazardClass: '인화성 가스 (Class 2.1)',
    ergNumber: '115',
    idlh: '2,100 ppm',
    aegl2: '17,000 ppm',
    erpg2: '—',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.3km',
    responseDistanceSpillNight: '1.1km',
    marineResponse: '기화 → 공기보다 무거움 → 해수면 체류 → 폭발 위험',
    ppeClose: '레벨B: 비밀폐형+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '인화성 가스 구분1, 가압가스(액화)',
      firstAid: '질식: 산소 공급, 동상: 미온수 해동',
      fireFighting: '건조분말, CO₂, 물분무(냉각)',
      spillResponse: '점화원 제거, 환기, 가스검지기',
      exposure: 'TWA 1,000 ppm',
      regulation: '고압가스안전관리법, 액화석유가스법',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2PG (독립형가압탱크)',
    ibcDetection: '가연성가스검지기',
    ibcFireFighting: '건조분말, CO₂',
    ibcMinRequirement: 'IMO 2TYPE 이상, 가압설비',
    emsCode: 'F-D, S-U',
    emsFire: '인화성 극히 높음. 건조분말, CO₂. BLEVE 위험 → 안전거리 확보.',
    emsSpill: '증기 공기보다 무거움 → 저지대 축적. 점화원 완전 제거.',
    emsFirstAid: '질식: 산소 공급. 동상: 미온수. 화상: 냉수 냉각.',
    cargoCodes: [
      { code: 'LPG', name: 'LPG (PROPANE/BUTANE)', company: '국제공통', source: '적부도' },
      { code: 'PROP', name: 'PROPANE', company: 'E1', source: '용선자' },
    ],
    portFrequency: [
      { port: '인천항', portCode: 'KRINC', lastImport: '2025-04-02', frequency: '높음' },
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-30', frequency: '중간' },
    ],
  },
  {
    id: 13,
    abbreviation: 'EDC',
    nameKr: '1,2-디클로로에탄',
    nameEn: '1,2-DICHLOROETHANE',
    synonymsEn: 'ETHYLENE DICHLORIDE / EDC / 1,2-DCE',
    synonymsKr: '에틸렌디클로라이드 · PVC 원료',
    unNumber: '1184',
    casNumber: '107-06-2',
    transportMethod: '산적액체(3류)',
    sebc: 'S (Sinker)',
    usage: 'PVC 원료, 용제',
    state: '액체',
    color: '무색',
    odor: '달콤한 에테르취',
    flashPoint: '13°C',
    autoIgnition: '413°C',
    boilingPoint: '83°C',
    density: '1.253',
    solubility: '0.87%',
    vaporPressure: '87 mmHg (25°C)',
    vaporDensity: '3.42',
    explosionRange: '6.2% ~ 16.0%',
    nfpa: { health: 2, fire: 3, reactivity: 0, special: '' },
    hazardClass: '인화성 액체 (Class 3), 독성',
    ergNumber: '131',
    idlh: '50 ppm',
    aegl2: '20 ppm',
    erpg2: '100 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.3km',
    responseDistanceSpillNight: '1.0km',
    marineResponse: '비중>1 → 침강. 저층 오염. 수중 모니터링 필수',
    ppeClose: '레벨A: 완전밀폐+SCBA',
    ppeFar: '레벨B: 비밀폐형+SCBA',
    msds: {
      hazard: '인화성 액체 구분2, 발암성 구분1B, 급성 독성(흡입) 구분3',
      firstAid: '흡입 시 신선한 공기, 피부접촉 시 다량의 물',
      fireFighting: '내알코올 포말, CO₂, 건조분말',
      spillResponse: '흡수제 회수, 배수구 차단, 수중 모니터링',
      exposure: 'TWA 10 ppm, STEL 없음',
      regulation: '위험물안전관리법 제4류, 산업안전보건법(발암물질)',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F), 독성(T)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '독성가스검지기, 가연성가스검지기',
    ibcFireFighting: '내알코올 포말',
    ibcMinRequirement: 'IMO 2TYPE 이상',
    emsCode: 'F-E, S-D',
    emsFire: '인화성 높음. 내알코올 포말, CO₂. 발암물질 — 노출 최소화.',
    emsSpill: '비중>1 → 해저 침강. 저층 오염 모니터링. 수중 회수 필요.',
    emsFirstAid: '흡입: 신선한 공기. 피부: 다량의 물. 발암성 주의.',
    cargoCodes: [
      { code: 'EDC', name: '1,2-DICHLOROETHANE', company: '국제공통', source: '적부도' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-03-25', frequency: '중간' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-20', frequency: '중간' },
    ],
  },
  {
    id: 14,
    abbreviation: 'ACET',
    nameKr: '아세톤',
    nameEn: 'ACETONE',
    synonymsEn: 'DIMETHYL KETONE / 2-PROPANONE / PROPAN-2-ONE',
    synonymsKr: '디메틸케톤 · 용제·세정제',
    unNumber: '1090',
    casNumber: '67-64-1',
    transportMethod: '산적액체(3류)',
    sebc: 'ED (Evaporator/Dissolver)',
    usage: '용제, 세정제, 화학원료',
    state: '액체',
    color: '무색',
    odor: '달콤한 과일향',
    flashPoint: '-20°C',
    autoIgnition: '465°C',
    boilingPoint: '56°C',
    density: '0.784',
    solubility: '완전 혼화',
    vaporPressure: '231 mmHg (25°C)',
    vaporDensity: '2.0',
    explosionRange: '2.5% ~ 12.8%',
    nfpa: { health: 1, fire: 3, reactivity: 0, special: '' },
    hazardClass: '인화성 액체 (Class 3)',
    ergNumber: '127',
    idlh: '2,500 ppm',
    aegl2: '3,200 ppm',
    erpg2: '—',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.1km',
    responseDistanceSpillNight: '0.2km',
    marineResponse: '해수에 완전 용해 + 급속 증발',
    ppeClose: '레벨B: 비밀폐형+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '인화성 액체 구분2, 특정표적장기독성(단회) 구분3',
      firstAid: '흡입 시 신선한 공기, 피부접촉 시 물 세척',
      fireFighting: '내알코올 포말, CO₂, 건조분말',
      spillResponse: '흡수제 회수, 환기, 점화원 제거',
      exposure: 'TWA 500 ppm, STEL 750 ppm',
      regulation: '위험물안전관리법 제4류',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '가연성가스검지기',
    ibcFireFighting: '내알코올 포말',
    ibcMinRequirement: 'IMO 2TYPE 이상',
    emsCode: 'F-E, S-D',
    emsFire: '인화성 높음(인화점 -20°C). 내알코올 포말 필수.',
    emsSpill: '해수에 완전 용해 + 급속 증발. 수질 모니터링.',
    emsFirstAid: '흡입: 신선한 공기. 피부: 물 세척. 경구: 의료조치.',
    cargoCodes: [
      { code: 'ACET', name: 'ACETONE', company: '국제공통', source: '적부도' },
      { code: 'ACE', name: 'ACETONE', company: '금호미쓰이', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-28', frequency: '중간' },
    ],
  },
  {
    id: 15,
    abbreviation: 'PHENOL',
    nameKr: '페놀',
    nameEn: 'PHENOL',
    synonymsEn: 'CARBOLIC ACID / HYDROXYBENZENE / PHENIC ACID',
    synonymsKr: '석탄산 · 합성수지 원료·소독제',
    unNumber: '2312',
    casNumber: '108-95-2',
    transportMethod: '산적액체(6.1류)',
    sebc: 'SD (Sinker/Dissolver)',
    usage: '합성수지(BPA), 소독제',
    state: '결정(고체)/액체(용융)',
    color: '무색~연분홍',
    odor: '독특한 약품취',
    flashPoint: '79°C',
    autoIgnition: '715°C',
    boilingPoint: '181.7°C',
    density: '1.07',
    solubility: '84 g/L',
    vaporPressure: '0.36 mmHg (25°C)',
    vaporDensity: '3.24',
    explosionRange: '1.8% ~ 8.6%',
    nfpa: { health: 4, fire: 2, reactivity: 0, special: '' },
    hazardClass: '독성 액체 (Class 6.1), 부식성',
    ergNumber: '153',
    idlh: '250 ppm',
    aegl2: '29 ppm',
    erpg2: '50 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.2km',
    responseDistanceSpillNight: '0.8km',
    marineResponse: '비중 1.07 → Sinker. 저층 축적. 수중 독성 높음',
    ppeClose: '레벨A: 완전밀폐+SCBA',
    ppeFar: '레벨B: 비밀폐형+SCBA',
    msds: {
      hazard: '급성 독성(경구) 구분3, 급성 독성(경피) 구분3, 피부 부식성 구분1A',
      firstAid: '피부: 즉시 PEG(폴리에틸렌글리콜)로 세척, 물 사용 시 다량',
      fireFighting: '물분무, 내알코올 포말, CO₂',
      spillResponse: '흡수제 회수, 저층 오염 모니터링',
      exposure: 'TWA 5 ppm, STEL 없음',
      regulation: '위험물안전관리법, 화학물질관리법(사고대비물질)',
    },
    ibcHazard: '안전상의 위험성(S), 독성(T), 부식성(C)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '독성가스검지기',
    ibcFireFighting: '물분무, 내알코올 포말',
    ibcMinRequirement: 'IMO 2TYPE 이상, 가열설비(융점 41°C)',
    emsCode: 'F-A, S-A',
    emsFire: '가연성. 물분무, 내알코올 포말. 독성 연소 가스 주의.',
    emsSpill: '비중>1 → 침강. 용해성 있어 수질 오염. 저층 모니터링 필수.',
    emsFirstAid: '피부: PEG 400 세척 → 다량의 물. 흡입: 신선한 공기. 경피 독성 높음.',
    cargoCodes: [
      { code: 'PHENOL', name: 'PHENOL', company: '국제공통', source: '적부도' },
      { code: 'PHE', name: 'PHENOL (MOLTEN)', company: '금호미쓰이', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-03-30', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-20', frequency: '중간' },
    ],
  },
  {
    id: 16,
    abbreviation: 'ETHAN',
    nameKr: '에틸렌',
    nameEn: 'ETHYLENE',
    synonymsEn: 'ETHENE / OLEFIANT GAS',
    synonymsKr: '에텐 · 석유화학 기초원료',
    unNumber: '1962',
    casNumber: '74-85-1',
    transportMethod: '산적액체(2류)',
    sebc: 'G (Gas)',
    usage: 'PE, EO 원료, 석유화학 기초',
    state: '기체',
    color: '무색',
    odor: '약간 달콤한 취',
    flashPoint: '—',
    autoIgnition: '490°C',
    boilingPoint: '-103.7°C',
    density: '0.57 (액체)',
    solubility: '0.01%',
    vaporPressure: '— (극고압)',
    vaporDensity: '0.97',
    explosionRange: '2.7% ~ 36.0%',
    nfpa: { health: 1, fire: 4, reactivity: 2, special: '' },
    hazardClass: '인화성 가스 (Class 2.1)',
    ergNumber: '116P',
    idlh: '— (단순질식)',
    aegl2: '—',
    erpg2: '—',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.3km',
    responseDistanceSpillNight: '1.1km',
    marineResponse: '기체 확산, 폭발범위 넓음, 해상수거 불가',
    ppeClose: '레벨B: 비밀폐형+SCBA',
    ppeFar: '레벨D: 작업복(환기 확보 시)',
    msds: {
      hazard: '인화성 가스 구분1',
      firstAid: '질식: 산소 공급',
      fireFighting: '건조분말, CO₂',
      spillResponse: '점화원 제거, 환기',
      exposure: 'TWA 없음',
      regulation: '고압가스안전관리법',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2PG (독립형가압탱크)',
    ibcDetection: '가연성가스검지기',
    ibcFireFighting: '건조분말, CO₂',
    ibcMinRequirement: 'IMO 2TYPE, 냉각설비',
    emsCode: 'F-D, S-U',
    emsFire: '인화성 극히 높음, 폭발범위 넓음. 건조분말, CO₂.',
    emsSpill: '기체 확산. 점화원 제거. 환기.',
    emsFirstAid: '질식: 산소 공급.',
    cargoCodes: [
      { code: 'ETHAN', name: 'ETHYLENE', company: '국제공통', source: '적부도' },
      { code: 'ETH', name: 'ETHYLENE', company: 'LG화학', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-02', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-04-01', frequency: '높음' },
    ],
  },
  {
    id: 17,
    abbreviation: 'H2SO4',
    nameKr: '황산',
    nameEn: 'SULPHURIC ACID',
    synonymsEn: 'SULFURIC ACID / OIL OF VITRIOL / BATTERY ACID',
    synonymsKr: '유산 · 비료·제철·석유정제',
    unNumber: '1830',
    casNumber: '7664-93-9',
    transportMethod: '산적액체(8류)',
    sebc: 'SD (Sinker/Dissolver)',
    usage: '비료, 제철, 석유정제',
    state: '점성 액체',
    color: '무색~황색',
    odor: '무취(순수)~자극취(농축)',
    flashPoint: '— (불연)',
    autoIgnition: '— (불연)',
    boilingPoint: '337°C',
    density: '1.84',
    solubility: '완전 혼화',
    vaporPressure: '0.001 mmHg',
    vaporDensity: '3.4',
    explosionRange: '—',
    nfpa: { health: 3, fire: 0, reactivity: 2, special: 'W' },
    hazardClass: '부식성 (Class 8)',
    ergNumber: '137',
    idlh: '15 mg/m³',
    aegl2: '0.43 ppm',
    erpg2: '10 mg/m³',
    responseDistanceFire: '500m (주변 화재)',
    responseDistanceSpillDay: '0.3km',
    responseDistanceSpillNight: '1.0km',
    marineResponse: '비중 1.84 → 즉시 침강. 해수 반응 시 발열·미스트',
    ppeClose: '레벨A: 완전밀폐+SCBA',
    ppeFar: '레벨B: 비밀폐형+SCBA',
    msds: {
      hazard: '피부 부식성 구분1A, 심한 눈 손상 구분1',
      firstAid: '피부: 즉시 다량의 물로 15분 이상 세척. 눈: 세안 15분 이상',
      fireFighting: '물분무(희석 주의), 건조분말',
      spillResponse: '중화제(석회, 소다회), 배수구 차단',
      exposure: 'TWA 0.2 mg/m³',
      regulation: '위험물안전관리법, 화학물질관리법(사고대비물질)',
    },
    ibcHazard: '부식성(C), 반응성(R)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (내식재료)',
    ibcDetection: '없음',
    ibcFireFighting: '물분무',
    ibcMinRequirement: 'IMO 2TYPE, 내산 탱크코팅',
    emsCode: 'F-A, S-B',
    emsFire: '비가연. 주변 화재 시 독성 SO₃ 미스트 발생. 물분무로 냉각.',
    emsSpill: '비중 1.84 → 즉시 침강. 물 접촉 시 발열 주의. 중화제 사용.',
    emsFirstAid: '피부: 즉시 다량의 물 15분. 눈: 세안 15분. 경구: 물·우유.',
    cargoCodes: [
      { code: 'H2SO4', name: 'SULPHURIC ACID', company: '국제공통', source: '적부도' },
      { code: 'SA', name: 'SULFURIC ACID', company: '롯데정밀화학', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-02', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '인천항', portCode: 'KRINC', lastImport: '2025-03-28', frequency: '높음' },
    ],
  },
  {
    id: 18,
    abbreviation: 'NaOH',
    nameKr: '가성소다',
    nameEn: 'SODIUM HYDROXIDE SOLUTION',
    synonymsEn: 'CAUSTIC SODA / LYE / SODA LYE',
    synonymsKr: '수산화나트륨 · 화학공업·수처리',
    unNumber: '1824',
    casNumber: '1310-73-2',
    transportMethod: '산적액체(8류)',
    sebc: 'D (Dissolver)',
    usage: '화학공업, 수처리, 세제',
    state: '액체(수용액)',
    color: '무색~약간 혼탁',
    odor: '무취',
    flashPoint: '— (불연)',
    autoIgnition: '— (불연)',
    boilingPoint: '140°C (50% 용액)',
    density: '1.52 (50% 용액)',
    solubility: '완전 혼화',
    vaporPressure: '0 mmHg (실온)',
    vaporDensity: '—',
    explosionRange: '—',
    nfpa: { health: 3, fire: 0, reactivity: 1, special: '' },
    hazardClass: '부식성 (Class 8)',
    ergNumber: '154',
    idlh: '10 mg/m³',
    aegl2: '—',
    erpg2: '5 mg/m³',
    responseDistanceFire: '—',
    responseDistanceSpillDay: '0.1km',
    responseDistanceSpillNight: '0.3km',
    marineResponse: '해수에 용해, pH 변화 → 해양생태계 영향',
    ppeClose: '레벨B: 비밀폐형+SCBA',
    ppeFar: '레벨C: 화학보호복+정화식호흡기',
    msds: {
      hazard: '피부 부식성 구분1A, 심한 눈 손상 구분1',
      firstAid: '피부: 다량의 물로 15분 세척. 눈: 즉시 세안 15분 이상',
      fireFighting: '비가연, 주변 소화',
      spillResponse: '중화제(산성용액), 배수구 차단',
      exposure: 'TWA 2 mg/m³',
      regulation: '위험물안전관리법, 화학물질관리법',
    },
    ibcHazard: '부식성(C)',
    ibcShipType: 'IMO 3TYPE',
    ibcTankType: '2G (내식재료)',
    ibcDetection: '없음',
    ibcFireFighting: '해당없음',
    ibcMinRequirement: 'IMO 3TYPE, 내알칼리 탱크코팅',
    emsCode: 'F-A, S-B',
    emsFire: '비가연. 주변 화재 시 냉각 주수.',
    emsSpill: '해수에 용해. pH 변화 모니터링. 중화제 사용.',
    emsFirstAid: '피부: 다량의 물 15분. 눈: 즉시 세안.',
    cargoCodes: [
      { code: 'NaOH', name: 'SODIUM HYDROXIDE SOLUTION', company: '국제공통', source: '적부도' },
      { code: 'CSL', name: 'CAUSTIC SODA LIQUID', company: 'OCI', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '인천항', portCode: 'KRINC', lastImport: '2025-03-30', frequency: '높음' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-28', frequency: '중간' },
    ],
  },
  {
    id: 19,
    abbreviation: 'AAN',
    nameKr: '아크릴로니트릴',
    nameEn: 'ACRYLONITRILE',
    synonymsEn: 'VINYL CYANIDE / PROPENENITRILE / CYANOETHYLENE',
    synonymsKr: '시안화비닐 · 아크릴섬유·ABS 원료',
    unNumber: '1093',
    casNumber: '107-13-1',
    transportMethod: '산적액체(3류)',
    sebc: 'ED (Evaporator/Dissolver)',
    usage: '아크릴섬유, ABS, NBR 원료',
    state: '액체',
    color: '무색',
    odor: '양파/마늘취',
    flashPoint: '0°C',
    autoIgnition: '481°C',
    boilingPoint: '77°C',
    density: '0.806',
    solubility: '7.3%',
    vaporPressure: '109 mmHg (25°C)',
    vaporDensity: '1.83',
    explosionRange: '3.0% ~ 17.0%',
    nfpa: { health: 4, fire: 3, reactivity: 2, special: '' },
    hazardClass: '인화성 액체 (Class 3), 독성',
    ergNumber: '131P',
    idlh: '85 ppm',
    aegl2: '10 ppm',
    erpg2: '35 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.5km',
    responseDistanceSpillNight: '2.0km',
    marineResponse: '부분 용해 + 증발. 독성 높음',
    ppeClose: '레벨A: 완전밀폐+SCBA',
    ppeFar: '레벨B: 비밀폐형+SCBA',
    msds: {
      hazard: '인화성 액체 구분2, 급성 독성(흡입) 구분2, 발암성 구분2',
      firstAid: '흡입: 즉시 신선한 공기. 피부: 오염의복 제거, 다량의 물',
      fireFighting: '내알코올 포말, CO₂, 건조분말',
      spillResponse: '흡수제 회수, 환기, 독성가스 경보',
      exposure: 'TWA 2 ppm, STEL 없음',
      regulation: '위험물안전관리법, 화학물질관리법(사고대비물질), 산업안전보건법(발암물질)',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F), 독성(T)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2G (일체형탱크)',
    ibcDetection: '독성가스검지기, 가연성가스검지기',
    ibcFireFighting: '내알코올 포말',
    ibcMinRequirement: 'IMO 2TYPE 이상, 억제제 첨가',
    emsCode: 'F-E, S-D',
    emsFire: '인화성 높음. 독성가스 발생 주의. 내알코올 포말, CO₂.',
    emsSpill: '부분 용해 + 증발. 독성 높음 — 풍하측 대피. 흡수제 회수.',
    emsFirstAid: '흡입: 즉시 대피. 시안화물 중독 우려 — 해독제 준비.',
    cargoCodes: [
      { code: 'AAN', name: 'ACRYLONITRILE', company: '국제공통', source: '적부도' },
      { code: 'AN', name: 'ACRYLONITRILE', company: 'LG화학', source: '용선자' },
    ],
    portFrequency: [
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-03-28', frequency: '중간' },
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-03-15', frequency: '낮음' },
    ],
  },
  {
    id: 20,
    abbreviation: 'VCM',
    nameKr: '염화비닐',
    nameEn: 'VINYL CHLORIDE',
    synonymsEn: 'CHLOROETHYLENE / CHLOROETHENE / VCM',
    synonymsKr: '모노머 · PVC 원료',
    unNumber: '1086',
    casNumber: '75-01-4',
    transportMethod: '산적액체(2류)',
    sebc: 'G (Gas)',
    usage: 'PVC 원료',
    state: '기체(액화)',
    color: '무색',
    odor: '달콤한 에테르취',
    flashPoint: '-78°C',
    autoIgnition: '472°C',
    boilingPoint: '-13°C',
    density: '0.91 (액체)',
    solubility: '0.11%',
    vaporPressure: '3,000 mmHg (25°C)',
    vaporDensity: '2.15',
    explosionRange: '3.6% ~ 33.0%',
    nfpa: { health: 2, fire: 4, reactivity: 1, special: '' },
    hazardClass: '인화성 가스 (Class 2.1), 발암성',
    ergNumber: '116P',
    idlh: '-',
    aegl2: '140 ppm',
    erpg2: '500 ppm',
    responseDistanceFire: '800m',
    responseDistanceSpillDay: '0.3km',
    responseDistanceSpillNight: '1.2km',
    marineResponse: '기화 확산. 발암물질 — 노출 최소화',
    ppeClose: '레벨A: 완전밀폐+SCBA',
    ppeFar: '레벨B: 비밀폐형+SCBA',
    msds: {
      hazard: '인화성 가스 구분1, 발암성 구분1A',
      firstAid: '흡입: 즉시 신선한 공기. 호흡곤란 시 산소',
      fireFighting: '건조분말, CO₂, 물분무(냉각)',
      spillResponse: '환기, 점화원 제거, 가스검지기',
      exposure: 'TWA 1 ppm',
      regulation: '고압가스안전관리법, 산업안전보건법(발암물질)',
    },
    ibcHazard: '안전상의 위험성(S), 인화성(F), 독성(T)',
    ibcShipType: 'IMO 2TYPE',
    ibcTankType: '2PG (독립형가압탱크)',
    ibcDetection: '가연성가스검지기, 독성가스검지기',
    ibcFireFighting: '건조분말, CO₂',
    ibcMinRequirement: 'IMO 2TYPE, 억제제, 냉각설비',
    emsCode: 'F-D, S-U',
    emsFire: '인화성 극히 높음. 건조분말, CO₂. 발암물질 → 노출 최소화.',
    emsSpill: '기화 확산. 점화원 제거. 풍하측 대피.',
    emsFirstAid: '흡입: 즉시 신선한 공기. 발암물질 — 노출 기록 보관.',
    cargoCodes: [
      { code: 'VCM', name: 'VINYL CHLORIDE', company: '국제공통', source: '적부도' },
      { code: 'VC', name: 'VINYL CHLORIDE MONOMER', company: '한화솔루션', source: '용선자' },
    ],
    portFrequency: [
      { port: '여수항', portCode: 'KRYOS', lastImport: '2025-04-01', frequency: '높음' },
      { port: '울산항', portCode: 'KRULS', lastImport: '2025-03-28', frequency: '중간' },
    ],
  },
];
