.chat-message img.chat-custom-emoji { display: inline-block; width: 1.6em; height: 1.6em; max-width: none; max-height: none; margin: 0 0.08em; vertical-align: -0.35em; object-fit: contain; border-radius: 0; }
.chat-emoji-picker { position: absolute; z-index: 15; right: 0; bottom: calc(100% + 0.5rem); box-sizing: border-box; width: min(22rem,100%); padding: 0.65rem; border: 1px solid #33465c; border-radius: 0.7rem; background: #152133; color: #e6f2ff; box-shadow: 0 0.6rem 1.5rem rgba(0,0,0,0.35); }
.chat-emoji-picker[hidden], .chat-emoji-picker [hidden] { display: none !important; }
.chat-emoji-tabs { display: flex; gap: 0.35rem; margin-bottom: 0.5rem; }
body :is(#admin-chat-form,#floating-chat-form) .chat-emoji-tabs button { width: auto; min-height: 2rem; padding: 0.3rem 0.6rem; border: 1px solid transparent; border-radius: 0.4rem; background: transparent; color: #a6b7cf; font: inherit; font-size: 0.75rem; }
body :is(#admin-chat-form,#floating-chat-form) .chat-emoji-tabs button[aria-pressed="true"] { border-color: #376279; background: #1c3a4d; color: #80d9ef; }
body :is(#admin-chat-form,#floating-chat-form) .chat-emoji-search { display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 2.2rem; margin: 0 0 0.5rem; padding: 0.45rem 0.6rem; border: 1px solid #33465c; border-radius: 0.4rem; background: #0c1420; color: #e6f2ff; font: inherit; font-size: 0.8rem; }
.chat-emoji-scroll { max-height: min(18rem,40dvh); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.chat-emoji-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 0.25rem; }
body :is(#admin-chat-form,#floating-chat-form) .chat-emoji-grid button { display: grid; place-items: center; box-sizing: border-box; width: 100%; min-width: 0; min-height: 2.4rem; padding: 0.2rem; border: 0; border-radius: 0.35rem; background: transparent; color: inherit; font-family: "Segoe UI Emoji","Apple Color Emoji",sans-serif; font-size: 1.4rem; line-height: 1; }
body :is(#admin-chat-form,#floating-chat-form) .chat-emoji-grid button:hover { background: #294257; }
.chat-emoji-grid .chat-custom-emoji { display: block; width: 1.9rem; height: 1.9rem; margin: 0; object-fit: contain; }
.chat-emoji-picker button:focus-visible { outline: 2px solid #80d9ef; outline-offset: -2px; }
.chat-emoji-empty { margin: 1rem 0; color: #a6b7cf; text-align: center; font-size: 0.8rem; }
body #floating-chat-form { position: relative; grid-template-columns: minmax(0,1fr); }
#floating-chat-form > [name="chat_text"] { width: 100%; min-width: 0; box-sizing: border-box; }
.client-compose-row { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 0.45rem; }
body #floating-chat-form .client-compose-row > button { flex-shrink: 0; width: auto; min-height: 2.5rem; }
body #floating-chat-form .client-compose-row :is(.chat-attach,.chat-emoji-toggle) { display: grid; place-items: center; width: 2.5rem; min-width: 2.5rem; padding: 0; border: 1px solid #33465c; border-radius: 0.5rem; background: #152133; color: #e6f2ff; font-size: 1.25rem; }
@media (max-width: 500px), (pointer: coarse) {
  .chat-emoji-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
  body :is(#admin-chat-form,#floating-chat-form) .chat-emoji-grid button { min-height: 2.75rem; }
}
body :is(#admin-chat-form,#floating-chat-form) .chat-rich-input { grid-column: 1 / -1; box-sizing: border-box; width: 100%; min-width: 0; min-height: 2.85rem; max-height: 10rem; overflow-y: auto; white-space: pre-wrap; overflow-wrap: anywhere; padding: 0.65rem 0.7rem; border: 1px solid #33465c; border-radius: 0.5rem; background: #0c1420; color: #e6f2ff; font: inherit; font-size: 0.875rem; line-height: 1.5; cursor: text; }
body #admin-chat-form .chat-rich-input { min-height: 4.5rem; }
.chat-rich-input:empty::before { content: attr(placeholder); color: #8194b0; pointer-events: none; }
.chat-rich-input:focus-visible { outline: 1px solid #80d9ef; outline-offset: 1px; }
.chat-rich-input[aria-disabled="true"] { opacity: 0.6; }
.chat-rich-input img[data-chat-token] { display: inline-block; width: 1.6em; height: 1.6em; max-width: none; max-height: none; margin: 0 0.08em; vertical-align: -0.35em; object-fit: contain; pointer-events: none; }
.chat-attachment-status { grid-column: 1 / -1; margin: 0; color: #a6b7cf; font-size: 0.75rem; line-height: 1.4; }
.chat-attachment-status[hidden] { display: none; }
body #admin-chat-form { position: relative; }
#admin-chat-form .admin-compose-row { position: static; }
#admin-chat-form .chat-emoji-picker { right: 1rem; width: min(22rem,calc(100% - 2rem)); }
.chat-emoji-picker { display: flex; flex-direction: column; max-height: var(--chat-emoji-available-height,calc(100dvh - 2rem)); }
.chat-emoji-tabs, body :is(#admin-chat-form,#floating-chat-form) .chat-emoji-search { flex-shrink: 0; }
.chat-emoji-scroll { min-height: 0; flex-shrink: 1; }
@media (max-width: 800px) {
  body :is(#admin-chat-form,#floating-chat-form) .chat-rich-input { font-size: 1rem; }
}
