/*
Template Name: Velzon - Admin & Dashboard Template
Author: Themesbrand
Website: https://themesbrand.com/
Contact: support@themesbrand.com
File: Custom Css File
*/


/* Table alignment */
table > thead {
  --vz-table-bg: var(--vz-tertiary-bg);
}

table th {
  text-align: center !important;
  background-color: var(--vz-table-bg, var(--vz-tertiary-bg));
}

table td {
  text-align: center;
}

table td.text-left {
  text-align: left !important;
}

table td.text-right {
  text-align: right !important;
}

table tr.table-empty-row {
  height: 150px;
}

table tr.table-empty-row > td {
  vertical-align: middle;
}

.merchant-list-table {
  border-left: 0 !important;
  border-right: 0 !important;
}

.merchant-list-table > :not(caption) > * > * {
  border-left: 0 !important;
  border-right: 0 !important;
}

/* Publish list tables use horizontal row separators without vertical cell borders. */
.table.table-bordered.text-nowrap.text-center {
  border-left: 0 !important;
  border-right: 0 !important;
}

.table.table-bordered.text-nowrap.text-center > :not(caption) > * > * {
  border-left: 0 !important;
  border-right: 0 !important;
}

/* Keep inline SVG sidebar icons aligned with icon-font menu items. */
.navbar-menu .navbar-nav .nav-link.dianping-menu > i {
  display: flex;
  flex: 0 0 1.75rem;
  align-items: center;
  justify-content: flex-start;
  width: 1.75rem;
  min-width: 1.75rem;
  height: 1.5rem;
  line-height: 1;
}

.navbar-menu .navbar-nav .nav-link.dianping-menu > i > svg {
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 0;
}

.navbar-menu .navbar-nav .nav-link.dianping-menu > i > svg {
  fill: currentColor;
}

.main-content {
  background: transparent;
}

.profile-setting-page {
  margin-left: -8px;
}

.profile-setting-page .container-fluid {
  padding-left: 0;
  padding-right: 0;
}

.profile-setting-page .position-relative {
  margin-left: 0;
  margin-right: 0;
}

.profile-setting-page .choices,
.profile-setting-page .choices__inner,
.profile-setting-page .choices[data-type*="select-one"] .choices__inner {
  border-radius: 0.25rem !important;
}

/* 정산 검색조건의 결제수단 Select2가 input-group 밖으로 밀리지 않도록 한다. */
.payment-group {
  flex-wrap: nowrap;
}

.payment-group > .select2-container {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  width: 1% !important;
}

.payment-group > .select2-container::after {
  content: "";
  position: absolute;
  top: 50%;
  right: .9rem;
  width: .4rem;
  height: .4rem;
  margin-top: -.3rem;
  border-right: 1.5px solid #6c757d;
  border-bottom: 1.5px solid #6c757d;
  transform: rotate(45deg);
  pointer-events: none;
  z-index: 2;
}

.payment-group .select2-selection--multiple {
  height: calc(1.5em + 1rem + 2px);
  min-height: calc(1.5em + 1rem + 2px);
  overflow: hidden;
}

.payment-group .select2-selection__rendered {
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
  white-space: nowrap;
}

/* 가맹점 조회조건의 첫 번째 Choices 선택 영역을 절반 너비로 표시한다. */
#searchType + .choices,
.input-group > .choices:has(#searchType) {
  flex: 0 0 25%;
  max-width: 25%;
  width: 25%;
}

/* Match publish select controls: show exactly one chevron for Choices selects. */
.choices[data-type*="select-one"] {
  position: relative;
}

.choices[data-type*="select-one"]::after {
  display: none !important;
}

.choices[data-type*="select-one"] .choices__inner {
  position: relative;
}

.choices[data-type*="select-one"] .choices__inner::after {
  content: "";
  position: absolute;
  top: 50%;
  right: .9rem;
  width: .4rem;
  height: .4rem;
  margin-top: -.3rem;
  border-right: 1.5px solid #6c757d;
  border-bottom: 1.5px solid #6c757d;
  transform: rotate(45deg);
  pointer-events: none;
  z-index: 2;
}

.choices.is-open[data-type*="select-one"] .choices__inner::after,
.payment-group > .select2-container--open::after {
  margin-top: .05rem !important;
  transform: rotate(-135deg) !important;
}

select.form-select {
  padding-right: 2.5rem;
}

/* FAQ */
.faq-accordion {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

.faq-accordion .accordion-item {
  overflow: hidden;
  border: 1px solid var(--vz-border-color);
  border-radius: .375rem;
}

.faq-accordion .accordion-button {
  padding: .9rem 1rem;
  color: var(--vz-heading-color);
  font-weight: 600;
  background: var(--vz-secondary-bg);
  box-shadow: none;
}

.faq-accordion .accordion-button:not(.collapsed) {
  color: var(--vz-heading-color);
  background: var(--vz-tertiary-bg);
}

.faq-accordion .accordion-body {
  min-height: 84px;
  padding: 1rem;
  color: var(--vz-secondary-color);
  line-height: 1.8;
}

.meituan-chart {
  height: 250px;
  min-height: 250px;
}

/* Match the advertiser Select2 control to the adjacent Flatpickr input. */
.meituan-advertiser-select + .select2-container {
  width: 100% !important;
}

.meituan-advertiser-select + .select2-container .select2-selection--single {
  display: flex;
  align-items: center;
  height: calc(1.5em + 1rem + calc(var(--vz-border-width) * 2));
  border: var(--vz-border-width) solid var(--vz-input-border-custom);
  border-radius: var(--vz-border-radius);
  background-color: var(--vz-input-bg-custom);
}

.meituan-advertiser-select + .select2-container .select2-selection__rendered {
  padding-left: .75rem;
  line-height: 1.5;
  color: var(--vz-body-color);
}

.meituan-advertiser-select + .select2-container .select2-selection__arrow {
  top: 50% !important;
  bottom: auto !important;
  height: 20px !important;
  right: .25rem !important;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%) !important;
}

.meituan-advertiser-select + .select2-container .select2-selection__arrow b {
  top: 50% !important;
  left: 50% !important;
  position: absolute !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
}

.meituan-advertiser-select + .select2-container--focus .select2-selection--single,
.meituan-advertiser-select + .select2-container--open .select2-selection--single {
  border-color: var(--vz-primary);
}

.metric-chart-expanded .meituan-chart {
  height: 500px;
  min-height: 500px;
}

.meituan-detail-tools {
  z-index: 2;
}

.meituan-filter-popover {
  position: absolute;
  top: calc(100% + .5rem);
  right: 0;
  z-index: 1050;
  display: none;
  width: 300px;
  padding: 1rem;
  border: 1px solid var(--vz-border-color);
  border-radius: .375rem;
  background: var(--vz-card-bg);
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .12);
}

.meituan-filter-popover.show {
  display: block;
}

.meituan-filter-popover__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .875rem;
  font-size: .8125rem;
  font-weight: 600;
}

.meituan-filter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem .625rem;
}

.meituan-filter-option {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  color: var(--vz-body-color);
  font-size: .8125rem;
  white-space: nowrap;
  cursor: pointer;
}

.meituan-filter-option input {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  accent-color: var(--vz-primary);
}

.meituan-sortable-column {
  position: relative;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}

.meituan-sortable-column:hover {
  color: var(--vz-heading-color);
}

.meituan-table-header-content {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.meituan-sort-indicator {
  color: var(--vz-tertiary-color);
  font-size: .75rem;
  line-height: 1;
}

.meituan-info-button {
  padding: 0;
  border: 0;
  color: var(--vz-tertiary-color);
  background: transparent;
  font-size: .75rem;
  line-height: 1;
  cursor: help;
}

.meituan-info-button:hover,
.meituan-info-button[aria-expanded="true"] {
  color: var(--vz-primary);
}

.meituan-column-tooltip {
  position: absolute;
  bottom: calc(100% + .45rem);
  left: 0;
  z-index: 1060;
  display: none;
  width: 220px;
  padding: .6rem .75rem;
  border: 1px solid var(--vz-border-color);
  border-radius: .375rem;
  color: var(--vz-body-color);
  background: var(--vz-card-bg);
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .12);
  font-size: .75rem;
  font-weight: 400;
  line-height: 1.5;
  white-space: normal;
  text-align: left;
}

.meituan-column-tooltip.show {
  display: block;
}

.meituan-column-tooltip.is-floating {
  position: fixed;
  top: auto;
  bottom: auto;
  pointer-events: none;
}

.meituan-sortable-column:hover > .meituan-column-tooltip {
  display: block;
}

/* Keep registration forms aligned with the publish form layout while preserving legacy selectors. */
.registration-form .input-group {
  display: flex;
  flex-wrap: wrap;
}

.registration-form .input-group > label.input-group-text {
  flex: 0 0 100%;
  width: 100% !important;
  justify-content: flex-start;
  padding: 0 0 .5rem;
  border: 0;
  background: transparent;
  color: var(--vz-body-color);
  font-size: .8125rem;
  font-weight: 500;
}

.registration-form .input-group > label.input-group-text + .form-control,
.registration-form .input-group > label.input-group-text + select.form-select {
  flex: 1 1 0%;
  width: 1%;
}

.meituan-info-button:hover + .meituan-sort-indicator + .meituan-column-tooltip,
.meituan-sortable-column:has(.meituan-info-button:hover) .meituan-column-tooltip {
  display: block;
}

@media (max-width: 575.98px) {
  .meituan-filter-popover {
    right: -1rem;
    width: min(300px, calc(100vw - 2rem));
  }
}

/* 고덕지도 광고 성과 대시보드 */
.amap-dashboard-section .card-header { padding-bottom: .75rem; border-bottom: 0; }
.amap-dashboard-heading .card-title { display: flex; align-items: center; gap: .55rem; font-weight: 700; }
.amap-title-dot { width: .55rem; height: .55rem; border-radius: 50%; background: #3478f6; }
.amap-status-badge { display: inline-flex; align-items: center; padding: .2rem .55rem; border-radius: 999px; color: #16864b; background: #dcfce7; font-size: .6875rem; font-weight: 600; }
.amap-summary-card { display: flex; flex-direction: column; justify-content: space-between; min-height: 88px; padding: .7rem .8rem; border: 1px solid var(--vz-border-color); border-radius: .5rem; background: var(--vz-card-bg); }
.amap-summary-card > span { color: var(--vz-secondary-color); font-size: .75rem; font-weight: 600; }
.amap-summary-card > strong { align-self: flex-end; color: var(--vz-heading-color); font-size: 1.2rem; font-weight: 700; line-height: 1.2; text-align: right; }
.amap-chart-select { min-width: 112px; }
.amap-chart-select-wrap .choices { flex: 0 0 250px; width: 250px; min-width: 250px; }
.amap-chart-select-wrap .choices__item--selectable { white-space: nowrap; }
.amap-dashboard-chart { height: 220px; min-height: 220px; }
.amap-detail-tools { z-index: 2; }
.amap-filter-popover { position: absolute; top: calc(100% + .5rem); right: 0; z-index: 1050; display: none; width: 360px; max-height: min(70vh, 520px); overflow-y: auto; padding: 1rem; border: 1px solid var(--vz-border-color); border-radius: .5rem; background: var(--vz-card-bg); box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .12); }
.amap-filter-popover.show { display: block; }
.amap-filter-group + .amap-filter-group { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--vz-border-color); }
.amap-filter-group > strong { display: block; margin-bottom: .7rem; color: var(--vz-heading-color); font-size: .9rem; }
.amap-filter-group label { display: inline-flex; align-items: center; width: 49%; gap: .4rem; margin: 0 0 .65rem; color: var(--vz-body-color); font-size: .8rem; cursor: pointer; }
.amap-filter-group input { flex: 0 0 auto; width: 1rem; height: 1rem; accent-color: var(--vz-primary); }
.amap-sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.amap-header-label { display: inline-flex; align-items: center; gap: .35rem; }
.amap-sort-indicator { color: var(--vz-tertiary-color); font-size: .75rem; }
.amap-info-button { padding: 0; border: 0; color: var(--vz-tertiary-color); background: transparent; font-size: .75rem; line-height: 1; cursor: help; }
.amap-info-button:hover { color: var(--vz-primary); }
@media (max-width: 575.98px) { .amap-filter-popover { right: -1rem; width: min(360px, calc(100vw - 2rem)); } }

/* 대시보드 달력: 오늘 날짜와 선택한 날짜를 구분한다. */
.upcoming-scheduled .flatpickr-calendar .flatpickr-day.today:not(.selected) {
  color: #f59e0b !important;
  background-color: rgba(245, 158, 11, 0.12) !important;
  border: 2px solid #f59e0b !important;
}

.upcoming-scheduled .flatpickr-calendar .flatpickr-day.today:not(.selected):hover,
.upcoming-scheduled .flatpickr-calendar .flatpickr-day.today:not(.selected):focus {
  color: #d97706 !important;
  background-color: rgba(245, 158, 11, 0.22) !important;
  border-color: #d97706 !important;
}

/* 모달 내에서 열린 Choices 드롭다운이 다음 입력 항목에 가려지지 않도록 한다. */
.modal .choices.is-open {
  z-index: 1066 !important;
}

.transaction-detail-modal {
  max-width: 900px;
}

.transaction-detail-modal .modal-body {
  padding: 2rem 1rem 1rem;
}

.transaction-detail-section + .transaction-detail-section {
  margin-top: 2rem;
}

.transaction-detail-section__title {
  margin-bottom: .5rem;
  color: var(--vz-heading-color);
  font-size: .875rem;
  font-weight: 700;
}

.transaction-detail-table {
  table-layout: fixed;
  margin-bottom: 0;
}

.transaction-detail-table th,
.transaction-detail-table td {
  height: 46px;
  padding: .65rem .5rem;
  vertical-align: middle;
  word-break: break-all;
}

.transaction-detail-table th {
  width: 15%;
  color: #092659;
  font-weight: 600;
  background: var(--vz-tertiary-bg);
}

.transaction-detail-table td {
  color: #092659;
  text-align: left;
  background: var(--vz-secondary-bg);
}

.transaction-detail-table .text-end {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

/* 거래 상세 내용은 공통 알림 모달로 표시되므로 동일한 모달 여백을 적용한다. */
#alertModalDialog:has(#transForm) .modal-body {
  padding: 2rem 1rem 1rem;
}

#alertModalDialog:has(#transForm) .modal-footer .btn {
  padding: .5rem 1rem;
}

@media (max-width: 767.98px) {
  .transaction-detail-modal .modal-body {
    padding-top: 1.25rem;
  }

  #alertModalDialog:has(#transForm) .modal-body {
    padding-top: 1.25rem;
  }

  .transaction-detail-section + .transaction-detail-section {
    margin-top: 1.5rem;
  }

  .transaction-detail-table,
  .transaction-detail-table tbody,
  .transaction-detail-table tr,
  .transaction-detail-table th,
  .transaction-detail-table td {
    display: block;
    width: 100%;
  }

  .transaction-detail-table tr {
    display: grid;
    grid-template-columns: minmax(96px, 34%) 1fr;
  }

  .transaction-detail-table th,
  .transaction-detail-table td {
    height: auto;
    min-height: 42px;
  }

  .transaction-detail-table td[colspan] {
    grid-column: 2;
  }
}
.choices.bg-light .choices__inner {
    background-color: var(--vz-light-bg-subtle, #f8f9fa);
    color: var(--vz-secondary-color, #6c757d);
}

.choices.is-invalid {
    margin-bottom: 0;
}

/* Choices는 원본 select가 숨겨지므로 select의 .is-invalid만으로는
 * 화면에 보이는 선택 상자의 테두리가 변경되지 않는다. */
.choices.is-invalid .choices__inner {
    border-color: var(--vz-form-invalid-border-color, #f06548) !important;
}


/* Choices 드롭다운이 다른 입력 필드 아래로 들어가는 문제 해결 */
.choices {
    position: relative;
}

.choices.is-open {
    z-index: 9999 !important;
}

.choices.is-open .choices__list--dropdown,
.choices.is-open .choices__list[aria-expanded] {
    z-index: 10000 !important;
}
