/* 메뉴 폰트 설정 - CSS 변수로 통합 관리 */
:root {
    /* App font (global) */
    --app-font-sans: "Noto Sans KR Variable", "Noto Sans KR", system-ui, -apple-system, "Segoe UI", Roboto, "Apple SD Gothic Neo",
        "Malgun Gothic", "맑은 고딕", Arial, sans-serif;

    /* 네비게이션 메뉴 공통 폰트 설정 (탑 메뉴) */
    --nav-font-size: 1rem;
    --nav-font-weight: 500;
    --nav-font-family: var(--app-font-sans);
    --tab-gap: 0.5rem;
    --tab-gap-y: 1rem;

    --subpage-tab-gap: 1rem;
    
    /* 상위 메뉴 폰트 설정 (nav-font-* 사용) */
    --menu-font-size: var(--nav-font-size);
    --menu-font-weight: var(--nav-font-weight);
    --menu-font-family: var(--nav-font-family);
    
    /* 서브메뉴 폰트 설정 (nav-font-* 사용) */
    --submenu-font-size: var(--nav-font-size);
    --submenu-font-weight: var(--nav-font-weight);
    --submenu-font-family: var(--nav-font-family);
    
    /* 알림 리스트 폰트 및 아이콘 설정 */
    --notification-font-size: 0.875rem;
    --notification-icon-size: 18px;
    --notification-icon-text-gap: 6px;
    
    /* 테이블 폰트 설정 (기본 폰트의 1.5배) */
    --table-font-size: 1.3125rem;
    --table-font-weight: 600;
    --table-font-family: var(--app-font-sans);
    --table-font-color: #323232;

    --table-td-font-size: 1.3125rem;
    --table-td-font-weight: 400;
    --table-td-font-family: var(--app-font-sans);
    --table-td-font-color: #323232;
    
    /* 테이블 tr 폰트 설정 */
    --table-tr-font-size: var(--table-font-size);
    --table-tr-font-weight: var(--table-font-weight);
    --table-tr-font-family: var(--table-font-family);
    --table-tr-font-color: var(--table-font-color);
    
    /* 테이블 td 폰트 설정 */
    --table-td-font-size: var(--table-td-font-size);
    --table-td-font-weight: var(--table-tr-font-weight); /* tr과 동일하게 */
    --table-td-font-family: var(--table-td-font-family);
    --table-td-font-color: var(--table-td-font-color);
    
    /* 버튼 공통 스타일 설정 */
    --btn-font-size: 0.875rem; /* text-sm */
    --btn-font-weight: 600; /* font-semibold */
    --btn-padding-x: 1rem; /* px-4 */
    --btn-padding-y: 0.5rem; /* py-2 */
    --btn-border-radius: 0.5rem; /* rounded-lg */
    
    /* 저장 버튼 */
    --btn-save-bg-color: #2563eb;
    --btn-save-bg-hover: #1d4ed8;
    --btn-save-text-color: #ffffff;
    
    /* 삭제 버튼 */
    --btn-delete-bg-color: #b91c1c;
    --btn-delete-bg-hover: #991b1b;
    --btn-delete-text-color: #ffffff;
    
    /* 등록 버튼 */
    --btn-register-bg-color: #8b5cf6;
    --btn-register-bg-hover: #7c3aed;
    --btn-register-text-color: #ffffff;
    
    /* 새로고침 버튼 */
    --btn-refresh-bg-color: #10b981;
    --btn-refresh-bg-hover: #059669;
    --btn-refresh-text-color: #ffffff;
    
    /* 로그아웃 버튼 */
    --btn-logout-bg-color: #d97706;
    --btn-logout-bg-hover: #b45309;
    --btn-logout-text-color: #ffffff;

    --btn-approve-bg-color: #10b981;
    --btn-approve-bg-hover: #059669;
    --btn-approve-text-color: #ffffff;
    
    /* 수정 버튼 */
    --btn-edit-bg-color: #2563eb;
    --btn-edit-bg-hover: #1d4ed8;
    --btn-edit-text-color: #ffffff;
    
    /* 취소 버튼 */
    --btn-cancel-bg-color: #ffffff;
    --btn-cancel-bg-hover: #f9fafb;
    --btn-cancel-text-color: #374151;
    --btn-cancel-border-color: #d1d5db;

    /* 결제/내역 필터 공통 버튼 (기간 버튼) */
    --filter-period-btn-bg: #f3f4f6;
    --filter-period-btn-border: #d1d5db;
    --filter-period-btn-active-bg: #dbeafe;
    --filter-period-btn-active-border: #2563eb;
    --filter-search-btn-bg: #2563eb;
    --filter-search-btn-hover: #1d4ed8;
    --filter-search-btn-color: #ffffff;
    
    /* 회원등록 모달 폰트 설정 (1.35배 - 조금 작게) */
    --modal-title-font-size: 2.025rem; /* 1.5rem * 1.35 */
    --modal-title-font-weight: 600; /* font-semibold */
    --modal-title-font-family: var(--app-font-sans);
    --modal-title-color: #111827;
    
    --modal-description-font-size: 1.18125rem; /* 0.875rem * 1.35 */
    --modal-description-font-weight: 400;
    --modal-description-font-family: var(--app-font-sans);
    --modal-description-color: #6b7280;
    
    --modal-section-title-font-size: 1.35rem; /* 1rem * 1.35 */
    --modal-section-title-font-weight: 700;
    --modal-section-title-font-family: var(--app-font-sans);
    --modal-section-title-color: #111827;
    
    --modal-label-font-size: 1.08rem; /* 0.8rem * 1.35 */
    --modal-label-font-weight: 600;
    --modal-label-font-family: var(--app-font-sans);
    --modal-label-color: #4b5563;
    
    --modal-input-font-size: 1.18125rem; /* 0.875rem * 1.35 */
    --modal-input-font-weight: 400;
    --modal-input-font-family: var(--app-font-sans);
    --modal-input-color: #111827;
    
    --modal-radio-label-font-size: 1.18125rem; /* 0.875rem * 1.35 */
    --modal-radio-label-font-weight: 400;
    --modal-radio-label-font-family: var(--app-font-sans);
    --modal-radio-label-color: #374151;
    
    /* 공용 모달 스타일 설정 */
    --modal-overlay-bg: rgba(15, 23, 42, 0.65);
    --modal-panel-max-width: 1400px;
    --modal-panel-border-radius: 18px;
    --modal-panel-shadow: 0 25px 70px rgba(15, 23, 42, 0.35);
    --modal-panel-max-height: 92vh;
    --modal-body-padding: 1.5rem 2rem 2rem;
    --modal-section-border-radius: 14px;
    --modal-section-padding: 1.25rem;
    --modal-section-gap: 1.25rem;
    /* 다른 상단 메뉴/드롭다운(z-index 10000+)보다 위로 올려 hover/클릭이 뒤로 새지 않게 */
    --modal-z-index: 20000;
}

html,
body {
    font-family: var(--app-font-sans);
}

/* 브라우저 기본(시스템 고딕 등)로 떨어지는 폼 컨트롤을 Noto 스택으로 */
button,
input,
optgroup,
select,
textarea {
    font-family: var(--app-font-sans);
}

/* 데이터/숫자/로그 영역도 Noto Sans KR로 통일
   - Tailwind의 font-mono 유틸 및 일부 모달/테이블에서 쓰는 monospace 지정 제거 목적 */
.font-mono,
.font-mono * {
    font-family: var(--app-font-sans) !important;
}

/* 테이블/모달 내부에서 인라인 monospace를 쓰는 경우도 최소 범위로 덮어쓰기 */
.admin-data-table [style*="ui-monospace"],
.admin-data-table [style*="monospace"],
#lsFixtureDetailModal [style*="ui-monospace"],
#lsFixtureDetailModal [style*="monospace"],
.betting-folder-detail-scope [style*="ui-monospace"],
.betting-folder-detail-scope [style*="monospace"] {
    font-family: var(--app-font-sans) !important;
}

pre,
code,
kbd,
samp {
    font-family: var(--app-font-sans) !important;
}

/* 알림 리스트 스타일 */
.notification-item {
    gap: var(--notification-icon-text-gap);
}

.notification-icon {
    width: var(--notification-icon-size);
    height: var(--notification-icon-size);
    color: #ffffff;
    flex-shrink: 0;
    display: block;
}

/* 리그 관리 필터 버튼 폰트 굵게 */
.league-filter-btn {
    font-weight: 700 !important;
}

.notification-text {
    font-size: var(--notification-font-size);
    color: #ffffff;
    white-space: nowrap;
}

.notification-count {
    font-weight: 600;
    color: #ffffff;
    margin-left: 0.5rem;
    flex-shrink: 0;
    padding: 0.25rem 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 0.375rem;
    background-color: rgba(255, 255, 255, 0.1);
    width: 3.5rem;
    text-align: center;
    display: inline-block;
    box-sizing: border-box;
}

/* 접속중 유저 카드 padding 조정 */
.p-4 > .card {
    padding: 1rem !important;
}

/* ─────────────────────────────────────────────
   좌측 사이드바 테마 (NAVER 파트너센터 톤)
   - "검정 배경"처럼 보이는 이유: common.css에서 sidebar 배경을 !important로 강제했기 때문
   - 아래는 블랙(#000) 대신 슬레이트/그레이 기반으로 통일
   ───────────────────────────────────────────── */
.sidebar-dashboard {
    --sb-bg: #3f4856;            /* 사이드바 배경(슬레이트) */
    --sb-bg-2: #37404d;          /* 살짝 더 진한 영역 */
    --sb-surface: #2f3744;       /* 카드/패널 배경 */
    --sb-surface-2: #2a313d;     /* 카드 hover/강조 */
    --sb-border: rgba(255, 255, 255, 0.08);
    --sb-text: rgba(255, 255, 255, 0.92);
    --sb-text-muted: rgba(255, 255, 255, 0.65);
    --sb-chip: rgba(255, 255, 255, 0.10);
    --sb-chip-border: rgba(255, 255, 255, 0.14);
    background: linear-gradient(180deg, var(--sb-bg) 0%, var(--sb-bg-2) 100%) !important;
    color: var(--sb-text) !important;
    /* 우측 경계선(스샷의 흰색 라인) */
    position: relative;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.06);
}

.sidebar-dashboard * {
    color: inherit;
}

.sidebar-dashboard .border-b {
    border-color: var(--sb-border) !important;
}

/* 카드/행(접속중 유저, 알림 row 등) */
.sidebar-dashboard .card {
    background-color: var(--sb-surface) !important;
    border: 1px solid var(--sb-border) !important;
    border-radius: 0.65rem;
}

/* ─────────────────────────────────────────────
   상단 탑메뉴 헤더 (NAVER 파트너센터 톤)
   - "배경이 블랙"처럼 보이던 이유: 헤더 배경/텍스트를 #000/흰색으로 강제하던 규칙 + 인라인 스타일
   - 아래는 진한 그레이 바 + 초록 포인트로 통일
   ───────────────────────────────────────────── */
.right-content > header {
    --topbar-bg: #2f343b;
    --topbar-border: rgba(255, 255, 255, 0.10);
    --topbar-text: rgba(255, 255, 255, 0.92);
    --topbar-text-muted: rgba(255, 255, 255, 0.72);
    --topbar-hover: rgba(255, 255, 255, 0.08);
    --topbar-active: #00c73c;
    background: var(--topbar-bg) !important;
    border-color: var(--topbar-border) !important;
    color: var(--topbar-text);
}

.right-content > header nav {
    font-synthesis: none;
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
}

.right-content > header .nav-menu-item a {
    font-weight: 600;
    letter-spacing: -0.01em;
}

.right-content > header .nav-menu-item:hover a {
    font-weight: 650;
}

.right-content > header .nav-menu-item.active a {
    font-weight: 800;
}

.right-content > header #username,
.right-content > header #userRole,
.right-content > header #logoutBtn {
    color: var(--topbar-text) !important;
}

.right-content > header #username {
    font-weight: 700;
    letter-spacing: -0.01em;
}

.right-content > header #userRole {
    color: var(--topbar-text-muted) !important;
    font-weight: 500;
}

.right-content > header #logoutBtn {
    font-weight: 700;
}

.right-content > header #logoutBtn:hover {
    background-color: var(--topbar-hover) !important;
}

/* 상단 헤더 네비게이션: 전체적으로 컴팩트하게 */
.right-content > header {
    --nav-font-size: 0.8125rem;
    --nav-font-weight: 500;
    --tab-gap: 0.35rem;
    --tab-gap-y: 0.75rem;
}

.nav-menu-item {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    font-size: var(--menu-font-size);
    font-weight: var(--menu-font-weight);
    font-family: var(--menu-font-family);
    color: var(--topbar-text-muted);
    transition: all 0.2s;
    border-radius: 0.375rem;
    white-space: nowrap;
}
.nav-menu-item:hover {
    color: var(--topbar-text);
    background-color: var(--topbar-hover);
}
.nav-menu-item.active {
    color: var(--topbar-text);
    background-color: rgba(0, 0, 0, 0.28);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        inset 0 -1px 0 rgba(0, 0, 0, 0.35);
    font-weight: 800;
}

.right-content > header .nav-menu-item a {
    color: inherit !important;
}
.right-content > header .nav-menu-item svg {
    color: inherit !important;
}

/* 분석리포트 네비 AI 배지 */
.nav-menu-item--analysis-report {
    gap: 0.4rem;
}
.nav-menu-item--analysis-report .nav-ai-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.18rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.5625rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
    background: linear-gradient(135deg, #4f46e5, #4338ca);
    border: 1px solid rgba(129, 140, 248, 0.55);
    color: #fff !important;
    box-shadow: 0 1px 6px rgba(79, 70, 229, 0.45);
    flex-shrink: 0;
}
.nav-menu-item--analysis-report .nav-ai-badge__dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #22d3ee;
    box-shadow: 0 0 6px #22d3ee;
    animation: nav-ai-badge-pulse 2s ease-in-out infinite;
}
@keyframes nav-ai-badge-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.55; transform: scale(0.85); }
}
.nav-menu-item--analysis-report:hover .nav-ai-badge,
.nav-menu-item--analysis-report.active .nav-ai-badge {
    border-color: #a5b4fc;
    box-shadow: 0 0 10px rgba(99, 102, 241, 0.55);
}

/* NOTE: 상단 헤더의 서브메뉴 레이아웃은 기본 스타일을 사용 */


/* 금액 입력: placeholder는 회색, 실제 입력값은 흰색 */
input.bet-amount-input,
input.bet-amount-input:focus,
input.bet-amount-input:active {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

input.bet-amount-input::placeholder {
    color: #7c7c7c !important;
    -webkit-text-fill-color: #7c7c7c !important;
}

input.bet-amount-input:placeholder-shown {
    color: #7c7c7c !important;
    -webkit-text-fill-color: #7c7c7c !important;
}

input.bet-amount-input:not(:placeholder-shown),
input.bet-amount-input:not(:placeholder-shown):focus,
input.bet-amount-input:not(:placeholder-shown):active {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* 좌측/우측 레이아웃을 화면 높이에 고정해서 스크롤이 분리되도록 설정 */
html, body {
    height: 100%;
}
body {
    overflow: hidden;
}

.sidebar-dashboard {
    width: 284px !important;
    height: 100vh;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    /* 배경은 위에서 테마 변수로 강제 */
    overflow-x: hidden;
    overflow-y: auto;
    /* 스크롤바: 트랙(긴 바) 숨기고 thumb만 보이게 */
    scrollbar-width: thin; /* Firefox */
    scrollbar-color: rgba(255, 255, 255, 0.28) transparent; /* thumb / track */
}

/* WebKit(Chrome/Edge) 스크롤바: 트랙 투명 + thumb만 */
.sidebar-dashboard::-webkit-scrollbar {
    width: 8px;
}
.sidebar-dashboard::-webkit-scrollbar-track {
    background: transparent;
}
.sidebar-dashboard::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.26);
    border-radius: 9999px;
    border: 2px solid transparent; /* 트랙처럼 보이는 영역 제거 */
    background-clip: padding-box;
}
.sidebar-dashboard::-webkit-scrollbar-thumb:hover {
    background-color: rgba(255, 255, 255, 0.36);
}

/* 알림 텍스트 톤 */
.sidebar-dashboard .notification-text {
    color: var(--sb-text) !important;
    font-weight: 600;
}
.sidebar-dashboard .notification-icon {
    color: var(--sb-text-muted) !important;
}

/* 숫자 배지(우측 count) */
.sidebar-dashboard .notification-count {
    background-color: var(--sb-chip) !important;
    border-color: var(--sb-chip-border) !important;
    color: var(--sb-text) !important;
    font-weight: 800;
}

/* 리스트 row hover 톤(HTML에 hover:bg-gray-800/50가 있어도 이게 위에 오도록) */
.sidebar-dashboard .hover\\:bg-gray-800\\/50:hover,
.sidebar-dashboard #notification-settings-toggle:hover,
.sidebar-dashboard .px-4 .flex.cursor-pointer:hover {
    background-color: rgba(255, 255, 255, 0.06) !important;
}

/* ─── 사이드바: 금일 게임 통계 패널도 같은 톤으로 ─── */
#sidebar-game-stats-panel {
    --sidebar-stats-teal: #7dd3fc;
    --sidebar-stats-orange: #fbbf24;
    --sidebar-stats-rose: #fb7185;
    --sidebar-stats-violet: #a78bfa;
    --sidebar-stats-profit: #7dd3fc;
    --sidebar-stats-bg: var(--sb-surface);
    --sidebar-stats-border: var(--sb-border);
}

#sidebar-game-stats-panel .sidebar-stats-card {
    background: var(--sidebar-stats-bg);
    border-color: var(--sidebar-stats-border);
}

#sidebar-game-stats-panel .sidebar-stats-search {
    background: rgba(0, 0, 0, 0.12);
    border-color: var(--sidebar-stats-border);
}
.main-layout {
    display: flex;
    height: 100vh;
    overflow: hidden;
}
.right-content {
    flex: 1;
    height: 100vh;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

/* 우측 본문은 헤더 아래에서 독립 스크롤 */
.right-content > main {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}
.header-logo-container {
    display: flex;
    align-items: center;
    margin-right: 1rem;
    flex-shrink: 0;
    height: 2.5rem;
}
.header-logo {
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    flex-shrink: 0;
}
.aside-logo-container #logo-link {
    width: 100%;
    max-height: 100%;
}
.aside-logo-container .header-logo {
    max-height: 2rem;
    object-position: center;
}
.header-logo-placeholder {
    height: 3rem;
    width: 3rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    font-size: 0.875rem;
}
.aside-logo-container {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
@media (min-width: 640px) {
    .aside-logo-container {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}
@media (min-width: 1024px) {
    .aside-logo-container {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}
.submenu {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    background: #2b3037;
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 0.375rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    min-width: 200px;
    z-index: 9999;
    margin-top: 0;
    white-space: nowrap;
    padding-top: 0.5rem;
}
.submenu-item {
    display: block;
    padding: 0.5rem 1rem;
    font-size: var(--submenu-font-size);
    font-weight: 500;
    font-family: var(--submenu-font-family);
    color: rgba(255, 255, 255, 0.90);
    transition: all 0.2s;
    border-radius: 0.375rem;
}
.submenu-item:hover {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.08);
    font-weight: 650;
}

/* 서브메뉴 활성 항목(있으면 적용) */
.submenu-item.active,
.submenu-item.is-active,
.submenu-item[aria-current="page"] {
    font-weight: 800;
}

/* 탭 버튼 공통 폰트 설정 */
.sports-tab-btn,
.support-tab-btn,
.event-tab-btn,
.partner-tab-btn,
.member-tab-btn,
.member-detail-tab-btn,
.stats-tab-btn,
.settings-tab-btn,
.monitoring-tab-btn,
button[data-section^="sports-"],
button[data-section^="support-"],
button[data-section^="event-"],
button[data-section^="partner-"],
button[class*="tab-btn"],
button.sports-tab-btn.text-sm,
button.support-tab-btn.text-sm,
button.partner-tab-btn.text-sm,
button.member-tab-btn.text-sm,
button.member-detail-tab-btn.text-sm {
    font-size: var(--nav-font-size) !important;
    font-weight: var(--nav-font-weight) !important;
    font-family: var(--nav-font-family) !important;
}

/* 데모 토스트 전용(비활성 느낌) - 환경설정 상단 탭 */
.settings-tab-btn[data-section="settings-domain"],
.settings-tab-btn[data-section="settings-ip-vpn"] {
    opacity: 0.55 !important;
    filter: grayscale(0.25);
    cursor: default !important;
}
.settings-tab-btn[data-section="settings-domain"]:hover,
.settings-tab-btn[data-section="settings-ip-vpn"]:hover {
    background-color: #f9fafb !important;
    color: #4b5563 !important;
}

/* 데모 토스트 전용(비활성 느낌) - 사이드바 서브메뉴 */
.submenu-item[data-submenu="settings-domain"],
.submenu-item[data-submenu="settings-ip-vpn"] {
    opacity: 0.65;
    cursor: default;
}
.submenu-item[data-submenu="settings-domain"]:hover,
.submenu-item[data-submenu="settings-ip-vpn"]:hover {
    background-color: transparent !important;
    color: rgba(255, 255, 255, 0.9) !important;
    font-weight: 500 !important;
}

/* 공통 필 탭 스타일 (하부관리처럼) */
.pill-tab {
    padding: 0.6rem 0.9rem !important;
    border-radius: 9999px !important;
    border: 1px solid #e5e7eb !important;
    background-color: #f9fafb !important;
    color: #4b5563 !important;
    font-weight: 700 !important;
    transition: all 0.2s ease-in-out;
    margin-top: var(--tab-gap-y);
    margin-bottom: var(--tab-gap-y);
}
.pill-tab:not(:last-child) {
    margin-right: var(--tab-gap) !important;
}
.pill-tab:hover {
    background-color: #f3f4f6 !important;
    color: #111827 !important;
}
.pill-tab.active {
    background-color: #8b5cf6 !important; /* violet (logo tone) */
    border-color: #8b5cf6 !important;
    color: #ffffff !important;
    font-weight: 800 !important;
}

/* 모든 탭 버튼에 필 스타일 기본 적용 (색상은 기존 로직 유지) */
.sports-tab-btn,
.support-tab-btn,
.event-tab-btn,
.partner-tab-btn,
.member-tab-btn,
.member-detail-tab-btn,
.stats-tab-btn,
.settings-tab-btn,
.monitoring-tab-btn {
    border-radius: 9999px !important;
    padding: 0.6rem 0.9rem !important;
    margin-top: var(--tab-gap-y);
    margin-bottom: var(--tab-gap-y);
}
.sports-tab-btn:not(:last-child),
.support-tab-btn:not(:last-child),
.event-tab-btn:not(:last-child),
.partner-tab-btn:not(:last-child),
.member-tab-btn:not(:last-child),
.member-detail-tab-btn:not(:last-child),
.stats-tab-btn:not(:last-child),
.settings-tab-btn:not(:last-child),
.monitoring-tab-btn:not(:last-child) {
    margin-right: var(--tab-gap) !important;
}


/* 테이블 공통 스타일 정의 - 모든 테이블에 적용 */
/* th (헤더) */
th {
    font-size: var(--table-font-size) !important;
    font-weight: var(--table-font-weight) !important;
    font-family: var(--table-font-family) !important;
    color: var(--table-font-color) !important;
    text-align: center !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    background-color: #e0e3e8 !important; /* 더 진한 배경색 (gray-300) */
}

/* thead 배경색도 진하게 */
thead,
thead tr {
    background-color: #d1d5db !important;
}

/* tr (행) */
tr {
    font-size: var(--table-tr-font-size) !important;
    font-weight: var(--table-tr-font-weight) !important;
    font-family: var(--table-tr-font-family) !important;
    color: var(--table-tr-font-color) !important;
    text-align: center !important;
}

/* td (셀) */
td {
    font-size: var(--table-td-font-size) !important;
    font-weight: var(--table-td-font-weight) !important;
    font-family: var(--table-td-font-family) !important;
    color: var(--table-td-font-color) !important;
    text-align: center !important;
}

/* 테이블 내부 모든 요소 */
table *,
th *,
tr *,
td *,
table p,
table span,
table div,
table a,
table button,
table input,
table select {
    font-size: inherit !important;
    font-weight: inherit !important;
    font-family: inherit !important;
    color: inherit !important;
    text-align: center !important;
}

/* 미니게임 경기결과: 적특/정산/정산취소 — 컬러 버튼은 흰 글자 유지 */
table button.minigame-result-push-btn,
table button.minigame-result-settle-btn,
table button.minigame-result-cancel-btn {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 600 !important;
}

/* 미니게임 게임설정: 테이블 내 저장/삭제·토글·순서 버튼 색 유지 */
table button.mgs-btn-sm {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
}
table .mgs-toggle button {
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
}
table .mgs-toggle button.is-on-use,
table .mgs-toggle button.is-on-off {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
table button.mgs-order-btn {
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
}
table button.mgs-order-btn:hover:not(:disabled) {
    color: #2563eb !important;
    -webkit-text-fill-color: #2563eb !important;
}
table .mgs-order-num {
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
    font-size: 0.6875rem !important;
    font-weight: 700 !important;
}

/* 컬러 액션 버튼 흰 글자 유지: 미입금회원 확인 / 내역정산 정산 / 결과미처리 일괄정산 */
table button[data-action="confirm-no-deposit-inquiry"],
table button[data-action="settle-single-betting"],
table button[data-ls-act="fixture-settle-all"] {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 600 !important;
    border: none !important;
    cursor: pointer !important;
}
table button[data-action="confirm-no-deposit-inquiry"] {
    background-color: #2563eb !important;
}
table button[data-action="settle-single-betting"] {
    background-color: #0284c7 !important;
}
table button[data-ls-act="fixture-settle-all"] {
    background-color: #dc2626 !important;
}

/* 테이블 테두리 설정 - 모든 페이지의 테이블에 적용 */
table {
    border-collapse: collapse !important;
    border: 1px solid #e5e7eb !important;
    width: 100%;
}

table th,
table td {
    border: 1px solid #e5e7eb !important;
    padding: 0.5rem 0.75rem !important;
}

table thead th {
    border-bottom: 2px solid #9ca3af !important;
    background-color: #d1d5db !important; /* 더 진한 배경색 (gray-300) */
    font-weight: 600 !important;
}

table tbody tr {
    border-bottom: 1px solid #e5e7eb !important;
    font-weight: 600 !important;
}

/* 버튼 공통 스타일 */
.btn-common,
button[class*="btn-save"],
button[class*="btn-delete"],
button[class*="btn-register"],
button[class*="btn-refresh"],
button[class*="btn-logout"],
button[class*="btn-approve"],
button[class*="btn-edit"],
.member-table-edit-btn,
.member-table-logout-btn,
.member-table-delete-btn {
    font-size: var(--btn-font-size) !important;
    font-weight: var(--btn-font-weight) !important;
    padding: var(--btn-padding-y) var(--btn-padding-x) !important;
    border-radius: var(--btn-border-radius) !important;
    border: none !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease-in-out !important;
}

/* 저장 버튼 */
.btn-save,
button[data-action="save"],
button[data-action*="save"]:not([data-action*="delete"]):not([data-action*="logout"]) {
    background-color: var(--btn-save-bg-color) !important;
    color: var(--btn-save-text-color) !important;
}
.btn-save:hover,
button[data-action="save"]:hover,
button[data-action*="save"]:not([data-action*="delete"]):not([data-action*="logout"]):hover {
    background-color: var(--btn-save-bg-hover) !important;
}

/* 삭제 버튼 */
.btn-delete,
button[data-action="delete"],
button[data-action*="delete"],
.member-table-delete-btn {
    background-color: var(--btn-delete-bg-color) !important;
    color: var(--btn-delete-text-color) !important;
}
.btn-delete:hover,
button[data-action="delete"]:hover,
button[data-action*="delete"]:hover,
.member-table-delete-btn:hover {
    background-color: var(--btn-delete-bg-hover) !important;
}

/* 등록 버튼 */
.btn-register,
button[data-action*="add"],
button[id*="AddBtn"],
button[id*="addBtn"] {
    background-color: var(--btn-register-bg-color) !important;
    color: var(--btn-register-text-color) !important;
}
.btn-register:hover,
button[data-action*="add"]:hover,
button[id*="AddBtn"]:hover,
button[id*="addBtn"]:hover {
    background-color: var(--btn-register-bg-hover) !important;
}

/* 새로고침 버튼 */
.btn-refresh,
button[id*="RefreshBtn"],
button[id*="refreshBtn"],
button[data-action*="refresh"] {
    background-color: var(--btn-refresh-bg-color) !important;
    color: var(--btn-refresh-text-color) !important;
}
.btn-refresh:hover,
button[id*="RefreshBtn"]:hover,
button[id*="refreshBtn"]:hover,
button[data-action*="refresh"]:hover {
    background-color: var(--btn-refresh-bg-hover) !important;
}

/* 로그아웃 버튼 */
.btn-logout,
button[data-action*="logout"],
.member-table-logout-btn {
    background-color: var(--btn-logout-bg-color) !important;
    color: var(--btn-logout-text-color) !important;
}
.btn-logout:hover,
button[data-action*="logout"]:hover,
.member-table-logout-btn:hover {
    background-color: var(--btn-logout-bg-hover) !important;
}

/* 승인 버튼 */
.btn-approve,
button[data-action*="approve"],
.member-table-approve-btn {
    background-color: var(--btn-approve-bg-color) !important;
    color: var(--btn-approve-text-color) !important;
}
.btn-approve:hover,
button[data-action*="approve"]:hover,
.member-table-approve-btn:hover {
    background-color: var(--btn-approve-bg-hover) !important;
}

/* 취소 버튼 */
.btn-cancel {
    background-color: var(--btn-cancel-bg-color) !important;
    color: var(--btn-cancel-text-color) !important;
    border: 1px solid var(--btn-cancel-border-color) !important;
}
.btn-cancel:hover {
  background-color: var(--btn-cancel-bg-hover) !important;
}

/* 충전/환전 작업 버튼: 가독성 (너무 크지 않게 소폭 상향) */
#paymentDepositTableBody [data-action="update-deposit-status"],
#paymentDepositTableBody [data-action="toggle-deposit-is-deleted"],
#paymentWithdrawTableBody [data-action="update-withdrawal-status"],
#paymentWithdrawTableBody [data-action="toggle-withdrawal-is-deleted"],
#paymentMileageWithdrawTableBody [data-action="update-mileage-withdrawal-status"] {
    font-size: 0.8125rem !important;
    font-weight: 700 !important;
    padding: 0.35rem 0.65rem !important;
    border-radius: 0.45rem !important;
    line-height: 1.15 !important;
    min-height: 1.85rem !important;
}
#paymentDepositTableBody td .flex.flex-wrap.items-center.gap-2,
#paymentWithdrawTableBody td .flex.flex-wrap.items-center.gap-2 {
    gap: 0.35rem !important;
}

/* 결제/내역 필터 기간 버튼 (공통) */
.filter-period-btn {
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  height: 2rem !important;
  min-height: 2rem !important;
  padding: 0 0.75rem !important;
  border-radius: 0.5rem !important;
  border: 1px solid var(--filter-period-btn-border) !important;
  background-color: var(--filter-period-btn-bg) !important;
  color: #374151 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
}
.filter-period-btn:hover {
  background-color: #e5e7eb !important;
}
.filter-period-btn.active {
  background-color: var(--filter-period-btn-active-bg) !important;
  border-color: var(--filter-period-btn-active-border) !important;
  color: #1d4ed8 !important;
}
/* 결제/내역 검색 버튼 (파란색) */
.filter-search-btn {
  background-color: var(--filter-search-btn-bg) !important;
  color: var(--filter-search-btn-color) !important;
  border: none !important;
  font-weight: 600 !important;
  height: 2rem !important;
  min-height: 2rem !important;
  padding: 0 1rem !important;
  border-radius: 0.5rem !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
}
.filter-search-btn:hover {
  background-color: var(--filter-search-btn-hover) !important;
  color: #fff !important;
}

/* 필터 영역 컨트롤 높이 통일 (버튼과 동일) */
.filter-field {
  height: 2rem !important;
  min-height: 2rem !important;
  box-sizing: border-box !important;
  font-size: 0.875rem !important;
  padding: 0 0.5rem !important;
  border-radius: 0.5rem !important;
  line-height: 1.25 !important;
}
select.filter-field {
  padding-right: 1.5rem !important;
}

/* 경기 배팅 팝업 — 통계·필터 (팝업 창은 admin.html 인라인 CSS 미적용) */
#lsFxbSummary .admin-bet-stats-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 0;
    width: 100%;
}
@media (max-width: 900px) {
    #lsFxbSummary .admin-bet-stats-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
#lsFxbSummary .admin-bet-stat-card {
    min-width: 0;
    border: 1px solid #e8dfd0;
    border-radius: 0.5rem;
    background: #faf8f5;
    padding: 0.75rem 1rem;
    box-shadow: 0 1px 2px rgba(120, 90, 40, 0.05);
}
#lsFxbSummary .admin-bet-stat-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #78716c;
    margin-bottom: 0.35rem;
    line-height: 1.35;
}
#lsFxbSummary .admin-bet-stat-value {
    font-size: 1.0625rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-weight: 700;
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
#lsFxbSummary .admin-bet-stat-value--profit-pos {
    color: #15803d;
}
#lsFxbSummary .admin-bet-stat-value--profit-neg {
    color: #b91c1c;
}
#lsFxbRoot > .card {
    padding: 1rem !important;
}
#lsFxbRoot .ls-fxb-summary-wrap {
    margin-bottom: 1rem;
}
#lsFxbRoot .ls-fx-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    box-shadow: 0 1px 2px 0 rgba(15, 23, 42, 0.04);
    overflow: hidden;
}
#lsFxbRoot .ls-fx-card--summary .ls-fx-card-title {
    margin: 0;
    padding: 0.875rem 1.25rem;
    font-size: 1.0625rem;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: -0.02em;
    line-height: 1.35;
    border-bottom: 1px solid #dbeafe;
    background: linear-gradient(180deg, #f1f5f9 0%, #e8eef5 100%);
}
#lsFxbRoot .ls-fx-card-title {
    margin: 0;
    padding: 0.875rem 1.25rem;
    font-size: 1.0625rem;
    font-weight: 700;
    color: #111827;
    letter-spacing: -0.02em;
    line-height: 1.35;
    border-bottom: 2px solid #d1d5db;
    background: #f5f5f4;
}
#lsFxbRoot .ls-fx-card-body {
    padding: 1.125rem 1.25rem 1.25rem;
    background: #fff;
}
#lsFxbRoot .ls-fx-match-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.875rem;
}
#lsFxbRoot .ls-fx-match-title {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem 0.75rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: #111827;
    letter-spacing: -0.025em;
    line-height: 1.4;
}
#lsFxbRoot .ls-fx-match-side {
    display: inline-flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}
#lsFxbRoot .ls-fx-match-side-label {
    font-size: 0.6875rem;
    font-weight: 600;
    color: #9ca3af;
    letter-spacing: 0.02em;
}
#lsFxbRoot .ls-fx-match-side-name {
    font-size: 1.1875rem;
    font-weight: 700;
    color: #111827;
    word-break: break-word;
}
#lsFxbRoot .ls-fx-match-vs {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #d1d5db;
    align-self: flex-end;
    padding-bottom: 0.2rem;
}
#lsFxbRoot .ls-fx-meta-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0;
    margin-top: 0.875rem;
    padding-top: 0.875rem;
    border-top: 1px solid #f3f4f6;
    font-size: 0.8125rem;
    color: #6b7280;
    line-height: 1.5;
}
#lsFxbRoot .ls-fx-meta-line--fixture-id {
    margin-top: 0.5rem;
    padding-top: 0;
    border-top: none;
}
#lsFxbRoot .ls-fx-meta-line--pick {
    margin-top: 0.625rem;
    padding-top: 0.625rem;
    border-top: 1px dashed #e5e7eb;
}
#lsFxbRoot .ls-fx-meta-sep {
    color: #d1d5db;
    margin: 0 0.5rem;
    font-weight: 400;
    user-select: none;
}
#lsFxbRoot .ls-fx-meta-item {
    color: #6b7280;
    font-weight: 500;
}
#lsFxbRoot .ls-fx-meta-item strong {
    color: #374151;
    font-weight: 650;
}
#lsFxbRoot .ls-fx-meta-item--mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.75rem;
    color: #9ca3af;
}
#lsFxbRoot .ls-fx-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 0.375rem;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    color: #4b5563;
    letter-spacing: -0.01em;
}
#lsFxbRoot .ls-fx-badge-muted {
    background: #f9fafb;
    color: #6b7280;
    border-color: #e5e7eb;
    font-weight: 500;
}
#lsFxbRoot .ls-fx-badge-pm {
    background: #f8fafc;
    color: #374151;
    border-color: #e5e7eb;
}
#lsFxbRoot .ls-fx-badge-ip {
    background: #f3f4f6;
    color: #1f2937;
    border-color: #d1d5db;
}
#lsFxbRoot .ls-fx-badge-pick {
    background: #eef2ff;
    color: #4338ca;
    border-color: #c7d2fe;
}
#lsFxbFilters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    overflow-x: auto;
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    background: #f9fafb;
    padding: 0.75rem;
    box-sizing: border-box;
}
#lsFxbFilters .ls-fxb-filter-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #4b5563;
    white-space: nowrap;
    flex-shrink: 0;
}
#lsFxbFilters .ls-fxb-filter-label.ls-fxb-filter-label-gap {
    margin-left: 0.25rem;
}
#lsFxbFilters select.ls-fxb-filter-select,
#lsFxbFilters select.filter-field {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    display: inline-block;
    height: 2rem !important;
    min-height: 2rem !important;
    min-width: 8.5rem;
    padding: 0 2rem 0 0.625rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    color: #374151 !important;
    background-color: #ffffff !important;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.5rem center !important;
    background-size: 1.25em 1.25em !important;
    border: 1px solid #d1d5db !important;
    border-radius: 0.5rem !important;
    box-sizing: border-box !important;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}
#lsFxbFilters select.ls-fxb-filter-select.ls-fxb-filter-select-wide {
    min-width: 10rem;
}
#lsFxbFilters select.ls-fxb-filter-select:hover,
#lsFxbFilters select.filter-field:hover {
    border-color: #9ca3af !important;
    background-color: #ffffff !important;
}
#lsFxbFilters select.ls-fxb-filter-select:focus,
#lsFxbFilters select.filter-field:focus {
    outline: none;
    border-color: #2563eb !important;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

/* 수정 버튼 */
.btn-edit,
button[data-action*="edit"],
.member-table-edit-btn {
    background-color: var(--btn-edit-bg-color) !important;
    color: var(--btn-edit-text-color) !important;
}
.btn-edit:hover,
button[data-action*="edit"]:hover,
.member-table-edit-btn:hover {
    background-color: var(--btn-edit-bg-hover) !important;
}

/* 공통 배지 스타일 (테이블 text-sm 본문과 동일 크기) */
.badge-common {
    padding: 0.125rem 0.5rem !important; /* py-0.5 px-2 */
    border-radius: 9999px !important;
    font-size: 0.875rem !important; /* text-sm — 배팅내역·회원목록 본문과 맞춤 */
    font-weight: 600 !important;
    color: #ffffff !important;
    line-height: 1.25 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
}

/* 레벨 배지 (공통) */
.badge-level {
    padding: 0.125rem 0.5rem !important; /* py-0.5 px-2 */
    border-radius: 9999px !important;
    font-size: 0.875rem !important; /* text-sm */
    font-weight: 600 !important;
    background-color: var(--badge-level-bg, #2563eb) !important;
    color: #ffffff !important;
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1.25 !important;
}

/* 하부표기 배지 (공통) */
.badge-hierarchy-head { background-color: #4f46e5 !important; color: #ffffff !important; }   /* 부본사 - indigo */
.badge-hierarchy-top { background-color: #0891b2 !important; color: #ffffff !important; }    /* 총판 - cyan */
.badge-hierarchy-agency { background-color: #0d9488 !important; color: #ffffff !important; } /* 대리점 - teal */
.badge-hierarchy-member { background-color: #475569 !important; color: #ffffff !important; } /* 회원 - slate */

/* 모달 공통 스타일 */
.modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    overflow-y: auto;
}
.modal-overlay.active {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 5rem;
}
.modal-content {
    background: white;
    border-radius: 0.75rem;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    max-width: 1000px;
    width: 98%;
    max-height: 85vh;
    margin: 0 auto;
    position: relative;
    display: flex;
    flex-direction: column;
}

table tbody tr:hover {
    background-color: #f9fafb !important;
}

table tbody tr:last-child {
    border-bottom: none !important;
}

/* ============================================================
   전체 배팅내역 기준 테이블 타이포그래피 통일
   - 대상: 각 메뉴의 본문(content-section) 테이블
   - 목적: 폰트, 사이즈, 색상을 betting-all 톤으로 맞춤
   ============================================================ */
.content-section table {
    width: 100%;
    border-collapse: collapse !important;
    border: 1px solid #e5e7eb !important;
    background-color: #ffffff !important;
}

.content-section table thead,
.content-section table thead tr {
    background-color: #f9fafb !important;
}

.content-section table thead th {
    padding: 0.75rem 1rem !important; /* px-4 py-3 */
    font-size: 0.75rem !important;    /* text-xs */
    font-weight: 600 !important;      /* font-semibold */
    font-family: inherit !important;
    color: #374151 !important;        /* gray-700 */
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    background-color: #f9fafb !important;
    border: 1px solid #e5e7eb !important;
    border-bottom: 1px solid #e5e7eb !important;
}

.content-section table tbody td {
    padding: 0.75rem 1rem !important; /* px-4 py-3 */
    font-size: 0.875rem !important;   /* text-sm */
    font-weight: 400 !important;
    font-family: inherit !important;
    color: #4b5563 !important;        /* gray-600 */
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
}

.content-section table tbody tr {
    background-color: #ffffff !important;
}

.content-section table tbody tr:hover {
    background-color: #f9fafb !important;
}

/* ============================================================
   데이터 테이블 (배팅 내역 등) — 연한 헤더, 가로선 위주, 넉넉한 행 높이
   (.content-section 기존 격자 테이블 규칙보다 아래에서 덮어씀)
   ============================================================ */
.admin-data-table-wrap {
    border-radius: 0.5rem;
    border: 1px solid #e8eaed;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

/* 모니터링 테이블: 고정 높이 + 내부 스크롤 + sticky header */
.monitoring-table-wrap {
    max-height: min(60vh, 620px);
    overflow: auto;
}
.monitoring-table-wrap table.admin-data-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
}

.content-section .admin-data-table-wrap table.admin-data-table,
#userDetailModal .admin-data-table-wrap table.admin-data-table,
#lsFxbRoot .admin-data-table-wrap table.admin-data-table {
    width: 100%;
    border-collapse: collapse !important;
    border-spacing: 0;
    background: #ffffff !important;
    border: none !important;
}

.content-section .admin-data-table-wrap table.admin-data-table thead,
.content-section .admin-data-table-wrap table.admin-data-table thead tr,
#userDetailModal .admin-data-table-wrap table.admin-data-table thead,
#userDetailModal .admin-data-table-wrap table.admin-data-table thead tr,
#lsFxbRoot .admin-data-table-wrap table.admin-data-table thead,
#lsFxbRoot .admin-data-table-wrap table.admin-data-table thead tr {
    background: #fafafa !important;
}

.content-section .admin-data-table-wrap table.admin-data-table thead th,
#userDetailModal .admin-data-table-wrap table.admin-data-table thead th,
#lsFxbRoot .admin-data-table-wrap table.admin-data-table thead th {
    padding: 1rem 0.85rem !important;
    font-size: 0.9375rem !important;
    font-weight: 700 !important;
    color: #4b5563 !important;
    text-align: center !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-family: inherit !important;
    background: #fafafa !important;
    border: none !important;
    border-bottom: 1px solid #e5e7eb !important;
    vertical-align: middle !important;
}

.content-section .admin-data-table-wrap table.admin-data-table thead tr th:not(:last-child),
#userDetailModal .admin-data-table-wrap table.admin-data-table thead tr th:not(:last-child),
#lsFxbRoot .admin-data-table-wrap table.admin-data-table thead tr th:not(:last-child) {
    border-right: 1px solid #f0f0f0 !important;
}

.content-section .admin-data-table-wrap table.admin-data-table tbody td,
#userDetailModal .admin-data-table-wrap table.admin-data-table tbody td,
#lsFxbRoot .admin-data-table-wrap table.admin-data-table tbody td {
    padding: 1rem 1rem !important;
    font-size: 0.875rem !important;
    font-weight: 400 !important;
    color: #374151 !important;
    background: #ffffff !important;
    border: none !important;
    border-bottom: 1px solid #f3f4f6 !important;
    vertical-align: middle !important;
}

.content-section .admin-data-table-wrap table.admin-data-table tbody tr:last-child td,
#userDetailModal .admin-data-table-wrap table.admin-data-table tbody tr:last-child td,
#lsFxbRoot .admin-data-table-wrap table.admin-data-table tbody tr:last-child td {
    border-bottom: none !important;
}

.content-section .admin-data-table-wrap table.admin-data-table tbody tr:hover td,
#userDetailModal .admin-data-table-wrap table.admin-data-table tbody tr:hover td,
#lsFxbRoot .admin-data-table-wrap table.admin-data-table tbody tr:hover td {
    background-color: #fafafa !important;
}

.content-section .admin-data-table-wrap table.admin-data-table thead th.admin-data-table-num,
#userDetailModal .admin-data-table-wrap table.admin-data-table thead th.admin-data-table-num,
#lsFxbRoot .admin-data-table-wrap table.admin-data-table thead th.admin-data-table-num {
    text-align: center !important;
    font-variant-numeric: tabular-nums;
}

/* 관리자 활동 모니터링 — 긴 URL/본문 열 줄바꿈 (가로 스크롤 완화) */
.content-section .admin-data-table-wrap table.admin-monitoring-activity-table tbody td.admin-monitoring-wrap-cell,
#userDetailModal .admin-data-table-wrap table.admin-monitoring-activity-table tbody td.admin-monitoring-wrap-cell {
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    min-width: 0;
    max-width: min(28rem, 42vw);
    vertical-align: top !important;
}

.content-section .admin-data-table-wrap table.admin-monitoring-activity-table tbody td.admin-monitoring-datetime-cell,
#userDetailModal .admin-data-table-wrap table.admin-monitoring-activity-table tbody td.admin-monitoring-datetime-cell {
    white-space: normal !important;
    min-width: 8.75rem;
    vertical-align: top !important;
}

/* 사이트설정 — 국가/리그/마켓 LSports 업데이트 버튼 (테이블 inherit 색상 덮어씀) */
button.lsports-sync-update-btn,
.admin-data-table button.lsports-sync-update-btn {
    display: inline-block;
    min-width: 5.5rem;
    padding: 0.5rem 1rem !important;
    font-size: 0.8125rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    color: #ffffff !important;
    background-color: #059669 !important;
    border: none !important;
    border-radius: 0.5rem !important;
    cursor: pointer !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    text-align: center !important;
}
button.lsports-sync-update-btn:hover:not(:disabled),
.admin-data-table button.lsports-sync-update-btn:hover:not(:disabled) {
    background-color: #047857 !important;
    color: #ffffff !important;
}
button.lsports-sync-update-btn:disabled,
.admin-data-table button.lsports-sync-update-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed !important;
    color: #ffffff !important;
}

/* 파트너(하부관리) 테이블: 헤더/셀 줄바꿈 방지 */
.partner-table th,
.partner-table td {
    white-space: nowrap !important;
}
.nav-menu-item.has-submenu {
    position: relative;
}
.nav-menu-item.has-submenu:hover .submenu,
.nav-menu-item.has-submenu .submenu:hover {
    display: block !important;
}
/* 서브메뉴가 표시되도록 강제 */
.has-submenu:hover .submenu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}
/* 서브메뉴와 메뉴 항목 사이의 보이지 않는 연결 영역 */
.nav-menu-item.has-submenu::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 0.5rem;
    background: transparent;
    z-index: 10000;
}
.nav-menu-item.has-submenu:hover::after {
    display: block;
}
.nav-menu-item.has-submenu > a {
    pointer-events: auto;
}
header {
    overflow: visible !important;
}
header > div {
    overflow: visible !important;
}
header > div > div {
    overflow: visible !important;
}
nav {
    overflow: visible !important;
}
.info-card-header {
    background: linear-gradient(to right, #f9fafb, #f3f4f6);
    padding: 0.75rem 1rem;
    border-bottom: 2px solid #e5e7eb;
}
.info-item {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #f3f4f6;
    transition: background-color 0.15s;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.info-item:last-child {
    border-bottom: none;
}
.info-item:hover {
    background-color: #f9fafb;
}
.info-items-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
}
.info-items-grid .info-item {
    border-right: 1px solid #f3f4f6;
}
.info-items-grid .info-item:nth-child(even) {
    border-right: none;
}
.info-items-grid .info-item:nth-last-child(-n+2) {
    border-bottom: none;
}
.info-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0;
}
.info-value {
    font-size: 0.875rem;
    font-weight: 500;
    color: #111827;
    text-align: right;
    margin-left: auto;
}
/* 전체 페이지 로딩 오버레이 (회원 상세 등 modal-overlay z-index 10100보다 위 — 전체 화면 차단) */
.global-loading-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 50000;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.global-loading-overlay.active {
    display: flex;
    pointer-events: auto;
    cursor: wait;
}
.global-loading-spinner {
    background: white;
    border-radius: 0.75rem;
    padding: 2rem 3rem;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.global-loading-spinner .spinner {
    width: 3rem;
    height: 3rem;
    border: 4px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
@keyframes spin {
    to { transform: rotate(360deg); }
}
.global-loading-spinner .text {
    font-size: 1rem;
    font-weight: 500;
    color: #374151;
}
/* Checkbox 크기 확대 - 라디오 버튼처럼 간단하게 */
input[type="checkbox"] {
    width: 1.5rem !important; /* 24px - 크게 */
    height: 1.5rem !important; /* 24px - 크게 */
    cursor: pointer;
    accent-color: #2563eb;
    flex-shrink: 0 !important;
}
/* Checkbox 라벨 폰트 크기 확대 */
.bg-white label.block.text-sm,
.bg-white label.block.text-sm.font-medium {
    font-size: 1rem !important; /* text-base */
    font-weight: 500 !important;
}
.bg-white p.text-xs.text-gray-500 {
    font-size: 0.875rem !important; /* text-sm */
}
        
/* 공통 Checkbox 및 Radio Button 스타일 */
/* Checkbox 토글 스위치 - 공통 스타일 */
.form-toggle-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}
.form-toggle-switch input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.form-toggle-switch .toggle-slider {
    width: 4rem !important; /* 64px */
    height: 2.5rem !important; /* 40px */
    background-color: #d1d5db;
    border-radius: 9999px;
    position: relative;
    transition: background-color 0.3s;
}
.form-toggle-switch .toggle-slider::after {
    content: '';
    position: absolute;
    height: 2rem !important; /* 32px */
    width: 2rem !important; /* 32px */
    left: 0.25rem;
    top: 0.25rem;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.form-toggle-switch input:checked + .toggle-slider {
    background-color: #2563eb;
}
.form-toggle-switch input:checked + .toggle-slider::after {
    transform: translateX(1.5rem);
}
.form-toggle-switch .toggle-label {
    margin-left: 0.75rem;
    font-size: 1rem !important;
    font-weight: 500;
    color: #1f2937 !important; /* gray-800 - 항상 보이게 */
    white-space: nowrap;
}

/* Radio Button - 공통 스타일 */
.form-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.form-radio-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}
.form-radio-item input[type="radio"] {
    width: 1.25rem !important; /* 20px */
    height: 1.25rem !important; /* 20px */
    cursor: pointer;
    accent-color: #2563eb;
}
.form-radio-item label,
.form-radio-item span {
    font-size: 1rem !important;
    font-weight: 500;
    color: #1f2937 !important; /* gray-800 - 항상 보이게 */
    cursor: pointer;
    margin: 0;
}

/* 모든 Checkbox 텍스트 - 확실히 검정색으로 보이게 (최우선, 모든 선택자) */
span[id$="Text"],
span#pointAutoAccumulationText,
span#pointWithdrawalEnabledText,
span#pointExpirationEnabledText,
span#emailNotificationEnabledText,
span#smsNotificationEnabledText,
span#actionLogEnabledText,
span#errorLogEnabledText,
span#autoBackupEnabledText,
span#multiLanguageEnabledText,
span#darkModeEnabledText,
span#adminIpWhitelistText,
span#adminActionLogText,
span#adminEmailNotificationText,
span#partnerIpWhitelistEnabledText,
span#partnerAutoCommissionEnabledText,
span#partnerSettlementNotificationEnabledText,
span#autoDepositApprovalText,
span#withdrawalIdentityVerificationRequiredText,
span#memberSignupEnabledText,
span#siteEnabledText,
span#combinationBettingEnabledText,
label.inline-flex.items-center.cursor-pointer span,
label.relative.inline-flex.items-center.cursor-pointer span,
label.inline-flex.items-center.cursor-pointer > span,
label.relative.inline-flex.items-center.cursor-pointer > span,
label.inline-flex.items-center.cursor-pointer > span.text-base,
label.relative.inline-flex.items-center.cursor-pointer > span.text-base,
label.inline-flex.items-center.cursor-pointer > span.text-gray-800,
label.relative.inline-flex.items-center.cursor-pointer > span.text-gray-800 {
    color: #000000 !important; /* 완전한 검정색 */
    font-size: 1.125rem !important; /* text-lg - 더 크게 */
    font-weight: 700 !important; /* font-bold - 더 굵게 */
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 999 !important;
    position: relative !important;
    line-height: 1.5 !important;
    text-shadow: none !important;
    -webkit-text-fill-color: #000000 !important;
    background: transparent !important;
    text-decoration: none !important;
    border: none !important;
    outline: none !important;
}

/* 모든 텍스트 요소 강제 검정색 */
* {
    --text-color-checkbox: #000000 !important;
}
span[id$="Text"] {
    color: var(--text-color-checkbox) !important;
    -webkit-text-fill-color: var(--text-color-checkbox) !important;
}

/* Radio button 텍스트 보이게 - 모든 라디오 버튼 */
label.inline-flex.items-center input[type="radio"] + *,
label.inline-flex.items-center:has(input[type="radio"]),
label.inline-flex.items-center.gap-2 {
    color: #111827 !important; /* gray-900 - 더 진하게 */
    font-size: 1.125rem !important; /* text-lg */
    font-weight: 700 !important; /* font-bold */
}
/* Radio button 자체 크기 확대 */
input[type="radio"] {
    width: 1.25rem !important;
    height: 1.25rem !important;
    cursor: pointer;
    accent-color: #2563eb;
}

/* Checkbox 공통 스타일 - 텍스트 확실히 보이게 */
label.inline-flex.items-center.cursor-pointer,
label.relative.inline-flex.items-center.cursor-pointer {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    position: relative !important;
}

/* Checkbox 옆 텍스트 - 확실히 보이게 */
label.inline-flex.items-center.cursor-pointer > span.text-base,
label.inline-flex.items-center.cursor-pointer > span[id$="Text"],
label.relative.inline-flex.items-center.cursor-pointer > span.text-base,
label.relative.inline-flex.items-center.cursor-pointer > span[id$="Text"] {
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: #111827 !important; /* gray-900 - 더 진하게 */
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 10 !important;
    position: relative !important;
    margin-left: 0 !important;
    line-height: 1.5 !important;
    text-shadow: none !important;
    -webkit-text-fill-color: #111827 !important;
}

/* Checkbox 라벨 스타일 - 라디오 버튼처럼 */
label.inline-flex.items-center.cursor-pointer,
label.relative.inline-flex.items-center.cursor-pointer {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    cursor: pointer;
}


.submenu-container {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--tab-gap);
    padding: 0.25rem 0;
    margin-left: 1rem;
    overflow-x: auto;
}

.subpage-submenu-container {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--subpage-tab-gap);
    padding: 1rem 0.5rem;
    margin-left: 1rem;
    overflow-x: auto;
}

/* subpage-submenu-container 내 버튼 공용 스타일 */
.subpage-submenu-container button {
    border-radius: 0 !important;
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    color: #777777 !important; /* default: 검정색 */
    transition: color 0.2s ease-in-out;
}

/* subpage-submenu-container 내에서만 pill-tab 스타일 오버라이드 */
.subpage-submenu-container button.pill-tab {
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.subpage-submenu-container button.pill-tab.active {
    background-color: transparent !important;
    border: none !important;
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    text-decoration: underline !important;
    text-decoration-thickness: 3px !important;
    text-underline-offset: 1.3rem !important;
    color: #8b5cf6 !important; /* active: 보라색(로고 톤) */
}

/* ============================================================
   환경설정(SETTINGS) UI 통일
   - 서브탭 바 가독성/간격/스크롤 통일
   - 테이블 래퍼 높이(약 8행) + 내부 스크롤
   ============================================================ */
.admin-subtabs-bar {
    border: 1px solid #e5e7eb;
    background: #ffffff;
    border-radius: 0.75rem;
    padding: 0.5rem;
}
.admin-subtabs-bar .subpage-submenu-container {
    margin-left: 0;
    padding: 0.25rem;
    gap: 0.5rem;
    overflow-x: auto;
}
.admin-subtabs-bar .subpage-submenu-container::-webkit-scrollbar {
    height: 8px;
}
.admin-subtabs-bar .subpage-submenu-container::-webkit-scrollbar-thumb {
    background: #e5e7eb;
    border-radius: 9999px;
}
/* 기존 subpage-submenu-container 오버라이드(환경설정 바 내부에서만) */
.admin-subtabs-bar .subpage-submenu-container button {
    border-radius: 9999px !important;
    padding: 0.6rem 1rem !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    font-size: 0.9375rem !important;
    font-weight: 650 !important;
    color: #374151 !important;
    border: 1px solid #e5e7eb !important;
    background-color: #ffffff !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.admin-subtabs-bar .subpage-submenu-container button:hover {
    background-color: #f9fafb !important;
    border-color: #d1d5db !important;
    color: #111827 !important;
}
.admin-subtabs-bar .subpage-submenu-container button.pill-tab.active {
    text-decoration: none !important;
    font-size: 0.9375rem !important;
    font-weight: 800 !important;
    background-color: #111827 !important;
    border-color: #111827 !important;
    color: #ffffff !important;
}

/* settings 테이블: 통계 테이블 규칙 + 고정 높이 스크롤 */
.admin-settings-table-wrap {
    max-height: min(55vh, 520px);
    overflow: auto;
    padding-bottom: 12px;
}

/* settings 폼 레이아웃/타이포 통일 */
.admin-settings-grid-3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 1024px) {
    .admin-settings-grid-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.25rem;
        align-items: start;
    }
}
.admin-settings-field {
    min-width: 0;
}
/* 제목+설명 블록과 토글을 같은 행에 둘 때: 스위치를 첫 줄 텍스트 기준으로 정렬 */
.admin-settings-field.flex.items-start .admin-settings-switch {
    flex-shrink: 0;
    padding-top: 0.125rem;
}

/* settings 폼(레거시 마크업)에서 행간/구분선만 빠르게 통일 */
.admin-settings-rows > .py-4,
.admin-settings-rows > .flex.justify-between.py-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
    border-bottom: 1px solid #e5e7eb !important;
}
.admin-settings-rows > :last-child {
    border-bottom: 0 !important;
}

/* settings 폼: 라벨/컨트롤 한 줄 + 행 구분선 */
.admin-settings-inline-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid #e5e7eb;
}
.admin-settings-inline-left {
    min-width: 140px;
    flex: 0 0 140px;
}
.admin-settings-inline-right {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    justify-content: flex-end;
}
.admin-settings-inline-right > * {
    width: min(520px, 100%);
}
@media (max-width: 640px) {
    .admin-settings-inline-row {
        align-items: stretch;
        flex-direction: column;
        gap: 0.5rem;
    }
    .admin-settings-inline-left {
        min-width: 0;
        flex: 1 1 auto;
    }
    .admin-settings-inline-right {
        justify-content: flex-start;
    }
    .admin-settings-inline-right > * {
        width: 100%;
    }
}
.admin-settings-label {
    display: block;
    font-size: 1.125rem;
    font-weight: 650;
    color: #374151;
    margin-bottom: 0.75rem;
}
.admin-settings-help {
    margin-top: 0.35rem;
    font-size: 0.875rem;
    line-height: 1.45;
    color: #6b7280;
}
.admin-settings-amount-preview {
    margin-top: 0.5rem;
    font-size: 1rem;
    line-height: 1.45;
}
.admin-settings-amount-preview-value {
    font-weight: 800;
    color: #1d4ed8;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
}
.admin-settings-amount-preview-hint {
    font-weight: 500;
    color: #6b7280;
    font-size: 0.875rem;
}
.admin-settings-input,
.admin-settings-select {
    width: 100%;
    height: 2.5rem;
    border-radius: 0.5rem;
    border: 1px solid #d1d5db;
    padding: 0 0.875rem;
    font-size: 1rem;
    color: #111827;
    background: #ffffff;
    box-sizing: border-box;
}
.admin-settings-input:focus,
.admin-settings-select:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.25);
    border-color: #2563eb;
}
.admin-settings-textarea {
    width: 100%;
    border-radius: 0.5rem;
    border: 1px solid #d1d5db;
    padding: 0.65rem 0.875rem;
    font-size: 1rem;
    line-height: 1.5;
    color: #111827;
    background: #ffffff;
    box-sizing: border-box;
}
.admin-settings-textarea:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.25);
    border-color: #2563eb;
}
.admin-settings-switch {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}
.admin-settings-switch .admin-settings-switch-text {
    font-weight: 800;
    font-size: 1.125rem;
    color: #111827;
}

/* 환경설정 상단 카드 그리드 — 같은 행 패널 높이 통일 (Tailwind items-stretch와 함께 사용) */
.admin-settings-grid-cards {
    align-items: stretch;
}
/* 환경설정: Tailwind text-sm/text-xs 레거시 마크업 가독성 통일 */
.card:has(.admin-settings-grid-cards) > .flex h2.text-xl {
    font-size: 1.375rem !important;
    line-height: 1.35;
}
.admin-settings-grid-cards .admin-settings-grid-panel > h3.text-xl {
    font-size: 1.3125rem !important;
    line-height: 1.35;
}
.admin-settings-grid-cards label.block.text-sm.font-medium.text-gray-700,
.admin-settings-grid-cards label.block.text-sm.font-medium.text-gray-700.mb-1,
.admin-settings-grid-cards label.block.text-sm.font-medium.text-gray-700.mb-2 {
    font-size: 1.0625rem !important;
    line-height: 1.45;
}
.admin-settings-grid-cards .text-xs.text-gray-500 {
    font-size: 0.875rem !important;
    line-height: 1.45;
}
.admin-settings-grid-cards .admin-settings-rows input:not([type="checkbox"]):not(.admin-settings-input),
.admin-settings-grid-cards .admin-settings-rows select:not(.admin-settings-select),
.admin-settings-grid-cards .admin-settings-rows textarea:not(.admin-settings-textarea) {
    height: 2.5rem;
    padding: 0 0.875rem;
    font-size: 1rem !important;
    line-height: 1.5;
}
.admin-settings-grid-cards .admin-settings-rows textarea:not(.admin-settings-textarea) {
    height: auto;
    min-height: 5.5rem;
    padding: 0.65rem 0.875rem;
}
.admin-settings-grid-cards [id$="Text"] {
    font-size: 1.25rem !important;
}
.admin-settings-grid-cards .card .px-4.py-2.text-sm,
.card:has(.admin-settings-grid-cards) .px-4.py-2.text-sm {
    font-size: 0.9375rem !important;
    padding-top: 0.625rem !important;
    padding-bottom: 0.625rem !important;
}
.admin-settings-grid-cards > fieldset.admin-settings-grid-panel,
.admin-settings-grid-cards > .admin-settings-grid-panel {
    box-sizing: border-box;
    height: 100%;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.admin-settings-grid-cards .admin-settings-grid-panel-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* 환경설정 패널 — 미색 배경으로 영역/패널 구분 */
.card:has(.admin-settings-grid-cards) {
    background-color: #eef2f7 !important;
    border: 1px solid #dbe3ec !important;
    border-radius: 0.75rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

/* 충/환전 신청·대기 합계 — 가로 한 줄(세로 공간 절약) */
.payment-pending-summary-wrap {
    display: block;
    width: 100%;
}
.payment-pending-summary-panel {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-height: 3.25rem;
    padding: 0.75rem 1.15rem;
    background-color: #f8fafc !important;
    border-color: #cbd5e1 !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}
.payment-pending-summary-panel .payment-pending-summary-title {
    font-size: 0.875rem;
    font-weight: 700;
    color: #111827;
    margin: 0;
    padding: 0;
    border: 0;
    white-space: nowrap;
    flex-shrink: 0;
}
.payment-pending-summary-panel .payment-pending-summary-body {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem 1rem;
    padding: 0;
    min-width: 0;
    flex: 1 1 auto;
}
.payment-pending-summary-panel .payment-pending-summary-stats {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.625rem;
    flex-wrap: nowrap;
    white-space: nowrap;
}
.payment-pending-summary-panel .payment-pending-summary-amount,
.payment-pending-summary-panel .payment-pending-summary-count {
    font-size: 1.0625rem;
    line-height: 1.3;
    font-weight: 700;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
.payment-pending-summary-panel .payment-pending-summary-unit {
    font-size: 1.0625rem;
    font-weight: 700;
    font-family: inherit;
    color: #111827;
    margin-left: 0.125rem;
}
.payment-pending-summary-panel .payment-pending-summary-sep {
    color: #cbd5e1;
    font-size: 0.9375rem;
    font-weight: 300;
    line-height: 1;
    user-select: none;
}
.payment-pending-summary-panel .payment-pending-summary-hint {
    margin: 0;
    text-align: left;
    font-size: 0.75rem;
    line-height: 1.35;
    color: #9ca3af;
    white-space: nowrap;
}
.admin-settings-grid-cards > .admin-settings-grid-panel,
.admin-settings-grid-cards > fieldset.admin-settings-grid-panel {
    background-color: #f8fafc !important;
    border-color: #cbd5e1 !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
.admin-settings-grid-cards > .admin-settings-grid-panel:nth-child(3n+1),
.admin-settings-grid-cards > fieldset.admin-settings-grid-panel:nth-child(3n+1) {
    background-color: #f8fafc !important;
    border-color: #c7d2e0 !important;
}
.admin-settings-grid-cards > .admin-settings-grid-panel:nth-child(3n+2),
.admin-settings-grid-cards > fieldset.admin-settings-grid-panel:nth-child(3n+2) {
    background-color: #faf9f7 !important;
    border-color: #d6d3d1 !important;
}
.admin-settings-grid-cards > .admin-settings-grid-panel:nth-child(3n+3),
.admin-settings-grid-cards > fieldset.admin-settings-grid-panel:nth-child(3n+3) {
    background-color: #f7faf9 !important;
    border-color: #cfd9d3 !important;
}
.admin-settings-grid-cards .admin-settings-grid-panel > h3.text-xl,
.admin-settings-grid-cards fieldset.admin-settings-grid-panel > h3.text-xl,
.admin-settings-grid-cards fieldset.admin-settings-grid-panel > .text-xl.font-bold,
.admin-settings-grid-cards .admin-settings-grid-panel > .text-xl.font-bold {
    background: transparent;
    border-bottom-color: #cbd5e1 !important;
}
.admin-settings-grid-cards .admin-settings-input,
.admin-settings-grid-cards .admin-settings-select,
.admin-settings-grid-cards .admin-settings-textarea,
.admin-settings-grid-cards .admin-settings-rows input:not([type="checkbox"]),
.admin-settings-grid-cards .admin-settings-rows select,
.admin-settings-grid-cards .admin-settings-rows textarea {
    background-color: #ffffff !important;
}

/* 환경설정: 추후 작업 등으로 섹션 비활성화 */
/* 환경설정: 섹션 전체 비활성(카드 단위) — 배경·테두리·얇은 줄무늬로 한눈에 구분 */
.admin-settings-suspended-panel {
    position: relative;
    isolation: isolate;
    pointer-events: none;
    background-color: #eef0f3 !important;
    border-color: #94a3b8 !important;
    border-style: dashed !important;
    box-shadow: none !important;
    color: #64748b;
}
.admin-settings-suspended-panel > * {
    position: relative;
    z-index: 2;
}
.admin-settings-suspended-panel::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: 1;
    pointer-events: none;
    background: repeating-linear-gradient(
        -14deg,
        transparent,
        transparent 12px,
        rgba(148, 163, 184, 0.07) 12px,
        rgba(148, 163, 184, 0.07) 13px
    );
}
.admin-settings-suspended-panel h3,
.admin-settings-suspended-panel h4,
.admin-settings-suspended-panel h5 {
    color: #64748b !important;
}
.admin-settings-suspended-panel .text-gray-900,
.admin-settings-suspended-panel .text-gray-800,
.admin-settings-suspended-panel .text-gray-700 {
    color: #64748b !important;
}
.admin-settings-suspended-panel .text-gray-500,
.admin-settings-suspended-panel .text-gray-600 {
    color: #94a3b8 !important;
}
.admin-settings-suspended-panel input:not([type="checkbox"]),
.admin-settings-suspended-panel select,
.admin-settings-suspended-panel textarea {
    background-color: #e2e8f0 !important;
    border-color: #cbd5e1 !important;
    color: #64748b !important;
}
.admin-settings-suspended-panel input[type="checkbox"].ls-fx-cb:disabled {
    opacity: 0.55;
    filter: grayscale(0.25);
}

.admin-settings-grid-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 1024px) {
    .admin-settings-grid-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
        align-items: start;
    }
}

/* 공용 모달 스타일 */
.common-modal {
    position: fixed;
    inset: 0;
    background: var(--modal-overlay-bg);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    z-index: var(--modal-z-index);
}

.common-modal.active {
    display: flex;
}

.common-modal .modal-panel {
    width: 100%;
    max-width: var(--modal-panel-max-width);
    background: #fff;
    border-radius: var(--modal-panel-border-radius);
    box-shadow: var(--modal-panel-shadow);
    overflow: hidden;
    max-height: var(--modal-panel-max-height);
    display: flex;
    flex-direction: column;
}

.common-modal .modal-body {
    padding: var(--modal-body-padding);
    overflow-y: auto;
}

.common-modal .modal-footer {
    flex-shrink: 0;
}

/* 푸터 닫기: 저장(btn-save)과 동일 블루 계열 */
.common-modal .modal-footer .common-modal-close-btn {
    background-color: #dbeafe !important;
    color: #1d4ed8 !important;
    border: 1px solid #3b82f6 !important;
}
.common-modal .modal-footer .common-modal-close-btn:hover {
    background-color: #bfdbfe !important;
    color: #1e3a8a !important;
    border-color: #2563eb !important;
}

.common-modal .modal-section {
    border: 1px solid #e5e7eb;
    border-radius: var(--modal-section-border-radius);
    padding: var(--modal-section-padding);
    background: #fff;
}

.common-modal .modal-section + .modal-section {
    margin-top: var(--modal-section-gap);
}

.common-modal .modal-section-title {
    font-size: var(--modal-section-title-font-size) !important;
    font-weight: var(--modal-section-title-font-weight) !important;
    font-family: var(--modal-section-title-font-family) !important;
    color: var(--modal-section-title-color) !important;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.common-modal .modal-form-label {
    font-size: var(--modal-label-font-size) !important;
    font-weight: var(--modal-label-font-weight) !important;
    font-family: var(--modal-label-font-family) !important;
    color: var(--modal-label-color) !important;
    display: block;
    margin-bottom: 0.35rem;
}

.common-modal .modal-title {
    font-size: var(--modal-title-font-size) !important;
    font-weight: var(--modal-title-font-weight) !important;
    font-family: var(--modal-title-font-family) !important;
    color: var(--modal-title-color) !important;
}

.common-modal .modal-description {
    font-size: var(--modal-description-font-size) !important;
    font-weight: var(--modal-description-font-weight) !important;
    font-family: var(--modal-description-font-family) !important;
    color: var(--modal-description-color) !important;
}

.common-modal input[type="text"],
.common-modal input[type="email"],
.common-modal input[type="password"],
.common-modal input[type="number"],
.common-modal input[type="date"],
.common-modal input[type="color"],
.common-modal select,
.common-modal textarea {
    font-size: var(--modal-input-font-size) !important;
    font-weight: var(--modal-input-font-weight) !important;
    font-family: var(--modal-input-font-family) !important;
    color: var(--modal-input-color) !important;
}

/* 공용 모달: 네이티브 file input 단독 사용 시에도 선택 UI 보이게 */
.common-modal input[type="file"]:not(.note-compose-file-input) {
    display: block;
    width: 100%;
    min-height: 2.5rem;
    padding: 0.375rem 0.5rem;
    font-size: 0.875rem;
    color: #374151;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    cursor: pointer;
}

.common-modal input[type="file"]:not(.note-compose-file-input)::file-selector-button {
    margin-right: 0.75rem;
    padding: 0.375rem 0.875rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #fff;
    background: #2563eb;
    border: 1px solid #1d4ed8;
    border-radius: 0.375rem;
    cursor: pointer;
}

.common-modal label.inline-flex {
    font-size: var(--modal-radio-label-font-size) !important;
    font-weight: var(--modal-radio-label-font-weight) !important;
    font-family: var(--modal-radio-label-font-family) !important;
    color: var(--modal-radio-label-color) !important;
}

/* 이미지 미리보기 스타일 */
.common-modal .image-preview-empty {
    transition: all 0.2s ease-in-out;
}

.common-modal .image-preview-empty:hover {
    border-color: #9ca3af;
    background-color: #f9fafb;
}

.common-modal .image-preview-card {
    transition: all 0.2s ease-in-out;
}

.common-modal .image-preview-card:hover {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.common-modal .image-preview-remove-btn {
    cursor: pointer;
    padding: 0.25rem;
    border-radius: 0.25rem;
}

.common-modal .image-preview-remove-btn:hover {
    background-color: #fee2e2;
}

.subpage-submenu-container button:hover {
    color: #8b5cf6 !important; /* hover: 보라색(로고 톤) */
}

/* 테이블 로딩 인디케이터 */
.table-loading-spinner {
    width: 1.5rem;
    height: 1.5rem;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    flex-shrink: 0;
    display: inline-block;
}

.table-loading-text {
    font-size: 1rem;
    font-weight: 500;
    color: #6b7280;
    white-space: nowrap;
}

/* ========== 공용 테이블 페이징 바 (여러 섹션에서 재사용) ==========
   사용 시 컨테이너에 .table-paging, 내부는 .table-paging__left / __right 구조.
   ID는 섹션별로 다르게 (예: xxxSummary, xxxPageSize, xxxPrev, xxxNext, xxxPageInfo).
   HTML 구조 예:
   <div id="원하는ID" class="table-paging">
     <div class="table-paging__left">
       <span id="xxxSummary" class="table-paging__summary">총 0건</span>
       <span class="table-paging__divider" aria-hidden="true"></span>
       <label class="table-paging__page-size">페이지당 <select id="xxxPageSize">...</select></label>
     </div>
     <div class="table-paging__right">
       <button type="button" id="xxxPrev" class="table-paging__btn">이전</button>
       <span id="xxxPageInfo" class="table-paging__page-info">1 / 1</span>
       <button type="button" id="xxxNext" class="table-paging__btn">다음</button>
     </div>
   </div>
   ========== */
.table-paging {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-top: 1.25rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid #e5e7eb;
    background: #fafafa;
    border-radius: 0 0 0.5rem 0.5rem;
}

.table-paging__left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.table-paging__summary {
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
}

.table-paging__divider {
    width: 1px;
    height: 1rem;
    background: #d1d5db;
    flex-shrink: 0;
}

.table-paging__page-size {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: #4b5563;
}

.table-paging__page-size select {
    min-width: 4.5rem;
    padding: 0.375rem 0.5rem 0.375rem 0.5rem;
    font-size: 0.875rem;
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    background: #fff;
    color: #374151;
    cursor: pointer;
}

.table-paging__page-size select:hover,
.table-paging__page-size select:focus {
    border-color: #9ca3af;
    outline: none;
}

.table-paging__right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.table-paging__page-info {
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
    min-width: 3.5rem;
    text-align: center;
}

.table-paging__btn {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    background: #fff;
    color: #374151;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.table-paging__btn:hover:not(:disabled) {
    background: #f3f4f6;
    border-color: #9ca3af;
}

.table-paging__btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ─── 사이드바: 금일 게임 통계 (모바일형 대시보드 카드) ─── */
#sidebar-game-stats-panel {
    --sidebar-stats-teal: #7dd3fc;
    --sidebar-stats-orange: #fbbf24;
    --sidebar-stats-rose: #fb7185;
    --sidebar-stats-violet: #a78bfa;
    --sidebar-stats-profit: #7dd3fc;
    /* 사이드바 테마 변수와 동기화 */
    --sidebar-stats-bg: var(--sb-surface);
    --sidebar-stats-border: var(--sb-border);
}

#sidebar-game-stats-panel .sidebar-stats-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 0.65rem;
    border-bottom: 1px solid var(--sidebar-stats-border);
}

#sidebar-game-stats-panel .sidebar-stats-tab {
    flex: 1;
    padding: 0.5rem 0.2rem 0.42rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: #737373;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
    border-radius: 0;
}

#sidebar-game-stats-panel .sidebar-stats-tab:hover {
    color: #d4d4d4;
}

#sidebar-game-stats-panel .sidebar-stats-tab--active {
    color: #ffffff;
    border-bottom-color: #22c55e;
}

/* 상세/요약 패널: 스크롤 끝에서 마지막 카드가 바닥에 붙지 않도록 */
#sidebar-game-stats-panel #sidebar-game-stats-panel-detail,
#sidebar-game-stats-panel #sidebar-game-stats-panel-summary {
    padding-bottom: 1.5rem;
    box-sizing: border-box;
}

/* 상세 탭: 검색 + 칩 */
#sidebar-game-stats-panel .sidebar-stats-toolbar {
    margin-bottom: 0.65rem;
}

#sidebar-game-stats-panel .sidebar-stats-search-wrap {
    position: relative;
    margin-bottom: 0.5rem;
}

#sidebar-game-stats-panel .sidebar-stats-search {
    width: 100%;
    box-sizing: border-box;
    padding: 0.45rem 2rem 0.45rem 0.6rem;
    font-size: 0.7rem;
    color: #fafafa;
    background: #0f172a;
    border: 1px solid var(--sidebar-stats-border);
    border-radius: 0.5rem;
    outline: none;
}

#sidebar-game-stats-panel .sidebar-stats-search::placeholder {
    color: #525252;
}

#sidebar-game-stats-panel .sidebar-stats-search-wrap .sidebar-stats-search-icon {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    width: 0.95rem;
    height: 0.95rem;
    color: #737373;
    pointer-events: none;
}

#sidebar-game-stats-panel .sidebar-stats-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

#sidebar-game-stats-panel .sidebar-stats-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.25rem 0.45rem;
    font-size: 0.6rem;
    font-weight: 700;
    border-radius: 9999px;
    border: 1px solid transparent;
    cursor: default;
    white-space: nowrap;
}

#sidebar-game-stats-panel .sidebar-stats-chip--bet-on {
    background: #15803d;
    color: #fff;
    border-color: #22c55e;
}

#sidebar-game-stats-panel .sidebar-stats-chip--outline {
    background: transparent;
    color: #e5e5e5;
    border-color: #22c55e;
}

#sidebar-game-stats-panel .sidebar-stats-chip--muted {
    background: transparent;
    color: #737373;
    border-color: #404040;
    font-weight: 600;
}

/* 카드 */
#sidebar-game-stats-panel .sidebar-stats-card {
    background: var(--sidebar-stats-bg);
    border-radius: 0.65rem;
    border: 1px solid var(--sidebar-stats-border);
    overflow: hidden;
    margin-bottom: 0.5rem;
}

#sidebar-game-stats-panel .sidebar-stats-card:last-child {
    margin-bottom: 0;
}

#sidebar-game-stats-panel .sidebar-stats-card--sport {
    border-color: var(--sidebar-stats-teal);
    box-shadow: 0 0 0 1px rgba(20, 184, 166, 0.12);
}

#sidebar-game-stats-panel .sidebar-stats-card--casino {
    border-color: var(--sidebar-stats-orange);
    box-shadow: 0 0 0 1px rgba(245, 158, 11, 0.12);
}

#sidebar-game-stats-panel .sidebar-stats-card--minigame {
    border-color: var(--sidebar-stats-rose);
    box-shadow: 0 0 0 1px rgba(251, 113, 133, 0.12);
}

#sidebar-game-stats-panel .sidebar-stats-card--holdem {
    border-color: var(--sidebar-stats-violet);
    box-shadow: 0 0 0 1px rgba(167, 139, 250, 0.12);
}

#sidebar-game-stats-panel .sidebar-stats-card--summary {
    border-color: #3f3f46;
}

#sidebar-game-stats-panel .sidebar-stats-card__title {
    text-align: center;
    font-size: 0.8rem;
    font-weight: 800;
    color: #fafafa;
    padding: 0.5rem 0.55rem;
    letter-spacing: -0.02em;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(255, 255, 255, 0.03);
}

#sidebar-game-stats-panel .sidebar-stats-card--sport .sidebar-stats-card__title {
    color: #5eead4;
}

#sidebar-game-stats-panel .sidebar-stats-card--casino .sidebar-stats-card__title {
    color: #fcd34d;
}

#sidebar-game-stats-panel .sidebar-stats-card--minigame .sidebar-stats-card__title {
    color: #fda4af;
}

#sidebar-game-stats-panel .sidebar-stats-card--holdem .sidebar-stats-card__title {
    color: #c4b5fd;
}

#sidebar-game-stats-panel .sidebar-stats-card__body {
    padding: 0.5rem 0.65rem 0.6rem;
}

#sidebar-game-stats-panel .sidebar-stats-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.8rem;
    padding: 0.34rem 0;
}

#sidebar-game-stats-panel .sidebar-stats-row__label {
    color: #a3a3a3;
    font-weight: 600;
    flex-shrink: 0;
    font-size: 0.8rem;
}

#sidebar-game-stats-panel .sidebar-stats-row__val {
    color: #ffffff;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    text-align: right;
    font-size: 0.88rem;
}

#sidebar-game-stats-panel .sidebar-stats-row--profit .sidebar-stats-row__label {
    color: var(--sidebar-stats-profit);
}

#sidebar-game-stats-panel .sidebar-stats-row--profit-zero .sidebar-stats-row__label {
    color: #a3a3a3;
}

#sidebar-game-stats-panel .sidebar-stats-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.06);
    margin: 0.35rem 0;
}

#sidebar-game-stats-panel .sidebar-stats-subrow {
    display: flex;
    justify-content: space-between;
    font-size: 0.74rem;
    padding: 0.26rem 0;
    color: #a3a3a3;
}

#sidebar-game-stats-panel .sidebar-stats-subrow span:last-child {
    color: #e5e5e5;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    font-size: 0.8rem;
}

/* ============================================================
   출금 롤링 카드(2컬럼 레이아웃) + 로딩 시 빈 상태
   ============================================================ */
.exchange_roll_row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    align-items: stretch;
}

@media (max-width: 640px) {
    .exchange_roll_row {
        grid-template-columns: 1fr;
    }
}

.exchange_roll_card {
    width: 100%;
    min-width: 0;
}

/* 로딩 중에는 기본 샘플값이 보이지 않게 숨김
   - 서버/JS가 data-exchange-rolling-row=""(빈값) 상태로 먼저 렌더링하는 경우를 처리 */
.exchange_roll_row[data-roll-loading="1"] .exchange_roll_card,
.exchange_roll_row[data-exchange-rolling-row=""] .exchange_roll_card {
    display: none !important;
}

.exchange_roll_row[data-roll-loading="1"]::before,
.exchange_roll_row[data-exchange-rolling-row=""]::before {
    content: '롤링 정보 불러오는 중...';
    display: block;
    grid-column: 1 / -1;
    padding: 0.85rem 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    background: #ffffff;
    color: #6b7280;
    font-size: 0.875rem;
    font-weight: 600;
}
