/* 관리자 전용 — 사용자 사이트(/assets/themes) CSS와 분리 유지 */

/* 관리자·파트너 좌측 메뉴 너비 */
:root {
  --ct-leftbar-width: 200px;
}

html,
body {
  overflow-x: hidden;
}

.navbar-custom {
  z-index: 1010;
  height: 70px;
  min-height: 70px;
  max-height: 70px;
  overflow: visible;
}

.navbar-custom .topbar-menu li.dropdown,
.navbar-custom .topbar-menu li.dropup {
  max-height: none;
  overflow: visible;
}

.navbar-custom .profile-dropdown {
  z-index: 1020;
}

#accordionExample {
  position: relative;
  z-index: 1;
}

.navbar-custom .topbar {
  height: 70px;
  min-height: 70px;
}

.navbar-custom .top-state {
  padding: 0;
}

.navbar-custom .top-state-alerts {
  margin-top: 0;
  gap: 10px;
}

.admin-alert-toolbar {
  min-height: 40px;
}

.admin-sound-toggle {
  width: 38px;
  height: 38px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ct-border-color);
  color: var(--ct-success);
  background: var(--ct-light);
  flex-shrink: 0;
}

.admin-sound-toggle:hover {
  color: var(--ct-success);
  background: rgba(23, 164, 151, 0.08);
  border-color: rgba(23, 164, 151, 0.35);
}

.admin-sound-toggle.is-muted {
  color: #dc3545;
  background: #fff;
  border-color: rgba(220, 53, 69, 0.35);
}

.admin-sound-toggle.is-muted:hover {
  color: #dc3545;
  background: rgba(220, 53, 69, 0.08);
  border-color: rgba(220, 53, 69, 0.45);
}

.admin-alert-chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-alert-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 38px;
  padding: 0 12px;
  background: #fff;
  border: 1px solid var(--ct-border-color);
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
  color: var(--ct-body-color);
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.admin-alert-chip:hover,
.admin-alert-chip:focus-visible {
  color: var(--ct-body-color);
  border-color: rgba(66, 84, 186, 0.35);
  box-shadow: 0 0 0 1px rgba(66, 84, 186, 0.12);
}

.admin-alert-chip-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  font-size: 16px;
  line-height: 1;
  color: var(--ct-secondary);
}

.admin-alert-chip-label {
  display: inline-flex;
  align-items: center;
  line-height: 1;
  font-weight: 500;
  color: var(--ct-gray-700);
}

.admin-alert-chip-badge {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 22px;
  min-width: 22px;
  padding: 0 7px !important;
  line-height: 1 !important;
  --ct-badge-padding-x: 0;
  --ct-badge-padding-y: 0;
  --ct-badge-font-size: 11px;
  font-weight: 600;
  background: var(--ct-gray-300) !important;
  color: var(--ct-gray-700) !important;
}

.admin-alert-chip.admin-alert-chip-active {
  border-color: rgba(247, 71, 58, 0.45);
  background: rgba(247, 71, 58, 0.04);
}

.admin-alert-chip.admin-alert-chip-active .admin-alert-chip-icon {
  color: var(--ct-danger);
}

.admin-alert-chip.admin-alert-chip-active .admin-alert-chip-badge {
  background: var(--ct-warning) !important;
  color: var(--ct-dark) !important;
}

.admin-alert-chip.admin-alert-chip-active .admin-alert-chip-label {
  color: var(--ct-danger);
  font-weight: 600;
}

.leftside-menu .logo {
  border-bottom: 1px solid #eee;
}

.side-nav .side-nav-title {
  margin-top: 10px;
}

.leftside-menu .logo .admin-brand-text {
  display: inline-block;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
  white-space: nowrap;
  color: var(--ct-menu-item-active-color);
}

.leftside-menu .logo .admin-brand-text-sm {
  display: inline-block;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
  color: var(--ct-menu-item-active-color);
}

.leftside-menu {
  display: flex;
  flex-direction: column;
  padding-bottom: 0 !important;
}

.leftside-menu-scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

/* 파트너 좌측 메뉴 하단 텔레그램 링크 */
.branch-telegram-footer {
  flex-shrink: 0;
  padding: 12px 16px 16px;
  border-top: 1px solid #eee;
}

.branch-telegram-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 8px;
  color: #229ed9;
  font-weight: 600;
  text-decoration: none;
  background: rgba(34, 158, 217, 0.08);
  transition: background 0.15s ease, color 0.15s ease;
}

.branch-telegram-link:hover,
.branch-telegram-link:focus {
  color: #1b8fc4;
  background: rgba(34, 158, 217, 0.16);
}

.branch-telegram-link i {
  font-size: 1.25rem;
  line-height: 1;
}

/* 파트너 헤더 잔액·수수료 */
.branch-header-stats {
  min-width: 0;
  overflow-x: auto;
  padding: 4px 0;
}

.branch-stat-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--ct-light, #f2f2f7);
  border: 1px solid var(--ct-border-color, #e5e7eb);
  white-space: nowrap;
  font-size: 12px;
  line-height: 1.2;
}

.branch-stat-chip.is-alert {
  border-color: rgba(247, 71, 58, 0.35);
  background: rgba(247, 71, 58, 0.08);
}

.branch-stat-label {
  color: var(--ct-gray-600, #6c757d);
  font-weight: 500;
}

.branch-stat-value {
  color: var(--ct-dark, #343a40);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.branch-stat-chip.is-alert .branch-stat-value {
  color: #f7473a;
}

.branch-stat-fees .branch-stat-fee-list {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
  color: var(--ct-dark, #343a40);
  font-variant-numeric: tabular-nums;
}

.branch-stat-fees .user-fee-val {
  color: var(--ct-dark, #343a40);
  font-weight: 700;
}

html[data-bs-theme=dark] .branch-stat-fees .user-fee-val {
  color: #e9ecef;
}

#light-dark-mode {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
}

#light-dark-mode:hover {
  opacity: 0.85;
}

/* 다크 모드 — 커스텀 UI 보정 */
html[data-bs-theme=dark] .leftside-menu .logo {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

html[data-bs-theme=dark] .branch-telegram-footer {
  border-top-color: rgba(255, 255, 255, 0.08);
}

html[data-bs-theme=dark] .branch-telegram-link {
  background: rgba(34, 158, 217, 0.16);
}

html[data-bs-theme=dark] .branch-telegram-link:hover,
html[data-bs-theme=dark] .branch-telegram-link:focus {
  background: rgba(34, 158, 217, 0.28);
}

html[data-bs-theme=dark] .branch-stat-chip {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .branch-stat-label {
  color: #8391a2;
}

html[data-bs-theme=dark] .branch-stat-value {
  color: #e9ecef;
}

html[data-bs-theme=dark] .admin-sound-toggle.is-muted {
  background: rgba(220, 53, 69, 0.12);
}

html[data-bs-theme=dark] .admin-alert-chip {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.1);
}

/* 다크 모드 — 리스트/정산 카드에 하드코딩된 밝은 배경·테두리 보정 */
html[data-bs-theme=dark] .betting-history-card,
html[data-bs-theme=dark] .settlement-daily-card {
  border-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .betting-history-search-bar,
html[data-bs-theme=dark] .settlement-search-bar {
  background: rgba(255, 255, 255, 0.04);
  border-top-color: rgba(255, 255, 255, 0.1);
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .betting-history-tabs,
html[data-bs-theme=dark] .settlement-tabs {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .betting-history-tabs .nav-link,
html[data-bs-theme=dark] .settlement-tabs .nav-link {
  color: #8391a2;
}

html[data-bs-theme=dark] .betting-history-table thead th,
html[data-bs-theme=dark] .settlement-table thead th {
  background: rgba(255, 255, 255, 0.06) !important;
  color: #dee2e6;
  border-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .betting-history-table tbody td,
html[data-bs-theme=dark] .settlement-table tbody td {
  border-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .settlement-table tr.row-total td {
  background: rgba(66, 84, 186, 0.22);
}

html[data-bs-theme=dark] .betting-history-table.is-user-list-layout .user-list-nickname {
  color: #8391a2;
}

html[data-bs-theme=dark] .betting-history-table.is-user-list-layout .user-list-ip-link {
  color: #9aa3b2;
}

html[data-bs-theme=dark] .betting-history-table.is-user-list-layout .user-list-ip-link:hover {
  color: #ced4da;
}

html[data-bs-theme=dark] .border-bottom {
  border-color: rgba(255, 255, 255, 0.1) !important;
}

/* 다크 모드 — 상단 통계 패널 */
html[data-bs-theme=dark] .accordion #collapseOne {
  background-color: var(--ct-secondary-bg);
}

html[data-bs-theme=dark] .panel-stat-header {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .accordion-body .box {
  border-right-color: rgba(255, 255, 255, 0.12) !important;
}

/* 상황판 — 항목명 배지 한글 5글자 고정폭, 숫자 영역 확대 */
.accordion-body .box .row > .title {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: fit-content;
}

.accordion-body .box .row > .value {
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 4.5rem;
}

.accordion-body .box .title span.badge {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 6rem !important;
  min-width: 6rem !important;
  max-width: 6rem !important;
  padding: 0.4rem 0 !important;
  font-size: 12px;
  line-height: 1.3;
  white-space: nowrap;
  text-align: center;
}

html[data-bs-theme=dark] .panel-stat-chip {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  color: #ced4da;
}

html[data-bs-theme=dark] .panel-stat-chip-icon,
html[data-bs-theme=dark] .panel-stat-chip-label {
  color: #ced4da;
}

html[data-bs-theme=dark] .panel-stat-chip-link:hover,
html[data-bs-theme=dark] .panel-stat-chip-link:focus-visible {
  color: #f8f9fa;
}

/* 다크 모드 — 흰색으로 고정된 관리자 패널·카드 */
html[data-bs-theme=dark] .admin-manager-basic-card,
html[data-bs-theme=dark] .admin-manager-basic-card .card-body,
html[data-bs-theme=dark] .admin-online-summary,
html[data-bs-theme=dark] .admin-point-detail-modal,
html[data-bs-theme=dark] .money-adjust-card,
html[data-bs-theme=dark] .admin-deposit-bonus-card .card-header,
html[data-bs-theme=dark] #quill-editor {
  background-color: var(--ct-secondary-bg);
}

html[data-bs-theme=dark] .admin-deposit-bonus-card .card-header {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .admin-field-row,
html[data-bs-theme=dark] .create-user-modal .admin-create-group .admin-field-row {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.12);
}

html[data-bs-theme=dark] .admin-field-row.is-disabled {
  background: rgba(255, 255, 255, 0.06);
}

html[data-bs-theme=dark] .admin-field-row.is-disabled .admin-field-control .form-control,
html[data-bs-theme=dark] .admin-field-row.is-disabled .admin-field-control .form-select {
  background-color: rgba(255, 255, 255, 0.06);
}

html[data-bs-theme=dark] .board-notice-preview-head {
  background: rgba(255, 255, 255, 0.06);
}

html[data-bs-theme=dark] .game-vendor-thumb {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
}

html[data-bs-theme=dark] .control-stat-total {
  background: rgba(247, 71, 58, 0.14);
  border-color: rgba(247, 71, 58, 0.35);
}

html[data-bs-theme=dark] .admin-alert-chip {
  color: #ced4da;
}

html[data-bs-theme=dark] .partner-tree-card {
  border-color: rgba(255, 255, 255, 0.1);
}

html[data-bs-theme=dark] .partner-tree-wrap .jstree-hovered > .jstree-wholerow,
html[data-bs-theme=dark] .partner-tree-wrap .jstree-clicked > .jstree-wholerow {
  background: rgba(255, 255, 255, 0.08) !important;
}

html[data-bs-theme=dark] #modals-slide-in .reply-section,
html[data-bs-theme=dark] #modals-slide-in .reply-history-empty,
html[data-bs-theme=dark] #modals-slide-in .reply-history-item,
html[data-bs-theme=dark] #modals-slide-in .reply-history-item.is-deleted .reply-history-content {
  background: rgba(255, 255, 255, 0.04);
}

@media (max-width: 991.98px) {
  .branch-header-stats {
    justify-content: flex-start !important;
    max-width: calc(100vw - 160px);
  }

  .branch-stat-fees .branch-stat-fee-list {
    gap: 6px;
  }
}

/* 파트너 — 햄버거 숨김 · 사이드바·전체화면 레이아웃 고정 */
html.branch-layout .button-toggle-menu {
  display: none !important;
}

html.branch-layout[data-sidenav-size=full] .leftside-menu,
html.branch-layout[data-sidenav-size=condensed] .leftside-menu,
html.branch-layout[data-sidenav-size=compact] .leftside-menu {
  display: block !important;
  margin-left: 0 !important;
  opacity: 1 !important;
  width: var(--ct-leftbar-width) !important;
  min-width: var(--ct-leftbar-width) !important;
  border-color: var(--ct-border-color) !important;
}

html.branch-layout .content-page,
html.branch-layout .navbar-custom,
html.branch-layout .branch-panel-accordion {
  margin-left: var(--ct-leftbar-width) !important;
}

html.branch-layout .branch-panel-accordion {
  max-width: calc(100% - var(--ct-leftbar-width));
}

html.branch-layout .branch-header-stats {
  max-width: none;
}

.side-nav-second-level {
  margin-left: -20px;
}

.side-nav-second-level .side-nav-link {
  padding-left: calc(var(--ct-menu-item-padding-x) * 2.2);
}

/* 페이지 제목 · breadcrumb */
.admin-page-header {
  padding-left: 20px;
  padding-right: 20px;
}

.page-title-box .breadcrumb-item.active {
  color: var(--ct-primary, #4254ba);
  font-weight: 500;
}

/* 상단바+통계패널 높이(--admin-top-stack-height)에 맞춰 본문 min-height 조정 */
.content-page {
  min-height: calc(100vh - var(--admin-top-stack-height, var(--ct-topbar-height)) - var(--ct-footer-height, 50px));
  transition: margin-left 0.25s ease-in-out, padding 0.25s ease-in-out;
}

html {
  scrollbar-gutter: stable;
}

.text-red {
  color: red !important;
}

.text-blue {
  color: #4254ba !important;
}

/* 목록 테이블 공통 (회원·등급·입출금 등) */
.admin-search-bar {
  width: 100%;
}

.admin-search-bar-right {
  margin-left: auto;
}

.table.table-striped.table-centered thead tr.alert th {
  text-align: center;
  padding: 6px 0 !important;
  font-weight: normal;
  font-size: 12px !important;
  color: #fff !important;
  border: 1px solid #248e84;
}

.table.table-striped.table-centered tbody td {
  padding: 4px 10px !important;
  font-size: 12px !important;
  border: 1px solid #eee;
}

.badge {
  --ct-badge-padding-x: 1.4em;
  --ct-badge-padding-y: 0.8rem;
  --ct-badge-font-size: 0.8em;
}

/* 상단 알림바 — 사운드 버튼 */
.top-state-alerts .admin-sound-toggle i {
  line-height: 1;
  vertical-align: middle;
}

.admin-sound-unlock-toast {
  position: fixed;
  top: 84px;
  left: 50%;
  z-index: 1100;
  max-width: min(420px, calc(100vw - 32px));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(-10px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.admin-sound-unlock-toast.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.admin-sound-unlock-toast-body {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 22px 26px;
  border-radius: 0.5rem;
  border: 1px solid rgba(255, 103, 155, 0.35);
  background: #fff0f5;
  box-shadow: 0 8px 24px rgba(33, 37, 41, 0.12);
  cursor: pointer;
}

.admin-sound-unlock-toast-icon {
  flex-shrink: 0;
  font-size: 22px;
  line-height: 1;
  color: var(--ct-pink);
}

.admin-sound-unlock-toast-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--ct-gray-800);
  font-size: 13px;
  line-height: 1.4;
}

.admin-sound-unlock-toast-text strong {
  font-size: 14px;
  font-weight: 600;
  color: var(--ct-dark);
}

/* 게임 설정 — 스위치 변경 토스트 */
.game-config-toast-wrap {
  position: fixed;
  top: 84px;
  left: 50%;
  z-index: 1100;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: min(420px, calc(100vw - 32px));
  pointer-events: none;
  transform: translateX(-50%);
}

.game-config-toast {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 14px 18px;
  border-radius: 0.5rem;
  box-shadow: 0 8px 24px rgba(33, 37, 41, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.game-config-toast.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.game-config-toast--success {
  border: 1px solid rgba(10, 179, 156, 0.35);
  background: #e8f8f5;
  color: var(--ct-gray-800);
}

.game-config-toast--success .game-config-toast-icon {
  color: var(--ct-success);
}

.game-config-toast--error {
  border: 1px solid rgba(250, 92, 124, 0.35);
  background: #fff0f3;
  color: var(--ct-gray-800);
}

.game-config-toast--error .game-config-toast-icon {
  color: var(--ct-danger);
}

.game-config-toast--warning {
  border: 1px solid rgba(250, 92, 124, 0.4);
  background: #fff0f3;
  color: var(--ct-gray-800);
}

.game-config-toast--warning .game-config-toast-icon {
  color: #e85d75;
}

.game-config-toast--info {
  border: 1px solid rgba(57, 175, 209, 0.35);
  background: #edf7fb;
  color: var(--ct-gray-800);
}

.game-config-toast--info .game-config-toast-icon {
  color: var(--ct-info);
}

.game-config-toast-icon {
  flex-shrink: 0;
  font-size: 20px;
  line-height: 1;
}

.game-config-toast-text {
  font-size: 13px;
  line-height: 1.45;
}

/* 게임 설정 — 벤더 드래그 정렬 */
.game-vendor-drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--ct-gray-500);
  cursor: grab;
  border-radius: 0.35rem;
}

.game-vendor-drag-handle:active {
  cursor: grabbing;
}

.game-vendor-list-table tbody.is-sorting tr.game-vendor-row {
  background: rgba(66, 84, 186, 0.04);
}

.game-vendor-list-table tbody tr.game-vendor-sort-placeholder {
  height: 46px;
  background: rgba(66, 84, 186, 0.08);
}

.game-vendor-list-table tbody tr.game-vendor-sort-placeholder > td {
  border-top: 2px dashed rgba(66, 84, 186, 0.35);
  border-bottom: 2px dashed rgba(66, 84, 186, 0.35);
}

/* 관리자 모달 · div 팝업 공통 여백 */
.wrapper .modal .modal-content {
  padding: 30px;
}

.wrapper .modal .modal-header,
.wrapper .modal .modal-body:not(.p-0),
.wrapper .modal .modal-footer {
  padding: 0;
}

/* 회원목록 필터 패널 */
.admin-user-panel {
  display: flex;
  gap: 12px;
  border: 1px solid rgba(134, 146, 178, 0.25);
  border-radius: 0.5rem;
  padding: 12px;
  background: #fafbfc;
}

.admin-user-panel-widgets {
  flex: 1 1 auto;
  min-width: 0;
}

.admin-user-panel-options {
  flex: 0 0 88px;
  display: flex;
  flex-direction: column;
}

.admin-user-panel-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
}

.admin-user-panel-row + .admin-user-panel-row {
  border-top: 1px dashed rgba(134, 146, 178, 0.2);
}

.admin-user-panel-tag {
  flex: 0 0 72px;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  padding: 6px 8px;
  background: #eef1f5;
  border-radius: 0.35rem;
}

.admin-user-panel-widget {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  min-width: 0;
}

.admin-user-panel-widget-search {
  flex: 0 1 280px;
  margin-left: auto;
}

.admin-user-dropdown .dropdown-menu {
  max-height: 280px;
  overflow-y: auto;
}

#userTable.admin-user-table thead th,
#pwdLogTable.admin-user-table thead th,
#loginLogTable.admin-user-table thead th,
#failRankTable.admin-user-table thead th,
#controlMainTable.admin-user-table thead th {
  text-align: center;
  padding: 6px 4px !important;
  font-weight: 600;
  font-size: 12px !important;
  color: #fff !important;
  border: 1px solid #248e84;
  vertical-align: middle;
}

#userTable.admin-user-table tbody td,
#pwdLogTable.admin-user-table tbody td,
#loginLogTable.admin-user-table tbody td,
#failRankTable.admin-user-table tbody td,
#controlMainTable.admin-user-table tbody td,
#controlStatsTable.admin-user-table tbody th,
#controlStatsTable.admin-user-table tbody td {
  padding: 4px 6px !important;
  font-size: 12px !important;
  border: 1px solid #eee;
  vertical-align: middle;
}

#controlStatsTable.admin-user-table tbody th {
  background: #eef1f5;
  font-weight: 600;
  white-space: nowrap;
  width: 72px;
}

#userTable.admin-user-table tbody tr.user-row-spacer td {
  padding: 0 !important;
  height: 4px;
  border: none;
  background: transparent;
}

.user-list-toolbar .dropdown-toggle.badge {
  cursor: pointer;
}

#quick-search-info:empty {
  display: none;
}

.admin-state-filter-btn {
  min-width: 96px;
  font-weight: 600;
  border: none;
  box-shadow: 0 2px 6px rgba(114, 124, 245, 0.35);
}

.admin-control-stats-table th,
.admin-control-stats-table td,
.admin-control-main-table th,
.admin-control-main-table td {
  padding: 6px 8px !important;
  font-size: 12px !important;
  vertical-align: middle;
}

.admin-control-main-table thead th {
  color: #fff !important;
  border-color: #248e84 !important;
  font-weight: 500;
}

.admin-control-stats-table td {
  min-width: 90px;
}

.control-proc-group .form-control {
  min-width: 72px;
}

.control-proc-group .btn {
  padding-left: 8px;
  padding-right: 8px;
}

.control-stats-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.control-stat-box {
  flex: 1 1 120px;
  min-width: 120px;
  padding: 8px 10px;
  border: 1px solid #dbeafe;
  border-radius: 0.375rem;
  background: #f0f9ff;
  text-align: center;
  font-size: 12px;
}

.control-stat-total {
  background: #fff1f2;
  border-color: #fecdd3;
}

.control-stat-title {
  font-weight: 700;
  margin-bottom: 4px;
}

.control-stat-count {
  font-weight: 600;
  color: #333;
}

.control-stat-money,
.control-stat-point {
  color: #666;
  font-size: 11px;
}

.control-tree-cell {
  position: relative;
  min-width: 110px;
  text-align: left;
  white-space: nowrap;
}

.control-tree-branch {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 2px;
  border-left: 1px solid #adb5bd;
  border-bottom: 1px solid #adb5bd;
  vertical-align: middle;
}

.control-tree-node {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
  font-size: 11px;
  padding: 2px 10px;
}

.control-tree-current .control-tree-node {
  font-weight: 700;
}

#controlMainTable.admin-user-table .control-grade-col {
  background: #fafbfc;
}

.control-column-toggle {
  font-size: 11px;
  padding: 2px 8px;
  white-space: nowrap;
}

.control-member-toggle {
  font-size: 11px;
  padding: 2px 12px;
  white-space: nowrap;
}

.control-tree-target .control-tree-node {
  box-shadow: 0 0 0 2px rgba(255, 193, 7, 0.65);
}

.admin-manager-basic-card {
  background-color: var(--ct-secondary-bg, #fff);
}

.admin-manager-basic-card .card-header {
  background: transparent;
  border-bottom: 1px solid var(--ct-border-color, rgba(0, 0, 0, 0.08));
}

.admin-manager-basic-card .card-header .card-title {
  font-size: 0.95rem;
  font-weight: 600;
}

.admin-manager-basic-card .card-body {
  padding: 1.25rem !important;
}

.admin-manager-basic-row > [class*="col-"] {
  display: flex;
}

.admin-manager-basic-row .admin-manager-basic-card {
  width: 100%;
}

.admin-manager-pwd-table > :not(caption) > * > * {
  padding: 0.7rem 1rem;
}

.admin-manager-pwd-table thead th {
  font-weight: 600;
  white-space: nowrap;
}

.admin-manager-pwd-mask {
  font-size: 0.8125rem;
  color: var(--ct-secondary-color, #6c757d);
}

.admin-setting-basic-card .card-body {
  padding: 20px !important;
}

.admin-alert-sound-card .card-header,
.admin-alert-sound-card .card-header .admin-alert-sound-card-icon,
.admin-alert-sound-card .card-header span {
  font-weight: 600;
  color: var(--ct-primary) !important;
}

.admin-alert-sound-card-icon {
  font-size: 1.125rem;
  line-height: 1;
}

.admin-alert-sound-select {
  font-size: 0.875rem;
}

.admin-alert-sound-dropzone {
  position: relative;
  border: 1px dashed rgba(129, 90, 197, 0.45);
  border-radius: 0.5rem;
  background: rgba(129, 90, 197, 0.04);
  min-height: 150px;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.admin-alert-sound-dropzone.is-dragover {
  border-color: var(--ct-purple);
  background: rgba(129, 90, 197, 0.08);
}

.admin-alert-sound-dropzone-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 150px;
  padding: 18px;
}

.admin-alert-sound-dropzone-icon {
  font-size: 28px;
  color: var(--ct-purple);
  margin-bottom: 8px;
}

.admin-alert-sound-file {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.admin-alert-sound-preview {
  height: 40px;
}

.admin-alert-sound-card [data-apply-btn].btn-warning {
  color: #fff;
}

#contactTable.admin-user-table tbody td {
  vertical-align: middle;
}

#quill-editor {
  background: #fff;
}

select.form-select.form-select-sm.mg-enabled {
  min-width: 160px;
  width: 100%;
}

.betting-history-card {
  border: 1px solid #e9ecef;
  box-shadow: none;
}

/* 회원목록 — 카드 최소폭 고정, 좁은 창에서 가로 스크롤 */
.user-list-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.betting-history-card.is-user-list-card {
  width: 100%;
  min-width: 1763px;
}

.betting-history-tabs {
  border-bottom: 1px solid #e9ecef;
  gap: 4px;
}

.betting-history-tabs .nav-link {
  border: none;
  color: #6c757d;
  font-size: 14px;
  padding: 10px 16px;
  border-radius: 0;
  background: transparent;
}

.betting-history-tabs .nav-link.active {
  color: var(--ct-primary);
  font-weight: 600;
  border-bottom: 2px solid var(--ct-primary);
  margin-bottom: -1px;
}

.betting-history-search-bar {
  background: #f8f9fa;
  border-top: 1px solid #e9ecef;
  border-bottom: 1px solid #e9ecef;
  padding: 14px 16px;
}

.betting-history-select {
  width: auto;
  min-width: 88px;
}

.betting-history-input {
  width: 220px;
  min-width: 220px;
}

.betting-history-search-row {
  row-gap: 8px;
  align-items: flex-end;
}

.betting-history-date {
  width: 128px;
}

.betting-time-slider-wrap {
  width: 440px;
  flex: 0 0 440px;
  padding-top: 4px;
}

.betting-time-slider-wrap .betting-time-slider-input.irs-hidden-input {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.betting-time-slider-wrap .irs--flat.irs-with-grid {
  height: 58px;
  margin-bottom: 0;
}

.betting-time-slider-wrap .irs--flat .irs-line,
.betting-time-slider-wrap .irs--flat .irs-bar {
  height: 4px;
}

.betting-time-slider-wrap .irs--flat .irs-handle {
  width: 14px;
  height: 14px;
}

.betting-time-slider-wrap .irs-from,
.betting-time-slider-wrap .irs-to,
.betting-time-slider-wrap .irs-single {
  font-size: 11px;
  padding: 1px 4px;
}

.betting-time-slider-wrap .irs-min,
.betting-time-slider-wrap .irs-max {
  font-size: 10px;
  padding: 2px 4px;
}

.betting-time-slider-wrap .irs-grid-text {
  font-size: 10px;
  color: #adb5bd;
}

.betting-history-table {
  font-size: 12px;
}

.betting-history-table > :not(caption) > * > * {
  padding: 0.5rem;
}

.betting-history-table thead th {
  background: #f8f9fa !important;
  color: #495057;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  border-color: #e9ecef;
}

.betting-history-table tbody td {
  vertical-align: middle;
  border-color: #e9ecef;
}

.betting-history-table.is-casino-layout tbody td:not(.betting-col-round) {
  white-space: nowrap;
}

.betting-history-table .amount {
  color: deeppink;
  font-weight: 600;
}

.betting-history-table-wrap {
  overflow-x: auto;
}

/* 회원목록 — 소수 건수·드롭다운 시 세로 스크롤 방지 */
.betting-history-table-wrap.is-user-list-wrap {
  min-height: 360px;
}

/* 회원목록 — 베팅내역과 동일 테이블·가로스크롤 */
.betting-history-table.is-user-list-layout {
  table-layout: fixed;
  width: 100%;
  min-width: 1550px;
}

.betting-history-table.is-user-list-layout thead th,
.betting-history-table.is-user-list-layout tbody td {
  white-space: nowrap;
}

.betting-history-table.is-user-list-layout tbody td.text-end {
  font-variant-numeric: tabular-nums;
}

/* 회원목록 최근접속 — 일시 + IP 2줄 */
.betting-history-table.is-user-list-layout .user-list-login-col {
  width: 148px;
  min-width: 140px;
  white-space: normal !important;
  line-height: 1.25;
}

.betting-history-table.is-user-list-layout .user-list-login-time {
  display: block;
  font-size: 12px;
}

.betting-history-table.is-user-list-layout .user-list-ip-link {
  display: block;
  margin-top: 0.1rem;
  font-size: 11px;
  color: #64748b;
  text-decoration: none;
}

.betting-history-table.is-user-list-layout .user-list-ip-link.is-empty {
  color: #94a3b8;
  cursor: default;
}

.betting-history-table.is-user-list-layout .user-list-ip-link:hover {
  color: #475569;
  text-decoration: underline;
}

/* 회원목록 수수료율 */
.betting-history-table.is-user-list-layout .user-list-fee-col {
  width: 168px;
  min-width: 160px;
}

/* 회원목록 구분 */
.betting-history-table.is-user-list-layout .user-list-grade-col {
  width: 56px;
  min-width: 52px;
  max-width: 64px;
}

/* 회원목록 보유머니·카지노머니·포인트 */
.betting-history-table.is-user-list-layout .user-list-casino-col {
  width: 88px;
  min-width: 80px;
  max-width: 96px;
}

.betting-history-table.is-user-list-layout .user-list-money-col,
.betting-history-table.is-user-list-layout .user-list-point-col {
  width: 132px;
  min-width: 120px;
  max-width: 160px;
  white-space: nowrap;
}

/* 회원트리 — 계정정보(등급+아이디) */
#userTreeTable .user-tree-account-col {
  min-width: 280px;
  width: 320px;
  white-space: nowrap;
}

#userTreeTable .user-list-status-col {
  width: 56px;
  min-width: 52px;
  max-width: 64px;
}

#userTreeTable .user-tree-grade-badge {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}

#userTreeTable .user-tree-grade-badge.is-hq {
  background: rgba(254, 194, 13, 0.18);
  color: #b8860b;
}

#userTreeTable .user-tree-grade-badge.is-subhq {
  background: rgba(41, 155, 246, 0.14);
  color: #1b7ec7;
}

#userTreeTable .user-tree-grade-badge.is-distributor {
  background: rgba(66, 84, 186, 0.14);
  color: #4254ba;
}

#userTreeTable .user-tree-grade-badge.is-shop {
  background: rgba(129, 90, 197, 0.14);
  color: #6b3fa0;
}

#userTreeTable .user-tree-grade-badge.is-member {
  background: rgba(108, 117, 125, 0.14);
  color: #495057;
}

#userTreeTable .user-tree-grade-badge.is-other {
  background: rgba(23, 164, 151, 0.14);
  color: #0f8a7e;
}

.admin-user-id-link {
  color: #299bf6;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.admin-user-id-link:hover {
  text-decoration: underline;
  color: #1a7fd4;
}

#userTreeTable .user-tree-login-id {
  color: #299bf6;
  font-weight: 700;
  text-decoration: none;
}

#userTreeTable .user-tree-login-id:hover {
  text-decoration: underline;
}

#userTreeTable .user-tree-nickname {
  color: #94a3b8;
  font-weight: 500;
}

/* 회원트리 — 검색 하이라이트 hover 시 검정으로 바뀌지 않게 */
#userTreeTable.table-hover > tbody > tr.table-warning:hover > *,
#userTreeTable.table-hover > tbody > tr.user-tree-target:hover > * {
  --ct-table-hover-bg: #fff3cf;
  --ct-table-hover-color: inherit;
  --ct-table-bg-state: #fff3cf;
  --ct-table-color-state: inherit;
  color: inherit;
}

html[data-bs-theme=dark] #userTreeTable.table-hover > tbody > tr.table-warning:hover > *,
html[data-bs-theme=dark] #userTreeTable.table-hover > tbody > tr.user-tree-target:hover > * {
  --ct-table-hover-bg: rgba(254, 194, 13, 0.18);
  --ct-table-bg-state: rgba(254, 194, 13, 0.18);
}

/* 회원트리 — 아이디열 들여쓰기·토글 */
.user-tree-id-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.user-tree-toggle {
  --ct-btn-padding-y: 0;
  --ct-btn-padding-x: 0;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: #6c757d;
  border-radius: 0;
  line-height: 1;
}

.user-tree-toggle.is-leaf {
  width: 18px;
  height: 18px;
  border: 0;
  background: transparent;
  pointer-events: none;
}

.user-tree-toggle i {
  font-size: 18px;
  line-height: 1;
}

.user-tree-toggle:hover,
.user-tree-toggle:focus,
.user-tree-toggle:active {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #4254ba;
}

html[data-bs-theme=dark] .user-tree-toggle {
  border: 0;
  background: transparent;
  color: #adb5bd;
}

html[data-bs-theme=dark] .user-tree-toggle:hover {
  color: #8ea2ff;
}

/* 보유머니·포인트 — 좌측 +/- / 우측 금액 */
.user-list-balance-cell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
}

.user-list-balance-actions {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
}

.user-list-balance-btn {
  --ct-btn-padding-y: 0;
  --ct-btn-padding-x: 0;
  width: 22px;
  height: 22px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  border-radius: 4px;
}

.user-list-balance-btn i {
  font-size: 14px;
  line-height: 1;
}

.user-list-balance-amount {
  flex: 1 1 auto;
  min-width: 0;
  text-align: right;
  cursor: default;
  color: inherit;
  text-decoration: none;
}

/* 회원목록 입금·출금·손익 */
.betting-history-table.is-user-list-layout .user-list-in-col,
.betting-history-table.is-user-list-layout .user-list-out-col,
.betting-history-table.is-user-list-layout .user-list-profit-col {
  width: 88px;
  min-width: 80px;
  max-width: 100px;
  white-space: nowrap;
}

/* 회원목록 베팅·적중·손익 */
.betting-history-table.is-user-list-layout .user-list-bet-col,
.betting-history-table.is-user-list-layout .user-list-win-col,
.betting-history-table.is-user-list-layout .user-list-bet-profit-col {
  width: 88px;
  min-width: 80px;
  max-width: 100px;
  white-space: nowrap;
}

/* 회원목록 롤링금 */
.betting-history-table.is-user-list-layout .user-list-rolling-col {
  width: 88px;
  min-width: 80px;
  max-width: 100px;
  white-space: nowrap;
}

/* 회원목록 상태 */
.betting-history-table.is-user-list-layout .user-list-status-col {
  width: 96px;
  min-width: 88px;
  max-width: 120px;
}

.user-list-signup-status {
  min-width: 78px;
  max-width: 110px;
  padding: 0.15rem 0.35rem;
  font-size: 12px;
  line-height: 1.2;
}

/* 회원목록 관리 */
.betting-history-table.is-user-list-layout .user-list-menu-col {
  width: 80px;
  min-width: 76px;
  max-width: 96px;
}

.user-list-action-btns {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.user-list-menu-btn.is-disabled {
  background-color: #f3f4f6 !important;
  color: #c0c4cc !important;
  border-color: #e5e7eb !important;
  opacity: 1;
  cursor: not-allowed;
}

.user-list-menu-btn.is-disabled:hover {
  background-color: #f3f4f6 !important;
  color: #c0c4cc !important;
}

/* 회원목록 레벨 — 기본 열 대비 약 절반 */
.betting-history-table.is-user-list-layout .user-list-level-col {
  width: 48px;
  min-width: 48px;
  max-width: 48px;
}

/* 회원목록 아이디/닉네임 — 헤더는 가운데, 셀 값은 왼쪽 */
.betting-history-table.is-user-list-layout th.user-list-id-col {
  width: 140px;
  min-width: 140px;
  text-align: center !important;
}

.betting-history-table.is-user-list-layout td.user-list-id-col {
  width: 140px;
  min-width: 140px;
  text-align: left !important;
}

/* 회원목록 아이디/닉네임 보조 텍스트 */
.betting-history-table.is-user-list-layout .user-list-nickname {
  font-size: 10px;
  line-height: 1.2;
  color: #94a3b8;
  white-space: nowrap;
  font-weight: 400;
}

/* 회원목록 — 행 높이 축소 (상태·메뉴) */
.betting-history-table.is-user-list-layout thead th,
.betting-history-table.is-user-list-layout tbody td {
  padding-top: 0.28rem;
  padding-bottom: 0.28rem;
  vertical-align: middle;
}

.betting-history-table.is-user-list-layout .user-list-status-badge {
  display: inline-block;
  padding: 0.15em 0.45em;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
  min-height: 0;
}

.betting-history-table.is-user-list-layout .user-list-menu-btn.btn-icon {
  width: 26px;
  height: 26px;
  min-width: 26px;
  padding: 0;
  line-height: 1;
}

.betting-history-table.is-user-list-layout .user-list-menu-btn.btn-icon i {
  font-size: 14px;
  line-height: 1;
}

.betting-history-table.is-user-list-layout .user-list-menu-col .ms-1 {
  margin-left: 0.2rem !important;
}

/* 회원목록 입/출·게임손익 — hover popover 대상 */
.betting-history-table.is-user-list-layout .user-list-profit-popover {
  cursor: help;
  border-bottom: 1px dotted currentColor;
}

/* 입출손익 popover 테이블 — 입금/지급 | 출금/회수 | 전체합계 */
.popover.user-profit-popover {
  max-width: 280px;
  --bs-popover-bg: #f3f4f6;
  --bs-popover-border-color: #dde1e6;
  background-color: #f3f4f6;
  border: 1px solid #dde1e6;
  box-shadow: 0 0.35rem 0.85rem rgba(33, 37, 41, 0.12);
}

.popover.user-profit-popover .popover-arrow::before {
  border-top-color: #dde1e6;
  border-bottom-color: #dde1e6;
}

.popover.user-profit-popover .popover-arrow::after {
  border-top-color: #f3f4f6;
  border-bottom-color: #f3f4f6;
}

.popover.user-profit-popover .popover-body {
  padding: 0.4rem 0.5rem;
  background-color: #f3f4f6;
}

.user-profit-popover-table {
  width: 100%;
  min-width: 220px;
  margin: 0;
  font-size: 12px !important;
  background: transparent;
}

.user-profit-popover-table th,
.user-profit-popover-table td {
  padding: 0.28rem 0.45rem;
  border-color: #e0e3e8;
  white-space: nowrap;
  vertical-align: middle;
  font-size: 12px !important;
  font-weight: 400;
  color: var(--ct-body-color, #313a46);
  background: transparent;
}

.user-profit-popover-table th {
  text-align: center;
  background: transparent;
}

.user-profit-popover-table td.user-profit-label,
.user-profit-popover-table td:first-child {
  text-align: left !important;
  color: #6c757d;
}

.user-profit-popover-table td.user-profit-amount,
.user-profit-popover-table td:last-child {
  text-align: right !important;
  font-weight: 500;
  color: var(--ct-body-color, #313a46);
}

/* 입금·지급·합계 헤더 — 파란색 */
.user-profit-popover-table .user-profit-popover-in th {
  color: #0d6efd;
}

/* 출금·회수·합계 헤더 — 빨간색 */
.user-profit-popover-table .user-profit-popover-out th {
  color: #dc3545;
}

/* 마지막 합계 행 — bold */
.user-profit-popover-table .user-profit-popover-total th,
.user-profit-popover-table .user-profit-popover-total td {
  border-top-width: 2px;
  background: rgba(66, 84, 186, 0.06);
  color: var(--ct-body-color, #313a46);
  font-weight: 700 !important;
}

.user-profit-popover-table .user-profit-popover-total th {
  text-align: left;
}

html[data-bs-theme=dark] .user-profit-popover-table .user-profit-popover-in th {
  color: #6ea8fe;
}

html[data-bs-theme=dark] .user-profit-popover-table .user-profit-popover-out th {
  color: #ea868f;
}

html[data-bs-theme=dark] .user-profit-popover-table .user-profit-popover-total th,
html[data-bs-theme=dark] .user-profit-popover-table .user-profit-popover-total td {
  background: rgba(142, 162, 255, 0.12);
}

/* 환경설정 > 회원설정 — 입출금설정과 동일한 compact 사이즈 */
.member-policy-card {
  overflow: hidden;
}

.member-policy-card .card-header {
  background-color: rgba(var(--ct-light-rgb), 0.5);
  padding: 0.5rem 1rem;
}

.member-policy-card .card-footer {
  background-color: rgba(var(--ct-light-rgb), 0.5);
  padding: 0.75rem 1rem;
}

.member-policy-card .card-title {
  font-size: 0.9375rem;
  font-weight: 600;
}

.member-policy-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 240px);
  align-items: center;
  gap: 1rem;
  padding: 0.875rem 1rem;
  border-bottom: 1px solid rgba(var(--ct-dark-rgb), 0.06);
}

.member-policy-row > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.member-policy-row small {
  color: var(--ct-secondary-color, #8391a2);
}

.member-policy-label {
  margin: 0;
  color: var(--ct-body-color, #313a46);
  font-size: 0.875rem;
  font-weight: 400;
}

.member-policy-pills {
  display: inline-flex;
  justify-self: end;
  gap: 0.25rem;
  padding: 0;
  border-radius: 999px;
  background: rgba(var(--ct-dark-rgb), 0.06);
}

.member-policy-pills button {
  border: 0;
  border-radius: 999px;
  padding: 0.25rem 0.75rem;
  background: transparent;
  color: var(--ct-body-color, #313a46);
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
}

.member-policy-pills button.active {
  background: var(--ct-primary, #4254ba);
  color: #fff;
  box-shadow: 0 4px 10px rgba(var(--ct-primary-rgb), 0.35);
}

.member-policy-row .form-switch {
  justify-self: end;
  margin: 0;
  padding-left: 2.5em;
  min-height: 1.25rem;
}

.member-policy-row .form-switch .form-check-input {
  width: 2em;
  height: 1em;
  margin-left: -2.5em;
}

.member-policy-row .form-select,
.member-policy-row .form-control,
.member-policy-turnstile-keys .form-select,
.member-policy-turnstile-keys .form-control {
  font-size: 0.875rem;
  min-height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 0.5rem;
}

.member-policy-row .form-select {
  padding-right: 2rem;
}

.member-policy-turnstile-keys .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
}

.member-signup-policy-row {
  grid-template-columns: minmax(120px, 1fr) auto;
  gap: 0.75rem;
  min-height: 0;
}

.member-signup-policy-row .member-policy-pills button {
  padding-inline: 0.65rem;
  white-space: nowrap;
}

.member-policy-turnstile-keys {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
  border-bottom: 1px solid rgba(var(--ct-dark-rgb), 0.06);
  background: rgba(66, 84, 186, 0.035);
}

html[data-bs-theme=dark] .member-policy-turnstile-keys {
  background: rgba(142, 162, 255, 0.06);
}

/* 회원설정 3카드 1행 — 카드 폭이 좁아도 label|input 은 가로 정렬 */
.member-policy-row-layout .member-policy-row {
  grid-template-columns: minmax(0, 1fr) minmax(140px, 48%);
  gap: 0.75rem;
  align-items: center;
}

.member-policy-row-layout .member-policy-pills,
.member-policy-row-layout .member-policy-row .form-switch {
  justify-self: end;
}

.member-policy-row-layout .member-policy-row .form-select {
  justify-self: end;
  width: 100%;
  max-width: 100%;
}

.member-policy-row-layout .member-policy-turnstile-keys {
  grid-template-columns: 1fr;
}

.member-policy-row-layout .member-signup-policy-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.member-policy-row-layout .member-policy-pills {
  flex-wrap: wrap;
  justify-content: flex-end;
}

@media (max-width: 1199.98px) {
  .member-policy-row-layout > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .member-policy-row-layout .member-policy-row {
    grid-template-columns: minmax(0, 1fr) minmax(190px, 240px);
  }
}

@media (max-width: 767.98px) {
  .member-policy-row,
  .member-policy-turnstile-keys,
  .member-policy-row-layout .member-policy-row {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .member-policy-pills,
  .member-policy-row .form-switch,
  .member-policy-row-layout .member-policy-pills,
  .member-policy-row-layout .member-policy-row .form-switch,
  .member-policy-row-layout .member-policy-row .form-select {
    justify-self: start;
  }
}

/* 회원목록 수수료율 — 카/슬/미 뱃지 */
.user-fee-rate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.user-fee-item {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}

.user-fee-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  color: #fff;
}

.user-fee-badge.is-casino {
  background: #6ea8fe;
}

.user-fee-badge.is-slot {
  background: #79c99e;
}

.user-fee-badge.is-minigame {
  background: #c4a4e8;
}

.user-fee-badge.is-settlement {
  background: #f0ad4e;
}

.user-fee-val {
  font-size: 12px;
  font-weight: 500;
  color: #495057;
  font-variant-numeric: tabular-nums;
}

/* 관리자 회원 생성/수정 — 라벨+입력 그룹 필드 */
.admin-field-row {
  display: flex;
  align-items: stretch;
  border: 1px solid #dee2e6;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #fff;
}

.admin-field-label {
  flex: 0 0 148px;
  width: 148px;
  max-width: 148px;
  box-sizing: border-box;
  margin: 0;
  padding: 0.55rem 0.75rem;
  background: #f1f3f5;
  border-right: 1px solid #dee2e6;
  font-size: 13px;
  font-weight: 500;
  color: #495057;
  display: flex;
  align-items: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-field-control {
  flex: 1 1 auto;
  min-width: 0;
}

.admin-field-control .form-control,
.admin-field-control .form-select {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100%;
  min-height: 38px;
  font-size: 13px;
}

.admin-field-control .form-control {
  background-color: transparent;
}

/* select 는 드롭다운 화살표(background-image) 유지 */
.admin-field-control .form-select {
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236c757d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
  padding-right: 2.25rem;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.admin-field-control .form-control:focus,
.admin-field-control .form-select:focus {
  box-shadow: none !important;
}

.admin-field-control .form-control.success {
  box-shadow: inset 0 0 0 1px rgba(25, 135, 84, 0.5) !important;
}

.admin-field-control .form-control.fail {
  box-shadow: inset 0 0 0 1px rgba(220, 53, 69, 0.55) !important;
}

.admin-field-row.is-disabled {
  opacity: 1;
  background: #fafafa;
}

.admin-field-row.is-disabled .admin-field-control .form-control,
.admin-field-row.is-disabled .admin-field-control .form-select {
  background-color: #f5f5f5;
  color: #9ca3af;
  cursor: not-allowed;
}

/* 회원생성 모달 — disabled 입력은 아주 연한 회색 */
.create-user-modal .admin-field-control .form-control:disabled,
.create-user-modal .admin-field-control .form-select:disabled {
  background-color: #f5f5f5 !important;
  color: #9ca3af;
  opacity: 1;
  cursor: not-allowed;
}

/* 수수료 입력 — 안내 문구를 인풋 오른쪽에 2줄 배치 */
.admin-field-control.is-fee-control {
  display: flex;
  align-items: stretch;
}

.admin-field-control.is-fee-control .form-control {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  border-right: 0 !important;
}

.admin-field-fee-hint {
  flex: 0 0 72px;
  width: 72px;
  max-width: 72px;
  box-sizing: border-box;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 0;
  padding: 0.1rem 0.35rem;
  font-size: 10px;
  line-height: 1.05;
  color: #94a3b8;
  white-space: normal;
  text-align: right;
  background: #f8f9fb;
  border-left: 1px solid #e9ecef;
  overflow: hidden;
}

.admin-field-fee-hint .fee-hint-min,
.admin-field-fee-hint .fee-hint-max {
  display: block;
  line-height: 1.05;
  margin: 0;
  padding: 0;
}

.admin-field-fee-hint .fee-hint-min {
  color: #6fbf73;
}

.admin-field-fee-hint .fee-hint-max {
  color: #e8958f;
}

.admin-create-info {
  width: 100%;
  background: #eef5ff;
  border: 1px solid #d6e4ff;
  border-radius: 0.5rem;
  padding: 0.9rem 1.15rem;
  font-size: 12px;
  color: #495057;
}

.admin-create-info-title {
  font-weight: 600;
  color: #3b4ca7;
  margin-bottom: 0.4rem;
}

.admin-create-info ul {
  line-height: 1.55;
}

.create-user-modal #add_user_msg {
  color: #dc3545;
  font-size: 13px;
}

.create-user-modal .modal-content {
  border-radius: 0.75rem;
  overflow: hidden;
}

/* 가로 스크롤 방지 — row 음수 마진 + 수수료 힌트 고정폭 */
.create-user-modal .modal-body {
  overflow-x: hidden;
  max-width: 100%;
}

.create-user-modal .modal-body > .row {
  --bs-gutter-x: 0.75rem;
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}

.create-user-modal .modal-body > .row > [class*="col-"] {
  min-width: 0;
}

.create-user-modal .admin-field-label {
  flex: 0 0 118px;
  width: 118px;
  max-width: 118px;
  padding: 0.55rem 0.6rem;
  font-size: 12px;
}

.create-user-modal .admin-field-fee-hint {
  flex: 0 0 68px;
  width: 68px;
  max-width: 68px;
  padding: 0.15rem 0.35rem;
  font-size: 10px;
}

.create-user-modal .admin-create-info {
  box-sizing: border-box;
  max-width: 100%;
}

/* 입력 그룹 박스 */
.create-user-modal .admin-create-group {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #e9ecef;
  border-radius: 0.6rem;
  background: #fafbfc;
  padding: 0.75rem;
}

.create-user-modal .admin-create-group .admin-field-row {
  background: #fff;
}

/* 2열 페어 필드 — 라벨 축소 */
.create-user-modal .admin-create-group .col-6 .admin-field-label,
.create-user-modal .admin-create-group .col-md-3 .admin-field-label {
  flex: 0 0 96px;
  width: 96px;
  max-width: 96px;
  padding: 0.5rem 0.5rem;
  font-size: 12px;
}

.create-user-modal .admin-create-group .col-6 .admin-field-fee-hint {
  flex: 0 0 56px;
  width: 56px;
  max-width: 56px;
  padding: 0.05rem 0.25rem;
  font-size: 9px;
  line-height: 1.05;
  gap: 0;
}

/* 상단 생성방식·접두어 — 2줄(2열) 정렬 */
.create-user-modal #row_create_top .admin-field-label {
  flex: 0 0 96px;
  width: 96px;
  max-width: 96px;
  padding: 0.5rem 0.5rem;
  font-size: 12px;
}

.create-user-modal #row_create_top > [class*="col-"] {
  min-width: 0;
}

.create-user-modal .admin-create-group [class*="col-"] {
  min-width: 0;
}

.betting-history-table.is-inquiry-layout {
  table-layout: fixed;
  width: 100%;
}

.betting-history-table.is-inquiry-layout col.inquiry-col-no { width: 72px; }
.betting-history-table.is-inquiry-layout col.inquiry-col-title { width: 30%; }
.betting-history-table.is-inquiry-layout col.inquiry-col-writer,
.betting-history-table.is-inquiry-layout col.inquiry-col-date,
.betting-history-table.is-inquiry-layout col.inquiry-col-location,
.betting-history-table.is-inquiry-layout col.inquiry-col-reply-date,
.betting-history-table.is-inquiry-layout col.inquiry-col-status,
.betting-history-table.is-inquiry-layout col.inquiry-col-reply-info,
.betting-history-table.is-inquiry-layout col.inquiry-col-action { width: calc((70% - 72px) / 7); }

.betting-history-table.is-inquiry-layout thead th.inquiry-col-action,
.betting-history-table.is-inquiry-layout tbody td.inquiry-col-action {
  width: calc((70% - 72px) / 7);
  white-space: nowrap;
}

.betting-history-table.is-inquiry-layout tbody td.inquiry-col-title {
  white-space: normal;
  word-break: break-word;
}

.betting-history-table.is-inquiry-layout .reply-info-stats {
  font-size: 12px;
  color: #6c757d;
  white-space: nowrap;
}

.betting-history-table.is-notice-layout {
  table-layout: fixed;
  width: 100%;
}

.betting-history-table.is-notice-layout col.notice-col-sort { width: 56px; }
.betting-history-table.is-notice-layout col.notice-col-status { width: 72px; }
.betting-history-table.is-notice-layout col.notice-col-title { width: 34%; }
.betting-history-table.is-notice-layout col.notice-col-writer,
.betting-history-table.is-notice-layout col.notice-col-date { width: calc((66% - 308px) / 2); }
.betting-history-table.is-notice-layout col.notice-col-action { width: 180px; }

.betting-history-table.is-notice-layout tbody td.notice-col-sort {
  white-space: nowrap;
  font-size: 11px;
}

.betting-history-table.is-notice-layout .notice-drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-right: 4px;
  color: #9aa3b2;
  cursor: grab;
  vertical-align: middle;
}

.betting-history-table.is-notice-layout .notice-drag-handle:active {
  cursor: grabbing;
}

.betting-history-table.is-notice-layout .notice-sort-value {
  display: inline-block;
  min-width: 16px;
  font-weight: 600;
  color: #343a40;
  vertical-align: middle;
}

.betting-history-table.is-notice-layout tbody tr.notice-sort-placeholder {
  height: 42px;
  background: rgba(66, 84, 186, 0.08);
}

.betting-history-table.is-notice-layout tbody tr.notice-sort-placeholder > td {
  border-top: 2px dashed rgba(66, 84, 186, 0.35);
  border-bottom: 2px dashed rgba(66, 84, 186, 0.35);
}

.betting-history-table.is-notice-layout tbody.is-sorting tr[data-board-idx] {
  cursor: grabbing;
}

.betting-history-table.is-notice-layout thead th.notice-col-status,
.betting-history-table.is-notice-layout tbody td.notice-col-status {
  width: 100px;
  min-width: 100px;
  white-space: nowrap;
}

.betting-history-table.is-notice-layout tbody td.notice-col-status .form-switch {
  justify-content: center;
}

.betting-history-table.is-notice-layout tbody td.notice-col-status .board-visibility-switch {
  cursor: pointer;
}

.visibility-state-btn {
  min-width: 52px;
  padding: 0.15rem 0.45rem;
  font-size: 11px;
  line-height: 1.4;
}

.betting-history-table.is-notice-layout thead th.notice-col-action,
.betting-history-table.is-notice-layout tbody td.notice-col-action {
  width: 180px;
  min-width: 180px;
  white-space: nowrap;
}

.betting-history-table.is-notice-layout tbody td.notice-col-date {
  white-space: nowrap;
  font-size: 11px;
}

.betting-history-table.is-notice-layout .notice-action-group {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.betting-history-table.is-notice-layout .notice-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 24px;
  padding: 0;
  font-size: 14px;
  line-height: 1;
  border-radius: 4px;
}

.betting-history-table.is-notice-layout .notice-action-btn i {
  line-height: 1;
}

.betting-history-table.is-notice-layout tbody td.notice-col-title {
  white-space: normal;
  word-break: break-word;
}

.betting-history-table.is-notice-layout .notice-title-link {
  color: var(--ct-primary, #4254ba);
  text-decoration: none;
  font-weight: 500;
}

.betting-history-table.is-notice-layout .notice-title-link:hover {
  text-decoration: underline;
}

.betting-history-table.is-popup-layout {
  table-layout: fixed;
  width: 100%;
  min-width: 640px;
}

.betting-history-table.is-popup-layout col.popup-col-sort { width: 56px; }
.betting-history-table.is-popup-layout col.popup-col-status { width: 100px; }
.betting-history-table.is-popup-layout col.popup-col-title { width: 28%; }
.betting-history-table.is-popup-layout col.popup-col-coord { width: 220px; }
.betting-history-table.is-popup-layout col.popup-col-action { width: 180px; }

.betting-history-table.is-popup-layout thead th.popup-col-action,
.betting-history-table.is-popup-layout tbody td.popup-col-action {
  width: 180px;
  min-width: 180px;
  white-space: nowrap;
}

.betting-history-table.is-popup-layout tbody td.popup-col-sort {
  white-space: nowrap;
  font-size: 11px;
}

.betting-history-table.is-popup-layout .popup-drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-right: 4px;
  color: #9aa3b2;
  cursor: grab;
  vertical-align: middle;
}

.betting-history-table.is-popup-layout .popup-drag-handle:active {
  cursor: grabbing;
}

.betting-history-table.is-popup-layout .popup-sort-value {
  display: inline-block;
  min-width: 16px;
  font-weight: 600;
  color: #343a40;
  vertical-align: middle;
}

.betting-history-table.is-popup-layout tbody tr.popup-sort-placeholder {
  height: 42px;
  background: rgba(66, 84, 186, 0.08);
}

.betting-history-table.is-popup-layout tbody tr.popup-sort-placeholder > td {
  border-top: 2px dashed rgba(66, 84, 186, 0.35);
  border-bottom: 2px dashed rgba(66, 84, 186, 0.35);
}

.betting-history-table.is-popup-layout tbody.is-sorting tr[data-popup-id] {
  cursor: grabbing;
}

.betting-history-table.is-popup-layout tbody td.popup-col-coord {
  font-size: 11px;
  line-height: 1.45;
}

.betting-history-table.is-popup-layout tbody td.popup-col-status .form-switch {
  justify-content: center;
}

.betting-history-table.is-popup-layout tbody td.popup-col-status .popup-visibility-switch {
  cursor: pointer;
}

.betting-history-table.is-popup-layout .popup-coord-wrap {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
}

.betting-history-table.is-popup-layout .popup-coord-item {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: #6c757d;
  white-space: nowrap;
}

.betting-history-table.is-popup-layout .popup-coord-item strong {
  color: #343a40;
  font-weight: 600;
}

.betting-history-table.is-popup-layout tbody td.popup-col-title {
  white-space: normal;
  word-break: break-word;
}

.betting-history-table.is-popup-layout tbody tr.is-active {
  background: rgba(66, 84, 186, 0.06);
}

.betting-history-table.is-popup-layout tbody tr.is-active td {
  border-color: rgba(66, 84, 186, 0.18);
}

.div-popup-preview-content img {
  max-width: 100%;
  height: auto;
}

.board-notice-split .board-notice-table-wrap {
  max-height: calc(100vh - 320px);
  overflow: auto;
}

.board-notice-preview-card {
  min-height: calc(100vh - 220px);
}

.board-notice-preview-head {
  background: #f8f9fa;
}

.board-notice-preview-body {
  padding: 20px;
  overflow-y: auto;
  max-height: calc(100vh - 280px);
}

.board-notice-preview-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 360px;
  text-align: center;
  color: #9aa3b2;
}

.board-notice-preview-empty i {
  font-size: 42px;
  margin-bottom: 12px;
  color: #c5ccda;
}

.board-notice-preview-empty p {
  margin: 0;
  font-size: 14px;
}

.board-notice-preview-title {
  margin-bottom: 10px;
  font-size: 1.1rem;
  font-weight: 600;
  color: #343a40;
  word-break: break-word;
}

.board-notice-preview-meta {
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e9ecef;
  font-size: 12px;
  color: #6c757d;
}

.board-notice-preview-content {
  font-size: 14px;
  line-height: 1.45;
  color: #343a40;
  word-break: break-word;
}

.board-notice-preview-content p,
.board-notice-preview-content div {
  margin: 0 0 2px;
}

.board-notice-preview-content p:last-child,
.board-notice-preview-content div:last-child {
  margin-bottom: 0;
}

.board-notice-preview-content img {
  max-width: 100%;
  height: auto;
}

.betting-history-table.is-notice-layout tbody tr.is-active {
  background: rgba(66, 84, 186, 0.06);
}

.betting-history-table.is-notice-layout tbody tr.is-active td {
  border-color: rgba(66, 84, 186, 0.18);
}

#noticeEditModal .notice-edit-modal-dialog {
  --ct-modal-width: 1200px;
  max-width: 1200px;
  width: calc(100% - 2rem);
}

#noticeEditModal .note-editor {
  border-color: #dbe2ef;
  border-radius: 8px;
  overflow: hidden;
}

#noticeEditModal .note-toolbar {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
}

#noticeEditModal .note-toolbar > .note-btn-group {
  flex: 0 0 auto;
}

#noticeEditModal .note-editable {
  line-height: 1.45;
  font-size: 14px;
}

#noticeEditModal .note-editable p,
#noticeEditModal .note-editable div {
  margin: 0 0 2px;
}

#noticeEditModal .note-editable p:last-child,
#noticeEditModal .note-editable div:last-child {
  margin-bottom: 0;
}

/* 문구관리 — 등록·수정 모달 줄간격 축소 */
#replyTemplateModal .note-editable,
#memoTemplateModal #memo_template_content {
  line-height: 1.35;
  font-size: 14px;
}

#replyTemplateModal .note-editable p,
#replyTemplateModal .note-editable div {
  margin: 0 0 1px;
}

#replyTemplateModal .note-editable p:last-child,
#replyTemplateModal .note-editable div:last-child {
  margin-bottom: 0;
}

.betting-history-table.is-casino-layout {
  table-layout: fixed;
  width: 100%;
  min-width: 1440px;
}

.betting-history-table.is-casino-layout col.betting-col-datetime { width: 137px; }
.betting-history-table.is-casino-layout col.betting-col-id { width: 77px; }
.betting-history-table.is-casino-layout col.betting-col-nick { width: 77px; }
.betting-history-table.is-casino-layout col.betting-col-agent { width: 82px; }
.betting-history-table.is-casino-layout col.betting-col-vendor { width: 101px; }
.betting-history-table.is-casino-layout thead th.betting-col-agent,
.betting-history-table.is-casino-layout tbody td.betting-col-agent {
  white-space: nowrap !important;
  text-align: center !important;
}

.betting-history-table.is-casino-layout col.betting-col-game { width: 125px; }
.betting-history-table.is-casino-layout col.betting-col-type { width: 61px; }
.betting-history-table.is-casino-layout col.betting-col-money { width: 85px; }
.betting-history-table.is-casino-layout col.betting-col-valid { width: 85px; }
.betting-history-table.is-casino-layout col.betting-col-balance { width: 101px; }
.betting-history-table.is-casino-layout col.betting-col-status { width: 61px; }
.betting-history-table.is-casino-layout col.betting-col-round { width: 420px; }
.betting-history-table.is-casino-layout col.betting-col-detail { width: 77px; }

.betting-history-table.is-casino-layout thead th.betting-col-detail,
.betting-history-table.is-casino-layout tbody td.betting-col-detail {
  white-space: nowrap !important;
  text-align: center !important;
}

.betting-history-table .betting-detail-btn {
  padding: 0.2rem 0.4rem;
  font-size: 14px;
  line-height: 1;
}

body.betting-detail-popup {
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #fff;
}

.betting-detail-frame {
  display: block;
  width: 100vw;
  height: 100vh;
  border: 0;
  background: #fff;
}

.betting-detail-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 24px;
  text-align: center;
  color: #495057;
}

.betting-history-table.is-casino-layout .betting-col-datetime {
  width: 137px !important;
  max-width: 137px !important;
  min-width: 137px !important;
  white-space: nowrap !important;
}

.betting-history-table.is-casino-layout thead th.betting-col-round {
  text-align: center !important;
  white-space: nowrap !important;
  font-family: inherit;
  word-break: normal;
}

.betting-history-table.is-casino-layout tbody td.betting-col-round {
  width: auto !important;
  min-width: 420px !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: break-all !important;
  overflow: visible !important;
  text-overflow: clip !important;
  text-align: left !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  line-height: 1.45;
}

.betting-history-table.money-history-table tbody td {
  white-space: nowrap;
}

.betting-history-table.money-history-table {
  font-size: 12px;
}

.betting-history-table.money-history-table thead th {
  font-size: 12px;
}

.point-content-link,
.point-content-text {
  font-size: 12px;
}

.betting-history-table.money-history-table tbody td.money-col-wallet {
  white-space: normal;
  word-break: break-all;
  text-align: left;
  min-width: 180px;
  max-width: 260px;
}

.money-history-table .money-account-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.35;
  font-size: 12px;
}

.money-history-table .money-account-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
}

.money-history-table .money-account-label {
  flex: 0 0 2.5em;
  color: #94a3b8;
  font-size: 11px;
}

.money-history-table .money-account-value {
  min-width: 0;
  color: #334155;
  font-weight: 600;
  word-break: break-all;
}

.betting-history-table.money-history-table th:last-child,
.betting-history-table.money-history-table td.money-col-action {
  width: 1%;
  white-space: nowrap;
  padding-left: 8px;
  padding-right: 8px;
}

.money-history-table td.money-col-action .btn {
  margin-bottom: 0;
}

.money-history-summary strong.money-summary-wait {
  color: #0dcaf0;
}

.money-history-summary strong.money-summary-complete {
  color: deeppink;
}

.money-history-summary strong.money-summary-cancel {
  color: #6c757d;
}

.money-history-summary strong.money-summary-credit {
  color: seagreen;
}

.money-history-summary strong.money-summary-debit {
  color: #dc3545;
}

.money-admin-table .money-amount-credit {
  color: seagreen;
  font-weight: 600;
}

.money-admin-table .money-amount-debit {
  color: #dc3545;
  font-weight: 600;
}

.money-admin-table tbody td.money-col-memo {
  white-space: normal;
  word-break: break-all;
  text-align: left;
  min-width: 180px;
  max-width: 320px;
}

.point-content-link {
  color: var(--ct-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 500;
  line-height: 1.45;
}

.point-content-link:hover {
  color: var(--ct-primary);
  opacity: 0.85;
}

.point-content-text {
  color: #49526b;
  line-height: 1.45;
}

body.admin-point-detail-open {
  overflow: hidden;
}

.admin-point-detail-layer {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.5);
  backdrop-filter: blur(2px);
}

.admin-point-detail-layer[hidden] {
  display: none !important;
}

.admin-point-detail-modal {
  width: min(780px, 96vw);
  max-height: min(92vh, 920px);
  overflow: hidden;
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
}

.admin-point-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 22px;
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.admin-point-detail-title {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.01em;
}

.admin-point-detail-close {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.05);
  color: #64748b;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.admin-point-detail-close:hover {
  background: rgba(15, 23, 42, 0.1);
  color: #0f172a;
}

.admin-point-detail-body {
  padding: 18px 22px 22px;
  overflow-y: auto;
  max-height: calc(min(92vh, 920px) - 66px);
}

.admin-point-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.admin-point-detail-row {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 12px;
  background: #f8fafc;
  min-width: 0;
}

.admin-point-detail-row dt {
  margin: 0;
  color: #64748b;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
}

.admin-point-detail-row dd {
  margin: 0;
  color: #0f172a;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
  word-break: break-word;
}

@media (max-width: 640px) {
  .admin-point-detail-list {
    grid-template-columns: 1fr;
  }

  .admin-point-detail-modal {
    width: min(100%, 96vw);
  }
}

html[data-bs-theme=dark] .admin-point-detail-head {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, transparent 100%);
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

html[data-bs-theme=dark] .admin-point-detail-title {
  color: #f8fafc;
}

html[data-bs-theme=dark] .admin-point-detail-close {
  background: rgba(255, 255, 255, 0.06);
  color: #94a3b8;
}

html[data-bs-theme=dark] .admin-point-detail-close:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #f8fafc;
}

html[data-bs-theme=dark] .admin-point-detail-row {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

html[data-bs-theme=dark] .admin-point-detail-row dt {
  color: #94a3b8;
}

html[data-bs-theme=dark] .admin-point-detail-row dd {
  color: #f1f5f9;
}

/* 입출금 설정 */
.admin-money-settings-card .card-header {
  background-color: rgba(var(--ct-light-rgb), 0.5);
  padding: 0.5rem 1rem;
}

.admin-money-settings-card .card-body {
  padding: 1rem !important;
}

.admin-money-settings-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  background-color: rgba(var(--ct-light-rgb), 0.5);
  padding: 0.75rem 1rem;
}

.admin-money-settings-fields {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.admin-money-settings-row-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.875rem 0;
  border-bottom: 1px solid rgba(var(--ct-dark-rgb), 0.06);
}

.admin-money-settings-row-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.admin-money-settings-label {
  flex-shrink: 0;
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ct-body-color);
}

.admin-money-amount-input,
.admin-money-time-input,
.admin-money-number-input {
  width: 10rem;
  max-width: 100%;
}

.admin-pill-group {
  display: inline-flex;
  gap: 0.25rem;
  padding: 0;
  border-radius: 999px;
  background-color: rgba(var(--ct-dark-rgb), 0.06);
}

.admin-pill-btn {
  border: 0;
  background: transparent;
  color: var(--ct-body-color);
  border-radius: 999px;
  padding: 0.25rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.admin-pill-btn:hover {
  color: var(--ct-headings-color);
}

.admin-pill-btn.is-active {
  background-color: var(--ct-primary);
  color: #fff;
  box-shadow: 0 4px 10px rgba(var(--ct-primary-rgb), 0.35);
}

.admin-money-save-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.admin-online-toolbar .admin-online-count-badge {
  font-size: 0.8125rem;
  font-weight: 500;
  padding: 0.45rem 0.75rem;
}

.admin-online-toolbar .admin-online-count-badge strong {
  font-weight: 700;
}

.admin-online-socket-status.text-success {
  color: var(--ct-success) !important;
}

.admin-online-socket-status.text-danger {
  color: var(--ct-danger) !important;
}

.admin-online-socket-status.text-warning {
  color: var(--ct-warning) !important;
}

.admin-online-toolbar .admin-online-type-group .btn {
  min-width: 64px;
}

.admin-online-toolbar .admin-online-type-group .btn-check:checked + .btn {
  font-weight: 600;
}

.admin-online-summary {
  background: #fff;
}

.admin-online-table tbody td {
  text-align: center;
  white-space: nowrap;
}

.admin-online-table tbody td.text-end {
  text-align: right !important;
}

.admin-online-table tbody td.online-col-page {
  white-space: normal;
  word-break: break-all;
  text-align: left;
  min-width: 140px;
  max-width: 260px;
}

.admin-online-table .online-action-btns {
  white-space: nowrap;
}

.admin-online-table .online-action-btns .btn {
  font-size: 11px;
  padding: 2px 8px;
  line-height: 1.4;
}

.game-config-split-row {
  align-items: stretch;
}

.game-config-vendor-card .card-header,
.game-config-games-card .card-header {
  background-color: rgba(var(--ct-light-rgb), 0.5);
}

.game-vendor-list-table tbody tr.game-vendor-row,
.game-vendor-list-table tbody tr.game-minigame-row {
  cursor: pointer;
}

.game-vendor-list-table tbody tr.game-vendor-row.is-active,
.game-vendor-list-table tbody tr.game-minigame-row.is-active {
  background-color: rgba(var(--ct-primary-rgb), 0.08);
}

.game-vendor-list-table tbody tr.game-vendor-row.is-active td,
.game-vendor-list-table tbody tr.game-minigame-row.is-active td {
  border-color: rgba(var(--ct-primary-rgb), 0.2);
}

.game-vendor-list-table tbody tr.game-vendor-row.is-active .game-vendor-name,
.game-vendor-list-table tbody tr.game-minigame-row.is-active .game-vendor-name {
  color: var(--ct-primary);
  font-weight: 600;
}

.game-vendor-list-table tbody tr.game-vendor-row.is-stopped .game-vendor-name,
.game-vendor-list-table tbody tr.game-minigame-row.is-stopped .game-vendor-name {
  color: var(--ct-danger);
}

.game-vendor-games-table-wrap {
  max-height: 560px;
  overflow-y: auto;
}

.game-vendor-list-table tbody tr.game-vendor-row.is-hidden-vendor,
.game-vendor-list-table tbody tr.game-minigame-row.is-hidden-vendor {
  background-color: rgba(var(--ct-secondary-rgb), 0.08);
}

.game-vendor-list-table tbody tr.game-vendor-row.is-hidden-vendor .game-vendor-name {
  opacity: 0.75;
}

.game-vendor-action-cell .game-state-switch-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding-left: 2.25em;
}

/* 사용/노출 스위치만 타원형 — 라디오는 원형 유지 */
.game-vendor-action-cell .form-switch .form-check-input {
  width: 2.25em;
  height: 1.15em;
  margin: 0;
  cursor: pointer;
}

.game-vendor-action-cell .form-switch .form-check-input:checked {
  background-color: var(--ct-primary);
  border-color: var(--ct-primary);
}

.game-vendor-action-cell .form-switch .form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(var(--ct-primary-rgb), 0.2);
}

/* 벤더분류 라디오: 원형 + 한 줄 정렬 */
.game-config-category-radios {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.65rem;
  white-space: nowrap;
}

.game-config-category-radios .form-check {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding-left: 1.4em;
  min-height: auto;
}

.game-config-category-radios .form-check-input[type="radio"] {
  width: 1em;
  height: 1em;
  margin-top: 0;
  margin-left: -1.4em;
  border-radius: 50%;
  cursor: pointer;
  float: left;
}

.game-config-category-radios .form-check-input[type="radio"]:checked {
  background-color: var(--ct-primary);
  border-color: var(--ct-primary);
}

.game-config-category-radios .form-check-label {
  margin: 0;
  cursor: pointer;
  line-height: 1.2;
}

.game-vendor-thumb {
  display: inline-block;
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 6px;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  vertical-align: middle;
}

video.game-vendor-thumb {
  object-fit: cover;
}

.game-vendor-thumb.is-empty {
  background: repeating-linear-gradient(
    45deg,
    #f1f3f5,
    #f1f3f5 4px,
    #e9ecef 4px,
    #e9ecef 8px
  );
}

.game-vendor-image-editor-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.game-vendor-editor-preview-wrap {
  flex: 0 0 192px;
  width: 192px;
  height: 192px;
}

.game-vendor-image-editor .game-vendor-editor-preview {
  width: 192px;
  height: 192px;
  flex: 0 0 192px;
}

.game-vendor-image-editor video.game-vendor-editor-preview {
  object-fit: cover;
  background: #111;
}

.game-vendor-image-editor-controls {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 2px;
}

.game-vendor-image-editor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.game-config-show-hidden-wrap {
  flex-shrink: 0;
}

.game-config-hide-disabled-wrap {
  flex-shrink: 0;
  white-space: nowrap;
}

.game-config-hide-disabled-wrap .form-check-input {
  margin-top: 0.15rem;
}

.game-config-vendor-split.is-hide-disabled .game-vendor-row.is-hidden-vendor {
  display: none !important;
}

/* 잔액 지급/회수 모달 (Jidox) */
.money-adjust-modal-dialog {
  max-width: 640px;
}

.money-adjust-modal .modal-title {
  font-size: 1.05rem;
  font-weight: 600;
}

.money-adjust-modal-subtitle {
  margin-top: 2px;
}

.money-adjust-modal-icon {
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
}

.money-adjust-flow {
  display: grid;
  grid-template-columns: 1fr auto 1.15fr auto 1fr;
  gap: 0.5rem;
  align-items: stretch;
}

.money-adjust-card {
  border: 1px solid rgba(134, 146, 178, 0.22);
  border-radius: 0.65rem;
  padding: 0.85rem 0.75rem;
  background: #fff;
  min-width: 0;
}

.money-adjust-card.is-credit {
  background: rgba(66, 84, 186, 0.06);
  border-color: rgba(66, 84, 186, 0.18);
}

.money-adjust-card.is-debit {
  background: rgba(220, 53, 69, 0.05);
  border-color: rgba(220, 53, 69, 0.16);
}

.money-adjust-card.is-balance {
  background: #f8f9fb;
}

.money-adjust-card-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin-bottom: 0.55rem;
  font-size: 0.8125rem;
  font-weight: 600;
}

.money-adjust-card-label i {
  font-size: 1rem;
}

.money-adjust-input,
.money-adjust-balance {
  font-weight: 600;
  letter-spacing: 0.01em;
}

.money-adjust-balance {
  background-color: #eef1f5 !important;
  border-color: transparent !important;
  color: #313a46;
  opacity: 1;
}

.money-adjust-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  padding-top: 1.4rem;
}

@media (max-width: 575.98px) {
  .money-adjust-flow {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .money-adjust-arrow {
    padding-top: 0;
    transform: rotate(90deg);
  }
}

/* 입금 보너스 설정 */
.admin-deposit-bonus {
  width: 60%;
  max-width: 60%;
}

.admin-deposit-bonus-levels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.admin-deposit-bonus-level-btn {
  min-width: 44px;
  padding: 0.35rem 0.75rem;
  font-weight: 600;
}

.admin-deposit-bonus-card .card-header {
  background: #fff;
  border-bottom: 1px solid #eef2f7;
}

.admin-deposit-bonus-table th,
.admin-deposit-bonus-table td {
  vertical-align: middle;
  padding: 0.65rem 0.75rem;
  font-size: 13px;
}

.admin-deposit-bonus-table .form-control,
.admin-deposit-bonus-table .input-group-text {
  font-size: 13px;
}

/* 보너스율·롤링조건: 3자리+스피너가 잘리지 않도록 */
.admin-deposit-bonus-table .js-bonus-rate,
.admin-deposit-bonus-table .js-rollover-rate {
  min-width: 4.75rem;
  width: 4.75rem;
  flex: 0 0 4.75rem;
  padding-right: 0.35rem;
}

.admin-deposit-bonus-table .js-manual-message {
  min-width: 100%;
  width: 100%;
}

.admin-deposit-bonus-table .form-check-input {
  width: 2.2em;
  height: 1.15em;
  cursor: pointer;
}

/* 입출금 내역 상태 뱃지 — 높이 축소 */
.money-history-table .money-status-badge,
.money-history-table .badge {
  --ct-badge-padding-x: 0.55em;
  --ct-badge-padding-y: 0.28em;
  font-size: 0.72rem;
  line-height: 1.2;
  font-weight: 600;
  vertical-align: middle;
}

/* 파트너 마이페이지 */
.branch-mypage-card {
  border: 0;
  box-shadow: 0 0.125rem 0.5rem rgba(33, 37, 41, 0.06);
}

.branch-mypage-verify-card .branch-mypage-verify-icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(66, 84, 186, 0.1);
  color: #4254ba;
  font-size: 1.6rem;
}

.branch-mypage-profile-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-bottom: 1.15rem;
  margin-bottom: 1.15rem;
  border-bottom: 1px solid #eef2f7;
}

.branch-mypage-avatar {
  flex: 0 0 3.5rem;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #4254ba 0%, #6f7fe0 100%);
  color: #fff;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.branch-mypage-profile-id {
  font-size: 1.05rem;
  font-weight: 700;
  color: #343a40;
  line-height: 1.3;
}

.branch-mypage-profile-nick {
  font-size: 0.875rem;
  color: #6c757d;
  margin-bottom: 0.4rem;
}

.branch-mypage-grade-badge {
  font-weight: 500;
  padding: 0.35em 0.65em;
}

.branch-mypage-meta-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.7rem 0.8rem;
  border-radius: 0.65rem;
  background: #f8f9fc;
}

.branch-mypage-meta-list li + li {
  margin-top: 0.55rem;
}

.branch-mypage-meta-icon {
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  border-radius: 0.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #4254ba;
  border: 1px solid #e7ebf5;
  font-size: 1rem;
}

.branch-mypage-meta-label {
  display: block;
  font-size: 0.75rem;
  color: #8a94a6;
  margin-bottom: 0.1rem;
}

.branch-mypage-meta-value {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #343a40;
}

.branch-mypage-edit-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: #fff;
  border-bottom: 1px solid #eef2f7;
  padding: 1rem 1.25rem;
}

.branch-mypage-section-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(66, 84, 186, 0.1);
  color: #4254ba;
  font-size: 1.15rem;
}

.branch-mypage-section + .branch-mypage-section {
  margin-top: 1.35rem;
  padding-top: 1.25rem;
  border-top: 1px dashed #e7ebf5;
}

.branch-mypage-section-title {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.9rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #49526b;
  letter-spacing: 0.01em;
}

.branch-mypage-section-title i {
  color: #4254ba;
  font-size: 1rem;
}

.branch-mypage-edit-card .form-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #49526b;
  margin-bottom: 0.35rem;
}

.branch-mypage-edit-card .input-group-text {
  background: #f8f9fc;
  border-color: #dee2e6;
  color: #6c757d;
  min-width: 2.5rem;
  justify-content: center;
}

.branch-mypage-edit-card .form-control {
  font-size: 0.875rem;
}

.branch-mypage-edit-card .form-control:focus {
  border-color: #a5b0e8;
  box-shadow: 0 0 0 0.15rem rgba(66, 84, 186, 0.12);
}

.branch-mypage-hint {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  padding: 0.65rem 0.8rem;
  border-radius: 0.55rem;
  background: #f8f9fc;
  color: #6c757d;
  font-size: 0.78rem;
  line-height: 1.45;
}

.branch-mypage-hint i {
  color: #4254ba;
  font-size: 0.95rem;
  margin-top: 0.05rem;
}

html[data-bs-theme=dark] .branch-mypage-card {
  box-shadow: none;
}

html[data-bs-theme=dark] .branch-mypage-profile-head {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

html[data-bs-theme=dark] .branch-mypage-profile-id,
html[data-bs-theme=dark] .branch-mypage-meta-value {
  color: #e9ecef;
}

html[data-bs-theme=dark] .branch-mypage-meta-list li,
html[data-bs-theme=dark] .branch-mypage-hint,
html[data-bs-theme=dark] .branch-mypage-edit-card .input-group-text {
  background: rgba(255, 255, 255, 0.03);
}

html[data-bs-theme=dark] .branch-mypage-meta-icon {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

html[data-bs-theme=dark] .branch-mypage-edit-header,
html[data-bs-theme=dark] .branch-mypage-section + .branch-mypage-section {
  border-color: rgba(255, 255, 255, 0.08);
}

/* 회원 트리(jstree) — 단계별 들여쓰기 16px */
.jstree-default .jstree-node {
  margin-left: 16px !important;
}

.jstree-default > .jstree-container-ul > .jstree-node {
  margin-left: 0 !important;
}

/* 일자별정산 등 단일 선택 트리 — 선택 계정 강조 */
.partner-tree-wrap .jstree-wholerow-clicked {
  background: transparent !important;
}

.partner-tree-wrap a.jstree-anchor.jstree-clicked {
  background: transparent !important;
  color: #0d6efd !important;
  font-weight: inherit !important;
  box-shadow: none !important;
}

