*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  background: var(--color-panel);
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  overflow-x: auto;
  min-width:1200px !important; /* 이거 지우면 게시판 형태를 보장못함 */
}

/* 팝업 창은 window.open 크기에 맞춘다. 본문 최소 폭은 각 팝업 표가 정한다.
   portalUiPopup: 데코레이터 팝업, data-ui-window: 데코레이터를 거치지 않는 stnd 단독 팝업 */
body.portalUiPopup,
body[data-ui-window] {
  min-width: 0 !important;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
}

button {
  cursor: pointer;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

ul,
ol,
dl,
dd,
dt,
p,
figure {
  margin: 0;
}

ul,
ol {
  padding: 0;
}

li {
  margin: 0;
}

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

select[data-select="progress"] {
    width: 100%;
    height: 30px !important;
    min-height: var(--table-select-min-height);
    padding: var(--table-select-pad-y) 34px var(--table-select-pad-y) var(--table-select-pad-x);
    border: 1px solid var(--color-select-border) !important;
    border-radius: var(--table-pill-radius) !important;
    background-color: var(--color-panel) !important;
    color: var(--color-text-primary) !important;
    font-family: var(--font-family-base) !important;
    font-size: var(--font-size-2xs) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
    vertical-align: middle;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: var(--icon-select-arrow-dark) !important;
    background-position: calc(100% - 12px) 50% !important;
    background-size: 10px 6px !important;
    background-repeat: no-repeat !important;
    outline-width: 0;
}

select[data-select="progress"]::-ms-expand {
    display: none;
}

select[data-select="progress"] option {
    color: var(--color-text-primary) !important;
    background-color: var(--color-panel) !important;
    font-family: var(--font-family-base) !important;
    font-size: var(--font-size-2xs) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

select[data-select="progress"] option[data-active="true"] {
    color: var(--color-pill-text-light) !important;
    background-color: var(--color-pill-dark) !important;
}

select[data-select="progress"][data-active="true"] {
    border-color: var(--color-pill-dark) !important;
    background-color: var(--color-pill-dark) !important;
    color: var(--color-pill-text-light) !important;
    -webkit-text-fill-color: var(--color-pill-text-light) !important;
    text-shadow: none !important;
    background-image: var(--icon-select-arrow-light) !important;
}

/* eCAF 디자인 레이어 */
.ecafDesignLayer {
  z-index: 1100;
  padding: 24px;
}
.ecafDesignLayer .layerPanel {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  width: min(1600px, calc(100vw - 48px));
  height: min(920px, calc(100vh - 48px));
  max-width: none;
  max-height: none;
  padding: 0;
  border: 1px solid #393640;
  border-radius: 10px;
  background: #fff;
}
.ecafDesignLayer .layerHeader {
  flex: 0 0 auto;
  margin: 14px 14px 0;
  padding: 14px 24px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(90deg, #c6a044 0%, #f6c542 80%, #ddb23c 100%);
}
.ecafDesignLayer .layerHeader h2 {
  font-size: 22px;
  color: #fff;
}
.ecafDesignLayer .layerClose {
  width: 32px;
  height: 32px;
}
.ecafDesignNavigation {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: minmax(480px, 0.9fr) minmax(600px, 1.1fr);
  gap: 20px;
  align-items: end;
  margin: 12px 24px 0;
  border-top: 4px solid #4e495c;
  padding-top: 10px;
}
.ecafDesignNavigation .nav {
  align-self: flex-start;
  font-size: 14px;
  color: #555;
}
.ecafDesignNavigation .nav .-here {
  color: var(--color-brand);
  font-weight: 700;
}
.ecafDesignMenus {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ecafDesignBody {
  display: grid;
  overflow: hidden;
  flex: 1 1 auto;
  grid-template-columns: minmax(480px, 0.9fr) minmax(600px, 1.1fr);
  gap: 20px;
  min-height: 0;
  padding: 12px 0 24px;
  margin: 0 24px;
}
.ecafDesignBody[data-active-view="dvs"],
.ecafDesignBody[data-active-view="preview"] {
  grid-template-columns: minmax(0, 1fr);
}
.ecafDesignBody[data-active-view="dvs"] .ecafItemPane,
.ecafDesignBody[data-active-view="preview"] .ecafItemPane {
  display: none;
}
.ecafDesignMeta {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  padding-top: 0;
}
.ecafDesignMeta strong {
  font-size: 16px;
  color: #555;
  display: flex;
  align-items: center;
  gap: 5px;
}
.ecafDesignMeta strong span {
  color: #b77942;
}
.ecafDesignTabs {
  display: flex;
  overflow: hidden;
  width: 100%;
  border-radius: 8px 8px 0 0;
  border: 1px solid #ddd;
  border-bottom: 0;
}
.ecafDesignTabs button {
  flex: 1 1 0;
  border: 0;
  border-left: 1px solid #ddd;
  background: #f7f7f7;
  font-weight: 600;
  color: #8e302a;
  border-bottom: 2px solid #ddd;
  height: 34px;
}
.ecafDesignTabs button:first-child {
  border-left: 0;
}
.ecafDesignTabs button._active {
  background: #fff;
  border-bottom-color: #867622;
}
.ecafItemPane {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  border-right: 1px solid #ddd;
  padding-right: 20px;
}
.ecafItemPaneTitle {
  flex: 0 0 auto;
  margin-bottom: 12px;
  border-top: 4px solid #4e495c;
  padding-top: 14px;
  font-size: 18px;
  font-weight: 700;
  color: #555;
}
.ecafItemTools {
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}
.ecafItemTools .ecafToolSpacer {
  flex: 1 1 auto;
}
.ecafItemScroll {
  overflow: auto;
  flex: 1 1 auto;
  border-top: 2px solid #555;
  border-bottom: 2px solid #555;
}
.ecafItemTable {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.ecafItemTable th {
  height: 38px;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #aaa;
  background: #fff;
  font-size: 14px;
}
.ecafItemTable td {
  height: 38px;
  padding: 0 10px;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  font-size: 14px;
}
.ecafItemTable tbody tr:nth-child(even) {
  background: #fafafa;
}
.ecafItemTable tbody tr._selected {
  background: #efe2cb;
}
.ecafItemTable tbody tr[role="button"] {
  cursor: pointer;
}
.labelCheckWrap.-mini {
  display: inline-flex;
  width: 20px;
  height: 20px;
  min-height: 20px;
  padding: 0;
  vertical-align: middle;
}
.labelCheckWrap.-mini::before {
  width: 20px;
  height: 20px;
}
.ecafDetailPane {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
.ecafGroupPane {
  display: flex;
  overflow: hidden;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
.ecafGroupTools {
  display: flex;
  flex: 0 0 auto;
  justify-content: flex-start;
  margin-bottom: 6px;
}
.ecafGroupList {
  overflow: auto;
  flex: 1 1 auto;
  border-top: 2px solid #555;
  border-bottom: 2px solid #555;
}
.ecafGroupBox {
  margin-bottom: 16px;
  border: 1px solid #777;
  background: #fff;
}
.ecafGroupHead {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 6px 10px;
  background: #fff1ad;
}
.ecafGroupName {
  flex: 1 1 auto;
  height: 28px;
  border: 1px solid #ddd;
  border-radius: 8px;
  text-align: center;
}
.ecafIconButton {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid rgb(169, 169, 169);
  border-radius: 5px;
  background-color: #333;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 18px 18px;
  font-size: 0;
  line-height: 0;
}
.ecafIconButton._groupSetting {
  background-image: var(--icon-layer-option-w);
}
.ecafIconButton._groupRemove {
  background-image: var(--icon-layer-minus-w);
}
.ecarGroupControle {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
}
.ecafGroupDesc {
  display: block;
  flex: 1 1 auto;
  width: auto;
  height: 42px;
  margin: 0;
  border: 1px solid #ddd;
  border-radius: 8px;
  text-align: center;
}
.ecarGroupControleButtons {
  display: flex;
  flex: 0 0 auto;
  gap: 6px;
  align-items: center;
}
.ecarGroupControlButton {
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background-color: transparent;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 24px 24px;
}
.ecarGroupControlButton.-left {
  background-image: var(--icon-layer-arrowleft);
}
.ecarGroupControlButton.-right {
  background-image: var(--icon-layer-arrowright);
}
.ecarGroupControlButton.-top {
  background-image: var(--icon-layer-arrowtop);
}
.ecarGroupControlButton.-bottom {
  background-image: var(--icon-layer-arrowbottom);
}
.ecafGroupTable {
  width: calc(100% - 24px);
  margin: 0 12px 12px;
  border-collapse: collapse;
  table-layout: fixed;
}
.ecafGroupTable th {
  width: 82px;
  height: 40px;
  border: 1px solid #888;
  background: #f7f7f7;
}
.ecafGroupTable td {
  height: 40px;
  padding: 0 12px;
  border: 1px solid #888;
  text-align: center;
}
.ecafGroupTable td .labelRadioWrap {
  margin: 0 4px;
  white-space: nowrap;
  font-size: 13px;
}
.ecafPreviewForm dd .labelRadioWrap {
  margin-right: 10px;
}
.radioTdSet {
  white-space: nowrap;
}
.radioTdSet .labelRadioWrap {
  padding: var(--control-hit-pad-y) var(--control-hit-pad-x)
    var(--control-hit-pad-y) 30px;
}
.radioTdSet .labelRadioWrap::before {
  width: 20px;
  height: 20px;
}
.ecafGroupEmpty {
  min-height: 52px;
  margin: 0 12px 12px;
  border: 2px solid #888;
  text-align: center;
  line-height: 52px;
}

/* 항목 그룹 추가 레이어 */
.groupTypeLayer {
  z-index: 1200;
  padding: 32px;
  background: rgba(0, 0, 0, 0.42);
}
.groupTypeLayer .layerPanel {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  width: min(1260px, calc(100vw - 64px));
  height: min(760px, calc(100vh - 64px));
  max-width: none;
  max-height: none;
  padding: 0;
  border: 1px solid #333;
  border-radius: 10px;
  background: #fff;
}
.groupTypeLayer .layerHeader {
  flex: 0 0 auto;
  margin: 16px 14px 0;
  padding: 14px 30px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(90deg, #c6a044 0%, #f6c542 80%, #ddb23c 100%);
}
.groupTypeLayer .layerHeader h2 {
  font-size: 24px;
  color: #fff;
}
.groupTypeBody {
  overflow: auto;
  flex: 1 1 auto;
  padding: 24px 15px;
}
.groupTypeGrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 3px solid #4e495c;
  padding-top: 20px;
}
.groupTypeGrid.-table {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 20px 15px 0;
  background: #fff;
}
.groupTypeCard {
  display: flex;
  flex-direction: column;
  min-height: 220px;
  padding: 14px 8px 12px;
  border: 1px solid #ddd;
  background: #f7f7f7;
  text-align: left;
}
.groupTypeGrid.-table .groupTypeCard {
  min-height: 222px;
  padding: 0 8px 12px;
}
.groupTypeCard:hover,
.groupTypeCard:focus-visible,
.groupTypeCard._selected {
  background: #fff;
  outline: 0;
  box-shadow: inset 0 0 0 3px #222;
}
.groupTypeCard:nth-child(n + 5) {
  border-top: 0;
}
.groupTypePreview {
  display: flex;
  flex: 0 0 116px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #777;
  padding: 10px 0;
}
.groupTypeIcon {
  position: relative;
  display: grid;
  width: 56px;
  height: 56px;
  grid-template-rows: repeat(3, 1fr);
  overflow: hidden;
  border: 4px solid #bcbcbc;
  border-radius: 4px;
  background: #fff;
}
.groupTypeIcon > span {
  position: relative;
  display: block;
  border-bottom: 3px solid #bcbcbc;
  background: #fff;
}
.groupTypeIcon > span:last-child {
  border-bottom: 0;
}
.groupTypeIcon::before,
.groupTypeIcon::after,
.groupTypeIcon > span::before,
.groupTypeIcon > span::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

/* 일반형: 3행 x 3열 */
.groupTypeCard.-normal .groupTypeIcon::before {
  z-index: 2;
  inset: 0 auto 0 31%;
  width: 3px;
  background: #bcbcbc;
}
.groupTypeCard.-normal .groupTypeIcon::after {
  z-index: 2;
  inset: 0 31% 0 auto;
  width: 3px;
  background: #bcbcbc;
}

/* 헤더형: 상단 헤더 + 2개 본문 행 */
.groupTypeCard.-header .groupTypeIcon > span:first-child {
  background: #999;
}
.groupTypeCard.-header .groupTypeIcon::before {
  display: none;
}
.groupTypeCard.-header .groupTypeIcon::after {
  display: none;
}

/* 좌측헤더형1: 좌측 헤더 + 우측 항목명 표시 */
.groupTypeCard.-leftHeader1 .groupTypeIcon::before {
  z-index: 3;
  inset: 0 auto 0 0;
  width: 31%;
  background: #999;
}
.groupTypeCard.-leftHeader1 .groupTypeIcon::after {
  z-index: 4;
  inset: 0 auto 0 31%;
  width: 3px;
  background: #bcbcbc;
}
.groupTypeCard.-leftHeader1 .groupTypeIcon > span::before {
  z-index: 2;
  top: 3px;
  right: 5px;
  width: 17px;
  height: 3px;
  background: #bcbcbc;
  box-shadow: 0 6px 0 #bcbcbc;
}
.groupTypeCard.-leftHeader1 .groupTypeIcon > span::after {
  display: none;
}

/* 좌측헤더형2: 좌측 헤더 + 항목명 없는 본문 */
.groupTypeCard.-leftHeader2 .groupTypeIcon::before {
  z-index: 3;
  inset: 0 auto 0 0;
  width: 31%;
  background: #999;
}
.groupTypeCard.-leftHeader2 .groupTypeIcon::after {
  z-index: 4;
  inset: 0 auto 0 31%;
  width: 3px;
  background: #bcbcbc;
}
.groupTypeCard.-leftHeader2 .groupTypeIcon > span::before {
  display: none;
}
.groupTypeCard.-leftHeader2 .groupTypeIcon > span::after {
  display: none;
}

/* 1단 반복형: 열 구분 없이 3개 행 */
.groupTypeCard.-repeat1 .groupTypeIcon::before {
  display: none;
}
.groupTypeCard.-repeat1 .groupTypeIcon::after {
  display: none;
}

/* 2단 반복형: 상단 전체 폭 헤더 2행 + 하단 2행 x 2열 */
.groupTypeCard.-repeat2 .groupTypeIcon {
  grid-template-rows: repeat(4, 1fr);
}
.groupTypeCard.-repeat2 .groupTypeIcon > span:nth-child(1) {
  background: #999;
}
.groupTypeCard.-repeat2 .groupTypeIcon > span:nth-child(2) {
  background: #999;
}
.groupTypeCard.-repeat2 .groupTypeIcon > span:nth-child(3) {
  grid-row: span 2;
  border-bottom: 0;
}
.groupTypeCard.-repeat2 .groupTypeIcon > span:nth-child(3)::before {
  z-index: 2;
  inset: 0 auto 0 50%;
  width: 3px;
  background: #bcbcbc;
  transform: translateX(-50%);
}
.groupTypeCard.-repeat2 .groupTypeIcon > span:nth-child(3)::after {
  z-index: 2;
  top: 50%;
  right: 0;
  left: 0;
  height: 3px;
  background: #bcbcbc;
  transform: translateY(-50%);
}
.groupTypeCard.-repeat2 .groupTypeIcon::before {
  display: none;
}
.groupTypeCard.-repeat2 .groupTypeIcon::after {
  display: none;
}

/* 매트릭스형: 좌측 3단 전체 + 우측 상단 1단 + 우측 하단 2단 */
.groupTypeCard.-matrix .groupTypeIcon {
  grid-template-columns: 31% 1fr;
  grid-template-rows: repeat(3, 1fr);
}
.groupTypeCard.-matrix .groupTypeIcon > span:nth-child(1) {
  grid-column: 1;
  grid-row: 1 / -1;
  border-right: 3px solid #bcbcbc;
  border-bottom: 0;
  background: #999;
}
.groupTypeCard.-matrix .groupTypeIcon > span:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
  border-bottom: 3px solid #bcbcbc;
  background: #999;
}
.groupTypeCard.-matrix .groupTypeIcon > span:nth-child(3) {
  grid-column: 2;
  grid-row: 2 / span 2;
  border-bottom: 0;
  background: #fff;
}
.groupTypeCard.-matrix .groupTypeIcon::before {
  display: none;
}
.groupTypeCard.-matrix .groupTypeIcon::after {
  display: none;
}
.groupTypeCard.-matrix .groupTypeIcon > span::before {
  display: none;
}
.groupTypeCard.-matrix .groupTypeIcon > span::after {
  display: none;
}
.groupTypeGrid.-table .groupTypePreview {
  flex-basis: 116px;
  gap: 8px;
  padding: 20px 0;
}
.groupTypeGrid.-table .groupTypeDescription {
  min-height: 82px;
  padding: 10px 2px 0;
  font-size: 14px;
}
.groupTypeCheck {
  display: block;
  width: 28px;
  height: 28px;
  border: 3px solid #bbb;
  background-color: #fff;
  border-radius: 50%;
  text-align: center;
  line-height: 22px;
  color: #bbb;
}
.groupTypeCard._selected .groupTypeCheck {
  border-color: #444;
  background: #444;
  color: #fff;
}
.groupTypeDescription {
  flex: 1 1 auto;
  border-top: 1px solid #ddd;
  padding: 12px 0 0;
  font-size: 15px;
  line-height: 1.5;
  color: #777;
}
.groupTypeDescription strong {
  color: #2689d8;
}
.groupTypeLayer .layerFooter {
  flex: 0 0 auto;
  padding: 14px 15px 26px;
}

@media (max-width: 1100px) {
  .ecafDesignNavigation {
    grid-template-columns: 1fr;
  }
  .ecafDesignBody {
    overflow: auto;
    grid-template-columns: 1fr;
  }
  .ecafItemPane {
    min-height: 350px;
    border-right: 0;
    border-bottom: 1px solid #ddd;
    padding-right: 0;
    padding-bottom: 20px;
  }
  .ecafDetailPane {
    min-height: 500px;
  }
  .ecafGroupPane {
    min-height: 420px;
  }
  .ecafDesignTabs {
    width: 100%;
  }
  .groupTypeGrid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* eCAF 연계 기능 */
.ecafViewPanel {
  display: none;
  overflow: hidden;
  flex: 1 1 auto;
  min-height: 0;
}
.ecafViewPanel._active {
  display: flex;
  flex-direction: column;
}
.ecafSubTabs {
  display: flex;
  flex: 0 0 auto;
  width: 100%;
  gap: 4px;
  margin-top: 0;
}
.ecafSubTabs[hidden] {
  display: none;
}
.ecafSubTabs button {
  flex: 1 1 0;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #ccc;
  border-bottom-width: 3px;
  border-radius: 0 0 7px 7px;
  background: #f3f3f3;
}
.ecafSubTabs button._active {
  background: #fff;
  font-weight: 700;
  border-bottom-color: var(--color-brand);
}
.ecafFeatureToolbar {
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}
.ecafFeatureToolbar .-push {
  margin-left: auto;
}
.validationToolbar {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: 1fr 1.3fr auto;
  gap: 18px;
  align-items: center;
  margin-bottom: 10px;
}
.validationToolbarGroup {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 0;
}
.validationToolbarGroup label,
.validationToolbarGroup strong {
  flex: 0 0 auto;
  font-size: 14px;
}
.validationToolbarGroup.-sort select {
  width: 90px;
  height: var(--button-height) !important;
}
.validationToolbarGroup.-search {
  justify-content: center;
}
.validationToolbarGroup.-search select {
  width: 110px;
  height: var(--button-height) !important;
}
.validationToolbarActions {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
}
.eventToolbar {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: 1fr 1.3fr auto;
  gap: 18px;
  align-items: center;
  margin-bottom: 10px;
}
.eventToolbar[hidden],
.validationToolbar[hidden] {
  display: none;
}
.validationTable {
  min-width: 1220px;
}
.validationTable col.-check {
  width: 42px;
}
.validationTable col.-no {
  width: 72px;
}
.validationTable col.-type {
  width: 90px;
}
.validationTable col.-item {
  width: auto;
}
.validationTable col.-required {
  width: 86px;
}
.validationTable col.-min,
.validationTable col.-max {
  width: 72px;
}
.validationTable col.-condition {
  width: 92px;
}
.validationTable col.-message,
.validationTable col.-enabled {
  width: 74px;
}
.validationTable col.-manage {
  width: 104px;
}
.validationTable th,
.validationTable td {
  height: 38px;
  padding: 4px 6px;
  font-size: var(--font-size-sm);
}
.validationTable thead th {
  position: sticky;
  z-index: 3;
  top: 0;
  background: #f5f5f5;
  white-space: nowrap;
}
.validationTable .validationMainRow._editing,
.validationTable .validationConditionRow {
  background: var(--color-brand-soft);
}
.validationTable .validationConditionRow th {
  background: var(--color-brand-soft);
  text-align: center;
  white-space: nowrap;
}
.validationTable input[type="text"] {
  height: 30px;
  padding: 0 8px;
  border: 1px solid #ccc;
  border-radius: 5px;
}
.validationTable select[data-select="progress"] {
  height: 30px;
  min-height: 30px;
  padding-top: 0;
  padding-bottom: 0;
}
.validationConditionAddWrap {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
}
.validationConditionAddWrap select[data-select="progress"] {
  min-width: 0;
}
.validationConditionAddWrap select[data-select="progress"]:first-child {
  width: 100px;
}
.validationConditionAddWrap select[data-select="progress"]:nth-child(2) {
  width: 300px;
}
.validationConditionAddWrap select[data-select="progress"]:last-child {
  width: 220px;
}

.validationConditionAdd {
  width: 20px;
  height: 20px;
  margin-left: 5px;
  padding: 0;
  border: 0;
  background: var(--icon-layer-codelist-plus) center / 18px 18px no-repeat;
  vertical-align: bottom;
}
.validationManage {
  white-space: nowrap;
}
.validationIconButton {
  width: 24px;
  height: 24px;
  padding: 0;
  border: 1px solid #777;
  border-radius: 4px;
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 17px 17px;
}
.validationIconButton.-setting {
  background-image: var(--icon-layer-option);
}
.validationIconButton.-copy {
  background-image: var(--icon-layer-copy);
}
.validationIconButton.-remove {
  background-image: var(--icon-layer-minus);
}
.eventTable {
  min-width: 1080px;
}
.eventTable col.-check {
  width: 42px;
}
.eventTable col.-no {
  width: 72px;
}
.eventTable col.-label {
  width: 110px;
}
.eventTable col.-content {
  width: auto;
}
.eventTable col.-enabled {
  width: 82px;
}
.eventTable col.-manage {
  width: 104px;
}
.eventTable th,
.eventTable td {
  height: 34px;
  padding: 4px 7px;
  font-size: 13px;
}
.eventTable thead th {
  position: sticky;
  z-index: 3;
  top: 0;
  background: #f5f5f5;
  font-weight: 700;
}
.eventTable tbody th {
  background: #fff;
  text-align: left;
  font-weight: 500;
}
.eventTable tbody th .validationIconButton {
    border:0;
    background-color: transparent;
    margin-left:2px;
}

.eventTable .eventGroupStart td[rowspan] {
  vertical-align: middle;
}
.eventTable .eventGroupStart:not(:first-child) > * {
  border-top: 3px solid #aaa;
}
.eventTable .eventGroupStart._editing > *,
.eventTable .eventEditRow > * {
  background: var(--color-brand-soft);
}
.eventConditionControls {
  display: grid;
  grid-template-columns: 140px 1fr 1fr;
  gap: 28px;
}
.eventConditionControls select[data-select="progress"] {
  height: 30px;
  min-height: 30px;
  padding-top: 0;
  padding-bottom: 0;
}
.eventTargetList {
  text-align: left !important;
}
.eventTargetList.-empty {
  color: #777;
}
.ecafFeatureContent {
  overflow: auto;
  flex: 1 1 auto;
  border: 1px solid #bbb;
  padding: 0;
  background: #fff;
}
.ecafFeatureTable {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.ecafFeatureTable th {
  padding: 10px;
  border: 1px solid #aaa;
  background: #f5f5f5;
}
.ecafFeatureTable td {
  padding: 10px;
  border: 1px solid #bbb;
  text-align: center;
}
.ecafFeatureTable td.-al {
  text-align: left;
}
.ecafFeatureTable input {
  width: 100%;
  height: 34px;
  border: 1px solid #bbb;
}
.ecafDetailPane .ecafFeatureTable select[data-select="progress"] {
  height: 34px;
  min-height: 34px;
  padding-top: 0;
  padding-bottom: 0;
  box-sizing: border-box;
}
.ecafFeatureEmpty {
  padding: 55px 20px;
  text-align: center;
  color: #777;
}
.ecafPreviewForm {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 1px;
  max-width: 900px;
  margin: 0 auto;
  background: #aaa;
  border: 1px solid #aaa;
}
.ecafPreviewForm .labelRadioWrap {
  padding: var(--control-hit-pad-y) var(--control-hit-pad-x)
    var(--control-hit-pad-y) 30px;
}
.ecafPreviewForm .labelRadioWrap::before {
  width: 20px;
  height: 20px;
}
.ecafPreviewForm dt,
.ecafPreviewForm dd {
  margin: 0;
  padding: 14px;
  background: #fff;
}
.ecafPreviewForm dt {
  background: #f7f7f7;
  font-weight: 700;
}
.ecafPreviewForm input,
.ecafPreviewForm textarea {
  width: 100%;
  border: 1px solid #bbb;
  padding: 8px;
}
.ecafDataCards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.ecafDataCard {
  border: 1px solid #bbb;
  padding: 16px;
  border-radius: 8px;
  background: #fafafa;
}
.ecafDataCard strong {
  display: block;
  margin-bottom: 10px;
  color: #8d671a;
}

/* PreView: eCAF 화면 / Data Review / 쿼리 / Audit Trail / 코드북 */
.previewPanelContent {
  display: flex;
  overflow: hidden;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding-top: 18px;
}
.previewPanelContent[hidden] {
  display: none;
}
.previewPanelContent h3 {
  flex: 0 0 auto;
  margin: 0 0 26px;
  font-size: 18px;
  line-height: 1.4;
  color: #111;
}
.previewTableScroll {
  overflow: auto;
  flex: 1 1 auto;
  min-height: 0;
  border-top: 2px solid #555;
  border-bottom: 2px solid #555;
}
.previewScreenTable,
.previewDataTable {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: #111;
}
.previewScreenTable th,
.previewScreenTable td,
.previewDataTable th,
.previewDataTable td {
  height: 48px;
  padding: 7px 12px;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #e6e6e6;
  background: #fff;
  font-size: 13px;
  line-height: 1.35;
  text-align: center;
  vertical-align: middle;
  box-sizing: border-box;
}
.previewScreenTable tr > *:last-child,
.previewDataTable tr > *:last-child {
  border-right: 0;
}
.previewScreenTable thead th,
.previewDataTable thead th {
  position: sticky;
  z-index: 2;
  top: 0;
  height: 44px;
  background: #f7f6f3;
  font-size: 14px;
  font-weight: 700;
}
.previewScreenTable tbody th,
.previewDataTable tbody th {
  font-weight: 700;
}
.previewScreenTable td.-al,
.previewDataTable td.-al {
  text-align: left;
}
.previewScreenTable col.-no {
  width: 8%;
}
.previewScreenTable col.-category {
  width: 10.5%;
}
.previewScreenTable col.-grade {
  width: 9.5%;
}
.previewScreenTable col.-result {
  width: 15.5%;
}
.previewScreenTable .previewOpinionRow td {
  height: 62px;
  padding: 10px 14px 10px 8%;
  background: #f7f6f3;
}
.previewOpinionRow input {
  width: 100%;
  height: 42px;
  padding: 0 14px;
  border: 1px solid #ddd;
  border-radius: 6px;
  background: #fff;
  color: #777;
  text-align: center;
  box-sizing: border-box;
}
.previewScreenTable .labelRadioWrap.-mini {
  min-height: 20px;
  margin: 0 4px;
  padding: 0 0 0 22px;
  font-size: 13px;
  line-height: 20px;
}
.previewScreenTable .labelRadioWrap.-mini::before {
  width: 16px;
  height: 16px;
}
.previewDataTable {
  min-width: 980px;
}
.previewDataTable col.-no {
  width: 6%;
}
.previewDataTable col.-item {
  width: 31%;
}
.previewDataTable.-query col.-detail {
  width: 25%;
}
.previewDataTable.-query col.-status {
  width: 10%;
}
.previewDataTable.-query col.-writer {
  width: 10%;
}
.previewDataTable.-query col.-date {
  width: 18%;
}
.previewDataTable.-audit {
  min-width: 1180px;
}
.previewDataTable.-audit col.-item {
  width: 25%;
}
.previewDataTable.-audit col.-value {
  width: 8%;
}
.previewDataTable.-audit col.-status {
  width: 10%;
}
.previewDataTable.-audit col.-writer {
  width: 8%;
}
.previewDataTable.-audit col.-date {
  width: 15%;
}
.previewDataTable.-audit col.-reason {
  width: 12%;
}
.previewDataTable.-codebook col.-item {
  width: 39%;
}
.previewDataTable.-codebook col.-itemType {
  width: 14%;
}
.previewDataTable.-codebook col.-dataType {
  width: 12%;
}
.previewDataTable.-codebook col.-length,
.previewDataTable.-codebook col.-unit {
  width: 8%;
}
.previewDataTable.-codebook col.-codes {
  width: 13%;
}
.previewDataTable.-codebook th,
.previewDataTable.-codebook td {
  height: 38px;
  padding-top: 5px;
  padding-bottom: 5px;
}
.previewDateValue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 132px;
  height: 30px;
  padding: 0 9px;
  border: 1px solid #ddd;
  border-radius: 5px;
  background: #fff;
  white-space: nowrap;
  box-sizing: border-box;
}
.ecafModalLayer {
  z-index: 1300;
  padding: 40px;
  background: rgba(0, 0, 0, 0.48);
}
.ecafModalLayer .layerPanel {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  width: min(980px, calc(100vw - 80px));
  max-width: none;
  max-height: calc(100vh - 80px);
  padding: 0;
}
.ecafModalLayer .layerHeader {
  flex: 0 0 auto;
  background: linear-gradient(90deg, #c6a044, #f6c542);
}
.ecafModalLayer .layerHeader h2 {
  color: #fff;
}
.ecafModalBody {
  overflow: auto;
  flex: 1 1 auto;
  padding: 24px;
}
.ecafModalSearch {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}
.ecafModalSearch input {
  flex: 1 1 auto;
  height: 40px;
  border: 1px solid #bbb;
  padding: 0 12px;
}
.ecafModalForm {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 10px 14px;
  align-items: center;
}
.ecafModalForm label {
  font-weight: 700;
}
.ecafModalForm input,
.ecafModalForm select,
.ecafModalForm textarea {
  width: 100%;
  min-height: 40px;
  border: 1px solid #bbb;
  padding: 8px;
}

/* 항목 그룹추가 레이어 */
.itemSelectLayer {
  padding: 24px;
}
.itemSelectLayer .layerPanel {
  width: min(1280px, calc(100vw - 48px));
  height: min(810px, calc(100vh - 48px));
  max-height: none;
  border: 1px solid #393640;
  border-radius: 10px;
}
.itemSelectLayer .layerHeader {
  height: 52px;
  flex-basis: 52px;
  margin: 8px 8px 0;
  padding: 0 22px;
  border-radius: 10px;
  background: linear-gradient(90deg, #c8a045 0%, #f5c33f 82%, #ddb13b 100%);
}
.itemSelectLayer .layerHeader h2 {
  font-size: 22px;
}
.itemSelectLayer .layerClose {
  width: 32px;
  height: 32px;
  background-size: 20px 20px;
}
.itemSelectLayer .ecafModalBody {
  display: flex;
  overflow: hidden;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 18px 28px 0;
}
.itemSelectLayer .ecafModalSearch {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: 72px minmax(0, 1fr) 108px minmax(0, 1fr) 64px;
  gap: 10px 12px;
  align-items: center;
  margin: 0 2px 20px;
}
.itemSelectLayer .ecafModalSearch label {
  width: 100%;
  font-size: var(--font-size-lg);
  font-weight: 600;
  white-space: nowrap;
}
.itemSelectLayer .ecafModalSearch input {
  width: 100%;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #ddd;
  border-radius: 7px;
  background: #fff;
}
.itemSelectLayer .ecafModalSearch button {
  height: 32px;
  line-height: 30px;
  border-radius: 7px;
  font-weight: 600;
}
.itemSelectTableScrollWrap {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  border-top: 4px solid #555;
  border-bottom: 2px solid #555;
  padding: 0;
}
.itemSelectTableScroll {
  overflow: auto;
  flex: 1 1 auto;
  min-height: 0;
}
.itemSelectTable {
  min-width: 960px;
  table-layout: fixed;
}
.itemSelectTable col.-check {
  width: 7%;
}
.itemSelectTable col.-chapter {
  width: 18%;
}
.itemSelectTable col.-number {
  width: 7%;
}
.itemSelectTable col.-standard {
  width: 23%;
}
.itemSelectTable col.-item {
  width: 34%;
}
.itemSelectTable col.-type {
  width: 11%;
}
.itemSelectTable thead th {
  position: sticky;
  z-index: 2;
  top: 0;
  height: 46px;
  padding: 6px 8px;
  border-color: #aaa;
  background: #f5f5f5;
  font-size: var(--font-size-lg);
  font-weight: 700;
}
.itemSelectTable td {
  height: 37px;
  padding: 5px 10px;
  border-color: #aaa;
  font-size: var(--font-size-sm);
  line-height: 1.15;
}
.itemSelectTable td:nth-child(2) {
  font-weight: 700;
}
.itemSelectTable td.-al {
  text-align: left;
}
.itemSelectTable input[type="checkbox"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.itemSelectTable input[type="checkbox"] + label {
  position: relative;
  display: inline-block;
  width: var(--table-checkbox-size);
  height: var(--table-checkbox-size);
  vertical-align: middle;
  cursor: pointer;
}
.itemSelectTable input[type="checkbox"] + label::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--icon-check-empty) center / contain no-repeat;
}
.itemSelectTable input[type="checkbox"]:checked + label::before {
  background-image: var(--icon-check-check);
}
.itemSelectLayer .layerFooter {
  min-height: 58px;
  padding: 10px 24px 10px;
  align-items: center;
}
.itemSelectLayer .layerFooter::before {
  display: none;
}
.itemSelectLayer .layerFooter [data-btn] {
  height: 34px;
  line-height: 32px;
  border-radius: 7px;
}

/* 기존 항목 리스트 레이어 */
.itemCopyLayer {
  padding: 24px;
}
.itemCopyLayer .layerPanel {
  width: min(1200px, calc(100vw - 48px));
  height: min(620px, calc(100vh - 48px));
  max-height: none;
  border: 1px solid #393640;
  border-radius: 8px;
}
.itemCopyLayer .layerHeader {
  height: 42px;
  flex-basis: 42px;
  margin: 8px 8px 0;
  padding: 0 16px;
  border-radius: 8px;
  background: linear-gradient(90deg, #c8a045 0%, #f5c33f 82%, #ddb13b 100%);
}
.itemCopyLayer .layerHeader h2 {
  font-size: var(--font-size-lg);
}
.itemCopyLayer .layerClose {
  width: 28px;
  height: 28px;
  background-size: 17px 17px;
}
.itemCopyLayer .ecafModalBody {
  display: flex;
  overflow: hidden;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 14px 16px 0;
}
.itemCopyLayer .ecafModalSearch {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: 85px minmax(120px, 1fr) 85px minmax(120px, 1fr) 64px;
  gap: 8px 10px;
  align-items: center;
  margin: 0 0 12px;
}
.itemCopyLayer .ecafModalSearch label {
  font-size: var(--font-size-lg);
  font-weight: 600;
  white-space: nowrap;
}
.itemCopyLayer .ecafModalSearch input {
  width: 100%;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #ddd;
  border-radius: 7px;
  background: #fff;
  font-size: 14px;
}
.itemCopyLayer .ecafModalSearch button {
  height: 32px;
  border-radius: 7px;
  font-size: 14px;
  line-height: 30px;
}
.itemCopyWorkspace {
  display: grid;
  overflow: hidden;
  flex: 1 1 auto;
  grid-template-columns: 460px 1fr;
  gap: 20px;
  min-height: 0;
}
.itemCopyPane {
  display: flex;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
}
.itemCopyTableScroll {
  overflow: auto;
  flex: 1 1 auto;
  min-height: 0;
  border-top: 3px solid #555;
  border-bottom: 2px solid #555;
}
.itemCopySourceTable,
.itemCopyItemTable {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.itemCopySourceTable col.-number {
  width: 34%;
}
.itemCopySourceTable col.-name {
  width: auto;
}
.itemCopySourceTable col.-select {
  width: 80px;
}
.itemCopyItemTable col.-check {
  width: 60px;
}
.itemCopyItemTable col.-number {
  width: 14%;
}
.itemCopyItemTable col.-standard {
  width: 30%;
}
.itemCopyItemTable col.-item {
  width: auto;
}
.itemCopySourceTable thead th,
.itemCopyItemTable thead th {
  position: sticky;
  z-index: 2;
  top: 0;
  height: 46px;
  padding: 6px 8px;
  border-color: #aaa;
  background: #f7f7f7;
  font-size: var(--font-size-lg);
  font-weight: 700;
}
.itemCopySourceTable td,
.itemCopyItemTable td {
  height: 37px;
  padding: 5px 10px;
  border-color: #aaa;
  font-size: var(--font-size-sm);
  line-height: 1.15;
}
.itemCopySourceTable td.-al,
.itemCopyItemTable td.-al {
  text-align: left;
}
.itemCopySourceTable td.-ecafName {
  font-weight: 700;
}
.itemCopySourceTable ._selectCopySource {
  min-width: 42px;
  height: 26px;
  padding: 0 7px;
  border: 1px solid #ddd;
  border-radius: 5px;
  background: #eee;
  font-size: 12px;
}
.itemCopySourceTable tr._selected {
  background: #fff9df;
}
.itemCopyItemTable input[type="checkbox"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.itemCopyItemTable input[type="checkbox"] + label {
  position: relative;
  display: inline-block;
  width: var(--table-checkbox-size);
  height: var(--table-checkbox-size);
  vertical-align: middle;
  cursor: pointer;
}
.itemCopyItemTable input[type="checkbox"] + label::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--icon-check-empty) center / contain no-repeat;
}
.itemCopyItemTable input[type="checkbox"]:checked + label::before {
  background-image: var(--icon-check-check);
}
.itemCopyLayer .layerFooter {
  min-height: 58px;
  padding: 10px 16px;
  align-items: center;
}
.itemCopyLayer .layerFooter::before {
  display: none;
}
.itemCopyLayer .layerFooter [data-btn] {
  height: 34px;
  border-radius: 7px;
  font-size: 14px;
  line-height: 32px;
}

/* 항목(ME) 상세 설정 레이어 */
.itemDetailLayer {
  padding: 24px;
}
.itemDetailLayer .layerPanel {
  width: min(720px, calc(100vw - 48px));
  height: min(820px, calc(100vh - 48px));
  max-height: none;
  border: 1px solid #393640;
  border-radius: 8px;
}
.itemDetailLayer .layerHeader {
  height: 48px;
  flex-basis: 48px;
  margin: 8px 8px 0;
  padding: 0 16px;
  border-radius: 8px;
  background: linear-gradient(90deg, #c8a045 0%, #f5c33f 82%, #ddb13b 100%);
}
.itemDetailLayer .layerHeader h2 {
  font-size: 18px;
}
.itemDetailLayer .layerClose {
  width: 28px;
  height: 28px;
  background-size: 17px 17px;
}
.itemDetailLayer .ecafModalBody {
  overflow: auto;
  padding: 14px 16px 0;
}
.itemDetailSectionTitle {
  display: block;
  margin: 0 0 9px;
  font-size: var(--font-size-lg);
}
.itemDetailSectionTitle::before {
  content: "•";
  margin-right: 6px;
}
.itemDetailTable {
  width: 100%;
  margin-bottom: 16px;
  table-layout: fixed;
  border-collapse: collapse;
}
.itemDetailTable col.-label {
  width: 142px;
}
.itemDetailTable th,
.itemDetailTable td {
  height: 42px;
  border: 1px solid #aaa;
}
.itemDetailTable th {
  padding: 5px 10px;
  background: #f5f5f5;
  text-align: left;
  font-size: var(--font-size-sm);
  font-weight: 700;
}
.itemDetailTable td {
  padding: 4px 9px;
}
.itemDetailTable input,
.itemDetailTable select {
  width: 100%;
  height: 26px;
  padding: 0 8px;
  border: 1px solid #ddd;
  border-radius: 5px;
  background: #fff;
  font-size: 13px;
}
.itemDetailLengthUnit {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.itemDetailLengthUnit select {
  flex: 1 1 auto;
}
.itemDetailLengthUnit button {
  flex: 0 0 80px;
  width: 80px;
  height: 30px;
  line-height: 30px;
  border: 0;
  border-radius: 4px;
  font-size: 12px;
}
.itemDetailRadio {
  white-space: nowrap;
}
.itemDetailRadio .labelRadioWrap {
  margin-right: 14px;
  padding: 4px 0 4px 26px;
  font-size: 13px;
}
.itemDetailRadio .labelRadioWrap::before {
  width: 18px;
  height: 18px;
}
.itemDetailCodeScroll {
  overflow: auto;
  border-top: 3px solid #4e495c;
}
.itemDetailCodeTable {
  width: 100%;
  min-width: 570px;
  table-layout: fixed;
}
.itemDetailCodeTable th,
.itemDetailCodeTable td {
  height: 32px;
  padding: 4px 8px;
  border: 1px solid #aaa;
  text-align: center;
  font-size: 13px;
}
.itemDetailCodeTable th {
  position: sticky;
  z-index: 2;
  top: 0;
  background: #f5f5f5;
}
.itemDetailCodeTable th:nth-child(1) {
  width: 60px;
}
.itemDetailCodeTable th:nth-child(2) {
  width: calc(50% - 260px);
}
.itemDetailCodeTable th:nth-child(3) {
  width: 100px;
}
.itemDetailCodeTable th:nth-child(4) {
  width: 100px;
}
.itemDetailCodeTable input {
  width: 100%;
  height: 24px;
  border: 1px solid #ddd;
  border-radius: 4px;
  text-align: center;
}
.itemDetailCodeTable button {
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  background-color: transparent;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 18px 18px;
  font-size: 0;
  line-height: 0;
}
.itemDetailCodeTable ._codeAdd {
  background-image: var(--icon-layer-codelist-plus);
}
.itemDetailCodeTable ._codeRemove {
  background-image: var(--icon-layer-codelist-minus);
}
.itemDetailLayer .layerFooter {
  min-height: 54px;
  padding: 9px 16px;
  align-items: center;
}
.itemDetailLayer .layerFooter::before {
  display: none;
}
.itemDetailLayer .layerFooter [data-btn] {
  height: 32px;
  border-radius: 6px;
  font-size: 13px;
  line-height: 30px;
}

/* Event 대상 항목 선택 레이어 */
.eventTargetLayer {
  padding: 24px;
}
.eventTargetLayer .layerPanel {
  width: min(800px, calc(100vw - 48px));
  height: min(400px, calc(100vh - 48px));
  max-width: none;
  max-height: none;
  border: 1px solid #393640;
  border-radius: 8px;
}
.eventTargetLayer .layerHeader {
  flex: 0 0 var(--layer-header-height);
  height: var(--layer-header-height);
  margin: 8px 8px 0;
  padding: 0 18px;
  border-radius: 7px;
  background: linear-gradient(90deg, #c8a045 0%, #f5c33f 82%, #ddb13b 100%);
}
.eventTargetLayer .layerHeader h2 {
  font-size: var(--font-size-2xl);
  line-height:var(--line-height-base);
}
.eventTargetLayer .layerClose {
  width: 26px;
  height: 26px;
  background-size: 16px 16px;
}
.eventTargetLayer .ecafModalBody {
  display: flex;
  overflow: hidden;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 20px 10px 0;
}
.eventTargetTableScroll {
  overflow: auto;
  flex: 1 1 auto;
  min-height: 0;
  border-top:3px solid #555;
  border-bottom:2px solid #555;
}
.eventTargetTable {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid #aaa;
}
.eventTargetTable col.-check {
  width: 60px;
}
.eventTargetTable col.-number {
  width: 100px;
}
.eventTargetTable col.-item {
  width: calc(60% - 160px);
}
.eventTargetTable col.-itemType {
  width: 100px;
}
.eventTargetTable col.-dataType {
  width: 100px;
}
.eventTargetTable col.-codeList {
  width: calc(40% - 200px);
}
.eventTargetTable th,
.eventTargetTable td {
  height: 27px;
  padding: 3px 7px;
  border: 1px solid #aaa;
  font-size: var(--font-size-sm);
  line-height: 1.25;
  text-align: center;
  vertical-align: middle;
}
.eventTargetTable thead th {
  position: sticky;
  z-index: 2;
  top: 0;
  height: 40px;
  background: #f5f5f5;
  font-size: var(--font-size-sm);
  font-weight: 700;
  white-space: nowrap;
}
.eventTargetTable td.-al {
  text-align: left;
}
.eventTargetLayer .layerFooter {
  min-height: 54px;
  padding: 9px 10px;
  align-items: center;
}
.eventTargetLayer .layerFooter::before {
  display: none;
}
.eventTargetLayer .layerFooter [data-btn] {
  height: 30px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 28px;
}
.ecafToast {
  position: fixed;
  z-index: 3000;
  right: 30px;
  bottom: 30px;
  padding: 14px 20px;
  border-radius: 8px;
  background: #333;
  color: #fff;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: 0.2s;
}
.ecafToast._show {
  opacity: 1;
  transform: translateY(0);
}
.ecafGroupBox[draggable="true"] {
  cursor: grab;
}
.ecafGroupBox._dragging {
  opacity: 0.45;
}

@media (max-width: 900px) {
  .ecafDataCards {
    grid-template-columns: 1fr;
  }
  .ecafModalForm {
    grid-template-columns: 1fr;
  }
}
