/* Asistente */
.bot-fab{position:fixed;right:clamp(16px,2.4vw,32px);bottom:clamp(16px,2.4vw,32px);z-index:60;display:flex;align-items:center;gap:0;height:56px;padding:0 17px;border:1px solid color-mix(in srgb,var(--sig) 60%,transparent);border-radius:30px;background:var(--deeper);color:var(--plat);cursor:pointer;box-shadow:0 16px 40px -14px rgba(0,0,0,.6);transition:opacity .4s,transform .7s var(--out)}
.bot-fab svg{width:21px;height:21px;flex:none;fill:none;stroke:var(--sig);stroke-width:7;overflow:visible}
.bot-fab span{max-width:0;overflow:hidden;white-space:nowrap;font:300 14px var(--disp);transition:max-width .8s var(--out),margin .8s var(--out)}
.bot-fab:hover span,.bot-fab:focus-visible span,.bot-fab.hint span{max-width:210px;margin-left:12px}
.bot-fab:hover{transform:translateY(-3px)}
.bot-open .bot-fab{opacity:0;pointer-events:none;transform:scale(.8)}
.bot{position:fixed;right:clamp(16px,2.4vw,32px);bottom:clamp(16px,2.4vw,32px);z-index:61;display:flex;flex-direction:column;width:min(410px,calc(100vw - 32px));height:min(620px,calc(100dvh - 110px));background:var(--bg);color:var(--fg);border:1px solid var(--rule);border-radius:10px;overflow:hidden;box-shadow:0 40px 90px -24px rgba(0,0,0,.65);opacity:0;visibility:hidden;transform:translateY(22px) scale(.97);transform-origin:100% 100%;transition:opacity .4s,transform .8s var(--out),visibility 0s .4s,background-color .6s}
.bot-open .bot{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.bot-head{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--rule)}
.bot-head div{flex:1;min-width:0}
.bot-head strong{display:block;font:300 16px var(--disp)}
.bot-head small{font-size:12px;color:var(--fg2)}
.bot-head button{width:34px;height:34px;flex:none;border:0;background:none;color:var(--fg);font-size:21px;line-height:1;cursor:pointer;border-radius:4px;transition:background-color .3s}
.bot-head button:hover{background:color-mix(in srgb,var(--fg) 10%,transparent)}
.bot-bar{height:1px;background:var(--rule)}
.bot-bar i{display:block;height:100%;background:var(--accent);width:var(--p,0%);transition:width .9s var(--out)}
.bot-log{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:9px;overscroll-behavior:contain}
.msg{max-width:86%;padding:10px 14px;font-size:15px;line-height:1.45;border-radius:12px;animation:msgIn .7s var(--out) both;white-space:pre-line;overflow-wrap:anywhere}
.msg.a{align-self:flex-start;background:var(--bg2);border-bottom-left-radius:3px}
.msg.u{align-self:flex-end;background:var(--accent);color:var(--bg);border-bottom-right-radius:3px}
@keyframes msgIn{from{opacity:0;transform:translateY(10px)}}
.typing{display:flex;gap:4px;align-self:flex-start;padding:13px 15px;background:var(--bg2);border-radius:12px}
.typing i{width:5px;height:5px;border-radius:50%;background:var(--fg2);animation:dot 1s ease-in-out infinite}
.typing i:nth-child(2){animation-delay:.14s}.typing i:nth-child(3){animation-delay:.28s}
@keyframes dot{40%{transform:translateY(-4px);opacity:.4}}
.opts{display:flex;flex-wrap:wrap;gap:7px;padding-top:5px}
.opts button,.opts a{padding:9px 13px;border:1px solid var(--rule);border-radius:20px;background:none;color:var(--fg);font:400 14px var(--body);cursor:pointer;text-decoration:none;animation:msgIn .7s var(--out) both;animation-delay:calc(var(--i)*55ms);transition:background-color .35s,color .35s,border-color .35s}
.opts button:hover,.opts a:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.opts .main{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.bot-form{display:flex;gap:8px;padding:11px 14px;border-top:1px solid var(--rule)}
.bot-form input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--rule);border-radius:6px;background:none;color:var(--fg);font:400 16px var(--body);outline:0}
.bot-form input:focus{border-color:var(--accent)}
.bot-form button{padding:0 14px;border:0;border-radius:6px;background:var(--accent);color:var(--bg);font:400 14px var(--body);cursor:pointer}
.bot-form[hidden]{display:none}
@media(max-width:560px){.bot{right:0;bottom:0;width:100%;height:100dvh;border:0;border-radius:0}.bot-fab{height:52px;padding:0 15px}}
@media(prefers-reduced-motion:reduce){.msg,.opts button,.opts a,.typing i{animation:none}}

/* Cursor */
.cursor{position:fixed;left:0;top:0;z-index:70;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid var(--accent);border-radius:50%;pointer-events:none;opacity:0;transition:opacity .4s,scale .5s var(--out),background-color .4s}
.cursor.on{opacity:.75}
.cursor.big{scale:1.7;background:color-mix(in srgb,var(--accent) 14%,transparent)}

.bot-cta{display:inline-flex;align-items:center;gap:14px;margin-top:24px;padding:13px 20px;border:1px solid var(--accent);border-radius:30px;background:none;color:var(--fg);font:300 15px var(--disp);cursor:pointer;transition:background-color .4s,color .4s}
.bot-cta i{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 2.4s ease-out infinite}
.bot-cta:hover{background:var(--accent);color:var(--bg)}
.bot-cta:hover i{background:var(--bg)}
.bot-head small a{color:inherit;text-decoration:underline}
