/* DMG Voice V3.4.0 - Game UX + Okey Pro Table (loaded last) */
.gameBoardPane{position:relative}
.gameResultOverlay{position:absolute;z-index:90;inset:0;display:grid;place-items:center;padding:18px;background:rgba(4,8,13,.72);backdrop-filter:blur(9px)}
.gameResultOverlay.hidden{display:none!important}
.gameResultCard{position:relative;width:min(480px,94%);overflow:hidden;text-align:center;padding:34px 24px 25px;border-radius:26px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(160deg,rgba(22,30,42,.98),rgba(8,13,20,.98));box-shadow:0 28px 90px #000a}
.gameResultCard.resultEnter{animation:resultPop .38s cubic-bezier(.2,.9,.2,1)}
@keyframes resultPop{from{opacity:0;transform:translateY(22px) scale(.92)}to{opacity:1;transform:none}}
.gameResultCard .resultGlow{position:absolute;inset:-50% -20% auto;height:220px;background:radial-gradient(circle,rgba(120,88,255,.32),transparent 64%);pointer-events:none}
.gameResultCard.win .resultGlow{background:radial-gradient(circle,rgba(43,223,142,.35),transparent 64%)}
.gameResultCard.lose .resultGlow{background:radial-gradient(circle,rgba(255,91,91,.26),transparent 64%)}
.resultIcon{position:relative;font-size:55px;filter:drop-shadow(0 10px 18px #0008)}
.gameResultCard>small{position:relative;font-size:8px;letter-spacing:.18em;color:#9babc0;font-weight:900}
.gameResultCard h2{position:relative;margin:8px 0 5px;font-size:34px}.gameResultCard.win h2{color:#6af0ad}.gameResultCard.lose h2{color:#ff8f89}.gameResultCard.draw h2{color:#ffd76a}
.gameResultCard p{position:relative;font-size:10px;color:#aab6c7}.rematchState{margin:15px auto 0;padding:9px 12px;border-radius:12px;background:#111a25;font-size:9px;color:#94a3b8}
.resultActions{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:7px;margin-top:16px}.resultActions .btn{font-size:9px;padding:10px}
.botChatBadge{display:inline-grid;place-items:center;margin-left:4px;padding:1px 4px;border-radius:5px;background:rgba(68,211,166,.12);border:1px solid rgba(68,211,166,.22);font-size:5px;color:#7de9c6;vertical-align:1px}
.botChatMsg{border-left:2px solid rgba(68,211,166,.45)}

/* Okey Pro */
.gameRoomShell.okeyMode{grid-template-columns:205px minmax(720px,1fr) 270px}.gameRoomShell.okeyMode .gameBoard{padding:0!important;background:#090d12;overflow:auto}
.okeyProTable{position:relative;width:100%;min-width:720px;min-height:660px;padding:14px 14px 82px;background:radial-gradient(circle at 50% 15%,rgba(191,113,48,.13),transparent 34%),linear-gradient(#17120f,#0b0f14);overflow:hidden}
.opAmbient{position:absolute;top:-10%;bottom:-10%;width:170px;filter:blur(35px);opacity:.3;pointer-events:none}.opAmbientLeft{left:-70px;background:#8f5b2c}.opAmbientRight{right:-70px;background:#a25e26}
.opTableFrame{position:relative;height:560px;border:14px solid #6e3d1f;border-radius:52px 52px 34px 34px;background:linear-gradient(135deg,#9e6232,#3c1f10 45%,#b4773d);box-shadow:inset 0 0 0 3px #cc8c4e,0 26px 65px #000b}
.opTableFrame:before{content:"";position:absolute;inset:-8px;border-radius:48px;box-shadow:inset 0 0 16px rgba(255,192,111,.23);pointer-events:none}
.opFelt{position:absolute;inset:8px;border-radius:37px 37px 22px 22px;overflow:hidden;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.035),transparent 28%),repeating-linear-gradient(35deg,rgba(255,255,255,.012) 0 2px,transparent 2px 9px),linear-gradient(145deg,#08709b,#075d86 48%,#064c71);box-shadow:inset 0 0 90px rgba(0,0,0,.35)}
.opFelt:before{content:"♣";position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);font-size:170px;color:rgba(255,255,255,.025);pointer-events:none}
.opPlayer{position:absolute;z-index:12;display:flex;align-items:center;gap:8px;min-width:142px;padding:6px 9px;border-radius:15px;background:rgba(5,18,29,.82);border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 22px #0006;transition:.2s}.opPlayer.turn{border-color:#50ed9f;box-shadow:0 0 0 2px rgba(80,237,159,.18),0 0 25px rgba(80,237,159,.2)}
.opPlayer.top{top:7px;left:50%;transform:translateX(-50%)}.opPlayer.bottom{bottom:71px;left:50%;transform:translateX(-50%)}.opPlayer.left{left:8px;top:50%;transform:translateY(-50%)}.opPlayer.right{right:8px;top:50%;transform:translateY(-50%)}
.opAvatar{position:relative;width:43px;height:43px;flex:0 0 43px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#6641bb,#218b98);border:2px solid #efb949;color:#fff;font-weight:950;font-size:12px;background-size:cover;background-position:center}.opOnline{position:absolute;width:9px;height:9px;border-radius:50%;right:-1px;bottom:2px;background:#21dd76;border:2px solid #0d1720}
.opPlayerInfo{min-width:0}.opPlayerInfo b,.opPlayerInfo small{display:block}.opPlayerInfo b{font-size:10px;white-space:nowrap}.opPlayerInfo b em{margin-left:4px;font-style:normal;font-size:5px;color:#82dfc4;border:1px solid rgba(83,222,181,.3);padding:1px 3px;border-radius:4px}.opPlayerInfo small{font-size:6px;color:#adc0d3;margin-top:2px;white-space:nowrap}
.opOpponentRack{position:absolute;z-index:7;display:flex;gap:3px}.opOpponentRack.top{top:64px;left:50%;transform:translateX(-50%)}.opOpponentRack.left{left:100px;top:50%;transform:translateY(-50%) rotate(90deg)}.opOpponentRack.right{right:100px;top:50%;transform:translateY(-50%) rotate(90deg)}
.opTileBack{width:33px;height:47px;border-radius:5px;display:grid;place-items:center;background:linear-gradient(145deg,#f7ecd1,#d6b986);border:1px solid #fff6d5;box-shadow:0 3px 7px #0005,inset 0 0 0 2px rgba(132,80,25,.13)}.opTileBack i{width:20px;height:29px;border-radius:3px;border:1px solid rgba(143,91,35,.32);background:radial-gradient(circle,transparent 42%,rgba(143,91,35,.2) 43% 48%,transparent 49%),linear-gradient(45deg,transparent 45%,rgba(143,91,35,.13) 46% 54%,transparent 55%)}
.opRackCount{position:absolute;right:-15px;top:-8px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 3px;border-radius:999px;background:#101822;color:#ffdb85;font-size:7px;font-weight:900}
.opCenterZone{position:absolute;z-index:8;left:50%;top:46%;transform:translate(-50%,-50%);width:330px;height:190px}.opWall,.opLastDiscard{position:absolute;border:0;background:transparent;color:#fff;cursor:pointer}
.opWall{left:42px;top:18px;width:75px;height:84px}.opWall>span{position:absolute;left:16px;top:8px;width:41px;height:55px}.opWall>span i{position:absolute;inset:0;border-radius:6px;background:linear-gradient(145deg,#f3dfbd,#cba36c);border:1px solid #ffe9be;box-shadow:0 2px 5px #0006}.opWall>span i:nth-child(2){transform:translate(3px,-3px)}.opWall>span i:nth-child(3){transform:translate(6px,-6px)}.opWall>span i:nth-child(4){transform:translate(9px,-9px)}.opWall b{position:absolute;right:-1px;top:1px;min-width:25px;padding:3px;border-radius:9px;background:#0b1e2a;font-size:9px}.opWall small{position:absolute;left:14px;bottom:0;font-size:6px;letter-spacing:.13em}.opWall.active{filter:drop-shadow(0 0 10px rgba(92,208,255,.55))}.opWall:disabled,.opLastDiscard:disabled{opacity:.6;cursor:default}
.opIndicator{position:absolute;right:42px;top:6px;display:flex;flex-direction:column;align-items:center;gap:3px}.opIndicator>small{font-size:6px;color:#d6e7f3;font-weight:900}.opIndicator>span{font-size:7px;background:#0b2636;padding:3px 7px;border-radius:8px;color:#bdd2df}
.opLastDiscard{right:62px;bottom:12px;display:flex;flex-direction:column;align-items:center;gap:3px}.opLastDiscard small{font-size:6px;color:#d4e5ee}.opLastDiscard.active{filter:drop-shadow(0 0 12px rgba(67,226,160,.5))}.opEmptyLast{width:42px;height:60px;border:1px dashed rgba(255,255,255,.18);display:grid;place-items:center;border-radius:7px;color:#7890a0}
.opCenterInfo{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:7px 12px;border-radius:13px;background:rgba(4,24,35,.82);border:1px solid rgba(255,255,255,.1);font-size:8px;color:#d9e9f2;white-space:nowrap}.opCenterInfo i{width:1px;height:14px;background:rgba(255,255,255,.15)}.opCenterInfo b{color:#ffdc78}
.opDiscard{position:absolute;z-index:10}.opDiscard.top{top:77px;right:28%}.opDiscard.left{left:24%;top:55%;transform:rotate(-13deg)}.opDiscard.right{right:24%;top:55%;transform:rotate(13deg)}.opDiscard.bottom{bottom:126px;right:30%;transform:rotate(8deg)}.opTea{position:absolute;z-index:4;font-size:31px;filter:drop-shadow(0 7px 8px #0008)}.opTea.left{left:32px;bottom:70px}.opTea.right{right:32px;bottom:70px}
.opTileFace{width:39px;height:57px;display:inline-flex;position:relative;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;background:linear-gradient(150deg,#fffdf0,#e8e2ce);border:1px solid #fff;box-shadow:0 4px 7px #0005,inset 0 -3px 0 rgba(110,90,54,.12);color:#151515;font-weight:1000;transition:.16s}.opTileFace b{font-size:18px;line-height:1}.opTileFace i{width:6px;height:6px;margin-top:5px;border-radius:50%;background:currentColor}.opTileFace.red{color:#ce2432}.opTileFace.blue{color:#1679ba}.opTileFace.yellow{color:#e49b14}.opTileFace.black{color:#171717}.opTileFace.fake{color:#7c39a8}.opTileFace.selected{transform:translateY(-12px);box-shadow:0 0 0 3px #7b61ff,0 9px 13px #0007}.opTileFace.dragOver{box-shadow:0 0 0 3px #43dea4,0 8px 12px #0007}
.opRack{position:absolute;z-index:15;left:50%;bottom:10px;transform:translateX(-50%);width:min(760px,79%);height:120px;padding:24px 14px 9px;border-radius:9px;background:linear-gradient(#c88338,#8a4e22 49%,#6e3b1b 50%,#b36b2e);border:6px solid #8a4b24;box-shadow:inset 0 0 0 2px #e9aa5d,0 13px 26px #0008}.opRack:after{content:"";position:absolute;left:8px;right:8px;top:60px;height:3px;background:#e2a351;box-shadow:0 2px 3px #5b2c16}.opRackToolbar{position:absolute;left:12px;right:12px;top:4px;display:flex;align-items:center;justify-content:space-between;color:#f4d5ad;font-size:6px;font-weight:900;z-index:4}.opRackToolbar button{border:0;border-radius:6px;background:#2f1b10;color:#e7c99f;font-size:6px;padding:3px 5px;cursor:pointer}.opRackTiles{position:relative;z-index:3;display:flex;align-content:flex-start;justify-content:flex-start;gap:2px;flex-wrap:wrap;height:90px;overflow:visible}.opRackTiles .opTileFace{cursor:grab}.opRackTiles .opTileFace:active{cursor:grabbing}.opSpectatorNote{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);padding:9px 14px;background:#0a2638;border-radius:12px;color:#bdd5e5;font-size:8px}
.opActions{position:absolute;z-index:22;left:50%;bottom:13px;transform:translateX(-50%);display:flex;gap:7px}.opAction{border:1px solid rgba(255,255,255,.16);border-radius:11px;color:#fff;font-size:9px;font-weight:900;padding:10px 14px;box-shadow:0 6px 13px #0007;cursor:pointer}.opAction.purple{background:linear-gradient(#7751f5,#542cca)}.opAction.blue{background:linear-gradient(#1681dd,#075eb3)}.opAction.green{background:linear-gradient(#1eb66b,#078747)}.opAction.dark{background:linear-gradient(#26344a,#172131)}.opAction:disabled{opacity:.36;filter:grayscale(.5);cursor:not-allowed}

@media(max-width:1280px){.gameRoomShell.okeyMode{grid-template-columns:185px minmax(650px,1fr)}.gameRoomShell.okeyMode .gameChatPane{position:fixed;right:9px;bottom:9px;width:285px;height:390px;z-index:30}.okeyProTable{min-width:650px}.opPlayer.left{left:4px}.opPlayer.right{right:4px}.opOpponentRack.left{left:88px}.opOpponentRack.right{right:88px}.opRack{width:82%}}
@media(max-width:980px){body.game-room-open .gameResultOverlay{position:fixed!important;inset:0!important;z-index:260}.gameRoomShell.okeyMode{grid-template-columns:none!important}.gameRoomShell.okeyMode .gameBoard{padding:0!important;overflow:hidden!important}.gameRoomShell.okeyMode .gameBoardPane{background:#090d12!important}.gameRoomShell.okeyMode .okeyProTable{max-width:100dvw!important}}
@media(max-width:760px){.gameResultOverlay{padding:9px}.gameResultCard{padding:26px 16px 18px}.gameResultCard h2{font-size:28px}.resultActions{grid-template-columns:1fr}.okeyProTable{min-width:0!important;width:100%!important;min-height:0!important;height:100%;padding:3px 3px 58px;overflow:hidden}.opTableFrame{height:calc(100% - 6px);min-height:480px;border-width:7px;border-radius:24px}.opFelt{inset:4px;border-radius:16px}.opPlayer{min-width:106px;padding:4px 6px;gap:5px}.opPlayer.top{top:3px}.opPlayer.bottom{bottom:95px}.opPlayer.left{left:2px;top:43%}.opPlayer.right{right:2px;top:43%}.opAvatar{width:31px;height:31px;flex-basis:31px;font-size:8px}.opPlayerInfo b{font-size:7px}.opPlayerInfo small{font-size:5px}.opOpponentRack.top{top:47px}.opOpponentRack.left{left:52px;top:42%}.opOpponentRack.right{right:52px;top:42%}.opTileBack{width:22px;height:33px}.opTileBack i{width:13px;height:21px}.opOpponentRack{gap:1px}.opCenterZone{width:210px;height:150px;top:42%}.opWall{left:10px;top:15px;transform:scale(.78)}.opIndicator{right:10px;top:3px;transform:scale(.8)}.opLastDiscard{right:20px;bottom:8px;transform:scale(.8)}.opCenterInfo{font-size:6px;padding:5px 7px;gap:5px}.opDiscard.left{left:19%;top:54%}.opDiscard.right{right:19%;top:54%}.opDiscard.bottom{bottom:150px;right:21%}.opDiscard.top{top:58px;right:22%}.opTea{display:none}.opRack{bottom:18px;width:94%;height:104px;padding:21px 8px 7px;border-width:4px}.opRack:after{top:54px}.opRackTiles{height:78px;gap:1px}.opRackTiles .opTileFace{width:clamp(28px,8.1vw,36px);height:48px}.opRackTiles .opTileFace b{font-size:14px}.opRackToolbar{top:3px;left:7px;right:7px}.opRackToolbar>span{font-size:5px}.opRackToolbar button{font-size:5px;padding:2px 4px}.opActions{position:fixed;left:4px;right:4px;bottom:calc(64px + env(safe-area-inset-bottom));transform:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;z-index:230;max-width:calc(100dvw - 8px)}.opAction{padding:8px 3px;font-size:6px;border-radius:8px}.opSpectatorNote{bottom:70px}.opTileFace{width:31px;height:45px}.opTileFace b{font-size:14px}.opTileFace i{width:5px;height:5px;margin-top:3px}}
@media(max-width:420px){.opOpponentRack.left{left:42px}.opOpponentRack.right{right:42px}.opOpponentRack .opTileBack:nth-child(n+7){display:none}.opPlayer.left,.opPlayer.right{min-width:88px}.opPlayerInfo small{display:none}.opCenterZone{transform:translate(-50%,-50%) scale(.88)}.opRack{width:97%}.opRackTiles .opTileFace{width:clamp(25px,7.7vw,32px);height:44px}.opRackTiles .opTileFace b{font-size:13px}}
