/* ---------------------------------------------------------------------------
 * IK000220_P04 (파트 선택) + IK000220_P03 (맵핑 파트 다중 선택) 공용 CSS.
 * Modal #A 30 + 31번째 인스턴스 + *lookup 카테고리 확장*:
 *   - 단일 lookup Rule of Three (IkUserSelectModal + IkDeptSelectModal + IkPartSelectModal)
 *   - *다중 lookup 첫 사례* (IkPartMappingSelectModal) = 신규 패턴
 *
 * 두 모달 모양 거의 동일 — 단일 CSS 파일 공유:
 *   - 헤더 / 검색바 / 그리드 / 푸터 = 공통
 *   - 차이: P03 푸터에 "선택" 버튼 / 그리드 첫 컬럼 체크박스
 * --------------------------------------------------------------------------- */

#ik-part-select-modal,
#ik-part-mapping-select-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  background: rgba(0, 0, 0, 0.45);
  align-items: center;
  justify-content: center;
  font-family: 'Pretendard', 'Malgun Gothic', sans-serif;
}
#ik-part-select-modal.is-open,
#ik-part-mapping-select-modal.is-open { display: flex; }

#ik-part-select-modal .layer-wrap,
#ik-part-mapping-select-modal .layer-wrap {
  width: 620px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  background: #ffffff;
  border-radius: 6px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
  display: flex; flex-direction: column; overflow: hidden;
}
#ik-part-select-modal .layer-header,
#ik-part-mapping-select-modal .layer-header {
  display: flex; align-items: center; padding: 12px 16px;
  border-bottom: 2px solid #2c4368; background: #2c4368; color: #ffffff;
}
#ik-part-select-modal .layer-title,
#ik-part-mapping-select-modal .layer-title { flex: 1; font-size: 14px; font-weight: 600; margin: 0; }
#ik-part-select-modal .layer-close,
#ik-part-mapping-select-modal .layer-close {
  background: transparent; border: 0; color: #ffffff; font-size: 20px; cursor: pointer; line-height: 1;
}

#ik-part-select-modal .layer-content,
#ik-part-mapping-select-modal .layer-content {
  padding: 12px 16px; flex: 1; overflow-y: auto;
  display: flex; flex-direction: column; gap: 8px;
}

#ik-part-select-modal .search-bar,
#ik-part-mapping-select-modal .search-bar {
  background: #f7fafe; border: 1px solid #d8e3f0; border-radius: 4px;
  padding: 8px 12px; display: flex; gap: 8px; align-items: center;
}
#ik-part-select-modal .search-bar label,
#ik-part-mapping-select-modal .search-bar label { font-size: 12px; color: #344b6e; font-weight: 600; }
#ik-part-select-modal .search-bar input[type="text"],
#ik-part-mapping-select-modal .search-bar input[type="text"] {
  padding: 4px 8px; font-size: 12px;
  border: 1px solid #c8d3e0; border-radius: 3px;
}
#ik-part-mapping-select-modal .search-bar input[readonly] { background: #ffffff; flex: 1; }
#ik-part-select-modal .search-bar button,
#ik-part-mapping-select-modal .search-bar button {
  margin-left: auto;
  padding: 4px 12px; font-size: 12px;
  border: 1px solid #2c4368; background: #2c4368; color: #ffffff;
  border-radius: 3px; cursor: pointer;
}
#ik-part-mapping-select-modal .search-bar .btn-team-pop {
  margin-left: 0; background: #ffffff; color: #2c4368; padding: 4px 8px;
}

#ik-part-select-modal .grid-shell,
#ik-part-mapping-select-modal .grid-shell {
  border: 1px solid #c8d3e0; border-radius: 3px;
  max-height: 280px; overflow: auto; background: #ffffff;
}
#ik-part-select-modal .grid-shell table,
#ik-part-mapping-select-modal .grid-shell table {
  width: 100%; border-collapse: collapse; font-size: 11px;
}
#ik-part-select-modal .grid-shell th,
#ik-part-mapping-select-modal .grid-shell th,
#ik-part-select-modal .grid-shell td,
#ik-part-mapping-select-modal .grid-shell td {
  padding: 5px 8px; border-bottom: 1px solid #e3e8ee; text-align: center;
}
#ik-part-select-modal .grid-shell th,
#ik-part-mapping-select-modal .grid-shell th {
  background: #f0f4f9; color: #344b6e; font-weight: 600; position: sticky; top: 0;
}
#ik-part-select-modal .grid-shell tbody tr { cursor: pointer; }
#ik-part-select-modal .grid-shell tbody tr:hover td { background: #f7fafe; }
#ik-part-mapping-select-modal .grid-shell tbody tr:hover td { background: #f7fafe; }
#ik-part-select-modal .grid-shell .empty-row,
#ik-part-mapping-select-modal .grid-shell .empty-row { cursor: default; }
#ik-part-select-modal .grid-shell .empty-row td,
#ik-part-mapping-select-modal .grid-shell .empty-row td {
  text-align: center; color: #888; padding: 32px 8px;
}

#ik-part-select-modal .layer-footer,
#ik-part-mapping-select-modal .layer-footer {
  display: flex; justify-content: flex-end;
  padding: 10px 16px; border-top: 1px solid #e1e5eb; background: #f7f8fa;
  gap: 6px;
}
#ik-part-select-modal .btn,
#ik-part-mapping-select-modal .btn {
  min-width: 80px; padding: 6px 12px; border-radius: 3px;
  font-size: 12px; cursor: pointer;
  border: 1px solid #c8d3e0; background: #ffffff; color: #344b6e;
}
#ik-part-mapping-select-modal .btn.primary {
  border-color: #2c4368; background: #2c4368; color: #ffffff;
}
#ik-part-select-modal .btn:hover,
#ik-part-mapping-select-modal .btn:hover { background: #f0f4f9; }
#ik-part-mapping-select-modal .btn.primary:hover { background: #1f314c; }

#ik-part-select-modal .hint,
#ik-part-mapping-select-modal .hint {
  font-size: 11px; color: #2c4368;
}
