.zoni-widget { position: fixed; z-index: 950; right: 22px; bottom: 92px; font-family: Manrope, ui-sans-serif, system-ui, sans-serif; color: #173653; }
.zoni-launcher { position: relative; display: grid; width: 68px; height: 68px; place-items: center; padding: 0; border: 3px solid #fff; border-radius: 24px; background: linear-gradient(145deg,#087fc0,#105078 68%,#12304e); box-shadow: 0 12px 30px rgba(14,63,96,.26),0 0 0 1px rgba(20,123,172,.13); cursor: pointer; transition: transform .22s, box-shadow .22s; animation: zoni-float 3.8s ease-in-out infinite; }
.zoni-launcher:hover { transform: translateY(-4px) rotate(-3deg); box-shadow: 0 17px 34px rgba(14,63,96,.32); }
.zoni-launcher:focus-visible,.zoni-send:focus-visible,.zoni-chip:focus-visible { outline: 3px solid rgba(53,173,75,.4); outline-offset: 3px; }
.zoni-launcher::after { content: ''; position: absolute; top: 3px; right: 3px; width: 12px; height: 12px; border: 2px solid #fff; border-radius: 50%; background: #39b64b; }
.zoni-launcher-label { position: absolute; right: 76px; top: 50%; width: max-content; max-width: 155px; padding: 8px 12px; transform: translateY(-50%); border: 1px solid #dce9ed; border-radius: 999px; background: #fff; color: #234c62; box-shadow: 0 6px 20px rgba(17,54,82,.1); font-size: .875rem; font-weight: 800; }
.zoni-launcher:hover .zoni-launcher-label { color: #208a3c; }
.zoni-robot { position: relative; display: block; width: 42px; height: 42px; }
.zoni-antenna { position: absolute; z-index: 2; top: -3px; left: 19px; width: 4px; height: 9px; border-radius: 5px; background: #9bdb48; transform-origin: bottom; animation: zoni-antenna 2.4s ease-in-out infinite; }
.zoni-antenna::before { content: ''; position: absolute; top: -5px; left: -2px; width: 8px; height: 8px; border-radius: 50%; background: #a6e455; box-shadow: 0 0 10px #a6e455; }
.zoni-head { position: absolute; inset: 5px 2px 1px; border: 2px solid #c5f0e6; border-radius: 14px 14px 16px 16px; background: linear-gradient(145deg,#f8ffff,#dff8f2); box-shadow: inset 0 -4px 0 rgba(0,124,192,.09),0 3px 8px rgba(0,0,0,.13); }
.zoni-face { position: absolute; inset: 6px 5px 7px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border-radius: 9px; background: linear-gradient(150deg,#123b5c,#0c2c49); }
.zoni-eyes { display: flex; gap: 8px; transition: transform .24s ease; }
.zoni-eyes i { display: block; width: 5px; height: 7px; border-radius: 50%; background: #72e1d2; box-shadow: 0 0 7px rgba(114,225,210,.8); animation: zoni-blink 4.7s infinite; transition: width .24s ease,height .24s ease,border-radius .24s ease,transform .24s ease; }
.zoni-mouth { width: 10px; height: 4px; border-bottom: 2px solid #9bdb48; border-radius: 0 0 9px 9px; transition: all .2s; }
.zoni-widget.is-happy .zoni-mouth { width: 13px; height: 6px; }
.zoni-widget.is-thinking .zoni-eyes { transform: translateY(-1px) rotate(-10deg); }
.zoni-widget.is-thinking .zoni-mouth { width: 5px; border-bottom-width: 2px; }
.zoni-widget.is-talking .zoni-mouth { animation: zoni-talk .24s ease-in-out infinite alternate; }
.zoni-panel { position: absolute; right: 0; bottom: 84px; display: flex; width: min(390px,calc(100vw - 32px)); height: min(610px,calc(100dvh - 170px)); min-height: 410px; flex-direction: column; overflow: hidden; border: 1px solid #dbe8ed; border-radius: 24px; background: #fff; box-shadow: 0 24px 70px rgba(11,43,70,.25); transform-origin: bottom right; animation: zoni-pop .2s ease-out; }
.zoni-panel[hidden] { display: none; }
.zoni-headbar { display: flex; align-items: center; gap: 12px; padding: 15px 16px; border-bottom: 1px solid #e5edf0; background: linear-gradient(110deg,#f0f9ee,#fff 72%); }
.zoni-avatar { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; border-radius: 16px; background: #123653; }
.zoni-avatar .zoni-robot { transform: scale(.88); }
.zoni-head-copy { min-width: 0; flex: 1; }
.zoni-head-copy strong { display: block; color: #163957; font-size: 14px; font-weight: 800; }
.zoni-head-copy small { display: flex; align-items: center; gap: 6px; margin-top: 3px; color: #6d8799; font-size: .875rem; }
.zoni-online-dot { width: 7px; height: 7px; border-radius: 50%; background: #39b64b; box-shadow: 0 0 0 3px rgba(57,182,75,.12); }
.zoni-close { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #dce8ed; border-radius: 50%; background: #fff; color: #678094; font-size: 21px; cursor: pointer; }
.zoni-close:hover { border-color: #b8d9c1; color: #27883d; }
.zoni-context { padding: 8px 16px; border-bottom: 1px solid #edf2f3; background: #fbfcfc; color: #8295a2; font-size: .875rem; line-height: 1.4; }
.zoni-context strong { color: #26833a; font-weight: 800; }
.zoni-messages { display: flex; flex: 1; flex-direction: column; gap: 12px; overflow-y: auto; padding: 16px; scroll-behavior: smooth; }
.zoni-message { max-width: 91%; animation: zoni-message-in .22s ease-out; }
.zoni-message-bubble { padding: 11px 13px; border: 1px solid #e3ecef; border-radius: 4px 17px 17px 17px; background: #f4f8f9; color: #405f75; font-size: .875rem; line-height: 1.55; white-space: pre-line; }
.zoni-message-user { align-self: flex-end; }
.zoni-message-user .zoni-message-bubble { border-color: #d2ebd2; border-radius: 17px 4px 17px 17px; background: #eff8ed; color: #205d31; }
.zoni-message-actions { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0 0 4px; }
.zoni-chip { display: inline-flex; min-height: 34px; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid #cfe6d0; border-radius: 999px; background: #fff; color: #247a37; font: inherit; font-size: .875rem; font-weight: 800; text-decoration: none; cursor: pointer; transition: background .18s,border-color .18s,transform .18s; }
.zoni-chip:hover { transform: translateY(-1px); border-color: #35ad4b; background: #eff8ed; }
.zoni-quick-replies { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 14px 11px; }
.zoni-typing { display: flex; width: max-content; align-items: center; gap: 4px; padding: 10px 13px; border: 1px solid #e3ecef; border-radius: 4px 15px 15px 15px; background: #f4f8f9; }
.zoni-typing i { width: 6px; height: 6px; border-radius: 50%; background: #56b967; animation: zoni-dots .8s ease-in-out infinite alternate; }
.zoni-typing i:nth-child(2) { animation-delay: .16s; }.zoni-typing i:nth-child(3) { animation-delay: .32s; }
.zoni-compose { display: flex; align-items: center; gap: 9px; padding: 12px; border-top: 1px solid #e7eef0; background: #fff; }
.zoni-input { width: 100%; min-width: 0; height: 44px; padding: 0 14px; border: 1px solid #dce8ed; border-radius: 999px; background: #f8fafb; color: #173653; font: inherit; font-size: .875rem; outline: none; }
.zoni-input:focus { border-color: #35ad4b; box-shadow: 0 0 0 3px rgba(53,173,75,.12); }
.zoni-send { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border: 0; border-radius: 50%; background: #32ad4c; color: #fff; font-size: 20px; cursor: pointer; box-shadow: 0 6px 15px rgba(53,173,75,.2); transition: transform .18s,background .18s; }
.zoni-send:hover { transform: translateY(-2px); background: #278c3c; }
.zoni-send:disabled { opacity: .55; cursor: wait; }
.zoni-disclaimer { padding: 0 15px 10px; background: #fff; color: #92a1ab; font-size: .875rem; line-height: 1.4; text-align: center; }
@keyframes zoni-float { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(1.5deg); } }
@keyframes zoni-antenna { 0%,100% { transform: rotate(0); } 40% { transform: rotate(22deg); } 65% { transform: rotate(-18deg); } }
@keyframes zoni-blink { 0%,43%,47%,100% { transform: scaleY(1); } 45% { transform: scaleY(.66); } }
@keyframes zoni-talk { to { transform: scaleY(.45); } }
@keyframes zoni-pop { from { opacity: 0; transform: scale(.96) translateY(9px); } to { opacity: 1; transform: scale(1) translateY(0); } }
@keyframes zoni-message-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes zoni-dots { to { opacity: .35; transform: translateY(-3px); } }
@media (max-width: 540px) {
  .zoni-widget { right: 15px; bottom: 76px; }
  .zoni-launcher { width: 62px; height: 62px; border-radius: 22px; }
  .zoni-launcher-label { display: none; }
  .zoni-panel { position: fixed; right: 10px; bottom: 148px; width: calc(100vw - 20px); height: min(620px,calc(100dvh - 168px)); min-height: min(410px,calc(100dvh - 168px)); border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .zoni-widget *, .zoni-widget *::before, .zoni-widget *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* The mascot floats on its own; the former WhatsApp launcher is removed. */
.zoni-widget { --zoni-shell:#f2fffb; --zoni-face:#123b5c; --zoni-eyes:#72e1d2; --zoni-accent:#9bdb48; --zoni-bubble:#f4f8f9; --zoni-bubble-text:#405f75; --zoni-size:88px; }
.zoni-widget[hidden] { display: none !important; }
.zoni-launcher { width: calc(var(--zoni-size) + 12px); height: calc(var(--zoni-size) + 12px); border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.zoni-launcher:hover { box-shadow: none; }
.zoni-launcher::after { display: none; }
.zoni-launcher .zoni-robot { width: var(--zoni-size); height: var(--zoni-size); }
.zoni-launcher-label { right: calc(var(--zoni-size) + 13px); max-width: 175px; padding: 9px 14px; transition: opacity .2s,transform .2s; }
.zoni-launcher-label.is-changing { opacity: .35; transform: translateY(-50%) translateY(3px); }
.zoni-antenna { left: 47%; width: 6px; height: 15px; background: var(--zoni-accent); }
.zoni-antenna::before { left: -3px; width: 12px; height: 12px; background: var(--zoni-accent); box-shadow: 0 0 10px color-mix(in srgb,var(--zoni-accent),transparent 28%); }
.zoni-head { inset: 13% 4% 4%; border: 3px solid color-mix(in srgb,var(--zoni-shell),var(--zoni-accent) 18%); border-radius: 29px 29px 32px 32px; background: linear-gradient(145deg,#fff,var(--zoni-shell) 70%); box-shadow: inset 0 -6px 0 rgba(0,124,192,.08),0 5px 13px rgba(0,0,0,.16); }
.zoni-face { inset: 15% 13% 14%; gap: 8%; border-radius: 20px; background: linear-gradient(150deg,var(--zoni-face),color-mix(in srgb,var(--zoni-face),#071c31 30%)); }
.zoni-eyes i { width: 8px; height: 10px; background: var(--zoni-eyes); box-shadow: 0 0 8px color-mix(in srgb,var(--zoni-eyes),transparent 18%); }
.zoni-mouth { width: 16px; height: 6px; border-bottom: 3px solid var(--zoni-accent); }
.zoni-widget[data-expression="curious"] .zoni-eyes,.zoni-admin-preview[data-expression="curious"] .zoni-eyes,.zoni-expression-card[data-expression="curious"] .zoni-eyes { transform: rotate(-10deg) scale(1.08); }
.zoni-widget[data-expression="happy"] .zoni-mouth,.zoni-admin-preview[data-expression="happy"] .zoni-mouth { width: 24px; height: 11px; }
.zoni-widget[data-expression="curious"] .zoni-mouth,.zoni-admin-preview[data-expression="curious"] .zoni-mouth,.zoni-expression-card[data-expression="curious"] .zoni-mouth { width: 8px; height: 10px; border: 2px solid var(--zoni-accent); border-radius: 50%; }
.zoni-admin-preview[data-expression="curious"] .zoni-eyes { transform: rotate(-10deg) scale(1.08); }
.zoni-admin-preview[data-expression="curious"] .zoni-mouth { width: 8px; height: 10px; border: 2px solid var(--zoni-accent); border-radius: 50%; }
.zoni-widget[data-expression="surprised"] .zoni-eyes i,.zoni-admin-preview[data-expression="surprised"] .zoni-eyes i,.zoni-expression-card[data-expression="surprised"] .zoni-eyes i { width: 10px; height: 13px; }
.zoni-widget[data-expression="surprised"] .zoni-mouth,.zoni-admin-preview[data-expression="surprised"] .zoni-mouth,.zoni-expression-card[data-expression="surprised"] .zoni-mouth { width: 9px; height: 9px; border: 2px solid var(--zoni-accent); border-radius: 50%; }
.zoni-admin-preview[data-expression="surprised"] .zoni-eyes i { width: 10px; height: 13px; }
.zoni-admin-preview[data-expression="surprised"] .zoni-mouth { width: 9px; height: 9px; border: 2px solid var(--zoni-accent); border-radius: 50%; }
.zoni-widget[data-expression="thinking"] .zoni-eyes,.zoni-admin-preview[data-expression="thinking"] .zoni-eyes,.zoni-expression-card[data-expression="thinking"] .zoni-eyes { transform: translateY(-2px) rotate(-12deg); }
.zoni-widget[data-expression="thinking"] .zoni-mouth,.zoni-admin-preview[data-expression="thinking"] .zoni-mouth,.zoni-expression-card[data-expression="thinking"] .zoni-mouth { width: 11px; border-radius: 0; }
.zoni-admin-preview[data-expression="thinking"] .zoni-eyes { transform: translateY(-2px) rotate(-12deg); }
.zoni-admin-preview[data-expression="thinking"] .zoni-mouth { width: 11px; border-radius: 0; }
.zoni-widget[data-expression="sleepy"] .zoni-eyes i,.zoni-admin-preview[data-expression="sleepy"] .zoni-eyes i,.zoni-expression-card[data-expression="sleepy"] .zoni-eyes i { height: 4px; transform: scaleY(.55); }
.zoni-widget[data-expression="sleepy"] .zoni-mouth,.zoni-admin-preview[data-expression="sleepy"] .zoni-mouth,.zoni-expression-card[data-expression="sleepy"] .zoni-mouth { width: 10px; height: 4px; border-bottom-width: 2px; }
.zoni-admin-preview[data-expression="sleepy"] .zoni-eyes i { height: 4px; transform: scaleY(.55); }
.zoni-admin-preview[data-expression="sleepy"] .zoni-mouth { width: 10px; height: 4px; border-bottom-width: 2px; }
.zoni-widget.is-happy .zoni-mouth,.zoni-widget.is-joy .zoni-mouth { width: 23px; height: 10px; }
.zoni-widget.is-joy .zoni-launcher { animation: zoni-joy .74s cubic-bezier(.2,.8,.2,1); }
.zoni-widget.is-joy .zoni-eyes i { animation: zoni-blink .65s 1; }
.zoni-panel { bottom: calc(var(--zoni-size) + 19px); }
.zoni-avatar .zoni-robot { width: 40px; height: 40px; }
.zoni-avatar { border-radius: 0; background: transparent; }
.zoni-message-bubble { background: var(--zoni-bubble); color: var(--zoni-bubble-text); }
@keyframes zoni-joy { 0%,100% { transform: translateY(0) rotate(0) scale(1); } 20% { transform: translateY(-9px) rotate(-8deg) scale(1.1); } 42% { transform: translateY(0) rotate(8deg) scale(1.06); } 64% { transform: translateY(-5px) rotate(-5deg) scale(1.08); } }

.zoni-admin-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(260px,.75fr); gap: 18px; align-items: start; }
.zoni-admin-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; padding: 22px; }
.admin-panel.zoni-admin-form { overflow: visible; }
.zoni-admin-form > label { display: grid; gap: 7px; color: #49667d; font-size: .875rem; font-weight: 800; }
.zoni-admin-form .span-all { grid-column: 1/-1; }
.zoni-color-field { position: relative; }
.zoni-color-control { position: relative; display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 11px 6px 7px; border: 1px solid #dce8ed; border-radius: 16px; background: #fff; transition: border-color .18s,box-shadow .18s; }
.zoni-color-control:focus-within,.zoni-color-control.is-open { border-color: #35ad4b; box-shadow: 0 0 0 3px rgba(53,173,75,.1); }
.zoni-color-control.is-open { z-index: 100; }
.zoni-color-swatch { display: grid; flex: 0 0 38px; width: 38px; height: 34px; place-items: center; padding: 4px; border: 1px solid #e2eaf0; border-radius: 12px; background: #f6faf8; cursor: pointer; }
.zoni-color-swatch i { display: block; width: 100%; height: 100%; border-radius: 8px; background: var(--picker-color); box-shadow: inset 0 0 0 1px rgba(18,54,83,.12); }
.zoni-color-value { width: 100%; min-width: 0; padding: 0; border: 0 !important; outline: 0; background: transparent !important; color: #456176 !important; font: inherit !important; font-size: .875rem !important; font-weight: 700 !important; text-transform: uppercase; }
.zoni-color-control small { flex: 0 0 auto; color: #8194a1; font-size: .875rem; font-weight: 700; letter-spacing: .04em; }
.zoni-color-popover { position: absolute; top: calc(100% + 9px); left: 0; z-index: 120; width: min(270px,calc(100vw - 48px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 14px; border: 1px solid #dce8ed; border-radius: 20px; background: #fff; box-shadow: 0 18px 45px rgba(18,54,83,.2); }
.zoni-color-control.opens-up .zoni-color-popover { top: auto; bottom: calc(100% + 9px); }
.zoni-color-control.opens-left .zoni-color-popover { right: 0; left: auto; }
.zoni-color-popover[hidden] { display: none; }
.zoni-color-spectrum { position: relative; height: 150px; overflow: hidden; border: 1px solid rgba(18,54,83,.08); border-radius: 14px; background: linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,hsl(var(--picker-hue),100%,50%)); cursor: crosshair; touch-action: none; }
.zoni-color-spectrum.is-dragging { cursor: grabbing; }
.zoni-color-spectrum > i { position: absolute; width: 13px; height: 13px; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 1px 5px rgba(18,54,83,.5); transform: translate(-50%,-50%); pointer-events: none; }
.zoni-color-hue-wrap { display: grid; gap: 7px; margin-top: 13px; color: #58748a; font-size: .875rem; font-weight: 700; }
.zoni-color-hue-wrap input { width: 100%; height: 12px; margin: 0; appearance: none; border-radius: 999px; background: linear-gradient(90deg,#f44,#ff0,#4d5,#4df,#45f,#f4d,#f44); cursor: pointer; }
.zoni-color-hue-wrap input::-webkit-slider-thumb { width: 17px; height: 17px; appearance: none; border: 3px solid #fff; border-radius: 50%; background: #35ad4b; box-shadow: 0 1px 5px rgba(18,54,83,.3); }
.zoni-color-hue-wrap input::-moz-range-thumb { width: 12px; height: 12px; border: 3px solid #fff; border-radius: 50%; background: #35ad4b; box-shadow: 0 1px 5px rgba(18,54,83,.3); }
.zoni-antenna-custom-fields .zoni-color-hue-wrap input[type="range"] { height: 18px; padding: 0; border: 0; appearance: none; -webkit-appearance: none; background: transparent; }
.zoni-antenna-custom-fields .zoni-color-hue-wrap input[type="range"]::-webkit-slider-runnable-track { height: 12px; border: 0; border-radius: 999px; background: linear-gradient(90deg,#f44 0%,#ff0 17%,#4d5 34%,#4df 51%,#45f 68%,#f4d 85%,#f44 100%); }
.zoni-antenna-custom-fields .zoni-color-hue-wrap input[type="range"]::-moz-range-track { height: 12px; border: 0; border-radius: 999px; background: linear-gradient(90deg,#f44 0%,#ff0 17%,#4d5 34%,#4df 51%,#45f 68%,#f4d 85%,#f44 100%); }
.zoni-antenna-custom-fields .zoni-color-hue-wrap input[type="range"]::-moz-range-progress { height: 12px; border-radius: 999px; background: transparent; }
.zoni-antenna-custom-fields .zoni-color-hue-wrap input[type="range"]::-webkit-slider-thumb { width: 17px; height: 17px; margin-top: -2.5px; appearance: none; -webkit-appearance: none; border: 3px solid #fff; border-radius: 50%; background: #35ad4b; box-shadow: 0 1px 5px rgba(18,54,83,.3); }
.zoni-antenna-custom-fields .zoni-color-hue-wrap input[type="range"]::-moz-range-thumb { width: 12px; height: 12px; border: 3px solid #fff; border-radius: 50%; background: #35ad4b; box-shadow: 0 1px 5px rgba(18,54,83,.3); }
.zoni-color-popover-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 11px; border-top: 1px solid #edf2f4; color: #8194a1; font-size: .875rem; }
.zoni-color-popover-footer button { padding: 8px 15px; border: 0; border-radius: 999px; background: #35ad4b; color: #fff; font: inherit; font-size: .875rem; font-weight: 800; cursor: pointer; }
.zoni-color-popover-footer button:hover { background: #27983d; }
.zoni-admin-form select,.zoni-admin-form textarea,.zoni-admin-form input[type="range"] { width: 100%; }
.zoni-admin-form select,.zoni-admin-form textarea { padding: 11px 12px; border: 1px solid #dce8ed; border-radius: 12px; background: #fff; color: #173653; font: inherit; font-size: .875rem; }
.zoni-admin-form textarea { min-height: 112px; resize: vertical; line-height: 1.6; }
.zoni-switch-row { display: flex !important; min-height: 58px; align-items: center; justify-content: space-between; padding: 11px 14px; border: 1px solid #dce8ed; border-radius: 14px; background: #f8fbfc; }
.zoni-switch-row span { display: grid; gap: 2px; }.zoni-switch-row small { color: #8295a2; font-size: .875rem; font-weight: 500; }
.zoni-switch-row input { width: 19px; height: 19px; accent-color: #35ad4b; }
.zoni-size-label { display: flex !important; flex-flow: row wrap; align-items: center; justify-content: space-between; }
.zoni-size-label input[type="range"] { flex: 0 0 100%; accent-color: #35ad4b; }
.zoni-admin-actions { display: flex; grid-column: 1/-1; flex-wrap: wrap; gap: 9px; }
.zoni-admin-preview { display: grid; min-height: 300px; align-content: center; justify-items: center; gap: 15px; overflow: hidden; padding: 25px; border: 1px solid #dce8ed; border-radius: 20px; background: radial-gradient(circle at 50% 43%,#e9f6fb,#f8fbfc 65%); text-align: center; }
.zoni-preview-title { color: #173653; font-size: 14px; font-weight: 800; }.zoni-preview-line { max-width: 30ch; color: #6d8799; font-size: .875rem; line-height: 1.55; }
.zoni-admin-note { grid-column: 1/-1; margin: 0; color: #8194a1; font-size: .875rem; line-height: 1.55; }

/* Let Zoni's speech use the colors configured for her character. */
.zoni-launcher-label {
  border: 1px solid color-mix(in srgb,var(--zoni-accent),#fff 56%);
  border-radius: 16px 16px 5px 16px;
  background: linear-gradient(135deg,color-mix(in srgb,var(--zoni-shell),#fff 18%),#fff);
  color: var(--zoni-bubble-text);
  box-shadow: 0 8px 22px color-mix(in srgb,var(--zoni-face),transparent 84%);
  line-height: 1.45;
  transition: background .35s ease,border-color .35s ease,color .35s ease,opacity .2s,transform .2s;
}
.zoni-launcher-label::after {
  content: '';
  position: absolute;
  right: -6px;
  top: calc(50% - 5px);
  width: 10px;
  height: 10px;
  border-top: 1px solid color-mix(in srgb,var(--zoni-accent),#fff 56%);
  border-right: 1px solid color-mix(in srgb,var(--zoni-accent),#fff 56%);
  background: var(--zoni-shell);
  transform: rotate(45deg);
}
.zoni-widget.is-joy .zoni-launcher-label { background: linear-gradient(135deg,color-mix(in srgb,var(--zoni-accent),#fff 74%),var(--zoni-shell)); }
.zoni-widget.is-thinking .zoni-launcher-label { background: linear-gradient(135deg,color-mix(in srgb,var(--zoni-face),#fff 92%),var(--zoni-shell)); }
.zoni-widget.is-talking .zoni-launcher-label { animation: zoni-speech-talk .45s ease-in-out 2 alternate; }
.zoni-message-bubble {
  border-color: color-mix(in srgb,var(--zoni-accent),#fff 66%);
  background: linear-gradient(145deg,color-mix(in srgb,var(--zoni-bubble),var(--zoni-shell) 25%),var(--zoni-bubble));
  box-shadow: 0 3px 10px color-mix(in srgb,var(--zoni-face),transparent 94%);
}
.zoni-message-bot .zoni-message-bubble { border-radius: 5px 17px 17px 17px; }
.zoni-typing { border-color: color-mix(in srgb,var(--zoni-accent),#fff 66%); background: color-mix(in srgb,var(--zoni-shell),#fff 24%); }

/* Keep the header robot compact; launcher proportions are intentionally larger. */
.zoni-avatar .zoni-robot { position: relative; width: 40px; height: 40px; transform: none; }
.zoni-avatar .zoni-antenna { top: 1px; left: 47%; width: 3px; height: 6px; }
.zoni-avatar .zoni-antenna::before { top: -4px; left: -2px; width: 7px; height: 7px; }
.zoni-avatar .zoni-head { inset: 19% 5% 5%; border-width: 2px; border-radius: 12px 12px 14px 14px; }
.zoni-avatar .zoni-face { inset: 15% 12% 13%; gap: 3px; border-radius: 8px; }
.zoni-avatar .zoni-eyes { gap: 5px; }
.zoni-avatar .zoni-eyes i { width: 4px; height: 5px; }
.zoni-avatar .zoni-mouth { width: 8px; height: 4px; border-bottom-width: 2px; }

/* Product cards keep the catalog's original visual language inside a swipeable chat carousel. */
.zoni-message-with-plans { width: 100%; max-width: 100%; }
.zoni-message-with-plans .zoni-message-bubble { max-width: 100%; }
.zoni-plan-carousel { width: 100%; margin-top: 9px; }
.zoni-plan-viewport { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; scroll-snap-type: x mandatory; border-radius: 19px; }
.zoni-plan-viewport::-webkit-scrollbar { display: none; }
.zoni-plan-track { display: flex; gap: 10px; }
.zoni-plan-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
.zoni-plan-slide .product-card { width: 100%; max-width: none; min-width: 0; min-height: 0; margin: 0; padding: 20px 17px 17px; }
.zoni-plan-slide .product-heading { padding-right: 53px; }
.zoni-plan-slide .product-badge { max-width: 76px; white-space: normal; text-align: center; }
.zoni-plan-slide .product-heading-copy { min-width: 0; }
.zoni-plan-slide .product-type { font-size: .875rem; letter-spacing: .1em; }
.zoni-plan-slide .product-card h3 { overflow-wrap: anywhere; font-size: 17px; }
.zoni-plan-slide .product-sub { min-height: 0; font-size: .875rem; }
.zoni-plan-slide .product-badge { font-size: .875rem; }
.zoni-plan-slide .product-price strong { font-size: clamp(22px,6vw,29px); }
.zoni-plan-slide .product-price span { font-size: .875rem; }
.zoni-plan-slide .product-features { display: grid; gap: 6px; margin: 13px 0; font-size: .875rem; }
.zoni-plan-slide .product-features li:before { font-size: .875rem; }
.zoni-plan-slide .product-add { width: 100%; justify-content: center; padding: 10px 12px; font-size: .875rem; }
.zoni-plan-controls { display: flex; align-items: center; justify-content: center; gap: 13px; margin-top: 8px; }
.zoni-plan-arrow { display: grid; width: 28px; height: 28px; place-items: center; padding: 0 0 2px; border: 1px solid color-mix(in srgb,var(--zoni-accent),#fff 52%); border-radius: 50%; background: var(--zoni-shell); color: var(--zoni-face); font-size: 20px; line-height: 1; cursor: pointer; }
.zoni-plan-arrow:disabled { opacity: .38; cursor: default; }
.zoni-plan-position { min-width: 38px; color: #71899a; font-size: .875rem; font-weight: 800; text-align: center; }
@keyframes zoni-speech-talk { to { transform: translateY(-50%) scale(1.035); } }

@media (max-width: 920px) { .zoni-admin-layout { grid-template-columns: minmax(0,1fr); }.zoni-admin-preview { grid-row: 1; min-height: 235px; } }
@media (max-width: 540px) {
  .zoni-widget { --zoni-size:76px; right: 10px; bottom: 78px; }
  .zoni-launcher-label { right: calc(var(--zoni-size) + 8px); max-width: 135px; font-size: .875rem; }
  .zoni-panel { bottom: 92px; height: min(610px,calc(100dvh - 116px)); min-height: min(410px,calc(100dvh - 116px)); }
  .zoni-admin-form { grid-template-columns: minmax(0,1fr); padding: 16px; }.zoni-admin-form .span-all,.zoni-admin-actions,.zoni-admin-note { grid-column: auto; }
}

/* Match the administration preview and emotion samples to the live mascot. */
.zoni-admin-preview .zoni-robot,.zoni-expression-card .zoni-robot { position: relative; display: block; width: var(--zoni-size,88px); height: var(--zoni-size,88px); }
.zoni-admin-preview .zoni-antenna,.zoni-expression-card .zoni-antenna { top: -3px; left: 47%; width: 6px; height: 15px; background: var(--zoni-accent); }
.zoni-admin-preview .zoni-antenna::before,.zoni-expression-card .zoni-antenna::before { left: -3px; width: 12px; height: 12px; background: var(--zoni-accent); }
.zoni-admin-preview .zoni-head,.zoni-expression-card .zoni-head { inset: 13% 4% 4%; border: 3px solid color-mix(in srgb,var(--zoni-shell),var(--zoni-accent) 18%); border-radius: 29px 29px 32px 32px; background: linear-gradient(145deg,#fff,var(--zoni-shell) 70%); }
.zoni-admin-preview .zoni-face,.zoni-expression-card .zoni-face { inset: 15% 13% 14%; gap: 8%; border-radius: 20px; background: linear-gradient(150deg,var(--zoni-face),color-mix(in srgb,var(--zoni-face),#071c31 30%)); }
.zoni-admin-preview .zoni-eyes,.zoni-expression-card .zoni-eyes { gap: 8%; }
.zoni-admin-preview .zoni-eyes i,.zoni-expression-card .zoni-eyes i { width: 9%; height: 12%; background: var(--zoni-eyes); }
.zoni-admin-preview .zoni-mouth,.zoni-expression-card .zoni-mouth { width: 18%; height: 7%; border-bottom: 3px solid var(--zoni-accent); }
.zoni-expression-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.zoni-expression-intro { display: grid; gap: 4px; margin: 0 0 14px; }
.zoni-expression-intro strong { color: #173653; font-size: 14px; }
.zoni-expression-intro span { color: #72889a; font-size: .875rem; line-height: 1.5; }
.zoni-expression-card { --zoni-size:54px; display: grid; min-width: 0; justify-items: center; gap: 5px; padding: 13px 7px 10px; border: 1px solid #dce8ed; border-radius: 15px; background: #fff; color: #173653; text-align: center; cursor: pointer; transition: transform .18s,border-color .18s,background .18s,box-shadow .18s; }
.zoni-expression-card:hover { transform: translateY(-2px); border-color: #91cda0; box-shadow: 0 7px 18px rgba(19,55,89,.08); }
.zoni-expression-card.selected { border-color: #39ad50; background: #f1f9ef; box-shadow: inset 0 0 0 1px rgba(57,173,80,.14); }
.zoni-expression-card .zoni-robot { animation: zoni-emotion-float 2.8s ease-in-out infinite; }
.zoni-expression-card[data-expression="laugh"] .zoni-mouth { animation: zoni-laugh-mouth .6s ease-in-out infinite alternate; }
.zoni-expression-card[data-expression="happy"] .zoni-eyes i { animation: zoni-happy-eyes 1.4s ease-in-out infinite; }
.zoni-expression-card[data-expression="surprised"] .zoni-mouth { animation: zoni-surprise 1.8s ease-in-out infinite; }
.zoni-expression-card[data-expression="sleepy"] .zoni-eyes i { animation: zoni-sleep 2s ease-in-out infinite alternate; }
.zoni-expression-card strong { font-size: .875rem; }
.zoni-expression-card small { min-height: 26px; color: #8295a2; font-size: .875rem; line-height: 1.35; }
.zoni-expression-apply { color: #27883d; font-size: .875rem; font-weight: 800; }
.zoni-widget[data-expression="laugh"] .zoni-mouth,.zoni-admin-preview[data-expression="laugh"] .zoni-mouth,.zoni-expression-card[data-expression="laugh"] .zoni-mouth { width: 22% !important; height: 13% !important; border: 2px solid var(--zoni-accent) !important; border-radius: 45% 45% 55% 55%; background: color-mix(in srgb,var(--zoni-accent),transparent 68%); }
.zoni-widget[data-expression="angry"] .zoni-eyes i,.zoni-admin-preview[data-expression="angry"] .zoni-eyes i,.zoni-expression-card[data-expression="angry"] .zoni-eyes i { transform: rotate(18deg) scaleY(.72); border-radius: 2px 2px 50% 50%; }
.zoni-widget[data-expression="angry"] .zoni-eyes i:last-child,.zoni-admin-preview[data-expression="angry"] .zoni-eyes i:last-child,.zoni-expression-card[data-expression="angry"] .zoni-eyes i:last-child { transform: rotate(-18deg) scaleY(.72); }
.zoni-widget[data-expression="angry"] .zoni-mouth,.zoni-admin-preview[data-expression="angry"] .zoni-mouth,.zoni-expression-card[data-expression="angry"] .zoni-mouth { height: 8% !important; border: 0 !important; border-top: 3px solid var(--zoni-accent) !important; border-radius: 50% 50% 0 0; }
.zoni-widget[data-expression="sad"] .zoni-eyes i,.zoni-admin-preview[data-expression="sad"] .zoni-eyes i,.zoni-expression-card[data-expression="sad"] .zoni-eyes i { transform: translateY(2px) scaleY(.82); }
.zoni-widget[data-expression="sad"] .zoni-mouth,.zoni-admin-preview[data-expression="sad"] .zoni-mouth,.zoni-expression-card[data-expression="sad"] .zoni-mouth { width: 14% !important; height: 9% !important; border: 0 !important; border-top: 3px solid var(--zoni-accent) !important; border-radius: 50% 50% 0 0; transform: translateY(2px); }
.zoni-widget[data-expression="playful"] .zoni-eyes i:last-child,.zoni-admin-preview[data-expression="playful"] .zoni-eyes i:last-child,.zoni-expression-card[data-expression="playful"] .zoni-eyes i:last-child { height: 4% !important; transform: scaleY(.5); }
.zoni-widget[data-expression="playful"] .zoni-mouth,.zoni-admin-preview[data-expression="playful"] .zoni-mouth,.zoni-expression-card[data-expression="playful"] .zoni-mouth { width: 21% !important; transform: rotate(-8deg); }
.zoni-widget.is-sad .zoni-launcher-label { background: linear-gradient(135deg,#eaf2f7,#fff); border-color: #c8dce7; }
.zoni-admin-preview[data-expression="happy"] .zoni-mouth { width: 26%; height: 12%; }
.zoni-admin-preview[data-expression="curious"] .zoni-mouth { width: 9%; height: 11%; }
.zoni-admin-preview[data-expression="surprised"] .zoni-eyes i { width: 11%; height: 16%; }
.zoni-admin-preview[data-expression="thinking"] .zoni-mouth { width: 12%; }
.zoni-admin-preview[data-expression="sleepy"] .zoni-eyes i { height: 5%; }
.zoni-admin-preview[data-expression="friendly"] .zoni-mouth { width: 18%; height: 7%; }
.zoni-admin-preview[data-expression="friendly"] .zoni-eyes i,.zoni-expression-card[data-expression="friendly"] .zoni-eyes i { width: 9%; height: 12%; }
.zoni-admin-preview[data-expression="happy"] .zoni-mouth { width: 24px; height: 11px; }
.zoni-admin-preview[data-expression="playful"] .zoni-eyes i:last-child,.zoni-expression-card[data-expression="playful"] .zoni-eyes i:last-child { height: 4px !important; }
.zoni-admin-tabs { display: flex; gap: 7px; padding: 5px; border: 1px solid #dce8ed; border-radius: 14px; background: #f3f7f8; }
.zoni-admin-tab { min-height: 38px; padding: 7px 14px; border: 0; border-radius: 10px; background: transparent; color: #6f8799; font: inherit; font-size: .875rem; font-weight: 800; cursor: pointer; }
.zoni-admin-tab.active { background: #fff; color: #21823a; box-shadow: 0 2px 9px rgba(20,57,83,.08); }
.zoni-admin-pane[hidden] { display: none !important; }
.zoni-admin-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.zoni-admin-fields > label { display: grid; gap: 7px; color: #49667d; font-size: .875rem; font-weight: 800; }
.zoni-admin-fields .span-all { grid-column: 1/-1; }
.zoni-admin-preview .zoni-robot { flex: 0 0 auto; }
.zoni-widget[data-expression="laugh"] .zoni-mouth { animation: zoni-laugh-mouth .6s ease-in-out infinite alternate; }
.zoni-widget[data-expression="happy"] .zoni-eyes i { animation: zoni-happy-eyes 1.4s ease-in-out infinite; }
.zoni-widget[data-expression="surprised"] .zoni-mouth { animation: zoni-surprise 1.8s ease-in-out infinite; }
.zoni-widget[data-expression="sleepy"] .zoni-eyes i { animation: zoni-sleep 2s ease-in-out infinite alternate; }
.zoni-widget { bottom: 18px; }
.zoni-panel { bottom: calc(var(--zoni-size) + 27px); }
@keyframes zoni-emotion-float { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes zoni-laugh-mouth { to { transform: scaleY(.55) scaleX(1.1); } }
@keyframes zoni-happy-eyes { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(.68); } }
@keyframes zoni-surprise { 0%,100% { transform: scale(1); } 50% { transform: scale(1.22); } }
@keyframes zoni-sleep { to { transform: scaleY(.46); } }
@media (max-width: 540px) { .zoni-widget { bottom: 14px; } .zoni-panel { bottom: calc(var(--zoni-size) + 25px); } .zoni-expression-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .zoni-admin-fields { grid-template-columns: minmax(0,1fr); } .zoni-admin-fields .span-all { grid-column: auto; } }

/* Rich answer cards keep guidance visual instead of leaving long plain-text replies. */
.zoni-message-with-visuals { width: 100%; max-width: 100%; }
.zoni-message-with-visuals .zoni-message-bubble { max-width: 100%; }

/* Keep the eyes readable in the small expression samples and animate each mood. */
.zoni-admin-preview .zoni-eyes i,
.zoni-expression-card .zoni-eyes i { flex: 0 0 auto; width: clamp(5px,calc(var(--zoni-size,88px)*.09),12px); height: clamp(7px,calc(var(--zoni-size,88px)*.115),14px); }
.zoni-admin-preview[data-expression="friendly"] .zoni-eyes i,
.zoni-expression-card[data-expression="friendly"] .zoni-eyes i { width: clamp(5px,calc(var(--zoni-size,88px)*.09),12px); height: clamp(7px,calc(var(--zoni-size,88px)*.115),14px); }
.zoni-admin-preview[data-expression="friendly"] .zoni-robot,
.zoni-widget[data-expression="friendly"] .zoni-launcher .zoni-robot { animation: zoni-emotion-float 3s ease-in-out infinite; }
.zoni-admin-preview[data-expression="happy"] .zoni-robot,
.zoni-widget[data-expression="happy"] .zoni-launcher .zoni-robot { animation: zoni-happy-bounce 1.05s ease-in-out infinite; }
.zoni-admin-preview[data-expression="curious"] .zoni-robot,
.zoni-widget[data-expression="curious"] .zoni-launcher .zoni-robot { animation: zoni-curious-tilt 2.1s ease-in-out infinite; }
.zoni-admin-preview[data-expression="surprised"] .zoni-robot,
.zoni-widget[data-expression="surprised"] .zoni-launcher .zoni-robot { animation: zoni-surprised-bob 1.25s ease-in-out infinite; }
.zoni-admin-preview[data-expression="thinking"] .zoni-robot,
.zoni-widget[data-expression="thinking"] .zoni-launcher .zoni-robot { animation: zoni-thinking-sway 2.4s ease-in-out infinite; }
.zoni-admin-preview[data-expression="sleepy"] .zoni-robot,
.zoni-widget[data-expression="sleepy"] .zoni-launcher .zoni-robot { animation: zoni-sleepy-nod 2.8s ease-in-out infinite; }
.zoni-admin-preview[data-expression="laugh"] .zoni-robot,
.zoni-widget[data-expression="laugh"] .zoni-launcher .zoni-robot { animation: zoni-laugh-bounce .72s ease-in-out infinite; }
.zoni-admin-preview[data-expression="angry"] .zoni-robot,
.zoni-widget[data-expression="angry"] .zoni-launcher .zoni-robot { animation: zoni-angry-shake .42s ease-in-out infinite; }
.zoni-admin-preview[data-expression="sad"] .zoni-robot,
.zoni-widget[data-expression="sad"] .zoni-launcher .zoni-robot { animation: zoni-sad-droop 3s ease-in-out infinite; }
.zoni-admin-preview[data-expression="playful"] .zoni-robot,
.zoni-widget[data-expression="playful"] .zoni-launcher .zoni-robot { animation: zoni-playful-wiggle 1.35s ease-in-out infinite; }
.zoni-expression-card[data-expression="friendly"] .zoni-robot { animation: zoni-emotion-float 3s ease-in-out infinite; }
.zoni-expression-card[data-expression="happy"] .zoni-robot { animation: zoni-happy-bounce 1.05s ease-in-out infinite; }
.zoni-expression-card[data-expression="curious"] .zoni-robot { animation: zoni-curious-tilt 2.1s ease-in-out infinite; }
.zoni-expression-card[data-expression="surprised"] .zoni-robot { animation: zoni-surprised-bob 1.25s ease-in-out infinite; }
.zoni-expression-card[data-expression="thinking"] .zoni-robot { animation: zoni-thinking-sway 2.4s ease-in-out infinite; }
.zoni-expression-card[data-expression="sleepy"] .zoni-robot { animation: zoni-sleepy-nod 2.8s ease-in-out infinite; }
.zoni-expression-card[data-expression="laugh"] .zoni-robot { animation: zoni-laugh-bounce .72s ease-in-out infinite; }
.zoni-expression-card[data-expression="angry"] .zoni-robot { animation: zoni-angry-shake .42s ease-in-out infinite; }
.zoni-expression-card[data-expression="sad"] .zoni-robot { animation: zoni-sad-droop 3s ease-in-out infinite; }
.zoni-expression-card[data-expression="playful"] .zoni-robot { animation: zoni-playful-wiggle 1.35s ease-in-out infinite; }
@keyframes zoni-happy-bounce { 0%,100% { transform: translateY(0) rotate(0); } 35% { transform: translateY(-3px) rotate(-2deg); } 68% { transform: translateY(0) rotate(2deg); } }
@keyframes zoni-curious-tilt { 0%,100% { transform: rotate(0); } 35%,65% { transform: rotate(-4deg) translateY(-1px); } }
@keyframes zoni-surprised-bob { 0%,100% { transform: translateY(0) scale(1); } 35% { transform: translateY(-2px) scale(1.03); } 55% { transform: translateY(0) scale(.99); } }
@keyframes zoni-thinking-sway { 0%,100% { transform: rotate(0); } 40%,65% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes zoni-sleepy-nod { 0%,100% { transform: translateY(0) rotate(0); } 55%,75% { transform: translateY(2px) rotate(2deg); } }
@keyframes zoni-laugh-bounce { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(-3deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes zoni-angry-shake { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-1px) rotate(-1.5deg); } 75% { transform: translateX(1px) rotate(1.5deg); } }
@keyframes zoni-sad-droop { 0%,100% { transform: translateY(1px) rotate(0); } 50% { transform: translateY(3px) rotate(2deg); } }
@keyframes zoni-playful-wiggle { 0%,100% { transform: rotate(0); } 25% { transform: rotate(3deg) translateY(-1px); } 55% { transform: rotate(-3deg); } }
@media (prefers-reduced-motion: reduce) {
  .zoni-admin-preview .zoni-robot,.zoni-expression-card .zoni-robot { animation: none !important; }
}

/* Seasonal items sit on top of the exact same head used by the live mascot. */
.zoni-admin-preview { overflow: visible; }
.zoni-accessory-fields { position: relative; z-index: 8; isolation: isolate; overflow: visible; }
.zoni-accessory-fields label { position: relative; }
.zoni-accessory-fields label:focus-within { z-index: 20; }
.zoni-accessory-fields select { position: relative; z-index: 1; min-height: 48px; cursor: pointer; }
.zoni-accessory-fields label:focus-within select { z-index: 21; }
.zoni-accessory { top: 0; left: 50%; width: 0; height: 0; transform: none; }
.zoni-accessory::before { position: absolute; top: calc(var(--zoni-size,88px)*-.31); left: 50%; display: block; width: max-content; transform: translateX(-50%); font-size: clamp(24px,calc(var(--zoni-size,88px)*.38),44px); line-height: 1; filter: drop-shadow(0 3px 3px rgba(15,49,75,.22)); }
.zoni-accessory::after { content: none !important; }
.zoni-antenna { z-index: 4; top: calc(var(--zoni-size,88px)*-.035); left: 50%; width: clamp(4px,calc(var(--zoni-size,88px)*.068),6px); height: clamp(9px,calc(var(--zoni-size,88px)*.17),15px); margin-left: calc(var(--zoni-size,88px)*-.034); border-radius: 99px; background: linear-gradient(90deg,color-mix(in srgb,var(--zoni-accent),#fff 28%),var(--zoni-accent) 55%,color-mix(in srgb,var(--zoni-accent),#173653 10%)); box-shadow: 0 1px 4px color-mix(in srgb,var(--zoni-accent),transparent 35%); }
.zoni-antenna::before { top: calc(var(--zoni-size,88px)*-.09); left: 50%; width: clamp(8px,calc(var(--zoni-size,88px)*.136),12px); height: clamp(8px,calc(var(--zoni-size,88px)*.136),12px); transform: translateX(-50%); border: 1px solid color-mix(in srgb,var(--zoni-accent),#fff 35%); background: radial-gradient(circle at 32% 28%,#fff 0 10%,color-mix(in srgb,var(--zoni-accent),#fff 35%) 22%,var(--zoni-accent) 68%); box-shadow: 0 2px 5px rgba(16,55,83,.2),0 0 9px color-mix(in srgb,var(--zoni-accent),transparent 20%); }
.zoni-widget[data-antenna="star"] .zoni-antenna::before,.zoni-admin-preview[data-antenna="star"] .zoni-antenna::before,.zoni-expression-card[data-antenna="star"] .zoni-antenna::before { content:'★'; top:calc(var(--zoni-size,88px)*-.14); left:50%; width:auto; height:auto; transform:translateX(-50%) rotate(7deg); border:0; background:none; color:#ffd047; font-size:clamp(15px,calc(var(--zoni-size,88px)*.24),21px); line-height:1; text-shadow:0 1px 0 #fff1b2,0 2px 4px rgba(93,58,0,.28); box-shadow:none; }
.zoni-widget[data-antenna="double"] .zoni-antenna::after,.zoni-admin-preview[data-antenna="double"] .zoni-antenna::after,.zoni-expression-card[data-antenna="double"] .zoni-antenna::after { content:''; position:absolute; top:calc(var(--zoni-size,88px)*-.08); left:clamp(6px,calc(var(--zoni-size,88px)*.09),8px); width:clamp(6px,calc(var(--zoni-size,88px)*.09),8px); height:clamp(6px,calc(var(--zoni-size,88px)*.09),8px); border:1px solid #dff7ff; border-radius:50%; background:radial-gradient(circle at 30% 28%,#fff,#68d2ff 48%,#1385c0); box-shadow:0 1px 4px rgba(20,93,134,.35),0 0 8px rgba(75,183,242,.55); }
.zoni-widget[data-antenna="ring"] .zoni-antenna::before,.zoni-admin-preview[data-antenna="ring"] .zoni-antenna::before,.zoni-expression-card[data-antenna="ring"] .zoni-antenna::before { content:''; top:calc(var(--zoni-size,88px)*-.105); left:50%; width:clamp(11px,calc(var(--zoni-size,88px)*.17),15px); height:clamp(11px,calc(var(--zoni-size,88px)*.17),15px); transform:translateX(-50%); border:clamp(2px,calc(var(--zoni-size,88px)*.034),3px) solid #55d8cb; border-radius:50%; background:radial-gradient(circle,#fff 0 17%,transparent 22%); box-shadow:inset 0 0 3px #fff,0 1px 4px rgba(16,55,83,.22),0 0 9px rgba(91,214,202,.6); }
.zoni-widget[data-antenna="bolt"] .zoni-antenna::before,.zoni-admin-preview[data-antenna="bolt"] .zoni-antenna::before,.zoni-expression-card[data-antenna="bolt"] .zoni-antenna::before { content:'⚡'; top:calc(var(--zoni-size,88px)*-.15); left:50%; width:auto; height:auto; transform:translateX(-50%) rotate(7deg); border:0; background:none; color:#ffca35; font-size:clamp(15px,calc(var(--zoni-size,88px)*.22),19px); line-height:1; text-shadow:0 1px 0 #fff3bd,0 2px 4px rgba(93,58,0,.28); box-shadow:none; }
.zoni-widget[data-antenna="sprout"] .zoni-antenna::before,.zoni-admin-preview[data-antenna="sprout"] .zoni-antenna::before,.zoni-expression-card[data-antenna="sprout"] .zoni-antenna::before { content:''; top:calc(var(--zoni-size,88px)*-.105); left:50%; width:clamp(6px,calc(var(--zoni-size,88px)*.102),9px); height:clamp(7px,calc(var(--zoni-size,88px)*.125),11px); transform:translateX(-85%) rotate(-42deg); border:1px solid #d9f5ce; border-radius:100% 0 100% 0; background:linear-gradient(145deg,#c7f579,#44b863 78%); box-shadow:0 1px 3px rgba(16,55,83,.2); }
.zoni-widget[data-antenna="sprout"] .zoni-antenna::after,.zoni-admin-preview[data-antenna="sprout"] .zoni-antenna::after,.zoni-expression-card[data-antenna="sprout"] .zoni-antenna::after { content:''; position:absolute; top:calc(var(--zoni-size,88px)*-.14); left:50%; width:clamp(5px,calc(var(--zoni-size,88px)*.09),8px); height:clamp(7px,calc(var(--zoni-size,88px)*.113),10px); transform:translateX(0) rotate(42deg); border:1px solid #e2f5cf; border-radius:0 100% 0 100%; background:linear-gradient(145deg,#b7ec55,#38a85a); box-shadow:0 1px 3px rgba(16,55,83,.2); }
.zoni-widget[data-antenna="classic"] .zoni-antenna::after,.zoni-admin-preview[data-antenna="classic"] .zoni-antenna::after,.zoni-expression-card[data-antenna="classic"] .zoni-antenna::after { content:none; }

.zoni-widget[data-festival="none"] .zoni-accessory,.zoni-admin-preview[data-festival="none"] .zoni-accessory,.zoni-expression-card[data-festival="none"] .zoni-accessory { display:none; }
.zoni-widget[data-festival="newyear"] .zoni-accessory,.zoni-admin-preview[data-festival="newyear"] .zoni-accessory,.zoni-expression-card[data-festival="newyear"] .zoni-accessory,
.zoni-widget[data-festival="reyes"] .zoni-accessory,.zoni-admin-preview[data-festival="reyes"] .zoni-accessory,.zoni-expression-card[data-festival="reyes"] .zoni-accessory,
.zoni-widget[data-festival="valentines"] .zoni-accessory,.zoni-admin-preview[data-festival="valentines"] .zoni-accessory,.zoni-expression-card[data-festival="valentines"] .zoni-accessory,
.zoni-widget[data-festival="spring"] .zoni-accessory,.zoni-admin-preview[data-festival="spring"] .zoni-accessory,.zoni-expression-card[data-festival="spring"] .zoni-accessory,
.zoni-widget[data-festival="childrens"] .zoni-accessory,.zoni-admin-preview[data-festival="childrens"] .zoni-accessory,.zoni-expression-card[data-festival="childrens"] .zoni-accessory,
.zoni-widget[data-festival="mothers"] .zoni-accessory,.zoni-admin-preview[data-festival="mothers"] .zoni-accessory,.zoni-expression-card[data-festival="mothers"] .zoni-accessory,
.zoni-widget[data-festival="fathers"] .zoni-accessory,.zoni-admin-preview[data-festival="fathers"] .zoni-accessory,.zoni-expression-card[data-festival="fathers"] .zoni-accessory,
.zoni-widget[data-festival="independence"] .zoni-accessory,.zoni-admin-preview[data-festival="independence"] .zoni-accessory,.zoni-expression-card[data-festival="independence"] .zoni-accessory,
.zoni-widget[data-festival="halloween"] .zoni-accessory,.zoni-admin-preview[data-festival="halloween"] .zoni-accessory,.zoni-expression-card[data-festival="halloween"] .zoni-accessory,
.zoni-widget[data-festival="dead"] .zoni-accessory,.zoni-admin-preview[data-festival="dead"] .zoni-accessory,.zoni-expression-card[data-festival="dead"] .zoni-accessory,
.zoni-widget[data-festival="posadas"] .zoni-accessory,.zoni-admin-preview[data-festival="posadas"] .zoni-accessory,.zoni-expression-card[data-festival="posadas"] .zoni-accessory,
.zoni-widget[data-festival="christmas"] .zoni-accessory,.zoni-admin-preview[data-festival="christmas"] .zoni-accessory,.zoni-expression-card[data-festival="christmas"] .zoni-accessory { display:block; }
.zoni-widget[data-festival="newyear"] .zoni-antenna,.zoni-admin-preview[data-festival="newyear"] .zoni-antenna,.zoni-expression-card[data-festival="newyear"] .zoni-antenna,
.zoni-widget[data-festival="reyes"] .zoni-antenna,.zoni-admin-preview[data-festival="reyes"] .zoni-antenna,.zoni-expression-card[data-festival="reyes"] .zoni-antenna,
.zoni-widget[data-festival="valentines"] .zoni-antenna,.zoni-admin-preview[data-festival="valentines"] .zoni-antenna,.zoni-expression-card[data-festival="valentines"] .zoni-antenna,
.zoni-widget[data-festival="spring"] .zoni-antenna,.zoni-admin-preview[data-festival="spring"] .zoni-antenna,.zoni-expression-card[data-festival="spring"] .zoni-antenna,
.zoni-widget[data-festival="childrens"] .zoni-antenna,.zoni-admin-preview[data-festival="childrens"] .zoni-antenna,.zoni-expression-card[data-festival="childrens"] .zoni-antenna,
.zoni-widget[data-festival="mothers"] .zoni-antenna,.zoni-admin-preview[data-festival="mothers"] .zoni-antenna,.zoni-expression-card[data-festival="mothers"] .zoni-antenna,
.zoni-widget[data-festival="fathers"] .zoni-antenna,.zoni-admin-preview[data-festival="fathers"] .zoni-antenna,.zoni-expression-card[data-festival="fathers"] .zoni-antenna,
.zoni-widget[data-festival="independence"] .zoni-antenna,.zoni-admin-preview[data-festival="independence"] .zoni-antenna,.zoni-expression-card[data-festival="independence"] .zoni-antenna,
.zoni-widget[data-festival="halloween"] .zoni-antenna,.zoni-admin-preview[data-festival="halloween"] .zoni-antenna,.zoni-expression-card[data-festival="halloween"] .zoni-antenna,
.zoni-widget[data-festival="dead"] .zoni-antenna,.zoni-admin-preview[data-festival="dead"] .zoni-antenna,.zoni-expression-card[data-festival="dead"] .zoni-antenna,
.zoni-widget[data-festival="posadas"] .zoni-antenna,.zoni-admin-preview[data-festival="posadas"] .zoni-antenna,.zoni-expression-card[data-festival="posadas"] .zoni-antenna,
.zoni-widget[data-festival="christmas"] .zoni-antenna,.zoni-admin-preview[data-festival="christmas"] .zoni-antenna,.zoni-expression-card[data-festival="christmas"] .zoni-antenna { visibility:hidden; }
.zoni-widget[data-festival="newyear"] .zoni-accessory::before,.zoni-admin-preview[data-festival="newyear"] .zoni-accessory::before,.zoni-expression-card[data-festival="newyear"] .zoni-accessory::before { content:'🎉'; }
.zoni-widget[data-festival="reyes"] .zoni-accessory::before,.zoni-admin-preview[data-festival="reyes"] .zoni-accessory::before,.zoni-expression-card[data-festival="reyes"] .zoni-accessory::before { content:'👑'; }
.zoni-widget[data-festival="valentines"] .zoni-accessory::before,.zoni-admin-preview[data-festival="valentines"] .zoni-accessory::before,.zoni-expression-card[data-festival="valentines"] .zoni-accessory::before { content:'💖'; }
.zoni-widget[data-festival="spring"] .zoni-accessory::before,.zoni-admin-preview[data-festival="spring"] .zoni-accessory::before,.zoni-expression-card[data-festival="spring"] .zoni-accessory::before { content:'🌸'; }
.zoni-widget[data-festival="childrens"] .zoni-accessory::before,.zoni-admin-preview[data-festival="childrens"] .zoni-accessory::before,.zoni-expression-card[data-festival="childrens"] .zoni-accessory::before { content:'🧸'; }
.zoni-widget[data-festival="mothers"] .zoni-accessory::before,.zoni-admin-preview[data-festival="mothers"] .zoni-accessory::before,.zoni-expression-card[data-festival="mothers"] .zoni-accessory::before { content:'💐'; }
.zoni-widget[data-festival="fathers"] .zoni-accessory::before,.zoni-admin-preview[data-festival="fathers"] .zoni-accessory::before,.zoni-expression-card[data-festival="fathers"] .zoni-accessory::before { content:'🧢'; }
.zoni-widget[data-festival="independence"] .zoni-accessory::before,.zoni-admin-preview[data-festival="independence"] .zoni-accessory::before,.zoni-expression-card[data-festival="independence"] .zoni-accessory::before { content:'🇲🇽'; }
.zoni-widget[data-festival="halloween"] .zoni-accessory::before,.zoni-admin-preview[data-festival="halloween"] .zoni-accessory::before,.zoni-expression-card[data-festival="halloween"] .zoni-accessory::before { content:'🎃'; }
.zoni-widget[data-festival="dead"] .zoni-accessory::before,.zoni-admin-preview[data-festival="dead"] .zoni-accessory::before,.zoni-expression-card[data-festival="dead"] .zoni-accessory::before { content:'💀'; }
.zoni-widget[data-festival="posadas"] .zoni-accessory::before,.zoni-admin-preview[data-festival="posadas"] .zoni-accessory::before,.zoni-expression-card[data-festival="posadas"] .zoni-accessory::before { content:'🪅'; }
.zoni-widget[data-festival="christmas"] .zoni-accessory::before,.zoni-admin-preview[data-festival="christmas"] .zoni-accessory::before,.zoni-expression-card[data-festival="christmas"] .zoni-accessory::before { content:'🎅'; }
.zoni-widget[data-festival]:not([data-festival="none"]) .zoni-accessory,.zoni-admin-preview[data-festival]:not([data-festival="none"]) .zoni-accessory,.zoni-expression-card[data-festival]:not([data-festival="none"]) .zoni-accessory { display:block; }
.zoni-widget[data-festival]:not([data-festival="none"]) .zoni-antenna,.zoni-admin-preview[data-festival]:not([data-festival="none"]) .zoni-antenna,.zoni-expression-card[data-festival]:not([data-festival="none"]) .zoni-antenna { visibility:hidden; }
.zoni-widget[data-festival="candelaria"] .zoni-accessory::before,.zoni-admin-preview[data-festival="candelaria"] .zoni-accessory::before,.zoni-expression-card[data-festival="candelaria"] .zoni-accessory::before { content:'🕯️'; }
.zoni-widget[data-festival="women"] .zoni-accessory::before,.zoni-admin-preview[data-festival="women"] .zoni-accessory::before,.zoni-expression-card[data-festival="women"] .zoni-accessory::before { content:'💜'; }
.zoni-widget[data-festival="easter"] .zoni-accessory::before,.zoni-admin-preview[data-festival="easter"] .zoni-accessory::before,.zoni-expression-card[data-festival="easter"] .zoni-accessory::before { content:'🐣'; }
.zoni-widget[data-festival="labor"] .zoni-accessory::before,.zoni-admin-preview[data-festival="labor"] .zoni-accessory::before,.zoni-expression-card[data-festival="labor"] .zoni-accessory::before { content:'⚙️'; }
.zoni-widget[data-festival="teachers"] .zoni-accessory::before,.zoni-admin-preview[data-festival="teachers"] .zoni-accessory::before,.zoni-expression-card[data-festival="teachers"] .zoni-accessory::before { content:'📚'; }
.zoni-widget[data-festival="revolution"] .zoni-accessory::before,.zoni-admin-preview[data-festival="revolution"] .zoni-accessory::before,.zoni-expression-card[data-festival="revolution"] .zoni-accessory::before { content:'🇲🇽'; }

/* The admin stage mirrors the floating launcher: speech bubble beside Zoni. */
.zoni-admin-preview { display:flex; min-height:300px; align-content:initial; align-items:flex-end; justify-content:flex-end; gap:14px; padding:25px; border-color:#e2e8ec; background:#fff; }
.zoni-admin-preview .zoni-preview-title { display:none; }
.zoni-admin-preview .zoni-preview-line { position:relative; order:1; align-self:flex-end; width:max-content; max-width:min(175px,calc(100% - var(--zoni-size,88px) - 26px)); margin:0 0 calc(var(--zoni-size,88px)*.17); padding:11px 14px 12px; border:1px solid color-mix(in srgb,var(--zoni-accent),#fff 48%); border-radius:18px; background:var(--zoni-bubble); color:var(--zoni-bubble-text); box-shadow:0 8px 20px rgba(16,55,83,.12); font-size:.875rem; font-weight:800; line-height:1.35; text-align:center; }
.zoni-admin-preview .zoni-preview-line::after { content:''; position:absolute; top:calc(50% - 6px); right:-7px; width:12px; height:12px; transform:rotate(45deg); border-top:1px solid color-mix(in srgb,var(--zoni-accent),#fff 48%); border-right:1px solid color-mix(in srgb,var(--zoni-accent),#fff 48%); background:var(--zoni-bubble); }
.zoni-admin-preview > .zoni-robot { order:2; }
.zoni-admin-preview { align-items:center; justify-content:center; }
.zoni-admin-preview .zoni-preview-line { align-self:center; margin-bottom:0; }
@media (max-width:540px) { .zoni-admin-preview { min-height:220px; gap:10px; padding:18px 13px; } .zoni-admin-preview .zoni-preview-line { max-width:min(175px,calc(100% - var(--zoni-size,88px) - 20px)); margin-bottom:0; padding:9px 11px 10px; font-size:.875rem; } }

/* ZONTEC green size slider with a clean, borderless track. */
.zoni-size-label input[type="range"] { height:18px; padding:0; border:0; border-radius:0; outline:0; background:transparent; accent-color:#32ad4c; appearance:none; -webkit-appearance:none; cursor:pointer; }
.zoni-size-label input[type="range"]::-webkit-slider-runnable-track { height:6px; border:1px solid #dce5e8; border-radius:999px; background:linear-gradient(90deg,#32ad4c 0 var(--range-progress,38.46%),#fff var(--range-progress,38.46%) 100%); box-shadow:none; }
.zoni-size-label input[type="range"]::-webkit-slider-thumb { width:16px; height:16px; margin-top:-5px; border:0; border-radius:50%; appearance:none; -webkit-appearance:none; background:#32ad4c; box-shadow:0 1px 4px rgba(24,101,46,.2); }
.zoni-size-label input[type="range"]::-moz-range-track { height:6px; border:1px solid #dce5e8; border-radius:999px; background:#fff; box-shadow:none; }
.zoni-size-label input[type="range"]::-moz-range-progress { height:6px; border:0; border-radius:999px; background:#32ad4c; }
.zoni-size-label input[type="range"]::-moz-range-thumb { width:16px; height:16px; border:0; border-radius:50%; background:#32ad4c; box-shadow:0 1px 4px rgba(24,101,46,.2); }
.zoni-admin-preview .zoni-eyes,.zoni-expression-card .zoni-eyes { gap:clamp(5px,calc(var(--zoni-size,88px)*.09),8px); }
.zoni-widget[data-expression="friendly"] .zoni-mouth,.zoni-admin-preview[data-expression="friendly"] .zoni-mouth,.zoni-expression-card[data-expression="friendly"] .zoni-mouth { width:20px; height:9px; border-bottom-width:3px; border-radius:0 0 11px 11px; }

/* Custom, scrollable selects stay open while their scrollbar is dragged. */
.zoni-admin-form { overflow:visible !important; }
.zoni-accessory-fields { z-index:20; }
.zoni-dropdown { position:relative; z-index:1; width:100%; }
.zoni-dropdown.open { z-index:60; }
.zoni-dropdown-trigger { display:flex; width:100%; min-height:48px; align-items:center; justify-content:space-between; gap:12px; padding:8px 11px 8px 17px; border:1px solid transparent; border-radius:999px; background:#edf6ed; color:#246d37; text-align:left; font:inherit; font-size:.875rem; font-weight:800; cursor:pointer; }
.zoni-dropdown-trigger:focus-visible { outline:2px solid rgba(50,173,76,.28); outline-offset:2px; }
.zoni-dropdown-trigger i { position:relative; display:block; width:30px; height:30px; flex:0 0 30px; border-radius:50%; background:#fff; }
.zoni-dropdown-trigger i::before { content:''; position:absolute; top:11px; left:11px; width:6px; height:6px; transform:rotate(45deg); border-right:1.5px solid #32ad4c; border-bottom:1.5px solid #32ad4c; }
.zoni-dropdown.open .zoni-dropdown-trigger i::before { top:13px; transform:rotate(225deg); }
.zoni-dropdown-menu { position:absolute; z-index:80; top:calc(100% + 8px); left:0; width:100%; max-height:min(270px,42vh); overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:6px; border:1px solid #e4ebef; border-radius:20px; background:#fff; box-shadow:0 16px 32px rgba(17,53,79,.18); scrollbar-color:#aeb8b9 #f7f9f9; scrollbar-width:thin; }
.zoni-dropdown-menu[hidden] { display:none; }
.zoni-dropdown-option { display:block; width:100%; min-height:42px; padding:8px 13px; border:0; border-radius:14px; background:transparent; color:#355a73; text-align:left; font:inherit; font-size:.875rem; cursor:pointer; }
.zoni-dropdown-option:hover,.zoni-dropdown-option:focus-visible { outline:none; background:#f2f8f2; color:#247a38; }
.zoni-dropdown-option[aria-selected="true"] { background:#e8f4e8; color:#178036; font-weight:800; }
.zoni-dropdown-menu::-webkit-scrollbar { width:9px; }
.zoni-dropdown-menu::-webkit-scrollbar-track { margin:8px 2px; border-radius:99px; background:#f7f9f9; }
.zoni-dropdown-menu::-webkit-scrollbar-thumb { border:2px solid #f7f9f9; border-radius:99px; background:#aeb8b9; }
.zoni-rich-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); gap: 9px; margin-top: 9px; }
.zoni-info-card { display: grid; min-width: 0; gap: 6px; padding: 11px; border: 1px solid #dce9ed; border-radius: 16px; background: linear-gradient(145deg,#fff,#f3f8fa); color: #173653; text-decoration: none; box-shadow: 0 4px 13px rgba(20,57,83,.06); transition: transform .18s,border-color .18s,box-shadow .18s; }
.zoni-info-card:hover { transform: translateY(-2px); border-color: #b6dfbf; box-shadow: 0 8px 18px rgba(20,57,83,.1); }
.zoni-info-card.tone-green { border-color: #d0e9cd; background: linear-gradient(145deg,#f7fcf4,#edf8eb); }
.zoni-info-top { display: flex; align-items: center; gap: 7px; }
.zoni-info-icon { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border-radius: 10px; background: #e8f5fb; color: #087fba; }
.tone-green .zoni-info-icon { background: #dff1db; color: #2da94d; }
.zoni-info-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.zoni-info-top small { color: #8297a6; font-size: .875rem; font-weight: 800; letter-spacing: .1em; }
.zoni-info-card > strong { color: #173653; font-size: .875rem; line-height: 1.35; }
.zoni-info-description { color: #71889a; font-size: .875rem; line-height: 1.45; }
.zoni-info-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.zoni-info-tags i { padding: 3px 6px; border: 1px solid rgba(114,151,166,.19); border-radius: 999px; background: rgba(255,255,255,.78); color: #557185; font-size: .875rem; font-style: normal; line-height: 1.2; }
.zoni-info-cta { display: flex; align-items: center; justify-content: space-between; margin-top: 2px; color: #26863d; font-size: .875rem; font-weight: 800; }
.zoni-info-cta::after { content: '↗'; font-size: .875rem; }

/* The speech label stays whole and the launcher hides while its chat is open. */
.zoni-launcher-label { top: 44%; border-radius: 18px; padding: 11px 14px 12px; overflow: visible; }
.zoni-launcher-label::after { border-radius: 0 2px 0 0; }
.zoni-widget.is-open .zoni-launcher { visibility: hidden; opacity: 0; pointer-events: none; }
.zoni-widget.is-open .zoni-launcher-label { display: none; }

/* Antenna parts use one centered vector frame in the live widget and admin previews. */
.zoni-antenna {
  position: absolute !important;
  z-index: 4;
  top: calc(14% - 34%) !important;
  left: 50% !important;
  width: 50% !important;
  height: 34% !important;
  margin: 0 !important;
  transform: translateX(-50%) !important;
  transform-origin: 50% 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  animation: none !important;
  pointer-events: none;
}
.zoni-antenna::before,.zoni-antenna::after { content: none !important; display: none !important; }
.zoni-antenna svg { display: block; width: 100%; height: 100%; overflow: visible; transform-origin: 50% 100%; animation: zoni-aerial-sway 3.2s ease-in-out infinite; }
.zoni-antenna,.zoni-antenna svg,.zoni-robot { overflow: visible !important; }
.zoni-antenna .aerial-stem { transform: scale(var(--zoni-antenna-stem-size,1)); transform-box: fill-box; transform-origin: 50% 100%; }
.zoni-antenna .aerial-tip { transform: scale(var(--zoni-antenna-tip-size,1)); transform-box: fill-box; transform-origin: 50% 100%; }
.zoni-antenna svg > g { display: none; }
.zoni-widget[data-antenna="classic"] .antenna-classic,.zoni-admin-preview[data-antenna="classic"] .antenna-classic,.zoni-expression-card[data-antenna="classic"] .antenna-classic,
.zoni-widget[data-antenna="star"] .antenna-star,.zoni-admin-preview[data-antenna="star"] .antenna-star,.zoni-expression-card[data-antenna="star"] .antenna-star,
.zoni-widget[data-antenna="double"] .antenna-double,.zoni-admin-preview[data-antenna="double"] .antenna-double,.zoni-expression-card[data-antenna="double"] .antenna-double,
.zoni-widget[data-antenna="ring"] .antenna-ring,.zoni-admin-preview[data-antenna="ring"] .antenna-ring,.zoni-expression-card[data-antenna="ring"] .antenna-ring,
.zoni-widget[data-antenna="bolt"] .antenna-bolt,.zoni-admin-preview[data-antenna="bolt"] .antenna-bolt,.zoni-expression-card[data-antenna="bolt"] .antenna-bolt,
.zoni-widget[data-antenna="sprout"] .antenna-sprout,.zoni-admin-preview[data-antenna="sprout"] .antenna-sprout,.zoni-expression-card[data-antenna="sprout"] .antenna-sprout { display: inline; }
@keyframes zoni-aerial-sway { 0%,100% { transform: rotate(0deg); } 35% { transform: rotate(4deg); } 68% { transform: rotate(-3deg); } }
@media (prefers-reduced-motion: reduce) { .zoni-antenna svg { animation: none; } }

/* Interchangeable aerials and seasonal headwear. */
.zoni-accessory { position: absolute; z-index: 5; top: -10%; left: 48%; display: none; width: 40%; height: 34%; transform: translateX(-10%) rotate(8deg); pointer-events: none; }
.zoni-avatar .zoni-accessory { display: none !important; }
.zoni-widget[data-festival="christmas"] .zoni-accessory,.zoni-admin-preview[data-festival="christmas"] .zoni-accessory,.zoni-expression-card[data-festival="christmas"] .zoni-accessory,
.zoni-widget[data-festival="halloween"] .zoni-accessory,.zoni-admin-preview[data-festival="halloween"] .zoni-accessory,.zoni-expression-card[data-festival="halloween"] .zoni-accessory,
.zoni-widget[data-festival="valentines"] .zoni-accessory,.zoni-admin-preview[data-festival="valentines"] .zoni-accessory,.zoni-expression-card[data-festival="valentines"] .zoni-accessory,
.zoni-widget[data-festival="newyear"] .zoni-accessory,.zoni-admin-preview[data-festival="newyear"] .zoni-accessory,.zoni-expression-card[data-festival="newyear"] .zoni-accessory { display: block; }
.zoni-widget[data-festival="christmas"] .zoni-accessory,.zoni-admin-preview[data-festival="christmas"] .zoni-accessory,.zoni-expression-card[data-festival="christmas"] .zoni-accessory { background: linear-gradient(to bottom,transparent 72%,#fff 72% 90%,transparent 90%); }
.zoni-widget[data-festival="christmas"] .zoni-accessory::before,.zoni-admin-preview[data-festival="christmas"] .zoni-accessory::before,.zoni-expression-card[data-festival="christmas"] .zoni-accessory::before { content:''; position:absolute; inset:0 9% 18%; background:linear-gradient(150deg,#ff5353,#d82036); clip-path:polygon(0 100%,100% 100%,76% 0); }
.zoni-widget[data-festival="christmas"] .zoni-accessory::after,.zoni-admin-preview[data-festival="christmas"] .zoni-accessory::after,.zoni-expression-card[data-festival="christmas"] .zoni-accessory::after { content:''; position:absolute; top:-9%; right:0; width:25%; aspect-ratio:1; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.12); }
.zoni-widget[data-festival="halloween"] .zoni-accessory,.zoni-admin-preview[data-festival="halloween"] .zoni-accessory,.zoni-expression-card[data-festival="halloween"] .zoni-accessory { background:linear-gradient(to bottom,transparent 72%,#30234a 72% 86%,transparent 86%); }
.zoni-widget[data-festival="halloween"] .zoni-accessory::before,.zoni-admin-preview[data-festival="halloween"] .zoni-accessory::before,.zoni-expression-card[data-festival="halloween"] .zoni-accessory::before { content:''; position:absolute; inset:0 18% 18%; background:linear-gradient(150deg,#56348c,#231638); clip-path:polygon(50% 0,100% 100%,0 100%); }
.zoni-widget[data-festival="halloween"] .zoni-accessory::after,.zoni-admin-preview[data-festival="halloween"] .zoni-accessory::after,.zoni-expression-card[data-festival="halloween"] .zoni-accessory::after { content:''; position:absolute; left:35%; bottom:32%; width:28%; height:8%; background:#ff9c35; border-radius:3px; }
.zoni-widget[data-festival="newyear"] .zoni-accessory,.zoni-admin-preview[data-festival="newyear"] .zoni-accessory,.zoni-expression-card[data-festival="newyear"] .zoni-accessory { background:linear-gradient(to bottom,transparent 72%,#ffe08a 72% 88%,transparent 88%); }
.zoni-widget[data-festival="newyear"] .zoni-accessory::before,.zoni-admin-preview[data-festival="newyear"] .zoni-accessory::before,.zoni-expression-card[data-festival="newyear"] .zoni-accessory::before { content:''; position:absolute; inset:0 15% 17%; background:linear-gradient(140deg,#ffe981,#ff9c35); clip-path:polygon(50% 0,100% 100%,0 100%); }
.zoni-widget[data-festival="newyear"] .zoni-accessory::after,.zoni-admin-preview[data-festival="newyear"] .zoni-accessory::after,.zoni-expression-card[data-festival="newyear"] .zoni-accessory::after { content:'✦'; position:absolute; top:-20%; right:-7%; color:#ffbf36; font-size:.875rem; }
.zoni-widget[data-festival="valentines"] .zoni-accessory::before,.zoni-admin-preview[data-festival="valentines"] .zoni-accessory::before,.zoni-expression-card[data-festival="valentines"] .zoni-accessory::before { content:'💚'; position:absolute; inset:-25% 0 auto; font-size:calc(var(--zoni-size,88px)*.3); line-height:1; filter:drop-shadow(0 2px 2px rgba(20,57,83,.18)); }
.zoni-widget[data-antenna="star"] .zoni-antenna::before,.zoni-admin-preview[data-antenna="star"] .zoni-antenna::before,.zoni-expression-card[data-antenna="star"] .zoni-antenna::before { top:-6px; left:-4px; width:14px; height:14px; border-radius:0; background:#ffd44c; clip-path:polygon(50% 0,61% 34%,98% 36%,70% 58%,80% 95%,50% 73%,20% 95%,30% 58%,2% 36%,39% 34%); }

/* Keep the chat-header mascot on the same face proportions as the live mascot.
   The compact instance gets its own reference size so expression details do not
   inherit the 88px launcher scale. */
.zoni-widget .zoni-headbar .zoni-avatar .zoni-robot {
  --zoni-size:40px;
  position:relative;
  display:block;
  flex:0 0 40px;
  width:40px !important;
  height:40px !important;
  min-width:40px;
  aspect-ratio:1;
  transform:none;
}
.zoni-widget .zoni-headbar .zoni-avatar .zoni-head {
  inset:13% 4% 4%;
  box-sizing:border-box;
  border-width:2px;
  border-radius:13px 13px 15px 15px;
}
.zoni-widget .zoni-headbar .zoni-avatar .zoni-face {
  inset:15% 13% 14%;
  gap:8%;
  border-radius:9px;
}
.zoni-avatar .zoni-eyes { gap:5px; }
.zoni-avatar .zoni-eyes i { width:5px; height:7px; }
.zoni-avatar .zoni-mouth { width:8px; height:4px; border-bottom-width:2px; }
.zoni-widget .zoni-headbar .zoni-avatar .zoni-antenna { top:-3px; left:47%; width:3px; height:7px; }
.zoni-widget .zoni-headbar .zoni-avatar .zoni-antenna::before { top:-4px; left:-2px; width:7px; height:7px; }
.zoni-widget[data-antenna="double"] .zoni-antenna::after,.zoni-admin-preview[data-antenna="double"] .zoni-antenna::after,.zoni-expression-card[data-antenna="double"] .zoni-antenna::after { content:''; position:absolute; top:-7px; left:8px; width:8px; height:8px; border-radius:50%; background:#4bb7f2; box-shadow:0 0 8px rgba(75,183,242,.55); }
.zoni-widget[data-antenna="ring"] .zoni-antenna::before,.zoni-admin-preview[data-antenna="ring"] .zoni-antenna::before,.zoni-expression-card[data-antenna="ring"] .zoni-antenna::before { top:-8px; left:-5px; width:15px; height:15px; border:3px solid #5bd6ca; border-radius:50%; background:transparent; box-shadow:0 0 8px rgba(91,214,202,.45); }
.zoni-widget[data-antenna="bolt"] .zoni-antenna::before,.zoni-admin-preview[data-antenna="bolt"] .zoni-antenna::before,.zoni-expression-card[data-antenna="bolt"] .zoni-antenna::before { top:-7px; left:-4px; width:13px; height:16px; border-radius:0; background:#ffd44c; clip-path:polygon(55% 0,100% 0,67% 40%,96% 40%,30% 100%,43% 55%,5% 55%); }
.zoni-widget[data-antenna="sprout"] .zoni-antenna::before,.zoni-admin-preview[data-antenna="sprout"] .zoni-antenna::before,.zoni-expression-card[data-antenna="sprout"] .zoni-antenna::before { top:-7px; left:-8px; width:11px; height:8px; border-radius:100% 0 100% 0; background:#40be77; transform:rotate(-25deg); box-shadow:7px -3px 0 -1px #86d943; }
.zoni-widget[data-antenna="classic"] .zoni-antenna::after,.zoni-admin-preview[data-antenna="classic"] .zoni-antenna::after,.zoni-expression-card[data-antenna="classic"] .zoni-antenna::after { content:none; }

.zoni-accessory-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.zoni-accessory-fields label { display:grid; gap:7px; color:#49667d; font-size:.875rem; font-weight:800; }
.zoni-accessory-fields select { width:100%; padding:11px 12px; border:1px solid #dce8ed; border-radius:12px; background:#fff; color:#173653; font:inherit; font-size:.875rem; }
.zoni-accessory-fields small { color:#8295a2; font-size:.875rem; font-weight:500; line-height:1.45; }
.zoni-widget.is-open .zoni-launcher { transition:opacity .15s,visibility .15s; }
@media (max-width: 540px) { .zoni-accessory-fields { grid-template-columns:minmax(0,1fr); } }

/* Full seasonal outfits wrap Zoni's shell instead of hovering as emoji stickers. */
.zoni-accessory {
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  transform: none !important;
  background: none !important;
  pointer-events: none;
  overflow: visible;
}
.zoni-accessory::before,.zoni-accessory::after { content: none !important; display: none !important; }
.zoni-avatar .zoni-accessory { display: block !important; }
.zoni-accessory svg { display: block; width: 100%; height: 100%; overflow: visible; }
.zoni-accessory svg > g { display: none; }
.zoni-widget[data-festival="newyear"] .outfit-newyear,.zoni-admin-preview[data-festival="newyear"] .outfit-newyear,.zoni-expression-card[data-festival="newyear"] .outfit-newyear,
.zoni-widget[data-festival="reyes"] .outfit-reyes,.zoni-admin-preview[data-festival="reyes"] .outfit-reyes,.zoni-expression-card[data-festival="reyes"] .outfit-reyes,
.zoni-widget[data-festival="candelaria"] .outfit-candelaria,.zoni-admin-preview[data-festival="candelaria"] .outfit-candelaria,.zoni-expression-card[data-festival="candelaria"] .outfit-candelaria,
.zoni-widget[data-festival="valentines"] .outfit-valentines,.zoni-admin-preview[data-festival="valentines"] .outfit-valentines,.zoni-expression-card[data-festival="valentines"] .outfit-valentines,
.zoni-widget[data-festival="women"] .outfit-women,.zoni-admin-preview[data-festival="women"] .outfit-women,.zoni-expression-card[data-festival="women"] .outfit-women,
.zoni-widget[data-festival="easter"] .outfit-easter,.zoni-admin-preview[data-festival="easter"] .outfit-easter,.zoni-expression-card[data-festival="easter"] .outfit-easter,
.zoni-widget[data-festival="spring"] .outfit-spring,.zoni-admin-preview[data-festival="spring"] .outfit-spring,.zoni-expression-card[data-festival="spring"] .outfit-spring,
.zoni-widget[data-festival="childrens"] .outfit-childrens,.zoni-admin-preview[data-festival="childrens"] .outfit-childrens,.zoni-expression-card[data-festival="childrens"] .outfit-childrens,
.zoni-widget[data-festival="labor"] .outfit-labor,.zoni-admin-preview[data-festival="labor"] .outfit-labor,.zoni-expression-card[data-festival="labor"] .outfit-labor,
.zoni-widget[data-festival="mothers"] .outfit-mothers,.zoni-admin-preview[data-festival="mothers"] .outfit-mothers,.zoni-expression-card[data-festival="mothers"] .outfit-mothers,
.zoni-widget[data-festival="teachers"] .outfit-teachers,.zoni-admin-preview[data-festival="teachers"] .outfit-teachers,.zoni-expression-card[data-festival="teachers"] .outfit-teachers,
.zoni-widget[data-festival="fathers"] .outfit-fathers,.zoni-admin-preview[data-festival="fathers"] .outfit-fathers,.zoni-expression-card[data-festival="fathers"] .outfit-fathers,
.zoni-widget[data-festival="independence"] .outfit-independence,.zoni-admin-preview[data-festival="independence"] .outfit-independence,.zoni-expression-card[data-festival="independence"] .outfit-independence,
.zoni-widget[data-festival="halloween"] .outfit-halloween,.zoni-admin-preview[data-festival="halloween"] .outfit-halloween,.zoni-expression-card[data-festival="halloween"] .outfit-halloween,
.zoni-widget[data-festival="dead"] .outfit-dead,.zoni-admin-preview[data-festival="dead"] .outfit-dead,.zoni-expression-card[data-festival="dead"] .outfit-dead,
.zoni-widget[data-festival="revolution"] .outfit-revolution,.zoni-admin-preview[data-festival="revolution"] .outfit-revolution,.zoni-expression-card[data-festival="revolution"] .outfit-revolution,
.zoni-widget[data-festival="posadas"] .outfit-posadas,.zoni-admin-preview[data-festival="posadas"] .outfit-posadas,.zoni-expression-card[data-festival="posadas"] .outfit-posadas,
.zoni-widget[data-festival="christmas"] .outfit-christmas,.zoni-admin-preview[data-festival="christmas"] .outfit-christmas,.zoni-expression-card[data-festival="christmas"] .outfit-christmas { display: inline; }

.zoni-antenna-custom-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; margin-top: 16px; padding-top: 16px; border-top: 1px solid #e7eef0; }
.zoni-antenna-custom-heading { display: grid; grid-column: 1 / -1; gap: 4px; }
.zoni-antenna-custom-heading strong { color: #173653; font-size: .875rem; }
.zoni-antenna-custom-heading span { color: #8295a2; font-size: .875rem; font-weight: 500; line-height: 1.45; }
.zoni-antenna-custom-fields label { display: grid; gap: 7px; color: #49667d; font-size: .875rem; font-weight: 800; }
.zoni-range-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.zoni-antenna-custom-fields output { color: #239345; font-size: .875rem; font-weight: 800; }
.zoni-antenna-custom-fields small { color: #8295a2; font-size: .875rem; font-weight: 500; line-height: 1.45; }
.zoni-antenna-custom-fields input[type="range"] { width: 100%; height: 18px; margin: 0; appearance: none; background: transparent; cursor: pointer; }
.zoni-antenna-custom-fields input[type="range"]::-webkit-slider-runnable-track { height: 5px; border-radius: 99px; background: linear-gradient(to right,#35ad4b 0 var(--range-progress,50%),#414141 var(--range-progress,50%) 100%); }
.zoni-antenna-custom-fields input[type="range"]::-moz-range-track { height: 5px; border-radius: 99px; background: #414141; }
.zoni-antenna-custom-fields input[type="range"]::-moz-range-progress { height: 5px; border-radius: 99px; background: #35ad4b; }
.zoni-antenna-custom-fields input[type="range"]::-webkit-slider-thumb { width: 16px; height: 16px; margin-top: -5.5px; appearance: none; border: 0; border-radius: 50%; background: #35ad4b; box-shadow: 0 1px 4px rgba(25,91,45,.25); }
.zoni-antenna-custom-fields input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border: 0; border-radius: 50%; background: #35ad4b; box-shadow: 0 1px 4px rgba(25,91,45,.25); }
@media (max-width: 620px) { .zoni-antenna-custom-fields { grid-template-columns: minmax(0,1fr); } }

/* Anchor the conversation to Zoni's exact corner so it replaces the launcher. */
.zoni-panel {
  z-index: 2;
  right: 0;
  bottom: 0;
  height: min(550px, calc(100dvh - 36px));
  min-height: min(350px, calc(100dvh - 36px));
  animation: none;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, 14px, 0) scale(.99);
  transition: opacity .34s ease, transform .42s cubic-bezier(.22,.68,0,1), visibility 0s linear .42s;
}
.zoni-widget.is-open .zoni-panel {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, 0, 0) scale(1);
  transition-delay: 0s;
}
.zoni-widget.is-closing .zoni-launcher { opacity: 0; visibility: hidden; pointer-events: none; }
@media (max-width: 540px) {
  .zoni-panel {
    right: 15px;
    bottom: 14px;
    width: calc(100vw - 20px);
    height: min(520px, calc(100dvh - 28px));
    min-height: min(330px, calc(100dvh - 28px));
  }
}
@media (prefers-reduced-motion: reduce) {
  .zoni-panel { transition-duration: .01ms; transition-delay: 0s; }
}

/* Polish the original expression design with calm, consistent motion. */
.zoni-expression-card { overflow: visible; }
.zoni-expression-card:focus-visible { outline: 3px solid rgba(53,173,75,.35); outline-offset: 3px; }
.zoni-expression-card[data-expression="happy"] .zoni-robot { animation-duration: 1.8s; }
.zoni-expression-card[data-expression="curious"] .zoni-robot { animation-duration: 2.8s; }
.zoni-expression-card[data-expression="surprised"] .zoni-robot { animation-duration: 1.8s; }
.zoni-expression-card[data-expression="thinking"] .zoni-robot { animation-duration: 3s; }
.zoni-expression-card[data-expression="sleepy"] .zoni-robot { animation-duration: 3.8s; }
.zoni-expression-card[data-expression="laugh"] .zoni-robot { animation-duration: 1.15s; }
.zoni-expression-card[data-expression="angry"] .zoni-robot { animation-duration: 1.6s; }
.zoni-expression-card[data-expression="sad"] .zoni-robot { animation-duration: 3.6s; }
.zoni-expression-card[data-expression="playful"] .zoni-robot { animation-duration: 1.8s; }
.zoni-widget[data-expression="happy"] .zoni-launcher .zoni-robot { animation-duration: 1.8s; }
.zoni-widget[data-expression="curious"] .zoni-launcher .zoni-robot { animation-duration: 2.8s; }
.zoni-widget[data-expression="surprised"] .zoni-launcher .zoni-robot { animation-duration: 1.8s; }
.zoni-widget[data-expression="thinking"] .zoni-launcher .zoni-robot { animation-duration: 3s; }
.zoni-widget[data-expression="sleepy"] .zoni-launcher .zoni-robot { animation-duration: 3.8s; }
.zoni-widget[data-expression="laugh"] .zoni-launcher .zoni-robot { animation-duration: 1.15s; }
.zoni-widget[data-expression="angry"] .zoni-launcher .zoni-robot { animation-duration: 1.6s; }
.zoni-widget[data-expression="sad"] .zoni-launcher .zoni-robot { animation-duration: 3.6s; }
.zoni-widget[data-expression="playful"] .zoni-launcher .zoni-robot { animation-duration: 1.8s; }
.zoni-admin-preview[data-expression="happy"] .zoni-robot { animation-duration: 1.8s; }
.zoni-admin-preview[data-expression="curious"] .zoni-robot { animation-duration: 2.8s; }
.zoni-admin-preview[data-expression="surprised"] .zoni-robot { animation-duration: 1.8s; }
.zoni-admin-preview[data-expression="thinking"] .zoni-robot { animation-duration: 3s; }
.zoni-admin-preview[data-expression="sleepy"] .zoni-robot { animation-duration: 3.8s; }
.zoni-admin-preview[data-expression="laugh"] .zoni-robot { animation-duration: 1.15s; }
.zoni-admin-preview[data-expression="angry"] .zoni-robot { animation-duration: 1.6s; }
.zoni-admin-preview[data-expression="sad"] .zoni-robot { animation-duration: 3.6s; }
.zoni-admin-preview[data-expression="playful"] .zoni-robot { animation-duration: 1.8s; }

/* Keep the same face proportions and expression behavior in every Zoni preview. */
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression] .zoni-eyes {
  gap: clamp(5px,calc(var(--zoni-size,88px)*.09),8px);
  transform-origin: center;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression] .zoni-eyes i {
  flex: 0 0 auto;
  width: clamp(5px,calc(var(--zoni-size,88px)*.09),10px) !important;
  height: clamp(6px,calc(var(--zoni-size,88px)*.115),13px) !important;
  transform-origin: center;
  animation: zoni-eye-glow 3.4s ease-in-out infinite;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression] .zoni-eyes i:last-child { animation-delay: -1.7s; }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression] .zoni-mouth {
  box-sizing: border-box;
  flex: 0 0 auto;
  transition: width .24s ease,height .24s ease,border .24s ease,border-radius .24s ease,transform .24s ease;
}

:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="friendly"] .zoni-mouth {
  width: 27% !important; height: 12% !important; border: 0 !important;
  border-bottom: 2px solid var(--zoni-accent) !important; border-radius: 0 0 50% 50% !important;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-eyes { transform: translate(3%,-5%) rotate(-4deg) scale(1.02); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-eyes i:first-child { transform: translateY(10%) scale(.78); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-eyes i:last-child { transform: translate(18%,-10%) scale(1.08); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-mouth {
  width: 19% !important; height: 7% !important; border: 0 !important;
  border-bottom: 2px solid var(--zoni-accent) !important; border-radius: 0 0 50% 50% !important;
  transform: translateX(10%) rotate(-10deg);
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="surprised"] .zoni-eyes { transform: scale(1.18); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="surprised"] .zoni-mouth {
  width: 17% !important; height: 20% !important; border: 2px solid var(--zoni-accent) !important;
  border-radius: 50% !important; background: transparent !important;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="thinking"] .zoni-eyes { transform: translate(3%,-5%); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="thinking"] .zoni-mouth {
  width: 17% !important; height: 6% !important; border: 0 !important;
  border-bottom: 2px solid var(--zoni-accent) !important; border-radius: 0 0 50% 50% !important;
  transform: rotate(-7deg);
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sleepy"] .zoni-eyes i { transform: scaleY(.68); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sleepy"] .zoni-mouth {
  width: 20% !important; height: 8% !important; border: 0 !important;
  border-bottom: 2px solid var(--zoni-accent) !important; border-radius: 0 0 50% 50% !important;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="angry"] .zoni-eyes i:first-child { transform: rotate(12deg) scaleY(.82); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="angry"] .zoni-eyes i:last-child { transform: rotate(-12deg) scaleY(.82); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="angry"] .zoni-mouth {
  width: 23% !important; height: 9% !important; border: 0 !important;
  border-top: 2px solid var(--zoni-accent) !important; border-radius: 50% 50% 0 0 !important;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sad"] .zoni-eyes i { transform: translateY(1px) scaleY(.86); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sad"] .zoni-mouth {
  width: 21% !important; height: 10% !important; border: 0 !important;
  border-top: 2px solid var(--zoni-accent) !important; border-radius: 50% 50% 0 0 !important;
  transform: translateY(1px);
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="playful"] .zoni-eyes i:last-child {
  height: clamp(3px,calc(var(--zoni-size,88px)*.045),6px) !important; transform: scaleY(.55);
  border-radius: 99px; animation: zoni-playful-wink 2.8s ease-in-out infinite,zoni-eye-glow 3.4s ease-in-out infinite;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="playful"] .zoni-mouth {
  width: 23% !important; height: 9% !important; border: 0 !important;
  border-bottom: 2px solid var(--zoni-accent) !important; border-radius: 0 0 50% 50% !important;
  transform: rotate(-7deg);
}

@keyframes zoni-eye-glow { 0%,100% { filter: brightness(1); opacity: 1; } 50% { filter: brightness(1.12); opacity: .92; } }
@keyframes zoni-playful-wink { 0%,100% { transform: scaleY(.58); } 48%,55% { transform: scaleY(.28); } }

/* Make these three moods unmistakable while keeping one shared face scale. */
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression] .zoni-face::before,
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression] .zoni-face::after {
  content: none;
  position: absolute;
  top: 24%;
  width: 19%;
  height: 6%;
  border-top: clamp(1px,calc(var(--zoni-size,88px)*.022),2px) solid var(--zoni-accent);
  border-radius: 50%;
  opacity: 0;
  transition: top .22s ease,transform .22s ease,opacity .22s ease;
  pointer-events: none;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression] .zoni-face::before { left: 23%; }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression] .zoni-face::after { right: 23%; }

/* Curious: one lifted brow, an unmistakable side glance, and a crooked smile. */
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-face::before {
  content: ''; top: 16%; transform: rotate(-18deg); opacity: .95;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-eyes {
  transform: translate(6%,-7%) rotate(-5deg);
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-eyes i:first-child { transform: translateY(16%) scale(.78); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-eyes i:last-child { transform: translate(24%,-12%) scale(1.12); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="curious"] .zoni-mouth {
  width: 22% !important; height: 8% !important; transform: translateX(16%) rotate(-12deg);
}

/* Thinking: both brows gather inward while the gaze checks above for an answer. */
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="thinking"] .zoni-face::before {
  content: ''; top: 23%; transform: rotate(16deg); opacity: .95;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="thinking"] .zoni-face::after {
  content: ''; top: 23%; transform: rotate(-16deg); opacity: .95;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="thinking"] .zoni-eyes { transform: translate(2%,-11%); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="thinking"] .zoni-mouth {
  width: 15% !important; height: 5% !important; transform: translateX(14%) rotate(-4deg);
  border-bottom-width: clamp(1px,calc(var(--zoni-size,88px)*.022),2px) !important;
}

/* Sad: inner brows lift, eyes droop, and a small tear makes the mood clear. */
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sad"] .zoni-face::before {
  content: ''; top: 21%; transform: rotate(-18deg); opacity: .9;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sad"] .zoni-face::after {
  content: ''; top: 21%; transform: rotate(18deg); opacity: .9;
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sad"] .zoni-eyes { transform: translateY(5%); }
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sad"] .zoni-eyes i:last-child::after {
  content: ''; position: absolute; top: 78%; right: -22%; display: block;
  width: clamp(2px,calc(var(--zoni-size,88px)*.034),4px);
  height: clamp(3px,calc(var(--zoni-size,88px)*.05),5px);
  transform: rotate(-42deg); border-radius: 55% 55% 55% 0;
  background: color-mix(in srgb,var(--zoni-eyes),#fff 12%);
  box-shadow: 0 0 4px color-mix(in srgb,var(--zoni-eyes),transparent 48%);
}
:is(.zoni-widget,.zoni-admin-preview,.zoni-expression-card)[data-expression="sad"] .zoni-mouth {
  width: 25% !important; height: 12% !important; transform: translateY(3%);
  border-top-width: clamp(1px,calc(var(--zoni-size,88px)*.022),2px) !important;
}
