/**
 * Holdem Românesc 1-8-1 — Casino-Grade Professional Table (PRO v3)
 *
 * Design philosophy:
 *   - Premium green felt cu spotlight green glow + leather/wood frame multi-layer
 *   - Casino chip aesthetic cu conic-gradient pattern pe bid buttons
 *   - Cinzel serif typography (autentic casino) + Oswald/Inter for stats
 *   - Avatar cu border gradient gold animat (rotating hue când e turn)
 *   - Active turn chevron ▲ indicator + active-pulse glow
 *   - Card backs cu gilt brown design + suit watermark
 *   - Score chips ca cazinou real cu dotted inner border + glow rim
 *   - 3D tilted played cards în trick
 *   - Felt emblem cu suit symbols decoration ♠♥♦♣
 */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@500;700;900&family=Cinzel:wght@600;800&family=Inter:wght@400;600;700;800&display=swap');

/* ═══ Font imports & vars ═══ */
/* FIX CRITIC TEME (2026-06-10): era `:root` → fiind încărcat DUPĂ holdem-pro.css, SUPRASCRIA
   variabilele TUTUROR temelor pe orice pagină (de-aia „temele nu schimbă nimic" / light spart).
   Acum token-urile identității dark a MESEI sunt scopate la subtree-ul jocului: masa rămâne
   premium dark pe ORICE temă (inclusiv light — standard la jocurile de cărți), iar temele
   controlează chrome-ul (lobby/panouri/modale/dock). #holdemScoreboardOverlay e montat pe body. */
#holdemRoot, #holdemScoreboardOverlay, .holdem-bid-area, .holdem-opp-tooltip {
    --holdem-felt-1: #1e6a3a;
    --holdem-felt-2: #14502b;
    --holdem-felt-3: #0a2d1a;
    --holdem-leather-1: #4a2c14;
    --holdem-leather-2: #6b3d1d;
    --holdem-leather-3: #8b5a2b;
    --holdem-gold: #ffd700;
    --holdem-gold-deep: #d97706;
    --holdem-gold-soft: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    --holdem-blue: #5b8def;
    --holdem-blue-deep: #1e3a8a;
    --holdem-green: #4ade80;
    --holdem-red: #dc2626;
    --holdem-bg: #0a0e1a;
    --holdem-surface: #1a2333;
    --holdem-surface-2: #242d3f;
    --holdem-text: #f1f5f9;
    --holdem-text-dim: #94a3b8;
    --holdem-gold-light: #ffeaa8;
    --holdem-gold-rgb: 255, 215, 0;
    --holdem-gold-deep-rgb: 217, 119, 6;
    --holdem-panel-rgb: 28, 35, 53;
    --holdem-deep-rgb: 12, 18, 32;
    --holdem-text-mid: #cbd5e1;
    --holdem-text-strong: #fff;
    color: var(--holdem-text);
}
/* ── MASA sub tema LIGHT (cerere user: „masa să respecte light") — skin luminos:
   panouri albe, text închis, auriu royal închis (lizibil pe alb). Feltul rămâne colorat
   (ca mesele reale în cameră luminoasă). Dark/celelalte teme = identice (fallback-uri). ── */
[data-theme="light"] #holdemRoot,
[data-theme="light"] #holdemScoreboardOverlay,
[data-theme="light"] .holdem-bid-area,
[data-theme="light"] .holdem-opp-tooltip {
    --holdem-gold: #a07408;
    --holdem-gold-light: #c29010;
    --holdem-gold-deep: #7c5a06;
    --holdem-gold-soft: rgba(160, 116, 8, 0.35);
    --holdem-gold-rgb: 160, 116, 8;
    --holdem-gold-deep-rgb: 124, 90, 6;
    --holdem-panel-rgb: 255, 255, 255;
    --holdem-deep-rgb: 238, 241, 247;
    --holdem-bg: #eef1f6;
    --holdem-surface: #ffffff;
    --holdem-surface-2: #f3f5fa;
    --holdem-text: #1a2335;
    --holdem-text-mid: #33415e;
    --holdem-text-dim: #5a6a8a;
    --holdem-text-strong: #1a2335;
    --holdem-blue: #2f5fc4;
    color: var(--holdem-text);
}
/* Cerneala CĂRȚILOR — NICIODATĂ tematizată (carte albă + cerneală roșie/neagră, obiect fizic).
   `--card-color` vine inline din JS per culoare; !important blochează orice override de temă. */
.holdem-card { color: var(--card-color, #0f172a) !important; }

/* ═══ HIDE LOBBY ADS + Remi residue când suntem în joc ═══ */
body.holdem-game-active #lobbyAdLeft,
body.holdem-game-active #lobbyAdRight,
body.holdem-game-active .lobby-ad,
body.holdem-game-active #scoreLabelPlayer,
body.holdem-game-active #scoreLabelPlayerShort,
body.holdem-game-active #scoreLabelOpponent,
body.holdem-game-active #scoreLabelOpponentShort {
    display: none !important;
}

/* GamePlayView — absolute în .game-area (sub header, deasupra footer) */
.game-area {
    position: relative !important;
}

#gamePlayView.holdem-active {
    display: block !important;
    visibility: visible !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    /* height 100% (NU auto) — altfel root grid content (554px) depășește
       gameArea (498px) și player-area iese sub viewport (cărți tăiate la reconnect) */
    height: 100% !important;
    max-height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    background: var(--holdem-bg) !important;
    overflow: hidden !important;
    z-index: 5;
}

/* ═══ Root grid layout (compact — felt mare, bottom mic ca Macao) ═══ */
.holdem-root {
    position: absolute;
    inset: 0;
    height: 100%;
    max-height: 100%;
    display: grid;
    grid-template-rows: minmax(0, 1fr) 132px;
    grid-template-columns: 1fr 240px;
    grid-template-areas:
        "felt   sidebar"
        "bottom sidebar";
    background:
        radial-gradient(ellipse at top left, rgba(91, 141, 239, 0.06), transparent 50%),
        radial-gradient(ellipse at bottom right, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.05), transparent 50%),
        var(--holdem-bg);
    color: var(--holdem-text);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    overflow: hidden;
    user-select: none;
}

/* ═══════════════════════════════════════════════
   STATUS BAR (top)
   ═══════════════════════════════════════════════ */
.holdem-statusbar {
    /* FIX BUG #1 CSS (audit): grid-area:topbar inexistent (grid root are doar `felt` + `bottom`).
       Plasa elementul în slot fantomă → overlap în streamer mode. Eliminat — statusbar e
       oricum display:none normal, doar streamer mode îl arată via override explicit. */
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 24px;
    padding: 0 20px;
    background:
        linear-gradient(180deg, rgba(28, 22, 8, 0.98) 0%, rgba(20, 28, 48, 0.96) 100%);
    border-bottom: 2px solid;
    border-image: linear-gradient(90deg, transparent, var(--holdem-gold), transparent) 1;
    box-shadow:
        0 4px 24px rgba(0, 0, 0, 0.6),
        inset 0 -1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(20px);
    z-index: 10;
}

.holdem-status-group {
    display: flex;
    align-items: center;
    gap: 12px;
}

.holdem-status-center {
    justify-content: center;
}

/* ── ATU pill ── */
.holdem-atu-pill {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    background:
        linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.32) 0%, rgba(184, 134, 11, 0.25) 100%),
        radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.2) 0%, transparent 50%);
    border: 2px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.7);
    border-radius: 24px;
    box-shadow:
        0 0 28px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3);
    position: relative;
}

.holdem-atu-pill::before {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 24px;
    padding: 1px;
    background: linear-gradient(135deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.8), rgba(var(--holdem-gold-deep-rgb, 217, 119, 6), 0.4), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.8));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.holdem-atu-pill.no-atu {
    background: rgba(100, 100, 100, 0.18);
    border-color: rgba(150, 150, 150, 0.3);
    box-shadow: none;
}

.holdem-atu-pill.no-atu::before {
    display: none;
}

.holdem-atu-text {
    font-size: 10px;
    color: #ffec80;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 900;
    font-family: 'Cinzel', 'Oswald', serif;
    text-shadow: 0 0 8px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6);
}

.holdem-atu-symbol {
    font-size: 20px;
    line-height: 1;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.8));
    font-weight: 700;
}

.holdem-atu-card {
    padding: 3px 9px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.1) 100%);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 6px;
    font-size: 13px;
    color: var(--holdem-text-strong, #fff);
    font-weight: 800;
    font-family: 'Cinzel', 'Bebas Neue', serif;
    letter-spacing: 0.5px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

/* ── Round pill ── */
.holdem-round-pill {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    background:
        linear-gradient(135deg, rgba(91, 141, 239, 0.18), rgba(91, 141, 239, 0.08));
    border: 1.5px solid rgba(91, 141, 239, 0.45);
    border-radius: 24px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        inset 0 -1px 0 rgba(0, 0, 0, 0.2);
}

.holdem-round-icon {
    font-size: 14px;
    filter: drop-shadow(0 0 4px rgba(91, 141, 239, 0.6));
}

.holdem-round-text {
    font-size: 13px;
    color: var(--holdem-text-mid, #cbd5e1);
    font-weight: 700;
    letter-spacing: 0.3px;
}

/* ── Timer pill ── */
.holdem-timer-pill {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    background: rgba(0, 0, 0, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 24px;
    min-width: 88px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3);
    transition: background 0.3s, border-color 0.3s, box-shadow 0.3s;
}
.holdem-timer-pill.warning {
    background: rgba(180, 120, 0, 0.32);
    border-color: rgba(255, 190, 60, 0.55);
}
.holdem-timer-pill.warning .holdem-timer-text { color: #ffd27a; }
.holdem-timer-pill.danger {
    background: rgba(190, 30, 30, 0.38);
    border-color: rgba(255, 80, 80, 0.7);
    box-shadow: 0 0 14px rgba(255, 60, 60, 0.45);
    animation: holdem-timer-pulse 0.9s ease-in-out infinite;
}
.holdem-timer-pill.danger .holdem-timer-text { color: #ff8a8a; }
@keyframes holdem-timer-pulse {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.06); }
}

.holdem-timer-icon { font-size: 14px; }
.holdem-timer-text {
    font-size: 13px;
    color: var(--holdem-text-mid, #cbd5e1);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
}

/* ── Turn indicator ── */
.holdem-turn-mine {
    color: var(--holdem-green);
    font-weight: 800;
    font-size: 15px;
    padding: 9px 22px;
    background:
        linear-gradient(135deg, rgba(74, 222, 128, 0.2), rgba(34, 197, 94, 0.1));
    border: 1.5px solid rgba(74, 222, 128, 0.5);
    border-radius: 22px;
    text-shadow: 0 0 16px rgba(74, 222, 128, 0.8);
    box-shadow:
        0 0 30px rgba(74, 222, 128, 0.45),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
    animation: holdem-pulse-mine 1.5s ease-in-out infinite;
    letter-spacing: 0.3px;
}

.holdem-turn-other {
    color: var(--holdem-text-mid, #cbd5e1);
    font-size: 14px;
    font-weight: 600;
    padding: 9px 22px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 22px;
}

.holdem-turn-info {
    color: var(--holdem-gold);
    font-size: 14px;
    font-weight: 800;
    padding: 9px 22px;
    background:
        linear-gradient(135deg, rgba(251, 191, 36, 0.14), rgba(var(--holdem-gold-deep-rgb, 217, 119, 6), 0.08));
    border: 1px solid rgba(251, 191, 36, 0.35);
    border-radius: 22px;
    text-shadow: 0 0 12px rgba(251, 191, 36, 0.5);
}

@keyframes holdem-pulse-mine {
    0%, 100% {
        box-shadow: 0 0 24px rgba(74, 222, 128, 0.5);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 44px rgba(74, 222, 128, 0.95);
        transform: scale(1.02);
    }
}

/* ═══════════════════════════════════════════════
   TABLE AREA = FELT (background, NOT a separate div)
   ═══════════════════════════════════════════════ */
.holdem-table-area {
    grid-area: felt;
    position: relative;
    perspective: 1100px;            /* 3D pt. panoul de licitare care "iese din masă" */
    perspective-origin: 50% 55%;
    margin: 6px 0 0 6px;
    border-radius: 14px;
    background:
        radial-gradient(ellipse 65% 50% at 50% 50%, rgba(74, 222, 128, 0.08) 0%, transparent 65%),
        radial-gradient(ellipse 85% 80% at 50% 50%, #1e7e3a 0%, #155728 50%, #0a3017 100%),
        repeating-linear-gradient(0deg, transparent 0 1px, rgba(0, 0, 0, 0.02) 1px 2px),
        repeating-linear-gradient(90deg, transparent 0 1px, rgba(255, 255, 255, 0.01) 1px 2px);
    overflow: hidden;
    box-shadow:
        inset 0 0 100px rgba(0, 0, 0, 0.7),
        inset 0 0 0 2px #2a1810,
        inset 0 0 0 4px #5a3520,
        inset 0 0 0 8px #3a2010,
        inset 0 0 0 10px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4),
        inset 0 0 0 11px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15),
        0 0 32px rgba(0, 0, 0, 0.7),
        0 8px 24px rgba(0, 0, 0, 0.5);
}

/* TODO #4 — FELT COMPACT + CENTRAT pe ecrane MARI și ÎNALTE.
   Feltul umple celula grid (1fr), deci pe ecrane f. late (≥1700) devenea ~1438px lat
   (scaune împrăștiate + gol verde mare), iar pe portret înalt (ex. iPad Pro 1024×1366)
   ~1040px înalt (scaune + cărți jucate împrăștiate vertical). Plafonat la 1180×820 +
   `margin:auto` → masă compactă, încadrată, centrată în celulă pe ORICE ecran. Sub plafon
   (≲1200 lat / ≲820 înalt) umple normal → 1024×768 și 1366×768 rămân NESCHIMBATE.
   Scopat 901+ (mobilul ≤900 are layout-ul lui). Verificat: 1024×768/1366×768 neschimbat,
   1920/2560/3440 compact, 1024×1366 portret înălțime 1040→820. */
@media (min-width: 901px) {
    .holdem-table-area {
        width: 100%;
        height: 100%;
        max-width: var(--ds-table-max-w);
        max-height: var(--ds-table-max-h);
        margin: auto;
    }
    /* lemn wsw/ese seat positions — desktop ≥901 */
    body[data-holdem-theme="lemn"] .holdem-opp-wsw { left: 22px; top: 64%; }
    body[data-holdem-theme="lemn"] .holdem-opp-ese { right: 22px; top: 64%; }
    /* .holdem-my-played-card desktop position — centrat pe axa Y a feltului.
       Scopat 901+ ca să NU schimbe poziția mobilă (≤900) deja optimizată. Verificat 1024×768 + 1024×1366. */
    .holdem-my-played-card {
        top: 50%;
        bottom: auto;
        transform: translate(-50%, calc(-50% + 64px));
    }
}

.holdem-table-area::after {
    content: '';
    position: absolute;
    inset: 12px;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.02) 0%, transparent 8%),
        radial-gradient(circle at 80% 60%, rgba(255, 255, 255, 0.02) 0%, transparent 8%),
        radial-gradient(circle at 50% 80%, rgba(0, 0, 0, 0.04) 0%, transparent 10%);
    pointer-events: none;
    z-index: 0;
}

/* Wooden/leather frame border (faux 3D inset) */
.holdem-table-area::before {
    content: '';
    position: absolute;
    inset: 12px;
    border-radius: 8px;
    background:
        linear-gradient(135deg,
            transparent 0%,
            rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.05) 50%,
            transparent 100%);
    pointer-events: none;
    z-index: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   LOGO „HOLDEM ROMÂNESC" în mijlocul mesei (cerere user — testat + confirmat)
   Suit symbols ♥♠ deasupra + ♣♦ jos, text cu gradient metalic auriu,
   opacity 0.14 — subtil ca să NU distragă de la cărți (z-index 1).
   ═══════════════════════════════════════════════════════════════════════════ */
.holdem-felt-watermark {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    pointer-events: none;
    user-select: none;
    width: auto;
    height: auto;
    opacity: 0.14;
    text-align: center;
}
.holdem-felt-watermark .logo-title {
    font-family: 'Cinzel', 'Times New Roman', serif;
    font-size: 84px;
    font-weight: 900;
    letter-spacing: 14px;
    line-height: 0.9;
    margin: 0;
    padding-left: 14px;
    /* Foil auriu animat — ca .brand din masa-rosie.html */
    background: linear-gradient(92deg, rgba(214,170,70,.55) 0%, rgba(255,244,206,.92) 30%, rgba(255,215,0,.82) 46%, rgba(214,170,70,.55) 60%, rgba(214,170,70,.55) 100%);
    background-size: 230% 100%;
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--holdem-gold, #ffd700);
    animation: holdemEmblemFoil 5.5s linear infinite;
    text-shadow:
        0 2px 0 rgba(0, 0, 0, 0.45),
        0 4px 12px rgba(0, 0, 0, 0.55),
        0 0 24px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
}
.holdem-felt-watermark .logo-subtitle {
    font-family: 'Cinzel', 'Times New Roman', serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 10px;
    color: var(--holdem-gold, #ffd700);
    padding-left: 10px;
    margin: 0;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
}
.holdem-felt-watermark .logo-suit-row {
    display: flex;
    gap: 28px;
}
.holdem-felt-watermark .logo-suit {
    font-size: 22px;
    line-height: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.holdem-felt-watermark .logo-suit.red   { color: #ef4444; }
.holdem-felt-watermark .logo-suit.black { color: #1e293b; }
/* 4 culori → gap mai mic */
.holdem-felt-watermark .logo-suit-row { gap: 16px; }

/* Foil keyframes — ca @keyframes foil din masa-rosie.html */
@keyframes holdemEmblemFoil {
    0%   { background-position: 130% 0 }
    100% { background-position: -30% 0 }
}
/* ERING — cerc auriu subtil în jurul siglei, ca .ering din masa-rosie.html */
.holdem-felt-watermark::before {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: clamp(150px, 15vw, 210px);
    height: clamp(150px, 15vw, 210px);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 2px solid rgba(233, 196, 90, 0.22);
    box-shadow: inset 0 0 0 5px rgba(233, 196, 90, 0.06), inset 0 0 22px rgba(0, 0, 0, 0.3);
    pointer-events: none;
}
/* SPADE icon mare deasupra textului, ca .spade din masa-rosie.html */
.holdem-felt-watermark .logo-spade {
    font-size: clamp(32px, 5.5vw, 58px);
    line-height: 0.78;
    color: rgba(233, 196, 90, 0.28);
    text-shadow: 0 2px 3px rgba(0, 0, 0, 0.5), 0 -1px 1px rgba(255, 255, 255, 0.14);
}
/* Lemn theme are deja ::after spade — ascundem dublura din HTML */
body[data-holdem-theme="lemn"] .holdem-felt-watermark .logo-spade { display: none !important; }

/* Auto-play INLINE în scaunul sudic (cerere user — era badge flotant aiurea pe felt).
   Apare lângă „Făcute X" cât timp ești AFK, cu punct auriu pulsator subtil. */
.holdem-my-auto {
    display: none;
    font-size: 9px;
    font-weight: 700;
    color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85);
    letter-spacing: 0.3px;
    text-transform: uppercase;
    margin-top: 2px;
    line-height: 1;
    white-space: nowrap;
}
.holdem-my-auto.visible { display: inline-block; }
.holdem-my-auto::before {
    content: '●';
    margin-right: 4px;
    color: var(--holdem-gold, #ffd700);
    text-shadow: 0 0 6px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6);
}
/* Vechiul badge flotant — ascuns mereu (înlocuit de inline) */
.holdem-auto-badge { display: none !important; }

/* DELAY animații — în timpul deal-ului, cărțile sunt ascunse ca să nu se vadă în paralel
   cu zborul "fly" din talon. Apar prin fresh-deal după ce zborul s-a terminat. */
.holdem-root.holdem-dealing #holdemMyHand .holdem-card,
.holdem-root.holdem-dealing .holdem-card-back {
    opacity: 0;
    pointer-events: none;
    transition: none;
}

/* ═══════════════════════════════════════════════
   OPPONENT SEATS — position:absolute peste felt
   ═══════════════════════════════════════════════ */
.holdem-opponent {
    position: absolute;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Seat positions — relative to .holdem-table-area */
.holdem-opp-north {
    top: 14px;
    left: 50%;
    transform: translateX(-50%);
}
.holdem-opp-east {
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
}
.holdem-opp-west {
    top: 50%;
    left: 14px;
    transform: translateY(-50%);
}
.holdem-opp-ne {
    top: 14px;
    right: 22%;
}
.holdem-opp-nw {
    top: 14px;
    left: 22%;
}
/* v15: poziții pentru mesele FULL RING 7-9 (poker) — lateral-jos + extra în rândul de sus.
   east/west rămân la mijloc; ese/wsw stau mai jos pe laterale; nne între north și ne. */
.holdem-opp-ese {
    top: 74%;
    right: 14px;
    transform: translateY(-50%);
}
.holdem-opp-wsw {
    top: 74%;
    left: 14px;
    transform: translateY(-50%);
}
.holdem-opp-nne {
    top: 14px;
    right: 36%;
}

/* Opponent CARD (premium pro design) */
.holdem-opp-card {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 11px;
    background:
        linear-gradient(135deg, rgba(var(--holdem-panel-rgb, 28, 35, 53), 0.97) 0%, rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.97) 100%);
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.35);
    border-radius: 12px;
    backdrop-filter: blur(24px);
    box-shadow:
        0 8px 22px rgba(0, 0, 0, 0.7),
        inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.2),
        inset 0 -1px 0 rgba(0, 0, 0, 0.5);
    width: 168px;
    position: relative;
    transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* FIX BUG #2 CSS (audit): primul ::before (linie aurie decorativă sus) era OVERRIDE-uit silent
   de al doilea ::before (gradient mask border). Mutat în ::after dedicat ca linia aurie să apară. */
.holdem-opp-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 11px;
    right: 11px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5), transparent);
    pointer-events: none;
}

.holdem-opp-card::before {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15), transparent 30%, transparent 70%, rgba(91, 141, 239, 0.15));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    padding: 1px;
    pointer-events: none;
}

/* Active turn — STATIC glow (era pulse care făcea pucks să "vibreze" vizual) */
.holdem-opponent.current-turn .holdem-opp-card {
    border-color: rgba(74, 222, 128, 0.85);
    box-shadow:
        0 0 22px rgba(74, 222, 128, 0.45),
        0 8px 22px rgba(0, 0, 0, 0.6),
        inset 0 1px 0 rgba(74, 222, 128, 0.2);
    /* fără animation — bordura verde + glow static = clar cine joacă, fără mișcare */
}

/* Active turn chevron — subtle elegant */
.holdem-opponent.current-turn::after {
    content: '\25B2';  /* ▲ */
    position: absolute;
    color: #4ade80;
    font-size: 12px;
    text-shadow: 0 0 8px rgba(74, 222, 128, 0.8);
    animation: holdem-chevron-bounce 1s ease-in-out infinite;
    pointer-events: none;
}

.holdem-opp-north.current-turn::after { bottom: -22px; left: 50%; transform: translateX(-50%); }
.holdem-opp-east.current-turn::after { left: -22px; top: 50%; transform: translateY(-50%) rotate(-90deg); }
.holdem-opp-west.current-turn::after { right: -22px; top: 50%; transform: translateY(-50%) rotate(90deg); }
.holdem-opp-ne.current-turn::after { bottom: -22px; left: 50%; transform: translateX(-50%); }
.holdem-opp-nw.current-turn::after { bottom: -22px; left: 50%; transform: translateX(-50%); }

@keyframes holdem-chevron-bounce {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

/* Avatar */
.holdem-opp-avatar {
    position: relative;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 2.5px solid transparent;
    background:
        linear-gradient(135deg, var(--holdem-blue), var(--holdem-blue-deep)) padding-box,
        linear-gradient(135deg, var(--holdem-gold), #b8860b, var(--holdem-gold)) border-box;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.8),
        inset 0 1px 4px rgba(255, 255, 255, 0.2);
}

.holdem-opponent.current-turn .holdem-opp-avatar {
    background:
        linear-gradient(135deg, var(--holdem-blue), var(--holdem-blue-deep)) padding-box,
        linear-gradient(135deg, #4ade80, #22c55e) border-box;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.8),
        0 0 16px rgba(74, 222, 128, 0.5),
        inset 0 1px 4px rgba(255, 255, 255, 0.2);
}

.holdem-opp-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.holdem-opp-avatar .avatar-initial {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--holdem-text-strong, #fff);
    font-size: 18px;
    font-weight: 800;
    font-family: 'Cinzel', 'Oswald', serif;
    background: linear-gradient(180deg, #5b8def 0%, #1e3a8a 100%);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.holdem-dealer-badge {
    position: absolute;
    top: -3px;
    right: -3px;
    width: 18px;
    height: 18px;
    background:
        radial-gradient(circle at 35% 35%, #fff8dc 0%, var(--holdem-gold) 40%, var(--holdem-gold-deep) 100%);
    color: #0f172a;
    font-size: 12px;
    font-weight: 900;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--holdem-bg);
    box-shadow:
        0 2px 8px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.8),
        inset 0 1px 2px rgba(255, 255, 255, 0.6);
    font-family: 'Oswald', 'Bebas Neue', sans-serif;
}

.holdem-opp-meta {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.holdem-opp-name {
    font-family: 'Cinzel', 'Oswald', serif;
    font-size: 11.5px;
    font-weight: 700;
    color: var(--holdem-text-strong, #fff);
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: 0.15px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
    line-height: 1;
}

.holdem-opp-stats {
    display: flex;
    gap: 3px;
    font-size: 9.5px;
    color: rgba(255, 255, 255, 0.95);
    flex-wrap: nowrap;
}

.holdem-opp-stats span {
    padding: 2px 5px;
    background:
        linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.12) 0%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.4) 100%);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.18);
    border-radius: 4px;
    white-space: nowrap;
    font-weight: 600;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.holdem-opp-stats b {
    color: var(--holdem-gold);
    font-weight: 900;
    margin-left: 1px;
    font-family: 'Cinzel', 'Oswald', serif;
    font-size: 10.5px;
    text-shadow: 0 0 6px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5);
}

/* Score chip (casino-style cu rim glow — compact 34px) */
.holdem-opp-score {
    padding: 0;
    background:
        radial-gradient(circle at 30% 30%, #a7f3d0 0%, #4ade80 35%, #15803d 100%);
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    color: #052e13;
    font-weight: 900;
    font-size: 13px;
    width: 34px;
    height: 34px;
    min-width: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow:
        0 0 16px rgba(74, 222, 128, 0.6),
        0 3px 8px rgba(0, 0, 0, 0.6),
        inset 0 2px 4px rgba(255, 255, 255, 0.5),
        inset 0 -2px 4px rgba(0, 0, 0, 0.3);
    font-family: 'Cinzel', 'Oswald', serif;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
    position: relative;
}

.holdem-opp-score::before {
    content: '';
    position: absolute;
    inset: 2px;
    border-radius: 50%;
    border: 1.5px dotted rgba(255, 255, 255, 0.4);
    pointer-events: none;
}

/* Face-down cards (LIPITE de panel — sub avatar) */
.holdem-opp-back-hand {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-2px);
    display: flex;
    gap: 0;
    height: 22px;
    align-items: center;
    justify-content: center;
    z-index: 3;
}

.holdem-card-back {
    width: 18px;
    height: 26px;
    background:
        repeating-linear-gradient(45deg, #4a2c14 0, #4a2c14 2px, #6b3d1d 2px, #6b3d1d 4px),
        radial-gradient(circle at 50% 50%, #8b5a2b 0%, #3a2010 100%);
    background-blend-mode: multiply;
    border: 1px solid #2a1810;
    border-radius: 3px;
    box-shadow:
        0 1px 3px rgba(0, 0, 0, 0.7),
        inset 0 0 0 1px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
    margin-left: -9px;
    transform: none;          /* DREPTE — rând curat de spate-uri, fără înclinare strâmbă */
    flex-shrink: 0;
    position: relative;
}

.holdem-card-back::after {
    content: '\2663';  /* ♣ */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    font-size: 8px;
    pointer-events: none;
}

.holdem-card-back:first-child {
    margin-left: 0;
}

/* ═══════════════════════════════════════════════
   TALON / DECK — pachet vizibil la împărțire + ATU
   ═══════════════════════════════════════════════ */
.holdem-deck {
    position: absolute;
    /* Colțul JOS-dreapta al feltului (cerere user): sus se suprapunea cu scaunele nord/nw,
       mai ales pe mobil. Jos-dreapta e liber: south e centru-jos, east e mijloc-dreapta,
       iar butonul immersive (⛶) e pe stânga-jos → jos-dreapta evită orice suprapunere. */
    top: auto;
    bottom: 16px;
    right: 18px;
    left: auto;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 12px;
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    pointer-events: none;
}
.holdem-deck.visible {
    opacity: 1;
    transform: scale(1);
}
.holdem-deck-stack {
    position: relative;
    width: 44px;
    height: 62px;
    flex-shrink: 0;
}
.holdem-deck-card {
    position: absolute;
    top: 0;
    left: 0;
    width: 44px;
    height: 62px;
    border-radius: 6px;
    background:
        repeating-linear-gradient(45deg, #4a2c14 0, #4a2c14 3px, #6b3d1d 3px, #6b3d1d 6px),
        radial-gradient(circle at 50% 40%, #8b5a2b 0%, #3a2010 100%);
    background-blend-mode: multiply;
    border: 1px solid #2a1810;
    box-shadow: 0 2px 7px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
}
.holdem-deck-card::after {
    content: '\2663';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45);
    font-size: 16px;
}
/* Teanc DREPT — doar offset 3D, fără rotație strâmbă (pachet profesional, aliniat) */
.holdem-deck-card:nth-child(1) { transform: translate(0, 0); }
.holdem-deck-card:nth-child(2) { transform: translate(1.5px, 1.5px); }
.holdem-deck-card:nth-child(3) { transform: translate(3px, 3px); }
.holdem-deck-card:nth-child(4) { transform: translate(4.5px, 4.5px); }
.holdem-deck-card:nth-child(5) { transform: translate(6px, 6px); }
/* ATU — cartea de bază, face-up, lângă talon */
.holdem-deck-atu {
    width: 34px;
    height: 48px;
    border-radius: 6px;
    background: linear-gradient(180deg, #ffffff 0%, #eef1f5 100%);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.65);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.55), 0 0 14px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    position: relative;
    flex-shrink: 0;
}
.holdem-deck-atu:empty { display: none; }

/* Badge auriu cu nr cărți rămase în pachet (cerere user — „cartile in pachet nu sunt numerotate") */
.holdem-deck-count {
    position: absolute;
    top: -8px;
    right: -8px;
    z-index: 4;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--holdem-gold, #ffd700) 0%, #b8860b 100%);
    color: #1a1a1a;
    font: 800 11px/1 'Cinzel', 'Bebas Neue', system-ui, sans-serif;
    letter-spacing: 0.3px;
    border: 1.5px solid rgba(0, 0, 0, 0.4);
    box-shadow:
        0 2px 6px rgba(0, 0, 0, 0.55),
        inset 0 1px 0 rgba(255, 255, 255, 0.5),
        inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35);
    pointer-events: none;
}
.holdem-deck-count:empty { display: none; }

/* ═══════════════════════════════════════════════════════════
   HoldemReconnect — overlay de reconectare + buton refresh în dock
   ═══════════════════════════════════════════════════════════ */
.holdem-reconnect-overlay {
    position: fixed; inset: 0;
    background: rgba(8, 6, 18, 0.78);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    z-index: 99000;
    display: none;
    align-items: center; justify-content: center;
    opacity: 0;
    transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.holdem-reconnect-overlay.active { display: flex; opacity: 1; }

.holdem-reconnect-card {
    background:
        linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.05) 0%, transparent 50%),
        linear-gradient(135deg, rgba(36, 21, 66, 0.96) 0%, rgba(20, 12, 38, 0.97) 100%);
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45);
    border-radius: 18px;
    padding: 28px 36px;
    min-width: 240px;
    display: flex; flex-direction: column; align-items: center; gap: 14px;
    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.7),
        inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.18),
        0 0 40px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.12);
    color: #fff7e0;
    font-family: 'Inter', 'Cinzel', system-ui, sans-serif;
}
@keyframes holdem-reconnect-spin {
    to { transform: rotate(360deg); }
}
.holdem-reconnect-spinner {
    width: 48px; height: 48px;
    border: 3.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15);
    border-top-color: var(--holdem-gold, var(--holdem-gold, #ffd700));
    border-right-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45);
    border-radius: 50%;
    animation: holdem-reconnect-spin 0.9s linear infinite;
    box-shadow: 0 0 24px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.35);
}
.holdem-reconnect-title {
    font: 800 16px/1.2 'Cinzel', serif;
    color: var(--holdem-gold, var(--holdem-gold, #ffd700));
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}
.holdem-reconnect-sub {
    font-size: 12px;
    opacity: 0.78;
    letter-spacing: 0.3px;
}

/* Buton 🔄 refresh — anim subtil pe hover/click */
.holdem-dock-btn.holdem-dock-refresh {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.2s;
}
.holdem-dock-btn.holdem-dock-refresh:hover {
    transform: rotate(180deg);
    background: linear-gradient(135deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.25), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.08));
}
.holdem-dock-btn.holdem-dock-refresh:active {
    transform: rotate(360deg) scale(0.92);
    transition: transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}
/* Animație puls când scad cărțile din pachet (cerere user — „animație când scad cărțile") */
@keyframes holdem-deck-count-tick {
    0%   { transform: scale(1);   filter: brightness(1); box-shadow: 0 2px 6px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.5); }
    35%  { transform: scale(1.4); filter: brightness(1.6); box-shadow: 0 4px 14px rgba(255,215,0,0.85), inset 0 1px 0 rgba(255,255,255,0.7), 0 0 18px rgba(255,215,0,0.9); }
    100% { transform: scale(1);   filter: brightness(1); box-shadow: 0 2px 6px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.5); }
}
.holdem-deck-count.tick-down {
    animation: holdem-deck-count-tick 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* La 0 cărți: badge fade-out elegant — scade + dispare */
@keyframes holdem-deck-count-empty {
    0%   { transform: scale(1);   opacity: 1; }
    50%  { transform: scale(1.3); opacity: 0.85; filter: brightness(1.4); }
    100% { transform: scale(0);   opacity: 0; }
}
.holdem-deck-count.empty-out {
    animation: holdem-deck-count-empty 0.45s ease-in forwards;
    pointer-events: none;
}

/* Puls verde-auriu „re-amestecat" — apare la începutul fiecărei runde când deck-ul
   se reumple (toate cărțile strânse + re-amestecate). Indică user-ului „cărți noi disponibile". */
@keyframes holdem-deck-count-shuffle {
    0%   { transform: scale(0.6); opacity: 0.4; background: linear-gradient(135deg, #4ade80 0%, #16a34a 100%); filter: brightness(1.2); }
    40%  { transform: scale(1.5); opacity: 1;   background: linear-gradient(135deg, var(--holdem-gold, #ffd700) 0%, #4ade80 100%); filter: brightness(1.6); box-shadow: 0 0 24px rgba(74, 222, 128, 0.85), 0 0 12px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.7); }
    100% { transform: scale(1);   opacity: 1;   background: linear-gradient(135deg, var(--holdem-gold, #ffd700) 0%, #b8860b 100%); filter: brightness(1); }
}
.holdem-deck-count.shuffle-up {
    animation: holdem-deck-count-shuffle 0.65s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.holdem-deck-atu::after {
    content: 'ATU';
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 7.5px;
    letter-spacing: 1.5px;
    color: var(--holdem-gold, #ffd700);
    font-weight: 800;
    font-family: 'Cinzel', serif;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
}

/* Carte-back care zboară din talon spre jucător la împărțire */
.holdem-deal-fly {
    position: fixed;
    width: 42px;
    height: 60px;
    border-radius: 6px;
    background:
        repeating-linear-gradient(45deg, #4a2c14 0, #4a2c14 3px, #6b3d1d 3px, #6b3d1d 6px),
        radial-gradient(circle at 50% 40%, #8b5a2b 0%, #3a2010 100%);
    background-blend-mode: multiply;
    border: 1px solid #2a1810;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
    z-index: 220;
    pointer-events: none;
    transform: translate(0, 0) scale(0.7) rotate(0deg);
    opacity: 0;
    animation: holdem-deal-fly-anim 0.42s cubic-bezier(0.33, 0, 0.2, 1) forwards;
}
/* Zbor elegant: cartea pleacă din talon, ține mărimea constant, apoi se TOPEȘTE
   în mâna jucătorului (fade-out la sosire) — fără rotații strâmbe, curat. */
@keyframes holdem-deal-fly-anim {
    0%   { transform: translate(0, 0) scale(0.7) rotate(0deg); opacity: 0; }
    14%  { opacity: 1; }
    78%  { opacity: 1; }
    100% { transform: translate(var(--dx, 0), var(--dy, 0)) scale(0.86) rotate(var(--dr, 0deg)); opacity: 0; }
}

/* Highlight pe jucătorul care PRIMEȘTE cartea (vezi cine ia cărțile) */
.holdem-receiving {
    animation: holdem-receive-pulse 0.42s ease;
}
/* DOAR glow auriu — fără scale/transform → scaunul NU se mai mișcă la împărțire */
@keyframes holdem-receive-pulse {
    0%, 100% { box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5); }
    50%      { box-shadow: 0 0 28px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.9), 0 8px 20px rgba(0, 0, 0, 0.5); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   DEAL ANIMATION — SIMPLĂ & ELEGANTĂ
   (cerere user: „animație simplă, fără bule, glow, ploaie — eleganță clasică")
   O singură carte (card back simplu) zboară în LINIE DREAPTĂ de la pachet la
   jucător. Ease-out smooth. Fade-out discret la sosire. FĂRĂ:
     - sparkle particles
     - glow trail
     - arc parabolic
     - impact ring
     - deck pulse
     - rotation/scale combos
   ═══════════════════════════════════════════════════════════════════════════ */

.holdem-deal-fly-simple {
    position: fixed;
    width: 38px;
    height: 52px;
    pointer-events: none;
    z-index: 220;
    border-radius: 5px;
    transform: translate(-50%, -50%);
    opacity: 0;
    /* card back simplu — gradient discret, fără sclipici */
    background: linear-gradient(135deg, #5a3a1f 0%, #3a2410 100%);
    border: 1px solid rgba(212, 175, 100, 0.45);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.45);
    animation: holdem-deal-fly-simple 0.42s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes holdem-deal-fly-simple {
    0%   { transform: translate(-50%, -50%); opacity: 0; }
    15%  { opacity: 1; }
    85%  { opacity: 1; }
    100% { transform: translate(calc(-50% + var(--dx, 0)), calc(-50% + var(--dy, 0))); opacity: 0; }
}

/* Legacy class-uri păstrate ca NO-OP pentru compat (dacă rămâne vreo referință în JS) */
.holdem-deck.holdem-deck-dealing,
.holdem-deal-sparkle,
.holdem-deal-fly-pro,
.holdem-deal-fly-card,
.holdem-deal-fly-glow,
.holdem-deal-impact-ring,
.holdem-receiving-pro {
    animation: none !important;
    display: none !important;
}

/* ═══════════════════════════════════════════════
   TRICK CENTER
   ═══════════════════════════════════════════════ */
.holdem-trick {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 44%;
    height: 44%;
    max-width: 380px;
    max-height: 240px;
    z-index: 2;
    pointer-events: none;
}

.holdem-trick-placeholder {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22);
    text-align: center;
}

.holdem-trick-placeholder-icon {
    font-size: 56px;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.5));
}

.holdem-trick-placeholder-text {
    font-family: 'Oswald', 'Bebas Neue', sans-serif;
    font-size: 11px;
    letter-spacing: 4px;
    text-transform: uppercase;
    font-weight: 600;
}

.holdem-trick-slot {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

/* OLD trick-from-* + keyframes holdem-fly-* REMOVED — folosim per-seat slots */

.holdem-trick-player-tag {
    padding: 3px 11px;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.82), rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.85));
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45);
    border-radius: 12px;
    font-size: 10px;
    color: var(--holdem-gold);
    font-weight: 800;
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

/* ═══════════════════════════════════════════════
   SIDEBAR (right column)
   ═══════════════════════════════════════════════ */
.holdem-sidebar {
    grid-area: sidebar;
    padding: 16px;
    background:
        linear-gradient(180deg, rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.95) 0%, rgba(28, 35, 51, 0.88) 100%);
    border-left: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.18);
    backdrop-filter: blur(20px);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
    z-index: 5;
    box-shadow: inset 4px 0 12px rgba(0, 0, 0, 0.3);
}

.holdem-sidebar::-webkit-scrollbar { width: 6px; }
.holdem-sidebar::-webkit-scrollbar-track { background: transparent; }
.holdem-sidebar::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--holdem-gold), var(--holdem-gold-deep));
    border-radius: 6px;
}

.holdem-sb-section {
    background:
        linear-gradient(135deg, rgba(36, 45, 63, 0.7) 0%, rgba(28, 35, 51, 0.5) 100%);
    border: 1px solid rgba(91, 141, 239, 0.18);
    border-radius: 14px;
    padding: 14px;
    box-shadow:
        0 4px 14px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    position: relative;
}

.holdem-sb-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 14px;
    right: 14px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4), transparent);
}

/* Sidebar acum se întinde pe ambele rânduri (până jos). Secțiunea ISTORIC (ultima)
   crește să umple restul → fără spațiu gol aiurea. Scoreboard rămâne la conținut. */
.holdem-sb-section:last-child {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.holdem-sb-section:last-child .holdem-sb-history {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0;
}

.holdem-sb-title {
    font-family: 'Oswald', 'Bebas Neue', sans-serif;
    font-size: 12px;
    color: var(--holdem-gold);
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 800;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22);
    display: flex;
    align-items: center;
    gap: 6px;
    text-shadow: 0 0 12px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
}

.holdem-sb-rows {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.holdem-sb-row {
    display: grid;
    grid-template-columns: 1fr auto 48px;
    align-items: center;
    gap: 8px;
    padding: 9px 11px;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.2));
    border: 1px solid rgba(255, 255, 255, 0.04);
    font-size: 12.5px;
    transition: all 0.22s;
}

.holdem-sb-row.current {
    background:
        linear-gradient(135deg, rgba(74, 222, 128, 0.18), rgba(34, 197, 94, 0.08));
    border-color: rgba(74, 222, 128, 0.45);
    box-shadow: 0 0 16px rgba(74, 222, 128, 0.25);
}

.holdem-sb-row.me {
    background:
        linear-gradient(135deg, rgba(91, 141, 239, 0.2), rgba(91, 141, 239, 0.08));
    border-color: rgba(91, 141, 239, 0.45);
}

.holdem-sb-row.me.current {
    background:
        linear-gradient(135deg, rgba(74, 222, 128, 0.2), rgba(91, 141, 239, 0.1));
    border-color: rgba(74, 222, 128, 0.5);
}

.holdem-sb-name {
    color: var(--holdem-text-strong, #fff);
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12.5px;
}

.holdem-sb-bt {
    color: var(--holdem-gold);
    font-weight: 800;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 11.5px;
    padding: 2px 7px;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 5px;
}

.holdem-sb-total {
    text-align: center;
    color: var(--holdem-green);
    font-weight: 900;
    font-size: 16px;
    font-family: 'Oswald', 'Bebas Neue', sans-serif;
    text-shadow: 0 0 10px rgba(74, 222, 128, 0.4);
}

.holdem-sb-history-empty {
    text-align: center;
    color: rgba(255, 255, 255, 0.32);
    font-style: italic;
    padding: 14px;
    font-size: 12px;
}

.holdem-sb-history-row {
    display: grid;
    grid-template-columns: 40px 36px 1fr;
    gap: 8px;
    padding: 7px 10px;
    background: rgba(0, 0, 0, 0.28);
    border-radius: 7px;
    margin-bottom: 5px;
    font-size: 11px;
    border: 1px solid rgba(255, 255, 255, 0.03);
}

.holdem-sb-history-r {
    color: var(--holdem-gold);
    font-weight: 900;
    font-family: 'Oswald', sans-serif;
    text-align: center;
}

.holdem-sb-history-cards { color: var(--holdem-text-dim, #94a3b8); text-align: center; }

.holdem-sb-history-scores {
    color: var(--holdem-green);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 700;
}

/* ═══════════════════════════════════════════════
   PLAYER AREA (south — me) — INCADRAT cu border auriu
   ═══════════════════════════════════════════════ */
/* Player area = info bar jos cu 3 zone: dock | mâna | my-info */
/* Bară de jos UNIFICATĂ: nu mai e grid full-width cu 3 insule rupte și goluri moarte.
   Acum e o bară CENTRATĂ care strânge conținutul (info + mână + dock una lângă alta) =
   totul "într-o bucată", compact și profesional. Felt-ul se vede în stânga/dreapta barei. */
.holdem-player-area {
    grid-area: bottom;
    margin: 6px 10px 7px 8px;
    padding: 8px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    background:
        linear-gradient(180deg, rgba(20, 28, 48, 0.98) 0%, rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.95) 100%);
    border: 2px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.32);
    border-radius: 14px;
    backdrop-filter: blur(20px);
    z-index: 5;
    overflow: visible;
    box-shadow:
        0 -8px 24px rgba(0, 0, 0, 0.5),
        0 8px 28px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15);
}

/* ═══════════════════════════════════════════════════════════════════════
   PLAYER KEYSTONE (2026-06-09d) — scaunul de jos (sud) redesenat ca o „cheie":
   avatarul = capul cheii (medalion), iar din el „iese" lama gold-framed cu 3 crestături:
   LIC (licitare) · MÂINI (făcute) · PUNCTE (scorul = giuvaerul auriu). Totul = un obiect
   cohesiv, încadrat perfect. Folosește #holdemMyInfo (ID) ca să SUPERSEDE curat vechile
   reguli .holdem-my-* de pe toate breakpoint-urile (avatar/scorewrap/meta/pill-uri vechi).
   Verificat live în harness: portrait (390/360/320) + landscape (844/812). ═══════════ */
#holdemMyInfo.holdem-my-info {
    display: flex !important; align-items: center !important; gap: 0 !important;
    background: none !important; border: none !important; box-shadow: none !important;
    padding: 0 !important; overflow: visible !important; min-height: 0 !important;
}
/* capul cheii — MEDALIONUL: bezel auriu lustruit (dublu inel) + adâncime */
#holdemMyInfo .holdem-my-avatar {
    width: 60px !important; height: 60px !important; min-width: 60px !important;
    position: relative; z-index: 3; flex: 0 0 auto; margin: 0 !important;
    border-radius: 50%;
    box-shadow:
        0 0 0 2.5px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.95),
        0 0 0 5px rgba(92, 66, 16, 0.95),
        0 0 16px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30),
        0 7px 18px rgba(0, 0, 0, 0.62) !important;
}
/* inelul de timer apare DOAR la tura activă (idle = medalion curat, fără verde înșelător) */
#holdemMyInfo .holdem-timer-ring .ring-fg { opacity: 0; transition: opacity 0.2s ease; }
#holdemMyInfo.current-turn .holdem-timer-ring .ring-fg { opacity: 1; }
/* lama cheii — plăcuța se MULEAZĂ pe conținut (flex:0 1 auto → FĂRĂ spațiu gol pe dreapta),
   colțul stânga rotunjit (28px) ÎMBRĂȚIȘEAZĂ avatarul + suprapunere adâncă (margin -30 / pad-left 37)
   → conținutul pare că IESE din avatar, ca o cheie reală. */
#holdemMyInfo .holdem-my-crest {
    display: flex; flex-direction: column; justify-content: center; gap: 3px;
    margin-left: -32px; padding: 6px 16px 6px 41px; box-sizing: border-box;
    background:
        linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.07), transparent 42%),
        linear-gradient(135deg, rgba(var(--holdem-panel-rgb, 28, 35, 53), 0.98), rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.99));
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42); border-radius: 32px 16px 16px 32px;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.62), inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30), inset 0 -1px 0 rgba(0, 0, 0, 0.45);
    position: relative; z-index: 1; flex: 0 1 auto; min-width: 0;
}
#holdemMyInfo .holdem-my-crest::after {
    content: ''; position: absolute; top: 0; left: 43px; right: 15px; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.75), transparent); pointer-events: none;
}
#holdemMyInfo .holdem-my-name {
    font-family: 'Cinzel', 'Oswald', serif; font-size: 12.5px !important; font-weight: 700;
    letter-spacing: 1.4px; line-height: 1 !important; text-transform: uppercase;
    padding-left: 2px; margin: 0 !important;
    white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
    /* aur metalic (gradient pe text) + adâncime */
    background: linear-gradient(180deg, var(--holdem-gold-light, #ffeaa8) 0%, var(--holdem-gold, #ffd700) 48%, var(--holdem-gold-deep, var(--holdem-gold-deep, #d97706)) 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    color: var(--holdem-gold) !important; filter: drop-shadow(0 1px 1.5px rgba(0, 0, 0, 0.6));
}
#holdemMyInfo .holdem-my-stats {
    display: flex !important; align-items: stretch !important; gap: 5px !important; margin: 0 !important; flex-wrap: nowrap !important;
}
/* crestăturile = GIUVAIERE individuale (chip-uri lustruite) */
#holdemMyInfo .holdem-keyseg {
    display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center;
    padding: 3px 9px !important; gap: 1px !important; position: relative; min-width: 0;
    min-height: 0 !important; width: auto !important; height: auto !important; flex-shrink: 0 !important;
    background: rgba(255, 255, 255, 0.045) !important; border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: 9px !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}
#holdemMyInfo .holdem-keyseg + .holdem-keyseg::before { display: none !important; }
/* CRITIC: valoarea crestăturii e RESETATĂ complet din vechiul badge .holdem-my-score
   (avea width/height/bg/border de badge circular → înălțime-fantomă de 48px care umfla
   plăcuța = cauza spațiului gol). Acum e DOAR text → plăcuța se mulează pe conținut. */
#holdemMyInfo .holdem-keyseg .kseg-val {
    font-family: 'Oswald', 'Bebas Neue', sans-serif; font-size: 17px !important; font-weight: 800 !important;
    color: var(--holdem-text-strong, #fff) !important; line-height: 1 !important;
    width: auto !important; height: auto !important; min-width: 0 !important;
    background: none !important; border: none !important; border-radius: 0 !important; box-shadow: none !important;
    display: inline-block !important; padding: 0 !important; margin: 0 !important;
}
#holdemMyInfo .holdem-keyseg .kseg-lbl {
    font-size: 7px !important; font-weight: 700; letter-spacing: 0.4px; color: var(--holdem-text-dim);
    text-transform: uppercase; line-height: 1 !important; font-style: normal; margin-top: 2px !important;
}
/* PUNCTE = GIUVAERUL-EROU al cheii — accent auriu + reflex (sheen) animat care „strălucește" */
#holdemMyInfo .holdem-keyseg-score {
    background: linear-gradient(135deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30), rgba(var(--holdem-gold-deep-rgb, 217, 119, 6), 0.16)) !important;
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55) !important; border-radius: 10px !important; padding: 3px 11px !important; margin-left: 1px !important;
    box-shadow: inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45), 0 0 13px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.18) !important;
    overflow: hidden !important;
}
#holdemMyInfo .holdem-keyseg-score::before { display: none !important; }
#holdemMyInfo .holdem-keyseg-score::after {
    content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.55), transparent);
    transform: skewX(-18deg); animation: holdem-gem-sheen 4.5s ease-in-out infinite; pointer-events: none;
}
@keyframes holdem-gem-sheen { 0%, 72% { left: -60%; } 86% { left: 130%; } 100% { left: 130%; } }
#holdemMyInfo .holdem-keyseg-score .kseg-val {
    color: var(--holdem-gold) !important; font-size: 19px !important; text-shadow: 0 1px 7px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55);
}
#holdemMyInfo .holdem-keyseg-score .kseg-lbl { color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85); }
#holdemMyInfo.current-turn .holdem-my-crest {
    border-color: rgba(74, 222, 128, 0.7); animation: holdem-my-turn-aura 1.8s ease-in-out infinite;
}
@keyframes holdem-my-turn-aura {
    0%, 100% { box-shadow: 0 10px 26px rgba(0, 0, 0, 0.62), inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30), 0 0 14px rgba(74, 222, 128, 0.32); }
    50% { box-shadow: 0 10px 26px rgba(0, 0, 0, 0.62), inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30), 0 0 28px rgba(74, 222, 128, 0.60); }
}
#holdemMyInfo.current-turn .holdem-my-avatar {
    box-shadow:
        0 0 0 2.5px rgba(124, 242, 164, 0.95),
        0 0 0 5px rgba(22, 82, 42, 0.90),
        0 0 18px rgba(74, 222, 128, 0.50),
        0 7px 18px rgba(0, 0, 0, 0.62) !important;
}
#holdemMyInfo.premiere-likely .holdem-my-bid .kseg-val,
#holdemMyInfo.premiere-likely .holdem-my-tricks .kseg-val { color: var(--holdem-gold) !important; text-shadow: 0 1px 6px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5); }
@media (max-width: 360px) and (orientation: portrait) {
    #holdemMyInfo .holdem-my-avatar { width: 52px !important; height: 52px !important; min-width: 52px !important; }
    #holdemMyInfo .holdem-my-crest { padding: 4px 10px 4px 34px; margin-left: -28px; border-radius: 27px 14px 14px 27px; }
    #holdemMyInfo .holdem-my-name { font-size: 10.5px !important; letter-spacing: 0.9px; }
    #holdemMyInfo .holdem-keyseg { padding: 2px 6px !important; }
    #holdemMyInfo .holdem-keyseg .kseg-val { font-size: 15px !important; }
    #holdemMyInfo .holdem-keyseg-score .kseg-val { font-size: 16px !important; }
    #holdemMyInfo .holdem-keyseg .kseg-lbl { font-size: 6.5px !important; }
}
/* TELEFOANE (361-600px): crest compact ca cele 3 giuvaiere să încapă (fără tăiere „PUNCTE") */
@media (min-width: 361px) and (max-width: 600px) {
    #holdemMyInfo .holdem-my-avatar { width: 54px !important; height: 54px !important; min-width: 54px !important; }
    #holdemMyInfo .holdem-my-crest { padding: 5px 11px 5px 36px !important; margin-left: -29px !important; gap: 2px; border-radius: 28px 15px 15px 28px; }
    #holdemMyInfo .holdem-my-name { font-size: 11px !important; letter-spacing: 1px; }
    #holdemMyInfo .holdem-my-stats { gap: 4px !important; }
    #holdemMyInfo .holdem-keyseg { padding: 2px 6px !important; }
    #holdemMyInfo .holdem-keyseg .kseg-val { font-size: 15px !important; }
    #holdemMyInfo .holdem-keyseg .kseg-lbl { font-size: 6.5px !important; }
    #holdemMyInfo .holdem-keyseg-score { padding: 2px 7px !important; margin-left: 0 !important; }
    #holdemMyInfo .holdem-keyseg-score .kseg-val { font-size: 16px !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   HOVER PLAYER INFO (2026-06-09e) — cartonaș detaliat pe hover peste scaunul unui adversar.
   Arată: avatar + nume, badges (👑 admin / 🤖 bot / dealer / la rând / ⚠ deconectat),
   stats (Nivel / Câștig% / Jocuri / Puncte — din server `state.playerMeta[seat]`) și runda
   curentă (licitare/mâini/cărți/scor). Feltul are overflow:hidden → poziționăm spre CENTRU. */
.holdem-opp-tooltip {
    position: absolute; top: calc(100% + 10px); left: 50%;
    transform: translateX(-50%) translateY(-6px) scale(0.96); transform-origin: top center;
    width: 190px; max-width: 190px;
    background: linear-gradient(160deg, rgba(var(--holdem-panel-rgb, 28, 35, 53), 0.98), rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.99));
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42); border-radius: 14px;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.72), inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.2);
    padding: 10px 11px; z-index: 90; color: var(--holdem-text, #f1f5f9);
    opacity: 0; pointer-events: none;
    transition: opacity 0.16s ease, transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
.holdem-opponent:hover .holdem-opp-tooltip,
.holdem-opponent:focus-within .holdem-opp-tooltip {
    opacity: 1; pointer-events: auto;
    transform: translateX(-50%) translateY(0) scale(1);
}
.holdem-opp-tooltip::before {
    content: ''; position: absolute; top: -7px; left: 50%; transform: translateX(-50%) rotate(45deg);
    width: 12px; height: 12px; background: rgba(var(--holdem-panel-rgb, 28, 35, 53), 0.99);
    border-left: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42); border-top: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42);
}
/* est/vest = scaune la MIJLOC-înălțime → cartonașul se deschide LATERAL spre centru, CENTRAT
   pe verticală (NU în jos). FIX BUG (cerere user: „userii stânga/dreapta sunt tăiați"): înainte
   se deschidea în jos din mijloc (top:calc(100%+10px)) și depășea marginea de jos a feltului
   (overflow:hidden) cu ~119px. Acum, centrat vertical (top:50% + translateY(-50%)), rămâne mereu
   în felt; săgeata indică spre scaun. */
.holdem-opp-east .holdem-opp-tooltip {
    top: 50%; bottom: auto; left: auto; right: calc(100% + 14px);
    transform: translateY(-50%) translateX(8px) scale(0.96); transform-origin: center right;
}
.holdem-opp-east:hover .holdem-opp-tooltip, .holdem-opp-east:focus-within .holdem-opp-tooltip {
    transform: translateY(-50%) translateX(0) scale(1);
}
.holdem-opp-east .holdem-opp-tooltip::before {
    top: 50%; bottom: auto; left: auto; right: -7px;
    transform: translateY(-50%) rotate(45deg);
    border-left: none; border-bottom: none;
    border-top: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42); border-right: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42);
}
.holdem-opp-west .holdem-opp-tooltip {
    top: 50%; bottom: auto; right: auto; left: calc(100% + 14px);
    transform: translateY(-50%) translateX(-8px) scale(0.96); transform-origin: center left;
}
.holdem-opp-west:hover .holdem-opp-tooltip, .holdem-opp-west:focus-within .holdem-opp-tooltip {
    transform: translateY(-50%) translateX(0) scale(1);
}
.holdem-opp-west .holdem-opp-tooltip::before {
    top: 50%; bottom: auto; right: auto; left: -7px;
    transform: translateY(-50%) rotate(45deg);
    border-top: none; border-right: none;
    border-left: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42); border-bottom: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42);
}
/* ne/nw — ușor spre centru ca să nu se taie pe lateral */
.holdem-opp-ne .holdem-opp-tooltip { left: auto; right: -2px; transform: translateX(0) translateY(-6px) scale(0.96); transform-origin: top right; }
.holdem-opp-ne:hover .holdem-opp-tooltip, .holdem-opp-ne:focus-within .holdem-opp-tooltip { transform: translateX(0) translateY(0) scale(1); }
.holdem-opp-ne .holdem-opp-tooltip::before { left: auto; right: 26px; }
.holdem-opp-nw .holdem-opp-tooltip { left: -2px; right: auto; transform: translateX(0) translateY(-6px) scale(0.96); transform-origin: top left; }
.holdem-opp-nw:hover .holdem-opp-tooltip, .holdem-opp-nw:focus-within .holdem-opp-tooltip { transform: translateX(0) translateY(0) scale(1); }
.holdem-opp-nw .holdem-opp-tooltip::before { left: 26px; }
/* v17.6 — wsw/ese (FULL RING 7-9P) sunt LIPITE de margini ca nw/ne; analog tooltip ancorat
   la marginea corectă (stânga pentru wsw, dreapta pentru ese) ca să NU se taie pe lateral. */
.holdem-opp-wsw .holdem-opp-tooltip { left: -2px; right: auto; transform: translateX(0) translateY(-6px) scale(0.96); transform-origin: top left; }
.holdem-opp-wsw:hover .holdem-opp-tooltip, .holdem-opp-wsw:focus-within .holdem-opp-tooltip { transform: translateX(0) translateY(0) scale(1); }
.holdem-opp-wsw .holdem-opp-tooltip::before { left: 26px; }
.holdem-opp-ese .holdem-opp-tooltip { left: auto; right: -2px; transform: translateX(0) translateY(-6px) scale(0.96); transform-origin: top right; }
.holdem-opp-ese:hover .holdem-opp-tooltip, .holdem-opp-ese:focus-within .holdem-opp-tooltip { transform: translateX(0) translateY(0) scale(1); }
.holdem-opp-ese .holdem-opp-tooltip::before { left: auto; right: 26px; }
/* nne — ușor offset spre stânga (e între north 50% și ne dreapta), tooltip centrat */
.holdem-opp-nne .holdem-opp-tooltip { left: 50%; right: auto; transform: translateX(-50%) translateY(-6px) scale(0.96); transform-origin: top center; }
.holdem-opp-nne:hover .holdem-opp-tooltip, .holdem-opp-nne:focus-within .holdem-opp-tooltip { transform: translateX(-50%) translateY(0) scale(1); }

.woi-head { display: flex; align-items: center; gap: 9px; padding-bottom: 8px; border-bottom: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15); margin-bottom: 8px; }
.woi-avatar { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 2px solid var(--holdem-gold); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6); }
.woi-avatar img { width: 100%; height: 100%; object-fit: cover; }
.woi-avatar .avatar-initial { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: linear-gradient(180deg, var(--holdem-blue), var(--holdem-blue-deep)); color: var(--holdem-text-strong, #fff); font-weight: 800; font-size: 17px; }
.woi-id { min-width: 0; flex: 1; }
.woi-name { font-family: 'Cinzel', 'Oswald', serif; font-weight: 700; font-size: 13px; color: var(--holdem-gold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: 0.3px; }
.woi-badges { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 4px; }
.woi-badge { font-size: 7.5px; font-weight: 800; letter-spacing: 0.3px; padding: 2px 5px; border-radius: 5px; line-height: 1.25; }
.woi-b-admin { background: rgba(239, 68, 68, 0.2); color: #fca5a5; border: 1px solid rgba(239, 68, 68, 0.5); }
.woi-b-bot { background: rgba(91, 141, 239, 0.2); color: #93c5fd; border: 1px solid rgba(91, 141, 239, 0.5); }
.woi-b-dealer { background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.18); color: var(--holdem-gold); border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45); }
.woi-b-turn { background: rgba(74, 222, 128, 0.2); color: #86efac; border: 1px solid rgba(74, 222, 128, 0.5); }
.woi-b-off { background: rgba(148, 163, 184, 0.2); color: var(--holdem-text-mid, #cbd5e1); border: 1px solid rgba(148, 163, 184, 0.5); }
.woi-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.woi-stat { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 5px 4px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.12); border-radius: 8px; }
.woi-stat .woi-v { font-family: 'Oswald', sans-serif; font-weight: 800; font-size: 14px; color: var(--holdem-text-strong, #fff); line-height: 1; }
.woi-stat .woi-k { font-size: 7.5px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase; color: var(--holdem-text-dim); }
.woi-round { display: flex; justify-content: space-between; gap: 4px; margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15); }
.woi-round span { font-size: 8px; color: var(--holdem-text-dim); text-align: center; line-height: 1.35; }
.woi-round b { display: block; font-family: 'Oswald', sans-serif; font-size: 13px; font-weight: 800; color: var(--holdem-gold); }
.woi-status { margin-top: 7px; font-size: 8.5px; text-align: center; color: var(--holdem-text-mid, #cbd5e1); font-style: italic; }
/* BANCA MEA (doar pe crest-ul propriu, poker): „La masă X · Bancă Y · Total Z pct" —
   leagă vizibil JETOANELE de la masă (buy-in plafonat) de punctele totale ale userului. */
.woi-bank { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15);
    font-size: 8.5px; text-align: center; color: var(--holdem-text-dim); line-height: 1.5; }
.woi-bank b { font-family: 'Oswald', sans-serif; font-size: 12px; font-weight: 800; color: var(--holdem-gold, #ffd700); padding: 0 1px; }
/* Conexiune / fair-play — bară care „scade de la 100%" cu deconectările */
.woi-conn { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15); }
.woi-conn-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 3px; }
.woi-conn-lbl { font-size: 8px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase; color: var(--holdem-text-dim); }
.woi-conn-val { font-family: 'Oswald', sans-serif; font-size: 12px; font-weight: 800; }
.woi-conn-bar { display: block; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, 0.1); overflow: hidden; }
.woi-conn-bar i { display: block; height: 100%; border-radius: 3px; transition: width 0.35s ease; }
.woi-conn-dc { display: block; font-size: 7.5px; color: var(--holdem-text-dim); margin-top: 3px; text-align: right; }
.woi-conn.conn-good .woi-conn-val { color: #4ade80; } .woi-conn.conn-good .woi-conn-bar i { background: linear-gradient(90deg, #22c55e, #4ade80); }
.woi-conn.conn-mid .woi-conn-val { color: var(--holdem-gold, #ffd700); } .woi-conn.conn-mid .woi-conn-bar i { background: linear-gradient(90deg, var(--holdem-gold-deep, #d97706), var(--holdem-gold, #ffd700)); }
.woi-conn.conn-bad .woi-conn-val { color: #f87171; } .woi-conn.conn-bad .woi-conn-bar i { background: linear-gradient(90deg, #dc2626, #f87171); }

/* ── Cartonaș pe SCAUNUL MEU (sud) — se deschide în SUS (scaunul e la baza ecranului) ── */
.holdem-my-tooltip {
    top: auto; bottom: calc(100% + 12px); left: 0; right: auto;
    transform: translateX(0) translateY(6px) scale(0.96); transform-origin: bottom left;
}
.holdem-my-info:hover .holdem-my-tooltip,
.holdem-my-info:focus-within .holdem-my-tooltip {
    opacity: 1; pointer-events: auto; transform: translateX(0) translateY(0) scale(1);
}
.holdem-my-tooltip::before {
    top: auto; bottom: -7px; left: 34px; right: auto;
    border-left: none; border-top: none;
    border-right: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42); border-bottom: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.42);
}
/* tap-focus (mobil): scaunele focusabile → cartonașul apare prin :focus-within. Fără outline urât. */
.holdem-opponent, .holdem-my-info { outline: none; }
.holdem-opponent:focus-visible .holdem-opp-card,
.holdem-my-info:focus-visible .holdem-my-crest { box-shadow: 0 0 0 2px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6), 0 8px 22px rgba(0, 0, 0, 0.6); }
/* RESPONSIVE: pe ecrane mici cartonașul mai îngust ca să nu iasă din ecran */
@media (max-width: 600px) {
    .holdem-opp-tooltip { width: min(188px, 72vw); max-width: 72vw; padding: 8px 9px; }
    .woi-avatar { width: 34px; height: 34px; }
    .woi-name { font-size: 12px; }
    .woi-stat { padding: 4px 3px; }
    .woi-stat .woi-v { font-size: 13px; }
    .woi-round b { font-size: 12px; }
    /* Seat bubble compact */
    .holdem-seat-bubble { font-size: 12px; padding: 6px 10px; max-width: min(160px, 60vw); }
    .holdem-seat-bubble.hd-bub-emoji { font-size: 26px; }
}

/* ═══════════════════════════════════════════════
   BID PANEL — Casino chip aesthetic
   ═══════════════════════════════════════════════ */
/* Bid panel — COMPACT, încadrat frumos în centru felt */
.holdem-bid-area {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 50;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 16px 20px;
    /* CASINO PREMIUM REFINAT — panoul adoptă AUTOMAT culoarea feltului (cerere user).
       Background folosește var(--holdem-panel-felt-1/2/3) care e actualizat LIVE din JS
       (HoldemThemeSync — citește culorile reale din .holdem-table-area și le aplică aici).
       Funcționează cu ambele sisteme tematice Holdem:
         - body[data-holdem-theme="green/blue/red/purple"] (selector butonul Schimbă tema masă)
         - html[data-theme="default/midnight/ruby/.../light"] (16 teme globale)
       color-mix() face panoul 15% mai întunecat decât feltul → contrast subtle. */
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, transparent 30%),
        linear-gradient(180deg,
            color-mix(in srgb, var(--holdem-panel-felt-1, #1e6a3a) 85%, #000 15%) 0%,
            color-mix(in srgb, var(--holdem-panel-felt-2, #14502b) 88%, #000 12%) 50%,
            color-mix(in srgb, var(--holdem-panel-felt-3, #0a2d1a) 90%, #000 10%) 100%
        );
    /* Ramă aurie FINĂ — gradient gold→bronze (catching light) */
    border: 1.5px solid transparent;
    border-image: linear-gradient(180deg, var(--holdem-gold, #ffd700) 0%, #b8860b 50%, #8b6914 100%) 1;
    border-radius: 10px;
    /* Multi-layer shadows — placă elegantă pe felt */
    box-shadow:
        inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55),
        inset 0 2px 2px rgba(255, 255, 255, 0.10),
        inset 0 -1px 2px rgba(0, 0, 0, 0.45),
        0 6px 16px rgba(0, 0, 0, 0.45),
        0 12px 32px rgba(0, 0, 0, 0.35),
        0 20px 48px rgba(0, 0, 0, 0.50),
        0 0 16px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.10);
    backdrop-filter: blur(2px) saturate(120%);
    -webkit-backdrop-filter: blur(2px) saturate(120%);
    max-width: 380px;
}

/* Pseudo-elementul ::before nu mai e nevoie — design clean fără halo agresiv */
.holdem-bid-area::before { content: none; }

/* ═══ LICITARE — emergență subtilă (slide+fade), fără glow concurent care distrage ═══
   Designer pro: o singură animație elegantă de intrare, apoi STATIC. */
.holdem-bid-area.holdem-bid-emerge {
    animation: holdem-bid-emerge 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}
@keyframes holdem-bid-emerge {
    0%   { transform: translate(-50%, -50%) translateY(34px) rotateX(80deg) scale(0.7);  opacity: 0; filter: brightness(0.5); }
    55%  { opacity: 1; }
    100% { transform: translate(-50%, -50%) translateY(0)    rotateX(0deg)  scale(1);    opacity: 1; filter: brightness(1); }
}
/* Spotlight static (era pulse infinit 2.6s — animație concurentă inutilă cu emerge) */
.holdem-bid-area::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -34px;
    width: 280px;
    height: 70px;
    transform: translateX(-50%);
    background: radial-gradient(ellipse at center, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22) 0%, rgba(255, 180, 0, 0.08) 40%, transparent 72%);
    filter: blur(10px);
    z-index: -2;
    pointer-events: none;
    opacity: 0.55;
}

/* ═══════════════════════════════════════════════════════════
   DEZVOLTARE MASĂ — efecte pro pentru tot jocul Holdem
   ═══════════════════════════════════════════════════════════ */

/* (A) Spotlight pe felt sub jucătorul ACTIV — se mută cu tura */
.holdem-felt-spotlight {
    position: absolute;
    width: 230px;
    height: 230px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(74, 222, 128, 0.20) 0%, rgba(74, 222, 128, 0.07) 42%, transparent 70%);
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 1;
    opacity: 0;
    filter: blur(5px);
    transition: left 0.5s cubic-bezier(0.34, 1.2, 0.4, 1), top 0.5s cubic-bezier(0.34, 1.2, 0.4, 1), opacity 0.4s;
}
/* Spotlight static (era pulse infinit 2.3s — încă o animație concurentă pe felt) */
.holdem-felt-spotlight.visible { opacity: 1; }

/* (B) ATU flip reveal — cartea de bază se întoarce când apare */
.holdem-deck-atu.holdem-atu-flip { animation: holdem-atu-flip 0.62s cubic-bezier(0.4, 0, 0.2, 1); }
@keyframes holdem-atu-flip {
    0%   { transform: rotateY(92deg) scale(0.8); opacity: 0; }
    50%  { transform: rotateY(-14deg) scale(1.12); opacity: 1; }
    100% { transform: rotateY(0deg) scale(1); opacity: 1; }
}

/* (C) Câștigătorul mâinii pulsează auriu când ia mâna */
.holdem-trick-won { animation: holdem-trick-won 0.95s ease !important; }
@keyframes holdem-trick-won {
    0%, 100% { box-shadow: 0 8px 22px rgba(0, 0, 0, 0.6); }
    28%      { box-shadow: 0 0 40px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.95), 0 0 14px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.7), 0 8px 22px rgba(0, 0, 0, 0.6); }
}

/* (F) Banner de rundă — anunț elegant la împărțire */
.holdem-round-banner {
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 70;
    pointer-events: none;
    padding: 11px 30px;
    background: linear-gradient(135deg, rgba(45, 25, 8, 0.97), rgba(26, 15, 4, 0.97));
    border: 2px solid var(--holdem-gold);
    border-radius: 16px;
    font-family: 'Cinzel', serif;
    font-weight: 800;
    font-size: 17px;
    color: #ffe9a8;
    letter-spacing: 1.5px;
    text-align: center;
    white-space: nowrap;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.7), 0 0 44px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
    opacity: 0;
}
.holdem-round-banner.show { animation: holdem-round-banner 2.1s ease forwards; }
@keyframes holdem-round-banner {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.65) translateY(24px); }
    16%  { opacity: 1; transform: translate(-50%, -50%) scale(1.04) translateY(0); }
    26%  { transform: translate(-50%, -50%) scale(1) translateY(0); }
    80%  { opacity: 1; transform: translate(-50%, -50%) scale(1) translateY(0); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(0.95) translateY(-18px); }
}
.holdem-round-banner-sub {
    display: block;
    font-size: 11px;
    color: var(--holdem-text-mid, #cbd5e1);
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    margin-top: 4px;
    letter-spacing: 0.8px;
}

/* (E) Butoanele de bid intră în CASCADĂ (una după alta) la emergența panoului */
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn {
    animation: holdem-bid-btn-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
}
@keyframes holdem-bid-btn-in {
    0%   { opacity: 0; transform: translateY(16px) scale(0.5); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(1) { animation-delay: 0.5s; }
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(2) { animation-delay: 0.57s; }
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(3) { animation-delay: 0.64s; }
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(4) { animation-delay: 0.71s; }
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(5) { animation-delay: 0.78s; }
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(6) { animation-delay: 0.85s; }
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(7) { animation-delay: 0.92s; }
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(8) { animation-delay: 0.99s; }
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn:nth-child(9) { animation-delay: 1.06s; }

/* (PREMIERE) Sărbătoare când îți NIMEREȘTI licitarea exactă — flash pe scaun + popup BRAVO */
.holdem-premiere { animation: holdem-premiere-flash 1.5s ease !important; }
@keyframes holdem-premiere-flash {
    0%, 100% { box-shadow: 0 10px 24px rgba(0, 0, 0, 0.55), 0 0 24px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.16); transform: scale(1); }
    20%      { box-shadow: 0 0 52px rgba(var(--holdem-gold-rgb, 255, 215, 0), 1), 0 0 22px rgba(74, 222, 128, 0.85), 0 10px 24px rgba(0, 0, 0, 0.55); transform: scale(1.05); }
    50%      { box-shadow: 0 0 40px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.8), 0 10px 24px rgba(0, 0, 0, 0.55); transform: scale(1); }
}
/* Premiere popup SUBTIL — pill mic, scurt (era enorm cu shadow uriaș + font 19/25px) */
.holdem-premiere-popup {
    position: absolute;
    top: 42%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 80;
    pointer-events: none;
    padding: 6px 14px;
    background: linear-gradient(135deg, rgba(34, 80, 40, 0.92), rgba(18, 48, 22, 0.92));
    border: 1px solid rgba(74, 222, 128, 0.6);
    border-radius: 999px;
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #d9ffe4;
    text-align: center;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5), 0 0 18px rgba(74, 222, 128, 0.25);
    animation: holdem-premiere-popup 1.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.holdem-premiere-popup span { font-size: 10px; color: #a7f3d0; font-weight: 500; margin-left: 6px; opacity: 0.85; }
@keyframes holdem-premiere-popup {
    0%   { opacity: 0; transform: translate(-50%, -50%) translateY(8px); }
    18%  { opacity: 1; transform: translate(-50%, -50%) translateY(0); }
    80%  { opacity: 1; transform: translate(-50%, -50%) translateY(0); }
    100% { opacity: 0; transform: translate(-50%, -50%) translateY(-10px); }
}

/* ───────────────────────────────────────────────────────────────────
 * STREAK BADGE — 5× corecte / 5× greșite consecutive (regulă oficială Holdem)
 * Floating badge cu +10 / -10 ce apare deasupra scaunului jucătorului.
 * ─────────────────────────────────────────────────────────────────── */
.holdem-streak-badge {
    position: fixed;
    transform: translate(-50%, -50%) scale(0.3);
    z-index: 9000;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 32px;
    font-weight: 900;
    padding: 14px 26px;
    border-radius: 16px;
    text-align: center;
    pointer-events: none;
    opacity: 0;
    animation: holdem-streak-pop 2.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.7),
        0 0 60px currentColor,
        inset 0 2px 0 rgba(255, 255, 255, 0.3);
    text-shadow:
        0 2px 8px rgba(0, 0, 0, 0.8),
        0 0 16px currentColor;
    letter-spacing: 1px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    line-height: 1;
}
.holdem-streak-badge.streak-bonus {
    color: var(--holdem-gold, #ffd700);
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22), rgba(255, 165, 0, 0.18));
    border: 2px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85);
}
.holdem-streak-badge.streak-penalty {
    color: #ff5555;
    background: linear-gradient(180deg, rgba(255, 85, 85, 0.22), rgba(180, 0, 0, 0.18));
    border: 2px solid rgba(255, 85, 85, 0.85);
}
.holdem-streak-badge .holdem-streak-sub {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 11px;
    font-weight: 700;
    opacity: 0.92;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
@keyframes holdem-streak-pop {
    0%   { opacity: 0; transform: translate(-50%, -30%) scale(0.3) rotate(-8deg); }
    18%  { opacity: 1; transform: translate(-50%, -55%) scale(1.25) rotate(2deg); }
    32%  { transform: translate(-50%, -55%) scale(1.0) rotate(0deg); }
    65%  { opacity: 1; transform: translate(-50%, -65%) scale(1.05); }
    100% { opacity: 0; transform: translate(-50%, -120%) scale(0.85); }
}

/* Numărătoare scor — puls auriu la schimbarea valorii (se aplică pe badge-urile de scor) */
.holdem-score-bump { animation: holdem-score-bump 0.65s cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes holdem-score-bump {
    0%   { transform: scale(1); }
    35%  { transform: scale(1.32); filter: brightness(1.45) drop-shadow(0 0 12px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85)); }
    100% { transform: scale(1); filter: none; }
}

/* (1) Bid jeton — „se lipește" pe avatar la licitare (pop-in) */
.holdem-chip-pop { animation: holdem-chip-pop 0.5s cubic-bezier(0.34, 1.7, 0.5, 1); }
/* Chip pop SUBTIL (era scale 0→1.35→1 + rotate -100deg→10deg → "scaunul se mișca" la licitare) */
@keyframes holdem-chip-pop {
    0%   { opacity: 0; }
    100% { opacity: 1; }
}

/* (2) Cartea CÂȘTIGĂTOARE a mâinii — glow auriu (fără animation, ca să nu strice strângerea) */
.holdem-card.holdem-winning-card {
    box-shadow:
        0 0 30px rgba(var(--holdem-gold-rgb, 255, 215, 0), 1),
        0 0 12px rgba(255, 235, 150, 0.9),
        0 6px 14px rgba(0, 0, 0, 0.55) !important;
    filter: drop-shadow(0 0 8px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.9)) brightness(1.08);
}

/* (3) ULTIMA carte jucată (cerere user — „nu se vede ultimul jucător") — fade-in scurt
 * + ring discret alb-translucent ca să fie EVIDENT care e ultima carte pusă. */
.holdem-card.holdem-last-played {
    animation: holdem-last-played-in 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes holdem-last-played-in {
    0%   { opacity: 0;   transform: scale(0.85); }
    60%  { opacity: 1;   transform: scale(1.06); box-shadow: 0 0 18px rgba(255, 255, 255, 0.5); }
    100% { opacity: 1;   transform: scale(1); }
}

/* (3) Shuffle pachet la joc nou — talonul se „amestecă" scurt */
.holdem-deck.holdem-deck-shuffling .holdem-deck-stack {
    animation: holdem-deck-shuffle 0.85s ease-in-out;
}
@keyframes holdem-deck-shuffle {
    0%   { transform: rotate(0) scale(1); }
    20%  { transform: rotate(-7deg) scale(1.06) translateX(-5px); }
    40%  { transform: rotate(6deg) scale(1.06) translateX(5px); }
    60%  { transform: rotate(-4deg) scale(1.03) translateX(-3px); }
    80%  { transform: rotate(3deg) scale(1.02); }
    100% { transform: rotate(0) scale(1); }
}

/* (4) Emoji reactions — picker + emoji plutitor */
.holdem-emoji-picker {
    position: fixed;
    transform: translate(-50%, -100%);
    z-index: 5000;
    display: flex;
    gap: 3px;
    padding: 7px 9px;
    background: rgba(18, 22, 31, 0.96);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
    animation: holdem-emoji-picker-in 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes holdem-emoji-picker-in {
    0%   { opacity: 0; transform: translate(-50%, -88%) scale(0.8); }
    100% { opacity: 1; transform: translate(-50%, -100%) scale(1); }
}
.holdem-emoji-opt {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
    padding: 4px;
    border-radius: 8px;
    transition: transform 0.15s, background 0.15s;
}
.holdem-emoji-opt:hover { transform: scale(1.4); background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15); }
.holdem-reaction-float {
    position: fixed;
    transform: translate(-50%, -50%);
    z-index: 9999;
    font-size: 56px;
    pointer-events: none;
    /* Cerc de fundal cu border auriu + glow ca emoji-ul să iasă clar peste felt/cărți */
    background: radial-gradient(circle, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 70%, transparent 100%);
    border-radius: 50%;
    padding: 12px 16px;
    filter:
        drop-shadow(0 0 12px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55))
        drop-shadow(0 6px 14px rgba(0, 0, 0, 0.7));
    /* Animatie 3 secunde — mai lent, mai vizibil. Peak visibility 20%-50% = 0.6s-1.5s */
    animation: holdem-reaction-float 3s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes holdem-reaction-float {
    0%   { opacity: 0; transform: translate(-50%, -30%) scale(0.5) rotate(-12deg); }
    15%  { opacity: 1; transform: translate(-50%, -70%) scale(1.5) rotate(8deg); }
    25%  { transform: translate(-50%, -90%) scale(1.25) rotate(-4deg); }
    50%  { opacity: 1; transform: translate(-50%, -130%) scale(1.1) rotate(0deg); }
    80%  { opacity: 0.8; transform: translate(-50%, -180%) scale(1) rotate(2deg); }
    100% { opacity: 0; transform: translate(-50%, -230%) scale(0.85) rotate(-3deg); }
}

/* ═══ BUBBLE lângă avatar — reacții (emoji) ȘI chat (text), stil cameră de poker ═══
   Apare deasupra avatarului expeditorului cu o coadă (tail) care arată spre el. */
.holdem-seat-bubble {
    position: fixed;
    z-index: 10000;
    max-width: min(210px, 64vw);
    padding: 7px 12px;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #eaeff5 100%);
    color: #1a2230;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: 0.2px;
    text-align: center;
    word-break: break-word;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.4), 0 2px 6px rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.75);
    pointer-events: none;
    transform-origin: var(--tail-x, 50%) 100%;
    animation: hd-bub-in 0.32s cubic-bezier(0.22, 1.4, 0.4, 1) both;
}
.holdem-seat-bubble.hd-bub-emoji {
    font-size: 30px;
    line-height: 1;
    padding: 6px 13px;
    background: linear-gradient(180deg, rgba(22, 30, 46, 0.97), rgba(12, 18, 30, 0.97));
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.5), 0 0 14px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.25);
}
/* Coada — triunghi care arată spre avatar (jos, în mod normal) */
.holdem-seat-bubble::after {
    content: '';
    position: absolute;
    left: var(--tail-x, 50%);
    top: 100%;
    transform: translateX(-50%);
    border: 7px solid transparent;
    border-top-color: #eaeff5;
}
.holdem-seat-bubble.hd-bub-emoji::after { border-top-color: rgba(12, 18, 30, 0.97); }
/* Afișat DEDESUBT (n-a fost loc sus) → coada în sus + origine sus */
.holdem-seat-bubble.hd-bub-below { transform-origin: var(--tail-x, 50%) 0; }
.holdem-seat-bubble.hd-bub-below::after {
    top: auto; bottom: 100%;
    border-top-color: transparent;
    border-bottom-color: #eaeff5;
}
.holdem-seat-bubble.hd-bub-below.hd-bub-emoji::after { border-bottom-color: rgba(12, 18, 30, 0.97); }
.holdem-seat-bubble.hd-bub-out { animation: hd-bub-out 0.28s ease forwards; }
@keyframes hd-bub-in {
    0%   { opacity: 0; transform: scale(0.5) translateY(6px); }
    100% { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes hd-bub-out {
    0%   { opacity: 1; transform: scale(1); }
    100% { opacity: 0; transform: scale(0.82) translateY(-4px); }
}
/* ═══ v17.25 — POT-SAC 💰: sacul se UMFLĂ cu --fill (0 = pot gol → 1 = toate jetoanele
   mesei în pot). La sosirea jetoanelor (hd-bump) sacul ÎNGHITE: se lățește (squash),
   saltă în sus (stretch), revine cu wobble — fizică de desen animat, citibilă instant. ═══ */
.holdem-pk-pot.hd-potbag { display: inline-flex; align-items: center; justify-content: center; gap: 5px; }
.holdem-pk-pot .potbag-ico {
    font-style: normal; line-height: 1; display: inline-block;
    font-size: calc(15px + var(--fill, 0) * 14px);   /* 15px gol → 29px sac plin */
    transform-origin: bottom center;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.6));
    transition: font-size 0.45s cubic-bezier(0.3, 1.4, 0.4, 1);
}
.holdem-pk-pot .potbag-amt { font-variant-numeric: tabular-nums; }
.holdem-pk-pot.hd-potbag.hd-bump .potbag-ico {
    animation: hdBagGulp 0.7s cubic-bezier(0.3, 1.5, 0.4, 1);
}
@keyframes hdBagGulp {
    0%   { transform: scale(1); }
    28%  { transform: scaleX(1.35) scaleY(0.72); }   /* sacul se lățește — înghite */
    55%  { transform: scaleX(0.85) scaleY(1.22); }   /* saltă în sus */
    78%  { transform: scaleX(1.08) scaleY(0.94); }
    100% { transform: scale(1); }
}

/* ═══ v17.26 — PACHETUL PRO: pre-acțiuni, pot odds, last-action, ceas circular, coroniță,
   monede, dâră, banner blinds, ștampilă ALL-IN, shimmer, quick-chat. GLOBAL (desktop +
   portrait + landscape; compactările landscape sunt în media query-ul existent). ═══ */
/* PRE-ACȚIUNI — toggle pills cu căsuță de bifat; .on = aprins auriu */
.holdem-betbtn.preact {
    display: inline-flex; align-items: center;
    opacity: 0.88;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #cfd8ea;
}
.holdem-betbtn.preact .pre-tick {
    display: inline-flex; align-items: center; justify-content: center;
    width: 12px; height: 12px; margin-right: 6px;
    border-radius: 3px; border: 1px solid rgba(255, 255, 255, 0.4);
    font-style: normal; font-size: 8px; line-height: 1; color: transparent;
    transition: all 0.15s ease;
}
.holdem-betbtn.preact.on {
    opacity: 1; color: #ffd76a;
    border-color: rgba(255, 215, 0, 0.65);
    background: rgba(255, 215, 0, 0.12);
    box-shadow: 0 0 10px rgba(255, 215, 0, 0.25);
}
.holdem-betbtn.preact.on .pre-tick {
    color: #ffd76a; border-color: rgba(255, 215, 0, 0.8);
    background: rgba(255, 215, 0, 0.15);
}
/* POT ODDS — procentul discret sub suma de call */
.holdem-betbtn .hd-odds {
    display: block; font-size: 8.5px; font-weight: 600;
    opacity: 0.75; letter-spacing: 0.3px; margin-top: 1px; line-height: 1;
}
/* LAST ACTION — tag persistent pe scaun (top-left; la sud top-right pe crest) */
body.holdem-poker-mode #holdemRoot .hd-lastact {
    position: absolute; top: 1px; left: 1px; z-index: 6;
    padding: 1px 5px; border-radius: 8px;
    font-size: 7.5px; font-weight: 800; letter-spacing: 0.4px; line-height: 1.4;
    background: rgba(10, 14, 26, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #cfd8ea; pointer-events: none; white-space: nowrap;
}
body.holdem-poker-mode #holdemRoot #holdemMyInfo .hd-lastact { left: auto; right: 6px; top: 2px; }
body.holdem-poker-mode #holdemRoot .hd-lastact[data-act="raise"],
body.holdem-poker-mode #holdemRoot .hd-lastact[data-act="bet"] { color: #ffd76a; border-color: rgba(255, 215, 0, 0.5); }
body.holdem-poker-mode #holdemRoot .hd-lastact[data-act="call"] { color: #4ade80; border-color: rgba(74, 222, 128, 0.45); }
body.holdem-poker-mode #holdemRoot .hd-lastact[data-act="allin"] { color: #ff6b6b; border-color: rgba(255, 107, 107, 0.55); }
body.holdem-poker-mode #holdemRoot .hd-lastact[data-act="fold"] { opacity: 0.6; }
/* CEAS CIRCULAR — inelul conic se golește cu --p; roșu pulsant sub 3s */
body.holdem-poker-mode #holdemRoot .holdem-pk-seatclock {
    display: flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; padding: 0; border-radius: 50%;
    font-size: 9.5px; font-weight: 800; color: #ffd76a;
    background:
        radial-gradient(circle at center, rgba(10, 14, 26, 0.95) 0 57%, transparent 58%),
        conic-gradient(var(--holdem-gold, #ffd700) calc(var(--p, 1) * 360deg), rgba(255, 255, 255, 0.14) 0);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.55);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
}
body.holdem-poker-mode #holdemRoot .holdem-pk-seatclock.urgent {
    color: #ff7b7b;
    background:
        radial-gradient(circle at center, rgba(28, 8, 8, 0.95) 0 57%, transparent 58%),
        conic-gradient(#ff4d4d calc(var(--p, 1) * 360deg), rgba(255, 255, 255, 0.14) 0);
    animation: hdClockUrgent 0.5s ease-in-out infinite;
}
@keyframes hdClockUrgent {
    50% { transform: scale(1.18); box-shadow: 0 0 12px rgba(255, 77, 77, 0.6); }
}
/* CORONIȚĂ 👑 — cade cu bounce pe scaunul câștigătorului */
.hd-crown {
    position: absolute; top: -13px; left: 26px;
    font-size: 16px; z-index: 9; pointer-events: none;
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.6));
    animation: hdCrownDrop 0.55s cubic-bezier(0.3, 1.6, 0.4, 1) both;
}
#holdemMyInfo .hd-crown { left: 14px; top: -15px; font-size: 18px; }
@keyframes hdCrownDrop {
    0%   { opacity: 0; transform: translateY(-16px) scale(0.4) rotate(-18deg); }
    60%  { opacity: 1; transform: translateY(2px) scale(1.15) rotate(4deg); }
    100% { transform: translateY(0) scale(1) rotate(0); }
}
/* MONEDE 🪙 — fântână din sac (traiectorie cu --dx/--dy) */
.hd-coin {
    position: fixed; z-index: 125; font-size: 14px; font-style: normal;
    pointer-events: none; transform: translate(-50%, -50%);
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6));
    animation: hdCoinFly 1.25s cubic-bezier(0.3, 0.4, 0.6, 1) both;
}
@keyframes hdCoinFly {
    0%   { transform: translate(-50%, -50%) translate(0, 0) scale(0.5) rotate(0); opacity: 0; }
    12%  { opacity: 1; }
    45%  { transform: translate(-50%, -50%) translate(calc(var(--dx, 0px) * 0.7), var(--dy, -60px)) scale(1) rotate(160deg); }
    100% { transform: translate(-50%, -50%) translate(var(--dx, 0px), 95px) scale(0.75) rotate(340deg); opacity: 0; }
}
/* DÂRĂ AURIE — puncte de lumină pe traseul jetoanelor spre pot */
.hd-trail {
    position: fixed; width: 7px; height: 7px; border-radius: 50%;
    z-index: 118; pointer-events: none; opacity: 0.9;
    background: radial-gradient(circle, #ffe9a8 0%, #ffd700 55%, transparent 78%);
    box-shadow: 0 0 8px rgba(255, 215, 0, 0.8);
}
/* BANNER BLINDS CRESC — bandă aurie peste felt la SnG */
.hd-blinds-banner {
    position: absolute; top: 38%; left: 50%; z-index: 140;
    padding: 8px 22px; border-radius: 999px; white-space: nowrap;
    background: linear-gradient(180deg, rgba(20, 28, 48, 0.97), rgba(8, 12, 22, 0.98));
    border: 1.5px solid rgba(255, 215, 0, 0.65);
    color: #ffd76a; font-weight: 800; letter-spacing: 1px; font-size: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6), 0 0 24px rgba(255, 215, 0, 0.25);
    animation: hdBanner 2.6s cubic-bezier(0.25, 0.9, 0.3, 1) both;
    pointer-events: none;
}
@keyframes hdBanner {
    0%        { opacity: 0; transform: translateX(-50%) translateY(14px) scale(0.9); }
    12%, 82%  { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
    100%      { opacity: 0; transform: translateX(-50%) translateY(-10px) scale(0.96); }
}
/* ȘTAMPILĂ ALL-IN — badge-ul cade din cer + scaunul se scutură */
.hd-actflash.hd-stamp { animation: hdStamp 0.5s cubic-bezier(0.2, 1.6, 0.4, 1) both !important; }
@keyframes hdStamp {
    0%   { opacity: 0; transform: scale(3) rotate(-14deg); }
    60%  { opacity: 1; transform: scale(0.92) rotate(3deg); }
    100% { transform: scale(1) rotate(0); }
}
.hd-shake { animation: hdSeatShake 0.45s ease both; }
@keyframes hdSeatShake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-4px) rotate(-0.6deg); }
    40% { transform: translateX(4px) rotate(0.6deg); }
    60% { transform: translateX(-3px); }
    80% { transform: translateX(2px); }
}
/* SHIMMER — sweep de lumină prin pill-ul numelui mâinii la mână mare */
.hd-shimmer { position: relative; overflow: hidden; }
.hd-shimmer::after {
    content: ''; position: absolute; top: 0; bottom: 0; width: 45%; left: -60%;
    background: linear-gradient(105deg, transparent 0, rgba(255, 235, 170, 0.85) 50%, transparent 100%);
    animation: hdShine 1.1s ease 0.15s 2; pointer-events: none;
}
@keyframes hdShine { to { left: 130%; } }
/* ECHITATE LA ALL-IN — pill „%" peste contendenți cât cad cărțile runout-ului */
.hd-equity {
    position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
    z-index: 10; padding: 2px 9px; border-radius: 999px;
    font-size: 11px; font-weight: 900; letter-spacing: 0.4px;
    font-variant-numeric: tabular-nums;
    background: rgba(10, 14, 26, 0.95);
    border: 1px solid rgba(140, 160, 200, 0.5); color: #cfd8ea;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.55);
    animation: hdEqIn 0.35s cubic-bezier(0.3, 1.5, 0.4, 1) both;
    pointer-events: none;
}
.hd-equity.hd-eq-fav {
    color: #ffd76a; border-color: rgba(255, 215, 0, 0.65);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.55), 0 0 14px rgba(255, 215, 0, 0.3);
}
@keyframes hdEqIn {
    0%   { opacity: 0; transform: translateX(-50%) translateY(8px) scale(0.6); }
    100% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
}
/* ═══ v17.27 — PORTRAIT MOBILE (≤600px): betbar-ul cu pre-acțiuni/controale se rupea pe
   rânduri dar rămânea la înălțime fixă → hint + Pauză IEȘEAU din bară peste south.
   Fix: înălțime AUTO (crește în sus, e ancorat cu bottom la south), conținut compact,
   raisewrap pe UN rând (slider flexibil), my-info/dock egalizate. ═══ */
@media (max-width: 600px) and (orientation: portrait) {
    body.holdem-poker-mode #holdemRoot .holdem-betbar {
        height: auto !important; min-height: 52px !important;
        padding: 6px 8px !important; gap: 5px !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-betbar .holdem-betbtn { font-size: 11px !important; padding: 5px 10px !important; min-height: 30px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-betbar button.preact { padding: 4px 8px !important; font-size: 10.5px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-betbar button.preact .pre-tick { width: 11px !important; height: 11px !important; margin-right: 4px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-betbar .holdem-betbar-hint { height: 26px !important; min-height: 26px !important; font-size: 10px !important; padding: 3px 10px !important; }
    /* raisewrap (presets + slider + valoare + Raise + All-in) — UN singur rând fluid */
    body.holdem-poker-mode #holdemRoot .holdem-raisewrap { width: 100% !important; display: flex !important; flex-wrap: nowrap !important; gap: 5px !important; align-items: center !important; margin: 0 !important; }
    body.holdem-poker-mode #holdemRoot .holdem-raise-slider { flex: 1 1 70px !important; min-width: 56px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-raise-val { font-size: 11px !important; min-width: 32px !important; text-align: center !important; }
    body.holdem-poker-mode #holdemRoot .holdem-raise-presets { display: flex !important; gap: 4px !important; flex: none !important; }
    body.holdem-poker-mode #holdemRoot .holdem-raise-presets .holdem-betbtn { padding: 4px 7px !important; font-size: 10px !important; }
    /* my-info + dock — înălțimi egale, fără margini inegale jos */
    body.holdem-poker-mode #holdemRoot .holdem-player-dock { max-height: 92px !important; overflow: hidden !important; }
    body.holdem-poker-mode #holdemRoot .holdem-dock-gameinfo { font-size: 11px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-dock-turn { font-size: 11px !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo { min-height: 92px !important; }
    /* pill echitate + ceas compacte și pe portrait */
    body.holdem-poker-mode #holdemRoot .hd-equity { font-size: 10px !important; padding: 1px 7px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-pk-seatclock { width: 22px !important; height: 22px !important; font-size: 8.5px !important; }
    /* Pe PORTRAIT scaunul e VERTICAL (avatar sus, nume jos), badge poziție sus-stânga (-8px),
       scor sus-dreapta → tag-ul ultimei acțiuni NU are loc în interior: îl punem DEASUPRA
       scaunului, ridicat peste badge-ul de poziție. Ceasul activului ia ACELAȘI loc, iar
       tag-ul vechi se ascunde pe scaunul activ (acțiunea trecută nu mai contează la rând). */
    body.holdem-poker-mode #holdemRoot .hd-lastact { top: auto !important; bottom: calc(100% + 10px) !important; left: 50% !important; right: auto !important; transform: translateX(-50%) !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opponent .holdem-pk-seatclock { top: auto !important; bottom: calc(100% + 8px) !important; left: 50% !important; right: auto !important; transform: translateX(-50%) !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opponent:has(.holdem-pk-seatclock) .hd-lastact { display: none !important; }
    /* SOUTH (crest lat): tag sus-centru, ceas sus-dreapta — fără coliziune cu nume/scor */
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .hd-lastact { bottom: auto !important; top: 2px !important; left: 50% !important; right: auto !important; transform: translateX(-50%) !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .holdem-pk-seatclock { top: 2px !important; right: 2px !important; bottom: auto !important; left: auto !important; transform: none !important; }
    /* BETBAR cu CHENAR PROPRIU: înainte chenarul venea din ::before-ul lui south, FIX la
       64px — când bara creștea (wrap pe 2-3 rânduri) partea de sus rămânea neîncadrată,
       iar când era mică chenarul atârna dedesubt. Acum chenarul urmărește EXACT bara. */
    body.holdem-poker-mode .holdem-player-area::before { top: 0 !important; }
    body.holdem-poker-mode #holdemRoot .holdem-betbar {
        background: linear-gradient(180deg, rgba(20, 28, 48, 0.97), rgba(12, 18, 32, 0.95)) !important;
        border: 1.5px solid rgba(255, 215, 0, 0.32) !important;
        border-bottom: none !important;
        border-radius: 12px 12px 0 0 !important;
        box-shadow: 0 -8px 20px rgba(0, 0, 0, 0.45) !important;
    }
}

/* QUICK-CHAT — rând de fraze sub emoji în picker */
.holdem-emoji-picker { flex-wrap: wrap; max-width: 270px; justify-content: center; }
.holdem-qc-row {
    display: flex; flex-wrap: wrap; gap: 4px; width: 100%;
    justify-content: center; margin-top: 5px; padding-top: 6px;
    border-top: 1px solid rgba(255, 215, 0, 0.18);
}
.holdem-qc-opt {
    cursor: pointer; padding: 3px 10px; border-radius: 999px;
    font-size: 11px; font-weight: 700; line-height: 1.4;
    background: rgba(255, 215, 0, 0.08);
    border: 1px solid rgba(255, 215, 0, 0.3);
    color: #ffd76a;
    transition: transform 0.15s, background 0.15s;
}
.holdem-qc-opt:hover { transform: scale(1.08); background: rgba(255, 215, 0, 0.18); }

.holdem-bid-header {
    display: flex;
    align-items: center;
    gap: 6px;
}

.holdem-bid-icon {
    font-size: 13px;
    filter: drop-shadow(0 0 10px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.7));
}

.holdem-bid-title {
    font-size: 10.5px;
    color: var(--holdem-gold);
    font-weight: 800;
    letter-spacing: 0.3px;
    font-family: 'Cinzel', 'Oswald', serif;
    text-transform: uppercase;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6), 0 0 20px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
}

.holdem-bid-note {
    padding: 3px 8px;
    background:
        linear-gradient(135deg, rgba(220, 38, 38, 0.18), rgba(127, 29, 29, 0.12));
    border: 1.5px solid rgba(248, 113, 113, 0.5);
    border-radius: 6px;
    color: #fca5a5;
    font-size: 9px;
    line-height: 1.2;
    text-align: center;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
    font-weight: 600;
}

.holdem-bid-note b {
    color: var(--holdem-text-strong, #fff);
    background: var(--holdem-red);
    padding: 0 3px;
    border-radius: 4px;
    margin: 0 2px;
    font-weight: 900;
    font-size: 9px;
}

/* Progres licitare — rămâne vizibil până termină toți de licitat */
.holdem-bid-progress {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px;
    margin: 2px 0 4px;
}
.holdem-bid-chip {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 7px;
    border-radius: 11px;
    font-size: 10px;
    font-weight: 600;
    color: var(--holdem-text-mid, #cbd5e1);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.holdem-bid-chip b { color: var(--holdem-text-dim, #94a3b8); font-weight: 800; }
.holdem-bid-chip.done {
    color: #e8eefc;
    background: rgba(74, 222, 128, 0.16);
    border-color: rgba(74, 222, 128, 0.4);
}
.holdem-bid-chip.done b { color: #4ade80; }
.holdem-bid-chip.current {
    color: var(--holdem-text-strong, #fff);
    background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.2);
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6);
    box-shadow: 0 0 12px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    /* Eliminat pulse-ul infinit — pe panou care deja are animație emerge la apariție,
       un al doilea pulse pe chip = animații suprapuse. Glow gold static e suficient. */
}
.holdem-bid-chip.current b { color: var(--holdem-gold, #ffd700); }

.holdem-bid-btns {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
}

/* BUTOANE BID — design flat modern (designer pro), nu casino-chip vintage:
   pătrate cu colțuri rotunjite, font Inter, hover subtil, focus accesibil. */
.holdem-bid-btn {
    position: relative;
    min-width: 44px;
    height: 44px;
    border-radius: 10px;
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.04) 100%);
    color: #fff7e0;
    font-size: 16px;
    font-weight: 700;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    cursor: pointer;
    transition: transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
    box-shadow:
        0 4px 12px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
/* fără ::after rim chip — era vintage */
.holdem-bid-btn::after { content: none; }
.holdem-bid-btn b { line-height: 1; font-weight: 700; }

/* Hover flat: micro lift + accent auriu subtil (fără rotație, fără mare scale) */
.holdem-bid-btn:hover:not(:disabled) {
    transform: translateY(-2px);
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.20) 0%, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.06) 100%);
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85);
    box-shadow:
        0 8px 18px rgba(0, 0, 0, 0.45),
        0 0 0 1px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.holdem-bid-btn:active:not(:disabled) { transform: translateY(0); }

/* Disabled flat: gri stins, fără 3D */
.holdem-bid-btn.disabled,
.holdem-bid-btn:disabled {
    background: rgba(255, 255, 255, 0.04);
    color: rgba(255, 255, 255, 0.32);
    border-color: rgba(255, 255, 255, 0.08);
    cursor: not-allowed;
    box-shadow: none;
}

/* Forbidden (numărul care ar suma=cardsThisRound) — outline roșu discret, fără radial */
.holdem-bid-btn.forbidden {
    background: rgba(220, 38, 38, 0.10);
    color: rgba(252, 165, 165, 0.85);
    border-color: rgba(248, 113, 113, 0.55);
    cursor: not-allowed;
    box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.25);
}
.holdem-bid-btn.forbidden span {
    position: absolute;
    bottom: -6px;
    right: -6px;
    font-size: 12px;
    background: rgba(15, 10, 30, 0.95);
    border: 1px solid rgba(248, 113, 113, 0.6);
    border-radius: 50%;
    padding: 1px 4px;
}

/* ═══════════════════════════════════════════════
   HAND + MY INFO row
   ═══════════════════════════════════════════════ */
/* hand-wrap legacy (nu mai e folosit — mâna direct în player-area grid) */
.holdem-hand-wrap {
    display: contents;
}

/* ═══ DOCK dreapta: turn + timer + ATU + Runda + tools (tot din fosta bară de sus) ═══ */
.holdem-player-dock {
    flex: 0 0 auto;
    width: 226px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 7px 10px;
    /* Cadru ALINIAT cu crest-ul „Player Keystone" (aceeași plăcuță gold-framed glassmorphic) */
    background: linear-gradient(135deg, rgba(var(--holdem-panel-rgb, 28, 35, 53), 0.97), rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.97));
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.34);
    border-radius: 13px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.18);
    justify-content: center;
    position: relative;
}
/* linia aurie decorativă sus — identică cu crest-ul */
.holdem-player-dock::after {
    content: ''; position: absolute; top: 0; left: 12px; right: 12px; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5), transparent); pointer-events: none;
}
/* glow verde pe dock când e tura mea (consecvent cu crest-ul „Keystone") */
.holdem-player-dock:has(.holdem-turn-mine) {
    border-color: rgba(74, 222, 128, 0.55);
    box-shadow: 0 0 16px rgba(74, 222, 128, 0.25), 0 8px 22px rgba(0, 0, 0, 0.6);
}
/* Turn indicator mutat în dock (din fosta bară de sus) */
.holdem-dock-turn {
    text-align: center;
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    font-size: 12.5px;
    line-height: 1.2;
    letter-spacing: 0.3px;
}
.holdem-dock-turn:empty { display: none; }
/* Turn badge compact în dock (override-uri peste stilul mare din fosta bară de sus) */
.holdem-dock-turn .holdem-turn-mine,
.holdem-dock-turn .holdem-turn-other,
.holdem-dock-turn .holdem-turn-info {
    display: block;
    font-size: 11.5px;
    padding: 5px 10px;
    border-radius: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 240px;
}
/* Dock game info: ATU + Runda + Timer pe un rând */
.holdem-dock-gameinfo {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}
.holdem-dock-gameinfo .holdem-timer-pill {
    min-width: 0;
    padding: 3px 9px;
    gap: 4px;
}
.holdem-dock-atu {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: linear-gradient(135deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.2), rgba(var(--holdem-gold-deep-rgb, 217, 119, 6), 0.12));
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    border-radius: 10px;
}
.holdem-dock-atu-label {
    font-size: 8px;
    color: var(--holdem-gold, #ffd700);
    font-weight: 800;
    font-family: 'Cinzel', serif;
    letter-spacing: 0.5px;
}
.holdem-dock-atu-sym {
    font-size: 14px;
    line-height: 1;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.holdem-dock-round {
    font-size: 10px;
    color: var(--holdem-text-mid, #cbd5e1);
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    padding: 2px 8px;
    background: rgba(91, 141, 239, 0.15);
    border: 1px solid rgba(91, 141, 239, 0.3);
    border-radius: 10px;
}

.holdem-dock-stats {
    display: flex;
    gap: 10px;
    justify-content: center;
}
.holdem-dock-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.holdem-dock-stat-label {
    font-size: 8px;
    color: var(--holdem-text-dim, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
}
.holdem-dock-stat-val {
    font-size: 16px;
    color: var(--holdem-gold, #ffd700);
    font-family: 'Cinzel', serif;
    font-weight: 900;
    text-shadow: 0 0 10px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
}
.holdem-dock-tools {
    display: flex;
    gap: 5px;
    justify-content: center;
}
.holdem-dock-btn {
    width: 30px;
    height: 30px;
    border-radius: 7px;
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
    background: linear-gradient(180deg, rgba(91, 141, 239, 0.18), rgba(30, 58, 138, 0.08));
    color: var(--holdem-gold, #ffd700);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.2s;
    font-family: 'Cinzel', sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
}
.holdem-dock-btn:hover {
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.25), rgba(var(--holdem-gold-deep-rgb, 217, 119, 6), 0.12));
    transform: translateY(-2px);
}
.holdem-dock-btn.active {
    background: linear-gradient(180deg, rgba(74, 222, 128, 0.32), rgba(34, 197, 94, 0.16));
    border-color: rgba(74, 222, 128, 0.7);
    color: #4ade80;
}

.holdem-my-hand {
    flex: 1 1 auto;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    min-height: 86px;
    padding: 2px 6px;
    perspective: 1000px;
    /* FIX (cerere user — „la 8 cărți se lungește masa"): min-width 0 + overflow hidden orizontal
       împiedică min-content-ul cărților să forțeze grid-ul `1fr` să se extindă peste limita coloanei. */
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: visible;
}

/* Mâna mea — cărți spread cu overlap progresiv funcție de nr cărți (NU lungesc masa).
   Default (1-6 cărți): overlap -14px (cărți largi, vizibile bine).
   7-8 cărți (`.cards-dense` set din JS): overlap -28px (compact, încape în 1fr fără overflow). */
.holdem-my-hand .holdem-card {
    margin-left: -14px;
}
.holdem-my-hand .holdem-card:first-child {
    margin-left: 0;
}
.holdem-my-hand.cards-dense .holdem-card { margin-left: -28px; }
.holdem-my-hand.cards-dense .holdem-card:first-child { margin-left: 0; }
.holdem-my-hand.cards-xdense .holdem-card { margin-left: -34px; }
.holdem-my-hand.cards-xdense .holdem-card:first-child { margin-left: 0; }

/* My info card (compact + animat current-turn) */
/* Scaunul TĂU — premium evidențiat: ramă aurie + glow cald, distinct de adversari (VIP seat). */
.holdem-my-info {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    background:
        linear-gradient(135deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.13), rgba(184, 134, 11, 0.04)),
        linear-gradient(135deg, rgba(38, 46, 64, 0.97), rgba(20, 26, 40, 0.96));
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5);
    border-radius: 15px;
    box-shadow:
        0 10px 24px rgba(0, 0, 0, 0.55),
        0 0 24px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    flex: 0 0 auto;
    width: 256px;
    position: relative;
    transition: all 0.3s;
}

.holdem-my-info.current-turn {
    border-color: rgba(74, 222, 128, 0.75);
    background:
        linear-gradient(135deg, rgba(74, 222, 128, 0.32) 0%, rgba(34, 197, 94, 0.12) 100%),
        linear-gradient(180deg, rgba(var(--holdem-panel-rgb, 28, 35, 53), 0.97) 0%, rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.97) 100%);
    box-shadow:
        0 0 28px rgba(74, 222, 128, 0.55),
        0 10px 22px rgba(0, 0, 0, 0.55),
        inset 0 1px 0 rgba(74, 222, 128, 0.25);
    /* fără animation — scaunul meu rămâne static (era pulse care făcea senzație de mișcare) */
}

/* My-info chevron ▲ "RÂNDUL TĂU" deasupra avatarului — ELIMINAT (cerere user — era duplicat
   cu pill-ul „🎴 Rândul tău!" din dock-ul de jos, vizibil prin .holdem-turn-mine din JS). */

/* ─── Game-end overlay: premierea (balance before → after) ────────────────────
   Pattern Septica/Macao: la sfârșitul jocului, server-ul trimite perSeatBalances +
   perSeatRewards. Afișăm fiecare jucător cu medalie, scor, balanță înainte → după,
   plus stats personal (Acest joc / Balanță cu indicator DB ✅). */
.ranking-item.me {
    border: 2px solid #5b8def !important;
    background: rgba(91, 141, 239, 0.08);
}
.we-rank-main {
    display: flex; align-items: center; gap: 10px;
}
.we-balance-line {
    margin-top: 4px;
    padding: 4px 10px;
    background: rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.6);
    border-radius: 6px;
    font-size: 11px;
    display: flex; align-items: center; gap: 6px;
    color: var(--holdem-text-mid, #cbd5e1);
}
.we-bal-label { opacity: 0.7; }
.we-bal-before {
    opacity: 0.55;
    text-decoration: line-through;
}
.we-bal-arrow {
    opacity: 0.6;
    font-size: 10px;
}
.we-bal-after { font-weight: 700; }
.we-bal-delta {
    font-weight: 700;
    margin-left: 2px;
}
.reward-positive { color: #4ade80; }
.reward-negative { color: #f87171; }
.reward-neutral  { color: var(--holdem-text-mid, #cbd5e1); }

.we-stats-section {
    margin-top: 14px;
    padding: 12px 14px;
    background: linear-gradient(180deg, rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.85), rgba(2, 6, 23, 0.75));
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.35);
    border-radius: 10px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.we-stat {
    display: flex; flex-direction: column; gap: 4px;
}
.we-stat-label {
    font-size: 10px;
    color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.8);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}
.we-stat-value {
    font-size: 16px;
    font-weight: 700;
    color: var(--holdem-text, #f1f5f9);
}
.we-bal-flow {
    display: flex; align-items: center; gap: 6px;
    font-size: 14px;
}
.we-db-status {
    margin-left: 4px;
    font-size: 12px;
    opacity: 0.8;
}

/* ─── Banner "AI FOST PROMOVAT" — apare deasupra rankings dacă user-ul a fost
   promovat de la spectator la jucător în timpul jocului (când alt player a plecat).
   Pattern: data.promoted === myUsername setează window._mpJustPromoted = true. */
.we-promoted-banner {
    margin: 10px auto 12px;
    padding: 10px 16px;
    max-width: 90%;
    background: linear-gradient(135deg, rgba(74, 222, 128, 0.92), rgba(34, 197, 94, 0.85));
    border: 2px solid rgba(255, 255, 255, 0.6);
    border-radius: 999px;
    color: #062c14;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.4px;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
    box-shadow: 0 6px 18px rgba(34, 197, 94, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.3);
    animation: we-promoted-pop 0.45s cubic-bezier(0.22, 1.4, 0.36, 1);
}
@keyframes we-promoted-pop {
    0%   { transform: scale(0.7); opacity: 0; }
    60%  { transform: scale(1.08); opacity: 1; }
    100% { transform: scale(1); }
}

/* ─── Panel "Un loc s-a eliberat" — pentru spectatorii cu ofertă activă la game-end.
   Apare în #gameEndOverlay cu countdown 30s + buton "INTRĂ ÎN JOC".
   Pattern Macao (#mpOfferInModal) adaptat pentru overlay-ul Holdem. */
.we-spec-offer {
    margin: 12px auto;
    padding: 12px 16px;
    max-width: 90%;
    background: linear-gradient(180deg, rgba(91, 141, 239, 0.18), rgba(91, 141, 239, 0.08));
    border: 1.5px solid rgba(91, 141, 239, 0.55);
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 16px rgba(91, 141, 239, 0.3);
}
.we-spec-badge {
    font-size: 13px;
    font-weight: 700;
    color: var(--holdem-text-mid, #cbd5e1);
    margin-bottom: 6px;
}
.we-spec-badge span { color: var(--holdem-gold, #ffd700); }
.we-spec-bet {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 8px;
}
.we-spec-bet strong { color: var(--holdem-gold, #ffd700); }
.we-spec-bar {
    height: 5px;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 99px;
    overflow: hidden;
    margin: 8px 0 6px;
}
.we-spec-fill {
    height: 100%;
    width: 100%;
    background: linear-gradient(90deg, #4ade80, #5b8def);
    border-radius: 99px;
    transition: width 1s linear;
}
.we-spec-fill.urgent {
    background: linear-gradient(90deg, #f59e0b, #ef4444);
}
.we-spec-countdown {
    font-size: 11px;
    color: var(--holdem-text-mid, #cbd5e1);
    margin-bottom: 10px;
}
.we-spec-countdown strong {
    color: #4ade80;
    font-size: 14px;
}
.we-spec-btn {
    display: inline-block;
    padding: 8px 22px;
    background: linear-gradient(180deg, #4ade80, #16a34a);
    border: 1.5px solid rgba(255, 255, 255, 0.5);
    border-radius: 999px;
    color: #062c14;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.5px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(34, 197, 94, 0.5);
    transition: transform 0.15s, box-shadow 0.2s;
}
.we-spec-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(34, 197, 94, 0.7);
}
.we-spec-btn:active {
    transform: translateY(0);
}

/* ─── Toast-uri în sidebar (sub Scoreboard) ─────────────────────────────────
   Cerere user: alertele „test → bid 4" / „✅ Toți au bidit!" etc. nu mai apar
   în dreapta sus în afara mesei, ci AICI sub Scoreboard.
   Global .toast-container este ascuns pe pagina Holdem. */
.toast-container { display: none !important; }

.holdem-sb-toasts-section {
    margin-top: 6px;
}
.holdem-sidebar-toasts {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 200px;
    overflow-y: auto;
    padding-right: 2px;
}
.holdem-sidebar-toasts::-webkit-scrollbar { width: 3px; }
.holdem-sidebar-toasts::-webkit-scrollbar-thumb { background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3); border-radius: 2px; }

.holdem-sidebar-toast {
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--holdem-text, #f1f5f9);
    background: linear-gradient(180deg, rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.92), rgba(2, 6, 23, 0.88));
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-left: 3px solid #5b8def;
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
    animation: holdem-sb-toast-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    transition: opacity 0.5s, transform 0.5s;
}
.holdem-sidebar-toast-info    { border-left-color: #5b8def; }
.holdem-sidebar-toast-success { border-left-color: #4ade80; color: #d1fae5; }
.holdem-sidebar-toast-error,
.holdem-sidebar-toast-warning { border-left-color: #f59e0b; color: #fef3c7; }
.holdem-sidebar-toast.fade-out {
    opacity: 0;
    transform: translateX(20px);
}
@keyframes holdem-sb-toast-in {
    from { opacity: 0; transform: translateX(20px); }
    to   { opacity: 1; transform: translateX(0); }
}

.holdem-my-avatar {
    position: relative;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 3px solid transparent;
    background:
        linear-gradient(180deg, #1e293b 0%, #0f172a 100%) padding-box,
        linear-gradient(135deg, #ffe98a 0%, var(--holdem-gold) 35%, #b8860b 65%, var(--holdem-gold) 100%) border-box;
    box-shadow:
        0 0 18px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5),
        0 4px 12px rgba(0, 0, 0, 0.7),
        inset 0 2px 5px rgba(255, 255, 255, 0.18);
}

.holdem-my-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.holdem-my-avatar .avatar-initial {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--holdem-text-strong, #fff);
    font-size: 16px;
    font-weight: 800;
    font-family: 'Cinzel', 'Oswald', serif;
}

.holdem-my-meta {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.holdem-my-name {
    font-size: 14px;
    font-weight: 800;
    color: #fff7e0;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
    letter-spacing: 0.4px;
    font-family: 'Cinzel', 'Inter', serif;
    white-space: nowrap;
}

.holdem-my-stats {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    white-space: nowrap;
    gap: 5px;
    font-size: 10.5px;
    color: rgba(255, 255, 255, 0.8);
    margin-top: 3px;
}

.holdem-my-stats span {
    font-weight: 600;
    letter-spacing: 0.2px;
}

/* separator "·" elegant între Licitare și MÃ¢ini */
.holdem-my-stats span + span::before {
    content: '·';
    margin-right: 5px;
    color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55);
    font-weight: 900;
}

.holdem-my-stats b {
    color: var(--holdem-gold);
    font-weight: 900;
    margin-left: 3px;
    font-family: 'Cinzel', 'Oswald', serif;
    font-size: 12px;
    text-shadow: 0 0 7px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5);
}

/* My score chip — casino style (compact) */
/* Scor — monedă aurită (gilt), proeminentă, cu label SCOR dedesubt */
.holdem-my-scorewrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}
.holdem-my-score {
    padding: 0;
    width: 44px;
    height: 44px;
    background:
        radial-gradient(circle at 32% 28%, #fff3c4 0%, var(--holdem-gold, #ffd700) 32%, #d4920a 72%, #9a6a08 100%);
    border: 2px solid rgba(255, 248, 220, 0.6);
    border-radius: 50%;
    color: #3a2606;
    font-weight: 900;
    font-size: 17px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow:
        0 0 20px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55),
        0 4px 12px rgba(0, 0, 0, 0.6),
        inset 0 2px 5px rgba(255, 255, 255, 0.6),
        inset 0 -2px 5px rgba(120, 80, 0, 0.4);
    font-family: 'Cinzel', 'Oswald', serif;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
    position: relative;
}

.holdem-my-score::before {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    border: 1.5px dotted rgba(120, 80, 0, 0.4);
}
.holdem-my-score-label {
    font-size: 7.5px;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.75);
    font-family: 'Cinzel', serif;
    text-transform: uppercase;
}

/* ═══════════════════════════════════════════════
   CARD DESIGN — Premium playing card
   ═══════════════════════════════════════════════ */
.holdem-card {
    position: relative;
    width: 60px;
    height: 86px;
    background:
        radial-gradient(circle at 30% 30%, #ffffff 0%, #f8fafc 50%, var(--holdem-text, #f1f5f9) 100%);
    border: 1px solid rgba(0, 0, 0, 0.3);
    border-radius: 9px;
    box-shadow:
        0 6px 14px rgba(0, 0, 0, 0.55),
        inset 0 0 0 1px rgba(255, 255, 255, 0.65),
        inset 0 -2px 6px rgba(0, 0, 0, 0.08);
    color: var(--card-color, #000);
    user-select: none;
    cursor: default;
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    flex-shrink: 0;
    overflow: hidden;
    transform: translateY(var(--fan-y, 0)) rotate(var(--fan-rotate, 0deg));
    margin-left: -22px;
}

.holdem-card:first-child {
    margin-left: 0;
}

/* Cărți VALIDE — POP subtil (designer pro: o linie verde discretă, nu neon agresiv) */
.holdem-card.playable {
    cursor: pointer;
    box-shadow:
        0 5px 12px rgba(0, 0, 0, 0.5),
        inset 0 0 0 1px rgba(255, 255, 255, 0.55),
        0 0 0 1.5px rgba(74, 222, 128, 0.55);
}

.holdem-card.playable:hover {
    transform: translateY(calc(var(--fan-y, 0px) - 12px)) rotate(0deg) scale(1.03);
    box-shadow:
        0 10px 20px rgba(0, 0, 0, 0.5),
        inset 0 0 0 1px rgba(255, 255, 255, 0.65),
        0 0 0 1.5px var(--holdem-green),
        0 0 14px rgba(74, 222, 128, 0.4);
    z-index: 100;
}

/* Cărți NEvalide — designer pro: rămân CITIBILE (păstrează culori + claritate),
   sunt doar discrete (nu mutilate cu grayscale). Subtilitatea atrage atenția
   pe cele VALIDE (verzi) fără să facă urâte celelalte. */
.holdem-card.disabled {
    opacity: 0.82;
    filter: saturate(0.7);          /* doar puțin mai pale, NU grayscale */
    cursor: not-allowed;
    /* dezactivează hover lift / tilt pe cele blocate */
    transform: none !important;
}
.holdem-card.disabled:hover {
    transform: none !important;
    box-shadow:
        0 4px 10px rgba(0, 0, 0, 0.45),
        inset 0 0 0 1px rgba(255, 255, 255, 0.4);
}

.holdem-card.is-atu {
    box-shadow:
        0 6px 14px rgba(0, 0, 0, 0.55),
        inset 0 0 0 1.5px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85),
        0 0 0 2px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55),
        0 0 16px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
}

.holdem-card.is-atu.playable {
    box-shadow:
        0 6px 14px rgba(0, 0, 0, 0.55),
        inset 0 0 0 1.5px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85),
        0 0 0 2px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85),
        0 0 22px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55);
}

.holdem-card.is-atu.playable:hover {
    box-shadow:
        0 22px 42px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.65),
        inset 0 0 0 1.5px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.95),
        0 0 0 3px var(--holdem-gold),
        0 0 36px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.75);
}

.holdem-card-corner {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 0.95;
    font-weight: 700;
}

.holdem-card-corner-tl {
    top: 5px;
    left: 6px;
}

.holdem-card-corner-br {
    bottom: 5px;
    right: 6px;
    transform: rotate(180deg);
}

.holdem-card-rank {
    font-size: 14px;
    font-weight: 800;
    font-family: 'Cinzel', 'Bebas Neue', serif;
    letter-spacing: -0.5px;
}

.holdem-card-suit-small {
    font-size: 11px;
    margin-top: 0;
}

.holdem-card-pip {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    line-height: 1;
    opacity: 0.94;
    text-shadow:
        0 2px 0 rgba(255, 255, 255, 0.7),
        0 -1px 1px rgba(0, 0, 0, 0.1),
        2px 4px 8px rgba(0, 0, 0, 0.15);
    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.5));
}

/* Played cards (in trick area) — smaller */
.holdem-card-played {
    width: 56px;
    height: 80px;
    margin-left: 0;
    cursor: default;
    transform: none;
}

.holdem-card-played .holdem-card-rank { font-size: 12px; }
.holdem-card-played .holdem-card-suit-small { font-size: 10px; }
.holdem-card-played .holdem-card-pip { font-size: 28px; }

/* ═══════════════════════════════════════════════
   GAME END MODAL — Macao exact replica (cu DOM existent din index.php)
   ═══════════════════════════════════════════════ */
.game-end-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999 !important;
    background: rgba(0, 0, 0, 0.78) !important;
    backdrop-filter: blur(8px) !important;
    align-items: center !important;
    justify-content: center !important;
}
.game-end-overlay.active {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.game-end-card {
    background: linear-gradient(180deg, rgba(28, 22, 8, 0.98), rgba(20, 28, 48, 0.98)) !important;
    border: 3px solid var(--holdem-gold, #ffd700) !important;
    border-radius: 20px !important;
    padding: 28px !important;
    min-width: 380px !important;
    max-width: 460px !important;
    text-align: center !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.9), 0 0 60px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4) !important;
    color: var(--holdem-text-strong, #fff) !important;
    font-family: 'Cinzel', serif !important;
}
.game-end-header h2 {
    font-family: 'Cinzel', serif !important;
    font-size: 26px !important;
    font-weight: 900 !important;
    color: var(--holdem-gold, #ffd700) !important;
    text-shadow: 0 0 20px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6) !important;
    margin: 0 0 14px !important;
}
.game-end-icon {
    font-size: 56px !important;
    color: var(--holdem-gold, #ffd700) !important;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.6)) !important;
}
.result-ranking {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    margin: 14px 0 16px !important;
}
.ranking-item {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 14px !important;
    background: rgba(0, 0, 0, 0.35) !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
    border-radius: 8px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    color: var(--holdem-text-mid, #cbd5e1) !important;
}
.ranking-item.winner {
    background: linear-gradient(135deg, rgba(74, 222, 128, 0.22), rgba(34, 197, 94, 0.1)) !important;
    border-color: rgba(74, 222, 128, 0.5) !important;
    box-shadow: 0 0 16px rgba(74, 222, 128, 0.25) !important;
}
.ranking-position {
    font-family: 'Cinzel', serif !important;
    font-weight: 900 !important;
    font-size: 16px !important;
    min-width: 24px !important;
    color: var(--holdem-text-dim, #94a3b8) !important;
}
.ranking-item.winner .ranking-position { color: var(--holdem-gold, #ffd700) !important; }
.ranking-name {
    flex: 1 !important;
    font-weight: 700 !important;
    text-align: left !important;
    color: var(--holdem-text-strong, #fff) !important;
}
.ranking-score {
    font-family: 'Cinzel', serif !important;
    font-weight: 900 !important;
    font-size: 16px !important;
    color: #4ade80 !important;
}
.auto-rematch-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 10px 0 !important;
    font-size: 12px !important;
    color: var(--holdem-text-mid, #cbd5e1) !important;
    font-family: 'Inter', sans-serif !important;
}
.auto-rematch-toggle label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
}
.rematch-switch {
    width: 36px !important;
    height: 20px !important;
    background: #475569 !important;
    border-radius: 10px !important;
    position: relative !important;
    cursor: pointer !important;
    transition: background 0.3s !important;
    display: inline-block !important;
}
.rematch-switch::after {
    content: '' !important;
    width: 16px !important;
    height: 16px !important;
    background: white !important;
    border-radius: 50% !important;
    position: absolute !important;
    top: 2px !important;
    left: 2px !important;
    transition: transform 0.3s !important;
}
.rematch-switch.active { background: #4ade80 !important; }
.rematch-switch.active::after { transform: translateX(16px) !important; }
.auto-rematch-countdown {
    margin: 10px 0 !important;
    padding: 8px 14px !important;
    background: rgba(74, 222, 128, 0.16) !important;
    border: 1px solid rgba(74, 222, 128, 0.5) !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    color: #4ade80 !important;
    font-family: 'Inter', sans-serif !important;
}
.auto-rematch-countdown b {
    font-family: 'Cinzel', serif !important;
    font-size: 20px !important;
    text-shadow: 0 0 10px rgba(74, 222, 128, 0.6) !important;
}
.game-end-actions {
    display: flex !important;
    gap: 10px !important;
    margin-top: 8px !important;
}
.game-end-btn {
    flex: 1 !important;
    padding: 12px !important;
    border: 2px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4) !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    font-family: 'Cinzel', serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    transition: all 0.2s !important;
}
.btn-play-again {
    background: linear-gradient(135deg, #4ade80, #16a34a) !important;
    color: #052e13 !important;
    border-color: var(--holdem-text-strong, #fff) !important;
}
.btn-play-again:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(74, 222, 128, 0.5) !important;
}
.btn-back-menu {
    background: rgba(0, 0, 0, 0.4) !important;
    color: var(--holdem-text-mid, #cbd5e1) !important;
}
.btn-back-menu:hover {
    background: rgba(220, 38, 38, 0.7) !important;
    color: var(--holdem-text-strong, #fff) !important;
    border-color: var(--holdem-text-strong, #fff) !important;
}

/* ═══════════════════════════════════════════════
   ASCUNDE widget-urile flotante vechi (acum INTEGRATE în dock-ul jos)
   ═══════════════════════════════════════════════ */
#holdemStatsPanel,
#holdemHeatmap,
.holdem-voice-btn,
.holdem-streamer-toggle,
.holdem-hand-toolbar {
    display: none !important;
}

/* ATU + Round pills mutate în dock — ascunse din statusbar */
.holdem-statusbar .holdem-atu-pill,
.holdem-statusbar .holdem-round-pill {
    display: none !important;
}

/* ═══════════════════════════════════════════════
   REVOLUȚIONARE: voice commands, achievements, streamer mode, heatmap
   ═══════════════════════════════════════════════ */

/* === VOICE BUTTON === */
.holdem-voice-btn {
    position: fixed; bottom: 16px; right: 80px; z-index: 100;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ec4899, #be185d);
    border: 2px solid #fff;
    color: var(--holdem-text-strong, #fff);
    font-size: 16px;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(236, 72, 153, 0.5);
    transition: all 0.2s;
    display: flex; align-items: center; justify-content: center;
}
.holdem-voice-btn:hover { transform: scale(1.1); }
.holdem-voice-btn.listening {
    animation: holdem-voice-pulse 1s ease-in-out infinite;
    background: linear-gradient(135deg, #ef4444, #b91c1c);
}
@keyframes holdem-voice-pulse {
    0%, 100% { box-shadow: 0 4px 14px rgba(239, 68, 68, 0.5), 0 0 0 0 rgba(239, 68, 68, 0.7); }
    50% { box-shadow: 0 4px 14px rgba(239, 68, 68, 0.8), 0 0 0 20px rgba(239, 68, 68, 0); }
}

/* === ACHIEVEMENT POPUP === */
.holdem-achievement {
    position: fixed; top: 50%; left: 50%;
    transform: translate(-50%, -50%) scale(0.3);
    z-index: 8000;
    padding: 24px 32px;
    background:
        linear-gradient(135deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.95), rgba(var(--holdem-gold-deep-rgb, 217, 119, 6), 0.95)),
        radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.4), transparent 50%);
    border: 3px solid #fff;
    border-radius: 20px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.9), 0 0 60px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.7);
    opacity: 0;
    pointer-events: none;
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    text-align: center;
    min-width: 300px;
}
.holdem-achievement.visible {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.holdem-achievement-icon {
    font-size: 60px; line-height: 1;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.5));
}
.holdem-achievement-title {
    font-family: 'Cinzel', serif;
    font-size: 22px; color: #2a1810;
    font-weight: 900; margin: 10px 0 4px;
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
}
.holdem-achievement-desc {
    font-family: 'Inter', sans-serif;
    font-size: 13px; color: rgba(42, 24, 16, 0.8);
}

/* === STREAMER MODE TOGGLE === */
.holdem-streamer-toggle {
    position: fixed; bottom: 16px; right: 16px; z-index: 100;
    padding: 8px 14px;
    background: linear-gradient(135deg, rgba(91, 141, 239, 0.95), rgba(30, 58, 138, 0.95));
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5);
    border-radius: 20px;
    color: var(--holdem-text-strong, #fff);
    font-family: 'Cinzel', serif;
    font-size: 12px; font-weight: 700;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
}
.holdem-streamer-toggle:hover { transform: translateY(-2px); }
.holdem-streamer-toggle.active {
    background: linear-gradient(135deg, rgba(74, 222, 128, 0.95), rgba(34, 197, 94, 0.95));
}
body.holdem-streamer-mode .holdem-sidebar,
body.holdem-streamer-mode #holdemStatsPanel,
body.holdem-streamer-mode #holdemHeatmap {
    display: none !important;
}
body.holdem-streamer-mode .holdem-root {
    grid-template-columns: 1fr !important;
    grid-template-areas: 'topbar' 'felt' 'bottom' !important;
}

/* === HEATMAP cards played per suit === */
.holdem-heatmap {
    position: fixed;
    bottom: 16px; left: 56px;
    z-index: 50;
    padding: 8px 10px;
    background: rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.85);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
    border-radius: 10px;
    backdrop-filter: blur(8px);
    display: flex; gap: 6px; align-items: center;
    font-family: 'Inter', sans-serif; font-size: 11px;
}
.holdem-heatmap-suit {
    display: flex; flex-direction: column; align-items: center;
    min-width: 24px;
}
.holdem-heatmap-icon { font-size: 16px; line-height: 1; }
.holdem-heatmap-bar {
    width: 24px; height: 28px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 3px;
    position: relative; overflow: hidden;
    margin-top: 2px;
}
.holdem-heatmap-fill {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(180deg, currentColor 0%, transparent 100%);
    opacity: 0.8;
    transition: height 0.5s;
}
.holdem-heatmap-count {
    font-size: 9px; color: var(--holdem-gold, #ffd700);
    font-family: 'Cinzel', serif; font-weight: 800;
    margin-top: 2px;
}

/* ═══════════════════════════════════════════════
   PRO FEATURES: sort buttons, card preview, modals, themes, chip stack, stats
   ═══════════════════════════════════════════════ */

/* === HAND SORT BUTTONS === */
.holdem-hand-toolbar {
    position: absolute;
    bottom: 156px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
    z-index: 30;
    background: linear-gradient(180deg, rgba(var(--holdem-panel-rgb, 28, 35, 53), 0.95), rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.95));
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45);
    border-radius: 10px;
    padding: 5px 7px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(8px);
}
.holdem-hand-tool {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
    background: linear-gradient(180deg, rgba(91, 141, 239, 0.18), rgba(30, 58, 138, 0.08));
    color: var(--holdem-gold, #ffd700);
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.2s;
    font-family: 'Cinzel', sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
}
.holdem-hand-tool:hover {
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.25), rgba(var(--holdem-gold-deep-rgb, 217, 119, 6), 0.12));
    transform: translateY(-2px);
}
.holdem-hand-tool.active {
    background: linear-gradient(180deg, rgba(74, 222, 128, 0.32), rgba(34, 197, 94, 0.16));
    border-color: rgba(74, 222, 128, 0.7);
    color: #4ade80;
}

/* === CARD HOVER PREVIEW === */
.holdem-card-preview {
    position: fixed;
    pointer-events: none;
    z-index: 9000;
    width: 180px;
    height: 252px;
    background: radial-gradient(circle at 30% 30%, #fff 0%, var(--holdem-text, #f1f5f9) 60%, var(--holdem-text, #f1f5f9) 100%);
    border: 2px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55);
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.85), 0 0 40px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4), inset 0 0 0 2px rgba(255, 255, 255, 0.8);
    opacity: 0;
    transform: scale(0.7);
    transition: all 0.18s cubic-bezier(0.34, 1.56, 0.64, 1);
    color: var(--prev-color, #000);
    overflow: hidden;
}
.holdem-card-preview.visible { opacity: 1; transform: scale(1); }
.holdem-card-preview-rank {
    position: absolute; top: 14px; left: 18px;
    font-size: 42px; font-weight: 900;
    font-family: 'Cinzel', 'Bebas Neue', serif; line-height: 1;
}
.holdem-card-preview-suit-small {
    position: absolute; top: 56px; left: 22px;
    font-size: 30px; line-height: 1;
}
.holdem-card-preview-pip {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 120px;
    text-shadow: 0 4px 0 rgba(255, 255, 255, 0.6);
}
.holdem-card-preview-rank-br {
    position: absolute; bottom: 14px; right: 18px;
    font-size: 42px; font-weight: 900;
    font-family: 'Cinzel', 'Bebas Neue', serif; line-height: 1;
    transform: rotate(180deg);
}
.holdem-card-preview-suit-small-br {
    position: absolute; bottom: 56px; right: 22px;
    font-size: 30px; line-height: 1;
    transform: rotate(180deg);
}

/* === ROUND PREVIEW MODAL === ELIMINAT (cerere user — modal "Runda X" cu blur uriaș
   între runde distrăgea grav). Apelul JS deja comentat la roundStarted, plus display:none
   ca safety net dacă alt cod ar mai chema showRoundPreview(). */
.holdem-round-preview,
.holdem-round-preview.visible { display: none !important; }
.holdem-round-preview-card {
    background: linear-gradient(180deg, rgba(28, 22, 8, 0.96) 0%, rgba(20, 28, 48, 0.96) 100%);
    border: 3px solid var(--holdem-gold);
    border-radius: 24px;
    padding: 32px 48px;
    text-align: center;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.9), 0 0 80px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    transform: scale(0.7) rotate(-3deg);
    transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    min-width: 420px;
}
.holdem-round-preview.visible .holdem-round-preview-card {
    transform: scale(1) rotate(0);
}
.holdem-round-preview-title {
    font-family: 'Cinzel', serif; font-size: 14px; color: var(--holdem-gold, #ffd700);
    letter-spacing: 4px; text-transform: uppercase; font-weight: 800;
    margin-bottom: 8px;
    text-shadow: 0 0 16px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6);
}
.holdem-round-preview-num {
    font-family: 'Cinzel', serif; font-size: 72px; color: var(--holdem-text-strong, #fff);
    font-weight: 900; line-height: 1;
    text-shadow: 0 4px 12px rgba(0, 0, 0, 0.8), 0 0 30px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5);
}
.holdem-round-preview-info {
    display: flex; justify-content: center; gap: 24px;
    margin-top: 18px; color: var(--holdem-text-mid, #cbd5e1);
}
.holdem-round-preview-info-cell {
    display: flex; flex-direction: column; gap: 4px;
}
.holdem-round-preview-label {
    font-size: 10px; text-transform: uppercase;
    letter-spacing: 1.5px; color: var(--holdem-text-dim, #94a3b8);
}
.holdem-round-preview-value {
    font-size: 20px; font-weight: 900; color: var(--holdem-gold, #ffd700);
    font-family: 'Cinzel', serif;
}

/* === BID SUMMARY BANNER === */
/* Banner "LICITĂRI" — afișat după ce toți au bidit, EXACT ÎN MIJLOCUL FELTULUI (cerere user).
   Centrat vertical + orizontal pe .holdem-table-area (position:absolute), încadrare elegantă cu
   border auriu + glow subtil, ușor mărit ca să fie focal point la final de licitare. */
.holdem-bid-summary {
    position: absolute; top: 50%; left: 50%;
    transform: translate(-50%, -50%) scale(0.85);
    z-index: 4000;
    display: flex; align-items: center; gap: 10px;
    padding: 10px 18px;
    background: linear-gradient(180deg, rgba(28, 22, 8, 0.97), rgba(20, 28, 48, 0.96));
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.65);
    border-radius: 999px;
    box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.65),
        0 0 24px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s;
    opacity: 0; font-size: 12px;
    pointer-events: none;
}
.holdem-bid-summary.visible {
    transform: translate(-50%, -50%) scale(1); opacity: 1;
}
/* Banner LICITĂRI — child elements compactate (era font 12/18px) */
.holdem-bid-summary-label {
    font-family: 'Inter', system-ui, sans-serif; font-size: 10px; color: var(--holdem-gold, #ffd700);
    letter-spacing: 1px; text-transform: uppercase; font-weight: 700;
}
.holdem-bid-summary-bid {
    display: flex; flex-direction: row; align-items: center; gap: 4px;
    padding: 2px 7px;
    background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.14);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    border-radius: 999px;
}
.holdem-bid-summary-name { font-size: 9px; color: var(--holdem-text-mid, #cbd5e1); font-weight: 500; }
.holdem-bid-summary-num {
    font-size: 13px; font-weight: 800; color: var(--holdem-gold, #ffd700);
    font-family: 'Inter', system-ui, sans-serif;
}
.holdem-bid-summary-total {
    padding: 3px 9px;
    background: linear-gradient(135deg, rgba(74, 222, 128, 0.92), rgba(22, 163, 74, 0.92));
    border-radius: 999px;
    color: #052e13; font-weight: 800;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 11px;
}

/* === AI BID HINT (compact) === */
.holdem-bid-hint {
    margin-top: 3px;
    padding: 3px 8px;
    background: linear-gradient(135deg, rgba(74, 222, 128, 0.18), rgba(74, 222, 128, 0.05));
    border: 1.5px solid rgba(74, 222, 128, 0.5);
    border-radius: 6px;
    color: #4ade80; font-size: 9px;
    text-align: center;
    font-family: 'Inter', sans-serif; font-weight: 600;
}
.holdem-bid-hint b {
    font-family: 'Cinzel', serif; font-size: 11px; margin-left: 4px;
}


/* ── SELECTOR CULOARE FELT pentru tema „lemn" (5 culori, ca selectorul din masa-rosie.html).
   Schimbă DOAR var(--lemn-felt) (culoarea radialului de felt din ::after) → rama de lemn + banda
   argintie + emblema + decorul rămân identice. Pilula apare deasupra selectorului de teme, DOAR pe „lemn". ── */
.holdem-lemn-felt-switch {
    display: none; position: fixed; top: 11px; left: 196px; z-index: 200;
    gap: 6px; padding: 5px 10px; align-items: center;
    background: rgba(0, 0, 0, 0.7); border: 1px solid rgba(233, 196, 90, 0.4);
    border-radius: 24px; backdrop-filter: blur(10px);
}
body[data-holdem-theme="lemn"] .holdem-lemn-felt-switch { display: flex; }
.holdem-lemn-felt-switch::before { content: '🪵'; font-size: 12px; opacity: 0.85; }
.holdem-lemn-felt-dot { width: clamp(18px, 1.4vw, 22px); height: clamp(18px, 1.4vw, 22px); border-radius: 50%; cursor: pointer; border: 2px solid rgba(255, 255, 255, 0.4); transition: all 0.2s; }
.holdem-lemn-felt-dot:hover { transform: scale(1.18); }
.holdem-lemn-felt-dot.active { border-color: #f3c552; box-shadow: 0 0 10px rgba(243, 197, 82, 0.6); }
.holdem-lemn-felt-dot[data-felt="red"]    { background: radial-gradient(circle, #a01e1e, #3e0808); }
.holdem-lemn-felt-dot[data-felt="green"]  { background: radial-gradient(circle, #1f8a60, #06301f); }
.holdem-lemn-felt-dot[data-felt="blue"]   { background: radial-gradient(circle, #1f63a8, #061d36); }
.holdem-lemn-felt-dot[data-felt="purple"] { background: radial-gradient(circle, #4d3189, #110a24); }
.holdem-lemn-felt-dot[data-felt="black"]  { background: radial-gradient(circle, #25252b, #050507); }
/* culorile feltului (var pe body); ROȘU = fallback în ::after, deci nu trebuie definit aici */
body[data-holdem-theme="lemn"][data-holdem-felt="green"]  { --lemn-felt: radial-gradient(58% 64% at 50% 44%, #1f8a60 0%, #146b4d 46%, #0c4936 82%, #06301f 100%); }
body[data-holdem-theme="lemn"][data-holdem-felt="blue"]   { --lemn-felt: radial-gradient(58% 64% at 50% 44%, #1f63a8 0%, #144b80 46%, #0c3155 82%, #061d36 100%); }
body[data-holdem-theme="lemn"][data-holdem-felt="purple"] { --lemn-felt: radial-gradient(58% 64% at 50% 44%, #4d3189 0%, #341f63 46%, #1f1340 82%, #110a24 100%); }
body[data-holdem-theme="lemn"][data-holdem-felt="black"]  { --lemn-felt: radial-gradient(58% 64% at 50% 44%, #25252b 0%, #18181d 46%, #0d0d11 82%, #050507 100%); }


/* ═══ TEMĂ „LEMN PREMIUM" (cerere user): felt roșu + rail lemn + bandă argintie.
   Opt-in din selectorul de teme (dot maro). Schimbă DOAR aspectul feltului — background +
   box-shadow inset (rail-ul e desenat în interior, NU mărește cutia) → forma/dimensiunea/
   poziția scaunelor/board/pot rămân EXACT la fel. Celelalte teme neatinse. Reversibil: șterge blocul. ═══ */
body[data-holdem-theme="lemn"] .holdem-table-area {
    /* ── STRAT 1/3 · RAMA DE LEMN — gradientele EXACTE din masa-rosie.html .poker-table
       (noduri în lemn, grăunte fin, scânduri, glow cald sus+jos, bizou interior cald).
       Forma (racetrack) e setată mai jos DOAR pe desktop (@media ≥901px). ── */
    /* CULOARE LEMN — EXACT ca masa-rosie.html .poker-table (cerere user „pune codul identic"):
       noduri rgba(38,19,5) + grăunte rgba(0,0,0,.16) + scânduri 64px (rgba(52,27,8,.55)+rgba(255,224,176,.10))
       + glow rgba(255,228,180) + bază #c08a47→#6c4019→#c08a47. */
    background:
        radial-gradient(circle at 17% 72%, rgba(38, 19, 5, 0.55) 0 2px, rgba(38, 19, 5, 0) 9px),
        radial-gradient(circle at 83% 26%, rgba(38, 19, 5, 0.50) 0 2px, rgba(38, 19, 5, 0) 8px),
        repeating-linear-gradient(87deg, rgba(0, 0, 0, 0.16) 0 1px, rgba(0, 0, 0, 0) 1px 3px),
        repeating-linear-gradient(90deg, rgba(52, 27, 8, 0.55) 0 2px, rgba(0, 0, 0, 0) 2px 4px, rgba(255, 224, 176, 0.10) 30px 32px, rgba(0, 0, 0, 0) 32px 64px),
        radial-gradient(120% 60% at 50% 0%, rgba(255, 228, 180, 0.22), rgba(255, 228, 180, 0) 40%),
        radial-gradient(120% 60% at 50% 100%, rgba(255, 228, 180, 0.16), rgba(255, 228, 180, 0) 40%),
        linear-gradient(180deg, #c08a47 0%, #8c5a2a 16%, #6c4019 50%, #8c5a2a 84%, #c08a47 100%) !important;
    box-shadow:
        inset 0 3px 6px rgba(255, 225, 180, 0.30),
        inset 0 -8px 18px rgba(0, 0, 0, 0.55),
        0 0 0 1px #2a1708,
        0 46px 88px rgba(0, 0, 0, 0.72) !important;
}
/* ── STRAT 2/3 · BANDĂ ARGINTIE — identic .silver (periat vertical + bizou luminat sus, umbrit jos).
   inset 13px → rama de lemn rămâne vizibilă pe margine. Pseudo z-index 0 → SUB cărți/pot/scaune (z>=1). ── */
body[data-holdem-theme="lemn"] .holdem-table-area::before {
    content: '';
    position: absolute;
    inset: clamp(7px, 1.7vw, 28px);
    border-radius: 8px;
    background:
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.22) 0 1px, rgba(0, 0, 0, 0) 1px 3px),
        linear-gradient(180deg, #f5f6f8 0%, #c0c4c8 22%, #fefeff 48%, #acb0b4 74%, #dcdee2 100%) !important;
    box-shadow:
        inset 0 2px 3px rgba(255, 255, 255, 0.85),
        inset 0 -3px 6px rgba(0, 0, 0, 0.40),
        0 0 0 1px rgba(0, 0, 0, 0.20),
        0 6px 14px rgba(0, 0, 0, 0.45) !important;
    z-index: 0;
    pointer-events: none;
}
/* ── STRAT 3/3 · FELT ROȘU + țesătură + bizou — identic .felt.red + .weave + .felt::after.
   inset 2.5vw → banda argintie ~8-10px (subțire, cerere user).
   ::after se pictează PESTE ::before → argintul rămâne doar inel. z-index 0 → SUB tot conținutul. ── */
body[data-holdem-theme="lemn"] .holdem-table-area::after {
    content: '';
    position: absolute;
    inset: clamp(12px, 2.5vw, 36px);
    border-radius: 5px;
    /* FELT — aliniat EXACT la masa-rosie.html: nap (umbră diagonală soft 3D, ca .nap) + țesătură SUBTILĂ
       (ca .weave la opacity .5 → alphe înjumătățite, nu striații) + glow cald .13 (ca .felt::before) + culoare. */
    background:
        linear-gradient(118deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0) 30%, rgba(0, 0, 0, 0.06) 100%),
        repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.03) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.035) 0 1px, transparent 1px 3px),
        radial-gradient(64% 52% at 50% 28%, rgba(255, 242, 214, 0.13), rgba(255, 242, 214, 0) 62%),
        var(--lemn-felt, radial-gradient(58% 64% at 50% 44%, #a01e1e 0%, #7c1313 46%, #560c0c 82%, #3e0808 100%)) !important;
    box-shadow:
        inset 0 0 76px rgba(0, 0, 0, 0.60),
        inset 0 0 0 2px rgba(0, 0, 0, 0.45),
        inset 0 0 0 3px rgba(255, 255, 255, 0.05),
        inset 0 6px 16px rgba(0, 0, 0, 0.45) !important;
    z-index: 0;
    pointer-events: none;
}

/* ── DECOR „LEMN" (luciu sheen + suporturi de pahar + locuri de pariere) — ca masa-rosie.html.
   Elementele sunt create O DATĂ în JS (holdem-table.js → injectExtras → buildLemnDecor); aici doar
   stilul + animațiile. Ascuns implicit; devine vizibil DOAR pe „lemn"+desktop (media query mai jos). ── */
.holdem-lemn-decor { position: absolute; inset: 0; pointer-events: none; display: none; }
/* z-index -1 → luciul (sheen) se pictează SUB banda argintie + felt (opace) → apare DOAR pe rama de lemn,
   NU peste felt (ca .poker-table::after din masa-rosie.html). .holdem-table-area are perspective → e
   context de stacking, deci -1 rămâne în interiorul mesei (peste fundalul de lemn, sub felt). */
.holdem-lemn-sheen { position: absolute; inset: 0; border-radius: 999px; overflow: hidden; z-index: -1; pointer-events: none; }
.holdem-lemn-sheen::before {
    content: ''; position: absolute; top: -50%; left: -60%; width: 46%; height: 200%;
    background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0));
    transform: rotate(8deg); animation: holdemLemnSheen 7s ease-in-out infinite;
}
/* CUPE — culoare + box-shadow EXACT ca .cup din masa-rosie.html */
.holdem-lemn-cup {
    position: absolute; width: clamp(20px, 3.2vw, 36px); height: clamp(20px, 3.2vw, 36px); border-radius: 50%; transform: translate(-50%, -50%); z-index: 1; pointer-events: none;
    background: radial-gradient(circle at 35% 28%, #7a5230 0%, #3d2009 45%, #1a0c03 100%);
    box-shadow: inset 0 4px 8px rgba(0, 0, 0, .90), inset 0 -2px 4px rgba(255, 220, 150, .30), 0 2px 3px rgba(255, 220, 130, .35), 0 0 0 1px rgba(0, 0, 0, .60);
}
/* SPOTURI — border + shadow EXACT ca .spot din masa-rosie.html */
.holdem-lemn-spot {
    position: absolute; width: clamp(26px, 2.7vw, 44px); height: clamp(26px, 2.7vw, 44px); border-radius: 50%; transform: translate(-50%, -50%); z-index: 1; pointer-events: none;
    border: 1.5px solid rgba(233, 196, 90, 0.14); box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.25);
}
/* LINIA DE PARIERE — inset + alpha EXACT ca .felt::after din masa-rosie.html (8.5% 5.5%, alb .10). */
.holdem-lemn-betline {
    position: absolute; inset: 8.5% 5.5%; border: 2px solid rgba(255, 255, 255, 0.10);
    border-radius: 999px; z-index: 1; pointer-events: none;
}
/* Nap — reflexie direcțională pe fetru cu mix-blend-mode:soft-light (ca .nap din masa-rosie.html).
   Inset = identic cu felt ::after → acoperă exact zona de fetru, nu și rama de lemn. */
.holdem-lemn-nap {
    position: absolute; inset: clamp(12px, 2.5vw, 36px); border-radius: 999px;
    pointer-events: none; z-index: 1; mix-blend-mode: soft-light; opacity: .7;
    background: linear-gradient(118deg, rgba(255, 255, 255, .18) 0%, rgba(255, 255, 255, 0) 32%, rgba(0, 0, 0, .14) 100%);
}
@keyframes holdemLemnSheen { 0% { left: -60%; } 55% { left: 130%; } 100% { left: 130%; } }
@keyframes holdemLemnFoil { 0% { background-position: 130% 0; } 100% { background-position: -30% 0; } }
/* luciul care mătură plăcuța de lemn a scaunului la RÂNDUL jucătorului — același ritm ca marginea mesei
   (holdemLemnSheen): trece o dată (0→55%), apoi se oprește scurt (55→100%). */
@keyframes holdemLemnSeatEdge { 0% { background-position: 155% 0; } 55% { background-position: -55% 0; } 100% { background-position: -55% 0; } }

/* ── „LEMN" · FORMA RACETRACK + RAMĂ + EMBLEMĂ + DECOR — pe TOATE lățimile (desktop + portret + landscape).
   Cerere user: masa IDENTICĂ pe desktop, portret și landscape. TOTUL în unități relative (clamp/vw/%) →
   ovalul, decorul, emblema (foil) și animațiile apar pe orice ecran ≥320px; sub 320 (extrem de rar) cade
   pe forma normală ca să nu se rupă. Insets-urile ramei vin din regulile de bază (clamp). ── */
@media (min-width: 320px) {
    body[data-holdem-theme="lemn"] .holdem-table-area { border-radius: 999px !important; overflow: visible !important; min-height: min(410px, 50vh); }
    body[data-holdem-theme="lemn"] .holdem-table-area::before { border-radius: 999px; }
    body[data-holdem-theme="lemn"] .holdem-table-area::after  { border-radius: 999px; }

    /* decorul (sheen + pahare + locuri pariere) devine vizibil */
    body[data-holdem-theme="lemn"] .holdem-lemn-decor { display: block; }

    /* EMBLEMĂ — ♠ mare + scris auriu „foil" (animat) + inel + suite, ca masa-rosie.html */
    /* EMBLEMĂ — alfe/culori EXACTE ca masa-rosie.html: inel .22, spade .28, suite .32, POKER foil .6/.95.
       (Dimensiunile sunt potrivite pentru masa de joc; culorile sunt identice cu mockup-ul.) */
    body[data-holdem-theme="lemn"] .holdem-felt-watermark { opacity: 1 !important; }
    body[data-holdem-theme="lemn"] .holdem-felt-watermark .logo-subtitle { display: none !important; }
    body[data-holdem-theme="lemn"] .holdem-felt-watermark .logo-title {
        font-family: Georgia, "Times New Roman", serif !important; font-weight: 700 !important;
        font-size: clamp(16px, 2vw, 32px) !important; letter-spacing: 0.42em !important; text-indent: 0.42em !important; padding-left: 0 !important;
        background: linear-gradient(92deg, rgba(214, 170, 70, .6) 0%, rgba(255, 244, 206, .95) 46%, rgba(214, 170, 70, .6) 60%, rgba(214, 170, 70, .6) 100%) !important;
        background-size: 230% 100% !important; -webkit-background-clip: text !important; background-clip: text !important;
        -webkit-text-fill-color: transparent !important; color: transparent !important;
        filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.55)) !important; text-shadow: none !important;
        animation: holdemLemnFoil 5.5s linear infinite !important;
    }
    body[data-holdem-theme="lemn"] .holdem-felt-watermark .logo-suit { font-size: clamp(10px, 0.95vw, 15px) !important; color: rgba(233, 196, 90, 0.32) !important; text-shadow: none !important; }
    body[data-holdem-theme="lemn"] .holdem-felt-watermark .logo-suit.red { color: rgba(233, 196, 90, 0.32) !important; }
    body[data-holdem-theme="lemn"] .holdem-felt-watermark::before {
        content: ''; position: absolute; width: clamp(150px, 16vw, 250px); height: clamp(150px, 16vw, 250px); left: 50%; top: 50%; transform: translate(-50%, -50%);
        border-radius: 50%; border: 2px solid rgba(233, 196, 90, 0.22); box-shadow: inset 0 0 0 5px rgba(233, 196, 90, 0.06), inset 0 0 22px rgba(0, 0, 0, 0.30); z-index: -1; pointer-events: none;
    }
    body[data-holdem-theme="lemn"] .holdem-felt-watermark::after {
        content: '\2660'; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -205%);
        font-size: clamp(38px, 4vw, 66px); line-height: 0.7; color: rgba(233, 196, 90, 0.28);
        text-shadow: 0 2px 3px rgba(0, 0, 0, 0.5), 0 -1px 1px rgba(255, 255, 255, 0.14); z-index: -1; pointer-events: none;
    }
}

/* ── SCAUNELE OPONENȚILOR pe „lemn" — plăcuțe de lemn (ramă + bizou + grăunte ca rama mesei), nume cu
   FOIȚĂ AURIE + sheen alb pe lemn (IDENTIC cu masa-rosie.html .brand / .poker-table::after). Pe TOATE
   lățimile, INCLUSIV MOBIL — clamp() ține dimensiunile mici pe telefon; fără overflow ca să nu taie scor/badge.
   (Mutat în afara @media 481px — pe mobil scaunele oponenților trebuie să fie tot din lemn.) ── */
body[data-holdem-theme="lemn"] #holdemRoot .holdem-opp-card {
        background:
            linear-gradient(135deg, rgba(26, 17, 9, 0.97), rgba(12, 8, 4, 0.98)) padding-box,
            repeating-linear-gradient(88deg, rgba(38, 22, 8, 0.42) 0 1px, transparent 1px 4px) border-box,
            linear-gradient(160deg, #e2b87c 0%, #b07838 28%, #7a4a1e 58%, #4a2c12 100%) border-box !important;
        border: clamp(3px, 0.45vw, 6px) solid transparent !important;
        border-radius: clamp(10px, 1.1vw, 18px) !important;
        box-shadow: 0 clamp(4px, 0.6vw, 9px) clamp(10px, 1.5vw, 22px) rgba(0, 0, 0, 0.7), 0 1px 0 rgba(255, 235, 195, 0.22), inset 0 0 0 1px rgba(0, 0, 0, 0.42), 0 0 0 1px #2a1708 !important;
        position: relative !important;
    }
    /* pseudo-urile generice de pod (linia aurie + border-mask) nu se aplică pe lemn — avem plăcuța noastră */
    body[data-holdem-theme="lemn"] #holdemRoot .holdem-opp-card::before { display: none !important; }
    /* SHEEN alb pe lemn — CONTINUU, identic cu marginea mesei din masa-rosie.html (.poker-table::after, sheen 7s).
       inset negativ (= grosimea ramei) → banda acoperă RAMA DE LEMN; overlay → apare pe lemn, nu pe interiorul închis. */
    body[data-holdem-theme="lemn"] #holdemRoot .holdem-opp-card::after {
        content: '' !important; display: block !important; position: absolute !important;
        inset: calc(-1 * clamp(3px, 0.45vw, 6px)) !important; border-radius: inherit !important;
        background: linear-gradient(100deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.42) 50%, rgba(255, 255, 255, 0) 60%) !important;
        background-size: 240% 100% !important; background-repeat: no-repeat !important;
        mix-blend-mode: overlay !important; pointer-events: none !important;
        animation: holdemLemnSeatEdge 7s ease-in-out infinite !important;
    }
    /* NUME = foiță aurie IDENTICĂ cu masa-rosie.html .brand (POKER): gradient auriu + background-clip:text + foil 5.5s */
    body[data-holdem-theme="lemn"] #holdemRoot .holdem-opp-name {
        background: linear-gradient(92deg, rgba(214, 170, 70, 0.6) 0%, rgba(255, 244, 206, 0.95) 46%, rgba(214, 170, 70, 0.6) 60%, rgba(214, 170, 70, 0.6) 100%) !important;
        background-size: 230% 100% !important;
        -webkit-background-clip: text !important; background-clip: text !important;
        -webkit-text-fill-color: transparent !important; color: transparent !important;
        filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.55)) !important; text-shadow: none !important;
        font-family: 'Cinzel', Georgia, serif !important; font-weight: 700 !important;
        animation: holdemLemnFoil 5.5s linear infinite !important;
    }
    body[data-holdem-theme="lemn"] #holdemRoot .holdem-opp-avatar {
        background: linear-gradient(135deg, #2a1c0e, #1a1107) padding-box, linear-gradient(135deg, #f3d27a, #b8860b, #f3d27a) border-box !important;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.7), inset 0 1px 3px rgba(255, 255, 255, 0.2) !important;
    }
    /* (sheen-ul e acum CONTINUU pe ::after de mai sus — identic cu masa-rosie; nu mai e doar pe current-turn) */

/* ── SCAUNUL DE JOS (sud, dock-ul tău) pe „lemn" — aceeași plăcuță de lemn ca oponenții + masa: ramă lemn
   (clamp), nume cu FOIȚĂ AURIE, avatar cu inel auriu, sheen alb continuu pe lemn. Pe TOATE lățimile. ── */
body[data-holdem-theme="lemn"] #holdemRoot .holdem-my-crest {
    background:
        linear-gradient(135deg, rgba(26, 17, 9, 0.97), rgba(12, 8, 4, 0.98)) padding-box,
        repeating-linear-gradient(88deg, rgba(38, 22, 8, 0.42) 0 1px, transparent 1px 4px) border-box,
        linear-gradient(160deg, #e2b87c 0%, #b07838 28%, #7a4a1e 58%, #4a2c12 100%) border-box !important;
    border: clamp(3px, 0.45vw, 6px) solid transparent !important;
    box-shadow: 0 clamp(4px, 0.6vw, 9px) clamp(10px, 1.5vw, 22px) rgba(0, 0, 0, 0.7), inset 0 0 0 1px rgba(0, 0, 0, 0.42), 0 0 0 1px #2a1708 !important;
    position: relative !important;
    overflow: visible !important;
}
body[data-holdem-theme="lemn"] #holdemRoot .holdem-my-crest::after {
    content: '' !important; display: block !important; position: absolute !important;
    inset: calc(-1 * clamp(3px, 0.45vw, 6px)) !important; border-radius: inherit !important;
    background: linear-gradient(100deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.42) 50%, rgba(255, 255, 255, 0) 60%) !important;
    background-size: 240% 100% !important; background-repeat: no-repeat !important;
    mix-blend-mode: overlay !important; pointer-events: none !important;
    animation: holdemLemnSeatEdge 7s ease-in-out infinite !important;
}
body[data-holdem-theme="lemn"] #holdemRoot .holdem-my-name {
    background: linear-gradient(92deg, rgba(214, 170, 70, 0.6) 0%, rgba(255, 244, 206, 0.95) 46%, rgba(214, 170, 70, 0.6) 60%, rgba(214, 170, 70, 0.6) 100%) !important;
    background-size: 230% 100% !important;
    -webkit-background-clip: text !important; background-clip: text !important;
    -webkit-text-fill-color: transparent !important; color: transparent !important;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.55)) !important; text-shadow: none !important;
    font-family: 'Cinzel', Georgia, serif !important; font-weight: 700 !important;
    animation: holdemLemnFoil 5.5s linear infinite !important;
}
body[data-holdem-theme="lemn"] #holdemRoot .holdem-my-avatar {
    background: linear-gradient(135deg, #2a1c0e, #1a1107) padding-box, linear-gradient(135deg, #f3d27a, #b8860b, #f3d27a) border-box !important;
}

/* ── Scaunele laterale-jos (wsw/ese) urcate pe curba ovalului — DOAR pe desktop (≥901px). Pe mobil/tabletă
   layout-ul are propriile poziții de scaun (%), NU le suprascriem ca să nu le stricăm. ── */
/* === CHIP STACK ON AVATAR === */
.holdem-avatar-chip-stack {
    position: absolute; bottom: -6px; right: -6px;
    width: 18px; height: 18px;
    background: radial-gradient(circle at 35% 35%, #fff8dc, var(--holdem-gold, #ffd700), #c9941a);
    border: 2px solid #fff; border-radius: 50%;
    color: #2a1810; font-size: 10px; font-weight: 900;
    font-family: 'Cinzel', serif;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6), inset 0 1px 2px rgba(255, 255, 255, 0.5);
    z-index: 11;
}

/* === TURN ANNOUNCEMENT === */
.holdem-turn-announce {
    position: fixed; top: 110px; left: 50%; transform: translateX(-50%);
    z-index: 3000;
    padding: 10px 24px;
    background: linear-gradient(180deg, rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.95), rgba(28, 35, 51, 0.9));
    border: 1.5px solid rgba(74, 222, 128, 0.5);
    border-radius: 22px;
    color: #4ade80;
    font-family: 'Cinzel', serif; font-size: 14px; font-weight: 700;
    letter-spacing: 0.8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6), 0 0 24px rgba(74, 222, 128, 0.35);
    opacity: 0; pointer-events: none;
    transition: opacity 0.4s, transform 0.4s;
    backdrop-filter: blur(8px);
}
.holdem-turn-announce.visible {
    opacity: 1; transform: translateX(-50%) translateY(4px);
}

/* === STATS PANEL === */
.holdem-stats-panel {
    position: fixed; top: 70px; right: 16px; z-index: 50;
    padding: 10px 14px;
    background: rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.85);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3);
    border-radius: 10px;
    backdrop-filter: blur(8px);
    color: var(--holdem-text-mid, #cbd5e1); font-size: 11px;
    font-family: 'Inter', sans-serif;
    display: none;
}
.holdem-stats-panel.visible { display: block; }
.holdem-stats-row {
    display: flex; justify-content: space-between; gap: 16px;
}
.holdem-stats-row b {
    color: var(--holdem-gold, #ffd700); font-family: 'Cinzel', serif; font-size: 13px;
}

/* ═══════════════════════════════════════════════
   PER-SEAT PLAYED CARD SLOT (cărți jucate lângă fiecare jucător)
   ═══════════════════════════════════════════════ */

/* Hide main trick area — folosim slots per jucător */
.holdem-trick { display: none !important; }

.holdem-seat-played-card {
    position: absolute;
    width: 56px;
    height: 80px;
    pointer-events: none;
    z-index: 6;
    transition: opacity 0.3s;
    opacity: 1;
}

/* North + NE/NW: cartea apare SUB avatar (în interior felt-ului) */
.holdem-opp-north .holdem-seat-played-card,
.holdem-opp-ne .holdem-seat-played-card,
.holdem-opp-nw .holdem-seat-played-card {
    bottom: -94px;
    left: 50%;
    transform: translateX(-50%);
}

/* East: cartea la STÂNGA panel-ului (spre centrul mesei), DREAPTĂ */
.holdem-opp-east .holdem-seat-played-card {
    left: -74px;
    top: 50%;
    transform: translateY(-50%);
}

/* West: cartea la DREAPTA panel-ului (spre centrul mesei), DREAPTĂ */
.holdem-opp-west .holdem-seat-played-card {
    right: -74px;
    top: 50%;
    transform: translateY(-50%);
}

/* My played card — în interior felt-ului la marginea de jos centru
   (cu celelalte 3 cărți, ca în Macao - patrat central) */
.holdem-my-played-card {
    position: absolute;
    bottom: 14px;
    left: 50%;
    right: auto;
    top: auto;
    transform: translateX(-50%);
    width: 60px;
    height: 85px;
    z-index: 6;
}

/* NOTE: regula veche `holdem-slide-from-bottom-felt` (cu translateX(-50%) în keyframe +
   animation backwards) a fost ȘTEARSĂ — cauza bug-ului "cartea sare după ce e pusă":
   keyframe-ul avea translateX(-50%), dar animația fiind `backwards` (nu forwards), la
   FINAL cartea revenea la starea naturală (fără translateX) → SALT de ~28px la dreapta.
   Acum se aplică `.holdem-my-played-card .holdem-card` din blocul de mai jos (slide-from-bottom,
   FĂRĂ translateX) → cartea alunecă de jos și RĂMÂNE fix unde trebuie. */

/* === Cards in slots (Macao style — slide din direcția jucătorului) === */
.holdem-seat-played-card .holdem-card {
    width: 56px !important;
    height: 80px !important;
    margin: 0 !important;
    border-radius: 7px !important;
    box-shadow:
        0 8px 18px rgba(0, 0, 0, 0.6),
        inset 0 0 0 1px rgba(255, 255, 255, 0.7) !important;
}

.holdem-seat-played-card .holdem-card-rank { font-size: 13px !important; }
.holdem-seat-played-card .holdem-card-suit-small { font-size: 10px !important; }
.holdem-seat-played-card .holdem-card-pip { font-size: 30px !important; }

/* ── STRÂNGEREA MÂINII ── când mâna se termină, toate cărțile (inclusiv ultima)
   se țin ~420ms vizibile, apoi alunecă spre centrul mesei, se micșorează și dispar. */
@keyframes holdem-trick-gather {
    0%   { transform: translate(0, 0) scale(1) rotate(0deg); opacity: 1; }
    10%  { transform: translate(0, -7px) scale(1.05) rotate(0deg); opacity: 1; }  /* ridicare — acknowledge */
    22%  { transform: translate(0, -7px) scale(1.05) rotate(0deg); opacity: 1; }  /* ținere — se văd toate cărțile */
    /* FAZA 1: toate cărțile se adună în CENTRU → PACHET (teanc aliniat, mică rotație de teanc) */
    48%  { transform: translate(var(--cx, 0), var(--cy, 0)) scale(0.9) rotate(var(--sr, 0deg)); opacity: 1; }
    60%  { transform: translate(var(--cx, 0), var(--cy, 0)) scale(0.9) rotate(var(--sr, 0deg)); opacity: 1; }  /* ține pachetul scurt */
    /* FAZA 2: pachetul se DUCE în dreptul câștigătorului + se micșorează și dispare (cules) */
    100% { transform: translate(calc(var(--cx, 0) + var(--wx, 0)), calc(var(--cy, 0) + var(--wy, 0))) scale(0.42) rotate(var(--sr, 0deg)); opacity: 0; }
}
.holdem-seat-played-card .holdem-card.holdem-gathering {
    animation: holdem-trick-gather 1.5s cubic-bezier(0.45, 0, 0.55, 1) forwards !important;
    z-index: 60 !important;
    pointer-events: none;
    box-shadow:
        0 14px 30px rgba(0, 0, 0, 0.7),
        inset 0 0 0 1px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55) !important;
}

/* STRÂNGERE SECVENȚIALĂ (una după alta) — 2 clase, controlate din JS:
   FAZA 1: fiecare carte zboară în CENTRU pe rând (holdem-gather-c, cu animation-delay) și RĂMÂNE (pachet).
   FAZA 2: după ce toate-s în centru, pachetul se duce la câștigător împreună (holdem-gather-w). */
.holdem-seat-played-card .holdem-card.holdem-gather-c {
    animation: holdem-gather-to-center 0.32s cubic-bezier(0.4, 0, 0.3, 1) forwards !important;
    z-index: 60 !important;
    pointer-events: none;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.7), inset 0 0 0 1px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55) !important;
}
@keyframes holdem-gather-to-center {
    0%   { transform: translate(0, 0) scale(1) rotate(0deg); }
    35%  { transform: translate(0, -7px) scale(1.04) rotate(0deg); }   /* mică ridicare — acknowledge */
    100% { transform: translate(var(--cx, 0), var(--cy, 0)) scale(0.92) rotate(var(--sr, 0deg)); }
}
.holdem-seat-played-card .holdem-card.holdem-gather-w {
    animation: holdem-pack-to-winner 0.55s cubic-bezier(0.5, 0, 0.7, 1) forwards !important;
    z-index: 60 !important;
    pointer-events: none;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.7), inset 0 0 0 1px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55) !important;
}
@keyframes holdem-pack-to-winner {
    0%   { transform: translate(var(--cx, 0), var(--cy, 0)) scale(0.92) rotate(var(--sr, 0deg)); opacity: 1; }
    100% { transform: translate(calc(var(--cx, 0) + var(--wx, 0)), calc(var(--cy, 0) + var(--wy, 0))) scale(0.4) rotate(var(--sr, 0deg)); opacity: 0; }
}

/* Cartea alunecă din direcția jucătorului — Macao pattern, cubic-bezier spring */
.holdem-opp-north .holdem-seat-played-card .holdem-card,
.holdem-opp-ne .holdem-seat-played-card .holdem-card,
.holdem-opp-nw .holdem-seat-played-card .holdem-card {
    animation: holdem-slide-from-top 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
}

.holdem-opp-east .holdem-seat-played-card .holdem-card {
    animation: holdem-slide-from-right 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
}

.holdem-opp-west .holdem-seat-played-card .holdem-card {
    animation: holdem-slide-from-left 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
}

.holdem-my-played-card .holdem-card {
    animation: holdem-slide-from-bottom 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
    /* FIX BUG #7 CSS (audit): margin-left:-22px moștenit din `.holdem-card` baseline deplasa
       cartea jucată stânga. Reset la 0 ca pip-ul să fie centrat în slot. */
    margin: 0 !important;
}

@keyframes holdem-slide-from-top {
    0% { opacity: 0; transform: translateY(-70px) scale(0.8); }
    70% { opacity: 1; transform: translateY(4px) scale(1.04); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes holdem-slide-from-bottom {
    0% { opacity: 0; transform: translateY(70px) scale(0.8); }
    70% { opacity: 1; transform: translateY(-4px) scale(1.04); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes holdem-slide-from-left {
    0% { opacity: 0; transform: translateX(-70px) scale(0.8); }
    70% { opacity: 1; transform: translateX(4px) scale(1.04); }
    100% { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes holdem-slide-from-right {
    0% { opacity: 0; transform: translateX(70px) scale(0.8); }
    70% { opacity: 1; transform: translateX(-4px) scale(1.04); }
    100% { opacity: 1; transform: translateX(0) scale(1); }
}

/* === Cartea iese din mână când o joc (Macao discard pattern) === */
.holdem-my-hand .holdem-card.playing-out {
    animation: holdem-card-leave-hand 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    pointer-events: none;
}

@keyframes holdem-card-leave-hand {
    0% { opacity: 1; transform: translateY(0) scale(1); }
    50% { opacity: 0.8; transform: translateY(-50px) scale(1.1); }
    100% { opacity: 0; transform: translateY(-120px) scale(0.7); }
}

/* === Card backs sub avatar — Macao deal stagger (90ms style) ===
   FIX BUG #6 CSS (audit): selector RESTRÂNS la `.fresh-deal-back` (era pe TOATE .holdem-card-back).
   Anterior: keyframe-ul final-stage seta `transform: rotate(...)` care PERSISTA — cardback-urile
   din deck/oponenți rămâneau înclinate strâmb după prima rundă, override-ind `transform:none`. */
.holdem-card-back.fresh-deal-back {
    animation: holdem-back-deal 0.4s cubic-bezier(0.22, 1.2, 0.36, 1) backwards;
    animation-delay: calc(var(--idx, 0) * 60ms);
}

@keyframes holdem-back-deal {
    0% { opacity: 0; transform: scale(0.3); }
    100% { opacity: 1; transform: rotate(calc(var(--idx, 0) * 1.5deg - 4deg)); }
}

/* ═══════════════════════════════════════════════
   TIMER RING SVG (countdown circular pe avatar activ)
   ═══════════════════════════════════════════════ */

.holdem-timer-ring {
    position: absolute;
    inset: -4px;
    width: calc(100% + 8px);
    height: calc(100% + 8px);
    pointer-events: none;
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s;
}

.holdem-opponent.current-turn .holdem-timer-ring,
.holdem-my-info.current-turn .holdem-timer-ring {
    opacity: 1;
}

.holdem-timer-ring .ring-bg {
    fill: none;
    stroke: rgba(0, 0, 0, 0.45);
    stroke-width: 5;
}

.holdem-timer-ring .ring-fg {
    fill: none;
    stroke: #4ade80;
    stroke-width: 5;
    stroke-linecap: round;
    transition: stroke-dashoffset 1s linear, stroke 0.5s;
    filter: drop-shadow(0 0 6px #4ade80);
}

.holdem-timer-ring .ring-fg.warning {
    stroke: #fbbf24;
    filter: drop-shadow(0 0 6px #fbbf24);
}

.holdem-timer-ring .ring-fg.danger {
    stroke: #ef4444;
    filter: drop-shadow(0 0 8px #ef4444);
    animation: holdem-timer-danger 0.5s ease-in-out infinite;
}

@keyframes holdem-timer-danger {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* Allow overflow ca să se vadă timer ring */
.holdem-opp-avatar,
.holdem-my-avatar {
    overflow: visible !important;
}

.holdem-opp-avatar img,
.holdem-my-avatar img,
.holdem-opp-avatar .avatar-initial,
.holdem-my-avatar .avatar-initial {
    border-radius: 50%;
}

/* ═══════════════════════════════════════════════
   PRO ANIMATIONS (Card fly, confetti, fireworks, score pulse)
   ═══════════════════════════════════════════════ */

/* Cards fly TO winner pe trickComplete */
@keyframes holdem-trick-collect {
    0% { opacity: 1; transform: translate(var(--cur-x, 0), var(--cur-y, 0)) scale(1) rotate(0); }
    60% { opacity: 0.9; transform: translate(calc(var(--winner-x, 0) * 0.7), calc(var(--winner-y, 0) * 0.7)) scale(0.8) rotate(180deg); }
    100% { opacity: 0; transform: translate(var(--winner-x, 0), var(--winner-y, 0)) scale(0.3) rotate(360deg); }
}

.holdem-trick-slot.collecting {
    animation: holdem-trick-collect 0.7s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
    z-index: 999 !important;
}

/* Confetti particle */
.holdem-confetti-particle {
    position: fixed;
    width: 8px;
    height: 12px;
    pointer-events: none;
    z-index: 9999;
    border-radius: 2px;
    animation: holdem-confetti-fall 1.6s cubic-bezier(0.5, 0.05, 0.95, 0.5) forwards;
}

@keyframes holdem-confetti-fall {
    0% { opacity: 1; transform: translate(0, 0) rotate(0deg) scale(1); }
    100% { opacity: 0; transform: translate(var(--end-x, 0), var(--end-y, 400px)) rotate(var(--end-rot, 720deg)) scale(0.5); }
}

/* Score chip pulse soft pe schimbare (no rotate, no aggressive) */
@keyframes holdem-score-pulse {
    0% { transform: scale(1); }
    40% { transform: scale(1.25); box-shadow: 0 0 28px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.7); }
    100% { transform: scale(1); }
}

.holdem-score-pulse {
    animation: holdem-score-pulse 0.7s ease-out;
}

/* Bid chip flies in */
/* Chip fly-in pe oponent la bidPlaced — SUBTIL doar fade (era translateY -100→+20→0 + rotate -180→20→0 + scale 0→1.3→1, agresiv) */
@keyframes holdem-chip-fly-in {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

.holdem-bid-placed-anim {
    animation: holdem-chip-fly-in 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Trick win golden burst */
@keyframes holdem-win-burst {
    0% { box-shadow: 0 0 0 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.8); }
    50% { box-shadow: 0 0 0 30px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4), 0 0 60px 30px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3); }
    100% { box-shadow: 0 0 0 60px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0); }
}

.holdem-winner-burst {
    animation: holdem-win-burst 1s ease-out !important;
}

/* Round end fireworks particle */
@keyframes holdem-firework {
    0% { opacity: 1; transform: translate(0, 0) scale(0.5); }
    50% { opacity: 1; transform: translate(var(--fx, 60px), var(--fy, -60px)) scale(1.5); }
    100% { opacity: 0; transform: translate(var(--fx, 80px), var(--fy, -80px)) scale(0.3); }
}

.holdem-firework-particle {
    position: fixed;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 9999;
    animation: holdem-firework 1.5s ease-out forwards;
    box-shadow: 0 0 12px currentColor;
}

/* Deal animation — cărțile zboară din centru-sus (dealer) la mână cu stagger */
@keyframes holdem-deal-from-center {
    0% {
        opacity: 0;
        transform: translateY(-160px) scale(0.4) rotate(180deg);
    }
    60% {
        opacity: 1;
        transform: translateY(8px) scale(1.06) rotate(8deg);
    }
    100% {
        opacity: 1;
        transform: translateY(var(--fan-y, 0)) rotate(var(--fan-rotate, 0deg)) scale(1);
    }
}

.holdem-my-hand .holdem-card.fresh-deal {
    animation: holdem-deal-from-center 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    animation-delay: calc(var(--idx, 0) * 90ms);
}

/* Deal animation card backs oponenți (zboară de sus) */
@keyframes holdem-deal-back {
    0% { opacity: 0; transform: translateY(-100px) scale(0.3); }
    100% { opacity: 1; transform: rotate(calc(var(--idx, 0) * 1.5deg - 4deg)) scale(1); }
}

.holdem-card-back.fresh-deal-back {
    animation: holdem-deal-back 0.4s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    animation-delay: calc(var(--idx, 0) * 70ms);
}

/* holdem-card-flip REMOVED — folosim holdem-card-place (elegant fade+scale) */

/* Conic ring DISABLED — replaced cu elegant pulse */
.holdem-opponent.current-turn .holdem-opp-card::after {
    display: none;
}

/* Felt glow când e turn-ul meu */
body.holdem-my-turn-active .holdem-table-area {
    box-shadow:
        inset 0 0 100px rgba(74, 222, 128, 0.18),
        inset 0 0 0 2px #2a1810,
        inset 0 0 0 4px #5a3520,
        inset 0 0 0 8px #3a2010,
        inset 0 0 0 10px rgba(74, 222, 128, 0.5),
        inset 0 0 0 11px rgba(74, 222, 128, 0.2),
        0 0 32px rgba(0, 0, 0, 0.7),
        0 8px 24px rgba(0, 0, 0, 0.5),
        0 0 60px rgba(74, 222, 128, 0.3) !important;
}

/* Hover card — subtle, no aggressive shift on neighbors */
.holdem-card.playable:hover {
    z-index: 999 !important;
}

/* === Auto-play toast (Macao style) === */
/* Indicator AFK discret + profesional — apare O DATĂ când pleci AFK (joc automat),
   rămâne subtil sus-centru, dispare lin când revii și joci manual.
   Glass întunecat + accent auriu (temă cazino), punct care pulsează blând. NU roșu alarmant. */
.holdem-auto-badge {
    position: fixed;
    top: 64px;
    left: 50%;
    transform: translateX(-50%) translateY(-12px);
    z-index: 5000;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 16px;
    background: rgba(18, 22, 31, 0.82);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.32);
    border-radius: 999px;
    color: #f3e6c4;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.3px;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.5);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.holdem-auto-badge.visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.holdem-auto-badge .holdem-auto-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ffd54a;
    box-shadow: 0 0 8px rgba(255, 213, 74, 0.9);
    animation: holdem-auto-pulse 1.4s ease-in-out infinite;
}
@keyframes holdem-auto-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.35; transform: scale(0.65); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN TOKENS — desktop/tablet (≥901px)
   Modifică DOAR aici pentru a ajusta toate dimensiunile desktop/tabletă.
   ds = desktop; valorile sunt folosite în @media blocks de mai jos.
   ═══════════════════════════════════════════════════════════════════════════ */
:root {
    /* Tabel masă */
    --ds-table-max-w:       1180px;  /* max-width masa pe desktop */
    --ds-table-max-h:        820px;  /* max-height masa pe desktop */
    --ds-sidebar-w:          200px;  /* lățime sidebar (≤1200px) */

    /* Bottom row — DESKTOP MARE ≥1024px */
    --ds-bottom-col-w:       290px;  /* lățime coloane info/dock la 1024px+ */
    --ds-bottom-gap:          12px;  /* gap între coloane la 1024px+ */
    --ds-bottom-pad-v:        10px;  /* padding vertical bottom-row 1024px+ */
    --ds-bottom-pad-h:        14px;  /* padding orizontal bottom-row 1024px+ */

    /* Bottom row — TABLETĂ LANDSCAPE 901–1023px */
    --ds-bottom-col-w-tab:   240px;  /* lățime coloane info/dock la 901-1023px */
    --ds-bottom-gap-tab:       8px;  /* gap între coloane la 901-1023px */
    --ds-bottom-pad-v-tab:     8px;  /* padding vertical bottom-row tabletă */
    --ds-bottom-pad-h-tab:    10px;  /* padding orizontal bottom-row tabletă */
    --ds-infodock-minh-tab:   80px;  /* min-height info/dock la tabletă */

    /* Scaune adversari — ≤900px */
    --ds-opp-card-minw:      124px;  /* min-width chip oponent la ≤900 */
    --ds-opp-avatar-sz:       38px;  /* avatar oponent la ≤900 */
    --ds-opp-name-fs:         11px;  /* font-size nume oponent la ≤900 */
    --ds-opp-score-sz:        30px;  /* dimensiune scor oponent la ≤900 */

    /* 6P chip vertical — 901–1200px */
    --ds-6p-chip-minw:       102px;
    --ds-6p-chip-maxw:       124px;
    --ds-6p-name-maxw:       110px;
    --ds-6p-name-fs:        11.5px;
}

/* ═══════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════ */
@media (max-width: 1200px) {
    .holdem-root {
        grid-template-columns: 1fr var(--ds-sidebar-w);
    }
}

/* ECRANE LATE (laptop / desktop / ultrawide) — cerere user „fără spații moarte, folosește spațiul".
   `#app` e plafonat GLOBAL la 1200px → masa lăsa ~160px+ gol pe laturi pe 1366/1920+. DOAR când jocul
   holdem e activ ȘI doar peste 1200px, las masa să umple până la min(97vw, 1700px): laptop/desktop se
   umplu, ultrawide se centrează rezonabil (standard pro — o masă de cărți pe 3440px full-width ar fi
   absurdă). Scaunele sunt poziționate procentual → scalează proporțional cu feltul lărgit.
   Scopat la `body.holdem-game-active` → NU afectează lobby-ul sau alte jocuri. (Verificat live 1366/1920/2560.) */
@media (min-width: 1201px) {
    body.holdem-game-active #app { max-width: min(97vw, 1700px) !important; width: 100% !important; }
}

/* ≤900px (tabletă/landscape mic): layout CURENT — fără topbar, sidebar ascuns, o coloană */
@media (max-width: 900px) {
    .holdem-root {
        /* v17.2 (cerere user „nu se vede userul de jos"): rândul de jos AUTO (înălțime pe
           conținut real, nu fix 200px) + padding-bottom 64px pentru nav-rail-ul de jos
           (position:fixed) care altfel SUPRAPUNEA scaunul south. */
        grid-template-rows: minmax(0, 1fr) auto;
        grid-template-columns: 1fr;
        grid-template-areas:
            "felt"
            "bottom";
        padding-bottom: 80px;   /* lasă loc pentru nav-rail FIXED de jos (60px + buffer 20) */
        box-sizing: border-box;
    }
    /* Min-height suficient pentru cards (96) + my-info/dock side-by-side (96) + gap = 200 */
    .holdem-player-area { min-height: 200px; }
    .holdem-sidebar { display: none; }
    .holdem-table-area { margin: 4px; }
    .holdem-felt-watermark .logo-title { font-size: 56px; letter-spacing: 8px; }
    .holdem-felt-watermark .logo-subtitle { font-size: 10px; letter-spacing: 6px; }
    .holdem-felt-watermark .logo-suit { font-size: 16px; }
    .holdem-opp-card { min-width: var(--ds-opp-card-minw); padding: 6px 10px; }
    .holdem-opp-avatar { width: var(--ds-opp-avatar-sz); height: var(--ds-opp-avatar-sz); }
    .holdem-opp-name { font-size: var(--ds-opp-name-fs); max-width: 74px; }
    .holdem-opp-stats { font-size: 9px; }
    .holdem-opp-score { width: var(--ds-opp-score-sz); height: var(--ds-opp-score-sz); font-size: 12px; }
    /* v17 (#2b): mesele FULL RING 7-9 — ese/wsw sub east/west, nne între north și ne.
       Pe ≤900 east/west stau la mijloc; ese/wsw coboară lateral fără suprapunere. */
    .holdem-opp-ese { top: 76%; right: 14px; transform: translateY(-50%); }
    .holdem-opp-wsw { top: 76%; left: 14px; transform: translateY(-50%); }
    .holdem-opp-nne { top: 14px; right: 32%; }
    /* CRITIC (cerere user — „cartile sunt taiate jos"): pe ORICE viewport mobile/tabletă
       (sub 900px), ASCUND corner-br din cărțile din mâna mea. Hand-ul are margin-left
       negativ (cărți suprapuse) → rank-ul bottom-right rotit 180° era acoperit de cartea
       următoare → se vedea „01" în loc de „10", „O" în loc de „Q". Pe mobile pip-ul
       central + corner-tl sunt suficient pentru identificarea cărții. */
    .holdem-my-hand .holdem-card-corner-br { display: none !important; }
}

/* ⚠️ IMMERSIVE = nav-rail ascuns → MASA recuperează cei 80px de padding-bottom (rezervați la L4663
   pentru nav-rail-ul FIXED de jos). Pe landscape `immersive-mode` e pornit AUTO (holdem-pro.js), dar
   padding-ul rămânea → felt-ul (1fr) era strivit la 116px deși nav-rail-ul NU se afișa, iar scaunul
   sud părea mai mare decât masa. Acum, când nav-rail e ascuns (immersive), padding 0 → MASA crește
   (verificat live: felt 116→196px, masă 108→188px; south neatins). Când NU e immersive (nav-rail
   vizibil), rămâne 80px ca nav-rail-ul fix să nu acopere scaunul sud. `env()` = buffer notch. */
body.immersive-mode #holdemRoot.holdem-root { padding-bottom: env(safe-area-inset-bottom, 0px) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN TOKENS — mobile portrait (≤700px)
   Modifică DOAR aici pentru a ajusta toate dimensiunile mobile/portrait.
   mb = mobile; valorile sunt folosite în @media blocks de mai jos.
   ═══════════════════════════════════════════════════════════════════════════ */
:root {
    /* Cărți în mână — ≤700px */
    --mb-card-w:             56px;   /* lățime card în mână ≤700 */
    --mb-card-h:             80px;   /* înălțime card în mână ≤700 */
    --mb-card-ml:           -17px;   /* margin-left overlap cărți ≤700 */
    --mb-card-rank-fs:       15px;   /* font-size rank card ≤700 */
    --mb-card-suit-fs:       12px;   /* font-size suit card ≤700 */
    --mb-card-pip-fs:        26px;   /* font-size pip card ≤700 */
    --mb-hand-min-h:         88px;   /* min-height zona mâinii ≤700 */

    /* Cărți jucate pe felt — ≤700px */
    --mb-played-card-w:      68px;   /* lățime carte jucată ≤700 */
    --mb-played-card-h:      96px;   /* înălțime carte jucată ≤700 */
    --mb-played-rank-fs:     17px;   /* font-size rank carte jucată ≤700 */
    --mb-played-pip-fs:      30px;   /* font-size pip carte jucată ≤700 */

    /* Avatare — ≤700px */
    --mb-my-avatar-sz:       36px;   /* avatar jucătorul meu ≤700 */
    --mb-opp-avatar-sz:      36px;   /* avatar oponent ≤700 */

    /* Scor badge — ≤700px */
    --mb-my-score-sz:        28px;   /* dimensiune scor badge jucător meu ≤700 */
    --mb-my-score-fs:        12px;   /* font-size scor badge ≤700 */

    /* Dock butoane — ≤700px */
    --mb-dock-btn-sz:        25px;   /* dimensiune buton dock ≤700 */
    --mb-dock-btn-fs:        11px;   /* font-size buton dock ≤700 */

    /* Font sizes text — ≤700px */
    --mb-name-fs:            11px;   /* font-size nume jucător ≤700 */
    --mb-opp-name-fs:       9.5px;   /* font-size nume oponent ≤700 */
    --mb-opp-name-maxw:      86px;   /* max-width nume oponent ≤700 */

    /* Scor oponent puck — ≤700px */
    --mb-opp-score-minh:     22px;   /* min-width/height scor oponent ≤700 */
    --mb-opp-score-fs:       11px;   /* font-size scor oponent ≤700 */

    /* Deck (talon + atu) — ≤700px */
    --mb-deck-stack-w:       30px;
    --mb-deck-stack-h:       42px;
    --mb-deck-atu-w:         22px;
    --mb-deck-atu-h:         31px;

    /* Spotlight (animație fundal) — ≤700px */
    --mb-spotlight-sz:      150px;
}

/* ≤700px (telefon): dock jos pe 2 rânduri — MÂNA full-width sus, info + dock compacte dedesubt.
   Așa cărțile au tot rândul (ușor de atins), iar scaunul + dock-ul stau strâns pe rândul de jos. */
@media (max-width: 700px) {
    .holdem-player-area {
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 2px 10px;           /* gap VERTICAL 2px (era 6px) — TEST + RÂNDUL TĂU se lipesc DE cărți (cerere user) */
        margin: 0 4px 4px;
        padding: 4px 8px 6px;    /* padding-top 4px (era 6px) — cărțile mai sus în panou */
        border-radius: 12px;
    }
    /* ── DOCK calculat: rând1 = mâna (60% înălțime dock); rând2 = scaun + acțiuni (50/50) ── */
    .holdem-my-hand {
        order: 1;
        flex: 0 0 100%;
        width: 100%;
        min-height: var(--mb-hand-min-h);
        padding: 0;
        margin-bottom: 0 !important;   /* zero space între cărți și rândul de jos */
    }
    .holdem-my-hand .holdem-card { width: var(--mb-card-w); height: var(--mb-card-h); margin-left: var(--mb-card-ml); }
    .holdem-my-hand .holdem-card:first-child { margin-left: 0; }

    .holdem-my-info {
        order: 2;
        flex: 1 1 0;
        width: auto;
        min-width: 0;
        max-width: none;
        align-self: stretch;          /* aceeași înălțime cu dock-ul de acțiuni */
        padding: 5px 8px;
        gap: 6px;
    }
    .holdem-my-meta { min-width: 0; flex: 1; }
    .holdem-my-name { font-size: var(--mb-name-fs); }
    /* FIX overlap: stats STIVUITE pe 2 linii (nu mai e rândul lung nowrap care ieșea sub scor) */
    .holdem-my-stats { flex-direction: column; align-items: flex-start; gap: 0; font-size: 8.5px; margin-top: 2px; white-space: nowrap; }
    .holdem-my-stats span + span::before { content: none; }   /* fără separatorul · când e stivuit */
    .holdem-my-stats b { font-size: 9.5px; margin-left: 3px; }
    .holdem-my-avatar { width: var(--mb-my-avatar-sz); height: var(--mb-my-avatar-sz); }
    .holdem-my-scorewrap { gap: 0; flex-shrink: 0; }
    .holdem-my-score { width: var(--mb-my-score-sz); height: var(--mb-my-score-sz); font-size: var(--mb-my-score-fs); }
    .holdem-my-score-label { font-size: 6px; }

    .holdem-player-dock {
        order: 3;
        flex: 1 1 0;                  /* împarte rândul 2 egal cu scaunul */
        min-width: 0;
        width: auto;
        align-self: stretch;
        padding: 5px 7px;
        gap: 4px;
    }
    .holdem-dock-turn { line-height: 1.1; }
    .holdem-dock-turn .holdem-turn-mine,
    .holdem-dock-turn .holdem-turn-other,
    .holdem-dock-turn .holdem-turn-info { font-size: 10px; padding: 2px 7px; max-width: 100%; }
    /* gameinfo COMPACT pe UN singur rând NOWRAP (ATU + rundă + timer inline) — era 52px pe 2 linii */
    .holdem-dock-gameinfo { flex-direction: row; align-items: center; justify-content: center; flex-wrap: nowrap; gap: 5px; }
    .holdem-dock-atu { flex-direction: row; align-items: center; gap: 3px; }
    .holdem-dock-atu-label { font-size: 7.5px; }
    .holdem-dock-atu-sym { font-size: 12px; }
    .holdem-dock-round { font-size: 8px; padding: 1px 4px; white-space: nowrap; }
    /* timer-pill inline mic (nu badge mare care strica rândul) */
    .holdem-timer-pill { padding: 1px 6px; gap: 2px; }
    .holdem-timer-text { font-size: 11px; }
    .holdem-timer-icon { font-size: 10px; }
    .holdem-dock-tools { gap: 4px; flex-wrap: nowrap; }
    .holdem-dock-btn { width: var(--mb-dock-btn-sz); height: var(--mb-dock-btn-sz); font-size: var(--mb-dock-btn-fs); }

    /* ═══════════════════════════════════════════════════════════════
       REDESIGN MOBIL 2026 — ADVERSARI ca PUCKS VERTICALE COMPACTE pe margini.
       Pe telefon portret panourile late aglomerau masa și se suprapuneau cu
       licitarea/cărțile. Acum: avatar + scor-badge pe el + nume/stats mici
       dedesubt; VEST & EST lipite de margini (verticale), NORD sus-centru
       (orizontal). Centrul rămâne complet liber → mâna = ROMB central lizibil. */

    /* puck compact vertical (vest & est) */
    .holdem-opponent .holdem-opp-card {
        flex-direction: column;
        align-items: center;
        gap: 2px;
        padding: 7px 7px 5px;
        min-width: 0;
        width: auto;
        background: linear-gradient(160deg, rgba(28, 18, 42, 0.82), rgba(16, 10, 26, 0.82));
        border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.28);
        border-radius: 14px;
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.5);
        position: relative;
    }
    .holdem-opp-avatar { width: var(--mb-opp-avatar-sz); height: var(--mb-opp-avatar-sz); margin: 0; flex: 0 0 auto; }
    .holdem-opp-meta { align-items: center; min-width: 0; gap: 2px; }
    .holdem-opp-name { font-size: var(--mb-opp-name-fs); max-width: var(--mb-opp-name-maxw); text-align: center; line-height: 1.1; opacity: 0.92; }
    /* SCOR ca badge PILL pe avatar (colț dreapta-sus) — pill (nu cerc fix) ca să încapă și scoruri
       de 3 cifre (100+) fără să depășească chenarul (cerere user — scorurile la holdem pot fi mari). */
    .holdem-opp-score {
        position: absolute; top: -5px; right: -5px; left: auto;
        min-width: var(--mb-opp-score-minh); width: auto; height: var(--mb-opp-score-minh); padding: 0 5px; font-size: var(--mb-opp-score-fs);
        border: 2px solid var(--holdem-gold, var(--holdem-gold, #ffd700)); border-radius: 11px;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6); z-index: 3;
    }
    /* stats compacte: doar licitare + mâini; ascund 'cărți rămase' + chip-stack vechi */
    .holdem-opp-stats { font-size: 8.5px; gap: 4px; justify-content: center; flex-wrap: nowrap; }
    .holdem-opp-stats b { font-size: 9.5px; }
    .holdem-opp-cards { display: none; }
    .holdem-avatar-chip-stack { display: none; }
    .holdem-opp-back-hand { transform: translateX(-50%) translateY(-2px) scale(0.78); opacity: 0.85; }
    /* Centrare strictă față de puck — pe mobile, oponenții sunt verticale, back-hand-ul rămâne sub puck */
    .holdem-opp-north .holdem-opp-back-hand { transform: translateX(-50%) translateY(-2px) scale(0.78); }
    .holdem-opp-west .holdem-opp-back-hand,
    .holdem-opp-east .holdem-opp-back-hand { transform: translateX(-50%) translateY(-2px) scale(0.72); top: 100%; }

    /* POZIȚII: nord sus-centru (orizontal), vest/est lipite de margini la mijloc vertical */
    .holdem-opp-north { top: 8px; left: 50%; right: auto; transform: translateX(-50%); }
    .holdem-opp-west { top: 50%; left: 1px; right: auto; transform: translateY(-50%); }
    .holdem-opp-east { top: 50%; right: 1px; left: auto; transform: translateY(-50%); }
    /* FIX (verificat iframe 390×844): la 5-6 jucători, nw/ne rămâneau pe pozițiile de bază
       (left/right 22%), prea aproape de „north" (center) → cele 3 scaune de sus se suprapuneau.
       Acum nw/ne în colțurile de sus + chip cap 104px → 0 suprapuneri, 0 ieșit din ecran. */
    .holdem-opp-nw { top: 8px; left: 2px; right: auto; transform: none; }
    .holdem-opp-ne { top: 8px; right: 2px; left: auto; transform: none; }
    /* v17.1 (#2b): FULL RING 7-9 pe telefon. ese/wsw în „rândul de jos" (~78%) lipite de margini,
       ca east/west pe nivelul 1 (50%) să rămână libere; nne se MUTĂ MAI JOS pe dreapta (la 30%)
       cu transform NEUTRU — combinația 30%+translateY(-50%) făcea overlap cu ne (la top:8px).
       Mese 9P sunt înghesuite pe 360px — by design (landscape mai prietenos). */
    /* v17.4: dublu prefix (body.holdem-poker-mode + #holdemRoot) pentru specificitate
       maximă — holdem-table.css se încarcă DUPĂ gameplay.css și avea
       `#holdemRoot .holdem-opp-nne { top:14px; left:56% }` care câștiga prin ordine cascadă. */
    body.holdem-poker-mode #holdemRoot .holdem-opp-ese { top: 78%; right: 1px; left: auto; transform: translateY(-50%); }
    body.holdem-poker-mode #holdemRoot .holdem-opp-wsw { top: 78%; left: 1px; right: auto; transform: translateY(-50%); }
    body.holdem-poker-mode #holdemRoot .holdem-opp-nne { top: 8px; left: 65%; right: auto; transform: translateX(-50%); }

    /* v17.5: mese 7-9P pe portrait — scaune COMPACTE ca să nu se atingă
       (avatar 32, font 9, padding 4) + jeton score MIC (18x18 cu chenar subțire) */
    body.holdem-poker-mode #holdemRoot:has(.holdem-opp-wsw) .holdem-opp-card {
        padding: 4px 4px 3px;
        max-width: 64px;
    }
    body.holdem-poker-mode #holdemRoot:has(.holdem-opp-wsw) .holdem-opp-avatar {
        width: 32px; height: 32px;
    }
    body.holdem-poker-mode #holdemRoot:has(.holdem-opp-wsw) .holdem-opp-name {
        font-size: 8.5px; max-width: 56px;
    }
    body.holdem-poker-mode #holdemRoot:has(.holdem-opp-wsw) .holdem-opp-score {
        top: -3px; right: -3px;
        min-width: 18px; height: 18px; padding: 0 3px; font-size: 9.5px;
        border-width: 1.5px;
    }
    /* back-hand pentru ese/wsw (lateral-jos) — analog east/west, dar sub puck */
    .holdem-opp-ese .holdem-opp-back-hand,
    .holdem-opp-wsw .holdem-opp-back-hand { transform: translateX(-50%) translateY(-2px) scale(0.72); top: 100%; }
    .holdem-opponent .holdem-opp-card { min-width: 0; max-width: 92px; }
    .holdem-opp-name { max-width: 86px; }
    /* nord VERTICAL ca toate celelalte (cerere user — „totul la linie") — consecvent + scor badge în colț */
    .holdem-opp-north .holdem-opp-card { flex-direction: column; align-items: center; gap: 2px; padding: 7px 7px 5px; }
    .holdem-opp-north .holdem-opp-meta { align-items: center; }
    .holdem-opp-north .holdem-opp-name { text-align: center; max-width: 86px; }
    .holdem-opp-north .holdem-opp-score { position: absolute; top: -5px; right: -5px; left: auto; width: 22px; height: 22px; font-size: 11px; }

    /* CĂRȚI JUCATE — romb central */
    .holdem-opp-north .holdem-seat-played-card { bottom: -78px; left: 50%; top: auto; transform: translateX(-50%); }
    .holdem-opp-west .holdem-seat-played-card { left: 64px; right: auto; top: 50%; transform: translateY(-50%); }
    .holdem-opp-east .holdem-seat-played-card { right: 64px; left: auto; top: 50%; transform: translateY(-50%); }

    /* cărți pe masă MARI ca să umple felt-ul */
    .holdem-seat-played-card .holdem-card { width: var(--mb-played-card-w) !important; height: var(--mb-played-card-h) !important; }
    /* ROMB clar: cărțile vest/est cu GAP 20px de pucks (clarează badge-ul scor 22px care iese -5 spre exterior) */
    .holdem-opp-north .holdem-seat-played-card { bottom: -110px !important; }
    .holdem-opp-west .holdem-seat-played-card { left: 100% !important; right: auto !important; margin-left: 20px !important; top: 50% !important; bottom: auto !important; transform: translateY(-50%) !important; }
    .holdem-opp-east .holdem-seat-played-card { right: 100% !important; left: auto !important; margin-right: 20px !important; top: 50% !important; bottom: auto !important; transform: translateY(-50%) !important; }
    /* față curată + lizibilă: rank mare sus-stânga, suit clar, pip central vizibil, fără colț br */
    .holdem-seat-played-card .holdem-card-corner-br { display: none !important; }
    .holdem-seat-played-card .holdem-card-corner-tl { top: 3px !important; left: 5px !important; }
    .holdem-seat-played-card .holdem-card-rank { font-size: var(--mb-played-rank-fs) !important; font-weight: 800 !important; line-height: 0.9 !important; }
    .holdem-seat-played-card .holdem-card-suit-small { font-size: 13px !important; line-height: 0.9 !important; }
    .holdem-seat-played-card .holdem-card-pip { font-size: var(--mb-played-pip-fs) !important; opacity: 0.9 !important; }
    /* cărți în MÂNĂ — semne mai lizibile */
    .holdem-my-hand .holdem-card-rank { font-size: var(--mb-card-rank-fs); font-weight: 800; }
    .holdem-my-hand .holdem-card-suit-small { font-size: var(--mb-card-suit-fs); }
    .holdem-my-hand .holdem-card-pip { font-size: var(--mb-card-pip-fs); }
    .holdem-bid-area { max-width: 92vw; padding: 7px 11px; }
    .holdem-bid-btn { min-width: 40px; height: 40px; font-size: 16px; }
    .holdem-bid-title { font-size: 9.5px; }
    .holdem-bid-chip { font-size: 9px; padding: 2px 6px; }
    /* Deck/ATU în colțul JOS-dreapta (cerere user: „ne încurcă sus la mobil"). Sus se suprapunea
       cu scaunele nord/nw la 5-6 jucători; jos-STÂNGA se ciocnea cu butonul immersive (⛶).
       Jos-dreapta e liber: east e la mijloc-dreapta (top:50%), cartea mea jucată e jos-CENTRU. */
    .holdem-deck { top: auto; bottom: 8px; right: 6px; left: auto; gap: 4px; transform: none; }
    .holdem-deck.visible { transform: none; }
    .holdem-deck-stack { width: var(--mb-deck-stack-w); height: var(--mb-deck-stack-h); }
    .holdem-deck-card { width: var(--mb-deck-stack-w); height: var(--mb-deck-stack-h); }
    .holdem-deck-card::after { font-size: 12px; }
    .holdem-deck-atu { width: var(--mb-deck-atu-w); height: var(--mb-deck-atu-h); font-size: 14px; }
    .holdem-felt-watermark .logo-title { font-size: 42px; letter-spacing: 6px; }
    .holdem-felt-watermark .logo-subtitle { font-size: 9px; letter-spacing: 4px; }
    .holdem-felt-watermark .logo-suit { font-size: 14px; }
    .holdem-felt-watermark .logo-suit-row { gap: 18px; }

    .holdem-round-banner { font-size: 14px; padding: 8px 18px; }
    .holdem-round-banner-sub { font-size: 9.5px; }
    .holdem-premiere-popup { font-size: 15px; padding: 9px 18px; }
    .holdem-premiere-popup b { font-size: 19px; }
    .holdem-premiere-popup span { font-size: 10px; }
    .holdem-felt-spotlight { width: var(--mb-spotlight-sz); height: var(--mb-spotlight-sz); }
    .holdem-emoji-opt { font-size: 19px; }
    .holdem-reaction-float { font-size: 34px; }
    /* badge "Joc automat" — ascuns pe mobil (dock-ul de jos spune deja când joci automat, evită aglomerația) */
    .holdem-auto-badge { display: none !important; }
    /* CARTEA MEA jucată — 68×96 (consistent cu vest/est/nord), JOS centrată */
    .holdem-my-played-card { width: var(--mb-played-card-w) !important; height: var(--mb-played-card-h) !important; bottom: 16px !important; }
    .holdem-my-played-card .holdem-card { width: var(--mb-played-card-w) !important; height: var(--mb-played-card-h) !important; }
    .holdem-my-played-card .holdem-card-rank { font-size: 18px !important; font-weight: 800 !important; }
    .holdem-my-played-card .holdem-card-suit-small { font-size: 14px !important; }
    .holdem-my-played-card .holdem-card-pip { font-size: 34px !important; }
    .holdem-my-played-card .holdem-card-corner-br { display: none !important; }
    /* Logo mai mic pe mobile mic — păstrează centrarea, doar reducem font-uri */
    .holdem-felt-watermark .logo-title { font-size: 32px !important; letter-spacing: 4px !important; }
    .holdem-felt-watermark .logo-subtitle { font-size: 8px !important; letter-spacing: 3px !important; }
    .holdem-felt-watermark .logo-suit { font-size: 12px !important; }
    .holdem-felt-watermark .logo-suit-row { gap: 14px !important; }
    /* Reconnect card compact */
    .holdem-reconnect-card { padding: 22px 28px; min-width: 200px; }
    .holdem-reconnect-spinner { width: 40px; height: 40px; }
    .holdem-reconnect-title { font-size: 14px; }
    .holdem-reconnect-sub { font-size: 11px; }
    /* Deck count badge compact */
    .holdem-deck-count { min-width: 18px; height: 18px; font-size: 9.5px; padding: 0 4px; top: -6px; right: -6px; }
    /* FIX source-order: avatar + scorewrap pe mobil ≤700 (cerere user — „scaunul de jos încadrat perfect") */
    .holdem-my-info .holdem-my-avatar { width: 44px !important; height: 44px !important; }
    .holdem-my-info .holdem-my-scorewrap {
        left: 26px !important; right: auto !important; bottom: 2px !important; top: auto !important;
        min-width: 22px !important; width: auto !important; height: 22px !important;
        padding: 0 5px !important; border-radius: 11px !important;
    }
    .holdem-my-info .holdem-my-score { font-size: 11px !important; }
}

/* ≤430px (telefoane mici): și mai compact, ca să încapă totul */
@media (max-width: 430px) {
    /* Cărți în mână la ≤430px: 52×74 (era 42×60 — prea mic, ilizibil pe iPhone 12/13/14) */
    .holdem-my-hand .holdem-card { width: 52px; height: 74px; margin-left: -16px; }
    .holdem-my-info { max-width: 56%; padding: 4px 6px; gap: 5px; }
    .holdem-my-avatar { width: 36px; height: 36px; }
    .holdem-my-name { font-size: 11px; }
    .holdem-my-stats { font-size: 8.5px; }
    .holdem-my-score { width: 32px; height: 32px; font-size: 13px; }
    /* puck-uri rămân verticale (din ≤700px), doar ușor mai mici — dar lizibile */
    .holdem-opp-avatar { width: 40px; height: 40px; }
    .holdem-opp-name { font-size: 8.5px; max-width: 54px; }
    .holdem-opp-score { width: 20px; height: 20px; font-size: 10px; }
    .holdem-opp-north .holdem-opp-score { width: 26px; height: 26px; font-size: 12px; }
    .holdem-player-dock { padding: 4px 6px; }
    .holdem-dock-btn { width: 24px; height: 24px; font-size: 10px; }
    .holdem-bid-btn { min-width: 36px; height: 36px; font-size: 15px; }
    /* cărți jucate rămân lizibile pe telefoane mici (48px, nu 42px) */
    .holdem-seat-played-card .holdem-card { width: 48px !important; height: 68px !important; }
    .holdem-opp-west .holdem-seat-played-card { left: 56px; }
    .holdem-opp-east .holdem-seat-played-card { right: 56px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   TABLETĂ PORTRAIT (701–900px) — cerere user „refacere profesională, fără elemente rupte".
   Cauza bug-ului: grila + sidebar-ascuns sunt ≤900px, dar bottom-bar-ul (mâna full-width) + scaunul
   de jos (avatar 44) erau ≤700px → în 701–900 mâna colapsa la 12px și my-info se umfla la 702px
   (avatar rămas 68px → conținut overflow + clip). Aici aplic bottom-bar-ul corect + scaunul de jos
   (avatar 48 + scor pill) + nume late + scor pill la adversari. Scaunele rămân ORIZONTALE (≤900),
   potrivite pentru lățimea de tabletă. (Verificat live 768×1024 + 820×1180.)
   2026-06-09c FIX: scopat `(orientation: portrait)`. Fără asta blocul se aplica și pe
   TELEFOANELE LANDSCAPE de 701–900px lățime (844×390, 896×414, 800×360, 812×375), unde
   `display:flex !important; flex-wrap:wrap !important` bătea grid-ul landscape (4018, fără
   !important) → mâna pe rândul 1, iar scaunul de jos (my-info) + dock se rupeau pe rândul 2,
   SUB ecran (tăiate). Acum landscape-ul folosește grid-ul lui pe UN rând (my-info|mână|dock). */
@media (min-width: 701px) and (max-width: 900px) and (orientation: portrait) {
    .holdem-player-area {
        display: flex !important; flex-wrap: wrap !important;
        align-items: stretch !important; justify-content: center !important; gap: 6px 10px !important;
    }
    .holdem-my-hand { order: 1 !important; flex: 1 1 100% !important; width: 100% !important; min-width: 0 !important; }
    .holdem-my-info { order: 2 !important; flex: 1 1 0 !important; min-width: 0 !important; max-width: 50% !important; width: auto !important; }
    .holdem-player-dock { order: 3 !important; flex: 1 1 0 !important; min-width: 0 !important; max-width: 50% !important; width: auto !important; }
    .holdem-my-info .holdem-my-avatar { width: 48px !important; height: 48px !important; }
    .holdem-my-info .holdem-my-scorewrap {
        left: 30px !important; right: auto !important; bottom: 2px !important; top: auto !important;
        min-width: 22px !important; width: auto !important; height: 22px !important; padding: 0 5px !important; border-radius: 11px !important;
    }
    .holdem-opp-name { max-width: 110px !important; }
    .holdem-opp-score { min-width: 21px !important; width: auto !important; padding: 0 5px !important; border-radius: 11px !important; }
}

/* TELEFON LANDSCAPE (înălțime mică, lat) — dock pe UN rând compact, cărți mici,
   ca să încapă felt + dock pe verticala scurtă. Mâna în centru, scaun + dock pe laturi. */
@media (max-height: 500px) and (orientation: landscape) {
    /* ═══ DESIGN TOKENS landscape ═══════════════════════════════
       Modifică DOAR aici pentru a ajusta toate dimensiunile landscape.
       vh = relativ la înălțimea viewport (dim. critică în landscape).
       ═══════════════════════════════════════════════════════════ */
    :root {
        /* South seat – layout */
        --ls-betbar-h:   clamp(22px, 7vh, 32px);
        --ls-handname-h: 12px;

        /* South seat – elemente */
        --ls-crest-h:    clamp(36px, 14vh, 52px);
        --ls-avatar-sz:  clamp(26px, 9.5vh, 38px);
        --ls-hand-h:     clamp(28px, 10.5vh, 40px);

        /* South seat – cărți în mână */
        --ls-card-w:     clamp(18px, 6.5vh, 28px);
        --ls-card-h:     clamp(25px, 9vh, 38px);
        --ls-card-rank:  clamp(7px, 2.5vh, 10px);
        --ls-card-suit:  clamp(5px, 1.9vh, 8px);
        --ls-card-pip:   clamp(10px, 4vh, 16px);

        /* South seat – dock */
        --ls-dock-btn:   clamp(14px, 4.8vh, 22px);

        /* South seat – fonturi text */
        --ls-name-fs:    clamp(10px, 3.5vh, 13px);
        --ls-label-fs:   clamp(7px, 2.3vh, 9px);
        --ls-value-fs:   clamp(11px, 3.8vh, 14px);
    }
    .holdem-root {
        grid-template-rows: minmax(0, 1fr) 104px;
        grid-template-columns: 1fr;
        grid-template-areas: "felt" "bottom";
    }
    .holdem-sidebar { display: none; }
    /* ⚠️ FIX LEMN LANDSCAPE — scaunul sud acoperea masa. Regula de bază (≥320px, L4006)
       forțează `min-height: min(410px, 50vh)` pe oval. Pe landscape SCUND, 50vh (jumătate din
       înălțimea mică) + scaunul sud (~120-160px) + header depășeau 100vh → ovalul (`overflow:
       visible`) ieșea în JOS din track-ul felt, iar panoul auriu al scaunului sud (element ulterior
       în DOM) se picta PESTE el. Aici scoatem podeaua de înălțime → ovalul stă fix în track-ul felt
       (align-self:stretch default), deasupra scaunului sud, fără suprapunere. Pe portret 50vh rămâne
       (e nevoie pentru proporția racetrack). */
    body[data-holdem-theme="lemn"] #holdemRoot .holdem-table-area { min-height: 0 !important; }
    /* FIX (verificat live în iframe 844×390): pe flex-row, info+dock se umflau la ~792px fiecare
       (meta + copiii dock-ului fără min-width:0) → mâna colapsa la 12px și ieșea din ecran. Acum
       GRID cu coloane fr + min-width:0 peste tot → info | mână | dock primesc spațiu corect. */
    .holdem-player-area {
        display: grid;
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) minmax(0, 2.4fr); /* my-info 1.5fr→2fr: loc pt. crest „Keystone" */
        align-items: center;
        padding: 4px 10px;
        gap: 8px;
        margin: 0 4px 4px;
    }
    .holdem-my-hand { order: 0; min-width: 0; width: 100%; justify-content: center; min-height: 56px; }
    /* FIX specificitate (verificat live iframe 844×390): .cards-xdense/.cards-dense (3 clase, -34px/-28px)
       băteau `.holdem-my-hand .holdem-card` (2 clase) → cele 8 cărți se stivuiau pe 42px (pas 6px) în loc de
       evantai. Țintesc explicit clasele de densitate ca -15px (pas 25px → evantai 215px) să câștige. */
    .holdem-my-hand .holdem-card,
    .holdem-my-hand.cards-dense .holdem-card,
    .holdem-my-hand.cards-xdense .holdem-card { width: 40px; height: 56px; margin-left: -15px; }
    .holdem-my-hand .holdem-card:first-child { margin-left: 0; }
    .holdem-my-info { order: 0; min-width: 0; max-width: 100%; overflow: hidden; padding: 4px 8px; gap: 6px; }
    .holdem-my-meta { min-width: 0; flex: 0 1 auto; }
    .holdem-my-stats { min-width: 0; }
    .holdem-my-avatar { width: 34px; height: 34px; }
    .holdem-my-name { font-size: 11px; }
    .holdem-my-score { width: 30px; height: 30px; font-size: 12px; }
    .holdem-player-dock { order: 0; min-width: 0; max-width: 100%; overflow: hidden; padding: 4px 7px; gap: 2px; }
    .holdem-dock-turn, .holdem-dock-gameinfo, .holdem-dock-tools { min-width: 0; max-width: 100%; overflow: hidden; }
    /* dock panel compact pe UN rând scurt (turn + gameinfo inline + tools) ca să încapă în rândul de 92px */
    .holdem-dock-turn { font-size: 10px; line-height: 1.1; }
    .holdem-dock-turn .holdem-turn-mine,
    .holdem-dock-turn .holdem-turn-other,
    .holdem-dock-turn .holdem-turn-info { font-size: 9.5px; padding: 1px 6px; max-width: 100%; }
    .holdem-dock-gameinfo { flex-direction: row; align-items: center; justify-content: center; flex-wrap: nowrap; gap: 5px; }
    .holdem-dock-atu { flex-direction: row; align-items: center; gap: 3px; }
    .holdem-dock-atu-label { font-size: 7.5px; }
    .holdem-dock-atu-sym { font-size: 12px; }
    .holdem-dock-round { font-size: 8px; padding: 1px 4px; white-space: nowrap; }
    .holdem-timer-pill { padding: 1px 6px; gap: 2px; }
    .holdem-timer-text { font-size: 11px; }
    .holdem-timer-icon { font-size: 10px; }
    .holdem-dock-tools { gap: 4px; flex-wrap: nowrap; }
    .holdem-dock-btn { width: 24px; height: 24px; font-size: 10px; }
    /* FIX (verificat iframe 844×390): chip-uri prea late (168px) → cele 3 de sus se suprapuneau.
       Cap 136px → 0 suprapuneri. */
    /* SCAUNE landscape — chip ORIZONTAL profesional (folosește lățimea): avatar + nume pe toată
       lățimea meta + bid/făcute, scor ca badge-overlay în colț, 🂠 ascuns (redundant cu strip-ul).
       (Verificat live iframe 844×390: 0 suprapuneri, 0 offscreen, doar numele f. lung trunchiat.) */
    .holdem-opp-card { min-width: 0; max-width: 140px; padding: 5px 8px; gap: 6px; }
    .holdem-opp-avatar { width: 32px; height: 32px; }
    .holdem-opp-meta { align-items: flex-start; text-align: left; flex: 1; min-width: 0; gap: 2px; }
    .holdem-opp-name { font-size: 9.5px; max-width: 90px; }
    .holdem-opp-stats { justify-content: flex-start; gap: 3px; font-size: 8.5px; flex-wrap: nowrap; }
    .holdem-opp-cards { display: none; }
    .holdem-opp-score {
        position: absolute; top: -6px; right: -6px; left: auto;
        min-width: 21px; width: auto; height: 21px; padding: 0 5px; font-size: 10.5px;
        display: flex; align-items: center; justify-content: center;
        border: 2px solid rgba(var(--holdem-deep-rgb, 12, 18, 32), 0.92); border-radius: 11px; z-index: 3;
    }
    .holdem-deck { top: auto; bottom: 4px; right: 6px; left: auto; }
    .holdem-deck-card { width: 30px; height: 42px; }
    .holdem-deck-atu { width: 24px; height: 34px; font-size: 15px; }
    /* Landscape mic: logo discret dar vizibil */
    .holdem-felt-watermark { opacity: 0.10; }
    .holdem-felt-watermark .logo-title { font-size: 28px; letter-spacing: 3px; }
    .holdem-felt-watermark .logo-subtitle, .holdem-felt-watermark .logo-suit-row { display: none; }
    .holdem-felt-watermark .logo-spade { font-size: 22px; }
    .holdem-felt-watermark::before { width: 80px; height: 80px; }
    /* ── LANDSCAPE FIX-uri suplimentare ── */
    /* badge "Joc automat" ascuns și în landscape (dock-ul deja arată starea) */
    .holdem-auto-badge { display: none !important; }
    /* cărți jucate pe felt — mai mici ca să NU cadă peste pucks-urile late orizontal */
    .holdem-seat-played-card .holdem-card { width: 40px !important; height: 56px !important; }
    .holdem-seat-played-card .holdem-card-corner-br { display: none !important; }
    .holdem-seat-played-card .holdem-card-rank { font-size: 13px !important; }
    .holdem-seat-played-card .holdem-card-suit-small { font-size: 10px !important; }
    .holdem-seat-played-card .holdem-card-pip { font-size: 22px !important; }
    .holdem-my-played-card { width: 42px !important; height: 58px !important; bottom: 4px !important; }
    .holdem-my-played-card .holdem-card { width: 42px !important; height: 58px !important; }
    .holdem-my-played-card .holdem-card-rank { font-size: 13px !important; }
    .holdem-my-played-card .holdem-card-pip { font-size: 22px !important; }
    /* poziții cărți jucate: distanță mai mare de panou ca să nu cadă peste el */
    .holdem-opp-north .holdem-seat-played-card { bottom: -62px !important; }
    .holdem-opp-east .holdem-seat-played-card { left: -50px !important; top: 50% !important; transform: translateY(-50%) !important; }
    .holdem-opp-west .holdem-seat-played-card { right: -50px !important; left: auto !important; top: 50% !important; transform: translateY(-50%) !important; }
    /* v17.10 — FULL RING 7-9 pe landscape (915×412): 8 opps în 3 RÂNDURI SEPARATE,
       NICIO suprapunere, NU intră peste betbar (fold/call/raise stă la south-top).
       Felt area: root y=0-280 (south e ultimele 104px din root 384). */
    /* R1 sus (4 scaune): nw, north, nne, ne — la y=8 */
    .holdem-opp-nne { top: 8px; left: 56%; right: auto; transform: none; }

    /* TOOLTIP — root are overflow:hidden și înălțime ~384, tooltip default h=271 se taie
       sus la west/east (centrat vertical iese cu -26px) și jos la wsw/ese (sub felt).
       Compactăm max-height la 200 + repoziționăm. */
    .holdem-opponent .holdem-opp-tooltip {
        max-height: 200px !important;
        overflow-y: auto !important;
        font-size: 10px !important;
        padding: 8px !important;
        width: 168px !important;
    }
    .holdem-opp-tooltip .woi-avatar { width: 32px !important; height: 32px !important; }
    .holdem-opp-tooltip .woi-name { font-size: 11px !important; }
    .holdem-opp-tooltip .woi-badge { font-size: 6.5px !important; padding: 1px 3px !important; }
    /* west/east: ancorat sus (top:0) ca să nu iasă în afara root (înainte: top:50% centrat = iese sus) */
    .holdem-opp-west .holdem-opp-tooltip {
        top: 0 !important; bottom: auto !important;
        transform: translateY(0) translateX(-8px) scale(0.96) !important;
    }
    .holdem-opp-west:hover .holdem-opp-tooltip,
    .holdem-opp-west:focus-within .holdem-opp-tooltip {
        transform: translateY(0) translateX(0) scale(1) !important;
    }
    .holdem-opp-east .holdem-opp-tooltip {
        top: 0 !important; bottom: auto !important;
        transform: translateY(0) translateX(8px) scale(0.96) !important;
    }
    .holdem-opp-east:hover .holdem-opp-tooltip,
    .holdem-opp-east:focus-within .holdem-opp-tooltip {
        transform: translateY(0) translateX(0) scale(1) !important;
    }
    /* wsw/ese: LATERAL spre interior, centrat vertical (scaun y=168-208, tooltip h=192
       → centrat la y=188, t=92 b=284, în interior root 28-364 ✓) */
    .holdem-opp-wsw .holdem-opp-tooltip {
        top: 50% !important; bottom: auto !important;
        left: calc(100% + 10px) !important; right: auto !important;
        transform: translateY(-50%) translateX(-8px) scale(0.96) !important;
        transform-origin: center left !important;
    }
    .holdem-opp-wsw:hover .holdem-opp-tooltip,
    .holdem-opp-wsw:focus-within .holdem-opp-tooltip {
        transform: translateY(-50%) translateX(0) scale(1) !important;
    }
    .holdem-opp-ese .holdem-opp-tooltip {
        top: 50% !important; bottom: auto !important;
        right: calc(100% + 10px) !important; left: auto !important;
        transform: translateY(-50%) translateX(8px) scale(0.96) !important;
        transform-origin: center right !important;
    }
    .holdem-opp-ese:hover .holdem-opp-tooltip,
    .holdem-opp-ese:focus-within .holdem-opp-tooltip {
        transform: translateY(-50%) translateX(0) scale(1) !important;
    }

    /* v17.11 — MOBILE LANDSCAPE COMPACT: south=80px (era 196px=47% din ecran), butoane/
       fonturi MOBIL-SIZE (FOLD/CALL/POT etc 12px/h32 nu 14px/h45). Specificitate ID+class
       ca să bată body.holdem-poker-mode .X din holdem-table.css. */
    /* v17.14 — BETBAR INTEGRATĂ ÎN SOUTH: bara FOLD/CALL/RAISE NU mai plutește deasupra south
       (ocupând permanent 40px din felt). Apare DOAR la rândul meu (.hd-area-my-turn) ca strip
       integrat sus în south, cu glow auriu. South crește smooth de la 76px la 116px height. */
    /* SOUTH: grid layout cu 2 rows (betbar | content) × 3 cols (info | hand | dock) */
    /* 75% masă / 25% south — independent de header/footer (fr = din ce rămâne în root) */
    body.holdem-poker-mode #holdemRoot.holdem-root { grid-template-rows: 3fr 1fr !important; }
    body.holdem-poker-mode #holdemRoot .holdem-player-area {
        margin-top: 0 !important;
        padding: 4px 10px 3px !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: 100% !important;
        display: grid !important;
        grid-template-rows: var(--ls-betbar-h) 1fr !important;
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) minmax(0, 2.4fr) !important;
        column-gap: clamp(5px, 1.2vw, 10px) !important;
        row-gap: clamp(2px, 1vh, 6px) !important;
        overflow: hidden !important;
        align-items: center !important;
        position: relative !important;
    }
    /* Box auriu ::before acoperă tot south (inclusiv betbar) — un singur cadru coerent */
    body.holdem-poker-mode .holdem-player-area::before { top: 0 !important; }
    /* DECK (pachet de cărți) — ridicat din zona aproape de gold line + scăzut */
    body.holdem-poker-mode #holdemRoot .holdem-pk-deck {
        bottom: 80px !important;
        transform: scale(0.7) !important;
        transform-origin: bottom left !important;
    }
    /* v17.19 — DOAR SHOWDOWN cards (când opp arată cărtile la sfârșit mână): MICI 26×36
       încadrate în colțul scaunului ca să NU mai intre peste scaune vecine.
       CĂRTILE ÎN MÂNĂ (back-hand, cu spatele când joacă) rămân NEMODIFICATE — natural display. */
    body.holdem-poker-mode #holdemRoot .holdem-seat-played-card {
        width: 26px !important; height: 36px !important;
        bottom: 1px !important; top: auto !important;
        left: 38px !important; right: auto !important;  /* după avatar (32px) cu mic gap — NU mai acoperă score top-right */
        transform: none !important;
        z-index: 7 !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-seat-played-card .holdem-card {
        width: 26px !important; height: 36px !important;
        border-radius: 3px !important;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(255, 215, 0, 0.4) !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-seat-played-card .holdem-card-rank { font-size: 8.5px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-seat-played-card .holdem-card-suit-small { font-size: 6.5px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-seat-played-card .holdem-card-pip { font-size: 16px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-seat-played-card .holdem-card-corner { padding: 1px !important; }
    /* v17.21 — SHOWDOWN REAL la Hold'em: JS pune fețele (.holdem-pk-mini, nativ 40×57) în
       .holdem-opp-back-hand de SUB scaun → 57px nu încape în golul de 6-29px dintre rânduri
       și călca scaunul vecin. FIX (stil PokerStars mobile): DOAR când containerul are fețe
       (:has(.holdem-pk-mini)) cărtile vin PESTE propriul scaun, centrate (28×40) — nu ies
       din bounds, scorul din colț rămâne vizibil. În timpul jocului (.holdem-card-back
       sub scaun) NIMIC nu se schimbă. */
    body.holdem-poker-mode #holdemRoot .holdem-opp-back-hand:has(.holdem-pk-mini) {
        top: 50% !important; left: 50% !important;
        transform: translate(-50%, -50%) !important;
        height: auto !important;
        z-index: 5 !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-opp-back-hand .holdem-card.holdem-pk-mini {
        width: 28px !important; height: 40px !important;
        margin-left: -6px !important;
        border-radius: 4px !important;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.7), inset 0 0 0 1px rgba(255, 215, 0, 0.35) !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-opp-back-hand .holdem-card.holdem-pk-mini:first-child { margin-left: 0 !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opp-back-hand .holdem-pk-mini .holdem-card-rank { font-size: 9px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opp-back-hand .holdem-pk-mini .holdem-card-suit-small { font-size: 7px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opp-back-hand .holdem-pk-mini .holdem-card-pip { font-size: 17px !important; }
    /* BURN PILE (cartea arsă din pachet) — ascuns pe landscape mobile, e clutter într-un spațiu mic */
    body.holdem-poker-mode #holdemRoot .hd-burned,
    body.holdem-poker-mode #holdemRoot #hdBurnPile { display: none !important; }
    /* BETBAR — MEREU vizibil ca PRIMUL rând în south, FĂRĂ cadru propriu (apare în
       interiorul box-ului auriu unic al south, fără cutie dublă). La rândul meu, doar
       o linie subtilă de glow auriu jos = separator între bară și content. */
    body.holdem-poker-mode #holdemRoot .holdem-betbar {
        position: relative !important;
        bottom: auto !important; top: auto !important; left: auto !important; right: auto !important;
        grid-row: 1 !important;
        grid-column: 1 / -1 !important;
        width: 100% !important;
        height: var(--ls-betbar-h) !important; max-height: var(--ls-betbar-h) !important;
        padding: 0 8px !important;
        margin: 0 !important;
        gap: 6px !important;
        background: transparent !important;
        border: none !important;
        border-bottom: 1px solid rgba(255, 215, 0, 0.18) !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow: hidden !important;
        transition: border-color 0.25s ease, box-shadow 0.25s ease !important;
    }
    /* La rândul meu: linia separator devine glow auriu intens */
    body.holdem-poker-mode #holdemRoot .holdem-player-area.hd-area-my-turn .holdem-betbar {
        border-bottom-color: rgba(255, 215, 0, 0.55) !important;
        box-shadow: 0 4px 14px rgba(255, 215, 0, 0.2) !important;
    }
    /* my-info: avatar mic + height fix + name/labels mobil */
    /* v17.20 — my-info + dock span rândurile 2-3 (conținut + hand-name) → chenarele lor
       ajung PÂNĂ JOS, aliniate cu marginea de jos a south (fără gol mort sub ele). */
    body.holdem-poker-mode #holdemRoot #holdemMyInfo { grid-row: 2 / 4 !important; grid-column: 1 !important; align-self: stretch !important; height: auto !important; min-height: 0 !important; max-height: none !important; padding: 4px 8px !important; flex-basis: auto !important; width: auto !important; max-width: 100% !important; }
    /* v17.22 — avatar mărit 36→50 proporțional cu chenarul devenit 88px (span 2 rânduri) */
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .holdem-my-crest { height: var(--ls-crest-h) !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .holdem-my-avatar { width: var(--ls-avatar-sz) !important; height: var(--ls-avatar-sz) !important; min-width: var(--ls-avatar-sz) !important; max-width: var(--ls-avatar-sz) !important; flex-shrink: 0 !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .holdem-my-name { font-size: var(--ls-name-fs) !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .holdem-my-auto { display: none !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .kseg-lbl { font-size: var(--ls-label-fs) !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .kseg-val { font-size: var(--ls-value-fs) !important; }
    /* v17.24 — pill-urile compactate: JETOANE (min 70px) ieșea 5px din chenarul crest în
       dreapta. Min-width reduse → toate 3 pill-urile încap în chenar cu 7px rezervă. */
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .holdem-keyseg { padding: 1px 5px !important; min-width: 40px !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .holdem-keyseg-score { min-width: 62px !important; }
    /* my-hand: cărți + simboluri lizibile pe mobil */
    body.holdem-poker-mode #holdemRoot .holdem-my-hand,
    body.holdem-poker-mode #holdemRoot .holdem-my-hand.holdem-pk-hole { grid-row: 2 !important; grid-column: 2 !important; min-height: var(--ls-hand-h) !important; height: var(--ls-hand-h) !important; max-height: var(--ls-hand-h) !important; padding: 2px 4px !important; align-items: center !important; }
    body.holdem-poker-mode #holdemRoot .holdem-my-hand .holdem-card,
    body.holdem-poker-mode #holdemRoot .holdem-my-hand.cards-dense .holdem-card,
    body.holdem-poker-mode #holdemRoot .holdem-my-hand.cards-xdense .holdem-card { width: var(--ls-card-w) !important; height: var(--ls-card-h) !important; margin-left: -8px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-my-hand .holdem-card:first-child { margin-left: 0 !important; }
    body.holdem-poker-mode #holdemRoot .holdem-my-hand .holdem-card-rank { font-size: var(--ls-card-rank) !important; }
    body.holdem-poker-mode #holdemRoot .holdem-my-hand .holdem-card-suit-small { font-size: var(--ls-card-suit) !important; }
    body.holdem-poker-mode #holdemRoot .holdem-my-hand .holdem-card-pip { font-size: var(--ls-card-pip) !important; }
    /* dock: turn-info + game-info + butoane mici mobil */
    body.holdem-poker-mode #holdemRoot .holdem-player-dock,
    body.holdem-poker-mode #holdemPlayerDock { grid-row: 2 / 4 !important; grid-column: 3 !important; align-self: stretch !important; height: auto !important; min-height: 0 !important; max-height: none !important; padding: 4px 7px !important; overflow: hidden !important; }
    body.holdem-poker-mode #holdemRoot .holdem-dock-tools { order: 1 !important; }
    body.holdem-poker-mode #holdemRoot .holdem-dock-gameinfo { font-size: 11px !important; order: 2 !important; }
    /* v17.17 — Ordine dock: tools (sus) → gameinfo (mid) → RÂNDUL: X (jos, pill auriu — text mai
       lung se vede mai bine pe rândul ultim full-width) */
    body.holdem-poker-mode #holdemRoot .holdem-dock-turn {
        font-size: 11px !important;
        padding: 2px 10px !important;
        order: 3 !important;
        text-align: center !important;
        background: linear-gradient(180deg, rgba(255, 215, 0, 0.08), rgba(255, 215, 0, 0.02)) !important;
        border: 1px solid rgba(255, 215, 0, 0.25) !important;
        border-radius: 10px !important;
        margin-top: 2px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        color: rgba(255, 215, 0, 0.92) !important;
        font-weight: 700 !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-dock-tools { gap: 4px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-dock-btn { width: var(--ls-dock-btn) !important; height: var(--ls-dock-btn) !important; font-size: clamp(7px, 2.4vh, 10px) !important; min-width: var(--ls-dock-btn) !important; }
    body.holdem-poker-mode #holdemRoot .holdem-dock-atu-label { font-size: 7px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-dock-atu-sym { font-size: 11px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-dock-round { font-size: 8px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-timer-text { font-size: 10px !important; }
    /* POT text mobile (era 19px/h46, acum 12px/h26) — glow auriu permanent + animație
       dramatică când cresc jetoanele (override hd-bump cu hdPotPro = scale + golden shine) */
    body.holdem-poker-mode #holdemRoot .holdem-pk-pot {
        font-size: 12px !important; padding: 3px 14px !important; max-height: 26px !important; margin-top: 0 !important;
        background: linear-gradient(180deg, rgba(20, 24, 40, 0.92), rgba(10, 14, 26, 0.96)) !important;
        border: 1.5px solid rgba(255, 215, 0, 0.55) !important;
        border-radius: 14px !important;
        color: #ffd76a !important;
        font-weight: 800 !important;
        letter-spacing: 0.8px !important;
        text-shadow: 0 0 8px rgba(255, 215, 0, 0.55), 0 1px 0 rgba(0, 0, 0, 0.8) !important;
        box-shadow:
            inset 0 1px 0 rgba(255, 215, 0, 0.3),
            0 0 14px rgba(255, 215, 0, 0.25),
            0 4px 10px rgba(0, 0, 0, 0.5) !important;
    }
    /* v17.25 — la sosirea jetoanelor pill-ul face DOAR flash auriu (scale mic 1.08);
       „înghițitul" dramatic îl face SACUL 💰 din interior (hdBagGulp, definit global). */
    body.holdem-poker-mode #holdemRoot .holdem-pk-pot.hd-bump {
        animation: hdPotPro 0.7s cubic-bezier(.25, 1.6, .4, 1) !important;
    }
    @keyframes hdPotPro {
        0% { transform: scale(1); box-shadow: inset 0 1px 0 rgba(255,215,0,.3), 0 0 14px rgba(255,215,0,.25), 0 4px 10px rgba(0,0,0,.5); }
        30% { transform: scale(1.08); box-shadow: inset 0 1px 0 rgba(255,215,0,.6), 0 0 36px rgba(255,215,0,.7), 0 0 60px rgba(255,215,0,.4), 0 4px 14px rgba(0,0,0,.6); }
        65% { transform: scale(1.03); box-shadow: inset 0 1px 0 rgba(255,215,0,.5), 0 0 26px rgba(255,215,0,.55), 0 0 44px rgba(255,215,0,.3); }
        100% { transform: scale(1); box-shadow: inset 0 1px 0 rgba(255,215,0,.3), 0 0 14px rgba(255,215,0,.25), 0 4px 10px rgba(0,0,0,.5); }
    }
    /* sac compact pe landscape: 12px gol → 21px plin, pill-ul crește la 32px când e cazul */
    body.holdem-poker-mode #holdemRoot .holdem-pk-pot .potbag-ico { font-size: calc(12px + var(--fill, 0) * 9px) !important; }
    body.holdem-poker-mode #holdemRoot .holdem-pk-pot { max-height: 32px !important; }
    /* Sclipire aurie permanentă pulsantă (subtle breathing glow) când pot are valoare > 0 */
    body.holdem-poker-mode #holdemRoot .holdem-pk-pot:not(:empty) {
        animation: hdPotBreath 3s ease-in-out infinite !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-pk-pot.hd-bump {
        animation: hdPotPro 0.65s cubic-bezier(.25, 1.6, .4, 1) !important;
    }
    @keyframes hdPotBreath {
        0%, 100% { box-shadow: inset 0 1px 0 rgba(255,215,0,.3), 0 0 14px rgba(255,215,0,.25), 0 4px 10px rgba(0,0,0,.5); }
        50% { box-shadow: inset 0 1px 0 rgba(255,215,0,.45), 0 0 22px rgba(255,215,0,.4), 0 4px 14px rgba(0,0,0,.55); }
    }
    /* BOARD cards (community) — 44x62 cu rank/pip lizibile */
    body.holdem-poker-mode #holdemRoot .holdem-pk-board,
    body.holdem-poker-mode #holdemRoot .holdem-pk-slot { width: 44px !important; height: 62px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-pk-boardrow { gap: 5px !important; max-height: 62px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-pk-board .holdem-card-rank { font-size: 12px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-pk-board .holdem-card-suit-small { font-size: 10px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-pk-board .holdem-card-pip { font-size: 24px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-pk-board .holdem-card-corner { padding: 2px !important; }
    /* PK-center (board+pot) — align sus + margin ca să nu intre în betbar */
    body.holdem-poker-mode #holdemRoot .holdem-pk-center { align-self: start !important; justify-self: center !important; margin-top: 60px !important; gap: 2px !important; padding: 0 !important; max-height: 96px !important; }
    /* BETBAR FOLD/CALL/RAISE/ALL-IN — mobile compact (era h45 font14, acum h28 font11) */
    /* v17.16 — „Carte mare A" / „Pereche de X" etc. — pill mic AL DOILEA RÂND în col 2 (sub cărti),
       încadrat la fel ca hint-ul, NU mai lipit jos peste cărti. */
    body.holdem-poker-mode #holdemRoot .holdem-player-area {
        grid-template-rows: var(--ls-betbar-h) 1fr var(--ls-handname-h) !important;
    }
    body.holdem-poker-mode #holdemRoot #hdMyHandName {
        position: relative !important;
        top: auto !important; bottom: auto !important; left: auto !important; right: auto !important;
        transform: none !important;
        grid-row: 3 !important;
        grid-column: 2 !important;
        justify-self: center !important;
        align-self: center !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: var(--ls-handname-h) !important;
        padding: 0px 8px !important;
        font-size: 7.5px !important;
        font-weight: 700 !important;
        color: rgba(255, 215, 106, 0.95) !important;
        background: linear-gradient(180deg, rgba(255, 215, 0, 0.10), rgba(255, 215, 0, 0.04)) !important;
        border: 1px solid rgba(255, 215, 0, 0.3) !important;
        border-radius: 9px !important;
        box-shadow: inset 0 1px 0 rgba(255, 215, 0, 0.18) !important;
        letter-spacing: 0.4px !important;
        text-transform: uppercase !important;
        white-space: nowrap !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-betbar { padding: 3px 6px !important; gap: 4px !important; max-height: var(--ls-betbar-h) !important; height: var(--ls-betbar-h) !important; }
    body.holdem-poker-mode #holdemRoot .holdem-betbar button { padding: 4px 9px !important; font-size: 11px !important; min-height: 28px !important; height: 28px !important; }
    /* v17.15 — butoanele DISABLED când nu e rândul meu: vizibile dar dim, inactive */
    body.holdem-poker-mode #holdemRoot .holdem-betbar button.hd-disabled,
    body.holdem-poker-mode #holdemRoot .holdem-betbar button[disabled] {
        opacity: 0.35 !important;
        filter: grayscale(0.55) !important;
        cursor: not-allowed !important;
        pointer-events: none !important;
        box-shadow: none !important;
    }
    /* HINT „Așteaptă rândul" / „Mâna următoare" / „Ești în pauză" etc. — încadrate ca PILL
       cu același stil ca butoanele (înălțime, padding, border subtil) — text informativ */
    body.holdem-poker-mode #holdemRoot .holdem-betbar .holdem-betbar-hint {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: 28px !important;
        min-height: 28px !important;
        padding: 4px 12px !important;
        font-size: 10.5px !important;
        font-weight: 600 !important;
        font-style: italic !important;
        color: rgba(255, 235, 200, 0.85) !important;
        letter-spacing: 0.3px !important;
        background: linear-gradient(180deg, rgba(255, 215, 0, 0.08), rgba(255, 215, 0, 0.03)) !important;
        border: 1px solid rgba(255, 215, 0, 0.25) !important;
        border-radius: 14px !important;
        box-shadow: inset 0 1px 0 rgba(255, 215, 0, 0.15), 0 1px 4px rgba(0, 0, 0, 0.3) !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        margin: 0 2px !important;
    }

    /* v17.13 — POZIȚII FLUIDE pentru R2/R3 ca să se adapteze AUTOMAT la
       immersive-mode (când top-bar+nav-rail dispar, felt crește de la 256 la 332px).
       R2 west/east: top: 25% (relativ la felt, scalează cu înălțimea)
       R3 wsw/ese: bottom: 30px (gap fix de 30px deasupra south, indiferent de mod)
       Pk-center: align-self: center (vertical centrat în felt area) */
    body.holdem-poker-mode #holdemRoot .holdem-opp-west { top: 50% !important; left: 35px !important; bottom: auto !important; transform: translateY(-50%) !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opp-east { top: 50% !important; right: 35px !important; bottom: auto !important; transform: translateY(-50%) !important; }
    /* NW/NE: împinse spre interior față de colț (oval curb la y=14 → x_boundary≈68px) */
    body.holdem-poker-mode #holdemRoot .holdem-opp-nw { left: 68px !important; right: auto !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opp-ne { left: auto !important; right: 68px !important; }
    /* R3 wsw/ese — coborâte la bottom:50 (mai aproape de gold line) ca să fie mai bine
       distanțate de R2 west/east și să se vadă perfect 4 rânduri în felt */
    body.holdem-poker-mode #holdemRoot .holdem-opp-wsw { top: auto !important; bottom: 50px !important; transform: none !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opp-ese { top: auto !important; bottom: 50px !important; transform: none !important; }
    /* Board cards + POT — centrat vertical în felt + offset MIC în jos ca să dea aer
       deasupra cu opp-urile R1 sus */
    body.holdem-poker-mode #holdemRoot .holdem-pk-center { align-self: center !important; justify-self: center !important; margin-top: 24px !important; margin-bottom: 0 !important; }

    /* v17.18 — hd-feltbet (chips pariu) pe R1 sus: COLȚURILE (nw/ne) lateral spre interior
       (aliniate cu west/east/wsw/ese); MIJLOCUL (north/nne) — lateral ar fi aterizat AMBELE
       în golul îngust dintre ele (plutind sus, „nu vin jos în masă") → coboară SUB scaun
       pe felt, offset la 75% ca să stea LÂNGĂ cărtile back-hand (la ~40%), nu peste ele. */
    body.holdem-poker-mode #holdemRoot .holdem-opp-nw .hd-feltbet {
        top: 50% !important; left: calc(100% + 6px) !important; right: auto !important;
        transform: translateY(-50%) scale(0.7) !important; transform-origin: center left !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-opp-ne .hd-feltbet {
        top: 50% !important; right: calc(100% + 6px) !important; left: auto !important;
        transform: translateY(-50%) scale(0.7) !important; transform-origin: center right !important;
    }
    body.holdem-poker-mode #holdemRoot .holdem-opp-north .hd-feltbet,
    body.holdem-poker-mode #holdemRoot .holdem-opp-nne .hd-feltbet {
        top: calc(100% + 4px) !important; bottom: auto !important;
        left: 75% !important; right: auto !important;
        transform: scale(0.7) !important; transform-origin: center top !important;
    }
    body.holdem-poker-mode #holdemRoot .hd-feltbet { transform: scale(0.7) !important; transform-origin: center !important; }
    /* opp-score (badge puncte) ÎN INTERIORUL scaunului sus-dreapta + mic */
    body.holdem-poker-mode #holdemRoot .holdem-opp-score { top: 1px !important; right: 1px !important; left: auto !important; min-width: 24px !important; height: 16px !important; font-size: 9px !important; padding: 0 3px !important; border-width: 1px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-opp-name { max-width: 56px !important; }
    /* Position badge (UTG/SB/BB) STÂNGA-JOS scaun + timer DREAPTA-JOS, fără suprapunere */
    body.holdem-poker-mode #holdemRoot .holdem-pk-pos { top: auto !important; bottom: 1px !important; left: 1px !important; right: auto !important; padding: 0 4px !important; font-size: 8.5px !important; line-height: 1.3 !important; height: 14px !important; }
    /* v17.24 — la SOUTH badge-ul pos era PARȚIAL SUB avatar (avatarul e FRATE cu crest-ul,
       alt stacking context → z-index din crest nu-l poate ridica peste). Mutat la DREAPTA
       avatarului (left:34 = imediat după marginea lui), jos în chenar — complet liber. */
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .holdem-pk-pos { z-index: 9 !important; left: 34px !important; bottom: 2px !important; }
    /* v17.23 — EMOJI PICKER pe landscape: rândul de 10 emoji (~350px) era prea LUNG →
       grid elegant 5×2 compact (max 200px), aceeași temă aurie */
    .holdem-emoji-picker {
        display: grid !important;
        grid-template-columns: repeat(5, 1fr) !important;
        gap: 2px !important;
        padding: 6px 8px !important;
        max-width: 200px !important;
    }
    .holdem-emoji-opt { font-size: 19px !important; padding: 3px !important; }
    /* v17.26 — rândul quick-chat ocupă toată lățimea grid-ului 5×2 */
    .holdem-qc-row { grid-column: 1 / -1 !important; }
    .holdem-qc-opt { font-size: 10px !important; padding: 2px 8px !important; }
    /* v17.26 — ceasul circular pe landscape: 20px, colț dreapta-jos */
    body.holdem-poker-mode #holdemRoot .holdem-pk-seatclock { top: auto !important; bottom: 1px !important; left: auto !important; right: 1px !important; font-size: 8px !important; padding: 0 !important; width: 20px !important; height: 20px !important; min-width: 20px !important; }
    /* pot odds + pre-acțiuni compacte pe landscape */
    body.holdem-poker-mode #holdemRoot .holdem-betbar button .hd-odds { font-size: 7px !important; margin-top: 0 !important; }
    body.holdem-poker-mode #holdemRoot .holdem-betbar button.preact { padding: 4px 7px !important; font-size: 10px !important; }
    body.holdem-poker-mode #holdemRoot .holdem-betbar button.preact .pre-tick { width: 10px !important; height: 10px !important; margin-right: 4px !important; font-size: 7px !important; }
    /* tag last-action mai mic */
    body.holdem-poker-mode #holdemRoot .hd-lastact { font-size: 7px !important; padding: 1px 4px !important; }
    /* banner blinds compact */
    body.holdem-poker-mode #holdemRoot .hd-blinds-banner { font-size: 12px !important; padding: 6px 16px !important; }
    /* coroniță mai mică pe scaunele compacte */
    body.holdem-poker-mode #holdemRoot .hd-crown { font-size: 13px !important; top: -11px !important; }
    /* pill echitate compact */
    body.holdem-poker-mode #holdemRoot .hd-equity { font-size: 9.5px !important; padding: 1px 7px !important; top: -10px !important; }
    /* v17.27 — tag ultima acțiune pe LANDSCAPE (scaun orizontal): după avatar (36px), sus —
       nu mai atinge colțul avatarului; pe scaunul activ rămâne și ceasul (jos-dreapta, fără clash) */
    body.holdem-poker-mode #holdemRoot .hd-lastact { left: 36px !important; top: 1px !important; bottom: auto !important; right: auto !important; transform: none !important; }
    body.holdem-poker-mode #holdemRoot #holdemMyInfo .hd-lastact { left: auto !important; right: 6px !important; top: 2px !important; transform: none !important; }
    /* TELEFON LANDSCAPE — bid panel: regula globală de mai sus (top:80px, max-height:280px) e prea
       joasă pentru felt-ul scurt din landscape → header + listă + butoanele 0-8 + footer depășeau 246px
       și cădeau SUB / în spatele dock-ului (nu puteai licita în landscape). Ancorez panoul sus (top:4px),
       las înălțimea naturală, plafonez DOAR lista de jucători (scrollabilă) → tot panoul încape DEASUPRA
       dock-ului, butoane mereu vizibile. NU ating `transform` (păstrez translateX global → animația emerge
       rămâne intactă). Trebuie după regula globală (source-order) + !important ca să câștige. (Verificat live iframe 844×390.) */
    .holdem-bid-area {
        top: 4px !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 5px 16px !important;
        gap: 2px !important;
    }
    .holdem-bidp-table { max-height: 40px !important; overflow-y: auto !important; }
    .holdem-bidp-header { gap: 2px !important; }
    /* Idem pentru TELEFON LANDSCAPE (rândul de jos e doar ~104px): avatar 40 + meta COMPACTĂ (stats pe UN rând,
       badge auto ascuns — dock-ul arată starea) + scor pill, ca scaunul de jos să încapă în rândul scurt. */
    .holdem-my-info { gap: 5px !important; padding: 4px 7px !important; align-items: center !important; }
    .holdem-my-info .holdem-my-avatar { width: 40px !important; height: 40px !important; }
    .holdem-my-info .holdem-my-meta { gap: 3px !important; }
    .holdem-my-info .holdem-my-stats { flex-direction: row !important; gap: 5px !important; flex-wrap: nowrap !important; }
    .holdem-my-info .holdem-my-auto { display: none !important; }
    .holdem-my-info .holdem-my-scorewrap {
        left: 22px !important; right: auto !important; bottom: 1px !important; top: auto !important;
        min-width: 20px !important; width: auto !important; height: 20px !important; padding: 0 4px !important; border-radius: 10px !important;
    }
    .holdem-my-info .holdem-my-score { font-size: 10px !important; }
    /* Felt picker (tema lemn) — mutat DIN top-stânga masă (top:11px;left:196px)
       ÎN colțul jos-dreapta al viewport (= scaunul sud). Fixed la bottom:6px;right:8px. */
    body.holdem-poker-mode #holdemLemnFeltPicker {
        position: fixed !important;
        top: auto !important;
        left: auto !important;
        right: 8px !important;
        bottom: 6px !important;
        z-index: 10 !important;
    }
}

/* Garduri anti-overflow — pe NICIUN ecran masa nu trebuie să facă scroll orizontal */
.holdem-root { max-width: 100vw; }
.holdem-player-area { box-sizing: border-box; max-width: 100%; }
.holdem-my-hand { max-width: 100%; }
.holdem-bid-area { max-width: min(380px, 94vw); }

/* ═══════════════════════════════════════════════════════════
   SCOREBOARD — istoric runde + ranking live + ATU history
   ═══════════════════════════════════════════════════════════ */
.holdem-sb-overlay {
    position: fixed; inset: 0; z-index: 9000;
    background: rgba(8, 4, 18, 0.78);
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    display: none; align-items: center; justify-content: center;
    padding: 16px; opacity: 0; transition: opacity 0.22s ease;
}
.holdem-sb-overlay.active { display: flex; opacity: 1; }
.holdem-sb-card {
    width: 100%; max-width: 480px; max-height: 92vh; overflow-y: auto;
    background: linear-gradient(135deg, rgba(38, 25, 64, 0.96) 0%, rgba(20, 12, 38, 0.97) 100%);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    border-radius: 16px;
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    color: #fff7e0;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    padding: 18px 18px 14px;
}
.holdem-sb-header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.holdem-sb-title { font-size: 17px; font-weight: 800; color: var(--holdem-gold, var(--holdem-gold, #ffd700)); flex: 1; }
.holdem-sb-meta { font-size: 12px; opacity: 0.8; }
.holdem-sb-close { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.06); color: var(--holdem-text-strong, #fff); font-size: 18px; cursor: pointer; line-height: 1;
    display: flex; align-items: center; justify-content: center; transition: background 0.15s; }
.holdem-sb-close:hover { background: rgba(255, 255, 255, 0.12); }

/* ═══════════════════════════════════════════════════════════════
   HEADER PREMIUM TABELA SCOR (cerere user — „fă modal profesional, redenumește")
   Design casino royale: emblema aurie + titlu Cinzel + meta grid + linie despărțitoare aurie
   ═══════════════════════════════════════════════════════════════ */
.holdem-sb-header-pro {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: 14px;
    margin: -2px -2px 16px;
    padding: 14px 16px;
    background:
        radial-gradient(ellipse at top, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.10) 0%, transparent 60%),
        linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.06) 0%, rgba(0, 0, 0, 0.25) 100%);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.32);
    border-radius: 12px;
    box-shadow:
        inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3),
        0 4px 14px rgba(0, 0, 0, 0.4);
    position: relative;
}
.holdem-sb-header-pro::after {
    /* linie aurie subtire la baza header-ului */
    content: '';
    position: absolute;
    left: 12%; right: 12%; bottom: -6px;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6) 50%, transparent 100%);
    pointer-events: none;
}
.holdem-sb-emblem {
    width: 42px; height: 42px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 30% 30%, #ffeb70 0%, var(--holdem-gold, #ffd700) 40%, #b8860b 100%);
    border: 1.5px solid rgba(0, 0, 0, 0.5);
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.55),
        inset 0 -2px 4px rgba(0, 0, 0, 0.35),
        0 3px 10px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.holdem-sb-emblem-icon {
    font-size: 22px;
    color: #1a1a1a;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
    line-height: 1;
}
.holdem-sb-titlewrap {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.holdem-sb-title-pro {
    font-family: 'Cinzel', 'Bebas Neue', serif;
    font-weight: 800;
    font-size: 18px;
    letter-spacing: 2.5px;
    color: var(--holdem-gold, var(--holdem-gold, #ffd700));
    text-transform: uppercase;
    line-height: 1.05;
    text-shadow:
        0 2px 6px rgba(0, 0, 0, 0.7),
        0 0 14px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.35);
    background: linear-gradient(180deg, #fff2a8 0%, var(--holdem-gold, #ffd700) 50%, #b8860b 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 1px 0 rgba(0, 0, 0, 0.6));
}
.holdem-sb-subtitle {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 10.5px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: rgba(255, 247, 224, 0.62);
    font-weight: 600;
}
.holdem-sb-meta-pro {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 6px 12px;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.25);
    border-radius: 8px;
    text-align: right;
    min-width: 72px;
}
.holdem-sb-meta-line {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    font-family: 'Inter', system-ui, sans-serif;
}
.holdem-sb-meta-label {
    font-size: 9px;
    letter-spacing: 1.2px;
    color: rgba(255, 247, 224, 0.55);
    font-weight: 700;
}
.holdem-sb-meta-value {
    font-family: 'Cinzel', 'Bebas Neue', serif;
    font-size: 14px;
    font-weight: 800;
    color: var(--holdem-gold, var(--holdem-gold, #ffd700));
    line-height: 1;
}
.holdem-sb-meta-tot {
    font-size: 11px;
    opacity: 0.55;
    color: rgba(255, 247, 224, 0.7);
    margin-left: 2px;
}
@media (max-width: 480px) {
    .holdem-sb-header-pro { grid-template-columns: auto 1fr auto; padding: 10px 12px; gap: 10px; }
    .holdem-sb-meta-pro { display: none; }   /* meta ascunsă pe mobil mic — runda apare în statusbar oricum */
    .holdem-sb-emblem { width: 36px; height: 36px; }
    .holdem-sb-emblem-icon { font-size: 18px; }
    .holdem-sb-title-pro { font-size: 15px; letter-spacing: 1.8px; }
    .holdem-sb-subtitle { font-size: 9.5px; letter-spacing: 1px; }
    /* Mobile compact — scoreboard card + table */
    .holdem-sb-card { padding: 14px 14px 12px; }
    .holdem-sb-table .holdem-sb-row { grid-template-columns: 24px 22px repeat(var(--holdem-sb-cols, 4), 1fr); padding: 4px 3px; font-size: 10px; }
    .holdem-sb-bw { font-size: 10px; } .holdem-sb-pt { font-size: 8px; }
    .holdem-sb-title { font-size: 16px; } .holdem-sb-meta { font-size: 11px; }
    /* Mobile compact — bid panel */
    .holdem-bid-area { min-width: 280px; padding: 10px 12px !important; }
    .holdem-bidp-row { font-size: 11px; padding: 4px 6px; }
    .holdem-bidp-row-bid { font-size: 14px; }
    /* Mobile mic ≤480px — compactare TOTAL, fără spații goale, fără ascunderi.
       Hand 46×64 → ranks 12px/suit 10px/pip 22px proporționate. */
    /* rând jos 222px (era 200): mâna (96) + scaun/dock (106) depășeau 200 → scaunul de jos ieșea sub
       player-area. 222 folosește spațiul gol de sub masă (până la status bar) + încadrează tot. (cerere user) */
    .holdem-root { grid-template-rows: minmax(0, 1fr) 222px !important; }
    .holdem-bottom-row, .holdem-player-area { padding: 4px 6px !important; gap: 5px !important; margin: 2px 3px 3px !important; }
    .holdem-my-info { padding: 5px 8px !important; gap: 8px !important; min-height: 76px !important; }
    .holdem-my-info .holdem-my-avatar { width: 50px !important; height: 50px !important; }
    .holdem-my-info .holdem-my-scorewrap { width: 30px !important; height: 30px !important; bottom: -6px !important; right: -6px !important; }
    .holdem-my-info .holdem-my-score { font-size: 13px !important; }
    .holdem-my-info .holdem-my-name { font-size: 12px !important; }
    .holdem-my-info .holdem-my-bid, .holdem-my-info .holdem-my-tricks { font-size: 9px !important; padding: 1px 6px !important; }
    /* CĂRȚI MÂNĂ MĂRITE 58×82 (era 46×64): rândul de jos e acum 222px → zona mâinii are loc, iar cărțile mici
       lăsau spațiu gol. Mai mari = folosesc tot spațiul + lizibile. Step 43px (margin -15) → 8 cărți încap în lățime. (cerere user) */
    .holdem-my-hand .holdem-card { width: 58px !important; height: 82px !important; margin-left: -15px !important; }
    .holdem-my-hand .holdem-card:first-child { margin-left: 0 !important; }
    /* Card icons proporționate cu 46×64 — rank 12px / suit 9px / pip 22px.
       ASCUND corner-br pe mobil (cerere user — „cartile sunt taiate jos") pentru că
       suprapunerea negativă a hand-ului (margin-left -13px) lăsa rank-ul bottom-right
       tăiat la "01" în loc de "10". Pe mobile e suficient corner-tl + pip-ul central. */
    .holdem-my-hand .holdem-card-rank { font-size: 15px !important; }
    .holdem-my-hand .holdem-card-suit-small { font-size: 12px !important; }
    .holdem-my-hand .holdem-card-pip { font-size: 30px !important; }
    .holdem-my-hand .holdem-card-corner-tl { top: 3px !important; left: 4px !important; }
    .holdem-my-hand .holdem-card-corner-br { display: none !important; }
    .holdem-my-hand { min-height: 84px !important; max-height: 92px !important; }
    .holdem-player-dock { padding: 5px 8px !important; min-height: 76px !important; }
    .holdem-dock-btn { width: 24px !important; height: 24px !important; font-size: 11px !important; }
    .holdem-turn-mine, .holdem-turn-other { font-size: 10px !important; }
    .holdem-dock-atu, .holdem-dock-round, .holdem-timer-pill { padding: 1px 5px !important; font-size: 9px !important; }
    /* Cărți jucate pe felt — proporționate cu cărți mici 46×64 */
    .holdem-seat-played-card .holdem-card { width: 44px !important; height: 62px !important; }
    .holdem-seat-played-card .holdem-card-rank { font-size: 13px !important; }
    .holdem-seat-played-card .holdem-card-suit-small { font-size: 10px !important; }
    .holdem-seat-played-card .holdem-card-pip { font-size: 22px !important; }
    .holdem-my-played-card { width: 44px !important; height: 62px !important; }
    .holdem-my-played-card .holdem-card { width: 44px !important; height: 62px !important; }
    .holdem-my-played-card .holdem-card-rank { font-size: 14px !important; }
    .holdem-my-played-card .holdem-card-suit-small { font-size: 10px !important; }
    .holdem-my-played-card .holdem-card-pip { font-size: 24px !important; }
}

/* Podium ranking */
.holdem-sb-podium { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px;
    padding: 10px 12px; background: rgba(0, 0, 0, 0.25); border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.06); }
.holdem-sb-rank { display: flex; align-items: center; gap: 10px; padding: 4px 6px; font-size: 13px; border-radius: 6px; }
.holdem-sb-rank.me { background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.12); border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.3); }
.holdem-sb-rank-pos { width: 24px; text-align: center; font-size: 15px; font-weight: 800; flex-shrink: 0; }
.holdem-sb-rank-name { flex: 1; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Avatar pill: img sau initial circle */
.holdem-sb-av {
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background-size: cover; background-position: center;
    flex-shrink: 0; font-size: 11px; font-weight: 700; color: var(--holdem-text-strong, #fff);
    text-shadow: 0 1px 2px rgba(0,0,0,.5);
    border: 1.5px solid rgba(255,255,255,.18);
    box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.holdem-sb-av-fallback { letter-spacing: 0.5px; }
.holdem-sb-rank-name em { color: var(--holdem-gold, var(--holdem-gold, #ffd700)); font-style: normal; font-size: 11px; }
.holdem-sb-rank-score { font-weight: 800; color: var(--holdem-gold, var(--holdem-gold, #ffd700)); font-variant-numeric: tabular-nums; }

/* Table */
.holdem-sb-table { background: rgba(0, 0, 0, 0.20); border-radius: 10px; overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.06); margin-bottom: 12px; }
/* Scop la .holdem-sb-table (modal) + coloane DINAMICE = nr. jucători (era hardcodat 4 → spart la 3/5/6P).
   Selector mai specific decât `.holdem-sb-row` de la sidebar (5182) → câștigă pt. rândurile modalului. */
.holdem-sb-table .holdem-sb-row { display: grid; grid-template-columns: 28px 24px repeat(var(--holdem-sb-cols, 4), 1fr); gap: 2px;
    padding: 5px 4px; font-size: 11px; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, 0.04); }
.holdem-sb-row:last-child { border-bottom: none; }
.holdem-sb-row.holdem-sb-head { background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.08); font-weight: 700;
    color: var(--holdem-gold, var(--holdem-gold, #ffd700)); font-size: 10px; text-transform: uppercase; letter-spacing: 0.3px; }
.holdem-sb-row-live { background: rgba(74, 222, 128, 0.06); border-top: 1px solid rgba(74, 222, 128, 0.25); }
.holdem-sb-c-rd { text-align: center; font-weight: 700; opacity: 0.7; }
.holdem-sb-c-atu { text-align: center; font-size: 14px; font-weight: 800; line-height: 1; }
.holdem-sb-c-player { text-align: center; font-weight: 600; opacity: 0.85; padding: 0 2px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.holdem-sb-c-player.me { color: var(--holdem-gold, var(--holdem-gold, #ffd700)); }
.holdem-sb-c-cell { display: flex; flex-direction: column; align-items: center; gap: 0; padding: 2px 0;
    border-radius: 5px; line-height: 1.1; position: relative; }
/* FĂCUT licitarea (bid == mâini) — VERDE clar + bordură + bifă ✓ (cerere user: „să se vadă
   distinctiv când și-a făcut ce a licitat"). RATAT — ROȘU clar + ✕. */
.holdem-sb-c-cell.hit {
    background: linear-gradient(180deg, rgba(74, 222, 128, 0.30), rgba(74, 222, 128, 0.12));
    box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.55); color: #dcfce7;
}
.holdem-sb-c-cell.hit .holdem-sb-pt { color: #4ade80; font-weight: 800; opacity: 1; }
.holdem-sb-c-cell.hit::after {
    content: '✓'; position: absolute; top: -1px; right: 2px; font-size: 8px; line-height: 1;
    color: #4ade80; font-weight: 900; text-shadow: 0 0 4px rgba(74, 222, 128, 0.6);
}
.holdem-sb-c-cell.miss {
    background: linear-gradient(180deg, rgba(248, 113, 113, 0.26), rgba(248, 113, 113, 0.09));
    box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.45); color: #fee2e2;
}
.holdem-sb-c-cell.miss .holdem-sb-pt { color: #f87171; font-weight: 800; opacity: 1; }
.holdem-sb-c-cell.miss::after {
    content: '✕'; position: absolute; top: -1px; right: 2px; font-size: 7px; line-height: 1;
    color: #f87171; font-weight: 900; opacity: 0.85;
}
.holdem-sb-c-cell.live { background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.10); color: #fde68a; }
.holdem-sb-bw { font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; }
.holdem-sb-pt { font-size: 9px; opacity: 0.8; font-variant-numeric: tabular-nums; }

/* ATU strip */
.holdem-sb-atu-strip { display: flex; align-items: center; gap: 6px; padding: 8px 10px;
    background: rgba(0, 0, 0, 0.20); border-radius: 10px; border: 1px solid rgba(255, 255, 255, 0.06);
    flex-wrap: wrap; }
.holdem-sb-atu-label { font-size: 10px; opacity: 0.7; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.5px; margin-right: 4px; }
.holdem-sb-atu-mini { font-size: 14px; font-weight: 800; min-width: 16px; text-align: center; }

/* ═══════════════════════════════════════════════════════════════════════════
   PANEL LICITARE PROFESIONAL UNIFICAT (cerere user)
   Totul într-un singur panou. NU mai apar chip-uri pe avatari / banner Σ
   centrat / hint separat / toast — totul în interiorul `.holdem-bid-area`.
   Structură: Header + Live Table + Action + Footer.
   ═══════════════════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════════════════
   PANEL LICITARE — poziționat SUB avatarul de sus (top: 80px), încap NATURAL
   în safe-zone de 280px (verificat live). Width 420px, height auto cap la 280.
   Cu BUTOANE 0-7 și toate secțiunile vizibile: ~280px (testat 8 butoane).
   ═══════════════════════════════════════════════════════════════════════════ */
.holdem-bid-area {
    position: absolute !important;
    top: 80px !important;            /* SUB avatarul de sus (avatar ends y=74) */
    bottom: auto !important;
    left: 50% !important;
    right: auto !important;
    /* FIX BUG #3 CSS (audit): `!important` pe transform BLOCA animația `holdem-bid-emerge`
       (rotateX/scale) → panoul nu mai avea efect 3D emerge. Eliminat — left:50% + animation
       inițială setează transform corect, anim poate sub-suprascrie pentru emerge. */
    transform: translateX(-50%);
    margin: 0 !important;

    width: 420px !important;
    min-width: 420px !important;
    max-width: 420px !important;
    height: auto !important;
    /* FIX ROBUST (butoanele se tăiau jos pe ecrane scurte): max-height RELATIV la felt → panoul
       se încadrează MEREU în felt; tabelul jucătorilor scrollează intern → header + butoane + footer vizibile. */
    max-height: calc(100% - 92px) !important;
    /* FIX (cerere user — „licitarea iese din chenar cu mai mulți jucători"): era `visible` →
       conținutul (tabel jucători + butoanele 0-8 + nota ultim-licitator) depășea 280px și se
       revărsa sub felt. Acum `hidden` + tabelul jucătorilor scrollează intern (vezi .holdem-bidp-table)
       → header-ul, butoanele de bid și footer-ul rămân MEREU vizibile, indiferent de câți jucători. */
    overflow: hidden !important;
    gap: 5px !important;
    padding: 8px 12px !important;

    /* ADAPTIV LA FELT (cerere user: „licitarea nu ține cont de tema masă 🎨") — panoul preia
       culoarea LIVE a feltului (HoldemThemeSync setează --holdem-panel-felt-1/2/3 din .holdem-table-area)
       → verde/albastru/roșu/mov/light, panoul se potrivește mereu. Accentul auriu rămâne premium. */
    background:
        radial-gradient(120% 80% at 50% 0%, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.10), transparent 55%),
        linear-gradient(160deg,
            color-mix(in srgb, var(--holdem-panel-felt-1, #1e6a3a) 78%, #000 22%) 0%,
            color-mix(in srgb, var(--holdem-panel-felt-2, #14502b) 82%, #000 18%) 45%,
            color-mix(in srgb, var(--holdem-panel-felt-3, #0a2d1a) 86%, #000 14%) 100%) !important;
    border: 1.5px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45) !important;
    border-radius: 16px !important;
    box-shadow:
        0 26px 64px rgba(0, 0, 0, 0.70),
        0 6px 18px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.20),
        0 0 30px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.12) !important;
    backdrop-filter: blur(24px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(160%) !important;
    z-index: 100 !important;
}
/* linie de lumină aurie sus (ca dock-ul cockpit) */
.holdem-bid-area::before {
    content: '' !important; position: absolute; top: 0; left: 16%; right: 16%; height: 1px; border-radius: 2px;
    background: linear-gradient(90deg, transparent, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.95), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85), transparent);
    box-shadow: 0 0 8px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5); pointer-events: none; z-index: 2;
}
/* TITLU metalic auriu (ca numele din crest) */
.holdem-bidp-title-txt {
    background: linear-gradient(180deg, var(--holdem-gold-light, #ffeaa8) 0%, var(--holdem-gold, #ffd700) 48%, var(--holdem-gold-deep, var(--holdem-gold-deep, #d97706)) 100%) !important;
    -webkit-background-clip: text !important; background-clip: text !important; -webkit-text-fill-color: transparent !important;
    filter: drop-shadow(0 1px 1.5px rgba(0, 0, 0, 0.6)); letter-spacing: 1.5px !important;
}
/* rândul curentului-licitator — glow auriu mai clar */
.holdem-bidp-row.current {
    background: linear-gradient(90deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.16), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.04)) !important;
    box-shadow: inset 3px 0 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.9), 0 0 14px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.12) !important;
}
/* BUTOANE bid = giuvaiere (cohesiv cu scorul din crest); sugestia AI = giuvaer auriu */
.holdem-bid-btn {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important; color: var(--holdem-text-strong, #fff) !important;
}
.holdem-bid-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.08)) !important;
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6) !important; box-shadow: 0 0 16px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30) !important; transform: translateY(-2px) !important;
}
.holdem-bid-btn.suggested {
    background: linear-gradient(135deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30), rgba(var(--holdem-gold-deep-rgb, 217, 119, 6), 0.16)) !important;
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.70) !important;
    box-shadow: inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.40), 0 0 16px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22) !important; color: var(--holdem-gold, #ffd700) !important;
}
/* Mobile fallback */
@media (max-width: 460px) {
    .holdem-bid-area { width: 94vw !important; min-width: 0 !important; max-width: 94vw !important; padding: 8px 10px !important; }
}

/* HEADER COMPACT — title + meta inline + status pe rând separat */
.holdem-bidp-header {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22);
}
.holdem-bidp-title {
    display: flex; align-items: center; gap: 6px;
}
.holdem-bidp-title-txt {
    font-family: 'Cinzel', serif;
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 0.8px;
    color: var(--holdem-gold, #ffd700);
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5), 0 0 8px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.25);
    text-transform: uppercase;
}
.holdem-bidp-title-icon { font-size: 13px; }
.holdem-bidp-meta {
    display: flex; flex-wrap: wrap; gap: 3px; margin-left: auto;
}
.holdem-bidp-meta-pill {
    display: inline-flex; align-items: center; gap: 3px;
    padding: 1px 6px;
    font-size: 9px; font-weight: 700;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 99px;
    color: var(--holdem-text-mid, #cbd5e1);
}
.holdem-bidp-meta-pill b { color: var(--holdem-text-strong, #fff); font-size: 10px; }
.holdem-bidp-meta-pill.atu {
    background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.14);
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55);
    font-weight: 800;
}
.holdem-bidp-meta-pill.no-atu { opacity: 0.6; }

.holdem-bidp-status {
    align-self: flex-start;
    padding: 1px 8px;
    font-size: 9px; font-weight: 800;
    border-radius: 99px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
.holdem-bidp-status.mine {
    background: linear-gradient(180deg, rgba(74, 222, 128, 0.95), rgba(34, 197, 94, 0.85));
    color: #062c14;
    box-shadow: 0 2px 8px rgba(74, 222, 128, 0.4);
    animation: holdem-bidp-mine-pulse 1.4s ease-in-out infinite;
}
@keyframes holdem-bidp-mine-pulse {
    0%, 100% { box-shadow: 0 2px 8px rgba(74, 222, 128, 0.4); }
    50% { box-shadow: 0 2px 16px rgba(74, 222, 128, 0.8); }
}
.holdem-bidp-status.wait {
    background: rgba(91, 141, 239, 0.18);
    border: 1px solid rgba(91, 141, 239, 0.4);
    color: #93c5fd;
}
.holdem-bidp-status.done {
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.95), rgba(218, 165, 32, 0.85));
    color: #4a3608;
    box-shadow: 0 2px 8px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.35);
}

/* LIVE TABLE — rânduri compacte */
.holdem-bidp-table {
    width: 100%;
    display: flex; flex-direction: column;
    gap: 2px;
    /* Partea care crește cu numărul de jucători → o facem scrollabilă intern, ca secțiunile
       fixe (header, butoane bid, footer) să rămână vizibile indiferent de câți jucători sunt.
       min-height:0 e necesar ca flex item-ul să poată scădea sub înălțimea conținutului. */
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45) transparent;
}
.holdem-bidp-table::-webkit-scrollbar { width: 5px; }
.holdem-bidp-table::-webkit-scrollbar-thumb { background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4); border-radius: 3px; }
.holdem-bidp-table::-webkit-scrollbar-track { background: transparent; }
/* Secțiunile fixe ale panoului NU se micșorează — doar tabelul jucătorilor scrollează */
.holdem-bidp-header, .holdem-bidp-action, .holdem-bidp-footer { flex-shrink: 0; }
.holdem-bidp-row {
    display: grid;
    grid-template-columns: 16px 1fr 32px;
    align-items: center;
    gap: 8px;
    padding: 2px 9px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    font-size: 11px;
    transition: background 0.22s, border-color 0.22s, transform 0.22s;
}
.holdem-bidp-row.waiting {
    opacity: 0.55;
}
.holdem-bidp-row.current {
    background: rgba(91, 141, 239, 0.16);
    border-color: rgba(91, 141, 239, 0.55);
    box-shadow: 0 0 12px rgba(91, 141, 239, 0.25);
    animation: holdem-bidp-row-current 1.4s ease-in-out infinite;
}
@keyframes holdem-bidp-row-current {
    0%, 100% { box-shadow: 0 0 12px rgba(91, 141, 239, 0.25); }
    50% { box-shadow: 0 0 18px rgba(91, 141, 239, 0.55); }
}
.holdem-bidp-row.done {
    background: rgba(74, 222, 128, 0.10);
    border-color: rgba(74, 222, 128, 0.35);
}
.holdem-bidp-row.me {
    border-left: 3px solid var(--holdem-gold, #ffd700);
}
.holdem-bidp-row-status {
    font-size: 12px; text-align: center;
    color: rgba(255, 255, 255, 0.7);
}
.holdem-bidp-row.done .holdem-bidp-row-status { color: #4ade80; font-weight: 800; }
.holdem-bidp-row.current .holdem-bidp-row-status { color: #93c5fd; font-weight: 800; }
.holdem-bidp-row-name {
    font-weight: 600;
    color: var(--holdem-text, #f1f5f9);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.holdem-bidp-row-name em {
    font-style: normal; color: var(--holdem-gold, #ffd700); font-weight: 800; font-size: 10px;
    background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15);
    padding: 1px 5px; border-radius: 99px; margin-left: 4px;
}
.holdem-bidp-row-bid {
    font-family: 'Cinzel', serif;
    font-size: 14px; font-weight: 800;
    text-align: center;
    color: var(--holdem-text-strong, #fff);
    line-height: 1;
}
.holdem-bidp-row.waiting .holdem-bidp-row-bid { color: rgba(255, 255, 255, 0.3); }
.holdem-bidp-row.done .holdem-bidp-row-bid { color: #4ade80; }

/* ACTION COMPACT — buton + hint */
.holdem-bidp-action {
    width: 100%;
    display: flex; flex-direction: column;
    gap: 4px;
    padding: 4px 0 0;
    border-top: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22);
}
.holdem-bidp-action-label {
    font-size: 11px;
    color: var(--holdem-text, #f1f5f9);
    font-weight: 700;
    display: flex; align-items: center; justify-content: space-between;
    letter-spacing: 0.3px;
}
.holdem-bidp-hint {
    font-size: 9px;
    color: #fbbf24;
    background: rgba(251, 191, 36, 0.14);
    padding: 2px 7px;
    border-radius: 99px;
    border: 1px solid rgba(251, 191, 36, 0.45);
    font-weight: 700;
}
.holdem-bidp-hint b { color: var(--holdem-text-strong, #fff); }
/* Stare „se împart cărțile" — afișată în loc de butoanele de bid cât timp mâna nu e încă
   vizibilă (cărțile se împart). Butoanele apar automat după ce împărțirea se termină. */
.holdem-bidp-action-label.holdem-bidp-dealing {
    justify-content: center;
    gap: 8px;
    color: #fcd34d;
    padding: 6px 0;
    animation: holdem-bidp-dealing-pulse 1.1s ease-in-out infinite;
}
.holdem-bidp-action-label.holdem-bidp-dealing span {
    font-size: 9px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.6);
    letter-spacing: 0;
}
@keyframes holdem-bidp-dealing-pulse {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

/* Buton suggestion — steluță pe butonul recomandat */
.holdem-bid-btn.suggested {
    border-color: rgba(251, 191, 36, 0.85) !important;
    box-shadow: 0 0 12px rgba(251, 191, 36, 0.5) !important;
    position: relative;
}
.holdem-bidp-hint-star {
    position: absolute;
    top: -8px; right: -8px;
    font-size: 12px;
    background: #fbbf24;
    width: 18px; height: 18px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
    animation: holdem-bidp-star-pulse 1.2s ease-in-out infinite;
}
@keyframes holdem-bidp-star-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15); }
}

/* FOOTER COMPACT — Σ Total */
.holdem-bidp-footer {
    width: 100%;
    display: flex; align-items: center; gap: 6px;
    padding: 4px 10px;
    background: rgba(0, 0, 0, 0.32);
    border-radius: 9px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    font-size: 11px;
    transition: background 0.35s, border-color 0.35s;
}
.holdem-bidp-sum-icon {
    font-size: 14px;
    font-weight: 800;
    color: var(--holdem-text-mid, #cbd5e1);
    min-width: 14px;
}
.holdem-bidp-sum-val {
    font-family: 'Cinzel', serif;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.75);
}
.holdem-bidp-sum-val b {
    color: var(--holdem-text-strong, #fff);
    font-size: 14px;
    margin-right: 2px;
}
.holdem-bidp-sum-label {
    flex: 1;
    color: rgba(255, 255, 255, 0.70);
    font-size: 9px;
    text-align: right;
    font-style: italic;
    font-weight: 600;
}
.holdem-bidp-footer.exact {
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.20), rgba(218, 165, 32, 0.12));
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55);
}
.holdem-bidp-footer.exact .holdem-bidp-sum-icon,
.holdem-bidp-footer.exact .holdem-bidp-sum-val b { color: var(--holdem-gold, #ffd700); }
.holdem-bidp-footer.exact .holdem-bidp-sum-label { color: #fde68a; font-style: normal; font-weight: 700; }
.holdem-bidp-footer.over {
    background: rgba(239, 68, 68, 0.10);
    border-color: rgba(239, 68, 68, 0.35);
}
.holdem-bidp-footer.over .holdem-bidp-sum-icon { color: #f87171; }
.holdem-bidp-footer.under {
    background: rgba(74, 222, 128, 0.10);
    border-color: rgba(74, 222, 128, 0.35);
}
.holdem-bidp-footer.under .holdem-bidp-sum-icon { color: #4ade80; }

/* Note "ești ultimul" — compact */
.holdem-bid-note {
    font-size: 9px;
    color: #fef3c7;
    background: rgba(245, 158, 11, 0.12);
    border: 1px solid rgba(245, 158, 11, 0.35);
    border-radius: 5px;
    padding: 3px 8px;
    text-align: center;
}
.holdem-bid-note b { color: #fbbf24; }

/* OVERRIDE BUTOANE pentru noul panou — fix dimensiune compactă + dezactivez cascada anim
   care făcea buton 15px (50% scale stuck în delay backwards) */
.holdem-bid-area.holdem-bid-emerge .holdem-bid-btns .holdem-bid-btn {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
}
.holdem-bid-area .holdem-bid-btn {
    min-width: 36px;
    height: 30px;
    font-size: 13px;
    padding: 0 6px;
    border-radius: 7px;
}
.holdem-bid-area .holdem-bid-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
}

/* Banner Σ centrat ELIMINAT (info acum în footer-ul panoului) */
.holdem-bid-summary,
#holdemBidSummary { display: none !important; }

/* Chip-uri jeton pe avatari ELIMINATE (info acum în LIVE TABLE) */
.holdem-avatar-chip-stack { display: none !important; }

/* DEAD: vechiul `holdem-bid-progress` (rândul cu chip-uri din panel vechi) */
.holdem-bid-progress { display: none !important; }
.holdem-bid-progress + .holdem-bid-progress { display: none !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   ZONA SUD — CASINO ROYALE PROFESIONAL (cerere user — testat live + confirmat)
   Grid 3 col: avatar zone | hand | dock, toate înălțime uniformă 96px,
   ambele card-uri stretched la full grid column (fără spațiu rămas).
   Avatar cu ring conic auriu (timer ring), score badge auriu casino-grade
   pe avatar (în loc de coloană separată), chip-uri Bid/Făcute colorate inline.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE FINAL — sistem unic, ordonat de la desktop la mobile mic
   PRINCIPIU: regulile cu !important sunt prinse în media query-ul lor
   ca să NU se bată cu cele de viewport mai mic. Nu mai există duplicate.
   ═══════════════════════════════════════════════════════════════ */

/* DESKTOP MARE (≥1024px) — bottom-row pe 3 coloane fixe 290px | 1fr | 290px */
@media (min-width: 1024px) {
    .holdem-bottom-row, .holdem-player-area {
        display: grid !important;
        grid-template-columns: var(--ds-bottom-col-w) minmax(0, 1fr) var(--ds-bottom-col-w) !important;
        gap: var(--ds-bottom-gap) !important;
        padding: var(--ds-bottom-pad-v) var(--ds-bottom-pad-h) !important;
        align-items: stretch !important;
    }
}

/* TABLETĂ LANDSCAPE (901–1023px) — bottom-row pe 3 coloane mai compacte 240px | 1fr | 240px */
@media (min-width: 901px) and (max-width: 1023px) {
    .holdem-bottom-row, .holdem-player-area {
        display: grid !important;
        grid-template-columns: var(--ds-bottom-col-w-tab) minmax(0, 1fr) var(--ds-bottom-col-w-tab) !important;
        gap: var(--ds-bottom-gap-tab) !important;
        padding: var(--ds-bottom-pad-v-tab) var(--ds-bottom-pad-h-tab) !important;
        align-items: stretch !important;
    }
    .holdem-my-info, .holdem-player-dock { min-height: var(--ds-infodock-minh-tab) !important; padding: var(--ds-bottom-pad-v-tab) var(--ds-bottom-pad-h-tab) !important; }
}

/* ──────────────────────────────────────────────────────────────────────
   6 JUCĂTORI · rândul de sus (north/nw/ne) — 901–1200px
   La 6J rândul de sus are 3 chip-uri orizontale (168px) care se SUPRAPUNEAU
   când feltul scădea sub ~970px (6px@1100, 27px@1024, 51px@940) + numele lungi
   ('Cristian') se tăiau. FIX: chip VERTICAL (avatar sus, nume pe toată lățimea,
   scor în colț) — exact pattern-ul folosit la ≤480 (≈linia 3859). 3 chip-uri
   verticale (~118px) încap fără suprapunere pe tot range-ul, iar numele primesc
   lățimea completă. Scopat 901–1200 (≤900 are layout-ul mobil propriu).
   Verificat în harness 900–1200px / 6J: 0 suprapuneri, 0 trunchieri.
   Limita 900 (nu 901) închide „zona moartă" de 1px de la granița 900/901 unde,
   pe ecrane cu DPR fracționar (ex. 1.25), lățimea reală 900.x rata AMBELE
   `min-width:901` și `max-width:900` → chip-urile reveneau la orizontal suprapus. */
@media (min-width: 900px) and (max-width: 1200px) {
    .holdem-root-6p .holdem-opp-north .holdem-opp-card,
    .holdem-root-6p .holdem-opp-ne .holdem-opp-card,
    .holdem-root-6p .holdem-opp-nw .holdem-opp-card {
        flex-direction: column;
        align-items: center;
        gap: 3px;
        width: auto;
        min-width: var(--ds-6p-chip-minw);
        max-width: var(--ds-6p-chip-maxw);
        padding: 8px 11px 7px;
    }
    .holdem-root-6p .holdem-opp-north .holdem-opp-meta,
    .holdem-root-6p .holdem-opp-ne .holdem-opp-meta,
    .holdem-root-6p .holdem-opp-nw .holdem-opp-meta { align-items: center; width: 100%; }
    .holdem-root-6p .holdem-opp-north .holdem-opp-name,
    .holdem-root-6p .holdem-opp-ne .holdem-opp-name,
    .holdem-root-6p .holdem-opp-nw .holdem-opp-name { max-width: var(--ds-6p-name-maxw); text-align: center; font-size: var(--ds-6p-name-fs); }
    .holdem-root-6p .holdem-opp-north .holdem-opp-stats,
    .holdem-root-6p .holdem-opp-ne .holdem-opp-stats,
    .holdem-root-6p .holdem-opp-nw .holdem-opp-stats { justify-content: center; flex-wrap: nowrap; }
    .holdem-root-6p .holdem-opp-north .holdem-opp-score,
    .holdem-root-6p .holdem-opp-ne .holdem-opp-score,
    .holdem-root-6p .holdem-opp-nw .holdem-opp-score { position: absolute; top: -9px; right: -9px; margin: 0; }
}

/* Mobile mini ≤360px — cele mai mici telefoane (iPhone SE 1st gen, Galaxy Fold închis).
   Hand 40×56 → ranks 11px/suit 8px/pip 20px ca să rămână lizibile la dimensiunea mică. */
@media (max-width: 360px) {
    .holdem-root { grid-template-rows: minmax(0, 1fr) 210px !important; }
    .holdem-bottom-row, .holdem-player-area { padding: 3px 4px !important; gap: 4px !important; margin: 2px !important; }
    .holdem-my-info .holdem-my-avatar { width: 44px !important; height: 44px !important; }
    .holdem-my-info .holdem-my-name { font-size: 11px !important; letter-spacing: 0.5px !important; }
    .holdem-my-hand .holdem-card { width: 40px !important; height: 56px !important; margin-left: -11px !important; }
    .holdem-my-hand { min-height: 62px !important; max-height: 70px !important; }
    /* Card icons mini — rank 11px / suit 8px / pip 20px. Corner-br ascuns ca pe ≤480. */
    .holdem-my-hand .holdem-card-rank { font-size: 11px !important; letter-spacing: -0.5px !important; }
    .holdem-my-hand .holdem-card-suit-small { font-size: 8px !important; }
    .holdem-my-hand .holdem-card-pip { font-size: 20px !important; }
    .holdem-my-hand .holdem-card-corner-tl { top: 1px !important; left: 2px !important; }
    .holdem-my-hand .holdem-card-corner-br { display: none !important; }
    .holdem-dock-btn { width: 22px !important; height: 22px !important; font-size: 10px !important; }
    /* Cărți jucate mini */
    .holdem-seat-played-card .holdem-card { width: 38px !important; height: 54px !important; }
    .holdem-seat-played-card .holdem-card-rank { font-size: 11px !important; }
    .holdem-seat-played-card .holdem-card-suit-small { font-size: 8px !important; }
    .holdem-seat-played-card .holdem-card-pip { font-size: 18px !important; }
    .holdem-my-played-card { width: 38px !important; height: 54px !important; bottom: 6px !important; }
    .holdem-my-played-card .holdem-card { width: 38px !important; height: 54px !important; }
    .holdem-my-played-card .holdem-card-rank { font-size: 12px !important; }
    .holdem-my-played-card .holdem-card-pip { font-size: 20px !important; }
}

/* ── My-info card: avatar + meta (NO score column — score = badge pe avatar) ── */
.holdem-my-info {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px 14px !important;
    min-height: 96px !important;
    width: 100% !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
    background:
        radial-gradient(ellipse at top, rgba(255,215,0,0.08) 0%, transparent 60%),
        linear-gradient(180deg, rgba(35,22,60,0.92) 0%, rgba(20,12,38,0.95) 100%) !important;
    border: 1.5px solid rgba(255,215,0,0.40) !important;
    border-radius: 16px !important;
    box-shadow:
        0 8px 24px rgba(0,0,0,0.5),
        inset 0 1px 0 rgba(255,255,255,0.10),
        0 0 20px rgba(255,215,0,0.08) !important;
}

/* Avatar cu conic-gradient timer ring + glow + score badge poziționat */
.holdem-my-info .holdem-my-avatar {
    width: 68px !important;
    height: 68px !important;
    border: 3px solid transparent !important;
    background:
        linear-gradient(180deg, #1e293b 0%, #0f172a 100%) padding-box,
        conic-gradient(from -90deg,
            var(--holdem-gold, #ffd700) 0deg,
            var(--holdem-gold, #ffd700) var(--timer-deg, 360deg),
            rgba(255,215,0,0.15) var(--timer-deg, 360deg)
        ) border-box !important;
    box-shadow:
        0 0 22px rgba(255,215,0,0.40),
        0 4px 14px rgba(0,0,0,0.70),
        inset 0 2px 6px rgba(255,255,255,0.20) !important;
    position: relative !important;
    overflow: visible !important;
    flex-shrink: 0 !important;
    transition: box-shadow 0.3s !important;
}
.holdem-my-info.current-turn .holdem-my-avatar {
    box-shadow:
        0 0 32px rgba(74,222,128,0.70),
        0 0 14px rgba(255,215,0,0.50),
        0 4px 14px rgba(0,0,0,0.70),
        inset 0 2px 6px rgba(255,255,255,0.30) !important;
    /* FIX BUG #4 (audit): animation holdem-my-pulse scale 1.04 ELIMINATĂ — contrazicea
       intenția „scaunul rămâne static". User raporta că scaunul se mișcă la turn. Glow static. */
}

/* SCORE BADGE — monedă aurie casino-grade, poziționată în colț dreapta-jos avatar */
.holdem-my-info .holdem-my-scorewrap {
    position: absolute !important;
    bottom: -8px !important;
    right: -8px !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    background: radial-gradient(circle at 30% 30%, #fef3c7 0%, var(--holdem-gold, #ffd700) 35%, #b8860b 100%) !important;
    border: 2.5px solid #1e293b !important;
    border-radius: 50% !important;
    box-shadow:
        0 4px 12px rgba(0,0,0,0.65),
        0 0 12px rgba(255,215,0,0.55),
        inset 0 1px 2px rgba(255,255,255,0.5) !important;
    gap: 0 !important;
    min-width: 0 !important;
}
.holdem-my-info .holdem-my-score {
    font-family: 'Cinzel', serif !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    color: #4a3608 !important;
    text-shadow: 0 1px 0 rgba(255,255,255,0.3) !important;
    line-height: 1 !important;
    margin: 0 !important;
    transition: transform 0.3s, color 0.3s !important;
}
.holdem-my-info .holdem-my-score.delta-up   { animation: holdem-score-up 0.7s cubic-bezier(0.22, 1.4, 0.36, 1); }
.holdem-my-info .holdem-my-score.delta-down { animation: holdem-score-down 0.7s cubic-bezier(0.22, 1.4, 0.36, 1); }
@keyframes holdem-score-up {
    0%   { transform: scale(1); color: #4a3608; }
    40%  { transform: scale(1.4); color: #16a34a; text-shadow: 0 0 24px rgba(74,222,128,0.9); }
    100% { transform: scale(1); color: #4a3608; }
}
@keyframes holdem-score-down {
    0%   { transform: scale(1); color: #4a3608; }
    40%  { transform: scale(1.2); color: #b91c1c; text-shadow: 0 0 20px rgba(248,113,113,0.8); }
    100% { transform: scale(1); color: #4a3608; }
}
.holdem-my-info .holdem-my-score-label { display: none !important; }   /* label SCOR redundant la badge */

/* META: name + chips inline + JOC AUTOMAT pill */
.holdem-my-info .holdem-my-meta {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    flex: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
}
.holdem-my-info .holdem-my-name {
    font-family: 'Cinzel', serif !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    color: var(--holdem-gold, #ffd700) !important;
    letter-spacing: 1px !important;
    text-shadow: 0 1px 0 rgba(0,0,0,0.5), 0 0 8px rgba(255,215,0,0.3) !important;
    text-transform: uppercase !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* CHIPS Licitare/Făcute — colorate inline */
.holdem-my-info .holdem-my-stats {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    margin: 0 !important;
}
.holdem-my-info .holdem-my-stats span + span::before {
    content: none !important;   /* override separator "·" din baseline */
    margin: 0 !important;
}
.holdem-my-info .holdem-my-bid,
.holdem-my-info .holdem-my-tricks {
    display: inline-flex !important;
    align-items: center !important;
    gap: 3px !important;
    padding: 2px 8px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    border-radius: 99px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
}
.holdem-my-info .holdem-my-bid {
    background: rgba(91,141,239,0.15) !important;
    border: 1px solid rgba(91,141,239,0.55) !important;
    color: #93c5fd !important;
}
.holdem-my-info .holdem-my-tricks {
    background: rgba(74,222,128,0.15) !important;
    border: 1px solid rgba(74,222,128,0.55) !important;
    color: #4ade80 !important;
}
.holdem-my-info .holdem-my-bid b,
.holdem-my-info .holdem-my-tricks b {
    color: var(--holdem-text-strong, #fff) !important;
    font-size: 11px !important;
    margin-left: 2px !important;
}
/* PREMIERE (Bid == Făcute): chips devin aurii pulsante */
.holdem-my-info.premiere-likely .holdem-my-bid,
.holdem-my-info.premiere-likely .holdem-my-tricks {
    background: rgba(255,215,0,0.18) !important;
    border-color: rgba(255,215,0,0.70) !important;
    color: var(--holdem-gold, #ffd700) !important;
    animation: holdem-premiere-glow 1.5s ease-in-out infinite !important;
}
@keyframes holdem-premiere-glow {
    0%, 100% { box-shadow: 0 0 0 rgba(255,215,0,0); }
    50%      { box-shadow: 0 0 12px rgba(255,215,0,0.6); }
}

/* JOC AUTOMAT pill — compact amber */
.holdem-my-info .holdem-my-auto {
    display: inline-flex !important;
    align-items: center !important;
    align-self: flex-start !important;
    padding: 1px 7px !important;
    font-size: 9px !important;
    background: rgba(245,158,11,0.18) !important;
    border: 1px solid rgba(245,158,11,0.45) !important;
    border-radius: 99px !important;
    color: #fbbf24 !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
}
.holdem-my-info .holdem-my-auto[hidden] { display: none !important; }

/* ── Dock (right) — stretched la full coloana grid, înălțime uniformă ── */
.holdem-player-dock {
    width: 100% !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
    min-height: 96px !important;
    padding: 6px 10px !important;
    gap: 3px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    background:
        radial-gradient(ellipse at top, rgba(74,222,128,0.06) 0%, transparent 60%),
        linear-gradient(180deg, rgba(35,22,60,0.92) 0%, rgba(20,12,38,0.95) 100%) !important;
    border: 1.5px solid rgba(74,222,128,0.35) !important;
    border-radius: 16px !important;
    box-shadow:
        0 8px 24px rgba(0,0,0,0.5),
        inset 0 1px 0 rgba(255,255,255,0.10) !important;
}

/* Turn pill — status mare */
.holdem-dock-turn {
    background: rgba(0,0,0,0.3) !important;
    border-radius: 99px !important;
    padding: 2px 8px !important;
    text-align: center !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
}
.holdem-turn-mine {
    color: #4ade80 !important;
    font-weight: 800 !important;
    font-size: 11px !important;
    letter-spacing: 0.5px !important;
    text-shadow: 0 0 8px rgba(74,222,128,0.5) !important;
    text-transform: uppercase !important;
}
.holdem-turn-other {
    color: #93c5fd !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}

/* Game info row — ATU + Round + Timer pe un rând centrat */
.holdem-dock-gameinfo {
    display: flex !important;
    gap: 4px !important;
    align-items: center !important;
    justify-content: center !important;
}
.holdem-dock-atu {
    background: rgba(255,215,0,0.10) !important;
    border: 1px solid rgba(255,215,0,0.4) !important;
    border-radius: 8px !important;
    padding: 2px 7px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
}
.holdem-dock-atu-label {
    color: #fbbf24 !important;
    font-size: 8px !important;
    letter-spacing: 1px !important;
    font-weight: 700 !important;
}
.holdem-dock-atu-sym {
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}
.holdem-dock-round {
    background: rgba(91,141,239,0.15) !important;
    border: 1px solid rgba(91,141,239,0.4) !important;
    border-radius: 8px !important;
    padding: 2px 7px !important;
    color: #93c5fd !important;
    font-size: 10px !important;
    font-weight: 700 !important;
}
.holdem-timer-pill {
    background: rgba(239,68,68,0.12) !important;
    border: 1px solid rgba(239,68,68,0.4) !important;
    border-radius: 99px !important;
    padding: 2px 7px !important;
    color: #fca5a5 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

/* Tools row — butoane uniforme cu hover lift */
.holdem-dock-tools {
    gap: 3px !important;
    display: flex !important;
    justify-content: center !important;
}
.holdem-dock-btn {
    width: 28px !important;
    height: 26px !important;
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid rgba(255,215,0,0.3) !important;
    border-radius: 8px !important;
    color: var(--holdem-gold, #ffd700) !important;
    font-size: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    cursor: pointer !important;
    transition: all 0.2s !important;
}
.holdem-dock-btn:hover {
    background: rgba(255,215,0,0.2) !important;
    border-color: rgba(255,215,0,0.7) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(255,215,0,0.3) !important;
}
.holdem-dock-btn.active {
    background: linear-gradient(180deg, rgba(74,222,128,0.3), rgba(34,197,94,0.2)) !important;
    border-color: rgba(74,222,128,0.6) !important;
    color: #4ade80 !important;
    box-shadow: 0 2px 8px rgba(74,222,128,0.3) !important;
}

/* Hand container — vertical center, înălțime uniformă */
.holdem-my-hand, #holdemMyHand {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 96px !important;
}

/* Custom property pentru timer ring (animat din JS prin --timer-deg) */
@property --timer-deg {
    syntax: '<angle>';
    inherits: false;
    initial-value: 360deg;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PANEL LICITARE — stiluri interne adaptate la fundal verde/roșu/albastru/violet
   (orice culoare a feltului). Tot textul aurit pe negru semitransparent pentru
   contrast maxim indiferent de culoarea feltului dedesubt.
   ═══════════════════════════════════════════════════════════════════════════ */
.holdem-bidp-header { border-bottom: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.32); }
.holdem-bidp-title-txt {
    color: var(--holdem-gold, var(--holdem-gold, #ffd700));
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.7), 0 0 10px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.35);
}
.holdem-bidp-meta-pill {
    background: rgba(0, 0, 0, 0.35);
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30);
    color: #fef3c7;
}
.holdem-bidp-meta-pill b { color: var(--holdem-text-strong, #fff); }
.holdem-bidp-meta-pill.atu {
    background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.20);
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.65);
}

/* Status pills */
.holdem-bidp-status.mine {
    background: linear-gradient(180deg, #4ade80 0%, #16a34a 100%);
    color: #052e16;
    box-shadow: 0 2px 8px rgba(74, 222, 128, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.holdem-bidp-status.wait {
    background: rgba(0, 0, 0, 0.40);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45);
    color: #fef3c7;
}
.holdem-bidp-status.done {
    background: linear-gradient(180deg, var(--holdem-gold, var(--holdem-gold, #ffd700)), #b8860b);
    color: #4a3608;
    box-shadow: 0 2px 8px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

/* Live table rows — dark pe orice culoare felt */
.holdem-bidp-row {
    background: rgba(0, 0, 0, 0.28);
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.14);
}
.holdem-bidp-row.current {
    background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.16);
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.60);
    box-shadow: 0 0 12px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30);
}
.holdem-bidp-row.done {
    background: rgba(74, 222, 128, 0.13);
    border-color: rgba(74, 222, 128, 0.48);
}
.holdem-bidp-row.me { border-left: 3px solid var(--holdem-gold, var(--holdem-gold, #ffd700)); }
.holdem-bidp-row-name { color: #fef3c7; }
.holdem-bidp-row-bid { color: var(--holdem-text-strong, #fff); }

/* Action section */
.holdem-bidp-action { border-top: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.32); }
.holdem-bidp-action-label { color: #fef3c7; }
.holdem-bid-area .holdem-bid-btn {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(0, 0, 0, 0.18));
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45);
    color: #fff7e0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.holdem-bid-area .holdem-bid-btn:hover:not(.disabled):not(.forbidden) {
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.28), rgba(218, 165, 32, 0.16));
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85);
    transform: translateY(-1px);
}
.holdem-bid-area .holdem-bid-btn.suggested {
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.55), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.28));
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.95);
    color: #4a3608;
    box-shadow: 0 0 14px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.7);
}

/* Footer Σ */
.holdem-bidp-footer {
    background: rgba(0, 0, 0, 0.45);
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.20);
}
.holdem-bidp-sum-val { color: #fef3c7; }
.holdem-bidp-sum-val b { color: var(--holdem-text-strong, #fff); }
.holdem-bidp-sum-label { color: rgba(254, 243, 199, 0.7); }
.holdem-bidp-footer.exact {
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30), rgba(218, 165, 32, 0.18));
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.70);
}
.holdem-bidp-footer.over {
    background: rgba(239, 68, 68, 0.20);
    border-color: rgba(239, 68, 68, 0.50);
}
.holdem-bidp-footer.under {
    background: rgba(74, 222, 128, 0.18);
    border-color: rgba(74, 222, 128, 0.50);
}

/* ═══════════════════════════════════════════════════════════════════════════
   SIDEBAR PREMIUM — Scoreboard + Istoric Runde (cerere user — testat + confirmat)
   Stabil 1-linie per row, rank dot mic, leader pulse, delta chips colorate.
   ═══════════════════════════════════════════════════════════════════════════ */
.holdem-sidebar {
    padding: 12px 10px;
    background:
        radial-gradient(ellipse at top, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.05) 0%, transparent 60%),
        linear-gradient(180deg, rgba(28, 18, 52, 0.92) 0%, rgba(15, 10, 32, 0.95) 100%);
    border-left: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.20);
    backdrop-filter: blur(24px) saturate(140%);
    -webkit-backdrop-filter: blur(24px) saturate(140%);
}
.holdem-sb-section {
    margin-bottom: 12px;
    background:
        radial-gradient(ellipse at top, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.04) 0%, transparent 70%),
        linear-gradient(180deg, rgba(35, 22, 60, 0.85), rgba(20, 12, 38, 0.90));
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.30);
    border-radius: 10px;
    padding: 10px 8px;
    box-shadow:
        inset 0 1px 0 rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15),
        0 3px 12px rgba(0, 0, 0, 0.35);
}
.holdem-sb-title {
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.2px;
    color: var(--holdem-gold, #ffd700);
    text-transform: uppercase;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
    margin: 0 0 8px 0;
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.22);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
}
.holdem-sb-title::after {
    content: attr(data-count);
    background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.15);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.40);
    border-radius: 99px;
    padding: 0 6px;
    font-size: 8px;
    font-weight: 800;
    color: var(--holdem-gold, #ffd700);
    letter-spacing: 0.5px;
    line-height: 1.5;
}
.holdem-sb-title:not([data-count])::after,
.holdem-sb-title[data-count=""]::after { content: none; }

/* SCOREBOARD rows (SIDEBAR) — STABIL 1 LINIE. Scop la .holdem-sb-rows ca grila lui (4 col) să NU
   se aplice peste tabela modalului (.holdem-sb-table .holdem-sb-row are propria grilă dinamică). */
.holdem-sb-rows { display: flex; flex-direction: column; gap: 3px; }
.holdem-sb-rows .holdem-sb-row {
    display: grid;
    grid-template-columns: 18px 1fr auto 26px;
    align-items: center;
    gap: 5px;
    padding: 4px 6px;
    background: rgba(0, 0, 0, 0.30);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    font-size: 10px;
    transition: background 0.18s, border-color 0.18s;
    min-height: 26px;
    position: relative;
}
.holdem-sb-row:hover { background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.08); }
.holdem-sb-row.me {
    background: linear-gradient(90deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.16), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.04));
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.50);
}
.holdem-sb-rank-icon {
    width: 16px;
    height: 16px;
    background: linear-gradient(180deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.20), rgba(0, 0, 0, 0.30));
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.45);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 800;
    color: #fbbf24;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
.holdem-sb-row.me .holdem-sb-rank-icon {
    background: linear-gradient(180deg, var(--holdem-gold, #ffd700), #b8860b);
    color: #4a3608;
    border-color: var(--holdem-text-strong, #fff);
    box-shadow: 0 0 8px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.6);
}
.holdem-sb-row.leader .holdem-sb-rank-icon {
    animation: holdem-sb-leader-pulse 2s ease-in-out infinite;
}
@keyframes holdem-sb-leader-pulse {
    0%, 100% { box-shadow: 0 0 6px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.4); }
    50%      { box-shadow: 0 0 14px rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.85); }
}
.holdem-sb-row.leader::before {
    content: '👑';
    position: absolute;
    left: -3px;
    top: -7px;
    font-size: 11px;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.7));
}
.holdem-sb-name {
    color: #fef3c7;
    font-weight: 600;
    font-size: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.3;
}
.holdem-sb-row.me .holdem-sb-name { color: var(--holdem-gold, #ffd700); font-weight: 800; }
.holdem-sb-trend {
    font-size: 9px;
    font-weight: 800;
    margin-right: 2px;
}
.holdem-sb-trend.up   { color: #4ade80; }
.holdem-sb-trend.down { color: #f87171; }
.holdem-sb-trend.flat { color: var(--holdem-text-dim, #94a3b8); opacity: 0.5; }
.holdem-sb-bt {
    background: rgba(91, 141, 239, 0.18);
    border: 1px solid rgba(91, 141, 239, 0.40);
    padding: 0 5px;
    border-radius: 99px;
    font-size: 8px;
    font-weight: 700;
    color: #93c5fd;
    line-height: 1.5;
    white-space: nowrap;
}
.holdem-sb-row.exact-bid .holdem-sb-bt {
    background: rgba(74, 222, 128, 0.20);
    border-color: rgba(74, 222, 128, 0.55);
    color: #4ade80;
}
.holdem-sb-total {
    font-family: 'Cinzel', serif;
    font-size: 13px;
    font-weight: 900;
    color: var(--holdem-gold, #ffd700);
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
    line-height: 1;
    text-align: right;
    transition: transform 0.3s, color 0.3s;
}
.holdem-sb-total.delta-up   { animation: holdem-sb-total-up 0.7s cubic-bezier(0.22, 1.4, 0.36, 1); }
.holdem-sb-total.delta-down { animation: holdem-sb-total-down 0.7s cubic-bezier(0.22, 1.4, 0.36, 1); }
@keyframes holdem-sb-total-up {
    0%   { transform: scale(1); color: var(--holdem-gold, #ffd700); }
    40%  { transform: scale(1.4); color: #4ade80; text-shadow: 0 0 12px rgba(74, 222, 128, 0.9); }
    100% { transform: scale(1); color: var(--holdem-gold, #ffd700); }
}
@keyframes holdem-sb-total-down {
    0%   { transform: scale(1); color: var(--holdem-gold, #ffd700); }
    40%  { transform: scale(1.2); color: #f87171; text-shadow: 0 0 10px rgba(248, 113, 113, 0.9); }
    100% { transform: scale(1); color: var(--holdem-gold, #ffd700); }
}

/* HISTORY rows compact */
.holdem-sb-history {
    display: flex;
    flex-direction: column;
    gap: 3px;
    max-height: 240px;
    overflow-y: auto;
    padding-right: 2px;
}
.holdem-sb-history::-webkit-scrollbar { width: 3px; }
.holdem-sb-history::-webkit-scrollbar-thumb { background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.35); border-radius: 3px; }
.holdem-sb-history-row {
    display: grid;
    grid-template-columns: 24px 22px 1fr;
    align-items: center;
    gap: 4px;
    padding: 3px 5px;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 5px;
    transition: background 0.18s;
    min-height: 22px;
}
.holdem-sb-history-row:hover { background: rgba(91, 141, 239, 0.10); }
.holdem-sb-history-r {
    background: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.10);
    border: 1px solid rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.25);
    border-radius: 4px;
    padding: 1px 3px;
    text-align: center;
    color: #fbbf24;
    font-weight: 800;
    font-family: 'Cinzel', serif;
    font-size: 9px;
    line-height: 1.3;
}
.holdem-sb-history-cards {
    background: rgba(91, 141, 239, 0.15);
    border: 1px solid rgba(91, 141, 239, 0.35);
    color: #93c5fd;
    padding: 0 4px;
    border-radius: 99px;
    font-size: 8px;
    font-weight: 700;
    text-align: center;
    line-height: 1.5;
}
.holdem-sb-history-scores {
    display: flex;
    gap: 2px;
    flex-wrap: nowrap;
    overflow: hidden;
}
.holdem-sb-history-delta {
    display: inline-flex;
    align-items: center;
    padding: 0 3px;
    border-radius: 99px;
    font-size: 8px;
    font-weight: 800;
    line-height: 1.5;
    border: 1px solid;
    min-width: 18px;
    justify-content: center;
}
.holdem-sb-history-delta.pos  { background: rgba(74, 222, 128, 0.16); border-color: rgba(74, 222, 128, 0.40); color: #4ade80; }
.holdem-sb-history-delta.neg  { background: rgba(239, 68, 68, 0.16); border-color: rgba(239, 68, 68, 0.40); color: #f87171; }
.holdem-sb-history-delta.zero { background: rgba(148, 163, 184, 0.15); border-color: rgba(148, 163, 184, 0.30); color: var(--holdem-text-dim, #94a3b8); }
.holdem-sb-history-delta.me   { box-shadow: inset 0 0 0 1px var(--holdem-gold, #ffd700); }
.holdem-sb-history-row.best-round {
    background: linear-gradient(90deg, rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.14), rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.03));
    border-color: rgba(var(--holdem-gold-rgb, 255, 215, 0), 0.40);
}
.holdem-sb-history-empty {
    color: rgba(255, 255, 255, 0.4);
    text-align: center;
    padding: 12px;
    font-style: italic;
    font-size: 10px;
}

/* DOCK actiuni (Tudor joaca / ATU / R / timer / emoji) — panou alb, text inchis, pills deschise */
[data-theme="light"] .holdem-player-dock {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(243, 246, 251, 0.99)) !important;
    border-color: rgba(160, 116, 8, 0.40) !important;
    color: #1a2335 !important;
    box-shadow: 0 8px 22px rgba(22, 32, 58, 0.12) !important;
}
[data-theme="light"] .holdem-player-dock [class*="pill"],
[data-theme="light"] .holdem-player-dock [class*="stat"],
[data-theme="light"] .holdem-player-dock [class*="atu"],
[data-theme="light"] .holdem-player-dock [class*="timer"] {
    background: rgba(22, 32, 58, 0.06) !important;
    border-color: rgba(22, 32, 58, 0.14) !important;
    color: #1a2335 !important;
    text-shadow: none !important;
}
[data-theme="light"] .holdem-player-dock .holdem-turn-mine,
[data-theme="light"] .holdem-player-dock [class*="turn"] { color: #166534 !important; }
[data-theme="light"] .holdem-dock-btn { background: rgba(22, 32, 58, 0.05) !important; border-color: rgba(22, 32, 58, 0.12) !important; color: #33415e !important; }
/* SIDEBAR (TABELA SCOR + ISTORIC RUNDE + toasts) — panouri albe, text inchis */
[data-theme="light"] .holdem-sidebar,
[data-theme="light"] .holdem-sidebar > *,
[data-theme="light"] .holdem-sb-panel {
    background: rgba(255, 255, 255, 0.97) !important;
    border-color: rgba(160, 116, 8, 0.28) !important;
    color: #1a2335 !important;
}
[data-theme="light"] .holdem-sb-title, [data-theme="light"] .holdem-sb-title-pro { color: #a07408 !important; text-shadow: none !important; }
[data-theme="light"] .holdem-sb-row { color: #1a2335 !important; background: transparent !important; }
[data-theme="light"] .holdem-sb-row.me { background: rgba(160, 116, 8, 0.10) !important; }
[data-theme="light"] .holdem-sb-name { color: #1a2335 !important; }
[data-theme="light"] .holdem-sb-row.me .holdem-sb-name { color: #a07408 !important; }
[data-theme="light"] .holdem-sb-bt, [data-theme="light"] .holdem-sb-row [data-bt] { background: rgba(22, 32, 58, 0.08) !important; color: #33415e !important; }
[data-theme="light"] .holdem-sb-total { color: #a07408 !important; }
[data-theme="light"] .holdem-sb-history-row { background: rgba(22, 32, 58, 0.04) !important; color: #1a2335 !important; }
[data-theme="light"] .holdem-sb-history-r { background: rgba(160, 116, 8, 0.15) !important; color: #7c5a06 !important; }
[data-theme="light"] .holdem-sb-history-cards { color: #33415e !important; }
[data-theme="light"] #holdemSidebarToasts > div, [data-theme="light"] .holdem-sb-history-empty {
    background: rgba(255, 255, 255, 0.97) !important; color: #1a2335 !important; border-color: rgba(160, 116, 8, 0.35) !important;
}
/* SCAUNE — chips interne (licitat/maini) lizibile pe alb */
[data-theme="light"] .holdem-opp-card { color: #1a2335 !important; }
[data-theme="light"] .holdem-opp-stats > span, [data-theme="light"] .holdem-opp-stats > div {
    background: rgba(22, 32, 58, 0.07) !important; border-color: rgba(22, 32, 58, 0.12) !important; color: #33415e !important; text-shadow: none !important;
}
/* slotul cartii jucate — fara voal */
[data-theme="light"] .holdem-seat-played-card { background: transparent !important; }
/* timer ring track vizibil pe alb */
[data-theme="light"] .holdem-timer-ring .ring-bg { stroke: rgba(22, 32, 58, 0.25) !important; }

/* === LIGHT waiting room — panouri albe, text inchis (cerere user) === */
[data-theme="light"] .mw-lx-root, [data-theme="light"] [class^="mw-lx-card"], [data-theme="light"] .mw-lx-item,
[data-theme="light"] .mw-title-bar, [data-theme="light"] .mw-lx-st, [data-theme="light"] .mw-lx-kv,
[data-theme="light"] .mw-lx-side, [data-theme="light"] .mw-lx-main {
    background: rgba(255, 255, 255, 0.97) !important;
    border-color: rgba(160, 116, 8, 0.30) !important;
    color: #1a2335 !important;
}
[data-theme="light"] .mw-lx-root *:not(button):not(.mw-lx-tag):not([class*="status"]) { text-shadow: none !important; }
[data-theme="light"] .mw-lx-st-label, [data-theme="light"] .mw-lx-kv .k { color: #5a6a8a !important; }
[data-theme="light"] .mw-lx-kv .v, [data-theme="light"] .mw-lx-st-value { color: #1a2335 !important; }
[data-theme="light"] .mw-title-bar, [data-theme="light"] .mw-lx-title { color: #a07408 !important; }
[data-theme="light"] .mp-game-bar { background: rgba(30, 27, 75, 0.07) !important; color: #1e1b4b !important; border-color: rgba(30, 27, 75, 0.15) !important; }

/* light: banda de jos (player-area) — luminata, consecvent cu restul mesei */
[data-theme="light"] .holdem-player-area {
    background: linear-gradient(180deg, rgba(243, 246, 251, 0.97), rgba(232, 237, 246, 0.98)) !important;
    border-color: rgba(160, 116, 8, 0.30) !important;
}
[data-theme="light"] .holdem-my-hand .holdem-card { box-shadow: 0 4px 14px rgba(22, 32, 58, 0.18) !important; }

/* light: spatele cartilor + talon — model indigo pal pe alb (lemnul maro nu se potrivea pe light) */
[data-theme="light"] .holdem-card-back,
[data-theme="light"] .holdem-deck-card {
    background:
        repeating-linear-gradient(45deg, rgba(26, 35, 53, 0.09) 0px, rgba(26, 35, 53, 0.09) 3px, rgba(255, 255, 255, 0) 3px, rgba(255, 255, 255, 0) 7px),
        linear-gradient(160deg, #f7f8fb 0%, #eceff5 100%) !important;
    border: 1px solid rgba(26, 35, 53, 0.25) !important;
    box-shadow: 0 3px 10px rgba(22, 32, 58, 0.16), inset 0 0 0 2px rgba(255, 255, 255, 0.65) !important;
}
[data-theme="light"] .holdem-card-back::after,
[data-theme="light"] .holdem-deck-card::after { color: rgba(26, 35, 53, 0.40) !important; text-shadow: none !important; }
[data-theme="light"] .mp-game-bar, [data-theme="light"] .mp-game-bar.active {
    background: rgba(30, 27, 75, 0.07) !important;
    color: #1e1b4b !important;
    border-color: rgba(30, 27, 75, 0.16) !important;
    text-shadow: none !important;
}
[data-theme="light"] .mp-game-bar *, [data-theme="light"] .mp-game-bar.active * { color: #1e1b4b !important; }
[data-theme="light"] .mp-game-bar-leave { background: rgba(30, 27, 75, 0.10) !important; color: #1e1b4b !important; border-color: rgba(30, 27, 75, 0.18) !important; }

/* felt skin LIGHT (🎨) — selectabil pe ORICE temă globală (cerere user) */

/* === WATERMARK RELIEF (cerere user: „HOLDEM mult mai iesit in relief") — gravat in postav === */
.holdem-felt-watermark { opacity: 0.26 !important; }
.holdem-felt-watermark .logo-title {
    color: rgba(8, 12, 18, 0.32) !important;
    text-shadow:
        0 2px 1px rgba(255, 255, 255, 0.16),
        0 -2px 2px rgba(0, 0, 0, 0.55),
        0 6px 14px rgba(0, 0, 0, 0.22) !important;
}
.holdem-felt-watermark .logo-subtitle {
    color: rgba(8, 12, 18, 0.30) !important;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.14), 0 -1px 1px rgba(0, 0, 0, 0.5) !important;
}
.holdem-felt-watermark .logo-suit {
    color: rgba(8, 12, 18, 0.32) !important;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.15), 0 -1px 1px rgba(0, 0, 0, 0.45) !important;
}

/* light: bid panel adaptiv la felt — mix spre ALB (pe light feltul e deschis) */
[data-theme="light"] .holdem-bid-area {
    background:
        radial-gradient(120% 80% at 50% 0%, rgba(var(--holdem-gold-rgb, 160, 116, 8), 0.08), transparent 55%),
        linear-gradient(160deg,
            color-mix(in srgb, var(--holdem-panel-felt-1, #e2e7f0) 55%, #fff 45%) 0%,
            color-mix(in srgb, var(--holdem-panel-felt-2, #cdd6e4) 60%, #fff 40%) 45%,
            color-mix(in srgb, var(--holdem-panel-felt-3, #b6c3d6) 65%, #fff 35%) 100%) !important;
}

/* === SIDEBAR anti-flash (cerere user: refresh-ul schimba stilul urat) — tranzitii line pe schimbarile de stare === */
.holdem-sb-row,
.holdem-sb-row .holdem-sb-total,
.holdem-sb-row .holdem-sb-rank-icon,
.holdem-sb-row .holdem-sb-bt {
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.holdem-sb-history-row { transition: background-color 0.25s ease; }
