/* ═══ BETTING PAGE — THEME VARIABLES ═══ */
.bet-page {
  --bg:        #0c0f1e;
  --bg-card:   #131628;
  --bg-card2:  #1a1e30;
  --bg-raised: #20263c;
  --border:    #252a42;
  --accent:    #3b82f6;
  --accent2:   #60a5fa;
  --gold:      #f59e0b;
  --win:       #22c55e;
  --lose:      #ef4444;
  --push:      #9ca3af;
  --text:      #e2e8f0;
  --text-sub:  #94a3b8;
  --text-muted:#64748b;
  --closed-bg: #1f2937;
  --shadow:    0 4px 20px rgba(0,0,0,.5);
  --radius:    10px;
  --radius-sm: 6px;
  background: var(--bg);
  color: var(--text);
  min-height: 60vh;
  font-family: -apple-system, BlinkMacSystemFont, 'Noto Sans KR', sans-serif;
}
.bet-page.light-mode {
  --bg:        #f1f5f9;
  --bg-card:   #ffffff;
  --bg-card2:  #f8fafc;
  --bg-raised: #f0f4f8;
  --border:    #e2e8f0;
  --accent:    #2563eb;
  --accent2:   #3b82f6;
  --gold:      #d97706;
  --win:       #16a34a;
  --lose:      #dc2626;
  --push:      #6b7280;
  --text:      #0f172a;
  --text-sub:  #334155;
  --text-muted:#64748b;
  --closed-bg: #e5e7eb;
  --shadow:    0 4px 20px rgba(0,0,0,.1);
}
.bet-page, .bet-page * { box-sizing: border-box; }

/* ── TOP BAR ── */
.bet-topbar {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; border-bottom:1px solid var(--border);
  background:var(--bg-card); gap:8px;
}
.bet-topbar-left { display:flex; align-items:baseline; gap:10px; }
.bet-title { margin:0; font-size:18px; font-weight:800; color:var(--text); }
.bet-subtitle { font-size:11px; color:var(--text-muted); }
.bet-topbar-right { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.topbar-link {
  font-size:12px; color:var(--text-sub); text-decoration:none;
  padding:5px 10px; border-radius:var(--radius-sm);
  border:1px solid var(--border); transition:.2s; white-space:nowrap;
}
.topbar-link:hover { border-color:var(--accent); color:var(--accent); }
.my-point-badge {
  font-size:12px; font-weight:700; color:var(--win);
  background:rgba(34,197,94,.12); padding:4px 10px;
  border-radius:var(--radius-sm); border:1px solid rgba(34,197,94,.3); white-space:nowrap;
}
.theme-toggle {
  background:var(--bg-card2); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:5px 9px;
  font-size:15px; cursor:pointer; transition:.2s; line-height:1;
}
.theme-toggle:hover { border-color:var(--accent); }

/* ── FILTER BARS ── */
/* ── SPORT CATEGORY BAR ── */
.sport-cat-bar {
  display:flex; gap:6px; padding:10px 12px;
  background:var(--bg-card); border-bottom:1px solid var(--border);
  overflow-x:auto; scrollbar-width:none;
}
.sport-cat-bar::-webkit-scrollbar { display:none; }
.sci {
  display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:8px 14px; border-radius:12px; cursor:pointer; flex-shrink:0;
  background:var(--bg-card2); border:1px solid var(--border);
  transition:all .2s; min-width:56px;
}
.sci:hover { border-color:var(--accent); }
.sci.active { background:var(--accent); border-color:var(--accent); }
.sci-icon { font-size:22px; line-height:1; }
.sci-name { font-size:11px; font-weight:700; color:var(--text-sub); white-space:nowrap; }
.sci-cnt  { font-size:10px; color:var(--text-muted); }
.sci.active .sci-name, .sci.active .sci-cnt { color:rgba(255,255,255,.9); }
/* 국가 카테고리: 아이콘 작게 */
.country-cat-bar .sci { min-width:48px; padding:6px 10px; }
.country-cat-bar .sci-icon { font-size:18px; }
/* 국가 카테고리 화살표 래퍼 */
.country-cat-wrapper {
  position:relative;
  background:var(--bg-card); border-bottom:1px solid var(--border);
}
.country-cat-wrapper .country-cat-bar {
  border-bottom:none; background:transparent;
}
/* 그라데이션 페이드 오버레이 (다크) */
.country-cat-wrapper::before,
.country-cat-wrapper::after {
  content:''; position:absolute; top:0; bottom:0; width:52px;
  z-index:1; pointer-events:none;
}
.country-cat-wrapper::before {
  left:0;
  background:linear-gradient(to right, #131628 30%, transparent);
}
.country-cat-wrapper::after {
  right:0;
  background:linear-gradient(to left, #131628 30%, transparent);
}
/* 그라데이션 페이드 오버레이 (라이트) */
.bet-page.light-mode .country-cat-wrapper::before {
  background:linear-gradient(to right, #ffffff 30%, transparent);
}
.bet-page.light-mode .country-cat-wrapper::after {
  background:linear-gradient(to left, #ffffff 30%, transparent);
}
/* 화살표 원형 버튼 */
.cat-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  z-index:3; width:30px; height:30px; border-radius:50%;
  border:1.5px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.1);
  cursor:pointer; color:rgba(255,255,255,.75);
  display:flex; align-items:center; justify-content:center;
  padding:0; transition:all .2s;
  box-shadow:0 2px 8px rgba(0,0,0,.35);
}
.cat-arrow.cat-arrow-left  { left:9px; }
.cat-arrow.cat-arrow-right { right:9px; }
.cat-arrow:hover {
  background:var(--accent); border-color:var(--accent);
  color:#fff; box-shadow:0 2px 12px rgba(59,130,246,.5);
  transform:translateY(-50%) scale(1.08);
}
/* 라이트 모드 버튼 */
.bet-page.light-mode .cat-arrow {
  border:1.5px solid rgba(0,0,0,.15);
  background:rgba(255,255,255,.9);
  color:rgba(0,0,0,.5);
  box-shadow:0 2px 8px rgba(0,0,0,.12);
}
.bet-page.light-mode .cat-arrow:hover {
  background:var(--accent); border-color:var(--accent);
  color:#fff; box-shadow:0 2px 12px rgba(37,99,235,.4);
}
.cat-arrow.hidden { opacity:0; pointer-events:none; }

/* ── 리그 카테고리 바 ── */
.league-cat-bar {
  display:flex; gap:6px; padding:6px 12px;
  background:var(--bg); border-bottom:1px solid var(--border);
  overflow-x:auto; scrollbar-width:none;
}
.league-cat-bar::-webkit-scrollbar { display:none; }
.lci {
  display:flex; align-items:center; gap:5px;
  padding:5px 12px; border-radius:20px; cursor:pointer; flex-shrink:0;
  background:var(--bg-card2); border:1px solid var(--border);
  transition:all .2s; white-space:nowrap;
}
.lci:hover { border-color:var(--accent); }
.lci.active { background:var(--accent); border-color:var(--accent); }
.lci-name { font-size:12px; font-weight:600; color:var(--text-sub); }
.lci-cnt  { font-size:10px; color:var(--text-muted); background:var(--bg); padding:1px 5px; border-radius:10px; }
.lci.active .lci-name { color:#fff; }
.lci.active .lci-cnt  { color:rgba(255,255,255,.8); background:rgba(255,255,255,.2); }

/* ── SEARCH + ODDS ROW ── */
.search-odds-row {
  display:flex; align-items:center; gap:8px;
  padding:7px 12px; background:var(--bg);
  border-bottom:1px solid var(--border);
}
.search-wrap {
  display:flex; align-items:center; gap:8px;
  background:var(--bg-card2); border:1px solid var(--border);
  border-radius:20px; padding:6px 12px;
  transition:border-color .2s; flex:1;
}
.search-wrap:focus-within { border-color:var(--accent); }
.search-icon { font-size:14px; flex-shrink:0; opacity:.7; }
.search-input {
  flex:1; background:none; border:none; outline:none;
  color:var(--text); font-size:13px; min-width:0;
}
.search-input::placeholder { color:var(--text-muted); }
.search-clear {
  display:none; align-items:center; justify-content:center;
  background:var(--bg-raised); border:none; border-radius:50%;
  width:18px; height:18px; font-size:11px; cursor:pointer;
  color:var(--text-muted); flex-shrink:0; padding:0;
}
.search-clear:hover { background:var(--accent); color:#fff; }

.filter-bar {
  padding:7px 12px; background:var(--bg-card);
  border-bottom:1px solid var(--border); overflow-x:auto; scrollbar-width:none;
}
.filter-bar::-webkit-scrollbar { display:none; }
.filter-bar-2 { display:flex; align-items:center; gap:10px; }

/* ── DATE TABS ── */
.date-tabs { display:flex; gap:5px; min-width:max-content; }
.date-tab {
  display:inline-flex; align-items:center; gap:4px; white-space:nowrap;
  padding:5px 12px; border-radius:18px; cursor:pointer; font-size:12px;
  background:var(--bg-card2); color:var(--text-muted); border:1px solid var(--border); transition:all .2s;
}
.date-tab:hover { border-color:var(--accent); color:var(--text); }
.date-tab.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.dt-label { font-weight:600; }
.dt-cnt { font-size:10px; background:rgba(255,255,255,.2); padding:1px 5px; border-radius:8px; }
.date-tab:not(.active) .dt-cnt { background:var(--bg-raised); color:var(--text-muted); }

/* ── SPORT TABS ── */
.sport-tabs { display:flex; gap:5px; flex:1; overflow-x:auto; scrollbar-width:none; min-width:0; }
.sport-tabs::-webkit-scrollbar { display:none; }
.sport-tab {
  white-space:nowrap; padding:5px 11px; border-radius:15px; cursor:pointer;
  font-size:12px; font-weight:600; background:var(--bg-card2); color:var(--text-muted);
  border:1px solid var(--border); transition:all .2s; flex-shrink:0;
}
.sport-tab:hover { border-color:var(--accent); color:var(--text); }
.sport-tab.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.st-cnt { font-size:10px; opacity:.75; margin-left:2px; }

/* ── ODDS CHIPS ── */
.odds-filter { display:flex; gap:4px; flex-shrink:0; }
.odds-chip {
  padding:4px 9px; border-radius:12px; cursor:pointer; font-size:11px; font-weight:700;
  background:var(--bg-raised); color:var(--text-muted); border:1px solid var(--border); transition:.2s;
}
.odds-chip:hover { border-color:var(--gold); color:var(--gold); }
.odds-chip.active { background:var(--gold); color:#000; border-color:var(--gold); }

/* ── GAME COUNT BAR ── */
.game-count-bar {
  display:flex; justify-content:space-between; align-items:center;
  padding:5px 14px; font-size:11px; color:var(--text-muted); background:var(--bg);
}
.last-update { font-size:10px; }

/* ── MAIN LAYOUT ── */
.bet-layout { display:flex; gap:12px; max-width:1280px; margin:0 auto; padding:10px 10px 0; }
.bet-left { flex:1; min-width:0; }
.bet-right { width:286px; flex-shrink:0; }

/* ── DATE GROUP HEADER ── */
.date-group-header {
  font-size:11px; font-weight:700; color:var(--text-muted); letter-spacing:.5px;
  padding:8px 4px 4px; margin-bottom:4px; border-bottom:1px solid var(--border);
}

/* ── GAME CARD ── */
.game-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); margin-bottom:8px; overflow:hidden; transition:box-shadow .2s;
}
.game-card:hover { box-shadow:var(--shadow); }
.game-card.closed { opacity:.6; }

.game-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:7px 12px; background:var(--bg-card2); border-bottom:1px solid var(--border);
}
.gh-left { display:flex; align-items:center; gap:5px; min-width:0; overflow:hidden; }
.sport-ico { font-size:13px; flex-shrink:0; }
.league-name { font-size:12px; font-weight:700; color:var(--accent2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.area-name { font-size:10px; color:var(--text-muted); flex-shrink:0; }
.gh-right { display:flex; align-items:center; gap:5px; flex-shrink:0; margin-left:6px; }

/* ── BADGES ── */
.gbadge { font-size:10px; font-weight:700; padding:2px 6px; border-radius:9px; }
.hot-badge  { background:rgba(245,158,11,.18); color:var(--gold); border:1px solid rgba(245,158,11,.35); }
.live-badge { background:rgba(34,197,94,.18); color:var(--win); border:1px solid rgba(34,197,94,.35); animation:pulse 1.2s infinite; }
.closed-badge { background:var(--closed-bg); color:var(--text-muted); border:1px solid var(--border); }
@keyframes pulse { 0%,100%{opacity:1}50%{opacity:.4} }
@keyframes spin  { to{transform:rotate(360deg)} }
@keyframes bmIn  { from{transform:scale(.92);opacity:0} to{transform:scale(1);opacity:1} }

.time-left { font-size:11px; font-weight:700; color:var(--win); }
.time-left.urgent { color:var(--lose); animation:pulse .8s infinite; }
.game-time-str { font-size:11px; color:var(--text-muted); }

/* ── TEAMS ── */
.game-teams { display:flex; align-items:center; padding:11px 13px; gap:8px; }
.team { flex:1; font-size:13px; font-weight:700; color:var(--text); }
.home-name { text-align:left; }
.away-name { text-align:right; }
.vs-badge {
  background:var(--bg-raised); color:var(--text-muted);
  font-size:10px; font-weight:700; padding:4px 9px;
  border-radius:var(--radius-sm); border:1px solid var(--border); flex-shrink:0;
}

/* ── BET ROWS ── */
.bet-row { display:flex; align-items:center; padding:5px 10px 5px 12px; gap:7px; border-top:1px solid var(--border); }
.brl {
  width:52px; font-size:10px; color:var(--text-muted); background:var(--bg-raised);
  padding:3px 4px; border-radius:4px; text-align:center; flex-shrink:0; font-weight:600;
}
.bet-btns { display:flex; gap:4px; flex:1; }
.bet-btn {
  flex:1; padding:7px 4px; border-radius:var(--radius-sm); cursor:pointer; text-align:center;
  background:var(--bg-card2); border:1px solid var(--border); color:var(--text);
  transition:all .15s; user-select:none; display:flex; flex-direction:column;
  align-items:center; gap:2px;
}
.bet-btn:hover:not(.disabled):not(.bet-btn-mu) { border-color:var(--accent); background:rgba(59,130,246,.12); }
.bet-btn.selected { background:rgba(245,158,11,.14); border-color:var(--gold); }
.bet-btn.selected .btn-odds { color:var(--gold); }
.bet-btn.selected .btn-team { color:var(--text-sub); }
.bet-btn.disabled { opacity:.4; cursor:not-allowed; }
.btn-team { font-size:10px; color:var(--text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.btn-odds { font-size:14px; font-weight:800; color:var(--text-sub); }
.bet-btn-mu { flex:0 0 44px; background:var(--bg); border-color:transparent; cursor:default; justify-content:center; }
.bet-btn-mu:hover { border-color:transparent; background:var(--bg); }
.mu-val { font-size:11px; color:var(--text-muted); }

/* ── CART ── */
.bet-right .bet-cart {
  position:sticky; top:10px; background:var(--bg-card);
  border:1px solid var(--border); border-radius:var(--radius); overflow:hidden;
}
.cart-header {
  padding:12px 15px; background:linear-gradient(135deg,#1d4ed8,#3b82f6);
  color:#fff; font-weight:700; font-size:14px;
  display:flex; align-items:center; justify-content:space-between; cursor:pointer;
}
.cart-count-badge {
  background:var(--lose); color:#fff; font-size:11px; font-weight:700;
  padding:1px 7px; border-radius:10px; margin-left:5px; display:inline-flex; align-items:center;
}
.cart-arrow { font-size:11px; opacity:.8; }
.cart-body { padding:11px; }
.bet-cart.collapsed .cart-body { display:none; }

.cart-limits { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:10px; padding-bottom:9px; border-bottom:1px solid var(--border); }
.cl-item {
  flex:1; min-width:74px; text-align:center; font-size:10px; color:var(--text-muted);
  background:var(--bg-card2); padding:5px 4px; border-radius:var(--radius-sm); border:1px solid var(--border);
}
.cl-item b { color:var(--text-sub); display:block; font-size:12px; margin-top:2px; }
.cart-empty { display:flex; flex-direction:column; align-items:center; gap:7px; padding:28px 0; color:var(--text-muted); font-size:12px; }
.cart-empty-icon { font-size:26px; }
.cart-item {
  background:var(--bg-card2); border-radius:var(--radius-sm); padding:8px 10px;
  margin-bottom:6px; border:1px solid var(--border);
}
.ci-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:3px; }
.ci-sport { font-size:11px; color:var(--accent2); font-weight:600; }
.ci-del { cursor:pointer; color:var(--text-muted); font-size:13px; padding:0 2px; }
.ci-del:hover { color:var(--lose); }
.ci-teams { font-size:11px; color:var(--text); font-weight:600; margin-bottom:4px; }
.ci-footer { display:flex; justify-content:space-between; align-items:center; }
.ci-pick { font-size:11px; color:var(--text-muted); }
.ci-pick b { color:var(--gold); }
.ci-odds { font-size:13px; font-weight:700; color:var(--gold); }

.cart-summary { margin-top:8px; border-top:1px solid var(--border); padding-top:10px; }
.summary-row { display:flex; justify-content:space-between; font-size:12px; margin-bottom:6px; color:var(--text-muted); }
.summary-row.total { color:var(--text); font-weight:700; font-size:13px; }
.summary-row.expect { color:var(--text); font-weight:700; }
.summary-row .val { color:var(--gold); }
.summary-row.expect .val { color:var(--win); font-size:14px; }

.bet-amount-wrap { margin-top:10px; }
.bet-amount-wrap label { font-size:11px; color:var(--text-muted); display:block; margin-bottom:5px; }
.bet-amount-wrap input {
  width:100%; padding:9px 11px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg);
  color:var(--text); font-size:14px; text-align:right; font-weight:700;
}
.bet-amount-wrap input:focus { outline:none; border-color:var(--accent); }
.quick-amounts { display:flex; gap:4px; margin-top:5px; flex-wrap:wrap; }
.quick-btn {
  flex:1; min-width:40px; padding:5px 2px; text-align:center; font-size:11px; cursor:pointer;
  background:var(--bg-card2); border:1px solid var(--border); border-radius:var(--radius-sm);
  color:var(--text-muted); transition:.15s; font-weight:600;
}
.quick-btn:hover { border-color:var(--accent); color:var(--accent2); }
.quick-btn.all-in { border-color:rgba(245,158,11,.5); color:var(--gold); }
.quick-btn.all-in:hover { background:rgba(245,158,11,.1); }

.my-point-row {
  display:flex; justify-content:space-between; align-items:center;
  font-size:11px; color:var(--text-muted); margin-top:8px; padding:6px 8px;
  background:var(--bg-card2); border-radius:var(--radius-sm); border:1px solid var(--border);
}
.my-point-row .pt { color:var(--win); font-weight:700; font-size:13px; }

.btn-bet {
  width:100%; padding:12px; border-radius:var(--radius-sm); border:none; cursor:pointer;
  background:linear-gradient(135deg,#f59e0b,#d97706);
  color:#000; font-size:15px; font-weight:800; margin-top:11px; transition:.2s;
}
.btn-bet:hover:not(:disabled) { filter:brightness(1.1); transform:translateY(-1px); }
.btn-bet:active { transform:translateY(0); }
.btn-bet:disabled { background:var(--closed-bg); color:var(--text-muted); cursor:not-allowed; filter:none; transform:none; }
.btn-clear {
  width:100%; padding:7px; border-radius:var(--radius-sm); border:1px solid var(--border);
  background:transparent; color:var(--text-muted); font-size:12px; cursor:pointer; margin-top:6px; transition:.15s;
}
.btn-clear:hover { border-color:var(--lose); color:var(--lose); }
.bet-alert { padding:8px 11px; border-radius:var(--radius-sm); font-size:12px; margin-top:7px; font-weight:600; }
.bet-alert.ok  { background:rgba(34,197,94,.12);  border:1px solid var(--win);  color:var(--win);  }
.bet-alert.err { background:rgba(239,68,68,.12);  border:1px solid var(--lose); color:var(--lose); }

/* ── LOADING / EMPTY ── */
.loading-msg { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:60px; color:var(--text-muted); font-size:14px; }
.spinner { width:30px; height:30px; border:3px solid var(--border); border-top-color:var(--accent); border-radius:50%; animation:spin .8s linear infinite; }
.empty-state { display:flex; flex-direction:column; align-items:center; gap:10px; padding:60px; color:var(--text-muted); font-size:14px; }
.es-icon { font-size:34px; }

/* ── MOBILE FLOATING CART ── */
.mobile-cart-fab {
  display:none; position:fixed; bottom:16px; right:16px; z-index:900;
  background:linear-gradient(135deg,#f59e0b,#d97706);
  color:#000; font-size:13px; font-weight:800; padding:12px 18px;
  border-radius:24px; cursor:pointer; box-shadow:0 4px 16px rgba(245,158,11,.4);
  align-items:center; gap:6px; transition:.2s;
}
.mobile-cart-fab:hover { transform:scale(1.05); }

/* ── MODAL ── */
.bm-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.75); z-index:9000; align-items:center; justify-content:center; }
.bm-overlay.open { display:flex; }
.bm-box { background:var(--bg-card); border:1px solid var(--border); border-radius:14px; width:90%; max-width:460px; overflow:hidden; animation:bmIn .2s ease; box-shadow:var(--shadow); }
.bm-header { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--border); font-size:16px; font-weight:700; color:var(--text); }
.bm-close { background:none; border:none; color:var(--text-muted); font-size:18px; cursor:pointer; padding:4px 8px; border-radius:4px; }
.bm-close:hover { background:var(--bg-card2); color:var(--text); }
.bm-body { padding:16px 20px; }
.bm-items { display:flex; flex-direction:column; gap:7px; max-height:240px; overflow-y:auto; margin-bottom:12px; }
.bm-item { background:var(--bg-card2); border-radius:8px; padding:9px 12px; font-size:12px; border:1px solid var(--border); overflow:hidden; }
.bm-item .bi-teams { color:var(--text-sub); margin-bottom:3px; line-height:1.4; }
.bm-item .bi-pick { color:var(--gold); font-weight:700; }
.bm-item .bi-odds { color:var(--accent2); float:right; font-weight:700; font-size:14px; }
.bm-sep { border-top:1px solid var(--border); margin:8px 0; }
.bm-row { display:flex; justify-content:space-between; align-items:center; padding:7px 0; font-size:13px; color:var(--text-sub); }
.bm-accent { color:var(--accent2); font-weight:700; font-size:15px; }
.bm-gold   { color:var(--gold); font-weight:700; font-size:16px; }
.bm-point  { color:var(--win); font-weight:600; }
.bm-amount-ctrl input { background:var(--bg-card2); border:1px solid var(--accent); border-radius:8px; color:var(--text); padding:7px 10px; width:145px; font-size:14px; text-align:right; }
.bm-footer { display:flex; gap:10px; padding:14px 20px; border-top:1px solid var(--border); }
.bm-btn { flex:1; padding:12px; border:none; border-radius:10px; font-size:14px; font-weight:700; cursor:pointer; transition:.2s; }
.bm-cancel  { background:var(--bg-card2); color:var(--text-sub); border:1px solid var(--border); }
.bm-cancel:hover { background:var(--bg-raised); }
.bm-confirm { background:linear-gradient(135deg,#f59e0b,#d97706); color:#000; }
.bm-confirm:hover { filter:brightness(1.1); }
.bm-confirm:disabled { background:var(--closed-bg); color:var(--text-muted); cursor:not-allowed; filter:none; }
.bm-result-box { padding:36px 24px; text-align:center; }
.br-icon  { font-size:50px; margin-bottom:12px; }
.br-title { font-size:22px; font-weight:700; color:var(--text); margin-bottom:8px; }
.br-msg   { font-size:14px; color:var(--text-muted); }

/* ── HISTORY ── */
.history-wrap { max-width:900px; margin:0 auto; padding:14px 10px; }
.slip-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); margin-bottom:12px; overflow:hidden; }
.slip-header { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; background:var(--bg-card2); font-size:13px; }
.slip-header .slip-id,.slip-header .slip-date { color:var(--text-muted); font-size:12px; }
.status-badge { padding:3px 10px; border-radius:4px; font-size:12px; font-weight:700; }
.status-badge.s0,.status-badge.s1 { background:rgba(59,130,246,.2); color:var(--accent2); }
.status-badge.s2 { background:rgba(34,197,94,.2); color:var(--win); }
.status-badge.s3 { background:rgba(239,68,68,.2); color:var(--lose); }
.status-badge.s4,.status-badge.s5 { background:rgba(156,163,175,.2); color:var(--push); }
.slip-body { padding:10px 14px; }
.slip-item { display:flex; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid var(--border); font-size:12px; }
.slip-item:last-child { border-bottom:none; }
.slip-item .si-sport { color:var(--accent2); font-weight:600; width:40px; flex-shrink:0; }
.slip-item .si-teams { flex:1; color:var(--text); }
.slip-item .si-pick  { color:var(--gold); font-weight:600; width:60px; text-align:right; }
.slip-item .si-odds  { color:var(--text-muted); width:45px; text-align:right; }
.slip-item-status { width:35px; text-align:center; font-size:11px; }
.is1{color:var(--win)} .is2{color:var(--lose)} .is3{color:var(--push)} .is0{color:var(--text-muted)}
.slip-footer { display:flex; justify-content:space-between; align-items:center; padding:8px 14px; background:var(--bg-card2); font-size:12px; }
.slip-footer .amount { color:var(--text-muted); }
.slip-footer .win { color:var(--win); font-weight:700; }


/* ── 국가/리그 그룹 ── */
.country-group { margin-bottom: 4px; }
.country-hdr {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  background: var(--bg-card2);
  border-radius: var(--radius-sm);
  cursor: pointer; user-select: none;
  border-left: 3px solid var(--accent);
  transition: background .15s;
  position: sticky; top: 0; z-index: 10;
}
.country-hdr:hover { background: var(--bg-raised); }
.chdr-flag { font-size: 18px; flex-shrink: 0; }
.chdr-name { font-size: 14px; font-weight: 800; color: var(--text); flex: 1; }
.chdr-cnt  { font-size: 11px; font-weight: 600; color: var(--accent); background: rgba(59,130,246,.12); padding: 2px 7px; border-radius: 10px; flex-shrink: 0; }
.chdr-arr  { font-size: 11px; color: var(--text-muted); flex-shrink: 0; transition: transform .2s; }

.country-body { margin-bottom: 4px; }

.league-group { margin: 2px 0; }
.league-hdr {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 14px 7px 20px;
  background: rgba(255,255,255,.025);
  border-left: 2px solid var(--border);
  cursor: pointer; user-select: none;
  transition: background .15s;
}
.league-hdr:hover { background: rgba(255,255,255,.045); border-left-color: var(--accent); }
.lhdr-name { font-size: 12px; font-weight: 600; color: var(--text-sub); flex: 1; }
.lhdr-cnt  { font-size: 10px; color: var(--text-muted); flex-shrink: 0; }
.lhdr-arr  { font-size: 10px; color: var(--text-muted); flex-shrink: 0; width: 12px; text-align: center; }

.league-games { padding-left: 0; }
.league-games .game-card { border-radius: 0; border-left: none; border-right: none; border-top: none; }
.league-games .game-card:first-child { border-top: none; }
.league-games .game-card:last-child  { border-bottom: 1px solid var(--border); margin-bottom: 0; }

/* ── CART SLIDE-UP ANIMATION ── */
@keyframes cartSlideIn {
  from { transform: translateY(100%); opacity:0; }
  to   { transform: translateY(0);    opacity:1; }
}
/* ── MOBILE ── */
@media (max-width:900px) {
  .bet-layout { flex-direction:column; padding:8px 8px 0; }
  .bet-right { width:100%; }
  /* 카트: foot_nav 위에 고정, 슬라이드 애니메이션 */
  .foot_nav { z-index:99 !important; }
  .bet-right .bet-cart {
    position:fixed; top:auto; bottom:37px; left:0; right:0;
    border-radius:12px 12px 0 0; border:none;
    border-top:2px solid var(--accent);
    z-index:200; overflow:hidden;
    transition: max-height 0.35s cubic-bezier(0.4,0,0.2,1);
    animation: cartSlideIn 0.4s ease-out both;
  }
  /* 접힌 상태: 헤더만 노출 */
  .bet-right .bet-cart.collapsed { max-height:52px; }
  .bet-right .bet-cart:not(.collapsed) { max-height:55vh; overflow-y:auto; }
  /* 헤더 탭 강조 */
  .bet-right .bet-cart .cart-header {
    cursor:pointer; padding:14px 16px;
    background:var(--bg-card2);
    color:var(--text-main);
  }
  .mobile-cart-fab { display:none; }
  .filter-bar-2 { flex-wrap:wrap; }
  .odds-filter { order:3; width:100%; }
  .bet-topbar { padding:8px 12px; flex-wrap:wrap; }
  .topbar-link { display:none; }
  /* 내 배팅 링크는 모바일에서도 표시 (아이콘+텍스트 축약) */
  .topbar-link.hist-link {
    display:inline-flex; align-items:center; gap:3px;
    font-size:11px; padding:4px 9px;
  }
  .bet-subtitle { display:none; }
  .bet-left { padding-bottom:220px; }
}
@media (max-width:500px) {
  .bet-title { font-size:16px; }
  .bet-subtitle { display:none; }
  .team { font-size:12px; }
  .btn-odds { font-size:13px; }
}

/* APMS STICKY SIDEBAR (desktop only) */
@media (min-width:992px) {
  .at-row > .at-main { float:right !important; }
  .at-row > .at-side  { float:left  !important; }
  .at-row > .at-side { position:sticky !important; top:10px !important; }
  .at-side .chat_wnd_size { height:auto !important; }
}
