.composer textarea { overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; }
.composer textarea::-webkit-scrollbar { display: none; width: 0; height: 0; }
.composer-field { display: flex; align-items: flex-end; flex: 1; min-width: 0; border: 1px solid #c3d8e3; border-radius: 15px; background: #f7fbfd; transition: border-color .15s, box-shadow .15s; }
.composer-field:focus-within { border-color: #35b5da; box-shadow: 0 0 0 3px #2db8dd14; }
.composer-field textarea { border: 0; background: transparent; border-radius: 0; padding: 11px 4px; box-shadow: none; outline: none; }
.composer-tool { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 13px; color: #1582a9; background: transparent; }
.composer-tool .icon { width: 21px; height: 21px; }
.composer-tool:hover, .composer-tool:focus-visible { color: #007eaa; background: #e2f5fb; }
.composer-tool:focus-visible { outline: 2px solid #22b4d9; outline-offset: -3px; }
.composer-tool:disabled { background: transparent; color: #91acba; }
.composer-tool.is-listening { color: #007d94; background: linear-gradient(120deg,#daf2ff,#d9f9eb); box-shadow: inset 0 0 0 1px #69cecc; animation: composer-mic-pulse 1.4s ease-in-out infinite; }
.chat-composer-status { margin: 0; color: #38768c; font-size: 11px; line-height: 1.5; padding: 0 3px; overflow-wrap: anywhere; }
.chat-composer-status-error { color: #ab503e; }
.chat-emoji-dialog { width: 380px; max-width: calc(100vw - 24px); max-height: min(560px,calc(100dvh - 36px)); padding: 16px; border: 1px solid #c4e5ee; border-radius: 22px; background: #f8fcfe; }
.chat-emoji-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.chat-emoji-header h2, .chat-emoji-header h3 { margin: 0; font-size: 18px; color: var(--ink); }
.chat-emoji-header button { width: 44px; min-height: 44px; border-radius: 13px; font-size: 23px; color: #2584a2; background: #e9f6fb; }
.chat-emoji-search { width: 100%; min-height: 44px; border: 1px solid #c9e3ed; border-radius: 13px; background: #fff; padding: 10px 13px; color: var(--ink); }
.chat-emoji-categories { display: flex; gap: 6px; overflow-x: auto; padding: 10px 0; scrollbar-width: none; }
.chat-emoji-categories::-webkit-scrollbar { display: none; }
.chat-emoji-categories button { flex: 0 0 auto; min-height: 44px; padding: 8px 11px; border-radius: 12px; background: #edf6fa; color: #397088; font-size: 12px; font-weight: 650; }
.chat-emoji-categories button[aria-pressed="true"] { color: #087fa5; background: linear-gradient(120deg,#dff2ff,#dcf9ec); box-shadow: inset 0 0 0 1px #6dcfdc; }
.chat-emoji-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 6px; max-height: min(300px,45dvh); overflow-y: auto; overscroll-behavior: contain; padding: 3px 0; }
.chat-emoji-choice { display: grid; place-items: center; width: 100%; min-height: 46px; border-radius: 13px; color: var(--ink); background: #fff; border: 1px solid #e1eef4; font-size: 25px; line-height: 1; font-family: "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; }
.chat-emoji-choice:hover, .chat-emoji-choice:focus-visible { background: #e1f7ff; border-color: #65c8e0; }
.chat-emoji-choice:focus-visible { outline: 2px solid #28b6d6; outline-offset: 1px; }
.chat-emoji-empty { margin: 12px 0; color: var(--muted); text-align: center; font-size: 13px; }
@keyframes composer-mic-pulse { 50% { box-shadow: inset 0 0 0 1px #69cecc,0 0 0 3px #35c6cf1f; } }
@media (max-width: 360px) { .chat-emoji-grid { gap: 4px; } .chat-emoji-dialog { padding: 12px; } .composer-row { gap: 6px; } }
@media (prefers-reduced-motion: reduce) { .composer-tool.is-listening { animation: none; } }
