/* v1.8.3 — table-side speech bubbles and compact emoji reactions. */
.chat-emoji-bar{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:5px;
  margin:0 0 7px;
  padding:6px;
  border:1px solid #44352a;
  border-radius:8px;
  background:#100d0baa;
}
.chat-emoji-bar button{
  min-width:0;
  height:30px;
  padding:0;
  border:1px solid #65472f;
  border-radius:7px;
  color:#fff;
  background:linear-gradient(180deg,#36251a,#21150f);
  font-size:17px;
  line-height:1;
  cursor:pointer;
  box-shadow:inset 0 1px #fff1;
}
.chat-emoji-bar button:hover,.chat-emoji-bar button:focus-visible{border-color:#d4a24c;background:#51321b;transform:translateY(-1px)}
.chat-emoji-bar button:active{transform:translateY(1px)}
.chat-emoji-bar button:disabled{opacity:.45;transform:none}
.chat-history-list{max-height:min(136px,34dvh)}

.opponent-seat{position:relative;overflow:visible!important}
.player-speech{
  --speech-life:12s;
  position:absolute;
  z-index:188;
  top:4px;
  left:calc(100% + 5px);
  width:max-content;
  max-width:min(170px,23vw);
  padding:6px 8px;
  border:1px solid #b08348;
  border-radius:10px 10px 10px 3px;
  color:#2b1a10;
  background:linear-gradient(150deg,#fff4dc,#dec49a);
  box-shadow:0 8px 20px #000a,inset 0 1px #fff;
  font-size:10px;
  font-weight:800;
  line-height:1.25;
  text-align:left;
  overflow-wrap:anywhere;
  pointer-events:none;
  transform-origin:left center;
  animation:playerSpeechLife var(--speech-life) ease both;
}
.player-speech:before{
  content:"";
  position:absolute;
  left:-6px;
  top:10px;
  width:10px;
  height:10px;
  border-left:1px solid #b08348;
  border-bottom:1px solid #b08348;
  background:#ead2aa;
  transform:rotate(45deg);
}
.table-opponents-right .player-speech{
  right:calc(100% + 5px);
  left:auto;
  border-radius:10px 10px 3px 10px;
  transform-origin:right center;
}
.table-opponents-right .player-speech:before{
  right:-6px;
  left:auto;
  border:0;
  border-top:1px solid #b08348;
  border-right:1px solid #b08348;
}
.player-speech.reaction{min-width:42px;padding:5px 9px;font-size:24px;line-height:1;text-align:center}
.personal-zone{position:relative;overflow:visible!important;z-index:24}
.personal-zone>.player-speech.own-speech{
  top:auto;
  right:auto;
  bottom:calc(100% + 4px);
  left:7px;
  max-width:min(220px,34vw);
  border-radius:10px 10px 10px 3px;
}
.personal-zone>.player-speech.own-speech:before{top:auto;bottom:-6px;left:15px;border:0;border-right:1px solid #b08348;border-bottom:1px solid #b08348}

@keyframes playerSpeechLife{
  0%{opacity:0;transform:translateY(4px) scale(.86)}
  8%,76%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:0;transform:translateY(-3px) scale(.96)}
}

@media(orientation:landscape) and (max-height:520px){
  .chat-emoji-bar{gap:3px;margin-bottom:5px;padding:4px}
  .chat-emoji-bar button{height:25px;border-radius:6px;font-size:14px}
  .chat-history-list{max-height:calc(47dvh - 62px)}
  .player-speech{top:2px;left:calc(100% + 3px);max-width:min(125px,19vw);padding:4px 6px;border-radius:7px 7px 7px 2px;font-size:8px}
  .table-opponents-right .player-speech{right:calc(100% + 3px);left:auto;border-radius:7px 7px 2px 7px}
  .player-speech.reaction{min-width:34px;padding:4px 7px;font-size:19px}
  .personal-zone>.player-speech.own-speech{bottom:calc(100% + 3px);left:4px;max-width:min(155px,25vw)}
}
@media(orientation:landscape) and (max-width:760px){
  .player-speech{max-width:110px;font-size:7px}
  .player-speech.reaction{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.player-speech{animation:none}}
