/* ace Admin — ice-theme 스타일 재현 */
@import url("../shared/responsive.css");
:root{
  --header:#1e2d32;
  --sidebar:#2a3d42;
  --sidebar2:#324850;
  --side-text:#d5e0e4;
  --side-muted:#9aadb4;
  --content-bg:#eef1f4;
  --card:#fff;
  --line:#dce3e8;
  --text:#1f2a30;
  --muted:#6b7c85;
  --primary:#0d6efd;
  --danger:#dc3545;
  --warning:#ffc107;
  --dark:#212529;
  --ok:#198754;
  --side-w:280px;
  --header-h:50px; /* 원본 admin.css .header height:50px */
  --font:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",-apple-system,sans-serif;
}
*{box-sizing:border-box}
/* 원본 admin.css: html{font-size:12px} — rem 기준 (font_13b=1.3rem 등) */
html{font-size:12px !important}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);
  background:var(--content-bg);
  color:var(--text);
  font-size:1rem; /* 12px */
  font-weight:400;
  min-height:100vh;
  -webkit-font-smoothing:auto;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}

/* header — 원본: fixed 50px (vendor admin.css) */
#app > .header,
.header{
  height:var(--header-h) !important;
  min-height:var(--header-h) !important;
  max-height:var(--header-h) !important;
  background:var(--header);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 !important;
  position:fixed !important;
  left:0; right:0; top:0;
  z-index:1000 !important;
  box-shadow:0 10px 30px 0 rgba(82,63,105,.05);
}
.header .brand{display:flex;align-items:baseline;gap:6px;font-weight:800}
.header .brand .ace{font-size:20px;letter-spacing:.02em}
.header .brand .admin{font-size:14px;opacity:.9}
.header .right{display:flex;align-items:center;gap:12px}
.header .user-chip{font-size:12px;cursor:default}
.header .user-chip .badge{
  display:inline-block;background:#6c757d;color:#fff;font-size:10px;
  padding:2px 6px;border-radius:3px;margin-left:6px;font-weight:700
}
.header .btn-icon{
  background:transparent;border:0;color:#fff;cursor:pointer;padding:6px 8px
}
.header a.link{color:#fff;font-size:12px;opacity:.9}
.header a.link:hover{opacity:1;text-decoration:underline}
.header .admin-user-site-link{
  position:relative;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  line-height:1.15;
  padding-top:2px;
}
.header .admin-user-site-link .user-site-nudge{
  display:block;
  font-size:9px;
  font-weight:700;
  letter-spacing:-0.02em;
  color:#1e2d32;
  background:#ffe08a;
  border-radius:8px 8px 8px 3px;
  padding:2px 7px;
  margin-bottom:2px;
  white-space:nowrap;
  box-shadow:0 1px 0 rgba(0,0,0,.12);
  pointer-events:none;
}
.header .admin-user-site-link .user-site-nudge::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:-4px;
  width:0;height:0;
  margin-left:-4px;
  border:4px solid transparent;
  border-top-color:#ffe08a;
}
.header .admin-user-site-link.has-user-site-nudge .user-site-nudge{
  position:relative;
}

/* layout — 원본: page-wrapper{padding-top:50px} (fixed header 아래) */
#app > .page-wrapper,
.page-wrapper{
  display:flex !important;
  padding-top:var(--header-h) !important; /* 50px — 헤더 높이만, 이중 여백 금지 */
  margin-top:0 !important;
  min-height:100vh !important;
  height:auto !important;
  box-sizing:border-box !important;
}
html.online-popup-mode #app > .page-wrapper,
body.online-popup-mode #app > .page-wrapper {
  padding-top: 0 !important;
  min-height: 0 !important;
}
html.online-popup-mode #app .page-wrapper.toggled > .page-content,
html.online-popup-mode #app .page-wrapper.toggled .page-content,
html.online-popup-mode #app .page-content,
body.online-popup-mode #app .page-wrapper.toggled > .page-content,
body.online-popup-mode #app .page-wrapper.toggled .page-content,
body.online-popup-mode #app .page-content {
  padding-left: 12px !important;
  padding-right: 12px !important;
  margin-left: 0 !important;
}
.sidebar{
  width:var(--side-w);flex:0 0 var(--side-w);
  background:linear-gradient(180deg,var(--sidebar),#24383e);
  color:var(--side-text);overflow:auto;position:sticky;top:var(--header-h);
  height:calc(100vh - var(--header-h));
}
.sidebar.collapsed{display:none}
/* 원본: page-content 상단/하단 패딩 0.
 * 단, 사이드바 열림 시 padding-left:280px 은 반드시 유지
 * (padding:0 !important 쓰면 left 오프셋이 깨져 본문 왼쪽이 잘림) */
#app .page-content,
.page-wrapper .page-content,
.page-content{
  flex:1;
  min-width:0;
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin:0 !important;
}

/* sidebar menu */
.side-group{border-bottom:1px solid rgba(255,255,255,.06)}
.side-group > button{
  width:100%;text-align:left;background:transparent;border:0;color:var(--side-text);
  padding:12px 14px;font-weight:700;font-size:13px;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;
}
.side-group > button:hover{background:rgba(255,255,255,.05)}
.side-group > button .caret{opacity:.6;font-size:10px}
.side-sub{display:none;background:rgba(0,0,0,.15);padding:4px 0 8px}
.side-group.open .side-sub{display:block}
.side-sub a{
  display:block;padding:8px 14px 8px 22px;color:var(--side-muted);font-size:12px;font-weight:600
}
.side-sub a:hover,.side-sub a.active{color:#fff;background:rgba(255,255,255,.06)}
.side-sub a.active{border-left:3px solid #5bc0de;padding-left:19px}

/* dashboard quick */
.dash-quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.dash-quick .btn-dark{
  background:var(--dark);color:#fff;border:0;border-radius:4px;
  padding:6px 0;width:7.5rem;font-size:12px;font-weight:700;cursor:pointer;text-align:center
}
.dash-quick .btn-dark:hover{filter:brightness(1.08)}
.dash-quick .pill{
  display:inline-block;background:var(--danger);color:#fff;border-radius:999px;
  font-size:10px;padding:1px 6px;margin-left:4px;min-width:1.1rem
}

.stat-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.stat-card{
  background:var(--card);border:1px solid var(--line);border-radius:6px;
  padding:12px 14px;min-width:140px;flex:1
}
.stat-card .k{font-size:11px;color:var(--muted);font-weight:700}
.stat-card .v{font-size:20px;font-weight:900;margin-top:4px}
.stat-card .v.danger{color:var(--danger)}
.stat-card .v.ok{color:var(--ok)}
.stat-card .v.primary{color:var(--primary)}

.game-links{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.game-links a{
  background:#fff;border:1px solid var(--line);border-radius:4px;
  padding:6px 10px;font-size:12px;font-weight:700;color:#334
}
.game-links a:hover{border-color:#5bc0de;color:#0a6}

.panel{
  background:var(--card);border:1px solid var(--line);border-radius:6px;
  padding:14px;margin-bottom:14px
}
.panel h2{margin:0 0 12px;font-size:16px;font-weight:800}
.panel h3{margin:0 0 10px;font-size:14px;font-weight:800}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.toolbar .spacer{flex:1}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  border:1px solid var(--line);background:#fff;color:var(--text);
  padding:6px 10px;border-radius:4px;font-size:12px;font-weight:700;cursor:pointer
}
/* default(무색) 버튼만 연한 배경 — 색상 버튼은 아래에서 덮어씀 */
.btn:hover{background:#f8f9fa}
.btn:focus,.btn:focus-visible{outline:none;box-shadow:0 0 0 0.2rem rgba(13,110,253,.25)}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary:focus-visible{
  background:var(--primary);border-color:var(--primary);color:#fff;filter:brightness(1.08)
}
.btn-success{background:var(--ok);border-color:var(--ok);color:#fff}
.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success:focus-visible{
  background:var(--ok);border-color:var(--ok);color:#fff;filter:brightness(1.08)
}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger:focus-visible{
  background:var(--danger);border-color:var(--danger);color:#fff;filter:brightness(1.08)
}
.btn-warning{background:var(--warning);border-color:var(--warning);color:#212529}
.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning:focus-visible{
  background:var(--warning);border-color:var(--warning);color:#212529;filter:brightness(1.05)
}
.btn-dark{background:var(--dark);border-color:var(--dark);color:#fff}
.btn-dark:hover,.btn-dark:focus,.btn-dark:active,.btn-dark:focus-visible{
  background:var(--dark);border-color:var(--dark);color:#fff;filter:brightness(1.08)
}
.btn-sm{padding:4px 8px;font-size:11px}
/* 바카라 사이드 배지 ST/SP/STP — 연한 분홍 */
.btn-bac-side,
button.btn-bac-side{
  background:#fce4ec !important;
  border:1px solid #f48fb1 !important;
  color:#ad1457 !important;
  font-weight:700;
}
.btn-bac-side:hover,
.btn-bac-side:focus,
button.btn-bac-side:hover{
  background:#f8bbd0 !important;
  border-color:#ec407a !important;
  color:#880e4f !important;
}

.table-wrap{overflow:auto}
table.data{width:100%;border-collapse:collapse;min-width:0;background:#fff}
table.data th,table.data td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}
table.data th{background:#f7f9fb;color:var(--muted);font-weight:800;font-size:11px;white-space:nowrap}
table.data tr:hover td{background:#fafbfc}
.text-end{text-align:right}

.badge{
  display:inline-block;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800
}
.badge-wait{background:#fff3cd;color:#856404}
.badge-ok{background:#d1e7dd;color:#0f5132}
.badge-no{background:#f8d7da;color:#842029}
.badge-info{background:#cff4fc;color:#055160}
.badge-sec{background:#e2e3e5;color:#41464b}

.field{display:grid;gap:4px;margin-bottom:10px}
.field label{font-size:11px;color:var(--muted);font-weight:700}
.field input,.field select,.field textarea{
  width:100%;border:1px solid var(--line);border-radius:4px;padding:8px 10px;background:#fff
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#86b7fe;box-shadow:0 0 0 3px rgba(13,110,253,.12)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.note{background:#e7f1ff;border:1px solid #b6d4fe;color:#084298;padding:10px 12px;border-radius:4px;font-size:12px;margin-top:10px}
.muted{color:var(--muted)}
.front-link{color:#0d6efd;font-weight:700}

/* auth */
.auth-page{min-height:100vh;display:grid;place-items:center;background:var(--header);padding:20px}
.auth-card{width:min(380px,100%);background:#fff;border-radius:8px;padding:24px;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.auth-card h1{margin:0 0 4px;text-align:center;font-size:18px}
.auth-card .sub{text-align:center;color:var(--muted);margin-bottom:14px;font-size:12px}

.toast-host{position:fixed;left:50%;top:58px;transform:translateX(-50%);z-index:2147483646;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{background:#027a48;color:#fff;padding:14px 18px;border-radius:12px;min-width:240px;font-size:15px;font-weight:700;box-shadow:0 12px 32px rgba(0,0,0,.35)}

.placeholder{padding:28px;text-align:center;color:var(--muted)}
.placeholder b{color:var(--text)}

@media(max-width:900px){
  .sidebar{position:fixed;left:0;z-index:90;transform:translateX(-100%);transition:.2s}
  .sidebar.open{transform:none}
  .grid2{grid-template-columns:1fr}
  /* page-content padding removed — use container-fluid only */
}

/* ux-v2 */
.page-content .panel > .toolbar h2 { font-size:18px }
#stats-daily-summary .stat-card { min-width:160px }
#stats-daily-summary .stats-sum-card { min-width: 0 }
.table-wrap .placeholder { padding:40px 16px; font-size:13px }
.header .btn-icon {
  background:rgba(255,255,255,.12); border-radius:4px; font-size:18px;
}
@media(max-width:900px){
  .header .btn-icon {
    background:#0d6efd; padding:8px 12px;
  }
  /* page-content padding-top removed — match original 0 */
  /* sticky menu hint */
  .mobile-menu-hint{
    display:block; background:#fff3cd; border:1px solid #ffecb5; color:#664d03;
    padding:8px 12px; border-radius:4px; margin-bottom:10px; font-size:12px; font-weight:700;
  }
}
@media(min-width:901px){
  .mobile-menu-hint{ display:none }
}

/* users-list-v2 */
.filter-bar{
  display:flex; flex-wrap:wrap; gap:10px; align-items:end;
  padding:12px; background:#f7f9fb; border:1px solid var(--line); border-radius:6px;
}
.filter-bar .field label{margin-bottom:2px}
table.users-data{min-width:0 !important;width:100% !important}
table.users-data th, table.users-data td{white-space:nowrap; font-size:12px}
table.users-data td.actions{white-space:normal}
/*
 * 커스텀 모달(#user-modal 등): .modal-backdrop 안에 .modal-card / .modal-panel
 * Bootstrap 5 도 .modal-backdrop 클래스를 쓰므로 반드시 :has() 로 분리.
 * (이전 z-index:3000 전역 오버라이드가 BS 모달 위를 덮어 버튼 클릭 불가)
 */
.modal-backdrop:has(.modal-card),
.modal-backdrop:has(.modal-panel),
.modal-backdrop:has(.modal-head){
  position:fixed; inset:0; background:rgba(15,23,30,.5); z-index:3000;
  display:flex; align-items:center; justify-content:center; padding:16px;
}
.modal-backdrop[hidden]{display:none !important}
.modal-card{
  width:min(720px,100%); max-height:90vh; overflow:auto;
  background:#fff; border-radius:10px; box-shadow:0 20px 50px rgba(0,0,0,.28);
}
.modal-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; border-bottom:1px solid #dee2e6; position:sticky; top:0; background:#fff; z-index:1;
}
.modal-body{padding:16px}
.modal-actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px}

/* Bootstrap 5 모달: 배경이 본문 아래, 다이얼로그가 위 — 클릭 가능
 * 대시보드 게임메뉴 z=10500 · #admin-page-main z=1 스택 이슈 회피:
 * 메인배너 등 body 포탈 모달은 20040+ 사용 */
.modal-backdrop.fade,
.modal-backdrop.show{
  position:fixed;
  inset:auto;
  top:0; left:0;
  width:100vw; height:100vh;
  z-index:20040 !important;
  display:block !important;
  padding:0;
  align-items:unset;
  justify-content:unset;
  background-color:#000;
  pointer-events:auto;
}
.modal{
  z-index:20050 !important;
  pointer-events:none;
}
.modal.show{
  pointer-events:none;
}
.modal .modal-dialog{
  pointer-events:none;
}
.modal .modal-content{
  pointer-events:auto;
}
/* 메인 배너 모달: 항상 최상단·클릭 가능 */
#bn-modal.modal,
#bn-modal.modal.show{
  z-index:20050 !important;
  position:fixed !important;
}
#bn-modal .modal-dialog{
  pointer-events:none;
  z-index:20051 !important;
}
#bn-modal .modal-content{
  pointer-events:auto !important;
  position:relative;
  z-index:20052;
}

/* original shell compatibility */
body{min-height:100vh}
.page-wrapper.ice-theme{min-height:100vh;padding-top:var(--header-h,50px)!important}
.sidebar-submenu a.active,
.sidebar-menu li.active:not(.sidebar-dropdown) > a{
  color:#fff !important;
  font-weight:700;
}

.header a{text-decoration:none}
.toast-host{position:fixed;left:50%;top:58px;transform:translateX(-50%);z-index:2147483646;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{background:#027a48;color:#fff;padding:14px 18px;border-radius:12px;min-width:240px;font-size:15px;font-weight:700;box-shadow:0 12px 32px rgba(0,0,0,.35)}
.badge-wait{background:#fff3cd;color:#856404}
.badge-ok{background:#d1e7dd;color:#0f5132}
.badge-no{background:#f8d7da;color:#842029}
.badge-info{background:#cff4fc;color:#055160}
.badge-sec{background:#e2e3e5;color:#41464b}
.badge{display:inline-block;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800}
table.data .btn{margin:1px}

/* === fix missing original sidebar bg assets === */
.sidebar-bg.bg2 .sidebar-wrapper,
.sidebar-bg.bg1 .sidebar-wrapper,
.sidebar-bg.bg3 .sidebar-wrapper,
[data-bg=bg2],
[data-bg=bg1] {
  background-image: none !important;
  background-color: #1e2d32 !important;
}
/*
 * 스크롤은 문서(body) 1곳만 — 원본과 동일
 * 주의: overflow-x 를 clip/hidden 하면 overflow-y:visible 이 auto 로 바뀌어
 *       page-wrapper 에 세로 스크롤이 생기고 body 와 이중 스크롤이 됨.
 */
html {
  overflow-x: hidden;
  overflow-y: auto;
  height: auto;
}
body {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  height: auto !important;
  min-height: 100%;
}
#app {
  overflow: visible !important;
  min-height: 100%;
}
.page-wrapper,
.page-wrapper.ice-theme {
  height: auto !important;           /* vendor 100vh 덮어쓰기 — 헤더+100vh 이중스크롤 방지 */
  min-height: 100vh !important;
  max-height: none !important;
  width: 100%;
  max-width: 100%;
  overflow: visible !important;      /* 내부 세로 스크롤 제거 */
  box-sizing: border-box !important;
  /* 원본: fixed 헤더 아래 50px만 — sticky 헤더 시절 이중 여백 방지 */
  padding-top: var(--header-h, 50px) !important;
  margin-top: 0 !important;
}
.page-wrapper .page-content,
.page-content {
  height: auto !important;
  max-height: none !important;
  min-height: 0;
  background: #f5f6f8 !important;
  min-width: 0 !important;
  max-width: 100%;
  box-sizing: border-box;
  overflow: visible !important;      /* 본문 이중 스크롤 제거 */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  /* padding-left 는 사이드바 토글 규칙에서 관리 — 여기서 0 강제 금지 */
}
/* 사이드바만 자체 스크롤 (원본: sidebar-wrapper overflow-y:auto) */
.sidebar-wrapper {
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
/* keep main content readable */
.page-content .card {
  background: #fff;
  max-width: 100%;
}
/*
 * ===== 전 카테고리 공통: 넓은 표는 컨테이너 안에서만 가로 스크롤 =====
 * overflow-x:visible + list_lg min-width 조합은 body(overflow-x:hidden)에
 * 표 왼쪽이 사이드바/뷰포트에 잘리는 원인이 됨.
 */
#app .table-responsive,
#app .table-responsive-sm,
.page-content .table-responsive,
.page-content .table-responsive-sm,
.sa-wrap .table-responsive,
.admin .table-responsive {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
}

/* 원본 밀도 유지 — 과도한 확대/굵기 강제 제거 */
#app .font_16b,
.page-content .font_16b {
  font-size: 1.6rem; /* 원본 font_16b */
  font-weight: 700;
}
.page-content .form-control,
.page-content .form-select {
  font-size: 1rem;
  font-weight: 400;
}
.page-content .btn {
  font-size: 1rem;
  font-weight: 400;
}
.page-content .btn-sm {
  font-size: 0.9rem;
  padding: 0.2rem 0.45rem;
}
.page-content table,
.page-content .table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: 400;
  border-collapse: collapse;
}
.page-content table th,
.page-content table td {
  vertical-align: middle;
  padding: 0.35rem 0.4rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.35;
}
.page-content table thead th {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.3;
}

/*
 * ===== 상단 글로벌 대시보드 (ACE after_login 밀도) =====
 * 원본: container-fluid bg-white px-3 px-lg-5 py-3 dashboard
 *  - 알람: d-flex mb-2 + btn-dark py-1 px-0 me-2 width:10rem
 *  - 통계: d-flex mt-1 + card me-2 mb-2 width:10rem / 헤더 p-1 / 값 font_13b p-2
 *  - 게임: d-flex mt-1 + dropdown me-2 / btn bg-warning width:10rem / font_10 py-1
 * 스코프: .admin-global-dash / .dashboard 만 (리스트 페이지 영향 없음)
 */
/* 원본: container-fluid bg-white px-3 px-lg-5 py-3 dashboard
 * py-3 = 1rem 상하 — 헤더 바로 아래 이 패딩만 있어야 함 */
#app .page-content > .dashboard.admin-global-dash,
#app .page-content > .container-fluid.dashboard.admin-global-dash,
#app .page-content > #admin-global-dash,
.page-content > .dashboard.admin-global-dash,
.page-content > .container-fluid.dashboard.admin-global-dash,
.page-content > .container-fluid.dashboard,
#admin-global-dash.dashboard {
  margin: 0 !important;
  margin-top: 0 !important;
  border: 0;
  box-shadow: none;
  /* Bootstrap py-3 = 1rem — 원본과 동일 (추가 상단 여백 금지) */
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
  padding-left: 1rem !important;   /* px-3 */
  padding-right: 1rem !important;
}
@media (min-width: 992px) {
  #app .page-content > #admin-global-dash,
  #admin-global-dash.dashboard {
    padding-left: 3rem !important;  /* px-lg-5 */
    padding-right: 3rem !important;
  }
}
.dashboard_body:not(.is-dash-home) .dash-home-crumb,
.dashboard_body:not(.is-dash-home) .dash-manual-card,
.dashboard_body:not(.is-dash-home) .dash-operator-create-card,
.dashboard_body:not(.is-dash-home) .dash-tree-hint-card {
  display: none !important;
}
.admin-global-dash,
.admin-global-dash-inner,
.dashboard .dashboard_body,
.dashboard_body {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}
.admin-global-dash-inner {
  margin: 0 !important;
  padding: 0 !important;
}
/* 행 간격: 원본 mb-2 / mt-1 — gap 강제 0 (me-2 로 카드 간격) */
.admin-global-dash .dash-alarm-row,
.dashboard .dash-alarm-row {
  margin-top: 0 !important;
  margin-bottom: 0.5rem !important; /* mb-2 */
  gap: 0 !important;
  align-content: flex-start;
}
.admin-global-dash .dash-stat-row,
.dashboard .dash-stat-row {
  margin-top: 0.25rem !important; /* mt-1 */
  margin-bottom: 0 !important;
  gap: 0 !important;
  align-content: flex-start;
  align-items: flex-start;
  /* 한 줄 연속: 게임중머니 오른쪽에 오늘충전·환전… 이어붙임 (27"+ 가로 스크롤) */
  flex-wrap: nowrap !important;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
/* 매우 좁은 화면만 줄바꿈 (강제 2행 정렬 금지) */
@media (max-width: 900px) {
  .admin-global-dash .dash-stat-row,
  .dashboard .dash-stat-row {
    flex-wrap: wrap !important;
    overflow-x: visible;
  }
}
/* 레거시 spacer/tail/break 제거 */
.admin-global-dash .dash-stat-spacer,
.dashboard .dash-stat-spacer {
  display: none !important;
}
.admin-global-dash .dash-stat-row > .dash-stat-tail,
.dashboard .dash-stat-row > .dash-stat-tail {
  display: contents;
}
.admin-global-dash .dash-stat-row > .dash-stat-break,
.dashboard .dash-stat-row > .dash-stat-break {
  display: none !important;
}
.admin-global-dash .dash-al-swan-row,
.dashboard .dash-al-swan-row,
.dashboard_body .dash-al-swan-row {
  display: flex !important;
  width: 100% !important;
  flex: 0 0 100% !important;
  max-width: 100% !important;
  margin-top: 0.25rem !important;
  margin-bottom: 0 !important;
  align-items: flex-start !important;
}
.admin-global-dash .dash-game-row,
.dashboard .dash-game-row,
.dashboard_body .dash-game-row {
  display: flex !important;
  width: 100% !important;
  flex: 0 0 100% !important;
  max-width: 100% !important;
  margin-top: 0.25rem !important; /* mt-1 */
  margin-bottom: 0 !important;
  gap: 0 !important;
  overflow: visible;
  flex-wrap: wrap !important;
  align-content: flex-start;
  padding-bottom: 0 !important;
}
/* 알람 버튼: 원본 btn-dark py-1 px-0 me-2 width 10rem */
.admin-global-dash .dash-alarm-row > .btn-dark,
.dashboard .dash-alarm-row > .btn-dark,
.admin-global-dash > .dashboard_body .dash-alarm-row > .btn-dark {
  width: 10rem !important;
  min-width: 10rem;
  max-width: 10rem;
  padding: 0.25rem 0 !important; /* py-1 */
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  flex: 0 0 auto;
  margin-right: 0.5rem !important; /* me-2 */
  margin-bottom: 0.25rem !important; /* wrap 시 줄 간격 */
  border-radius: 0.25rem;
  text-align: center;
  color: #fff !important;
  background-color: #212529 !important;
  border: 1px solid #212529 !important;
}
.admin-global-dash .dash-alarm-row > .btn-dark:hover,
.dashboard .dash-alarm-row > .btn-dark:hover {
  filter: brightness(1.08);
  color: #fff !important;
}
.admin-global-dash .dash-alarm-row .badge,
.dashboard .dash-alarm-row .badge {
  font-weight: 700;
  font-size: 0.75rem;
  vertical-align: middle;
}
/* 오늘 충전액/환전액 헤더 — 대기 건수 빨간 숫자 뱃지 (원본) */
.admin-global-dash .dash-stat-row .card .badge,
.dashboard .dash-stat-row .card .badge {
  display: inline-block;
  min-width: 1.15rem;
  padding: 0.15em 0.45em;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  line-height: 1.15;
  vertical-align: middle;
  color: #fff !important;
  background-color: #dc3545 !important;
  border-radius: 50rem !important;
}
.admin-global-dash .dash-stat-row .card .badge[hidden],
.admin-global-dash .dash-stat-row .card .badge:empty,
.dashboard .dash-stat-row .card .badge[hidden],
.dashboard .dash-stat-row .card .badge:empty {
  display: none !important;
}
/* 금액 숫자 항상 우측 정렬·가독성 */
.admin-global-dash .dash-stat-row .card h5.db_content,
.dashboard .dash-stat-row .card h5.db_content {
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: #212529 !important;
}
/* 통계 카드: 원본 card me-2 mb-2 width 10rem (1·2행 공통) */
.admin-global-dash .dash-stat-row .card,
.dashboard .dash-stat-row .card {
  width: 10rem !important;
  min-width: 10rem;
  max-width: 10rem;
  flex: 0 0 auto;
  border: 1px solid rgba(0, 0, 0, 0.125) !important;
  border-radius: 0.25rem !important;
  box-shadow: none !important;
  margin-right: 0.5rem !important; /* me-2 */
  margin-bottom: 0.5rem !important; /* mb-2 */
  overflow: hidden;
  background: #fff;
  user-select: none;
}
.admin-global-dash .dash-stat-row .card.pointer:hover,
.dashboard .dash-stat-row .card.pointer:hover {
  filter: brightness(0.98);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}
.admin-global-dash .dash-stat-row .card.pointer:active,
.dashboard .dash-stat-row .card.pointer:active {
  transform: translateY(1px);
}
/* 알 잔고: 알본사별은 호버 팝만 (대시 줄 overflow-x 때문에 body 고정) */
.admin-global-dash .dash-stat-row .dash-al-hover-wrap,
.dashboard .dash-stat-row .dash-al-hover-wrap {
  flex: 0 0 auto;
  position: relative;
  display: block;
  outline: none;
}
.dash-al-hover-wrap {
  position: relative;
  cursor: default;
}
.dash-al-hover-wrap:focus {
  outline: none;
}
.js-al-hq-hover {
  cursor: default;
}
.dash-al-hq-menu,
ul.dash-al-hq-menu {
  min-width: 240px !important;
  max-width: min(96vw, 320px) !important;
}
.dash-al-hq-menu .w240px {
  width: 240px;
  max-width: 240px;
}
.admin-global-dash .dash-stat-row .card .card-body,
.dashboard .dash-stat-row .card .card-body {
  padding: 0 !important;
}
/* 카드 헤더: p-1 + font-weight-bold (원본) */
.admin-global-dash .dash-stat-row .card .font-weight-bold,
.admin-global-dash .dash-stat-row .card .p-1,
.dashboard .dash-stat-row .card .font-weight-bold,
.dashboard .dash-stat-row .card .p-1 {
  font-size: 1rem !important;
  font-weight: 700 !important;
  padding: 0.25rem !important; /* p-1 */
  line-height: 1.5;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 카드 값: font_13b = 1.3rem @ html 12px, p-2 */
.admin-global-dash .dash-stat-row .card .font_13b,
.admin-global-dash .dash-stat-row .card h5.db_content,
.dashboard .dash-stat-row .card .font_13b,
.dashboard .dash-stat-row .card h5.db_content {
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  padding: 0.5rem !important; /* p-2 */
  line-height: 1.2;
  margin: 0 !important;
  min-height: 0;
}
/* 노란 게임 칸 */
.admin-global-dash .dash-game-col,
.dashboard .dash-game-col,
.dashboard_body .dash-game-col {
  flex: 0 0 auto;
  position: relative;
  margin-right: 0.5rem !important; /* me-2 */
  margin-bottom: 0.35rem !important;
  width: 10rem;
}
.admin-global-dash .dash-game-col > .btn.bg-warning,
.dashboard .dash-game-col > .btn.bg-warning,
.dashboard_body .dash-game-col > .btn.bg-warning {
  width: 10rem !important;
  min-width: 10rem;
  max-width: 10rem;
  font-weight: 400 !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
  border-radius: 0.25rem;
  display: block;
  padding: 0.375rem 0.75rem !important; /* BS btn 기본에 가깝게 */
  border: 0;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
  color: #212529 !important;
  background-color: #ffc107 !important;
}
.admin-global-dash .dash-game-col .col.border,
.dashboard .dash-game-col .col.border,
.dashboard_body .dash-game-col .col.border {
  width: 10rem;
  max-width: 10rem;
  background: #fff;
  box-sizing: border-box;
  border-color: #dee2e6 !important;
  padding: 0 !important;
}
.admin-global-dash .dash-game-label .row.bg-light .col.border,
.dashboard .dash-game-label .row.bg-light .col.border {
  background: #f8f9fa;
}
/* 원본 font_10 = 1rem — vendor 유지, 강제 확대 금지 */
.admin-global-dash .dash-game-col .font_10,
.dashboard .dash-game-col .font_10,
.dashboard_body .dash-game-col .font_10 {
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.5;
}
.admin-global-dash .dash-game-col .font_10 > div,
.dashboard .dash-game-col .font_10 > div,
.dashboard_body .dash-game-col .font_10 > div,
.admin-global-dash .dash-game-col .db_content > div,
.dashboard .dash-game-col .db_content > div {
  padding-top: 0.25rem !important; /* py-1 */
  padding-bottom: 0.25rem !important;
  padding-left: 0.35rem !important;
  padding-right: 0.35rem !important;
  font-weight: 400 !important;
  font-size: 1rem !important;
  line-height: 1.5;
  min-height: 0;
  box-sizing: border-box;
}
/* 손익 색 (원본 text_positive / text_negative) */
.dashboard .text_positive,
.admin-global-dash .text_positive { color: #007bff !important; font-weight: 400; }
.dashboard .text_negative,
.admin-global-dash .text_negative { color: #dc3545 !important; font-weight: 400; }
/* soft-nav 본문 */
#admin-page-main {
  transition: opacity 0.12s ease;
  min-height: 40vh;
}
/* 통계/게임 줄 줄바꿈 */
.dashboard .d-flex.flex-wrap,
.admin-global-dash .d-flex.flex-wrap,
.dashboard_body .d-flex.flex-wrap {
  align-content: flex-start;
}

/* 원본: 노란 게임칸 호버/클릭 시 종목별 정산표
 * fixed + body 포탈(JS) — 페이지 높이 확장·회원리스트 아래 깔림 방지 */
.dashboard .dropdown-menu.dash-game-menu,
.admin-global-dash .dropdown-menu.dash-game-menu,
.dashboard_body .dropdown-menu.dash-game-menu,
.dash-game-menu,
ul.dash-game-menu {
  display: none;
  position: fixed !important;
  z-index: 10500 !important;
  min-width: 600px;
  max-width: min(96vw, 720px);
  max-height: min(70vh, 520px);
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0.25rem 0;
  border: 1px solid rgba(0, 0, 0, 0.15);
  background: #f8f9fa !important;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.22);
  left: 0;
  top: 0;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: none !important;
  inset: auto; /* bootstrap dropdown inset 초기화 */
  pointer-events: auto;
}
.dash-game-menu.show,
.dash-game-menu.is-floating,
ul.dash-game-menu.show,
ul.dash-game-menu.is-floating {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
/* 대시보드 자체는 레이아웃만 — 메뉴는 body fixed 로 분리 */
.admin-global-dash,
.dashboard.admin-global-dash,
.dashboard_body,
.dash-game-row {
  overflow: visible !important;
  position: relative;
  z-index: 2;
}
.dash-game-col {
  cursor: pointer;
  position: relative;
  z-index: 1;
}
.dash-game-col.is-open {
  z-index: 3;
}
/* 본문이 대시보드 메뉴 위로 올라오지 않도록 (메뉴는 body fixed z=10500) */
.page-content > #admin-page-main {
  position: relative;
  z-index: 1;
}
.dash-game-menu .dropdown-item {
  font-size: 13px;
  padding: 0.35rem 0.75rem;
  white-space: nowrap;
}
.dash-game-menu .dropdown-item:hover {
  background-color: #eee;
}
.dash-game-menu .dropdown-item.disabled,
.dash-game-menu .dropdown-item:disabled {
  color: #212529;
  opacity: 1;
  pointer-events: none;
  font-weight: 700;
}
.dash-game-menu .w600px {
  width: 600px;
  max-width: 600px;
}
.dash-game-col .db_content:hover,
.dash-game-col.is-open .db_content {
  background-color: #eee;
}
/* 베팅리스트 합계 행 (원본 table-primary) */
.bet-list-page .bet-sum-row td,
#bet-table .bet-sum-row td,
.bet-list-table .bet-sum-row td {
  background-color: #cfe2ff !important;
  font-weight: 700 !important;
  white-space: nowrap;
}
.bet-list-page .bet-sum-row .text_positive { color: #0d6efd !important; }
.bet-list-page .bet-sum-row .text_negative { color: #dc3545 !important; }

/* 호버 상세표는 집계 숫자칸 아래에만 — 칸을 덮지 않음 */
.dash-game-col.is-open {
  z-index: 4;
}
.dash-game-col.is-open > .btn.bg-warning,
.dash-game-col.is-open .db_content {
  position: relative;
  z-index: 5; /* 메뉴(z 10500 fixed)와 별개로 칸 자체는 항상 읽기 가능 */
  box-shadow: 0 0 0 1px rgba(13, 110, 253, 0.25);
}
body > .dash-game-menu.show,
body > .dash-game-menu.is-floating {
  /* placeMenu 가 content bottom 기준; 위쪽 뒤집기 금지 */
  margin-top: 0 !important;
}

/* ===== 로그인 정보 표 — 고정 열 폭 (추가정보 과대 확장으로 표 깨짐 방지) =====
 * id 70 / 시간 130 / 분류 110 / 세부 90 / 추가정보 200 / 아이디 180 / 아이피 110 / 데이터 220
 * 합 ≈ 1110px → 화면 안에 들어가고 긴 추가는 말줄임+title
 */
.login-log-page .login-log-wrap,
.login-log-wrap {
  overflow-x: auto !important;
  width: 100%;
  max-width: 100%;
}
.login-log-list-wrap,
#app .login-log-list-wrap {
  min-width: 0 !important;
  width: 100%;
  max-width: 100%;
}
#app table.login-log-table,
.page-content table.login-log-table,
table.login-log-table,
#login-log-main.login-log-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 960px !important;
  max-width: 100% !important;
  font-size: 0.95rem !important;
  margin-bottom: 0 !important;
  /* 인라인 style 덮어쓰기 방어 (normalizeAdminTables 등) */
  box-sizing: border-box !important;
}
/* 데이터 열 긴 문자열/JSON 도 칸 밖으로 안 밀리게 */
#app table.login-log-table td.ll-data,
table.login-log-table td.ll-data {
  overflow: hidden !important;
}
#app table.login-log-table td.ll-user,
table.login-log-table td.ll-user {
  overflow: hidden !important;
  max-width: 180px !important;
  text-align: center !important;
  vertical-align: middle !important;
}
#app table.login-log-table col.ll-col-id { width: 70px; }
#app table.login-log-table col.ll-col-time { width: 130px; }
#app table.login-log-table col.ll-col-cat { width: 110px; }
#app table.login-log-table col.ll-col-sub { width: 90px; }
#app table.login-log-table col.ll-col-extra { width: 320px; }
#app table.login-log-table col.ll-col-user { width: 180px; }
#app table.login-log-table col.ll-col-ip { width: 110px; }
#app table.login-log-table col.ll-col-data { width: auto; }
table.login-log-table col.ll-col-id { width: 70px; }
table.login-log-table col.ll-col-time { width: 130px; }
table.login-log-table col.ll-col-cat { width: 110px; }
table.login-log-table col.ll-col-sub { width: 90px; }
table.login-log-table col.ll-col-extra { width: 320px; }
table.login-log-table col.ll-col-user { width: 180px; }
table.login-log-table col.ll-col-ip { width: 110px; }
table.login-log-table col.ll-col-data { width: auto; }

#app table.login-log-table th,
#app table.login-log-table td,
table.login-log-table th,
table.login-log-table td {
  vertical-align: middle !important;
  padding: 0.35rem 0.4rem !important;
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  min-width: 0 !important;
}
/* 고정폭 유틸 */
#app table.login-log-table .w70px,
table.login-log-table .w70px { width: 70px !important; max-width: 70px !important; }
#app table.login-log-table .w110px,
table.login-log-table .w110px { width: 110px !important; max-width: 110px !important; }
#app table.login-log-table .w120px,
table.login-log-table .w120px { width: 110px !important; max-width: 120px !important; }
#app table.login-log-table .w130px,
table.login-log-table .w130px { width: 130px !important; max-width: 130px !important; }
#app table.login-log-table .w180px,
table.login-log-table .w180px { width: 180px !important; max-width: 180px !important; }
/* 추가 정보: 넓게 + 가운데 (23-22) */
#app table.login-log-table th.ll-extra-h,
#app table.login-log-table td.ll-extra,
table.login-log-table th.ll-extra-h,
table.login-log-table td.ll-extra {
  width: 320px !important;
  max-width: 320px !important;
  min-width: 240px !important;
  text-align: center !important;
  white-space: nowrap !important;
}
#app table.login-log-table .ll-extra-text,
table.login-log-table .ll-extra-text {
  display: block !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  text-align: center !important;
}
#app table.login-log-table th.ll-data-h,
#app table.login-log-table td.ll-data,
table.login-log-table th.ll-data-h,
table.login-log-table td.ll-data {
  width: auto !important;
  min-width: 160px !important;
  max-width: 280px !important;
  white-space: nowrap !important;
}
/* 원본 데이터 열: form-control py-0 readonly */
#app table.login-log-table .ll-data-input,
table.login-log-table .ll-data-input,
#app table.login-log-table input.form-control.ll-data-input {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: calc(1.5em + 0.5rem) !important;
  min-height: 0 !important;
  padding: 0.15rem 0.45rem !important;
  font-size: 0.95rem !important;
  line-height: 1.4 !important;
  border: 1px solid #ced4da !important;
  background: #fff !important;
  box-sizing: border-box !important;
  display: block !important;
}
/* 회원팝업 회원기록 데이터: 원본 회색 readonly 입력 · 왼쪽 맞춤 */
.ue-history-panel td.ue-hist-data,
#app .ue-history-panel td.ue-hist-data {
  text-align: left !important;
  min-width: 280px;
  max-width: 520px;
  vertical-align: middle;
  padding: 4px 6px !important;
}
.ue-history-panel .ue-hist-data-input,
#app .ue-history-panel input.form-control.ue-hist-data-input {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: calc(1.5em + 0.5rem) !important;
  min-height: 0 !important;
  padding: 0.15rem 0.45rem !important;
  margin: 0 !important;
  text-align: left !important;
  font-size: 0.92rem !important;
  line-height: 1.4 !important;
  color: #212529 !important;
  background-color: #e9ecef !important;
  border: 1px solid #ced4da !important;
  box-sizing: border-box !important;
}
#app table.login-log-table .ellipsis,
table.login-log-table .ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
#app table.login-log-table .open_user_info,
table.login-log-table .open_user_info {
  white-space: nowrap;
  font-weight: 700;
  cursor: pointer;
}
.login-log-filter .form-select,
.login-log-filter .form-control {
  min-width: 0 !important;
  width: 150px !important;
  font-size: 1rem !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
}


/* ===== SIDEBAR SUBMENU FORCE SHOW (all categories) ===== */
.sidebar-wrapper .sidebar-menu .sidebar-dropdown > .sidebar-submenu {
  display: none !important;
}
.sidebar-wrapper .sidebar-menu .sidebar-dropdown.active > .sidebar-submenu,
.sidebar-wrapper .sidebar-menu .sidebar-dropdown.active .sidebar-submenu {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  position: relative !important;
  z-index: 5 !important;
  /* 펼친 하위 메뉴 공백 영역 — 원본 ice 톤 (더 어두운 배경) */
  background: rgba(0, 0, 0, 0.28) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  margin: 0 !important;
  padding: 0 !important;
}
.sidebar-wrapper .sidebar-menu .sidebar-dropdown > a {
  cursor: pointer !important;
  user-select: none;
}
.sidebar-wrapper .sidebar-menu .sidebar-dropdown.active > a {
  font-weight: 700;
  color: #fff !important;
  background: rgba(255, 255, 255, 0.06) !important;
}
.sidebar-wrapper .sidebar-menu .sidebar-submenu ul {
  display: block !important;
  padding: 6px 0 10px !important;
  margin: 0 !important;
  background: transparent !important;
}
.sidebar-wrapper .sidebar-menu .sidebar-submenu li {
  display: list-item !important;
  list-style: none !important;
  padding-left: 0 !important;
  background: transparent !important;
}
/* 하위 항목: 홀짝 공백 색 살짝 구분 */
.sidebar-wrapper .sidebar-menu .sidebar-submenu li:nth-child(odd) > a {
  background: rgba(255, 255, 255, 0.02) !important;
}
.sidebar-wrapper .sidebar-menu .sidebar-submenu li:nth-child(even) > a {
  background: rgba(0, 0, 0, 0.12) !important;
}
.sidebar-wrapper .sidebar-menu .sidebar-submenu li a {
  display: flex !important;
  align-items: center !important;
  color: #c5d6de !important;
  padding: 0.55rem 1rem 0.55rem 2.1rem !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  white-space: nowrap !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  min-height: 34px !important;
  border-left: 3px solid transparent !important;
  transition: background 0.12s ease, color 0.12s ease;
}
.sidebar-wrapper .sidebar-menu .sidebar-submenu li a:hover {
  color: #fff !important;
  background: rgba(91, 192, 222, 0.18) !important;
  border-left-color: #5bc0de !important;
}
.sidebar-wrapper .sidebar-menu .sidebar-submenu li a.active {
  color: #fff !important;
  font-weight: 700 !important;
  background: rgba(91, 192, 222, 0.22) !important;
  border-left-color: #5bc0de !important;
}
/* 상위 메뉴 항목 간격 */
.sidebar-wrapper .sidebar-menu > ul > li.sidebar-dropdown > a {
  padding: 0.7rem 1rem !important;
  min-height: 42px !important;
  display: flex !important;
  align-items: center !important;
  color: #d5e0e4 !important;
}
.sidebar-wrapper .sidebar-menu > ul > li.sidebar-dropdown > a:hover {
  background: rgba(255, 255, 255, 0.05) !important;
  color: #fff !important;
}
.sidebar-wrapper {
  overflow-y: auto !important;
  background-color: #1e2d32 !important;
}


/* ===== Desktop: 사이드바 열림 시 본문 왼쪽 280px 확보 (원본) ===== */
@media (min-width: 901px) {
  /* specificity #app 포함 — padding:0 규칙에 지지 않도록 */
  #app .page-wrapper.toggled .page-content,
  #app .page-wrapper.toggled .page-content.bg-light,
  .page-wrapper.toggled .page-content,
  .page-wrapper.toggled .page-content.bg-light {
    padding-left: 280px !important;
    padding-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    pointer-events: auto !important;
  }
  /* 사이드바 닫힘 시 본문 전체 폭 */
  #app .page-wrapper:not(.toggled) .page-content,
  .page-wrapper:not(.toggled) .page-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
  }
  /* fixed 사이드바: 헤더 아래, 왼쪽 0 */
  #app .page-wrapper.toggled .sidebar-wrapper,
  .page-wrapper.toggled .sidebar-wrapper {
    left: 0 !important;
    top: 50px !important;
    width: 280px !important;
    height: calc(100vh - 50px) !important;
    max-height: calc(100vh - 50px) !important;
    z-index: 999 !important;
    position: fixed !important;
  }
  .page-wrapper .sidebar-wrapper {
    z-index: 999;
  }
}

/* ===== Mobile sidebar: drawer — 본문 전체 폭 유지 ===== */
@media (max-width: 900px) {
  .page-wrapper .sidebar-wrapper {
    left: -280px !important;
    width: min(280px, 86vw) !important;
    z-index: 1040 !important;
  }
  .page-wrapper.toggled .sidebar-wrapper {
    left: 0 !important;
  }
  /* 모바일: 사이드바는 오버레이, 본문은 항상 전체 폭 + 스크롤 가능 */
  .page-wrapper.toggled .page-content,
  .page-wrapper .page-content {
    padding-left: 12px !important;
    padding-right: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    pointer-events: auto !important;
  }
  .page-wrapper .overlay,
  #overlay.overlay {
    display: none !important;
    background: rgba(0,0,0,.45);
    z-index: 1035;
  }
  .page-wrapper.toggled .overlay,
  .page-wrapper.toggled #overlay {
    display: block !important;
    pointer-events: auto !important;
    cursor: pointer;
  }
  .page-wrapper.toggled .sidebar-wrapper {
    pointer-events: auto !important;
  }
  body.sidebar-open {
    overflow-x: hidden !important;
    overflow-y: auto !important; /* 스크롤은 body 1곳만 */
  }
  #toggle-sidebar,
  #toggle-sidebar button,
  .btn_sidebar {
    min-width: 44px;
    min-height: 40px;
    z-index: 1050;
  }
  /* 햄버거 = 왼쪽 메뉴 접기/펼치기 (전체화면 아님) */
  .btn_sidebar {
    display: inline-flex !important;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem !important;
    white-space: nowrap;
  }
  .btn_sidebar .btn-sidebar-label {
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.2;
  }
  @media (max-width: 575.98px) {
    .btn_sidebar .btn-sidebar-label {
      /* 좁은 화면: 툴팁(title)만, 글자는 아이콘 옆 짧게 유지 */
      font-size: 0.75rem;
    }
  }
  .header {
    position: sticky;
    top: 0;
    z-index: 1050;
  }
}

@media (min-width: 992px) {
  body.sidebar-open {
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
}

/* 카드/컨테이너가 세로 스크롤 박스를 만들지 않도록 */
.page-content .card,
.page-content .card-body,
.page-content .container-fluid,
.page-content .table-responsive {
  max-height: none !important;
}
/* table-responsive 는 가로만 스크롤 (세로 이중 스크롤 방지) */
.page-content .table-responsive {
  overflow-x: auto !important;
  overflow-y: visible !important;
}

/* 관리 테이블이 잘리지 않도록 컨테이너 폭 보정 */
.page-content .container-fluid {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  padding-left: 8px;
  padding-right: 8px;
}
/* 플로팅 알림이 표 스크롤을 가리지 않도록 */
#pending-float {
  z-index: 1060;
}

/* original-like list density — 반응형 표와 충돌 시 위의 규칙 우선 */
.table.data, table.table-sm { font-size: 11px; }
table.users-data { min-width: 0 !important; }
.bet-group-tab { margin: 2px; }
/* 원본 vendor rem 유지 (html 12px → font_13b=15.6px). px 강제 금지 */
.font_16b { font-size: 1.6rem !important; font-weight: 700 !important; }
.font_14b { font-size: 1.4rem !important; font-weight: 700 !important; }
.font_13b { font-size: 1.3rem !important; font-weight: 700 !important; }
.font_10 { font-size: 1rem !important; }
/* 통계 카드 값 영역만 최소 높이 — 게임칸 행에는 적용 안 함 */
.admin-global-dash .dash-stat-row > .card h5.db_content,
.dashboard .dash-stat-row > .card h5.db_content {
  min-height: 2rem;
}

/* 인증 대기: 헤더·사이드바는 그대로 두고 본문만 잠시 숨김 (전체 가림막 금지) */
html.admin-await-auth,
html.admin-await-auth body {
  background: #1e2d32 !important;
}
html.admin-await-auth body > * {
  visibility: visible !important;
}
html.admin-await-auth .header,
html.admin-await-auth .page-wrapper,
html.admin-await-auth #sidebar {
  visibility: visible !important;
}
html.admin-await-auth .page-content {
  visibility: hidden !important;
}
html.admin-await-auth body {
  pointer-events: none !important;
}
html.admin-await-auth body::before {
  content: none !important;
  display: none !important;
}



/* ===== 베팅 리스트 — 원본 BULL/ACE 동일 밀도 (.bet-list-page) ===== */
.bet-list-page {
  font-size: 1rem;
  font-weight: 400;
}
.bet-list-page .nav-tabs {
  border-bottom: 1px solid #dee2e6;
  margin-bottom: 0;
  flex-wrap: wrap;
}
.bet-list-page .nav-tabs .nav-link {
  color: #0d6efd;
  font-weight: 400;
  font-size: 1rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  background: transparent;
}
.bet-list-page .nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6;
  color: #0a58ca;
}
.bet-list-page .nav-tabs .nav-link.active {
  color: #495057;
  font-weight: 400;
  background: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
.bet-list-page .card {
  border: 1px solid #dee2e6 !important;
  border-radius: 0 0 0.25rem 0.25rem !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
}
.bet-list-page .card.border-top-0 {
  border-top: 0 !important;
}
.bet-list-page .card-body {
  padding: 1rem 1rem 0.5rem !important;
  overflow-x: auto !important;
}
.bet-list-page .alert-primary,
.bet-list-page .bet-list-help,
.ue-bet-page .bet-list-help {
  font-size: 0.95rem;
  line-height: 1.45;
  margin-bottom: 0.85rem;
  padding: 0.75rem 1rem;
  display: block !important;
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
  visibility: visible !important;
  float: none;
}
.bet-list-page .bet-list-help::after,
.ue-bet-page .bet-list-help::after {
  content: "";
  display: block;
  clear: both;
}
.bet-list-page .alert-primary .btn-sm {
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  padding: 0.15rem 0.4rem !important;
  line-height: 1.25;
  vertical-align: baseline;
  pointer-events: none;
}
/* 베팅리스트 필터 — 원본처럼 한 줄 가로 정렬 (찌그러짐/줄바꿈 방지) */
.bet-list-page .bet-list-filter {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 0.4rem;
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  min-height: 28px;
  padding-bottom: 2px;
  -webkit-overflow-scrolling: touch;
}
.bet-list-page .bet-list-filter > * {
  flex: 0 0 auto !important;
  max-width: none;
}
.bet-list-page .bet-list-filter .form-select,
.bet-list-page .bet-list-filter .form-control {
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  padding: 0.1rem 0.45rem !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  line-height: 1.4 !important;
  box-sizing: border-box !important;
  vertical-align: middle;
}
/* 글자 ↔ 화살표(V) 겹침 방지: 오른쪽 패딩 + 최소폭 확보 */
.bet-list-page .bet-list-filter .form-select,
.bet-list-page .bet-list-filter select.form-select {
  padding-right: 2rem !important;
  background-position: right 0.55rem center !important;
  background-size: 12px 10px !important;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  appearance: none;
  -webkit-appearance: none;
}
.bet-list-page .bet-list-filter .bf-sel {
  width: auto !important;
  min-width: 6.75rem;
}
/* 긴 라벨: 폴드 전체 / 공베팅여부 / 게임 전체 */
.bet-list-page .bet-list-filter #bf-fold,
.bet-list-page .bet-list-filter #bf-avoid {
  min-width: 7.75rem !important;
  width: 7.75rem !important;
}
.bet-list-page .bet-list-filter .bf-sel-game,
.bet-list-page .bet-list-filter #bf-kind {
  min-width: 7.75rem !important;
  width: 7.75rem !important;
}
.bet-list-page .bet-list-filter #bf-result {
  min-width: 6.25rem !important;
}
/* 날짜: 네이티브 date 찌그러지지 않게 고정 폭 */
.bet-list-page .bet-list-filter .bf-date,
.bet-list-page .bet-list-filter input[type="date"].form-control {
  width: 9.75rem !important;
  min-width: 9.75rem !important;
  max-width: 9.75rem !important;
  padding-right: 0.4rem !important;
}
/* 시간 + ✕ 한 덩어리 */
.bet-list-page .bet-time-group {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: auto !important;
  min-width: 9.5rem;
  height: 28px !important;
}
.bet-list-page .bet-time-group .form-control {
  width: 7.25rem !important;
  min-width: 7.25rem !important;
  flex: 1 1 auto !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  text-align: center;
}
.bet-list-page .bet-time-group .btn {
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 0.55rem !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  line-height: 1 !important;
  flex: 0 0 auto !important;
}
/* 아이디 검색 콤보 */
.bet-list-page .bet-search-combo {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: 15.5rem !important;
  min-width: 15.5rem !important;
  height: 28px !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  overflow: hidden;
  background: #fff;
  box-sizing: border-box !important;
}
.bet-list-page .bet-search-combo .form-select,
.bet-list-page .bet-search-combo .form-control {
  border: 0 !important;
  box-shadow: none !important;
  height: 26px !important;
  min-height: 26px !important;
  max-height: 26px !important;
  border-radius: 0 !important;
}
.bet-list-page .bet-search-combo .form-select {
  width: 7.25rem !important;
  min-width: 7.25rem !important;
  max-width: 7.25rem !important;
  flex: 0 0 7.25rem !important;
  background-color: #fff;
  border-right: 1px solid #e9ecef !important;
  padding-left: 0.45rem !important;
  padding-right: 1.85rem !important;
  background-position: right 0.45rem center !important;
  background-size: 12px 10px !important;
  appearance: none;
  -webkit-appearance: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bet-list-page .bet-search-combo .form-control {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
}
.bet-list-page .bet-list-filter .bf-search-btn,
.bet-list-page .bet-list-filter .btn-primary {
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 0.9rem !important;
  border-radius: 0.25rem !important;
  line-height: 1 !important;
  white-space: nowrap;
  pointer-events: auto !important;
  cursor: pointer;
}
.cs-list-page .qna-search-combo {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: 15.5rem !important;
  min-width: 15.5rem !important;
  height: 31px;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  overflow: hidden;
  background: #fff;
  box-sizing: border-box;
}
.cs-list-page .qna-search-combo .form-select,
.cs-list-page .qna-search-combo .form-control {
  border: 0 !important;
  box-shadow: none !important;
  height: 29px !important;
  min-height: 29px !important;
  max-height: 29px !important;
  border-radius: 0 !important;
}
.cs-list-page .qna-search-combo .form-select {
  width: 7.5rem !important;
  min-width: 7.5rem !important;
  max-width: 7.5rem !important;
  flex: 0 0 7.5rem !important;
  background-color: #fff;
  border-right: 1px solid #e9ecef !important;
  padding-right: 1.85rem !important;
}
.cs-list-page .qna-search-combo .form-control {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.bet-list-page .bet-list-filter .bf-min-amt {
  width: 148px !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: stretch !important;
  overflow: visible;
}
.bet-list-page .bet-list-filter .bf-min-amt .input-group-text,
.bet-list-page .bet-list-filter .bf-min-amt .form-control {
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  pointer-events: auto !important;
}
/* 원본 list_lg: 카드 오른쪽(보라선)까지 100%. 남는 폭은 종류 칸 */
.bet-list-page .list_lg_wrap,
#app .bet-list-page .list_lg_wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: visible !important;
}
.bet-list-page .table-responsive,
.bet-list-page .bet-list-wrap,
#app .bet-list-page .table-responsive,
#app .bet-list-page .bet-list-wrap,
#app .bet-list-page .card-body {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
}
/* 표는 카드 폭 100%. 당첨후잔액 90px(베팅전잔액과 동일) · 남는 폭은 종류 */
.bet-list-page #bet-list-table.bet-list-table,
.bet-list-page table.bet-list-table,
#app .bet-list-page #bet-list-table,
#app .bet-list-page #bet-list-table.table,
#app .page-content .bet-list-page table.table.bet-list-table,
.page-content .bet-list-page #bet-list-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  font-size: 0.945rem !important;
  font-weight: 400 !important;
  margin-bottom: 0;
  border-color: #dee2e6;
  border-collapse: collapse;
  white-space: nowrap !important;
}
#app .page-content .bet-list-page #bet-list-table th,
#app .page-content .bet-list-page #bet-list-table td,
#app .page-content .bet-list-page table.table.bet-list-table th,
#app .page-content .bet-list-page table.table.bet-list-table td,
.bet-list-page #bet-list-table th,
.bet-list-page #bet-list-table td {
  font-size: 0.945rem !important;
  font-weight: 400 !important;
  padding: 0.3rem 0.35rem !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  word-break: normal !important;
  line-height: 1.3 !important;
  border-color: #dee2e6 !important;
  overflow: visible !important;
  text-overflow: clip !important;
  box-sizing: border-box !important;
}
#app .page-content .bet-list-page #bet-list-table thead th,
#app .page-content .bet-list-page table.table.bet-list-table thead th,
.bet-list-page #bet-list-table thead th {
  font-weight: 700 !important;
  background-color: #212529 !important;
  color: #fff !important;
  border-color: #32383e !important;
  text-align: center;
  font-size: 0.99rem !important;
  padding: 0.35rem 0.2rem !important;
  line-height: 1.2 !important;
}
.bet-list-page #bet-list-table thead th .icon_sort,
.bet-list-page #bet-list-table thead th .text_gray {
  color: #adb5bd !important;
  font-size: 0.8rem !important;
  opacity: 0.85;
}
.bet-list-page #bet-list-table thead th .icon_sort.text-warning,
.bet-list-page #bet-list-table thead th .icon_sort.text-warning.text_gray {
  color: #ffc107 !important;
  opacity: 1 !important;
}
.bet-list-page #bet-list-table thead th.pointer {
  cursor: pointer;
  user-select: none;
}
/* orig w* / min_w_* column map */
#app .bet-list-page #bet-list-table .w30px,
.bet-list-page #bet-list-table .w30px { width: 30px !important; min-width: 30px !important; max-width: 40px !important; }
#app .bet-list-page #bet-list-table .w40px,
.bet-list-page #bet-list-table .w40px { width: 40px !important; min-width: 40px !important; max-width: 48px !important; }
#app .bet-list-page #bet-list-table .w50px,
.bet-list-page #bet-list-table .w50px { width: 50px !important; min-width: 50px !important; max-width: 56px !important; }
#app .bet-list-page #bet-list-table .w60px,
.bet-list-page #bet-list-table .w60px { width: 60px !important; min-width: 60px !important; max-width: 70px !important; }
#app .bet-list-page #bet-list-table .w70px,
.bet-list-page #bet-list-table .w70px { width: 70px !important; min-width: 70px !important; max-width: 80px !important; }
#app .bet-list-page #bet-list-table .w80px,
.bet-list-page #bet-list-table .w80px { width: 80px !important; min-width: 80px !important; max-width: 90px !important; }
#app .bet-list-page #bet-list-table .w90px,
.bet-list-page #bet-list-table .w90px { width: 90px !important; min-width: 90px !important; max-width: 90px !important; }
#app .bet-list-page #bet-list-table .w100px,
.bet-list-page #bet-list-table .w100px { width: 100px !important; min-width: 100px !important; max-width: 110px !important; }
#app .bet-list-page #bet-list-table .min_w_180px,
.bet-list-page #bet-list-table .min_w_180px { width: 180px !important; min-width: 180px !important; max-width: 200px !important; }

.bet-list-page #bet-list-table .col-sol {
  width: 50px !important; min-width: 50px !important; max-width: 56px !important;
  padding-left: 0.1rem !important;
  padding-right: 0.1rem !important;
}
.bet-list-page #bet-list-table .col-bet-at {
  width: 90px !important; min-width: 90px !important; max-width: 100px !important;
}
.bet-list-page #bet-list-table .col-result-at {
  width: 60px !important; min-width: 60px !important; max-width: 70px !important;
}
.bet-list-page #bet-list-table .col-user,
.bet-list-page #bet-list-table .min_w_180px {
  width: 180px !important; min-width: 180px !important; max-width: 200px !important;
  text-align: center !important;
  padding-left: 0.35rem !important;
}
/* 종류 = 남는 폭 전량. 금액칸 ACE px 유지 */
#app .bet-list-page #bet-list-table .col-type,
#app .bet-list-page #bet-list-table th.col-type,
#app .bet-list-page #bet-list-table td.bet-type-cell,
#app .bet-list-page #bet-list-table td.col-type,
#app .bet-list-page #bet-list-table td.td-tight.bet-type-cell,
#app .bet-list-page #bet-list-table td.td-tight.col-type,
.bet-list-page #bet-list-table .col-type,
.bet-list-page #bet-list-table td.bet-type-cell,
.bet-list-page #bet-list-table td.col-type {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  writing-mode: horizontal-tb !important;
  word-break: keep-all !important;
}
/* 베팅(P/B) · 상태(승/패) 나란히 — 원본 getBetKind + getBetState */
.bet-list-page #bet-list-table .col-pick,
.bet-list-page #bet-list-table td.td-pick,
#app .bet-list-page #bet-list-table .col-pick {
  width: 40px !important; min-width: 36px !important; max-width: 48px !important;
  padding-left: 0.1rem !important;
  padding-right: 0.1rem !important;
  overflow: visible !important;
  white-space: nowrap !important;
  text-align: center !important;
}
.bet-list-page #bet-list-table .col-state,
.bet-list-page #bet-list-table td.td-state,
#app .bet-list-page #bet-list-table .col-state {
  width: 58px !important; min-width: 52px !important; max-width: 72px !important;
  overflow: visible !important;
  white-space: nowrap !important;
  text-align: center !important;
  padding-left: 0.1rem !important;
  padding-right: 0.1rem !important;
}
.bet-list-page #bet-list-table .col-pick .btn,
.bet-list-page #bet-list-table .col-state .btn,
.bet-list-page #bet-list-table td.td-pick .btn,
.bet-list-page #bet-list-table td.td-state .btn {
  min-width: 1.75rem;
  padding: 0.12rem 0.35rem !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}
.bet-list-page #bet-list-table .col-bal {
  width: 90px !important; min-width: 90px !important; max-width: 90px !important;
  font-variant-numeric: tabular-nums;
}
.bet-list-page #bet-list-table .col-amt {
  width: 100px !important; min-width: 100px !important; max-width: 110px !important;
  font-variant-numeric: tabular-nums;
}
/* 01-15 재: 당첨 너비 = 베팅 전 잔액(90px). 01-18: 당첨후잔액 1% 확장 금지 → 90px */
#app .bet-list-page #bet-list-table .col-after-bet,
#app .bet-list-page #bet-list-table th.col-after-bet,
#app .bet-list-page #bet-list-table td.col-after-bet,
.bet-list-page #bet-list-table .col-after-bet {
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px !important;
  padding-left: 0.2rem !important;
  padding-right: 0.2rem !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
#app .bet-list-page #bet-list-table .col-win,
#app .bet-list-page #bet-list-table th.col-win,
#app .bet-list-page #bet-list-table td.col-win,
#app .bet-list-page #bet-list-table td.col-win.td-long,
#app .bet-list-page #bet-list-table td.col-win.td-extra,
.bet-list-page #bet-list-table .col-win {
  width: 100px !important;
  min-width: 100px !important;
  max-width: 100px !important;
  padding-left: 0.2rem !important;
  padding-right: 0.2rem !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
/* 01-19: 당첨 헤더 정렬아이콘이 칸을 밀어 베팅후잔액보다 넓어짐 → 아이콘 겹침 */
#app .bet-list-page #bet-list-table th.col-win,
.bet-list-page #bet-list-table th.col-win {
  position: relative !important;
  padding-left: 0.85rem !important;
  padding-right: 0.85rem !important;
}
#app .bet-list-page #bet-list-table th.col-win .icon_sort,
.bet-list-page #bet-list-table th.col-win .icon_sort {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
  font-size: 0.55rem !important;
  margin: 0 !important;
}
#app .bet-list-page #bet-list-table th.col-win .icon_sort:first-child,
.bet-list-page #bet-list-table th.col-win .icon_sort:first-child {
  left: 2px !important;
}
#app .bet-list-page #bet-list-table th.col-win .icon_sort:last-of-type,
.bet-list-page #bet-list-table th.col-win .icon_sort:last-of-type {
  right: 2px !important;
}
#app .bet-list-page #bet-list-table .col-after-win,
#app .bet-list-page #bet-list-table th.col-after-win,
#app .bet-list-page #bet-list-table td.col-after-win,
#app .bet-list-page #bet-list-table tbody td.col-after-win,
.bet-list-page #bet-list-table .col-after-win {
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px !important;
  flex: 0 0 90px !important;
  overflow: hidden !important;
  padding-left: 0.2rem !important;
  padding-right: 0.2rem !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums;
  box-sizing: border-box !important;
}
#app .bet-list-page #bet-list-table .col-roll,
.bet-list-page #bet-list-table .col-roll,
#app .bet-list-page #bet-list-table th.col-roll,
#app .bet-list-page #bet-list-table td.col-roll,
#app .bet-list-page #bet-list-table th.w70px.col-roll,
#app .bet-list-page #bet-list-table .w70px.col-roll {
  width: 70px !important;
  min-width: 70px !important;
  max-width: 70px !important;
  padding-left: 0.2rem !important;
  padding-right: 0.2rem !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  box-sizing: border-box !important;
  font-variant-numeric: tabular-nums;
}
.bet-list-page #bet-list-table .col-pl {
  width: 80px !important; min-width: 80px !important; max-width: 90px !important;
  font-variant-numeric: tabular-nums;
}
.bet-list-page #bet-list-table .col-comp {
  width: 60px !important; min-width: 60px !important; max-width: 70px !important;
  font-variant-numeric: tabular-nums;
}
.bet-list-page #bet-list-table .col-act {
  width: 80px !important; min-width: 80px !important; max-width: 100px !important;
  overflow: visible !important;
}
/* kill global width:1% on amount/tight cells within bet list */
#app .bet-list-page #bet-list-table td.text-end,
#app .bet-list-page #bet-list-table td.td-tight,
.bet-list-page #bet-list-table td.text-end,
.bet-list-page #bet-list-table td.td-tight {
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums;
  width: auto !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
/* 합계 행 — 원본 table-primary, 금액 열 우측, 깨짐 방지 */
#app .bet-list-page #bet-list-table tr.bet-sum-row > td,
.bet-list-page #bet-list-table tr.bet-sum-row > td {
  background: #cfe2ff !important;
  color: #084298 !important;
  font-weight: 700 !important;
  font-size: 1.035rem !important;
  overflow: visible !important;
  white-space: nowrap !important;
}
#app .bet-list-page #bet-list-table tr.bet-sum-row > td:first-child,
.bet-list-page #bet-list-table tr.bet-sum-row > td:first-child {
  text-align: center !important;
}
#app .bet-list-page #bet-list-table tr.bet-sum-row > td.text-end,
.bet-list-page #bet-list-table tr.bet-sum-row > td.col-amt,
.bet-list-page #bet-list-table tr.bet-sum-row > td.col-win,
.bet-list-page #bet-list-table tr.bet-sum-row > td.col-roll,
.bet-list-page #bet-list-table tr.bet-sum-row > td.col-pl,
.bet-list-page #bet-list-table tr.bet-sum-row > td.col-comp,
.bet-list-page #bet-list-table tr.bet-sum-row > td.col-bal {
  text-align: right !important;
}
.bet-list-page #bet-list-table td.td-user {
  text-align: center !important;
}
#app .bet-list-page #bet-list-table .bet-type-cell,
.bet-list-page #bet-list-table .bet-type-cell {
  white-space: nowrap !important;
  max-width: 360px !important;
  width: 320px !important;
  min-width: 300px !important;
  text-align: center !important;
  overflow: hidden !important;
  writing-mode: horizontal-tb !important;
}
#app .bet-list-page #bet-list-table .bet-type-line,
.bet-list-page #bet-list-table .bet-type-line {
  display: inline-block !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: 1.02rem !important;
  line-height: 1.3 !important;
  text-align: center !important;
  writing-mode: horizontal-tb !important;
  word-break: keep-all !important;
  vertical-align: middle;
}
/* 전역 td-long 의 줄바꿈 규칙이 종류 칸을 세로로 깨지 않게 */
#app .bet-list-page #bet-list-table td.bet-type-cell.td-long,
#app .bet-list-page #bet-list-table td.bet-type-cell.td-extra,
.page-content .bet-list-page #bet-list-table td.bet-type-cell {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  max-width: 360px !important;
  min-width: 300px !important;
}
.bet-list-page #bet-list-table .open_user_info {
  color: inherit !important;
  cursor: pointer !important;
  white-space: nowrap !important;
}
.bet-list-page #bet-list-table .open_user_info:hover {
  color: #0d6efd !important;
  text-decoration: underline !important;
}
.bet-list-page #bet-list-table td.td-pick .badge {
  font-size: 0.85rem;
  font-weight: 700;
  min-width: 1.4rem;
}
/* 합계 행: 원본처럼 좌측 라벨 + 금액 열 정렬 */
.bet-list-page #bet-list-table .bet-sum-row td {
  white-space: nowrap !important;
  vertical-align: middle !important;
}
.bet-list-page #bet-list-table td.td-pick,
.bet-list-page #bet-list-table td.td-state {
  text-align: center !important;
  white-space: nowrap !important;
  width: 40px !important;
  overflow: visible !important;
  padding-left: 0.1rem !important;
  padding-right: 0.1rem !important;
}
.bet-list-page #bet-list-table .bet-pick-chip {
  display: inline-block;
  padding: 0 4px;
  font-size: 0.85rem !important;
  font-weight: 700;
  line-height: 1.4;
  border-radius: 3px;
  background: #e9ecef;
  white-space: nowrap !important;
}
.bet-list-page #bet-list-table td.td-act,
.bet-list-page #bet-list-table td.actions {
  width: 80px !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
/* 03-14: 당첨 너비 = 베팅 후 잔액 (90px). nth-child 폭 금지(합계 rowspan에 밀림) */
.bet-list-page #bet-list-table .bet-act-wrap {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 3px;
  white-space: nowrap;
}
.bet-list-page #bet-list-table .bet-act-wrap .btn,
.bet-list-page #bet-list-table td.td-pick .btn,
.bet-list-page #bet-list-table td.td-state .btn,
.bet-list-page #bet-list-table .btn-sm {
  padding: 0.15rem 0.4rem !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
  border-radius: 0.2rem;
}
.bet-list-page #bet-list-table.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: #f4f6f8 !important;
}
.bet-list-page #bet-list-table.table-striped > tbody > tr:nth-of-type(even) > * {
  background-color: #ffffff !important;
}
.bet-list-page #bet-list-table.table-hover > tbody > tr:hover > * {
  background-color: #e8f0f5 !important;
}
/* 합계·공베팅은 줄무늬/호버보다 우선 — 안 그러면 N판마다 노란 행이 1줄만 보이거나 안 보임 */
.bet-list-page #bet-list-table.table-striped > tbody > tr.table-primary > *,
.bet-list-page #bet-list-table.table-hover > tbody > tr.table-primary:hover > * {
  background-color: #cfe2ff !important;
}
.bet-list-page #bet-list-table.table-striped > tbody > tr.table-warning > *,
.bet-list-page #bet-list-table.table-hover > tbody > tr.table-warning:hover > * {
  background-color: #fff3cd !important;
}
.bet-list-page #bet-list-table.table-hover > tbody > tr.table-warning:hover > * {
  background-color: #ffe69c !important;
}
.bet-list-page .text_positive { color: #007bff !important; }
.bet-list-page .text_negative { color: #dc3545 !important; }
.bet-list-page .open_user_info {
  font-weight: 700;
  font-size: 0.92rem;
  cursor: pointer;
  color: inherit;
  white-space: nowrap;
}
.bet-list-page .open_user_info:hover {
  color: #0d6efd;
  text-decoration: underline;
}
/* 미니 카드·스코어 */
.bet-list-page #bet-list-table .bet-mini-score {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 3px;
  margin-top: 2px;
  white-space: nowrap !important;
}
.bet-list-page #bet-list-table .bet-mini-hand {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  white-space: nowrap !important;
}
.bet-list-page #bet-list-table .bet-mini-lab {
  font-size: 0.9rem !important;
  font-weight: 800;
  color: #495057;
  white-space: nowrap;
}
.bet-list-page #bet-list-table .bet-mini-sep { color: #adb5bd; margin: 0 2px; }
.bet-list-page #bet-list-table .bet-card-mini {
  display: inline-block !important;
  margin: 0 1px !important;
  padding: 0 3px !important;
  border: 1px solid #ced4da !important;
  border-radius: 2px !important;
  background: #fff !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
}
.bet-list-page #bet-list-table .bet-card {
  display: inline-flex !important;
  width: auto !important;
  height: auto !important;
  margin: 0 1px !important;
  padding: 0 3px !important;
  font-size: 0.9rem !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  flex-direction: row !important;
}
.bet-list-page #bet-list-table .bet-card span { font-size: 0.9rem !important; }
.bet-list-page #bet-list-table .bet-out-badge {
  display: inline-block;
  font-size: 0.9rem !important;
  font-weight: 800;
  padding: 0 4px;
  border-radius: 3px;
  color: #fff;
  white-space: nowrap;
}
.bet-list-page #bet-list-table .bet-out-p { background: #0d6efd; }
.bet-list-page #bet-list-table .bet-out-b { background: #dc3545; }
.bet-list-page #bet-list-table .bet-out-t { background: #198754; }
/* 고액 알림 페이지 등: 페이지 래퍼 없이 table id 만 있을 때 최소 폴백 */
.bet-list-wrap:not(.bet-list-page .bet-list-wrap) {
  width: 100%;
  overflow-x: auto;
}

/* ===== 전 카테고리 리스트 표: 배팅 리스트와 동일 — 내용 폭 자동 ===== */
#app .page-content .table-responsive,
.page-content .table-responsive,
#app .table-responsive {
  overflow-x: auto !important; /* 아주 좁을 때만 스크롤 */
  max-width: 100% !important;
}
#app .page-content table.table,
.page-content table.table,
#app .page-content table.data,
#app table.table,
.page-content table.data {
  table-layout: auto !important;
  width: auto !important;
  min-width: 100% !important;
  max-width: none !important;
  font-size: 13px !important;
  border-collapse: collapse;
}
/* 표=카드 100%. 당첨후잔액은 베팅전잔액과 같은 90px */
#app .page-content .bet-list-page table.table#bet-list-table,
#app .bet-list-page table.table#bet-list-table,
#app .bet-list-page #bet-list-table.table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
#app .page-content table.table th,
#app .page-content table.table td,
.page-content table.table th,
.page-content table.table td,
#app table.table th,
#app table.table td,
#app table.data th,
#app table.data td {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  vertical-align: middle !important;
  padding: 0.4rem 0.5rem !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}
#app .page-content table.table thead th,
.page-content table.table thead th,
#app table.table thead th {
  font-size: 13px !important;
  white-space: nowrap !important;
  font-weight: 700 !important;
}
/* 금액·숫자·상태: 내용만큼 (shrink-to-fit) */
#app table.table td.text-end,
#app table.table th.text-end,
#app table.table td.td-tight,
#app table.table th.td-tight,
.page-content table.table td.text-end,
.page-content table.table td.td-tight {
  width: 1% !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums;
}
/* 긴 텍스트(UA, 메모, 제목 등): 말줄임 폭 제한 */
#app table.table td.td-long,
#app table.table td.td-extra,
#app table.table td.bet-type-cell,
.page-content table.table td.td-long,
.page-content table.table td.td-extra,
.page-content table.table td.bet-type-cell {
  white-space: normal !important;
  max-width: 22rem !important;
  min-width: 8rem;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}
#app table.table td.td-long .td-clip,
#app table.table td.td-extra .td-clip {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  white-space: normal !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
  max-width: 22rem;
}
#app table.table td.td-long .td-sub,
#app table.table td.td-extra .td-sub {
  display: block;
  font-size: 10px !important;
  color: #6c757d;
  margin-top: 1px;
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 22rem;
}

/* ===== 리스트 래퍼: 본문 폭을 넘기지 않음 (표만 넓게 → 부모가 스크롤) ===== */
.list_xs_wrap,.list_sm_wrap,.list_wrap,.list_md_wrap,.list_lg_wrap,.list_xl_wrap,.list_xxl_wrap{
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: visible !important; /* 스크롤은 .table-responsive 가 담당 */
}
.page-content .card-body,
#app .card-body,
.admin .card-body {
  /* hidden 이면 넓은 표 왼쪽/오른쪽이 잘림 → auto 로 안전 스크롤 */
  overflow-x: auto !important;
  max-width: 100%;
  min-width: 0;
}
#app .overflow,
#app .overflow_hidden,
#app .pc_overflow,
#app .mobile_overflow {
  overflow-x: auto !important;
  max-width: 100% !important;
}


/* ===== 관리자 관리 (원본 관리자 리스트) ===== */
.admin-staff-table th,
.admin-staff-table td {
  font-size: 13px !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
}

/* 원본 관리자 권한 관리 — 카드 그리드 */
.admin-perm-toolbar {
  border-radius: 8px;
  background: #fff;
}
.admin-perm-board {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 1199.98px) {
  .admin-perm-board { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
  .admin-perm-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .admin-perm-board { grid-template-columns: 1fr; }
}
.admin-perm-board.is-disabled {
  opacity: 0.55;
  pointer-events: none;
}
.admin-perm-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  min-height: 120px;
  overflow: hidden;
}
.admin-perm-card-title {
  font-size: 13px;
  font-weight: 700;
  color: #343a40;
  padding: 10px 12px 8px;
  border-bottom: 1px solid #eef0f2;
  background: #fafbfc;
}
.admin-perm-card-body {
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.admin-perm-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 13px;
  color: #212529;
  cursor: pointer;
  user-select: none;
}
.admin-perm-check .form-check-input {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0;
  flex-shrink: 0;
  accent-color: #0d6efd;
  cursor: pointer;
}
.admin-perm-check span {
  line-height: 1.25;
}

/* ===== 공통: admin_md · 폭 유틸 (원본 vendor) ===== */
#app .admin_md,
.admin_md {
  max-width: 1250px;
}
#app .w100px, .w100px { width: 100px !important; min-width: 100px !important; max-width: 100px !important; }
#app .w120px, .w120px { width: 120px !important; min-width: 120px !important; max-width: 120px !important; }
#app .w140px, .w140px { width: 140px !important; min-width: 140px !important; max-width: 140px !important; }
#app .w150px, .w150px { width: 150px !important; min-width: 150px !important; max-width: 150px !important; }
#app .w160px, .w160px { width: 160px !important; min-width: 160px !important; max-width: 160px !important; }
#app .w200px, .w200px { width: 200px !important; min-width: 200px !important; max-width: 200px !important; }
#app .w250px, .w250px { width: 250px !important; min-width: 250px !important; max-width: 250px !important; }
#app .text_gray, .text_gray { color: #bbb !important; }
#app .font_10b, .font_10b { font-size: 1rem !important; font-weight: 700 !important; }
#app .font_12b, .font_12b { font-size: 1.2rem !important; font-weight: 700 !important; }
#app .font_12, .font_12 { font-size: 1.2rem !important; }
#app .font_20, .font_20 { font-size: 2rem !important; }

/* ===== 알본사 설정 — 다른 설정 표와 동일 규격 (nth-child 폭 금지) ===== */
#app table.solution-config-table,
#config-box table.solution-config-table,
#app table.va-inuse-table,
#app table.al-consume-table,
#app table.ue-al-kind-table,
#app table.ue-al-lineage,
table.ue-al-kind-table,
table.ue-al-lineage {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: auto !important;
  font-size: 1rem !important;
  border-collapse: collapse !important;
  margin-bottom: 0 !important;
}
#app table.solution-config-table th,
#app table.solution-config-table td,
#config-box table.solution-config-table th,
#config-box table.solution-config-table td,
#app table.va-inuse-table th,
#app table.va-inuse-table td,
#app table.al-consume-table th,
#app table.al-consume-table td,
#app table.ue-al-kind-table th,
#app table.ue-al-kind-table td,
#app table.ue-al-lineage th,
#app table.ue-al-lineage td {
  white-space: nowrap;
  word-break: keep-all;
  vertical-align: middle !important;
  text-align: center !important;
  padding: 0.45rem 0.55rem !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
}
#app table.solution-config-table td .radio.icheck-success {
  display: block !important;
  margin: 0.35rem 0.35rem 0.35rem 0 !important;
  overflow: visible !important;
  white-space: nowrap !important;
}
#app table.solution-config-table td .radio.icheck-success label {
  margin-bottom: 0 !important;
  cursor: pointer;
  white-space: nowrap !important;
  font-weight: 400 !important;
  font-size: 1rem !important;
}
#app table.solution-config-table td.sol-name,
#config-box table.solution-config-table td.sol-name {
  color: #1e2d32 !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  letter-spacing: 0.02em;
}

#solution-config-card,
#va-simple-card,
#my-al-card {
  font-size: 1rem;
}
#my-al-card {
  border: 1px solid #e6eaee !important;
  box-shadow: none;
}
#my-al-card .my-al-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
#my-al-card .my-al-head h6 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}
#my-al-card .my-al-kpis {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
#my-al-card .my-al-kpi {
  flex: 1 1 10rem;
  min-width: 10rem;
  background: #0d6efd;
  border: 0;
  border-radius: 0;
  padding: 0;
  text-align: center;
  color: #fff;
}
#my-al-card .my-al-kpi .lab {
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  margin: 0;
  padding: 6px 8px;
  justify-content: center;
}
#my-al-card .my-al-kpi .val {
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  color: #fff !important;
  padding: 10px 12px 12px;
}
#my-al-card .my-al-form {
  border: 1px solid #eef1f4;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 18px;
}
#my-al-card .my-al-form-title {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
#my-al-card .my-al-rate {
  font-size: 12px;
  font-weight: 500;
  color: #6b7c85;
}
#my-al-card .my-al-rate b { color: #1e2d32; }
#my-al-card .my-al-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1.4fr auto;
  gap: 10px;
  align-items: end;
}
#my-al-card .my-al-form-grid > label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  font-size: 12px;
  color: #5a6870;
  font-weight: 600;
}
#my-al-card .my-al-form-grid input,
#my-al-card .my-al-pay {
  height: 38px;
  border: 1px solid #dce3e8;
  border-radius: 6px;
  padding: 0 10px;
  font-size: 14px;
  background: #fff;
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
}
#my-al-card .my-al-form-grid input:focus {
  outline: none;
  border-color: #0d6efd;
}
#my-al-card .my-al-pay {
  font-weight: 700;
  color: #1e2d32;
  font-variant-numeric: tabular-nums;
}
#my-al-card #my-al-request {
  height: 38px;
  min-width: 88px;
  font-weight: 700;
  padding: 0 18px;
}
#my-al-card .my-al-hint {
  margin: 8px 0 0;
  font-size: 12px;
  color: #8a97a0;
}
.al-tag{display:inline-block;font-size:10px;font-weight:800;padding:1px 6px;border-radius:4px;margin-right:4px;vertical-align:middle}
.al-tag-w{background:#1b64d4;color:#fff}
.al-tag-swan{background:#6f42c1;color:#fff}
.al-tag-miracle{background:#0d9488;color:#fff}
#my-al-card .my-al-sec-title {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
}
#my-al-card .my-al-requests { font-size: 13px; }
#my-al-card .my-al-req-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #eef1f4;
}
#my-al-card .my-al-req-item:last-child { border-bottom: 0; }
#my-al-card .my-al-status {
  font-size: 12px;
  color: #8a97a0;
  min-height: 0;
  margin-top: 6px;
}
#my-al-card #my-al-ledger-wrap { margin-top: 12px; }
#my-al-card #my-al-ledger-wrap > summary {
  font-size: 13px;
  font-weight: 700;
  color: #1e2d32;
}
@media (max-width: 767.98px) {
  #my-al-card .my-al-kpis { grid-template-columns: 1fr; }
  #my-al-card .my-al-form-grid { grid-template-columns: 1fr; }
  #my-al-card #my-al-request { width: 100%; }
}
#my-al-ledger-wrap > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
#my-al-ledger-wrap > summary::-webkit-details-marker { display: none; }
#my-al-ledger-wrap > summary::before {
  content: "▸ ";
  color: #6b7c85;
}
#my-al-ledger-wrap[open] > summary::before { content: "▾ "; }
#my-al-ledger tr.al-led-row { cursor: pointer; }
#my-al-ledger tr.al-led-row:hover { background: #f4f7f8; }
#my-al-ledger tr.al-led-row.is-open { background: #fff8e1; }
#my-al-ledger tr.al-led-detail td {
  background: #fafbfc !important;
  padding: 0.65rem 0.8rem !important;
  white-space: normal !important;
}
#my-al-ledger .al-led-kv {
  display: flex;
  gap: 10px;
  padding: 3px 0;
  border-bottom: 1px solid #eef1f4;
  font-size: 14px;
}
#my-al-ledger .al-led-kv:last-child { border-bottom: 0; }
#my-al-ledger .al-led-kv > span:first-child { min-width: 5.5em; flex: 0 0 5.5em; }

/* ===== 운영 설정 — 원본 operation_config (.operation-config-table) ===== */
#app .operation-help {
  font-size: 13px;
  line-height: 1.55;
}
#app .operation-group-tabs {
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 1px solid #dee2e6;
}
#app .operation-group-tabs .nav-link,
#app .operation-group-tabs button.nav-link {
  font-size: 13px;
  padding: 0.55rem 0.85rem;
  color: #495057;
  white-space: nowrap;
  background: transparent;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  margin-bottom: -1px;
  cursor: pointer;
  line-height: 1.4;
}
#app .operation-group-tabs .nav-link:hover,
#app .operation-group-tabs button.nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6;
  color: #0d6efd;
}
#app .operation-group-tabs .nav-link.active,
#app .operation-group-tabs button.nav-link.active {
  font-weight: 700;
  color: #0d6efd;
  background-color: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
#app table.operation-config-table,
#config-box table.operation-config-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  font-size: 13px !important;
  border-collapse: collapse !important;
  margin-bottom: 0 !important;
}
#app table.operation-config-table th,
#app table.operation-config-table td,
#config-box table.operation-config-table th,
#config-box table.operation-config-table td {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  overflow: visible !important;
  vertical-align: middle !important;
  padding: 0.45rem 0.4rem !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  max-width: none !important;
}
#app table.operation-config-table thead th {
  font-size: 12px !important;
  font-weight: 700 !important;
}
#app table.operation-config-table .form-check-input {
  width: 2.2rem;
  height: 1.15rem;
  cursor: pointer;
}
#app table.operation-config-table .form-switch {
  min-height: 1.5rem;
  display: flex;
  justify-content: center;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
#app table.operation-config-table .form-switch .form-check-input {
  margin-left: 0;
}
#app table.operation-config-table .checkbox.icheck-danger {
  display: inline-block;
  min-height: 22px;
}
#app table.operation-config-table .input-group {
  max-width: 140px;
  margin: 0 auto;
}
#app table.operation-config-table .input-group .form-control {
  font-size: 13px !important;
}
#app table.operation-config-table .input-group-text {
  font-size: 12px !important;
  padding: 0.25rem 0.5rem;
}
#app table.operation-config-table tfoot td {
  padding: 1rem 0.5rem !important;
}

/* 홈 솔루션 메뉴얼 (ACE) */
.dash-manual-card {
  max-width: 100%;
  border-radius: 0.25rem !important;
}
.dash-manual-card .btn-danger,
.dash-operator-create-card .btn-danger,
#btn-create-operator {
  font-weight: 700;
  min-width: 7rem;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
}

/* ===== 회원 리스트 — 원본 BULL/ACE 동일 밀도 ===== */
.user-list-page {
  font-size: 1rem;
  font-weight: 400;
}
.user-list-page .nav-tabs {
  border-bottom: 1px solid #dee2e6;
  margin-bottom: 0;
}
.user-list-page .nav-tabs .nav-link {
  color: #0d6efd;
  font-weight: 400;
  font-size: 1rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  background: transparent;
}
.user-list-page .nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6;
  color: #0a58ca;
}
.user-list-page .nav-tabs .nav-link.active {
  color: #495057;
  font-weight: 400;
  background: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
.user-list-page .card {
  border: 1px solid #dee2e6 !important;
  border-radius: 0 0 0.25rem 0.25rem !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
}
.user-list-page .card.border-top-0 {
  border-top: 0 !important;
}
.user-list-page .card-body {
  padding: 1rem 1rem 0.5rem !important;
}
.user-list-page .user-list-filter {
  overflow-x: auto;
  gap: 0;
  align-items: center;
}
.user-list-page .user-list-filter .form-select,
.user-list-page .user-list-filter .form-control {
  font-size: 1rem !important;
  font-weight: 400 !important;
  min-height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  width: auto;
  min-width: 6.5rem;
}
.user-list-page .user-search-combo {
  min-width: 16rem;
  overflow: hidden;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem;
  padding: 0 !important;
}
.user-list-page .user-search-combo .form-select,
.user-list-page .user-search-combo .form-control {
  border: 0 !important;
  box-shadow: none !important;
  min-width: 0;
}
.user-list-page .user-search-combo .form-select {
  max-width: 7.5rem;
  background-color: #fff;
}
.user-list-page .user-list-filter .btn {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.375rem 0.75rem !important;
  border-radius: 0.25rem;
}
.user-list-page .user_config_list {
  flex-wrap: nowrap;
  overflow-x: auto;
  background-color: #6c757d !important;
  border-radius: 0;
  min-height: 2.75rem;
}
.user-list-page .user_config_list .font_10b {
  font-size: 1rem;
  font-weight: 700;
  white-space: nowrap;
}
.user-list-page .user_config_list .form-select {
  font-size: 1rem !important;
  font-weight: 400 !important;
  min-width: 7rem;
  width: auto;
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
}
.user-list-page .user_config_list .btn-danger {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.375rem 0.75rem !important;
  white-space: nowrap;
}
/*
 * 회원 리스트 표 — 원본 비율 (데이터에 맞게 조임)
 * - width:100% + table-layout:fixed 이면 빈 칸(이름 등)이 화면 전체로 팽창
 * - 원본: list_lg_wrap min-width 1450 + min_w_* 만, 표는 내용 폭
 */
/* list_lg_wrap density: final override at file end (#app .user-list-page) */
.user-list-page .list_lg_wrap,
.user-subpage .list_lg_wrap {
  min-width: 1450px;
  width: max-content;
  max-width: none;
}
.user-subpage .list_md_wrap {
  min-width: 900px;
  width: max-content;
}
.user-subpage .card-body {
  overflow-x: auto !important;
}
.user-subpage .table.users-data {
  font-size: 0.95rem !important;
  margin-bottom: 0;
  width: max-content !important;
  table-layout: auto !important;
}
.user-subpage .table.users-data thead th {
  font-weight: 700 !important;
  background: #212529 !important;
  color: #fff !important;
  white-space: nowrap;
  vertical-align: middle;
}
.user-subpage .table.users-data td {
  vertical-align: middle !important;
  white-space: nowrap;
  padding: 0.28rem 0.35rem !important;
}
.user-subpage .table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: #f4f6f8 !important;
}
.user-subpage .alert-primary {
  font-size: 0.95rem;
}
.user-list-page .table-responsive {
  overflow-x: auto !important;
  overflow-y: visible !important;
}
.user-list-page .card-body {
  overflow-x: auto !important;
}
/* table metrics: file-end USER LIST PAGE override is authoritative */
.user-list-page #table_result,
.user-list-page table.users-data {
  table-layout: auto;
  margin-bottom: 0;
  border-color: #dee2e6;
}
.user-list-page #table_result thead th,
.user-list-page table.users-data thead th {
  font-weight: 700;
  background-color: #212529;
  color: #fff;
  border-color: #32383e;
  text-align: center;
}
/* col-* widths: file-end USER LIST PAGE override (min_w_* px floors) */

/* 업체 관리: 상위·하위·생성 — 한 줄, 데이터 밀도에 맞게 */
.user-list-page .col-agency .user_list_link,
.user-list-page .col-agency .btn {
  display: inline-block;
  margin: 0 1px !important;
  vertical-align: middle;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  padding: 0.2rem 0.4rem !important;
  line-height: 1.25 !important;
  border-radius: 0.2rem;
  white-space: nowrap;
  min-width: 0;
}
.user-list-page .col-rate .btn {
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  padding: 0.2rem 0.4rem !important;
  line-height: 1.25 !important;
  border-radius: 0.2rem;
}
/* 표 안 색상 버튼: 클릭·호버·포커스 시 흰색으로 변하지 않게 고정 */
.user-list-page #table_result .btn-primary,
.user-list-page #table_result .btn-primary:hover,
.user-list-page #table_result .btn-primary:focus,
.user-list-page #table_result .btn-primary:active,
.user-list-page #table_result .btn-primary:focus-visible,
.user-list-page table.users-data .btn-primary,
.user-list-page table.users-data .btn-primary:hover,
.user-list-page table.users-data .btn-primary:focus,
.user-list-page table.users-data .btn-primary:active,
.user-list-page table.users-data .btn-primary:focus-visible {
  background-color: var(--primary, #0d6efd) !important;
  border-color: var(--primary, #0d6efd) !important;
  color: #fff !important;
}
.user-list-page #table_result .btn-danger,
.user-list-page #table_result .btn-danger:hover,
.user-list-page #table_result .btn-danger:focus,
.user-list-page #table_result .btn-danger:active,
.user-list-page #table_result .btn-danger:focus-visible,
.user-list-page table.users-data .btn-danger,
.user-list-page table.users-data .btn-danger:hover,
.user-list-page table.users-data .btn-danger:focus,
.user-list-page table.users-data .btn-danger:active,
.user-list-page table.users-data .btn-danger:focus-visible {
  background-color: var(--danger, #dc3545) !important;
  border-color: var(--danger, #dc3545) !important;
  color: #fff !important;
}
.user-list-page #table_result .btn-success,
.user-list-page #table_result .btn-success:hover,
.user-list-page #table_result .btn-success:focus,
.user-list-page #table_result .btn-success:active,
.user-list-page #table_result .btn-success:focus-visible,
.user-list-page table.users-data .btn-success,
.user-list-page table.users-data .btn-success:hover,
.user-list-page table.users-data .btn-success:focus,
.user-list-page table.users-data .btn-success:active,
.user-list-page table.users-data .btn-success:focus-visible {
  background-color: var(--ok, #198754) !important;
  border-color: var(--ok, #198754) !important;
  color: #fff !important;
}
.user-list-page #table_result .btn-primary:hover,
.user-list-page #table_result .btn-primary:active,
.user-list-page #table_result .btn-danger:hover,
.user-list-page #table_result .btn-danger:active,
.user-list-page #table_result .btn-success:hover,
.user-list-page #table_result .btn-success:active,
.user-list-page table.users-data .btn-primary:hover,
.user-list-page table.users-data .btn-primary:active,
.user-list-page table.users-data .btn-danger:hover,
.user-list-page table.users-data .btn-danger:active,
.user-list-page table.users-data .btn-success:hover,
.user-list-page table.users-data .btn-success:active {
  filter: brightness(1.08);
}
/* 표 줄무늬(공백 색) — 홀/짝 구분 명확 */
.user-list-page #table_result.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: #f4f6f8 !important;
}
.user-list-page #table_result.table-striped > tbody > tr:nth-of-type(even) > * {
  background-color: #ffffff !important;
}
.user-list-page #table_result.table-hover > tbody > tr:hover > * {
  background-color: #e8f0f5 !important;
}
/* 빈 칸(이름·IP 등) 공백 톤 */
.user-list-page #table_result tbody td:empty,
.user-list-page table.users-data tbody td:empty {
  background-image: linear-gradient(90deg, transparent, rgba(0,0,0,0.015), transparent);
  color: #adb5bd;
}
.user-list-page .open_user_info {
  font-weight: 700;
  font-size: 0.92rem;
  cursor: pointer;
  color: inherit;
  white-space: nowrap;
}
.user-list-page .open_user_info:hover {
  color: #0d6efd;
  text-decoration: underline;
}
.user-list-page .btn-sm.p-1 {
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  padding: 0.2rem 0.4rem !important;
  line-height: 1.25;
  border-radius: 0.2rem;
}
/* 표 안 버튼 — 밀도 유지 (글로벌 축소/확대 규칙 무력화) */
.user-list-page #table_result .btn,
.user-list-page table.users-data .btn {
  font-size: 0.85rem !important;
  padding: 0.2rem 0.4rem !important;
}
.user-list-page .text_positive { color: #007bff !important; }
.user-list-page .text_negative { color: #dc3545 !important; }
/* 원본 min_w 유틸 */
.user-list-page .min_w_40px { min-width: 40px !important; }
.user-list-page .min_w_50px { min-width: 50px !important; }
.user-list-page .min_w_60px { min-width: 60px !important; }
.user-list-page .min_w_70px { min-width: 70px !important; }
.user-list-page .min_w_80px { min-width: 80px !important; }
.user-list-page .min_w_100px { min-width: 100px !important; }
.user-list-page .min_w_120px { min-width: 120px !important; }
.user-list-page .min_w_180px { min-width: 180px !important; }
/* 본문 제목 — 대시보드 바로 아래, 공백 최소화 (원본) */
.page-content > #admin-page-main {
  padding-top: 0.4rem !important;
  padding-bottom: 0.75rem !important;
  margin-top: 0 !important;
}
.page-content > #admin-page-main > .d-flex.align-items-center {
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  min-height: 0;
}
.page-content > #admin-page-main > .d-flex.align-items-center .font_16b {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 !important;
}
.page-content > #admin-page-main .breadcrumb {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0 !important;
  padding-top: 0.1rem;
}
.page-content > #admin-page-main > .mx-0.mt-3,
.page-content > #admin-page-main > .user-list-page,
.page-content > #admin-page-main > .user-subpage,
.page-content > #admin-page-main > .bet-list-page,
.page-content > #admin-page-main > .stats-page,
.page-content > #admin-page-main > .deposit-list-page,
.page-content > #admin-page-main > .withdraw-list-page {
  margin-top: 0.45rem !important;
}
/* 대시보드 ↔ 본문 구분 (리스트 페이지 상단 글로벌 대시) */
.page-content > .admin-global-dash {
  border-bottom: 1px solid #e9ecef;
  margin-bottom: 0 !important;
}

/* ===== 원본형 리스트 페이지네이션 (5~500 + N records) ===== */
.admin-list-pagination {
  margin-top: 1rem !important;
  padding: 0.25rem 0 0.5rem;
}
.admin-list-pagination .form-select {
  width: 100px !important;
  min-width: 100px;
  max-width: 100px;
  height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 1.75rem 0.25rem 0.5rem;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.4;
  border-radius: 0.25rem;
}
.admin-list-pagination .font_11b {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  white-space: nowrap;
}
.admin-list-pagination .text-info {
  color: #0dcaf0 !important;
}
.admin-list-pagination .pagination {
  margin-bottom: 0 !important;
  gap: 0;
}
.admin-list-pagination .pagination .page-link {
  min-width: 2rem;
  text-align: center;
  padding: 0.35rem 0.55rem;
  font-size: 0.95rem;
  color: #212529;
  border-color: #dee2e6;
}
.admin-list-pagination .pagination .page-item.active .page-link {
  background-color: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
  z-index: 1;
}
.admin-list-pagination .pagination .page-item.disabled .page-link {
  color: #adb5bd;
  pointer-events: none;
  background: #fff;
}
.admin-list-pagination .pagination .page-link:hover {
  background-color: #e9ecef;
  color: #212529;
}
.admin-list-pagination .pagination .page-item.active .page-link:hover {
  background-color: #0d6efd;
  color: #fff;
}

/* (user-list filter/table density: see file-end USER LIST PAGE override) */

/* ===== 대시보드 보강 (ACE 비율) — 위 블록과 중복 제거·정렬만 ===== */
.admin-global-dash .admin-global-dash-inner,
.dashboard .admin-global-dash-inner {
  display: block;
}
.admin-global-dash .d-flex.flex-wrap,
.dashboard .d-flex.flex-wrap {
  gap: 0;
  margin-left: 0;
  margin-right: 0;
}
/* 게임 칸 숫자: 원본 text-end / label text-center — flex 강제 없이 정렬 */
.admin-global-dash .dash-game-col .db_content > .text-end,
.dashboard .dash-game-col .db_content > .text-end {
  text-align: right !important;
}
.admin-global-dash .dash-game-label .db_content > .text-center,
.dashboard .dash-game-label .db_content > .text-center {
  text-align: center !important;
}
/* 홈 메뉴얼 카드: 대시 통계 카드 width 강제 해제 */
.admin-global-dash .dash-manual-card,
.dashboard .dash-manual-card {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-right: 0 !important;
  border: 1px solid rgba(0, 0, 0, 0.125) !important;
  border-radius: 0.25rem !important;
  box-shadow: none !important;
}
.admin-global-dash .dash-manual-card .card-body,
.dashboard .dash-manual-card .card-body {
  padding: 1rem !important;
}
.admin-global-dash .dash-manual-card h4,
.dashboard .dash-manual-card h4 {
  font-size: 1.4rem;
  font-weight: 700;
  margin: 0;
}
.admin-global-dash .dash-home-crumb .breadcrumb,
.dashboard .dash-home-crumb .breadcrumb {
  font-size: 1rem;
  font-weight: 700;
  background: transparent;
  padding: 0.15rem 0 0.15rem 0.75rem;
}
.page-content > #admin-page-main {
  padding-top: 0.75rem !important;
}

/* ===== 게임 리스트 (원본 ACE trading_list) ===== */
.admin_lg { max-width: 1480px; margin-left: auto; margin-right: auto; }
.admin_md { max-width: 1250px; margin-left: auto; margin-right: auto; }
.w50px { width: 50px !important; min-width: 50px; }
.w80px { width: 80px !important; min-width: 80px; }
.w90px { width: 90px !important; min-width: 90px; }
.w100px { width: 100px !important; min-width: 100px; }
.w120px { width: 120px !important; min-width: 120px; }
.w130px { width: 130px !important; min-width: 130px; }
.w150px { width: 150px !important; min-width: 150px; max-width: 180px; }
.w200px { width: 200px !important; min-width: 200px; }
.w300px { width: 300px !important; min-width: 300px; }
.w500px { width: 500px !important; min-width: 400px; }
.min_w_50px { min-width: 50px !important; }
.min_w_60px { min-width: 60px !important; }
.min_w_80px { min-width: 80px !important; }
.min_w_100px { min-width: 100px !important; }
.min_w_130px { min-width: 130px !important; }
.min_w_400px { min-width: 400px !important; }
.font_10b { font-size: 1rem !important; font-weight: 700 !important; }
.text_gray { color: #8a8a8a !important; }

/* 답변 설정(template_list): id 숫자 잘림 방지 · 원본 w50px 밀도 */
.tpl-list-table {
  table-layout: auto !important;
  width: 100%;
}
.tpl-list-table th.w50px,
.tpl-list-table td.w50px,
.tpl-list-table th.min_w_50px,
.tpl-list-table td.min_w_50px {
  width: 56px !important;
  min-width: 56px !important;
  max-width: 72px !important;
  white-space: nowrap !important;
  text-align: center;
  padding-left: 0.4rem !important;
  padding-right: 0.4rem !important;
}

.trading-list-page .nav-tabs {
  border-bottom: 1px solid #dee2e6;
}
.trading-list-page .nav-tabs .nav-link {
  color: #0d6efd;
  background: transparent;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  padding: 0.5rem 0.9rem;
  font-weight: 700;
}
.trading-list-page .nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6;
  color: #0a58ca;
}
.trading-list-page .nav-tabs .nav-link.active {
  color: #495057;
  background: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
.trading-list-page .card.border-top-0 {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border: 1px solid #dee2e6;
  box-shadow: none !important;
}
.trading-list-page .card-body {
  padding: 1rem !important;
  overflow-x: auto !important;
}
/* 원본 list_lg_wrap: 넓은 미니게임 표 가로 스크롤 (카탈로그 list_lg 제외) */
.trading-list-page:not(.game-catalog-page) .list_lg_wrap {
  min-width: 1450px !important;
  width: max-content !important;
  max-width: none !important;
  overflow: visible !important;
}
/* 미니게임 회차 전용 — game-catalog-page 와 공존 시 카탈로그 표 폭을 덮지 않음 */
.trading-list-page:not(.game-catalog-page) #table_result,
.trading-list-page table.trading-list-table {
  width: max-content !important;
  min-width: 1450px !important;
  table-layout: auto !important;
  font-size: 0.9rem !important;
  margin-bottom: 0;
}
.trading-list-page:not(.game-catalog-page) #table_result thead th {
  font-weight: 700 !important;
  white-space: nowrap;
  vertical-align: middle !important;
  padding: 0.4rem 0.3rem !important;
  font-size: 0.85rem !important;
}
.trading-list-page:not(.game-catalog-page) #table_result tbody td {
  vertical-align: middle !important;
  white-space: nowrap;
  padding: 0.35rem 0.3rem !important;
  font-size: 0.9rem !important;
}
.trading-list-page:not(.game-catalog-page) #table_result tbody td.p-1 {
  padding: 0.25rem !important;
}
.trading-list-page:not(.game-catalog-page) #table_result .btn-sm {
  font-size: 0.8rem !important;
  padding: 0.15rem 0.4rem !important;
  margin: 0 1px;
}

/* 원본 파워볼 결과 원형 뱃지 (ACE pb_list) */
.circle_red,
.circle_blue,
.circle_yellow,
.circle_green,
#table_result .circle_red,
#table_result .circle_blue,
#table_result .circle_yellow,
#table_result .circle_green,
.pb-list-page .circle_red,
.pb-list-page .circle_blue,
.pb-list-page .circle_yellow,
.pb-list-page .circle_green {
  background: #3498db;
  border-radius: 100%;
  line-height: 31px;
  text-align: center;
  color: #fff;
  font-size: 12px;
  min-width: 31px;
  height: 31px;
  width: 31px;
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  padding: 0;
  font-weight: 600;
}
.circle_red,
#table_result .circle_red,
.pb-list-page .circle_red { background: #e74c3c; }
.circle_blue,
#table_result .circle_blue,
.pb-list-page .circle_blue { background: #3498db; }
.circle_yellow,
#table_result .circle_yellow,
.pb-list-page .circle_yellow {
  background: #ffba00;
  color: #fff;
  font-weight: bold;
}
.circle_green,
#table_result .circle_green,
.pb-list-page .circle_green { background: #27ae60; }
#table_result td p.circle_red,
#table_result td p.circle_blue,
#table_result td p.circle_yellow,
#table_result td p.circle_green,
.pb-list-page #table_result td p {
  margin-bottom: 0;
  margin-top: 0;
}
.pb-list-page #table_result td.p-1 {
  padding: 0.25rem !important;
}

/* ── IP 차단 (원본 block_ip_list) ── */
.block-ip-page .nav-tabs .nav-link {
  color: #0d6efd;
  background: transparent;
  border: 1px solid transparent;
  font-weight: 600;
}
.block-ip-page .nav-tabs .nav-link.active {
  color: #495057;
  background: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
.block-ip-page .card.border-top-0 {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  box-shadow: none;
}
.block-ip-page .alert-primary {
  font-size: 13px;
  line-height: 1.5;
}
.block-ip-page .block-ip-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 1360px;
}
.block-ip-page .block-ip-table thead th {
  white-space: nowrap;
  vertical-align: middle !important;
  font-size: 13px;
}
.block-ip-page .block-ip-table tbody td {
  vertical-align: middle !important;
  font-size: 13px;
}
.block-ip-page .checkbox.icheck-danger {
  display: inline-block;
  min-height: 1.2rem;
}
.block-ip-page .checkbox.icheck-danger label {
  margin-bottom: 0;
  min-width: 1.1rem;
}
.block-ip-page #block_ip {
  min-width: 0;
}
.block-ip-page .btn-block {
  display: inline-block;
}
/* 내역 error_log */
.block-ip-page .block-ip-error-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 1220px;
}
.block-ip-page .block-ip-error-table thead th {
  white-space: nowrap;
  vertical-align: middle !important;
  font-size: 13px;
}
.block-ip-page .block-ip-error-table tbody td {
  vertical-align: middle !important;
  font-size: 13px;
}
.block-ip-page .block-ip-error-table .text-danger {
  color: #dc3545 !important;
  font-weight: 600;
}
.block-ip-page #form_error_log .form-control,
.block-ip-page #form_error_log .form-select {
  font-size: 13px;
}

/* ── 쪽지 목록 (원본 note_list) ── */
.note-list-page .card {
  border-color: #dee2e6;
  box-shadow: none;
}
.note-list-page .note-list-table {
  table-layout: auto !important;
  width: 100%;
  min-width: 960px;
}
.note-list-page .note-list-table thead th {
  white-space: nowrap;
  vertical-align: middle !important;
  font-size: 13px;
}
.note-list-page .note-list-table tbody td {
  vertical-align: middle !important;
  font-size: 13px;
}
.note-list-page .note-status-badge {
  font-size: 12px !important;
  line-height: 1.2;
  pointer-events: none;
  white-space: nowrap;
}
.note-list-page .w300px.ellipsis {
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.note-list-page .checkbox.icheck-danger {
  display: inline-block;
  min-height: 1.2rem;
}
.note-list-page .checkbox.icheck-danger label {
  margin-bottom: 0;
  min-width: 1.1rem;
  min-height: 1.1rem;
}
/* 필독 체크: 원본 빨간 체크 느낌 */
.note-list-page .checkbox.icheck-danger input[type="checkbox"]:checked + label::before,
.note-list-page .checkbox.icheck-danger input:checked {
  accent-color: #dc3545;
}
.note-list-page .btn-danger.btn-sm.p-1 {
  padding: 0.15rem 0.45rem !important;
  font-size: 12px;
}
.note-list-page .open_user_info {
  color: #0d6efd;
  cursor: pointer;
}
.note-list-page .min_w_50px {
  min-width: 50px;
}
.note-list-page #form_notification_list .input-group .form-control {
  min-width: 130px;
}

/* ── 텔레그램 운영 알림 (도메인·알본사 설정과 동일 톤) ── */
.signal-ops-page .alert-primary,
.telegram-ops-page .alert-primary {
  font-size: 13px;
  line-height: 1.55;
}
/* 설명 카드 중요 문구 — 다른 관리 페이지와 동일 text-danger 강조 */
.signal-ops-page .alert .text-danger,
.signal-ops-page .tg-guide-card .text-danger,
.signal-ops-page .card-body > .small .text-danger,
.signal-ops-page .form-text .text-danger,
.telegram-ops-page .alert .text-danger,
.telegram-ops-page .tg-guide-card .text-danger,
.telegram-ops-page .card-body > .small .text-danger,
.telegram-ops-page .form-text .text-danger {
  font-weight: 700;
  color: #dc3545 !important;
}
.signal-ops-page .card,
.telegram-ops-page .card {
  border-color: #dee2e6;
}
.signal-ops-page .form-label,
.telegram-ops-page .form-label {
  color: #495057;
  font-weight: 600;
}
.signal-ops-page .form-text,
.telegram-ops-page .form-text {
  font-size: 11px;
  color: #6c757d;
}
.signal-ops-page h6.fw-bold,
.telegram-ops-page h6.fw-bold {
  font-size: 14px;
  color: #212529;
}
.signal-ops-page code,
.telegram-ops-page code {
  font-size: 12px;
  color: #0d6efd;
  background: #f1f3f5;
  padding: 1px 5px;
  border-radius: 3px;
}
/* 번호 순서 안내 — 좌→우 그리드, 줄 바꿈 (우측 공간 활용) */
.tg-guide-card {
  background: #f8f9fa;
  border-color: #ced4da !important;
}
.tg-step-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 10px 12px;
  align-items: stretch;
}
.tg-step-list > li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.45;
  color: #343a40;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  min-width: 0; /* 그리드 셀 안 텍스트 줄바꿈 */
  height: 100%;
  box-sizing: border-box;
}
.tg-step-list > li > div {
  min-width: 0;
  flex: 1 1 auto;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.tg-step-num {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #212529;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  margin-top: 1px;
}
.tg-step-list .text-muted {
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.45;
}
@media (min-width: 1200px) {
  .tg-step-list {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  }
}
@media (max-width: 575px) {
  .tg-step-list {
    grid-template-columns: 1fr;
  }
}
/* 권한형 이벤트 보드 (관리자 권한 관리와 동일 계열) */
#tg-ev-grid.admin-perm-board,
.admin-perm-board {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.admin-perm-card {
  border: 1px solid #dee2e6;
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
}
.admin-perm-card-title {
  font-size: 13px;
  font-weight: 700;
  padding: 8px 12px;
  background: #212529;
  color: #fff;
}
.admin-perm-card-body {
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.admin-perm-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  margin: 0;
  cursor: pointer;
  color: #343a40;
}
.admin-perm-check input { margin: 0; }
.admin-perm-check code {
  font-size: 10px !important;
  color: #6c757d !important;
  background: transparent !important;
  padding: 0 !important;
}
#menu_group_telegram .badge.bg-info { font-size: 10px; }

/* 상품 패키지 카드 */
.tg-pkg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
}
.sg-pkg-card,
.tg-pkg-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  min-height: 100%;
}
.sg-pkg-card.on,
.tg-pkg-card.on {
  border-color: #0d6efd;
  box-shadow: 0 0 0 1px rgba(13, 110, 253, 0.25);
  background: #f8fbff;
}
.sg-pkg-card input,
.tg-pkg-card input {
  margin: 0 0 4px 0;
  align-self: flex-start;
}
.tg-pkg-name {
  font-size: 13px;
  font-weight: 800;
  color: #212529;
}
.tg-pkg-desc {
  font-size: 12px;
  color: #495057;
  line-height: 1.4;
}
.tg-pkg-roles {
  font-size: 11px;
  margin-top: 2px;
}

/* 텔레그램 ID 리스트 (회원 리스트 톤) */
.tg-id-list-page .list_lg_wrap {
  overflow-x: auto;
}
.tg-id-list-page #tg-id-table thead th {
  white-space: nowrap;
  vertical-align: middle;
}
.tg-id-list-page #tg-id-table tbody td {
  vertical-align: middle;
}
/* 검색 + 봇 연결 버튼 찌그러짐 방지 */
.tg-list-toolbar .tg-list-tools {
  flex: 0 0 auto;
  min-width: 0;
}
.tg-list-toolbar #tg-id-search {
  width: 200px;
  min-width: 160px;
  max-width: 240px;
  flex: 0 0 auto;
}
.tg-list-toolbar .btn {
  flex: 0 0 auto;
  white-space: nowrap;
  min-width: 4.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
/* 리스트 추방·삭제 강조 */
#tg-id-table .btn-danger {
  font-weight: 700;
  box-shadow: 0 0 0 1px rgba(220, 53, 69, 0.25);
}
#tg-id-modal .modal-title {
  font-size: 15px;
  font-weight: 800;
}

/* ── 도메인 설정 (원본 domain_config) ── */
.domain-config-page .alert-primary {
  font-size: 13px;
  line-height: 1.55;
}
.domain-config-page .domain-config-table {
  table-layout: auto !important;
  width: 100%;
  min-width: 820px;
}
.domain-config-page .domain-config-table thead th {
  white-space: nowrap;
  vertical-align: middle !important;
}
.domain-config-page .domain-config-table tbody td {
  vertical-align: middle !important;
}
.domain-config-page .domain-color-group {
  flex-wrap: nowrap;
  align-items: stretch;
}
.domain-config-page .domain-color-swatch {
  display: inline-block;
  width: 29px;
  min-width: 29px;
  border-radius: 3px;
  border: 1px solid #ced4da;
  margin-right: 0;
  align-self: stretch;
}
.domain-config-page .domain-color-text {
  max-width: 100px !important;
}
.domain-config-page .domain-color-picker {
  max-width: 2.5rem;
  min-width: 2.5rem;
  padding: 0.15rem !important;
  cursor: pointer;
}
.domain-config-page .text_gray {
  color: #6c757d;
}
.domain-config-page #form_domain_groups .btn-sm {
  white-space: nowrap;
}
/* 로고/심볼 첨부 미리보기 — 어두운 체커로 투명 배경 확인 */
.domain-config-page .dg-brand-preview {
  margin-top: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  min-height: 48px;
  max-width: 100%;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid #ced4da;
  background:
    linear-gradient(45deg, #2a2a32 25%, transparent 25%),
    linear-gradient(-45deg, #2a2a32 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #2a2a32 75%),
    linear-gradient(-45deg, transparent 75%, #2a2a32 75%);
  background-size: 12px 12px;
  background-position: 0 0, 0 6px, 6px -6px, -6px 0;
  background-color: #1a1a22;
}
.domain-config-page .dg-brand-preview.empty {
  color: #adb5bd;
  font-size: 11px;
  background: #f1f3f5;
  border-style: dashed;
}
.domain-config-page .dg-brand-preview img {
  display: block;
  max-height: 48px;
  max-width: 180px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.domain-config-page .dg-brand-preview[data-preview="mark"] img {
  max-height: 56px;
  max-width: 56px;
}
.domain-config-page .dg-logo-req {
  max-width: 920px;
}
.domain-config-page .dg-logo-req ul {
  margin-bottom: 0.25rem;
}
.domain-config-page .dg-logo-req-inline {
  line-height: 1.4;
  color: #495057 !important;
  background: #f8f9fa;
  border-left: 3px solid #0d6efd;
  padding: 4px 8px;
  border-radius: 0 4px 4px 0;
}

/* ── 미니게임 결과관리 (원본 pb_list) ── */
.pb-list-page {
  background: #f8f9fa;
}
.pb-list-page .nav-tabs {
  border-bottom: 1px solid #dee2e6;
}
.pb-list-page .nav-tabs .nav-link {
  color: #0d6efd;
  background: transparent;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  font-weight: 600;
  padding: 0.5rem 0.9rem;
}
.pb-list-page .nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6;
}
.pb-list-page .nav-tabs .nav-link.active {
  color: #495057;
  background: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
.pb-list-page .card.border-top-0 {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-color: #dee2e6;
  box-shadow: none;
}
.pb-list-page .card-body {
  padding: 1rem 1.25rem;
}
.pb-list-page #table_result.pb-list-table {
  table-layout: auto !important;
  min-width: 980px;
  width: 100%;
  margin-bottom: 0;
  border-color: #dee2e6;
}
.pb-list-page #table_result.pb-list-table thead th {
  white-space: nowrap;
  vertical-align: middle !important;
  font-size: 13px;
  font-weight: 600;
  background: #212529 !important;
  color: #fff !important;
  border-color: #32383e !important;
  padding: 0.5rem 0.35rem;
}
.pb-list-page #table_result.pb-list-table tbody td {
  vertical-align: middle !important;
  white-space: nowrap;
  font-size: 13px;
  padding: 0.55rem 0.35rem;
  border-color: #dee2e6;
  background: #fff;
}
.pb-list-page #table_result.pb-list-table tbody tr:nth-child(even) td {
  background: #fcfcfd;
}
.pb-list-page #table_result .btn_modify_trading.btn-danger {
  padding: 0.28rem 0.65rem;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  border: none;
  background: #dc3545;
}
.pb-list-page .form-select.w150px {
  width: 150px;
  max-width: 180px;
}
.pb-list-page .list_md_wrap .form-control.datepicker,
.pb-list-page #mini-date {
  min-width: 150px;
  max-width: 180px;
}
.pb-list-page #mini-search-btn {
  min-width: 4rem;
}
/* 원본은 페이지네이션 약함 — 하단 카운트만 유지 */
.pb-list-page #mini-page-nav {
  font-size: 13px;
}

/* ===== 게임 리스트 (trading_list chrome) = 유저 로비 제공사 카탈로그 =====
   원본: ACE/BULL /admin/trading/trading_list — tabs + card.border-top-0 + list_lg
   제품: provider enable/visibility (minigame 회차 테이블 아님)
   전역 #app table .form-select / card overflow-x:hidden 을 페이지 스코프로 덮음 */
.game-catalog-page,
.trading-list-page.game-catalog-page {
  font-size: 1rem;
  font-weight: 400;
}
.game-catalog-page .nav-tabs,
.trading-list-page.game-catalog-page .nav-tabs {
  border-bottom: 1px solid #dee2e6;
  margin-bottom: 0;
}
.game-catalog-page .nav-tabs .nav-link,
.trading-list-page.game-catalog-page .nav-tabs .nav-link {
  color: #0d6efd;
  background: transparent;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  padding: 0.5rem 1rem;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.5;
}
.game-catalog-page .nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6;
  color: #0a58ca;
}
.game-catalog-page .nav-tabs .nav-link.active {
  color: #495057;
  background: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
.game-catalog-page .card,
.game-catalog-page .card.border-top-0 {
  border: 1px solid #dee2e6 !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
  border-bottom-left-radius: 0.25rem !important;
  border-bottom-right-radius: 0.25rem !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
  overflow: visible !important;
}
.game-catalog-page .card.border-top-0 {
  border-top: 0 !important;
}
.game-catalog-page .card-body {
  padding: 1rem !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}
.game-catalog-page .game-catalog-table-wrap,
.game-catalog-page .table-responsive {
  overflow-x: auto !important;
  overflow-y: visible !important;
  width: 100%;
  max-width: 100% !important;
}
/* 카탈로그 표 — 전역 list_lg_wrap width:100%/min-width:0 덮기 */
#app .game-catalog-page .list_lg_wrap.game-catalog-list-wrap,
#app .game-catalog-page .game-catalog-list-wrap,
.game-catalog-page .list_lg_wrap.game-catalog-list-wrap,
.game-catalog-page .game-catalog-list-wrap {
  min-width: 1040px !important;
  width: max-content !important;
  max-width: none !important;
  overflow: visible !important;
}
.game-catalog-page .game-catalog-toolbar {
  min-height: 2.25rem;
}
.game-catalog-page .game-catalog-toolbar .fw-bold {
  font-size: 1rem;
  font-weight: 700;
}
.game-catalog-page .font_11 {
  font-size: 0.95rem !important;
}
.game-catalog-page .font_11b {
  font-size: 0.95rem !important;
  font-weight: 700 !important;
}

/*
 * 열 폭 복구
 * 전역 #app table.table th/td { width:auto; min-width:0 } 이 colgroup을 무시해
 * fixed 테이블에서 셀이 겹침 → th/td 폭을 !important 로 고정
 */
#app .game-catalog-page table.game-catalog-table,
#app .game-catalog-page #table_result.game-catalog-table,
#app .game-catalog-page #table_result,
#app .page-content .game-catalog-page table.table,
.game-catalog-page table.game-catalog-table,
.game-catalog-page #table_result.game-catalog-table,
.game-catalog-page #table_result {
  width: 100% !important;
  min-width: 0 !important; /* 가로 스크롤 제거 — 한 화면에 맞춤 */
  max-width: 100% !important;
  table-layout: fixed !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  margin-bottom: 0 !important;
  border-collapse: collapse !important;
}
.game-catalog-page .game-catalog-table-wrap,
.game-catalog-page .table-responsive {
  overflow-x: hidden !important; /* 옆으로 밀지 않도록 */
}
#app .game-catalog-page .cg-id,
.game-catalog-page .cg-id { width: 48px !important; }
#app .game-catalog-page .cg-grp,
.game-catalog-page .cg-grp { width: 88px !important; }
#app .game-catalog-page .cg-code,
.game-catalog-page .cg-code { width: 92px !important; }
#app .game-catalog-page .cg-name,
.game-catalog-page .cg-name { width: 18% !important; max-width: 160px !important; }
#app .game-catalog-page .cg-sort,
.game-catalog-page .cg-sort { width: 64px !important; }
#app .game-catalog-page .cg-status,
.game-catalog-page .cg-status { width: 120px !important; }
#app .game-catalog-page .cg-act,
.game-catalog-page .cg-act { width: 64px !important; }
.game-catalog-page tr.game-group-head td {
  background: #e9ecef !important;
  border-top: 2px solid #adb5bd !important;
  font-size: 0.9rem !important;
}

#app .game-catalog-page #table_result thead th,
#app .game-catalog-page #table_result tbody td,
#app .page-content .game-catalog-page table.table th,
#app .page-content .game-catalog-page table.table td,
.game-catalog-page #table_result thead th,
.game-catalog-page #table_result tbody td {
  position: static !important;
  float: none !important;
  display: table-cell !important;
  vertical-align: middle !important;
  padding: 0.45rem 0.4rem !important;
  font-size: 0.95rem !important;
  line-height: 1.35 !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  box-sizing: border-box !important;
  max-width: none !important;
}
#app .game-catalog-page #table_result thead th,
.game-catalog-page #table_result thead th {
  white-space: nowrap !important;
  font-weight: 700 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
/* 전역 min-width:0 덮기 — 열별 최소 폭 */
#app .game-catalog-page #table_result thead th:nth-child(1),
#app .game-catalog-page #table_result tbody td:nth-child(1),
#app .game-catalog-page #table_result td.col-pid {
  width: 48px !important;
  min-width: 44px !important;
  max-width: 52px !important;
  text-align: center !important;
  color: #8a8a8a !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  font-size: 0.8rem !important;
}
#app .game-catalog-page #table_result thead th:nth-child(2),
#app .game-catalog-page #table_result tbody td:nth-child(2),
#app .game-catalog-page #table_result td.col-grp {
  width: 88px !important;
  min-width: 80px !important;
  max-width: 96px !important;
  text-align: center !important;
  white-space: normal !important;
  overflow: hidden !important;
  line-height: 1.2 !important;
}
#app .game-catalog-page #table_result thead th:nth-child(3),
#app .game-catalog-page #table_result tbody td:nth-child(3),
#app .game-catalog-page #table_result td.col-code {
  width: 92px !important;
  min-width: 80px !important;
  max-width: 100px !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#app .game-catalog-page #table_result thead th:nth-child(4),
#app .game-catalog-page #table_result tbody td:nth-child(4),
#app .game-catalog-page #table_result td.col-name {
  width: 18% !important;
  min-width: 100px !important;
  max-width: 160px !important;
  text-align: left !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: 0.85rem !important;
}
#app .game-catalog-page #table_result thead th:nth-child(5),
#app .game-catalog-page #table_result tbody td:nth-child(5),
#app .game-catalog-page #table_result td.col-sort {
  width: 64px !important;
  min-width: 56px !important;
  max-width: 72px !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: visible !important;
  padding: 0.25rem 0.15rem !important;
}
#app .game-catalog-page #table_result thead th:nth-child(6),
#app .game-catalog-page #table_result tbody td:nth-child(6),
#app .game-catalog-page #table_result td.col-status {
  width: 118px !important;
  min-width: 108px !important;
  max-width: 130px !important;
  text-align: center !important;
  white-space: normal !important;
  overflow: visible !important;
  padding: 0.25rem 0.2rem !important;
}
#app .game-catalog-page #table_result thead th:nth-child(7),
#app .game-catalog-page #table_result tbody td:nth-child(7),
#app .game-catalog-page #table_result td.col-act {
  width: 64px !important;
  min-width: 56px !important;
  max-width: 72px !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
#app .game-catalog-page #table_result .cat-sort {
  width: 52px !important;
  min-width: 48px !important;
  max-width: 56px !important;
  padding: 0.15rem 0.2rem !important;
  font-size: 0.8rem !important;
  margin: 0 auto !important;
}
#app .game-catalog-page #table_result .cat-vis {
  width: 100% !important;
  max-width: 110px !important;
  min-width: 0 !important;
  padding: 0.15rem 0.25rem !important;
  font-size: 0.78rem !important;
}

.game-catalog-page #table_result td.col-grp .grp-label {
  display: block;
  font-size: 0.9rem;
  font-weight: 700;
  color: #212529;
}
.game-catalog-page #table_result td.col-grp .grp-code {
  display: block;
  font-size: 0.8rem;
  color: #6c757d;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
#app .game-catalog-page #table_result td.col-code code,
#app .game-catalog-page #table_result code,
.game-catalog-page #table_result td.col-code code,
.game-catalog-page #table_result code {
  display: inline-block !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 100% !important;
  font-size: 0.9rem !important;
  color: #d63384 !important;
  background: transparent !important;
  padding: 0 !important;
  position: static !important;
}
.game-catalog-page #table_result .status-cell {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0.2rem;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 110px !important;
  margin: 0 auto;
  position: static !important;
}
.game-catalog-page #table_result .status-cell .badge {
  align-self: center;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.28rem 0.55rem;
  line-height: 1.2;
}
.game-catalog-page #table_result td.col-act .btn {
  min-width: 3.4rem;
  padding: 0.25rem 0.55rem !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  white-space: nowrap;
}
.game-catalog-page .game-lobby-preview {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 0.25rem;
  padding: 0.55rem 0.75rem;
}
.game-catalog-page .game-lobby-preview .badge {
  font-weight: 600;
}
.game-catalog-page .game-catalog-mini-table {
  font-size: 1rem !important;
}

/* #app 고특이성 — 전역 table form-select 11px / min-width:0 / card overflow 덮기 */
#app .game-catalog-page .nav-tabs .nav-link,
#app .page-content .game-catalog-page .nav-tabs .nav-link {
  color: #0d6efd !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  padding: 0.5rem 1rem !important;
  border: 1px solid transparent !important;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  background: transparent !important;
  line-height: 1.5 !important;
}
#app .game-catalog-page .nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6 !important;
  color: #0a58ca !important;
}
#app .game-catalog-page .nav-tabs .nav-link.active {
  color: #495057 !important;
  font-weight: 700 !important;
  background: #fff !important;
  border-color: #dee2e6 #dee2e6 #fff !important;
}
#app .game-catalog-page .card,
#app .page-content .game-catalog-page .card {
  overflow: visible !important;
  max-width: 100% !important;
  box-shadow: none !important;
}
#app .game-catalog-page .card-body,
#app .page-content .game-catalog-page .card-body {
  padding: 1rem !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}
#app .game-catalog-page .table-responsive,
#app .game-catalog-page .game-catalog-table-wrap {
  overflow-x: auto !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}
#app .game-catalog-page .list_lg_wrap.game-catalog-list-wrap,
#app .page-content .game-catalog-page .list_lg_wrap {
  min-width: 1040px !important;
  width: max-content !important;
  max-width: none !important;
  overflow: visible !important;
}
#app .game-catalog-page #table_result,
#app .game-catalog-page table.game-catalog-table,
#app .page-content .game-catalog-page table.table {
  width: 100% !important;
  min-width: 1040px !important;
  max-width: none !important;
  table-layout: fixed !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
}
#app .game-catalog-page #table_result .cat-sort,
#app .game-catalog-page #table_result input.cat-sort,
#app .game-catalog-page #table_result .form-control.cat-sort {
  width: 80px !important;
  min-width: 80px !important;
  max-width: 80px !important;
  margin: 0 auto !important;
  display: block !important;
  text-align: center !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
  min-height: calc(1.5em + 0.75rem + 2px) !important;
  padding: 0.375rem 0.5rem !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  box-sizing: border-box !important;
  line-height: 1.5 !important;
}
#app .game-catalog-page #table_result .status-cell .cat-vis,
#app .game-catalog-page #table_result select.cat-vis,
#app .game-catalog-page #table_result select.form-select.cat-vis,
#app .game-catalog-page #table_result select.cat-vis.w150px,
#app .page-content .game-catalog-page table .form-select.cat-vis {
  width: 190px !important;
  min-width: 190px !important;
  max-width: 200px !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
  min-height: calc(1.5em + 0.75rem + 2px) !important;
  padding: 0.375rem 2rem 0.375rem 0.75rem !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  box-sizing: border-box !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  background-color: #fff !important;
  display: block !important;
  margin: 0 auto !important;
}
#app .game-catalog-page #table_result code,
#app .page-content .game-catalog-page table code {
  font-size: 0.9rem !important;
  word-break: keep-all !important;
  white-space: nowrap !important;
}
#app .game-catalog-page #table_result td.col-act .btn,
#app .game-catalog-page #table_result .btn-sm {
  font-size: 0.9rem !important;
  padding: 0.25rem 0.55rem !important;
  margin: 0 1px;
}

/* ===== 회원 레벨 설정 — 이름 입력란 폭 ===== */
#form_level_config {
  width: 100%;
}
#form_level_config table {
  table-layout: auto;
  width: 100%;
}
#form_level_config th.col-level-name,
#form_level_config td.col-level-name {
  width: 160px !important;
  min-width: 160px !important;
  max-width: 200px;
  vertical-align: middle !important;
}
#form_level_config .level-name-input,
#form_level_config input[data-path*=".name"] {
  width: 100% !important;
  min-width: 140px !important;
  max-width: 180px !important;
  margin: 0 auto;
  display: block;
  padding: 0.4rem 0.55rem !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  box-sizing: border-box;
}
#config-box[data-config-key="level"] .form-control {
  min-height: calc(1.5em + 0.75rem + 2px);
}

/* ── 환경설정(json_config) 원본 동일 레이아웃 ── */
/* 원본: th.w-15 / w-35 / w-50 · 라벨 잘림 없이 줄바꿈 · 스위치는 값 열만 */
.env-config-page,
.env-config-page .card,
.env-config-page .card-body,
.env-config-page .env-config-card,
#config-box.env-config-page,
#config-box {
  overflow-x: visible !important;
  max-width: 100% !important;
}
.env-config-page .env-config-tabs {
  border-bottom: 1px solid #dee2e6;
  flex-wrap: wrap;
  margin-bottom: 0;
}
.env-config-page .env-config-tabs .nav-link {
  color: #495057;
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  border-bottom: none;
  margin-right: 2px;
  padding: 0.5rem 1rem;
  font-size: 0.95rem;
}
.env-config-page .env-config-tabs .nav-link:hover {
  color: #212529;
  background: #fff;
}
.env-config-page .env-config-tabs .nav-link.active {
  color: #212529;
  background: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
  font-weight: 700;
}
.env-config-page .env-config-card {
  border-top-left-radius: 0;
}
.env-config-page .env-table-wrap,
#config-box .env-table-wrap {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
}

/* 표: 원본 15 / 35 / 50 */
#app .env-config-page table.json-config-table,
#config-box table.json-config-table,
.page-content .env-config-page table.json-config-table,
.env-config-page table.json-config-table,
#app #config-box table.json-config-table {
  width: 100% !important;
  min-width: 1000px !important;
  table-layout: fixed !important;
  font-size: 14px !important;
  margin-bottom: 1.75rem !important;
  border-collapse: collapse !important;
}

#app .env-config-page .json-config-table th,
#app .env-config-page .json-config-table td,
#config-box .json-config-table th,
#config-box .json-config-table td,
.page-content .env-config-page .json-config-table th,
.page-content .env-config-page .json-config-table td,
#app #config-box .json-config-table th,
#app #config-box .json-config-table td {
  font-size: 14px !important;
  font-weight: 400 !important;
  padding: 0.65rem 0.85rem !important;
  vertical-align: middle !important;
  line-height: 1.45 !important;
  border-color: #dee2e6 !important;
}

#app .env-config-page .json-config-table thead th,
#config-box .json-config-table thead th,
.page-content .env-config-page .json-config-table thead th {
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #fff !important;
  white-space: nowrap !important;
  background-color: #212529 !important;
  border-color: #32383e !important;
}

/* 키 열 15% */
#app .env-config-page .json-config-table .env-key-cell,
#config-box .json-config-table .env-key-cell,
#app .env-config-page .json-config-table th.w-15,
#config-box .json-config-table th.w-15 {
  width: 15% !important;
  max-width: 15% !important;
  overflow: hidden !important;
}
#app .env-config-page .json-config-table .env-key-input,
#app .env-config-page .json-config-table input.text_gray.env-key-input,
#config-box .json-config-table .env-key-input,
#config-box .json-config-table input.env-key-input,
#app #config-box .json-config-table input.text_gray {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  background: #f1f3f5 !important;
  color: #8a8a8a !important;
  font-size: 12px !important;
  text-align: center !important;
  padding: 0.4rem 0.45rem !important;
  height: auto !important;
  min-height: calc(1.5em + 0.75rem + 2px) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* 라벨 열 35% — 잘림 없이 전체 표시 (tbody만 어두운 글자) */
#app .env-config-page .json-config-table .env-label-cell,
#config-box .json-config-table .env-label-cell {
  width: 35% !important;
  max-width: 35% !important;
  text-align: center !important;
  color: #212529 !important;
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  overflow: visible !important;
  hyphens: auto;
}
/* thead 중간 제목 열 (사이트 정보 등) — 원본처럼 흰 글자 */
#app .env-config-page .json-config-table thead th.w-35,
#config-box .json-config-table thead th.w-35,
.page-content .env-config-page .json-config-table thead th.w-35,
#app .env-config-page .json-config-table thead th.w-15,
#config-box .json-config-table thead th.w-15,
#app .env-config-page .json-config-table thead th.w-50,
#config-box .json-config-table thead th.w-50 {
  width: auto;
  color: #fff !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
#app .env-config-page .json-config-table thead th.w-35,
#config-box .json-config-table thead th.w-35 {
  width: 35% !important;
  max-width: 35% !important;
}
#app .env-config-page .json-config-table .env-label-text,
#config-box .json-config-table .env-label-text {
  display: inline-block;
  max-width: 100%;
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
  line-height: 1.45;
}

/* 값 열 50% — 라벨과 겹치지 않게 격리 */
#app .env-config-page .json-config-table .env-val-cell,
#config-box .json-config-table .env-val-cell,
#app .env-config-page .json-config-table th.w-50,
#config-box .json-config-table th.w-50 {
  width: 50% !important;
  max-width: 50% !important;
  text-align: left !important;
  overflow: hidden !important; /* 내부 컨트롤만, 라벨 침범 방지 */
  position: relative;
  z-index: 1;
  background: #fff;
}

#app .env-config-page .json-config-table .env-ctrl-row,
#config-box .json-config-table .env-ctrl-row {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  --bs-gutter-x: 0.75rem;
  flex-wrap: nowrap !important;
  align-items: center !important;
}
#app .env-config-page .json-config-table .env-ctrl-row > [class*="col-"],
#config-box .json-config-table .env-ctrl-row > [class*="col-"] {
  min-width: 0 !important; /* flex 자식 축소 허용 */
}

/* 입력/셀렉트: 값 열의 절반(col-6) 안에서 100% — 강제 min-width 제거 */
#app .env-config-page .json-config-table .form-control:not(.env-key-input),
#app .env-config-page .json-config-table .form-select,
#app .env-config-page .json-config-table .env-input,
#app .env-config-page .json-config-table .env-select,
#config-box .json-config-table .form-control:not(.env-key-input),
#config-box .json-config-table .form-select,
#config-box .json-config-table .env-input,
#config-box .json-config-table .env-select,
.page-content .env-config-page .json-config-table .form-control:not(.env-key-input),
.page-content .env-config-page .json-config-table .form-select,
#app table.json-config-table .form-control:not(.env-key-input),
#app table.json-config-table .form-select {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  padding: 0.45rem 0.75rem !important;
  height: auto !important;
  min-height: calc(1.5em + 0.9rem + 2px) !important;
  line-height: 1.5 !important;
  box-sizing: border-box !important;
  display: block !important;
}
#app .env-config-page .json-config-table .env-ctrl-wide,
#config-box .json-config-table .env-ctrl-wide {
  width: 100% !important;
  max-width: 100% !important;
}
#app .env-config-page .json-config-table textarea.form-control,
#app .env-config-page .json-config-table .env-textarea,
#config-box .json-config-table textarea.form-control,
#config-box .json-config-table .env-textarea {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 6rem !important;
}

/* 드롭다운 v 쉐브론 */
#app .env-config-page .json-config-table .form-select,
#config-box .json-config-table .form-select,
#app .env-config-page .json-config-table .env-select,
#config-box .json-config-table .env-select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.75rem center !important;
  background-size: 16px 12px !important;
  padding-right: 2.25rem !important;
  cursor: pointer !important;
}

/* 스위치 — 원본 form-switch 크기 */
#app .env-config-page .json-config-table .env-switch-col,
#config-box .json-config-table .env-switch-col {
  flex: 0 0 auto;
  width: 16.666% !important;
  max-width: 16.666% !important;
}
#app .env-config-page .json-config-table .form-check-input,
#config-box .json-config-table .form-check-input {
  width: 2.5em !important;
  height: 1.3em !important;
  min-width: 2.5em !important;
  margin-top: 0 !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
}
#app .env-config-page .json-config-table .form-switch,
#config-box .json-config-table .form-switch {
  min-height: 1.5rem;
  padding-left: 2.7em;
  display: inline-block;
}
#app .env-config-page .json-config-table .form-check-input:checked,
#config-box .json-config-table .form-check-input:checked {
  background-color: #0d6efd !important;
  border-color: #0d6efd !important;
}

.env-side-hint,
.env-row-hint {
  display: block;
  font-size: 12px !important;
  color: #8a8a8a !important;
  line-height: 1.4 !important;
  white-space: normal !important;
  word-break: keep-all !important;
}

#app .env-config-page .json-config-table .btn-warning,
#config-box .json-config-table .btn-warning {
  color: #212529 !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  min-width: 100px !important;
  padding: 0.35rem 0.75rem !important;
}

/* 환전 휴식시간 input-group */
#app .env-config-page .json-config-table .input-group,
#config-box .json-config-table .input-group {
  flex-wrap: nowrap;
  width: 100%;
  max-width: 100%;
}
#app .env-config-page .json-config-table .input-group .form-control,
#config-box .json-config-table .input-group .form-control {
  min-width: 2.5rem !important;
  width: auto !important;
  flex: 1 1 3rem !important;
}
#app .env-config-page .json-config-table .input-group-text,
#config-box .json-config-table .input-group-text {
  font-size: 13px !important;
  white-space: nowrap;
}

/* 전역 table form-control min-width 규칙이 json-config를 깨지 않게 */
#app table.json-config-table .form-control,
#app table.json-config-table .form-select,
.page-content table.json-config-table .form-control,
.page-content table.json-config-table .form-select {
  min-width: 0 !important;
  font-size: 14px !important;
  padding: 0.45rem 0.75rem !important;
}


/* 설정/저장 토스트 — 관리자 헤더 아래 상단 중앙 */
.toast-host {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  top: 58px !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  z-index: 2147483646 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
  pointer-events: none !important;
  max-width: min(520px, 92vw) !important;
  width: max-content !important;
}
.toast-host .toast {
  pointer-events: auto;
  cursor: pointer;
  min-width: 240px;
  max-width: min(520px, 92vw);
  padding: 14px 18px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.38) !important;
  color: #fff !important;
}
.toast-host .toast.toast-success {
  background: #027a48 !important;
  color: #fff !important;
}
.toast-host .toast.toast-error {
  background: #b42318 !important;
  color: #fff !important;
}
.toast-host .toast.toast-info {
  background: #175cd3 !important;
  color: #fff !important;
}

/* 저장/설정 완료 확인 다이얼로그 */
.md-alert-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  background: rgba(15, 23, 42, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.md-alert-card {
  background: #fff;
  border-radius: 12px;
  min-width: min(360px, 92vw);
  max-width: 440px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}
.md-alert-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 18px 8px;
}
.md-alert-ico {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
.md-alert-success .md-alert-ico { background: #027a48; }
.md-alert-error .md-alert-ico { background: #b42318; }
.md-alert-info .md-alert-ico { background: #175cd3; }
/* 확인 모달 경고(!) — 선택 로그아웃 등 원본 toastConfirm 톤 */
.md-confirm-ico-warning {
  background: #f79009 !important;
  color: #fff !important;
  font-weight: 800;
  font-size: 1.15rem;
  line-height: 1;
}
.md-confirm-ico-danger {
  background: #b42318 !important;
  color: #fff !important;
  font-weight: 800;
  font-size: 1.15rem;
  line-height: 1;
}
.md-confirm-danger .md-alert-title {
  color: #842029;
}
.md-confirm-backdrop .md-alert-foot .btn {
  min-width: 88px;
}
/* 원본 알본사 변경 모달: 위 ! 원 · 제목 없음 · OK/Cancel */
.md-confirm-classic {
  min-width: min(420px, 92vw);
  text-align: center;
}
.md-confirm-classic .md-alert-head {
  flex-direction: column;
  justify-content: center;
  padding: 28px 24px 4px;
}
.md-confirm-classic .md-confirm-ico-warning {
  width: 58px !important;
  height: 58px !important;
  border: 3px solid #f0ad4e !important;
  background: #fff !important;
  color: #f0ad4e !important;
  font-size: 32px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
}
.md-confirm-classic .md-alert-body {
  text-align: center;
  padding: 10px 28px 20px;
  font-size: 14px;
  line-height: 1.55;
  white-space: pre-line;
}
.md-confirm-classic .md-alert-foot {
  padding: 0 18px 24px;
}
.md-prompt-wrap {
  padding: 0 40px 16px;
}
.md-prompt-input {
  width: 100%;
  height: 34px;
  border: 1px solid #ced4da;
  border-radius: 4px;
  padding: 4px 10px;
  font-size: 14px;
}
.md-confirm-danger .md-alert-foot .btn-danger {
  font-weight: 800;
  min-width: 110px;
  box-shadow: 0 2px 8px rgba(180, 35, 24, 0.35);
}
.md-alert-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #212529;
}
.md-alert-body {
  padding: 8px 18px 16px;
  font-size: 0.98rem;
  line-height: 1.5;
  color: #343a40;
  white-space: pre-wrap;
  word-break: keep-all;
}
.md-alert-foot {
  padding: 0 18px 16px;
  text-align: center;
}
.md-alert-foot .btn {
  min-width: 96px;
  font-weight: 600;
  padding: 0.45rem 1.25rem;
}

/*
 * =====================================================================
 * USER LIST PAGE — final cascade override (Chrome ~1400–1600 visual parity)
 * Scope: .user-list-page ONLY. Beats #app table / list_lg_wrap / card-body globals.
 * Refs: orig-live-capture/full/003_admin_user_user_list + ace/full/179
 * =====================================================================
 */
#app .user-list-page,
.page-content .user-list-page {
  font-size: 1rem;
  font-weight: 400;
}

/* Tabs */
#app .user-list-page > .nav-tabs,
#app .user-list-page .nav.nav-tabs {
  border-bottom: 1px solid #dee2e6;
  margin-bottom: 0;
}
#app .user-list-page .nav-tabs .nav-link {
  color: #0d6efd !important;
  font-weight: 400 !important;
  font-size: 1rem !important;
  padding: 0.5rem 1rem !important;
  border: 1px solid transparent !important;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  background: transparent !important;
  line-height: 1.5 !important;
}
#app .user-list-page .nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6 !important;
  color: #0a58ca !important;
}
#app .user-list-page .nav-tabs .nav-link.active {
  color: #495057 !important;
  font-weight: 400 !important;
  background: #fff !important;
  border-color: #dee2e6 #dee2e6 #fff !important;
}

/* Card + overflow (kill global overflow-x:hidden) */
#app .user-list-page .card {
  border: 1px solid #dee2e6 !important;
  border-radius: 0 0 0.25rem 0.25rem !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
  overflow: visible !important;
  max-width: 100% !important;
}
#app .user-list-page .card.border-top-0 {
  border-top: 0 !important;
}
#app .user-list-page .card-body,
#app .page-content .user-list-page .card-body,
.page-content .user-list-page .card-body {
  padding: 1rem !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}
#app .user-list-page .table-responsive,
#app .page-content .user-list-page .table-responsive {
  overflow-x: auto !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}

/* list_lg_wrap: 래퍼는 본문 폭 유지, 표만 min-width (가로 스크롤은 table-responsive) */
#app .user-list-page .list_lg_wrap,
#app .page-content .user-list-page .list_lg_wrap,
.page-content .user-list-page .list_lg_wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: visible !important;
}
#app .user-list-page .list_lg_wrap .table-responsive,
#app .page-content .user-list-page .table-responsive {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
}

/* Filter bar — original flex-nowrap */
#app .user-list-page .user-list-filter {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 0 !important;
  overflow: visible !important;
  margin-bottom: 0.5rem !important;
}
#app .user-list-page .user-list-filter > .me-2 {
  margin-right: 0.5rem !important;
  flex-shrink: 0;
}
#app .user-list-page .user-list-filter .form-select,
#app .user-list-page .user-list-filter .form-control {
  font-size: 1rem !important;
  font-weight: 400 !important;
  min-height: calc(1.5em + 0.75rem + 2px) !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
  padding: 0.375rem 2rem 0.375rem 0.75rem !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  width: auto !important;
  min-width: 6.5rem !important;
  max-width: none !important;
  line-height: 1.5 !important;
  background-color: #fff !important;
}
#app .user-list-page .user-list-filter .form-control.datepicker,
#app .user-list-page .user-list-filter .input-group .form-control {
  padding-right: 0.75rem !important;
  min-width: 0 !important;
}
#app .user-list-page .user-list-filter .input-group {
  flex-wrap: nowrap !important;
}
#app .user-list-page .user-search-combo,
#app .user-list-page .user-list-filter .user-search-combo {
  min-width: 16rem !important;
  max-width: 20rem !important;
  overflow: hidden !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  padding: 0 !important;
  display: flex !important;
  background: #fff !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
}
#app .user-list-page .user-search-combo .form-select,
#app .user-list-page .user-search-combo .form-control {
  border: 0 !important;
  box-shadow: none !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
}
#app .user-list-page .user-search-combo .form-select {
  max-width: 7.5rem !important;
  min-width: 5.5rem !important;
  border-right: 1px solid #ced4da !important;
  border-radius: 0 !important;
  padding-right: 1.5rem !important;
}
#app .user-list-page .user-search-combo .form-control {
  flex: 1 1 auto !important;
  max-width: none !important;
  border-radius: 0 !important;
}
#app .user-list-page .user-list-filter .btn {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.375rem 0.75rem !important;
  border-radius: 0.25rem !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
}

/* Bulk bar — original bg-secondary nowrap */
#app .user-list-page .user_config_list {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  overflow-x: visible !important;
  background-color: #6c757d !important;
  border-radius: 0 !important;
  min-height: 2.75rem !important;
  gap: 0 !important;
  row-gap: 0 !important;
}
#app .user-list-page .user_config_list .font_10b {
  font-size: 1rem !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  color: #fff !important;
}
#app .user-list-page .user_config_list .form-select {
  font-size: 1rem !important;
  font-weight: 400 !important;
  min-width: 7rem !important;
  max-width: none !important;
  width: auto !important;
  min-height: calc(1.5em + 0.75rem + 2px) !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
  padding: 0.375rem 1.75rem 0.375rem 0.75rem !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  background-color: #fff !important;
  line-height: 1.5 !important;
}
#app .user-list-page .user_config_list .btn,
#app .user-list-page .user_config_list .btn-danger {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.375rem 0.75rem !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
}

/* Table — 원본 회원/승인대기: 카드 전체 폭 + auto (fixed 시 열 깨짐) */
#app .user-list-page #table_result,
#app .user-list-page table.users-data,
#app .user-list-page table.table.users-data,
#app .page-content .user-list-page table.table,
#app .page-content .user-list-page table.table.users-data,
.page-content .user-list-page table.table.users-data {
  width: 100% !important;
  min-width: 1450px !important;
  max-width: none !important;
  table-layout: auto !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  margin-bottom: 0 !important;
  border-color: #dee2e6 !important;
  border-collapse: collapse !important;
}
#app .user-list-page #table_result th,
#app .user-list-page #table_result td,
#app .user-list-page table.users-data th,
#app .user-list-page table.users-data td,
#app .user-list-page table.table th,
#app .user-list-page table.table td,
#app .page-content .user-list-page table.table th,
#app .page-content .user-list-page table.table td {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.35rem 0.4rem !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  /* 기본은 잘림 금지 — 이름 등 긴 텍스트 열만 선택적 ellipsis */
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1.35 !important;
  border-color: #dee2e6 !important;
  box-sizing: border-box !important;
}
#app .user-list-page #table_result thead th,
#app .user-list-page table.users-data thead th,
#app .user-list-page table.table thead th,
#app .page-content .user-list-page table.table thead th {
  font-weight: 700 !important;
  background-color: #212529 !important;
  color: #fff !important;
  border-color: #32383e !important;
  text-align: center !important;
  font-size: 1rem !important;
  padding: 0.4rem 0.25rem !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#app .user-list-page thead th .icon_sort,
#app .user-list-page thead th .font_08,
#app .user-list-page thead th .text_gray {
  font-size: 0.8rem !important;
  color: #adb5bd !important;
  opacity: 0.9;
  margin: 0 1px;
}

/* 원본 min_w_* = 최소 폭(floor). max-width로 조이면 머니/숫자 잘림.
 * 페이지마다 원본 thead를 따르되, 금액·포인트는 잘리지 않게 min만 보장 */
#app .user-list-page #table_result .min_w_40px,
#app .user-list-page table.users-data .min_w_40px {
  min-width: 40px !important;
}
#app .user-list-page #table_result .min_w_50px,
#app .user-list-page table.users-data .min_w_50px {
  min-width: 50px !important;
}
#app .user-list-page #table_result .min_w_60px,
#app .user-list-page table.users-data .min_w_60px {
  min-width: 60px !important;
}
#app .user-list-page #table_result .min_w_70px:not(.col-rate),
#app .user-list-page table.users-data .min_w_70px:not(.col-rate) {
  min-width: 70px !important;
}
#app .user-list-page #table_result .min_w_70px.col-rate,
#app .user-list-page table.users-data .min_w_70px.col-rate {
  min-width: 90px !important; /* 요율설정 버튼 */
}
#app .user-list-page #table_result .min_w_80px,
#app .user-list-page table.users-data .min_w_80px {
  min-width: 80px !important;
  max-width: none !important;
}
#app .user-list-page #table_result .min_w_100px:not(.col-agency),
#app .user-list-page table.users-data .min_w_100px:not(.col-agency) {
  width: 100px !important; min-width: 100px !important;
}
/* agency keeps min_w_100 class (orig) but needs room for 상위/하위/생성 */
#app .user-list-page #table_result .min_w_100px.col-agency,
#app .user-list-page table.users-data .min_w_100px.col-agency {
  width: 210px !important; min-width: 210px !important; max-width: 210px !important;
}
#app .user-list-page #table_result .min_w_120px,
#app .user-list-page table.users-data .min_w_120px {
  width: 120px !important; min-width: 120px !important; max-width: none !important;
}
#app .user-list-page #table_result .min_w_180px,
#app .user-list-page table.users-data .min_w_180px {
  width: 180px !important; min-width: 160px !important; max-width: none !important;
}

/* 열 폭: fixed 레이아웃에서 % 분배되도록 max-width 고정 해제 (오른쪽 여백 방지) */
#app .user-list-page .col-check {
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  padding: 0.15rem 0.2rem !important;
  overflow: visible !important;
}
#app .user-list-page .col-domain {
  width: 50px !important; min-width: 50px !important; max-width: none !important;
}
#app .user-list-page .col-grade {
  width: 60px !important; min-width: 60px !important; max-width: none !important;
}
#app .user-list-page .col-status {
  width: 50px !important; min-width: 50px !important; max-width: none !important;
}
#app .user-list-page .col-idnick {
  width: 180px !important; min-width: 160px !important; max-width: none !important;
  text-align: center !important;
}
#app .user-list-page .col-name {
  width: 90px !important; min-width: 90px !important; max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* 업체 관리: orig min_w_100 floor — 3 buttons need ~210px; no ellipsis on buttons */
#app .user-list-page .col-agency {
  width: 210px !important;
  min-width: 210px !important;
  max-width: 210px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
#app .user-list-page .col-rate {
  width: 90px !important; min-width: 90px !important; max-width: 90px !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
#app .user-list-page .col-lv,
#app .user-list-page .col-glv,
#app .user-list-page .col-clv {
  width: 40px !important; min-width: 40px !important; max-width: 40px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
}
/* 03-2: 게임Lv = 유저Lv. auto 표는 max-width를 무시하므로 회원리스트만 fixed */
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result {
  table-layout: fixed !important;
}
#app .user-list-page:not(.user-online-page) #table_result th.col-lv,
#app .user-list-page:not(.user-online-page) #table_result td.col-lv,
#app .user-list-page:not(.user-online-page) #table_result th.col-glv,
#app .user-list-page:not(.user-online-page) #table_result td.col-glv,
#app .user-list-page:not(.user-online-page) #table_result th.col-clv,
#app .user-list-page:not(.user-online-page) #table_result td.col-clv,
#app .user-list-page:not(.user-online-page) #table_result th[data-col="user_lv"],
#app .user-list-page:not(.user-online-page) #table_result td[data-col="user_lv"],
#app .user-list-page:not(.user-online-page) #table_result th[data-col="game_lv"],
#app .user-list-page:not(.user-online-page) #table_result td[data-col="game_lv"],
#app .user-list-page:not(.user-online-page) #table_result th[data-col="comp_lv"],
#app .user-list-page:not(.user-online-page) #table_result td[data-col="comp_lv"] {
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  white-space: normal !important;
  word-break: keep-all !important;
  line-height: 1.2 !important;
}
#app .user-list-page .col-money,
#app .user-list-page .col-point {
  width: auto !important;
  min-width: 110px !important;
  max-width: none !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}
#app .user-list-page .col-ip {
  width: 120px !important; min-width: 120px !important; max-width: 130px !important;
}
#app .user-list-page .col-login {
  width: 150px !important; min-width: 120px !important; max-width: 160px !important;
  white-space: nowrap !important;
}
/* nth-child 폭: 회원리스트(users.html) 전용 — 트리/대기/접속자는 열 구성이 달라 적용 금지
 * 머니·포인트(th 11·12)는 max-width 금지 (281,224 등 잘림 방지) */
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result tbody td:nth-child(1) { min-width: 40px !important; overflow: visible !important; }
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result tbody td:nth-child(7),
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result tbody td.col-agency {
  min-width: 210px !important;
  overflow: visible !important; text-overflow: clip !important;
}
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result tbody td.col-money,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result tbody td.col-point {
  min-width: 110px !important;
  max-width: none !important;
  width: auto !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

/* icheck checkbox (vendor app.css) */
#app .user-list-page .checkbox.icheck-danger {
  display: inline-block;
  min-height: 22px;
  margin: 0 auto !important;
}
#app .user-list-page .checkbox.icheck-danger > label {
  min-height: 22px;
  margin-bottom: 0;
  padding-left: 29px !important;
}

/* Table buttons — beat #app table .btn { font-size:10px } */
#app .user-list-page table .btn,
#app .user-list-page #table_result .btn,
#app .user-list-page table.users-data .btn,
#app .user-list-page .col-agency .btn,
#app .user-list-page .col-rate .btn,
#app .page-content .user-list-page table .btn {
  display: inline-block !important;
  margin: 0 1px !important;
  vertical-align: middle !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  padding: 0.25rem 0.4rem !important;
  line-height: 1.25 !important;
  border-radius: 0.2rem !important;
  white-space: nowrap !important;
  min-width: 0 !important;
  height: auto !important;
}
#app .user-list-page .btn-sm.p-1 {
  font-size: 0.9rem !important;
  padding: 0.25rem 0.4rem !important;
  line-height: 1.25 !important;
}

/* Stripe / hover — Bootstrap table-striped tones */
#app .user-list-page .table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: rgba(0, 0, 0, 0.05) !important;
}
#app .user-list-page .table-striped > tbody > tr:nth-of-type(even) > * {
  background-color: #fff !important;
}
#app .user-list-page .table-hover > tbody > tr:hover > * {
  background-color: rgba(0, 0, 0, 0.075) !important;
}

#app .user-list-page .open_user_info,
#app .user-list-page .open_user_info.font_10b {
  font-weight: 700 !important;
  font-size: 1rem !important;
  cursor: pointer;
  white-space: nowrap;
}
#app .user-list-page .open_user_info:hover {
  color: #0d6efd;
  text-decoration: underline;
}
#app .user-list-page .text_positive { color: #007bff !important; }
#app .user-list-page .text_negative { color: #dc3545 !important; }
#app .user-list-page .icon_ip_block { opacity: 0.7; }

/* Pagination density */
#app .user-list-page .admin-list-pagination,
#app .user-list-page #users-pagination {
  margin-top: 1.5rem !important;
  padding: 0.25rem 0 !important;
}
#app .user-list-page .admin-list-pagination .form-select {
  width: 100px !important;
  min-width: 100px !important;
  max-width: 100px !important;
  font-size: 1rem !important;
  height: calc(1.5em + 0.5rem + 2px) !important;
  min-height: 0 !important;
  padding: 0.25rem 1.75rem 0.25rem 0.5rem !important;
}
#app .user-list-page .admin-list-pagination .font_11b,
#app .user-list-page .admin-list-pagination .text-info {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: #0dcaf0 !important;
}

/* Media: keep 1rem density on desktop-narrow (global 10px shrink) */
@media (max-width: 1400px) {
  #app .user-list-page table.table,
  #app .user-list-page table.users-data,
  #app .page-content .user-list-page table.table {
    font-size: 1rem !important;
  }
  #app .user-list-page table.table th,
  #app .user-list-page table.table td,
  #app .user-list-page table.users-data th,
  #app .user-list-page table.users-data td,
  #app .page-content .user-list-page table.table th,
  #app .page-content .user-list-page table.table td {
    font-size: 1rem !important;
    padding: 0.35rem 0.4rem !important;
  }
  #app .user-list-page table .btn,
  #app .page-content .user-list-page table .btn {
    font-size: 0.9rem !important;
    padding: 0.25rem 0.4rem !important;
  }
}
@media (max-width: 1100px) {
  #app .user-list-page table .btn,
  #app .user-list-page .col-agency .btn,
  #app .user-list-page .col-rate .btn {
    font-size: 0.85rem !important;
    padding: 0.2rem 0.35rem !important;
  }
}

/* ----- waiting / online / tree sub-lists (004·005·006) ----- */
.user-list-page.user-waiting-page > .card,
.user-list-page.user-online-page > .card,
.user-list-page.user-tree-page > .card {
  border-radius: 0.25rem !important;
  border-top: 1px solid #dee2e6 !important;
}
.user-list-page.user-online-page > .row {
  margin-bottom: 0.25rem;
}
.user-list-page.user-online-page .alert-primary {
  font-size: 1rem;
  line-height: 1.45;
  margin-bottom: 0.75rem;
}
.user-list-page.user-online-page .alert-danger {
  font-size: 0.95rem;
  margin-top: 1rem !important;
}
.user-list-page.user-online-page #online-logout-selected {
  font-size: 1rem !important;
  padding: 0.375rem 0.75rem !important;
  height: auto !important;
}
.user-list-page.user-online-page #table_result tbody tr.table-primary > * {
  background-color: #cfe2ff !important;
  color: #084298 !important;
  font-weight: 700;
}
.user-list-page.user-online-page .icon_logout {
  cursor: pointer;
  margin-left: 0.25rem;
  opacity: 0.75;
}
.user-list-page.user-online-page .icon_logout:hover {
  opacity: 1;
  color: #dc3545;
}
.user-list-page.user-online-page .font_09 {
  font-size: 0.9rem !important;
  line-height: 1.25 !important;
}
/* 접속자 리스트: 항목설정 버튼 우측 고정 (필터 스크롤에 밀리지 않음) */
.user-list-page.user-online-page .online-toolbar-row {
  gap: 0.5rem;
  width: 100%;
}
.user-list-page.user-online-page .online-user-filter {
  overflow-x: auto;
  flex-wrap: wrap !important;
  row-gap: 0.35rem;
}
.user-list-page.user-online-page .online-cols-slot {
  position: sticky;
  top: 0;
  z-index: 2;
  padding-top: 0;
}
.user-list-page.user-online-page .online-cols-slot #uf-cols,
.user-list-page.user-online-page #uf-cols {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  white-space: nowrap;
  font-weight: 600;
}

/* 회원 트리: 좌측 트리 + 우측 리스트 (admin_xl) */
.user-list-page.user-tree-page > .alert-primary {
  font-size: 1rem;
  margin-bottom: 0.75rem;
}
.user-list-page.user-tree-page > .card {
  overflow: hidden !important;
}
.user-list-page.user-tree-page > .card > .card-body {
  padding-left: 0 !important;
  overflow-x: auto !important;
}
.user-list-page.user-tree-page .user-tree-layout {
  display: flex !important;
  align-items: flex-start;
  min-width: 0;
  width: 100%;
}
.user-list-page.user-tree-page .user-tree-sidebar {
  min-width: 250px !important;
  width: 250px !important;
  max-width: 280px;
  flex-shrink: 0 !important;
  margin-right: 2rem !important;
  padding-top: 0.25rem;
}
.user-list-page.user-tree-page .user-tree-main {
  min-width: 0;
  flex: 1 1 auto;
  overflow-x: auto !important;
}
.user-list-page.user-tree-page .user-tree-main .list_lg_wrap,
.user-list-page.user-tree-page .user-tree-main {
  max-width: none;
}
.user-list-page.user-tree-page .user-tree-main .user-list-filter {
  min-width: 1200px;
}
.user-list-page.user-tree-page #jstree_demo_div,
.user-list-page.user-tree-page .user-tree-panel {
  font-size: 0.95rem;
  padding: 0.25rem 0.5rem 1rem;
  max-height: 70vh;
  overflow-y: auto;
}
.user-list-page.user-tree-page .user-tree-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.user-list-page.user-tree-page .user-tree-node {
  list-style: none;
  margin: 0;
  padding: 0;
}
.user-list-page.user-tree-page .user-tree-children {
  list-style: none;
  margin: 0;
  padding: 0 0 0 0.25rem;
}
.user-list-page.user-tree-page .user-tree-row {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
  white-space: nowrap;
}
.user-list-page.user-tree-page .user-tree-row.is-active {
  background: rgba(13, 110, 253, 0.08);
  border-radius: 0.2rem;
}
.user-list-page.user-tree-page .user-tree-toggle {
  border: 0;
  background: transparent;
  color: #6c757d;
  width: 1.25rem;
  padding: 0;
  font-size: 0.7rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}
.user-list-page.user-tree-page .user-tree-link {
  color: #212529;
  text-decoration: none;
  font-size: 0.95rem;
}
.user-list-page.user-tree-page .user-tree-link:hover {
  color: #0d6efd;
  text-decoration: underline;
}
.user-list-page.user-tree-page #table_result tbody tr.table-info > * {
  background-color: #cff4fc !important;
}
.user-list-page.user-tree-page .user-tree-main .table-responsive,
.user-list-page.user-tree-page .pc_overflow,
#app .user-list-page.user-tree-page .pc_overflow,
#app .user-list-page.user-tree-page .mobile_overflow,
#app .user-list-page.user-tree-page .overflow_hidden {
  overflow-x: auto !important;
  max-width: 100% !important;
}
/* tree main keeps list_lg_wrap density but not forced under sidebar */
.user-list-page.user-tree-page .user-tree-main #table_result,
.user-list-page.user-tree-page .user-tree-main table.users-data {
  min-width: 1100px !important;
}
#app .user-list-page.user-tree-page .user-tree-main .list_lg_wrap,
.page-content .user-list-page.user-tree-page .user-tree-main .list_lg_wrap {
  min-width: 1100px !important;
  width: max-content !important;
}
/* online list_lg_wrap min-width: final block (원본 1450) 가 담당 */
#app .user-list-page.user-waiting-page .list_lg_wrap,
.page-content .user-list-page.user-waiting-page .list_lg_wrap {
  min-width: 1450px !important;
}
.user-list-page .w20px { width: 20px !important; min-width: 20px !important; }
.user-list-page .w40px { width: 40px !important; min-width: 40px !important; }
.user-list-page .w50px { width: 50px !important; min-width: 50px !important; }
.user-list-page .w90px { width: 90px !important; min-width: 90px !important; }
.user-list-page .w150px { width: 150px !important; min-width: 150px !important; }
.user-list-page .w170px { width: 170px !important; min-width: 170px !important; }
.user-list-page .w180px { width: 180px !important; min-width: 180px !important; }
.user-list-page .font_08 { font-size: 0.8rem !important; }
.user-list-page .min_w_90px { min-width: 90px !important; }


/* ===== 충전 리스트 / 환전 리스트 — 원본 BULL·ACE 동일 밀도 (page-scoped) ===== */
.deposit-list-page,
.withdraw-list-page {
  font-size: 1rem;
  font-weight: 400;
}
.page-content > #admin-page-main > .deposit-list-page,
.page-content > #admin-page-main > .withdraw-list-page {
  margin-top: 0.45rem !important;
}
.deposit-list-page .card,
.withdraw-list-page .card {
  border: 1px solid #dee2e6 !important;
  border-radius: 0.25rem !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
}
.deposit-list-page .card-body,
.withdraw-list-page .card-body {
  padding: 1rem 1rem 0.5rem !important;
  overflow-x: auto !important;
}
/*
 * 충전/환전 리스트: 넓은 표는 가로 스크롤로만 처리
 * (list_lg_wrap min-width + overflow visible 이면 본문 왼쪽으로 밀려 사이드바에 잘림)
 */
#app .deposit-list-page,
#app .withdraw-list-page,
.deposit-list-page,
.withdraw-list-page {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
}
#app .deposit-list-page .card,
#app .withdraw-list-page .card,
.deposit-list-page .card,
.withdraw-list-page .card {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important; /* 스크롤은 내부 table-responsive 만 */
}
#app .deposit-list-page .card-body,
#app .withdraw-list-page .card-body,
.deposit-list-page .card-body,
.withdraw-list-page .card-body {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
}
#app .deposit-list-page .list_lg_wrap,
#app .withdraw-list-page .list_lg_wrap,
.deposit-list-page .list_lg_wrap,
.withdraw-list-page .list_lg_wrap {
  /* 래퍼는 부모 폭에 맞춤 — 표만 넓게 */
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;
}
#app .deposit-list-page .table-responsive,
#app .withdraw-list-page .table-responsive,
#app .page-content .deposit-list-page .table-responsive,
#app .page-content .withdraw-list-page .table-responsive,
.deposit-list-page .table-responsive,
.withdraw-list-page .table-responsive {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
}
/* 수동 지급 리스트도 동일 */
#app .manual-list-page .card-body,
.manual-list-page .card-body,
#app .manual-list-page .table-responsive,
.manual-list-page .table-responsive,
#app .manual-list-page .list_md_wrap,
.manual-list-page .list_md_wrap {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
}
/* 필터 바 — 원본 form-select/datepicker 밀도 */
.deposit-list-page .deposit-list-filter,
.withdraw-list-page .withdraw-list-filter {
  overflow-x: auto;
  gap: 0;
  align-items: center;
  flex-wrap: wrap !important;
  row-gap: 0.4rem;
}
.deposit-list-page .deposit-list-filter > .me-2,
.withdraw-list-page .withdraw-list-filter > .me-2 {
  margin-right: 0.35rem !important;
}
.deposit-list-page .deposit-list-filter .form-select,
.deposit-list-page .deposit-list-filter .form-control,
.withdraw-list-page .withdraw-list-filter .form-select,
.withdraw-list-page .withdraw-list-filter .form-control {
  font-size: 1rem !important;
  font-weight: 400 !important;
  min-height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  width: auto;
  min-width: 6.5rem;
}
/* 충·환전 필터 날짜도 가로 나란히 */
.deposit-list-page .deposit-date-group,
.withdraw-list-page .withdraw-date-group {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  max-width: none !important;
  width: auto !important;
}
.deposit-list-page .deposit-date-group .form-control,
.deposit-list-page .deposit-date-group input[type="date"],
.withdraw-list-page .withdraw-date-group .form-control,
.withdraw-list-page .withdraw-date-group input[type="date"] {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 9.5rem !important;
  max-width: none !important;
}
.deposit-list-page .deposit-search-combo,
.withdraw-list-page .withdraw-search-combo {
  min-width: 16rem;
  overflow: hidden;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem;
  padding: 0 !important;
}
.deposit-list-page .deposit-search-combo .form-select,
.deposit-list-page .deposit-search-combo .form-control,
.withdraw-list-page .withdraw-search-combo .form-select,
.withdraw-list-page .withdraw-search-combo .form-control {
  border: 0 !important;
  box-shadow: none !important;
  min-width: 0;
}
.deposit-list-page .deposit-search-combo .form-select,
.withdraw-list-page .withdraw-search-combo .form-select {
  max-width: 7.5rem;
  background-color: #fff;
  border-right: 1px solid #ced4da !important;
}
.deposit-list-page .deposit-list-filter .btn,
.withdraw-list-page .withdraw-list-filter .btn {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.375rem 0.75rem !important;
  border-radius: 0.25rem;
  white-space: nowrap;
}
/* 충전/환전 리스트 정렬 아이콘 (원본 icon_sort) */
.deposit-list-page thead th .icon_sort,
.deposit-list-page thead th .font_08,
.withdraw-list-page thead th .icon_sort,
.withdraw-list-page thead th .font_08 {
  font-size: 0.8rem !important;
  margin: 0 1px;
  vertical-align: middle;
}
.deposit-list-page thead th .icon_sort.text_gray,
.withdraw-list-page thead th .icon_sort.text_gray {
  color: #bbb !important;
}
.deposit-list-page thead th .icon_sort.text-warning,
.withdraw-list-page thead th .icon_sort.text-warning {
  color: #ffc107 !important;
}
.deposit-list-page #table_result thead th,
.withdraw-list-page #table_result thead th {
  vertical-align: middle;
  white-space: nowrap;
}
/* 원본 충전 리스트 행 밀도 */
.deposit-list-page #table_result tbody td {
  vertical-align: middle;
  padding: 0.35rem 0.4rem;
  font-size: 0.92rem;
}
.deposit-list-page #table_result tbody tr.table-success {
  --bs-table-bg: #d1e7dd;
  --bs-table-accent-bg: #d1e7dd;
}
.deposit-list-page #table_result tbody tr.table-secondary {
  --bs-table-bg: #e2e3e5;
}
.deposit-list-page #table_result tbody tr.table-warning {
  --bs-table-bg: #fff3cd;
}
.deposit-list-page #table_result tbody tr.table-primary td {
  background: #cfe2ff !important;
  font-weight: 500;
}
.deposit-list-page .transfer-memo-group {
  flex-wrap: nowrap;
  min-width: 140px;
}
.deposit-list-page .transfer-memo-group .input_memo {
  background: #e9ecef;
  min-width: 0;
}
.deposit-list-page .transfer-memo-group .input_memo:not(:disabled) {
  background: #fff;
}
.deposit-list-page .transfer-memo-group .btn_memo {
  white-space: nowrap;
  flex-shrink: 0;
}
.deposit-list-page #table_result .btn-sm.p-1 {
  font-size: 0.85rem;
  line-height: 1.1;
}
/* 항목설정 모달 폴백 토글 */
.md-menu-data-overlay .form-check-input {
  width: 2.5em;
  height: 1.35em;
  cursor: pointer;
}
.md-menu-data-overlay .form-check-input:checked {
  background-color: #0d6efd;
  border-color: #0d6efd;
}
/* 환전 일괄 버튼 줄 */
.withdraw-list-page .withdraw-bulk-actions {
  margin-left: 0;
  margin-right: 0;
}
.withdraw-list-page .withdraw-bulk-actions .btn {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.375rem 0.75rem !important;
  white-space: nowrap;
  cursor: pointer;
}
.withdraw-list-page .withdraw-bulk-actions .btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
/* ===== 관리자 지급 리스트 ===== */
.manual-list-page .manual-list-filter .form-select,
.manual-list-page .manual-list-filter .form-control {
  font-size: 1rem;
  min-height: calc(1.5em + 0.75rem + 2px);
}
/* 시작일 · 종료일 가로 나란히 (max-width 좁으면 type=date 가 세로로 접힘) */
.manual-list-page .manual-date-group {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  max-width: none !important;
  width: auto !important;
  min-width: 0;
}
.manual-list-page .manual-date-group .form-control,
.manual-list-page .manual-date-group input[type="date"] {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 9.5rem !important;
  max-width: none !important;
}
.manual-list-page .manual-search-combo {
  min-width: 14rem;
  overflow: hidden;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem;
  padding: 0 !important;
}
.manual-list-page .manual-search-combo .form-select,
.manual-list-page .manual-search-combo .form-control {
  border: 0 !important;
  box-shadow: none !important;
}
.manual-list-page .manual-search-combo .form-select {
  max-width: 6.5rem;
  border-right: 1px solid #ced4da !important;
}
.manual-list-page #table_result {
  font-size: 0.95rem;
  table-layout: auto !important;
  width: 100% !important;
}
/* 01-14·03-6: 일시·등급 글씨 잘림 금지. #app table.table td { min-width:0 } 보다 특이도 높게 */
#app .manual-list-page #table_result th.manual-col-when,
#app .manual-list-page #table_result td.manual-col-when,
#app .manual-list-page #table_result thead th:nth-child(1),
#app .manual-list-page #table_result tbody tr:not(.manual-sum-row):not(.table-primary) td:nth-child(1) {
  width: 180px !important;
  min-width: 180px !important;
  max-width: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
#app .manual-list-page #table_result th.manual-col-grade,
#app .manual-list-page #table_result td.manual-col-grade,
#app .manual-list-page #table_result thead th:nth-child(2),
#app .manual-list-page #table_result tbody tr:not(.manual-sum-row):not(.table-primary) td:nth-child(2) {
  width: 4.5rem !important;
  min-width: 4.5rem !important;
  max-width: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
.manual-list-page #table_result thead th.manual-col-amt,
.manual-list-page #table_result thead th:nth-child(6) {
  width: 9rem !important;
  min-width: 9rem !important;
  max-width: 11rem !important;
  text-align: center !important;
  white-space: nowrap !important;
}
.manual-list-page #table_result tbody td.manual-col-amt,
.manual-list-page #table_result tbody td:nth-child(6) {
  width: 9rem !important;
  min-width: 9rem !important;
  max-width: 11rem !important;
  text-align: right !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums;
  overflow: visible !important;
  color: #212529 !important;
}
.manual-list-page #table_result thead th.manual-col-admin,
.manual-list-page #table_result thead th:nth-child(7),
.manual-list-page #table_result tbody td.manual-col-admin,
.manual-list-page #table_result tbody td:nth-child(7) {
  width: 9rem !important;
  min-width: 9rem !important;
  max-width: 11rem !important;
  white-space: nowrap !important;
}
/* 합계 행: colspan(1) + 금액(2) + 관리자(3) */
.manual-list-page #table_result tbody tr.manual-sum-row > td,
.manual-list-page #table_result tbody tr.table-primary > td {
  background: #cfe2ff !important;
  color: #084298 !important;
  vertical-align: middle !important;
}
.manual-list-page #table_result tbody tr.manual-sum-row > td:nth-child(1),
.manual-list-page #table_result tbody tr.table-primary > td:nth-child(1) {
  text-align: center !important;
}
.manual-list-page #table_result tbody tr.manual-sum-row > td.manual-sum-amt,
.manual-list-page #table_result tbody tr.manual-sum-row > td:nth-child(2),
.manual-list-page #table_result tbody tr.table-primary > td:nth-child(2) {
  text-align: right !important;
  width: 9rem !important;
  min-width: 9rem !important;
  max-width: 11rem !important;
  white-space: nowrap !important;
  font-weight: 800 !important;
  font-variant-numeric: tabular-nums;
  overflow: visible !important;
}
.manual-list-page #table_result tbody tr.manual-sum-row > td:nth-child(3),
.manual-list-page #table_result tbody tr.table-primary > td:nth-child(3) {
  width: 9rem !important;
  min-width: 9rem !important;
  text-align: center !important;
}
.manual-list-page .text_positive { color: #0d6efd !important; }
.manual-list-page .text_negative { color: #dc3545 !important; }

/* ===== 롤링 및 콤프 지급조건 (원본 rolling_config) ===== */
.rolling-config-page .alert-primary,
#config-box[data-config-key="rolling"] .alert-primary {
  background: #cfe2ff !important;
  border-color: #b6d4fe !important;
  color: #084298 !important;
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  margin-bottom: 1rem !important;
}
#config-box[data-config-key="rolling"] .font_12b {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
}
#config-box[data-config-key="rolling"] .font_10,
#config-box[data-config-key="rolling"] .font_10b {
  font-size: 0.95rem !important;
}
#config-box[data-config-key="rolling"] .lh_22 { line-height: 1.55 !important; }
#config-box[data-config-key="rolling"] .lh_18 { line-height: 1.5 !important; }

#app #config-box[data-config-key="rolling"] table.rolling-config-table,
#config-box[data-config-key="rolling"] table.rolling-config-table {
  width: 100% !important;
  table-layout: auto !important;
  margin-bottom: 0 !important;
  font-size: 1rem !important;
  border-collapse: collapse !important;
}
#app #config-box[data-config-key="rolling"] .rolling-config-table th,
#app #config-box[data-config-key="rolling"] .rolling-config-table td,
#config-box[data-config-key="rolling"] .rolling-config-table th,
#config-box[data-config-key="rolling"] .rolling-config-table td {
  vertical-align: middle !important;
  white-space: nowrap !important;
  position: static !important;
  float: none !important;
  display: table-cell !important;
  min-width: 0 !important;
  max-width: none !important;
}
/* 헤더 색 — 원본 table-info / table-success */
#config-box[data-config-key="rolling"] thead th.table-secondary {
  background-color: #e2e3e5 !important;
  color: #212529 !important;
  border-color: #d3d6d8 !important;
}
#config-box[data-config-key="rolling"] thead th.table-info {
  background-color: #cff4fc !important;
  color: #055160 !important;
  border-color: #b6effb !important;
}
#config-box[data-config-key="rolling"] thead th.table-success {
  background-color: #d1e7dd !important;
  color: #0f5132 !important;
  border-color: #badbcc !important;
}
#config-box[data-config-key="rolling"] thead .btn-sm {
  pointer-events: none;
  padding: 0.15rem 0.55rem !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
}
/* icheck 체크박스 — 빨간 체크 박스 + 라벨 */
#config-box[data-config-key="rolling"] .checkbox.icheck-danger {
  display: inline-block !important;
  min-height: 22px !important;
  margin: 0.35rem auto !important;
  padding-left: 0 !important;
  text-align: left;
  position: relative !important;
  overflow: visible !important;
}
#config-box[data-config-key="rolling"] .checkbox.icheck-danger > label {
  padding-left: 29px !important;
  min-height: 22px !important;
  margin: 0 !important;
  font-weight: 400 !important;
  line-height: 22px !important;
  cursor: pointer !important;
  color: #212529 !important;
}
#config-box[data-config-key="rolling"] tfoot td {
  background: #fff !important;
  text-align: center !important;
}

/* ===== 회원 레벨 설정 (원본 user_level_config) ===== */
.user-level-config-page .alert-primary,
#config-box[data-config-key="level"] .user-level-config-page .alert-primary,
#config-box[data-config-key="level"] .alert-primary {
  background: #cfe2ff !important;
  border-color: #b6d4fe !important;
  color: #084298 !important;
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  margin-bottom: 1rem !important;
}
#app #config-box[data-config-key="level"] .user-level-config-page .card,
#config-box[data-config-key="level"] .user-level-config-page .card {
  border: 1px solid #dee2e6 !important;
  box-shadow: none !important;
  overflow: visible !important;
}
#app #config-box[data-config-key="level"] table.level-config-table,
#config-box[data-config-key="level"] table.level-config-table,
#form_level_config table.level-config-table {
  width: 100% !important;
  table-layout: auto !important;
  margin-bottom: 0 !important;
  font-size: 1rem !important;
}
#app #config-box[data-config-key="level"] table.level-config-table th,
#app #config-box[data-config-key="level"] table.level-config-table td,
#config-box[data-config-key="level"] .level-config-table th,
#config-box[data-config-key="level"] .level-config-table td {
  vertical-align: middle !important;
  white-space: nowrap !important;
  min-width: 0 !important;
  max-width: none !important;
  width: auto !important;
  position: static !important;
  float: none !important;
  display: table-cell !important;
}
#config-box[data-config-key="level"] .level-config-table thead th {
  text-align: center !important;
  font-weight: 700 !important;
}
#config-box[data-config-key="level"] .level-config-table .input-group {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: 100%;
  max-width: 16rem;
  margin: 0 auto;
}
#config-box[data-config-key="level"] .level-config-table .input-group .form-control {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  text-align: end !important;
}
#config-box[data-config-key="level"] .level-config-table .input-group-text {
  flex: 0 0 auto !important;
  background: #e9ecef !important;
  white-space: nowrap !important;
}
#config-box[data-config-key="level"] .level-name-input,
#config-box[data-config-key="level"] input[data-path*=".name"] {
  max-width: 6rem !important;
  margin: 0 auto !important;
  text-align: center !important;
  background: #e9ecef !important;
  font-weight: 600 !important;
}
#config-box[data-config-key="level"] input:disabled,
#config-box[data-config-key="level"] input[readonly] {
  background: #e9ecef !important;
  opacity: 1 !important;
}
#config-box[data-config-key="level"] .checkbox.icheck-primary {
  display: inline-block !important;
  min-height: 22px;
  margin: 0.25rem auto !important;
  padding-left: 0 !important;
  text-align: left;
}
#config-box[data-config-key="level"] .checkbox.icheck-primary > label {
  padding-left: 29px !important;
  min-height: 22px;
  margin: 0 !important;
  font-weight: 400 !important;
  color: #6c757d !important;
  cursor: pointer;
}
#config-box[data-config-key="level"] tfoot td {
  background: #fff !important;
  text-align: center !important;
}
#config-box[data-config-key="level"] .ph_gray::placeholder {
  color: #adb5bd;
}

/* ===== 베팅 설정 레벨 탭 (원본 trading_config) ===== */
.trading-config-page .alert-primary {
  background: #cfe2ff;
  border-color: #b6d4fe;
  color: #084298;
  font-size: 0.95rem;
  line-height: 1.55;
  margin-bottom: 0.75rem;
}
.trading-config-page ul.nav-tabs.trading-level-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid #dee2e6 !important;
  background: transparent !important;
  list-style: none !important;
}
.trading-config-page .trading-level-tabs .nav-link {
  display: block !important;
  color: #0d6efd !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.5rem 1rem !important;
  border: 1px solid transparent !important;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  background: transparent !important;
  text-decoration: none !important;
  cursor: pointer !important;
  margin-bottom: -1px !important;
  white-space: nowrap;
}
.trading-config-page .trading-level-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6 !important;
  color: #0a58ca !important;
}
.trading-config-page .trading-level-tabs .nav-link.active {
  color: #495057 !important;
  font-weight: 400 !important;
  background: #fff !important;
  border-color: #dee2e6 #dee2e6 #fff !important;
}
.trading-config-page .card.border-top-0 {
  border-top: 0 !important;
  border-radius: 0 0 0.25rem 0.25rem !important;
}

/* ===== 고액 알림 설정 (원본 bet_alarm_config) ===== */
.bet-alarm-config-page .alert-primary {
  background: #cfe2ff;
  border-color: #b6d4fe;
  color: #084298;
  font-size: 0.95rem;
  line-height: 1.55;
  margin-bottom: 1rem;
}
.bet-alarm-config-page .bet-alarm-table {
  margin-bottom: 0;
  font-size: 1rem;
}
.bet-alarm-config-page .bet-alarm-table thead th {
  white-space: nowrap;
  vertical-align: middle;
  font-weight: 700;
}
.bet-alarm-config-page .bet-alarm-table tbody td {
  vertical-align: middle;
}
.bet-alarm-config-page .bet-alarm-table .form-control {
  font-size: 1rem;
  font-weight: 700;
  text-align: end;
}
.bet-alarm-config-page .form-switch .form-check-input {
  width: 2.5rem;
  height: 1.35rem;
  cursor: pointer;
  margin-left: 0;
}
.bet-alarm-config-page .form-switch {
  padding-left: 2.5rem;
  min-height: 1.5rem;
}
.bet-alarm-config-page .form-switch.ms-5 {
  margin-left: 0 !important;
}
.bet-alarm-config-page .ba-toggle {
  text-decoration: none !important;
  color: #212529 !important;
  font-weight: 800;
  min-width: 1.2rem;
}
.bet-alarm-config-page .ba-group-name {
  font-weight: 700;
  user-select: none;
}
.bet-alarm-config-page .ba-group-name:hover {
  color: #0d6efd;
}
.bet-alarm-config-page tr.bet-alarm-kind-row td {
  background: #f8f9fa;
  font-size: 0.88rem !important;
}
.bet-alarm-config-page tr.bet-alarm-kind-row code {
  font-size: 0.75rem;
  color: #6c757d;
}
.bet-alarm-config-page tr.bet-alarm-group-row.has-kinds {
  background: #fff;
}
.bet-alarm-config-page .font_10b {
  font-size: 1rem !important;
  font-weight: 700 !important;
}
.bet-alarm-config-page tfoot td {
  background: #fff;
}

/* ===== 이벤트 참여 리스트 (원본 event_action_list) ===== */
.event-action-list-page .alert-primary {
  background: #cfe2ff;
  border-color: #b6d4fe;
  color: #084298;
  margin-bottom: 0.75rem;
  font-size: 0.95rem;
}
.event-action-list-page .ea-search-combo {
  min-width: 14rem;
  overflow: hidden;
}
.event-action-list-page .ea-search-combo .form-select {
  max-width: 6.5rem;
  background-color: transparent;
  box-shadow: none !important;
}
.event-action-list-page .ea-search-combo .form-control {
  box-shadow: none !important;
}
.event-action-list-page .card-body,
.event-action-list-page .table-responsive {
  overflow-x: auto !important;
  max-width: 100%;
}
#app .event-action-list-page #table_result,
.event-action-list-page #table_result,
.event-action-list-page table.event-action-list-table {
  width: 1130px !important;
  min-width: 1130px !important;
  max-width: none !important;
  table-layout: fixed !important;
  white-space: nowrap !important;
  border-collapse: collapse !important;
  font-size: 0.95rem !important;
}
.event-action-list-page #table_result thead th,
.event-action-list-page #table_result tbody td {
  white-space: nowrap !important;
  vertical-align: middle !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  box-sizing: border-box !important;
  padding: 0.4rem 0.35rem !important;
}
/* 전역 w100px max-width / td-tight 1% 무력화 */
#app .event-action-list-page #table_result .w70px,
.event-action-list-page #table_result .w70px { width: 70px !important; min-width: 70px !important; max-width: 80px !important; }
#app .event-action-list-page #table_result .w100px,
.event-action-list-page #table_result .w100px { width: 100px !important; min-width: 100px !important; max-width: 110px !important; }
#app .event-action-list-page #table_result .w110px,
.event-action-list-page #table_result .w110px { width: 110px !important; min-width: 110px !important; max-width: 120px !important; }
#app .event-action-list-page #table_result .w140px,
.event-action-list-page #table_result .w140px { width: 140px !important; min-width: 140px !important; max-width: 150px !important; }
#app .event-action-list-page #table_result .min_w_160px,
.event-action-list-page #table_result .min_w_160px { width: 160px !important; min-width: 160px !important; max-width: none !important; }
#app .event-action-list-page #table_result .min_w_200px,
.event-action-list-page #table_result .min_w_200px { width: 280px !important; min-width: 200px !important; max-width: none !important; }
.event-action-list-page #table_result td.td-tight,
.event-action-list-page #table_result th.td-tight,
.event-action-list-page #table_result td.text-end {
  width: auto !important;
  max-width: none !important;
}
.event-action-list-page #table_result .table-primary td {
  background: #cfe2ff !important;
  font-weight: 600;
}
.event-action-list-page #table_result tbody tr.table-primary td {
  white-space: nowrap !important;
}
.event-action-list-page .input-group .form-control {
  min-width: 8.5rem;
}
.event-action-list-page #table_result .btn-sm {
  font-size: 0.85rem !important;
  padding: 0.2rem 0.45rem !important;
  white-space: nowrap !important;
}

/* ===== 이벤트 관리 (원본 event_config_list) ===== */
.event-config-list-page .alert-primary {
  background: #cfe2ff;
  border-color: #b6d4fe;
  color: #084298;
  margin-bottom: 0.75rem;
}
.event-config-list-page ul.nav-tabs.event-kind-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid #dee2e6 !important;
  background: transparent !important;
  list-style: none !important;
}
.event-config-list-page .event-kind-tabs .nav-link {
  display: block !important;
  color: #0d6efd !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.5rem 1rem !important;
  border: 1px solid transparent !important;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  background: transparent !important;
  text-decoration: none !important;
  cursor: pointer !important;
  margin-bottom: -1px !important;
}
.event-config-list-page .event-kind-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6 !important;
  color: #0a58ca !important;
}
.event-config-list-page .event-kind-tabs .nav-link.active {
  color: #495057 !important;
  background: #fff !important;
  border-color: #dee2e6 #dee2e6 #fff !important;
}
.event-config-list-page .card.border-top-0 {
  border-top: 0 !important;
  border-radius: 0 0 0.25rem 0.25rem !important;
}
.event-config-list-page #table_result thead th {
  white-space: nowrap;
  vertical-align: middle;
}
.event-config-list-page .input-group .form-control {
  min-width: 8.5rem;
}
.event-config-list-page .btn-warning {
  color: #000;
  font-weight: 600;
}

/* ===== 충전 이벤트 (원본 deposit_event) ===== */
.deposit-event-page,
#config-box .deposit-event-page {
  display: block !important;
  visibility: visible !important;
}
.deposit-event-page .alert-primary {
  background: #cfe2ff;
  border-color: #b6d4fe;
  color: #084298;
  font-size: 0.95rem;
  line-height: 1.55;
  margin-bottom: 0.75rem;
}

/*
 * 회원레벨1~10 탭 — 원본 Bootstrap .nav-tabs 그대로
 * (스크린샷: 비활성=파란 링크, 활성=회색 글자 + 흰 탭 + 하단 카드 연결)
 */
#app .deposit-event-page ul.nav.nav-tabs,
#app .deposit-event-page ul.nav-tabs.dep-event-level-tabs,
.deposit-event-page ul.nav.nav-tabs,
.deposit-event-page ul.nav-tabs.dep-event-level-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  border-bottom: 1px solid #dee2e6 !important;
  background: transparent !important;
  background-color: transparent !important;
}
#app .deposit-event-page .nav-tabs > .nav-item,
.deposit-event-page .nav-tabs > .nav-item {
  display: list-item !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* 비활성: 파란 텍스트, 배경·테두리 없음 */
#app .deposit-event-page .nav-tabs .nav-link,
#app .deposit-event-page .nav-tabs .nav-link.tab_user_level,
.deposit-event-page .nav-tabs .nav-link,
.deposit-event-page .nav-tabs .nav-link.tab_user_level {
  display: block !important;
  color: #0d6efd !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  padding: 0.5rem 1rem !important;
  border: 1px solid transparent !important;
  border-top-left-radius: 0.25rem !important;
  border-top-right-radius: 0.25rem !important;
  background: none !important;
  background-color: transparent !important;
  text-decoration: none !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  margin-bottom: -1px !important;
  box-shadow: none !important;
}
#app .deposit-event-page .nav-tabs .nav-link:hover,
#app .deposit-event-page .nav-tabs .nav-link:focus,
.deposit-event-page .nav-tabs .nav-link:hover,
.deposit-event-page .nav-tabs .nav-link:focus {
  border-color: #e9ecef #e9ecef #dee2e6 !important;
  color: #0a58ca !important;
  isolation: isolate;
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
}
/* 활성: #495057 + 흰 배경 + 좌/우/상 테두리, 하단은 카드와 연결 */
#app .deposit-event-page .nav-tabs .nav-link.active,
#app .deposit-event-page .nav-tabs .nav-link.tab_user_level.active,
#app .deposit-event-page .nav-tabs .nav-item.show .nav-link,
.deposit-event-page .nav-tabs .nav-link.active,
.deposit-event-page .nav-tabs .nav-link.tab_user_level.active {
  color: #495057 !important;
  font-weight: 400 !important;
  background: #fff !important;
  background-color: #fff !important;
  border-color: #dee2e6 #dee2e6 #fff !important;
  box-shadow: none !important;
  position: relative;
  z-index: 2;
}
/* 카드: 탭 바로 아래 border-top 제거로 활성 탭과 이어짐 */
#app .deposit-event-page .card.border-top-0,
#app .deposit-event-page .dep-event-panel,
.deposit-event-page .card.border-top-0,
.deposit-event-page .dep-event-panel {
  border: 1px solid #dee2e6 !important;
  border-top: 0 !important;
  border-radius: 0 0 0.25rem 0.25rem !important;
  box-shadow: none !important;
  background: #fff !important;
}

/*
 * 전체게임/카지노/슬롯 라디오
 * — vendor icheck-bootstrap 그대로 사용 (커스텀 left/padding 겹침 금지)
 * — .row 음수 마진·col 패딩만 보정
 */
.deposit-event-page .radio_game_category {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.25rem 0.5rem;
  min-height: 2.5rem;
  visibility: visible !important;
  overflow: visible !important;
  padding-left: 0.25rem;
}
.deposit-event-page .radio_game_category .dep-event-cat-wrap {
  flex: 0 0 auto;
  margin-right: 0.75rem !important;
}
.deposit-event-page .radio_game_category .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  display: block;
  width: auto;
}
.deposit-event-page .radio_game_category .col,
.deposit-event-page .radio_game_category .col.radio {
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: auto !important;
  max-width: none !important;
  flex: none !important;
}
/* vendor icheck 유지 + 텍스트 안 겹치게 최소 폭·nowrap */
.deposit-event-page .radio_game_category .radio.icheck-danger {
  display: inline-block !important;
  position: relative !important;
  overflow: visible !important;
  min-height: 22px !important;
  min-width: 6.5rem;
  margin-top: 0.35rem !important;
  margin-bottom: 0.35rem !important;
  margin-right: 0.5rem !important;
  padding-left: 0 !important;
}
.deposit-event-page .radio_game_category .radio.icheck-danger > input[type="radio"] {
  /* vendor: opacity 0 + absolute — 위치만 보정, 커스텀 원 그리지 않음 */
  position: absolute !important;
  opacity: 0 !important;
  margin: 0 !important;
  z-index: 2;
  cursor: pointer;
}
.deposit-event-page .radio_game_category .radio.icheck-danger > label {
  display: inline-block !important;
  position: relative !important;
  /* vendor icheck: padding-left 29px + :before margin-left -29px */
  padding-left: 29px !important;
  margin: 0 !important;
  min-height: 22px !important;
  line-height: 22px !important;
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  color: #212529 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  vertical-align: top;
  overflow: visible !important;
}
/* 선택 항목 텍스트 강조 (레벨 구분과 동일하게 현재 카테고리 인지) */
.deposit-event-page .radio_game_category .radio.icheck-danger > input:checked + label {
  font-weight: 700 !important;
  color: #c9302c !important;
}

/* 테이블 내 icheck 체크박스 — vendor 기본(29px) 유지, 셀 중앙만 */
.deposit-event-page .deposit-event-table td .checkbox.icheck-danger {
  display: inline-block !important;
  min-height: 22px;
  width: 22px;
  margin: 0.35rem auto !important;
  padding-left: 0 !important;
  position: relative;
  overflow: visible;
  vertical-align: middle;
}
.deposit-event-page .deposit-event-table td .checkbox.icheck-danger > label {
  /* vendor: padding-left 29px + before margin-left -29px — 빈 라벨이므로 박스만 보이면 됨 */
  padding-left: 29px !important;
  min-height: 22px;
  margin: 0 !important;
  display: inline-block;
  width: 0;
  overflow: visible;
}

.deposit-event-page .card.border-top-0,
.deposit-event-page .card.rounded-top-0,
.deposit-event-page .dep-event-panel {
  border-top: 0 !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
  overflow: visible !important;
}
.deposit-event-page .dep-event-panel > .card-body {
  overflow: visible !important;
}
.deposit-event-page .deposit-event-table {
  margin-bottom: 0;
  font-size: 0.95rem;
  table-layout: auto;
  width: 100%;
}
.deposit-event-page .deposit-event-table thead th {
  white-space: nowrap;
  vertical-align: middle;
}
/* 보너스%/롤링% — 글로벌 .w100px max-width:100px 때문에 input+% 세로 쌓임 방지 */
#app .deposit-event-page .deposit-event-table th.w100px,
#app .deposit-event-page .deposit-event-table td.w100px,
.deposit-event-page .deposit-event-table th.w100px,
.deposit-event-page .deposit-event-table td.w100px,
.deposit-event-page .deposit-event-table th:nth-child(4),
.deposit-event-page .deposit-event-table td:nth-child(4),
.deposit-event-page .deposit-event-table th:nth-child(6),
.deposit-event-page .deposit-event-table td:nth-child(6) {
  width: 110px !important;
  min-width: 110px !important;
  max-width: none !important;
  white-space: nowrap;
  vertical-align: middle !important;
}
/* 최대 지급액 — 원 단위 붙이도록 여유 */
#app .deposit-event-page .deposit-event-table th.w120px,
#app .deposit-event-page .deposit-event-table td.w120px,
.deposit-event-page .deposit-event-table th.w120px,
.deposit-event-page .deposit-event-table td.w120px,
.deposit-event-page .deposit-event-table th:nth-child(5),
.deposit-event-page .deposit-event-table td:nth-child(5) {
  width: 140px !important;
  min-width: 140px !important;
  max-width: none !important;
  white-space: nowrap;
  vertical-align: middle !important;
}
/* BS5 input-group 기본 flex-wrap:wrap → 좁은 칸에서 %/원이 아래로 떨어짐 */
.deposit-event-page .deposit-event-table .input-group {
  display: flex !important;
  flex-wrap: nowrap !important;
  flex-direction: row !important;
  align-items: stretch !important;
  width: 100%;
  min-width: 0;
  flex-flow: row nowrap !important;
}
.deposit-event-page .deposit-event-table .input-group > .form-control {
  flex: 1 1 auto !important;
  width: 1% !important; /* BS input-group 패턴: 옆 텍스트와 한 줄 */
  min-width: 0 !important;
  max-width: none !important;
  font-size: 0.9rem;
  padding: 0.35rem 0.45rem;
}
.deposit-event-page .deposit-event-table .input-group-text {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  width: auto;
  white-space: nowrap !important;
  background: #e9ecef;
  padding: 0.35rem 0.5rem;
  font-size: 0.9rem;
}
.deposit-event-page .deposit-event-table .form-control {
  font-size: 0.9rem;
}
.deposit-event-page .deposit-event-table tfoot td {
  background: #fff;
}

/* 선택 체크박스 가시성 */
.withdraw-list-page #table_result th[data-col="select"],
.withdraw-list-page #table_result td[data-col="select"] {
  width: 2.2rem !important;
  min-width: 2.2rem !important;
  text-align: center;
  vertical-align: middle;
}
.withdraw-list-page #table_result .wit-row-check,
.withdraw-list-page #wf-select-all {
  width: 1.15rem;
  height: 1.15rem;
  margin: 0;
  cursor: pointer;
  accent-color: #0d6efd;
}
.withdraw-list-page #table_result .wit-row-check:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
/* 원본 환전 리스트 행 밀도 */
.withdraw-list-page #table_result tbody td {
  vertical-align: middle;
  padding: 0.35rem 0.4rem;
  font-size: 0.92rem;
}
.withdraw-list-page #table_result tbody tr.table-success {
  --bs-table-bg: #d1e7dd;
  --bs-table-accent-bg: #d1e7dd;
}
.withdraw-list-page #table_result tbody tr.table-secondary {
  --bs-table-bg: #e2e3e5;
}
.withdraw-list-page #table_result tbody tr.table-warning {
  --bs-table-bg: #fff3cd;
}
.withdraw-list-page #table_result tbody tr.table-info {
  --bs-table-bg: #cff4fc;
}
.withdraw-list-page #table_result tbody tr.table-primary td {
  background: #cfe2ff !important;
  font-weight: 500;
}
.withdraw-list-page #table_result .text-danger {
  color: #dc3545 !important;
}
.withdraw-list-page .transfer-memo-group {
  flex-wrap: nowrap;
  min-width: 140px;
}
.withdraw-list-page .transfer-memo-group .input_memo {
  background: #e9ecef;
  min-width: 0;
}
.withdraw-list-page .transfer-memo-group .input_memo:not(:disabled) {
  background: #fff;
}
.withdraw-list-page .transfer-memo-group .btn_memo {
  white-space: nowrap;
  flex-shrink: 0;
}
.withdraw-list-page #table_result .btn-sm.p-1 {
  font-size: 0.85rem;
  line-height: 1.1;
}
.withdraw-list-page .withdraw-bulk-actions {
  margin-top: 0.15rem;
}
/*
 * 충전/환전 표 — 항목설정 안전 레이아웃
 * - table-layout:fixed + colgroup 폭
 * - 총폭은 JS(applyMenuColumnVisibility)가 보이는 열 합으로 설정 (.menu-cols-managed)
 * - 1520 고정 금지: 열 숨기면 남은 칸이 늘어 깨짐
 */
#app .deposit-list-page #table_result,
#app .deposit-list-page table.deposit-list-table,
#app .page-content .deposit-list-page table.table,
.deposit-list-page #table_result,
.deposit-list-page table.deposit-list-table,
#app .withdraw-list-page #table_result,
#app .withdraw-list-page table.withdraw-list-table,
#app .page-content .withdraw-list-page table.table,
.withdraw-list-page #table_result,
.withdraw-list-page table.withdraw-list-table {
  table-layout: fixed !important;
  max-width: none !important;
  font-size: 1rem !important;
  margin-bottom: 0 !important;
  white-space: nowrap;
  border-collapse: collapse !important;
  /* 초기(JS 전) 폴백 — managed 되면 JS width 가 덮음 */
  width: max-content;
  min-width: 100%;
}
/* JS 관리 중: 인라인 width 가 진실 (보이는 열 합) */
#app .deposit-list-page #table_result.menu-cols-managed,
#app .deposit-list-page table.deposit-list-table.menu-cols-managed,
#app .withdraw-list-page #table_result.menu-cols-managed,
#app .withdraw-list-page table.withdraw-list-table.menu-cols-managed,
#app table.menu-cols-managed,
table.menu-cols-managed {
  table-layout: fixed !important;
  max-width: none !important;
}
/* 숨긴 열 — 폭 0 (data-col 고정폭 !important 보다 높은 특이도) */
#app .deposit-list-page #table_result.menu-cols-managed col.d-none,
#app .deposit-list-page #table_result.menu-cols-managed col[data-col-hidden="1"],
#app .withdraw-list-page #table_result.menu-cols-managed col.d-none,
#app .withdraw-list-page #table_result.menu-cols-managed col[data-col-hidden="1"],
#app table.menu-cols-managed col.d-none,
#app table.menu-cols-managed col[data-col-hidden="1"],
#app table.menu-cols-filtered col.d-none,
#app table.menu-cols-filtered col[data-col-hidden="1"] {
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  display: none !important;
  visibility: collapse !important;
  border: none !important;
  padding: 0 !important;
}
#app .deposit-list-page #table_result.menu-cols-managed th.d-none,
#app .deposit-list-page #table_result.menu-cols-managed td.d-none,
#app .deposit-list-page #table_result.menu-cols-managed [data-col][data-col-hidden="1"],
#app .deposit-list-page #table_result.menu-cols-managed th[data-col-hidden="1"],
#app .deposit-list-page #table_result.menu-cols-managed td[data-col-hidden="1"],
#app .withdraw-list-page #table_result.menu-cols-managed th.d-none,
#app .withdraw-list-page #table_result.menu-cols-managed td.d-none,
#app .withdraw-list-page #table_result.menu-cols-managed [data-col][data-col-hidden="1"],
#app .withdraw-list-page #table_result.menu-cols-managed th[data-col-hidden="1"],
#app .withdraw-list-page #table_result.menu-cols-managed td[data-col-hidden="1"],
#app table.menu-cols-managed th.d-none,
#app table.menu-cols-managed td.d-none,
#app table.menu-cols-managed [data-col][data-col-hidden="1"],
#app table.menu-cols-filtered th.d-none,
#app table.menu-cols-filtered td.d-none,
#app table.menu-cols-filtered [data-col][data-col-hidden="1"] {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-width: 0 !important;
  overflow: hidden !important;
  font-size: 0 !important;
  line-height: 0 !important;
  visibility: collapse !important;
}
/* 보이는 셀: colgroup 폭 따르고 max-width 강제 해제 */
#app .deposit-list-page #table_result.menu-cols-managed [data-col]:not([data-col-hidden="1"]):not(.d-none),
#app .withdraw-list-page #table_result.menu-cols-managed [data-col]:not([data-col-hidden="1"]):not(.d-none) {
  max-width: none !important;
}
/* 전역 tight/long/text-end 1% 폭 킬 — 충전·환전만 */
#app .deposit-list-page #table_result td.td-tight,
#app .deposit-list-page #table_result th.td-tight,
#app .deposit-list-page #table_result td.text-end,
#app .deposit-list-page #table_result th.text-end,
#app .deposit-list-page #table_result td.td-long,
#app .deposit-list-page #table_result td.td-extra,
#app .withdraw-list-page #table_result td.td-tight,
#app .withdraw-list-page #table_result th.td-tight,
#app .withdraw-list-page #table_result td.text-end,
#app .withdraw-list-page #table_result th.text-end,
#app .withdraw-list-page #table_result td.td-long,
#app .withdraw-list-page #table_result td.td-extra,
.deposit-list-page #table_result td.td-tight,
.deposit-list-page #table_result th.td-tight,
.deposit-list-page #table_result td.text-end,
.deposit-list-page #table_result td.td-long,
.withdraw-list-page #table_result td.td-tight,
.withdraw-list-page #table_result th.td-tight,
.withdraw-list-page #table_result td.text-end,
.withdraw-list-page #table_result td.td-long {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}
#app .deposit-list-page #table_result th,
#app .deposit-list-page #table_result td,
#app .deposit-list-page table.deposit-list-table th,
#app .deposit-list-page table.deposit-list-table td,
#app .withdraw-list-page #table_result th,
#app .withdraw-list-page #table_result td,
#app .withdraw-list-page table.withdraw-list-table th,
#app .withdraw-list-page table.withdraw-list-table td {
  vertical-align: middle !important;
  white-space: nowrap !important;
  padding: 0.35rem 0.4rem !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  overflow: hidden !important; /* 옆 칸 침범 금지 */
  text-overflow: clip !important;
  box-sizing: border-box !important;
  max-width: none !important;
}
#app .deposit-list-page #table_result thead th,
#app .deposit-list-page table.deposit-list-table thead th,
#app .withdraw-list-page #table_result thead th,
#app .withdraw-list-page table.withdraw-list-table thead th,
.deposit-list-page #table_result thead th,
.deposit-list-page table.deposit-list-table thead th,
.withdraw-list-page #table_result thead th,
.withdraw-list-page table.withdraw-list-table thead th {
  font-weight: 700 !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
  padding: 0.4rem 0.35rem !important;
  font-size: 1rem !important;
  text-align: center;
  overflow: visible !important;
  text-overflow: clip !important;
  background-color: #212529 !important;
  color: #fff !important;
}
#app .deposit-list-page #table_result tbody td,
#app .deposit-list-page table.deposit-list-table tbody td,
#app .withdraw-list-page #table_result tbody td,
#app .withdraw-list-page table.withdraw-list-table tbody td {
  vertical-align: middle !important;
  white-space: nowrap !important;
  padding: 0.35rem 0.4rem !important;
  font-size: 1rem !important;
}
/* 합계 행 */
.deposit-list-page #table_result tbody tr.table-primary td,
.withdraw-list-page #table_result tbody tr.table-primary td {
  white-space: normal;
  text-align: center;
  font-size: 0.95rem;
  padding: 0.45rem 0.5rem !important;
  background-color: #cfe2ff !important;
}
/* 상태·액션 버튼 — 원본 btn-sm p-1 밀도 */
.deposit-list-page #table_result .btn,
.deposit-list-page table.deposit-list-table .btn,
.withdraw-list-page #table_result .btn,
.withdraw-list-page table.withdraw-list-table .btn {
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  padding: 0.2rem 0.4rem !important;
  line-height: 1.25 !important;
  border-radius: 0.2rem;
  margin: 0 1px;
}
.deposit-list-page #table_result .btn-sm.p-1,
.withdraw-list-page #table_result .btn-sm.p-1 {
  padding: 0.15rem 0.4rem !important;
  font-size: 0.8rem !important;
}
/* 아이디/닉네임 링크 */
.deposit-list-page .open_user_info,
.withdraw-list-page .open_user_info {
  font-weight: 700;
  font-size: 0.92rem;
  cursor: pointer;
  color: inherit;
  white-space: nowrap;
}
.deposit-list-page .open_user_info:hover,
.withdraw-list-page .open_user_info:hover {
  color: #0d6efd;
  text-decoration: underline;
}
/* 메모 입력 */
.deposit-list-page .input_memo,
.withdraw-list-page .input_memo {
  min-width: 8rem;
  font-size: 0.85rem !important;
  padding: 0.2rem 0.4rem !important;
}
.deposit-list-page .btn_memo,
.withdraw-list-page .btn_memo {
  font-size: 0.8rem !important;
  padding: 0.2rem 0.45rem !important;
}
/* 행 배경 (원본 table-success / table-secondary / table-warning) */
.deposit-list-page #table_result.table-hover > tbody > tr:hover > *,
.withdraw-list-page #table_result.table-hover > tbody > tr:hover > * {
  background-color: #e8f0f5 !important;
}
.deposit-list-page #table_result tbody tr.table-success > *,
.withdraw-list-page #table_result tbody tr.table-success > * {
  background-color: #d1e7dd !important;
}
.deposit-list-page #table_result tbody tr.table-secondary > *,
.withdraw-list-page #table_result tbody tr.table-secondary > * {
  background-color: #e2e3e5 !important;
}
.deposit-list-page #table_result tbody tr.table-warning > *,
.withdraw-list-page #table_result tbody tr.table-warning > * {
  background-color: #fff3cd !important;
}
.deposit-list-page #table_result tbody tr.table-primary > *,
.withdraw-list-page #table_result tbody tr.table-primary > * {
  background-color: #cfe2ff !important;
}
/*
 * 폭 유틸 — 원본 vendor 와 동일: width:Npx (max로 조이지 않음)
 * 전역 #app .w100px{max-width:100px} 를 이 페이지에서 반드시 덮어씀
 */
#app .deposit-list-page .w30px,
#app .withdraw-list-page .w30px,
.deposit-list-page .w30px,
.withdraw-list-page .w30px { width: 30px !important; min-width: 30px !important; max-width: 30px !important; }
#app .deposit-list-page .w40px,
#app .withdraw-list-page .w40px,
.deposit-list-page .w40px,
.withdraw-list-page .w40px { width: 40px !important; min-width: 40px !important; max-width: 48px !important; }
#app .deposit-list-page .w50px,
#app .withdraw-list-page .w50px,
.deposit-list-page .w50px,
.withdraw-list-page .w50px { width: 50px !important; min-width: 50px !important; max-width: 56px !important; }
#app .deposit-list-page .w60px,
#app .withdraw-list-page .w60px,
.deposit-list-page .w60px,
.withdraw-list-page .w60px { width: 60px !important; min-width: 60px !important; max-width: 70px !important; }
#app .deposit-list-page .w70px,
#app .withdraw-list-page .w70px,
.deposit-list-page .w70px,
.withdraw-list-page .w70px { width: 70px !important; min-width: 70px !important; max-width: 80px !important; }
#app .deposit-list-page .w80px,
#app .withdraw-list-page .w80px,
.deposit-list-page .w80px,
.withdraw-list-page .w80px { width: 80px !important; min-width: 80px !important; max-width: 90px !important; }
#app .deposit-list-page .w90px,
#app .withdraw-list-page .w90px,
.deposit-list-page .w90px,
.withdraw-list-page .w90px { width: 90px !important; min-width: 90px !important; max-width: 100px !important; }
#app .deposit-list-page .w100px,
#app .withdraw-list-page .w100px,
.deposit-list-page .w100px,
.withdraw-list-page .w100px { width: 100px !important; min-width: 100px !important; max-width: 110px !important; }
#app .deposit-list-page .w120px,
#app .withdraw-list-page .w120px,
.deposit-list-page .w120px,
.withdraw-list-page .w120px { width: 120px !important; min-width: 120px !important; max-width: 130px !important; }
#app .deposit-list-page .w200px,
#app .withdraw-list-page .w200px,
.deposit-list-page .w200px,
.withdraw-list-page .w200px { width: 200px !important; min-width: 180px !important; max-width: 220px !important; }
#app .deposit-list-page .w230px,
#app .withdraw-list-page .w230px,
.deposit-list-page .w230px,
.withdraw-list-page .w230px { width: 230px !important; min-width: 200px !important; max-width: 240px !important; }
#app .deposit-list-page .min_w_40px,
#app .withdraw-list-page .min_w_40px,
.deposit-list-page .min_w_40px,
.withdraw-list-page .min_w_40px { min-width: 40px !important; width: 50px !important; max-width: none !important; }
#app .deposit-list-page .min_w_60px,
#app .withdraw-list-page .min_w_60px,
.deposit-list-page .min_w_60px,
.withdraw-list-page .min_w_60px { min-width: 60px !important; width: 80px !important; max-width: none !important; }
#app .deposit-list-page .min_w_80px,
#app .withdraw-list-page .min_w_80px,
.deposit-list-page .min_w_80px,
.withdraw-list-page .min_w_80px { min-width: 80px !important; width: 90px !important; max-width: none !important; }
#app .deposit-list-page .min_w_90px,
#app .withdraw-list-page .min_w_90px,
.deposit-list-page .min_w_90px,
.withdraw-list-page .min_w_90px { min-width: 90px !important; width: 100px !important; max-width: none !important; }
#app .deposit-list-page .min_w_100px,
#app .withdraw-list-page .min_w_100px,
.deposit-list-page .min_w_100px,
.withdraw-list-page .min_w_100px { min-width: 100px !important; width: 110px !important; max-width: none !important; }
#app .deposit-list-page .min_w_120px,
#app .withdraw-list-page .min_w_120px,
.deposit-list-page .min_w_120px,
.withdraw-list-page .min_w_120px { min-width: 120px !important; width: 120px !important; max-width: none !important; }
#app .deposit-list-page .min_w_180px,
#app .withdraw-list-page .min_w_180px,
.deposit-list-page .min_w_180px,
.withdraw-list-page .min_w_180px { min-width: 180px !important; width: 180px !important; max-width: none !important; }

/* data-col 고정 폭 — colgroup 과 동일 (항목설정 토글 후에도 키로 유지) */
#app .deposit-list-page #table_result [data-col="request_at"],
#app .withdraw-list-page #table_result [data-col="request_at"],
.deposit-list-page #table_result [data-col="request_at"],
.withdraw-list-page #table_result [data-col="request_at"] {
  width: 100px !important; min-width: 100px !important; max-width: 110px !important;
}
#app .deposit-list-page #table_result [data-col="result_at"],
#app .withdraw-list-page #table_result [data-col="result_at"],
.deposit-list-page #table_result [data-col="result_at"],
.withdraw-list-page #table_result [data-col="result_at"] {
  width: 70px !important; min-width: 70px !important; max-width: 80px !important;
}
#app .deposit-list-page #table_result [data-col="state"],
.deposit-list-page #table_result [data-col="state"] {
  width: 50px !important; min-width: 50px !important; max-width: 56px !important;
}
#app .withdraw-list-page #table_result [data-col="state"],
.withdraw-list-page #table_result [data-col="state"] {
  width: 50px !important; min-width: 40px !important; max-width: 56px !important;
}
#app .deposit-list-page #table_result [data-col="grade"],
#app .withdraw-list-page #table_result [data-col="grade"],
.deposit-list-page #table_result [data-col="grade"],
.withdraw-list-page #table_result [data-col="grade"] {
  width: 60px !important; min-width: 60px !important; max-width: 70px !important;
}
#app .deposit-list-page #table_result [data-col="id_nick"],
#app .withdraw-list-page #table_result [data-col="id_nick"],
.deposit-list-page #table_result [data-col="id_nick"],
.withdraw-list-page #table_result [data-col="id_nick"] {
  width: 180px !important; min-width: 180px !important; max-width: none !important;
}
#app .deposit-list-page #table_result [data-col="user_lv"],
#app .withdraw-list-page #table_result [data-col="user_lv"],
.deposit-list-page #table_result [data-col="user_lv"],
.withdraw-list-page #table_result [data-col="user_lv"] {
  width: 48px !important; min-width: 40px !important; max-width: 56px !important;
}
#app .deposit-list-page #table_result [data-col="kind"],
.deposit-list-page #table_result [data-col="kind"] {
  width: 80px !important; min-width: 70px !important; max-width: 90px !important;
}
#app .withdraw-list-page #table_result [data-col="kind"],
.withdraw-list-page #table_result [data-col="kind"] {
  width: 50px !important; min-width: 50px !important; max-width: 60px !important;
}
#app .deposit-list-page #table_result [data-col="bank"],
.deposit-list-page #table_result [data-col="bank"] {
  width: 90px !important; min-width: 80px !important; max-width: 100px !important;
}
#app .withdraw-list-page #table_result [data-col="bank"],
.withdraw-list-page #table_result [data-col="bank"] {
  width: 80px !important; min-width: 80px !important; max-width: 100px !important;
}
#app .deposit-list-page #table_result [data-col="applicant"],
.deposit-list-page #table_result [data-col="applicant"] {
  width: 80px !important; min-width: 80px !important; max-width: 100px !important;
}
#app .deposit-list-page #table_result [data-col="amount"],
.deposit-list-page #table_result [data-col="amount"] {
  width: 90px !important; min-width: 90px !important; max-width: 110px !important;
}
#app .withdraw-list-page #table_result [data-col="amount"],
.withdraw-list-page #table_result [data-col="amount"] {
  width: 90px !important; min-width: 70px !important; max-width: 110px !important;
}
#app .withdraw-list-page #table_result [data-col="rolling"],
.withdraw-list-page #table_result [data-col="rolling"] {
  width: 60px !important; min-width: 50px !important; max-width: 70px !important;
}
#app .withdraw-list-page #table_result [data-col="account"],
.withdraw-list-page #table_result [data-col="account"] {
  width: 120px !important; min-width: 100px !important; max-width: 140px !important;
}
#app .withdraw-list-page #table_result [data-col="holder"],
.withdraw-list-page #table_result [data-col="holder"] {
  width: 70px !important; min-width: 60px !important; max-width: 90px !important;
}
#app .deposit-list-page #table_result [data-col="game_kind"],
.deposit-list-page #table_result [data-col="game_kind"] {
  width: 80px !important; min-width: 80px !important; max-width: 100px !important;
}
#app .deposit-list-page #table_result [data-col="bonus"],
.deposit-list-page #table_result [data-col="bonus"] {
  width: 100px !important; min-width: 90px !important; max-width: 120px !important;
}
#app .deposit-list-page #table_result [data-col="bonus_p"],
.deposit-list-page #table_result [data-col="bonus_p"] {
  width: 90px !important; min-width: 80px !important; max-width: 100px !important;
}
#app .deposit-list-page #table_result [data-col="admin"],
#app .withdraw-list-page #table_result [data-col="admin"],
.deposit-list-page #table_result [data-col="admin"],
.withdraw-list-page #table_result [data-col="admin"] {
  width: 90px !important; min-width: 80px !important; max-width: 100px !important;
}
#app .withdraw-list-page #table_result [data-col="select"],
.withdraw-list-page #table_result [data-col="select"] {
  width: 36px !important; min-width: 30px !important; max-width: 40px !important;
  overflow: visible !important;
}
#app .deposit-list-page #table_result [data-col="action"],
.deposit-list-page #table_result [data-col="action"] {
  width: 120px !important; min-width: 120px !important; max-width: 140px !important;
  overflow: visible !important;
}
#app .withdraw-list-page #table_result [data-col="action"],
.withdraw-list-page #table_result [data-col="action"] {
  width: 110px !important; min-width: 100px !important; max-width: 130px !important;
  overflow: visible !important;
}
#app .deposit-list-page #table_result [data-col="memo"],
#app .withdraw-list-page #table_result [data-col="memo"],
.deposit-list-page #table_result [data-col="memo"],
.withdraw-list-page #table_result [data-col="memo"] {
  width: 200px !important; min-width: 180px !important; max-width: 240px !important;
  white-space: normal !important; overflow: visible !important; text-overflow: clip !important;
}

/* colgroup 보호 — JS normalize 가 width:auto 로 덮지 못하게 */
#app .deposit-list-page #table_result col,
#app .withdraw-list-page #table_result col,
.deposit-list-page #table_result col,
.withdraw-list-page #table_result col {
  min-width: 0;
}

/* 메모 셀 · 처리 버튼 열은 말줄임 해제 */
#app .deposit-list-page #table_result th.w200px,
#app .deposit-list-page #table_result td:has(.input_memo),
#app .withdraw-list-page #table_result th.w230px,
#app .withdraw-list-page #table_result td:has(.input_memo) {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

/* 체크박스 열 */
.withdraw-list-page #table_result .checkbox input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  cursor: pointer;
  accent-color: #dc3545;
}
/* 실시간 배너 축소 */
.deposit-list-page #dep-live-banner {
  font-size: 0.95rem;
  border-radius: 0.25rem;
}

/*
 * =====================================================================
 * GAME CONFIG FORMS — Chrome visual parity (dark thead · section 저장 · density)
 * Keys: odds / trading / operation / level / comp / rolling
 * Refs: orig-live-capture/{02..07}_* + ace/full/126 odds + full/032–039
 * Scope: #config-box[data-config-key=…] ONLY — does not touch env/json_config
 * Does not alter MDConfigUI collect (data-path) semantics
 * =====================================================================
 */

/* 공통: #config-box 전역 11px 압축 해제 (env 제외) */
#config-box[data-config-key="odds"],
#config-box[data-config-key="trading"],
#config-box[data-config-key="operation"],
#config-box[data-config-key="level"],
#config-box[data-config-key="comp"],
#config-box[data-config-key="rolling"] {
  overflow-x: visible !important;
  max-width: 100% !important;
  font-size: 1rem;
  font-weight: 400;
}

#config-box[data-config-key="odds"] table,
#config-box[data-config-key="trading"] table,
#config-box[data-config-key="operation"] table,
#config-box[data-config-key="level"] table,
#config-box[data-config-key="comp"] table,
#config-box[data-config-key="rolling"] table,
#app #config-box[data-config-key="odds"] table.table,
#app #config-box[data-config-key="trading"] table.table,
#app #config-box[data-config-key="operation"] table.table,
#app #config-box[data-config-key="level"] table.table,
#app #config-box[data-config-key="comp"] table.table,
#app #config-box[data-config-key="rolling"] table.table {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: auto !important;
  font-size: 13px !important;
  border-collapse: collapse !important;
  margin-bottom: 0 !important;
  background: #fff;
}

#config-box[data-config-key="odds"] table th,
#config-box[data-config-key="odds"] table td,
#config-box[data-config-key="trading"] table th,
#config-box[data-config-key="trading"] table td,
#config-box[data-config-key="operation"] table th,
#config-box[data-config-key="operation"] table td,
#config-box[data-config-key="level"] table th,
#config-box[data-config-key="level"] table td,
#config-box[data-config-key="comp"] table th,
#config-box[data-config-key="comp"] table td,
#config-box[data-config-key="rolling"] table th,
#config-box[data-config-key="rolling"] table td,
#app #config-box[data-config-key="odds"] table.table th,
#app #config-box[data-config-key="odds"] table.table td,
#app #config-box[data-config-key="trading"] table.table th,
#app #config-box[data-config-key="trading"] table.table td,
#app #config-box[data-config-key="operation"] table.table th,
#app #config-box[data-config-key="operation"] table.table td,
#app #config-box[data-config-key="level"] table.table th,
#app #config-box[data-config-key="level"] table.table td,
#app #config-box[data-config-key="comp"] table.table th,
#app #config-box[data-config-key="comp"] table.table td,
#app #config-box[data-config-key="rolling"] table.table th,
#app #config-box[data-config-key="rolling"] table.table td {
  font-size: 13px !important;
  font-weight: 400 !important;
  padding: 0.45rem 0.5rem !important;
  vertical-align: middle !important;
  line-height: 1.35 !important;
  border-color: #dee2e6 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  max-width: none !important;
}

/* 라벨 셀(힌트 포함)은 줄바꿈 허용 — odds 좌측 설명열 */
#config-box[data-config-key="odds"] table tbody td:first-child {
  white-space: normal !important;
  word-break: keep-all !important;
  line-height: 1.4 !important;
}

/* ── Dark thead (원본 Bootstrap table-dark) ── */
#config-box[data-config-key="odds"] thead.table-dark th,
#config-box[data-config-key="trading"] thead.table-dark th,
#config-box[data-config-key="operation"] thead.table-dark th,
#config-box[data-config-key="level"] thead.table-dark th,
#config-box[data-config-key="comp"] thead.table-dark th,
#app #config-box[data-config-key="odds"] thead.table-dark th,
#app #config-box[data-config-key="trading"] thead.table-dark th,
#app #config-box[data-config-key="operation"] thead.table-dark th,
#app #config-box[data-config-key="level"] thead.table-dark th,
#app #config-box[data-config-key="comp"] thead.table-dark th {
  background-color: #212529 !important;
  color: #fff !important;
  border-color: #32383e !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  white-space: nowrap !important;
  text-align: center;
  vertical-align: middle !important;
  padding: 0.5rem 0.45rem !important;
}

/* Rolling: 원본 컬러 헤더 (table-secondary / info / success) — dark 아님 */
#config-box[data-config-key="rolling"] thead th.table-secondary,
#app #config-box[data-config-key="rolling"] thead th.table-secondary {
  background-color: #e2e3e5 !important;
  color: #212529 !important;
  font-weight: 700 !important;
}
#config-box[data-config-key="rolling"] thead th.table-info,
#app #config-box[data-config-key="rolling"] thead th.table-info {
  background-color: #cff4fc !important;
  color: #055160 !important;
  font-weight: 700 !important;
}
#config-box[data-config-key="rolling"] thead th.table-success,
#app #config-box[data-config-key="rolling"] thead th.table-success {
  background-color: #d1e7dd !important;
  color: #0f5132 !important;
  font-weight: 700 !important;
}

/* ── 섹션 저장 버튼 (tfoot 중앙 primary) ── */
#config-box[data-config-key="odds"] tfoot td,
#config-box[data-config-key="trading"] tfoot td,
#config-box[data-config-key="operation"] tfoot td,
#config-box[data-config-key="level"] tfoot td,
#config-box[data-config-key="comp"] tfoot td,
#config-box[data-config-key="rolling"] tfoot td {
  padding: 1rem 0.5rem !important;
  text-align: center !important;
  background: #fff !important;
  border-color: #dee2e6 !important;
}
#config-box[data-config-key="odds"] tfoot .config-save-btn,
#config-box[data-config-key="trading"] tfoot .config-save-btn,
#config-box[data-config-key="operation"] tfoot .config-save-btn,
#config-box[data-config-key="level"] tfoot .config-save-btn,
#config-box[data-config-key="comp"] tfoot .config-save-btn,
#config-box[data-config-key="rolling"] tfoot .config-save-btn,
#config-box[data-config-key="odds"] .btn-primary.config-save-btn,
#config-box[data-config-key="trading"] .btn-primary.config-save-btn,
#config-box[data-config-key="operation"] .btn-primary.config-save-btn,
#config-box[data-config-key="level"] .btn-primary.config-save-btn,
#config-box[data-config-key="comp"] .btn-primary.config-save-btn,
#config-box[data-config-key="rolling"] .btn-primary.config-save-btn {
  min-width: 4.5rem;
  font-size: 14px !important;
  font-weight: 500 !important;
  padding: 0.35rem 1rem !important;
}

/* ── form controls density ── */
#config-box[data-config-key="odds"] .form-control,
#config-box[data-config-key="trading"] .form-control,
#config-box[data-config-key="operation"] .form-control,
#config-box[data-config-key="level"] .form-control,
#config-box[data-config-key="comp"] .form-control,
#config-box[data-config-key="rolling"] .form-control,
#app #config-box[data-config-key="odds"] .form-control,
#app #config-box[data-config-key="trading"] .form-control,
#app #config-box[data-config-key="operation"] .form-control,
#app #config-box[data-config-key="level"] .form-control,
#app #config-box[data-config-key="comp"] .form-control {
  min-width: 0 !important;
  font-size: 13px !important;
  padding: 0.35rem 0.5rem !important;
  height: auto !important;
  min-height: calc(1.5em + 0.7rem + 2px) !important;
  line-height: 1.4 !important;
  box-sizing: border-box !important;
}
#config-box[data-config-key="odds"] .input-group-text,
#config-box[data-config-key="trading"] .input-group-text,
#config-box[data-config-key="level"] .input-group-text,
#config-box[data-config-key="comp"] .input-group-text,
#config-box[data-config-key="operation"] .input-group-text {
  font-size: 12px !important;
  padding: 0.3rem 0.5rem !important;
  white-space: nowrap;
}

/* 카드 래퍼 */
#config-box .game-config-card {
  border-top-left-radius: 0;
  border-color: #dee2e6;
}
#config-box .game-config-card > .card-body {
  overflow-x: auto !important;
  max-width: 100%;
}
#config-box .game-config-tabs {
  border-bottom: 1px solid #dee2e6;
}
#config-box .game-config-tabs .nav-link {
  font-size: 1rem;
  color: #0d6efd;
  padding: 0.5rem 0.85rem;
}
#config-box .game-config-tabs .nav-link.active {
  color: #212529;
  font-weight: 700;
  background: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}

/* 알림 배너 밀도 */
#config-box[data-config-key="odds"] .alert,
#config-box[data-config-key="trading"] .alert,
#config-box[data-config-key="operation"] .alert,
#config-box[data-config-key="level"] .alert,
#config-box[data-config-key="rolling"] .alert {
  font-size: 13px !important;
  line-height: 1.55 !important;
  padding: 0.75rem 1rem !important;
  margin-bottom: 1rem !important;
}

/* ── Odds: 2-col input groups (원본 form_row col-6) ── */
#config-box[data-config-key="odds"] .odds-config-table .form_row {
  --bs-gutter-x: 0.5rem;
  margin-left: 0;
  margin-right: 0;
}
#config-box[data-config-key="odds"] .odds-config-table .form_row > .col-6 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
#config-box[data-config-key="odds"] .odds-config-table .input-group {
  flex-wrap: nowrap;
  width: 100%;
}
#config-box[data-config-key="odds"] .odds-config-table .input-group-text.w-55 {
  flex: 0 0 55%;
  max-width: 55%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  justify-content: center;
  text-align: center;
}
#config-box[data-config-key="odds"] .odds-config-table .form-control.w-45 {
  flex: 0 0 45%;
  max-width: 45%;
  min-width: 0 !important;
}
#config-box[data-config-key="odds"] .odds-config-table thead th.w-45 {
  width: 45% !important;
}
#config-box[data-config-key="odds"] .odds-config-table thead th.w-55 {
  width: 55% !important;
}
#config-box[data-config-key="odds"] .text_gray {
  color: #bbb !important;
  font-size: 12px !important;
}
#config-box[data-config-key="odds"] .form_config {
  margin-bottom: 0;
}

/* ── Trading ── */
#config-box[data-config-key="trading"] .trading-config-table {
  margin-bottom: 1rem !important;
}
#config-box[data-config-key="trading"] .trading-config-table .input-group {
  max-width: 220px;
  margin: 0 auto;
}
#config-box[data-config-key="trading"] .form_config.mb-5 {
  margin-bottom: 2rem !important;
}
#config-box[data-config-key="trading"] .checkbox.icheck-danger label {
  margin-bottom: 0;
  cursor: pointer;
  font-size: 13px;
}

/* ── Level ── */
#config-box[data-config-key="level"] .level-config-table,
#form_level_config table.level-config-table {
  table-layout: auto;
  width: 100%;
}
#config-box[data-config-key="level"] th.w130px { width: 130px !important; min-width: 110px; }
#config-box[data-config-key="level"] th.w80px { width: 80px !important; min-width: 70px; }
#config-box[data-config-key="level"] th.w100px,
#config-box[data-config-key="level"] th.col-level-name,
#config-box[data-config-key="level"] td.col-level-name {
  width: 100px !important;
  min-width: 100px !important;
  max-width: 160px;
}
#config-box[data-config-key="level"] th.w50px { width: 50px !important; min-width: 50px; }
#config-box[data-config-key="level"] .level-name-input,
#config-box[data-config-key="level"] input[data-path*=".name"] {
  width: 100% !important;
  min-width: 80px !important;
  max-width: 140px !important;
  margin: 0 auto;
  display: block;
  text-align: center;
}
#config-box[data-config-key="level"] .input-group {
  max-width: 260px;
  margin: 0 auto;
}
#config-box[data-config-key="level"] .checkbox.icheck-primary label {
  margin-bottom: 0;
  cursor: pointer;
  font-size: 13px;
}
#config-box[data-config-key="level"] input:disabled,
#config-box[data-config-key="level"] input[readonly] {
  background-color: #e9ecef;
  opacity: 1;
}

/* ── Comp 설정 + 콤프 레벨업 ── */
#config-box[data-config-key="comp"] .comp-config-page .alert-primary,
.comp-config-page .alert-primary {
  font-size: 13px;
  line-height: 1.55;
}
#config-box[data-config-key="comp"] .comp-config-table {
  table-layout: auto !important;
  min-width: 1280px;
  width: max-content;
  max-width: none;
}
#config-box[data-config-key="comp"] .table-responsive {
  overflow-x: auto;
}
#config-box[data-config-key="comp"] .comp-config-table .input-group {
  max-width: 140px;
  margin: 0 auto;
  flex-wrap: nowrap;
}
#config-box[data-config-key="comp"] .comp-config-table .input-group .form-control {
  min-width: 3.2rem;
}
#config-box[data-config-key="comp"] .comp-config-table th.w50px {
  width: 50px !important;
  min-width: 50px;
}
#config-box[data-config-key="comp"] .comp-config-table th.w110px {
  width: 110px !important;
  min-width: 100px;
  padding-left: 0 !important;
  padding-right: 0 !important;
  white-space: nowrap;
}
#config-box[data-config-key="comp"] .comp-config-table td,
#config-box[data-config-key="comp"] .comp-config-table th {
  vertical-align: middle !important;
  white-space: nowrap;
}
#config-box[data-config-key="comp"] .comp-level-config-table,
#config-box[data-config-key="comp"] table.level-config-table {
  table-layout: auto !important;
  width: 100%;
  min-width: 720px;
}
#config-box[data-config-key="comp"] .comp-level-config-table .input-group {
  flex-wrap: nowrap;
}
#config-box[data-config-key="comp"] .comp-level-config-table .input-group .form-control {
  min-width: 6rem;
}
#config-box[data-config-key="comp"] .comp-level-config-table input:disabled,
#config-box[data-config-key="comp"] .comp-level-config-table input[readonly] {
  background-color: #e9ecef;
  opacity: 1;
}
#config-box[data-config-key="comp"] .game-config-tabs .nav-link {
  cursor: pointer;
}
#config-box[data-config-key="comp"] .checkbox.icheck-primary {
  display: inline-block;
  min-height: 22px;
}
#config-box[data-config-key="comp"] .checkbox.icheck-primary label {
  margin-bottom: 0;
  cursor: pointer;
  font-size: 13px;
}

/* ── Rolling ── */
#config-box[data-config-key="rolling"] .rolling-config-table thead .btn-sm {
  pointer-events: none;
  font-size: 12px !important;
  padding: 0.15rem 0.45rem !important;
  min-width: 2rem;
}
#config-box[data-config-key="rolling"] .checkbox.icheck-danger {
  display: inline-block;
  min-height: 22px;
}
#config-box[data-config-key="rolling"] .checkbox.icheck-danger label {
  margin-bottom: 0;
  cursor: pointer;
  font-size: 13px;
  padding-left: 0.15rem;
}
#config-box[data-config-key="rolling"] th.w100px { width: 100px !important; min-width: 90px; }
#config-box[data-config-key="rolling"] th.w80px { width: 80px !important; min-width: 70px; }
#config-box[data-config-key="rolling"] th.w300px { min-width: 280px; }

/* ── Operation: reinforce dark thead + density (existing rules kept) ── */
#app table.operation-config-table thead.table-dark th,
#config-box table.operation-config-table thead.table-dark th,
#config-box[data-config-key="operation"] thead.table-dark th {
  background-color: #212529 !important;
  color: #fff !important;
  border-color: #32383e !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}
#config-box[data-config-key="operation"] .operation-group-tabs {
  flex-wrap: wrap;
  border-bottom: 1px solid #dee2e6;
}
#config-box[data-config-key="operation"] .operation-group-tabs .nav-link {
  font-size: 13px;
  padding: 0.55rem 0.85rem;
  color: #495057;
  white-space: nowrap;
}
#config-box[data-config-key="operation"] .operation-group-tabs .nav-link.active {
  font-weight: 700;
  color: #0d6efd;
  border-color: #dee2e6 #dee2e6 #fff;
}

/* 복사 버튼 (btn_first) 밀도 */
#config-box[data-config-key="trading"] .btn-sm,
#config-box[data-config-key="level"] .btn-sm,
#config-box[data-config-key="comp"] .btn-sm,
#config-box[data-config-key="rolling"] .btn-sm {
  font-size: 12px !important;
  padding: 0.2rem 0.45rem !important;
  white-space: nowrap;
}

/* ph_gray placeholder tone (원본) */
#config-box .ph_gray::placeholder {
  color: #adb5bd;
  opacity: 1;
}

/* ===== 수익 통계 pages — 원본 ACE/BULL filter + thead 밀도 (page-scoped) ===== */
.stats-page {
  font-size: 1rem;
  font-weight: 400;
}
.page-content > #admin-page-main > .stats-page {
  margin-top: 0.45rem !important;
}
.stats-page .alert-primary {
  font-size: 1rem;
  line-height: 1.5;
  padding: 0.75rem 1rem;
  margin-bottom: 0.75rem;
  border-radius: 0.25rem;
}
.stats-page .card {
  border: 1px solid #dee2e6 !important;
  border-radius: 0.25rem !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
  overflow: hidden;
}
.stats-page .card.border-top-0 {
  border-top: 0 !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}
.stats-page .card-body {
  padding: 1rem 1rem 0.5rem !important;
}
.stats-page .list_lg_wrap {
  min-width: 1200px !important;
  width: max-content !important;
  max-width: none !important;
  overflow: visible !important;
}
.stats-page .table-responsive {
  overflow-x: auto !important;
  overflow-y: visible !important;
}
/* nav tabs (game / user-game) */
.stats-page > .nav-tabs,
.stats-page .nav.nav-tabs {
  border-bottom: 1px solid #dee2e6;
  flex-wrap: wrap;
}
.stats-page .nav-tabs .nav-link {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: #495057;
  padding: 0.45rem 0.85rem;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  background: transparent;
}
.stats-page .nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6;
  color: #212529;
}
.stats-page .nav-tabs .nav-link.active {
  color: #495057 !important;
  background-color: #fff !important;
  border-color: #dee2e6 #dee2e6 #fff !important;
}
/* trading group radio row */
.stats-page .stats-tg-row {
  align-items: center;
  gap: 0;
  row-gap: 0.15rem;
}
.stats-page .stats-tg-row > .me-2 {
  margin-right: 0.35rem !important;
}
.stats-page .radio.icheck-danger {
  min-height: 22px;
  margin-top: 0.15rem !important;
  margin-bottom: 0.15rem !important;
  padding-left: 0;
}
.stats-page .radio.icheck-danger > label {
  font-size: 1rem;
  font-weight: 400;
  line-height: 22px;
  margin-bottom: 0;
  padding-left: 29px !important;
  cursor: pointer;
  white-space: nowrap;
}
/* filter row: date + selects + 검색 + actions */
.stats-page .stats-filter-row {
  gap: 0;
  row-gap: 0.4rem;
  align-items: center !important;
}
.stats-page .stats-filter-row > .me-2 {
  margin-right: 0.35rem !important;
}
.stats-page .stats-filter-row .form-select,
.stats-page .stats-filter-row .form-control {
  font-size: 1rem !important;
  font-weight: 400 !important;
  min-height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  width: auto;
  min-width: 6.5rem;
}
.stats-page .stats-date-group {
  max-width: 220px;
  flex-wrap: nowrap;
}
.stats-page .stats-date-group .form-control {
  min-width: 6.5rem;
  max-width: 7.5rem;
}
.stats-page .stats-search-combo {
  min-width: 16rem;
  overflow: hidden;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem;
  padding: 0 !important;
}
.stats-page .stats-search-combo .form-select,
.stats-page .stats-search-combo .form-control {
  border: 0 !important;
  box-shadow: none !important;
  min-width: 0;
}
.stats-page .stats-search-combo .form-select {
  max-width: 8.5rem;
  background-color: #fff;
  border-right: 1px solid #ced4da !important;
  border-radius: 0 !important;
}
.stats-page .stats-filter-row .btn {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.375rem 0.75rem;
  white-space: nowrap;
}
.stats-page .stats-filter-actions {
  gap: 0.5rem !important;
}
.stats-page .checkbox.icheck-primary {
  min-height: 22px;
  margin: 0 !important;
  padding-left: 0;
}
.stats-page .checkbox.icheck-primary > label {
  font-size: 1rem;
  font-weight: 400;
  line-height: 22px;
  margin-bottom: 0 !important;
  padding-left: 29px !important;
  cursor: pointer;
  white-space: nowrap;
}
/* summary cards (stats-daily) — dashboard density */
.stats-page .stats-summary {
  margin-left: 0;
  margin-right: 0;
}
.stats-page .stats-summary .stats-sum-card,
.stats-page #stats-daily-summary .stats-sum-card {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.25rem;
  overflow: hidden;
  min-width: 0;
}
.stats-page .stats-summary .stats-sum-head,
.stats-page #stats-daily-summary .stats-sum-head {
  background: #212529;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  text-align: center;
  padding: 0.25rem 0.4rem;
  line-height: 1.3;
}
.stats-page .stats-summary .stats-sum-head.bg-success { background: #198754 !important; }
.stats-page .stats-summary .stats-sum-head.bg-danger { background: #dc3545 !important; }
.stats-page .stats-summary .stats-sum-head.bg-primary { background: #0d6efd !important; }
.stats-page .stats-summary .stats-sum-val,
.stats-page #stats-daily-summary .stats-sum-val {
  font-size: 1.15rem;
  font-weight: 700;
  text-align: right;
  padding: 0.45rem 0.55rem;
  margin: 0;
  line-height: 1.3;
  white-space: nowrap;
}
/* table header density — font_09 / w90px / center */
.stats-page #table_result,
.stats-page table.stats-table {
  width: 100%;
  margin-bottom: 0;
  font-size: 1rem !important;
  font-weight: 400;
  white-space: nowrap;
  border-collapse: collapse;
}
.stats-page #table_result thead th,
.stats-page table.stats-table thead th {
  font-size: 0.9rem !important; /* font_09 */
  font-weight: 700 !important;
  padding: 0.3rem 0.35rem !important;
  line-height: 1.25 !important;
  vertical-align: middle !important;
  text-align: center !important;
  white-space: nowrap;
  background-color: #212529 !important;
  color: #fff !important;
  border-color: #32383e !important;
}
.stats-page #table_result tbody td,
.stats-page table.stats-table tbody td {
  font-size: 1rem !important;
  font-weight: 400 !important;
  padding: 0.3rem 0.35rem !important;
  line-height: 1.3 !important;
  vertical-align: middle !important;
  text-align: center;
}
.stats-page #table_result tbody td.text-end,
.stats-page table.stats-table tbody td.text-end {
  text-align: right !important;
}
.stats-page #table_result tbody td.text-start,
.stats-page table.stats-table tbody td.text-start {
  text-align: left !important;
}
.stats-page #table_result.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: rgba(0, 0, 0, 0.02);
}
.stats-page #table_result.table-hover > tbody > tr:hover > * {
  background-color: #e8f0f5 !important;
}
.stats-page #table_result tbody tr.table-primary > *,
.stats-page table.stats-table tbody tr.table-primary > * {
  background-color: #cfe2ff !important;
  font-weight: 700;
}
.stats-page .text_positive { color: #007bff !important; }
.stats-page .text_negative { color: #dc3545 !important; }
.stats-page .w60px { width: 60px !important; min-width: 60px; }
.stats-page .w70px { width: 70px !important; min-width: 70px; }
.stats-page .w90px { width: auto !important; min-width: 4.75rem !important; max-width: none !important; }
.stats-page .min_w_80px { min-width: 80px !important; }
.stats-page .min_w_100px { min-width: 100px !important; }
.stats-page .min_w_180px { min-width: 9.5rem !important; }
.stats-page .min_w_50px { min-width: 3.25rem !important; width: 1% !important; }

/* #app overrides so global table density doesn't blow up stats thead */
#app .stats-page #table_result thead th,
#app .page-content .stats-page #table_result thead th,
#app .stats-page table.stats-table thead th {
  font-size: 0.9rem !important;
  padding: 0.3rem 0.35rem !important;
  font-weight: 700 !important;
}
#app .stats-page #table_result tbody td,
#app .page-content .stats-page #table_result tbody td,
#app .stats-page table.stats-table tbody td {
  font-size: 1rem !important;
  padding: 0.3rem 0.35rem !important;
}
#app .stats-page .card-body,
#app .page-content .stats-page .card-body {
  padding: 1rem 1rem 0.5rem !important;
}
#app .stats-page .list_lg_wrap {
  min-width: 1200px !important;
  width: max-content !important;
  max-width: none !important;
}
#app .stats-page .table-responsive {
  overflow-x: auto !important;
}

/* ===== CS 리스트 (notice / qna / popup / policy) — ACE admin cs_*_list 크롬 ===== */
/* CS 목록: soft-nav 공백 제거 + 원본 admin_lg 밀도
 * 주의: max-width:none 이면 soft-nav 후 표가 사이드바로 밀려 왼쪽 잘림
 *       → 100% + min-width:0 으로 본문 폭 안에 유지 */
#admin-page-main.admin-page-main-bundle {
  min-height: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow-x: auto !important;
}
/* container-fluid 가 번들 자체일 때 패딩 유지 (soft-nav 클래스 보존) */
#admin-page-main.admin-page-main-bundle.container-fluid {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}
@media (min-width: 992px) {
  #admin-page-main.admin-page-main-bundle.container-fluid.px-lg-5,
  #admin-page-main.admin-page-main-bundle.container-fluid {
    padding-left: 3rem !important;
    padding-right: 3rem !important;
  }
}
#admin-page-main.admin-page-main-bundle > .container-fluid {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
.cs-list-page .card {
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: none;
}
.cs-list-page .card-body {
  padding: 1rem 1.15rem;
}
/* 정렬 ▲▼ / 수정·삭제: 좌우 배치 → 행 높이 최소화 (원본 밀도) */
.cs-list-page .cs-sort-cell,
.cs-list-page .cs-action-cell {
  white-space: nowrap;
  vertical-align: middle !important;
  padding: 0.25rem 0.3rem !important;
}
.cs-list-page .cs-sort-cell {
  display: table-cell;
}
.cs-list-page .cs-sort-cell .btn,
.cs-list-page .cs-action-cell .btn {
  display: inline-block;
  width: auto;
  min-width: 1.75rem;
  padding: 0.15rem 0.35rem;
  margin: 0 1px;
  vertical-align: middle;
  line-height: 1.2;
}
.cs-list-page .table > :not(caption) > * > * {
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
}
.cs-list-page tbody tr {
  height: auto;
}
.cs-list-page .ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cs-list-page .min_w_50px { min-width: 50px !important; }
.cs-list-page .form-select,
.cs-list-page .form-control {
  font-size: 1rem;
}
/* soft-nav 번들 안 과도한 여백 방지 */
.admin-page-main-bundle > .py-lg-5 {
  padding-top: 1rem !important;
  padding-bottom: 1.25rem !important;
}

/* 설정 > 알림설정 (원본 password form_alarm) */
.admin-alarm-table th {
  width: 10rem;
  font-weight: 600;
  white-space: nowrap;
  vertical-align: middle !important;
}
.admin-alarm-table td {
  vertical-align: middle !important;
}
.admin-alarm-table .select_alarm {
  min-width: 10rem !important;
  width: 12rem !important;
  max-width: 100%;
  display: inline-block !important;
}
.admin-alarm-table .form-check-input {
  width: 1.15rem;
  height: 1.15rem;
  border-color: #dc3545;
  cursor: pointer;
}
.admin-alarm-table .form-check-input:checked {
  background-color: #dc3545;
  border-color: #dc3545;
}
.admin-alarm-table .btn-alarm-play {
  white-space: nowrap;
}
.cs-list-page #form_search .form-select,
.cs-list-page #form_search .form-control {
  font-size: 1rem;
  min-height: calc(1.5em + 0.5rem + 2px);
}
.cs-list-page #form_search .input-group {
  width: auto;
  flex-wrap: nowrap;
}
.cs-list-page #form_search .input-group .form-control {
  min-width: 7.5rem;
}
.cs-list-page .min_w_50px,
.cs-list-page .min_w_80px,
.cs-list-page .min_w_100px {
  min-width: 50px !important;
}
.cs-list-page .min_w_80px { min-width: 80px !important; }
.cs-list-page .min_w_100px { min-width: 100px !important; }
.cs-list-page .cs-search-combo {
  min-width: 14rem;
  overflow: hidden;
}
.cs-list-page .cs-search-combo .form-select {
  max-width: 6.5rem;
  flex: 0 0 auto;
  background-color: #f8f9fa;
}
.cs-list-page .cs-search-combo .form-control {
  min-width: 6rem;
}
.cs-list-page table.table {
  font-size: 1rem;
  margin-bottom: 0;
  vertical-align: middle;
}
.cs-list-page table.table thead.table-dark th {
  white-space: nowrap;
  font-weight: 700;
  vertical-align: middle;
  font-size: 1rem;
}
.cs-list-page table.table tbody td {
  vertical-align: middle;
}
.cs-list-page table.table .ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.cs-list-page table.table .btn-block {
  display: block;
  width: 100%;
  margin-bottom: 2px;
}
.cs-list-page table.table .btn-block:last-child {
  margin-bottom: 0;
}
.cs-list-page .list_sm_wrap,
.cs-list-page .list_md_wrap {
  min-width: 0 !important;
  width: 100% !important;
  overflow-x: auto !important;
}
.cs-list-page .notice-editor-form {
  background: #f8f9fa !important;
}
.cs-list-page .checkbox input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  cursor: pointer;
  accent-color: #dc3545;
  vertical-align: middle;
}
.cs-list-page .checkbox label {
  margin: 0;
  cursor: pointer;
}
.cs-list-page .form_row .btn {
  font-size: 1rem;
}
.cs-list-page .admin-list-pagination .form-select {
  width: 100px;
}
.cs-list-page .w50px { width: 50px !important; min-width: 50px; }
.cs-list-page .w70px { width: 70px !important; min-width: 70px; }
.cs-list-page .w80px { width: 80px !important; min-width: 80px; }
.cs-list-page .w100px { width: 100px !important; min-width: 100px; }
.cs-list-page .w130px { width: 130px !important; min-width: 110px; }
.cs-list-page .w200px { width: 200px !important; min-width: 140px; }
.cs-list-page.notices-page .list_sm_wrap table,
.cs-list-page.popups-page .list_sm_wrap table,
.cs-list-page.policy-page .list_sm_wrap table {
  min-width: 930px;
}
.cs-list-page.qna-page .list_md_wrap table {
  min-width: 1100px;
}
.cs-list-page.policy-page .policy-site-editor {
  border-color: #dee2e6 !important;
}
.cs-list-page.policy-page .policy-site-editor .form-control {
  font-size: 1rem;
  line-height: 1.45;
}
.cs-list-page .pointer { cursor: pointer; }

/* ── 원본 상단 여백 최종 고정 (Chrome) ──
 * header fixed 50px + page-wrapper padding-top 50px + dashboard py-3(1rem) only
 */
:root { --header-h: 50px !important; }
#app > .header.d-flex,
#app > .header,
body .header {
  height: 50px !important;
  min-height: 50px !important;
  max-height: 50px !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  margin: 0 !important;
}
#app > .page-wrapper,
.page-wrapper.ice-theme,
.page-wrapper.toggled,
.page-wrapper {
  padding-top: 50px !important;
  margin-top: 0 !important;
}
#app .page-content.bg-light,
#app .page-content,
.page-wrapper .page-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
#admin-global-dash,
#app #admin-global-dash.dashboard {
  margin-top: 0 !important;
  padding-top: 1rem !important; /* py-3 */
  padding-bottom: 1rem !important;
}

/* ── 사이드바 열림 시 본문 왼쪽 잘림 방지 (최종) ── */
@media (min-width: 768px) {
  #app .page-wrapper.toggled > .page-content,
  #app .page-wrapper.toggled > .page-content.bg-light,
  body #app .page-wrapper.toggled .page-content {
    padding-left: 280px !important;
  }
  #app .page-wrapper.toggled > .sidebar-wrapper,
  body #app .page-wrapper.toggled #sidebar.sidebar-wrapper {
    left: 0 !important;
    top: 50px !important;
    width: 280px !important;
  }
  html.online-popup-mode #app .page-wrapper.toggled > .page-content,
  html.online-popup-mode #app .page-wrapper.toggled > .page-content.bg-light,
  html.online-popup-mode body #app .page-wrapper.toggled .page-content,
  body.online-popup-mode #app .page-wrapper.toggled > .page-content,
  body.online-popup-mode #app .page-wrapper.toggled > .page-content.bg-light,
  body.online-popup-mode #app .page-content {
    padding-left: 12px !important;
    padding-right: 12px !important;
    margin-left: 0 !important;
  }
}

/* 회원·베팅·통계 리스트 정렬 아이콘 (원본: 항목명 좌=높은/최신, 우=낮은/오래된) */
.user-list-page .icon_sort,
.user-waiting-page .icon_sort,
.user-online-page .icon_sort,
.user-tree-page .icon_sort,
.bet-list-page .icon_sort,
.stats-table .icon_sort,
#table_result .icon_sort,
#bet-list-table .icon_sort {
  cursor: pointer !important;
  user-select: none;
  padding: 0 2px;
  opacity: 0.55;
  vertical-align: middle;
}
.user-list-page .icon_sort:hover,
.user-waiting-page .icon_sort:hover,
.user-online-page .icon_sort:hover,
.user-tree-page .icon_sort:hover,
.bet-list-page .icon_sort:hover,
.stats-table .icon_sort:hover,
#table_result .icon_sort:hover,
#bet-list-table .icon_sort:hover {
  color: #ffc107 !important;
  opacity: 1 !important;
}
.user-list-page .icon_sort.text-warning,
.user-waiting-page .icon_sort.text-warning,
.user-online-page .icon_sort.text-warning,
.user-tree-page .icon_sort.text-warning,
.bet-list-page .icon_sort.text-warning,
.stats-table .icon_sort.text-warning,
#table_result .icon_sort.text-warning,
#bet-list-table .icon_sort.text-warning,
#th-sort-time.text-warning,
#th-sort-bet.text-warning,
#th-sort-win.text-warning {
  color: #ffc107 !important;
  opacity: 1 !important;
}
/* 통계 헤더: 아이콘+라벨 한 줄, 좁은 열에서도 클릭 가능 */
.stats-table thead th {
  white-space: nowrap;
  vertical-align: middle;
  line-height: 1.25;
}
.stats-table thead th .icon_sort,
#table_result.stats-table thead th .icon_sort {
  font-size: 0.7rem;
  pointer-events: auto !important;
  cursor: pointer !important;
  position: relative;
  z-index: 2;
  padding: 2px 4px !important;
}
/* 원본 회원기간통계: 회원총롤링/공베팅/루징 헤더 빨강 */
.stats-table thead th .text-danger {
  color: #dc3545 !important;
  font-weight: 700;
}

/* ── 금액/포인트: 절대 잘리지 않게 (회원·트리·접속자 공통) ── */
#app .user-list-page .col-money,
#app .user-list-page .col-point,
#app .user-list-page td.col-money,
#app .user-list-page td.col-point,
#app .user-list-page th.col-money,
#app .user-list-page th.col-point,
#app .user-list-page #table_result .col-money,
#app .user-list-page #table_result .col-point,
#app .user-list-page #table_result tbody td.col-money,
#app .user-list-page #table_result tbody td.col-point,
#app .user-tree-page #table_result .col-money,
#app .user-tree-page #table_result .col-point,
#app .user-tree-page #users-tree-table td.col-money,
#app .user-tree-page #users-tree-table td.col-point,
#app .user-tree-page table .col-money,
#app .user-tree-page table .col-point {
  min-width: 110px !important;
  max-width: none !important;
  width: auto !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
  text-align: right !important;
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}
#app .user-tree-page #table_result th.col-money,
#app .user-tree-page #table_result th.col-point,
#app .user-tree-page table th.col-money,
#app .user-tree-page table th.col-point {
  text-align: center !important;
}
#app .user-list-page th.col-money,
#app .user-list-page th.col-point {
  text-align: center !important;
}
/* 03-16: 머니·포인트 헤더 글자 가운데 (정렬 아이콘은 양옆 겹침) */
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-money,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-point {
  position: relative !important;
  text-align: center !important;
  padding-left: 0.85rem !important;
  padding-right: 0.85rem !important;
}
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-money .icon_sort,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-point .icon_sort {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
  font-size: 0.55rem !important;
  margin: 0 !important;
}
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-money .icon_sort:first-child,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-point .icon_sort:first-child {
  left: 2px !important;
}
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-money .icon_sort:last-of-type,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-point .icon_sort:last-of-type {
  right: 2px !important;
}
/* 원본 회원리스트 칸 폭(사진 2431): 머니=포인트 100, 업체관리 140, 아이디 224 */
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result {
  width: max-content !important;
  min-width: 100% !important;
}
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result col.col-money,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-money,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result td.col-money,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result [data-col="money"],
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result col.col-point,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-point,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result td.col-point,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result [data-col="point"] {
  width: 100px !important;
  min-width: 100px !important;
  max-width: 100px !important;
  box-sizing: border-box !important;
}
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result col.col-agency,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-agency,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result td.col-agency,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result [data-col="agency"] {
  width: 140px !important;
  min-width: 140px !important;
  max-width: 140px !important;
  box-sizing: border-box !important;
}
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result col.col-idnick,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result th.col-idnick,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result td.col-idnick,
#app .user-list-page:not(.user-tree-page):not(.user-waiting-page):not(.user-online-page) #table_result [data-col="id_nick"] {
  width: 224px !important;
  min-width: 224px !important;
  max-width: 224px !important;
  box-sizing: border-box !important;
}

/* 아이디/닉·이름: 필요 시만 말줄임 (금액은 제외) */
#app .user-list-page .col-idnick,
#app .user-list-page .col-name {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 220px;
}

/* 회원 트리: 우측 패널 가로 스크롤 + 표 잘림 방지 */
#app .user-list-page.user-tree-page > .card {
  overflow: visible !important;
}
#app .user-list-page.user-tree-page .user-tree-main {
  overflow-x: auto !important;
  min-width: 0 !important;
}
#app .user-list-page.user-tree-page .user-tree-main .list_lg_wrap,
#app .user-list-page.user-tree-page #table_result,
#app .user-list-page.user-tree-page table.users-data {
  min-width: 1100px !important;
  width: max-content !important;
  max-width: none !important;
  table-layout: auto !important;
}
#app .user-list-page.user-tree-page #table_result th,
#app .user-list-page.user-tree-page #table_result td,
#app .user-list-page.user-tree-page table.users-data th,
#app .user-list-page.user-tree-page table.users-data td {
  overflow: visible !important;
  text-overflow: clip !important;
}

/* ── 수익 및 정산 통계 표: 원본 company_daily 밀도 + 금액 잘림 방지 ──
 * 원본: thead font_09 + th.w90px, td text-end w90px, 큰 숫자 전부 표시
 * 한 페이지 규칙을 회원리스트 등에 복제하지 않음 — .stats-page / .invoice-page 만
 */
#app .stats-page .card,
.stats-page .card {
  overflow: visible !important;
}
#app .stats-page .list_lg_wrap,
.stats-page .list_lg_wrap {
  min-width: 1500px !important;
  width: max-content !important;
  max-width: none !important;
}
#app .stats-page #table_result,
#app .stats-page table.stats-table,
#app .stats-page table.table,
.stats-page #table_result,
.stats-page table.stats-table,
.stats-page table.table {
  width: max-content !important;
  min-width: 1500px !important;
  max-width: none !important;
  table-layout: auto !important;
  font-size: 0.9rem !important; /* font_09 */
  margin-bottom: 0 !important;
  border-collapse: collapse !important;
}
#app .stats-page #table_result th,
#app .stats-page #table_result td,
#app .stats-page table.stats-table th,
#app .stats-page table.stats-table td,
#app .stats-page table.table th,
#app .stats-page table.table td,
.stats-page #table_result th,
.stats-page #table_result td,
.stats-page table th,
.stats-page table td {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  padding: 0.35rem 0.4rem !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1.35 !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
#app .stats-page thead th,
.stats-page thead th,
.stats-page tr.font_09 th {
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
}
/* w90px: 원본은 width:90px 이지만 큰 금액은 칸이 늘어나야 함 → min만 */
#app .stats-page .w90px,
#app .stats-page th.w90px,
#app .stats-page td.w90px,
.stats-page .w90px,
.stats-page th.w90px,
.stats-page td.w90px {
  min-width: 100px !important;
  width: auto !important;
  max-width: none !important;
  padding-left: 0.45rem !important;
  padding-right: 0.45rem !important;
}
#app .stats-page .w60px,
.stats-page .w60px { min-width: 60px !important; width: auto !important; max-width: none !important; }
#app .stats-page .w70px,
.stats-page .w70px { min-width: 70px !important; width: auto !important; max-width: none !important; }
#app .stats-page .min_w_80px,
.stats-page .min_w_80px { min-width: 100px !important; max-width: none !important; }
#app .stats-page .min_w_100px,
.stats-page .min_w_100px { min-width: 120px !important; max-width: none !important; }

/* 금액 셀: 우측 정렬, 절대 잘림 없음 */
#app .stats-page td.text-end,
.stats-page td.text-end,
#app .stats-page tbody td:not(:first-child),
.stats-page tbody td:not(:first-child) {
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums;
}
/* 합계 행 */
#app .stats-page tr.table-primary > *,
.stats-page tr.table-primary > * {
  font-weight: 700 !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
/* 상단 요약 카드도 숫자 잘림 방지 */
#app .stats-page .stats-sum-val,
.stats-page .stats-sum-val,
#stats-daily-summary .stats-sum-val {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  padding: 0.4rem 0.5rem !important;
}
#app .stats-page .stats-sum-card,
.stats-page .stats-sum-card {
  min-width: 7.5rem !important;
  overflow: visible !important;
}

/* 정산(invoice) 페이지 */
#app .invoice-page table,
.invoice-page table,
#invoice-table {
  width: max-content !important;
  min-width: 1200px !important;
  table-layout: auto !important;
  font-size: 0.95rem !important;
}
#app .invoice-page th,
#app .invoice-page td,
.invoice-page th,
.invoice-page td,
#invoice-table th,
#invoice-table td {
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  padding: 0.4rem 0.5rem !important;
  max-width: none !important;
  font-size: 0.95rem !important;
}

/* ── 회원 트리 원본 jstree 스타일 (BULL user_tree_list) ── */
#app .user-list-page.user-tree-page > .card,
.user-list-page.user-tree-page > .card {
  overflow: hidden !important;
  border: 1px solid #dee2e6 !important;
  box-shadow: none !important;
}
#app .user-list-page.user-tree-page > .card > .card-body,
.user-list-page.user-tree-page > .card > .card-body {
  padding: 1rem 1rem 1rem 0 !important;
  overflow: visible !important;
}
#app .user-list-page.user-tree-page .user-tree-layout {
  display: flex !important;
  align-items: flex-start !important;
  width: 100%;
  min-width: 0;
}
/* 좌측 트리 패널 — 원본 min_w_250px me-5 */
#app .user-list-page.user-tree-page .user-tree-sidebar,
#app .user-list-page.user-tree-page .min_w_250px {
  width: 280px !important;
  min-width: 250px !important;
  max-width: 320px !important;
  flex: 0 0 280px !important;
  margin-right: 2rem !important; /* me-5 */
  padding-left: 0.5rem;
}
#app .user-list-page.user-tree-page .user-tree-main {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  overflow-x: auto !important;
}
#app .user-list-page.user-tree-page .user-tree-main .list_lg_wrap {
  min-width: 1100px !important;
  width: max-content !important;
}

/* jstree 기본 테마 근사 */
#app .user-list-page.user-tree-page .jstree-default,
#app .user-list-page.user-tree-page #jstree_demo_div {
  font-size: 1rem !important;
  line-height: 24px;
  max-height: calc(100vh - 280px);
  overflow-y: auto;
  overflow-x: auto;
  padding: 0 0.25rem 1rem 0;
}
#app .user-list-page.user-tree-page .jstree-container-ul,
#app .user-list-page.user-tree-page .user-tree-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
#app .user-list-page.user-tree-page .jstree-node,
#app .user-list-page.user-tree-page .user-tree-node {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 0 0 24px !important;
  position: relative;
  min-height: 24px;
  line-height: 24px;
  white-space: nowrap;
}
#app .user-list-page.user-tree-page .jstree-container-ul > .jstree-node {
  padding-left: 0 !important;
}
/* 세로 점선 */
#app .user-list-page.user-tree-page .jstree-children {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block;
  position: relative;
}
#app .user-list-page.user-tree-page .jstree-children::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 0;
  bottom: 12px;
  border-left: 1px dotted #999;
}
/* 펼침/접기 아이콘 */
#app .user-list-page.user-tree-page .jstree-ocl,
#app .user-list-page.user-tree-page .user-tree-ocl {
  display: inline-block;
  width: 24px;
  height: 24px;
  line-height: 24px;
  text-align: center;
  cursor: pointer;
  vertical-align: top;
  position: relative;
  margin-left: -24px;
  float: left;
  background: transparent;
  border: 0;
  color: #666;
  font-style: normal;
  font-size: 10px;
}
#app .user-list-page.user-tree-page .jstree-open > .jstree-ocl::before,
#app .user-list-page.user-tree-page .jstree-open > .user-tree-ocl::before {
  content: "▼";
  font-size: 9px;
  color: #555;
}
#app .user-list-page.user-tree-page .jstree-closed > .jstree-ocl::before,
#app .user-list-page.user-tree-page .jstree-closed > .user-tree-ocl::before {
  content: "▶";
  font-size: 9px;
  color: #555;
}
#app .user-list-page.user-tree-page .jstree-leaf > .jstree-ocl::before,
#app .user-list-page.user-tree-page .jstree-leaf > .user-tree-ocl::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 1px;
  border-top: 1px dotted #999;
  margin-top: 11px;
}
/* 앵커(노드 텍스트) */
#app .user-list-page.user-tree-page .jstree-anchor,
#app .user-list-page.user-tree-page .user-tree-link {
  display: inline-block;
  color: #333 !important;
  text-decoration: none !important;
  padding: 0 4px 0 2px;
  margin: 0;
  height: 24px;
  line-height: 24px;
  border-radius: 2px;
  white-space: nowrap;
  font-size: 1rem !important;
  font-weight: 400 !important;
  vertical-align: top;
}
#app .user-list-page.user-tree-page .jstree-anchor:hover,
#app .user-list-page.user-tree-page .user-tree-link:hover {
  background: #e7f4f9;
  color: #000 !important;
}
#app .user-list-page.user-tree-page .jstree-clicked,
#app .user-list-page.user-tree-page .user-tree-link.is-active,
#app .user-list-page.user-tree-page .jstree-anchor.jstree-clicked {
  background: #beebff !important;
  box-shadow: inset 0 0 1px #999;
  color: #000 !important;
  font-weight: 400 !important;
}
#app .user-list-page.user-tree-page .jstree-themeicon {
  display: none; /* 원본 스크린샷에 폴더 아이콘 없이 텍스트 위주 */
}
/* 등급 색상 (원본 getMerchantName) */
#app .user-list-page.user-tree-page .user-tree-label .text-danger { color: #dc3545 !important; font-weight: 600; }
#app .user-list-page.user-tree-page .user-tree-label .text-primary { color: #0d6efd !important; font-weight: 600; }
#app .user-list-page.user-tree-page .user-tree-label .text-info { color: #0dcaf0 !important; font-weight: 600; }
#app .user-list-page.user-tree-page .user-tree-label .text-success { color: #198754 !important; font-weight: 600; }
#app .user-list-page.user-tree-page .user-tree-label .text-dark { color: #212529 !important; }
/* 테이블 등급 컬럼도 동일 톤 */
#app .user-list-page.user-tree-page #users-tree-table .col-grade .text-danger,
#app .user-list-page.user-tree-page #table_result .col-grade .text-danger { color: #dc3545 !important; }
#app .user-list-page.user-tree-page #users-tree-table .col-grade .text-primary,
#app .user-list-page.user-tree-page #table_result .col-grade .text-primary { color: #0d6efd !important; }
#app .user-list-page.user-tree-page .user-tree-ext {
  font-size: 0.75rem;
  margin-left: 0.35rem;
  color: #6c757d;
  opacity: 0.85;
}
#app .user-list-page.user-tree-page .user-tree-ext:hover {
  color: #0d6efd;
  opacity: 1;
}
/* 우측 표: 선택 행 하늘색 */
#app .user-list-page.user-tree-page #table_result tbody tr.table-info > *,
#app .user-list-page.user-tree-page #users-tree-table tr.table-info > * {
  background-color: #cff4fc !important;
}
/* 필터/벌크 밀도 */
#app .user-list-page.user-tree-page .user-list-filter .form-select,
#app .user-list-page.user-tree-page .user-list-filter .form-control {
  font-size: 1rem !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
  min-width: 0 !important;
}
#app .user-list-page.user-tree-page .user_config_list {
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  min-width: 1100px;
}
#app .user-list-page.user-tree-page .user_config_list .form-select {
  font-size: 1rem !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
  min-width: 7rem !important;
}
#app .user-list-page.user-tree-page #table_result,
#app .user-list-page.user-tree-page table.users-data {
  min-width: 1100px !important;
  width: max-content !important;
  table-layout: auto !important;
}
#app .user-list-page.user-tree-page #table_result td.col-money,
#app .user-list-page.user-tree-page #table_result td.col-point {
  min-width: 110px !important;
  max-width: none !important;
  overflow: visible !important;
  white-space: nowrap !important;
  text-align: right !important;
}

/* ===== 수익/정산 좌측 트리 (원본 min_w_250px + jstree) ===== */
.stats-with-tree .stats-tree-layout {
  display: flex !important;
  align-items: flex-start;
  width: 100%;
  min-width: 0;
}
.stats-with-tree .stats-tree-sidebar,
.stats-with-tree .min_w_250px {
  /* 원본 min_w_250px = min-width only. 고정 250px 이면 글이 잘리고 ACE보다 칸이 좁아짐 */
  min-width: 250px !important;
  width: max-content !important;
  max-width: 380px;
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  margin-right: 3rem !important; /* 원본 me-5 */
  padding: 0.25rem 0.15rem 1rem;
  font-size: 1.05rem;
  overflow: visible;
}
.stats-with-tree .stats-tree-sidebar .form-select,
.stats-with-tree .stats-tree-sidebar .form-control {
  font-size: 1rem !important;
}
.stats-with-tree .stats-tree-main {
  min-width: 0;
  flex: 1 1 auto;
  overflow-x: auto !important;
}
.stats-with-tree #stats_jstree,
.stats-with-tree .user-tree-panel {
  font-size: 1.05rem !important;
  max-height: 72vh;
  overflow-y: auto;
  overflow-x: auto;
  padding: 0 0.25rem 1rem 0;
}
.stats-with-tree .user-tree-list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.stats-with-tree .user-tree-node {
  list-style: none !important;
  margin: 0;
  padding: 0 0 0 24px !important;
  position: relative;
  min-height: 24px;
  line-height: 24px;
  white-space: nowrap;
}
.stats-with-tree .user-tree-list > .user-tree-node { padding-left: 0 !important; }
.stats-with-tree .user-tree-children {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block;
  position: relative;
}
.stats-with-tree .user-tree-children::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 0;
  bottom: 12px;
  border-left: 1px dotted #999;
}
.stats-with-tree .jstree-ocl.user-tree-ocl {
  display: inline-block;
  width: 24px;
  height: 24px;
  line-height: 24px;
  text-align: center;
  cursor: pointer;
  vertical-align: top;
  position: relative;
  margin-left: -24px;
  float: left;
  background: transparent;
  border: 0;
  color: #666;
  font-style: normal;
  font-size: 10px;
}
.stats-with-tree .jstree-open > .jstree-ocl::before { content: "▼"; font-size: 9px; color: #555; }
.stats-with-tree .jstree-closed > .jstree-ocl::before { content: "▶"; font-size: 9px; color: #555; }
.stats-with-tree .jstree-leaf > .jstree-ocl::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 1px;
  border-top: 1px dotted #999;
  margin-top: 11px;
}
.stats-with-tree .user-tree-link,
.stats-with-tree .jstree-anchor {
  color: #212529;
  text-decoration: none;
  display: inline;
  padding: 2px 4px;
  border-radius: 3px;
  white-space: nowrap;
  font-size: 1.05rem !important;
}
.stats-with-tree .user-tree-link:hover { color: #0d6efd; }
.stats-with-tree .user-tree-link.jstree-clicked,
.stats-with-tree .user-tree-link.is-active {
  background: rgba(13, 110, 253, 0.12);
  font-weight: 600;
}
.stats-with-tree .user-tree-ext {
  margin-left: 4px;
  font-size: 0.75em;
  opacity: 0.65;
  cursor: pointer;
}
.stats-with-tree #table_result tbody tr.table-info > * {
  background-color: #cff4fc !important;
}
.stats-with-tree .open_user_info { cursor: pointer; }
.stats-with-tree .open_user_info:hover { text-decoration: underline; color: #0d6efd !important; }

/* 대시보드 메뉴얼 카드 · 운영사 회원 생성 — 동일 크기 */
.dash-manual-card .btn-danger,
.dash-operator-create-card .btn-danger,
#btn-create-operator {
  min-width: 7rem;
  font-weight: 700;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
}

/* 관리자 로그인 캡차 — 원본 captcha_img 자리 (이미지형 덧셈) */
body.admin-login-page #captcha_img {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border-radius: 0 !important;
  display: inline-flex !important;
  align-items: center;
}
body.admin-login-page #captcha_img canvas,
body.admin-login-page #captcha_img img {
  display: block;
  width: 130px;
  max-width: 100%;
  height: 40px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 0.35rem;
  background: #eef2f7;
}
body.admin-login-page .login_form { max-width: min(440px, 100%); width: 100%; }
/* 벤더 .form-control-lg { padding-left/right:0 } 가 로그인 칸을 붙임 */
body.admin-login-page .form-control,
body.admin-login-page .form-control-lg {
  padding: 14px 18px !important;
}

/* ===== 수익/정산 레이아웃: 원본 card-body ps-0 + content ps-4 =====
   icheck radio label:before 가 margin-left:-29px 이라
   overflow-x:hidden + 패딩 부족 시 빨간 체크가 절반만 보임 */
#app .stats-page .card,
.stats-page .card,
.page-content .stats-page .card {
  overflow: visible !important;
}
#app .stats-page .card.overflow_hidden,
.stats-page .card.overflow_hidden {
  overflow: visible !important;
}
#app .stats-page .card-body,
.stats-page .card-body,
.page-content .stats-page .card-body,
#app .stats-page .card-body.ps-0,
#app .stats-page .card-body.mobile_overflow {
  overflow-x: auto !important;
  overflow-y: visible !important;
  max-width: 100% !important;
  /* 원본: card-body ps-0, 실제 여백은 내부 ps-4 */
  padding-top: 1rem !important;
  padding-bottom: 0.5rem !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}
/* 원본 pc_overflow 영역 — 가로 스크롤은 허용, 클립 금지 */
#app .stats-page .overflow_hidden,
#app .stats-page .pc_overflow,
#app .stats-page .mobile_overflow,
.stats-page .pc_overflow,
.stats-page .mobile_overflow {
  overflow-x: auto !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}
/* 원본: form/table 래퍼 ps-4 (1.5rem) — icheck -29px 보정 */
.stats-page .list_lg_wrap,
.stats-page .ps-4.list_lg_wrap,
.stats-page .ps-4 {
  padding-left: 1.5rem !important;
  padding-right: 0.5rem !important;
  box-sizing: border-box;
}
/* 트리 페이지: 사이드바 옆 메인만 ps-4 */
.stats-page .stats-tree-sidebar {
  padding-left: 0.5rem !important;
  overflow: visible !important;
}
.stats-page .stats-tree-main .list_lg_wrap,
.stats-page .stats-tree-main .ps-4 {
  padding-left: 1.5rem !important;
}
/* bootstrap .row 음수 마진이 icheck를 카드 밖으로 밀어 잘림 */
.stats-page .stats-tg-row .row,
.stats-page form .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  --bs-gutter-x: 0;
}
.stats-page .stats-tg-row .col,
.stats-page .stats-tg-row [class*="col "] {
  padding-left: 0 !important;
  padding-right: 0.5rem !important;
}
/* icheck 자체 overflow 보장 */
.stats-page .radio.icheck-danger,
.stats-page .checkbox.icheck-primary,
.stats-page .checkbox.icheck-danger {
  overflow: visible !important;
  position: relative;
  min-width: 4.5rem;
}
.stats-page .radio.icheck-danger > label,
.stats-page .checkbox.icheck-primary > label {
  overflow: visible !important;
  position: relative;
  display: inline-block;
  padding-left: 29px !important;
}
/* 표 헤더/셀 왼쪽 잘림 방지 */
.stats-page .table-responsive {
  overflow-x: auto !important;
  overflow-y: visible !important;
  margin-left: 0 !important;
}
.stats-page table.stats-table,
.stats-page #table_result {
  margin-left: 0 !important;
}
/* invoice 등 stats-page 하위 */
.stats-page.invoice-page .card-body {
  padding-left: 1.5rem !important;
  padding-right: 1rem !important;
}

/* ===== 수익/정산 원본 표 밀도·폰트·색 (BULL/ACE) ===== */
.stats-page {
  font-size: 1rem !important;
  font-weight: 400 !important;
  color: #212529;
}
.stats-page table.stats-table,
.stats-page #table_result {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  margin-bottom: 0 !important;
  border-color: #dee2e6 !important;
}
.stats-page table.stats-table thead th,
.stats-page #table_result thead th,
.stats-page .font_09 {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
  padding: 0.4rem 0.35rem !important;
  line-height: 1.25 !important;
}
.stats-page table.stats-table tbody td,
.stats-page #table_result tbody td {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  vertical-align: middle !important;
  padding: 0.35rem 0.35rem !important;
  white-space: nowrap !important;
  line-height: 1.3 !important;
  border-color: #dee2e6 !important;
}
/* 금액 칸: 고정 90px 강제 금지 — 짧은 숫자는 최소폭, 긴 숫자는 내용만큼 확장 */
.stats-page table.stats-table tbody td.w90px,
.stats-page #table_result tbody td.w90px,
.stats-page table.stats-table .w90px,
.stats-page table.stats-table.stats-table-autofit .w90px {
  width: auto !important;
  min-width: 4.75rem !important;
  max-width: none !important;
  text-align: right !important;
  white-space: nowrap !important;
  padding-left: 0.4rem !important;
  padding-right: 0.45rem !important;
}
/* 등급: 짧은 라벨 */
.stats-page table.stats-table th[data-col="grade"],
.stats-page table.stats-table td[data-col="grade"] {
  width: 1% !important;
  min-width: 3.25rem !important;
  max-width: 5rem !important;
  white-space: nowrap !important;
  text-align: center !important;
}
/* 아이디/닉네임: 겹침 방지 */
.stats-page table.stats-table th[data-col="user_id"],
.stats-page table.stats-table td[data-col="user_id"] {
  min-width: 9.5rem !important;
  max-width: 15rem !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 내용 기준 표 폭 — 칸 겹침/깨짐 방지, 넘치면 가로 스크롤 */
.stats-page table.stats-table.stats-table-autofit,
.stats-page table.stats-table.menu-cols-managed {
  table-layout: auto !important;
  width: max-content !important;
  min-width: 100% !important;
  max-width: none !important;
}
.stats-page table.stats-table thead th {
  white-space: nowrap !important;
  overflow: visible !important;
}
.stats-page .table-responsive {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}
.stats-page .table-primary > * {
  background-color: #cfe2ff !important;
  color: #212529 !important;
  box-shadow: none !important;
}
.stats-page tr.table-info > * {
  background-color: #cff4fc !important;
}
/* 원본 open_user_info: inherit 색, bold, 외부링크 아이콘 */
.stats-page .open_user_info,
.stats-page .open_user_info.font_10b {
  color: inherit !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  cursor: pointer;
}
.stats-page .open_user_info:hover {
  color: #0d6efd !important;
  text-decoration: none !important;
}
.stats-page .open_user_info .fa-external-link-alt {
  font-size: 0.75em;
  opacity: 0.75;
  margin-left: 2px;
}
/* 원본에 없는 하위/본인 버튼 강제 숨김 */
.stats-page .stats-downline,
.stats-page .stats-self {
  display: none !important;
}
/* 손익 색 — 원본 text_positive / text_negative */
.stats-page .text_positive {
  color: #007bff !important;
  font-weight: 400 !important;
}
.stats-page .text_negative {
  color: #dc3545 !important;
  font-weight: 400 !important;
}
.stats-page td.text-danger,
.stats-page .text-danger {
  color: #dc3545 !important;
}
.stats-page td.text-primary {
  color: #0d6efd !important;
}
/* 스코프 배너 — 과한 여백 축소 */
.stats-page #stats-scope-banner {
  font-size: 0.9rem !important;
  padding: 0.4rem 0.75rem !important;
  margin-bottom: 0.5rem !important;
}
/* 필터 셀렉트 높이·폰트 원본형 */
.stats-page .stats-filter-row .form-select,
.stats-page .stats-filter-row .form-control,
.stats-page .stats-date-group .form-control {
  font-size: 1rem !important;
  font-weight: 400 !important;
  min-height: calc(1.5em + 0.75rem + 2px) !important;
  padding: 0.375rem 0.75rem !important;
}
.stats-page .btn {
  font-size: 1rem !important;
  font-weight: 400 !important;
}
.stats-page .min_w_180px { min-width: 180px !important; }
.stats-page .min_w_50px { min-width: 50px !important; }

/* ===== 수익/정산 기간·드롭다운 동작 보장 ===== */
.stats-page .stats-filter-row,
.stats-page .stats-filter-row .form-select,
.stats-page .stats-filter-row .form-control,
.stats-page .stats-date-group,
.stats-page .stats-date-group .form-control,
.stats-page #sf-period,
.stats-page #sf-kind,
.stats-page #sf-line,
.stats-page #sf-from,
.stats-page #sf-to {
  pointer-events: auto !important;
  opacity: 1 !important;
}
.stats-page .stats-filter-row .form-select:disabled,
.stats-page .stats-filter-row .form-control:disabled {
  opacity: 1 !important;
  background-color: #fff !important;
}
.stats-page input[type="date"].datepicker,
.stats-page input[type="date"]#sf-from,
.stats-page input[type="date"]#sf-to {
  min-width: 9.5rem;
  max-width: 11rem;
  min-height: calc(1.5em + 0.75rem + 2px);
  padding: 0.35rem 0.5rem;
  font-size: 1rem;
  background: #fff;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  color: #212529;
}
.stats-page #sf-period {
  min-width: 7.5rem;
  width: auto;
}
.stats-page .stats-date-group {
  max-width: none !important;
  display: inline-flex !important;
  flex-wrap: nowrap;
  gap: 0;
}
.stats-page .stats-date-group .form-control {
  width: auto !important;
  min-width: 9.5rem;
}

/* ===== 수익통계 표 상단 우측: 소수점 / 항목설정 / 다운로드 겹침 방지 ===== */
.stats-page .stats-filter-row {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.5rem 0.75rem !important;
  width: 100%;
}
.stats-page .stats-toolbar-right {
  display: inline-flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 0.65rem !important;          /* 버튼 사이 간격 */
  margin-left: auto !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
  padding-left: 0.75rem;
}
.stats-page .stats-toolbar-right .stats-decimal-wrap {
  flex-shrink: 0;
  margin-right: 0.15rem !important;
  min-width: 4.5rem;
}
.stats-page .stats-toolbar-right .stats-btn-cols,
.stats-page .stats-toolbar-right .stats-btn-excel,
.stats-page .stats-toolbar-right .btn {
  flex-shrink: 0 !important;
  white-space: nowrap !important;
  margin: 0 !important;
  min-width: 5.5rem;
  padding: 0.375rem 0.85rem !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
}
.stats-page .stats-toolbar-right .stats-btn-excel {
  min-width: 6.25rem;
}
/* 검색 버튼과 우측 툴바 사이 */
.stats-page .stats-filter-row > .flex-shrink-0 {
  margin-right: 0.25rem !important;
}
/* 글자 크기 — 원본 밀도 */
.stats-page,
.stats-page .stats-filter-row,
.stats-page .stats-filter-row label,
.stats-page .stats-filter-row .form-select,
.stats-page .stats-filter-row .form-control,
.stats-page .stats-toolbar-right label {
  font-size: 1rem !important;
  font-weight: 400 !important;
}
.stats-page .alert-primary {
  font-size: 1rem !important;
  line-height: 1.55 !important;
}
.stats-page table.stats-table thead th,
.stats-page #table_result thead th,
.stats-page .font_09,
.stats-page table.stats-table thead th.font_09 {
  font-size: 0.9rem !important;   /* 원본 font_09 */
  font-weight: 400 !important;
}
.stats-page table.stats-table tbody td,
.stats-page #table_result tbody td {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
}
.stats-page .radio.icheck-danger > label,
.stats-page .checkbox.icheck-primary > label {
  font-size: 1rem !important;
}
/* 좁은 화면: 우측 툴바 다음 줄로 내려도 간격 유지 */
@media (max-width: 1200px) {
  .stats-page .stats-toolbar-right {
    width: 100%;
    justify-content: flex-end;
    padding-left: 0;
    margin-top: 0.25rem;
  }
}

/* ==========================================================================
 * FINAL: 전 카테고리 표 왼쪽 잘림 방지 (2026-07-29)
 * 원인: list_*_wrap { min-width:1450; width:max-content; overflow:visible }
 *       + html/body { overflow-x:hidden } + card-body { overflow-x:hidden }
 *       → 넓은 표가 본문 밖으로 나가 사이드바/뷰포트에 왼쪽이 잘림
 * 해결: 래퍼는 100% 폭 유지, 가로 스크롤은 .table-responsive / .card-body 만
 * ========================================================================== */
#app .page-content,
.page-content,
#app #admin-page-main,
#admin-page-main,
#app .page-content > .container-fluid,
.page-content > .container-fluid {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#app .list_xs_wrap,
#app .list_sm_wrap,
#app .list_wrap,
#app .list_md_wrap,
#app .list_lg_wrap,
#app .list_xl_wrap,
#app .list_xxl_wrap,
.page-content .list_xs_wrap,
.page-content .list_sm_wrap,
.page-content .list_wrap,
.page-content .list_md_wrap,
.page-content .list_lg_wrap,
.page-content .list_xl_wrap,
.page-content .list_xxl_wrap,
.user-list-page .list_lg_wrap,
.user-subpage .list_lg_wrap,
.user-subpage .list_md_wrap,
.bet-list-page .list_lg_wrap,
.deposit-list-page .list_lg_wrap,
.withdraw-list-page .list_lg_wrap,
.manual-list-page .list_md_wrap,
.stats-page .list_lg_wrap,
.stats-page .ps-4.list_lg_wrap,
.cs-list-page .list_md_wrap,
.trading-list-page .list_lg_wrap,
.login-log-page .login-log-list-wrap,
.login-log-list-wrap,
#app .user-list-page.user-tree-page .user-tree-main .list_lg_wrap,
#app .user-list-page.user-online-page .list_lg_wrap,
#app .user-list-page.user-waiting-page .list_lg_wrap,
#app .stats-page .list_lg_wrap,
#app .game-catalog-page .list_lg_wrap.game-catalog-list-wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: visible !important;
  box-sizing: border-box !important;
}

#app .table-responsive,
#app .table-responsive-sm,
.page-content .table-responsive,
.page-content .table-responsive-sm,
.page-content .card-body,
#app .card-body,
.admin .card-body,
.bet-list-page .table-responsive,
.bet-list-page .bet-list-wrap,
.deposit-list-page .table-responsive,
.withdraw-list-page .table-responsive,
.manual-list-page .table-responsive,
.stats-page .table-responsive,
.cs-list-page .table-responsive,
.login-log-page .login-log-wrap,
.login-log-wrap {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
}

/* 표 자체 min-width(원본 밀도)는 유지 — 스크롤 컨테이너 안에서만 넓어짐 */

/* ==========================================================================
 * FINAL: 전 카테고리 표 왼쪽 잘림 방지 (2026-07-29)
 * 원인: list_*_wrap { min-width:1450; width:max-content; overflow:visible }
 *       + html/body { overflow-x:hidden } + card-body { overflow-x:hidden }
 *       → 넓은 표가 본문 밖으로 나가 사이드바/뷰포트에 왼쪽이 잘림
 * 해결: 래퍼는 100% 폭 유지, 가로 스크롤은 .table-responsive / .card-body 만
 * ========================================================================== */
#app .page-content,
.page-content,
#app #admin-page-main,
#admin-page-main,
#app .page-content > .container-fluid,
.page-content > .container-fluid {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#app .list_xs_wrap,
#app .list_sm_wrap,
#app .list_wrap,
#app .list_md_wrap,
#app .list_lg_wrap,
#app .list_xl_wrap,
#app .list_xxl_wrap,
.page-content .list_xs_wrap,
.page-content .list_sm_wrap,
.page-content .list_wrap,
.page-content .list_md_wrap,
.page-content .list_lg_wrap,
.page-content .list_xl_wrap,
.page-content .list_xxl_wrap,
.user-list-page .list_lg_wrap,
.user-subpage .list_lg_wrap,
.user-subpage .list_md_wrap,
.bet-list-page .list_lg_wrap,
.deposit-list-page .list_lg_wrap,
.withdraw-list-page .list_lg_wrap,
.manual-list-page .list_md_wrap,
.stats-page .list_lg_wrap,
.stats-page .ps-4.list_lg_wrap,
.cs-list-page .list_md_wrap,
.trading-list-page .list_lg_wrap,
.login-log-page .login-log-list-wrap,
.login-log-list-wrap,
#app .user-list-page.user-tree-page .user-tree-main .list_lg_wrap,
#app .user-list-page.user-online-page .list_lg_wrap,
#app .user-list-page.user-waiting-page .list_lg_wrap,
#app .stats-page .list_lg_wrap,
#app .game-catalog-page .list_lg_wrap.game-catalog-list-wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: visible !important;
  box-sizing: border-box !important;
}

#app .table-responsive,
#app .table-responsive-sm,
.page-content .table-responsive,
.page-content .table-responsive-sm,
.page-content .card-body,
#app .card-body,
.admin .card-body,
.bet-list-page .table-responsive,
.bet-list-page .bet-list-wrap,
.deposit-list-page .table-responsive,
.withdraw-list-page .table-responsive,
.manual-list-page .table-responsive,
.stats-page .table-responsive,
.cs-list-page .table-responsive,
.login-log-page .login-log-wrap,
.login-log-wrap {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
}

/* 표 자체 min-width(원본 밀도)는 유지 — 스크롤 컨테이너 안에서만 넓어짐 */

/* soft-nav 번들: 절대 max-width:none 금지 (왼쪽 잘림 핵심) */
#app #admin-page-main.admin-page-main-bundle,
#admin-page-main.admin-page-main-bundle,
.page-content > #admin-page-main.admin-page-main-bundle {
  max-width: 100% !important;
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* ==========================================================================
 * 승인대기 리스트 / IP차단 — 원본 밀도 (auto 레이아웃, 깨짐 없음)
 * ========================================================================== */

/* ── 승인대기 (waiting_user_list) ── */
#app .user-list-page.user-waiting-page,
.user-list-page.user-waiting-page {
  width: 100% !important;
  max-width: 100% !important;
}
#app .user-list-page.user-waiting-page .card,
.user-list-page.user-waiting-page .card,
#app .user-list-page.user-waiting-page .card-body,
.user-list-page.user-waiting-page .card-body,
#app .user-list-page.user-waiting-page .table-responsive,
.user-list-page.user-waiting-page .table-responsive,
#app .user-list-page.user-waiting-page .list_lg_wrap,
.user-list-page.user-waiting-page .list_lg_wrap {
  width: 100% !important;
  max-width: 100% !important;
}
#app .user-list-page.user-waiting-page .list_lg_wrap,
.user-list-page.user-waiting-page .list_lg_wrap {
  min-width: 0 !important;
  overflow-x: visible !important;
}
#app .user-list-page.user-waiting-page .table-responsive,
.user-list-page.user-waiting-page .table-responsive,
#app .user-list-page.user-waiting-page .card-body,
.user-list-page.user-waiting-page .card-body {
  overflow-x: auto !important;
}
#app .user-list-page.user-waiting-page #table_result,
#app .user-list-page.user-waiting-page table.users-data,
#app .page-content .user-list-page.user-waiting-page table.table,
.user-list-page.user-waiting-page #table_result,
.user-list-page.user-waiting-page table.users-data {
  width: 100% !important;
  min-width: 1450px !important;
  max-width: none !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
}
#app .user-list-page.user-waiting-page #table_result th,
#app .user-list-page.user-waiting-page #table_result td,
.user-list-page.user-waiting-page #table_result th,
.user-list-page.user-waiting-page #table_result td {
  padding: 0.4rem 0.35rem !important;
  font-size: 1rem !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
/* 승인대기 열: 원본 min_w / w* 바닥만 */
#app .user-list-page.user-waiting-page #table_result .col-check,
.user-list-page.user-waiting-page #table_result .col-check {
  min-width: 40px !important; width: auto !important; max-width: none !important;
}
#app .user-list-page.user-waiting-page #table_result .col-domain,
#app .user-list-page.user-waiting-page #table_result .col-grade,
#app .user-list-page.user-waiting-page #table_result .col-status,
.user-list-page.user-waiting-page #table_result .col-domain,
.user-list-page.user-waiting-page #table_result .col-grade,
.user-list-page.user-waiting-page #table_result .col-status {
  min-width: 50px !important; width: auto !important; max-width: none !important;
}
#app .user-list-page.user-waiting-page #table_result .col-idnick,
#app .user-list-page.user-waiting-page #table_result .min_w_180px,
.user-list-page.user-waiting-page #table_result .col-idnick {
  min-width: 180px !important; width: auto !important; max-width: none !important;
}
#app .user-list-page.user-waiting-page #table_result .col-name,
#app .user-list-page.user-waiting-page #table_result .min_w_70px,
.user-list-page.user-waiting-page #table_result .min_w_70px {
  min-width: 70px !important; width: auto !important; max-width: none !important;
}
#app .user-list-page.user-waiting-page #table_result .w50px {
  min-width: 50px !important; width: auto !important; max-width: none !important;
}
#app .user-list-page.user-waiting-page #table_result .min_w_90px {
  min-width: 90px !important; width: auto !important; max-width: none !important;
}
#app .user-list-page.user-waiting-page #table_result .min_w_120px {
  min-width: 120px !important; width: auto !important; max-width: none !important;
}
#app .user-list-page.user-waiting-page #table_result .w40px,
#app .user-list-page.user-waiting-page #table_result th.font_08 {
  min-width: 40px !important; width: auto !important; max-width: none !important;
}
#app .user-list-page.user-waiting-page #table_result .col-action {
  min-width: 100px !important; width: auto !important; max-width: none !important;
  white-space: nowrap !important; overflow: visible !important;
}

/* ── IP 차단 리스트 + 내역 (block_ip_list / error_log) ── */
#app .block-ip-page,
.block-ip-page {
  width: 100% !important;
  max-width: 100% !important;
}
#app .block-ip-page .admin,
.block-ip-page .admin {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
#app .block-ip-page .list_md_wrap,
.block-ip-page .list_md_wrap,
#app .block-ip-page .list_wrap,
.block-ip-page .list_wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
#app .block-ip-page .table-responsive,
.block-ip-page .table-responsive,
#app .block-ip-page .card-body,
.block-ip-page .card-body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
}
/* 차단 리스트: 원본 w160 + w200×6 → 표 전체 채움, 칸 동일 */
#app .block-ip-page .block-ip-table,
.block-ip-page .block-ip-table,
#app .block-ip-page #table_result.block-ip-table,
.block-ip-page #table_result {
  width: 100% !important;
  min-width: 1360px !important;
  max-width: none !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  margin-bottom: 0 !important;
}
#app .block-ip-page .block-ip-table thead th,
#app .block-ip-page .block-ip-table tbody td,
.block-ip-page .block-ip-table thead th,
.block-ip-page .block-ip-table tbody td {
  padding: 0.45rem 0.5rem !important;
  font-size: 0.95rem !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  box-sizing: border-box !important;
}
#app .block-ip-page .block-ip-table .w160px,
.block-ip-page .block-ip-table .w160px {
  width: 11.8% !important; min-width: 0 !important; max-width: none !important;
}
#app .block-ip-page .block-ip-table .w200px,
.block-ip-page .block-ip-table .w200px {
  width: 14.7% !important; min-width: 0 !important; max-width: none !important;
}
/* 내역 탭 */
#app .block-ip-page .block-ip-error-table,
.block-ip-page .block-ip-error-table,
#app .block-ip-page #table_error_log,
.block-ip-page #table_error_log {
  width: 100% !important;
  min-width: 1220px !important;
  max-width: none !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
}
#app .block-ip-page .block-ip-error-table thead th,
#app .block-ip-page .block-ip-error-table tbody td,
.block-ip-page .block-ip-error-table thead th,
.block-ip-page .block-ip-error-table tbody td {
  padding: 0.45rem 0.5rem !important;
  font-size: 0.95rem !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  box-sizing: border-box !important;
}
#app .block-ip-page .block-ip-error-table .w160px,
.block-ip-page .block-ip-error-table .w160px { width: 13% !important; min-width: 0 !important; max-width: none !important; }
#app .block-ip-page .block-ip-error-table .w120px,
.block-ip-page .block-ip-error-table .w120px { width: 10% !important; min-width: 0 !important; max-width: none !important; }
#app .block-ip-page .block-ip-error-table .w100px,
.block-ip-page .block-ip-error-table .w100px { width: 8% !important; min-width: 0 !important; max-width: none !important; }
#app .block-ip-page .block-ip-error-table .w200px,
.block-ip-page .block-ip-error-table .w200px { width: 16% !important; min-width: 0 !important; max-width: none !important; }
#app .block-ip-page .block-ip-error-table .w300px,
.block-ip-page .block-ip-error-table .w300px {
  width: 24% !important; min-width: 0 !important; max-width: none !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
/* 원본 w200 유틸이 max-width로 칸을 조이지 않도록 페이지 스코프 해제 */
#app .block-ip-page .w200px,
.block-ip-page .w200px,
#app .block-ip-page .w160px,
.block-ip-page .w160px {
  max-width: none !important;
}


/* ==========================================================================
 * 접속자 리스트 (current_user_list) — 원본 ACE/BULL 동일
 * 원본 thead:
 *   w20px | 도메인 | 아이디/닉네임 | w50 유저Lv | w50 게임Lv
 *   | w90 게임머니 | w90 머니 | w90 포인트 | w50 롤링 | w180 위치
 *   | w150 로그인ip | w170 로그인(최근이동)
 * 회원리스트용 .col-* !important 폭을 여기서 전부 덮어씀
 * ========================================================================== */
#app .user-list-page.user-online-page,
.user-list-page.user-online-page,
body.online-popup-mode .user-list-page.user-online-page {
  width: 100% !important;
  max-width: 100% !important;
}
#app .user-list-page.user-online-page .card,
#app .user-list-page.user-online-page .card-body,
.user-list-page.user-online-page .card,
.user-list-page.user-online-page .card-body {
  max-width: 100% !important;
  overflow-x: auto !important;
}
#app .user-list-page.user-online-page .table-responsive,
.user-list-page.user-online-page .table-responsive {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
}
/* 원본 list_lg_wrap min-width:1450 — 전역 min-width:0 덮기 */
#app .user-list-page.user-online-page .list_lg_wrap,
.page-content .user-list-page.user-online-page .list_lg_wrap,
.user-list-page.user-online-page .list_lg_wrap,
body.online-popup-mode .user-list-page.user-online-page .list_lg_wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
}
/* 표: colgroup 고정폭 + nowrap. 합계행(IP 빈칸)이 폭을 결정하지 않게 fixed */
#app .user-list-page.user-online-page #table_result,
#app .user-list-page.user-online-page table.users-data,
#app .user-list-page.user-online-page table.table.users-data,
.user-list-page.user-online-page #table_result,
.user-list-page.user-online-page table.users-data,
body.online-popup-mode .user-list-page.user-online-page #table_result {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  font-size: 1rem !important;
  border-collapse: collapse !important;
  white-space: nowrap !important;
  margin-bottom: 0 !important;
}
#app .user-list-page.user-online-page #table_result th,
#app .user-list-page.user-online-page #table_result td,
#app .user-list-page.user-online-page table.users-data th,
#app .user-list-page.user-online-page table.users-data td,
.user-list-page.user-online-page #table_result th,
.user-list-page.user-online-page #table_result td {
  vertical-align: middle !important;
  padding: 0.35rem 0.5rem !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  box-sizing: border-box !important;
  line-height: 1.35 !important;
  max-width: none !important;
}
#app .user-list-page.user-online-page #table_result thead th,
.user-list-page.user-online-page #table_result thead th {
  font-weight: 700 !important;
  text-align: center !important;
  padding: 0.45rem 0.35rem !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

/* ---- 원본 w* 폭 (admin.css) — 회원리스트 .col-* !important 완전 덮기 ---- */
#app .user-list-page.user-online-page #table_result th.w20px,
#app .user-list-page.user-online-page #table_result td.col-check,
#app .user-list-page.user-online-page #table_result th.col-check,
#app .user-list-page.user-online-page .col-check {
  width: 20px !important;
  min-width: 20px !important;
  max-width: 36px !important;
  padding: 0 !important;
}
#app .user-list-page.user-online-page #table_result th.col-domain,
#app .user-list-page.user-online-page #table_result td.col-domain,
#app .user-list-page.user-online-page .col-domain {
  width: 56px !important;
  min-width: 56px !important;
  max-width: 56px !important;
  text-align: center !important;
  overflow: hidden !important;
}
#app .user-list-page.user-online-page #table_result th.col-idnick,
#app .user-list-page.user-online-page #table_result td.col-idnick,
#app .user-list-page.user-online-page .col-idnick {
  width: auto !important;
  min-width: 140px !important;
  max-width: none !important;
  text-align: center !important;
  white-space: nowrap !important;
}
#app .user-list-page.user-online-page #table_result th.w50px,
#app .user-list-page.user-online-page #table_result th.col-lv,
#app .user-list-page.user-online-page #table_result th.col-glv,
#app .user-list-page.user-online-page #table_result td.col-lv,
#app .user-list-page.user-online-page #table_result td.col-glv,
#app .user-list-page.user-online-page #table_result td[data-col="user_lv"],
#app .user-list-page.user-online-page #table_result td[data-col="game_lv"],
#app .user-list-page.user-online-page #table_result td[data-col="rolling"],
#app .user-list-page.user-online-page .col-lv,
#app .user-list-page.user-online-page .col-glv {
  width: 50px !important;
  min-width: 50px !important;
  max-width: 56px !important;
  padding-left: 0.15rem !important;
  padding-right: 0.15rem !important;
  text-align: center !important;
}
#app .user-list-page.user-online-page #table_result td.col-money,
#app .user-list-page.user-online-page #table_result td.col-point,
#app .user-list-page.user-online-page #table_result td[data-col="game_money"],
#app .user-list-page.user-online-page #table_result td[data-col="money"],
#app .user-list-page.user-online-page #table_result td[data-col="point"] {
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px !important;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#app .user-list-page.user-online-page #table_result th[data-col="money"],
#app .user-list-page.user-online-page #table_result th[data-col="point"],
#app .user-list-page.user-online-page #table_result th[data-col="login_ip"],
#app .user-list-page.user-online-page #table_result th.col-ip {
  text-align: center !important;
}
#app .user-list-page.user-online-page #table_result th.w90px.px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
#app .user-list-page.user-online-page #table_result th.w180px,
#app .user-list-page.user-online-page #table_result td[data-col="location"],
#app .user-list-page.user-online-page #table_result td.online-loc-cell,
#app .user-list-page.user-online-page .col-location {
  width: 180px !important;
  min-width: 180px !important;
  max-width: 180px !important;
}
#app .user-list-page.user-online-page #table_result th.w150px,
#app .user-list-page.user-online-page #table_result td.col-ip,
#app .user-list-page.user-online-page #table_result td[data-col="login_ip"],
#app .user-list-page.user-online-page .col-ip {
  width: 180px !important;
  min-width: 180px !important;
  max-width: 180px !important;
  text-align: center !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
#app .user-list-page.user-online-page #table_result th.w150px,
#app .user-list-page.user-online-page #table_result th.col-ip,
#app .user-list-page.user-online-page #table_result th[data-col="login_ip"] {
  text-align: center !important;
  overflow: hidden !important;
}
#app .user-list-page.user-online-page #table_result th.w170px,
#app .user-list-page.user-online-page #table_result td.col-login,
#app .user-list-page.user-online-page #table_result td[data-col="login_at"],
#app .user-list-page.user-online-page .col-login {
  width: 220px !important;
  min-width: 220px !important;
  max-width: 220px !important;
  white-space: nowrap !important;
  text-align: center !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#app .user-list-page.user-online-page .online-ip-text,
#app .user-list-page.user-online-page .online-login-text {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
  white-space: nowrap;
}
#app .user-list-page.user-online-page td[data-col="login_ip"] .online-ip-text {
  display: inline;
  max-width: none;
}

/* 머니 정렬·게임머니 빨강 (원본 text-end text-danger) */
#app .user-list-page.user-online-page #table_result td[data-col="game_money"].text-danger,
#app .user-list-page.user-online-page #table_result td[data-col="game_money"] {
  text-align: right !important;
}
#app .user-list-page.user-online-page #table_result tbody tr:not(.online-sum-row):not(.table-primary) td[data-col="game_money"].text-danger {
  color: #dc3545 !important;
  font-weight: 400 !important;
}
/* 위치: 원본 height:40px · 게임사<br>테이블 */
#app .user-list-page.user-online-page #table_result td[data-col="location"],
#app .user-list-page.user-online-page #table_result td.online-loc-cell {
  height: 40px !important;
  white-space: normal !important;
  text-align: center !important;
  line-height: 1.2 !important;
  font-size: 0.9rem !important;
  padding: 0 !important;
  overflow: visible !important;
  vertical-align: middle !important;
}
#app .user-list-page.user-online-page #table_result td[data-col="user_lv"],
#app .user-list-page.user-online-page #table_result td[data-col="game_lv"],
#app .user-list-page.user-online-page #table_result td[data-col="rolling"] {
  text-align: center !important;
}
#app .user-list-page.user-online-page #table_result td[data-col="login_ip"] {
  text-align: center !important;
}
/* 아이디/닉네임 링크 — 원본 font_10b */
#app .user-list-page.user-online-page #table_result .open_user_info.font_10b,
#app .user-list-page.user-online-page #table_result td.col-idnick .open_user_info {
  font-size: 1rem !important;
  font-weight: 700 !important;
  cursor: pointer;
}

/* 합계 행 — 원본 tr.text-end.table-primary */
#app .user-list-page.user-online-page #table_result tr.online-sum-row,
#app .user-list-page.user-online-page #table_result tr.text-end.table-primary,
.user-list-page.user-online-page #table_result tr.online-sum-row {
  background: #cfe2ff !important;
}
#app .user-list-page.user-online-page #table_result tr.online-sum-row > td,
#app .user-list-page.user-online-page #table_result tr.text-end.table-primary > td,
.user-list-page.user-online-page #table_result tr.online-sum-row > td {
  background: #cfe2ff !important;
  color: #084298 !important;
  font-weight: 700 !important;
  text-align: right !important;
  overflow: visible !important;
  max-width: none !important;
}
#app .user-list-page.user-online-page #table_result tr.online-sum-row > td:first-child,
#app .user-list-page.user-online-page #table_result tr.text-end.table-primary > td:first-child {
  text-align: center !important;
}
#app .user-list-page.user-online-page #table_result tr.online-sum-row > td[data-col="game_money"],
#app .user-list-page.user-online-page #table_result tr.text-end.table-primary > td.text-danger {
  color: #dc3545 !important;
}
#app .user-list-page.user-online-page #table_result .td-tight {
  width: auto !important;
  max-width: none !important;
  overflow: visible !important;
}
/* 롤링 버튼 밀도 — 원본 btn-sm p-1 */
#app .user-list-page.user-online-page #table_result td[data-col="rolling"] .btn {
  padding: 0.15rem 0.4rem !important;
  font-size: 0.875rem !important;
  line-height: 1.25 !important;
}
/* 로그아웃/IP차단 아이콘 간격 */
#app .user-list-page.user-online-page .icon_logout,
#app .user-list-page.user-online-page .icon_ip_block {
  margin-left: 0.2rem;
  cursor: pointer;
  opacity: 0.8;
}
#app .user-list-page.user-online-page .icon_logout:hover { color: #dc3545; opacity: 1; }
#app .user-list-page.user-online-page .icon_ip_block:hover { color: #b42318; opacity: 1; }

/* ==========================================================================
 * FINAL: 베팅 리스트 — 우측 잘림/합계 깨짐 방지 (2026-08-01)
 * 전역 list_lg_wrap { min-width:0; width:100% } 를 덮어씀
 * 원본: auto 레이아웃 + 가로 스크롤 + 합계 상단 + 베팅(P/B)|상태(승패) 나란히
 * ========================================================================== */
#app .bet-list-page .list_lg_wrap,
.page-content .bet-list-page .list_lg_wrap,
.bet-list-page .list_lg_wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: visible !important;
}
#app .bet-list-page .table-responsive,
#app .bet-list-page .bet-list-wrap,
#app .bet-list-page .card-body,
.bet-list-page .table-responsive,
.bet-list-page .bet-list-wrap,
.bet-list-page .card-body {
  overflow-x: auto !important;
  max-width: 100% !important;
}
#app .bet-list-page #bet-list-table,
#app .bet-list-page table.bet-list-table,
.bet-list-page #bet-list-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
#app .bet-list-page #bet-list-table th,
#app .bet-list-page #bet-list-table td {
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}
#app .bet-list-page #bet-list-table tr.bet-sum-row > td {
  background: #cfe2ff !important;
  font-weight: 700 !important;
  overflow: visible !important;
}
#app .bet-list-page #bet-list-table .col-state,
#app .bet-list-page #bet-list-table td.td-state {
  display: table-cell !important;
  overflow: visible !important;
  text-align: center !important;
}
/* 24-33: 베팅(P/B) 열 삭제 · 당첨·당첨후잔액 내용 폭 */
#app .bet-list-page #bet-list-table .col-pick,
#app .bet-list-page #bet-list-table td.td-pick,
.bet-list-page #bet-list-table .col-pick,
.bet-list-page #bet-list-table td.td-pick {
  display: none !important;
}

/* 통계 트리 검색 하이라이트 */
.user-tree-link.stats-search-hit,
.jstree-anchor.stats-search-hit {
  background: #fff3cd !important;
  box-shadow: inset 0 0 0 2px #ffc107;
  border-radius: 4px;
}
#stats_tree_search_value {
  min-width: 140px;
}

/* ===== 관리자 전역: 날짜 = 네이티브 달력 (클릭 시 피커) ===== */
#app input[type="date"].datepicker,
#app input[type="date"].md-date-input,
#app input[type="date"],
#app input[type="datetime-local"],
.page-content input[type="date"],
.page-content input[type="datetime-local"],
input.datepicker[type="date"],
input.md-date-input {
  min-width: 9.5rem;
  max-width: 12rem;
  min-height: calc(1.5em + 0.75rem + 2px);
  padding: 0.35rem 0.5rem;
  font-size: 1rem;
  line-height: 1.5;
  background-color: #fff !important;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  color: #212529;
  cursor: pointer;
  /* 달력 아이콘 클릭 영역 확보 */
  color-scheme: light;
}
#app input[type="date"].form-control-sm,
#app input[type="datetime-local"].form-control-sm,
.page-content input[type="date"].form-control-sm {
  min-width: 8.5rem;
  max-width: 11rem;
  min-height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 0.4rem;
  font-size: 0.9rem;
}
/* WebKit 달력 아이콘 클릭 가능하게 */
#app input[type="date"]::-webkit-calendar-picker-indicator,
#app input[type="datetime-local"]::-webkit-calendar-picker-indicator,
.page-content input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 1;
  padding: 2px;
}
/* 필터 input-group 안 날짜 칸 */
#app .input-group > input[type="date"],
.page-content .input-group > input[type="date"] {
  width: auto;
  flex: 0 0 auto;
  min-width: 9.5rem;
}

/* ===== Spectrum-like 컬러 피커 (환경설정 TRANSFER_ADMIN_INFO) ===== */
.env-color-group.spectrum-like .env-color-swatch-btn {
  width: 36px !important;
  min-width: 36px !important;
  height: 36px !important;
  padding: 2px !important;
  background: #fff;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem 0 0 0.25rem !important;
}
.env-color-group.spectrum-like .env-color-swatch-fill {
  border-radius: 2px;
  border: 1px solid rgba(0,0,0,.12);
  min-height: 28px;
}
.env-color-group.spectrum-like .env-color-text {
  min-height: 36px;
}
.sp-popup-wrap {
  z-index: 10050;
}
.sp-popup {
  background: #fff;
  border: 1px solid #adb5bd;
  border-radius: 4px;
  padding: 10px;
  min-width: 320px;
  box-shadow: 0 8px 28px rgba(0,0,0,.18);
}
.sp-popup-body {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.sp-palette {
  display: grid;
  grid-template-columns: repeat(9, 16px);
  gap: 2px;
  width: calc(9 * 16px + 8 * 2px);
  flex-shrink: 0;
}
.sp-chip {
  width: 16px;
  height: 16px;
  border: 1px solid rgba(0,0,0,.15);
  padding: 0;
  cursor: pointer;
  border-radius: 1px;
  box-sizing: border-box;
}
.sp-chip:hover {
  outline: 2px solid #0d6efd;
  outline-offset: 0;
  z-index: 1;
  position: relative;
}
.sp-picker-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  min-width: 140px;
}
.sp-sv {
  position: relative;
  width: 100%;
  height: 120px;
  border: 1px solid #adb5bd;
  border-radius: 2px;
  cursor: crosshair;
  overflow: hidden;
  background: #f00;
}
.sp-sv-white {
  position: absolute; inset: 0;
  background: linear-gradient(to right, #fff, rgba(255,255,255,0));
}
.sp-sv-black {
  position: absolute; inset: 0;
  background: linear-gradient(to top, #000, rgba(0,0,0,0));
}
.sp-sv-cursor {
  position: absolute;
  width: 10px; height: 10px;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(0,0,0,.5);
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.sp-hue {
  position: relative;
  width: 100%;
  height: 14px;
  border-radius: 2px;
  border: 1px solid #adb5bd;
  cursor: pointer;
  background: linear-gradient(to bottom,
    #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%,
    #0000ff 67%, #ff00ff 83%, #ff0000 100%);
}
.sp-hue-cursor {
  position: absolute;
  left: 0; right: 0;
  height: 4px;
  margin-top: -2px;
  border: 1px solid #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,.45);
  pointer-events: none;
}
.sp-popup-foot {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.sp-preview {
  width: 28px;
  height: 28px;
  border: 1px solid #adb5bd;
  border-radius: 2px;
  flex-shrink: 0;
}
.sp-preview.is-clear {
  background-image:
    linear-gradient(45deg, #ccc 25%, transparent 25%),
    linear-gradient(-45deg, #ccc 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #ccc 75%),
    linear-gradient(-45deg, transparent 75%, #ccc 75%);
  background-size: 8px 8px;
  background-position: 0 0, 0 4px, 4px -4px, -4px 0;
  background-color: #fff;
}
.sp-popup-foot .sp-choose {
  margin-left: auto;
}
.sp-popup-foot .btn-success {
  background-color: #198754;
  border-color: #198754;
  color: #fff;
}

/* ==========================================================================
 * FINAL · 관리자 밀집 표 반응형 (가로 스크롤 제거)
 * list_lg min-width 1450/1520 강제 → 컨테이너 100% 자동 맞춤
 * 회원트리·회원·접속자·승인대기·충환전·베팅·통계 공통
 * ========================================================================== */
#app .list_lg_wrap,
#app .list_md_wrap,
#app .list_xl_wrap,
#app .list_xxl_wrap,
#app .list_wrap,
.page-content .list_lg_wrap,
.page-content .list_md_wrap,
.page-content .list_xl_wrap,
.user-list-page .list_lg_wrap,
.user-subpage .list_lg_wrap,
.user-list-page.user-tree-page .user-tree-main .list_lg_wrap,
.user-list-page.user-online-page .list_lg_wrap,
.user-list-page.user-waiting-page .list_lg_wrap,
.bet-list-page .list_lg_wrap,
.deposit-list-page .list_lg_wrap,
.withdraw-list-page .list_lg_wrap,
.stats-page .list_lg_wrap,
.stats-page .ps-4.list_lg_wrap,
.manual-list-page .list_lg_wrap,
.trading-list-page:not(.game-catalog-page) .list_lg_wrap,
.login-log-list-wrap,
#app .login-log-list-wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

#app .table-responsive,
#app .table-responsive-sm,
.page-content .table-responsive,
.page-content .table-responsive-sm,
.user-tree-main,
.user-tree-main.pc_overflow,
.deposit-list-page .table-responsive,
.withdraw-list-page .table-responsive,
.bet-list-page .table-responsive,
.stats-page .table-responsive {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

/* 표 자체: 부모 폭에 맞춤 */
#app table.users-data,
#app table.table.users-data,
#app .user-list-page table.users-data,
#app .user-list-page.user-tree-page table.users-data,
#app .user-list-page.user-online-page table.users-data,
#app .user-list-page.user-waiting-page table.users-data,
#app table.deposit-list-table,
#app table.withdraw-list-table,
#app table.login-log-table,
#app .deposit-list-page #table_result,
#app .withdraw-list-page #table_result,
#app .bet-list-page #table_result,
#app .stats-page table.table,
#app table.menu-cols-managed,
#app table.menu-cols-filtered,
.page-content table.users-data,
.page-content table.deposit-list-table,
.page-content table.withdraw-list-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  box-sizing: border-box !important;
}

/* 셀: 넘치면 말줄임 (스크롤 대신) */
#app table.users-data th,
#app table.users-data td,
#app .user-list-page table.users-data th,
#app .user-list-page table.users-data td,
#app .user-list-page.user-tree-page table.users-data th,
#app .user-list-page.user-tree-page table.users-data td,
#app .user-list-page.user-online-page table.users-data th,
#app .user-list-page.user-online-page table.users-data td,
#app .user-list-page.user-waiting-page table.users-data th,
#app .user-list-page.user-waiting-page table.users-data td,
#app table.deposit-list-table th,
#app table.deposit-list-table td,
#app table.withdraw-list-table th,
#app table.withdraw-list-table td,
#app table.bet-list-table th,
#app table.bet-list-table td,
#app table.menu-cols-managed th,
#app table.menu-cols-managed td,
#app .stats-page table.table th,
#app .stats-page table.table td {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

/* 트리 레이아웃: 우측 표 영역이 줄어들 수 있게 */
#app .user-tree-layout,
.user-list-page.user-tree-page .user-tree-layout {
  min-width: 0 !important;
  max-width: 100% !important;
}
#app .user-tree-main,
.user-list-page.user-tree-page .user-tree-main {
  min-width: 0 !important;
  flex: 1 1 auto !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}
#app .user-tree-sidebar,
.user-list-page.user-tree-page .user-tree-sidebar {
  flex-shrink: 0;
}

/* 필터 줄도 줄바꿈 허용 (가로 스크롤 유발 방지) */
.user-list-page .user-list-filter,
.user-list-page .form_search .d-flex.flex-nowrap {
  flex-wrap: wrap !important;
  max-width: 100%;
}
.user-list-page .user-list-filter .form-select,
.user-list-page .user-list-filter .form-control {
  max-width: 100%;
}

/* 좁은 화면: 글자 약간 축소 */
@media (max-width: 1400px) {
  #app .user-list-page table.users-data th,
  #app .user-list-page table.users-data td,
  #app table.deposit-list-table th,
  #app table.deposit-list-table td,
  #app table.withdraw-list-table th,
  #app table.withdraw-list-table td {
    font-size: 0.78rem !important;
    padding-left: 0.28rem !important;
    padding-right: 0.28rem !important;
  }
}
@media (max-width: 1100px) {
  #app .user-list-page table.users-data th,
  #app .user-list-page table.users-data td {
    font-size: 0.72rem !important;
  }
}

/* ==========================================================================
 * FINAL² · 회원 트리: 중간·하단 가로 스크롤 완전 제거 (표 100% 자동 맞춤)
 * 원인: user_config_list min-width:1100 + overflow-x:auto (중간 바)
 *       #table_result min-width:1100 + width:max-content + pc_overflow auto
 * ========================================================================== */
#app .user-list-page.user-tree-page .user_config_list,
.user-list-page.user-tree-page .user_config_list {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-wrap: wrap !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  gap: 0.25rem 0.35rem !important;
  box-sizing: border-box !important;
}
#app .user-list-page.user-tree-page .user_config_list .form-select,
.user-list-page.user-tree-page .user_config_list .form-select {
  min-width: 0 !important;
  max-width: 9rem !important;
  flex: 0 1 auto !important;
}
#app .user-list-page.user-tree-page > .card,
#app .user-list-page.user-tree-page > .card > .card-body,
#app .user-list-page.user-tree-page .mobile_overflow,
#app .user-list-page.user-tree-page .overflow_hidden,
#app .user-list-page.user-tree-page .pc_overflow,
#app .user-list-page.user-tree-page .user-tree-main,
#app .user-list-page.user-tree-page .user-tree-main.pc_overflow,
#app .user-list-page.user-tree-page .user-tree-main .list_lg_wrap,
#app .user-list-page.user-tree-page .user-tree-main .pe-2,
#app .user-list-page.user-tree-page .table-responsive {
  overflow-x: hidden !important;
  overflow-y: visible !important;
  min-width: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
/* ID 선택자 포함 — min-width:1100 / max-content 무력화 */
#app .user-list-page.user-tree-page #table_result,
#app .user-list-page.user-tree-page table#table_result,
#app .user-list-page.user-tree-page table.users-data,
#app .user-list-page.user-tree-page #users-tree-table,
#app .user-list-page.user-tree-page table.table.users-data {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  box-sizing: border-box !important;
}
#app .user-list-page.user-tree-page #table_result th,
#app .user-list-page.user-tree-page #table_result td,
#app .user-list-page.user-tree-page table.users-data th,
#app .user-list-page.user-tree-page table.users-data td,
#app .user-list-page.user-tree-page #users-tree-table td,
#app .user-list-page.user-tree-page #users-tree-table th {
  min-width: 0 !important;
  max-width: none !important;
  width: auto !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}
/* 트리 표 열 비율 (10열 기준: 체크·도메인·등급·상태·ID·이름·요율·Lv·Lv·머니·포인트) */
#app .user-list-page.user-tree-page #table_result .col-check,
#app .user-list-page.user-tree-page #table_result th.col-check { width: 3% !important; }
#app .user-list-page.user-tree-page #table_result .col-domain,
#app .user-list-page.user-tree-page #table_result th.col-domain { width: 7% !important; }
#app .user-list-page.user-tree-page #table_result .col-grade,
#app .user-list-page.user-tree-page #table_result th.col-grade { width: 8% !important; }
#app .user-list-page.user-tree-page #table_result .col-status,
#app .user-list-page.user-tree-page #table_result th.col-status { width: 6% !important; }
#app .user-list-page.user-tree-page #table_result .col-idnick,
#app .user-list-page.user-tree-page #table_result th.col-idnick { width: 18% !important; }
#app .user-list-page.user-tree-page #table_result .col-name,
#app .user-list-page.user-tree-page #table_result th.col-name { width: 10% !important; }
#app .user-list-page.user-tree-page #table_result .col-rate,
#app .user-list-page.user-tree-page #table_result th.col-rate { width: 8% !important; }
#app .user-list-page.user-tree-page #table_result .col-lv,
#app .user-list-page.user-tree-page #table_result .col-glv,
#app .user-list-page.user-tree-page #table_result th.col-lv,
#app .user-list-page.user-tree-page #table_result th.col-glv { width: 5% !important; }
#app .user-list-page.user-tree-page #table_result .col-money,
#app .user-list-page.user-tree-page #table_result .col-point,
#app .user-list-page.user-tree-page #table_result td.col-money,
#app .user-list-page.user-tree-page #table_result td.col-point {
  width: 10% !important;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}
#app .user-list-page.user-tree-page #table_result th.col-money,
#app .user-list-page.user-tree-page #table_result th.col-point {
  width: 10% !important;
  text-align: center !important;
  font-variant-numeric: tabular-nums;
}
/* 필터 줄도 넘치지 않게 */
#app .user-list-page.user-tree-page .user-list-filter {
  flex-wrap: wrap !important;
  overflow: visible !important;
  max-width: 100% !important;
}
/* min_w_* 강제 최소폭 해제 (트리 표 안) */
#app .user-list-page.user-tree-page #table_result [class*="min_w_"],
#app .user-list-page.user-tree-page table.users-data [class*="min_w_"] {
  min-width: 0 !important;
}

/* 콤프 뒤 빈칸 없음: 표=카드 100%, 남는 폭=종류 */
#app .bet-list-page table.table,
#app .bet-list-page #bet-list-table.table.bet-list-table,
#app .bet-list-page #bet-list-table,
.bet-list-page #bet-list-table,
#bet-list-table.table,
#bet-list-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
#app .bet-list-page #bet-list-table th.col-after-win,
#app .bet-list-page #bet-list-table td.col-after-win,
.bet-list-page #bet-list-table th.col-after-win,
.bet-list-page #bet-list-table td.col-after-win,
#bet-list-table th.col-after-win,
#bet-list-table td.col-after-win {
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
#app .bet-list-page #bet-list-table th.col-roll,
#app .bet-list-page #bet-list-table td.col-roll,
.bet-list-page #bet-list-table th.col-roll,
.bet-list-page #bet-list-table td.col-roll,
#bet-list-table th.col-roll,
#bet-list-table td.col-roll {
  width: 70px !important;
  min-width: 70px !important;
  max-width: 70px !important;
  padding-left: 0.2rem !important;
  padding-right: 0.2rem !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  box-sizing: border-box !important;
}
#app .bet-list-page #bet-list-table th.col-roll,
.bet-list-page #bet-list-table th.col-roll,
#bet-list-table th.col-roll,
#app .bet-list-page #bet-list-table th.col-comp,
.bet-list-page #bet-list-table th.col-comp,
#bet-list-table th.col-comp {
  text-align: center !important;
}
#app .bet-list-page #bet-list-table td.col-roll,
.bet-list-page #bet-list-table td.col-roll,
#bet-list-table td.col-roll {
  text-align: right !important;
}
#app .bet-list-page #bet-list-table th.col-type,
#app .bet-list-page #bet-list-table td.col-type,
#app .bet-list-page #bet-list-table td.bet-type-cell {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}
#app .bet-list-page #bet-list-table .col-act,
.bet-list-page #bet-list-table .col-act,
#bet-list-table th.col-act,
#bet-list-table td.col-act {
  display: none !important;
}

/* PC 창 ≤900: 관리자도 모바일 셸로 전환 (PC 레이아웃 축소 아님) */
@media (max-width: 900px) {
  html.layout-admin-mobile,
  body.layout-admin-mobile {
    overflow-x: clip;
  }
  body.layout-admin-mobile #app > .header,
  html.layout-admin-mobile #app > .header {
    flex-wrap: nowrap;
    gap: 6px;
    min-height: 50px;
  }
  body.layout-admin-mobile .header h1 {
    padding-left: 10px !important;
    padding-right: 4px !important;
    min-width: 0;
  }
  body.layout-admin-mobile .header h1 .font_20b {
    font-size: 1.45rem !important;
  }
  body.layout-admin-mobile .filter-bar,
  body.layout-admin-mobile .toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  body.layout-admin-mobile .filter-bar .field,
  body.layout-admin-mobile .filter-bar .form-control,
  body.layout-admin-mobile .filter-bar .form-select,
  body.layout-admin-mobile .toolbar .form-control,
  body.layout-admin-mobile .toolbar .form-select {
    width: 100%;
    max-width: 100%;
  }
  body.layout-admin-mobile .table-responsive,
  body.layout-admin-mobile .table-scroll {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  body.layout-admin-mobile #toggle-dash-body.d-md-none {
    display: block !important;
  }
  body.layout-admin-mobile .dashboard_body.d-none.d-md-block,
  body.layout-admin-mobile #dash-root.d-none.d-md-block,
  body.layout-admin-mobile #dashboard_body.d-none.d-md-block {
    display: none !important;
  }
  body.layout-admin-mobile .dashboard_body.d-block,
  body.layout-admin-mobile #dash-root.d-block,
  body.layout-admin-mobile #dashboard_body.d-block {
    display: block !important;
  }
  body.layout-admin-mobile .page-content .container-fluid {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

/* 배팅리스트: 표가 카드 오른쪽(보라선)까지 100%. 칸 min-width 합이 카드를 넘기지 않게 0 */
#app .bet-list-page .list_lg_wrap,
.bet-list-page .list_lg_wrap {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
#app .page-content .bet-list-page table.table#bet-list-table,
#app .bet-list-page table.table#bet-list-table,
#app .bet-list-page #bet-list-table.table.bet-list-table,
#app .bet-list-page #bet-list-table,
.bet-list-page #bet-list-table,
#bet-list-table.table,
#bet-list-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
#app .bet-list-page #bet-list-table th,
#app .bet-list-page #bet-list-table td,
#app .bet-list-page #bet-list-table col,
.bet-list-page #bet-list-table th,
.bet-list-page #bet-list-table td,
#bet-list-table th,
#bet-list-table td,
#bet-list-table col {
  min-width: 0 !important;
}
#app .bet-list-page #bet-list-table th.col-type,
#app .bet-list-page #bet-list-table td.col-type,
#app .bet-list-page #bet-list-table td.bet-type-cell,
.bet-list-page #bet-list-table .col-type,
#bet-list-table th.col-type,
#bet-list-table td.col-type,
#bet-list-table td.bet-type-cell {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}

/* 03-19 수익통계 세로 칸 110% (행높이·글자) */
#app .stats-page.stats-daily-page #table_result,
.stats-page.stats-daily-page #table_result,
.stats-page.stats-daily-page table.stats-table {
  font-size: 0.99rem !important;
}
#app .stats-page.stats-daily-page #table_result thead th,
#app .stats-page.stats-daily-page table.stats-table thead th,
.stats-page.stats-daily-page #table_result thead th,
.stats-page.stats-daily-page table.stats-table thead th {
  font-size: 0.99rem !important;
  padding: 0.385rem 0.44rem !important;
  line-height: 1.485 !important;
}
#app .stats-page.stats-daily-page #table_result tbody td,
#app .stats-page.stats-daily-page table.stats-table tbody td,
.stats-page.stats-daily-page #table_result th,
.stats-page.stats-daily-page #table_result td,
.stats-page.stats-daily-page table.stats-table th,
.stats-page.stats-daily-page table.stats-table td {
  font-size: 0.99rem !important;
  padding: 0.385rem 0.44rem !important;
  line-height: 1.485 !important;
}

/* 03-20 배팅리스트 세로 칸 110% · 글씨 90% (너비 ACE 유지) */
#app .page-content .bet-list-page #bet-list-table,
#app .bet-list-page #bet-list-table,
.bet-list-page #bet-list-table {
  font-size: 0.945rem !important;
}
#app .page-content .bet-list-page #bet-list-table th,
#app .page-content .bet-list-page #bet-list-table td,
#app .bet-list-page #bet-list-table th,
#app .bet-list-page #bet-list-table td,
.bet-list-page #bet-list-table th,
.bet-list-page #bet-list-table td {
  font-size: 0.945rem !important;
  padding-top: 0.33rem !important;
  padding-bottom: 0.33rem !important;
  line-height: 1.43 !important;
}
#app .page-content .bet-list-page #bet-list-table thead th,
#app .bet-list-page #bet-list-table thead th,
.bet-list-page #bet-list-table thead th {
  font-size: 0.99rem !important;
  padding-top: 0.385rem !important;
  padding-bottom: 0.385rem !important;
  line-height: 1.32 !important;
}
#app .bet-list-page #bet-list-table tr.bet-sum-row > td,
.bet-list-page #bet-list-table tr.bet-sum-row > td {
  font-size: 1.035rem !important;
}
/* 승인대기 리스트: 승인 / 취소 / 대기 */
.user-waiting-page .waiting-status-btns {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 10px;
  padding: 5px 8px;
  background: #6f42c1;
  border-radius: 4px;
}
.user-waiting-page .waiting-status-btns .btn {
  min-width: 3.4rem;
  font-weight: 700;
  padding: 0.2rem 0.55rem;
}
.al-hq-logo{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0}
.al-hq-logo svg{display:block}
.al-hq-logo-sm svg{width:22px;height:22px}
.al-hq-toolbar .al-hq-logo svg{width:48px;height:42px}
.dash-al-hq{margin:10px 0 14px;padding:12px 14px;background:#f7f8fb;border:1px solid #e6e8ee;border-radius:12px}
.dash-al-hq-head{font-size:13px;font-weight:700;color:#334;margin-bottom:10px}
.dash-al-hq-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.dash-al-hq-card{background:#fff;border:1px solid #eceef3;border-radius:12px;padding:12px 14px}
.dash-al-hq-card-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.dash-al-hq-name{font-size:12px;color:#667;font-weight:600}
.dash-al-hq-bal{font-size:1.25rem;font-weight:800;color:#223;letter-spacing:-.02em}
.dash-al-hq-meta{display:flex;gap:14px;font-size:12px;color:#556}
.dash-al-hq-meta b{font-weight:700;color:#223}
.dash-al-hq-table-wrap{background:#fff;border:1px solid #eceef3;border-radius:12px;overflow:auto}
.dash-al-hq-table{font-size:12px}
.dash-al-hq-table th{font-weight:600;color:#667;white-space:nowrap}
.dash-al-hq-led-hq{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.my-al-kpi .lab{display:flex;align-items:center;gap:6px}
.al-hq-shell{
  width:100%;
  background:#fff;
  border:1px solid #dee2e6;
  overflow:hidden;
}
.al-hq-body{padding:16px 16px 24px;width:100%}
.al-hq-block{margin:0 0 20px}
.al-hq-toolbar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  width:100%;
  gap:10px;
  align-items:stretch;
  margin:0;
  padding:12px;
  background:#fff;
  border-bottom:1px solid #dee2e6;
}
.al-hq-tb-item{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:88px;
  padding:12px 16px;
  border-radius:0;
  color:#1f2a30;
  font-weight:700;
  font-size:16px;
  text-decoration:none;
  background:#f7f9fb;
  border:2px solid #d8dee4;
}
.al-hq-tb-meta{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.al-hq-tb-name{font-size:20px;font-weight:900;letter-spacing:-.02em;line-height:1.2}
.al-hq-tb-rate{font-size:13px;font-weight:800;color:#c0392b}
.al-hq-tb-go{font-size:12px;font-weight:700;color:#0d6efd}
.al-hq-tb-item:hover{color:#1f2a30;background:#fff;border-color:#0d6efd}
.al-hq-tb-item.is-on{background:#fff;border-color:#0d6efd;box-shadow:inset 0 -6px 0 #e8b923}
.al-hq-tb-item.is-on .al-hq-tb-go{color:#b45309}
.al-hq-tb-item .al-hq-logo text{fill:inherit}
#al-hq-shell #config-box tr[data-hq]{display:table-row}
#al-hq-shell #my-al-card{border:0;box-shadow:none;margin:0}
.solution-config-table .sol-hq{display:inline-flex;align-items:center;gap:8px;font-weight:800}
.solution-config-table .sol-rate{color:#c0392b;font-weight:800}
@media (max-width:900px){
  .al-hq-toolbar{grid-template-columns:1fr}
  .al-hq-tb-item{min-height:72px;width:100%}
  .my-al-form-grid{grid-template-columns:1fr}
}
.my-al-kpis{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.my-al-kpi{flex:1 1 10rem;min-width:10rem;background:#0d6efd;color:#fff;padding:8px 12px;text-align:center}
.my-al-kpi .lab{color:#fff;justify-content:center;font-weight:700;font-size:13px}
.my-al-kpi .val{color:#fff !important;font-size:1.35rem;font-weight:800}
.my-al-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}
.my-al-form-grid .my-al-memo{grid-column:1 / -1}
.my-al-form-grid .btn{grid-column:1 / -1;width:100%;min-height:44px}
@media (max-width:900px){
  .dash-al-hq-cards{grid-template-columns:1fr}
}
.my-al-order-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 12px}
.my-al-pick{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:#fff;border:1px solid #e3e6ee;border-radius:12px;padding:10px 12px;cursor:pointer}
.my-al-pick.is-on{border-color:#1ec8c3;box-shadow:0 0 0 2px rgba(30,200,195,.25)}
.my-al-pick-name{font-weight:800;font-size:13px}
.my-al-pick-rate{font-size:12px;color:#c0392b;font-weight:700}
.my-al-pick-bal{font-size:12px;color:#556}
.my-al-pick-act{font-size:11px;font-weight:700;color:#1a6}
@media (max-width:700px){
  .my-al-order-cards{grid-template-columns:1fr}
}
