/* KMI GROUPWARE V20.7.330 - cross-PC and mobile layout corrections */
/* V20.7.386: Android/iOS header safe-area and touch-area isolation. */
#kmiSidebarScrim {
  pointer-events: none !important;
}

body.kmi-sidebar-open #kmiSidebarScrim {
  pointer-events: auto !important;
}

.shell > header {
  isolation: isolate;
  z-index: 60 !important;
  pointer-events: auto !important;
}

#mobileMenu,
.shell > header .head-actions,
.shell > header button,
.shell > header a {
  position: relative;
  z-index: 2;
  pointer-events: auto !important;
  touch-action: manipulation;
}

/* The legacy #toast.show rule removes the centering transform. Keep every
   notification inside the visual viewport on Android/iOS WebViews. */
#toast.show {
  transform: translate(-50%, -50%) !important;
}

@media screen and (max-width: 900px) {
  :root {
    --kmi-mobile-top-gap: max(16px, env(safe-area-inset-top));
  }

  .shell > header {
    top: 0 !important;
    height: calc(var(--kmi-header) + var(--kmi-mobile-top-gap)) !important;
    min-height: calc(var(--kmi-header) + var(--kmi-mobile-top-gap)) !important;
    padding-top: var(--kmi-mobile-top-gap) !important;
    padding-left: max(12px, env(safe-area-inset-left)) !important;
    padding-right: max(12px, env(safe-area-inset-right)) !important;
    box-sizing: border-box;
  }

  #mobileMenu,
  .shell > header .head-actions {
    align-self: center;
  }

  #toast,
  #toast.show {
    left: max(12px, env(safe-area-inset-left)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    top: auto !important;
    bottom: max(18px, env(safe-area-inset-bottom)) !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box;
    white-space: normal;
    overflow-wrap: anywhere;
    transform: none !important;
  }
}

#app, .shell, main, main > *, .eb-panel, #ebOriginalBoard,
.eb-image-document, .eb-guide-section, .eb-guide-copy, .eb-guide-images {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.eb-guide-section {
  overflow: hidden;
}

.eb-guide-images.eb-guide-images-three {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-rows: minmax(240px, 1fr) minmax(240px, 1fr) !important;
  gap: 0 !important;
  align-content: stretch;
  width: 100%;
  min-height: clamp(520px, 50vw, 720px);
}

.eb-guide-images.eb-guide-images-three > .eb-process-image {
  width: 100% !important;
  height: 100% !important;
  min-width: 0;
  min-height: 0;
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: hidden;
}

.eb-guide-images.eb-guide-images-three > .eb-process-image:first-child {
  grid-column: 1 / -1;
}

.eb-guide-images.eb-guide-images-three img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.eb-guide-images.eb-guide-images-three > .eb-process-image:first-child img {
  object-fit: contain !important;
  background: #fff;
}

@media (max-width: 1100px) {
  .eb-guide-section {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .eb-guide-images.eb-guide-images-three {
    min-height: clamp(480px, 85vw, 680px);
  }
}

/* V20.7.355: 업무사이트 > 오피스 사이트 공용 계정 관리 */
.worksite-office-card {
  min-width: 0;
}

.worksite-office-table {
  min-width: 1180px;
  table-layout: fixed;
}

.worksite-office-table th:nth-child(1) { width: 8%; }
.worksite-office-table th:nth-child(2) { width: 13%; }
.worksite-office-table th:nth-child(3) { width: 13%; }
.worksite-office-table th:nth-child(4) { width: 24%; }
.worksite-office-table th:nth-child(5) { width: 13%; }
.worksite-office-table th:nth-child(6) { width: 16%; }
.worksite-office-table th:nth-child(7) { width: 6%; }
.worksite-office-table th:nth-child(8) { width: 7%; }

.worksite-office-table td {
  vertical-align: middle;
}

.worksite-office-address {
  text-align: left;
  overflow-wrap: anywhere;
}

.worksite-office-address a {
  color: #1769aa;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.worksite-office-table .worksite-copy-cell,
.worksite-office-table .worksite-password-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}

.worksite-office-form .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 760px) {
  .worksite-office-form .form-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .worksite-office-form .span2 {
    grid-column: auto;
  }
}

/* V20.7.356: 업무사이트 등록 필드와 목록 수정 동작의 기준선 통일 */
#workSiteForm .kmi-editable-filter-field,
.worksite-office-form .kmi-editable-filter-field {
  position: relative;
}

#workSiteForm .kmi-editable-filter-field > .kmi-filter-list-edit,
.worksite-office-form .kmi-editable-filter-field > .kmi-filter-list-edit {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  height: 18px;
  margin: 0;
  padding: 0;
  line-height: 18px;
}

#workSiteForm .kmi-editable-filter-field > .kmi-filter-list-panel,
.worksite-office-form .kmi-editable-filter-field > .kmi-filter-list-panel {
  position: static;
  grid-column: 1 / -1;
  margin-top: 8px;
}

.worksite-office-form .form-grid {
  align-items: start;
  column-gap: 16px;
  row-gap: 16px;
}

.worksite-office-form .form-grid > label {
  display: flex;
  min-width: 0;
  margin: 0;
  flex-direction: column;
  justify-content: flex-start;
}

.worksite-office-form .form-grid > label > span:first-child {
  display: flex;
  min-height: 18px;
  margin: 0 0 7px;
  align-items: center;
  color: #526174;
  font-size: 12px;
  font-weight: 800;
  line-height: 18px;
}

.worksite-office-form .form-grid input,
.worksite-office-form .form-grid select {
  box-sizing: border-box;
  width: 100%;
  height: 42px;
  min-height: 42px;
  margin-top: 0 !important;
}

.worksite-office-form .form-grid textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 82px;
  margin-top: 0 !important;
}

/* V20.7.359: 체크박스 유무와 관계없이 오피스 사이트 열을 의미별로 정렬 */
@media (min-width: 1101px) {
  .worksite-office-card .table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  #workSiteBody .worksite-office-table {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    table-layout: fixed;
  }

  #workSiteBody .worksite-office-table th,
  #workSiteBody .worksite-office-table td {
    padding-left: 8px;
    padding-right: 8px;
  }

  #workSiteBody .worksite-office-table .kmi-select-col,
  #workSiteBody .worksite-office-table th:has(> input[type="checkbox"]),
  #workSiteBody .worksite-office-table td:has(> input[type="checkbox"]) {
    width: 42px;
    min-width: 42px;
    max-width: 42px;
    padding-left: 8px;
    padding-right: 8px;
  }

  #workSiteBody .worksite-office-table .office-col-category { width: 78px; }
  #workSiteBody .worksite-office-table .office-col-task { width: 180px; }
  #workSiteBody .worksite-office-table .office-col-owner { width: 170px; }
  #workSiteBody .worksite-office-table .office-col-address { width: auto; }
  #workSiteBody .worksite-office-table .office-col-id { width: 165px; }
  #workSiteBody .worksite-office-table .office-col-password { width: 185px; }
  #workSiteBody .worksite-office-table .office-col-open { width: 76px; }
  #workSiteBody .worksite-office-table .office-col-manage {
    width: 116px;
    min-width: 116px;
    padding-left: 12px;
    padding-right: 12px;
  }

  .worksite-office-table .office-col-id span,
  .worksite-office-table .office-col-password span {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .worksite-office-table .worksite-copy-cell,
  .worksite-office-table .worksite-password-cell {
    flex-wrap: nowrap;
  }

  .worksite-office-table .worksite-copy-cell .btn,
  .worksite-office-table .worksite-password-cell .btn {
    flex: 0 0 auto;
  }

  .worksite-office-table .row-actions {
    justify-content: center;
    white-space: nowrap;
    width: 100%;
    box-sizing: border-box;
    gap: 6px;
  }
}

@media (max-width: 1100px) {
  #workSiteBody .worksite-office-table {
    width: 100%;
    min-width: 920px;
  }
}

/* V20.7.361: 슬링벨트 엑셀 원본의 표·설명·사진 구조 복원 */
.eb-sling-guide {
  overflow: hidden;
  border: 1px solid #cbd6e2;
  border-radius: 12px;
  background: #fff;
}

.eb-sling-guide > header h3 {
  margin: 0;
  padding: 16px 20px;
  color: #fff;
  background: #28566f;
  text-align: center;
  font-size: 22px;
}

.eb-sling-guide > header p {
  margin: 0;
  padding: 10px 18px;
  border-bottom: 1px solid #cbd6e2;
  background: #f5f7f9;
  text-align: center;
  font-weight: 700;
}

/* V20.7.361: 상단 제목을 한 개의 정돈된 헤더로 표시 */
.eb-sling-guide > header {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: stretch;
  min-height: 64px;
  overflow: hidden;
  background: #28566f;
  border-bottom: 1px solid #1f465c;
}

.eb-sling-guide > header h3,
.eb-sling-guide > header p {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  min-width: 0;
  min-height: 64px;
  margin: 0;
  box-sizing: border-box;
  color: #fff;
  background: transparent;
}

.eb-sling-guide > header h3 {
  padding: 14px 22px;
  white-space: nowrap;
}

.eb-sling-guide > header p {
  padding: 14px 22px;
  border: 0;
  border-left: 1px solid rgba(255,255,255,.35);
  font-size: 16px;
}

.eb-sling-overview {
  display: grid;
  grid-template-columns: minmax(600px, 1.15fr) minmax(360px, .85fr);
  gap: 18px;
  padding: 18px;
}

.eb-sling-overview h4,
.eb-sling-defects h4 {
  margin: 0;
  padding: 11px 14px;
  color: #fff;
  background: #28566f;
  text-align: center;
}

.eb-sling-table-scroll {
  overflow-x: auto;
}

.eb-sling-capacity table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  table-layout: fixed;
}

.eb-sling-capacity th,
.eb-sling-capacity td {
  padding: 9px 7px;
  border: 1px solid #9eabb7;
  text-align: center;
  vertical-align: middle;
  box-sizing: border-box;
}

.eb-sling-capacity th {
  background: #eef3f7;
}

.eb-sling-capacity th:nth-child(1) { width: 15%; }
.eb-sling-capacity th:nth-child(2) { width: 18%; }

.eb-sling-capacity thead th[rowspan] {
  padding-left: 9px;
  padding-right: 9px;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: keep-all;
  line-height: 1.45;
}

.eb-sling-capacity tbody td {
  white-space: nowrap;
}

.eb-sling-capacity th strong {
  display: block;
  margin-bottom: 6px;
}

.eb-sling-capacity .eb-process-image {
  width: 100%;
  height: 160px;
  min-height: 160px;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.eb-sling-capacity .eb-process-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.eb-sling-capacity .eb-sling-multiplier {
  background: #ffc928;
  font-weight: 800;
}

.eb-sling-capacity tbody tr:nth-child(even) td {
  background: #f1f4f6;
}

.eb-sling-capacity tbody tr.is-primary td {
  color: #fff;
  background: #05a94f;
  font-weight: 800;
}

.eb-sling-reference {
  min-width: 0;
}

.eb-sling-descriptions article {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  border: 1px solid #cbd6e2;
  border-top: 0;
}

.eb-sling-descriptions strong,
.eb-sling-descriptions p {
  margin: 0;
  padding: 13px 12px;
  white-space: pre-line;
}

.eb-sling-descriptions strong {
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid #cbd6e2;
  background: #f5f7f9;
}

.eb-sling-products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.eb-sling-products article,
.eb-sling-cert {
  overflow: hidden;
  border: 1px solid #cbd6e2;
  border-radius: 8px;
  background: #fff;
}

.eb-sling-products strong,
.eb-sling-cert > strong {
  display: block;
  padding: 8px 10px;
  background: #eef3f7;
  text-align: center;
}

.eb-sling-products .eb-process-image {
  width: 100%;
  height: 190px;
  min-height: 190px;
  border: 0;
  border-radius: 0;
}

.eb-sling-products img,
.eb-sling-cert img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.eb-sling-cert {
  margin-top: 10px;
}

.eb-sling-cert .eb-process-image {
  width: 100%;
  height: 150px;
  min-height: 150px;
  border: 0;
  border-radius: 0;
}

.eb-sling-defects {
  margin: 0 18px 18px;
}

.eb-sling-defects > div {
  border: 1px solid #cbd6e2;
  border-top: 0;
  padding: 14px;
}

.eb-sling-defects .eb-process-image {
  width: 100%;
  min-height: 240px;
  border: 0;
  border-radius: 0;
}

.eb-sling-defects img {
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: contain;
}

@media (max-width: 1100px) {
  .eb-sling-overview {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .eb-sling-guide > header { grid-template-columns: minmax(0, 1fr); }
  .eb-sling-guide > header h3,
  .eb-sling-guide > header p { min-height: 52px; }
  .eb-sling-guide > header p {
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,.35);
  }
  .eb-sling-overview { padding: 10px; }
  .eb-sling-products { grid-template-columns: minmax(0, 1fr); }
  .eb-sling-defects { margin: 0 10px 10px; }
}

/* V20.7.350: 원본 배치를 유지하는 최고관리자 게시물 편집 */
.eb-ppe-guide { overflow:hidden; border:1px solid #cbd6e2; border-radius:12px; background:#fff; }
.eb-ppe-guide > header { padding:16px 20px; color:#fff; background:#28566f; text-align:center; font-size:22px; font-weight:800; }
.eb-ppe-guide > section { margin:18px; border:1px solid #cbd6e2; background:#fff; }
.eb-ppe-guide h3 { margin:0; padding:11px 15px; color:#fff; background:#28566f; font-size:17px; }
.eb-ppe-table-scroll { overflow-x:auto; }
.eb-ppe-checklist table { width:100%; min-width:1040px; border-collapse:collapse; table-layout:fixed; }
.eb-ppe-checklist th,.eb-ppe-checklist td { padding:10px 12px; border:1px solid #b7c4d0; vertical-align:middle; word-break:keep-all; line-height:1.5; }
.eb-ppe-checklist thead th { color:#1d3445; background:#eaf0f4; text-align:center; }
.eb-ppe-checklist thead th:nth-child(1) { width:150px; }
.eb-ppe-checklist thead th:nth-child(2) { width:180px; }
.eb-ppe-checklist thead th:nth-child(3) { width:235px; }
.eb-ppe-checklist thead th:nth-child(5) { width:90px; }
.eb-ppe-checklist tbody th {
  background:#f5f7f9;
  text-align:center;
  white-space:normal!important;
  overflow-wrap:anywhere;
  word-break:keep-all;
  line-height:1.45;
}
.eb-ppe-checklist tbody td {
  white-space:normal!important;
  overflow-wrap:anywhere;
  word-break:keep-all;
}
.eb-ppe-checklist tbody td:nth-child(3),
.eb-ppe-checklist tbody td:nth-child(4) { text-align:left; }
.eb-ppe-checklist td p { margin:0; }
.eb-ppe-checklist td ul { margin:0; padding-left:20px; }
.eb-ppe-thumbs { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; align-items:center; }
.eb-ppe-thumbs[data-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.eb-ppe-thumbs .eb-process-image { display:block!important; width:100%!important; height:auto!important; min-height:0!important; border:0!important; border-radius:0!important; background:#fff; }
.eb-ppe-thumbs img { display:block!important; width:100%!important; height:auto!important; max-height:150px!important; object-fit:contain!important; }
.eb-ppe-cycle { display:inline-block; min-width:52px; padding:5px 8px; border-radius:999px; color:#fff; background:#2670a1; text-align:center; font-size:12px; font-weight:800; }
.eb-ppe-cycle.is-na { color:#596675; background:#e7ebee; }
.eb-ppe-tabs { display:flex; flex-wrap:wrap; gap:7px; padding:12px; border-bottom:1px solid #cbd6e2; background:#f5f7f9; }
.eb-ppe-tabs button { min-height:36px; padding:7px 13px; border:1px solid #afbfcd; border-radius:6px; color:#34495a; background:#fff; font-weight:700; }
.eb-ppe-tabs button.active { color:#fff; border-color:#28566f; background:#28566f; }
.eb-ppe-panels { padding:12px; }
.eb-ppe-panels article { width:100%; max-width:1250px; margin:0 auto; }
.eb-ppe-panels article[hidden] { display:none!important; }
.eb-ppe-panels h4 { margin:0; padding:10px 14px; border:1px solid #cbd6e2; border-bottom:0; background:#eef3f7; text-align:center; font-size:16px; }
.eb-ppe-panels .eb-process-image { display:block!important; width:100%!important; height:auto!important; min-height:0!important; margin:0 auto!important; border:1px solid #cbd6e2!important; border-radius:0!important; background:#fff; }
.eb-ppe-panels img { display:block!important; width:100%!important; height:auto!important; max-height:none!important; margin:0 auto!important; object-fit:contain!important; image-rendering:-webkit-optimize-contrast; }
@media (max-width:640px) {
  .eb-ppe-guide > section { margin:10px; }
  .eb-ppe-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .eb-ppe-tabs button { padding:7px 5px; font-size:12px; }
  .eb-ppe-panels { padding:8px; }
}
@media print {
  .eb-ppe-tabs { display:none!important; }
  .eb-ppe-panels article[hidden] { display:block!important; }
  .eb-ppe-panels article { break-inside:avoid; page-break-inside:avoid; margin-bottom:16px; }
}

.eb-torque-guide {
  overflow: hidden;
  border: 1px solid #cbd6e2;
  border-radius: 12px;
  background: #fff;
}
.eb-torque-guide > header {
  padding: 16px 20px;
  color: #fff;
  background: #28566f;
  text-align: center;
  font-size: 22px;
  font-weight: 800;
}
.eb-torque-guide > section { margin: 18px; border: 1px solid #cbd6e2; background: #fff; }
.eb-torque-guide h3 { margin: 0; padding: 11px 15px; color: #fff; background: #28566f; font-size: 17px; }
.eb-torque-definition { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); }
.eb-torque-definition > div { padding: 20px 24px; border-right: 1px solid #cbd6e2; line-height: 1.65; }
.eb-torque-definition > div > p { margin: 0 0 15px; }
.eb-torque-issues { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 20px; }
.eb-torque-issues h4 { margin: 8px 0 5px; color: #28566f; }
.eb-torque-issues p { margin: 2px 0; }
.eb-torque-definition aside { padding: 20px; }
.eb-torque-definition aside > strong { display: block; padding: 12px; border-radius: 6px; background: #eef3f7; text-align: center; font-size: 22px; }
.eb-torque-definition aside table { width: 100%; margin-top: 12px; border-collapse: collapse; }
.eb-torque-definition aside th,.eb-torque-definition aside td { padding: 9px; border: 1px solid #cbd6e2; }
.eb-torque-definition aside th { width: 42%; background: #f5f7f9; }
.eb-torque-table-wrap { overflow-x: auto; }
.eb-torque-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.eb-torque-table th,.eb-torque-table td { padding: 11px 13px; border: 1px solid #cbd6e2; text-align: center; word-break: keep-all; }
.eb-torque-table thead th { background: #eef3f7; }
.eb-torque-table tbody tr:nth-child(even) td { background: #f8fafb; }
.eb-torque-calculator { display: grid; grid-template-columns: minmax(140px,.7fr) minmax(220px,1fr) minmax(180px,.8fr); gap: 12px; padding: 16px; background: #f6f8fa; }
.eb-torque-calculator label,.eb-torque-calculator > div { display: grid; gap: 7px; }
.eb-torque-calculator span { color: #526174; font-size: 12px; font-weight: 800; }
.eb-torque-calculator input,.eb-torque-calculator select,.eb-torque-calculator strong { box-sizing: border-box; width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #b8c6d3; border-radius: 6px; background: #fff; }
.eb-torque-calculator strong { display: flex; align-items: center; color: #0d5f92; font-size: 18px; }
.eb-torque-photos figure { margin: 0; min-width: 0; overflow: hidden; border: 1px solid #cbd6e2; background: #fff; }
.eb-torque-photos .eb-process-image { display: block!important; width: 100%!important; height: 100%!important; min-height: 0!important; border: 0!important; border-radius: 0!important; }
.eb-torque-photos img { display: block!important; width: 100%!important; height: 100%!important; max-height: none!important; object-fit: contain!important; background: #fff; }
.eb-torque-wrench { display: grid; gap: 12px; padding: 12px; }
.eb-torque-wrench > figure:nth-child(1) { height: 260px; }
.eb-torque-wrench > figure:nth-child(2) { height: 300px; }
.eb-torque-wrench .is-lower { display: grid; grid-template-columns: .72fr 1.28fr; gap: 12px; }
.eb-torque-wrench .is-lower > div { display: grid; gap: 12px; }
.eb-torque-wrench .is-lower figure { min-height: 260px; }
.eb-torque-driver { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 12px; padding: 12px; }
.eb-torque-driver > div { display: grid; gap: 12px; }
.eb-torque-driver > div:first-child figure { min-height: 720px; }
.eb-torque-driver > div:nth-child(2) figure { min-height: 230px; }
.eb-torque-driver > div:nth-child(3) figure { min-height: 355px; }
.eb-torque-spanner { display: grid; gap: 12px; padding: 12px; }
.eb-torque-spanner > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.eb-torque-spanner > div figure { min-height: 300px; }
.eb-torque-spanner > figure { min-height: 360px; }
/* V20.7.367: 토크 공구 사진을 실제 이미지 비율로 조밀하게 재배치 */
.eb-torque-photos .eb-process-image {
  position: relative !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
.eb-torque-photos .eb-process-image img {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: contain !important;
}
.eb-torque-wrench > figure:nth-child(1),
.eb-torque-wrench > figure:nth-child(2),
.eb-torque-wrench .is-lower figure,
.eb-torque-driver figure,
.eb-torque-spanner > div figure,
.eb-torque-spanner > figure { height: auto; min-height: 0; }
.eb-torque-driver > div:first-child figure,
.eb-torque-driver > div:nth-child(2) figure,
.eb-torque-driver > div:nth-child(3) figure { min-height: 0; }
.eb-torque-wrench .is-lower {
  display: grid;
  grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr);
  gap: 12px;
  align-items: start;
}
.eb-torque-wrench .is-detail-stack { display: grid; gap: 12px; align-content: start; }
.eb-torque-driver {
  display: grid;
  grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr);
  gap: 12px;
  align-items: start;
}
.eb-torque-driver .is-driver-main,
.eb-torque-driver .is-driver-steps { display: grid; gap: 12px; align-content: start; }
.eb-torque-driver .is-driver-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
.eb-torque-driver .is-driver-steps figure:last-child:nth-child(odd) { grid-column: 1 / -1; }
.eb-torque-spanner { align-items: start; }
.eb-torque-spanner > div { align-items: start; }
@media (max-width:900px) {
  .eb-torque-definition { grid-template-columns:minmax(0,1fr); }
  .eb-torque-definition > div { border-right:0; border-bottom:1px solid #cbd6e2; }
  .eb-torque-driver { grid-template-columns:minmax(0,1fr); }
  .eb-torque-driver > div:first-child figure,.eb-torque-driver > div:nth-child(2) figure,.eb-torque-driver > div:nth-child(3) figure { min-height:320px; }
  .eb-torque-wrench .is-lower,
  .eb-torque-driver { grid-template-columns:minmax(0,1fr); }
  .eb-torque-driver > div:first-child figure,.eb-torque-driver > div:nth-child(2) figure,.eb-torque-driver > div:nth-child(3) figure { min-height:0; }
}
@media (max-width:640px) {
  .eb-torque-guide > section { margin:10px; }
  .eb-torque-issues,.eb-torque-calculator,.eb-torque-wrench .is-lower,.eb-torque-spanner > div { grid-template-columns:minmax(0,1fr); }
  .eb-torque-table { min-width:620px; }
  .eb-torque-driver .is-driver-steps { grid-template-columns:minmax(0,1fr); }
}

.eb-imark-guide {
  overflow: hidden;
  border: 1px solid #cbd6e2;
  border-radius: 12px;
  background: #fff;
}

.eb-imark-guide > header {
  padding: 16px 20px;
  color: #fff;
  background: #28566f;
  text-align: center;
  font-size: 22px;
  font-weight: 800;
}

.eb-imark-guide section {
  margin: 18px;
  border: 1px solid #cbd6e2;
  background: #fff;
}

.eb-imark-guide h3 {
  margin: 0;
  padding: 11px 15px;
  color: #fff;
  background: #28566f;
  text-align: left;
  font-size: 17px;
}

.eb-imark-guide h4 {
  margin: 0;
  padding: 10px 14px;
  border-bottom: 1px solid #cbd6e2;
  background: #eef3f7;
  text-align: center;
}

.eb-imark-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
}

.eb-imark-copy {
  padding: 22px 24px;
  border-right: 1px solid #cbd6e2;
  line-height: 1.75;
}

.eb-imark-copy p {
  margin: 0 0 20px;
  white-space: pre-line;
}

.eb-imark-copy ol {
  margin: 0;
  padding-left: 24px;
}

.eb-imark-copy li + li { margin-top: 10px; }

.eb-imark-main-image {
  display: flex;
  min-height: 360px;
  padding: 12px;
  align-items: stretch;
}

.eb-imark-main-image .eb-process-image,
.eb-imark-examples .eb-process-image,
.eb-imark-reference .eb-process-image {
  width: 100%;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.eb-imark-main-image img,
.eb-imark-examples img,
.eb-imark-reference img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.eb-imark-criteria table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.eb-imark-criteria th,
.eb-imark-criteria td {
  padding: 13px 15px;
  border-top: 1px solid #cbd6e2;
  vertical-align: middle;
  line-height: 1.55;
  word-break: keep-all;
}

.eb-imark-criteria tr:first-child th,
.eb-imark-criteria tr:first-child td { border-top: 0; }
.eb-imark-criteria th {
  width: 150px;
  border-right: 1px solid #cbd6e2;
  background: #eef3f7;
  text-align: center;
}

.eb-imark-example-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.eb-imark-example-grid article {
  position: relative;
  display: grid;
  grid-template-rows: 260px auto;
  min-width: 0;
  padding: 12px;
  border-right: 1px solid #cbd6e2;
  border-bottom: 1px solid #cbd6e2;
}

.eb-imark-example-grid article:nth-child(2n) { border-right: 0; }
.eb-imark-example-grid article:nth-last-child(-n+2) { border-bottom: 0; }
.eb-imark-example-heading {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #cbd6e2;
  background: #eef3f7;
}
.eb-imark-example-heading h4 {
  flex: 1 1 auto;
  border-bottom: 0;
}
.eb-imark-legend {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 8px 14px;
  border-left: 1px solid #cbd6e2;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
.eb-imark-legend span::before {
  content: "";
  display: inline-block;
  width: 26px;
  margin-right: 6px;
  border-top: 4px solid;
  vertical-align: middle;
}
.eb-imark-legend .is-first::before { border-color: #ff0000; }
.eb-imark-legend .is-second::before { border-color: #0070c0; }
.eb-imark-photo {
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #fff;
}
.eb-imark-photo .eb-process-image {
  height: 100%;
}
.eb-imark-line-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
}
.eb-imark-line-overlay line {
  fill: none;
  stroke-width: 6;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
}
.eb-imark-photo-asset {
  position: absolute;
  inset: 0;
  transform-origin: center;
  overflow: visible;
}
.eb-imark-photo-asset .eb-process-image {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}
.eb-imark-photo-asset .eb-process-image img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
}
.eb-imark-adjust { display: none; }
.eb-editing .eb-imark-adjust {
  display: flex;
  grid-column: 1 / -1;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 9px;
  border-top: 1px solid #cbd6e2;
  background: #f6f8fa;
}
.eb-imark-adjust span { margin-left: 6px; font-size: 12px; font-weight: 800; }
.eb-imark-adjust button { min-height: 28px; padding: 3px 8px; border: 1px solid #aebdca; border-radius: 5px; background: #fff; font-size: 12px; }
.eb-imark-adjust button.is-red { color: #c90000; border-color: #ef9a9a; }
.eb-imark-adjust button.is-blue { color: #0061a9; border-color: #90b9dc; }
.eb-imark-adjust button.is-delete { color: #b42318; }
.eb-editing .eb-imark-line-overlay { pointer-events: auto; }
.eb-editing .eb-imark-line-overlay line { cursor: pointer; pointer-events: stroke; }
.eb-editing .eb-imark-line-overlay line.is-selected { stroke-width: 9; filter: drop-shadow(0 0 2px #fff); }
.eb-imark-example-grid strong {
  padding-top: 9px;
  text-align: center;
}

.eb-imark-reference > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 12px;
}

.eb-imark-reference .eb-process-image { min-height: 300px; }
.eb-imark-reference .eb-process-image:last-child {
  grid-column: 1 / -1;
  min-height: 440px;
}

@media (max-width: 900px) {
  .eb-imark-intro-grid { grid-template-columns: minmax(0, 1fr); }
  .eb-imark-copy { border-right: 0; border-bottom: 1px solid #cbd6e2; }
}

@media (max-width: 640px) {
  .eb-imark-guide section { margin: 10px; }
  .eb-imark-example-grid,
  .eb-imark-reference > div { grid-template-columns: minmax(0, 1fr); }
  .eb-imark-example-grid article { border-right: 0; border-bottom: 1px solid #cbd6e2; }
  .eb-imark-example-grid article:nth-last-child(2) { border-bottom: 1px solid #cbd6e2; }
  .eb-imark-reference .eb-process-image:last-child { grid-column: auto; }
  .eb-imark-criteria th { width: 94px; padding: 10px 8px; }
  .eb-imark-criteria td { padding: 10px; }
  .eb-imark-example-heading { display: block; }
  .eb-imark-legend {
    justify-content: center;
    border-top: 1px solid #cbd6e2;
    border-left: 0;
  }
}

/* V20.7.350: 원본 배치를 유지하는 최고관리자 게시물 편집 */
.eb-detail-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

#ebDetailEdit {
  color: #fff;
  background: #3569c8;
  border-color: #3569c8;
}

.eb-image-edit-label {
  display: none;
}

.eb-editing [data-eb-image-key] {
  position: relative;
  outline: 3px solid #3569c8;
  outline-offset: -3px;
}

.eb-editing [data-eb-image-key] .eb-image-edit-label {
  position: absolute;
  z-index: 3;
  right: 8px;
  top: 8px;
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 6px;
  color: #fff;
  background: #3569c8;
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
  box-shadow: 0 1px 3px rgb(15 35 65 / 24%);
}

.eb-editor-shade {
  position: fixed;
  z-index: 10050;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgb(15 27 47 / 54%);
}

.eb-editor-shade[hidden] {
  display: none;
}

.eb-editor-panel {
  display: flex;
  flex-direction: column;
  width: min(1040px, 96vw);
  max-height: min(860px, 92vh);
  overflow: hidden;
  border: 1px solid #cbd7e7;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 20px 60px rgb(15 35 65 / 28%);
}

.eb-editor-panel > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 22px;
  border-bottom: 1px solid #d7e0ea;
}

.eb-editor-panel h3,
.eb-editor-panel p {
  margin: 0;
}

.eb-editor-panel p {
  margin-top: 5px;
  color: #667892;
  font-size: 13px;
}

#ebEditorClose {
  width: 38px;
  min-width: 38px;
  height: 38px;
  padding: 0;
  font-size: 26px;
  line-height: 1;
}

.eb-editor-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  align-items: end;
  gap: 10px;
  padding: 14px 22px;
  background: #f5f8fc;
  border-bottom: 1px solid #d7e0ea;
}

.eb-editor-toolbar label {
  display: grid;
  gap: 5px;
}

.eb-editor-toolbar label span {
  color: #52657f;
  font-size: 12px;
  font-weight: 800;
}

.eb-editor-toolbar input,
.eb-editor-toolbar button {
  min-height: 42px;
}

.eb-editor-toolbar .primary {
  color: #fff;
  background: #3569c8;
  border-color: #3569c8;
}

.eb-editor-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 18px 22px 24px;
  overflow: auto;
}

.eb-editor-fields label {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  align-items: stretch;
  min-height: 70px;
  overflow: hidden;
  border: 1px solid #d7e0ea;
  border-radius: 8px;
}

.eb-editor-fields label[hidden] {
  display: none;
}

.eb-editor-fields b {
  display: grid;
  place-items: center;
  color: #315273;
  background: #eef4fa;
  border-right: 1px solid #d7e0ea;
  font-size: 12px;
}

.eb-editor-fields textarea {
  width: 100%;
  min-height: 70px;
  padding: 10px 12px;
  resize: vertical;
  border: 0;
  border-radius: 0;
  line-height: 1.55;
}

.eb-editor-added {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #d7e0ea;
}

.eb-editor-added h4 {
  margin: 0 0 12px;
}

.eb-editor-added h4 span {
  color: #667892;
  font-size: 12px;
}

.eb-editor-added > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.eb-editor-added button {
  display: grid;
  gap: 8px;
  padding: 10px;
  background: #fff;
}

.eb-editor-added img {
  width: 100%;
  height: 220px;
  object-fit: contain;
}

@media (max-width: 760px) {
  .eb-detail-actions {
    width: 100%;
  }

  .eb-detail-actions button {
    flex: 1;
  }

  .eb-editor-shade {
    padding: 0;
  }

  .eb-editor-panel {
    width: 100vw;
    max-height: 100dvh;
    height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .eb-editor-toolbar {
    grid-template-columns: 1fr 1fr;
  }

  .eb-editor-toolbar label {
    grid-column: 1 / -1;
  }

  .eb-editor-fields {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .eb-editor-added > div {
    grid-template-columns: 1fr;
  }
}

@media print {
  #ebDetailEdit,
  .eb-editor-shade,
  .eb-image-edit-label {
    display: none !important;
  }
}

/* V20.7.352: 별도 창 없이 현재 게시물에서 직접 편집 */
.eb-inline-editor {
  position: sticky;
  z-index: 40;
  bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 0;
  padding: 12px 14px;
  border: 1px solid #b9cae2;
  border-radius: 10px;
  background: #f7faff;
  box-shadow: 0 5px 18px rgb(24 54 94 / 16%);
}
.eb-inline-editor[hidden] { display: none; }
.eb-inline-editor > div { display: grid; gap: 2px; margin-right: auto; }
.eb-inline-editor span { color: #60738f; font-size: 12px; }
.eb-inline-editor .primary { color: #fff; background: #3569c8; border-color: #3569c8; }
.eb-editing [data-eb-inline-cell] {
  min-height: 1.4em;
  cursor: text;
  outline: 2px dashed #3569c8;
  outline-offset: -2px;
  background-color: #f4f8ff !important;
}
.eb-editing [data-eb-inline-cell]:focus {
  outline-style: solid;
  background-color: #fffbe8 !important;
}
@media (max-width: 760px) {
  .eb-inline-editor { flex-wrap: wrap; bottom: 6px; }
  .eb-inline-editor > div { width: 100%; }
  .eb-inline-editor button { flex: 1; }
}
@media print { .eb-inline-editor { display: none !important; } }

.kmi-payee-manual-input {
  width: 100%;
  min-height: 46px;
  box-sizing: border-box;
}

/* V20.7.374: 기존 그룹웨어형 거래처 선택 + 직접 입력 콤보박스 */
.kmi-payee-combobox { position:relative; width:100%; margin:0; }
.kmi-payee-combobox > input { width:100%!important; height:42px!important; min-height:42px!important; margin:0!important; padding:0 42px 0 12px!important; border:1px solid #cbd7e6!important; border-radius:10px!important; background:#fff!important; box-sizing:border-box; }
.kmi-payee-combobox > input:focus { border-color:#4f83e1!important; outline:3px solid rgba(53,105,200,.15)!important; }
.kmi-payee-toggle { position:absolute; top:1px; right:0; display:flex; width:20px; height:40px; padding:0; border:0; border-radius:0 9px 9px 0; align-items:center; justify-content:center; color:#13243b; background:transparent; }
.kmi-payee-toggle::before { content:""; display:block; width:5px; height:5px; margin-top:-3px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transform-origin:center; }
.kmi-payee-combobox.is-open .kmi-payee-toggle::before { margin-top:3px; transform:rotate(225deg); }
.kmi-payee-options { position:absolute; z-index:120; top:calc(100% + 5px); left:0; right:0; max-height:250px; overflow-y:auto; padding:5px; border:1px solid #cbd7e6; border-radius:10px; background:#fff; box-shadow:0 10px 26px rgba(21,42,72,.18); }
.kmi-payee-options[hidden] { display:none!important; }
.kmi-payee-options button { display:block; width:100%; min-height:38px; padding:8px 10px; border:0; border-radius:7px; color:#17263a; background:#fff; text-align:left; font-size:13px; }
.kmi-payee-options button:hover,.kmi-payee-options button:focus { outline:0; background:#edf4ff; color:#174f9f; }
.kmi-payee-options p { margin:0; padding:13px 10px; color:#68778c; text-align:center; font-size:12px; line-height:1.55; }

/* V20.7.334: IPC620A 웹 문서형 레이아웃 */
.eb-ipc620-web {
  width: 100%;
  min-width: 0;
}

/* V20.7.375: 접속관리 필터 줄맞춤 및 상세 감사 로그 */
.audit-panel .audit-toolbar {
  display: grid;
  grid-template-columns: 150px 150px 180px 180px minmax(320px, 1fr);
  gap: 12px;
  align-items: end;
}

/* V20.7.376: 표준 비용 목록 비용명 세로 중앙 정렬 */
.expense-standard-table tbody td.expense-standard-name-cell {
  vertical-align: middle !important;
  align-content: center !important;
  text-align: center !important;
}
.expense-standard-name-cell > b,
.expense-standard-name-cell > .cell-sub {
  display: block;
  width: 100%;
}
.expense-standard-name-cell > .cell-sub:empty {
  display: none;
}

/* V20.7.378: 계정과목·날짜 한 줄 유지 및 비용명 여유 폭 재배분 */
.expense-standard-list-table {
  width: 100% !important;
  min-width: 1400px;
  table-layout: fixed;
}
.expense-standard-list-table th,
.expense-standard-list-table td {
  vertical-align: middle !important;
}
.expense-standard-list-table .expense-standard-no-col { width: 45px; }
.expense-standard-list-table .expense-standard-account-col { width: 105px; }
.expense-standard-list-table .expense-standard-detail-col { width: 135px; }
.expense-standard-list-table .expense-standard-name-col { width: 220px; }
.expense-standard-list-table .expense-standard-vendor-col { width: 145px; }
.expense-standard-list-table .expense-standard-amount-col { width: 155px; }
.expense-standard-list-table .expense-standard-date-col { width: 95px; }
.expense-standard-list-table .expense-standard-owner-col { width: 105px; }
.expense-standard-list-table .expense-standard-status-col { width: 80px; }
.expense-standard-list-table .expense-standard-manage-col { width: 250px; }
.expense-standard-list-table .expense-standard-account-cell,
.expense-standard-list-table .expense-standard-date-cell {
  white-space: nowrap;
  word-break: keep-all;
}
.expense-standard-list-table .expense-standard-name-cell {
  min-width: 0;
  white-space: normal;
  word-break: keep-all;
  text-align: center !important;
}

.expense-standard-list-table .expense-standard-manage-cell {
  padding-left: 10px !important;
  padding-right: 10px !important;
}
.expense-standard-list-table .expense-standard-manage-cell .row-actions {
  width: 100%;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 5px;
}
.expense-standard-list-table .expense-standard-manage-cell .row-actions > button {
  flex: 0 0 auto;
  white-space: nowrap;
}
.audit-panel .audit-toolbar > label {
  position: relative;
  display: grid;
  grid-template-rows: 22px 42px;
  gap: 6px;
  min-width: 0;
  margin: 0;
}
.audit-panel .audit-toolbar > label > span {
  display: flex;
  align-items: center;
  min-height: 22px;
  font-weight: 700;
}
.audit-panel .audit-toolbar input,
.audit-panel .audit-toolbar select {
  width: 100%;
  height: 42px;
  margin: 0;
}
.audit-panel .audit-toolbar .kmi-filter-list-edit {
  position: absolute;
  top: 0;
  right: 0;
  margin: 0;
  line-height: 22px;
}
.audit-table th:nth-child(5),
.audit-table td:nth-child(5) {
  width: 34%;
  min-width: 280px;
  white-space: normal;
  word-break: keep-all;
}
.audit-table td:nth-child(5) {
  line-height: 1.45;
}
@media (max-width: 1200px) {
  .audit-panel .audit-toolbar {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
  .audit-panel .audit-toolbar .audit-search {
    grid-column: 1 / -1;
  }
}
@media (max-width: 720px) {
  .audit-panel .audit-toolbar {
    grid-template-columns: 1fr;
  }
  .audit-panel .audit-toolbar .audit-search {
    grid-column: auto;
  }
}

.eb-ipc620-web > header {
  padding: 16px 20px;
  background: #174f67;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  text-align: center;
}

.eb-ipc620-section {
  width: 100%;
  margin-top: 12px;
}

.eb-ipc620-section + .eb-ipc620-section {
  margin-top: 28px;
}

.eb-ipc620-section > h3 {
  margin: 0 0 10px;
  padding: 8px 12px;
  background: #174f67;
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.25;
  text-align: left;
}

.eb-ipc620-table,
.eb-ipc620-table .eb-document-scroll,
.eb-ipc620-table .eb-document-table {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

.eb-ipc620-table .eb-document-table {
  table-layout: fixed;
  border-collapse: collapse;
  color: #07172b;
  font-size: 15px;
}

.eb-ipc620-table .eb-document-table td {
  padding: 7px 9px;
  border: 1px solid #222 !important;
  text-align: center;
  vertical-align: middle;
  white-space: pre-line;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.eb-ipc620-table .eb-doc-title,
.eb-ipc620-table .eb-doc-section,
.eb-ipc620-table .eb-doc-header {
  background: #e5e5e5 !important;
  color: #050505 !important;
  font-weight: 800;
}

.eb-ipc620-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  margin-top: 10px;
}

/* V20.7.335: 세로 병합 대신 행 단위 웹 그리드로 안정화 */
.eb-ipc620-content {
  width: 100%;
  border: 1px solid #222;
  border-bottom: 0;
  border-radius: 10px 10px 0 0;
  overflow: hidden;
  box-sizing: border-box;
}

/* V20.7.348: 첫 3개 IPC 표의 원본 셀 병합 구조 복원 */
.eb-ipc620-exact-wrap {
  width: 100%;
  overflow-x: auto;
  box-sizing: border-box;
}

.eb-ipc620-content > * + .is-subsection {
  margin-top: 22px;
  border-top: 1px solid #222;
}

.eb-ipc620-exact {
  width: 100%;
  min-width: 720px;
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
}

.eb-ipc620-exact th,
.eb-ipc620-exact td {
  height: 46px;
  padding: 8px 12px;
  border-right: 1px solid #222;
  border-bottom: 1px solid #222;
  box-sizing: border-box;
  text-align: center;
  vertical-align: middle;
  white-space: pre-line;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.eb-ipc620-exact th {
  background: #e5e5e5;
  font-weight: 800;
}

.eb-ipc620-exact tr > :last-child {
  border-right: 0;
}

.eb-ipc620-exact tr > .keep-right-border {
  border-right: 1px solid #222;
}

.eb-ipc620-exact tbody tr:last-child > * {
  border-bottom: 1px solid #222;
}

.eb-ipc620-class-table {
  min-width: 540px;
}

.eb-ipc620-defect-table {
  min-width: 900px;
}

.eb-ipc620-defect-table col:nth-child(-n+5) {
  width: 14%;
}

.eb-ipc620-defect-table col:nth-child(6) {
  width: 30%;
}

.eb-ipc620-row {
  display: grid;
  grid-template-columns: repeat(var(--ipc-cols), minmax(0, 1fr));
  width: 100%;
  border-bottom: 1px solid #222;
  box-sizing: border-box;
}

.eb-ipc620-table-group {
  width: 100%;
}

.eb-ipc620-table-group .eb-ipc620-row {
  grid-template-columns: repeat(var(--ipc-cols), minmax(0, 1fr));
}

.eb-ipc620-row > div {
  min-width: 0;
  min-height: 42px;
  padding: 9px 12px;
  border-right: 1px solid #222;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: pre-line;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.eb-ipc620-row > div.is-left,
.eb-ipc620-single.is-left {
  justify-content: flex-start;
  text-align: left;
}

.eb-ipc620-row > div.is-center,
.eb-ipc620-single.is-center {
  justify-content: center;
  text-align: center;
}


.eb-ipc620-row > div:last-child {
  border-right: 0;
}

.eb-ipc620-single {
  width: 100%;
  padding: 11px 14px;
  border-bottom: 1px solid #222;
  box-sizing: border-box;
  white-space: pre-line;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.eb-ipc620-single.is-heading {
  background: #e5e5e5;
  color: #050505;
  font-weight: 800;
  text-align: center;
}

.eb-ipc620-single.is-copy {
  background: #fff;
  line-height: 1.7;
  text-align: left;
}

.eb-ipc620-single.is-copy.is-center {
  text-align: center;
}

.eb-ipc620-figure-caption-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
  min-height: 42px;
  border-bottom: 1px solid #222;
  background: #fff;
  box-sizing: border-box;
}

.eb-ipc620-figure-caption-row > div {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 9px 12px;
  border-right: 1px solid #222;
  box-sizing: border-box;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.eb-ipc620-media-copy-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  border-bottom: 1px solid #222;
  background: #fff;
  box-sizing: border-box;
}

.eb-ipc620-media-copy-images {
  display: grid;
  grid-template-columns: repeat(var(--media-count, 1), minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
  padding: 10px;
  border-right: 1px solid #222;
  box-sizing: border-box;
}

.eb-ipc620-media-copy-row[data-images="2"] .eb-ipc620-media-copy-images {
  --media-count: 2;
}

.eb-ipc620-media-copy-row[data-images="3"] .eb-ipc620-media-copy-images {
  --media-count: 3;
}

.eb-ipc620-media-copy-row[data-images="2"],
.eb-ipc620-media-copy-row[data-images="3"] {
  grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr);
}

.eb-ipc620-media-copy-images .eb-process-image {
  width: 100% !important;
  height: clamp(210px, 24vw, 380px) !important;
  margin: 0 !important;
  padding: 8px !important;
  border: 1px solid #222 !important;
  border-radius: 0 !important;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
}

.eb-ipc620-media-copy-images img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  background: #fff;
}

.eb-ipc620-media-copy-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 14px 18px;
  box-sizing: border-box;
}

.eb-ipc620-media-copy-text p {
  margin: 0;
  white-space: pre-line;
  word-break: keep-all;
  overflow-wrap: anywhere;
  line-height: 1.7;
}

.eb-ipc620-media-copy-text p.is-left {
  text-align: left;
}

.eb-ipc620-media-copy-text p.is-center {
  text-align: center;
}

.eb-ipc620-stacked-media-copy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  border-bottom: 1px solid #222;
  background: #fff;
  box-sizing: border-box;
}

.eb-ipc620-stacked-media {
  min-width: 0;
  border-right: 1px solid #222;
  box-sizing: border-box;
}

.eb-ipc620-stacked-figure + .eb-ipc620-stacked-figure {
  border-top: 1px solid #222;
}

.eb-ipc620-stacked-images {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 8px;
  padding: 10px;
  box-sizing: border-box;
}

.eb-ipc620-stacked-images .eb-process-image {
  width: 100% !important;
  height: clamp(210px, 24vw, 380px) !important;
  margin: 0 !important;
  padding: 8px !important;
  border: 1px solid #222 !important;
  border-radius: 0 !important;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
}

.eb-ipc620-stacked-images img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  background: #fff;
}

.eb-ipc620-stacked-caption {
  min-height: 42px;
  padding: 9px 12px;
  border-top: 1px solid #222;
  box-sizing: border-box;
  text-align: center;
}

.eb-ipc620-captioned-media-copy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  border-bottom: 1px solid #222;
  background: #fff;
  box-sizing: border-box;
}

.eb-ipc620-captioned-media-copy[data-images="2"],
.eb-ipc620-captioned-media-copy[data-images="3"] {
  grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr);
}

.eb-ipc620-captioned-media {
  display: grid;
  grid-template-columns: repeat(var(--captioned-count, 1), minmax(0, 1fr));
  min-width: 0;
  border-right: 1px solid #222;
  box-sizing: border-box;
}

.eb-ipc620-captioned-figure {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-width: 0;
  box-sizing: border-box;
}

.eb-ipc620-captioned-figure:not(:last-child) {
  border-right: 1px solid #222;
}

.eb-ipc620-captioned-image {
  min-width: 0;
  padding: 10px;
  box-sizing: border-box;
}

.eb-ipc620-captioned-image .eb-process-image {
  width: 100% !important;
  height: clamp(210px, 24vw, 380px) !important;
  margin: 0 !important;
  padding: 8px !important;
  border: 1px solid #222 !important;
  border-radius: 0 !important;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
}

.eb-ipc620-captioned-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  background: #fff;
}

.eb-ipc620-captioned-label {
  min-height: 42px;
  padding: 9px 12px;
  border-top: 1px solid #222;
  box-sizing: border-box;
  text-align: center;
}

.eb-ipc620-content > .eb-ipc620-gallery {
  margin: 0;
  padding: 10px;
  border-bottom: 1px solid #222;
  box-sizing: border-box;
}

.eb-ipc620-gallery[data-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.eb-ipc620-gallery[data-count="2"] > .eb-process-image {
  display: flex;
  align-items: center;
  justify-content: center;
}

.eb-ipc620-content > .eb-ipc620-gallery > .eb-process-image {
  height: clamp(260px, 32vw, 480px) !important;
}

.eb-ipc620-gallery > .eb-process-image {
  display: block;
  width: 100% !important;
  height: clamp(240px, 31vw, 470px) !important;
  margin: 0 !important;
  padding: 8px !important;
  border: 1px solid #222 !important;
  border-radius: 0 !important;
  background: #fff;
  overflow: hidden;
}

.eb-ipc620-gallery img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  background: #fff;
}

@media (max-width: 760px) {
  .eb-ipc620-table .eb-document-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .eb-ipc620-table .eb-document-table {
    min-width: 720px !important;
    font-size: 13px;
  }

  .eb-ipc620-gallery {
    grid-template-columns: minmax(0, 1fr);
  }

  .eb-ipc620-gallery > .eb-process-image {
    height: min(72vw, 420px) !important;
  }

  .eb-ipc620-figure-caption-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .eb-ipc620-figure-caption-row > div {
    grid-column: 1 / -1 !important;
    border-right: 0;
  }

  .eb-ipc620-media-copy-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .eb-ipc620-media-copy-images {
    grid-template-columns: minmax(0, 1fr);
    border-right: 0;
    border-bottom: 1px solid #222;
  }

  .eb-ipc620-media-copy-images .eb-process-image {
    height: min(72vw, 420px) !important;
  }

  .eb-ipc620-stacked-media-copy {
    grid-template-columns: minmax(0, 1fr);
  }

  .eb-ipc620-stacked-media {
    border-right: 0;
    border-bottom: 1px solid #222;
  }

  .eb-ipc620-stacked-images .eb-process-image {
    height: min(72vw, 420px) !important;
  }

  .eb-ipc620-captioned-media-copy {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .eb-ipc620-captioned-media {
    grid-template-columns: minmax(0, 1fr);
    border-right: 0;
    border-bottom: 1px solid #222;
  }

  .eb-ipc620-captioned-figure:not(:last-child) {
    border-right: 0;
    border-bottom: 1px solid #222;
  }

  .eb-ipc620-captioned-figure {
    grid-column: 1 / -1 !important;
  }

  .eb-ipc620-captioned-image .eb-process-image {
    height: min(72vw, 420px) !important;
  }
}

@media print {
  .eb-ipc620-section {
    break-inside: avoid-page;
  }

  .eb-ipc620-table .eb-document-table {
    min-width: 0 !important;
    font-size: 11px;
  }
}

/* V20.7.348: 중량물 계산 원본 시트 구조 */
.eb-weight-calculator {
  display: grid;
  gap: 18px;
}

.eb-weight-calculator > h3 {
  margin: 0;
  padding: 16px 18px;
  background: #174f67;
  color: #fff;
  text-align: center;
}

.eb-weight-guide {
  margin: -18px 0 0;
  padding: 10px 14px;
  background: #f3f6fa;
  text-align: center;
}

.eb-weight-top {
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(0, 2fr);
  gap: 18px;
}

.eb-weight-block {
  min-width: 0;
}

.eb-weight-block > h4 {
  margin: 0;
  padding: 9px 12px;
  background: #174f67;
  color: #fff;
}

.eb-weight-inputs {
  border: 1px solid #ccd5df;
  border-top: 0;
}

.eb-weight-inputs label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  align-items: center;
  border-top: 1px solid #ccd5df;
}

.eb-weight-inputs label:first-child {
  border-top: 0;
}

.eb-weight-inputs span {
  padding: 10px 12px;
  font-weight: 700;
}

.eb-weight-inputs input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 7px 10px;
  border: 0;
  border-left: 1px solid #ccd5df;
  background: #fff7ce;
  color: #1555c0;
  font: inherit;
  font-weight: 800;
  text-align: right;
  box-sizing: border-box;
}

.eb-weight-results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-left: 1px solid #ccd5df;
  border-top: 1px solid #ccd5df;
}

.eb-weight-results > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 118px;
  padding: 12px;
  border-right: 1px solid #ccd5df;
  border-bottom: 1px solid #ccd5df;
  box-sizing: border-box;
  text-align: center;
}

.eb-weight-results span {
  font-weight: 700;
}

.eb-weight-results b {
  color: #174f67;
  font-size: 20px;
}

.eb-weight-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.eb-weight-table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
  table-layout: fixed;
}

.eb-weight-table th,
.eb-weight-table td {
  padding: 9px 10px;
  border: 1px solid #ccd5df;
  text-align: center;
  vertical-align: middle;
  white-space: pre-line;
  word-break: keep-all;
}

.eb-weight-table th {
  background: #174f67;
  color: #fff;
}

.eb-weight-table th:last-child,
.eb-weight-table td:last-child {
  width: 24%;
}

.eb-weight-table .is-possible,
.eb-weight-results .is-possible {
  color: #167000;
}

.eb-weight-table .is-impossible,
.eb-weight-results .is-impossible {
  color: #c01818;
}

.eb-weight-table .is-unset {
  color: #6b7280;
}

.eb-weight-standards {
  padding: 16px 18px;
  background: #f1edf8;
  color: #512691;
}

.eb-weight-standards h4 {
  margin: 0 0 8px;
}

.eb-weight-standards ol {
  margin: 0;
  padding-left: 22px;
  line-height: 1.8;
}

@media (max-width: 900px) {
  .eb-weight-top {
    grid-template-columns: minmax(0, 1fr);
  }

  .eb-weight-results {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 520px) {
  .eb-weight-inputs label {
    grid-template-columns: minmax(0, 1fr);
  }

  .eb-weight-inputs input {
    border-left: 0;
    border-top: 1px solid #ccd5df;
  }
}

@media (max-width: 640px) {
  main {
    overflow-x: hidden;
  }

  .eb-panel {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .eb-guide-images.eb-guide-images-three {
    grid-template-rows: minmax(180px, 46vw) minmax(210px, 62vw) !important;
    min-height: 0;
  }
}

@media print {
  .eb-guide-images.eb-guide-images-three {
    min-height: 560px;
    break-inside: avoid;
  }
}

/* V20.7.331: 사진이 다음 설명 행에서 시작해 위쪽이 비던 문서 구역 */
.eb-guide-section-stacked {
  align-items: stretch !important;
}

.eb-guide-section-stacked > .eb-guide-copy,
.eb-guide-section-stacked > .eb-guide-images {
  align-self: stretch;
}

.eb-guide-section-stacked > .eb-guide-copy {
  display: flex;
  flex-direction: column;
}

.eb-guide-section-stacked .eb-guide-copy-block {
  flex: 1 1 0;
  min-height: 0;
  padding: 20px;
  box-sizing: border-box;
}

.eb-guide-section-stacked .eb-guide-copy-block + .eb-guide-copy-block {
  border-top: 1px solid #d7e0ea;
}

.eb-guide-section-stacked > .eb-guide-images {
  height: auto !important;
  min-height: 100%;
  align-content: stretch;
}

.eb-guide-section-stacked > .eb-guide-images:not(.eb-guide-images-three) {
  grid-auto-rows: minmax(210px, 1fr) !important;
}

@media (max-width: 1100px) {
  .eb-guide-section-stacked .eb-guide-copy-block {
    padding: 16px;
  }

  .eb-guide-section-stacked > .eb-guide-images {
    min-height: 0;
  }
}

/* V20.7.379: 거래처·지급처 화살표를 기존 선택상자와 동일한 우측 간격·크기로 정렬 */

/* V20.7.380: 비용명 가로·세로 중앙 정렬 및 관리 버튼 4개 안전 폭 확보 */

/* V20.7.381: 표준 비용 등록 거래처·지급처와 금액 입력칸의 상·하단선 및 높이 통일 */
.kmi-password-input{position:relative;display:block;width:100%}
.kmi-password-input>input{width:100%;padding-right:70px!important}
.kmi-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);min-width:52px;height:30px;padding:0 8px;border:1px solid #b8c7da;border-radius:7px;background:#fff;color:#18375b;font-size:12px;font-weight:800;cursor:pointer}
.kmi-password-toggle:hover{background:#edf4fc}
.kmi-login-help #kmiAdminRecovery[hidden]{display:none!important}

/* V20.7.385 pre-release responsive audit
   Keep the document viewport bounded while allowing genuinely wide content
   (tables and approval grids) to scroll inside its own region instead of being
   silently clipped. These rules are mobile-only and do not alter desktop. */
@media screen and (max-width:900px){
  html,body,#app,.shell,main#main{
    width:100%;
    max-width:100%;
  }

  .shell,main#main,main#main>*,
  .card,.panel,.page-head,.toolbar,.panel-head,
  .modal-box,.modal-head,.modal-body,.modal-actions{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
  }

  main#main img,
  .modal-body img,
  main#main video,
  .modal-body video,
  main#main canvas,
  .modal-body canvas{
    max-width:100%;
    height:auto;
  }

  .modal-overlay{
    width:100%;
    max-width:100%;
    padding:
      max(8px,env(safe-area-inset-top))
      max(8px,env(safe-area-inset-right))
      max(8px,env(safe-area-inset-bottom))
      max(8px,env(safe-area-inset-left));
    box-sizing:border-box;
    overflow:hidden;
  }

  .modal-box{
    width:100%!important;
    max-width:100%!important;
    max-height:calc(100dvh - max(16px,env(safe-area-inset-top) + env(safe-area-inset-bottom)))!important;
    overflow:hidden;
  }

  .modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow-x:auto!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .modal-body input,
  .modal-body select,
  .modal-body textarea,
  .modal-body button,
  .modal-body label,
  .modal-body fieldset{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
  }

  .table-wrap,.ap-table-wrap,.legacy-table-wrap,
  .eb-ppe-table-scroll,.eb-torque-table-wrap,.eb-weight-table-wrap,
  .google-calendar-import-wrap{
    width:100%;
    max-width:100%;
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
  }

  .panel-head,.page-head,.toolbar,.modal-actions,
  .row-actions,.master-row-actions{
    flex-wrap:wrap;
  }

  .modal-actions{
    flex:0 0 auto;
    padding-bottom:max(12px,env(safe-area-inset-bottom));
  }
}

@media screen and (max-width:560px){
  .modal-head{
    gap:8px;
  }

  .modal-head h2,.modal-head h3,
  .panel-head h2,.panel-head h3{
    min-width:0;
    overflow-wrap:anywhere;
  }

  .modal-actions>.btn,
  .modal-actions>button{
    flex:1 1 auto;
  }
}
