.composer-emoji-btn{display:inline-flex;align-items:center;justify-content:center;align-self:flex-end;flex:0 0 38px;width:38px;height:38px;padding:0;border:1px solid var(--border,#3b4150);border-radius:9px;background:var(--bg-3,#181c24);color:var(--text-2,#eef1f6);font-size:19px;cursor:pointer}
.composer-emoji-btn:hover{border-color:var(--accent,#8b5cf6);color:var(--accent,#8b5cf6)}
.icon-button ~ .composer-emoji-btn{flex-basis:40px;width:40px;height:40px;align-self:center}
.chan-composer .composer-emoji-btn{flex-basis:36px;width:36px;height:36px;align-self:center;border:0;border-radius:var(--r);background:transparent;color:var(--text-3);font-size:20px}

.emoji-picker-panel{position:fixed;z-index:10010;max-height:460px;display:flex;flex-direction:column;overflow:hidden;padding:12px;border:1px solid var(--border,#3b4150);border-radius:14px;background:var(--bg-2,#181c24);color:var(--text,#eef1f6);box-shadow:0 18px 50px rgba(0,0,0,.48)}
.emoji-picker-panel[hidden],.emoji-suggestions[hidden]{display:none}
.emoji-picker-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.emoji-picker-head strong{font-size:13px}
.emoji-picker-close{border:0;border-radius:7px;background:transparent;color:inherit;padding:4px 9px;font-size:23px;line-height:1;cursor:pointer}
.emoji-picker-search{width:100%;height:38px;padding:8px 10px;border:1px solid var(--border,#3b4150);border-radius:8px;background:var(--bg,#0a0c0f);color:inherit}
.emoji-picker-status{margin:6px 2px;font-size:12px;color:var(--text-dim,#a7b0bf)}
.emoji-picker-status:empty{display:none}
.emoji-picker-grid{overflow:auto;min-height:80px;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:10px}
.emoji-picker-section{margin:13px 3px 7px;color:var(--text-dim,#a7b0bf);font-size:12px;font-weight:700}
.emoji-picker-items{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.emoji-picker-tile{position:relative;min-width:0;width:100%;height:44px}
.emoji-picker-choice{display:grid;place-items:center;width:100%;height:100%;padding:0;border:0;border-radius:8px;background:transparent;color:inherit;font-size:27px;line-height:1;cursor:pointer}
.emoji-picker-choice:hover,.emoji-picker-choice:focus-visible{background:color-mix(in srgb,var(--accent,#8b5cf6) 20%,transparent);outline:1px solid color-mix(in srgb,var(--accent,#8b5cf6) 50%,transparent)}
.emoji-picker-choice img{display:block;width:30px;height:30px;object-fit:contain;margin:auto;vertical-align:middle}
.emoji-picker-favorite{position:absolute;right:0;top:0;display:grid;place-items:center;width:17px;height:17px;padding:0;border:0;border-radius:50%;background:var(--bg-2,#181c24);color:var(--text-dim,#a7b0bf);font-size:12px;line-height:1;opacity:0;cursor:pointer}
.emoji-picker-tile:hover .emoji-picker-favorite,.emoji-picker-tile:focus-within .emoji-picker-favorite,.emoji-picker-favorite.active{opacity:1}
.emoji-picker-favorite.active{color:#facc15}
.emoji-picker-favorite:hover{color:#facc15;background:var(--bg-hover,#292d36)}
.emoji-picker-sentinel{height:1px}
.emoji-picker-submit{display:block;width:100%;margin-top:8px;padding:9px 5px 2px;border:0;border-top:1px solid var(--border,#3b4150);background:transparent;color:var(--accent-2,var(--accent,#8b5cf6));font:inherit;font-size:12px;text-align:center;cursor:pointer}

.emoji-submit-dialog{box-sizing:border-box;width:min(360px,calc(100vw - 28px));max-height:calc(100dvh - 28px);margin:auto;padding:20px;border:1px solid var(--border,#3b4150);border-radius:14px;background:var(--bg-2,#181c24);color:var(--text,#eef1f6);box-shadow:0 24px 70px rgba(0,0,0,.6);overflow:auto}
.emoji-submit-dialog::backdrop{background:rgba(0,0,0,.72)}
.emoji-submit-dialog [hidden]{display:none!important}
.emoji-submit-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.emoji-submit-head h2{margin:0;font-size:19px}
.emoji-submit-close{border:0;background:transparent;color:inherit;font-size:24px;line-height:1;cursor:pointer}
.emoji-submit-note,.emoji-submit-signin,.emoji-submit-access{margin:8px 0 16px;color:var(--text-2,#b8c0cc);font-size:13px;line-height:1.45}
.emoji-submit-form{display:grid;gap:8px}
.emoji-submit-form label{font-size:12px;font-weight:700}
.emoji-submit-form input{box-sizing:border-box;width:100%;min-width:0;padding:10px;border:1px solid var(--border,#3b4150);border-radius:8px;background:var(--bg,#0a0c0f);color:var(--text,#eef1f6);font:inherit;font-size:13px}
.emoji-submit-form input[type=file]{padding:8px;font-size:12px}
.emoji-submit-form small{margin:-3px 0 5px;color:var(--text-dim,#a7b0bf);font-size:11px}
.emoji-submit-preview{width:56px;height:56px;object-fit:contain}
.emoji-submit-status{margin:0;font-size:12px;line-height:1.4}
.emoji-submit-action{margin-top:5px;padding:10px 14px;border:0;border-radius:8px;background:var(--accent,#8b5cf6);color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.emoji-submit-action:disabled{opacity:.55;cursor:wait}

.emoji-editor-source{display:none!important}
.emoji-editor{position:relative;display:block;box-sizing:border-box;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;overflow-y:auto;cursor:text}
.emoji-editor.is-empty::before{content:attr(data-placeholder);position:absolute;color:var(--text-3,#8b93a5);pointer-events:none}
.emoji-editor.is-disabled{opacity:.5;cursor:not-allowed}
.emoji-editor .composer-emoji{display:inline-block;width:1.375em;height:1.375em;object-fit:contain;vertical-align:-.3em;margin:0 1px;user-select:all}

.emoji-suggestions{position:fixed;z-index:10009;box-sizing:border-box;max-height:330px;overflow-y:auto;overflow-x:hidden;padding:5px;border:1px solid var(--border,#3b4150);border-radius:10px;background:var(--bg-2,#181c24);box-shadow:0 12px 34px rgba(0,0,0,.45)}
.emoji-suggestion{display:flex;align-items:center;gap:9px;width:100%;height:38px;padding:4px 9px;border:0;border-radius:7px;background:transparent;color:var(--text,#eef1f6);text-align:left;font-size:13px;cursor:pointer}
.emoji-suggestion-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emoji-suggestion.active,.emoji-suggestion:hover{background:color-mix(in srgb,var(--accent,#8b5cf6) 20%,transparent)}
.emoji-suggestion img{display:block;width:27px;height:27px;object-fit:contain}
.emoji-suggestion-char{display:grid;place-items:center;width:27px;height:27px;font-size:22px;line-height:1}

.ticket-reactions,.staff-channel-reactions{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:5px}
.ticket-reactions .reaction-chip,.staff-channel-reactions .reaction-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border:1px solid var(--border,#3b4150);border-radius:999px;background:var(--bg-2,#181c24);color:var(--text,#eef1f6);cursor:pointer}
.ticket-reactions .reaction-chip.active,.staff-channel-reactions .reaction-chip.active{border-color:var(--accent,#8b5cf6)}
.reaction-chip .reaction-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:20px;width:max-content;height:20px;line-height:1}
.ticket-reactions .reaction-icon svg,.staff-channel-reactions .reaction-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.reaction-icon .chat-emoji,.ticket-reactions .chat-emoji,.staff-channel-reactions .chat-emoji{display:block;width:20px;height:20px;object-fit:contain}
.reaction-unicode{display:block;font-size:18px;line-height:20px;white-space:nowrap}
@media (hover:none) and (pointer:coarse){.emoji-picker-panel{left:0!important;right:0;top:auto!important;bottom:0;width:100%!important;max-height:min(68vh,530px);border-radius:18px 18px 0 0;padding-bottom:max(12px,env(safe-area-inset-bottom))}}
@media (hover:none), (pointer:coarse), (max-width:700px){.emoji-picker-items{grid-template-columns:repeat(5,minmax(0,1fr))}.emoji-picker-choice{width:calc(100% - 28px)}.emoji-picker-favorite{opacity:1;top:8px;width:28px;height:28px;font-size:18px}}
@media (max-width:700px){.chat-input-wrap .composer-emoji-btn{flex-basis:42px;width:42px;height:42px}}
.composer-emoji-btn svg{width:20px;height:20px;flex:none}
