/* PG 통합관리자 - 참고 이미지 구조 정확 반영 */
* { box-sizing: border-box; }
:root {
  --table-row-padding-y: 6px;
  --app-base-font-size: 13px;
  /* 결제관리 결제내역(.screen-pay-list) 그리드 기준 — 전역 데이터 테이블과 동일 */
  --pay-mng-dense-font-size: 11px;
  --app-table-font-size: var(--pay-mng-dense-font-size);
  --app-form-sm-font-size: 12px;
  /* VIEW SETTING 패널(.table-column-guide) 전용 글자 크기 */
  --view-setting-font-size: 10px;
}
html { height: 100%; }
/* 좌측·상단 고정, 본문만 세로 스크롤 — 문서 전체 스크롤 방지 */
body { margin: 0; height: 100%; overflow: hidden; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif; font-size: var(--app-base-font-size); }

/* OBSERVER(조회전용): ziobim/NOTI의 비활성 버튼 톤과 유사하게 회색 고정 */
.pg-perm-observer .btn:disabled,
.pg-perm-observer .btn.disabled,
.pg-perm-observer button:disabled,
.pg-perm-observer a.btn.disabled {
  background-color: #e9ecef !important;
  border-color: #ced4da !important;
  color: #6c757d !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}
.pg-perm-observer input:disabled,
.pg-perm-observer select:disabled,
.pg-perm-observer textarea:disabled {
  background-color: #f1f3f5 !important;
  color: #6c757d !important;
  cursor: not-allowed !important;
}
.wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}
/* 좌측 메뉴 + 우측 콘텐츠 행: 높이는 뷰포트에 고정, 세로 스크롤은 우측 .content-inner·탭 영역만 */
.wrapper-body {
  display: flex;
  flex-direction: row;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  align-items: stretch;
}

/* ========== 좌측 사이드바: layout/left-side-menu.html 구조 (로고 → 접기 → 메뉴) ========== */
.left-side-menu {
  width: 260px;
  min-width: 260px;
  min-height: 0;
  align-self: stretch;
  height: auto;
  max-height: none;
  background: #2c3138;
  color: #a6b0bf;
  flex-shrink: 0;
  transition: width 0.2s, min-width 0.2s;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
  z-index: 100;
}
.left-side-menu.collapsed {
  width: 70px !important;
  min-width: 70px !important;
}
.left-side-menu.collapsed .menu-arrow,
.left-side-menu.collapsed .side-nav-link span,
.left-side-menu.collapsed #leftSideFoldSpan { display: none !important; }
.left-side-menu.collapsed .side-nav-second-level { display: none !important; }
.left-side-menu.collapsed .logo-icopay-sub { display: none !important; }
.left-side-menu.collapsed .side-nav-link { justify-content: center; padding: 10px; }
.left-side-menu.collapsed .side-nav-link i { margin-right: 0; }
/* 접힘: 상단 로고 영역·이미지 축소 (브랜딩 업로드 후에도 동일) */
.left-side-menu.collapsed .logo-icopay-wrap {
  padding: 8px 4px;
}
.left-side-menu.collapsed .logo-icopay-title {
  font-size: 0.72rem;
  line-height: 1.15;
}
.left-side-menu.collapsed #sidebar-logo-img,
.left-side-menu.collapsed .sidebar-logo-img {
  max-height: 32px !important;
  max-width: 56px !important;
}
.logo-icopay-wrap,
.logo-icopay-title,
.logo-icopay-sub,
#sidebar-logo-img,
.sidebar-logo-img {
  transition: padding 0.2s ease, font-size 0.2s ease, max-height 0.2s ease, max-width 0.2s ease;
}
.menuFoldDiv { padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,0.06); }
/* 접힌 상태 플라이아웃: 사이드바 오른쪽에 떠 있는 서브메뉴 */
.flyout-submenu {
  position: fixed;
  left: 70px;
  top: 0;
  width: 190px;
  min-height: 100px;
  max-height: min(85vh, 560px);
  overflow-y: auto;
  scrollbar-width: thin;
  background: #2c3138;
  color: #a6b0bf;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  z-index: 1000;
  border-radius: 0 4px 4px 0;
  border-left: 1px solid rgba(255,255,255,0.08);
}
.flyout-submenu .side-nav-second-level {
  display: block !important;
  max-height: none;
  background: transparent;
}
.flyout-submenu .child-li a {
  padding: 8px 18px;
  font-size: var(--app-base-font-size);
}
.logo-icopay-wrap {
  display: block;
  padding: 16px 12px;
  text-align: center;
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  flex-shrink: 0;
}
.logo-icopay-wrap:hover { color: #fff; opacity: 0.9; }
.logo-icopay-title { display: block; font-weight: 700; font-size: 1.05rem; color: #e74c3c; }
.logo-icopay-sub { display: block; font-size: 0.75rem; color: rgba(231,76,60,0.9); margin-top: 2px; }
#sidebar-logo-img,
.sidebar-logo-img {
  max-height: 50px;
  max-width: 180px;
  display: none;
  object-fit: contain;
}
/* 좌측 사이드바 내부에 세로 스크롤바를 두지 않음(요청: 스크롤은 우측 본문만). 메뉴가 매우 길면 하단은 보이지 않을 수 있음 */
#left-side-menu-container {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.left-side-menu .btn-secondary {
  background: #3a4149 !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  color: #fff !important;
  font-size: var(--app-base-font-size);
  padding: 6px 10px;
}
.left-side-menu .btn-secondary:hover { background: #454d56 !important; color: #fff !important; }
.side-nav { list-style: none; margin: 0; padding: 8px 0 12px; }
.side-nav-item { margin: 0; }
.side-nav-link {
  display: flex;
  align-items: center;
  padding: 10px 18px;
  color: #a6b0bf;
  text-decoration: none;
  cursor: pointer;
  border-left: 3px solid transparent;
  font-size: var(--app-base-font-size);
}
.side-nav-link:hover { color: #fff; background: rgba(255,255,255,0.08); }
/* 대메뉴 선택: 연한 그레이, 보라색 포인트는 왼쪽 라인 */
.side-nav-item.mm-active > .side-nav-link {
  color: #fff;
  border-left-color: #6658dd;
  background: #3a4149;
}
.side-nav-link i { margin-right: 10px; width: 20px; text-align: center; font-size: 1.05rem; }
/* 대메뉴 우측: 접힘 ▶ / 펼침 ▼ (회전으로 전환) */
.menu-arrow {
  margin-left: auto;
  flex-shrink: 0;
  width: 1em;
  text-align: center;
  font-size: var(--app-base-font-size);
  font-weight: 700;
  line-height: 1;
  color: rgba(255,255,255,0.55);
  transition: transform 0.2s ease;
}
.menu-arrow::before {
  content: '>';
  display: inline-block;
}
.side-nav-item.mm-active > .side-nav-link .menu-arrow { transform: rotate(90deg); }
.side-nav-second-level {
  list-style: none;
  margin: 0;
  padding: 0;
  background: rgba(0,0,0,0.2);
  display: none;
  max-height: none;
  overflow: visible;
}
.side-nav-second-level.mm-show { display: block !important; }
.child-li { margin: 0; }
.child-li a {
  display: block;
  padding: 8px 18px 8px 48px;
  color: #a6b0bf;
  text-decoration: none;
  font-size: var(--app-base-font-size);
  white-space: nowrap;
}
.child-li a:hover { color: #fff; background: #3a4149; }
/* 실제 선택된 메뉴(클릭된 서브메뉴)는 보라색 */
.child-li.mm-active a { color: #fff; background: #6658dd; font-weight: 500; }
/* ========== 상단 헤더: 우측만 - 접속IP·접속시간·사용자(아이콘+ID+이름)·전체닫기 ========== */
.content-page {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  width: auto;
  background: #f5f5f5;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.header-top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 52px;
  padding: 0 20px;
  background: #e8e8e8;
  border-bottom: 1px solid #ddd;
  flex-shrink: 0;
  position: relative;
  z-index: 40;
}
.header-top-right {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px 20px;
  min-width: 0;
  max-width: 100%;
  /* 드롭다운(관리자 메뉴)이 flex 안에서 가로 막대처럼 깨지지 않도록 가로 스크롤·클립 미사용 */
  overflow-x: visible;
  overflow-y: visible;
}
.header-user.dropdown {
  position: relative;
  flex-shrink: 0;
}
.header-top-info { font-size: var(--app-base-font-size); color: #333; font-weight: 500; white-space: nowrap; flex-shrink: 0; }

/* 상단 헤더: 접속 IP 오른쪽 인라인 언어 (JP KR EN CH TH — KR=한국어 KO) */
.pg-pay-lang-inline {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 4px 10px;
  padding: 4px 14px;
  border: 1px solid #b6d4fe;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.65);
  font-size: var(--app-base-font-size);
  color: #0f172a;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
.pg-pay-lang-label {
  font-weight: 600;
  color: #334155;
  margin-right: 2px;
  user-select: none;
}
.pg-pay-lang-inline .pg-pay-lang-chip {
  border: 0;
  background: transparent;
  padding: 2px 2px;
  margin: 0;
  font-size: inherit;
  font-weight: 500;
  color: #1e293b;
  cursor: pointer;
  line-height: 1.25;
  border-radius: 4px;
}
.pg-pay-lang-inline .pg-pay-lang-chip:hover {
  background: rgba(37, 99, 235, 0.12);
  color: #1d4ed8;
}
.pg-pay-lang-inline .pg-pay-lang-chip:focus-visible {
  outline: 2px solid #3b82f6;
  outline-offset: 1px;
}
.pg-pay-lang-inline .pg-pay-lang-chip--active {
  font-weight: 700;
  color: #1d4ed8;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.header-user-link { display: flex; align-items: center; gap: 8px; color: #333; text-decoration: none; }
.header-user-link:hover { color: #111; }
.header-user-icon { font-size: 1.5rem; color: #555; }
.header-user-text { font-size: var(--app-base-font-size); line-height: 1.4; text-align: left; }
.header-user .dropdown-menu .dropdown-item { font-size: var(--app-base-font-size); }
.btn-header-close {
  background: #c00 !important;
  border: 1px solid #a00 !important;
  color: #fff !important;
  font-size: var(--app-base-font-size);
  padding: 6px 14px;
  font-weight: 500;
}
.btn-header-close:hover { background: #a00 !important; border-color: #800 !important; color: #fff !important; }

/* ========== 탭 바: 다크 그레이 (참고 이미지) ========== */
.content-body { flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden; background: #fff; }
.content-tab-row {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 0 12px;
  background: #4a4a4a;
  border-bottom: 1px solid #333;
  flex-shrink: 0;
  flex-wrap: nowrap;
  min-width: 0;
  overflow: hidden;
}
.content-tabs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  flex: 1;
  min-width: 0;
  align-items: stretch;
}
.content-tabs .nav-item.copyTopTab {
  display: flex;
  align-items: center;
  border-right: 1px solid #555;
  background: #4a4a4a;
  flex-shrink: 0;
}
.content-tabs .nav-item.copyTopTab .tab-a { color: #ccc; }
.content-tabs .nav-item.copyTopTab .tab-a.active { background: #5a5a5a; color: #fff; font-weight: 600; }
.content-tabs .tab-a {
  padding: 8px 14px;
  font-size: var(--app-base-font-size);
  text-decoration: none;
  display: inline-block;
  white-space: nowrap;
}
.content-tabs .tab-close-button {
  margin: 0 4px;
  padding: 0 6px;
  font-size: var(--app-base-font-size);
  line-height: 1.2;
  background: none;
  border: none;
  color: #999;
  cursor: pointer;
}
.content-tabs .tab-close-button:hover { color: #fff; }

/* ========== 본문 내부 (흰 배경, 너비 자동 조절) ========== */
/* 우측 본문(3번): 세로 스크롤바는 이 영역 오른쪽에만 — 상단 헤더·탭은 .content-body 안에서 고정 */
.content-inner {
  padding: 16px 20px;
  flex: 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: none;
  background: #fff;
  display: flex;
  flex-direction: column;
  overflow-x: auto;
  overflow-y: auto;
  scrollbar-gutter: stable;
  overscroll-behavior-y: contain;
  font-size: var(--app-base-font-size);
}
/* 본문 공통: sm 입력·셀렉트는 사용자관리와 동일 10px */
.content-inner .form-control-sm,
.content-inner .form-select-sm,
.tab-pane.tabConDiv .form-control-sm,
.tab-pane.tabConDiv .form-select-sm {
  font-size: var(--app-form-sm-font-size);
}
.content-inner .form-label,
.tab-pane.tabConDiv .form-label {
  font-size: var(--app-base-font-size);
}
.content-inner .form-control:not(.form-control-sm),
.tab-pane.tabConDiv .form-control:not(.form-control-sm) {
  font-size: var(--app-base-font-size);
}
/* 스크롤바: 얇은 연한 회색 */
.content-inner,
.tab-pane.tabConDiv,
.content-tabs,
#contentsMain .table-responsive,
.table-responsive.table-scrollable {
  scrollbar-width: thin;
  scrollbar-color: #c8c8c8 #f0f0f0;
}
.content-inner::-webkit-scrollbar,
.tab-pane.tabConDiv::-webkit-scrollbar,
.content-tabs::-webkit-scrollbar,
#contentsMain .table-responsive::-webkit-scrollbar,
.table-responsive.table-scrollable::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.content-inner::-webkit-scrollbar-track,
.tab-pane.tabConDiv::-webkit-scrollbar-track,
.content-tabs::-webkit-scrollbar-track,
#contentsMain .table-responsive::-webkit-scrollbar-track,
.table-responsive.table-scrollable::-webkit-scrollbar-track {
  background: #f0f0f0;
}
.content-inner::-webkit-scrollbar-thumb,
.tab-pane.tabConDiv::-webkit-scrollbar-thumb,
.content-tabs::-webkit-scrollbar-thumb,
#contentsMain .table-responsive::-webkit-scrollbar-thumb,
.table-responsive.table-scrollable::-webkit-scrollbar-thumb {
  background: #c8c8c8;
  border-radius: 3px;
}
.content-inner::-webkit-scrollbar-thumb:hover,
.tab-pane.tabConDiv::-webkit-scrollbar-thumb:hover,
.content-tabs::-webkit-scrollbar-thumb:hover,
#contentsMain .table-responsive::-webkit-scrollbar-thumb:hover,
.table-responsive.table-scrollable::-webkit-scrollbar-thumb:hover {
  background: #b0b0b0;
}

/* 필수 입력값 통일 표현: 파스텔 배경 */
.comp-reg-form .form-control.required-input:not([readonly]):not(:disabled),
.comp-reg-form .form-select.required-input:not([readonly]):not(:disabled),
.comp-reg-form textarea.form-control.required-input:not([readonly]):not(:disabled) {
  background-color: #fff4e8 !important;
  border-color: #f2d4b6;
}
.comp-reg-form .form-control.required-input:not([readonly]):not(:disabled):focus,
.comp-reg-form .form-select.required-input:not([readonly]):not(:disabled):focus,
.comp-reg-form textarea.form-control.required-input:not([readonly]):not(:disabled):focus {
  background-color: #ffefdf !important;
  border-color: #f0c99d;
  box-shadow: 0 0 0 0.18rem rgba(240, 201, 157, 0.28);
}
/* 정산방법 시간 입력(정산마감/정산자동개시/이체시간): 기존 대비 50% 확대 */
.comp-reg-form input[type="time"].settle-time-wide {
  width: 100%;
  min-width: 0;
  max-width: none;
}
/* 겹침 방지: 시간 필드 블록 자체를 넓혀 간격 유지 */
.comp-reg-form .form-field-block.settle-time-wide-block {
  flex: 0 0 16.6667%;
  max-width: 16.6667%;
  padding-right: 10px;
}
@media (max-width: 992px) {
  .comp-reg-form input[type="time"].settle-time-wide {
    width: 100%;
    min-width: 0;
    max-width: none;
  }
  .comp-reg-form .form-field-block.settle-time-wide-block {
    flex: 0 0 100%;
    max-width: 100%;
    padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5);
  }
}
.content-page .container-fluid { max-width: none; width: 100%; overflow: hidden; }
/* .content-inner 는 container-fluid 와 겹침 — 위 규칙의 overflow:hidden 이 세로 스크롤을 막으므로 본문만 스크롤 재허용 */
.content-page .container-fluid.content-inner {
  overflow-x: auto;
  overflow-y: auto;
}
.page-title-box { margin-bottom: 14px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
.page-title-box .page-title { margin: 0; order: 1; font-size: var(--app-base-font-size); font-weight: 600; color: #333; }
.page-title-box .breadcrumb { margin: 0; padding: 0; background: none; font-size: var(--app-base-font-size); color: #666; order: 2; }
.page-title-box .breadcrumb-item.navi { font-weight: 600; color: #333; }
.page-title-box .page-title.empty-title { display: none; }
#contentsMain { flex: 1 1 auto; min-height: 0; overflow: visible; display: flex; flex-direction: column; }
/* 탭 본문은 부모(.content-inner)에서만 세로 스크롤 — 이중 스크롤·가려진 스크롤바 방지 */
.tab-pane.tabConDiv {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  display: none;
  padding: 0;
  overflow-x: visible;
  overflow-y: visible;
  font-size: var(--app-base-font-size);
}
.tab-pane.tabConDiv.show.active { display: block; }

/* TAX 리포트: content 영역 자체의 가로 스크롤을 차단 */
#contentsMain .tab-pane.tabConDiv.screen-tax-report,
#contentsMain .tab-pane.tabConDiv.screen-tax-report .content-inner {
  overflow-x: hidden !important;
}
/* content-inner는 pane 상위이므로, TAX 리포트 탭 활성 시 직접 차단 */
.content-inner.content-inner--tax-report {
  overflow-x: hidden !important;
}

/* 목록 화면 통일 간격: 검색 줄·알림·요약·테이블 구분 (결제내역·결제실패 등 전체) */
.screen-search-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 20px;
  font-size: var(--app-base-font-size);
}
/* 검색 행: 한 줄 고정, 글자수 연동 자동 너비 → 줄바꿈 없이 가로 스크롤 */
.screen-search-form .search-form-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px 12px;
  margin-bottom: 0;
  overflow-x: auto;
  min-width: 0;
}
.screen-search-form .search-cell {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  min-width: 0;
}
.screen-search-form .search-cell--with-label .search-cell-label {
  flex-shrink: 0;
  width: auto;
  min-width: 36px;
  font-size: var(--app-base-font-size);
  color: #495057;
  text-align: right;
  white-space: nowrap;
}
.screen-search-form .search-cell-input {
  flex: 0 0 auto;
  min-width: 0;
}
.screen-search-form .search-cell-input--right {
  display: flex;
  justify-content: flex-end;
}
/* 입력창: 너비는 글자수 자동(ch), 높이/폰트는 30% 확대 */
.screen-search-form .search-cell-input .form-control-sm,
.screen-search-form .search-cell-input select.form-control-sm {
  font-size: var(--app-base-font-size);
  height: 28px;
  padding: 2px 8px;
  line-height: 1.3;
}
.screen-search-form .search-cell-input input[type="text"].form-control-sm,
.screen-search-form .search-cell-input select.form-control-sm {
  max-width: none;
}
/* 조회일자: 달력 40% 확대 */
.screen-search-form .search-cell-input--daterange { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* 네이티브 date: YYYY-MM-DD + 달력 아이콘이 잘리지 않도록 전역 최소 너비 (인라인 ch·좁은 미디어쿼리보다 우선) */
#contentsMain input[type="date"],
.tab-pane.tabConDiv input[type="date"] {
  min-width: 13.875rem !important;
  width: auto !important;
  max-width: none;
}
.screen-search-form .search-date-input {
  font-size: var(--app-base-font-size);
  height: 30px;
  padding: 2px 8px;
  width: auto;
  min-width: 13.875rem;
  max-width: none;
}
/* 결제관리 검색: 라벨 글자길이와 무관하게 입력칸 시작선/폭을 통일 */
.screen-search-form.pay-mng-search-form .search-form-row {
  flex-wrap: wrap;
  overflow-x: visible;
  overflow-y: visible;
  align-items: flex-end;
  row-gap: 10px;
}
.screen-search-form.pay-mng-search-form .search-cell {
  max-width: 100%;
}
/* 퀵날짜·좁은 화면에서 버튼만 다음 줄로 */
.screen-search-form.pay-mng-search-form .search-cell-input:has(.quick-date) {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 6px;
  max-width: 100%;
}
.screen-search-form.pay-mng-search-form .search-cell--with-label .search-cell-label {
  width: 74px;
  min-width: 74px;
}
.screen-search-form.pay-mng-search-form .search-cell-input input.form-control-sm,
.screen-search-form.pay-mng-search-form .search-cell-input select.form-control-sm {
  width: 190px !important;
  min-width: 190px !important;
  max-width: 100%;
}
.screen-search-form.pay-mng-search-form .search-cell-input select[name="searchTranFactor"],
.screen-search-form.pay-mng-search-form .search-cell-input select[name="searchPayDivCd"],
.screen-search-form.pay-mng-search-form .search-cell-input select[name="searchPgCd"] {
  width: 220px !important;
  min-width: 220px !important;
  max-width: 100%;
}
/* 퀵 날짜: 미선택 outline, 선택 시 range별 파스텔 */
.quick-date {
  font-size: var(--app-base-font-size);
  padding: 4px 8px;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.quick-date.quick-date--selected {
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.quick-date.quick-date--selected[data-range="day"] {
  background: linear-gradient(180deg, #fce4ec 0%, #f8bbd9 100%) !important;
  border-color: #f48fb1 !important;
  color: #ad1457 !important;
}
.quick-date.quick-date--selected[data-range="month"] {
  background: linear-gradient(180deg, #f3e5f5 0%, #e1bee7 100%) !important;
  border-color: #ce93d8 !important;
  color: #7b1fa2 !important;
}
.quick-date.quick-date--selected[data-range="prevDay"] {
  background: linear-gradient(180deg, #e8f5e9 0%, #c8e6c9 100%) !important;
  border-color: #81c784 !important;
  color: #2e7d32 !important;
}
.quick-date.quick-date--selected[data-range="week"],
.quick-date.quick-date--selected[data-range="weekCal"] {
  background: linear-gradient(180deg, #e3f2fd 0%, #bbdefb 100%) !important;
  border-color: #64b5f6 !important;
  color: #1565c0 !important;
}
.quick-date.quick-date--selected[data-range="week2"],
.quick-date.quick-date--selected[data-range="prevWeekCal"] {
  background: linear-gradient(180deg, #e0f7fa 0%, #b2ebf2 100%) !important;
  border-color: #4dd0e1 !important;
  color: #00838f !important;
}
.quick-date.quick-date--selected[data-range="prevMonth"] {
  background: linear-gradient(180deg, #fff8e1 0%, #ffecb3 100%) !important;
  border-color: #ffd54f !important;
  color: #f57f17 !important;
}
.quick-date.quick-date--selected:hover,
.quick-date.quick-date--selected:focus {
  filter: brightness(0.97);
}

/* 일별·통합리포트 — 선택 일자 행 레드 파스텔(하단 상세와 연결) */
.daily-master-row--selected > td,
.integrated-report-day-row--selected > td {
  background: linear-gradient(180deg, #ffebee 0%, #ffcdd2 100%) !important;
}
.daily-master-row--selected:hover > td,
.integrated-report-day-row--selected:hover > td {
  filter: brightness(0.98);
}
#contentsMain .daily-detail-toolbar .daily-detail-action-buttons {
  margin-left: auto;
}

/* 업체관리: 검색 영역 2~3줄 배치, 스크롤바 없음 */
.comp-mng-search-multiline .search-form-row {
  flex-wrap: wrap;
  overflow-x: visible;
  overflow-y: visible;
  gap: 8px 16px;
  align-items: flex-end;
}
.comp-mng-search-multiline .search-cell { margin-bottom: 4px; }
/* 업체관리: 라벨·입력창 고정 너비로 위아래 정렬 (입력창 30% 확대, 모든 입력 동일 사이즈) */
.comp-mng-search-multiline .search-cell--with-label {
  width: 268px;
  min-width: 268px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.comp-mng-search-multiline .search-cell--with-label .search-cell-label {
  width: 90px;
  min-width: 90px;
  flex-shrink: 0;
  text-align: right;
}
.comp-mng-search-multiline .search-cell-input {
  flex: 0 0 auto;
}
/* 업체관리: 검색 입력창 너비 통일 - 130px의 30% 확대(169px), 업체구분/대표자명/업체사용상태/휴대폰 등 모두 동일 */
.comp-mng-search-multiline .search-cell-input input.form-control-sm,
.comp-mng-search-multiline .search-cell-input select.form-control-sm {
  width: 169px !important;
  min-width: 169px !important;
  max-width: 169px !important;
}
/* 업체관리: 하위업체포함 + 검색 한 셀에 배치 */
.comp-mng-search-multiline .comp-mng-search-actions-wrap { gap: 8px 12px; }

/* 타블렛/모바일: 한 줄 유지, 가로 스크롤로 전체 표시 */
@media (max-width: 992px) {
  .screen-search-form:not(.comp-mng-search-multiline) .search-form-row { -webkit-overflow-scrolling: touch; }
}
@media (max-width: 768px) {
  .screen-search-form .search-cell--with-label .search-cell-label { min-width: 28px; font-size: var(--app-base-font-size); }
  /* 세로 줄바꿈 시에도 날짜 전체 표시(#contentsMain 규칙과 동일 계열) */
  .screen-search-form .search-date-input { min-width: 11.5rem !important; }
}

/* 알림 박스 (파스텔 톤): 오류 이월… ↔ 건수 줄 간격 (위·아래 동일, 전체 페이지 공통) */
.search-notice {
  background: #fff5f5;
  border: 1px solid #f5c6cb;
  color: #721c24;
  padding: 10px 14px 10px 36px;
  margin-top: 0;
  margin-bottom: 20px;
  font-size: var(--app-base-font-size);
  border-radius: 2px;
  position: relative;
}
.search-notice::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 12px;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='0 0 16 16'%3E%3Cpath d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'/%3E%3C/svg%3E") no-repeat;
}
.search-notice ul { margin: 0; padding-left: 18px; }
.summary-bar-wrap .summary-item { font-weight: 600; color: #2b5f8d; }
.summary-bar-wrap .summary-item#summary_건수,
.summary-bar-wrap .summary-item[data-pg-summary-key="건수"] { color: #4a148c; font-weight: 700; }

/* 총합(요약) 한 줄: 위·아래 동일 간격 (전체 페이지 공통) */
.screen-summary-action-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 20px;
  margin-bottom: 20px;
  min-height: 40px;
}
/* 총합 영역 — 연한 파랑 바 + 건수만 보라(가맹점정산내역과 동일). 결제·정산 특화 색은 화면별 오버라이드 */
.summary-total-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  background: #f8fbff;
  border: 1px solid #d7e8fb;
  color: #1a3a52;
  padding: 8px 14px;
  border-radius: 6px;
  font-size: var(--app-base-font-size);
  font-weight: 600;
}
.summary-total-bar .summary-total-item {
  white-space: nowrap;
  color: #2b5f8d;
  font-weight: 600;
}
/* 건수만 보라 톤 (예: 건수: 65) */
.summary-total-bar .summary-total-item#summary_건수,
.summary-total-bar .summary-total-item[data-pg-summary-key="건수"],
.summary-total-bar .summary-count-item,
.summary-total-bar .summary-count,
.summary-count-item.daily-detail-count,
.daily-detail-toolbar-start .daily-detail-count.summary-count-item,
#contentsMain [data-summary="건수"] {
  color: #4a148c;
  font-weight: 700;
}
.comp-mng-sort-label { display: inline; font-weight: 500; margin: 0; }
.comp-mng-sort-select { display: inline-block; width: auto; min-width: 90px; }
/* 액션 버튼은 항상 오른쪽 (요약 있든 없든, 목록/폼/정산실행 동일) */
.screen-summary-action-row .screen-action-buttons {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin-left: auto;
}
.screen-summary-action-row .screen-action-buttons .btn { margin: 0; }
/* 목록 정렬(내림·오름차순): 전역 .btn-sm 과 동일 — 별도 축소 금지(액션줄 높이 통일) */
.screen-list-sort-dir-menu .screen-list-sort-dir-btn {
  white-space: nowrap;
}
/* 목록 액션줄: 헬로는 VIEW SETTING 영역용 10px가 아니라 동일 행 버튼과 같은 크기 */
#contentsMain .screen-summary-action-row .screen-action-buttons .btn-view-setting-hello {
  font-size: var(--app-form-sm-font-size) !important;
}
#contentsMain .screen-pay-list .screen-summary-action-row .screen-action-buttons .btn-view-setting-hello,
#contentsMain .screen-calc-gm-list .screen-summary-action-row .screen-action-buttons .btn-view-setting-hello,
#contentsMain .screen-calc-fee-list .screen-summary-action-row .screen-action-buttons .btn-view-setting-hello,
#contentsMain .screen-comp-mng-tree .screen-summary-action-row .screen-action-buttons .btn-view-setting-hello {
  font-size: var(--pay-mng-dense-font-size) !important;
}

/* 예전 구조 호환: .screen-action-row 사용처도 동일하게 오른쪽 정렬 */
.screen-action-row {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 10px;
}
.screen-action-row .screen-action-buttons,
.screen-action-buttons {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
}
.screen-action-buttons .btn { margin: 0; }

/* 액션 버튼: 등록(노랑), 엑셀다운로드(연파랑) */
#contentsMain .btn-warning { background: #f0ad4e; border-color: #eea236; color: #fff; }
#contentsMain .btn-warning:hover { background: #ec971f; border-color: #d58512; color: #fff; }
#contentsMain .btn-info { background: #5bc0de; border-color: #46b8da; color: #fff; }
#contentsMain .btn-info:hover { background: #31b0d5; border-color: #269abc; color: #fff; }
#contentsMain .btn-primary { background: #337ab7; border-color: #2e6da4; }
#contentsMain .btn-primary:hover { background: #286090; border-color: #204d74; }
#contentsMain .btn-danger { background: #c00; border-color: #a00; }
#contentsMain .btn-danger:hover { background: #a00; border-color: #800; }
#contentsMain .btn,
.tab-pane.tabConDiv .btn,
.modal-body .btn {
  font-size: var(--app-base-font-size);
}
#contentsMain .btn-sm,
.tab-pane.tabConDiv .btn-sm,
.modal-body .btn-sm {
  font-size: var(--app-form-sm-font-size);
}

/* 요약 바 (연파랑) */
.summary-bar { background: #d9edf7; border: 1px solid #bce8f1; padding: 8px 14px; margin-bottom: 10px; font-size: var(--app-base-font-size); border-radius: 2px; }
.summary-bar label { margin: 0 12px 0 0; font-weight: 500; color: #31708f; }

/* 테이블: 제목·내용 상하좌우 가운데 정렬 (모든 테이블 공통 규칙, Bootstrap text-start/text-end 덮어씀) */
#contentsMain .table { font-size: var(--app-table-font-size); }
.tab-pane.tabConDiv .table,
.modal-body .table {
  font-size: var(--app-table-font-size);
}
#contentsMain .table thead th,
#contentsMain .table tbody td {
  text-align: center !important;
  vertical-align: middle !important;
}
/* 모달 내 목록 테이블(상위업체 검색 등) — #contentsMain 밖 */
.modal-body .table thead th,
.modal-body .table tbody td {
  text-align: center !important;
  vertical-align: middle !important;
}
/* 셀 내부에 text-start/text-end 를 둔 블록(엔드포인트 요약 등)도 값은 가운데 */
#contentsMain .table tbody td .text-start,
#contentsMain .table tbody td .text-end,
.tab-pane.tabConDiv .table tbody td .text-start,
.tab-pane.tabConDiv .table tbody td .text-end,
.modal-body .table tbody td .text-start,
.modal-body .table tbody td .text-end {
  text-align: center !important;
}
#contentsMain .card { border: 1px solid #ddd; border-radius: 2px; }
#contentsMain .card-body { padding: 16px 20px; }
#contentsMain .table thead th { background: #d9edf7; border: 1px solid #bce8f1; font-weight: 600; color: #31708f; padding: 8px 10px; }
#contentsMain .table td { padding: var(--table-row-padding-y) 10px; border-color: #ddd; }

/* 결제로직설정 — 결제구문 블록·표가 카드 본문 너비를 꽉 채움(열 리사이즈 스크립트 미적용 표는 table-no-col-resize) */
#contentsMain .comp-reg-form .hq-pay-card-copy-mount,
.tab-pane.tabConDiv .comp-reg-form .hq-pay-card-copy-mount {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
/* 결제로직설정 — 결제구문 목록: 줄바꿈·단어 줄림, 가로 스크롤 없이 영역 안에 맞춤 */
#contentsMain .hq-pay-card-copy-mount .hq-pay-card-copy-grid-wrap,
.tab-pane.tabConDiv .hq-pay-card-copy-mount .hq-pay-card-copy-grid-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: visible;
}
#contentsMain .hq-pay-card-copy-mount table.hq-pay-card-copy-grid,
.tab-pane.tabConDiv .hq-pay-card-copy-mount table.hq-pay-card-copy-grid {
  table-layout: fixed;
  width: 100%;
}
#contentsMain .hq-pay-card-copy-mount table.hq-pay-card-copy-grid col.hq-pay-card-copy-col-pg,
.tab-pane.tabConDiv .hq-pay-card-copy-mount table.hq-pay-card-copy-grid col.hq-pay-card-copy-col-pg {
  width: 9.5rem;
}
#contentsMain .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > tbody > tr > td:first-child,
.tab-pane.tabConDiv .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > tbody > tr > td:first-child {
  word-break: break-all;
}
#contentsMain .hq-pay-card-copy-mount .hq-pay-card-copy-preview,
.tab-pane.tabConDiv .hq-pay-card-copy-mount .hq-pay-card-copy-preview {
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
  line-height: 1.35;
}
#contentsMain .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > thead > tr > th:nth-last-child(n+4),
.tab-pane.tabConDiv .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > thead > tr > th:nth-last-child(n+4) {
  text-align: left !important;
}
#contentsMain .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > tbody > tr > td,
.tab-pane.tabConDiv .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > tbody > tr > td {
  text-align: left !important;
  vertical-align: top !important;
}
#contentsMain .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > tbody > tr > td:nth-last-child(-n+3),
.tab-pane.tabConDiv .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > tbody > tr > td:nth-last-child(-n+3) {
  text-align: center !important;
  vertical-align: middle !important;
}
#contentsMain .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > thead > tr > th:nth-last-child(-n+3),
.tab-pane.tabConDiv .hq-pay-card-copy-mount table.hq-pay-card-copy-grid > thead > tr > th:nth-last-child(-n+3) {
  text-align: center !important;
  vertical-align: middle !important;
}

/* 과거 버전에서 삽입된 행 리사이즈 줄(점선) — 더 이상 생성하지 않음; 남아 있으면 숨김 */
#contentsMain .table-row-resize-handle { display: none !important; }
#contentsMain .table-bordered th { border-color: #bce8f1; }

/*
 * 데이터 테이블 공통 UI: 줄무늬(홀·짝 행 배경) + 행 사이 가로 구분선 제거
 * - org-perm-table 제외: 조직 권한 행은 NONE/OBSERVER 등 배경이 이미 있음
 * - 업체관리 트리(grid_comp_compMngTree)·결제내역(screen-pay-list) 등은 아래 더 구체 규칙이 덮어씀
 */
#contentsMain .table:not(.org-perm-table) > tbody > tr:nth-child(odd),
.tab-pane.tabConDiv .table:not(.org-perm-table) > tbody > tr:nth-child(odd),
.modal-body .table:not(.org-perm-table) > tbody > tr:nth-child(odd) {
  background-color: #fff;
}
#contentsMain .table:not(.org-perm-table) > tbody > tr:nth-child(even),
.tab-pane.tabConDiv .table:not(.org-perm-table) > tbody > tr:nth-child(even),
.modal-body .table:not(.org-perm-table) > tbody > tr:nth-child(even) {
  background-color: #eef6fc;
}
#contentsMain .table:not(.org-perm-table) > tbody > tr > td,
#contentsMain .table:not(.org-perm-table) > tbody > tr > th,
.tab-pane.tabConDiv .table:not(.org-perm-table) > tbody > tr > td,
.tab-pane.tabConDiv .table:not(.org-perm-table) > tbody > tr > th,
.modal-body .table:not(.org-perm-table) > tbody > tr > td,
.modal-body .table:not(.org-perm-table) > tbody > tr > th {
  border-top: none;
}
#contentsMain .table:not(.org-perm-table) tbody tr.table-active,
#contentsMain .table:not(.org-perm-table) tbody tr.table-active > td,
.tab-pane.tabConDiv .table:not(.org-perm-table) tbody tr.table-active,
.tab-pane.tabConDiv .table:not(.org-perm-table) tbody tr.table-active > td,
.modal-body .table:not(.org-perm-table) tbody tr.table-active,
.modal-body .table:not(.org-perm-table) tbody tr.table-active > td {
  background-color: #d6e9ff !important;
}
#contentsMain .table.table-hover:not(.org-perm-table) > tbody > tr:hover,
#contentsMain .table.table-hover:not(.org-perm-table) > tbody > tr:hover > td,
.tab-pane.tabConDiv .table.table-hover:not(.org-perm-table) > tbody > tr:hover,
.tab-pane.tabConDiv .table.table-hover:not(.org-perm-table) > tbody > tr:hover > td,
.modal-body .table.table-hover:not(.org-perm-table) > tbody > tr:hover,
.modal-body .table.table-hover:not(.org-perm-table) > tbody > tr:hover > td {
  background-color: #dfeaf5 !important;
}
#contentsMain .table.table-hover:not(.org-perm-table) > tbody > tr.table-active:hover,
#contentsMain .table.table-hover:not(.org-perm-table) > tbody > tr.table-active:hover > td {
  background-color: #d6e9ff !important;
}

/*
 * 본사권한설정(org-perm): tbody 첫 행이 colspan 그룹 헤더라 열 리사이즈가 1열로 오인 → 표 붕괴 방지.
 * (table-no-col-resize + table-no-col-resize-wrap 로 스크립트 제외, 과거 세션 잔여 fixed 대비)
 */
#contentsMain .org-perm-table.table-no-col-resize,
.tab-pane.tabConDiv .org-perm-table.table-no-col-resize {
  table-layout: auto !important;
  width: 100%;
  min-width: 100%;
}

/* 가맹점정산내역: 결제내역(screen-pay-list)과 동일 글자·한 줄 셀 + 가로 스크롤 */
#contentsMain .screen-calc-gm-list .summary-total-bar {
  background: #f8fbff;
  border: 1px solid #d7e8fb;
  color: #1a3a52;
  padding: 8px 12px;
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-gm-list [data-summary] {
  color: #2b5f8d;
  font-weight: 600;
}
#contentsMain .screen-calc-gm-list [data-summary="건수"],
#contentsMain .screen-calc-gm-list #summary_건수,
#contentsMain .screen-calc-gm-list [data-pg-summary-key="건수"] {
  color: #4a148c;
  font-weight: 700;
}
#contentsMain .screen-calc-gm-list .pay-mng-search-form .form-label,
#contentsMain .screen-calc-gm-list .pay-mng-search-form .form-control,
#contentsMain .screen-calc-gm-list .pay-mng-search-form .form-select,
#contentsMain .screen-calc-gm-list .screen-search-form.pay-mng-search-form .form-label,
#contentsMain .screen-calc-gm-list .screen-search-form.pay-mng-search-form .form-control,
#contentsMain .screen-calc-gm-list .screen-search-form.pay-mng-search-form .form-select {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-gm-list .search-notice,
#contentsMain .screen-calc-gm-list .search-notice li {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-gm-list .screen-action-buttons .btn {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-gm-list .pagination-row .pagination-label,
#contentsMain .screen-calc-gm-list .pagination-row .pagination-total,
#contentsMain .screen-calc-gm-list .pagination-row .pagination-size-opt,
#contentsMain .screen-calc-gm-list .pagination-row .pagination-num,
#contentsMain .screen-calc-gm-list .pagination-row .pagination-num--current,
#contentsMain .screen-calc-gm-list .pagination-row .pagination-block-nav {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-gm-list .quick-date {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-gm-list .table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
#contentsMain .screen-calc-gm-list .table-responsive > .table {
  width: max-content;
  min-width: 100%;
  table-layout: auto;
  margin-bottom: 0;
}
#contentsMain .screen-calc-gm-list .table thead tr:first-child th {
  background: #eaf4ff;
  color: #275a84;
  font-weight: 700;
  border-color: #cfe1f6;
  text-align: center;
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
}
#contentsMain .screen-calc-gm-list .table thead tr:nth-child(2) th {
  background: #f4f9ff;
  color: #34668f;
  border-color: #dbe8f7;
  text-align: center;
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
}
#contentsMain .screen-calc-gm-list .table thead th,
#contentsMain .screen-calc-gm-list .table tbody td {
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
  text-align: center !important;
}
/* 가맹점정산내역: 집계구간 거래 보조 분해 열(실행 저장값 amount·feeAmt·feeRate·feeVat·holdAmt·settleAmt 와 구분) */
#contentsMain .screen-calc-gm-list .table tbody td.pg-franchise-fee-aux {
  color: #6b7785 !important;
  font-weight: 400;
}
#contentsMain .screen-calc-gm-list .table .empty-state-cell {
  white-space: normal;
}
#contentsMain .screen-calc-gm-list .table th[data-key="compNm"] { min-width: 150px; }
#contentsMain .screen-calc-gm-list .table th[data-key="compId"] { min-width: 105px; }
#contentsMain .screen-calc-gm-list .table th[data-key="trnId"] { min-width: 200px; }
#contentsMain .screen-calc-gm-list .table th[data-key="perTxFeeAmt"],
#contentsMain .screen-calc-gm-list .table th[data-key="settlementPerTxFeeAmt"],
#contentsMain .screen-calc-gm-list .table th[data-key="extraFeesAmt"] { min-width: 88px; text-align: center !important; }
#contentsMain .screen-calc-gm-list .table th[data-key="bizType"] { min-width: 82px; }
#contentsMain .screen-calc-gm-list .table th[data-key="cardAprvNo"] { min-width: 120px; }
#contentsMain .screen-calc-gm-list .table th[data-key="terminalId"] { min-width: 110px; }
#contentsMain .screen-calc-gm-list .table th[data-key="amount"],
#contentsMain .screen-calc-gm-list .table th[data-key="feeAmt"],
#contentsMain .screen-calc-gm-list .table th[data-key="feeVat"],
#contentsMain .screen-calc-gm-list .table th[data-key="holdAmt"],
#contentsMain .screen-calc-gm-list .table th[data-key="settleAmt"] { min-width: 96px; text-align: center !important; }
#contentsMain .screen-calc-gm-list .table th[data-key="feeCnt"],
#contentsMain .screen-calc-gm-list .table th[data-key="feeRate"],
#contentsMain .screen-calc-gm-list .table th[data-key="holdRate"] { min-width: 78px; text-align: center !important; }
#contentsMain .screen-calc-gm-list .table th[data-key="calcDt"],
#contentsMain .screen-calc-gm-list .table th[data-key="approveDt"],
#contentsMain .screen-calc-gm-list .table th[data-key="cancelDt"] { min-width: 138px; }

/* 수수료내역: 가맹정산내역과 유사한 2단 헤더·가로 스크롤·밀도 (tbody는 text-end 등 유틸이 적용되도록 강제 가운데 정렬 제외) */
#contentsMain .screen-calc-fee-list .summary-total-bar {
  background: #f8fbff;
  border: 1px solid #d7e8fb;
  color: #1a3a52;
  padding: 8px 12px;
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-fee-list [data-summary] {
  color: #2b5f8d;
  font-weight: 600;
}
#contentsMain .screen-calc-fee-list [data-summary="건수"],
#contentsMain .screen-calc-fee-list #summary_건수,
#contentsMain .screen-calc-fee-list [data-pg-summary-key="건수"] {
  color: #4a148c;
  font-weight: 700;
}

/* 정산·통보·사용자·운영·API연동 등: 요약 바 톤 = 가맹점정산내역(연한 파랑 + 건수만 보라) */
#contentsMain .screen-settlement-summary-bar .summary-total-bar,
#contentsMain .screen-distribution-list .summary-total-bar {
  background: #f8fbff;
  border: 1px solid #d7e8fb;
  color: #1a3a52;
  padding: 8px 12px;
  font-size: var(--pay-mng-dense-font-size);
  font-weight: 600;
}
#contentsMain .screen-settlement-summary-bar .summary-total-item,
#contentsMain .screen-distribution-list .summary-total-item {
  color: #2b5f8d;
  font-weight: 600;
}
#contentsMain .screen-settlement-summary-bar .summary-total-item#summary_건수,
#contentsMain .screen-settlement-summary-bar .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-settlement-summary-bar .summary-count-item,
#contentsMain .screen-distribution-list .summary-total-item#summary_건수,
#contentsMain .screen-distribution-list .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-distribution-list .summary-count-item {
  color: #4a148c;
  font-weight: 700;
}

#contentsMain .screen-calc-fee-list .pay-mng-search-form .form-label,
#contentsMain .screen-calc-fee-list .pay-mng-search-form .form-control,
#contentsMain .screen-calc-fee-list .pay-mng-search-form .form-select,
#contentsMain .screen-calc-fee-list .screen-search-form.pay-mng-search-form .form-label,
#contentsMain .screen-calc-fee-list .screen-search-form.pay-mng-search-form .form-control,
#contentsMain .screen-calc-fee-list .screen-search-form.pay-mng-search-form .form-select {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-fee-list .search-notice,
#contentsMain .screen-calc-fee-list .search-notice li {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-fee-list .screen-action-buttons .btn {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-fee-list .pagination-row .pagination-label,
#contentsMain .screen-calc-fee-list .pagination-row .pagination-total,
#contentsMain .screen-calc-fee-list .pagination-row .pagination-size-opt,
#contentsMain .screen-calc-fee-list .pagination-row .pagination-num,
#contentsMain .screen-calc-fee-list .pagination-row .pagination-num--current,
#contentsMain .screen-calc-fee-list .pagination-row .pagination-block-nav {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-calc-fee-list .table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
/* 수수료내역: table-scrollable 공통(60vh·세로 overflow)보다 우선 — 한 페이지(25·50 등) 행이 잘리지 않고 내부 세로 스크롤 없음. 가로만 유지 */
#contentsMain .screen-calc-fee-list .table-responsive.table-scrollable {
  max-height: none;
  overflow-y: visible;
  overflow-x: auto;
}
#contentsMain .screen-calc-fee-list .table-responsive > .table {
  width: max-content;
  min-width: 100%;
  table-layout: auto;
  margin-bottom: 0;
}
#contentsMain .screen-calc-fee-list .table thead tr:first-child th {
  background: #eaf4ff;
  color: #275a84;
  font-weight: 700;
  border-color: #cfe1f6;
  text-align: center;
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
}
#contentsMain .screen-calc-fee-list .table thead tr:nth-child(2) th {
  background: #f4f9ff;
  color: #34668f;
  border-color: #dbe8f7;
  text-align: center;
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
}
#contentsMain .screen-calc-fee-list .table thead th {
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
}
#contentsMain .screen-calc-fee-list .table tbody td {
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
}
#contentsMain .screen-calc-fee-list .table .empty-state-cell {
  white-space: normal;
}
#contentsMain .screen-calc-fee-list .table th[data-key="compNm"] { min-width: 150px; }
#contentsMain .screen-calc-fee-list .table th[data-key="trnId"] { min-width: 200px; }
#contentsMain .screen-calc-fee-list .table th[data-key="amount"],
#contentsMain .screen-calc-fee-list .table th[data-key="expectedPayout"],
#contentsMain .screen-calc-fee-list .table th[data-key="settlementAmt"],
#contentsMain .screen-calc-fee-list .table th[data-key="totalFee"],
#contentsMain .screen-calc-fee-list .table th[data-key="feeVat"] { min-width: 96px; }

/* 결제내역(통합·파생): 테이블 헤더는 연한 블루, 상단 요약 바는 연한 블루 톤 */
.summary-total-bar--pay-list-aggregate {
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  line-height: 1.45;
  font-size: var(--pay-mng-dense-font-size, 12px);
}
.summary-total-bar--pay-list-aggregate .pay-list-aggregate-inline-sep {
  color: #94a3b8;
  opacity: 0.75;
  font-weight: 400;
  margin: 0 2px;
}
.summary-total-bar--pay-list-aggregate .pay-list-financial-summary,
.summary-total-bar--pay-list-aggregate .pay-list-status-bar {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  line-height: inherit;
  font-size: inherit;
  text-align: left;
}
.summary-total-bar--pay-list-aggregate .pay-list-financial-summary__inner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
  padding: 0;
  margin: 0;
}
.summary-total-bar--pay-list-aggregate .pay-list-status-bar__pill {
  padding: 3px 8px;
  border-radius: 8px;
}
.daily-detail-toolbar-start .daily-detail-financial-summary {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  min-width: 0;
  font-size: var(--pay-mng-dense-font-size, 12px);
  line-height: 1.45;
  font-weight: 600;
  color: #1a3a52;
}
.daily-detail-toolbar-start .daily-detail-financial-summary--empty {
  display: none;
}
.daily-detail-toolbar-start .daily-detail-financial-sep {
  color: #94a3b8;
  font-weight: 400;
}
.daily-detail-toolbar-start .daily-detail-count-sep {
  color: #94a3b8;
  font-weight: 400;
}
.daily-detail-toolbar-start .daily-detail-count {
  color: #4a148c;
  font-weight: 700;
  font-size: var(--pay-mng-dense-font-size, 12px);
  white-space: nowrap;
}
#contentsMain tr.verify-report-day-row--mismatch {
  background-color: rgba(255, 243, 224, 0.85);
}
#contentsMain tr.verify-report-day-row--mismatch td {
  border-color: rgba(255, 183, 77, 0.45);
}
#contentsMain tr.verify-report-mismatch-row {
  background-color: rgba(255, 235, 238, 0.75);
}
#contentsMain .verify-report-day-row--mismatch.daily-master-row--selected,
#contentsMain tr.verify-report-day-row.daily-master-row--selected {
  outline: 2px solid rgba(156, 39, 176, 0.45);
  outline-offset: -2px;
}
.daily-detail-toolbar-start .pay-list-financial-summary__inner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
}
/* 결제관리·통합·일별·ChillPay: 요약 바 연한 블루 (건수 텍스트만 보라) */
.screen-pay-list .summary-total-bar,
#contentsMain .screen-daily-integrated .summary-total-bar,
#contentsMain .screen-daily-pay .summary-total-bar,
#contentsMain .screen-daily-fee .summary-total-bar,
#contentsMain .screen-chill-pay-tr-list .summary-total-bar,
#contentsMain .screen-chill-pay-settlement-list .summary-total-bar,
#contentsMain .screen-ops-integrated-report .summary-total-bar,
#contentsMain .screen-ops-verify-report .summary-total-bar {
  background: #f8fbff;
  border: 1px solid #cde6f3;
  color: #1a3a52;
  font-weight: 600;
}
.screen-pay-list .summary-total-item#summary_건수,
.screen-pay-list .summary-total-item[data-pg-summary-key="건수"],
.screen-pay-list .summary-count-item,
#contentsMain .screen-daily-integrated .summary-total-item#summary_건수,
#contentsMain .screen-daily-integrated .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-daily-pay .summary-total-item#summary_건수,
#contentsMain .screen-daily-pay .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-daily-fee .summary-total-item#summary_건수,
#contentsMain .screen-daily-fee .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-chill-pay-tr-list .summary-total-item#summary_건수,
#contentsMain .screen-chill-pay-tr-list .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-chill-pay-settlement-list .summary-total-item#summary_건수,
#contentsMain .screen-chill-pay-settlement-list .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-ops-integrated-report .summary-total-item#summary_건수,
#contentsMain .screen-ops-integrated-report .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-ops-integrated-report .summary-count-item,
#contentsMain .screen-ops-verify-report .summary-total-item#summary_건수,
#contentsMain .screen-ops-verify-report .summary-total-item[data-pg-summary-key="건수"],
#contentsMain .screen-ops-verify-report .summary-count-item {
  color: #4a148c;
  font-weight: 700;
}
.screen-pay-list .summary-total-item#summary_승인금액 { color: #198754; }
.screen-pay-list .summary-total-item#summary_취소금액 { color: #dc3545; }
.screen-pay-list .summary-total-item#summary_결제금액,
.screen-pay-list .summary-total-item#summary_총수수료,
.screen-pay-list .summary-total-item#summary_보류금액,
.screen-pay-list .summary-total-item#summary_지급액 { color: #0d6efd; }
/* 건수 ↔ VIEW SETTING 사이: 상태·통화별 집계 — 좌측 정렬·상태별 색 pill (NOTI 참고 UI) */
.pay-list-status-bar {
  padding: 10px 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  line-height: 1.45;
  font-size: var(--pay-mng-dense-font-size, 12px);
  text-align: left;
}
.pay-list-status-bar--empty { display: none; }
/* 결제관리 상단: summary-total-bar(건수+금액 한 줄) + 아래 상태 pill */
.pay-list-aggregate-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  line-height: 1.45;
  font-size: var(--pay-mng-dense-font-size, 12px);
}
.pay-list-aggregate-section {
  width: 100%;
}
.pay-list-aggregate-section--financial:has(.pay-list-financial-summary--empty) {
  display: none;
}
.pay-list-aggregate-section--status:has(.pay-list-status-bar--empty) {
  display: none;
}
.pay-list-aggregate-section--financial:not(:has(.pay-list-financial-summary--empty)) {
  padding-bottom: 10px;
  border-bottom: 1px solid #e2e8f0;
}
.pay-list-aggregate-stack .pay-list-aggregate-row--financial:not(.pay-list-financial-summary--empty) {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}
.pay-list-aggregate-stack .pay-list-status-bar {
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  border-radius: 0;
}
.pay-list-aggregate-stack .pay-list-status-bar__pill {
  padding: 4px 10px;
  border-radius: 8px;
}
/* 통합·결제내역: 검색 전체 집계 한 줄(통화별) — 상태바 위 */
.pay-list-financial-summary {
  line-height: 1.5;
  font-size: var(--pay-mng-dense-font-size, 12px);
  text-align: left;
}
.pay-list-financial-summary--empty { display: none; }
.pay-list-financial-summary__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
  justify-content: flex-start;
}
/* 첫 집계 줄 첫 글자 ↔ 아래 행 첫 상태 pill 텍스트 세로 라인 정렬 */
.pay-list-aggregate-stack .pay-list-financial-summary__inner {
  padding-left: 10px;
}
.pay-list-financial__metric { white-space: nowrap; }
.pay-list-financial__lbl { font-weight: 700; color: #1e293b; }
.pay-list-financial__cur { font-weight: 600; color: #0f172a; }
.pay-list-status-bar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  text-align: left;
}
.pay-list-status-bar__inner--inline {
  flex-direction: row;
  align-items: center;
  gap: 6px 8px;
}
.pay-list-status-bar__inner--inline > .pay-list-status-bar__pill {
  width: auto;
  max-width: none;
  white-space: nowrap;
}
/* 레거시 2행 그리드(일별 상세 등) — 상단 요약바는 --inline 사용 */
.pay-list-status-bar__inner--grid {
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}
.pay-list-status-bar__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 12px;
  align-items: stretch;
}
.pay-list-status-bar__row > .pay-list-status-bar__pill {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  white-space: normal;
}
.pay-list-aggregate-stack .pay-list-status-bar__inner--grid {
  padding-left: 10px;
}
.pay-list-status-bar__note-row {
  margin-top: 2px;
}
.pay-list-status-bar__pill {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 4px;
  padding: 7px 14px;
  border-radius: 10px;
  font-weight: 600;
  white-space: nowrap;
  max-width: 100%;
  border: 1px solid transparent;
  box-sizing: border-box;
}
.pay-list-status-bar__pill--success {
  background: #d1fae5;
  color: #047857;
  border-color: #a7f3d0;
}
.pay-list-status-bar__pill--fail {
  background: #fee2e2;
  color: #b91c1c;
  border-color: #fecaca;
}
.pay-list-status-bar__pill--void {
  background: #ffedd5;
  color: #c2410c;
  border-color: #fed7aa;
}
.pay-list-status-bar__pill--email-void {
  background: #fce7f3;
  color: #9d174d;
  border-color: #fbcfe8;
}
/* 환불(블루)·기타(앰버)·취소(그레이) 톤 구분 */
.pay-list-status-bar__pill--refund {
  background: #dbeafe;
  color: #1e40af;
  border-color: #bfdbfe;
}
.pay-list-status-bar__pill--force-refund {
  background: #ede9fe;
  color: #5b21b6;
  border-color: #c4b5fd;
}
/* 취소: 어두운 파스텔 그레이(행 바탕·연한 그레이와 구분) */
.pay-list-status-bar__pill--cancel {
  background: #d4dce6;
  color: #3d4d5c;
  border: 1px solid #9aa8b8;
}
/* 기타: 취소에 쓰이던 앰버 톤(환불·무효·실패와 구분) */
.pay-list-status-bar__pill--other {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fbbf24;
}
.pay-list-status-bar__lbl { font-weight: 700; }
.pay-list-status-bar__amt { font-weight: 600; }
.pay-list-status-bar__sep {
  opacity: 0.55;
  padding: 0 3px;
  font-weight: 500;
}
.pay-list-status-bar__pipe {
  color: #94a3b8;
  font-weight: 400;
  padding: 0 4px;
  user-select: none;
}
.pay-list-status-bar__note {
  display: inline-block;
  margin-left: 4px;
  align-self: center;
}
.pay-list-status-bar__dash {
  color: #94a3b8;
  font-weight: 500;
}
/* tab-pane.screen-pay-list 는 #contentsMain 내부에 있음(자손 선택자) */
/* JP/TH 이중 시각(줄바꿈) — nowrap 해제·행 높이 */
.pay-grid-time-dual {
  white-space: normal !important;
  line-height: 1.35;
  vertical-align: top;
}
.pay-grid-time-line--jp {
  color: #0d6efd;
  font-weight: 600;
}
.pay-grid-time-line--th {
  color: #1e293b;
  font-weight: 500;
}
.pay-grid-time-line--line1 {
  color: #0d6efd;
  font-weight: 600;
}
.pay-grid-time-line--line2 {
  color: #1e293b;
  font-weight: 500;
}

#contentsMain .screen-pay-list .table thead tr:first-child th {
  background: #eaf4ff;
  color: #275a84;
  font-weight: 700;
  border-color: #cfe1f6;
  text-align: center;
}
#contentsMain .screen-pay-list .table thead tr:nth-child(2) th {
  background: #f4f9ff;
  color: #34668f;
  border-color: #dbe8f7;
  text-align: center;
}
#contentsMain .screen-pay-list .table tbody tr:nth-child(odd),
#contentsMain .screen-calc-fee-list .table tbody tr:nth-child(odd) { background: #fff; }
#contentsMain .screen-pay-list .table tbody tr:nth-child(even),
#contentsMain .screen-calc-fee-list .table tbody tr:nth-child(even) { background: #eef6fc; }

/* 결제내역·통합내역·수수료내역 — NOTI 종합거래와 동일 톤: 행 배경 + Status 뱃지 */
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--success,
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--success:nth-child(odd),
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--success:nth-child(even),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--success,
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--success:nth-child(odd),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--success:nth-child(even) {
  background: #e6f7ec !important;
}
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--cancel,
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--cancel:nth-child(odd),
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--cancel:nth-child(even),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--cancel,
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--cancel:nth-child(odd),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--cancel:nth-child(even) {
  background: linear-gradient(90deg, rgba(148, 163, 184, 0.35) 0, rgba(212, 220, 230, 0.55) 12px, #e8edf3 100%) !important;
}
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--void,
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--void:nth-child(odd),
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--void:nth-child(even),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--void,
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--void:nth-child(odd),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--void:nth-child(even) {
  background: linear-gradient(90deg, rgba(251, 191, 36, 0.42) 0, rgba(255, 237, 213, 0.95) 14px, #fff7ed 100%) !important;
}
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--refund,
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--refund:nth-child(odd),
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--refund:nth-child(even),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--refund,
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--refund:nth-child(odd),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--refund:nth-child(even) {
  background: #e8f1fc !important;
}
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--fail,
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--fail:nth-child(odd),
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--fail:nth-child(even),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--fail,
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--fail:nth-child(odd),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--fail:nth-child(even) {
  background: #fdecef !important;
}
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--pending,
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--pending:nth-child(odd),
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--pending:nth-child(even),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--pending,
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--pending:nth-child(odd),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--pending:nth-child(even) {
  background: #f5f7fa !important;
}
/* 기타(인증대기 등): 상단 집계 OTHER·pill--other와 동일 앰버 톤 */
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--other,
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--other:nth-child(odd),
#contentsMain .screen-pay-list .table tbody tr.pay-row-tone--other:nth-child(even),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--other,
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--other:nth-child(odd),
#contentsMain .screen-calc-fee-list .table tbody tr.pay-row-tone--other:nth-child(even) {
  background: linear-gradient(90deg, rgba(251, 191, 36, 0.38) 0, rgba(254, 243, 199, 0.92) 14px, #fffbeb 100%) !important;
}

/* 일별통합·일별결제·일별수수료·통합 리포트 — 일자 클릭 상세(결제내역과 동일 파스텔 행) */
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--success,
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--success:nth-child(odd),
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--success:nth-child(even) {
  background: #e6f7ec !important;
}
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--cancel,
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--cancel:nth-child(odd),
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--cancel:nth-child(even) {
  background: linear-gradient(90deg, rgba(148, 163, 184, 0.35) 0, rgba(212, 220, 230, 0.55) 12px, #e8edf3 100%) !important;
}
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--void,
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--void:nth-child(odd),
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--void:nth-child(even) {
  background: linear-gradient(90deg, rgba(251, 191, 36, 0.42) 0, rgba(255, 237, 213, 0.95) 14px, #fff7ed 100%) !important;
}
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--refund,
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--refund:nth-child(odd),
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--refund:nth-child(even) {
  background: #e8f1fc !important;
}
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--fail,
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--fail:nth-child(odd),
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--fail:nth-child(even) {
  background: #fdecef !important;
}
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--pending,
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--pending:nth-child(odd),
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--pending:nth-child(even) {
  background: #f5f7fa !important;
}
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--other,
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--other:nth-child(odd),
#contentsMain table.pay-grid-detail-pastel tbody tr.pay-row-tone--other:nth-child(even) {
  background: linear-gradient(90deg, rgba(251, 191, 36, 0.38) 0, rgba(254, 243, 199, 0.92) 14px, #fffbeb 100%) !important;
}

.pay-grid-status-badge {
  display: inline-block;
  padding: 0.12em 0.55em;
  border-radius: 999px;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
}
.pay-grid-status-badge--success {
  background: #2ea44f;
  color: #fff;
}
.pay-grid-status-badge--cancel {
  background: #c5ced9;
  color: #2f3b48;
  border: 1px solid #a3afbd;
}
.pay-grid-status-badge--void {
  background: #f59e0b;
  color: #111827;
}
.pay-grid-status-badge--refund {
  background: #3b82f6;
  color: #fff;
}
.pay-grid-status-badge--fail {
  background: #ef4444;
  color: #fff;
}
.pay-grid-status-badge--pending {
  background: #94a3b8;
  color: #fff;
}
.pay-grid-status-badge--other {
  background: #fbbf24;
  color: #78350f;
  border: 1px solid #d97706;
}
.pay-grid-status-badge--neutral {
  background: #e5e7eb;
  color: #374151;
}

/* 고밀도 한 줄 셀 + 하단 가로 스크롤(NOTI 종합거래·노티거래내역 유사) */
#contentsMain .screen-pay-list .table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
#contentsMain .screen-pay-list .table-responsive > .table {
  width: max-content;
  min-width: 100%;
  table-layout: auto;
  margin-bottom: 0;
}
#contentsMain .screen-pay-list .table thead th,
#contentsMain .screen-pay-list .table tbody td {
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
  text-align: center !important;
}
#contentsMain .screen-pay-list .table .empty-state-cell {
  white-space: normal;
}

/* TAX 리포트: 페이지 하단 가로 스크롤바 제거 + 날짜 입력 폭 축소 */
#contentsMain .screen-tax-report .table-responsive {
  display: block;
  width: 100%;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
#contentsMain .screen-tax-report .table-responsive > .table {
  width: 100% !important;
  min-width: 100% !important;
  table-layout: fixed;
  margin-bottom: 0;
}
#contentsMain .screen-tax-report .table thead th,
#contentsMain .screen-tax-report .table tbody td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#contentsMain .screen-tax-report input[type="date"] {
  min-width: 10.5rem !important;
}

/* TAX 리포트: 그리드 셀 밀도(폭) 축소 → 가로 스크롤 방지 */
#contentsMain .screen-tax-report .table thead th,
#contentsMain .screen-tax-report .table tbody td {
  font-size: 11px;
  line-height: 1.2;
  padding: 3px 4px;
}
/* data-key로 주요 열 너비를 강제(standard grid thead는 th[data-key] 지원) */
#contentsMain .screen-tax-report .table thead th[data-key="rowNo"] { width: 44px; }
#contentsMain .screen-tax-report .table thead th[data-key="settlementRunId"] { width: 76px; }
#contentsMain .screen-tax-report .table thead th[data-key="calcDt"] { width: 86px; }
#contentsMain .screen-tax-report .table thead th[data-key="periodFrom"],
#contentsMain .screen-tax-report .table thead th[data-key="periodTo"] { width: 86px; }
#contentsMain .screen-tax-report .table thead th[data-key="compId"] { width: 86px; }
#contentsMain .screen-tax-report .table thead th[data-key="txnCnt"] { width: 66px; }
#contentsMain .screen-tax-report .table thead th[data-key="approveAmt"],
#contentsMain .screen-tax-report .table thead th[data-key="cancelAmt"],
#contentsMain .screen-tax-report .table thead th[data-key="netSales"],
#contentsMain .screen-tax-report .table thead th[data-key="totalFee"],
#contentsMain .screen-tax-report .table thead th[data-key="rollingReserveAmt"],
#contentsMain .screen-tax-report .table thead th[data-key="settlementBatchFee"],
#contentsMain .screen-tax-report .table thead th[data-key="payAmount"],
#contentsMain .screen-tax-report .table thead th[data-key="remittanceFeeBank"],
#contentsMain .screen-tax-report .table thead th[data-key="remittanceFeeUsdt"],
#contentsMain .screen-tax-report .table thead th[data-key="finalPayAfterRemittance"] { width: 98px; }
#contentsMain .screen-tax-report .table thead th[data-key="reportNote"] { width: 110px; }

/* TAX 리포트 상단(정산일) 날짜 입력칸: 폭 40% 축소(= 약 60% 폭) */
#contentsMain .screen-tax-report .screen-search-form .search-cell-input--daterange input[type="date"] {
  min-width: 6.5rem !important;
  width: 6.5rem !important;
  font-size: 11px;
  padding-left: 6px;
  padding-right: 6px;
}

/* 동일 화면: 검색폼·안내·VIEW·요약·버튼·페이지네이션 글자 크기 통일 */
#contentsMain .screen-pay-list .pay-mng-search-form .form-label,
#contentsMain .screen-pay-list .pay-mng-search-form .form-control,
#contentsMain .screen-pay-list .pay-mng-search-form .form-select,
#contentsMain .screen-pay-list .screen-search-form.pay-mng-search-form .form-label,
#contentsMain .screen-pay-list .screen-search-form.pay-mng-search-form .form-control,
#contentsMain .screen-pay-list .screen-search-form.pay-mng-search-form .form-select {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-pay-list .search-notice,
#contentsMain .screen-pay-list .search-notice li {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-pay-list .summary-total-bar,
#contentsMain .screen-pay-list .summary-total-item {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-pay-list .screen-action-buttons .btn {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-pay-list .pagination-row {
  position: relative;
  z-index: 2;
}
#contentsMain .screen-pay-list .pagination-row .pagination-label,
#contentsMain .screen-pay-list .pagination-row .pagination-total,
#contentsMain .screen-pay-list .pagination-row .pagination-size-opt,
#contentsMain .screen-pay-list .pagination-row .pagination-num,
#contentsMain .screen-pay-list .pagination-row .pagination-num--current,
#contentsMain .screen-pay-list .pagination-row .pagination-block-nav {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-pay-list .quick-date {
  font-size: var(--pay-mng-dense-font-size);
}

/* 업체관리(트리): 결제내역(screen-pay-list)과 동일 밀도 글자 크기 */
#contentsMain .screen-comp-mng-tree .table thead th,
#contentsMain .screen-comp-mng-tree .table tbody td {
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 4px 8px;
  vertical-align: middle !important;
}
#contentsMain .screen-comp-mng-tree .comp-mng-search-multiline .form-label,
#contentsMain .screen-comp-mng-tree .comp-mng-search-multiline .form-control,
#contentsMain .screen-comp-mng-tree .comp-mng-search-multiline .form-select,
#contentsMain .screen-comp-mng-tree .screen-search-form.comp-mng-search-multiline .form-label,
#contentsMain .screen-comp-mng-tree .screen-search-form.comp-mng-search-multiline .form-control,
#contentsMain .screen-comp-mng-tree .screen-search-form.comp-mng-search-multiline .form-select {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-comp-mng-tree .search-notice,
#contentsMain .screen-comp-mng-tree .search-notice li {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-comp-mng-tree .summary-total-bar,
#contentsMain .screen-comp-mng-tree .summary-total-item {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-comp-mng-tree .screen-action-buttons .btn {
  font-size: var(--pay-mng-dense-font-size);
}
#contentsMain .screen-comp-mng-tree .pagination-row .pagination-label,
#contentsMain .screen-comp-mng-tree .pagination-row .pagination-total,
#contentsMain .screen-comp-mng-tree .pagination-row .pagination-size-opt,
#contentsMain .screen-comp-mng-tree .pagination-row .pagination-num,
#contentsMain .screen-comp-mng-tree .pagination-row .pagination-num--current {
  font-size: var(--pay-mng-dense-font-size);
}

#contentsMain .table-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* 업체관리 등: 가로·세로 스크롤로 모든 자료 한 화면에서 볼 수 있게 */
#contentsMain .table-responsive.table-scrollable {
  max-height: 60vh;
  overflow: auto;
  overflow-x: auto;
  overflow-y: auto;
}
#contentsMain .table { width: 100%; }

/* 전역: 데이터 테이블 열 너비 조절 (table-column-resize.js) */
table.table.pg-table-col-resize-enabled {
  table-layout: fixed;
}
/* 결제관리 통합·분류·통합내역·통합정산: 리사이즈 시 col 너비 적용을 위해 fixed(가로 스크롤은 유지) */
#contentsMain .screen-pay-list .table-responsive > .table.pay-mng-data-grid.pg-table-col-resize-enabled {
  table-layout: fixed;
  width: max-content;
  min-width: 100%;
}
/* 통합내역·통합정산: 다른 결제 그리드와 동일하게 가로 스크롤(열 압축 방지) */
#contentsMain .screen-chill-pay-tr-list .table-responsive,
#contentsMain .screen-chill-pay-settlement-list .table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
#contentsMain .screen-chill-pay-tr-list .table-responsive > .table.pay-mng-data-grid.pg-table-col-resize-enabled,
#contentsMain .screen-chill-pay-settlement-list .table-responsive > .table.pay-mng-data-grid.pg-table-col-resize-enabled {
  table-layout: fixed;
  width: max-content;
  min-width: 100%;
}
/* 가맹정산·수수료내역 등 동일 pay-mng 그리드: 리사이즈 활성 시 결제 그리드와 동일하게 fixed + 가로 스크롤 폭 유지 */
#contentsMain .screen-calc-gm-list .table-responsive > .table.pay-mng-data-grid.pg-table-col-resize-enabled,
#contentsMain .screen-calc-fee-list .table-responsive > .table.pay-mng-data-grid.pg-table-col-resize-enabled {
  table-layout: fixed;
  width: max-content;
  min-width: 100%;
}
#contentsMain table.table thead th.pg-th-has-resize,
.tab-pane.tabConDiv table.table thead th.pg-th-has-resize,
.modal-body table.table thead th.pg-th-has-resize {
  position: relative;
  overflow: visible;
}
.pg-col-resize-handle {
  position: absolute;
  top: 0;
  right: -4px;
  width: 16px;
  height: 100%;
  min-height: 1.5rem;
  cursor: col-resize;
  z-index: 12;
  user-select: none;
  touch-action: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.pg-col-resize-handle:hover,
table.table thead th.pg-th-has-resize:hover .pg-col-resize-handle {
  background: rgba(13, 110, 253, 0.22);
}
table.table thead th.pg-th-has-resize {
  padding-right: 10px;
}
colgroup.pg-col-resize-group col {
  min-width: 40px;
}

/* 데이터 없음 메시지: 항상 가운데 (공공사항, 업체정보조회, 업체관리 포함) */
#contentsMain .table-responsive .table { min-width: 100%; }
/* 업체관리 상단 그리드(.comp-mng-tree-grid): 리사이즈 적용 전 auto → 적용 후 fixed(table-column-resize.js) */
#contentsMain .table-responsive .table.comp-mng-tree-grid[id^="grid_comp_compMngTree"] {
  table-layout: auto;
  width: auto;
  min-width: 100%;
}
#contentsMain .table-responsive .table.comp-mng-tree-grid[id^="grid_comp_compMngTree"].pg-table-col-resize-enabled {
  table-layout: fixed;
  width: 100%;
}
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] th {
  white-space: nowrap;
  min-width: 0;
}
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  min-width: 0;
  vertical-align: middle;
}
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] .pg-comp-grid-clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  line-height: 1.35;
  max-width: 100%;
}
/* 업체코드 조직도 셀: td 는 표 셀로 유지, 내부 래퍼로 아이콘·펼침·코드 한 줄 정렬 */
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td.tree-comp-cell {
  text-align: left !important;
  vertical-align: middle;
}
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td.tree-comp-cell .tree-comp-cell-inner {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0;
  width: 100%;
  min-width: 0;
}
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td.tree-comp-cell .pg-comp-grid-clamp {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap !important;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  -webkit-box-orient: unset;
  text-align: left;
}
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] th:nth-child(1),
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td:nth-child(1) { min-width: 40px; width: 40px; }
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] th:nth-child(2),
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td:nth-child(2) { width: 48px; }
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] th:nth-child(4),
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td:nth-child(4),
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] th:nth-child(5),
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td:nth-child(5) { min-width: 0; }
/* 업체관리: 한 줄 흰색, 한 줄 파스텔 블루 교차 + 칸 구분선 제거 */
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] tbody tr:nth-child(odd) { background: #fff; }
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] tbody tr:nth-child(even) { background: #E6F7FF; }
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] td,
#contentsMain .table-responsive .table[id^="grid_comp_compMngTree"] th { border: none !important; }
/* 유통망정산내역: 3단 헤더(승인/취소·수수료 하위) — 좁은 칸도 한 줄로 보이게 */
.screen-distribution-list .screen-distribution-grid.table {
  table-layout: auto;
  min-width: 1280px;
  font-size: var(--app-table-font-size);
}
.screen-distribution-list .screen-distribution-grid.table.pg-table-col-resize-enabled {
  table-layout: fixed;
}
.screen-distribution-list .screen-distribution-grid thead th {
  vertical-align: middle;
}
.screen-distribution-list .screen-distribution-grid .dist-th-group {
  font-weight: 600;
}
.screen-distribution-list .screen-distribution-grid .dist-th-fee,
.screen-distribution-list .screen-distribution-grid .dist-th-fee-sub {
  white-space: nowrap;
  font-size: var(--app-table-font-size);
  padding-left: 4px;
  padding-right: 4px;
}

/* 본사설정 — 노티매핑 JSON 편집 */
#hqNotifyMappingForm textarea[name="mappingDefinitionJson"] {
  font-family: ui-monospace, Consolas, "Cascadia Code", monospace;
  font-size: var(--app-base-font-size);
  line-height: 1.35;
}

/* 노티매핑설정 — GUI 작업 표·단계 안내 */
.hq-notify-mapping-ui .hq-nm-intro {
  border-radius: 8px;
}
.hq-notify-mapping-ui .hq-nm-step-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  font-size: 0.75rem;
  font-weight: 700;
  color: #fff;
  background: #0d6efd;
}
.hq-notify-mapping-ui details.hq-nm-details-advanced > summary {
  cursor: pointer;
  list-style-position: outside;
}
.hq-notify-mapping-ui details.hq-nm-details-advanced > summary::-webkit-details-marker {
  display: none;
}
.hq-notify-mapping-ui details.hq-nm-details-advanced[open] > summary {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  margin-bottom: 0.75rem;
}
.hq-notify-mapping-ui #hqNmWizardCard .table thead th {
  font-size: var(--app-table-font-size);
  vertical-align: middle;
}

/* VIEW SETTING: 본문·제목·체크·버튼 글자 — 전역 10px */
#contentsMain .table-column-guide,
#contentsMain .table-column-guide .column-guide-title,
#contentsMain .table-column-guide .column-guide-label,
#contentsMain .table-column-guide .column-guide-item,
#contentsMain .table-column-guide .btn-xs {
  font-size: var(--view-setting-font-size);
}

/* 업체관리 VIEW SETTING: 1행 제목·액션, 2행 컬럼 체크(줄바꿈) — 결제내역과 동일 레이아웃 */
.table-column-guide { font-size: var(--view-setting-font-size); display: flex; flex-direction: column; align-items: stretch; justify-content: center; }
.table-column-guide .column-guide-row { margin-bottom: 4px; }
.table-column-guide .column-guide-row:last-child { margin-bottom: 0; }
.table-column-guide .column-guide-title { font-weight: 600; color: #495057; font-size: var(--view-setting-font-size); padding-left: 0; margin-bottom: 2px; }
.table-column-guide .column-guide-body { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 10px; width: 100%; }
.table-column-guide .column-guide-list {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 6px 10px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-top: 0;
}
/* 결제내역 등: VIEW SETTING 2행 — 1행 VIEW SETTING | 기본·해제·선택·저장, 2행 컬럼 체크 */
.table-column-guide.table-column-guide--two-row {
  gap: 8px;
}
.table-column-guide--two-row .column-guide-top--inline,
.table-column-guide.table-column-guide--inline-head > .column-guide-top--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  margin-bottom: 0;
}
.column-guide-inline-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  width: 100%;
}
.column-guide-vbar {
  color: #cbd5e1;
  font-weight: 300;
  font-size: var(--view-setting-font-size);
  line-height: 1;
  user-select: none;
}
.table-column-guide--two-row .column-guide-top--inline .column-guide-title,
.table-column-guide.table-column-guide--inline-head .column-guide-title {
  margin-bottom: 0;
  flex: 0 0 auto;
  min-width: auto;
  line-height: 1.35;
  font-size: var(--view-setting-font-size);
}
.table-column-guide--two-row .column-guide-actions--inline,
.table-column-guide.table-column-guide--inline-head .column-guide-actions--inline {
  flex: 0 1 auto;
  margin-left: 0 !important;
  display: inline-flex !important;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 4px !important;
  white-space: normal;
  flex-wrap: wrap;
}
.column-guide-actions--inline .btn.btn-xs {
  padding: 1px 6px !important;
  font-size: var(--view-setting-font-size) !important;
  min-height: 20px !important;
  min-width: 2rem !important;
}
/* 헬로: 안내(파스텔)·VIEW SETTING 공통 숨김 토글 — 새로고침·엑셀 사이(글자 크기 VIEW SETTING과 동일) */
.btn-view-setting-hello {
  background-color: #fecaca !important;
  border-color: #f87171 !important;
  color: #7f1d1d !important;
  font-weight: 600;
  font-size: var(--view-setting-font-size) !important;
}
.btn-view-setting-hello:hover {
  background-color: #fca5a5 !important;
  border-color: #ef4444 !important;
  color: #450a0a !important;
}
.btn-view-setting-hello.btn-view-setting-hello--restore {
  background-color: #e5e7eb !important;
  border-color: #d1d5db !important;
  color: #4b5563 !important;
}
.btn-view-setting-hello.btn-view-setting-hello--restore:hover {
  background-color: #d1d5db !important;
  border-color: #9ca3af !important;
}
.table-column-guide--two-row .column-guide-checkboxes {
  width: 100%;
  margin-bottom: 0;
}
.table-column-guide--two-row .column-guide-checkboxes .column-guide-list {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  gap: 6px 12px;
  overflow-x: visible;
  overflow-y: visible;
  max-width: 100%;
}
.table-column-guide--two-row .column-guide-label {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  line-height: 1.35;
  font-size: var(--view-setting-font-size);
}
.table-column-guide .column-guide-actions {
  flex: 0 0 auto !important;
  margin-left: auto;
  width: auto;
  display: inline-flex !important;
  flex-direction: row;
  justify-content: flex-end !important;
  align-items: center;
  gap: 6px;
  white-space: nowrap !important;
}
.table-column-guide .column-guide-actions .btn {
  display: inline-block !important;
  width: auto !important;
  flex: 0 0 auto !important;
  min-width: 44px;
  white-space: nowrap !important;
  font-size: var(--view-setting-font-size) !important;
}
.table-column-guide .column-guide-item { margin: 0; font-weight: 500; cursor: pointer; white-space: normal; font-size: var(--view-setting-font-size); display: inline-flex; align-items: flex-start; max-width: 100%; }
.table-column-guide .column-guide-item input { margin-right: 3px; }
.table-column-guide .btn.btn-xs { font-size: var(--view-setting-font-size); padding: 2px 6px; width: 100%; min-height: 24px; }
/* 업체관리 트리: 데이터 셀도 가운데 정렬(통일 정책) */
.tree-toggle-cell { white-space: nowrap; }
.tree-comp-cell { white-space: nowrap; text-align: center !important; }
.tree-comp-cell .tree-icon {
  display: inline-block;
  vertical-align: middle;
  margin-right: 4px;
}
/* 업체관리 트리: 업체구분별 폴더·문서 아이콘 색 (HEADQUARTERS~MERCHANT) */
.tree-comp-cell .tree-icon.tree-org-HEADQUARTERS { color: #5e35b1; }
.tree-comp-cell .tree-icon.tree-org-REGIONAL { color: #1565c0; }
.tree-comp-cell .tree-icon.tree-org-MASTER_DIST { color: #2e7d32; }
.tree-comp-cell .tree-icon.tree-org-BRANCH { color: #e65100; }
.tree-comp-cell .tree-icon.tree-org-AGENCY { color: #f57f17; }
.tree-comp-cell .tree-icon.tree-org-SALES_OFFICE { color: #c2185b; }
.tree-comp-cell .tree-icon.tree-org-MERCHANT { color: #455a64; }
/* 가맹점: 상위 첫 조직 단계별 폴더·문서 아이콘 파스텔 (서버 merchantTreeFolderTone) */
.tree-comp-cell .tree-icon.tree-org-MERCHANT.tree-merch-folder--direct { color: #81c784; }
.tree-comp-cell .tree-icon.tree-org-MERCHANT.tree-merch-folder--branch { color: #ffb74d; }
.tree-comp-cell .tree-icon.tree-org-MERCHANT.tree-merch-folder--agency { color: #ffcc80; }
.tree-comp-cell .tree-icon.tree-org-MERCHANT.tree-merch-folder--sales { color: #f48fb1; }
.tree-comp-cell .tree-icon.tree-org-MERCHANT.tree-merch-folder--regional { color: #64b5f6; }
.tree-comp-cell .tree-icon.tree-org-MERCHANT.tree-merch-folder--headquarters { color: #ba68c8; }
.tree-comp-cell .tree-icon.tree-org-MERCHANT.tree-merch-folder--other { color: #b0bec5; }
.tree-comp-cell .tree-icon.tree-org-unknown { color: #757575; }
.tree-toggle {
  display: inline-block;
  width: 18px;
  cursor: pointer;
  font-size: 10px;
  line-height: 1;
  user-select: none;
  margin-right: 4px;
}
/* 트리 펼침(기본): 업체관리 외 등에서만 사용 시 녹색·회색 */
.tree-toggle.expanded { color: #198754; }
.tree-toggle.expanded:hover { color: #157347; }
.tree-toggle.collapsed { color: #6c757d; }
.tree-toggle.collapsed:hover { color: #495057; }
/* 업체관리: 폴더와 동일 톤 — 펼침·접힘(삼각) 모두 해당 구분 색 계열 */
.tree-comp-cell .tree-toggle.tree-org-HEADQUARTERS.expanded { color: #5e35b1; }
.tree-comp-cell .tree-toggle.tree-org-HEADQUARTERS.expanded:hover { color: #4527a0; }
.tree-comp-cell .tree-toggle.tree-org-HEADQUARTERS.collapsed { color: rgba(94, 53, 177, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-HEADQUARTERS.collapsed:hover { color: rgba(94, 53, 177, 0.85); }
.tree-comp-cell .tree-toggle.tree-org-REGIONAL.expanded { color: #1565c0; }
.tree-comp-cell .tree-toggle.tree-org-REGIONAL.expanded:hover { color: #0d47a1; }
.tree-comp-cell .tree-toggle.tree-org-REGIONAL.collapsed { color: rgba(21, 101, 192, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-REGIONAL.collapsed:hover { color: rgba(21, 101, 192, 0.88); }
.tree-comp-cell .tree-toggle.tree-org-MASTER_DIST.expanded { color: #2e7d32; }
.tree-comp-cell .tree-toggle.tree-org-MASTER_DIST.expanded:hover { color: #1b5e20; }
.tree-comp-cell .tree-toggle.tree-org-MASTER_DIST.collapsed { color: rgba(46, 125, 50, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-MASTER_DIST.collapsed:hover { color: rgba(46, 125, 50, 0.88); }
.tree-comp-cell .tree-toggle.tree-org-BRANCH.expanded { color: #e65100; }
.tree-comp-cell .tree-toggle.tree-org-BRANCH.expanded:hover { color: #bf360c; }
.tree-comp-cell .tree-toggle.tree-org-BRANCH.collapsed { color: rgba(230, 81, 0, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-BRANCH.collapsed:hover { color: rgba(230, 81, 0, 0.88); }
.tree-comp-cell .tree-toggle.tree-org-AGENCY.expanded { color: #f57f17; }
.tree-comp-cell .tree-toggle.tree-org-AGENCY.expanded:hover { color: #e65100; }
.tree-comp-cell .tree-toggle.tree-org-AGENCY.collapsed { color: rgba(245, 127, 23, 0.58); }
.tree-comp-cell .tree-toggle.tree-org-AGENCY.collapsed:hover { color: rgba(245, 127, 23, 0.9); }
.tree-comp-cell .tree-toggle.tree-org-SALES_OFFICE.expanded { color: #c2185b; }
.tree-comp-cell .tree-toggle.tree-org-SALES_OFFICE.expanded:hover { color: #880e4f; }
.tree-comp-cell .tree-toggle.tree-org-SALES_OFFICE.collapsed { color: rgba(194, 24, 91, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-SALES_OFFICE.collapsed:hover { color: rgba(194, 24, 91, 0.88); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.expanded { color: #455a64; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.expanded:hover { color: #263238; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.collapsed { color: rgba(69, 90, 100, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.collapsed:hover { color: rgba(69, 90, 100, 0.88); }
/* 가맹점 + 소속 톤: 펼침 삼각색을 아이콘과 동일 계열로 */
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--direct.expanded,
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--direct.expanded:hover { color: #66bb6a; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--direct.collapsed { color: rgba(102, 187, 106, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--direct.collapsed:hover { color: rgba(102, 187, 106, 0.9); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--branch.expanded,
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--branch.expanded:hover { color: #ffa726; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--branch.collapsed { color: rgba(255, 167, 38, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--branch.collapsed:hover { color: rgba(255, 167, 38, 0.92); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--agency.expanded,
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--agency.expanded:hover { color: #ffb74d; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--agency.collapsed { color: rgba(255, 183, 77, 0.58); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--agency.collapsed:hover { color: rgba(255, 183, 77, 0.92); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--sales.expanded,
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--sales.expanded:hover { color: #ec407a; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--sales.collapsed { color: rgba(236, 64, 122, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--sales.collapsed:hover { color: rgba(236, 64, 122, 0.9); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--regional.expanded,
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--regional.expanded:hover { color: #42a5f5; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--regional.collapsed { color: rgba(66, 165, 245, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--regional.collapsed:hover { color: rgba(66, 165, 245, 0.92); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--headquarters.expanded,
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--headquarters.expanded:hover { color: #ab47bc; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--headquarters.collapsed { color: rgba(171, 71, 188, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--headquarters.collapsed:hover { color: rgba(171, 71, 188, 0.9); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--other.expanded,
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--other.expanded:hover { color: #90a4ae; }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--other.collapsed { color: rgba(144, 164, 174, 0.55); }
.tree-comp-cell .tree-toggle.tree-org-MERCHANT.tree-merch-folder--other.collapsed:hover { color: rgba(144, 164, 174, 0.9); }
.tree-comp-cell .tree-toggle.tree-org-unknown.expanded,
.tree-comp-cell .tree-toggle.tree-org-unknown.collapsed { color: #757575; }
.tree-comp-cell .tree-toggle.tree-org-unknown.expanded:hover,
.tree-comp-cell .tree-toggle.tree-org-unknown.collapsed:hover { color: #424242; }
.tree-toggle-placeholder {
  display: inline-block;
  width: 18px;
  margin-right: 4px;
  visibility: hidden;
}
td.empty-state-cell {
  width: 100%;
  text-align: center !important;
  min-height: 200px;
  padding: 48px 20px !important;
  vertical-align: middle !important;
}

/* 페이지네이션: 한 번에 보기 + 페이지 번호, 파스텔 스카이블루 톤 */
.pagination-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 12px 16px;
  margin-top: 20px;
  padding: 14px 18px;
  border-radius: 6px;
  background: linear-gradient(180deg, #e8f4fc 0%, #f0f8ff 100%);
  border: 1px solid #bce8f1;
}
.pagination-row > input[type="hidden"] {
  display: none !important;
}
.pagination-view-at-once {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px 14px;
  flex-wrap: wrap;
  min-width: 0;
}
.pagination-label { font-size: var(--app-base-font-size); color: #31708f; font-weight: 500; }
.pagination-size-options { display: flex; align-items: center; gap: 4px; }
.pagination-size-opt {
  min-width: 32px;
  height: 24px;
  padding: 0 8px;
  border: 1px solid #bce8f1;
  background: #fff;
  color: #5a6c7d;
  font-size: var(--app-form-sm-font-size);
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s;
}
.pagination-size-opt:hover { background: #e8f4fc; border-color: #5bc0de; color: #31708f; }
.pagination-size-opt--active {
  background: #5bc0de;
  border-color: #46b8da;
  color: #fff;
  font-weight: 600;
}
.pagination-size-opt--active:hover { background: #46b8da; color: #fff; }
.pagination-total { font-size: var(--app-base-font-size); color: #31708f; }
.pagination-center {
  /* 전체 바 기준 가로 가운데(왼쪽 "한 번에 보기" 너비와 무관) */
  grid-column: 1 / -1;
  grid-row: 1;
  justify-self: center;
  align-self: center;
  width: max-content;
  max-width: 100%;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.pagination-center .pagination-pages {
  pointer-events: auto;
}
.pagination-row-save {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.pagination-pages { display: flex; align-items: center; justify-content: center; gap: 4px; flex-wrap: wrap; }
.pagination-num {
  min-width: 28px;
  height: 24px;
  padding: 0 6px;
  border: 1px solid #bce8f1;
  background: #fff;
  color: #31708f;
  font-size: 11px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.pagination-num:hover { background: #e8f4fc; border-color: #5bc0de; color: #2e6da4; }
.pagination-num--current {
  background: #337ab7;
  border-color: #2e6da4;
  color: #fff;
  font-weight: 600;
}
.pagination-num--current:hover { background: #286090; color: #fff; }
.pagination-num.pagination-block-nav {
  min-width: 28px;
  font-weight: 600;
  background: #eef6fc;
  border-color: #c5ddf0;
  color: #2e6da4;
}
.pagination-num.pagination-block-nav:hover {
  background: #dceef9;
  border-color: #5bc0de;
  color: #204d74;
}
.pagination-ellipsis {
  padding: 0 4px;
  color: #5a6c7d;
  font-size: var(--app-base-font-size);
  user-select: none;
}
#contentsMain .pagination { margin: 0; }
#contentsMain .pagination .page-link { font-size: var(--app-base-font-size); }

/* 각 페이지 하단 회사명 (목록/폼 공통) */
.page-footer {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e8e8e8;
  font-size: var(--app-base-font-size);
  color: #888;
  text-align: center;
}

/* 전역 푸터: 회사명은 각 페이지 하단으로 이동 후 유지 또는 제거용 */
.footer { flex-shrink: 0; background: #fff; padding: 8px 20px; border-top: 1px solid #e8e8e8; font-size: var(--app-base-font-size); color: #999; }
.dimmed { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); z-index: 9999; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.dimmed-icon { width: 3rem; height: 3rem; }
.dimmed-text { margin-top: 12px; font-weight: 600; color: #fff !important; }
#content-frame { display: block; width: 100%; height: 100%; min-height: 500px; border: 0; }

/* ========== 업체등록폼: 레이블 위·입력 아래·입력 간격 ========== */
.comp-reg-form .form-field-block {
  margin-bottom: 2rem;
}
.comp-reg-form .form-field-block .form-label {
  display: block;
  margin-bottom: 6px;
  white-space: nowrap;
  font-size: var(--app-base-font-size);
  font-weight: 500;
  color: #333;
}
/* 입력창+버튼 같은 줄 (상위 본사, 로그인ID 등): 입력창 우측확장, 버튼 오른쪽 정렬 */
.comp-reg-form .form-input-with-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
}
.comp-reg-form .form-input-with-btn .form-input-wrap {
  flex: 1;
  min-width: 0;
}
.comp-reg-form .form-input-with-btn .form-input-wrap .form-control,
.comp-reg-form .form-input-with-btn .form-input-wrap input,
.comp-reg-form .form-input-with-btn .form-input-wrap select {
  width: 100%;
}
.comp-reg-form .form-input-with-btn .btn {
  flex-shrink: 0;
  white-space: nowrap;
}
/* 보류율 설정, 수수료정책: 파스텔 스카이블루 */
#holdRateCard.card,
#commissionPolicyCard.card {
  background: linear-gradient(135deg, #e8f4fc 0%, #d4edff 100%);
  border-color: #b3d9f2;
}
/* 결제대행사 설정: 복수 추가 테이블 (가로 스크롤바 없음 — 카드 너비 안에 표시) */
.pg-binding-list-wrap {
  overflow-x: visible;
  max-width: 100%;
}
.pg-binding-table { font-size: var(--app-table-font-size); }
.pg-binding-table th, .pg-binding-table td { vertical-align: middle; }
/* 텍스트·숫자 입력만 최소 너비 — 체크·라디오는 정사각형 유지 */
.pg-binding-table input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.pg-binding-table select {
  min-width: 80px;
}
.pg-binding-table td:first-child {
  text-align: center;
  width: 2.75rem;
  max-width: 3.5rem;
}
.pg-binding-table input[type="checkbox"],
.pg-binding-table input[type="radio"] {
  min-width: 0 !important;
  width: 1.125rem !important;
  height: 1.125rem !important;
  max-width: 1.125rem;
  max-height: 1.125rem;
  aspect-ratio: 1;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

/* 결제대행사 설정: 운영(체크) 행만 파스텔 레드, 그 외 행은 그레이 */
.pg-binding-table tbody tr.pg-binding-row--operational > td {
  background: linear-gradient(180deg, #fff5f5 0%, #ffe4e8 100%) !important;
  border-top-color: #fecdd3 !important;
  border-bottom-color: #fecdd3 !important;
}
.pg-binding-table tbody tr.pg-binding-row--inactive > td {
  background-color: #eef0f3 !important;
  color: #5c6370;
}
.pg-binding-table tbody tr.pg-binding-row--inactive .form-control,
.pg-binding-table tbody tr.pg-binding-row--inactive .form-select {
  background-color: #f8f9fa;
}
/* 운영 열 체크(복수 가능): accent만 행별로 구분(크기는 위 공통 정사각형) */
.pg-binding-table tbody tr.pg-binding-row--operational input[type="checkbox"][name="pgOperational"] {
  accent-color: #e85d75;
  cursor: pointer;
}
.pg-binding-table tbody tr.pg-binding-row--inactive input[type="checkbox"][name="pgOperational"] {
  accent-color: #94a3b8;
  cursor: pointer;
}

/* 본사 API연동설정: 운영 체크(사용 Y) 행만 파스텔 레드 */
.table tbody tr.hq-pg-row-operational > td {
  background: linear-gradient(180deg, #fff5f5 0%, #ffe4e8 100%);
  border-top-color: #fecdd3;
  border-bottom-color: #fecdd3;
}
.table tbody tr.hq-pg-row-inactive > td {
  background-color: #eef0f3;
  color: #5c6370;
}
/* 본사 API연동설정·기타 표: 운영 체크 정사각형(고정 레이아웃 열에서 늘어남 방지) */
.hq-pg-api-mng-table .hq-pg-operational-cb,
.table tbody tr.hq-pg-row-operational .hq-pg-operational-cb,
.table tbody tr.hq-pg-row-inactive .hq-pg-operational-cb {
  min-width: 0 !important;
  width: 1.125rem !important;
  height: 1.125rem !important;
  max-width: 1.125rem;
  max-height: 1.125rem;
  aspect-ratio: 1;
  box-sizing: border-box;
  cursor: pointer;
  vertical-align: middle;
}
.table tbody tr.hq-pg-row-operational .hq-pg-operational-cb {
  accent-color: #e85d75;
}
.table tbody tr.hq-pg-row-inactive .hq-pg-operational-cb:not(:disabled) {
  accent-color: #94a3b8;
}

/* ========== 브랜딩 테마 (본사/총판) ========== */
/* DEFAULT: 현재 색톤 */
body.theme-default { --theme-bg: #f5f6f8; --theme-text: #333; --theme-sidebar-bg: #2c3138; --theme-sidebar-text: #a6b0bf; }
/* LIGHT: 흰배경/검정글씨 */
body.theme-light { --theme-bg: #fff; --theme-text: #000; --theme-sidebar-bg: #f8f9fa; --theme-sidebar-text: #212529; --theme-topbar-bg: #ffffff; --theme-tab-row-bg: #f4f4f4; --theme-tab-item-bg: #f4f4f4; --theme-tab-active-bg: #e9e9e9; --theme-menu-hover-bg: #eceff3; --theme-menu-active-bg: #e6e6e6; --theme-border-soft: #d9dde3; }
body.theme-light .left-side-menu { background: var(--theme-sidebar-bg); color: var(--theme-sidebar-text); }
body.theme-light .content-page { background: var(--theme-bg); color: var(--theme-text); }
/* GRAY: 라이트·다크 중간의 차분하고 안정적인 톤 */
body.theme-gray { --theme-bg: #eef1f4; --theme-text: #1f2933; --theme-sidebar-bg: #5a6470; --theme-sidebar-text: #f3f5f7; --theme-topbar-bg: #dbe1e8; --theme-tab-row-bg: #c8d0da; --theme-tab-item-bg: #c8d0da; --theme-tab-active-bg: #b3becb; --theme-menu-hover-bg: #6b7683; --theme-menu-active-bg: #7a8796; --theme-border-soft: #9aa5b3; }
body.theme-gray .left-side-menu { background: var(--theme-sidebar-bg); color: var(--theme-sidebar-text); }
body.theme-gray .content-page { background: var(--theme-bg); color: var(--theme-text); }
body.theme-gray .content-body,
body.theme-gray .content-inner,
body.theme-gray .header-top-info,
body.theme-gray .header-user-link,
body.theme-gray .header-user-link {
  color: var(--theme-text) !important;
}
body.theme-gray .side-nav-link,
body.theme-gray .child-li a,
body.theme-gray .menu-arrow {
  color: #f8fafc !important;
}
body.theme-gray .header-top {
  background: var(--theme-topbar-bg) !important;
  border-bottom-color: var(--theme-border-soft) !important;
}
body.theme-gray .content-tab-row {
  background: var(--theme-tab-row-bg) !important;
  border-bottom-color: var(--theme-border-soft) !important;
}
body.theme-gray .content-tabs .nav-item.copyTopTab {
  background: var(--theme-tab-item-bg) !important;
  border-right-color: var(--theme-border-soft) !important;
}
body.theme-gray .content-tabs .nav-item.copyTopTab .tab-a {
  color: #1f2933 !important;
}
body.theme-gray .content-tabs .nav-item.copyTopTab .tab-a.active {
  background: var(--theme-tab-active-bg) !important;
  color: #111827 !important;
}
body.theme-gray .side-nav-link:hover,
body.theme-gray .child-li a:hover {
  background: var(--theme-menu-hover-bg) !important;
  color: #ffffff !important;
}
body.theme-gray .side-nav-item.mm-active > .side-nav-link,
body.theme-gray .child-li.mm-active a {
  background: var(--theme-menu-active-bg) !important;
  color: #ffffff !important;
  border-left-color: #d8dee6 !important;
}
/* BROWN: #4a4a4a 기반의 다크 톤 통일 */
body.theme-brown { --theme-bg: #f4f4f4; --theme-text: #1f1f1f; --theme-sidebar-bg: #4a4a4a; --theme-sidebar-text: #f3f3f3; --theme-topbar-bg: #4a4a4a; --theme-tab-row-bg: #4a4a4a; --theme-tab-item-bg: #4a4a4a; --theme-tab-active-bg: #5a5a5a; --theme-menu-hover-bg: #555555; --theme-menu-active-bg: #606060; --theme-border-soft: #6b6b6b; }
body.theme-brown .left-side-menu { background: var(--theme-sidebar-bg); color: var(--theme-sidebar-text); }
body.theme-brown .content-page { background: var(--theme-bg); color: var(--theme-text); }
body.theme-brown .header-top {
  background: var(--theme-topbar-bg) !important;
  border-bottom-color: var(--theme-border-soft) !important;
}
body.theme-brown .content-tab-row {
  background: var(--theme-tab-row-bg) !important;
  border-bottom-color: var(--theme-border-soft) !important;
}
body.theme-brown .content-tabs .nav-item.copyTopTab {
  background: var(--theme-tab-item-bg) !important;
  border-right-color: var(--theme-border-soft) !important;
}
body.theme-brown .content-tabs .nav-item.copyTopTab .tab-a,
body.theme-brown .side-nav-link,
body.theme-brown .child-li a,
body.theme-brown .header-top-info,
body.theme-brown .header-user-link,
body.theme-brown .menu-arrow {
  color: #f8f4ef !important;
}
body.theme-brown .content-tabs .nav-item.copyTopTab .tab-a.active {
  background: var(--theme-tab-active-bg) !important;
  color: #ffffff !important;
}
body.theme-brown .side-nav-link:hover,
body.theme-brown .child-li a:hover {
  background: var(--theme-menu-hover-bg) !important;
  color: #ffffff !important;
}
body.theme-brown .side-nav-item.mm-active > .side-nav-link,
body.theme-brown .child-li.mm-active a {
  background: var(--theme-menu-active-bg) !important;
  color: #ffffff !important;
  border-left-color: #d9d9d9 !important;
}
body.theme-brown .menuFoldDiv {
  background: var(--theme-sidebar-bg) !important;
  border-bottom-color: var(--theme-border-soft) !important;
}
body.theme-brown .left-side-menu .btn-secondary {
  background: var(--theme-menu-active-bg) !important;
  border-color: var(--theme-border-soft) !important;
  color: #ffffff !important;
}
body.theme-brown .left-side-menu .btn-secondary:hover {
  background: var(--theme-menu-hover-bg) !important;
  color: #ffffff !important;
}
/* LIGHT 공통: 흰 배경 + 검은 글씨로 고정색 영역까지 통일 */
body.theme-light .header {
  background: #ffffff !important;
}
body.theme-light .content-tabs {
  background: #f4f4f4 !important;
}
body.theme-light .content-tabs .nav-item.copyTopTab .tab-a {
  color: #111 !important;
}
body.theme-light .content-tabs .nav-item.copyTopTab .tab-a.active {
  background: #e9e9e9 !important;
  color: #000 !important;
}
body.theme-light .content-body,
body.theme-light .content-inner,
body.theme-light .header-top-info,
body.theme-light .header-user-link,
body.theme-light .side-nav-link,
body.theme-light .child-li a {
  color: #111 !important;
}
body.theme-light .side-nav-item.mm-active > .side-nav-link {
  background: #e6e6e6 !important;
  color: #000 !important;
  border-left-color: #000 !important;
}
/* DARK: 어두운배경/흰글씨 */
body.theme-dark { --theme-bg: #1a1d21; --theme-text: #fff; --theme-sidebar-bg: #0d0f11; --theme-sidebar-text: #e9ecef; }
body.theme-dark .left-side-menu { background: var(--theme-sidebar-bg); color: var(--theme-sidebar-text); }
body.theme-dark .content-page { background: var(--theme-bg); color: var(--theme-text); }
body.theme-dark .content-body { background: var(--theme-bg); }
/* 파스텔 1~5 */
body.theme-pastel_1 { --theme-bg: #faf4f6; --theme-text: #20242b; --theme-sidebar-bg: #e7d6dd; --theme-sidebar-text: #1f2933; --theme-topbar-bg: #efe1e6; --theme-tab-row-bg: #e5d5dc; --theme-tab-item-bg: #e5d5dc; --theme-tab-active-bg: #d9c3cc; --theme-menu-hover-bg: #d8c0ca; --theme-menu-active-bg: #ccb2bd; --theme-border-soft: #c3aab5; }
body.theme-pastel_2 { --theme-bg: #f3f7f4; --theme-text: #1e2a24; --theme-sidebar-bg: #d2dfd6; --theme-sidebar-text: #1e2a24; --theme-topbar-bg: #dfe9e2; --theme-tab-row-bg: #d3e0d8; --theme-tab-item-bg: #d3e0d8; --theme-tab-active-bg: #c5d5cb; --theme-menu-hover-bg: #bfcec4; --theme-menu-active-bg: #b1c3b8; --theme-border-soft: #a3b8ac; }
body.theme-pastel_3 { --theme-bg: #f3f6fa; --theme-text: #1f2a36; --theme-sidebar-bg: #d2dce9; --theme-sidebar-text: #1f2a36; --theme-topbar-bg: #dfe6ef; --theme-tab-row-bg: #d2dce8; --theme-tab-item-bg: #d2dce8; --theme-tab-active-bg: #c2cedd; --theme-menu-hover-bg: #bcc8d8; --theme-menu-active-bg: #adbccf; --theme-border-soft: #9eaec2; }
body.theme-pastel_4 { --theme-bg: #f5f3f8; --theme-text: #262132; --theme-sidebar-bg: #ddd6e7; --theme-sidebar-text: #262132; --theme-topbar-bg: #e7e1ef; --theme-tab-row-bg: #dad2e6; --theme-tab-item-bg: #dad2e6; --theme-tab-active-bg: #ccc2dc; --theme-menu-hover-bg: #c5bbd6; --theme-menu-active-bg: #b8adc9; --theme-border-soft: #aa9fc0; }
body.theme-pastel_5 { --theme-bg: #f8f5ee; --theme-text: #2d2a22; --theme-sidebar-bg: #e5dccb; --theme-sidebar-text: #2d2a22; --theme-topbar-bg: #eee6d8; --theme-tab-row-bg: #e2d8c6; --theme-tab-item-bg: #e2d8c6; --theme-tab-active-bg: #d5c8b1; --theme-menu-hover-bg: #d0c1a8; --theme-menu-active-bg: #c2b399; --theme-border-soft: #b4a58c; }
body.theme-pastel_1 .left-side-menu, body.theme-pastel_2 .left-side-menu, body.theme-pastel_3 .left-side-menu,
body.theme-pastel_4 .left-side-menu, body.theme-pastel_5 .left-side-menu {
  background: var(--theme-sidebar-bg); color: var(--theme-sidebar-text);
}
body.theme-pastel_1 .content-page, body.theme-pastel_2 .content-page, body.theme-pastel_3 .content-page,
body.theme-pastel_4 .content-page, body.theme-pastel_5 .content-page {
  background: var(--theme-bg); color: var(--theme-text);
}
/* 파스텔 공통: 글자 검정 + 상단/탭/메뉴의 고정 어두운 톤 제거 */
body.theme-pastel_1 .header, body.theme-pastel_2 .header, body.theme-pastel_3 .header, body.theme-pastel_4 .header, body.theme-pastel_5 .header,
body.theme-pastel_1 .content-tabs, body.theme-pastel_2 .content-tabs, body.theme-pastel_3 .content-tabs, body.theme-pastel_4 .content-tabs, body.theme-pastel_5 .content-tabs,
body.theme-pastel_1 .content-body, body.theme-pastel_2 .content-body, body.theme-pastel_3 .content-body, body.theme-pastel_4 .content-body, body.theme-pastel_5 .content-body,
body.theme-pastel_1 .content-inner, body.theme-pastel_2 .content-inner, body.theme-pastel_3 .content-inner, body.theme-pastel_4 .content-inner, body.theme-pastel_5 .content-inner {
  color: var(--theme-text) !important;
}
body.theme-pastel_1 .header, body.theme-pastel_2 .header, body.theme-pastel_3 .header, body.theme-pastel_4 .header, body.theme-pastel_5 .header {
  background: var(--theme-topbar-bg) !important;
}
body.theme-pastel_1 .content-tabs, body.theme-pastel_2 .content-tabs, body.theme-pastel_3 .content-tabs, body.theme-pastel_4 .content-tabs, body.theme-pastel_5 .content-tabs {
  background: var(--theme-tab-bg) !important;
}
body.theme-pastel_1 .content-tabs .nav-item.copyTopTab .tab-a, body.theme-pastel_2 .content-tabs .nav-item.copyTopTab .tab-a,
body.theme-pastel_3 .content-tabs .nav-item.copyTopTab .tab-a, body.theme-pastel_4 .content-tabs .nav-item.copyTopTab .tab-a,
body.theme-pastel_5 .content-tabs .nav-item.copyTopTab .tab-a {
  color: var(--theme-text) !important;
}
body.theme-pastel_1 .content-tabs .nav-item.copyTopTab .tab-a.active, body.theme-pastel_2 .content-tabs .nav-item.copyTopTab .tab-a.active,
body.theme-pastel_3 .content-tabs .nav-item.copyTopTab .tab-a.active, body.theme-pastel_4 .content-tabs .nav-item.copyTopTab .tab-a.active,
body.theme-pastel_5 .content-tabs .nav-item.copyTopTab .tab-a.active {
  background: var(--theme-tab-active-bg) !important;
  color: #000 !important;
}
body.theme-pastel_1 .side-nav-link, body.theme-pastel_2 .side-nav-link, body.theme-pastel_3 .side-nav-link,
body.theme-pastel_4 .side-nav-link, body.theme-pastel_5 .side-nav-link,
body.theme-pastel_1 .child-li a, body.theme-pastel_2 .child-li a, body.theme-pastel_3 .child-li a,
body.theme-pastel_4 .child-li a, body.theme-pastel_5 .child-li a,
body.theme-pastel_1 .header-top-info, body.theme-pastel_2 .header-top-info, body.theme-pastel_3 .header-top-info,
body.theme-pastel_4 .header-top-info, body.theme-pastel_5 .header-top-info,
body.theme-pastel_1 .header-user-link, body.theme-pastel_2 .header-user-link, body.theme-pastel_3 .header-user-link,
body.theme-pastel_4 .header-user-link, body.theme-pastel_5 .header-user-link {
  color: #000 !important;
}
body.theme-pastel_1 .side-nav-item.mm-active > .side-nav-link, body.theme-pastel_2 .side-nav-item.mm-active > .side-nav-link,
body.theme-pastel_3 .side-nav-item.mm-active > .side-nav-link, body.theme-pastel_4 .side-nav-item.mm-active > .side-nav-link,
body.theme-pastel_5 .side-nav-item.mm-active > .side-nav-link {
  background: var(--theme-active-bg) !important;
  color: #000 !important;
  border-left-color: #000 !important;
}
/* LIGHT + 파스텔: 좌측 메뉴/우측상단/탭바 색톤 통일 */
body.theme-light .header-top, body.theme-gray .header-top, body.theme-pastel_1 .header-top, body.theme-pastel_2 .header-top, body.theme-pastel_3 .header-top, body.theme-pastel_4 .header-top, body.theme-pastel_5 .header-top {
  background: var(--theme-topbar-bg) !important;
  border-bottom-color: var(--theme-border-soft) !important;
}
body.theme-light .content-tab-row, body.theme-gray .content-tab-row, body.theme-pastel_1 .content-tab-row, body.theme-pastel_2 .content-tab-row, body.theme-pastel_3 .content-tab-row, body.theme-pastel_4 .content-tab-row, body.theme-pastel_5 .content-tab-row {
  background: var(--theme-tab-row-bg) !important;
  border-bottom-color: var(--theme-border-soft) !important;
}
body.theme-light .content-tabs .nav-item.copyTopTab, body.theme-gray .content-tabs .nav-item.copyTopTab, body.theme-pastel_1 .content-tabs .nav-item.copyTopTab, body.theme-pastel_2 .content-tabs .nav-item.copyTopTab, body.theme-pastel_3 .content-tabs .nav-item.copyTopTab, body.theme-pastel_4 .content-tabs .nav-item.copyTopTab, body.theme-pastel_5 .content-tabs .nav-item.copyTopTab {
  background: var(--theme-tab-item-bg) !important;
  border-right-color: var(--theme-border-soft) !important;
}
body.theme-light .side-nav-link:hover, body.theme-gray .side-nav-link:hover, body.theme-pastel_1 .side-nav-link:hover, body.theme-pastel_2 .side-nav-link:hover, body.theme-pastel_3 .side-nav-link:hover, body.theme-pastel_4 .side-nav-link:hover, body.theme-pastel_5 .side-nav-link:hover,
body.theme-light .child-li a:hover, body.theme-gray .child-li a:hover, body.theme-pastel_1 .child-li a:hover, body.theme-pastel_2 .child-li a:hover, body.theme-pastel_3 .child-li a:hover, body.theme-pastel_4 .child-li a:hover, body.theme-pastel_5 .child-li a:hover {
  background: var(--theme-menu-hover-bg) !important;
  color: #000 !important;
}
body.theme-light .side-nav-item.mm-active > .side-nav-link, body.theme-gray .side-nav-item.mm-active > .side-nav-link, body.theme-pastel_1 .side-nav-item.mm-active > .side-nav-link, body.theme-pastel_2 .side-nav-item.mm-active > .side-nav-link, body.theme-pastel_3 .side-nav-item.mm-active > .side-nav-link, body.theme-pastel_4 .side-nav-item.mm-active > .side-nav-link, body.theme-pastel_5 .side-nav-item.mm-active > .side-nav-link,
body.theme-light .child-li.mm-active a, body.theme-gray .child-li.mm-active a, body.theme-pastel_1 .child-li.mm-active a, body.theme-pastel_2 .child-li.mm-active a, body.theme-pastel_3 .child-li.mm-active a, body.theme-pastel_4 .child-li.mm-active a, body.theme-pastel_5 .child-li.mm-active a {
  background: var(--theme-menu-active-bg) !important;
  color: #000 !important;
}
/* 좌측 접기 영역/버튼도 동일 톤 */
body.theme-light .menuFoldDiv, body.theme-gray .menuFoldDiv, body.theme-pastel_1 .menuFoldDiv, body.theme-pastel_2 .menuFoldDiv, body.theme-pastel_3 .menuFoldDiv, body.theme-pastel_4 .menuFoldDiv, body.theme-pastel_5 .menuFoldDiv {
  background: var(--theme-sidebar-bg) !important;
  border-bottom-color: var(--theme-border-soft) !important;
}
body.theme-light .left-side-menu .btn-secondary, body.theme-gray .left-side-menu .btn-secondary, body.theme-pastel_1 .left-side-menu .btn-secondary, body.theme-pastel_2 .left-side-menu .btn-secondary, body.theme-pastel_3 .left-side-menu .btn-secondary, body.theme-pastel_4 .left-side-menu .btn-secondary, body.theme-pastel_5 .left-side-menu .btn-secondary {
  background: var(--theme-menu-active-bg) !important;
  border-color: var(--theme-border-soft) !important;
  color: #000 !important;
}
body.theme-light .left-side-menu .btn-secondary:hover, body.theme-gray .left-side-menu .btn-secondary:hover, body.theme-pastel_1 .left-side-menu .btn-secondary:hover, body.theme-pastel_2 .left-side-menu .btn-secondary:hover, body.theme-pastel_3 .left-side-menu .btn-secondary:hover, body.theme-pastel_4 .left-side-menu .btn-secondary:hover, body.theme-pastel_5 .left-side-menu .btn-secondary:hover {
  background: var(--theme-menu-hover-bg) !important;
  color: #000 !important;
}

/* ========== 상위업체 검색 모달 ========== */
#parentCompSearchModal .modal-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
}
#parentCompSearchModal .modal-header .btn-close {
  position: absolute;
  right: 16px;
}
#parentCompSearchModal .modal-title {
  font-size: var(--app-base-font-size);
  font-weight: 600;
  text-align: center;
}
#parentCompSearchModal .modal-body {
  padding: 12px 20px 16px;
  text-align: center;
  font-size: var(--app-base-font-size);
}
#parentCompSearchModal .modal-body .row.mb-3 {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px !important;
}
#parentCompSearchModal .modal-body .row.mb-3 .col-md-8,
#parentCompSearchModal .modal-body .row.mb-3 .col-md-4 {
  display: flex;
  align-items: center;
  justify-content: center;
}
#parentCompSearchModal .modal-body .form-control {
  font-size: var(--app-base-font-size);
  text-align: center;
}
#parentCompSearchModal .modal-body .btn {
  font-size: var(--app-base-font-size);
  padding: 4px 12px;
}
#parentCompSearchModal .table {
  font-size: var(--app-table-font-size);
  margin-bottom: 10px;
}
#parentCompSearchModal .table th,
#parentCompSearchModal .table td {
  text-align: center;
  vertical-align: middle;
  padding: 6px 8px;
}
#parentCompSearchModal .table th {
  font-weight: 600;
  font-size: var(--app-table-font-size);
}
#parentCompSearchModal .table td .btn {
  font-size: var(--app-base-font-size);
  padding: 2px 8px;
}
#parentCompSearchModal .text-muted.small {
  font-size: var(--app-base-font-size);
  text-align: center;
  margin-bottom: 0;
}

/* 사용자관리: 권한그룹(본사설정과 동일 정책) 기준 구간 구분 — 참고 UI(거래목록 그룹) 스타일 */
.table tbody tr.tr-user-group-start td:first-child {
  box-shadow: inset 4px 0 0 #fd7e14;
}

/* 사용자관리: 전역 변수와 동일 스케일, 검색줄 입력·사용여부(select) 너비만 유지 */
.screen-user-mng .table,
.screen-user-mng .table thead th,
.screen-user-mng .table tbody td {
  font-size: var(--app-table-font-size);
}
.screen-user-mng .table .form-control-sm,
.screen-user-mng .table .form-select-sm {
  font-size: var(--app-form-sm-font-size);
}
.screen-user-mng .screen-search-form {
  font-size: var(--app-base-font-size);
}
.screen-user-mng .screen-search-form .search-cell-input input.form-control-sm,
.screen-user-mng .screen-search-form .search-cell-input select.form-control-sm {
  font-size: var(--app-base-font-size);
  width: 24ch !important;
  min-width: 24ch !important;
  max-width: none !important;
}
.screen-user-mng .summary-bar {
  font-size: var(--app-base-font-size);
}
.screen-user-mng .user-mng-draft-remove {
  font-size: var(--app-form-sm-font-size);
  line-height: 1.2;
  padding: 0.1rem 0.35rem;
}
.screen-user-mng .user-mng-otp-badge {
  font-size: var(--app-form-sm-font-size);
  line-height: 1.15;
  padding: 0.15rem 0.45rem;
  font-weight: 500;
}
.screen-user-mng .user-mng-pwd-menu-toggle {
  font-size: var(--app-form-sm-font-size);
  line-height: 1.2;
}
.screen-user-mng .user-mng-pwd-dropdown {
  font-size: var(--app-base-font-size);
  min-width: 7.5rem;
}
.screen-user-mng .user-mng-pwd-dropdown .dropdown-item {
  font-size: var(--app-base-font-size);
}
.column-guide-item { user-select: none; }
.column-guide-item { cursor: grab; }
.column-guide-item--dragging { opacity: 0.55; }
.column-guide-item .column-guide-label {
  font-weight: 600;
}
.column-guide-item--on .column-guide-label {
  color: #212529;
}
.column-guide-item--off .column-guide-label {
  color: #9aa0a6;
}

/* 본사설정 조직항목설정: VIEW SETTING과 동일 클래스명 — 글자 10px 통일(Bootstrap .small 무력화) */
#hqOrgAllowColumnChecks .column-guide-item,
#hqOrgAllowColumnChecks .column-guide-label,
#hqOrgAllowColumnChecks .column-guide-label.small,
.hq-org-allow-col-table .column-guide-item,
.hq-org-allow-col-table .column-guide-label,
.hq-org-allow-col-table .column-guide-label.small {
  font-size: var(--view-setting-font-size) !important;
}

/* 조직항목설정: 노출 열 목록 — 테이블(순위·항목·위아래) */
.hq-org-allow-col-wrap {
  padding: 0;
  overflow: hidden;
}
.hq-org-allow-col-scroll {
  max-height: 22rem;
  overflow: auto;
}
.hq-org-allow-col-table thead th {
  font-size: var(--view-setting-font-size);
  vertical-align: middle;
  white-space: nowrap;
}
.hq-org-allow-col-table tbody td {
  font-size: var(--view-setting-font-size);
  vertical-align: middle;
}
.hq-org-allow-col-table .hq-allow-col-rank {
  min-width: 1.75rem;
  font-variant-numeric: tabular-nums;
}
.hq-org-allow-col-table .hq-allow-col-move {
  line-height: 1.1;
  min-width: 2rem;
}
.hq-org-allow-col-table tbody tr.hq-allow-col-row:hover {
  background-color: rgba(var(--bs-primary-rgb), 0.04);
}

/* 수수료관리 2단 헤더: 기본 그리드. 메인·히스토리 래퍼(.commission-list-table-wrap)는 가로 스크롤 + 한 줄 표시 */
.commission-split-grid thead th {
  vertical-align: middle;
}
.commission-split-grid thead tr:first-child th {
  white-space: nowrap;
}
.commission-split-grid thead th[data-key$="Rate"],
.commission-split-grid thead th[data-key$="PerTxFee"] {
  white-space: nowrap;
  min-width: 3rem;
}
.commission-split-grid thead th[data-key$="Nm"] {
  white-space: nowrap;
  min-width: 4rem;
}

/* 수수료관리: 결제내역 그리드와 동일 글자 크기(전역 .table 상속) */
.commission-split-grid th,
.commission-split-grid td {
  font-size: inherit;
}

/* 수수료 변경 히스토리: 제목(th)·내용(td) 상하좌우 가운데 정렬 (테이블·폼 UI 규칙) */
.commission-history-card .commission-split-grid th,
.commission-history-card .commission-split-grid td {
  text-align: center;
  vertical-align: middle;
}

.commission-split-grid .form-control-sm {
  font-size: var(--app-table-font-size);
}

.commission-inline-cell {
  cursor: text;
  padding: 0.125rem 0.25rem !important;
  overflow: hidden;
}

.commission-inline-cell .commission-inline-input {
  display: block;
  width: 100% !important;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  margin: 0;
  padding: 0.1rem 0.2rem;
  height: calc(1.2em + 0.35rem + 2px);
}

/* 수수료관리·변경 히스토리: 가로 스크롤 허용, 셀·헤더 한 줄(줄바꿈 없음) */
#contentsMain .table-responsive.table-scrollable.commission-list-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}
#contentsMain .commission-list-table-wrap {
  overflow-x: auto;
  max-width: 100%;
}
#contentsMain .commission-list-table-wrap.table-scrollable {
  overflow-y: auto;
  overflow-x: auto;
}
#contentsMain .commission-list-table-wrap .commission-split-grid {
  table-layout: auto;
  width: max-content;
  min-width: 100%;
  max-width: none;
}
#contentsMain .commission-list-table-wrap .commission-split-grid thead tr:first-child th,
#contentsMain .commission-list-table-wrap .commission-split-grid thead tr:nth-child(2) th {
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  line-height: 1.2;
}
#contentsMain .commission-list-table-wrap .commission-split-grid thead th[data-key$="Rate"],
#contentsMain .commission-list-table-wrap .commission-split-grid thead th[data-key$="PerTxFee"] {
  padding-left: 0.1rem;
  padding-right: 0.1rem;
}
#contentsMain .commission-list-table-wrap .commission-split-grid thead th[data-key$="Nm"] {
  padding-left: 0.1rem;
  padding-right: 0.1rem;
}
#contentsMain .commission-list-table-wrap .commission-split-grid tbody td {
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  vertical-align: middle;
  padding-left: 0.12rem;
  padding-right: 0.12rem;
}
#contentsMain .commission-list-table-wrap .commission-split-grid td.commission-grid-wrapcell {
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  vertical-align: middle;
}
#contentsMain .commission-list-table-wrap .commission-split-grid td:has(.grid-row-check) {
  white-space: nowrap;
  width: 2.1rem;
  max-width: 2.75rem;
}
#contentsMain .commission-list-table-wrap .commission-split-grid td:has(button),
#contentsMain .commission-list-table-wrap .commission-split-grid td:has(input[type="date"]),
#contentsMain .commission-list-table-wrap .commission-split-grid td.commission-inline-cell {
  overflow: visible;
}
#contentsMain .commission-list-table-wrap .commission-split-grid td.commission-inline-cell {
  max-width: none;
}
#contentsMain .commission-list-table-wrap .commission-split-grid .commission-inline-cell .commission-inline-view {
  display: inline-block;
  max-width: none;
  white-space: nowrap;
  word-break: normal;
}
#contentsMain .commission-list-table-wrap .commission-split-grid td:has(button) .btn-sm {
  padding: 0.08rem 0.2rem;
  font-size: var(--app-table-font-size);
  line-height: 1.2;
}
#contentsMain .commission-list-table-wrap .commission-split-grid td:has(button) {
  white-space: nowrap;
  text-align: center;
}

/* 수수료설정 모달: 격자·입력 — 결제내역 테이블과 동일 글자 크기 */
#commissionSettingModal .modal-body .form-label {
  font-size: var(--app-table-font-size);
  margin-bottom: 0.2rem;
}
#commissionSettingModal .modal-body .form-control-sm,
#commissionSettingModal .modal-body .form-select-sm,
#commissionSettingModal .modal-body .form-control.form-control-sm {
  font-size: var(--app-table-font-size);
}

/* 본사(REGIONAL) 휴일 미니달력 */
.hq-holiday-mini-table td {
  padding: 2px !important;
  vertical-align: middle;
  min-width: 1.75rem;
}
.hq-holiday-day {
  min-height: 1.6rem;
  line-height: 1.2;
  font-size: var(--app-base-font-size);
  background: #f8f9fa;
  color: #212529;
}
.hq-holiday-day:hover {
  background: #e9ecef;
}
.hq-holiday-day--off {
  background: #d0d4da !important;
  color: #343a40 !important;
  font-weight: 600;
}
.hq-holiday-day--off:hover {
  background: #c2c8cf !important;
}
/* 영업일설정: 일자 구분별 색 (휴일 표시) */
.hq-holiday-day.hq-holiday-day--kind[data-holiday-kind="공휴일"] { background: #fecdd3 !important; color: #7f1d1d !important; font-weight: 600; }
.hq-holiday-day.hq-holiday-day--kind[data-holiday-kind="국경일"] { background: #fed7aa !important; color: #7c2d12 !important; font-weight: 600; }
.hq-holiday-day.hq-holiday-day--kind[data-holiday-kind="기념일"] { background: #bfdbfe !important; color: #1e3a5f !important; font-weight: 600; }
.hq-holiday-day.hq-holiday-day--kind[data-holiday-kind="종교휴일"] { background: #ddd6fe !important; color: #4c1d95 !important; font-weight: 600; }
.hq-holiday-day.hq-holiday-day--kind[data-holiday-kind="임시공휴일"] { background: #fef08a !important; color: #713f12 !important; font-weight: 600; }
.hq-holiday-day.hq-holiday-day--kind[data-holiday-kind="대체공휴일"] { background: #99f6e4 !important; color: #115e59 !important; font-weight: 600; }
.hq-holiday-ui-wrap .hq-holiday-calendar-grid {
  max-height: none;
}

/* 전산노티·결제환경 — 총판 노티: 노티 대상명 ↔ 아래 표 간격 축소 */
.comp-reg-form .hq-notify-new-target-name-col.form-field-block {
  margin-bottom: 0.5rem;
}
.comp-reg-form .hq-notify-target-table-wrap {
  margin-top: 0.2rem;
}

/* 전산노티·결제환경 — 총판 노티: 노티 대상명 입력·표 열 기본(120px) 대비 30% 확대 */
.comp-reg-form .hq-notify-new-target-name-col.col-sm-2 {
  flex: 0 0 calc(100% * 2 / 12 * 1.3);
  max-width: calc(100% * 2 / 12 * 1.3);
}
#hqNotifyTargetTable thead th.hq-notify-target-name-th {
  min-width: 156px;
}
#hqNotifyTargetTable thead th.hq-notify-created-th,
#hqNotifyTargetTable .hq-notify-created-cell {
  font-size: var(--app-table-font-size);
  white-space: nowrap;
}

/* 전산노티·결제환경 — 총판 노티 대상 테이블 */
#hqNotifyTargetTable .hq-notify-url-cell {
  font-size: var(--app-table-font-size);
  line-height: 1.45;
  vertical-align: middle;
}
#hqNotifyTargetTable .hq-notify-copy-cell {
  vertical-align: middle;
  white-space: nowrap;
}
#hqNotifyTargetTable .hq-notify-url-code {
  font-size: var(--app-table-font-size);
  word-break: break-all;
  background: transparent;
}
/* 노티 주소 글자색 — 성격과 동일 계열 */
#hqNotifyTargetTable .hq-notify-url-cell--callback .hq-notify-url-code {
  color: #087990;
  font-weight: 600;
}
#hqNotifyTargetTable .hq-notify-url-cell--result .hq-notify-url-code {
  color: #b45309;
  font-weight: 600;
}
#hqNotifyTargetTable .hq-notify-channel-cell {
  width: 132px;
  min-width: 132px;
  max-width: 132px;
  text-align: center;
  font-size: var(--app-table-font-size);
  font-weight: 600;
  white-space: nowrap;
  vertical-align: middle;
}
#hqNotifyTargetTable .hq-notify-channel-badge {
  display: inline-block;
  box-sizing: border-box;
  min-width: 7.25rem;
  width: 7.25rem;
  padding: 0.25rem 0.35rem;
  border-radius: 0.35rem;
  font-size: var(--app-table-font-size);
  font-weight: 700;
  letter-spacing: 0.02em;
  text-align: center;
}
/* CALLBACK: 서버 노티 — 청록 계열 */
#hqNotifyTargetTable .hq-notify-channel-cell--callback .hq-notify-channel-badge {
  background: #cff4fc;
  color: #055160;
  border: 1px solid #9eeaf9;
}
/* RESULT: 브라우저·리다이렉트 — 주황 계열 */
#hqNotifyTargetTable .hq-notify-channel-cell--result .hq-notify-channel-badge {
  background: #ffe5d0;
  color: #984c0c;
  border: 1px solid #ffc9a3;
}
#hqNotifyTargetTable th.hq-notify-channel-th {
  white-space: nowrap;
  width: 132px;
  min-width: 132px;
}

/* 업체등록·업체정보 — 총판: 노티 쌍 버튼을 URL 1·2(및 3·4)와 같은 행에 배치 */
.comp-reg-form .comp-notify-pair-url-row {
  margin-top: 0.15rem;
}
.comp-reg-form .comp-notify-pair-inline .comp-notify-pair-inline-label {
  font-size: 0.8125rem;
  color: #6c757d;
  margin-bottom: 0.35rem;
  font-weight: 600;
}
.comp-reg-form .comp-notify-pair-inline-btn {
  white-space: normal;
  line-height: 1.25;
  padding: 0.4rem 0.45rem;
  font-weight: 600;
}
.comp-reg-form .comp-notify-pair-inline-hint {
  line-height: 1.35;
  font-size: 0.75rem !important;
}

/* 노티 대상 선택 모달 — 선택 열 가운데 정렬, CALLBACK/RESULT 색 구분 */
#notifyTargetPickerModal .notify-picker-select-cell {
  text-align: center;
  vertical-align: middle !important;
  width: 104px;
}
#notifyTargetPickerModal .notify-picker-select-cell .btn {
  display: inline-block;
  vertical-align: middle;
}
#notifyTargetPickerModal .notify-target-picker-table thead th {
  vertical-align: middle;
}
#notifyTargetPickerModal .notify-target-picker-table thead th,
#notifyTargetPickerModal .notify-target-picker-table tbody td {
  font-size: var(--app-table-font-size);
}
#notifyTargetPickerModal .notify-picker-badge {
  display: inline-block;
  min-width: 6.5rem;
  padding: 0.25rem 0.4rem;
  border-radius: 0.35rem;
  font-size: var(--app-table-font-size);
  font-weight: 700;
  letter-spacing: 0.02em;
}
#notifyTargetPickerModal .notify-picker-badge--callback {
  background: #cff4fc;
  color: #055160;
  border: 1px solid #9eeaf9;
}
#notifyTargetPickerModal .notify-picker-badge--result {
  background: #ffe5d0;
  color: #984c0c;
  border: 1px solid #ffc9a3;
}
#notifyTargetPickerModal .notify-picker-channel-th-cb {
  color: #055160;
  font-weight: 600;
}
#notifyTargetPickerModal .notify-picker-channel-th-rs {
  color: #984c0c;
  font-weight: 600;
}
#notifyTargetPickerModal .notify-picker-url-cell--callback .notify-picker-url-code {
  color: #087990;
  font-weight: 600;
  word-break: break-all;
}
#notifyTargetPickerModal .notify-picker-url-cell--result .notify-picker-url-code {
  color: #b45309;
  font-weight: 600;
  word-break: break-all;
}

/* 조직별 권한 세팅 — 조직 탭 + 매트릭스 */
.org-perm-matrix .org-perm-level-tabs .nav-link {
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  font-size: var(--app-base-font-size);
  border: 1px solid #dee2e6;
  background: #fff;
  color: #495057;
}
.org-perm-matrix .org-perm-level-tabs .nav-link.active {
  background: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
}
.org-perm-table-wrap {
  max-height: min(70vh, 560px);
  overflow: auto;
  border: 1px solid #e9ecef;
  border-radius: 0.375rem;
}
.org-perm-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f8f9fa;
  font-size: var(--app-table-font-size);
  white-space: nowrap;
}
.org-perm-table .org-perm-th-no,
.org-perm-table td.org-perm-td-no {
  width: 3.25rem;
  max-width: 3.5rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
  vertical-align: middle;
}
.org-perm-table tbody tr.org-perm-group-header td.org-perm-group-title {
  background: linear-gradient(180deg, #f1f3f5 0%, #e9ecef 100%);
  border-top: 2px solid #ced4da;
  letter-spacing: -0.02em;
}
.org-perm-group-bar {
  padding: 0.45rem 0.65rem;
}
.org-perm-group-name {
  font-weight: 700;
  font-size: var(--app-base-font-size);
  color: #212529;
}
.org-perm-bulk-hint {
  font-size: var(--app-base-font-size);
  white-space: nowrap;
}
.org-perm-table .org-perm-bulk-select {
  min-width: 10.5rem;
  max-width: 16rem;
  font-size: var(--app-base-font-size);
}
.org-perm-table tbody tr.org-perm-group-header:first-child td.org-perm-group-title {
  border-top: 1px solid #dee2e6;
}
.org-perm-table tbody td {
  font-size: var(--app-table-font-size);
  vertical-align: middle;
}
.org-perm-table .org-perm-select {
  min-width: 220px;
}
/* 권한별 행 배경·왼쪽 강조 — NONE / OBSERVER / MODIFY / DELETE */
.org-perm-table tbody tr.org-perm-row {
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}
.org-perm-table tbody tr.org-perm-row--NONE {
  background: linear-gradient(90deg, rgba(220, 53, 69, 0.22) 0, rgba(220, 53, 69, 0.06) 12px, #fff5f5 28px);
  box-shadow: inset 4px 0 0 0 #dc3545;
}
.org-perm-table tbody tr.org-perm-row--OBSERVER {
  background: linear-gradient(90deg, rgba(13, 110, 253, 0.18) 0, rgba(13, 110, 253, 0.05) 12px, #f0f7ff 28px);
  box-shadow: inset 4px 0 0 0 #0d6efd;
}
.org-perm-table tbody tr.org-perm-row--MODIFY {
  background: linear-gradient(90deg, rgba(253, 126, 20, 0.2) 0, rgba(253, 126, 20, 0.06) 12px, #fff9f0 28px);
  box-shadow: inset 4px 0 0 0 #fd7e14;
}
.org-perm-table tbody tr.org-perm-row--DELETE {
  background: linear-gradient(90deg, rgba(25, 135, 84, 0.18) 0, rgba(25, 135, 84, 0.05) 12px, #f4fbf7 28px);
  box-shadow: inset 4px 0 0 0 #198754;
}
/* 조직별 권한 — 개별 조직 선택 컨트롤 */
.org-perm-unit-control-row .form-label {
  color: #6c757d;
  font-weight: 600;
}
.org-perm-unit-control-row .form-control[readonly] {
  background-color: #f8f9fa;
}

.org-perm-matrix .org-perm-legend {
  font-size: var(--app-base-font-size);
  gap: 0.75rem 1rem;
}
.org-perm-matrix .org-perm-legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.org-perm-matrix .org-perm-legend i {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  flex-shrink: 0;
}
.org-perm-legend .org-perm-legend-none { background: #dc3545; }
.org-perm-legend .org-perm-legend-observer { background: #0d6efd; }
.org-perm-legend .org-perm-legend-modify { background: #fd7e14; }
.org-perm-legend .org-perm-legend-delete { background: #198754; }
.pg-perm-observer .btn:not(#searchBtn):not(.pagination-size-opt),
.pg-perm-modify .btn-danger {
  opacity: 0.65;
}

/* 도메인구성설정: URL·호스트 링크 — 표 본문과 동일 글자 크기(Bootstrap code/small 보정) */
.hq-domain-config-wrap table code.hq-domain-url-cell,
.hq-domain-config-wrap table .hq-domain-host-link {
  font-size: inherit;
}

/* 도메인구성설정: URL·호스트 링크 (새 탭) */
.hq-domain-url-link {
  cursor: pointer;
}
.hq-domain-url-link:hover code.hq-domain-url-cell {
  text-decoration: underline;
  color: var(--bs-link-hover-color, #0a58ca);
}
.hq-domain-config-wrap a[target="_blank"]:not(.hq-domain-url-link) {
  cursor: pointer;
}
.hq-domain-config-wrap a[target="_blank"]:not(.hq-domain-url-link):hover {
  text-decoration: underline;
}

/* 종합거래 환경설정: 결제 후속조치(NOTI) 표 */
.hq-pay-follow-wrap {
  max-width: 100%;
  overflow-x: visible;
}
.hq-pay-follow-table {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.hq-pay-follow-table .hq-pay-follow-col-kind {
  width: 17%;
}
.hq-pay-follow-table .hq-pay-follow-col-basis {
  width: 20%;
}
.hq-pay-follow-table .hq-pay-follow-col-use {
  width: 11%;
}
.hq-pay-follow-table .hq-pay-follow-col-val {
  width: 32%;
}
.hq-pay-follow-table .hq-pay-follow-col-ref {
  width: 12%;
}
.hq-pay-follow-table th,
.hq-pay-follow-table td {
  vertical-align: middle;
  font-size: var(--app-table-font-size);
  padding: 0.4rem 0.35rem;
}
.hq-pay-follow-table .hq-pay-follow-col-basis,
.hq-pay-follow-table td:nth-child(2) {
  word-break: keep-all;
  line-break: strict;
  white-space: normal;
}
.hq-pay-follow-table select.form-select-sm {
  font-size: var(--app-table-font-size);
  min-width: 0;
  max-width: 100%;
}
.hq-pay-follow-dual-clock {
  line-height: 1.35;
}
.hq-pay-follow-time {
  min-width: 5.5rem;
  max-width: 7rem;
}
.hq-pay-follow-void-times .hq-pay-follow-time {
  flex: 0 1 auto;
}

/* 결제내역 후속조치: 상태(성공·실패) 배지와 유사한 pill — 활성 파랑, 비활성 회색 */
.pay-follow-pill-row {
  max-width: 24rem;
}
button.pay-follow-pill {
  display: inline-block;
  padding: 0.14em 0.6em;
  border-radius: 999px;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  border: 1px solid transparent;
  text-decoration: none !important;
  vertical-align: middle;
  box-shadow: none;
}
button.pay-follow-pill--active {
  background: #2563eb;
  color: #fff !important;
  cursor: pointer;
}
button.pay-follow-pill--active:hover:not(:disabled) {
  background: #1d4ed8;
  color: #fff !important;
}
button.pay-follow-pill--disabled,
button.pay-follow-pill--disabled:disabled {
  background: #e5e7eb;
  color: #64748b !important;
  border-color: #cbd5e1;
  cursor: not-allowed;
  opacity: 1;
}
button.pay-follow-pill:focus-visible {
  outline: 2px solid rgba(37, 99, 235, 0.45);
  outline-offset: 1px;
}

/* 종합거래 환경설정: 데이터 보관 기간 표 — 수수료·정산 통화 표와 동일 래핑(border rounded + table-sm), 열 비율 고정 */
.hq-data-retention-table {
  width: 100%;
  table-layout: fixed;
}
.hq-data-retention-table thead th:nth-child(1) {
  width: 18%;
}
.hq-data-retention-table thead th:nth-child(2) {
  width: 9%;
}
.hq-data-retention-table thead th:nth-child(3) {
  width: 9%;
}
.hq-data-retention-table thead th:nth-child(4) {
  width: 9%;
}
.hq-data-retention-table thead th:nth-child(5) {
  width: 37%;
}
.hq-data-retention-table thead th:nth-child(6) {
  width: 18%;
}
.hq-data-retention-table tbody tr.hq-dr-data-row > td {
  white-space: nowrap;
  overflow: hidden;
  vertical-align: middle;
}
.hq-data-retention-table tbody tr.hq-dr-data-row > td.hq-dr-type-cell,
.hq-data-retention-table tbody tr.hq-dr-data-row > td.hq-dr-desc-cell {
  white-space: normal;
  overflow: hidden;
  vertical-align: top;
}
.hq-data-retention-table .hq-dr-cell-clamp-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  line-height: 1.35;
}
.hq-data-retention-table th,
.hq-data-retention-table td {
  vertical-align: middle;
  font-size: var(--app-table-font-size);
  padding: 0.4rem 0.35rem;
}
.hq-data-retention-table thead th {
  white-space: nowrap;
  line-height: 1.2;
}
.hq-data-retention-table td.hq-dr-type-cell .hq-dr-label-text {
  vertical-align: baseline;
}
.hq-data-retention-table td.hq-dr-type-cell .badge {
  vertical-align: middle;
}
/* 빈 상태·로딩 행은 메시지 줄바꿈 허용 */
.hq-data-retention-table tbody tr:not(.hq-dr-data-row) > td {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}
.hq-data-retention-table .hq-dr-th-desc {
  white-space: nowrap;
}
.hq-data-retention-table .hq-dr-th-narrow {
  font-size: var(--app-table-font-size);
  white-space: nowrap;
}
.hq-data-retention-table .hq-dr-th-act {
  font-size: var(--app-table-font-size);
  white-space: nowrap;
}
.hq-data-retention-table thead .hq-dr-th-type {
  white-space: nowrap;
}
.hq-data-retention-table td:nth-child(6) {
  overflow: visible;
}
.hq-data-retention-table td:nth-child(6) .hq-dr-act-btns {
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.25rem;
}
.hq-data-retention-table td:nth-child(6) .hq-dr-act-btns .btn {
  padding-left: 0.35rem;
  padding-right: 0.35rem;
  font-size: var(--app-table-font-size);
}
.hq-data-retention-table td:nth-child(6),
.hq-data-retention-table td.hq-dr-act-cell {
  min-width: 0;
}
.hq-data-retention-table .hq-dr-purge,
.hq-data-retention-table .hq-dr-retain {
  font-size: var(--app-table-font-size);
  min-width: 0;
  width: 100%;
  max-width: 6.5rem;
}
.hq-data-retention-table .hq-dr-auto {
  width: 1rem;
  height: 1rem;
  margin: 0;
}

/* 수수료설정: 템플릿 목록 행 */
.hq-default-comm-policy-row:hover {
  background-color: rgba(13, 110, 253, 0.07) !important;
}
.hq-def-comm-chk-cell {
  cursor: default;
}
#hqDefCommSelectAll {
  cursor: pointer;
}

/* 수수료설정: 가맹점 수수료 정책 목록 — 최소 너비 확보, 좁은 영역에서는 가로 스크롤 */
.hq-default-comm-policy-scroll.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}
.hq-default-comm-policy-scroll {
  max-width: 100%;
}
.hq-default-comm-policy-table {
  width: 100%;
  min-width: 76rem;
  max-width: none;
  table-layout: auto;
}

/* colgroup은 자동 배치(고정 % 없음) */
.hq-default-comm-policy-table col.hq-def-comm-col {
  width: auto;
}

.hq-default-comm-policy-table > thead > tr > th,
.hq-default-comm-policy-table > tbody > tr > td {
  text-align: center;
  vertical-align: middle;
}

.hq-default-comm-policy-table .hq-def-comm-th-chk {
  vertical-align: middle;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}
.hq-def-comm-th-chk-inner {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
}
.hq-def-comm-th-chk-label {
  font-size: var(--app-table-font-size);
  font-weight: 600;
  line-height: 1;
}
.hq-default-comm-policy-table .hq-def-comm-th-code {
  white-space: nowrap;
  font-size: var(--app-table-font-size);
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.hq-default-comm-policy-table td.hq-def-comm-policy-td-code {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--app-table-font-size);
}
.hq-default-comm-policy-table .hq-def-comm-th-name {
  font-size: var(--app-table-font-size);
  text-align: left;
}
.hq-default-comm-policy-table td.hq-def-comm-policy-td-name {
  min-width: 9rem;
  max-width: 18rem;
  white-space: normal;
  word-break: break-word;
  text-align: left;
  vertical-align: middle;
  line-height: 1.25;
}
.hq-default-comm-policy-table .hq-def-comm-th-cb-zone {
  line-height: 1.25;
}
.hq-default-comm-policy-table .hq-def-comm-th-group {
  font-weight: 600;
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.hq-default-comm-policy-table .hq-def-comm-th-sub {
  font-size: var(--app-table-font-size);
  font-weight: 600;
  white-space: nowrap;
  word-break: normal;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  line-height: 1.2;
  min-width: 2.65rem;
}
.hq-default-comm-policy-table thead th[rowspan="2"].hq-def-comm-th-name {
  min-width: 9rem;
}
.hq-default-comm-policy-table thead th[rowspan="2"].hq-def-comm-th-cb-zone {
  min-width: 4.5rem;
  white-space: normal;
}
.hq-default-comm-policy-table thead th[rowspan="2"].hq-def-comm-th-deploy,
.hq-default-comm-policy-table thead th[rowspan="2"].hq-def-comm-th-cur {
  white-space: nowrap;
  min-width: 3.25rem;
}
.hq-default-comm-policy-table thead th[rowspan="2"].hq-def-comm-th-mon {
  min-width: 3rem;
  white-space: nowrap;
}
.hq-def-comm-policy-td-num {
  text-align: center;
  white-space: nowrap;
  font-size: var(--app-table-font-size);
  font-variant-numeric: tabular-nums;
  vertical-align: middle;
  min-width: 2.75rem;
  padding-left: 0.28rem;
  padding-right: 0.28rem;
}
.hq-def-comm-policy-td-cbzone {
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: none;
  white-space: nowrap;
  font-size: var(--app-table-font-size);
}
.hq-def-comm-policy-td-deploy {
  min-width: 4.25rem;
  vertical-align: middle;
}
.hq-def-comm-policy-td-cur {
  min-width: 3.35rem;
  vertical-align: middle;
}
.hq-def-comm-policy-td-extra-slot {
  text-align: center;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: none;
  white-space: nowrap;
  font-size: var(--app-table-font-size);
  min-width: 0;
}
.hq-default-comm-policy-table .hq-def-comm-th-upd,
.hq-default-comm-policy-table .hq-def-comm-policy-td-upd {
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--app-table-font-size);
}
.hq-default-comm-policy-table th,
.hq-default-comm-policy-table td {
  padding: 0.35rem 0.28rem;
  font-size: var(--app-table-font-size);
  line-height: 1.25;
  word-break: normal;
}

.hq-extra-fees-card .card-header .text-muted {
  line-height: 1.35;
}

/* 본사 수수료설정: 조직 단계별 수수료 격자 */
.hq-comm-tier-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.hq-comm-tier-matrix .hq-tier-cell,
.hq-extra-tier-table .hq-tier-extra-cell {
  min-width: 3.25rem;
  font-size: var(--app-table-font-size);
}
.hq-comm-tier-matrix th,
.hq-comm-tier-matrix td {
  vertical-align: middle;
}

/* 가맹점: 차지백 정책 카드 — 빨강 파스텔톤 배경 */
/* 차지백설정: 저장된 유형 — 비고 전체 노출(줄바꿈 유지) */
.hq-chargeback-policy-saved-table th.hq-cb-list-remark-th {
  min-width: 8rem;
}
.hq-chargeback-policy-saved-table td.hq-cb-list-remark {
  white-space: pre-wrap;
  word-break: break-word;
  vertical-align: top;
  line-height: 1.35;
}
.hq-chargeback-policy-saved-table tbody tr > td {
  vertical-align: top;
}

#chargebackPolicyCard {
  background: #fff1f3; /* rose-50 */
  border-color: #fecdd3; /* rose-200 */
}
#chargebackPolicyCard > .card-body {
  background: transparent;
}

.pg-chargeback-policy-preview-title {
  font-size: var(--app-table-font-size);
  color: #6c757d;
  margin-bottom: 0.375rem;
}

.pg-chargeback-policy-preview-table th,
.pg-chargeback-policy-preview-table td {
  font-size: var(--app-table-font-size);
  vertical-align: middle;
  text-align: center;
  background: #fff5f6;
  border-color: #fbc9d0;
}

.pg-chargeback-policy-preview-table thead th {
  background: #ffe3e8;
  color: #7f1d2d;
  white-space: nowrap;
}

/* 첨부파일 카드: 제목·본문 한 줄 우선, 가로 최대 활용 */
.comp-reg-form .card:has(.attach-section) .card-header {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 가맹점 등록: 무효·환불 정산(안내) — 파스텔 노랑 톤 */
.comp-reg-form .card.pg-comp-reg-void-refund-panel {
  border-color: #f3dfa8;
  background: linear-gradient(180deg, #fffdf7 0%, #fff8e0 100%);
  box-shadow: 0 1px 2px rgba(200, 170, 50, 0.07);
}
.comp-reg-form .card.pg-comp-reg-void-refund-panel > .card-body {
  background: transparent;
}

.attach-field-block > .form-label:empty {
  display: none;
  margin: 0;
}

/* 첨부파일: 테이블 가로 폭 */
/* 업체관리 그리드: 정산구분 가독성(수동=기본, 자동·펌뱅킹만 색 구분) */
#contentsMain .screen-comp-mng-tree .pg-calc-proc--auto {
  color: #0b5ed7;
}
#contentsMain .screen-comp-mng-tree .pg-calc-proc--fumbanking {
  color: #b45309;
}

.attach-section {
  width: 100%;
  max-width: 100%;
}
.attach-section .attach-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.attach-section [data-attach-table] {
  width: max-content;
  min-width: 100%;
  table-layout: auto;
}
.attach-section [data-attach-table] thead th,
.attach-section [data-attach-table] tbody td {
  white-space: nowrap;
  vertical-align: middle;
}
.attach-section [data-attach-table] th:nth-child(1),
.attach-section [data-attach-table] td:nth-child(1) {
  width: 1%;
}
.attach-section [data-attach-table] th:nth-child(4),
.attach-section [data-attach-table] td:nth-child(4),
.attach-section [data-attach-table] th:nth-child(5),
.attach-section [data-attach-table] td:nth-child(5) {
  width: 1%;
}
.attach-section .text-muted.small.mt-1 {
  white-space: nowrap;
  overflow-x: auto;
  max-width: 100%;
}

/* 첨부파일: 파일명 · 파일 선택 · 추가 한 줄 */
.attach-section .attach-toolbar {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.attach-section .attach-toolbar .attach-display-name {
  flex: 1 1 auto;
  min-width: 8rem;
  width: 0;
}
.attach-section .attach-toolbar .attach-file-pick {
  flex: 0 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: min(42%, 22rem);
  min-width: 6.5rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-left: 0.65rem;
  padding-right: 0.65rem;
  cursor: pointer;
}
.attach-section .attach-toolbar .attach-file-pick span {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.attach-section .attach-toolbar [data-attach-add] {
  flex: 0 0 auto;
}
@media (max-width: 576px) {
  .attach-section .attach-toolbar {
    flex-wrap: wrap;
  }
  .attach-section .attach-toolbar .attach-display-name {
    flex: 1 1 100%;
    min-width: 100%;
  }
}

/* 본사 API연동설정: 미사용 행의 운영 열 비활성 표시 */
.hq-pg-operational-cell--inactive {
  opacity: 0.45;
  filter: grayscale(0.35);
}
.hq-pg-operational-cell--inactive .form-check-input {
  cursor: not-allowed;
}

/* 본사 API연동설정: 가로 스크롤 + 최소 너비로 열 다발·헤더 줄바꿈 방지 */
.hq-pg-api-mng-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}
.hq-pg-api-mng-scroll .hq-pg-api-mng-table {
  min-width: 1240px;
}

/* 본사 API연동설정: 테이블 글자 크기 = 결제관리 거래내역(#contentsMain .screen-pay-list .table)과 동일 */
.hq-pg-api-mng-table {
  font-size: var(--pay-mng-dense-font-size);
  table-layout: fixed;
  width: 100%;
}
.hq-pg-api-mng-table thead th {
  padding: 4px 8px;
  font-size: var(--pay-mng-dense-font-size);
  vertical-align: middle;
  line-height: 1.25;
  white-space: nowrap;
}
.hq-pg-api-mng-table tbody td {
  padding: 4px 8px;
  vertical-align: middle !important;
  line-height: 1.25;
  font-size: var(--pay-mng-dense-font-size);
}
.hq-pg-api-mng-table .hq-pg-row-edit,
.hq-pg-api-mng-table .hq-pg-row-del {
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
  padding: 0.15rem 0.4rem;
  white-space: nowrap;
}
/* 열 너비: 엔드포인트(URL) 상한 · 결제대행사·연동용도·관리 가독성 */
.hq-pg-api-mng-table thead th[data-key="_chk"] {
  width: 2.35rem;
}
.hq-pg-api-mng-table thead th[data-key="rowNo"] {
  width: 2.85rem;
}
.hq-pg-api-mng-table thead th[data-key="pgNm"] {
  width: 10.5rem;
  min-width: 8rem;
}
.hq-pg-api-mng-table thead th[data-key="pgCd"] {
  width: 7rem;
}
.hq-pg-api-mng-table thead th[data-key="integrationScopeLabel"] {
  width: 9.75rem;
  min-width: 8.25rem;
}
.hq-pg-api-mng-table thead th[data-key="urlPayAmountModeLabel"] {
  width: 5.25rem;
  min-width: 4.5rem;
}
.hq-pg-api-mng-table thead th[data-key="merchantMid"] {
  width: 7.25rem;
}
.hq-pg-api-mng-table thead th[data-key="extSettleMode"] {
  width: 3.75rem;
  min-width: 3.25rem;
}
.hq-pg-api-mng-table thead th[data-key="extSettleLag"] {
  width: 2.75rem;
  min-width: 2.25rem;
}
.hq-pg-api-mng-table thead th[data-key="extSettleBatchTime"] {
  width: 4.25rem;
  min-width: 3.75rem;
}
.hq-pg-api-mng-table thead th[data-key="hasApiKey"],
.hq-pg-api-mng-table thead th[data-key="hasMd5Key"] {
  width: 2.85rem;
}
.hq-pg-api-mng-table thead th[data-key="routeNo"] {
  width: 2.35rem;
}
.hq-pg-api-mng-table thead th[data-key="sandboxYn"] {
  width: 3.6rem;
}
.hq-pg-api-mng-table thead th[data-key="operationalYn"] {
  width: 3.35rem;
}
.hq-pg-api-mng-table thead th[data-key="useYn"] {
  width: 2.85rem;
}
.hq-pg-api-mng-table thead th[data-key="regDt"] {
  width: 5.75rem;
}
.hq-pg-api-mng-table thead th[data-key="_pgRowAct"] {
  width: 8.75rem;
  min-width: 8rem;
}
.pg-api-mng-scope-cell {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pg-api-mng-scope-cell .pg-api-mng-scope-badges {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.15rem;
  max-width: 100%;
}
.pg-api-mng-scope-cell .badge {
  font-size: var(--pay-mng-dense-font-size);
  font-weight: 600;
  padding: 0.1em 0.32em;
  line-height: 1.25;
}
/* API연동설정 — 연동용도 파스텔 (노티·URL·챗봇·API) */
.pg-scope-pastel-noti {
  background-color: #eadcf5 !important;
  color: #4a2d5c !important;
  border: 1px solid #d4bee8;
}
.pg-scope-pastel-url {
  background-color: #d6eafc !important;
  color: #1a4a7a !important;
  border: 1px solid #b8d4f0;
}
.pg-scope-pastel-chatbot {
  background-color: #d5f2e3 !important;
  color: #1e5c40 !important;
  border: 1px solid #aee4c5;
}
.pg-scope-pastel-api {
  background-color: #fdebd5 !important;
  color: #8b4518 !important;
  border: 1px solid #f0cfa8;
}
.pg-scope-pastel-multi {
  background-color: #e6e9f0 !important;
  color: #3d4a5c !important;
  border: 1px solid #c5cdd9;
}
.pg-integ-kind-legend .badge {
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.2em 0.45em;
}
/* URL 열: 예전 28% 대신 고정 폭 + 말줄임(전체 너비는 나머지 열·여백으로 균형) */
.hq-pg-api-mng-table thead th[data-key="endpointsSummary"],
.pg-api-mng-endpoints-th {
  width: 19rem;
  max-width: 19rem;
  min-width: 11rem;
}
.pg-api-mng-ep-cell {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 19rem;
}
.pg-api-mng-ep-cell .pg-api-mng-ep-ellipsis {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--pay-mng-dense-font-size);
  line-height: 1.25;
}
.hq-pg-api-mng-table tbody td.pg-api-mng-ep-cell {
  max-width: 19rem;
}

/* 본사설정 > 노티수령정보: 표 셀 가운데 정렬(table-form-ui), 오류열은 폭 제한·말줄임 */
#hqNotifyInboundTable > thead > tr > th,
#hqNotifyInboundTable > tbody > tr > td {
  text-align: center;
  vertical-align: middle;
}
#hqNotifyInboundTable .hq-ni-th-error,
#hqNotifyInboundTable .hq-ni-td-error {
  max-width: 11rem;
}
#hqNotifyInboundTable .hq-ni-td-error {
  line-height: 1.35;
}

/* 정산리포트 > 확정정산 상세: 인쇄 시 표만 약간 키움(브라우저 인쇄 대화상자에서 여백·배율 조정) */
@media print {
  .pg-settlement-report-print-root table {
    font-size: 11pt;
  }
}

/* 배포설정 > 가맹점 API 연동키트: table-responsive 제거 표 — 가로 스크롤 없음, 헤더 정렬 */
.merchant-deploy-kit .merchant-deploy-table-wrap {
  overflow-x: visible;
  max-width: 100%;
}
.merchant-deploy-kit .merchant-deploy-merchant-table {
  table-layout: fixed;
}
.merchant-deploy-kit .merchant-deploy-merchant-table thead th {
  vertical-align: middle;
}
.merchant-deploy-kit .merchant-deploy-col-act {
  width: 5.5rem;
}
.merchant-deploy-kit .merchant-deploy-col-code {
  width: 9rem;
}
.merchant-deploy-kit .merchant-deploy-col-cur {
  width: 5.5rem;
}
.merchant-deploy-kit .merchant-deploy-merchant-table tbody td:nth-child(3) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.merchant-deploy-kit .merchant-deploy-help summary {
  cursor: pointer;
  user-select: none;
}
.merchant-deploy-kit .merchant-deploy-plain-help ol,
.merchant-deploy-kit .merchant-deploy-plain-help ul {
  line-height: 1.55;
}

/* URL 결제 운영 조건 미충족 시 웹결제/대표상품 카드 비활성 표시 */
#webPaymentCard.pg-url-pay-card--disabled {
  opacity: 0.55;
}

/* ========== 메인(/main) 대시보드 ========== */
.pg-home-dashboard-mount .pg-dash-insight {
  font-size: 0.92rem;
  color: #5c6c7c;
  border-left: 3px solid #0d6efd;
  padding: 0.5rem 0.75rem;
  background: #f8f9fa;
  border-radius: 0 0.25rem 0.25rem 0;
}
.pg-home-dashboard-mount .pg-dash-kpi .card {
  border: 1px solid #e9ecef;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.pg-home-dashboard-mount .pg-dash-kpi .display-6 {
  font-size: 1.35rem;
  font-weight: 600;
}
.pg-home-dashboard-mount .pg-dash-cal-wrap {
  max-height: 320px;
  overflow: auto;
}
.pg-home-dashboard-mount .pg-dash-bizday .hq-holiday-month {
  font-size: 0.85rem;
}
.pg-home-dashboard-mount .pg-dash-bizday .hq-holiday-mini-table td {
  padding: 0.15rem;
}
.pg-home-dashboard-mount .pg-dash-bizday .hq-holiday-day {
  pointer-events: none;
  cursor: default;
}
.pg-home-dashboard-mount .pg-dash-bizday-swatch {
  width: 0.85rem;
  height: 0.85rem;
  vertical-align: middle;
  margin-right: 0.2rem;
  border: 1px solid rgba(0, 0, 0, 0.12);
}
.pg-home-dashboard-mount .pg-dash-bizday-swatch--on {
  background: #fff;
}
.pg-home-dashboard-mount .pg-dash-bizday-swatch--off {
  background: #e9ecef;
}
.pg-home-dashboard-mount .pg-dash-bizday-toolbar {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.pg-home-dashboard-mount .pg-dash-bizday-toolbar__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  width: 100%;
}
.pg-home-dashboard-mount .pg-dash-bizday-toolbar__title {
  flex: 0 1 auto;
  min-width: 0;
}
.pg-home-dashboard-mount .pg-dash-bizday-toolbar__sep {
  flex: 0 0 auto;
  opacity: 0.45;
  user-select: none;
}
.pg-home-dashboard-mount .pg-dash-bizday-toolbar__actions {
  flex: 0 0 auto;
}
.pg-home-dashboard-mount .pg-dash-bizday-toolbar__meta {
  flex: 0 0 auto;
  margin-left: auto;
  margin-top: 0;
  text-align: right;
  white-space: nowrap;
}
.pg-home-dashboard-mount .pg-dash-bizday-section {
  display: block;
}
.pg-home-dashboard-mount .pg-dash-bizday-section .card {
  margin-bottom: 0;
}
.pg-home-dashboard-mount .pg-dash-quick .btn {
  margin: 0.15rem 0.25rem 0.15rem 0;
}
.pg-home-dashboard-mount .pg-dash-evidence {
  line-height: 1.45;
}
.pg-home-dashboard-mount .pg-dash-narr {
  border-left: 3px solid #6c757d;
}
.pg-home-dashboard-mount .pg-dash-risk .display-5 {
  font-size: 2rem;
  font-weight: 700;
}
.pg-home-dashboard-mount .pg-dash-tl .pg-dash-tl-row {
  position: relative;
  padding-left: 1.1rem;
  margin-bottom: 0.75rem;
}
.pg-home-dashboard-mount .pg-dash-tl .pg-dash-tl-dot {
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #0d6efd;
}
.pg-home-dashboard-mount .pg-dash-kpi-chip {
  min-height: 3.25rem;
}

.pg-dash-hq-hub .pg-dash-trend {
  min-height: 120px;
}
.pg-dash-hq-hub .pg-dash-trend-col {
  flex: 1;
  min-width: 0;
}
.pg-dash-hq-hub .pg-dash-trend-bar-wrap {
  height: 96px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.pg-dash-hq-hub .pg-dash-trend-bar {
  width: 100%;
  max-width: 26px;
  min-height: 3px;
  background: linear-gradient(180deg, #0d6efd, #9ec5fe);
  border-radius: 4px 4px 0 0;
}
.pg-dash-hq-hub .pg-dash-tile:hover {
  background: #f8f9fa !important;
  border-color: #0d6efd !important;
}

/* 챗봇 기본설정 — 산하 가맹 현황 표: 가로 스크롤 없음, 긴 본문은 셀 안 줄바꿈 */
.chatbot-kb-overview-outer .chatbot-kb-overview-table-wrap {
  overflow-x: visible;
  max-width: 100%;
}
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview {
  table-layout: fixed;
  width: 100%;
}
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-compid { width: 7%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-compnm { width: 8%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-opmode { width: 7.5rem; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-prodslot { width: 5.5rem; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-kbnm { width: 8%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-tel { width: 7%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-email { width: 9%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-contact { width: 6%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-addr { width: 11%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-intro { width: 16%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-product { width: 15%; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-commerce { width: 6.5rem; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview col.chatbot-kb-col-action { width: 4.5rem; }
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview .chatbot-kb-overview-commerce-cell {
  vertical-align: middle;
  text-align: center;
}
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview .chatbot-kb-overview-commerce-cell .btn {
  white-space: nowrap;
}
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview th,
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview td {
  vertical-align: top;
}
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview .chatbot-kb-col-wrap {
  word-break: break-word;
  overflow-wrap: anywhere;
}
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview .chatbot-kb-col-multiline {
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.chatbot-kb-overview-outer #tbl_chatbot_kb_overview td.text-center {
  vertical-align: middle;
}

/* 챗봇 플랜구매설정 — 파란 헤더·파스텔 카드(가독성) */
#contentsMain .chatbot-kb-plan-shell {
  background: linear-gradient(180deg, #eef5ff 0%, #f8fbff 35%, #ffffff 100%);
}
#contentsMain .chatbot-kb-plan-header {
  background: linear-gradient(90deg, #0d6efd 0%, #5c9dff 100%);
  letter-spacing: 0.02em;
}
#contentsMain .chatbot-kb-plan-pill {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(13, 110, 253, 0.12);
  color: #212529;
}
#contentsMain .chatbot-kb-guidance-shell {
  background: #f3f6f9;
  border-color: #dee2e6 !important;
  color: #212529;
}

/* 챗봇 상품관리 — 가맹 로그인 시 본사 전용 열·등록폼 행 숨김 */
.chatbot-prod-grid--merchant .hq-only-col {
  display: none !important;
}
.chatbot-prod-register--merchant .hq-only-form {
  display: none !important;
}
#contentsMain .chatbot-product-mng {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
/* 리사이즈 전: auto / 적용 후: fixed(table-column-resize.js) — auto가 fixed를 덮지 않게 분리 */
#contentsMain .chatbot-product-mng .chatbot-prod-grid:not(.pg-table-col-resize-enabled) {
  table-layout: auto;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid.pg-table-col-resize-enabled {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
}
/* 등록된 상품: 좁은 뷰포트에서는 가로 스크롤로 열을 압착하지 않음(리사이즈 핸들은 래퍼 안에서만 약간 잘릴 수 있음) */
#contentsMain .chatbot-product-mng .chatbot-prod-table-responsive {
  /* 스크롤은 유지하되(컬럼 리사이즈/전체 열 확인), 스크롤바만 숨김 */
  overflow-x: auto;
  width: 100%;
  max-width: 100%;
  /* 헤더 리사이즈 핸들(right:-4px)이 잘리지 않도록 */
  padding-right: 10px;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;          /* Firefox */
  -ms-overflow-style: none;       /* IE/Edge legacy */
}
#contentsMain .chatbot-product-mng .chatbot-prod-table-responsive::-webkit-scrollbar {
  display: none;                  /* Chrome/Safari */
}
/* 가맹 화면: 숨긴 본사 열에 대응하는 <col> 이 공간을 잡지 않도록 */
#contentsMain .chatbot-product-mng .chatbot-prod-grid--merchant colgroup col:nth-child(2),
#contentsMain .chatbot-product-mng .chatbot-prod-grid--merchant colgroup col:nth-child(3),
#contentsMain .chatbot-product-mng .chatbot-prod-grid--merchant colgroup col:nth-child(4) {
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
}
#contentsMain .chatbot-product-mng .chatbot-prod-table-responsive > .table.chatbot-prod-grid {
  /* 리사이즈/컬럼 표시를 위해 최소 폭은 유지(스크롤바는 숨김 처리) */
  min-width: 1000px;
  width: 100%;
  max-width: 100%;
}
/* 리사이즈 적용 전: 뷰가 넓을 때는 래퍼 100%까지 반드시 확장 */
#contentsMain .chatbot-product-mng .chatbot-prod-table-responsive > .table.chatbot-prod-grid:not(.pg-table-col-resize-enabled) {
  min-width: max(1000px, 100%);
}
#contentsMain .chatbot-product-mng .chatbot-prod-table-responsive .chatbot-prod-grid thead th,
#contentsMain .chatbot-product-mng .chatbot-prod-table-responsive .chatbot-prod-grid tbody td {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
  min-width: 0;
  vertical-align: middle;
}
/* 등록된 상품: 짧은 헤더는 세로 한 글자씩 쌓이지 않도록 한 줄 유지 */
#contentsMain .chatbot-product-mng .chatbot-prod-table-responsive .chatbot-prod-grid thead th {
  white-space: nowrap;
}
#contentsMain .chatbot-product-mng .chatbot-prod-table-responsive .chatbot-prod-grid tbody td {
  white-space: normal;
}
/* 제목·설명은 너무 좁으면 한 글자씩 세로로 쌓이므로 하한을 둠 */
#contentsMain .chatbot-product-mng .chatbot-prod-grid th.chatbot-prod-col-title,
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-title {
  min-width: 10.5rem;
  /* 극단적으로 좁아지면 한 글자씩 세로로 쌓이므로 한 줄 유지 + 말줄임 */
  white-space: nowrap;
  word-break: normal;
  overflow: hidden;
  text-overflow: ellipsis;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid th.chatbot-prod-col-desc,
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-desc {
  min-width: 14rem;
  /* 테이블이 래퍼 전체 너비를 쓰도록 max-width 제한 제거(남는 폭은 설명 열이 흡수) */
  max-width: none;
  width: auto;
}
/* 순서: 숫자 드롭다운만 — 폼셀렉트가 행 너비를 잡아먹지 않도록 */
#contentsMain .chatbot-product-mng .chatbot-prod-grid th.chatbot-prod-col-sort,
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-sort-cell {
  width: 3.25rem;
  max-width: 3.5rem;
  min-width: 2.75rem;
  padding-left: 0.2rem;
  padding-right: 0.2rem;
  box-sizing: border-box;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid .chatbot-prod-sort-cell .chatbot-prod-sort-select {
  width: 100%;
  max-width: 3.1rem;
  min-width: 0;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0.25rem;
  padding-right: 1.35rem;
  box-sizing: border-box;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid th.chatbot-prod-col-code,
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-code {
  min-width: 5.5rem;
  white-space: nowrap;
  word-break: normal;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 판매·예약 / 예약결제: 짧은 라벨이 글자 단위로 세로 쌓이며 옆 열과 겹쳐 보이지 않도록 */
#contentsMain .chatbot-product-mng .chatbot-prod-grid th.chatbot-prod-col-listing,
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-listing {
  min-width: 9.5rem;
  max-width: 14rem;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-listing {
  overflow: hidden;
  text-overflow: ellipsis;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid th.chatbot-prod-col-rescollect,
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-rescollect {
  min-width: 8.5rem;
  max-width: 12rem;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-rescollect {
  overflow: hidden;
  text-overflow: ellipsis;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid th.chatbot-prod-col-amt,
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-amt {
  min-width: 5rem;
  max-width: 10rem;
}
#contentsMain .chatbot-product-mng .chatbot-prod-grid th.chatbot-prod-col-ccy,
#contentsMain .chatbot-product-mng .chatbot-prod-grid td.chatbot-prod-col-ccy {
  min-width: 3.5rem;
  max-width: 5.5rem;
  width: 4.5rem;
  text-align: center;
  white-space: nowrap;
}
.chatbot-product-mng .chatbot-prod-img-td,
#contentsMain .chatbot-product-mng .chatbot-prod-grid thead th.chatbot-prod-col-img {
  min-width: 5.5rem;
  max-width: 9rem;
  width: 7.5rem;
  vertical-align: middle;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: normal;
  overflow-wrap: normal;
}
.chatbot-product-mng .chatbot-field-desc {
  min-height: 2.75rem;
  resize: vertical;
}

/* 챗봇 상품관리: 상한 초과 이미지 슬롯은 비활성 표시(숨기지 않음) */
#contentsMain .chatbot-product-mng .chatbot-form-img-slot--disabled {
  opacity: 0.45;
  pointer-events: none;
}
.chatbot-product-mng .chatbot-prod-img-stack .chatbot-field-img {
  font-size: 0.75rem;
  word-break: break-all;
}
/* 챗봇 상품 — 판매중(useYn=Y 등) 행 스카이블루 (상품등록 목록) */
.chatbot-product-mng .chatbot-prod-grid tbody tr.chatbot-prod-row--active td {
  color: #1864ab !important;
  background-color: #e7f5ff !important;
  border-color: #d0ebff;
}
.chatbot-product-mng .chatbot-prod-grid tbody tr.chatbot-prod-row--active .chatbot-prod-ix {
  color: #339af7 !important;
}
.chatbot-product-mng .chatbot-prod-grid tbody tr.chatbot-prod-row--active .btn-outline-primary {
  border-color: #74c0fc;
  color: #1971c2;
}
.chatbot-product-mng .chatbot-prod-grid tbody tr.chatbot-prod-row--active .btn-outline-danger {
  border-color: #ffa8a8;
  color: #c92a2a;
}
/* 챗봇 상품 — 판매상태 대기(useYn=N) 행 회색 */
.chatbot-product-mng .chatbot-prod-grid tbody tr.chatbot-prod-row--inactive td {
  color: #868e96 !important;
  background-color: #f1f3f5 !important;
  border-color: #dee2e6;
}
.chatbot-product-mng .chatbot-prod-grid tbody tr.chatbot-prod-row--inactive .chatbot-prod-ix {
  color: #adb5bd !important;
}
.chatbot-product-mng .chatbot-prod-grid tbody tr.chatbot-prod-row--inactive .btn {
  opacity: 0.9;
}

/* 본사 사용자설정 — 담당자(보조) 메뉴 기본 권한: 대메뉴별 톤 */
#contentsMain .hq-user-asst-matrix-root .hq-asst-grp-0 td {
  background-color: rgba(13, 110, 253, 0.06);
}
#contentsMain .hq-user-asst-matrix-root .hq-asst-grp-1 td {
  background-color: rgba(25, 135, 84, 0.07);
}
#contentsMain .hq-user-asst-matrix-root .hq-asst-grp-2 td {
  background-color: rgba(111, 66, 193, 0.07);
}
#contentsMain .hq-user-asst-matrix-root .hq-asst-grp-3 td {
  background-color: rgba(214, 51, 132, 0.07);
}
#contentsMain .hq-user-asst-matrix-root .hq-asst-grp-4 td {
  background-color: rgba(253, 126, 20, 0.08);
}
#contentsMain .hq-user-asst-matrix-root .hq-asst-grp-5 td {
  background-color: rgba(32, 201, 151, 0.08);
}
#contentsMain .hq-user-asst-matrix-root .hq-asst-grp-6 td {
  background-color: rgba(108, 117, 125, 0.1);
}
#contentsMain .hq-user-asst-matrix-root tr.hq-asst-grp-hdr td {
  font-weight: 600;
  border-top-width: 2px;
}
#contentsMain .hq-user-asst-matrix-root tr.hq-asst-grp-hdr.hq-asst-grp-0 td {
  box-shadow: inset 0 3px 0 0 #4dabf7;
}
#contentsMain .hq-user-asst-matrix-root tr.hq-asst-grp-hdr.hq-asst-grp-1 td {
  box-shadow: inset 0 3px 0 0 #51cf66;
}
#contentsMain .hq-user-asst-matrix-root tr.hq-asst-grp-hdr.hq-asst-grp-2 td {
  box-shadow: inset 0 3px 0 0 #9775fa;
}
#contentsMain .hq-user-asst-matrix-root tr.hq-asst-grp-hdr.hq-asst-grp-3 td {
  box-shadow: inset 0 3px 0 0 #f06595;
}
#contentsMain .hq-user-asst-matrix-root tr.hq-asst-grp-hdr.hq-asst-grp-4 td {
  box-shadow: inset 0 3px 0 0 #ffa94d;
}
#contentsMain .hq-user-asst-matrix-root tr.hq-asst-grp-hdr.hq-asst-grp-5 td {
  box-shadow: inset 0 3px 0 0 #38d9a9;
}
#contentsMain .hq-user-asst-matrix-root tr.hq-asst-grp-hdr.hq-asst-grp-6 td {
  box-shadow: inset 0 3px 0 0 #adb5bd;
}

/* 본사 사용자설정 — 태블릿모드: 담당자 권한 매트릭스 (데스크톱과 동일 톤) */
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-0 td,
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-1 td,
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-2 td,
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-3 td,
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-4 td,
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-5 td,
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-6 td {
  background-color: inherit;
}
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-0 td { background-color: rgba(13, 110, 253, 0.06); }
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-1 td { background-color: rgba(25, 135, 84, 0.07); }
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-2 td { background-color: rgba(111, 66, 193, 0.07); }
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-3 td { background-color: rgba(214, 51, 132, 0.07); }
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-4 td { background-color: rgba(253, 126, 20, 0.08); }
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-5 td { background-color: rgba(32, 201, 151, 0.08); }
#contentsMain .hq-user-tablet-matrix-root .hq-asst-grp-6 td { background-color: rgba(108, 117, 125, 0.1); }
#contentsMain .hq-user-asst-matrix-root .org-perm-level-tabs .nav-link,
#contentsMain .hq-user-tablet-matrix-root .org-perm-level-tabs .nav-link {
  font-size: 0.8125rem;
  padding: 0.35rem 0.65rem;
}

/* ========== 본문 카드 섹션 제목(.card-header): 배경테마와 무관하게 기본(DEFAULT) 화면과 동일 톤·글꼴 크기 고정 ========== */
#contentsMain .card > .card-header,
.tab-pane.tabConDiv .card > .card-header {
  background-color: rgba(0, 0, 0, 0.03) !important;
  background-image: none !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.125) !important;
  color: #495057 !important;
  font-size: var(--app-base-font-size) !important;
  font-weight: 600 !important;
}
#contentsMain .card > .card-header span,
.tab-pane.tabConDiv .card > .card-header span {
  color: inherit !important;
}
/* 의도적 파스텔/강조 카드 — 위 고정보다 우선 */
#contentsMain #holdRateCard.card > .card-header,
#contentsMain #commissionPolicyCard.card > .card-header {
  background: rgba(179, 217, 242, 0.5) !important;
  border-bottom-color: #b3d9f2 !important;
  color: #31708f !important;
}
#contentsMain #chargebackPolicyCard > .card-header {
  background: #ffe4e6 !important;
  border-bottom-color: #fecdd3 !important;
  color: #7f1d2d !important;
}
#contentsMain .comp-reg-form .card.pg-comp-reg-void-refund-panel > .card-header {
  background: #fff3c4 !important;
  border-bottom-color: #f0e0a8 !important;
  color: #5c4d1a !important;
}

/* ========== 운영관리 — 통합 리포트: 한 줄 표시·파스텔 버킷·가맹 교차 배경 ========== */
.content-inner--ops-integrated-report .integrated-report-wrap {
  overflow-x: auto;
}
.content-inner--ops-integrated-report .integrated-report-wrap table.integrated-report-grid {
  width: max(100%, 1400px);
  table-layout: auto;
  font-size: 0.8125rem;
}
.content-inner--ops-integrated-report .integrated-report-wrap table.integrated-report-grid th,
.content-inner--ops-integrated-report .integrated-report-wrap table.integrated-report-grid td {
  white-space: nowrap;
  vertical-align: middle;
  padding-left: 0.55rem;
  padding-right: 0.55rem;
}
.content-inner--ops-integrated-report .integrated-report-wrap table.integrated-report-grid .integrated-report-cell--money {
  min-width: 9rem;
  white-space: nowrap;
}
.content-inner--ops-integrated-report .integrated-report-wrap table.integrated-report-grid th.integrated-report-th--base {
  background: #f8f9fa;
  color: #343a40;
}
.content-inner--ops-integrated-report .integrated-report-wrap table.integrated-report-grid td.integrated-report-td--base {
  background: #fff;
}
/* 상태별 버킷 (헤더 1행 + 금액/건수 셀) */
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-th--SUCCESS,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-td--SUCCESS {
  background: #fff9db !important;
  border-color: #ffec99 !important;
}
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-th--CANCEL,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-td--CANCEL {
  background: #e7f5ff !important;
  border-color: #d0ebff !important;
}
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-th--FAIL,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-td--FAIL {
  background: #fff4e6 !important;
  border-color: #ffd8a8 !important;
}
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-th--VOID,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-td--VOID {
  background: #ebfbee !important;
  border-color: #b2f2bb !important;
}
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-th--EMAIL_VOID,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-td--EMAIL_VOID {
  background: #e6fcf5 !important;
  border-color: #96f2d7 !important;
}
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-th--REFUND,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-td--REFUND {
  background: #ffe8e8 !important;
  border-color: #ffc9c9 !important;
}
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-th--FORCE_REFUND,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-td--FORCE_REFUND {
  background: #ffe3e3 !important;
  border-color: #ffb3b3 !important;
}
/* 가맹 블록 교차 색 */
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-merch--even,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-merch--even {
  background: #f3f0ff !important;
  border-color: #d0bfff !important;
}
.content-inner--ops-integrated-report .integrated-report-wrap th.integrated-report-merch--odd,
.content-inner--ops-integrated-report .integrated-report-wrap td.integrated-report-merch--odd {
  background: #e7fcf8 !important;
  border-color: #99e9d2 !important;
}
.content-inner--ops-integrated-report .integrated-report-wrap tr.integrated-report-day-row:hover td {
  filter: brightness(0.97);
}

/* ========== 태블릿 UI 모드 — 협소 디스플레이용 고밀도·소형 타이포 ==========
   html.pg-admin--tablet 일 때만 적용. 터치는 유지하되 정보 밀도를 우선합니다. */
html.pg-admin--tablet {
  /* 기본(13px)보다 한 단계 촘촘 — 매우 좁은 폭에서만 살짝 더 줄어듦 */
  --app-base-font-size: clamp(10.5px, 2.55vw, 11.75px);
  --app-form-sm-font-size: clamp(10px, 2.35vw, 11px);
  --app-table-font-size: clamp(9.5px, 2.25vw, 10.5px);
  --table-row-padding-y: 2px;
  --pg-tablet-rail: rgba(124, 140, 255, 0.95);
  --pg-tablet-rail-glow: rgba(124, 140, 255, 0.22);
  font-size: var(--app-base-font-size);
  letter-spacing: -0.012em;
  -webkit-font-smoothing: antialiased;
}

/* 본문 영역: 미세 격자로 스크롤 영역만 구획(눈 피로 최소) */
html.pg-admin--tablet .content-page {
  background-color: #f3f4f6;
  background-image:
    linear-gradient(rgba(15, 23, 42, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 23, 42, 0.03) 1px, transparent 1px);
  background-size: 20px 20px;
}

/* 상단 바: 얇은 글래스 느낌 + 높이 절약 */
html.pg-admin--tablet .header-top {
  min-height: 42px;
  padding: 0 10px 0 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(232, 232, 232, 0.98));
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom-color: rgba(0, 0, 0, 0.06);
}
html.pg-admin--tablet .header-top-right {
  gap: 8px 10px;
}
html.pg-admin--tablet .header-user-icon {
  font-size: 1.2rem;
}
html.pg-admin--tablet .btn-header-close {
  padding: 4px 10px;
  font-size: var(--app-base-font-size);
}
html.pg-admin--tablet .pg-pay-lang-inline {
  padding: 2px 8px;
  gap: 2px 6px;
  font-size: var(--app-base-font-size);
  border-radius: 999px;
}
html.pg-admin--tablet .header-top-right .pg-tablet-shell-inline .form-check-input {
  width: 2.15rem;
  height: 1.15rem;
}

/* 태블릿 모드: 좌측 사이드 메뉴 숨김 — 상단 탭·아이콘 런처만 사용 */
html.pg-admin--tablet .left-side-menu {
  display: none !important;
}
/* 접힘 플라이아웃 잔상 방지 */
html.pg-admin--tablet #flyout-submenu.flyout-submenu,
html.pg-admin--tablet .flyout-submenu {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* 탭 행: 한 줄에 더 많이 */
html.pg-admin--tablet .content-tab-row {
  min-height: 32px;
  padding: 0 6px;
}
html.pg-admin--tablet .content-tabs .tab-a {
  padding: 5px 9px;
  font-size: var(--app-base-font-size);
}
html.pg-admin--tablet .content-tabs .tab-close-button {
  margin: 0 2px;
  padding: 0 4px;
  font-size: var(--app-form-sm-font-size);
}

/* 본문 패딩·표·카드·폼 */
html.pg-admin--tablet .content-inner {
  padding: 8px 10px;
  font-size: var(--app-base-font-size);
}
html.pg-admin--tablet .content-inner .card {
  border-radius: 6px;
}
html.pg-admin--tablet .content-inner .card-header,
html.pg-admin--tablet .tab-pane.tabConDiv .card-header {
  padding: 0.35rem 0.55rem;
  font-size: var(--app-form-sm-font-size);
  font-weight: 600;
}
html.pg-admin--tablet .content-inner .card-body,
html.pg-admin--tablet .tab-pane.tabConDiv .card-body {
  padding: 0.45rem 0.55rem;
}
html.pg-admin--tablet .content-inner .form-label,
html.pg-admin--tablet .tab-pane.tabConDiv .form-label {
  margin-bottom: 0.2rem;
  font-size: var(--app-form-sm-font-size);
  font-weight: 600;
  color: #374151;
}
html.pg-admin--tablet .content-inner .form-control,
html.pg-admin--tablet .content-inner .form-select,
html.pg-admin--tablet .tab-pane.tabConDiv .form-control,
html.pg-admin--tablet .tab-pane.tabConDiv .form-select {
  padding: 0.22rem 0.45rem;
  font-size: var(--app-form-sm-font-size);
  min-height: calc(1.5em + 6px);
}
html.pg-admin--tablet .content-inner .btn,
html.pg-admin--tablet .tab-pane.tabConDiv .btn {
  padding: 0.25rem 0.5rem;
  font-size: var(--app-form-sm-font-size);
  line-height: 1.25;
}
html.pg-admin--tablet .content-inner .btn-sm,
html.pg-admin--tablet .tab-pane.tabConDiv .btn-sm {
  padding: 0.15rem 0.4rem;
  font-size: var(--app-table-font-size);
}
html.pg-admin--tablet .content-inner .table,
html.pg-admin--tablet .tab-pane.tabConDiv .table {
  font-size: var(--app-table-font-size);
}
html.pg-admin--tablet .content-inner .table > :not(caption) > * > *,
html.pg-admin--tablet .tab-pane.tabConDiv .table > :not(caption) > * > * {
  padding: 0.2rem 0.3rem;
  vertical-align: middle;
}
html.pg-admin--tablet .content-inner .table thead th,
html.pg-admin--tablet .tab-pane.tabConDiv .table thead th {
  font-size: var(--app-table-font-size);
  font-weight: 600;
  white-space: nowrap;
}

/* 검색·액션 한 줄 밀도 */
html.pg-admin--tablet .content-inner .row.g-2,
html.pg-admin--tablet .tab-pane.tabConDiv .row.g-2 {
  --bs-gutter-y: 0.35rem;
  --bs-gutter-x: 0.45rem;
}
html.pg-admin--tablet .content-inner .pagination,
html.pg-admin--tablet .tab-pane.tabConDiv .pagination {
  font-size: var(--app-table-font-size);
}

/* 모달·알림도 동일 스케일 */
html.pg-admin--tablet .modal-header,
html.pg-admin--tablet .modal-body,
html.pg-admin--tablet .modal-footer {
  padding: 0.5rem 0.65rem;
  font-size: var(--app-base-font-size);
}

html.pg-admin--tablet #contentsMain {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/* 태블릿 모드 메인(/main): 아이콘 런처 — 터치·태블릿 우선(Table Order 스타일) */
#contentsMain.pg-tablet-main-active > .row:first-child {
  display: none;
}
.pg-tablet-launch-board {
  padding: 0.5rem 0 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}
.pg-tablet-launch-hero {
  margin-bottom: 1.25rem;
  padding: 0.25rem 0.15rem 0;
}
.pg-tablet-launch-title {
  font-size: clamp(1.35rem, 3.2vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 0.35rem;
  color: #0f172a;
}
.pg-tablet-launch-subtitle {
  font-size: clamp(0.95rem, 2.2vw, 1.1rem);
  color: #64748b;
}
.pg-tablet-launch-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: clamp(0.75rem, 2vw, 1.15rem);
}
.pg-tablet-launch-cell {
  min-width: 0;
}
.pg-tablet-launch-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: clamp(7.5rem, 18vw, 10.5rem);
  padding: clamp(0.85rem, 2.5vw, 1.25rem) 0.65rem;
  border: none;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.06);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: transform 0.12s ease, box-shadow 0.15s ease;
  color: #0f172a;
}
.pg-tablet-launch-tile:hover,
.pg-tablet-launch-tile:focus-visible {
  outline: none;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}
.pg-tablet-launch-tile:active {
  transform: scale(0.97);
}
.pg-tablet-launch-tile.is-disabled,
.pg-tablet-launch-tile.is-disabled:hover,
.pg-tablet-launch-tile.is-disabled:focus-visible,
.pg-tablet-launch-tile.is-disabled:active {
  transform: none;
  cursor: not-allowed;
  opacity: 0.52;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
.pg-tablet-launch-tile.is-disabled .pg-tablet-launch-icon-wrap {
  filter: grayscale(0.35);
}
.pg-tablet-launch-section--merchant {
  margin-bottom: 1.25rem;
}
.pg-tablet-launch-section-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.65rem;
  padding: 0 0.1rem;
}
.pg-tablet-launch-section-title {
  font-size: clamp(0.95rem, 2.2vw, 1.05rem);
  font-weight: 700;
  color: #475569;
  margin: 0;
  padding: 0;
}
.pg-tablet-launch-section-note {
  font-size: clamp(0.8rem, 1.9vw, 0.9rem);
  font-weight: 500;
  color: #94a3b8;
  line-height: 1.35;
}
.pg-tablet-launch-section-title--menus {
  margin-top: 0.35rem;
}
.pg-tablet-launch-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(3.5rem, 10vw, 4.75rem);
  height: clamp(3.5rem, 10vw, 4.75rem);
  border-radius: 1.1rem;
  margin-bottom: 0.65rem;
  background: var(--pg-tablet-tile-bg, #e8f1ff);
  color: var(--pg-tablet-tile-fg, #0d6efd);
}
.pg-tablet-launch-icon-wrap .bi {
  font-size: clamp(1.85rem, 5vw, 2.65rem);
  line-height: 1;
}
.pg-tablet-launch-lbl {
  font-size: clamp(0.95rem, 2.4vw, 1.12rem);
  font-weight: 700;
  text-align: center;
  line-height: 1.3;
  word-break: keep-all;
  overflow-wrap: anywhere;
  max-width: 100%;
  padding: 0 0.15rem;
}
.pg-tablet-launch-tile--comp {
  --pg-tablet-tile-bg: #e8f1ff;
  --pg-tablet-tile-fg: #0d6efd;
}
.pg-tablet-launch-tile--pay {
  --pg-tablet-tile-bg: #e8f6ee;
  --pg-tablet-tile-fg: #198754;
}
.pg-tablet-launch-tile--settle {
  --pg-tablet-tile-bg: #f3eef9;
  --pg-tablet-tile-fg: #6f42c1;
}
.pg-tablet-launch-tile--bot {
  --pg-tablet-tile-bg: #fff4e8;
  --pg-tablet-tile-fg: #e8590c;
}
.pg-tablet-launch-tile--ops {
  --pg-tablet-tile-bg: #e6faf5;
  --pg-tablet-tile-fg: #0ca678;
}
.pg-tablet-launch-tile--user {
  --pg-tablet-tile-bg: #fcebec;
  --pg-tablet-tile-fg: #dc3545;
}
.pg-tablet-launch-tile--default {
  --pg-tablet-tile-bg: #f1f5f9;
  --pg-tablet-tile-fg: #475569;
}
.pg-tablet-launch-empty {
  padding: 2rem 1rem;
  text-align: center;
  border-radius: 1rem;
  background: #f8fafc;
}
.pg-tablet-launch-empty-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.pg-tablet-launch-empty-desc {
  color: #64748b;
  font-size: 0.95rem;
}
html.pg-admin--tablet .content-inner {
  padding-left: clamp(0.75rem, 2vw, 1.25rem);
  padding-right: clamp(0.75rem, 2vw, 1.25rem);
}
html.pg-admin--tablet .pg-tablet-launch-grid {
  grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
  gap: 1.15rem;
}
html.pg-admin--tablet .pg-tablet-launch-tile {
  min-height: clamp(8.5rem, 20vw, 11rem);
}
@media (min-width: 768px) {
  .pg-tablet-launch-grid {
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  }
}
@media (min-width: 1024px) {
  .pg-tablet-launch-grid {
    grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  }
}
@media (max-width: 380px) {
  .pg-tablet-launch-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 태블릿설정 — 조직×메뉴 체크 매트릭스 */
.hq-ops-mode-matrix-wrap {
  max-height: min(72vh, 42rem);
  overflow: auto;
}
.hq-ops-mode-matrix-grid thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bs-table-bg, #fff);
  box-shadow: inset 0 -1px 0 var(--bs-border-color, #dee2e6);
  font-size: 0.8125rem;
  vertical-align: middle;
}
.hq-ops-mode-matrix-grid .hq-ops-mode-th-menu,
.hq-ops-mode-matrix-grid .hq-ops-mode-td-menu {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 11rem;
  max-width: 18rem;
  background: var(--bs-table-bg, #fff);
  box-shadow: inset -1px 0 0 var(--bs-border-color, #dee2e6);
}
.hq-ops-mode-matrix-grid thead .hq-ops-mode-th-menu {
  z-index: 3;
}
.hq-ops-mode-matrix-grid .hq-ops-mode-th-level {
  min-width: 4.5rem;
  width: 4.75rem;
}
.hq-ops-mode-matrix-grid .hq-ops-mode-td-check {
  width: 4.75rem;
}
.hq-ops-mode-matrix-grid .hq-ops-mode-item-cb {
  width: 1.1rem;
  height: 1.1rem;
  cursor: pointer;
}
.hq-ops-mode-matrix-grid tbody tr:nth-child(odd) > td {
  background-color: rgba(13, 110, 253, 0.04);
}
.hq-ops-mode-matrix-grid tbody tr:nth-child(odd) > .hq-ops-mode-td-menu {
  background-color: rgba(13, 110, 253, 0.06);
}
