/* Asistente guiado — usa las variables del sitio (día/noche) */
.as-btn{position:fixed;right:20px;bottom:98px;z-index:59;display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 18px 0 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:700 14px var(--fh,system-ui);cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.22);transition:transform .25s,background .25s}
.as-btn:hover{transform:translateY(-2px)}
.as-btn svg{color:var(--gd)}
[data-theme=dark] .as-btn svg{color:var(--g2)}
.as-btn.on{background:var(--g);color:#0d1a0e;border-color:var(--g)}
.as-btn.on svg{color:#0d1a0e}
.as-panel{position:fixed;right:20px;bottom:162px;z-index:61;width:min(380px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 190px));display:flex;flex-direction:column;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.35);overflow:hidden}
.as-panel[hidden]{display:none}
.as-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--dark,#0d1a0e);color:#fff}
.as-head b{font:800 16px var(--fh,system-ui)}
.as-x{width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:22px;line-height:1;cursor:pointer}
.as-body{flex:1;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}
.as-m{max-width:92%;padding:10px 13px;border-radius:14px;font:500 14.5px/1.45 var(--fb,system-ui);text-align:left}
.as-m.bot{background:var(--chip,#e8f2dc);align-self:flex-start;border-bottom-left-radius:4px}
.as-m.me{background:var(--g);color:#0d1a0e;align-self:flex-end;border-bottom-right-radius:4px;font-weight:700}
.as-opts{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 6px}
.as-o{min-height:40px;padding:8px 14px;border-radius:999px;border:1.5px solid var(--g);background:transparent;color:var(--ink);font:700 13.5px var(--fh,system-ui);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.as-o:hover{background:var(--chip,#e8f2dc)}
.as-wa{background:#25D366;border-color:#25D366;color:#06210f}
.as-wa:hover{background:#2be071}
.as-foot{margin:0;padding:9px 14px 12px;border-top:1px solid var(--line);font:500 11.5px/1.4 var(--fb,system-ui);color:var(--ink2);text-align:justify}
@media (max-width:760px){
  .as-btn{right:18px;bottom:calc(88px + env(safe-area-inset-bottom,0px));height:48px;padding:0 14px 0 12px}
  .as-panel{right:12px;left:12px;width:auto;bottom:calc(146px + env(safe-area-inset-bottom,0px));max-height:calc(100vh - 210px)}
}
@media (prefers-reduced-motion:reduce){.as-btn{transition:none}}
@media print{.as-btn,.as-panel{display:none}}

/* robot ambiental */
.as-btn{height:52px;padding:0 18px 0 62px;border-color:var(--g);background:var(--card);box-shadow:0 10px 26px rgba(0,0,0,.25),0 0 0 0 rgba(118,184,42,.5);animation:asPulse 3.2s ease-out infinite}
.as-av{position:absolute;left:4px;bottom:-2px;width:56px;height:56px;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35));animation:asFloat 3.4s ease-in-out infinite}
.as-btn svg{display:none}
.as-btn.on{animation:none}
.as-btn.on .as-btn-t:after{content:" ×"}
.as-hav{width:44px;height:44px;object-fit:contain;margin-right:10px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.4))}
.as-head{justify-content:flex-start}
.as-ht{display:flex;flex-direction:column;flex:1;min-width:0}
.as-ht small{font:500 12px var(--fb,system-ui);opacity:.8}
.as-x{margin-left:auto}
@keyframes asFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}
@keyframes asPulse{0%{box-shadow:0 10px 26px rgba(0,0,0,.25),0 0 0 0 rgba(118,184,42,.55)}70%,100%{box-shadow:0 10px 26px rgba(0,0,0,.25),0 0 0 16px rgba(118,184,42,0)}}
@media (max-width:760px){
  .as-btn{height:58px;width:58px;padding:0;border-radius:50%;justify-content:center;overflow:visible}
  .as-btn-t{display:none}
  .as-av{left:0;bottom:0;width:58px;height:58px;position:static}
}
@media (prefers-reduced-motion:reduce){.as-btn,.as-av{animation:none}}
.as-btn{height:54px;padding:0 18px 0 74px}
.as-av{left:-4px;bottom:-4px;width:72px;height:72px}
.as-hav{width:52px;height:52px}
@media (max-width:760px){.as-btn{height:64px;width:64px;padding:0}.as-av{width:70px;height:70px;left:-3px;bottom:-3px;position:absolute}}

/* movimiento: flota, se inclina como saludando y da un saltito cada tanto */
.as-av{transform-origin:50% 90%;animation:asFloat 3.2s ease-in-out infinite,asHi 7s ease-in-out infinite}
@keyframes asFloat{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes asHi{0%,72%,100%{rotate:0deg;scale:1}76%{rotate:-12deg;scale:1.06}80%{rotate:10deg;scale:1.06}84%{rotate:-8deg}88%{rotate:6deg}92%{rotate:0deg;scale:1}}
.as-hav{transform-origin:50% 90%;animation:asFloat 3.6s ease-in-out infinite}
.as-btn:hover .as-av{animation:asFloat 1.4s ease-in-out infinite,asHi 1.6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.as-av,.as-hav,.as-btn:hover .as-av{animation:none}}
.as-foot a{color:inherit;text-decoration:underline}

.as-m.typing{display:inline-flex;gap:5px;align-items:center;padding:13px 15px}
.as-m.typing i{width:7px;height:7px;border-radius:50%;background:var(--ink2,#5b6b5d);opacity:.35;animation:asDot 1.1s infinite ease-in-out}
.as-m.typing i:nth-child(2){animation-delay:.15s}.as-m.typing i:nth-child(3){animation-delay:.3s}
@keyframes asDot{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-4px);opacity:.9}}
.as-m{animation:asIn .22s ease-out}
@keyframes asIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.as-m,.as-m.typing i{animation:none}}

.as-hi{position:fixed;right:20px;bottom:162px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:min(270px,calc(100vw - 40px))}
.as-hi[hidden]{display:none}
.as-hb{position:relative;display:block;text-align:left;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:16px 16px 4px 16px;box-shadow:0 12px 30px rgba(0,0,0,.28);padding:11px 15px;cursor:pointer;font:700 14.5px/1.35 var(--fh,system-ui);animation:asHiIn .35s ease-out}
.as-hb.last::after{content:"";position:absolute;right:26px;bottom:-7px;width:12px;height:12px;background:var(--card);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}
.as-hb.typing{display:inline-flex;gap:5px;align-items:center;padding:14px 16px}
.as-hb.typing i{width:7px;height:7px;border-radius:50%;background:var(--ink2,#5b6b5d);opacity:.35;animation:asDot 1.1s infinite ease-in-out}
.as-hb.typing i:nth-child(2){animation-delay:.15s}.as-hb.typing i:nth-child(3){animation-delay:.3s}
.as-hi-x{position:absolute;top:-10px;left:-10px;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink2,#5b6b5d);font-size:16px;line-height:1;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.2)}
@keyframes asHiIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.as-hb,.as-hb.typing i{animation:none}}
@media print{.as-hi{display:none}}

/* Caras de Ethan */
.as-av{transition:scale 1s cubic-bezier(.3,.7,.3,1)}
.as-av.lean{scale:1.38;transform-origin:50% 100%}
.as-head{position:relative}
.as-zz{position:absolute;pointer-events:none;display:none;font:800 17px var(--fh,system-ui);color:var(--g2,#8fd16a)}
.as-zz i{position:absolute;font-style:normal;opacity:0;animation:asZ 2.6s ease-in-out infinite}
.as-zz i:nth-child(2){animation-delay:.8s;font-size:20px}
.as-zz i:nth-child(3){animation-delay:1.6s;font-size:24px}
.as-btn.sleep>.as-zz{display:block;left:52px;top:-4px;color:var(--gd,#3d7a1f)}
[data-theme=dark] .as-btn.sleep>.as-zz{color:var(--g2,#8fd16a)}
.as-head.sleep>.as-zz{display:block;left:50px;top:2px;color:#bfeaa0}
@keyframes asZ{0%{opacity:0;transform:translate(0,8px) scale(.7)}25%{opacity:1}100%{opacity:0;transform:translate(14px,-18px) scale(1.15)}}
.as-btn.sleep .as-av,.as-head.sleep .as-hav{animation:none;filter:saturate(.8) drop-shadow(0 6px 8px rgba(0,0,0,.35))}
@media (prefers-reduced-motion:reduce){.as-zz i{animation:none;opacity:.9}.as-zz i:nth-child(2){left:9px;top:-8px}.as-zz i:nth-child(3){left:20px;top:-18px}.as-av{transition:none}}
@media (max-width:760px){.as-btn.sleep>.as-zz{left:46px;top:-12px}}

.as-hav.pop{animation:asFloat 3.6s ease-in-out infinite,asPop .8s ease-in-out 1}
@keyframes asPop{0%,100%{rotate:0deg;scale:1}15%{rotate:-12deg;scale:1.1}30%{rotate:10deg;scale:1.1}45%{rotate:-8deg}60%{rotate:6deg}80%{rotate:0deg;scale:1}}
@media (prefers-reduced-motion:reduce){.as-hav.pop{animation:none}}

.as-m .as-h{display:block;font-weight:800;margin-bottom:6px}
.as-m .as-ul{margin:0;padding:0;list-style:none}
.as-m .as-ul li{position:relative;padding-left:16px;margin:3px 0;font-weight:500}
.as-m .as-ul li::before{content:"";position:absolute;left:3px;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--g)}
.as-m .as-f{display:block;margin-top:8px;font-weight:700;color:var(--gd,#3d7a1f)}
[data-theme=dark] .as-m .as-f,html.hw .as-m .as-f{color:var(--g2,#8fd16a)}

.as-m .as-sub{display:block;margin-top:10px;font-weight:800;font-size:.92em;letter-spacing:.01em;color:var(--gd,#3d7a1f)}
[data-theme=dark] .as-m .as-sub,html.hw .as-m .as-sub{color:var(--g2,#8fd16a)}
.as-m .as-h+.as-sub{margin-top:2px}

.as-m .as-ver{display:block;font-size:.84em;font-weight:600;opacity:.8;margin:1px 0 3px}
.as-m .as-sub+.as-ver+.as-ul{margin-top:2px}
.as-m .as-nota{display:block;font-size:.84em;font-style:italic;opacity:.85;margin:0 0 2px}
.as-m.bot,.as-m.bot .as-ul li,.as-m.bot .as-f{text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}
.as-m .as-h,.as-m .as-sub,.as-m .as-ver,.as-m .as-nota{text-align:left;-webkit-hyphens:none;hyphens:none}
.as-hb{text-align:justify;-webkit-hyphens:auto;hyphens:auto}

.as-form{align-items:center}
.as-in{flex:1 1 180px;min-width:0;border:1px solid currentColor;border-radius:999px;padding:9px 14px;font:inherit;background:transparent;color:inherit}

@keyframes asThink{0%,100%{transform:rotate(0)}25%{transform:rotate(-9deg)}75%{transform:rotate(9deg)}}
.as-av.pensar,.as-hav.pensar{animation:asThink 1.2s ease-in-out infinite;transform-origin:50% 100%}
@media (prefers-reduced-motion:reduce){.as-av.pensar,.as-hav.pensar{animation:none}}

@keyframes mvSubida{0%,100%{transform:translateY(0)}35%{transform:translateY(-10px)}60%{transform:translateY(-2px)}}
@keyframes mvBaile{0%,100%{transform:rotate(0) translateX(0)}25%{transform:rotate(-8deg) translateX(-4px)}75%{transform:rotate(8deg) translateX(4px)}}
@keyframes mvMareado{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg) translateX(-3px)}50%{transform:rotate(10deg) translateX(3px)}80%{transform:rotate(-6deg)}}
@keyframes mvTrabajando{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.as-av.mv-subida,.as-hav.mv-subida{animation:mvSubida .9s ease-in-out 1}
.as-av.mv-baile,.as-hav.mv-baile{animation:mvBaile .7s ease-in-out 2;transform-origin:50% 100%}
.as-av.mv-mareado,.as-hav.mv-mareado{animation:mvMareado 1.6s ease-in-out 1;transform-origin:50% 100%}
.as-av.mv-trabajando,.as-hav.mv-trabajando{animation:mvTrabajando 1.2s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.as-av.mv-subida,.as-hav.mv-subida,.as-av.mv-baile,.as-hav.mv-baile,.as-av.mv-mareado,.as-hav.mv-mareado,.as-av.mv-trabajando,.as-hav.mv-trabajando{animation:none}}

.as-fly{position:fixed;z-index:70;pointer-events:none;object-fit:contain;transform-origin:50% 50%;filter:drop-shadow(0 8px 10px rgba(0,0,0,.3));will-change:transform}
.as-puff{position:fixed;z-index:69;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,255,255,.55) 55%,rgba(255,255,255,0) 72%);animation:asPuff .95s ease-out forwards}
@keyframes asPuff{from{opacity:.9;transform:scale(.4) translateY(0)}to{opacity:0;transform:scale(2.6) translateY(22px)}}
.as-spk{position:fixed;z-index:71;pointer-events:none;color:#ffd24a;font-size:16px;text-shadow:0 0 6px rgba(255,210,74,.8);opacity:0;animation:asSpk .9s ease-out forwards}
@keyframes asSpk{0%{opacity:0;transform:translate(0,0) scale(.3)}30%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.1) rotate(40deg)}}
.as-flyb{position:fixed;z-index:70;pointer-events:none;padding:10px 14px;border-radius:16px 16px 16px 4px;background:var(--card,#fff);color:var(--ink,#10201a);border:1px solid var(--line,#d5e3d8);font-size:14px;line-height:1.35;box-shadow:0 10px 26px rgba(0,0,0,.22);animation:asFlyPop .35s cubic-bezier(.3,1.5,.5,1)}
@keyframes asFlyPop{from{opacity:0;transform:scale(.6) translateX(-12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.as-fly,.as-puff,.as-spk,.as-flyb{display:none}}
body.as-flying .as-hi{display:none!important}
@media (max-width:760px){.as-btn,.as-btn.on{background:transparent!important;border:0!important;box-shadow:none!important;animation:none!important;backdrop-filter:none}.as-av{width:64px;height:64px}}
.as-btn.on .as-av{visibility:hidden}

/* nave de carga: queda fija donde vive Ethan */
.as-dock{position:absolute;left:-16px;bottom:-32px;width:96px;height:61px;pointer-events:none;z-index:0;background:url(assets/v2/nave-base.webp) center/contain no-repeat;filter:drop-shadow(0 0 8px rgba(118,184,42,.55));animation:asNave 3.2s ease-in-out infinite}
.as-dock i{display:none}
@keyframes asNave{0%,100%{transform:translateY(0);filter:drop-shadow(0 0 5px rgba(118,184,42,.35))}50%{transform:translateY(3px);filter:drop-shadow(0 0 12px rgba(118,184,42,.85))}}
.as-av{z-index:1}
@media (max-width:760px){.as-dock{left:50%;margin-left:-48px;bottom:-30px}}
@media (prefers-reduced-motion:reduce){.as-dock{animation:none}}
@media print{.as-dock{display:none}}
@media (max-width:760px){.as-btn{bottom:calc(98px + env(safe-area-inset-bottom,0px))}}
/* espacio coherente: Ethan flota sobre la nave y ambos lejos de WhatsApp */
.as-av{bottom:10px}
@media (max-width:760px){
  .as-btn{bottom:calc(119px + env(safe-area-inset-bottom,0px))}
  .as-av{position:relative;bottom:auto;top:-14px}
  .as-panel{bottom:calc(158px + env(safe-area-inset-bottom,0px));max-height:calc(100vh - 230px)}
}
/* bocadillos y panel por encima de Ethan, sin taparle la cara */
.as-hi{bottom:204px}
.as-panel{bottom:196px;max-height:min(560px,calc(100vh - 224px))}
@media (max-width:760px){.as-hi{bottom:calc(226px + env(safe-area-inset-bottom,0px))}}
/* escritorio: sin pastilla; Ethan sobre la nave siempre en el mismo sitio (como en móvil) */
@media (min-width:761px){
  .as-btn,.as-btn.on{background:transparent!important;border:0!important;box-shadow:none!important;animation:none!important;backdrop-filter:none;width:64px;padding:0}
  .as-btn .as-btn-t,.as-btn.on>.as-zz{display:none!important}
  .as-dock{left:50%;margin-left:-48px;bottom:4px}
  .as-av{bottom:46px}
  .as-hi{bottom:226px}
}
