:root {
    /* ─── DA HugoTaSlot X 19EnPlein — partenaire Gamdom ───
       Vert Gamdom #00DC6E / #00FF8C = accent principal (CTA, actifs)
       Bleu électrique 19EnPlein #1FB6FF = accent secondaire (info)
       Or 19EnPlein #FFC93C = gains, trophées, podiums
       Fonds noirs profonds, surfaces graphite. */
    --gold: #00DC6E;             /* Vert Gamdom : accent principal (CTA) */
    --gold-dim: #00FF8C;         /* Vert clair : hover / highlight */
    --gold-glow: rgba(0,220,110,0.30);
    --gold-glow-strong: rgba(0,255,140,0.55);
    --bg-deep: #020403;          /* Noir profond, pointe de vert */
    --bg-mid: #070D0A;           /* Sidebar / fond mid */
    --bg-elev: #0E1612;          /* Surfaces élevées (panels, cards) */
    --bg-panel: rgba(7,13,10,0.90);
    --bg-glass: rgba(14,22,18,0.65);
    --bg-glass2: rgba(0,220,110,0.06);
    --border: rgba(0,220,110,0.22);
    --border-bright: rgba(0,255,140,0.55);
    --border-cool: rgba(157,170,165,0.28); /* Bordures neutres */
    --text: #EDF2EF;
    --text-dim: #9DABA4;
    --text-muted: #4A5550;
    --green: #00DC6E;             /* succès = vert Gamdom */
    --red: #FF5C6E;               /* erreur, rouge franc lisible */
    --blue: #1FB6FF;              /* Bleu électrique 19EnPlein : boutons info */
    --blue-bright: #54CBFF;       /* Hover des boutons info */
    --cyan: #54CBFF;              /* info vive */
    --gold-true: #FFC93C;         /* Or 19EnPlein : gains, podiums, trophées */
    --gold-true-glow: rgba(255,201,60,0.35);
    --sidebar-w: clamp(220px, 18vw, 300px);
    --header-h: clamp(76px, 9vh, 96px);
    --radius: 12px;
    --radius-sm: 8px;
    --transition: 0.22s cubic-bezier(0.4,0,0.2,1);
  }

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  html, body {
    height: 100%; background: var(--bg-deep); color: var(--text);
    font-family: 'Exo 2', sans-serif; overflow: hidden;
    font-size: clamp(14px, 0.5vw + 11px, 19px);
  }

  /* ─── NOISE OVERLAY ─── */
  body::before {
    content: ''; position: fixed; inset: 0; z-index: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
    background-repeat: repeat; background-size: 200px; pointer-events: none;
  }

  /* ─── AMBIENT BG GLOWS ─── */
  body::after {
    content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none;
    background: radial-gradient(ellipse 60% 40% at 20% 10%, rgba(0,220,110,0.06) 0%, transparent 60%),
                radial-gradient(ellipse 40% 60% at 80% 90%, rgba(0,180,255,0.04) 0%, transparent 60%);
  }

  /* ─── LAYOUT ─── */
  #app { display: flex; height: 100vh; position: relative; z-index: 1; }

  /* ─── SIDEBAR ─── */
  #sidebar {
    width: var(--sidebar-w); height: 100vh; flex-shrink: 0;
    background: var(--bg-panel); border-right: 1px solid var(--border);
    display: flex; flex-direction: column; overflow: hidden;
    backdrop-filter: blur(20px); position: relative;
  }
  #sidebar::after {
    content: ''; position: absolute; top: 0; right: 0; width: 1px; height: 100%;
    background: linear-gradient(to bottom, transparent, var(--gold-dim), transparent);
  }

  .sidebar-logo {
    padding: 20px 20px 14px;
    border-bottom: 1px solid var(--border);
  }
  .sidebar-logo-row {
    display: flex; align-items: center; gap: 10px; margin-bottom: 10px;
  }
  .sidebar-logo-img {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    border: 1px solid var(--border-bright);
    box-shadow: 0 0 18px var(--gold-glow);
    object-fit: cover;
    display: block;
    background: #04130B;
  }
  .sidebar-logo-x {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 20px;
    color: var(--gold-true); text-shadow: 0 0 14px var(--gold-true-glow);
  }
  .logo-text {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 22px;
    letter-spacing: 2px; color: var(--gold);
    text-shadow: 0 0 20px var(--gold-glow-strong);
    line-height: 1.1;
  }
  .logo-text-x {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 16px;
    letter-spacing: 3px; color: var(--gold-true);
    text-shadow: 0 0 16px var(--gold-true-glow);
    margin-top: 1px;
  }
  .logo-sub {
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    color: var(--text-dim); letter-spacing: 2px; margin-top: 4px;
  }
  .sidebar-partner {
    display: block; margin-top: 12px; padding: 9px 12px;
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: rgba(0,220,110,0.05); text-decoration: none;
    transition: var(--transition);
  }
  .sidebar-partner:hover {
    border-color: var(--border-bright);
    background: rgba(0,220,110,0.10);
    box-shadow: 0 0 18px var(--gold-glow);
  }
  .sidebar-partner-label {
    display: block; font-family: 'Share Tech Mono', monospace; font-size: 9px;
    letter-spacing: 2px; color: var(--text-muted); margin-bottom: 6px;
  }
  .sidebar-partner-img { height: 18px; width: auto; display: block; }

  .sidebar-btn {
    margin: 14px 16px 0;
    padding: 12px 16px; border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--gold-dim) 0%, var(--gold) 100%);
    color: #ffffff; font-family: 'Rajdhani', sans-serif; font-weight: 700;
    font-size: 18px; letter-spacing: 2px; text-transform: uppercase;
    border: none; cursor: pointer; width: calc(100% - 32px);
    transition: var(--transition); position: relative; overflow: hidden;
  }
  .sidebar-btn::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.2), transparent);
    opacity: 0; transition: var(--transition);
  }
  .sidebar-btn:hover::before { opacity: 1; }
  .sidebar-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 24px var(--gold-glow-strong); }
  .sidebar-btn:active { transform: translateY(0); }

  .sidebar-section-title {
    padding: 16px 20px 8px;
    font-family: 'Share Tech Mono', monospace; font-size: 16px;
    color: var(--text-muted); letter-spacing: 3px; text-transform: uppercase;
  }

  #hunt-list {
    flex: 1; overflow-y: auto; padding: 4px 12px 12px;
  }

  /* ─── BONUS HUNT HUB (tout sur une page) ─── */
  .hunt-hub {
    display: none;
    flex: 1;
    min-height: 0;
    width: 100%;
    overflow: hidden;
    flex-direction: row;
  }
  .hunt-hub.active { display: flex; }
  .hunt-hub-sessions {
    width: 260px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-right: 1px solid var(--border);
    background: var(--bg-panel);
  }
  .hunt-hub-sessions .hunt-hub-new-btn {
    margin: 12px 12px 0;
    width: calc(100% - 24px);
    font-size: 15px;
  }
  .hunt-hub-sessions-title {
    padding: 14px 16px 6px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 3px;
    text-transform: uppercase;
  }
  .hunt-hub-sessions-filter {
    padding: 0 12px 8px;
  }
  .hunt-hub-sessions-filter input {
    width: 100%;
    height: 40px;
    font-size: 14px;
    padding: 0 12px;
  }
  .hunt-hub-sessions #hunt-list {
    flex: 1;
    min-height: 0;
  }
  .hunt-hub-main {
    flex: 1;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .hunt-hub.active {
    flex: 1;
    min-height: 0;
  }
  .hunt-hub-tabs {
    display: flex;
    gap: 4px;
    padding: 0 16px;
    border-bottom: 1px solid var(--border);
    background: rgba(4, 12, 8, 0.72);
    flex-shrink: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    position: relative;
    z-index: 100;
  }
  .hunt-hub-tab {
    flex-shrink: 0;
    padding: 10px 14px;
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--text-muted);
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    transition: var(--transition);
  }
  .hunt-hub-tab:hover { color: var(--text); }
  .hunt-hub-tab.active {
    color: var(--gold);
    border-bottom-color: var(--gold);
  }
  .hunt-hub-panels {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .hunt-tab-panel {
    display: none;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    flex-direction: column;
  }
  .hunt-tab-panel.active {
    display: flex;
    flex-direction: column;
  }
  .hunt-tab-panel .hunt-tab-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    width: 100%;
  }
  #hunt-tab-depot .hunt-tab-scroll {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 16px 32px;
    overflow-y: auto;
  }
  #hunt-tab-depot .deposit-wheel-wrap {
    width: 100%;
    max-width: 760px;
  }
  #hunt-tab-workspace #content {
    flex: 1;
    min-height: 0;
    padding: 12px 16px 16px;
  }
  #hunt-list::-webkit-scrollbar { width: 4px; }
  #hunt-list::-webkit-scrollbar-track { background: transparent; }
  #hunt-list::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

  .hunt-item {
    padding: 12px 14px; border-radius: var(--radius-sm); margin-bottom: 6px;
    border: 1px solid var(--border); background: var(--bg-glass2);
    cursor: pointer; transition: var(--transition); position: relative;
    overflow: hidden;
  }
  .hunt-item::before {
    content: ''; position: absolute; left: 0; top: 0; width: 3px; height: 100%;
    background: var(--gold-dim); transition: var(--transition);
  }
  .hunt-item:hover, .hunt-item.active {
    border-color: var(--border-bright); background: rgba(0,220,110,0.06);
  }
  .hunt-item.active::before { background: var(--gold); box-shadow: 0 0 8px var(--gold); }
  .hunt-item-name {
    font-weight: 600; font-size: 18px; color: var(--text); white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
  }
  .hunt-item-meta {
    font-family: 'Share Tech Mono', monospace; font-size: 15px;
    color: var(--text-dim); margin-top: 4px;
  }
  .hunt-item-actions {
    position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
    display: flex; gap: 4px; opacity: 0; transition: var(--transition);
  }
  .hunt-item:hover .hunt-item-actions { opacity: 1; }
  .hunt-action-btn {
    width: 24px; height: 24px; border-radius: 4px; border: 1px solid var(--border);
    background: var(--bg-mid); color: var(--text-dim); font-size: 11px;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: var(--transition);
  }
  .hunt-action-btn:hover { border-color: var(--gold); color: var(--gold); }
  .hunt-action-btn.danger:hover { border-color: var(--red); color: var(--red); }

  /* ─── MAIN ─── */
  #main { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-width: 0; }

  /* ─── HEADER ─── */
  #header {
    height: var(--header-h); flex-shrink: 0;
    background: var(--bg-panel); border-bottom: 1px solid var(--border);
    backdrop-filter: blur(20px); padding: 0 28px;
    display: flex; align-items: center; gap: 16px;
    position: relative;
    z-index: 1600;
    overflow: visible;
  }
  .hunt-hub-main #header {
    height: auto;
    min-height: var(--header-h);
    align-items: flex-start;
    padding: 10px 20px;
    gap: 12px;
    overflow: visible;
    flex-wrap: nowrap;
    z-index: 1700;
  }

  .hunt-title-area { flex: 1; min-width: 0; }
  .hunt-hub-main .hunt-title-area {
    flex: 0 1 220px;
    min-width: 110px;
    max-width: 260px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
  }
  .hunt-title-main {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: clamp(18px, 1.2vw, 24px);
    color: var(--gold); letter-spacing: 1px; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
    line-height: 1.15;
  }
  .hunt-title-sub {
    font-family: 'Share Tech Mono', monospace; font-size: 11px;
    color: var(--text-dim); letter-spacing: 1px;
    line-height: 1.3;
  }
  .hunt-hub-main .hunt-title-sub {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .stats-bar {
    display: flex; gap: 12px; align-items: stretch;
  }
  .hunt-hub-main .stats-bar {
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 2px;
    -webkit-overflow-scrolling: touch;
  }
  .hunt-hub-main #profile-badge {
    flex-shrink: 0;
    margin-left: auto;
  }
  .stat-card {
    background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 10px 16px; min-width: 100px;
    position: relative; overflow: hidden; backdrop-filter: blur(10px);
    flex-shrink: 0;
  }
  .stat-card--profit {
    min-width: 132px;
    max-width: 200px;
  }
  .stat-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold-dim), transparent);
  }
  .stat-label {
    font-family: 'Share Tech Mono', monospace; font-size: 9px;
    color: var(--text-muted); letter-spacing: 2px; text-transform: uppercase;
    margin-bottom: 4px;
  }
  .stat-value {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: clamp(16px, 1.25vw, 24px);
    color: var(--text);
  }
  /* Virtual currency icon (no emoji) */
  #lobby-balance::after,
  #game-window-balance::after,
  .profile-balance::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-left: 6px;
    vertical-align: -2px;
    background: url('./assets/virtual-token.svg') center/contain no-repeat;
  }

  .sidebar-tab-icon-img {
    width: 14px;
    height: 14px;
    object-fit: contain;
    margin-right: 6px;
    vertical-align: -2px;
  }
  .stat-value.gold { color: var(--gold); text-shadow: 0 0 12px var(--gold-glow); }
  .stat-value.green { color: var(--green); text-shadow: 0 0 12px rgba(0,230,118,0.3); }
  .stat-value.red { color: var(--red); text-shadow: 0 0 12px rgba(255,61,90,0.3); }

  .open-btn {
    padding: 0 24px; height: 42px; border-radius: var(--radius-sm);
    background: transparent; border: 1.5px solid var(--gold);
    color: var(--gold); font-family: 'Rajdhani', sans-serif; font-weight: 700;
    font-size: 12px; letter-spacing: 2px; text-transform: uppercase;
    cursor: pointer; transition: var(--transition); white-space: nowrap;
    position: relative; overflow: hidden;
  }
  .open-btn::before {
    content: ''; position: absolute; inset: 0;
    background: var(--gold); transform: scaleX(0); transform-origin: left;
    transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);
  }
  .open-btn:hover::before { transform: scaleX(1); }
  .open-btn:hover { color: #ffffff; box-shadow: 0 0 20px var(--gold-glow-strong); }
  .open-btn span { position: relative; z-index: 1; }
  .open-btn:disabled { opacity: 0.35; cursor: not-allowed; }
  .open-btn:disabled:hover::before { transform: scaleX(0); }
  .open-btn:disabled:hover { color: var(--gold); box-shadow: none; }

  /* ─── CONTENT ─── */
  #content {
    flex: 1; overflow: hidden; display: flex; flex-direction: column; padding: 20px 24px;
    gap: 16px;
  }

  /* ─── SEARCH BAR ─── */
  .search-row { display: flex; gap: 10px; align-items: center; }
  .search-wrap {
    flex: 1; position: relative;
  }
  .search-icon {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    width: 14px; height: 14px; pointer-events: none; opacity: 0.9;
  }
  .search-icon::before {
    content: ''; position: absolute; left: 0; top: 0;
    width: 10px; height: 10px; border: 2px solid var(--text-muted); border-radius: 50%;
  }
  .search-icon::after {
    content: ''; position: absolute; right: -1px; bottom: -1px;
    width: 6px; height: 2px; background: var(--text-muted); transform: rotate(45deg);
    transform-origin: center;
  }
  #search-input {
    width: 100%; height: 50px; background: var(--bg-glass);
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    color: var(--text); font-family: 'Exo 2', sans-serif; font-size: 15px;
    padding: 0 14px 0 40px; outline: none; transition: var(--transition);
    backdrop-filter: blur(10px);
  }
  #search-input:focus { border-color: var(--border-bright); box-shadow: 0 0 0 3px var(--gold-glow); }
  #search-input::placeholder { color: var(--text-muted); }

  .provider-filter {
    height: 50px; background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm); color: var(--text);
    font-family: 'Exo 2', sans-serif; font-size: 14px; padding: 0 12px;
    outline: none; cursor: pointer; transition: var(--transition);
    min-width: 160px;
  }
  .provider-filter:focus { border-color: var(--border-bright); }
  .provider-filter option { background: var(--bg-mid); }

  .results-count {
    font-family: 'Share Tech Mono', monospace; font-size: 11px;
    color: var(--text-muted); white-space: nowrap;
  }

  /* ─── GRID ─── */
  #grid-container {
    flex: 1; overflow-y: auto; overflow-x: hidden;
    contain: layout style;
  }
  #grid-container::-webkit-scrollbar { width: 5px; }
  #grid-container::-webkit-scrollbar-track { background: transparent; }
  #grid-container::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }

  #slots-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px; padding: 4px;
    contain: layout style;
  }

  .slot-card {
    border-radius: var(--radius-sm); border: 1px solid var(--border);
    background: var(--bg-glass); overflow: hidden; cursor: pointer;
    transition: var(--transition); position: relative; aspect-ratio: 4/3;
    contain: layout style paint;
    content-visibility: auto;
    contain-intrinsic-size: 165px 124px;
  }
  .slot-card:hover {
    border-color: var(--gold); transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.6), 0 0 0 1px var(--border-bright);
  }
  .slot-card:hover .slot-overlay { opacity: 1; }
  .slot-card img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform 0.4s ease;
  }
  .slot-card:hover img { transform: scale(1.06); }
  .slot-overlay {
    position: absolute; inset: 0; background: linear-gradient(to top, rgba(2,2,2,0.97) 0%, rgba(2,2,2,0.2) 55%, transparent 100%);
    opacity: 0.75; transition: var(--transition); display: flex; align-items: flex-end;
    padding: 10px;
  }
  .slot-name {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 15px;
    color: var(--text); line-height: 1.2; letter-spacing: 0.3px;
  }
  .slot-provider-badge {
    position: absolute; top: 7px; right: 7px;
    background: rgba(2,2,2,0.8); border: 1px solid var(--border);
    border-radius: 4px; padding: 2px 7px;
    font-family: 'Share Tech Mono', monospace; font-size: 9px;
    color: var(--text-dim); letter-spacing: 0.5px;
    backdrop-filter: blur(6px);
  }
  .slot-no-img {
    width: 100%; height: 100%; display: flex; flex-direction: column;
    align-items: center; justify-content: center; background: var(--bg-mid);
    gap: 8px;
  }
  .slot-no-img .icon { font-size: 30px; opacity: 0.4; }
  .slot-no-img .label { font-size: 11px; color: var(--text-muted); text-align: center; padding: 0 8px; }

  /* ─── ACTIVE HUNT LIST ─── */
  #hunt-items-container { flex: 1; overflow-y: auto; overflow-x: hidden; contain: content; }
  #hunt-items-container::-webkit-scrollbar { width: 5px; }
  #hunt-items-container::-webkit-scrollbar-track { background: transparent; }
  #hunt-items-container::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }

  #bonus-list {
    display: flex; flex-direction: column; gap: 6px; padding: 2px;
  }

  /* Gamdom-style bonus row */
  .bonus-row {
    display: flex; align-items: center; gap: 0;
    background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    transition: var(--transition);
    overflow: hidden; min-height: 72px; position: relative;
    contain: layout style;
  }
  @keyframes rowIn {
    from { opacity: 0; transform: translateX(-12px); }
    to { opacity: 1; transform: translateX(0); }
  }
  .bonus-row:hover { border-color: rgba(0,220,110,0.35); background: rgba(0,220,110,0.04); }
  .bonus-row.completed { border-color: rgba(0,230,118,0.2); }
  .bonus-row.completed .bonus-pos-bar { background: var(--green); }

  /* Left colored bar indicator */
  .bonus-pos-bar {
    width: 3px; height: 100%; flex-shrink: 0; align-self: stretch;
    background: var(--text-muted); transition: var(--transition);
    min-height: 72px;
  }
  .bonus-row.completed .bonus-pos-bar { background: var(--green); box-shadow: 0 0 8px rgba(0,230,118,0.4); }

  /* Big image */
  .bonus-thumb {
    width: 90px; height: 72px; flex-shrink: 0;
    background: var(--bg-mid); overflow: hidden; position: relative;
  }
  .bonus-thumb img { width: 100%; height: 100%; object-fit: cover; }
  .bonus-thumb-placeholder {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    font-size: 26px; opacity: 0.35;
  }
  /* Position number overlay on image */
  .bonus-thumb-pos {
    position: absolute; bottom: 4px; left: 4px;
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    color: rgba(255,255,255,0.5); background: rgba(0,0,0,0.6);
    border-radius: 3px; padding: 1px 5px; letter-spacing: 0.5px;
  }

  /* Name + provider block */
  .bonus-info { flex: 1; min-width: 0; padding: 0 16px; }
  .bonus-slot-name {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: clamp(14px, 1vw, 16px);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    color: var(--text); letter-spacing: 0.3px;
  }
  .bonus-slot-prov {
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    color: var(--text-muted); margin-top: 3px; letter-spacing: 0.5px;
  }
  .bonus-stake-badge {
    display: inline-block; margin-top: 5px;
    background: rgba(0,220,110,0.08); border: 1px solid rgba(0,220,110,0.2);
    border-radius: 4px; padding: 2px 8px;
    font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--gold-dim);
  }
  .bonus-type-badge {
    display: inline-block; margin-top: 5px; margin-left: 6px;
    border-radius: 4px; padding: 2px 8px;
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    letter-spacing: 0.4px;
  }
  .bonus-type-badge.normal {
    background: rgba(77,182,255,0.10); border: 1px solid rgba(77,182,255,0.32); color: var(--blue);
  }
  .bonus-type-badge.bounty {
    background: rgba(0,230,118,0.10); border: 1px solid rgba(0,230,118,0.30); color: var(--green);
  }
  .bonus-type-badge.epic {
    background: rgba(0,220,110,0.12); border: 1px solid rgba(0,220,110,0.35); color: var(--gold);
  }

  /* BE section */
  .bonus-be-block {
    display: flex; flex-direction: column; align-items: flex-end;
    padding: 0 14px; flex-shrink: 0; min-width: 90px;
  }
  .bonus-be-label {
    font-family: 'Share Tech Mono', monospace; font-size: 9px;
    color: var(--text-muted); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 3px;
  }
  .bonus-be-val {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 15px;
    color: var(--blue);
  }

  /* Gain section */
  .bonus-gain-block {
    display: flex; flex-direction: column; align-items: flex-end;
    padding: 0 16px; flex-shrink: 0; min-width: 120px;
    border-left: 1px solid var(--border);
  }
  .bonus-gain-label {
    font-family: 'Share Tech Mono', monospace; font-size: 9px;
    color: var(--text-muted); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 3px;
  }
  .bonus-win {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: clamp(16px, 1.2vw, 20px);
  }
  .bonus-win.none { color: var(--text-muted); font-size: 14px; font-weight: 400; }
  .bonus-win.set { color: var(--gold); text-shadow: 0 0 12px var(--gold-glow); }
  .bonus-win.set.good { color: var(--green); text-shadow: 0 0 12px rgba(0,230,118,0.3); }

  /* Multiplier x */
  .bonus-multi {
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    color: var(--text-muted); margin-top: 2px;
  }
  .bonus-multi.hot { color: var(--green); }

  /* Actions */
  .bonus-row-actions {
    display: flex; flex-direction: column; gap: 4px;
    padding: 0 12px; flex-shrink: 0;
  }
  .row-action-btn {
    width: 30px; height: 30px; border-radius: 6px; border: 1px solid var(--border);
    background: var(--bg-mid); color: var(--text-dim); font-size: 13px;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: var(--transition);
  }
  .row-action-btn:hover { border-color: var(--gold); color: var(--gold); }
  .row-action-btn.danger:hover { border-color: var(--red); color: var(--red); }

  /* ─── EMPTY STATE ─── */
  .empty-state {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    height: 100%; gap: 12px; opacity: 0.5;
  }
  .empty-icon { font-size: 48px; }
  .empty-text { font-family: 'Share Tech Mono', monospace; font-size: 18px; color: var(--text-dim); letter-spacing: 2px; }
  .slot-create-empty {
    display:none;
    margin: 12px auto;
    width: min(560px, 94%);
    border: 1px solid var(--border);
    background: linear-gradient(180deg, rgba(15,22,34,0.92), rgba(8,12,20,0.95));
    border-radius: 12px;
    padding: 14px;
    box-shadow: 0 14px 34px rgba(0,0,0,0.36);
  }
  .slot-create-title {
    font-family:'Rajdhani',sans-serif;
    font-size: 16px;
    color: var(--gold);
    margin-bottom: 10px;
    letter-spacing: .5px;
  }
  .slot-create-row {
    display:grid;
    grid-template-columns: minmax(140px,1.4fr) minmax(120px,1fr) 110px 120px auto;
    gap: 8px;
  }
  @media (max-width: 720px) {
    .slot-create-row { grid-template-columns: 1fr 1fr; }
    .slot-create-row > .slot-create-btn { grid-column: 1 / -1; }
  }
  .slot-create-row input,
  .slot-create-row select {
    border: 1px solid var(--border);
    background: var(--bg-mid);
    color: var(--text);
    border-radius: 8px;
    padding: 9px 10px;
    font-family:'Inter',sans-serif;
    min-width: 0;
  }
  .slot-create-type { font-family:'Rajdhani',sans-serif; font-weight:700; letter-spacing:.5px; }
  .slot-create-btn {
    border:1px solid rgba(0,220,110,0.5);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(0,220,110,0.26), rgba(0,220,110,0.08));
    color: #EFE3F1;
    font-family:'Rajdhani',sans-serif;
    font-weight:700;
    padding: 0 12px;
    cursor:pointer;
  }
  .slot-create-btn:hover { border-color: var(--gold); color: #fff; }
  .slot-create-hint { margin-top: 8px; font-size: 11px; color: var(--text-muted); }

  /* ─── MODAL ─── */
  .modal-overlay {
    position: fixed; inset: 0; z-index: 100;
    background: rgba(2,2,2,0.85); backdrop-filter: blur(12px);
    display: flex; align-items: center; justify-content: center;
    animation: fadeIn 0.2s ease;
  }
  @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
  .modal-overlay.hidden { display: none; }

  .modal {
    background: var(--bg-panel); border: 1px solid var(--border);
    border-radius: var(--radius); width: 420px; max-width: 94vw;
    position: relative; overflow: hidden; animation: slideUp 0.25s cubic-bezier(0.34,1.56,0.64,1);
    backdrop-filter: blur(24px);
  }
  @keyframes slideUp {
    from { opacity: 0; transform: translateY(24px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
  .modal::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
  }

  .modal-img-wrap {
    width: 100%; height: 180px; overflow: hidden; position: relative;
    background: var(--bg-mid);
  }
  .modal-img-wrap img {
    width: 100%; height: 100%; object-fit: contain; filter: blur(0);
    transition: transform 0.5s ease;
  }
  .modal-img-wrap::after {
    content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 60px;
    background: linear-gradient(to top, var(--bg-panel), transparent);
  }

  .modal-body { padding: 20px 24px 24px; }
  .modal-slot-name {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 22px;
    color: var(--gold); margin-bottom: 4px;
  }
  .modal-slot-prov {
    font-family: 'Share Tech Mono', monospace; font-size: 11px;
    color: var(--text-dim); letter-spacing: 1px; margin-bottom: 20px;
  }

  .modal-field { margin-bottom: 16px; }
  .modal-label {
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    color: var(--text-muted); letter-spacing: 2px; text-transform: uppercase;
    margin-bottom: 8px; display: block;
  }
  .modal-input {
    width: 100%; height: 52px; background: rgba(2,2,2,0.6);
    border: 1.5px solid var(--border); border-radius: var(--radius-sm);
    color: var(--text); font-family: 'Rajdhani', sans-serif; font-weight: 600;
    font-size: 22px; padding: 0 16px; outline: none; transition: var(--transition);
    -moz-appearance: textfield;
  }
  .modal-input::-webkit-outer-spin-button,
  .modal-input::-webkit-inner-spin-button { -webkit-appearance: none; }
  .modal-input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-glow); }

  .modal-actions { display: flex; gap: 10px; margin-top: 20px; }
  .modal-btn {
    flex: 1; height: 46px; border-radius: var(--radius-sm);
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 13px;
    letter-spacing: 2px; text-transform: uppercase; cursor: pointer;
    transition: var(--transition); border: none;
  }
  .modal-btn.primary {
    background: linear-gradient(135deg, var(--gold-dim) 0%, var(--gold) 100%);
    color: #ffffff;
  }
  .modal-btn.primary:hover { transform: translateY(-1px); box-shadow: 0 6px 20px var(--gold-glow-strong); }
  .modal-btn.secondary {
    background: transparent; border: 1px solid var(--border);
    color: var(--text-dim);
  }
  .modal-btn.secondary:hover { border-color: var(--border-bright); color: var(--text); }

  .modal-close {
    position: absolute; top: 12px; right: 12px; width: 32px; height: 32px;
    border-radius: 8px; border: 1px solid var(--border); background: var(--bg-mid);
    color: var(--text-dim); font-size: 16px; cursor: pointer; z-index: 2;
    display: flex; align-items: center; justify-content: center; transition: var(--transition);
  }
  .modal-close:hover { border-color: var(--red); color: var(--red); }

  /* ─── NEW HUNT MODAL ─── */
  .new-hunt-modal { max-width: 380px; }

  /* ─── OPENER FULLSCREEN ─── */
  #opener {
    position: fixed; inset: 0; z-index: 200;
    background: var(--bg-deep);
    display: flex; flex-direction: column;
    animation: fadeIn 0.3s ease;
  }
  #opener.hidden { display: none; }
  #opener::before {
    content: ''; position: fixed; inset: 0; z-index: 0;
    background: radial-gradient(ellipse 80% 60% at 50% 30%, rgba(0,220,110,0.07) 0%, transparent 70%);
    pointer-events: none;
  }

  .opener-header {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    flex-wrap: wrap;
    padding: 16px 28px; border-bottom: 1px solid var(--border);
    background: var(--bg-panel); backdrop-filter: blur(20px);
    position: relative; z-index: 1; flex-shrink: 0;
  }
  .opener-header-left {
    display: flex; align-items: center; gap: 16px;
    flex: 1; min-width: 0;
  }
  .opener-header-actions {
    display: flex; align-items: center; gap: 10px;
    flex-shrink: 0;
  }
  .opener-stream-toggle {
    display: flex; align-items: center; gap: 8px;
    cursor: pointer;
    user-select: none;
    font-family: 'Rajdhani', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.2px;
    color: var(--text-dim);
  }
  .opener-stream-toggle input {
    position: absolute;
    opacity: 0;
    width: 0; height: 0;
    pointer-events: none;
  }
  .opener-stream-toggle-ui {
    width: 38px;
    height: 22px;
    border-radius: 999px;
    background: var(--bg-mid);
    border: 1px solid var(--border);
    position: relative;
    transition: var(--transition);
    flex-shrink: 0;
  }
  .opener-stream-toggle-ui::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--text-dim);
    top: 2px;
    left: 3px;
    transition: transform 0.2s ease, background 0.2s ease;
  }
  .opener-stream-toggle input:checked + .opener-stream-toggle-ui {
    background: rgba(127, 90, 131, 0.28);
    border-color: var(--gold);
    box-shadow: 0 0 0 1px rgba(127, 90, 131, 0.35);
  }
  .opener-stream-toggle input:checked + .opener-stream-toggle-ui::after {
    transform: translateX(14px);
    background: var(--gold);
  }
  .opener-stream-toggle input:focus-visible + .opener-stream-toggle-ui {
    box-shadow: 0 0 0 2px var(--gold-glow);
  }

  .opener-progress-badge {
    background: var(--gold); color: #ffffff; border-radius: 999px;
    padding: 6px 18px; font-family: 'Rajdhani', sans-serif;
    font-weight: 700; font-size: 16px; letter-spacing: 2px;
    box-shadow: 0 0 20px var(--gold-glow-strong);
  }

  .opener-hunt-name {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 18px;
    color: var(--text-dim); letter-spacing: 2px;
  }

  .opener-close {
    width: 40px; height: 40px; border-radius: var(--radius-sm);
    border: 1px solid var(--border); background: var(--bg-mid);
    color: var(--text-dim); font-size: 18px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; transition: var(--transition);
  }
  .opener-close:hover { border-color: var(--red); color: var(--red); }

  .opener-detach {
    height: 40px; padding: 0 12px; border-radius: var(--radius-sm);
    border: 1px solid var(--green); background: rgba(0,230,118,0.1);
    color: var(--green);
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 12px;
    letter-spacing: 1.4px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 6px;
    transition: var(--transition);
  }
  .opener-detach:hover { background: rgba(0,230,118,0.2); transform: translateY(-1px); }
  .opener-detach.active { background: rgba(0,230,118,0.28); box-shadow: 0 0 0 2px rgba(0,230,118,0.25); }
  .opener-detach.active .opener-detach-txt::after { content: ' ✓'; }

  .opener-body {
    flex: 1; display: flex; overflow: hidden; position: relative; z-index: 1;
  }

  /* LEFT: image */
  .opener-img-panel {
    flex: 1.2; display: flex; align-items: center; justify-content: center;
    padding: 32px; position: relative; overflow: hidden;
  }
  .opener-img-panel::after {
    content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 1px;
    background: linear-gradient(to bottom, transparent, var(--border), transparent);
  }

  .opener-img-frame {
    width: 100%; max-width: 480px; max-height: 100%;
    border-radius: var(--radius); overflow: hidden;
    border: 1.5px solid var(--border-bright);
    box-shadow: 0 0 60px rgba(0,220,110,0.12), 0 24px 64px rgba(0,0,0,0.6);
    position: relative; background: var(--bg-mid); aspect-ratio: 4/3;
  }
  .opener-img-frame img {
    width: 100%; height: 100%; object-fit: contain; display: block;
  }
  .opener-img-placeholder {
    width: 100%; height: 100%; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 12px;
  }
  .opener-img-placeholder .big-icon { font-size: 64px; opacity: 0.3; }

  /* RIGHT: info & input */
  .opener-info-panel {
    width: 420px; flex-shrink: 0; display: flex; flex-direction: column;
    padding: 40px 36px; gap: 24px; justify-content: center;
  }

  .opener-slot-name {
    font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 32px;
    color: var(--text); line-height: 1.1; letter-spacing: 0.5px;
  }
  .opener-slot-prov {
    font-family: 'Share Tech Mono', monospace; font-size: 12px;
    color: var(--gold-dim); letter-spacing: 2px; margin-top: 6px;
  }
  .opener-stake {
    display: inline-block; background: rgba(0,220,110,0.1); border: 1px solid var(--border);
    border-radius: 6px; padding: 4px 12px; margin-top: 8px;
    font-family: 'Share Tech Mono', monospace; font-size: 13px; color: var(--gold);
  }

  .opener-be-info {
    background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 14px 16px;
  }
  .opener-be-row {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 6px;
  }
  .opener-be-row:last-child { margin-bottom: 0; }
  .opener-be-label {
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    color: var(--text-muted); letter-spacing: 1px;
  }
  .opener-be-val {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 16px;
  }
  .opener-be-val.gold { color: var(--gold); }
  .opener-be-val.cyan { color: var(--cyan); }
  .opener-be-val.green { color: var(--green); }
  .opener-be-val.red { color: var(--red); }
.opener-profit-hint {
  margin-top: 8px;
  font-family: 'Share Tech Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.8px;
  color: var(--text-dim);
}
.opener-bonus-kind {
  margin-top: 7px;
  display: inline-block;
  border-radius: 5px;
  padding: 3px 9px;
  font-family: 'Share Tech Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.5px;
}
.opener-bonus-kind.normal {
  background: rgba(77,182,255,0.10); border: 1px solid rgba(77,182,255,0.32); color: var(--blue);
}
.opener-bonus-kind.bounty {
  background: rgba(0,230,118,0.10); border: 1px solid rgba(0,230,118,0.30); color: var(--green);
}
.opener-bonus-kind.epic {
  background: rgba(0,220,110,0.12); border: 1px solid rgba(0,220,110,0.35); color: var(--gold);
}
.stat-subhint {
  margin-top: 6px;
  font-family: 'Share Tech Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.7px;
  color: var(--text-dim);
  line-height: 1.35;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

  .opener-input-section { display: flex; flex-direction: column; gap: 10px; }
  .opener-input-label {
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    color: var(--text-muted); letter-spacing: 3px; text-transform: uppercase;
  }
  #opener-win-input {
    width: 100%; height: 72px; background: rgba(2,2,2,0.7);
    border: 2px solid var(--border); border-radius: var(--radius-sm);
    color: var(--gold); font-family: 'Rajdhani', sans-serif;
    font-weight: 700; font-size: 40px; padding: 0 20px;
    outline: none; transition: var(--transition); text-align: center;
    -moz-appearance: textfield; letter-spacing: 2px;
  }
  #opener-win-input::-webkit-outer-spin-button,
  #opener-win-input::-webkit-inner-spin-button { -webkit-appearance: none; }
  #opener-win-input:focus { border-color: var(--gold); box-shadow: 0 0 0 4px var(--gold-glow); }

  .opener-nav {
    display: flex; gap: 10px; align-items: center;
  }
  .opener-nav-btn {
    height: 50px; border-radius: var(--radius-sm); border: 1.5px solid var(--border);
    background: var(--bg-glass); color: var(--text); font-size: 20px;
    cursor: pointer; transition: var(--transition); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; width: 50px;
  }
  .opener-nav-btn:hover { border-color: var(--border-bright); background: rgba(0,220,110,0.08); }
  .opener-confirm-btn {
    flex: 1; height: 50px; background: linear-gradient(135deg, var(--gold-dim) 0%, var(--gold) 100%);
    color: #ffffff; font-family: 'Rajdhani', sans-serif; font-weight: 700;
    font-size: 14px; letter-spacing: 2px; text-transform: uppercase;
    border: none; border-radius: var(--radius-sm); cursor: pointer;
    transition: var(--transition); position: relative; overflow: hidden;
  }
  .opener-confirm-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px var(--gold-glow-strong); }
  .opener-hint {
    font-family: 'Share Tech Mono', monospace; font-size: 10px;
    color: var(--text-muted); text-align: center; letter-spacing: 1px;
  }

  /* progress bar */
  .opener-progress-bar {
    height: 3px; background: var(--border); position: relative;
    flex-shrink: 0; z-index: 1;
  }
  .opener-progress-fill {
    height: 100%; background: linear-gradient(90deg, var(--gold-dim), var(--gold));
    transition: width 0.5s cubic-bezier(0.4,0,0.2,1);
    box-shadow: 0 0 8px var(--gold-glow);
  }

  /* ─── TOAST ─── */
  #toast-container {
    position: fixed; bottom: 24px; right: 24px; z-index: 9000;
    display: flex; flex-direction: column; gap: 8px; align-items: flex-end;
  }
  .toast {
    background: var(--bg-panel); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 12px 18px;
    font-family: 'Share Tech Mono', monospace; font-size: 12px; color: var(--text);
    backdrop-filter: blur(16px); animation: toastIn 0.3s ease;
    max-width: 280px;
  }
  .toast.success { border-color: var(--green); color: var(--green); }
  .toast.error { border-color: var(--red); color: var(--red); }
  @keyframes toastIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
  }

  /* ─── ERROR PANEL ─── */
  .error-banner {
    margin: 16px; padding: 16px 20px;
    background: rgba(255,61,90,0.07); border: 1px solid rgba(255,61,90,0.3);
    border-radius: var(--radius-sm);
    font-family: 'Share Tech Mono', monospace; font-size: 12px; color: var(--red);
    line-height: 1.6;
  }

  /* ─── CONFIRM DIALOG ─── */
  .confirm-dialog {
    background: var(--bg-panel); border: 1px solid rgba(255,61,90,0.4);
    border-radius: var(--radius); padding: 24px; width: 360px; max-width: 94vw;
    animation: slideUp 0.2s ease;
  }
  .confirm-dialog h3 {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 18px;
    color: var(--red); margin-bottom: 10px;
  }
  .confirm-dialog p { font-size: 13px; color: var(--text-dim); line-height: 1.5; margin-bottom: 20px; }
  .confirm-actions { display: flex; gap: 10px; }
  .confirm-btn {
    flex: 1; height: 42px; border-radius: var(--radius-sm);
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 13px;
    letter-spacing: 1px; text-transform: uppercase; cursor: pointer; transition: var(--transition); border: none;
  }
  .confirm-btn.danger { background: var(--red); color: #fff; }
  .confirm-btn.danger:hover { box-shadow: 0 4px 16px rgba(255,61,90,0.4); }
  .confirm-btn.cancel { background: transparent; border: 1px solid var(--border); color: var(--text-dim); }
  .confirm-btn.cancel:hover { border-color: var(--border-bright); color: var(--text); }

  /* ─── LOADER ─── */
  .loader {
    display: flex; align-items: center; justify-content: center; height: 100%;
    flex-direction: column; gap: 16px;
  }
  .loader-spinner {
    width: 40px; height: 40px; border: 2px solid var(--border);
    border-top-color: var(--gold); border-radius: 50%;
    animation: spin 0.8s linear infinite;
  }
  @keyframes spin { to { transform: rotate(360deg); } }
  .loader-text { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: var(--text-muted); letter-spacing: 2px; }

  /* ─── UTILS ─── */
  .hidden { display: none !important; }
  .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

  /* ═══════════════════════════════════════════
     v1.01 - NOUVELLES FONCTIONNALITÉS
  ═══════════════════════════════════════════ */

  /* ─── BOUTON ENVOYER SUR SLOT ─── */
  .opener-send-slot-btn {
    width: 100%; height: 46px; margin-top: 4px;
    background: linear-gradient(135deg, #0d4a28 0%, #1a6b3a 100%);
    border: 1.5px solid var(--green); border-radius: var(--radius-sm);
    color: var(--green); font-family: 'Rajdhani', sans-serif; font-weight: 700;
    font-size: 12px; letter-spacing: 2px; text-transform: uppercase;
    cursor: pointer; transition: var(--transition);
    display: flex; align-items: center; justify-content: center; gap: 8px;
    position: relative; overflow: hidden;
  }
  .opener-send-slot-btn::before {
    content: ''; position: absolute; inset: 0;
    background: rgba(0,230,118,0.1); opacity: 0; transition: var(--transition);
  }
  .opener-send-slot-btn:hover::before { opacity: 1; }
  .opener-send-slot-btn:hover {
    transform: translateY(-1px); box-shadow: 0 6px 20px rgba(0,230,118,0.3);
  }

  /* ─── BLACKJACK MODAL ─── */
  .bj-overlay {
    position: fixed; inset: 0; z-index: 500;
    background: rgba(2,2,2,0.92); backdrop-filter: blur(16px);
    display: flex; align-items: center; justify-content: center;
  }
  .bj-overlay.hidden { display: none; }
  .bj-modal {
    background: var(--bg-panel); border: 1px solid var(--border);
    border-radius: var(--radius); width: min(900px, 96vw); max-height: 90vh;
    overflow-y: auto; position: relative;
  }
  .bj-header {
    padding: 20px 28px; border-bottom: 1px solid var(--border);
    display: flex; align-items: center; justify-content: space-between;
  }
  .bj-title { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 22px; color: var(--gold); letter-spacing: 2px; }
  .bj-close {
    width: 36px; height: 36px; border: 1px solid var(--border); border-radius: 8px;
    background: var(--bg-mid); color: var(--text-dim); font-size: 18px;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: var(--transition);
  }
  .bj-close:hover { border-color: var(--red); color: var(--red); }
  .bj-body { padding: 20px 28px; }
  .bj-input-row { display: flex; gap: 12px; align-items: center; margin-bottom: 20px; flex-wrap: wrap; }
  .bj-input-group { display: flex; flex-direction: column; gap: 6px; }
  .bj-label { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-muted); letter-spacing: 2px; text-transform: uppercase; }
  .bj-input {
    height: 44px; background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm); color: var(--text);
    font-family: 'Rajdhani', sans-serif; font-size: 18px; font-weight: 600;
    padding: 0 14px; outline: none; width: 120px;
  }
  .bj-input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-glow); }
  .bj-table-wrap { overflow-x: auto; }
  .bj-table {
    width: 100%; border-collapse: collapse; font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
  }
  .bj-table th {
    background: var(--bg-mid); color: var(--gold); padding: 8px 12px;
    border: 1px solid var(--border); text-align: center; letter-spacing: 1px;
    font-size: 10px; position: sticky; top: 0;
  }
  .bj-table td {
    padding: 7px 10px; border: 1px solid rgba(0,220,110,0.08);
    text-align: center; font-size: 12px; color: var(--text);
  }
  .bj-table tr:hover td { background: rgba(0,220,110,0.03); }
  .bj-table td:first-child { background: var(--bg-mid); color: var(--gold); font-weight: 700; sticky: left; }
  .bj-cell-H  { background: rgba(0,230,118,0.18); color: #00e676; font-weight: 700; } /* Hit */
  .bj-cell-S  { background: rgba(255,61,90,0.18);  color: #ff3d5a; font-weight: 700; } /* Stand */
  .bj-cell-D  { background: rgba(0,180,255,0.18);  color: #00b4ff; font-weight: 700; } /* Double */
  .bj-cell-P  { background: rgba(255,201,60,0.18); color: #FFC93C; font-weight: 700; } /* Split */
  .bj-cell-Ds { background: rgba(0,180,255,0.1);   color: #00b4ff; }                  /* Double/Stand */
  .bj-legend { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 16px; }
  .bj-legend-item { display: flex; align-items: center; gap: 6px; font-size: 11px; font-family: 'Share Tech Mono', monospace; }
  .bj-legend-box { width: 20px; height: 20px; border-radius: 4px; }
  .bj-rec {
    margin-top: 20px; padding: 16px 20px; border-radius: var(--radius-sm);
    background: rgba(0,230,118,0.06); border: 1px solid rgba(0,230,118,0.3);
    font-family: 'Share Tech Mono', monospace; font-size: 12px;
    color: var(--green); line-height: 1.6;
  }
  .bj-rec strong { color: var(--text); display: block; margin-bottom: 4px; font-size: 10px; letter-spacing: 2px; color: var(--text-muted); }

  /* ─── CALCUL MISE OPTIMALE ─── */
  .mise-section {
    background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius); padding: 20px; margin-bottom: 12px;
  }
  .mise-section-title { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 16px; color: var(--gold); letter-spacing: 2px; margin-bottom: 16px; }
  .mise-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .mise-result-card {
    background: var(--bg-mid); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 14px;
  }
  .mise-result-label { font-family: 'Share Tech Mono', monospace; font-size: 9px; color: var(--text-muted); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 6px; }
  .mise-result-val { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 24px; color: var(--gold); }

  /* ─── TOURNOI ─── */
  .tournoi-card {
    background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 14px 16px; margin-bottom: 8px;
    display: flex; align-items: center; gap: 12px;
  }
  .tournoi-rank { font-family: 'Share Tech Mono', monospace; font-size: 20px; color: var(--gold); width: 36px; text-align: center; }
  /* Podium or / argent / bronze (DA 19EnPlein) */
  .tournoi-card.pod-1 {
    border-color: rgba(255,201,60,0.55);
    background: linear-gradient(135deg, rgba(255,201,60,0.12), var(--bg-glass) 62%);
    box-shadow: 0 0 22px rgba(255,201,60,0.14);
  }
  .tournoi-card.pod-1 .tournoi-rank { color: var(--gold-true); text-shadow: 0 0 14px var(--gold-true-glow); }
  .tournoi-card.pod-1 .tournoi-score { color: var(--gold-true); }
  .tournoi-card.pod-2 {
    border-color: rgba(205,215,225,0.42);
    background: linear-gradient(135deg, rgba(205,215,225,0.09), var(--bg-glass) 62%);
  }
  .tournoi-card.pod-2 .tournoi-rank { color: #CDD7E1; text-shadow: 0 0 10px rgba(205,215,225,0.4); }
  .tournoi-card.pod-3 {
    border-color: rgba(210,130,80,0.48);
    background: linear-gradient(135deg, rgba(210,130,80,0.10), var(--bg-glass) 62%);
  }
  .tournoi-card.pod-3 .tournoi-rank { color: #D28250; text-shadow: 0 0 10px rgba(210,130,80,0.45); }
  .tournoi-info { flex: 1; min-width: 0; }
  .tournoi-name { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 15px; color: var(--text); }
  .tournoi-meta { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-dim); margin-top: 2px; }
  .tournoi-score { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 20px; color: var(--green); text-align: right; }
  .tournoi-badge {
    font-family: 'Share Tech Mono', monospace; font-size: 9px;
    padding: 2px 8px; border-radius: 999px; text-transform: uppercase; letter-spacing: 1px;
  }
  .tournoi-badge.verified { background: rgba(0,230,118,0.12); border: 1px solid rgba(0,230,118,0.3); color: var(--green); }
  .tournoi-badge.pending  { background: rgba(0,220,110,0.1);  border: 1px solid rgba(0,220,110,0.3);  color: var(--gold); }

  /* ─── COMPTES ─── */
  .auth-overlay {
    position: fixed; inset: 0; z-index: 800;
    background: rgba(2,2,2,0.95); backdrop-filter: blur(20px);
    display: flex; align-items: center; justify-content: center;
  }
  .auth-overlay.hidden { display: none; }
  .auth-box {
    background: var(--bg-panel); border: 1px solid var(--border);
    border-radius: var(--radius); width: min(420px, 94vw); position: relative;
    overflow: hidden;
  }
  .auth-box::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
  }
  .auth-header { padding: 28px 28px 20px; }
  .auth-title { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 24px; color: var(--gold); letter-spacing: 2px; }
  .auth-sub { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-dim); letter-spacing: 1px; margin-top: 4px; }
  .auth-body { padding: 0 28px 28px; }
  .auth-field { margin-bottom: 16px; }
  .auth-label { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-muted); letter-spacing: 2px; text-transform: uppercase; display: block; margin-bottom: 8px; }
  .auth-input {
    width: 100%; height: 48px; background: rgba(2,2,2,0.6);
    border: 1.5px solid var(--border); border-radius: var(--radius-sm);
    color: var(--text); font-family: 'Rajdhani', sans-serif; font-size: 16px; font-weight: 600;
    padding: 0 16px; outline: none; transition: var(--transition);
  }
  .auth-input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-glow); }
  .auth-btn {
    width: 100%; height: 50px; background: linear-gradient(135deg, var(--gold-dim) 0%, var(--gold) 100%);
    color: #ffffff; font-family: 'Rajdhani', sans-serif; font-weight: 700;
    font-size: 15px; letter-spacing: 3px; text-transform: uppercase;
    border: none; border-radius: var(--radius-sm); cursor: pointer;
    transition: var(--transition); margin-top: 8px;
  }
  .auth-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px var(--gold-glow-strong); }
  .auth-switch { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: var(--text-dim); text-align: center; margin-top: 16px; cursor: pointer; }
  .auth-switch span { color: var(--gold); text-decoration: underline; }
  .auth-error { background: rgba(255,61,90,0.08); border: 1px solid rgba(255,61,90,0.3); border-radius: var(--radius-sm); padding: 10px 14px; font-family: 'Share Tech Mono', monospace; font-size: 11px; color: var(--red); margin-bottom: 14px; display: none; }
  .auth-error.show { display: block; }

  /* Profile badge in header */
  .profile-badge {
    display: flex; align-items: center; gap: 8px; cursor: pointer;
    padding: 8px 14px; border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: var(--bg-glass); transition: var(--transition);
  }
  .profile-badge:hover { border-color: var(--border-bright); background: rgba(0,220,110,0.05); }
  .profile-avatar { width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, var(--gold-dim) 0%, var(--gold) 100%); display: flex; align-items: center; justify-content: center; font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 14px; color: #ffffff; }
  .profile-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
  .profile-name { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: var(--text-dim); }
  .profile-balance { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 13px; color: var(--gold); }
  .profile-online { display:flex; align-items:center; gap:6px; font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text-dim); margin-top:2px; }
  .profile-online-dot { width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 8px rgba(0,230,118,0.65); }
  .profile-wrap { position: relative; margin-left: 8px; z-index: 1800; flex-shrink: 0; }
  .profile-menu {
    position: fixed;
    top: 0;
    right: 0;
    width: 360px;
    max-width: calc(100vw - 20px);
    max-height: min(85vh, calc(100dvh - 96px));
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: #0A0A0C;
    border: 1px solid rgba(0,220,110,0.35);
    border-radius: 14px;
    box-shadow: 0 20px 44px rgba(0,0,0,0.72);
    padding: 14px;
    z-index: 9600;
    opacity: 1 !important;
    pointer-events: auto;
    scrollbar-gutter: stable;
  }
  .profile-menu::-webkit-scrollbar { width: 8px; }
  .profile-menu::-webkit-scrollbar-track { background: rgba(255,255,255,0.04); border-radius: 8px; }
  .profile-menu::-webkit-scrollbar-thumb { background: rgba(0,220,110,0.45); border-radius: 8px; }
  .profile-menu::-webkit-scrollbar-thumb:hover { background: rgba(0,220,110,0.65); }
  .profile-menu,
  .profile-menu * { opacity: 1 !important; }
  .profile-menu.hidden { display: none; }
  .profile-menu-title { font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 19px; letter-spacing: 1px; color: var(--gold); margin-bottom: 10px; }
  .profile-menu-head {
    border: 1px solid rgba(0,220,110,0.24);
    border-radius: 12px;
    padding: 10px;
    background: #131316;
    margin-bottom: 10px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .profile-menu-big { font-family:'Rajdhani',sans-serif; font-size:16px; font-weight:700; color:var(--text); }
  .profile-menu-sub { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text-dim); margin-top:2px; }
  .profile-menu-row { margin-bottom: 10px; }
  .profile-menu-label { font-family: 'Share Tech Mono', monospace; font-size: 10px; letter-spacing: 1.4px; color: var(--text-muted); display: block; margin-bottom: 6px; text-transform: uppercase; }
  .profile-menu-input {
    width: 100%; height: 40px; border: 1px solid rgba(255,255,255,0.12); border-radius: 10px;
    background: #0A0A0C; color: var(--text); padding: 0 11px; outline: none;
    font-family: 'Exo 2', sans-serif; font-size: 14px;
  }
  .profile-menu-input:focus { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-glow); }
  .profile-menu-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
  .profile-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px; }
  .profile-tile {
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 10px;
    padding: 8px;
    background: #131316;
  }
  .profile-tile-label { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--text-muted); letter-spacing:1px; text-transform:uppercase; }
  .profile-tile-value { font-family:'Rajdhani',sans-serif; font-size:15px; color:var(--text); margin-top:2px; font-weight:700; }
  .profile-pref-row { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
  .profile-pref-row select,
  .profile-pref-row input[type="checkbox"] { cursor:pointer; }
  .profile-mini-btn {
    height: 38px; border: 1px solid rgba(255,255,255,0.16); border-radius: 10px; cursor: pointer;
    background: #131316; color: var(--text-dim); font-family: 'Rajdhani', sans-serif;
    font-size: 12px; font-weight: 700; letter-spacing: 1px; transition: var(--transition);
  }
  .profile-mini-btn:hover { border-color: var(--gold); color: var(--gold); }
  .profile-mini-btn.primary { background: rgba(0,220,110,0.24); color: var(--gold); border-color: rgba(0,220,110,0.55); }
  .profile-mini-btn.danger:hover { border-color: var(--red); color: var(--red); }
  .drop-box {
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 10px;
    padding: 10px;
    background: #0A0A0C;
    margin-bottom: 10px;
  }
  .drop-title { font-family: 'Rajdhani', sans-serif; font-size: 14px; font-weight: 700; color: var(--gold); letter-spacing: 1px; }
  .admin-toolbar {
    display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:10px;
  }
  .admin-toolbar .profile-menu-input { height:36px; min-width:120px; }
  .admin-toolbar .profile-mini-btn { height:36px; min-width: 120px; }
  .hub-kpi-grid {
    display:grid;
    grid-template-columns: repeat(auto-fit,minmax(190px,1fr));
    gap:10px;
    margin-top: 12px;
  }
  .hub-kpi {
    border:1px solid rgba(255,255,255,0.14);
    border-radius:12px;
    background:#0A0A0C;
    padding:10px 12px;
  }
  .hub-kpi-l { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text-muted); letter-spacing:1px; }
  .hub-kpi-v { font-family:'Rajdhani',sans-serif; font-size:24px; font-weight:700; color:var(--gold); margin-top:2px; }
  .drop-meta { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-dim); margin-top: 4px; line-height: 1.5; }
  .news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
  .news-team-badge {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 12px; border-radius: var(--radius-sm);
    border: 1px solid rgba(255,201,60,0.45);
    background: linear-gradient(135deg, rgba(255,201,60,0.10), rgba(0,0,0,0.30));
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 13px;
    letter-spacing: 2px; color: var(--gold-true); white-space: nowrap;
    text-shadow: 0 0 12px var(--gold-true-glow);
  }
  .news-team-badge img {
    width: 24px; height: 24px; border-radius: 6px; object-fit: cover;
    border: 1px solid rgba(255,201,60,0.4);
  }
  .news-box-team { border-color: rgba(255,201,60,0.28); }
  .news-box-team .drop-title { color: var(--gold-true); }
  @media (max-width: 900px) { .news-team-badge { display: none; } }
  .news-card { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: var(--bg-mid); transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
  .news-card:hover { transform: translateY(-2px); border-color: var(--border-bright); box-shadow: 0 6px 20px rgba(0,0,0,0.35); }
  .news-card-thumb { position: relative; width: 100%; aspect-ratio: 16/9; background: #000; overflow: hidden; }
  .news-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .news-card-thumb .news-badge { position: absolute; top: 8px; left: 8px; padding: 3px 8px; border-radius: 4px; font-family: 'Rajdhani', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; backdrop-filter: blur(6px); }
  .news-badge.video { background: rgba(255,0,0,0.85); color:#fff; }
  .news-badge.bigwinboard { background: rgba(0,220,110,0.85); color:#fff; }
  .news-badge.manual { background: rgba(0,160,255,0.85); color:#fff; }
  .news-card-body { padding: 10px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
  .news-card-title { font-family: 'Rajdhani', sans-serif; font-size: 14px; font-weight: 700; color: var(--text); line-height: 1.25; }
  .news-card-meta { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-dim); display:flex; justify-content: space-between; gap:6px; }
  .news-card-summary { font-size: 11.5px; color: var(--text-dim); line-height: 1.4; flex: 1; }
  .news-card-actions { display: flex; gap: 6px; margin-top: 6px; }
  .news-card-actions a { flex: 1; text-align: center; text-decoration: none; padding: 6px 8px; border-radius: 6px; border: 1px solid var(--border-bright); background: var(--bg-elev); color: var(--text); font-family: 'Rajdhani', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
  .news-card-actions a:hover { background: var(--bg-glass2); border-color: var(--gold-dim); color: var(--gold-dim); }
  .discord-code-box { display:flex; align-items:center; justify-content:center; gap:10px; padding:14px; border-radius:10px; border: 1px dashed var(--gold-dim); background: var(--bg-mid); margin-bottom:10px; }
  .discord-code-value { font-family: 'Share Tech Mono', monospace; font-size: 28px; font-weight: 700; letter-spacing: 4px; color: var(--gold); }
  .drop-claim-btn {
    margin-top: 8px; width: 100%; height: 34px; border-radius: 8px; border: 1px solid rgba(0,230,118,0.35);
    background: rgba(0,230,118,0.12); color: var(--green); cursor: pointer;
    font-family: 'Rajdhani', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 1px;
  }
  .drop-claim-btn:disabled {
    opacity: 0.45; cursor: not-allowed; border-color: var(--border); color: var(--text-dim); background: var(--bg-mid);
  }

  /* ─── MINI JEUX LOBBY ─── */
  .games-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    padding: 4px;
    min-height: 100%;
  }
  .game-card {
    background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 20px 14px; text-align: center;
    min-height: 150px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    cursor: pointer; transition: var(--transition); position: relative; overflow: hidden;
  }
  .game-card.stagger-in { animation: gameCardIn 0.38s ease both; }
  @keyframes gameCardIn {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
  .game-card::before {
    content: ''; position: absolute; inset: 0; opacity: 0;
    background: linear-gradient(135deg, rgba(0,220,110,0.06), transparent);
    transition: var(--transition);
  }
  .game-card:hover::before { opacity: 1; }
  .game-card:hover { border-color: var(--border-bright); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.4); }
  .game-card-icon { margin-bottom: 10px; display: inline-flex; align-items: center; justify-content: center; }
  .game-card-icon img {
    width: 48px; height: 48px; object-fit: contain;
    filter: drop-shadow(0 0 12px rgba(0,220,110,0.25));
    transition: transform 0.25s ease, filter 0.25s ease;
  }
  .game-card:hover .game-card-icon img {
    transform: translateY(-2px) scale(1.06);
    filter: drop-shadow(0 0 16px rgba(0,220,110,0.38));
  }
  .game-card-name { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 16px; color: var(--text); letter-spacing: 1px; }
  .game-card-rtp { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: var(--text-dim); margin-top: 4px; }
  @media (max-width: 1700px) {
    .games-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  @media (max-width: 1100px) {
    .games-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 700px) {
    .games-grid { grid-template-columns: 1fr; }
  }

  /* Game window — au-dessus des page-panels (40) et du header hunt (1700) */
  .game-window {
    position: fixed; inset: 0; z-index: 8500;
    background: radial-gradient(1200px 700px at 50% -10%, rgba(0,220,110,0.09), rgba(2,2,2,0.96) 48%);
    backdrop-filter: blur(16px);
    display: flex; flex-direction: column;
  }
  .game-window.da-pro {
    --game-panel-w: clamp(300px, 25vw, 370px);
    background: radial-gradient(1300px 740px at 50% -20%, rgba(0,220,110,0.13), rgba(2,10,6,0.97) 52%);
  }
  .game-window.da-pro .game-top-bar {
    justify-content: center;
    border-bottom-color: rgba(0,220,110,0.22);
    background: linear-gradient(180deg, rgba(4,16,10,0.92), rgba(3,13,8,0.94));
    position: relative;
  }
  .game-window.da-pro .game-title {
    color: #ECFFF4;
    font-size: 50px;
    letter-spacing: 0.2px;
    text-align: center;
    max-width: 70vw;
    line-height: 1.08;
  }
  .game-window.da-pro .game-balance-bar { display:none; }
  .game-window.da-pro .game-back-btn {
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
  }
  .game-window.hidden { display: none; }
  .game-top-bar {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 24px; border-bottom: 1px solid var(--border);
    background: var(--bg-panel); flex-shrink: 0;
  }
  .game-title { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 18px; color: var(--gold); letter-spacing: 2px; }
  .game-balance-bar { display: flex; align-items: center; gap: 20px; }
  .game-balance { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 16px; }
  .game-balance-lbl { font-family: 'Share Tech Mono', monospace; font-size: 9px; color: var(--text-muted); letter-spacing: 2px; }
  .game-body { flex: 1; display: flex; align-items: center; justify-content: center; padding: 20px; overflow: auto; }
  .game-window.da-pro .game-body {
    align-items: stretch;
    justify-content: stretch;
    padding: 20px 14px 14px calc(var(--game-panel-w) + 28px);
  }
  .game-back-btn {
    width: 36px; height: 36px; border: 1px solid var(--border); border-radius: 8px;
    background: var(--bg-mid); color: var(--text-dim); font-size: 18px;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: var(--transition);
  }
  .game-back-btn:hover { border-color: var(--gold); color: var(--gold); }

  /* Game bet controls */
  .game-controls {
    display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
    padding: 16px 24px; border-top: 1px solid var(--border);
    background: var(--bg-panel); flex-shrink: 0;
  }
  .game-window.da-pro .game-controls {
    position: absolute;
    left: 14px;
    top: calc(var(--header-h) + 20px);
    bottom: 14px;
    width: var(--game-panel-w);
    height: calc(100vh - var(--header-h) - 34px);
    border: 1px solid rgba(0,220,110,0.26);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(8,26,17,0.84), rgba(6,20,13,0.90));
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 12px;
    padding: 12px;
    z-index: 1;
    overflow-y: auto;
    overflow-x: hidden;
  }
  .game-window.da-pro .bet-quick-btn {
    width: 48px;
    min-width: 48px;
    height: 40px;
    padding: 0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    white-space: nowrap;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .game-window.da-pro .side-chip-btn {
    width: 78px;
    min-width: 78px;
    height: 40px;
    padding: 0 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1px;
    white-space: nowrap;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .game-window.da-pro #bj-sidebets-side .gc-row { align-items: center; }
  .game-window.da-pro .bet-input-wrap {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .game-window.da-pro .bet-chips { justify-content:flex-end; }
  .game-window.da-pro .play-btn { margin-left: 0; width: 100%; height: 48px; font-size: 20px; letter-spacing: 0.5px; background: linear-gradient(180deg, #00DC6E, #00A656); color: #03140B; }
  .game-window.da-pro .bet-input { width: 100%; height: 48px; text-align: left; padding: 0 14px; background: rgba(5,18,11,0.95); border-color: rgba(0,220,110,0.30); color: #EDFFF5; }
  .game-window.da-pro .bet-btn { background: rgba(8,26,17,0.95); border-color: rgba(0,220,110,0.30); color:#C9F2DC; }
  .gc-block { border: 1px solid rgba(0,220,110,0.24); border-radius: 12px; background: rgba(4,16,10,0.74); padding: 10px; }
  .gc-title { font-family:'Share Tech Mono',monospace; font-size: 11px; color: #C4EFD6; letter-spacing: .4px; margin-bottom: 8px; }
  .gc-value {
    height: 46px;
    border: 1px solid rgba(0,220,110,0.26);
    border-radius: 10px;
    background: rgba(4,17,11,0.95);
    display:flex; align-items:center; padding: 0 12px;
    font-family:'Rajdhani',sans-serif; font-size: 34px; font-weight:700; color:#EFFFF6;
  }
  .gc-value.small { font-size: 28px; }
  .gc-row { display:flex; gap:8px; }
  .gc-row .bet-btn { flex: 1; min-width: 0; }
  .gc-actions-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .gc-action-btn { height: 40px; border-radius: 10px; font-size: 15px; font-weight: 700; }
  .gc-action-btn:disabled { opacity: 0.45; box-shadow: none !important; }
  .game-window.da-pro .game-body > * {
    width: 100%;
    border: 1px solid rgba(0,220,110,0.24);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(4,20,12,0.94), rgba(3,13,8,0.98));
    padding: 14px;
  }
  .mini-game-shell {
    width: 100%;
    min-height: 100%;
    border-radius: 14px;
    padding: 10px;
  }
  .mini-game-shell * {
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background .2s ease;
  }
  .game-window.da-pro .mini-game-shell button,
  .game-window.da-pro .mini-game-shell input,
  .game-window.da-pro .mini-game-shell select {
    border-color: rgba(0,255,140,0.30);
    background: rgba(6,22,14,0.92);
    color: #E2FBEC;
  }
  .game-window.da-pro .mini-game-shell button:hover {
    border-color: rgba(0,255,140,0.50);
    box-shadow: 0 0 14px rgba(0,220,110,0.26);
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-table,
  .game-window.da-pro[data-game="roulette"] .roulette-layout,
  .game-window.da-pro[data-game="plinko"] .mini-game-shell {
    background: linear-gradient(180deg, rgba(4,18,11,0.94), rgba(3,12,7,0.98));
  }
  .game-window.da-pro[data-game="roulette"] .roulette-layout,
  .game-window.da-pro[data-game="plinko"] .mini-game-shell {
    width: 100%;
    max-width: none;
    min-height: 100%;
    height: 100%;
    overflow: auto;
  }
  .game-window.da-pro[data-game="blackjack"] .mini-game-shell {
    display:flex;
    align-items:stretch;
    justify-content:stretch;
    padding: 0;
    border: 1px solid rgba(0,220,110,0.24);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(5,22,14,0.94), rgba(3,14,9,0.98));
  }
  .antho-bj-stage {
    width: 100%;
    min-height: 100%;
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    background:
      radial-gradient(900px 360px at 50% -120px, rgba(0,220,110,0.18), transparent 62%),
      linear-gradient(180deg, rgba(3,20,12,0.90), rgba(2,12,7,0.96));
  }
  .bj-phase-banner {
    position: absolute;
    top: 48px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
    padding: 6px 18px;
    border-radius: 999px;
    border: 1px solid rgba(0,255,140,0.45);
    background: rgba(4,18,11,0.88);
    color: #9dffc8;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    box-shadow: 0 0 20px rgba(0,230,118,0.2);
    animation: bjPhasePulse 2.4s ease-in-out infinite;
  }
  .bj-phase-banner.is-closed {
    border-color: rgba(255,120,120,0.45);
    color: #ffc4c4;
    animation: none;
  }
  @keyframes bjPhasePulse {
    0%, 100% { box-shadow: 0 0 16px rgba(0,230,118,0.18); }
    50% { box-shadow: 0 0 28px rgba(0,230,118,0.38); }
  }
  .antho-bj-reset {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    border: 1px solid rgba(0,255,140,0.30);
    background: rgba(4,17,11,0.85);
    color: #C7F2DA;
    cursor: pointer;
    font-size: 14px;
    z-index: 3;
  }
  .antho-bj-table {
    position: relative;
    z-index: 2;
    min-height: calc(100% - 130px);
    padding: 72px 20px 128px;
    display: grid;
    grid-template-rows: 1fr auto 1fr;
    gap: 10px;
  }
  .bj-betting-zone {
    display: grid;
    grid-template-columns: 1fr 1.35fr 1fr;
    gap: 12px;
    align-items: end;
    padding: 4px 0 8px;
    position: relative;
  }
  .bj-table-actions {
    position: absolute;
    left: 50%;
    bottom: -8px;
    transform: translateX(-50%) translateY(100%);
    z-index: 7;
    display: none;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 14px;
    border: 1px solid rgba(0,255,140,0.4);
    background: rgba(3,14,9,0.94);
    box-shadow: 0 10px 28px rgba(0,0,0,0.45);
  }
  .bj-table-actions.is-active { display: flex; flex-wrap: wrap; justify-content: center; }
  .bj-tbl-act {
    min-width: 78px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,0.18);
    background: rgba(8,24,16,0.9);
    color: #dfffea;
    font-family: 'Rajdhani', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.8px;
    cursor: pointer;
    transition: var(--transition);
  }
  .bj-tbl-act:disabled { opacity: 0.35; cursor: not-allowed; }
  .bj-tbl-act.hit:not(:disabled):hover { border-color: var(--blue); color: var(--blue); }
  .bj-tbl-act.stand:not(:disabled):hover { border-color: var(--gold-true); color: var(--gold-true); }
  .bj-tbl-act.double:not(:disabled):hover { border-color: #ff9f43; color: #ff9f43; }
  .bj-tbl-act.split:not(:disabled):hover { border-color: #c77dff; color: #c77dff; }
  .bj-insurance-bar {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 8;
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 14px;
    border: 1px solid rgba(255,201,60,0.5);
    background: rgba(8,18,12,0.96);
    box-shadow: 0 12px 32px rgba(0,0,0,0.55);
    min-width: 220px;
  }
  .bj-insurance-bar.show { display: flex; }
  .bj-insurance-txt {
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    color: var(--gold-true);
    letter-spacing: 0.5px;
    text-align: center;
  }
  .bj-insurance-btn {
    width: 100%;
    padding: 8px 12px;
    border-radius: 8px;
    font-family: 'Rajdhani', sans-serif;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    border: 1px solid transparent;
  }
  .bj-insurance-btn.take {
    border-color: rgba(255,201,60,0.55);
    background: rgba(255,201,60,0.12);
    color: var(--gold-true);
  }
  .bj-insurance-btn.skip {
    border-color: rgba(255,255,255,0.15);
    background: rgba(255,255,255,0.04);
    color: var(--text-dim);
  }
  .bj-bet-tools-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
  }
  .bj-tool-btn {
    flex: 1;
    min-width: 0;
    font-size: 11px !important;
    padding: 7px 8px !important;
  }
  .bj-dealer-say {
    position: absolute;
    left: 16px;
    bottom: 108px;
    z-index: 5;
    max-width: 280px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid rgba(0,220,110,0.28);
    background: rgba(5,18,12,0.9);
    color: #c9f2dc;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    line-height: 1.45;
    letter-spacing: 0.3px;
  }
  .bj-history-panel {
    position: absolute;
    right: 12px;
    bottom: 108px;
    z-index: 4;
    width: min(220px, 28vw);
    max-height: 88px;
    overflow-y: auto;
    padding: 6px 8px;
    border-radius: 8px;
    border: 1px solid rgba(0,220,110,0.2);
    background: rgba(4,14,10,0.82);
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    color: var(--text-dim);
    line-height: 1.4;
  }
  .bj-chip-rack-wrap {
    position: absolute;
    left: 50%;
    bottom: 10px;
    transform: translateX(-50%);
    z-index: 6;
    width: min(96%, 920px);
    padding: 10px 14px 8px;
    border-radius: 16px;
    border: 1px solid rgba(0,220,110,0.3);
    background: linear-gradient(180deg, rgba(6,22,14,0.94), rgba(3,12,8,0.98));
    box-shadow: 0 10px 32px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.05);
  }
  .bj-chip-rack {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 8px;
  }
  .bj-casino-chip {
    position: relative;
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border: none;
    padding: 0;
    cursor: pointer;
    border-radius: 50%;
    overflow: visible;
    background: transparent;
    font-size: 20px;
    transition: transform 0.15s ease, filter 0.15s ease;
    filter: drop-shadow(0 5px 10px rgba(0,0,0,0.45));
  }
  .bj-casino-chip--vip {
    width: 64px;
    height: 64px;
    font-size: 22px;
  }
  .bj-casino-chip-face {
    --chip-bg: #eef1f6;
    --chip-stripe: #c62828;
    --chip-text: #1a2233;
    --chip-ring: rgba(0,0,0,0.14);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    position: relative;
    pointer-events: none;
    user-select: none;
    background:
      radial-gradient(circle at 32% 28%, rgba(255,255,255,0.55), transparent 42%),
      repeating-conic-gradient(from -4deg, var(--chip-stripe) 0deg 9deg, var(--chip-bg) 9deg 18deg);
    box-shadow:
      inset 0 2px 5px rgba(255,255,255,0.35),
      inset 0 -4px 8px rgba(0,0,0,0.22),
      0 4px 10px rgba(0,0,0,0.42);
  }
  .bj-casino-chip-face::before {
    content: '';
    position: absolute;
    inset: 11%;
    border-radius: 50%;
    background:
      radial-gradient(circle at 38% 32%, rgba(255,255,255,0.42), transparent 55%),
      var(--chip-bg);
    border: 2px solid var(--chip-ring);
    box-shadow: inset 0 1px 4px rgba(255,255,255,0.35), inset 0 -2px 5px rgba(0,0,0,0.18);
  }
  .bj-chip-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    gap: 2px;
    width: 72%;
    height: 72%;
  }
  .bj-chip-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 100%;
    max-width: 100%;
  }
  .bj-chip-logo {
    display: block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center;
    border: 1px solid rgba(255,255,255,0.35);
    box-shadow: 0 1px 3px rgba(0,0,0,0.35);
    background: rgba(0,0,0,0.25);
    flex-shrink: 0;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
  }
  .bj-chip-logo--ht { border-color: rgba(0,220,110,0.55); }
  .bj-chip-logo--19 { border-color: rgba(31,182,255,0.45); }
  .bj-chip-logo--gd { border-color: rgba(0,220,110,0.45); background: rgba(8,18,14,0.65); padding: 1px; box-sizing: border-box; }
  .bj-casino-chip-face--compact .bj-chip-logo { width: 9px; height: 9px; }
  .bj-casino-chip-face--compact .bj-chip-logos { gap: 1px; }
  .bj-casino-chip--vip .bj-chip-logo { width: 16px; height: 16px; }
  .bj-chip-val {
    font-family: 'Rajdhani', sans-serif;
    font-weight: 800;
    font-size: 0.92em;
    letter-spacing: -0.02em;
    color: var(--chip-text);
    text-shadow: 0 1px 0 rgba(255,255,255,0.25);
  }
  .bj-chip-vip-mark {
    font-size: 0.42em;
    color: #ffd54f;
    text-shadow: 0 0 6px rgba(255,213,79,0.65);
    line-height: 1;
  }
  .bj-chip-10 { --chip-bg: #f3f5f9; --chip-stripe: #c62828; --chip-text: #1e293b; }
  .bj-chip-50 { --chip-bg: #d32f2f; --chip-stripe: #fff8f8; --chip-text: #fff; --chip-ring: rgba(255,255,255,0.35); }
  .bj-chip-100 { --chip-bg: #1565c0; --chip-stripe: #ffca28; --chip-text: #fff; --chip-ring: rgba(255,202,40,0.45); }
  .bj-chip-500 { --chip-bg: #2e7d32; --chip-stripe: #e8f5e9; --chip-text: #fff; --chip-ring: rgba(255,255,255,0.28); }
  .bj-chip-1000 { --chip-bg: #4527a0; --chip-stripe: #ffd54f; --chip-text: #fff8e1; --chip-ring: rgba(255,213,79,0.4); }
  .bj-chip-2500 {
    --chip-bg: #141414;
    --chip-stripe: #d4af37;
    --chip-text: #ffe082;
    --chip-ring: rgba(212,175,55,0.55);
    animation: bjChipVipGlow 2.8s ease-in-out infinite;
  }
  .bj-chip-5000 {
    --chip-bg: #607d8b;
    --chip-stripe: #1e88e5;
    --chip-text: #e3f2fd;
    --chip-ring: rgba(144,202,249,0.45);
    animation: bjChipVipGlow 2.4s ease-in-out infinite;
  }
  .bj-chip-10000 {
    --chip-bg: #0a0a0a;
    --chip-stripe: #ffc107;
    --chip-text: #fff59d;
    --chip-ring: rgba(255,193,7,0.55);
    animation: bjChipVipGlow 2s ease-in-out infinite;
  }
  .bj-chip-10000 .bj-chip-val {
    text-shadow: 0 0 8px rgba(255,235,59,0.55), 0 1px 0 rgba(0,0,0,0.4);
  }
  @keyframes bjChipVipGlow {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.12); }
  }
  .bj-casino-chip-face--compact { font-size: 14px; }
  .bj-casino-chip:hover,
  .bj-casino-chip.active {
    transform: translateY(-5px) scale(1.05);
    filter: drop-shadow(0 8px 14px rgba(0,230,118,0.32));
  }
  .bj-casino-chip.is-dragging { opacity: 0.5; transform: scale(0.92); }
  .bj-casino-chip.is-locked { opacity: 0.4; cursor: not-allowed; pointer-events: none; }
  .bj-chip-fly {
    position: fixed;
    z-index: 9000;
    pointer-events: none;
    border-radius: 50%;
    overflow: visible;
    font-size: 16px;
    transition: transform 0.32s cubic-bezier(0.22, 1.05, 0.32, 1), opacity 0.32s ease;
    filter: drop-shadow(0 6px 12px rgba(0,0,0,0.5));
  }
  .bj-chip-fly .bj-casino-chip-face { width: 100%; height: 100%; }
  .bj-undo-chip-btn {
    display: block;
    margin: 0 auto;
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid rgba(0,220,110,0.35);
    background: rgba(5,18,12,0.9);
    color: #b8f5d0;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.8px;
    cursor: pointer;
    transition: var(--transition);
  }
  .bj-undo-chip-btn:hover:not(:disabled) { border-color: var(--gold); color: var(--gold); }
  .bj-undo-chip-btn:disabled { opacity: 0.4; cursor: not-allowed; }
  .bj-chip-fly.is-flying { opacity: 0.9; }
  .bj-bet-spot {
    min-height: 108px;
    border-radius: 50% / 42%;
    border: 2px dashed rgba(0,255,140,0.32);
    background:
      radial-gradient(ellipse 80% 70% at 50% 40%, rgba(0,220,110,0.1), rgba(4,14,10,0.55));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 10px 8px 12px;
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
    position: relative;
  }
  .bj-bet-spot--main {
    min-height: 124px;
    border-color: rgba(255,201,60,0.45);
    background:
      radial-gradient(ellipse 85% 75% at 50% 38%, rgba(255,201,60,0.12), rgba(4,14,10,0.58));
  }
  .bj-bet-spot-label {
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    letter-spacing: 1.4px;
    color: rgba(200,240,215,0.75);
    text-transform: uppercase;
  }
  .bj-bet-spot.drag-over,
  .bj-bet-spot.chip-landed {
    border-color: rgba(0,255,140,0.75);
    box-shadow: 0 0 24px rgba(0,230,118,0.28);
    transform: scale(1.03);
  }
  .bj-bet-spot--main.drag-over,
  .bj-bet-spot--main.chip-landed {
    border-color: rgba(255,201,60,0.8);
    box-shadow: 0 0 26px rgba(255,201,60,0.25);
  }
  .bj-bet-spot-amt {
    margin-top: 4px;
    color: var(--gold);
    font-family: 'Rajdhani', sans-serif;
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
  }
  .bj-bet-spot-stack {
    position: relative;
    width: 64px;
    height: 52px;
    margin: 6px 0 2px;
  }
  .bj-table-chip {
    position: absolute;
    left: 50%;
    bottom: calc(var(--bj-stack-i, 0) * 3px);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 13px;
    transform: translateX(-50%) rotate(var(--bj-stack-rot, 0deg));
    filter: drop-shadow(0 3px 6px rgba(0,0,0,0.45));
    animation: bjChipLand 0.22s ease both;
    pointer-events: none;
  }
  .bj-table-chip .bj-casino-chip-face {
    width: 100%;
    height: 100%;
  }
  @keyframes bjChipLand {
    from { opacity: 0; transform: translateX(-50%) translateY(-18px) scale(1.15) rotate(0deg); }
    to { opacity: 1; transform: translateX(-50%) rotate(var(--bj-stack-rot, 0deg)); }
  }
  .bj-gc-hint-txt {
    margin-top: 6px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    color: var(--text-dim);
    line-height: 1.4;
    letter-spacing: 0.4px;
  }
  .bj-gc-bet-total { color: var(--gold) !important; font-size: 18px !important; }
  .antho-bj-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(0,255,140,0.26), transparent);
    transform: translateY(-1px);
  }
  .antho-bj-seat {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap: 12px;
  }
  .antho-bj-pill {
    display:flex;
    align-items:center;
    gap: 9px;
    padding: 7px 14px 7px 12px;
    border-radius: 999px;
    border: 1px solid rgba(0,220,110,0.24);
    background: rgba(7,25,16,0.78);
    color: #E3FBED;
    font-family:'Rajdhani',sans-serif;
    font-size: 28px;
    line-height: 1;
    box-shadow: 0 6px 18px rgba(0,0,0,0.22);
  }
  .antho-bj-pill strong {
    font-size: 32px;
    color: #f4fbff;
    font-weight: 700;
  }
  .antho-bj-pill .score {
    min-width: 36px;
    height: 36px;
    border-radius: 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    background: linear-gradient(180deg, rgba(0,230,118,0.95), rgba(0,155,83,0.95));
    color: #fff;
    font-size: 23px;
    font-weight: 800;
    box-shadow: 0 0 16px rgba(0,230,118,0.35), 0 2px 6px rgba(0,0,0,0.28);
  }
  .antho-bj-cards {
    display:flex;
    gap: 7px;
    flex-wrap: wrap;
    justify-content:center;
    min-height: 108px;
    max-width: 680px;
    align-content: center;
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-card {
    width: 74px;
    height: 102px;
    border-radius: 9px;
    font-size: 30px;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(0,0,0,0.4);
    margin-top: 1px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    line-height: 1;
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-card .card-rank { font-size: 30px; font-weight: 800; }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-card .card-suit { font-size: 24px; opacity: 0.95; }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-card.red { color: #cf2b46; }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-card.black { color: #1d2430; }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-card.back {
    background: linear-gradient(180deg, #00DC6E, #2457ba);
    color: #eaf2ff;
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-result {
    position: absolute;
    left: 50%;
    top: 14px;
    transform: translateX(-50%);
    margin-top: 0;
    background: rgba(8,33,54,0.82);
    border: 1px solid rgba(104,153,219,0.3);
    border-radius: 9px;
    padding: 5px 11px;
    font-size: 16px;
    z-index: 5;
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-side-badge {
    position: absolute;
    right: 14px;
    top: 14px;
    min-width: 130px;
    text-align: center;
    border-radius: 9px;
    padding: 5px 10px;
    background: rgba(8,33,54,0.86);
    border: 1px solid rgba(0,255,140,0.30);
    color: #d9ebff;
    font-family: 'Rajdhani', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .2px;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .22s ease, transform .22s ease, border-color .22s ease;
    z-index: 2;
    pointer-events: none;
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-side-badge.show {
    opacity: 1;
    transform: translateY(0);
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-side-badge.win {
    color: #e7fff0;
    border-color: rgba(0,230,118,0.62);
    box-shadow: 0 0 14px rgba(0,230,118,0.25);
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-side-badge.lose {
    color: #ffe8ee;
    border-color: rgba(255,61,90,0.62);
    box-shadow: 0 0 14px rgba(255,61,90,0.25);
  }
  .game-window.da-pro[data-game="blackjack"] .mini-bj-actions,
  .game-window.da-pro[data-game="blackjack"] .mini-bj-sidebets,
  .game-window.da-pro[data-game="blackjack"] .mini-bj-dealer {
    display: none !important;
  }
  .game-window.da-pro[data-game="plinko"] .mini-game-shell {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
  }
  .game-window.da-pro[data-game="dice"] .dice-display,
  .game-window.da-pro[data-game="flip"] .flip-coin,
  .game-window.da-pro[data-game="hilo"] .hilo-card,
  .game-window.da-pro[data-game="limbo"] .limbo-display,
  .game-window.da-pro[data-game="crash"] .crash-multiplier,
  .game-window.da-pro[data-game="pump"] .pump-multiplier {
    filter: drop-shadow(0 0 14px rgba(86,142,226,0.35));
  }
  .game-window.da-pro[data-game="mines"] .mines-grid,
  .game-window.da-pro[data-game="keno"] .keno-grid,
  .game-window.da-pro[data-game="chicken"] .chicken-grid {
    background: rgba(4,20,36,0.55);
    border: 1px solid rgba(95,148,219,0.22);
    border-radius: 12px;
    padding: 10px;
  }
  .game-window.da-pro[data-game="crash"] .crash-graph {
    height: 260px;
    border-color: rgba(90,151,227,0.35);
    background: linear-gradient(180deg, rgba(35,93,173,0.15), rgba(8,26,45,0.6));
  }
  .game-window.da-pro .plinko-container {
    width: min(640px, 92%);
    height: 520px;
    border: 1px solid rgba(100,150,215,0.3);
    background: linear-gradient(180deg, rgba(4,22,40,0.94), rgba(4,20,34,0.98));
    border-radius: 16px;
    box-shadow: inset 0 30px 80px rgba(71,143,236,0.09), inset 0 -30px 70px rgba(0,0,0,0.3), 0 18px 40px rgba(0,0,0,0.28);
  }
  .game-window.da-pro .plinko-pin {
    width: 8px;
    height: 8px;
    background: radial-gradient(circle at 34% 34%, #f7fdff, #d9ecff 60%, #98badd 100%);
    box-shadow: 0 0 8px rgba(226,240,255,0.9);
  }
  .game-window.da-pro .plinko-ball {
    width: 16px;
    height: 16px;
    border: 1px solid rgba(193,237,255,0.82);
    background: radial-gradient(circle at 30% 28%, #ecfcff, #5fd8ff 50%, #1886d9 100%);
    box-shadow: 0 0 16px rgba(89,202,255,0.68), 0 0 32px rgba(50,140,245,0.42);
    z-index: 3;
  }
  .game-window.da-pro .plinko-slots {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 8px;
    display: grid;
    grid-template-columns: repeat(17, minmax(0, 1fr));
    gap: 4px;
    z-index: 2;
  }
  .game-window.da-pro .plinko-slot {
    height: 34px;
    border-radius: 8px;
    border: 1px solid rgba(12,18,30,0.35);
    color: #1a2130;
    font-family: 'Rajdhani', sans-serif;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .2px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.28), 0 3px 8px rgba(0,0,0,0.24);
  }
  .game-window.da-pro .plinko-slot.tier-max {
    background: linear-gradient(180deg, #ea4e3c, #c93a2a);
    color: #fff3eb;
  }
  .game-window.da-pro .plinko-slot.tier-high {
    background: linear-gradient(180deg, #f07b18, #d9610b);
    color: #fff1df;
  }
  .game-window.da-pro .plinko-slot.tier-mid {
    background: linear-gradient(180deg, #f2be13, #d7a109);
    color: #2b2209;
  }
  .game-window.da-pro .plinko-slot.tier-low {
    background: linear-gradient(180deg, #dfc112, #c7a90a);
    color: #2b2209;
  }
  .game-window.da-pro .plinko-slot.hot {
    transform: translateY(-2px) scale(1.04);
    border-color: rgba(255,255,255,0.82);
    box-shadow: 0 0 0 2px rgba(255,255,255,0.18), 0 0 18px rgba(255,214,120,0.52), 0 10px 16px rgba(0,0,0,0.28);
  }
  .bet-input-wrap { display: flex; align-items: center; gap: 8px; }
  .bet-chips { display:flex; gap:8px; align-items:center; }
  .bet-chip {
    width: 32px; height: 32px; border-radius: 50%;
    border: 2px solid var(--border-bright);
    background: radial-gradient(circle at 30% 30%, #fff, #00FF8C 45%, #0B3B22 100%);
    color:#111; font-family:'Rajdhani',sans-serif; font-size:11px; font-weight:800;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    box-shadow: 0 0 10px rgba(0,220,110,0.25);
  }
  .bet-chip:hover { transform: translateY(-1px); }
  .bet-label { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-muted); letter-spacing: 2px; }
  .bet-input {
    height: 40px; width: 100px; background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm); color: var(--gold); font-family: 'Rajdhani', sans-serif;
    font-size: 18px; font-weight: 700; padding: 0 12px; outline: none; text-align: center;
  }
  .bet-btn {
    height: 40px; padding: 0 16px; border-radius: var(--radius-sm); border: 1px solid var(--border);
    background: var(--bg-glass); color: var(--text-dim); font-family: 'Rajdhani', sans-serif;
    font-weight: 600; font-size: 13px; cursor: pointer; transition: var(--transition);
  }
  a.bet-btn {
    text-decoration: none; display: inline-flex; align-items: center; justify-content: center;
    box-sizing: border-box;
  }
  .bet-btn:hover { border-color: var(--gold); color: var(--gold); }
  .play-btn {
    height: 40px; padding: 0 28px; border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--gold-dim) 0%, var(--gold) 100%);
    color: #ffffff; font-family: 'Rajdhani', sans-serif; font-weight: 700;
    font-size: 14px; letter-spacing: 2px; text-transform: uppercase;
    border: none; cursor: pointer; transition: var(--transition); margin-left: auto;
  }
  .play-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px var(--gold-glow-strong); }
  .play-btn:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }

  /* Game result overlay */
  .game-result {
    position: absolute; inset: 0; background: rgba(2,2,2,0.85);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 12px; z-index: 10; border-radius: inherit;
  }
  .game-result.hidden { display: none; }
  .game-result-text { font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 40px; letter-spacing: 3px; }
  .game-result-text.win { color: var(--green); text-shadow: 0 0 30px rgba(0,230,118,0.5); }
  .game-result-text.lose { color: var(--red); text-shadow: 0 0 30px rgba(255,61,90,0.5); }
  .game-result-amount { font-family: 'Share Tech Mono', monospace; font-size: 16px; color: var(--text-dim); }

  /* ─── TAB NAVIGATION (sidebar bottom) ─── */
  .sidebar-tabs {
    display: flex; flex-direction: column; gap: 2px; padding: 0 8px 8px;
    margin-top: 8px; flex: 1; min-height: 0; overflow-y: auto;
  }
  .sidebar-tab {
    display: flex; align-items: center; gap: 10px; padding: 10px 12px;
    border-radius: var(--radius-sm); cursor: pointer; transition: var(--transition);
    font-family: 'Share Tech Mono', monospace; font-size: 16px; color: var(--text-muted);
    letter-spacing: 1.5px; text-transform: uppercase; border: 1px solid transparent;
    background: transparent; width: 100%; text-align: left; appearance: none;
  }
  .sidebar-tab:hover { color: var(--text); background: var(--bg-glass2); }
  .sidebar-tab.active { color: var(--gold); background: rgba(0,220,110,0.06); border-color: var(--border); }
  .sidebar-tab-icon { font-size: 16px; }
  .sidebar-tab-icon-logo { width: 20px; height: 20px; object-fit: contain; opacity: 0.95; }
  .ui-logo-icon { width: 34px; height: 34px; object-fit: contain; opacity: 0.9; }
  .ui-logo-icon.big { width: 72px; height: 72px; opacity: 0.8; }
  .sidebar-tab-icon-logo.section { width: 21px; height: 21px; opacity: 1; }

  .home-hero {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: linear-gradient(140deg, rgba(0,220,110,0.09), rgba(77,182,255,0.06) 55%, rgba(11,16,32,0.9));
    padding: 22px;
    margin-bottom: 16px;
    position: relative;
    overflow: hidden;
    animation: homeGlow 4.8s ease-in-out infinite;
  }
  .home-hero::after {
    content: '';
    position: absolute;
    top: -120%;
    left: -30%;
    width: 60%;
    height: 320%;
    background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,0.09), rgba(255,255,255,0));
    transform: rotate(20deg);
    animation: homeShine 5.8s linear infinite;
    pointer-events: none;
    opacity: 0;
    will-change: transform, opacity;
  }
  .home-hero-brand { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
  .home-hero-logo {
    width: 58px; height: 58px; border-radius: 14px; object-fit: cover;
    border: 1px solid var(--border-bright); box-shadow: 0 0 22px var(--gold-glow);
    background: #04130B;
  }
  .home-hero-x {
    font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 26px;
    color: var(--gold-true); text-shadow: 0 0 16px var(--gold-true-glow);
  }
  .home-hero-title {
    font-family: 'Rajdhani', sans-serif; font-size: 34px; font-weight: 800; letter-spacing: 2px; color: var(--gold);
  }
  .home-hero-title-x { color: var(--gold-true); text-shadow: 0 0 16px var(--gold-true-glow); }
  .home-hero-sub {
    margin-top: 6px; font-family: 'Share Tech Mono', monospace; font-size: 12px; color: var(--text-dim); letter-spacing: 1px;
  }
  .home-partner-banner {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    margin-top: 16px; padding: 14px 18px;
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: linear-gradient(135deg, rgba(0,220,110,0.10), rgba(0,0,0,0.35) 70%);
    text-decoration: none; transition: var(--transition);
  }
  .home-partner-banner:hover {
    border-color: var(--border-bright);
    box-shadow: 0 0 28px var(--gold-glow);
    transform: translateY(-2px);
  }
  .home-partner-tower { width: 38px; height: auto; flex-shrink: 0; }
  .home-partner-text { flex: 1; min-width: 140px; }
  .home-partner-label {
    font-family: 'Share Tech Mono', monospace; font-size: 9px; letter-spacing: 2px;
    color: var(--text-muted); margin-bottom: 6px;
  }
  .home-partner-logo { height: 22px; width: auto; display: block; }
  .home-partner-cta {
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 15px;
    letter-spacing: 1px; color: var(--gold); white-space: nowrap;
    padding: 9px 16px; border: 1px solid var(--border-bright); border-radius: var(--radius-sm);
    background: rgba(0,220,110,0.10);
  }
  .home-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
    margin-top: 14px;
  }
  .home-card {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-glass);
    padding: 14px;
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  }
  .home-card:hover {
    transform: translateY(-3px);
    border-color: var(--border-bright);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.32);
  }
  .home-card-head { display:flex; align-items:center; gap:10px; margin-bottom: 8px; }
  .home-card-title {
    font-family: 'Rajdhani', sans-serif; font-size: 16px; font-weight: 700; letter-spacing: 1px; color: var(--text);
  }
  .home-card-text {
    font-family: 'Share Tech Mono', monospace; font-size: 11px; color: var(--text-dim); line-height: 1.6;
  }
  @keyframes homeGlow {
    0%, 100% { box-shadow: 0 0 0 rgba(0,220,110,0); }
    50% { box-shadow: 0 0 36px rgba(0,220,110,0.15); }
  }
  @keyframes homeShine {
    0% { transform: translateX(-22%) rotate(20deg); opacity: 0; }
    12% { opacity: 0.75; }
    88% { opacity: 0.75; }
    100% { transform: translateX(320%) rotate(20deg); opacity: 0; }
  }

  /* ─── GAMDOM POP-UP EXTENSION HINT ─── */
  .gamdom-popup-hint {
    position: fixed; bottom: 80px; right: 24px; z-index: 900;
    background: var(--bg-panel); border: 1px solid var(--green);
    border-radius: var(--radius); padding: 16px 20px; max-width: 280px;
    box-shadow: 0 8px 32px rgba(0,230,118,0.2);
    animation: slideInRight 0.4s cubic-bezier(0.34,1.56,0.64,1);
  }
  .gamdom-popup-hint.hidden { display: none; }
  @keyframes slideInRight {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
  }
  .gamdom-popup-title { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 14px; color: var(--green); letter-spacing: 1px; margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
  .gamdom-popup-msg { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-dim); line-height: 1.6; }
  .gamdom-popup-input {
    width: 100%; height: 44px; background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: var(--radius-sm); color: var(--gold); font-family: 'Rajdhani', sans-serif;
    font-size: 20px; font-weight: 700; padding: 0 12px; outline: none; margin-top: 10px; text-align: center;
  }
  .gamdom-popup-input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(0,230,118,0.15); }
  .gamdom-popup-btn {
    width: 100%; height: 38px; margin-top: 8px;
    background: rgba(0,230,118,0.12); border: 1px solid var(--green);
    border-radius: var(--radius-sm); color: var(--green);
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 12px;
    letter-spacing: 2px; cursor: pointer; transition: var(--transition);
  }
  .gamdom-popup-btn:hover { background: rgba(0,230,118,0.2); }
  .gamdom-popup-close {
    position: absolute; top: 8px; right: 8px; width: 24px; height: 24px;
    border: none; background: transparent; color: var(--text-muted);
    font-size: 14px; cursor: pointer; display: flex; align-items: center; justify-content: center;
  }
  .gamdom-popup-close:hover { color: var(--red); }

  /* ─── PAGES (panels) ─── */
  .page-panel { display: none; flex-direction: column; flex: 1; overflow: hidden; }
  .page-panel.active {
    display: flex;
    position: fixed;
    top: 0;
    left: var(--sidebar-w);
    right: 0;
    bottom: 0;
    z-index: 40;
    background: var(--bg-deep);
  }
  .page-panel.anim-in { animation: panelSlideFade 0.28s ease; }
  @keyframes panelSlideFade {
    from { opacity: 0; transform: translateY(10px) scale(0.995); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
  .page-content { flex: 1; overflow-y: auto; padding: 24px; }
  .page-content--embed {
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .roue-embed-frame {
    flex: 1;
    width: 100%;
    min-height: calc(100vh - var(--header-h) - 90px);
    border: none;
    background: #0b0f12;
  }
  .roue-script-credit {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 6px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: rgba(0, 0, 0, 0.28);
    flex-shrink: 0;
  }
  .roue-script-credit__avatar {
    position: relative;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, 0.12);
    background: #1e1f22 url('./assets/credit-bloodz.png') center 14% / 200% no-repeat;
  }
  .roue-script-credit__avatar::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #1a1a1a;
  }
  .roue-script-credit__name {
    font-family: 'Rajdhani', sans-serif;
    font-weight: 800;
    font-size: 15px;
    color: var(--text);
    letter-spacing: 0.5px;
  }
  .roue-script-credit::before {
    content: 'Script par';
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    color: var(--text-muted);
    margin-right: -4px;
  }
  .page-content::-webkit-scrollbar { width: 5px; }
  .page-content::-webkit-scrollbar-track { background: transparent; }
  .page-content::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
  .page-header { margin-bottom: 24px; }
  .page-h1 { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 28px; color: var(--gold); letter-spacing: 2px; }
  .page-sub { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: var(--text-dim); letter-spacing: 1px; margin-top: 4px; }
  .stats-grid { display:grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap:10px; margin-bottom: 14px; }
  .stats-rank-box {
    border:1px solid var(--border); border-radius:12px; padding:12px;
    background: linear-gradient(180deg, rgba(20,30,48,0.56), rgba(8,12,20,0.8));
    margin-bottom: 12px;
  }
  .stats-rank-title { font-family:'Rajdhani',sans-serif; font-size:20px; font-weight:700; color:var(--gold); }
  .stats-rank-meta { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--text-dim); margin-top:3px; }
  .stats-rank-progress { margin-top:10px; height:10px; border-radius:999px; background:rgba(255,255,255,0.08); overflow:hidden; }
  .stats-rank-fill { height:100%; background: linear-gradient(90deg, #00b4ff, #00e676); width:0%; transition: width .22s ease; }
  .stats-chart-wrap { border:1px solid var(--border); border-radius:12px; padding:12px; background:rgba(9,14,24,0.74); }
  .stats-chart-row { display:grid; grid-template-columns: 130px 1fr 100px; gap:8px; align-items:center; margin:7px 0; }
  .stats-chart-label { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text-dim); }
  .stats-chart-bar { height:10px; border-radius:999px; background: rgba(255,255,255,0.08); overflow:hidden; position:relative; }
  .stats-chart-fill { position:absolute; left:0; top:0; bottom:0; border-radius:999px; }
  .stats-chart-fill.pos { background: linear-gradient(90deg, #00e676, #5ef59d); }
  .stats-chart-fill.neg { background: linear-gradient(90deg, #ff3d5a, #ff7c93); }
  .stats-chart-val { font-family:'Share Tech Mono',monospace; font-size:10px; text-align:right; }

  /* Dice game */
  .dice-display {
    width: 146px; height: 146px;
    margin: 18px auto 14px;
    display: grid; place-items: center;
    perspective: 800px;
  }
  .dice-cube {
    width: 94px; height: 94px;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.52s cubic-bezier(0.2,0.75,0.2,1);
  }
  .dice-display.rolling {
    animation: diceThrowShell 0.72s cubic-bezier(0.15,0.82,0.16,1);
  }
  .dice-side {
    position: absolute;
    width: 94px; height: 94px;
    border-radius: 16px;
    border: 1px solid rgba(158,184,231,0.66);
    background: linear-gradient(180deg, #ffffff, #edf3ff 68%, #e0eaff);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.75), inset 0 -8px 18px rgba(79,110,170,0.12);
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    padding: 11px;
  }
  .dice-side .pip {
    width: 12px; height: 12px; border-radius: 50%;
    background: radial-gradient(circle at 34% 28%, #3f4f68, #182131 72%);
    align-self: center; justify-self: center;
    box-shadow: 0 0 5px rgba(18,25,38,0.32);
    opacity: 0;
  }
  .dice-side .pip.on { opacity: 1; }
  .dice-side .pip.p1 { grid-column: 1; grid-row: 1; }
  .dice-side .pip.p2 { grid-column: 2; grid-row: 1; }
  .dice-side .pip.p3 { grid-column: 3; grid-row: 1; }
  .dice-side .pip.p4 { grid-column: 1; grid-row: 2; }
  .dice-side .pip.p5 { grid-column: 2; grid-row: 2; }
  .dice-side .pip.p6 { grid-column: 3; grid-row: 2; }
  .dice-side .pip.p7 { grid-column: 1; grid-row: 3; }
  .dice-side .pip.p8 { grid-column: 2; grid-row: 3; }
  .dice-side .pip.p9 { grid-column: 3; grid-row: 3; }
  .dice-side.side-1 { transform: rotateY(0deg) translateZ(47px); }
  .dice-side.side-6 { transform: rotateY(180deg) translateZ(47px); }
  .dice-side.side-2 { transform: rotateY(90deg) translateZ(47px); }
  .dice-side.side-5 { transform: rotateY(-90deg) translateZ(47px); }
  .dice-side.side-3 { transform: rotateX(90deg) translateZ(47px); }
  .dice-side.side-4 { transform: rotateX(-90deg) translateZ(47px); }
  .dice-cube.face-1 { transform: rotateX(0deg) rotateY(0deg); }
  .dice-cube.face-2 { transform: rotateX(0deg) rotateY(-90deg); }
  .dice-cube.face-3 { transform: rotateX(-90deg) rotateY(0deg); }
  .dice-cube.face-4 { transform: rotateX(90deg) rotateY(0deg); }
  .dice-cube.face-5 { transform: rotateX(0deg) rotateY(90deg); }
  .dice-cube.face-6 { transform: rotateX(0deg) rotateY(180deg); }
  @keyframes diceThrowShell {
    0% { transform: translateY(0) rotate(0deg) scale(0.96); }
    18% { transform: translateY(-8px) rotate(-6deg) scale(1.02); }
    36% { transform: translateY(4px) rotate(7deg) scale(1.01); }
    62% { transform: translateY(-3px) rotate(-5deg) scale(1); }
    100% { transform: translateY(0) rotate(0deg) scale(1); }
  }

  /* Crash */
  .crash-wrap { text-align:center; width:100%; max-width: 560px; margin:0 auto; }
  .crash-multiplier { font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 76px; text-align: center; color: var(--gold); text-shadow: 0 0 40px var(--gold-glow-strong); transition: color 0.2s; }
  .crash-multiplier.crashed { color: var(--red); text-shadow: 0 0 40px rgba(255,61,90,0.5); }
  .crash-multiplier.won { color: var(--green); text-shadow: 0 0 34px rgba(0,230,118,0.4); }
  .crash-graph { width: 100%; height: 220px; background: linear-gradient(180deg, rgba(0,180,255,0.1), rgba(10,18,30,0.6)); border-radius: var(--radius-sm); border: 1px solid var(--border); margin: 12px 0; position: relative; overflow: hidden; }
  .crash-graph::before {
    content:''; position:absolute; inset:0;
    background-image: linear-gradient(to right, rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(to top, rgba(255,255,255,0.04) 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events:none;
  }
  .crash-graph::after {
    content:'';
    position:absolute;
    inset:0;
    background: radial-gradient(120% 100% at 0% 100%, rgba(0,255,200,0.06), transparent 55%);
    pointer-events:none;
  }
  .crash-skyline {
    position:absolute;
    left:0; right:0; bottom:0;
    height: 58%;
    background: linear-gradient(180deg, rgba(46,82,124,0.02), rgba(46,82,124,0.12));
    clip-path: polygon(0% 100%, 0% 80%, 10% 76%, 18% 82%, 26% 70%, 36% 77%, 44% 60%, 52% 66%, 64% 45%, 74% 54%, 84% 36%, 92% 44%, 100% 26%, 100% 100%);
    opacity: .55;
    pointer-events:none;
  }
  .crash-line {
    position:absolute; left:0; bottom:0; height:4px; width:4%;
    background: linear-gradient(90deg, #00ffe0, #00b4ff); box-shadow: 0 0 14px rgba(0,180,255,0.75);
    transform-origin:left bottom;
  }
  .crash-trail {
    position:absolute;
    left:0;
    bottom:0;
    height: 14px;
    width: 4%;
    background: linear-gradient(90deg, rgba(0,255,224,0.0), rgba(0,255,224,0.24), rgba(0,180,255,0.34));
    filter: blur(2px);
    transform-origin:left bottom;
    pointer-events:none;
  }
  .crash-rocket {
    position:absolute;
    width: 24px;
    height: 24px;
    left: 0;
    bottom: 0;
    transform: translate(-50%, 50%) rotate(-20deg);
    filter: drop-shadow(0 0 8px rgba(0,180,255,0.6));
    pointer-events:none;
  }
  .crash-rocket::before {
    content: '🚀';
    font-size: 20px;
    line-height: 1;
    display:block;
  }
  .crash-controls { display:flex; justify-content:center; align-items:center; gap:8px; margin-top: 8px; flex-wrap: wrap; }
  .crash-controls .bj-input { width: 110px; height: 38px; font-size: 16px; }
  .crash-history { margin-top: 10px; display:flex; gap:6px; justify-content:center; flex-wrap:wrap; min-height: 28px; }
  .crash-pill {
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 4px 8px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    color: var(--text-dim);
    background: rgba(255,255,255,0.03);
  }
  .crash-pill.red { color: #ff9cae; border-color: rgba(255,90,90,0.35); background: rgba(255,61,90,0.08); }
  .crash-pill.green { color: #9ef6c5; border-color: rgba(0,230,118,0.4); background: rgba(0,230,118,0.09); }

  /* Roulette (DA blackjack premium) */
  .roulette-layout { width: 100%; height: 100%; border-radius: 14px; padding: 10px; display:flex; flex-direction:column; gap:10px; }
  .antho-roulette-stage {
    background: linear-gradient(180deg, rgba(6,28,46,0.92), rgba(4,20,38,0.98));
    border: 1px solid rgba(0,220,110,0.24);
  }
  .antho-roulette-main {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
  }
  .roulette-wheel-wrap { position: relative; width: 320px; height: 320px; margin: 0 auto; }
  .roulette-wheel {
    width: 320px; height: 320px; border-radius: 50%; border: 5px solid rgba(0,220,110,0.82); margin: 0;
    /* Couleurs sectorielles injectées en JS (alignées sur ROULETTE_EURO_ORDER + rouge/noir réels) */
    background: #243038;
    transition: transform 4.8s cubic-bezier(0.17,0.67,0.12,0.99);
    box-shadow: 0 0 34px rgba(0,220,110,0.24), inset 0 0 20px rgba(0,0,0,0.5), inset 0 0 80px rgba(0,0,0,0.3);
    position: relative;
    --roulette-num-radius: -144px;
  }
  .roulette-wheel::before {
    content:''; position:absolute; inset:14px; border-radius:50%;
    border: 1px solid rgba(255,255,255,0.2);
    box-shadow: inset 0 0 30px rgba(0,0,0,0.35);
    pointer-events:none;
  }
  .roulette-wheel-numbers { position:absolute; inset:0; pointer-events:none; }
  .roulette-wheel-num {
    position:absolute; left:50%; top:50%; width:24px; height:16px; margin-left:-12px; margin-top:-8px;
    color:#fff; font-family:'Share Tech Mono',monospace; font-size:11px; font-weight:700; text-align:center;
    text-shadow:0 0 6px rgba(0,0,0,0.95), 0 0 2px rgba(0,220,110,0.55);
    -webkit-text-stroke: 0.35px rgba(0,220,110,0.55);
    transform-origin: 50% 50%;
    transform: rotate(var(--ang, 0deg)) translateY(var(--roulette-num-radius, -144px)) rotate(calc(-1 * var(--ang, 0deg)));
  }
  .roulette-wheel-num.winner {
    color: #ffe9a6 !important;
    text-shadow: 0 0 10px rgba(255,235,140,0.95), 0 0 18px rgba(0,220,110,0.9), 0 0 28px rgba(0,220,110,0.75);
    transform: rotate(var(--ang, 0deg)) translateY(var(--roulette-num-radius, -144px)) rotate(calc(-1 * var(--ang, 0deg))) scale(1.14);
    z-index: 2;
  }
  .roulette-ball-orbit { position:absolute; inset:0; pointer-events:none; display:flex; align-items:center; justify-content:center; }
  .roulette-ball { width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 0 10px rgba(255,255,255,0.8); transform: rotate(180deg) translateY(-126px) rotate(-180deg); }
  .roulette-ball::after { content:''; position:absolute; width:6px; height:6px; border-radius:50%; left:2px; top:2px; background: rgba(255,255,255,0.92); }
  .roulette-ball.spin { animation: rouletteBallOrbit 4.8s cubic-bezier(0.12,0.72,0.18,1) forwards; }
  @keyframes rouletteBallOrbit {
    0% { transform: rotate(180deg) translateY(-126px) rotate(-180deg); }
    70% { transform: rotate(-1080deg) translateY(-126px) rotate(1080deg); }
    100% { transform: rotate(-1620deg) translateY(-126px) rotate(1620deg); }
  }
  .antho-roulette-board {
    border: 1px solid rgba(92,146,219,0.28);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(8,30,50,0.88), rgba(6,22,40,0.92));
    padding: 8px;
  }
  .roulette-bet-grid { display: grid; grid-template-columns: 56px 1fr 56px; gap: 6px; align-items: stretch; }
  .roulette-zero {
    border: 1px solid rgba(46,204,113,0.85); border-radius: 8px;
    background: linear-gradient(180deg, rgba(46,204,113,0.98), rgba(21,115,71,0.98));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 12px rgba(39,174,96,0.35);
    display:flex; align-items:center; justify-content:center; color:#fff; font-family:'Rajdhani',sans-serif; font-size:18px; font-weight:700;
    cursor:pointer; position: relative;
    text-shadow: 0 1px 3px rgba(0,0,0,0.65);
  }
  .roulette-numbers { display:grid; grid-template-columns: repeat(12, minmax(30px, 1fr)); gap: 4px; }
  .roulette-cell {
    min-height: 36px; border-radius: 6px; border:1px solid rgba(0,220,110,0.22);
    display:flex; align-items:center; justify-content:center; cursor:pointer; position:relative;
    font-family:'Rajdhani',sans-serif; font-size:15px; font-weight:700; color:#fff;
  }
  .roulette-cell.red { background: linear-gradient(180deg, rgba(210,68,56,0.92), rgba(128,28,22,0.95)); }
  .roulette-cell.black { background: linear-gradient(180deg, rgba(66,80,95,0.96), rgba(22,28,36,0.98)); }
  .roulette-cell:hover { filter: brightness(1.08); }
  .roulette-cell.bet { box-shadow: 0 0 0 2px rgba(0,220,110,0.78) inset; }
  .roulette-cell.winflash { animation: rouletteWinCellFlash 1.1s ease-out; box-shadow: 0 0 0 2px rgba(255,220,120,0.95) inset, 0 0 18px rgba(0,220,110,0.85); }
  .roulette-columns { display:grid; grid-template-rows: repeat(3, 1fr); gap: 4px; }
  .roulette-colbet {
    border:1px solid rgba(0,220,110,0.24); border-radius:6px;
    background: linear-gradient(180deg, rgba(16,22,34,0.92), rgba(7,10,18,0.98));
    color:#dfe6f1; font-family:'Share Tech Mono',monospace; font-size:12px;
    display:flex; align-items:center; justify-content:center; cursor:pointer; position:relative; min-height: 36px;
  }
  @keyframes rouletteWinCellFlash { 0% { filter: brightness(1); } 22% { filter: brightness(1.7); } 45% { filter: brightness(1.18); } 70% { filter: brightness(1.45); } 100% { filter: brightness(1); } }
  .roulette-outside { display:grid; grid-template-columns: repeat(12, minmax(28px, 1fr)); gap: 4px; margin-top: 8px; }
  .roulette-out {
    min-height: 36px; border:1px solid rgba(0,220,110,0.2); border-radius:8px;
    background: linear-gradient(180deg, rgba(16,22,34,0.92), rgba(7,10,18,0.98));
    color:#cfd6e1; font-size:12px; font-family:'Share Tech Mono',monospace; display:flex; align-items:center; justify-content:center; cursor:pointer; position:relative;
  }
  .roulette-out.dozen { grid-column: span 4; }
  .roulette-out.low, .roulette-out.high { grid-column: span 6; }
  .roulette-out.simple { grid-column: span 3; }
  .roulette-out.red { background: linear-gradient(180deg, rgba(210,68,56,0.92), rgba(128,28,22,0.95)); color: #ffe0e0; border-color: rgba(255,130,120,0.55); }
  .roulette-out.black { background: linear-gradient(180deg, rgba(52,60,72,0.96), rgba(14,18,24,0.98)); color: #ffd8d8; border-color: rgba(255,110,110,0.45); }
  .roulette-chip-mark {
    position:absolute; right:4px; top:3px; min-width:22px; height:16px; padding:0 5px; border-radius:10px;
    background: rgba(0,220,110,0.92); color:#111; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center;
  }
  .roulette-phase {
    margin: 0 auto; text-align:center; font-family:'Share Tech Mono',monospace; font-size:11px; color:#d7ebff; letter-spacing:1px;
    border:1px solid rgba(105,159,226,0.34); background: rgba(8,33,54,0.84); border-radius: 9px; padding: 5px 12px; min-width: 180px;
  }
  .roulette-advanced {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(105,159,226,0.22);
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .roulette-adv-title {
    font-family:'Rajdhani',sans-serif; font-size:12px; font-weight:700; letter-spacing:1.4px; color: var(--gold);
  }
  .roulette-adv-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
  }
  .roulette-adv-label {
    font-family:'Share Tech Mono',monospace; font-size:10px; color: var(--text-dim);
    min-width: 140px;
    flex: 1 1 160px;
  }
  .roulette-adv-input {
    width: 72px;
    height: 34px;
    font-size: 13px;
    padding: 0 8px;
    border-radius: 8px;
    border: 1px solid rgba(0,220,110,0.35);
    background: rgba(6,14,26,0.85);
    color: var(--gold);
    font-family:'Rajdhani',sans-serif;
    font-weight: 600;
  }
  .roulette-adv-btn { height: 34px; padding: 0 12px; font-size: 11px; }
  .roulette-adv-hint {
    font-family:'Share Tech Mono',monospace; font-size:9px; color: var(--text-muted);
    line-height: 1.45;
    margin: -4px 0 4px 0;
    padding-left: 2px;
  }

  /* ─── Slot des choix (même machine que dépôt, 4 rouleaux) ─── */
  #hunt-tab-choix .hunt-tab-scroll { padding: 16px 18px 28px; align-items: stretch; }
  #hunt-tab-choix .choix-wheel-wrap { max-width: 920px; }
  .choix-config {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
  }
  .choix-config-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 10px;
    border: 1px solid rgba(0, 220, 110, 0.22);
    background: rgba(0, 220, 110, 0.05);
  }
  .choix-config-bar__label {
    font-family: 'Rajdhani', sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1px;
    color: var(--gold);
  }
  .choix-config-bar__actions { display: flex; gap: 6px; flex-shrink: 0; }
  .choix-config-bar__btn {
    height: 26px;
    padding: 0 10px;
    border-radius: 6px;
    border: 1px solid rgba(0, 220, 110, 0.35);
    background: rgba(0, 0, 0, 0.35);
    color: var(--text-muted);
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
  }
  .choix-config-bar__btn:hover {
    color: var(--text);
    border-color: rgba(0, 220, 110, 0.6);
    background: rgba(0, 220, 110, 0.1);
  }
  .choix-sec {
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid rgba(0, 220, 110, 0.18);
    background: rgba(0, 0, 0, 0.32);
    transition: border-color 0.2s, background 0.2s;
  }
  .choix-sec:not(.is-collapsed) {
    border-color: rgba(0, 220, 110, 0.32);
    background: rgba(0, 0, 0, 0.38);
  }
  .choix-sec__head {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 2px 0;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
  }
  .choix-sec__head:hover .choix-sec__title { color: #ffe08a; }
  .choix-sec__chev {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    border: 1px solid rgba(0, 220, 110, 0.25);
    color: var(--text-muted);
    font-size: 10px;
    line-height: 1;
    transition: transform 0.2s, border-color 0.15s, color 0.15s;
  }
  .choix-sec__chev::after { content: '▾'; }
  .choix-sec:not(.is-collapsed) .choix-sec__chev {
    transform: rotate(180deg);
    border-color: rgba(255, 201, 60, 0.45);
    color: var(--gold);
  }
  .choix-sec__summary {
    flex: 1;
    min-width: 0;
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    color: var(--text-muted);
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .choix-sec:not(.is-collapsed) .choix-sec__summary { display: none; }
  .choix-sec__body {
    display: block;
    margin-top: 8px;
  }
  #hunt-tab-choix .choix-sec.is-collapsed .choix-sec__body {
    display: none !important;
    margin-top: 0;
  }
  #hunt-tab-choix .choix-sec.is-collapsed {
    padding: 6px 10px;
  }
  .choix-sec__tools-row {
    display: flex;
    justify-content: flex-end;
    gap: 4px;
    margin-bottom: 6px;
  }
  .choix-sec__badge {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Rajdhani', sans-serif;
    font-weight: 800;
    font-size: 12px;
    color: #04140c;
    background: linear-gradient(180deg, #00ff8c, #00c96a);
    flex-shrink: 0;
  }
  .choix-sec__title {
    flex: 1;
    font-family: 'Rajdhani', sans-serif;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 1px;
    color: var(--gold);
  }
  .choix-sec__tools { display: flex; gap: 4px; flex-shrink: 0; } /* legacy */
  .choix-tool {
    height: 24px;
    padding: 0 10px;
    border-radius: 6px;
    border: 1px solid rgba(0, 220, 110, 0.35);
    background: rgba(0, 220, 110, 0.06);
    color: var(--text-muted);
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
  }
  .choix-tool:hover {
    color: var(--text);
    border-color: rgba(0, 220, 110, 0.6);
    background: rgba(0, 220, 110, 0.12);
  }
  .choix-mode-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
  }
  .choix-mode-tab {
    height: 36px;
    border-radius: 8px;
    border: 1px solid rgba(0, 220, 110, 0.28);
    background: rgba(0, 0, 0, 0.35);
    color: var(--text-dim);
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s, box-shadow 0.15s;
  }
  .choix-mode-tab.is-active {
    border-color: rgba(255, 201, 60, 0.8);
    background: linear-gradient(180deg, rgba(255, 201, 60, 0.18), rgba(255, 201, 60, 0.06));
    color: var(--gold);
    box-shadow: 0 0 14px rgba(255, 201, 60, 0.15) inset;
  }
  .choix-mode-tab:hover:not(.is-active) {
    border-color: rgba(0, 220, 110, 0.5);
    color: var(--text);
  }
  .choix-provider-box {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .choix-provider-select {
    width: 100%;
    min-height: 88px;
    padding: 6px 8px;
    border-radius: 8px;
    border: 1px solid rgba(0, 220, 110, 0.3);
    background: rgba(4, 10, 18, 0.95);
    color: var(--text);
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
  }
  .choix-provider-hint {
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    color: var(--text-muted);
  }
  .choix-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .choix-chips--dense { gap: 5px; }
  .choix-chips--scroll {
    max-height: 108px;
    overflow-y: auto;
    padding-right: 4px;
  }
  .choix-chip {
    min-height: 30px;
    padding: 5px 12px;
    border-radius: 8px;
    border: 1px solid rgba(0, 220, 110, 0.28);
    background: rgba(0, 0, 0, 0.45);
    color: var(--text-dim);
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    line-height: 1.2;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s, box-shadow 0.15s, transform 0.12s;
    user-select: none;
  }
  .choix-chip:hover {
    border-color: rgba(0, 220, 110, 0.55);
    color: var(--text);
    transform: translateY(-1px);
  }
  .choix-chip.is-on {
    border-color: rgba(0, 255, 140, 0.75);
    background: linear-gradient(180deg, rgba(0, 220, 110, 0.22), rgba(0, 220, 110, 0.08));
    color: #e8fff4;
    box-shadow: 0 0 12px rgba(0, 220, 110, 0.2);
  }
  #hunt-tab-choix .choix-slot-machine {
    width: min(760px, 98vw);
  }
  #hunt-tab-choix .choix-4reels.deposit-slot-reels {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 10px 8px;
    min-height: 212px;
  }
  #hunt-tab-choix .choix-4reels .deposit-slot-payline {
    grid-column: 1 / -1;
    grid-row: 1;
    z-index: 4;
    top: 50%;
    margin-top: 0;
  }
  #hunt-tab-choix .choix-4reels .deposit-slot-reel {
    min-width: 0;
    z-index: 2;
  }
  #hunt-tab-choix .deposit-slot-cell {
    height: 64px;
    min-height: 64px;
    max-height: 64px;
    flex-shrink: 0;
    overflow: hidden;
    box-sizing: border-box;
  }
  #hunt-tab-choix .deposit-slot-cell--choix-sm {
    font-size: 9px;
    letter-spacing: 0;
    padding: 0 3px;
    line-height: 1.1;
    text-align: center;
    word-break: break-word;
  }
  #hunt-tab-choix .deposit-slot-cell--choix-stake {
    font-size: 18px;
    color: #ffe08a;
    text-shadow: 0 0 12px rgba(255, 201, 60, 0.45);
  }
  #hunt-tab-choix .deposit-slot-cell--choix-img {
    padding: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #hunt-tab-choix .deposit-slot-cell--choix-img img {
    display: block;
    width: 52px;
    height: 52px;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5);
  }
  #hunt-tab-choix .deposit-slot-stage--jackpot .deposit-slot-reel:nth-child(4) { animation-delay: 0.36s; }
  @media (max-width: 640px) {
    #hunt-tab-choix .choix-4reels.deposit-slot-reels { gap: 5px; padding: 6px; }
    #hunt-tab-choix .deposit-slot-cell { font-size: 14px; }
    #hunt-tab-choix .deposit-slot-cell--choix-stake { font-size: 14px; }
    #hunt-tab-choix .deposit-slot-cell--choix-img img { width: 40px; height: 40px; }
    .choix-chip { font-size: 9px; padding: 4px 8px; }
  }

  /* Roue du depot */
  .deposit-wheel-wrap {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    border: 1px solid rgba(0,220,110,0.28);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(10,24,42,0.92), rgba(8,18,34,0.95));
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .deposit-wheel-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(86px, 1fr));
    gap: 8px;
  }
  .deposit-wheel-cell {
    min-height: 44px;
    border-radius: 9px;
    border: 1px solid rgba(0,220,110,0.3);
    background: rgba(8,14,24,0.9);
    color: var(--text);
    font-family:'Rajdhani',sans-serif;
    font-size: 16px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .deposit-wheel-cell.active {
    border-color: rgba(255,196,70,0.95);
    box-shadow: 0 0 0 1px rgba(255,196,70,0.6) inset, 0 0 16px rgba(255,196,70,0.25);
    color: var(--gold);
  }

  /* ─── Slot du dépôt : machine à sous 3 rouleaux ─── */
  .deposit-slot-stage {
    display: flex;
    justify-content: center;
    padding: 16px 8px 8px;
    transition: filter 0.4s ease, opacity 0.4s ease;
  }
  .deposit-slot-stage.deposit-slot-stage--empty {
    opacity: 0.55;
    filter: grayscale(0.4);
  }
  .deposit-slot-machine {
    position: relative;
    width: min(460px, 94vw);
    border-radius: 18px;
    padding: 14px 16px 18px;
    background:
      linear-gradient(180deg, rgba(0,220,110,0.10), rgba(0,0,0,0) 38%),
      linear-gradient(180deg, #0C1812, #060D09 70%, #0A140E);
    border: 1px solid rgba(0,220,110,0.35);
    box-shadow:
      0 18px 48px rgba(0,0,0,0.55),
      0 0 38px rgba(0,220,110,0.12),
      inset 0 1px 0 rgba(255,255,255,0.06);
  }
  .deposit-slot-marquee {
    position: relative;
    z-index: 2;
    text-align: center;
    margin-bottom: 8px;
  }
  .deposit-slot-marquee span {
    display: inline-block;
    font-family: 'Rajdhani', sans-serif;
    font-weight: 800;
    font-size: 18px;
    letter-spacing: 6px;
    color: var(--gold);
    text-shadow: 0 0 16px var(--gold-glow-strong);
    padding: 2px 18px;
    border: 1px solid rgba(0,220,110,0.35);
    border-radius: 999px;
    background: rgba(0,220,110,0.07);
  }
  .deposit-slot-lights {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    padding: 0 6px;
    margin-bottom: 10px;
  }
  .deposit-slot-lights span {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,201,60,0.25);
    box-shadow: none;
    transition: background 0.2s ease, box-shadow 0.2s ease;
  }
  .deposit-slot-stage--win .deposit-slot-lights span {
    background: #FFC93C;
    box-shadow: 0 0 10px rgba(255,201,60,0.85);
    animation: depSlotLightChase 0.9s ease-in-out infinite;
  }
  .deposit-slot-stage--win .deposit-slot-lights span:nth-child(odd) { animation-delay: 0.45s; }
  .deposit-slot-stage--jackpot .deposit-slot-lights span {
    animation: depSlotLightJackpot 0.35s ease-in-out infinite;
    box-shadow: 0 0 14px rgba(255,201,60,1), 0 0 24px rgba(0,255,140,0.5);
  }
  .deposit-slot-stage--jackpot .deposit-slot-lights span:nth-child(odd) {
    background: #00FF8C;
    animation-delay: 0.175s;
  }
  @keyframes depSlotLightChase {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.25; }
  }
  @keyframes depSlotLightJackpot {
    0%, 100% { opacity: 1; transform: scale(1.15); }
    50% { opacity: 0.35; transform: scale(0.85); }
  }
  .deposit-slot-reels {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding: 10px;
    border-radius: 12px;
    background: rgba(0,0,0,0.45);
    border: 1px solid rgba(0,220,110,0.22);
    box-shadow: inset 0 4px 18px rgba(0,0,0,0.6);
  }
  .deposit-slot-reel {
    position: relative;
    height: 192px; /* 3 × 64px (DEP_SLOT_CELL_H) */
    overflow: hidden;
    border-radius: 10px;
    background: linear-gradient(180deg, #131D17, #0A110D 50%, #131D17);
    border: 1px solid rgba(0,220,110,0.28);
    /* Ombres haut/bas pour l'effet cylindre */
    -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.25), #000 30%, #000 70%, rgba(0,0,0,0.25));
    mask-image: linear-gradient(180deg, rgba(0,0,0,0.25), #000 30%, #000 70%, rgba(0,0,0,0.25));
  }
  .deposit-slot-strip {
    will-change: transform;
  }
  .deposit-slot-reel.spinning .deposit-slot-strip {
    filter: blur(1.6px);
  }
  .deposit-slot-reel.stopped {
    border-color: rgba(0,255,140,0.6);
    box-shadow: 0 0 16px rgba(0,220,110,0.25);
  }
  .deposit-slot-cell {
    height: 64px; /* = DEP_SLOT_CELL_H côté JS */
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Rajdhani', sans-serif;
    font-weight: 800;
    font-size: 24px;
    color: var(--text);
    text-shadow: 0 2px 6px rgba(0,0,0,0.8);
  }
  .deposit-slot-payline {
    position: absolute;
    left: 4px; right: 4px;
    top: 50%;
    height: 64px;
    transform: translateY(-50%);
    border-top: 2px solid rgba(255,201,60,0.55);
    border-bottom: 2px solid rgba(255,201,60,0.55);
    border-radius: 6px;
    pointer-events: none;
    box-shadow: 0 0 18px rgba(255,201,60,0.12) inset;
  }
  .deposit-slot-payline::before,
  .deposit-slot-payline::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 0; height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    transform: translateY(-50%);
  }
  .deposit-slot-payline::before { left: -4px; border-left: 9px solid var(--gold-true); }
  .deposit-slot-payline::after { right: -4px; border-right: 9px solid var(--gold-true); }
  .deposit-slot-stage--win .deposit-slot-reel {
    border-color: var(--gold-true);
    box-shadow: 0 0 20px rgba(255,201,60,0.35);
  }
  .deposit-slot-stage--jackpot .deposit-slot-machine {
    overflow: visible;
    animation: depSlotMachineShake 0.55s cubic-bezier(0.36, 0.07, 0.19, 0.97);
    border-color: rgba(255,201,60,0.85);
    box-shadow:
      0 0 0 2px rgba(255,201,60,0.35),
      0 0 48px rgba(255,201,60,0.45),
      0 0 80px rgba(0,220,110,0.25),
      0 18px 48px rgba(0,0,0,0.55);
  }
  .deposit-slot-marquee--jackpot span {
    font-size: 30px;
    letter-spacing: 10px;
    padding: 6px 24px;
    border: 2px solid rgba(255,201,60,0.8);
    color: #FFE9A8;
    background: linear-gradient(135deg, rgba(255,201,60,0.32), rgba(0,0,0,0.45));
    text-shadow: 0 0 24px rgba(255,201,60,1), 0 2px 8px rgba(0,0,0,0.8);
    box-shadow: 0 0 40px rgba(255,201,60,0.4);
    animation: depJpMarqueeIn 0.55s cubic-bezier(0.18, 1.35, 0.36, 1) forwards,
               depSlotMarqueePulse 0.7s 0.55s ease-in-out infinite;
  }
  @keyframes depJpMarqueeIn {
    0% { opacity: 0; transform: scale(1.8); filter: blur(6px); }
    100% { opacity: 1; transform: scale(1); filter: blur(0); }
  }
  @keyframes depSlotMachineShake {
    0%, 100% { transform: translateX(0); }
    12% { transform: translateX(-4px) rotate(-0.4deg); }
    24% { transform: translateX(4px) rotate(0.4deg); }
    36% { transform: translateX(-3px); }
    48% { transform: translateX(3px); }
    60% { transform: translateX(-2px); }
    72% { transform: translateX(2px); }
  }
  @keyframes depSlotMarqueePulse {
    0%, 100% { transform: scale(1); filter: brightness(1); }
    50% { transform: scale(1.06); filter: brightness(1.35); }
  }
  .deposit-slot-stage--jackpot .deposit-slot-reel {
    border-color: #FFC93C;
    box-shadow: 0 0 28px rgba(255,201,60,0.55), inset 0 0 20px rgba(255,201,60,0.08);
    animation: depSlotReelPulse 0.45s ease-in-out infinite;
  }
  .deposit-slot-stage--jackpot .deposit-slot-reel:nth-child(2) { animation-delay: 0.12s; }
  .deposit-slot-stage--jackpot .deposit-slot-reel:nth-child(3) { animation-delay: 0.24s; }
  @keyframes depSlotReelPulse {
    0%, 100% { box-shadow: 0 0 28px rgba(255,201,60,0.55), inset 0 0 20px rgba(255,201,60,0.08); }
    50% { box-shadow: 0 0 42px rgba(255,201,60,0.85), inset 0 0 28px rgba(255,201,60,0.18); }
  }
  .deposit-slot-stage--win .deposit-slot-cell--jackpot {
    color: #FFF8DC !important;
    text-shadow:
      0 0 8px rgba(255,255,255,0.9),
      0 0 18px rgba(255,201,60,0.95) !important;
    animation: depSlotCellBlink 0.55s ease-in-out infinite;
    position: relative;
    z-index: 2;
  }
  @keyframes depSlotCellBlink {
    0%, 100% { opacity: 1; filter: brightness(1.25); }
    50% { opacity: 0.3; filter: brightness(0.65); }
  }
  .deposit-slot-stage--jackpot .deposit-slot-payline {
    border-top-color: rgba(255,201,60,0.95);
    border-bottom-color: rgba(255,201,60,0.95);
    box-shadow:
      0 0 24px rgba(255,201,60,0.55) inset,
      0 0 30px rgba(255,201,60,0.35);
    animation: depSlotPaylineFlash 0.4s ease-in-out infinite;
  }
  @keyframes depSlotPaylineFlash {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.55; }
  }
  /* Overlay jackpot injecté par JS */
  .deposit-slot-jp-overlay {
    position: absolute;
    inset: -8px;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    border-radius: 18px;
  }
  .deposit-slot-jp-overlay--fade {
    opacity: 0;
    transition: opacity 0.9s ease;
  }
  .deposit-slot-jp-flash {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 45%, rgba(255,201,60,0.55) 0%, rgba(255,201,60,0.12) 35%, transparent 65%);
    animation: depJpFlashBurst 0.7s ease-out forwards;
  }
  .deposit-slot-jp-flash--2 {
    animation-delay: 0.35s;
    background: radial-gradient(circle at 50% 50%, rgba(0,255,140,0.35) 0%, transparent 55%);
  }
  @keyframes depJpFlashBurst {
    0% { opacity: 0; transform: scale(0.6); }
    25% { opacity: 1; transform: scale(1.15); }
    100% { opacity: 0; transform: scale(1.4); }
  }
  .deposit-slot-jp-ring {
    position: absolute;
    left: 50%; top: 50%;
    width: 120%; height: 120%;
    margin: -60% 0 0 -60%;
    border-radius: 50%;
    border: 3px solid rgba(255,201,60,0.7);
    box-shadow: 0 0 40px rgba(255,201,60,0.5);
    animation: depJpRingExpand 1.1s ease-out forwards;
  }
  @keyframes depJpRingExpand {
    0% { opacity: 1; transform: scale(0.3); }
    100% { opacity: 0; transform: scale(1.35); }
  }
  .deposit-slot-jp-sparks {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }
  .deposit-slot-jp-spark {
    position: absolute;
    left: var(--jx, 50%);
    top: var(--jy, 50%);
    width: 8px; height: 8px;
    border-radius: 50%;
    background: radial-gradient(circle, #FFF8DC, #FFC93C 55%, #9A6E0E);
    box-shadow: 0 0 10px rgba(255,201,60,0.9);
    transform: scale(var(--js, 1));
    animation: depJpSparkPop 1.2s var(--jd, 0s) ease-out forwards;
  }
  @keyframes depJpSparkPop {
    0% { opacity: 0; transform: scale(0); }
    15% { opacity: 1; }
    100% { opacity: 0; transform: scale(calc(var(--js, 1) * 1.8)) translateY(-40px); }
  }
  .deposit-slot-stage--win .deposit-slot-cell:not(.deposit-slot-cell--jackpot) {
    color: rgba(237,242,239,0.45);
    text-shadow: none;
  }
  @media (prefers-reduced-motion: reduce) {
    .deposit-slot-reel.spinning .deposit-slot-strip { filter: none; }
    .deposit-slot-stage--win .deposit-slot-lights span { animation: none; }
    .deposit-slot-stage--jackpot .deposit-slot-machine,
    .deposit-slot-stage--jackpot .deposit-slot-reel,
    .deposit-slot-cell--jackpot,
    .deposit-slot-stage--jackpot .deposit-slot-payline { animation: none; }
    .deposit-slot-jp-overlay { display: none; }
  }

  /* Plinko */
  .plinko-container { width: 300px; height: 300px; background: linear-gradient(180deg, rgba(0,220,110,0.08), rgba(7,10,18,0.95)); border-radius: var(--radius-sm); border: 1px solid var(--border); position: relative; overflow: hidden; margin: 0 auto; }
  .plinko-pin { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
  .plinko-ball { position: absolute; width: 14px; height: 14px; border-radius: 50%; background: var(--green); box-shadow: 0 0 8px var(--green); transition: all 0.1s; }

  /* HiLo */
  .hilo-card {
    width: 132px; height: 186px; border-radius: 14px;
    background: linear-gradient(180deg, #ffffff, #eef3ff);
    margin: 0 auto;
    border: 1px solid rgba(168,188,228,0.75);
    box-shadow: 0 12px 28px rgba(0,0,0,0.42), 0 0 0 1px rgba(255,255,255,0.58) inset;
    position: relative;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
  }
  .hilo-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.58), transparent 44%);
    pointer-events: none;
  }
  .hilo-card.deal { animation: hiloDealCardIn 0.34s ease; }
  @keyframes hiloDealCardIn {
    0% { opacity: 0; transform: translateY(-18px) scale(0.82) rotate(-9deg); filter: blur(1.4px); }
    72% { opacity: 1; transform: translateY(2px) scale(1.03) rotate(1.4deg); filter: blur(0); }
    100% { opacity: 1; transform: translateY(0) scale(1) rotate(0deg); }
  }
  .hilo-rank-corner {
    position: absolute;
    font-family: 'Rajdhani', sans-serif;
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .2px;
    z-index: 1;
  }
  .hilo-rank-corner.top { top: 8px; left: 10px; }
  .hilo-rank-corner.bottom { bottom: 8px; right: 10px; transform: rotate(180deg); }
  .hilo-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    line-height: 1;
    z-index: 1;
  }
  .hilo-center-rank {
    font-family: 'Rajdhani', sans-serif;
    font-size: 56px;
    font-weight: 800;
  }
  .hilo-center-suit {
    font-size: 34px;
    opacity: 0.95;
    transform: translateY(-3px);
  }
  .hilo-card.red .hilo-rank-corner,
  .hilo-card.red .hilo-center-rank,
  .hilo-card.red .hilo-center-suit { color: #d12f49; }
  .hilo-card.black .hilo-rank-corner,
  .hilo-card.black .hilo-center-rank,
  .hilo-card.black .hilo-center-suit { color: #1f2736; }
  .hilo-btns { display: flex; gap: 12px; justify-content: center; margin-top: 16px; }
  .hilo-btn {
    height: 44px; padding: 0 24px; border-radius: var(--radius-sm);
    font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 14px;
    letter-spacing: 1px; cursor: pointer; transition: var(--transition); border: 1.5px solid;
  }
  .hilo-btn.higher { background: rgba(0,230,118,0.1); border-color: var(--green); color: var(--green); }
  .hilo-btn.higher:hover { background: rgba(0,230,118,0.2); }
  .hilo-btn.lower { background: rgba(255,61,90,0.1); border-color: var(--red); color: var(--red); }
  .hilo-btn.lower:hover { background: rgba(255,61,90,0.2); }

  .mini-bj-wrap { width: 100%; max-width: 780px; margin: 0 auto; }
  .mini-bj-table {
    border: 1px solid var(--border-bright);
    border-radius: 16px;
    padding: 14px;
    background:
      radial-gradient(circle at 50% -40%, rgba(255,255,255,0.18), transparent 55%),
      linear-gradient(180deg, rgba(11,90,62,0.35), rgba(5,36,26,0.85));
    box-shadow: inset 0 0 0 2px rgba(0,220,110,0.1), 0 14px 30px rgba(0,0,0,0.35), 0 0 24px rgba(0,0,0,0.2);
    position: relative;
    overflow: hidden;
  }
  .mini-bj-table::before {
    content:'';
    position:absolute; inset:0;
    background-image:
      radial-gradient(circle at 10% 20%, rgba(255,255,255,0.06) 0 2px, transparent 2px),
      radial-gradient(circle at 80% 60%, rgba(255,255,255,0.05) 0 1.8px, transparent 1.8px);
    background-size: 36px 36px, 30px 30px;
    opacity: 0.24;
    pointer-events:none;
  }
  .mini-bj-table::after {
    content: '';
    position: absolute;
    inset: 8px;
    border: 1px dashed rgba(0,220,110,0.25);
    border-radius: 12px;
    pointer-events: none;
    box-shadow: inset 0 0 38px rgba(0,0,0,0.24);
  }
  .mini-bj-dealer {
    display:grid; grid-template-columns: 140px 1fr; gap:10px; margin-bottom: 8px; align-items: stretch;
  }
  .mini-bj-dealer-human {
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    background: #0A0A0C;
    box-shadow: 0 8px 22px rgba(0,0,0,0.35);
  }
  .mini-bj-dealer-human img {
    width: 100%; height: 100%; object-fit: cover; object-position: center 18%;
    display: block;
  }
  .mini-bj-dealer-bubble {
    flex:1; min-height: 34px; border-radius: 10px; border: 1px solid var(--border);
    background: rgba(5,12,22,0.65); color: var(--text-dim);
    font-family:'Share Tech Mono',monospace; font-size: 10px; letter-spacing: .6px;
    padding: 8px 10px;
    animation: dealerPulse 3.8s ease-in-out infinite;
  }
  @keyframes dealerPulse {
    0%, 100% { box-shadow: 0 0 0 rgba(0,220,110,0.0); }
    50% { box-shadow: 0 0 18px rgba(0,220,110,0.15); }
  }
  .mini-bj-row { margin-bottom: 12px; }
  .mini-bj-label { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: var(--text-dim); letter-spacing: 1.4px; margin-bottom: 6px; }
  .mini-bj-cards { display: flex; gap: 8px; flex-wrap: wrap; min-height: 56px; }
  .mini-bj-card {
    width: 44px; height: 56px; border-radius: 8px; border: 1px solid var(--border-bright);
    background: linear-gradient(180deg, #fff, #edf2ff);
    color: #1a2235; font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 18px;
    display: flex; align-items: center; justify-content: center;
    position: relative;
    box-shadow: 0 4px 10px rgba(0,0,0,0.28), 0 1px 0 rgba(255,255,255,0.55) inset;
  }
  .mini-bj-card:nth-child(odd) { transform: rotate(-1.2deg); }
  .mini-bj-card:nth-child(even) { transform: rotate(1.2deg); }
  .mini-bj-card::after {
    content:'';
    position:absolute; inset:0; border-radius:8px;
    background: linear-gradient(135deg, rgba(255,255,255,0.45), transparent 46%);
    pointer-events:none;
  }
  .mini-bj-card.back { background: linear-gradient(180deg, #1b2740, #0f1829); color: var(--gold); }
  .mini-bj-card.deal { animation: dealCardIn 0.28s ease; }
  .mini-bj-card.to-player { animation: dealToPlayer 0.35s ease; }
  .mini-bj-card.to-dealer { animation: dealToDealer 0.35s ease; }
  @keyframes dealCardIn {
    from { opacity: 0; transform: translateY(-16px) rotate(-6deg) scale(0.92); }
    to { opacity: 1; transform: translateY(0) rotate(0) scale(1); }
  }
  @keyframes dealToPlayer {
    from { opacity: 0; transform: translate(-180px, -26px) rotate(-12deg) scale(0.9); }
    to { opacity: 1; transform: translate(0,0) rotate(0) scale(1); }
  }
  @keyframes dealToDealer {
    from { opacity: 0; transform: translate(-180px, 24px) rotate(-12deg) scale(0.9); }
    to { opacity: 1; transform: translate(0,0) rotate(0) scale(1); }
  }
  .mini-bj-total { font-family: 'Rajdhani', sans-serif; font-size: 18px; color: var(--gold); margin-top: 4px; }
  .mini-bj-actions { display:flex; gap:10px; justify-content:center; margin-top: 10px; }
  .mini-bj-sidebets { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:10px; }
  .mini-bj-sidebets input {
    width: 96px; height: 34px; background: var(--bg-glass); border: 1px solid var(--border);
    border-radius: 8px; color: var(--gold); text-align: center; font-family:'Rajdhani',sans-serif; font-weight:700;
  }
  .game-history {
    margin-top: 12px; border:1px solid var(--border); border-radius: 10px; padding:10px;
    background: rgba(20,28,44,0.38); max-height: 120px; overflow:auto;
    font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text-dim);
  }
  .game-history div {
    padding: 5px 6px;
    border-radius: 6px;
    margin-bottom: 4px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.05);
  }
  .game-history div:last-child { margin-bottom: 0; }
  #roulette-history,
  #mini-bj-history {
    background: linear-gradient(180deg, rgba(16,22,34,0.9), rgba(8,11,18,0.95));
    border-color: rgba(0,220,110,0.28);
  }
  .mini-bj-result {
    font-family:'Rajdhani',sans-serif;
    font-size:22px;
    text-align:center;
    margin-top:12px;
    color:var(--gold);
    transition: transform .2s ease, text-shadow .2s ease, color .2s ease;
  }
  .mini-bj-result.win { color: var(--green); transform: scale(1.02); text-shadow: 0 0 20px rgba(0,230,118,0.35); }
  .mini-bj-result.lose { color: var(--red); transform: scale(1.02); text-shadow: 0 0 20px rgba(255,61,90,0.35); }
  .mini-bj-result.neutral { color: var(--text-dim); }
  .roulette-result {
    font-family:'Rajdhani',sans-serif;
    font-size:22px;
    color:var(--gold);
    text-align:center;
    transition: transform .2s ease, text-shadow .2s ease, color .2s ease;
  }
  .roulette-result.win { color: var(--green); text-shadow: 0 0 18px rgba(0,230,118,0.3); transform: scale(1.02); }
  .roulette-result.lose { color: var(--red); text-shadow: 0 0 18px rgba(255,61,90,0.3); transform: scale(1.02); }
  .roulette-result-chip {
    display:inline-flex; align-items:center; justify-content:center;
    border-radius:50%; width:40px; height:40px; font-weight:700; color:#fff;
    animation: resultPulse 0.55s ease-out;
    box-shadow: 0 0 0 0 rgba(0,220,110,0.45);
  }
  @keyframes resultPulse {
    0% { transform: scale(0.82); box-shadow: 0 0 0 0 rgba(0,220,110,0.55); }
    70% { transform: scale(1.08); box-shadow: 0 0 0 14px rgba(0,220,110,0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(0,220,110,0); }
  }
  .cinematic-win { animation: cinematicWinFlash .9s ease-out; }
  .cinematic-shake { animation: cinematicShake .38s ease-in-out; }
  @keyframes cinematicWinFlash {
    0% { box-shadow: inset 0 0 0 rgba(255,214,120,0), 0 0 0 rgba(255,214,120,0); }
    45% { box-shadow: inset 0 0 140px rgba(255,214,120,0.14), 0 0 90px rgba(255,214,120,0.2); }
    100% { box-shadow: inset 0 0 0 rgba(255,214,120,0), 0 0 0 rgba(255,214,120,0); }
  }
  @keyframes cinematicShake {
    0% { transform: translate3d(0, 0, 0); }
    18% { transform: translate3d(-1.6px, 0.6px, 0); }
    36% { transform: translate3d(1.6px, -0.8px, 0); }
    54% { transform: translate3d(-1.1px, 0.5px, 0); }
    72% { transform: translate3d(1.1px, -0.4px, 0); }
    100% { transform: translate3d(0, 0, 0); }
  }
  .jackpot-confetti {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 8600;
    overflow: hidden;
  }
  .jackpot-piece {
    position: absolute;
    width: var(--w, 8px);
    height: var(--h, 14px);
    border-radius: 2px;
    opacity: 0.9;
    filter: drop-shadow(0 0 6px rgba(255,255,255,0.45));
    animation: confettiFall var(--dur, 1.25s) ease-in forwards;
  }
  .jackpot-spark {
    position:absolute;
    width: 4px;
    height: 4px;
    border-radius:50%;
    background: #fff7d6;
    opacity: 0.9;
    box-shadow: 0 0 10px rgba(255,232,160,0.9);
    animation: confettiSpark var(--sdur, 1.1s) ease-out forwards;
  }
  @keyframes confettiFall {
    0% { transform: translateY(-12px) rotate(0deg); opacity: 0; }
    12% { opacity: 0.95; }
    100% { transform: translateY(102vh) rotate(540deg); opacity: 0; }
  }
  @keyframes confettiSpark {
    0% { transform: translate3d(0, 0, 0) scale(0.6); opacity: 0; }
    18% { opacity: 0.95; }
    100% { transform: translate3d(var(--dx, 0px), 98vh, 0) scale(0.2); opacity: 0; }
  }
  .bj-chip-row { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin: 10px 0 2px; }
  .bj-chip {
    width: 38px; height: 38px; border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.6);
    box-shadow: inset 0 0 0 3px rgba(0,0,0,0.35), 0 4px 12px rgba(0,0,0,0.35);
    color: #fff; font-family:'Rajdhani',sans-serif; font-size:10px; font-weight:800;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    position: relative;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='44' fill='none' stroke='rgba(255,255,255,0.32)' stroke-width='6'/%3E%3Ccircle cx='50' cy='50' r='31' fill='none' stroke='rgba(0,0,0,0.28)' stroke-width='3'/%3E%3Cpath d='M50 10 L54 18 L63 18 L56 24 L59 33 L50 27 L41 33 L44 24 L37 18 L46 18 Z' fill='rgba(255,255,255,0.26)'/%3E%3C/svg%3E");
    background-size: cover;
    background-position: center;
    transition: transform .18s ease, box-shadow .18s ease;
  }
  .bj-chip::before {
    content:'';
    position:absolute;
    width: 24px; height: 24px;
    border-radius: 50%;
    border: 2px dashed rgba(255,255,255,0.55);
    opacity: 0.75;
    pointer-events:none;
  }
  .bj-chip::after {
    content:'';
    position:absolute;
    inset:4px;
    border-radius:50%;
    background: radial-gradient(circle at 30% 25%, rgba(255,255,255,0.35), transparent 46%);
    pointer-events:none;
  }
  .bj-chip:hover { transform: translateY(-2px) scale(1.04); }
  .bj-chip.active { box-shadow: inset 0 0 0 3px rgba(255,255,255,0.5), 0 0 16px rgba(255,255,255,0.35); transform: translateY(-1px) scale(1.03); }
  .bj-chip.v05 { background: radial-gradient(circle at 30% 30%, #8ab4ff, #2f6fff); }
  .bj-chip.v1  { background: radial-gradient(circle at 30% 30%, #ffffff, #c7c7c7); color:#111; }
  .bj-chip.v5  { background: radial-gradient(circle at 30% 30%, #ff8a8a, #e53935); }
  .bj-chip.v10 { background: radial-gradient(circle at 30% 30%, #8bffa9, #20b45c); }
  .bj-chip.v25 { background: radial-gradient(circle at 30% 30%, #f7d47d, #d08b0b); }
  .bj-betting-layout {
    display:grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 10px;
  }
  .bj-bet-spot {
    min-height: 74px; border-radius: 50%/42%;
    border: 2px dashed rgba(255,255,255,0.35);
    background:
      radial-gradient(circle at 28% 22%, rgba(255,255,255,0.06), transparent 36%),
      rgba(5,12,22,0.4);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    color: var(--text-dim); font-family:'Share Tech Mono',monospace; font-size: 10px; letter-spacing: 1px;
    transition: all .18s ease;
  }
  .bj-bet-spot.drag-over { border-color: var(--gold); box-shadow: 0 0 18px rgba(0,220,110,0.35); transform: scale(1.03); }
  .bj-bet-spot:hover { border-color: rgba(0,220,110,0.55); box-shadow: 0 0 14px rgba(0,220,110,0.2); }
  .bj-bet-spot-amt { margin-top: 4px; color: var(--gold); font-family:'Rajdhani',sans-serif; font-size: 18px; font-weight:700; }
  .bj-bet-spot-stack {
    margin-top: 4px; min-height: 14px; display:flex; gap:2px; justify-content:center; flex-wrap:wrap; max-width: 86px;
  }
  .bj-stack-chip {
    width: 10px; height: 10px; border-radius: 50%;
    border:1px solid rgba(255,255,255,0.65);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.25);
  }
  .bj-chip-rack { display:flex; justify-content:center; gap:8px; margin: 10px 0 2px; flex-wrap: wrap; }
  .bj-chip[draggable="true"] { user-select: none; }
  .bj-closed {
    margin-top: 8px; text-align:center; font-family:'Share Tech Mono',monospace; font-size: 10px;
    letter-spacing: 1.4px; color: var(--text-dim);
  }

  /* Mines */
  .mines-grid { display: grid; gap: 12px; max-width: 620px; margin: 0 auto; }
  .mine-cell {
    aspect-ratio: 1; border-radius: 8px; border: 1px solid var(--border);
    background: var(--bg-glass); cursor: pointer; transition: var(--transition);
    display: flex; align-items: center; justify-content: center; font-size: 30px;
  }
  .mine-cell img { width: 34px; height: 34px; object-fit: contain; }
  .mine-cell:hover:not(.revealed) { border-color: var(--gold); background: rgba(0,220,110,0.06); }
  .mine-cell.revealed.safe { background: rgba(0,230,118,0.1); border-color: var(--green); color: var(--green); }
  .mine-cell.revealed.mine { background: rgba(255,61,90,0.15); border-color: var(--red); }
  .mine-cell.revealed { animation: revealPop 0.22s ease; }
  @keyframes revealPop { from { transform: scale(0.88); } to { transform: scale(1); } }

  /* Limbo */
  .limbo-display {
    font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 80px;
    text-align: center; color: var(--cyan); text-shadow: 0 0 30px rgba(0,255,224,0.5);
    transition: color 0.3s;
  }
  .limbo-display.win { color: var(--green); text-shadow: 0 0 30px rgba(0,230,118,0.5); }
  .limbo-display.lose { color: var(--red); text-shadow: 0 0 30px rgba(255,61,90,0.5); }
  .limbo-scene {
    position: relative;
    width: 100%;
    max-width: 420px;
    height: 170px;
    margin: 8px auto 0;
    border-radius: 14px;
    border: 1px solid rgba(104,153,219,0.34);
    background: linear-gradient(180deg, rgba(16,54,96,0.45), rgba(9,24,48,0.8));
    overflow: hidden;
    --bird-x: 18;
    --bird-y: 52;
  }
  .limbo-cloud {
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 18% 28%, rgba(255,255,255,0.18), transparent 28%),
      radial-gradient(circle at 72% 22%, rgba(255,255,255,0.12), transparent 26%),
      radial-gradient(circle at 60% 68%, rgba(255,255,255,0.08), transparent 24%);
    pointer-events: none;
    animation: limboCloudDrift 8s linear infinite;
  }
  .limbo-hills-far, .limbo-hills-near {
    position: absolute;
    left: -40%;
    right: -40%;
    bottom: -32px;
    height: 120px;
    border-radius: 50%;
    pointer-events: none;
  }
  .limbo-hills-far {
    background: radial-gradient(ellipse at center, rgba(40,94,140,0.55), rgba(14,34,60,0.05) 70%);
    animation: limboParallaxFar 7.6s linear infinite;
  }
  .limbo-hills-near {
    bottom: -44px;
    background: radial-gradient(ellipse at center, rgba(24,66,106,0.82), rgba(10,26,45,0.08) 72%);
    animation: limboParallaxNear 3.8s linear infinite;
  }
  .limbo-bird, .limbo-plane, .limbo-meteor, .limbo-boom {
    position: absolute;
    left: calc(var(--bird-x) * 1%);
    top: calc(var(--bird-y) * 1%);
    transform: translate(-50%, -50%);
    filter: drop-shadow(0 0 10px rgba(168,218,255,0.45));
    transition: transform .25s ease;
    z-index: 2;
  }
  .limbo-sprite {
    width: 46px;
    height: 46px;
    object-fit: contain;
    display: block;
  }
  .limbo-plane { opacity: 0; }
  .limbo-meteor { opacity: 0; }
  .limbo-boom { opacity: 0; }
  .limbo-thunder .limbo-sprite { width: 54px; height: 54px; }
  .limbo-boom .limbo-sprite { width: 58px; height: 58px; }
  .limbo-scene.run .limbo-bird { animation: limboBirdCruise 1.2s ease-in-out infinite; }
  .limbo-scene.win .limbo-bird { animation: limboBirdFlyAway .65s ease forwards; }
  .limbo-scene.lose .limbo-bird { opacity: 0; }
  .limbo-scene.lose.death-plane .limbo-plane { opacity: 1; animation: limboPlaneCrash .75s ease forwards; }
  .limbo-scene.lose.death-thunder .limbo-thunder { animation: limboThunderHit .48s ease forwards; }
  .limbo-scene.lose.death-meteor .limbo-meteor { opacity: 1; animation: limboMeteorDrop .75s ease forwards; }
  .limbo-scene.lose.death-boom .limbo-boom { opacity: 1; animation: limboBoomPop .62s ease forwards; }
  .limbo-thunder {
    position: absolute;
    left: calc(var(--bird-x) * 1% + 4%);
    top: calc(var(--bird-y) * 1% - 22%);
    opacity: 0;
    transform: scale(0.6);
    filter: drop-shadow(0 0 10px rgba(255,214,92,0.68));
    z-index: 3;
  }
  @keyframes limboBirdCruise {
    0%, 100% { transform: translate(-50%, -50%) translateY(0); }
    50% { transform: translate(-50%, -50%) translateY(-6px); }
  }
  @keyframes limboBirdFlyAway {
    0% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    100% { transform: translate(220%, -190%) scale(0.6); opacity: 0; }
  }
  @keyframes limboThunderHit {
    0% { opacity: 0; transform: scale(0.5); }
    35% { opacity: 1; transform: scale(1.06); }
    100% { opacity: 0; transform: scale(0.84); }
  }
  @keyframes limboPlaneCrash {
    0% { transform: translate(-50%, -50%) rotate(0deg); opacity: 1; }
    100% { transform: translate(170%, 175%) rotate(80deg); opacity: 0; }
  }
  @keyframes limboCloudDrift {
    0% { transform: translateX(0); }
    100% { transform: translateX(-30px); }
  }
  @keyframes limboParallaxFar {
    0% { transform: translateX(0); }
    100% { transform: translateX(-22%); }
  }
  @keyframes limboParallaxNear {
    0% { transform: translateX(0); }
    100% { transform: translateX(-36%); }
  }
  @keyframes limboMeteorDrop {
    0% { transform: translate(140%, -170%) rotate(-24deg) scale(0.7); opacity: 0; }
    28% { opacity: 1; }
    100% { transform: translate(-8%, 38%) rotate(12deg) scale(1.12); opacity: 0; }
  }
  @keyframes limboBoomPop {
    0% { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }
    35% { transform: translate(-50%, -50%) scale(1.18); opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(0.88); opacity: 0; }
  }

  /* Keno */
  .keno-grid {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 8px;
    max-width: 640px;
    margin: 0 auto;
  }
  .keno-num {
    aspect-ratio: 1;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: var(--bg-glass); display: flex; align-items: center; justify-content: center;
    font-family: 'Share Tech Mono', monospace;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
  }
  .keno-num:hover { border-color: var(--gold); background: rgba(0,220,110,0.06); }
  .keno-num.selected { background: rgba(0,220,110,0.15); border-color: var(--gold); color: var(--gold); }
  .keno-num.drawn { background: rgba(0,230,118,0.15); border-color: var(--green); color: var(--green); }
  .keno-num.hit { background: rgba(0,230,118,0.3); border-color: var(--green); color: var(--green); }
  .keno-num.drawn { animation: revealPop 0.2s ease; }

  /* Chicken (Cross Road style) */
  .chicken-road-wrap { width: min(760px, 96%); margin: 0 auto; }
  .chicken-road {
    position: relative;
    width: 100%;
    height: 460px;
    border-radius: 14px;
    border: 1px solid rgba(106,158,223,0.28);
    overflow: hidden;
    background: linear-gradient(180deg, #163a2b 0%, #133323 11%, #353941 12%, #3a3f47 90%, #163a2b 91%, #173b2c 100%);
    box-shadow: inset 0 0 36px rgba(0,0,0,0.28), 0 16px 34px rgba(0,0,0,0.34);
  }
  .chicken-lane {
    position: absolute;
    left: 0;
    width: 100%;
    border-top: 1px solid rgba(255,255,255,0.05);
    border-bottom: 1px solid rgba(0,0,0,0.18);
    background:
      repeating-linear-gradient(90deg, transparent 0 34px, rgba(255,255,255,0.18) 34px 54px, transparent 54px 108px),
      linear-gradient(180deg, rgba(255,255,255,0.02), rgba(0,0,0,0.06));
  }
  .chicken-lane.passed {
    border-top: 2px solid rgba(46,214,130,0.75);
    border-bottom: 2px solid rgba(46,214,130,0.75);
    background: linear-gradient(180deg, rgba(46,214,130,0.14), rgba(46,214,130,0.06));
    box-shadow: inset 0 0 10px rgba(46,214,130,0.22);
  }
  .chicken-lane.passed::before,
  .chicken-lane.passed::after {
    content: 'OK';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-family: 'Rajdhani', sans-serif;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.5px;
    color: rgba(166,255,206,0.95);
    text-shadow: 0 0 8px rgba(46,214,130,0.45);
    pointer-events: none;
  }
  .chicken-lane.passed::before { left: 10px; }
  .chicken-lane.passed::after { right: 10px; }
  .chicken-car {
    position: absolute;
    height: 26px;
    border-radius: 7px;
    border: 1px solid rgba(0,0,0,0.25);
    box-shadow: 0 4px 10px rgba(0,0,0,0.35);
    top: 50%;
    transform: translateY(-50%);
  }
  .chicken-car::before {
    content: '';
    position: absolute;
    left: 6px;
    right: 6px;
    top: 4px;
    height: 7px;
    border-radius: 5px;
    background: rgba(255,255,255,0.45);
  }
  .chicken-player {
    position: absolute;
    width: 30px;
    height: 30px;
    transform: translate(-50%, -50%);
    filter: drop-shadow(0 3px 6px rgba(0,0,0,0.4));
    transition: top 0.19s ease, transform 0.15s ease;
    z-index: 4;
  }
  .chicken-player.hit {
    animation: chickenHitFlash 0.42s ease;
  }
  .chicken-explosion {
    position: absolute;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 9;
    background: radial-gradient(circle, rgba(255,248,180,0.98) 0%, rgba(255,186,76,0.95) 36%, rgba(255,86,40,0.88) 62%, rgba(255,34,34,0.42) 100%);
    box-shadow: 0 0 10px rgba(255,160,80,0.95), 0 0 22px rgba(255,66,30,0.75);
    animation: chickenExplosionPop 0.46s ease-out forwards;
  }
  .chicken-explosion::before,
  .chicken-explosion::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 68px;
    height: 4px;
    border-radius: 4px;
    background: linear-gradient(90deg, rgba(255,245,200,0), rgba(255,220,120,0.92), rgba(255,60,30,0));
    transform: translate(-50%, -50%) rotate(0deg);
  }
  .chicken-explosion::after { transform: translate(-50%, -50%) rotate(90deg); }
  @keyframes chickenExplosionPop {
    0% { opacity: 0.95; transform: translate(-50%, -50%) scale(0.35); }
    55% { opacity: 1; transform: translate(-50%, -50%) scale(1.65); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.2); }
  }
  @keyframes chickenHitFlash {
    0% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    45% { transform: translate(-50%, -50%) scale(1.26) rotate(12deg); opacity: 0.7; }
    100% { transform: translate(-50%, -50%) scale(0.76); opacity: 0; }
  }

  /* Flip */
  .flip-wrap { text-align:center; width:100%; max-width: 460px; margin:0 auto; }
  .flip-coin {
    width: 134px; height: 134px; margin: 0 auto 16px;
    position: relative;
    transform-style: preserve-3d;
    transition: transform .2s ease;
  }
  .flip-coin-face {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    display:flex; align-items:center; justify-content:center;
    backface-visibility: visible;
    border: 2px solid rgba(245,199,95,0.7);
    box-shadow: 0 0 26px rgba(0,220,110,0.35), inset 0 0 20px rgba(0,0,0,0.26);
    background:
      radial-gradient(circle at 35% 28%, rgba(255,255,255,0.32), rgba(255,255,255,0) 38%),
      linear-gradient(145deg, #A8FFD0 0%, #00DC6E 58%, #0B3B22 100%);
    transition: opacity .18s ease;
  }
  .flip-coin-face.pile { transform: none; }
  .flip-coin .flip-coin-face.face { opacity: 1; }
  .flip-coin .flip-coin-face.pile { opacity: 0; }
  .flip-coin[data-side="tails"] .flip-coin-face.face { opacity: 0; }
  .flip-coin[data-side="tails"] .flip-coin-face.pile { opacity: 1; }
  .flip-coin-logo {
    width: 112px;
    height: 112px;
    border-radius: 50%;
    background-color: rgba(10,16,28,0.86);
    border: 1px solid rgba(255,226,142,0.5);
    box-shadow: 0 0 10px rgba(0,0,0,0.35) inset, 0 0 10px rgba(255,220,120,0.3);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 95%;
  }
  .flip-coin-logo.site {
    background-image: url('./assets/logo-hugotaslot.jpg');
    background-size: cover;
    background-position: center 36%;
  }
  .flip-coin-logo.coin {
    background-image: url('./assets/flip-pile-logo.svg');
    background-size: 86%;
  }
  .flip-coin.flipping { animation: coinFlip 0.92s cubic-bezier(.2,.7,.14,1); }
  .flip-coin.show-pile { transform: rotateY(180deg); }
  .flip-coin.show-face { transform: rotateY(0deg); }
  .flip-coin.hot::after {
    content: '';
    position: absolute;
    inset: -10px;
    border-radius: 50%;
    border: 2px solid rgba(255,218,120,0.75);
    box-shadow: 0 0 16px rgba(0,220,110,0.75), 0 0 28px rgba(255,228,150,0.5);
    animation: flipSparkPulse 0.85s ease-in-out infinite;
    pointer-events: none;
  }
  @keyframes flipSparkPulse {
    0%, 100% { opacity: 0.45; transform: scale(0.98); }
    50% { opacity: 0.95; transform: scale(1.06); }
  }
  @keyframes coinFlip { 0%{transform:rotateY(0)} 100%{transform:rotateY(1440deg)} }

  /* Pump */
  .pump-balloon {
    width: 150px; height: 150px; border-radius: 50%;
    margin: 0 auto;
    display:flex; align-items:center; justify-content:center;
    font-family:'Rajdhani',sans-serif; font-weight:800; letter-spacing:1px;
    font-size: 30px; text-align: center; transition: transform 0.22s ease, width 0.22s ease, height 0.22s ease, filter 0.22s ease;
    background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.3), rgba(0,220,110,0.22) 40%, rgba(0,220,110,0.08) 70%);
    filter: drop-shadow(0 0 20px rgba(0,220,110,0.3));
  }
  .pump-balloon.ko {
    background: radial-gradient(circle at 35% 30%, rgba(255,220,220,0.35), rgba(255,96,96,0.25) 42%, rgba(255,50,50,0.12) 75%);
    filter: drop-shadow(0 0 22px rgba(255,70,70,0.45));
  }
  .pump-balloon.shake { animation: pumpShake 120ms linear infinite; }
  @keyframes pumpShake {
    0% { transform: translateX(0) rotate(0deg); }
    25% { transform: translateX(-1.5px) rotate(-0.8deg); }
    50% { transform: translateX(1.5px) rotate(0.8deg); }
    75% { transform: translateX(-1.1px) rotate(-0.5deg); }
    100% { transform: translateX(0) rotate(0deg); }
  }
  .pump-multiplier { font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 40px; text-align: center; color: var(--gold); }

  /* Toast info type */
  .toast.info { border-color: var(--blue); color: var(--blue); }

  /* ─── ADAPTIVE SCREEN SCALING ─── */
  @media (max-width: 1440px) {
    #content { padding: 16px 18px; }
    .stat-card { min-width: 86px; padding: 8px 12px; }
    .open-btn { height: 34px; font-size: 11px; padding: 0 14px; }
    #bonus-panel { min-height: 240px !important; }
  }

  @media (max-width: 1200px) {
    :root { --sidebar-w: 220px; --header-h: 74px; }
    .logo-text { font-size: 19px; letter-spacing: 2px; }
    .logo-sub { font-size: 10px; }
    .sidebar-btn { font-size: 16px; letter-spacing: 1px; padding: 10px 12px; }
    .provider-filter { min-width: 130px; }
    .bonus-row { min-height: 64px; }
    .bonus-thumb { width: 78px; height: 64px; }
    #slots-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
    .game-window.da-pro .game-controls {
      position: static;
      width: auto;
      left: auto;
      top: auto;
      bottom: auto;
      border-radius: 0;
      border-left: none;
      border-right: none;
      padding: 16px 24px;
    }
    .game-window.da-pro .game-body {
      padding: 20px;
    }
    .game-window.da-pro .game-title { font-size: 32px; max-width: 82vw; }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-table {
      padding: 68px 12px 138px;
      gap: 8px;
    }
    .bj-betting-zone { gap: 8px; }
    .bj-casino-chip { width: 48px; height: 48px; font-size: 17px; }
    .bj-casino-chip--vip { width: 54px; height: 54px; font-size: 19px; }
    .bj-chip-rack-wrap { width: 98%; padding: 8px 10px 6px; }
    .bj-dealer-say, .bj-history-panel { display: none; }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-pill {
      font-size: 24px;
      padding: 6px 11px 6px 10px;
    }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-pill strong { font-size: 27px; }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-pill .score {
      min-width: 31px;
      height: 31px;
      font-size: 20px;
    }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-cards {
      gap: 6px;
      min-height: 98px;
    }
    .game-window.da-pro[data-game="blackjack"] .mini-bj-card {
      width: 66px;
      height: 92px;
      font-size: 35px;
    }
    .antho-roulette-main {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 980px) {
    :root { --sidebar-w: 78px; }
    .sidebar-logo { padding: 14px 8px 12px; text-align: center; }
    .sidebar-logo-img { margin: 0 auto 8px; width: 42px; height: 42px; }
    .logo-text, .logo-sub, .sidebar-section-title, .hunt-item-name, .hunt-item-meta { display: none; }
    .sidebar-btn { width: calc(100% - 12px); margin: 10px 6px 0; padding: 10px 6px; font-size: 0; }
    .sidebar-btn::after { content: '+'; font-size: 18px; font-weight: 700; }
    .sidebar-tab { justify-content: center; font-size: 0; padding: 10px 0; }
    .sidebar-tab-icon, .sidebar-tab-icon-img { margin: 0; width: 18px; height: 18px; font-size: 18px; }
    #header { padding: 0 12px; }
    .stats-bar { gap: 8px; }
    .stat-card { min-width: 70px; padding: 6px 8px; }
    .stat-label { font-size: 8px; letter-spacing: 1px; }
    .roulette-wheel-wrap { width: 280px; height: 280px; }
    .roulette-wheel { width: 280px; height: 280px; --roulette-num-radius: -126px; }
    .roulette-wheel-num { font-size: 10px; width: 22px; margin-left: -11px; }
    .roulette-bet-grid { grid-template-columns: 46px 1fr 46px; gap: 4px; }
    .roulette-numbers { grid-template-columns: repeat(12, minmax(22px, 1fr)); gap: 3px; }
    .roulette-cell, .roulette-colbet { min-height: 30px; font-size: 12px; }
    .roulette-outside { grid-template-columns: repeat(12, minmax(18px, 1fr)); gap: 3px; }
    .roulette-out { min-height: 30px; font-size: 10px; }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-table {
      padding: 70px 14px 18px;
      gap: 10px;
    }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-seat { gap: 9px; }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-pill {
      font-size: 20px;
      padding: 5px 9px;
    }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-pill strong { font-size: 22px; }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-pill .score {
      min-width: 28px;
      height: 28px;
      font-size: 17px;
    }
    .game-window.da-pro[data-game="blackjack"] .antho-bj-cards { min-height: 82px; }
    .game-window.da-pro[data-game="blackjack"] .mini-bj-card {
      width: 56px;
      height: 78px;
      border-radius: 8px;
      font-size: 30px;
    }
    .game-window.da-pro .plinko-container { height: 430px; }
    .game-window.da-pro .plinko-slot { height: 26px; font-size: 12px; border-radius: 7px; }
  }

  @media (min-width: 1900px) {
    :root { --sidebar-w: 320px; --header-h: 104px; }
    html, body { font-size: 16px; }
    #content { padding: 24px 28px; }
    #slots-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
  }

  /* Gamdom popup global button */
  #gamdom-fab {
    position: fixed; bottom: 24px; right: 24px; z-index: 850;
    width: 52px; height: 52px; border-radius: 50%;
    background: linear-gradient(135deg, #1a6b3a 0%, #0d4a28 100%);
    border: 2px solid var(--green); color: var(--green);
    font-size: 22px; cursor: pointer; transition: var(--transition);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 20px rgba(0,230,118,0.3);
  }
  #gamdom-fab:hover { transform: scale(1.1); box-shadow: 0 6px 28px rgba(0,230,118,0.5); }

  /* ─── P2 : accessibilité (focus clavier) ─── */
  :focus-visible {
    outline: 2px solid var(--gold-dim);
    outline-offset: 2px;
  }
  button:focus:not(:focus-visible),
  a:focus:not(:focus-visible) {
    outline: none;
  }

  /* ─── P2 : aide catalogue étendu / hors Gamdom ─── */
  .catalog-mode-hint {
    flex-shrink: 0;
    margin: 0 0 10px;
    padding: 8px 12px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    line-height: 1.45;
    color: var(--text-dim);
    background: rgba(127, 90, 131, 0.08);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
  }
  .catalog-mode-hint.hidden { display: none; }
  .catalog-mode-hint.catalog-mode-hint--warn {
    border-color: rgba(224, 122, 140, 0.45);
    color: #e8b4bc;
  }
  .slot-card.slot-card--off-catalog {
    outline: 1px dashed rgba(224, 122, 140, 0.35);
    outline-offset: -1px;
  }
  .slot-off-badge {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 4;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #f0d4d8;
    background: rgba(80, 24, 36, 0.88);
    border: 1px solid rgba(224, 122, 140, 0.5);
    pointer-events: none;
  }

  /* ─── P2 : navigation mobile (drawer) ─── */
  .mobile-nav-toggle {
    display: none;
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 920;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-bright);
    background: var(--bg-panel);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
    cursor: pointer;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
  }
  .mobile-nav-toggle-bar {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--gold-dim);
    border-radius: 1px;
    transition: var(--transition);
  }
  body.sidebar-open .mobile-nav-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  body.sidebar-open .mobile-nav-toggle-bar:nth-child(2) {
    opacity: 0;
  }
  body.sidebar-open .mobile-nav-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
  .sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 880;
    background: rgba(2, 2, 2, 0.72);
    backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity 0.22s ease;
    pointer-events: none;
  }
  .sidebar-backdrop:not([hidden]) {
    opacity: 1;
    pointer-events: auto;
  }

  @media (max-width: 720px) {
    .mobile-nav-toggle { display: flex; }
    #app { flex-direction: column; }
    #sidebar {
      position: fixed;
      top: 0;
      left: 0;
      z-index: 900;
      width: min(300px, 88vw);
      max-width: 88vw;
      height: 100vh;
      height: 100dvh;
      transform: translateX(-105%);
      transition: transform 0.26s cubic-bezier(0.4, 0, 0.2, 1);
      box-shadow: 8px 0 40px rgba(0, 0, 0, 0.55);
    }
    body.sidebar-open #sidebar {
      transform: translateX(0);
    }
    #main {
      width: 100%;
      min-height: 0;
      padding-top: 56px;
    }
    #header { padding-left: 56px; flex-wrap: wrap; gap: 8px; }
    .hunt-hub { flex-direction: column; }
    .hunt-hub-sessions {
      width: 100%;
      max-height: 200px;
      border-right: none;
      border-bottom: 1px solid var(--border);
    }
    .hunt-hub-tabs { padding-left: 56px; }
    .stats-bar {
      width: 100%;
      overflow-x: auto;
      flex-wrap: nowrap;
      padding-bottom: 4px;
      -webkit-overflow-scrolling: touch;
    }
    .search-row {
      flex-wrap: wrap;
      gap: 8px;
    }
    .search-wrap { flex: 1 1 100%; min-width: 0; }
    .provider-filter { flex: 1 1 calc(50% - 4px); min-width: 0; }
    .results-count { flex: 1 1 100%; }
    #slots-grid {
      grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
      gap: 8px;
    }
    /* Annule le mode icônes-only (980px) : libellés lisibles dans le drawer */
    .logo-text,
    .logo-sub,
    .sidebar-section-title,
    .hunt-item-name,
    .hunt-item-meta {
      display: block !important;
    }
    .sidebar-btn {
      width: calc(100% - 32px);
      margin: 14px 16px 0;
      font-size: 18px;
      letter-spacing: 2px;
      padding: 12px 16px;
    }
    .sidebar-btn::after { content: none; }
    .sidebar-tab {
      justify-content: flex-start;
      font-size: 14px;
      padding: 10px 12px;
    }
    .sidebar-tab-icon-logo,
    .sidebar-tab-icon-img {
      width: 20px;
      height: 20px;
      flex-shrink: 0;
    }
    #gamdom-fab {
      bottom: 16px;
      right: 16px;
    }
    .page-panel.active {
      left: 0;
      right: 0;
      width: 100%;
    }
    .page-panel.active > header:first-child {
      padding-left: 56px;
      padding-top: 4px;
    }
  }

/* ════════════════════════════════════════════════════════════════
   POLISH MINI JEUX — DA HugoTaSlot X 19EnPlein
   Lobby premium, célébrations de gain, micro-animations des plateaux
   ════════════════════════════════════════════════════════════════ */

/* ─── Lobby : cartes premium ─── */
.game-card {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(160deg, rgba(0,220,110,0.07), rgba(4,16,10,0.4) 55%),
    var(--bg-glass);
  border: 1px solid rgba(0,220,110,0.20);
  cursor: pointer;
}
.game-card::after {
  content: '';
  position: absolute; top: -130%; left: -40%;
  width: 55%; height: 360%;
  background: linear-gradient(105deg, rgba(255,255,255,0), rgba(255,255,255,0.07), rgba(255,255,255,0));
  transform: rotate(18deg) translateX(-140%);
  transition: transform 0.65s ease;
  pointer-events: none;
}
.game-card:hover::after { transform: rotate(18deg) translateX(420%); }
.game-card:hover {
  transform: translateY(-4px);
  border-color: rgba(0,255,140,0.55);
  box-shadow: 0 14px 34px rgba(0,0,0,0.45), 0 0 26px rgba(0,220,110,0.18);
}
.game-card .game-card-icon img { width: 54px; height: 54px; }
.game-card .game-card-rtp {
  display: inline-block; margin-top: 6px; padding: 2px 9px;
  border: 1px solid rgba(0,220,110,0.25); border-radius: 999px;
  background: rgba(0,220,110,0.07); color: var(--gold);
  font-size: 10px; letter-spacing: 1px;
}

/* ─── Fenêtre de jeu : bouton play avec reflet ─── */
.game-window .play-btn { position: relative; overflow: hidden; }
.game-window .play-btn:not(:disabled)::after {
  content: '';
  position: absolute; top: -60%; left: -30%;
  width: 36%; height: 220%;
  background: linear-gradient(105deg, rgba(255,255,255,0), rgba(255,255,255,0.22), rgba(255,255,255,0));
  transform: rotate(16deg) translateX(-160%);
  animation: playBtnSheen 3.2s ease-in-out infinite;
  pointer-events: none;
}
@keyframes playBtnSheen {
  0%, 62% { transform: rotate(16deg) translateX(-160%); }
  86%, 100% { transform: rotate(16deg) translateX(540%); }
}

/* ─── Jetons de mise : vrais jetons casino ─── */
.bet-chip {
  width: 38px; height: 38px;
  border: 2px dashed rgba(255,255,255,0.85);
  outline: 3px solid #0A8A48;
  outline-offset: -5px;
  background: radial-gradient(circle at 32% 30%, #4DFFAA, #00DC6E 52%, #067A40 100%);
  color: #03140B; font-size: 12px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.5), 0 0 12px rgba(0,220,110,0.30);
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.bet-chip:hover {
  transform: translateY(-3px) rotate(-6deg) scale(1.07);
  box-shadow: 0 8px 16px rgba(0,0,0,0.55), 0 0 18px rgba(0,255,140,0.45);
}
.bet-chip:active { transform: translateY(0) scale(0.96); }

/* ─── Pulse du solde au gain ─── */
.balance-pulse { animation: balancePulse 0.9s cubic-bezier(0.22, 1.4, 0.36, 1); }
@keyframes balancePulse {
  0% { transform: scale(1); }
  28% { transform: scale(1.22); color: var(--gold-true); text-shadow: 0 0 18px var(--gold-true-glow); }
  100% { transform: scale(1); }
}

/* ─── Célébration de gain ─── */
.game-win-fx {
  position: absolute; inset: 0; z-index: 700;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; pointer-events: none;
}
.game-win-fx .game-win-amount {
  font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 64px;
  color: var(--gold-true);
  text-shadow: 0 0 26px var(--gold-true-glow), 0 4px 14px rgba(0,0,0,0.6);
  animation: winAmountIn 1.5s cubic-bezier(0.18, 1.25, 0.4, 1) both;
}
.game-win-fx.big .game-win-amount { font-size: 86px; }
.game-win-fx .game-win-mult {
  font-family: 'Share Tech Mono', monospace; font-size: 20px; color: var(--gold);
  text-shadow: 0 0 14px var(--gold-glow-strong);
  animation: winAmountIn 1.5s 0.08s cubic-bezier(0.18, 1.25, 0.4, 1) both;
}
.game-win-fx .game-win-banner {
  font-family: 'Rajdhani', sans-serif; font-weight: 800; font-size: 30px; letter-spacing: 10px;
  color: #FFE9A8;
  padding: 6px 26px; border: 1px solid rgba(255,201,60,0.6); border-radius: 999px;
  background: linear-gradient(135deg, rgba(255,201,60,0.22), rgba(0,0,0,0.4));
  text-shadow: 0 0 22px rgba(255,201,60,0.8);
  box-shadow: 0 0 40px rgba(255,201,60,0.25);
  animation: bigWinBanner 2s cubic-bezier(0.18, 1.3, 0.36, 1) both;
}
@keyframes winAmountIn {
  0% { opacity: 0; transform: translateY(34px) scale(0.6); }
  18% { opacity: 1; transform: translateY(0) scale(1.12); }
  30% { transform: scale(1); }
  82% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(-26px); }
}
@keyframes bigWinBanner {
  0% { opacity: 0; transform: scale(2.4); filter: blur(6px); }
  22% { opacity: 1; transform: scale(1); filter: blur(0); }
  84% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.05); }
}
.game-win-coins { position: absolute; left: 50%; top: 58%; }
.game-win-coin {
  position: absolute; width: 13px; height: 13px; border-radius: 50%;
  background: radial-gradient(circle at 32% 30%, #FFF3C4, #FFC93C 55%, #9A6E0E 100%);
  box-shadow: 0 0 8px rgba(255,201,60,0.7);
  transform: scale(var(--cs, 1));
  animation: coinBurst 1.35s var(--cd, 0s) cubic-bezier(0.16, 0.7, 0.45, 1) both;
}
@keyframes coinBurst {
  0% { opacity: 0; transform: translate(0, 0) scale(var(--cs)); }
  10% { opacity: 1; }
  60% { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--cx), var(--cy)) scale(calc(var(--cs) * 0.7)) rotate(160deg); }
}

/* ─── Mines : reveal animé ─── */
.mine-cell { position: relative; box-shadow: inset 0 -3px 0 rgba(0,0,0,0.35); }
.mine-cell:active:not(.revealed) { transform: scale(0.94); }
.mine-cell.revealed { animation: mineFlip 0.32s ease; box-shadow: none; }
.mine-cell.revealed.safe {
  background: radial-gradient(circle at 50% 40%, rgba(0,230,118,0.22), rgba(0,230,118,0.06) 75%);
  box-shadow: 0 0 14px rgba(0,220,110,0.25);
}
.mine-cell.revealed.mine {
  background: radial-gradient(circle at 50% 40%, rgba(255,92,110,0.3), rgba(255,92,110,0.08) 75%);
  border-color: var(--red);
  animation: mineBoom 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97);
}
@keyframes mineFlip {
  0% { transform: rotateY(90deg) scale(0.85); }
  100% { transform: rotateY(0) scale(1); }
}
@keyframes mineBoom {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-5px) rotate(-3deg); }
  40% { transform: translateX(5px) rotate(3deg); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(3px); }
}

/* ─── Keno : tirage vivant ─── */
.keno-num { transition: transform 0.14s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.keno-num:active { transform: scale(0.92); }
.keno-num.selected {
  box-shadow: 0 0 12px rgba(0,220,110,0.35), inset 0 0 0 1px rgba(0,255,140,0.4);
}
.keno-num.drawn { animation: kenoDrawn 0.3s ease; opacity: 0.85; }
.keno-num.hit {
  background: linear-gradient(160deg, rgba(255,201,60,0.30), rgba(255,201,60,0.10));
  border-color: var(--gold-true); color: #FFE9A8;
  box-shadow: 0 0 16px rgba(255,201,60,0.45);
  animation: kenoHit 0.5s cubic-bezier(0.2, 1.4, 0.4, 1);
}
@keyframes kenoDrawn { 0% { transform: scale(1.18); } 100% { transform: scale(1); } }
@keyframes kenoHit {
  0% { transform: scale(0.8) rotate(-6deg); }
  55% { transform: scale(1.18) rotate(3deg); }
  100% { transform: scale(1) rotate(0); }
}

/* ─── Accessibilité : réduction des animations ─── */
@media (prefers-reduced-motion: reduce) {
  .game-card::after, .game-window .play-btn::after { animation: none; display: none; }
  .game-win-coin { display: none; }
  .mine-cell.revealed, .keno-num.drawn, .keno-num.hit { animation: none; }
}


