/* ── 예약제한 모달 ──────────────────────────── */

.sd_modal {
  max-width: 38rem;
}

.sd_modal_edit {
  max-width: 28rem;
}

/* 수정 모달: 날짜 버튼 너비 확장 */
.sd_modal_edit .sd_daterange_input {
  flex: 1 1 auto;
  width: auto;
}

/* 토글 버튼 원래 크기 유지 */
.sd_modal .toggle_btn_group {
  width: fit-content;
}

/* ── 상단 한 줄 배치 ── */
.sd_top_row {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
}

.sd_top_cell {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.sd_top_cell:first-child {
  width: 10rem;
  flex-shrink: 0;
}

.sd_top_cell_period {
  flex: 1;
  min-width: 0;
}

.sd_top_cell_toggle {
  flex-shrink: 0;
}

/* ── DateRange ── */
.sd_daterange_input {
  flex: 1 1 auto;
  width: auto;
}

.sd_modal .daterange_dropdown {
  right: auto;
}

/* ── 호텔 그룹 chip 영역 ── */
.sd_chip_area {
  border: 1px solid var(--c-input-border);
  border-radius: var(--radius-lg);
  padding: 0.625rem 0.75rem;
  max-height: 5.5rem;
  overflow-y: auto;
}

.dark .sd_chip_area {
  border-color: var(--c-border);
}

.sd_chip {
  padding: 0.3rem 0.75rem;
  font-size: 0.8125rem;
  /* 13px */
  border-radius: var(--radius-2xl);
}

/* ── 듀얼 리스트 ── */
.sd_dual {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}

.sd_dual_panel {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--c-input-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.sd_dual_panel.is_selected {
  border-color: var(--c-primary-300);
}

.dark .sd_dual_panel {
  border-color: var(--c-border);
}

.dark .sd_dual_panel.is_selected {
  border-color: var(--c-primary-600);
}

.sd_dual_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.375rem 0.75rem;
}

.sd_dual_panel.is_selected .sd_dual_header {
  border-bottom-color: var(--c-primary-200);
}

.dark .sd_dual_header {
  background-color: var(--c-surface);
  border-bottom-color: var(--c-border);
}

.sd_dual_title {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--c-text-2);
}

.sd_dual_panel.is_selected .sd_dual_title {
  color: var(--c-primary-500);
}

.sd_dual_clear {
  font-size: 0.6875rem;
  color: var(--c-text-3);
  background: none;
  border: none;
  cursor: pointer;
  transition: color var(--duration-fast) var(--ease-default);
}

.sd_dual_clear:hover {
  color: var(--c-error);
}

/* 검색 */
.sd_dual_search {
  position: relative;
  padding: 0.25rem 0.5rem;
}

.dark .sd_dual_search {
  border-bottom-color: var(--c-border);
}

.sd_dual_search_icon {
  position: absolute;
  left: 1.125rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.875rem;
  height: 0.875rem;
  color: var(--c-text-3);
}

.sd_dual_search_input {
  width: 100%;
  padding: 0.375rem 0.5rem 0.375rem 2rem;
  font-size: 0.8125rem;
  border: 1px solid var(--c-input-border);
  border-radius: 9999px;
  background-color: var(--c-white);
  color: var(--c-text-1);
  outline: none;
  transition: border-color var(--duration-fast) var(--ease-default);
}

.sd_dual_search_input:focus {
  border-color: var(--c-primary-400);
}

.dark .sd_dual_search_input {
  background-color: var(--c-surface);
  border-color: var(--c-border);
  color: var(--c-text-2);
}

/* 리스트 */
.sd_dual_list {
  flex: 1;
  overflow-y: auto;
  min-height: 12rem;
  max-height: 12rem;
}

/* 검색 없는 패널은 리스트가 남은 공간 채움 */
.sd_dual_panel.is_selected .sd_dual_list {
  max-height: none;
}

.sd_dual_item {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.4375rem 0.75rem;
  cursor: pointer;
  user-select: none;
  transition: background-color var(--duration-fast) var(--ease-default);
  border-bottom: 1px solid var(--c-gray-50);
}

.dark .sd_dual_item {
  border-bottom-color: var(--c-border);
}

.sd_dual_item:last-child {
  border-bottom: none;
}

.sd_dual_item:hover {
  background-color: var(--c-bg-hover);
}

.sd_dual_item.is_active {
  background-color: var(--c-primary-100);
}

.sd_dual_item_name {
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--c-text-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}

.sd_dual_item_sub {
  font-size: 0.75rem;
  color: var(--c-text-3);
  white-space: nowrap;
  flex-shrink: 0;
}

.sd_dual_empty {
  padding: 2rem 1rem;
  text-align: center;
  font-size: 0.8125rem;
  color: var(--c-text-3);
}

/* 이동 버튼 */
.sd_dual_actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  flex-shrink: 0;
}

.sd_dual_btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--c-input-border);
  background-color: var(--c-white);
  color: var(--c-text-2);
  cursor: pointer;
  transition: all var(--duration-fast) var(--ease-default);
}

.sd_dual_btn:hover:not(:disabled) {
  border-color: var(--c-primary-300);
  color: var(--c-primary-500);
  background-color: rgba(var(--c-primary-rgb, 27, 58, 107), 0.04);
}

.sd_dual_btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.dark .sd_dual_btn {
  background-color: var(--c-surface);
  border-color: var(--c-border);
}

.sd_dual_btn_icon {
  width: 0.875rem;
  height: 0.875rem;
}

/* 개별 제거 X */
.sd_dual_remove {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.125rem;
  background: none;
  border: none;
  color: var(--c-text-3);
  cursor: pointer;
  border-radius: var(--radius-sm);
  transition: color var(--duration-fast) var(--ease-default);
}

.sd_dual_remove:hover {
  color: var(--c-error);
}

/* ── 수정 모드 읽기전용 (cselect_trigger.is_disabled와 동일) ── */
.sd_readonly {
  height: 2.7rem;
  display: flex;
  align-items: center;
  padding: 0 0.75rem;
  background-color: var(--c-gray-50);
  color: var(--c-text-3);
  cursor: not-allowed;
}

.dark .sd_readonly {
  background-color: var(--c-surface-2);
}