/* Shared emoji studio. Portalled outside .app so dialogs and all modules use one skin. */
.emoji-popover{box-sizing:border-box;width:400px;height:560px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:16px;gap:0;background:radial-gradient(ellipse at 95% 0%,#e72d4d13,transparent 48%),linear-gradient(145deg,#181820f8,#0b0e14fc)!important;border:1px solid #f45b7560!important;border-radius:20px;color:#f2edf6!important;font-family:'Proxima Nova',Arial,sans-serif;box-shadow:inset 0 1px 0 #ffffff12,0 25px 90px #000b,0 0 35px #ed254517!important;overflow:hidden;isolation:isolate;overscroll-behavior:contain}
.emoji-popover__head{padding:0 0 14px;gap:12px}
.emoji-popover__head>div{display:grid;gap:5px}
.emoji-popover__head small{font-size:8px;letter-spacing:.19em;font-weight:600;color:#f37591}
.emoji-popover__head strong{font-size:17px;font-weight:650;letter-spacing:-.025em;color:#faf5fc}
.emoji-popover__head>button{display:grid;place-items:center;flex:none;width:30px;height:30px;border:1px solid #ffffff19;border-radius:9px;background:#ffffff04;color:#b2aabc;font-size:22px;line-height:1;cursor:pointer}
.emoji-popover__head>button:hover{color:#fff;background:#ff3b5815;border-color:#ff577440}
.emoji-popover .emoji-tools{display:flex;align-items:center;gap:8px;margin:0 0 12px;flex-shrink:0}
.emoji-popover .emoji-search{display:flex;align-items:center;gap:9px;flex:1;min-width:0;height:44px;box-sizing:border-box;padding:0 12px;border:1px solid #ffffff20;border-radius:11px;background:#070a10;box-shadow:inset 0 2px 6px #0004}
.emoji-popover .emoji-search>span{font-size:19px;color:#9c93ab}
.emoji-popover .emoji-search input{box-sizing:border-box;width:100%;min-width:0;min-height:0;height:40px;margin:0;padding:0;background:transparent!important;border:0!important;box-shadow:none!important;outline:0;color:#eee7f5!important;font:400 12px 'Proxima Nova',Arial,sans-serif}
.emoji-popover .emoji-search:focus-within{border-color:#f44c6d;box-shadow:0 0 0 3px #f63d5910}
.emoji-popover .tone-current{display:grid;place-items:center;width:40px;height:44px;background:#0b0e15;border:1px solid #ffffff20;border-radius:11px;cursor:pointer}
.emoji-popover .tone-swatch{display:block;width:19px;height:19px;border-radius:50%;background:var(--tone-color);box-shadow:inset 0 1px 2px #ffffff66,0 2px 6px #0006;border:1px solid #ffffff2a}
.emoji-popover .tone-menu{position:absolute;right:0;top:48px;z-index:4;padding:8px;gap:5px;background:#171820;border:1px solid #ff5c7650;border-radius:12px;box-shadow:0 12px 35px #0009}
.emoji-popover .tone-menu.open{display:flex}
.emoji-popover .tone-choice{display:grid;place-items:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer}
.emoji-popover .tone-choice.selected{background:#ff335b14;border-color:#ff597577}
.emoji-popover .emoji-tabs{display:flex;gap:4px;overflow-x:auto;flex-shrink:0;min-height:44px;align-items:center;padding:0 0 7px;margin:0;border-bottom:1px solid #ffffff12;scrollbar-width:thin;scrollbar-color:#513044 transparent}
.emoji-popover .emoji-tabs button{flex:0 0 32px;display:grid;place-items:center;width:32px;height:32px;padding:5px;border:1px solid transparent;border-radius:9px;color:#b6aabb;background:transparent;cursor:pointer;font-size:16px}
.emoji-popover .emoji-tabs button[data-tab=all]{font-size:10px;font-weight:700;text-transform:uppercase}
.emoji-popover .emoji-tabs button img{width:20px;height:20px;object-fit:contain;opacity:.75}
.emoji-popover .emoji-tabs button:hover{background:#ffffff07}
.emoji-popover .emoji-tabs button.active{background:#ee315022;border-color:#ff54745c;color:#ff8da6;box-shadow:none}
.emoji-popover .emoji-tabs button.active img{opacity:1}
.emoji-popover .emoji-section-label{display:flex;align-items:center;min-height:33px;padding:6px 1px;box-sizing:border-box;font-size:9px;font-weight:600;letter-spacing:.1em;color:#a59aac;flex-shrink:0}
.emoji-popover .emoji-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:40px;align-content:start;gap:4px;overflow-y:auto;overflow-x:hidden;min-height:64px;flex:1;padding:2px 4px 8px 0;scrollbar-width:thin;scrollbar-color:#48303e transparent;overscroll-behavior:contain}
.emoji-popover .emoji-option{display:grid;place-items:center;width:100%;height:40px;min-width:0;padding:7px;background:transparent;border:1px solid transparent;border-radius:10px;cursor:pointer;font-size:25px;transition:background-color .12s,border-color .12s}
.emoji-popover .emoji-option img{width:27px;height:27px;object-fit:contain;pointer-events:none}
.emoji-popover .emoji-option:hover,.emoji-popover .emoji-option:focus-visible{background:#ffffff09;border-color:#ff577462;outline:0}
.emoji-popover .emoji-option[aria-pressed=true]{background:#f3345420;border-color:#ff577477}
.emoji-popover .emoji-load-more{margin:5px 0;padding:7px;background:#ffffff04;border:1px solid #ffffff16;border-radius:9px;color:#c7bbce;font-size:10px;cursor:pointer;flex-shrink:0}
.emoji-popover [hidden]{display:none!important}
.emoji-popover .emoji-empty{grid-column:1/-1;text-align:center;align-self:center;padding:24px 18px;color:#aea2b8;font-size:12px;line-height:1.7}
.emoji-popover .emoji-inspector{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:12px 0 10px;margin-top:6px;border-top:1px solid #ffffff12;min-width:0}
.emoji-inspector__art{display:grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid #ffffff13;background:#ffffff03;border-radius:11px}
.emoji-inspector__art img{width:28px;height:28px;object-fit:contain}
.emoji-inspector>div{flex:1;min-width:0}
.emoji-inspector strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#e9dfef;font-weight:600}
.emoji-inspector small{display:block;font-size:10px;color:#95899e;margin-top:5px}
.emoji-inspector kbd{padding:4px 6px;border:1px solid #ffffff15;border-radius:5px;font-size:10px;color:#9a8aa5}
.emoji-popover .emoji-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0;padding-top:7px;border-top:1px solid #ffffff08}
.emoji-popover .emoji-clear{width:auto;padding:6px 9px;margin:0;border:1px solid #ffffff15;border-radius:8px;background:#ffffff03;color:#b5a9be;font-size:10px;cursor:pointer}
.emoji-popover .emoji-clear:hover{border-color:#ff577455;color:#ff9db0}
.emoji-footer>small{font-size:8px;color:#84768d;text-align:right}
.emoji-footer a{color:#94869d;text-decoration:none}
.emoji-footer a:hover{text-decoration:underline}
.emoji-popover :is(button,a):focus-visible{outline:2px solid #ff6b8c;outline-offset:1px}
.app .emoji-trigger{min-height:48px;border-radius:12px;background:linear-gradient(130deg,#12151d,#090c11);border-color:#ffffff25;gap:12px;padding:9px 13px}
.app .emoji-trigger:hover{border-color:#ff55736b;background:#15121b}
.app .emoji-trigger[aria-expanded=true]{border-color:#ff557388;box-shadow:0 0 0 3px #ff315414}
.app .emoji-trigger__label{color:#c0b7cb;font-size:12px}
.app .emoji-trigger__chev{margin-left:auto;color:#9e8ba8}
@media(max-width:500px){.emoji-popover{width:calc(100vw - 24px);right:auto;height:min(560px,calc(100dvh - 24px));padding:13px;border-radius:16px}.emoji-popover .emoji-grid{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:40px}}
@media(max-height:540px){.emoji-popover{padding:10px}.emoji-popover__head{padding-bottom:7px}.emoji-popover .emoji-inspector{display:none}.emoji-popover .emoji-tools{margin-bottom:6px}}
@media(prefers-reduced-motion:reduce){.emoji-popover *{transition:none!important}}
.app .emoji-trigger[aria-busy=true]{cursor:progress;border-color:#ff55736b}
.app .emoji-trigger[aria-busy=true] .emoji-trigger__label{color:#ffb2c3}
