/* =========================================================
   Chat con Gumi
   ========================================================= */
.chat{position:fixed;right:20px;bottom:110px;z-index:70;width:min(400px,calc(100vw - 40px));height:min(620px,calc(100vh - 140px));
  display:flex;flex-direction:column;border-radius:28px;background:#fff;overflow:hidden;
  box-shadow:0 30px 70px -20px rgba(0,40,139,.45),0 0 0 1px #ECE6FC;
  opacity:0;transform:translateY(24px) scale(.95);transform-origin:bottom right;pointer-events:none;
  transition:opacity .35s var(--ease),transform .35s var(--ease)}
.chat.open{opacity:1;transform:none;pointer-events:auto}

/* encabezado */
.chat-head{position:relative;display:flex;align-items:center;gap:12px;padding:16px 16px 16px 14px;color:#fff;
  background:linear-gradient(120deg,var(--navy),var(--purple));overflow:hidden}
.chat-head::after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.1);right:-50px;top:-80px}
.chat-avatar{position:relative;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--t-purple));display:grid;place-items:center;flex:none}
.chat-avatar img{width:38px;margin-top:8px}
.chat-avatar::after{content:"";position:absolute;right:1px;bottom:3px;width:13px;height:13px;border-radius:50%;background:#2BD67B;border:2px solid #fff}
.chat-title{position:relative;flex:1;min-width:0}
.chat-title b{display:block;font-size:1.15rem;line-height:1.1}
.chat-title small{font-weight:700;opacity:.85;font-size:.8rem}
.chat-icon{position:relative;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;font-weight:900;font-size:1.05rem;cursor:pointer;transition:background .2s}
.chat-icon:hover{background:rgba(255,255,255,.3)}

/* mensajes */
.chat-log{flex:1;overflow-y:auto;padding:18px 14px 8px;display:flex;flex-direction:column;gap:10px;background:
  radial-gradient(circle at 1px 1px,#E9E2FB 1.2px,transparent 1.4px) 0 0/18px 18px,#FCFBFF;scroll-behavior:smooth}
.chat-day{align-self:center;font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.12em;color:var(--muted);background:#fff;padding:4px 10px;border-radius:999px;margin-bottom:4px}
.msg{display:flex;gap:8px;max-width:88%;animation:msgIn .35s var(--ease) both}
.msg.bot{align-self:flex-start}
.msg.user{align-self:flex-end;flex-direction:row-reverse}
.msg-ava{width:30px;height:30px;border-radius:50%;background:var(--t-purple);display:grid;place-items:center;flex:none;align-self:flex-end}
.msg-ava img{width:22px;margin-top:5px}
.msg.user .msg-ava{display:none}
.bubble-c{padding:11px 14px;border-radius:20px;font-size:.95rem;line-height:1.45;white-space:pre-line;word-wrap:break-word}
.msg.bot .bubble-c{background:#fff;color:var(--ink);border-bottom-left-radius:6px;box-shadow:0 4px 14px -8px rgba(0,40,139,.3)}
.msg.user .bubble-c{background:var(--navy);color:#fff;border-bottom-right-radius:6px}
.msg.error .bubble-c{background:var(--t-coral);color:#9B2C25}
.msg-time{display:block;margin-top:4px;font-size:.66rem;opacity:.6;font-weight:700}
.msg-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.msg-links a{font-weight:900;font-size:.82rem;text-decoration:none;color:var(--purple);background:var(--t-purple);padding:6px 12px;border-radius:999px}
.msg-links a:hover{background:var(--purple);color:#fff}

/* escribiendo… */
.typing .bubble-c{display:flex;gap:5px;padding:14px 16px}
.typing i{width:8px;height:8px;border-radius:50%;background:var(--purple);opacity:.4;animation:typing 1.2s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}

/* sugerencias */
.chat-suggest{display:flex;gap:8px;overflow-x:auto;padding:8px 14px 4px;scrollbar-width:none}
.chat-suggest::-webkit-scrollbar{display:none}
.chat-suggest button{flex:none;border:2px solid #E6E0FA;background:#fff;color:var(--navy);font-weight:800;font-size:.84rem;padding:7px 13px;border-radius:999px;cursor:pointer;transition:border-color .2s,background .2s}
.chat-suggest button:hover{border-color:var(--purple);background:var(--t-purple)}

/* caja de texto */
.chat-form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 8px;border-top:1px solid #F0ECFB}
.chat-form textarea{flex:1;resize:none;max-height:110px;min-height:46px;font:inherit;font-weight:600;font-size:.95rem;padding:12px 14px;border-radius:22px;border:2px solid #E6E0FA;background:#FBFAFF;color:var(--ink);line-height:1.35}
.chat-form textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px rgba(149,87,250,.15)}
.chat-send{width:46px;height:46px;border-radius:50%;border:0;background:var(--yellow);color:var(--navy);font-size:1.15rem;font-weight:900;cursor:pointer;flex:none;box-shadow:0 4px 0 #C98C00;transition:transform .15s,opacity .2s}
.chat-send:active{transform:translateY(3px)}
.chat-send:disabled{opacity:.45;cursor:not-allowed}
.chat-legal{padding:0 16px 12px;font-size:.7rem;color:var(--muted);line-height:1.35}
.chat-legal b{color:var(--navy)}
.chat-mode{display:inline-block;font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:2px 7px;border-radius:999px;background:var(--t-yellow);color:#8A5A00;margin-left:6px;vertical-align:middle}

.gumi-fab .fab-close{position:absolute;inset:0;display:grid;place-items:center;font-size:1.6rem;font-weight:900;color:var(--navy);opacity:0;transform:rotate(-90deg);transition:opacity .25s,transform .3s var(--ease)}
.gumi-fab.chatting img{opacity:0;transform:scale(.6)}
.gumi-fab.chatting .fab-close{opacity:1;transform:none}
.gumi-fab img{transition:opacity .25s,transform .3s var(--ease)}
.guide{cursor:pointer}
.guide-cta{display:inline-block;margin-top:8px;font-weight:900;font-size:.82rem;color:var(--purple)}

@keyframes msgIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes typing{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}

@media (max-width:560px){
  .chat{right:0;left:0;bottom:0;top:0;width:auto;height:auto;border-radius:0;transform:translateY(40px)}
  .chat.open{transform:none}
  .chat.open ~ .gumi-fab{display:none}
}
@media (prefers-reduced-motion:reduce){.msg,.typing i{animation:none}}
.chat-title small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-form textarea{overflow-y:hidden}
.chat-log::-webkit-scrollbar{width:6px}
.chat-log::-webkit-scrollbar-button{display:none;height:0}
.chat-log::-webkit-scrollbar-thumb{border:0;background:#D9CCFB}
.chat-log::-webkit-scrollbar-track{background:transparent}
@media (max-width:560px){.chat-lock,.chat-lock body{overflow:hidden}}

/* --- correcciones: botones del encabezado y Gumi dentro del círculo --- */
.chat-head::after{pointer-events:none;z-index:0}
.chat-avatar,.chat-title,.chat-icon{z-index:1}
.chat-avatar img{width:auto;margin:0}
.ava-clip{position:absolute;inset:0;border-radius:50%;overflow:hidden;display:grid;place-items:start center}
.ava-clip img{width:34px;margin-top:5px}
.msg-ava{overflow:hidden;place-items:start center}
.msg-ava img{width:20px;margin-top:3px}
.fab-clip{position:absolute;inset:4px;border-radius:50%;overflow:hidden;display:grid;place-items:start center;background:radial-gradient(circle at 35% 30%,#fff,var(--t-purple))}
.gumi-fab img{width:44px;margin-top:6px}
.gumi-fab.chatting .fab-clip{opacity:0;transform:scale(.6);transition:opacity .25s,transform .3s var(--ease)}
.fab-clip{transition:opacity .25s,transform .3s var(--ease)}
@media (max-width:560px){.gumi-fab img{width:38px}}
