:root {
  --bg:#06111e;
  --panel:#0b1727;
  --panel2:#101d30;
  --text:#f4f7fb;
  --muted:#91a6bd;
  --gold:#e2ad47;
  --green:#12a760;
  --red:#b42d36;
  --blue:#1672d8;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 10%,#17365b 0,#08182b 42%,#030a12 100%);color:var(--text);font-family:Inter,Arial,Helvetica,sans-serif}
body{padding:8px 10px 12px;overflow-x:hidden}
button{font:inherit}
.app-shell{max-width:1800px;margin:0 auto}
.topbar{height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;position:relative;z-index:5}
.brand-main{font-weight:950;font-size:clamp(1.3rem,2vw,1.95rem);letter-spacing:.08em;line-height:1}.brand-main span{color:#ef4c38}.brand-sub{margin-top:5px;font-size:.62rem;letter-spacing:.22em;color:#91aed0}
.round-hud{display:flex;align-items:center;gap:10px}.phase-badge{min-width:184px;text-align:center;border-radius:999px;padding:8px 18px;background:linear-gradient(#268257,#1f6f4b);border:1px solid #60c28f;font-weight:950;font-size:.83rem;letter-spacing:.04em}.timer-box{min-width:72px;text-align:center;padding:5px 9px;border-radius:10px;background:#07111e;border:1px solid rgba(255,255,255,.10)}.timer-box span,.stat span{display:block;font-size:.56rem;color:#8fa7c1;letter-spacing:.08em}.timer-box strong{font-size:1rem}
.top-stats{justify-self:end;display:flex;align-items:center;gap:7px}.stat{min-width:72px;padding:5px 10px;border-radius:10px;background:#07111e;border:1px solid rgba(255,255,255,.10)}.stat strong{font-size:.95rem}.ghost-btn{border:1px solid rgba(255,255,255,.17);background:#0c1726;color:#fff;border-radius:10px;padding:9px 12px;cursor:pointer}
.table-wrap{display:flex;justify-content:center;align-items:center;min-height:0}
.table-stage{position:relative;width:min(1600px,calc(100vw - 20px),calc((100vh - 155px) * 1.7777778));aspect-ratio:1672/941;isolation:isolate}
.table-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none;z-index:0}
.players-layer{position:absolute;inset:0;z-index:4;pointer-events:none}
.community-cards{position:absolute;left:33.9115%;top:39.5324%;width:32.2967%;height:13.3900%;display:grid;grid-template-columns:repeat(5,1fr);gap:2.75%;z-index:3}
.community-slot{min-width:0;min-height:0;display:flex;align-items:stretch;justify-content:stretch}
.pot-overlay{position:absolute;left:50%;top:22.8%;transform:translate(-50%,-50%);z-index:7;min-width:16.8%;height:6.2%;padding:0 1.5%;display:grid;place-items:center;text-align:center;border-radius:999px;border:2px solid rgba(225,231,239,.96);background:rgba(4,8,14,.58);color:#fff;font-weight:950;font-size:clamp(.92rem,1.42vw,1.34rem);line-height:1;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.75);pointer-events:none;backdrop-filter:blur(1.5px);box-shadow:0 4px 14px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.06)}
.pot-overlay.bump{animation:potBump .28s ease-out 1}
@keyframes potBump{0%{transform:translate(-50%,-50%) scale(1)}40%{transform:translate(-50%,-50%) scale(1.08)}100%{transform:translate(-50%,-50%) scale(1)}}
.card{position:relative;width:100%;height:100%;border-radius:6%;background:linear-gradient(180deg,#ffffff 0%,#fbfbfa 68%,#f3f3f1 100%);border:1.4px solid #d5d8de;color:#111;box-shadow:0 6px 14px rgba(0,0,0,.24);overflow:hidden;font-weight:950}.card.red{color:#c5232b}.card.back{border-width:1.4px;background:linear-gradient(135deg,#6f82a1,#b8c3d5);border:2px solid #f4f7fa;box-shadow:inset 0 0 0 3px rgba(34,52,80,.30),0 6px 14px rgba(0,0,0,.28)}.card.back:before{content:"";position:absolute;inset:9%;border:1px solid rgba(255,255,255,.45);background:repeating-linear-gradient(45deg,rgba(255,255,255,.12) 0 2px,rgba(31,49,76,.10) 2px 4px)}

.seat{position:absolute;transform:translate(-50%,-50%);z-index:5;pointer-events:none}.seat.active-turn .player-tag{box-shadow:0 0 0 2px #fff,0 0 14px rgba(255,220,108,.9),0 4px 11px rgba(0,0,0,.45)}.seat.folded{opacity:.58;filter:saturate(.55)}
.player-tag{position:relative;width:clamp(118px,9.8vw,158px);height:clamp(34px,2.9vw,46px);border:1.5px solid #d8dce2;border-radius:5px;background:#090b0e;box-shadow:0 4px 11px rgba(0,0,0,.48);overflow:visible;display:grid;grid-template-columns:auto 1fr}
.tag-avatar{height:100%;aspect-ratio:1/1;background:#172131;border-right:2px solid #d8dce2;display:grid;place-items:center;overflow:hidden}.tag-avatar img{width:100%;height:100%;object-fit:cover}
.tag-body{min-width:0;display:grid;grid-template-rows:48% 52%}.tag-top{position:relative;display:flex;align-items:center;background:linear-gradient(90deg,#a6ed55,#75c42b);padding:0 30px 0 6px;color:#0b1707;min-width:0}.tag-name{font-family:"Arial Narrow",Arial,sans-serif;font-stretch:condensed;font-weight:950;font-size:clamp(.58rem,.72vw,.78rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag-level{position:absolute;right:0;top:0;height:100%;min-width:26px;display:grid;place-items:center;background:linear-gradient(#cf2934,#a9121c);border-left:1px solid #6e0710;color:#fff;font-weight:950;font-size:clamp(.52rem,.62vw,.7rem)}
.tag-bottom{display:flex;align-items:center;background:linear-gradient(90deg,#281522,#0f0f15);padding:0 6px;color:#d9d4ff;font-weight:950;font-size:clamp(.6rem,.78vw,.85rem);line-height:1}.tag-bottom .tag-status{margin-left:auto;color:#f2c763;font-size:.72em}
.role-badge{position:absolute;top:-17px;right:-4px;min-width:25px;height:19px;padding:0 5px;border-radius:999px;border:1px solid rgba(255,255,255,.95);display:grid;place-items:center;background:#163e71;color:#fff;font-size:clamp(.46rem,.53vw,.58rem);font-weight:950;white-space:nowrap;box-shadow:0 2px 5px rgba(0,0,0,.45)}.role-badge.dealer{background:#fff;color:#111}.role-badge.bb{background:#a66d09}.role-badge.sb{background:#1973d6}
.hole-cards{position:absolute;transform:translate(-50%,-50%) rotate(var(--seat-angle,0deg));transform-origin:center;z-index:4;display:flex;gap:clamp(2px,.22vw,4px);height:10.9%;pointer-events:none}.hole-cards .card{height:100%;width:auto;aspect-ratio:97/126;flex:0 0 auto}.hole-cards.human{height:14.2%;z-index:6}
.bet-marker{position:absolute;transform:translate(-50%,-50%);z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;pointer-events:none;transform-origin:center center}.bet-marker.collecting{transition:transform .42s ease-in,opacity .42s ease-in;transform:translate(-50%,-50%) translate(var(--collect-x,0px),var(--collect-y,0px)) scale(.42);opacity:0}.bet-chips{display:block;width:clamp(92px,10.6vw,156px);height:auto;filter:drop-shadow(0 3px 5px rgba(0,0,0,.45))}.bet-pill{min-width:clamp(54px,5.1vw,88px);padding:5px 12px;border-radius:999px;border:2px solid rgba(225,231,239,.96);background:rgba(4,8,14,.62);color:#fff;font-weight:950;font-size:clamp(.78rem,.98vw,1.08rem);line-height:1;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.7);white-space:nowrap;box-shadow:0 3px 8px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.08)}
.game-strip{max-width:1240px;margin:2px auto 6px;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:28px}.status-text{color:#dbe6f2;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.your-hand{display:flex;align-items:center;gap:8px;white-space:nowrap}.your-hand span{font-size:.58rem;letter-spacing:.14em;color:#7099c1;font-weight:900}.your-hand strong{color:#ffd66b;font-size:.84rem}
.action-panel{max-width:860px;margin:0 auto;display:flex;flex-direction:column;align-items:stretch;gap:7px}.bet-sizing{display:flex;justify-content:center;gap:6px}.size-btn{height:28px;min-width:78px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#0b1726;color:#9fb3ca;font-weight:900;font-size:.65rem;letter-spacing:.03em;padding:0 11px;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.04)}.size-btn:hover:not(:disabled){background:#13243a;color:#fff}.size-btn.selected{background:#1d3855;border-color:#78b8ff;color:#fff;box-shadow:inset 0 0 0 1px rgba(120,184,255,.25)}.size-btn.allin-size.selected{background:#704b0b;border-color:#e8b74d}.size-btn:disabled{opacity:.28;cursor:not-allowed}.main-actions{display:grid;grid-template-columns:1fr 1.15fr 1.35fr;gap:8px}.action-btn{min-height:46px;border:1px solid rgba(255,255,255,.16);border-radius:11px;padding:0 18px;color:#fff;font-weight:950;font-size:.8rem;letter-spacing:.025em;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.18),0 5px 12px rgba(0,0,0,.28);white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.action-btn:hover:not(:disabled){filter:brightness(1.08)}.action-btn:active:not(:disabled){transform:translateY(1px)}.action-btn:disabled{opacity:.24;filter:grayscale(.65);cursor:not-allowed;box-shadow:none}.action-btn.blue{background:linear-gradient(#247fdc,#135eaf)}.action-btn.raise{background:linear-gradient(#21895a,#13663f)}.action-btn.danger{background:linear-gradient(#bf3b45,#8f252e)}.action-btn.green{background:linear-gradient(#16a968,#0b804d)}.next-hand{min-width:230px;align-self:center;padding:0 28px}.ghost-btn{border:1px solid rgba(255,255,255,.17);background:#0c1726;color:#dce7f4;border-radius:9px;padding:9px 13px;cursor:pointer;font-weight:850;font-size:.72rem;letter-spacing:.03em}.ghost-btn:hover{background:#132238;color:#fff}.primary-btn{width:100%;margin-top:8px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(90deg,#159a61,#1978ce);color:#fff;font-weight:950;border-radius:12px;padding:14px 18px;cursor:pointer;font-size:.92rem;letter-spacing:.03em}.primary-btn:hover{filter:brightness(1.08)}
.modal-backdrop{position:fixed;inset:0;background:rgba(1,6,13,.86);display:grid;place-items:center;z-index:30;padding:20px;backdrop-filter:blur(8px)}.modal-backdrop.hidden{display:none}.modal-card{width:min(520px,100%);background:linear-gradient(160deg,#13233b,#08101d);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:26px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.55)}.modal-brand{color:#66aefc;letter-spacing:.18em;font-weight:900;font-size:.78rem}.modal-card h1{margin:8px 0 10px;font-size:2rem}.modal-card p{color:#d4dfeb;line-height:1.5}.modal-card .muted{color:#91a5bb;font-size:.88rem}.rules-strip{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:14px 0 10px}.rules-strip span{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);border-radius:999px;padding:7px 11px;color:#dbe8f5;font-size:.86rem}.daily-note{margin:10px 0 8px;padding:10px 12px;border-radius:12px;background:rgba(28,201,121,.09);border:1px solid rgba(28,201,121,.24);color:#dff8eb!important;font-size:.9rem}.primary-btn{width:100%;margin-top:8px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(90deg,#159a61,#1978ce);color:#fff;font-weight:950;border-radius:12px;padding:14px 18px;cursor:pointer;font-size:.92rem;letter-spacing:.03em}
@media(max-width:900px){body{padding:5px}.topbar{height:auto;grid-template-columns:1fr auto;gap:6px}.round-hud{grid-row:2;grid-column:1/3;justify-self:center}.top-stats{gap:4px}.stat{min-width:54px;padding:4px 6px}.ghost-btn{padding:7px 8px}.table-stage{width:calc(100vw - 10px)}.player-tag{width:clamp(88px,13.5vw,125px)}.game-strip{margin-top:4px}.action-panel{max-width:720px}.main-actions{grid-template-columns:1fr 1fr 1.2fr}.action-btn{padding:0 10px}.size-btn{min-width:68px}}
@media(max-width:600px) and (orientation:portrait){.brand-sub{display:none}.topbar{grid-template-columns:1fr}.top-stats{grid-column:1;justify-self:start;flex-wrap:wrap}.round-hud{grid-column:1;grid-row:auto;justify-self:start}.phase-badge{min-width:142px}.table-stage{width:calc(100vw - 10px)}.player-tag{width:82px;height:28px}.tag-level{min-width:18px}.role-badge{top:-15px}.hole-cards{height:10.9%}.hole-cards.human{height:14.2%}.bet-chips{width:clamp(68px,10.0vw,104px)}.bet-pill{min-width:42px;padding:4px 8px;font-size:.72rem;border-width:2px}.game-strip{font-size:.7rem}.status-text{max-width:62vw}.bet-sizing{grid-template-columns:repeat(4,1fr);width:100%;gap:4px}.size-btn{min-width:0;padding:0 5px;font-size:.58rem}.main-actions{grid-template-columns:1fr 1fr}.action-btn{font-size:.68rem;min-height:40px;padding:0 7px}.action-btn.raise{grid-column:1/3}.next-hand{min-width:190px}}


/* V4.6 — visuale desktop compatta: più tavolo, meno cornice UI */
@media (min-width:901px){
  html,body{height:100%;overflow:hidden}
  body{padding:4px 8px 5px}
  .app-shell{height:100%;max-width:none;display:flex;flex-direction:column}
  .topbar{height:46px;min-height:46px;gap:10px}
  .brand-main{font-size:1.55rem}
  .brand-sub{margin-top:3px;font-size:.54rem}
  .phase-badge{min-width:170px;padding:6px 16px;font-size:.76rem}
  .timer-box{min-width:66px;padding:3px 8px}
  .top-stats{gap:5px}
  .stat{min-width:64px;padding:3px 8px;border-radius:8px}
  .stat span,.timer-box span{font-size:.5rem}
  .stat strong,.timer-box strong{font-size:.86rem}
  .ghost-btn{padding:7px 10px;border-radius:8px;font-size:.68rem}

  main{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 22px 66px;align-content:stretch}
  .table-wrap{min-height:0;height:100%;align-items:center}
  .table-stage{width:min(1760px,calc(100vw - 12px),calc((100vh - 138px) * 1.7777778));max-height:100%;}

  .game-strip{width:min(1500px,calc(100vw - 90px));max-width:none;margin:0 auto;min-height:22px;height:22px;gap:10px}
  .status-text{font-size:.72rem}
  .your-hand span{font-size:.52rem}.your-hand strong{font-size:.76rem}

  .action-panel{width:min(1040px,calc(100vw - 30px));max-width:none;margin:0 auto;height:66px;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:1fr;align-items:center;gap:8px}
  .bet-sizing{grid-column:1;display:flex;gap:5px;margin:0}
  .size-btn{height:34px;min-width:72px;padding:0 9px;font-size:.6rem}
  .main-actions{grid-column:2;display:grid;grid-template-columns:.9fr 1fr 1.15fr;gap:6px}
  .action-btn{min-height:38px;height:38px;padding:0 13px;font-size:.72rem;border-radius:9px}
  .next-hand{grid-column:3;min-width:170px;align-self:center;padding:0 18px}

  .player-tag{width:clamp(112px,8.2vw,148px);height:clamp(32px,2.45vw,42px)}
  .tag-name{font-size:clamp(.56rem,.64vw,.72rem)}
  .tag-bottom{font-size:clamp(.58rem,.68vw,.78rem)}
  .hole-cards{height:10.6%}.hole-cards.human{height:13.8%}
}

/* V4.7 — responsive reale: gli overlay scalano col tavolo, niente minimi desktop su smartphone */
.table-stage{container-type:inline-size}

@media (max-width:900px){
  body{padding:4px 5px 8px}
  .app-shell{width:100%;max-width:none}
  .topbar{
    height:auto;
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"brand hud" "stats stats";
    align-items:center;
    gap:5px 8px;
    margin-bottom:3px;
  }
  .brand{grid-area:brand;min-width:0}
  .brand-main{font-size:clamp(1rem,4vw,1.35rem)}
  .brand-sub{font-size:.48rem;letter-spacing:.16em;margin-top:2px}
  .round-hud{grid-area:hud;grid-row:auto;grid-column:auto;justify-self:end;gap:5px}
  .phase-badge{min-width:112px;padding:5px 9px;font-size:.62rem}
  .timer-box{min-width:48px;padding:3px 5px;border-radius:7px}
  .timer-box span{font-size:.42rem}.timer-box strong{font-size:.78rem}
  .top-stats{grid-area:stats;justify-self:stretch;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:4px}
  .stat{min-width:0;padding:3px 5px;border-radius:7px;text-align:center}
  .stat span{font-size:.42rem}.stat strong{font-size:.72rem}
  .ghost-btn{min-width:0;padding:5px 7px;border-radius:7px;font-size:.58rem;white-space:nowrap}

  .table-wrap{width:100%;overflow:visible}
  .table-stage{width:min(100%,calc((100vh - 170px) * 1.7777778));max-width:none;flex:none}

  /* Tutto ciò che vive sul tavolo usa cqw: se il tavolo si riduce, si riduce davvero anche la UI. */
  .player-tag{
    width:14.0cqw;
    height:4.15cqw;
    min-width:0;
    border-width:.10cqw;
    border-radius:.28cqw;
    box-shadow:0 .28cqw .65cqw rgba(0,0,0,.48);
  }
  .tag-avatar{border-right-width:.12cqw}
  .tag-top{padding:0 1.85cqw 0 .35cqw}
  .tag-name{font-size:.62cqw}
  .tag-level{min-width:1.65cqw;font-size:.50cqw;border-left-width:.06cqw}
  .tag-bottom{padding:0 .35cqw;font-size:.64cqw}
  .tag-bottom .tag-status{font-size:.45cqw}
  .role-badge{
    top:-1.18cqw;right:-.22cqw;min-width:1.65cqw;height:1.25cqw;padding:0 .28cqw;
    border-width:.06cqw;font-size:.48cqw;box-shadow:0 .12cqw .3cqw rgba(0,0,0,.45)
  }
  .seat.active-turn .player-tag{box-shadow:0 0 0 .12cqw #fff,0 0 .75cqw rgba(255,220,108,.9),0 .25cqw .6cqw rgba(0,0,0,.45)}

  .hole-cards{height:10.9%;gap:.18cqw}.hole-cards.human{height:14.2%;gap:.18cqw}
  .card{border-width:.08cqw;box-shadow:0 .30cqw .72cqw rgba(0,0,0,.24)}
  .card.back{border-width:.08cqw;box-shadow:inset 0 0 0 .18cqw rgba(34,52,80,.30),0 .30cqw .72cqw rgba(0,0,0,.28)}
  
  .bet-chips{width:10.2cqw}.bet-pill{min-width:3.35cqw;padding:.34cqw .72cqw;border-width:.10cqw;font-size:.82cqw}
  .pot-overlay{min-width:16.8cqw;height:6.2cqw;padding:0 1.5cqw;border-width:.12cqw;font-size:1.18cqw}

  .game-strip{width:100%;max-width:none;margin:4px 0 5px;min-height:24px;padding:0 3px;gap:6px}
  .status-text{font-size:.67rem;min-width:0}
  .your-hand{gap:5px;min-width:0}.your-hand span{font-size:.48rem}.your-hand strong{font-size:.7rem}
  .action-panel{width:100%;max-width:720px;padding:0 3px;gap:5px}
  .bet-sizing{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:4px}
  .size-btn{width:100%;min-width:0;height:30px;padding:0 4px;font-size:.58rem}
  .main-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .action-btn{min-width:0;min-height:42px;padding:0 5px;font-size:.66rem;overflow:hidden;text-overflow:ellipsis}
  .next-hand{min-width:0;width:min(230px,100%)}
}

@media (max-width:600px) and (orientation:portrait){
  .topbar{grid-template-columns:minmax(0,1fr) auto;gap:4px 6px}
  .brand-main{font-size:1rem}.brand-sub{display:none}
  .phase-badge{min-width:92px;padding:4px 7px;font-size:.56rem}
  .timer-box{min-width:42px;padding:2px 4px}.timer-box strong{font-size:.7rem}
  .top-stats{gap:3px}.stat{padding:2px 3px}.stat span{font-size:.36rem}.stat strong{font-size:.64rem}
  .ghost-btn{padding:4px 5px;font-size:.50rem}
  .table-stage{width:100%}

  /* In verticale non forziamo dimensioni leggibili da desktop: è ciò che causava le sovrapposizioni. */
  .player-tag{width:10.6cqw;height:3.2cqw}
  .tag-name{font-size:.64cqw}.tag-bottom{font-size:.66cqw}
  .tag-status{display:none}
  .role-badge{top:-1.2cqw}
  
  .game-strip{flex-direction:column;align-items:stretch;gap:2px;margin-top:3px}
  .status-text{max-width:none;font-size:.61rem;text-align:center}
  .your-hand{justify-content:center}.your-hand span{font-size:.43rem}.your-hand strong{font-size:.64rem}
  .action-panel{gap:4px}
  .size-btn{height:28px;font-size:.52rem}
  .main-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .action-btn{min-height:38px;font-size:.58rem;padding:0 3px}
  .action-btn.raise{grid-column:auto}
  .next-hand{min-width:0;width:100%;max-width:210px}
}

@media (max-width:390px) and (orientation:portrait){
  body{padding-left:3px;padding-right:3px}
  .phase-badge{min-width:82px;font-size:.5rem}
  .top-stats{grid-template-columns:repeat(3,minmax(0,1fr)) 1.15fr}
  .ghost-btn{font-size:.46rem;padding-left:3px;padding-right:3px}
  .status-text{font-size:.56rem}
  .size-btn{font-size:.48rem}
  .action-btn{font-size:.54rem}
}

/* Smartphone landscape basso: priorità assoluta al tavolo, HUD e comandi restano fuori dalla scena. */
@media (max-width:900px) and (orientation:landscape) and (max-height:500px){
  body{padding:2px 4px 4px}
  .topbar{grid-template-columns:minmax(120px,.8fr) auto minmax(210px,1fr);grid-template-areas:"brand hud stats";gap:5px;height:32px;margin:0}
  .brand-main{font-size:.88rem}.brand-sub{display:none}
  .round-hud{justify-self:center}.phase-badge{min-width:90px;padding:3px 7px;font-size:.5rem}.timer-box{min-width:39px;padding:1px 4px}.timer-box span{display:none}.timer-box strong{font-size:.64rem}
  .top-stats{display:flex;justify-self:end;gap:3px}.stat{min-width:42px;padding:1px 4px}.stat span{font-size:.34rem}.stat strong{font-size:.56rem}.ghost-btn{padding:3px 5px;font-size:.44rem}
  main{display:grid;grid-template-rows:minmax(0,1fr) 18px 50px;min-height:calc(100vh - 36px)}
  .table-stage{width:min(calc(100vw - 8px),calc((100vh - 104px) * 1.7777778))}
  .game-strip{height:18px;min-height:18px;margin:0 auto;font-size:.5rem}.status-text{font-size:.52rem}.your-hand span{font-size:.38rem}.your-hand strong{font-size:.52rem}
  .action-panel{height:50px;max-width:760px;display:grid;grid-template-columns:.95fr 1.35fr;grid-template-rows:1fr;gap:5px;align-items:center}
  .bet-sizing{grid-column:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.size-btn{height:29px;font-size:.48rem;padding:0 2px}
  .main-actions{grid-column:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.action-btn{height:34px;min-height:34px;font-size:.54rem;padding:0 4px}
  .next-hand{grid-column:2;width:100%;max-width:none;height:34px}
}

/* V4.28 — carte leggibili e geometria identica prima/dopo lo showdown. */
.card{background:#fff;color:#121820;border:1px solid #b9c3ce;border-radius:7%;font-weight:600}
.card.red{color:#bd202b}
.card-face{display:block;width:100%;height:100%;fill:currentColor;overflow:hidden}
.card-face text{font-family:Arial,Helvetica,sans-serif;font-weight:600;letter-spacing:-2px}
.hole-cards{height:12.2%;gap:.25cqw}
.hole-cards .card{aspect-ratio:5/7}
.hole-cards.human{height:16%;gap:.4cqw}
.card.back{border:1px solid #e8f1ff;background:linear-gradient(135deg,#173f72,#326dab);box-shadow:inset 0 0 0 .18cqw #9dbbdf,0 .3cqw .72cqw #0005}
.card.back:before{inset:10%;border:1px solid #a8c6e8;border-radius:4%;background:repeating-linear-gradient(45deg,#ffffff12 0 2px,#132d501a 2px 4px)}

/* V4.29 — dorso GAMEXITA blu/oro e testata senza valori duplicati. */
.card.back{background:linear-gradient(145deg,#1f70bd,#103e7e 60%,#092b5c);border-color:#f2d078;box-shadow:inset 0 0 0 .15cqw #c99b3a,0 .3cqw .72cqw #0005;display:grid;place-items:center}
.card.back:before{inset:8%;border-color:#d8b765;background:repeating-linear-gradient(45deg,#efcc720c 0 2px,transparent 2px 6px);border-radius:5%}
.back-emblem{position:relative;z-index:1;display:grid;place-items:center;width:70%;aspect-ratio:1;border:1px solid #e3be65;border-radius:50%;color:#ffe39a;background:#103768;font:800 2.15cqw/1 Arial,Helvetica,sans-serif;box-shadow:0 .1cqw .25cqw #0004;text-shadow:0 1px 1px #0008}
.topbar{grid-template-columns:1fr auto 1fr;grid-template-areas:"brand hud stats"}
.brand{grid-area:brand}.round-hud{grid-area:hud;justify-self:center}.top-stats{grid-area:stats;display:flex;justify-self:end}
.turn-clock{position:absolute;left:0;right:0;top:calc(100% + 4px);display:flex;align-items:center;gap:4px;color:#ffe199;filter:drop-shadow(0 1px 2px #000)}
.turn-clock[hidden]{display:none}
.turn-clock-track{flex:1;height:4px;border-radius:8px;overflow:hidden;background:#041323;border:1px solid #7194b5}
.turn-clock-fill{height:100%;background:#f0c25b;transition:width .2s linear}
.turn-clock-value{font-size:10px;line-height:1;font-weight:800;min-width:22px;text-align:right}
.turn-clock.urgent{color:#ff7777}.turn-clock.urgent .turn-clock-fill{background:#f45e58}
@media(max-width:900px){
 .topbar{grid-template-columns:1fr auto auto;grid-template-areas:"brand hud stats";gap:6px;min-height:34px}
 .top-stats{display:flex;grid-template-columns:none}.round-hud{justify-self:center}
 .turn-clock{top:calc(100% + 2px);gap:2px}.turn-clock-value{font-size:9px;min-width:18px}.turn-clock-track{height:3px}
}
@media(max-width:600px) and (orientation:portrait){
 .topbar{grid-template-columns:1fr auto;grid-template-areas:"brand stats" "hud hud"}
 .round-hud{justify-self:center}.phase-badge{padding:3px 12px}.turn-clock-value{font-size:8px;min-width:16px}
}

/* V4.30 — scala contenuta; facce e dorsi occupano lo stesso spazio. */
.community-cards{left:37.7%;top:41.1%;width:24.6%;height:10.2%}
.hole-cards{height:8%;gap:0}
.hole-cards:not(.human) .card + .card{margin-left:-.45cqw}
.hole-cards.human{height:10.5%;gap:.3cqw}
.back-emblem{font-size:1.45cqw}

/* V4.32 — ingresso diretto, azione di posto sempre visibile. */
.seat-btn{border-color:#d7b35c;background:linear-gradient(#255789,#16395f);color:#ffe2a0;min-width:76px}
.ghost-btn:disabled{opacity:.45;cursor:not-allowed}
.ghost-btn:disabled:hover{background:#0c1726;color:#dce7f4}

/* V4.33 — esito nella fascia libera sopra al board. */
.status-text[hidden]{display:none}
.payout-winner .player-tag{border-color:#ffdc78;box-shadow:0 0 0 2px #ffcf65,0 0 16px #ffc95488}
.payout-layer{position:absolute;inset:0;z-index:9;pointer-events:none}
.payout-parcel{position:absolute;left:50%;top:38%;width:5.5%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;animation:dealerPayout .95s ease-in-out both}
.payout-parcel img{width:100%;filter:drop-shadow(0 3px 3px #0008)}
.payout-parcel span{font-size:1cqw;font-weight:900;color:#ffe49b;background:#07182df0;border:1px solid #e6bd60;border-radius:20px;padding:.2cqw .5cqw;white-space:nowrap}
@keyframes dealerPayout{0%{left:50%;top:38%;opacity:0;scale:.6}12%{opacity:1;scale:1}35%{left:var(--via-x);top:38%;opacity:1}70%{left:var(--via-x);top:var(--via-y);opacity:1}90%{opacity:1}100%{left:var(--target-x);top:var(--target-y);opacity:0;scale:.5}}
@media(prefers-reduced-motion:reduce){.payout-parcel{animation:none;left:var(--target-x);top:var(--target-y)}}

/* V4.34 — esito nella pillola di fase già esistente. */
.phase-badge.showing-result{max-width:min(60vw,760px);white-space:normal;overflow-wrap:anywhere;line-height:1.25;background:linear-gradient(#356b49,#214b35);border-color:#e5c16c;color:#fff2c9;padding:6px 15px;letter-spacing:0}
@media(max-width:900px){.phase-badge.showing-result{max-width:46vw;font-size:.6rem;padding:4px 8px}}
@media(max-width:600px) and (orientation:portrait){.phase-badge.showing-result{max-width:94vw}}

/* V4.35 — asset vittoria proporzionato al badge, senza deformazioni. */
.winner-emblem{position:absolute;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%);width:100%;height:auto;display:block;pointer-events:none;user-select:none;filter:drop-shadow(0 2px 3px #0007)}

/* V4.36 — compact stacks and separate bet / collection paths. */
.bet-marker{width:7.2%;gap:.22cqw}
.bet-marker .bet-chips{width:100%;height:auto}
.bet-marker .bet-pill{min-width:0;padding:.22cqw .55cqw;border-width:.1cqw;font-size:.95cqw}
.chip-bet{animation:playerBet .6s ease-out both}
.chip-collection{animation:collectToDealer .85s ease-in-out both}
@keyframes playerBet{
  0%{left:var(--x0);top:var(--y0);opacity:.3}
  30%{left:var(--x1);top:var(--y1);opacity:1}
  75%{left:var(--x2);top:var(--y2);opacity:1}
  100%{left:var(--x3);top:var(--y3);opacity:1}
}
@keyframes collectToDealer{
  0%{left:var(--x0);top:var(--y0);opacity:1}
  25%{left:var(--x1);top:var(--y1)}
  65%{left:var(--x2);top:var(--y2);opacity:1}
  100%{left:var(--x3);top:var(--y3);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .chip-bet,.chip-collection{animation:none;left:var(--x3);top:var(--y3)}
}

.payout-parcel{width:7.2%;left:50%;top:22.8%}
@keyframes dealerPayout{
  0%{left:var(--x0);top:var(--y0);opacity:0}
  15%{opacity:1}
  30%{left:var(--x1);top:var(--y1)}
  75%{left:var(--x2);top:var(--y2);opacity:1}
  100%{left:var(--x3);top:var(--y3);opacity:0}
}
@media(prefers-reduced-motion:reduce){.payout-parcel{left:var(--x3);top:var(--y3)}}

/* V4.37 — puntata personale tra board e carte, cifra affiancata. */
.bet-marker.human-bet{width:auto;flex-direction:row;align-items:center;gap:.5cqw}
.bet-marker.human-bet .bet-chips{width:7.2cqw}

/* V4.38 — stack centrato davanti alle carte; importo fuori dall'ingombro. */
.bet-marker.human-bet{width:7.2%;display:block}
.bet-marker.human-bet .bet-chips{width:100%}
.bet-marker.human-bet .bet-pill{position:absolute;left:calc(100% + .5cqw);top:50%;transform:translateY(-50%)}
.action-panel{position:relative;overflow:visible}
.bet-sizing.bet-mixer{position:absolute;right:0;bottom:calc(100% + 10px);z-index:30;width:180px;max-width:80vw;padding:24px 14px 14px;display:flex;flex-direction:column;align-items:center;gap:8px;background:#102440f5;border:1px solid #8caac9;border-radius:16px;box-shadow:0 6px 24px #0008;color:#fff}
.mixer-close{position:absolute;right:5px;top:2px;border:0;background:none;color:white;font-size:24px;cursor:pointer}
.bet-mixer output{font-weight:900;font-size:18px}
.bet-mixer input[type=range]{writing-mode:vertical-lr;direction:rtl;width:40px;height:clamp(90px,22vh,180px);accent-color:#76c591;cursor:ns-resize;touch-action:none}
.bet-mixer .action-btn{width:100%;font-size:12px;min-height:40px}

/* V4.40 — dorso fornito, stessa geometria delle carte scoperte. */
.card.back{background:transparent url("assets/dorso.webp") center / 100% 100% no-repeat;border-color:transparent;box-shadow:0 .3cqw .72cqw #0005}
.card.back::before,.card.back::after{content:none;display:none}
