/* DMG Voice V3.6.6 - premium player cards + active speaker + mic/cam badges */
.okeyLounge .opPlayer{overflow:visible!important;position:absolute;border-radius:18px!important;padding:8px 12px!important;gap:10px!important;background:linear-gradient(180deg,rgba(10,25,38,.96),rgba(6,16,26,.88))!important;border:1px solid rgba(255,255,255,.15)!important;box-shadow:0 10px 28px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.08)!important;backdrop-filter:blur(5px)}
.okeyLounge .opPlayer:before{content:'';position:absolute;inset:1px;border-radius:17px;background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,0));pointer-events:none;opacity:.8}
.okeyLounge .opPlayer.turn{border-color:#54f0a4!important;box-shadow:0 0 0 2px rgba(84,240,164,.18),0 12px 30px rgba(0,0,0,.42),0 0 20px rgba(84,240,164,.15)!important}
.okeyLounge .opPlayer.speaking{border-color:#4fd2ff!important;box-shadow:0 0 0 2px rgba(79,210,255,.18),0 12px 32px rgba(0,0,0,.44),0 0 24px rgba(79,210,255,.22)!important}
.okeyLounge .opPlayer.speaking:after{content:'';position:absolute;inset:-5px;border-radius:22px;border:1px solid rgba(79,210,255,.28);animation:opSpeakPulse 1.2s ease-out infinite;pointer-events:none}
.okeyLounge .opAvatar{position:relative;width:54px!important;height:54px!important;flex-basis:54px!important;border-width:3px!important;border-color:#f2c45f!important;box-shadow:0 0 0 3px rgba(240,180,58,.12),0 8px 18px rgba(0,0,0,.35)!important;overflow:visible}
.okeyLounge .opAvatar.speakingGlow{box-shadow:0 0 0 3px rgba(66,212,255,.18),0 0 24px rgba(66,212,255,.38),0 8px 18px rgba(0,0,0,.35)!important;border-color:#65dcff!important}
.okeyLounge .opPlayerInfo{display:flex;flex-direction:column;gap:2px;min-width:0}
.okeyLounge .opPlayerInfo b{font-size:13px!important;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.okeyLounge .opPlayerInfo small{font-size:9px!important;color:#f6d58d!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.okeyLounge .opTurnPill{margin-left:auto;padding:5px 8px!important;border-radius:999px!important;background:linear-gradient(180deg,#0ea861,#097243)!important;color:#ddffec!important;font-size:8px!important;letter-spacing:.4px;box-shadow:0 4px 10px rgba(9,114,67,.35)}
.okeyLounge .opStateBadges{position:absolute;right:-4px;bottom:-8px;display:flex;gap:4px;z-index:3}
.okeyLounge .opState{width:19px;height:19px;border-radius:999px;display:grid;place-items:center;font-style:normal;font-size:9px;background:linear-gradient(180deg,#142433,#09131c);border:1px solid rgba(255,255,255,.18);box-shadow:0 3px 10px rgba(0,0,0,.35)}
.okeyLounge .opState.mic{color:#8cf3b6;border-color:rgba(70,232,143,.45)}
.okeyLounge .opState.cam{color:#91d9ff;border-color:rgba(79,210,255,.45)}
.okeyLounge .opOnline{width:11px!important;height:11px!important;right:0!important;bottom:1px!important;box-shadow:0 0 0 2px #0d1720,0 0 12px rgba(36,221,118,.4)}

.gameMemberRow.speaking{border-color:rgba(79,210,255,.3)!important;box-shadow:0 0 0 1px rgba(79,210,255,.18),0 10px 18px rgba(0,0,0,.18)}
.gameMemberRow .avatar{overflow:visible}
.gameMemberRow .avatar.voiceGlow{box-shadow:0 0 0 2px rgba(79,210,255,.18),0 0 18px rgba(79,210,255,.28)}
.miniMediaBadges{position:absolute;right:-4px;bottom:-5px;display:flex;gap:3px}
.miniState{width:16px;height:16px;border-radius:999px;display:grid;place-items:center;font-style:normal;font-size:8px;background:#132131;border:1px solid rgba(255,255,255,.16);box-shadow:0 2px 7px rgba(0,0,0,.25)}
.miniState.mic{color:#82efae;border-color:rgba(70,232,143,.4)}
.miniState.cam{color:#8fd8ff;border-color:rgba(79,210,255,.4)}

@keyframes opSpeakPulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.07)}}

@media (max-width:1280px){
  .okeyLounge .opPlayerInfo b{max-width:92px;font-size:12px!important}
  .okeyLounge .opPlayerInfo small{max-width:112px;font-size:8px!important}
}
@media (max-width:980px){
  .okeyLounge .opPlayer{padding:5px 7px!important;gap:6px!important;border-radius:14px!important}
  .okeyLounge .opAvatar{width:36px!important;height:36px!important;flex-basis:36px!important}
  .okeyLounge .opPlayerInfo b{font-size:8px!important;max-width:68px}
  .okeyLounge .opPlayerInfo small{font-size:6px!important;max-width:84px}
  .okeyLounge .opTurnPill{padding:3px 5px!important;font-size:5px!important}
  .okeyLounge .opState{width:14px;height:14px;font-size:7px}
}
