.table-talk-bubble {
  min-width: 0;
  min-height: 2.7em;
  font-size: 12px;
  line-height: 1.35;
  color: #d8c690;
  text-align: center;
  text-wrap: pretty;
  pointer-events: none;
  overflow-wrap: anywhere;
  transition: opacity 160ms ease-out;
}
.table-talk-bubble:empty { opacity: 0; }
dialog.table-talk-dialog {
  box-sizing: border-box;
  width: min(460px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  padding: 16px;
  overflow: visible;
  color: #f4eee0;
  border: 1px solid #71694d;
  border-radius: 18px;
  background: #171e19;
  box-shadow: 0 18px 70px #0009;
}
.table-talk-dialog[open] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.table-talk-dialog::backdrop { background: #07110bbd; }
.table-talk-dialog * { box-sizing: border-box; min-width: 0; }
.table-talk-dialog .table-talk-head { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.table-talk-dialog .table-talk-title { flex: 1; margin: 0; font: 500 24px/1.15 Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
.table-talk-dialog button {
  min-height: 44px;
  min-width: 44px;
  border: 1px solid #647052;
  border-radius: 10px;
  color: #f4eee0;
  background: #242e23;
  padding: 8px 10px;
  font: inherit;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color 140ms ease-out, transform 140ms ease-out;
}
.table-talk-dialog[data-input="pointer"] button:active { transform: scale(.97); }
.table-talk-dialog[data-input="keyboard"] button { transition: none; }
.table-talk-dialog button:disabled { opacity: .45; cursor: default; }
.table-talk-dialog button:focus-visible, .table-talk-dialog input:focus-visible { outline: 2px solid #f0d49a; outline-offset: 3px; }
.table-talk-dialog .table-talk-close { font-size: 26px; line-height: 1; }
.table-talk-dialog .table-talk-head button { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; }
.table-talk-dialog .table-talk-target { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 10px; align-items: center; }
.table-talk-dialog .table-talk-name { height: 52px; min-height: 44px; padding: 2px 6px; border-color: transparent; background: transparent; font-size: 16px; font-weight: 500; line-height: 1.3; text-align: center; overflow-wrap: anywhere; }
.table-talk-dialog .table-talk-name-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.table-talk-dialog .table-talk-lines { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.table-talk-dialog .table-talk-line { min-height: 48px; font-size: 14px; line-height: 1.25; }
.table-talk-dialog .table-talk-exchange { min-height: 64px; min-width: 0; margin: 0; display: block; align-content: center; padding: 10px 12px; border-left: 2px solid #cbb77d; background: #cbb77d0c; color: #e6d9b9; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.table-talk-dialog .table-talk-quiet { display: flex; gap: 10px; align-items: center; min-height: 44px; font-size: 13px; cursor: pointer; }
.table-talk-dialog .table-talk-quiet input { width: 20px; height: 20px; accent-color: #cbb77d; }
.table-talk-dialog .table-talk-identity { display: none; min-width: 0; }
.table-talk-dialog[data-identity-page="true"] .table-talk-identity { display: grid; grid-column: 1 / -1; gap: 12px; }
.table-talk-dialog[data-identity-page="true"] :is(.table-talk-target,.table-talk-lines,.table-talk-exchange,.table-talk-quiet) { display: none; }
.table-talk-dialog .table-talk-identity h3 { margin: 0; font-size: 14px; font-weight: 500; color: #cbb77d; }
.table-talk-dialog .table-talk-full-name { margin: 0; font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.table-talk-dialog .table-talk-full-name[hidden] { display: none; }
@media (hover: hover) and (pointer: fine) {
  .table-talk-dialog button:hover:enabled { background: #35412e; }
}
@media (max-height: 470px) and (min-width: 560px) {
  dialog.table-talk-dialog { width: min(700px, calc(100vw - 24px)); padding: 12px; }
  .table-talk-dialog[open] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 14px; }
  .table-talk-dialog .table-talk-head { grid-column: 1 / -1; }
  .table-talk-dialog .table-talk-target { grid-column: 1; }
  .table-talk-dialog .table-talk-lines { grid-column: 1; }
  .table-talk-dialog .table-talk-exchange { grid-column: 2; grid-row: 2 / 4; align-self: stretch; }
  .table-talk-dialog .table-talk-quiet { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .table-talk-dialog button, .table-talk-bubble { transition: none; }
  .table-talk-dialog[data-input="pointer"] button:active { transform: none; }
}
/* Preserve readable content and native zoom in windows too small for a whole interaction. */
@media (max-height: 350px), (max-width: 280px) {
  dialog.table-talk-dialog { overflow: auto; }
}
