.emoji-picker-wrap{position:relative;display:inline-block}
.emoji-picker-btn{background:none;border:1px solid #dee2e6;border-radius:4px;padding:4px 8px;cursor:pointer;color:#6c757d;font-size:18px;line-height:1;transition:background .15s}
.emoji-picker-btn:hover{background:#f8f9fa;border-color:#adb5bd}
.emoji-picker-panel{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:1050;width:340px;max-height:380px;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.15);overflow:hidden}
.emoji-picker-panel.show{display:flex;flex-direction:column}
.emoji-picker-search{padding:8px;border-bottom:1px solid #dee2e6}
.emoji-picker-search input{width:100%;padding:6px 10px;border:1px solid #dee2e6;border-radius:4px;font-size:13px;outline:none}
.emoji-picker-search input:focus{border-color:#86b7fe;box-shadow:0 0 0 2px rgba(13,110,253,.15)}
.emoji-picker-tabs{display:flex;border-bottom:1px solid #dee2e6;padding:0 4px;overflow-x:auto;flex-shrink:0}
.emoji-picker-tabs button{flex:0 0 auto;background:none;border:none;padding:6px 8px;cursor:pointer;font-size:16px;opacity:.5;transition:opacity .15s;border-bottom:2px solid transparent}
.emoji-picker-tabs button:hover{opacity:.8}
.emoji-picker-tabs button.active{opacity:1;border-bottom-color:#0d6efd}
.emoji-picker-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:8px;overflow-y:auto;flex:1;max-height:260px}
.emoji-picker-grid button{background:none;border:none;font-size:22px;padding:4px;cursor:pointer;border-radius:4px;transition:background .1s;line-height:1.2}
.emoji-picker-grid button:hover{background:#e9ecef}
.emoji-picker-grid button.empty{visibility:hidden;pointer-events:none}
.emoji-picker-footer{padding:6px 8px;border-top:1px solid #dee2e6;font-size:11px;color:#6c757d;text-align:center}
