/* A line belongs to its speaker. The small tail touches the speaking seat. */
.host-speech, .house-speech, .company-speech, .classic-speech,
body[data-isn-room] #gameDialog .opponent-comment.seat-speech {
  --tail:50%;box-sizing:border-box;position:relative;
  color:#292014;background:#fff4d7;border:1px solid #c29749;border-radius:12px;
  padding:7px 12px;box-shadow:0 2px 7px #090b0780;
  font:600 clamp(12px,1.35vw,16px)/1.24 Georgia,serif;text-align:center;text-shadow:none;
  overflow-wrap:anywhere;white-space:normal;
}
.host-speech::after,.house-speech::after,.classic-speech::after,.company-speech::after,
body[data-isn-room] #gameDialog .opponent-comment.seat-speech::after {
  content:"";position:absolute;bottom:-6px;left:var(--tail,50%);width:10px;height:10px;
  border:0;border-right:1px solid #c29749;border-bottom:1px solid #c29749;
  background:#fff4d7;transform:translateX(-50%) rotate(45deg);pointer-events:none;
}
.host-speech:not([hidden]){position:absolute;z-index:2;top:15%;right:4%;width:clamp(138px,30%,300px);font:600 clamp(15px,1.7vw,24px)/1.3 Georgia;text-align:left;padding:13px 16px}
.host-speech::after{left:-6px;top:48%;bottom:auto;transform:rotate(135deg)}
/* The check-in live region remains available to screen readers. */
.reception:has(.host-speech:not([hidden])) #welcomeMessage{
 position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap
}

body[data-isn-room] #gameDialog .opponent-comment.seat-speech,
body.isn-salon-classic #opponents article.speaking > .classic-speech {
  position:absolute;display:block;z-index:7;inset:auto auto calc(100% - 1px) 50%;
  transform:translateX(-50%);width:max-content;max-width:min(290px,61vw);min-height:0;height:auto;
  margin:0;overflow:visible;border:1px solid #c29749;
  background:#fff4d7;color:#292014;font:600 clamp(12px,1.25vw,16px)/1.19 Georgia,serif;
  padding:6px 11px;pointer-events:none;
}
body[data-isn-room] #gameDialog .seat-speech > :is(img,svg,.opponent-comment-pose),
body[data-isn-room] #gameDialog .seat-speech .opponent-comment-copy>:is(.opponent-comment-kicker,strong){display:none}
body[data-isn-room] #gameDialog .seat-speech .opponent-comment-copy p {
  display:block;margin:0;padding:0;font:inherit;line-height:inherit;color:inherit;max-height:none;overflow:visible;
}
body[data-isn-room] #gameDialog .seat-speech .comment-profile-button{display:none}
body[data-isn-room] #gameDialog .opponent-seats:has(.seat-speech),
body.isn-salon-classic #opponents:has(.classic-speech) {box-sizing:border-box;padding-top:44px!important}
body.isn-salon-classic #opponents article > .classic-speech {display:none}
body[data-isn-room] #gameDialog .stud-player-heading:has(.seat-speech){flex-wrap:wrap;position:relative}
body[data-isn-room] #gameDialog .stud-player-heading .seat-speech{position:relative;inset:auto;transform:none;flex:1 1 100%;max-width:100%;margin:4px 0 1px}
body[data-isn-room] #gameDialog .stud-player-heading .seat-speech::after {top:-5px;bottom:auto;left:18%;transform:rotate(225deg)}
body[data-isn-room] #gameDialog .stud-player-heading .seat-speech .comment-profile-button{display:inline-block;pointer-events:auto}
body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .room-layout{grid-template-rows:minmax(0,1fr) clamp(120px,17dvh,162px)}
body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .table-action-panels{grid-template: auto minmax(0,1fr)/minmax(0,1fr)}
body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .poker-comment-panel{display:block;min-height:0}
body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .poker-comment-panel #roomStatus{margin:0;padding:2px 9px;font-size:12px}
body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .turn-prompt-copy{grid-template-columns:auto minmax(60px,1fr) auto;column-gap:12px}
body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .turn-prompt-wager{grid-column:2;grid-row:1/3;justify-self:center}
body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .turn-prompt-actions{grid-column:3;grid-row:1/3}
body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .poker-footer-controls{grid-column:3}
body[data-isn-room] .company-table .isn-seated-guest > .company-speech {position:relative;margin:5px auto 0;padding:5px 8px;color:#292014;font:600 12px/1.15 Georgia;max-width:min(100%,235px)}
.company-speech::after {bottom:auto;top:-5px;transform:rotate(225deg)}
.house-speech{position:absolute;bottom:99%;left:50%;transform:translateX(-50%);width:max-content;max-width:min(200px,47vw);padding:5px 8px;font:600 clamp(10px,1.1vw,14px)/1.16 Georgia;pointer-events:none}
#guestComment[hidden]{display:none!important}
body[data-isn-room] .seated-reactions .reaction-quote{width:fit-content;margin:8px auto;padding:6px 12px;background:#fff4d7;color:#2b2315;border:1px solid #c29749;border-radius:10px;text-shadow:none}
@media(max-width:650px){
  .host-speech:not([hidden]){top:24%;right:2%;width:32%;padding:6px;font-size:clamp(10px,3.2vw,15px)}
  body[data-isn-room] #gameDialog .opponent-comment.seat-speech,
  body.isn-salon-classic #opponents article.speaking>.classic-speech {max-width:min(60vw,245px);font-size:12px;padding:4px 7px}
  body[data-isn-room] #gameDialog .opponent-seat:first-child .seat-speech,
  body.isn-salon-classic #opponents article:first-child.speaking>.classic-speech {--tail:19%;left:0;transform:none}
  body[data-isn-room] #gameDialog .opponent-seat:last-child .seat-speech,
  body.isn-salon-classic #opponents article:last-child.speaking>.classic-speech {--tail:81%;left:auto;right:0;transform:none}
  body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .room-layout{grid-template-rows:minmax(0,1fr) 156px}
  body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .turn-prompt-copy{grid-template-columns:minmax(0,1fr) auto;gap:2px}
  body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .turn-prompt-actions,
  body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .poker-footer-controls{grid-column:1/-1;grid-row:auto}
  body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .poker-footer-controls button{min-height:28px}
  .house-speech{font-size:10px;max-width:35vw}
  body[data-isn-room] .company-table .isn-seated-guest>.company-speech{font-size:10px;padding:3px}
}
@media(max-height:500px) and (min-width:651px){
 body.isn-salon-classic #opponents:has(.classic-speech),body[data-isn-room] #gameDialog .opponent-seats:has(.seat-speech){padding-top:24px!important}
 body.isn-salon-classic #opponents article.speaking>.classic-speech,body[data-isn-room] #gameDialog .opponent-comment.seat-speech {font-size:10px;line-height:1.05;max-width:290px;padding:3px 7px}
 body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .room-layout{grid-template-rows:minmax(0,1fr) 88px}
}

/* Override fitted poker's original large comment card now that it is a speech balloon. */
body.public-card-room[data-isn-room] #gameDialog.poker-fit .opponent-seat>.opponent-comment.seat-speech{
 display:block;flex:none;min-height:0;height:auto;width:max-content;max-width:min(270px,62vw);padding:5px 10px;align-items:initial;
}
body.public-card-room[data-isn-room] #gameDialog.poker-fit .opponent-seat>.seat-speech .opponent-comment-copy{
 display:block;min-height:0;height:auto;margin:0;padding:0
}
body.public-card-room[data-isn-room] #gameDialog.poker-fit .opponent-seat>.seat-speech .opponent-comment-copy p{
 font:600 clamp(12px,1.2vw,16px)/1.15 Georgia,serif;margin:0;padding:0;color:#292014;min-height:0;text-shadow:none
}
body.isn-salon-classic #opponents .opponent.speaking>.classic-speech{color:#292014;text-shadow:none;background:#fff4d7}

body[data-isn-room] #gameDialog .opponent-comment.seat-speech::before{display:none}
body[data-isn-room] #gameDialog .seat-speech .opponent-comment-copy::before{display:none}

@media(max-height:500px) and (min-width:651px){
 body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .room-layout{grid-template-rows:minmax(0,1fr) 102px}
 body.public-card-room[data-isn-room] #gameDialog.poker-fit:has(.seat-speech) .turn-prompt{padding:3px 8px}
}
