.jm-expression-tools{display:flex;align-items:center;gap:8px;position:relative;margin:2px 0 4px}
.jm-expression-picker{position:relative;min-width:0}
.jm-panel .jm-expression-picker>summary{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:4px 0;font-size:.78rem;font-weight:500;color:var(--theme-accent,#087f75);list-style:none}
.jm-expression-picker>summary::-webkit-details-marker{display:none}
.jm-expression-picker:not([open])>.jm-expression-panel{display:none}
.jm-expression-panel{position:fixed;top:140px;left:12px;z-index:40;width:min(370px,calc(100vw - 72px));max-height:calc(100dvh - 160px);overflow-y:auto;overscroll-behavior:contain;padding:12px;background:var(--theme-surface,var(--paper,#fff));color:var(--ink);box-sizing:border-box;border-radius:12px}
.jm-expression-heading{display:flex;align-items:center;justify-content:space-between;gap:6px}
.jm-expression-heading>div{display:flex;gap:4px}
.jm-expression-panel button{border:0;background:transparent;color:inherit;box-shadow:none;cursor:pointer;min-height:36px;padding:6px 8px;font:inherit;font-size:.78rem}
.jm-expression-panel button[aria-pressed=true]{background:var(--theme-tint,#e7f5ef);color:var(--theme-accent,#087f75);border-radius:6px;font-weight:650}
.jm-panel .jm-expression-panel input{margin:6px 0;font-size:.85rem;min-height:38px;background:var(--theme-soft,#f1f5f5);border:0}
.jm-expression-categories{display:flex;gap:3px;overflow-x:auto;scrollbar-width:thin;padding:2px 0 6px;white-space:nowrap}
.jm-expression-categories button{flex:0 0 auto;font-size:.72rem;padding:4px 8px}
.jm-expression-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));max-height:220px;overflow-y:auto;overscroll-behavior:contain;gap:2px;align-items:start;scrollbar-width:thin}
.jm-expression-grid>button{display:grid;place-items:center;min-height:40px;font-size:1.6rem;line-height:1.2;padding:4px;border-radius:6px}
.jm-expression-grid>button:hover{background:var(--theme-soft,#eef4f2)}
.jm-expression-grid>p{grid-column:1/-1;font-size:.82rem;margin:12px 0}
.jm-expression-grid.jm-sticker-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:240px}
.jm-sticker-grid>button{font-size:.65rem;gap:2px;padding:2px 3px 6px;text-align:center}
.jm-sticker-art{display:block;width:100%;max-width:112px;height:auto;overflow:visible}
.jm-sticker-grid .jm-sticker-art{max-width:78px}
.jm-expression-panel>small{display:block;font-size:.64rem;margin-top:6px;color:var(--muted)}
.jm-panel .jm-expression-hint{font-size:.66rem;line-height:1.4;margin:4px 0 0;color:var(--muted)}
.jm-expression-status{font-size:.75rem;color:var(--theme-danger,#b64a4a)}
.jm-draft-stickers{display:flex;align-items:center;gap:4px;overflow-x:auto;max-height:125px;margin:2px 0}
.jm-draft-stickers[hidden]{display:none}.jm-draft-stickers .jm-sent-sticker{width:88px;font-size:.64rem;flex-shrink:0}
.jm-sent-sticker{display:inline-flex;vertical-align:middle;flex-direction:column;align-items:center;width:120px;max-width:100%;white-space:normal;text-align:center;font-size:.72rem;line-height:1.3;margin:2px 4px 4px 0;font-weight:600}
.jm-message-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}
.jm-sticker-float,.jm-sticker-glint,.jm-sticker-eye{transform-box:fill-box;transform-origin:center}
.jm-sticker-float{animation:jm-bob 1.3s ease-in-out 3}
.jm-motion-wave .jm-sticker-float,.jm-motion-sway .jm-sticker-float{animation-name:jm-sway}
.jm-motion-pop .jm-sticker-float,.jm-motion-bounce .jm-sticker-float{animation-name:jm-pop}
.jm-motion-pulse .jm-sticker-float,.jm-motion-blush .jm-sticker-float{animation-name:jm-pulse}
.jm-motion-wink .jm-sticker-eye{animation:jm-wink 1.3s ease-in-out 3}
.jm-motion-twirl .jm-sticker-glint{animation:jm-twirl 1.3s ease-in-out 3}
.jm-motion-kiss .jm-sticker-glint{animation:jm-pulse 1.3s ease-in-out 3}
@keyframes jm-bob{50%{transform:translateY(-5px)}}
@keyframes jm-sway{25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}
@keyframes jm-pop{40%{transform:translateY(-7px) scale(1.06)}65%{transform:scale(.97)}}
@keyframes jm-pulse{50%{transform:scale(1.08)}}
@keyframes jm-wink{40%,55%{transform:scaleY(.15)}}
@keyframes jm-twirl{to{transform:rotate(180deg)}}
@media(max-width:420px){.jm-expression-panel{width:min(340px,calc(100vw - 68px));padding:9px}.jm-expression-grid{grid-template-columns:repeat(6,minmax(0,1fr));max-height:200px}.jm-expression-picker>summary span{font-size:.72rem}}
@media(prefers-reduced-motion:reduce){.jm-sticker-art *{animation:none!important}}
