/* Compact non-modal chat; page navigation, CTA bar and large player stay independent. */
#vivi-launcher {position:fixed;right:max(16px,env(safe-area-inset-right));bottom:20px;z-index:65;border:1px solid #b5a28a;border-radius:30px;padding:8px 18px;min-height:44px;background:#ede3d5;color:#0e1b33;box-shadow:0 3px 18px #0e1b3320;font:600 16px Georgia,serif;cursor:pointer}
body[data-area="capilar"] #vivi-launcher {background:#0e1b33;color:#ede3d5}
body.modal-open #vivi-launcher,body.modal-open #vivi-dialog {visibility:hidden}
#vivi-dialog {box-sizing:border-box;position:fixed;inset:auto max(16px,env(safe-area-inset-right)) 76px auto;z-index:66;margin:0;color:#0e1b33;background:#f7f2eb;border:1px solid #b5a28a;border-radius:16px;padding:12px;width:min(376px,calc(100% - 24px));max-width:calc(100% - 24px);height:min(490px,calc(100dvh - 100px));max-height:calc(100dvh - 100px);box-shadow:0 8px 32px #0e1b3330;font:14px/1.4 Arial,sans-serif;overflow:hidden}
#vivi-dialog[open] {display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:6px}
#vivi-dialog * {box-sizing:border-box;overflow-wrap:anywhere}
#vivi-dialog .vivi-header {display:flex;align-items:center;gap:8px;min-width:0}
#vivi-title {font:19px Georgia,serif;margin:0;flex:1}
#vivi-dialog #vivi-close {padding:5px;font-size:12px;flex-shrink:0}
#vivi-disclaimer {font-size:11px;line-height:1.35;margin:0;max-height:106px;overflow:auto;padding:7px 9px;border:1px solid #c9bba7;border-radius:8px;background:#ece4d8;color:#3b403f}
#vivi-log {font-size:13px;line-height:1.4;overflow-y:auto;overscroll-behavior:contain;min-height:0;min-width:0;padding:4px}
#vivi-log p {margin:4px 0;white-space:pre-wrap}
.vivi-line {padding:6px 0;border-bottom:1px solid #d8cdbf}
.vivi-line--user {padding:8px;background:#e9e0d4;border-radius:8px}
#vivi-dialog button,#vivi-dialog a {font:12px/1.3 Arial,sans-serif;min-height:36px;border:1px solid #b5a28a;border-radius:7px;padding:5px 8px;background:#ede3d5;color:#0e1b33;cursor:pointer}
#vivi-dialog a,#vivi-log button {display:block;text-align:left;margin:8px 0;max-width:100%;text-decoration:underline}
#vivi-dialog textarea {display:block;width:100%;resize:none;height:52px;min-height:44px;font:16px/1.4 Arial,sans-serif;border:1px solid #9b8d7d;border-radius:8px;padding:6px;color:#0e1b33;background:white}
#vivi-form {min-width:0}
#vivi-challenge {display:flex;justify-content:center;margin-bottom:6px}
#vivi-challenge:empty {display:none}
#vivi-dialog:has(#vivi-challenge:not(:empty)) #vivi-disclaimer {max-height:54px}
#vivi-form:has(#vivi-challenge:not(:empty)) {max-height:min(260px,45dvh);overflow-y:auto}
#vivi-form label {font-size:12px}
#vivi-status {font-size:12px;margin:0}
#vivi-status {min-height:17px}
.vivi-actions {display:flex;justify-content:space-between;gap:8px;margin-top:6px}
#vivi-dialog #vivi-send {background:#0e1b33;color:#fff}
#vivi-dialog button:disabled {opacity:.6;cursor:wait}
#vivi-dialog :focus-visible,#vivi-launcher:focus-visible {outline:3px solid #916d39;outline-offset:2px}
body[data-area="capilar"] #vivi-dialog .vivi-header {background:#0e1b33;color:#ede3d5;border-radius:9px;padding:4px}
/* The approved SVG and keyframes remain unchanged, scaled only by this square. */
#vivi-mascot {margin:0;position:relative;border-radius:12px;padding:3px;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 30% 15%,#223457,#0e1b32 62%);overflow:hidden;width:48px;height:48px;flex:0 0 48px}
#vivi-mascot:after {content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 70% 88%,rgba(167,138,94,.28),transparent 48%)}
body[data-area="capilar"] #vivi-mascot:after {background:repeating-linear-gradient(-32deg,transparent 0 13px,rgba(167,138,94,.1) 13px 15px),radial-gradient(circle at 70% 88%,rgba(167,138,94,.22),transparent 48%)}
#vivi-mascot svg {width:100%;position:relative;z-index:1;overflow:visible}
@media(max-width:900px){
 #vivi-launcher {bottom:calc(76px + env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));padding:8px 15px}
 #vivi-launcher[aria-expanded="true"] {visibility:hidden}
 #vivi-dialog {right:max(12px,env(safe-area-inset-right));bottom:calc(76px + env(safe-area-inset-bottom));height:min(480px,68dvh);max-height:calc(100dvh - 100px - env(safe-area-inset-bottom));padding:10px}
 #vivi-title {font-size:17px}
 #vivi-disclaimer {max-height:106px}
}
@media(max-height:500px){
 #vivi-dialog {padding:8px;height:calc(100dvh - 100px);gap:4px}
 #vivi-dialog[open] {gap:4px}
 #vivi-disclaimer {max-height:30px}
 #vivi-dialog textarea {height:44px}
 #vivi-mascot {width:44px;height:44px;flex-basis:44px}
}

#vivi-dialog[data-keyboard] {bottom:var(--vivi-keyboard-bottom);max-height:var(--vivi-keyboard-height)}
#vivi-dialog[data-keyboard] #vivi-disclaimer {max-height:30px}

#vivi-mascot .vivi-fable-tb{transform-box:fill-box;transform-origin:center}
#vivi-mascot .vivi-fable-breath{transform-origin:120px 190px;animation:vivi-fable-br 4.8s ease-in-out infinite}
@keyframes vivi-fable-br{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.012,1.025)}}
#vivi-mascot .vivi-fable-sh{transform-origin:120px 214px;animation:vivi-fable-shd 4.8s ease-in-out infinite}
@keyframes vivi-fable-shd{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.88);opacity:.65}}
#vivi-mascot .vivi-fable-eyes{animation:vivi-fable-bl 5.4s ease-in-out infinite}
@keyframes vivi-fable-bl{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.08)}}
#vivi-mascot .vivi-fable-iris,#vivi-mascot .vivi-fable-brL,#vivi-mascot .vivi-fable-brR,#vivi-mascot .vivi-fable-smile,#vivi-mascot .vivi-fable-finR{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
#vivi-mascot .vivi-fable-ring{transform-origin:120px 118px;animation:vivi-fable-fl 6s ease-in-out infinite}
@keyframes vivi-fable-fl{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(1.5deg)}}
#vivi-mascot .vivi-fable-crestA,#vivi-mascot .vivi-fable-crestB{transform-origin:120px 48px;animation:vivi-fable-sw 5s ease-in-out infinite}
@keyframes vivi-fable-sw{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
#vivi-mascot .vivi-fable-crestB{display:none}
body[data-area="capilar"] #vivi-mascot .vivi-fable-crestA{display:none}
body[data-area="capilar"] #vivi-mascot .vivi-fable-crestB{display:block}
#vivi-mascot .vivi-fable-finL{transform-origin:64px 130px;animation:vivi-fable-fin 5s ease-in-out infinite}
#vivi-mascot .vivi-fable-finR{transform-origin:176px 130px;animation:vivi-fable-fin 5s ease-in-out infinite reverse}
@keyframes vivi-fable-fin{0%,100%{transform:rotate(0)}50%{transform:rotate(-7deg)}}
#vivi-mascot .vivi-fable-spark,#vivi-mascot .vivi-fable-bead,#vivi-mascot .vivi-fable-waves path,#vivi-mascot .vivi-fable-open,#vivi-mascot .vivi-fable-grin{opacity:0;transition:opacity .4s}
/* Pensando */
#vivi-mascot[data-state=think] .vivi-fable-ring{transform:rotate(-14deg);animation:vivi-fable-wob 2.6s ease-in-out infinite}
@keyframes vivi-fable-wob{0%,100%{transform:rotate(-14deg) translateY(0)}50%{transform:rotate(-9deg) translateY(-4px)}}
#vivi-mascot[data-state=think] .vivi-fable-iris{transform:translate(4px,-5px)}
#vivi-mascot[data-state=think] .vivi-fable-brL{transform:translateY(-6px) rotate(-8deg)}
#vivi-mascot[data-state=think] .vivi-fable-brR{transform:translateY(-2px)}
#vivi-mascot[data-state=think] .vivi-fable-smile{transform:translate(4px,0) scale(.65)}
#vivi-mascot[data-state=think] .vivi-fable-spark,#vivi-mascot[data-state=think] .vivi-fable-bead{opacity:1;animation:vivi-fable-pu 1.8s ease-in-out infinite}
#vivi-mascot .vivi-fable-d2{animation-delay:.3s!important}#vivi-mascot .vivi-fable-d3{animation-delay:.6s!important}
@keyframes vivi-fable-pu{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
/* Respondiendo */
#vivi-mascot[data-state=speak] .vivi-fable-smile{opacity:0}
#vivi-mascot[data-state=speak] .vivi-fable-open{opacity:1;animation:vivi-fable-tk .5s ease-in-out infinite alternate}
@keyframes vivi-fable-tk{from{transform:scale(1,.45)}to{transform:scale(1.2,1.05)}}
#vivi-mascot[data-state=speak] .vivi-fable-waves path{opacity:1;animation:vivi-fable-wv 1.4s ease-in-out infinite}
@keyframes vivi-fable-wv{0%,100%{opacity:.25}50%{opacity:1}}
#vivi-mascot[data-state=speak] .vivi-fable-ring{animation:vivi-fable-rp 1.4s ease-in-out infinite}
@keyframes vivi-fable-rp{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
#vivi-mascot[data-state=speak] .vivi-fable-brL,#vivi-mascot[data-state=speak] .vivi-fable-brR{transform:translateY(-2px)}
/* Video */
#vivi-mascot[data-state=video] .vivi-fable-finR{transform:rotate(-72deg) scale(1.3);animation:vivi-fable-pt 1.6s ease-in-out infinite}
@keyframes vivi-fable-pt{0%,100%{transform:rotate(-72deg) scale(1.3)}50%{transform:rotate(-66deg) scale(1.38)}}
#vivi-mascot[data-state=video] .vivi-fable-iris{transform:translate(5px,0)}
#vivi-mascot[data-state=video] .vivi-fable-smile{opacity:0}
#vivi-mascot[data-state=video] .vivi-fable-grin{opacity:1}
#vivi-mascot[data-state=video] .vivi-fable-brL,#vivi-mascot[data-state=video] .vivi-fable-brR{transform:translateY(-4px)}

#vivi-mascot[data-paused] *,#vivi-dialog:not([open]) #vivi-mascot * {animation-play-state:paused!important;transition:none!important}
@media(prefers-reduced-motion:reduce){#vivi-mascot * {animation:none!important;transition:none!important}}
