/* ==========================================================================
   Chat widget — floating assistant bubble + panel
   ========================================================================== */

.chat-launcher{
  position:fixed;right:24px;bottom:24px;z-index:996;
  width:58px;height:58px;border-radius:50%;
  background:var(--grad-red);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 32px rgba(228,58,41,.34);
  transition:transform .3s cubic-bezier(.16,1,.3,1);
}
.chat-launcher:hover{transform:translateY(-3px) scale(1.04);}
.chat-launcher svg{width:24px;height:24px;transition:opacity .2s ease,transform .2s ease;}
.chat-launcher .ic-close{position:absolute;opacity:0;transform:scale(.6);}
.chat-launcher.open .ic-chat{opacity:0;transform:scale(.6);}
.chat-launcher.open .ic-close{opacity:1;transform:scale(1);}
.chat-launcher .ic-chat{position:absolute;}
.chat-launcher .badge{
  position:absolute;top:-4px;right:-4px;
  width:18px;height:18px;border-radius:50%;
  background:#fff;color:var(--red);
  font-family:var(--font-mono);font-size:.62rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--red);
}
.chat-launcher.open .badge{display:none;}

.chat-panel{
  position:fixed;right:24px;bottom:94px;z-index:997;
  width:360px;max-width:calc(100vw - 32px);
  max-height:min(560px, calc(100vh - 140px));
  background:#fff;border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  border:1px solid var(--line);
  display:flex;flex-direction:column;
  overflow:hidden;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(16px) scale(.97);
  transform-origin:bottom right;
  transition:opacity .3s ease, transform .3s cubic-bezier(.16,1,.3,1), visibility .3s;
}
.chat-panel.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);}

.chat-head{
  background:var(--grad-dark);color:#fff;
  padding:18px 20px;
  display:flex;align-items:center;gap:12px;flex:none;
}
.chat-head .ch-avatar{
  width:38px;height:38px;border-radius:11px;background:var(--grad-red);
  display:flex;align-items:center;justify-content:center;flex:none;
}
.chat-head .ch-avatar svg{width:18px;height:18px;color:#fff;}
.chat-head b{display:block;font-family:var(--font-head);font-size:.95rem;}
.chat-head span{display:flex;align-items:center;gap:6px;font-size:.76rem;color:rgba(255,255,255,.6);}
.chat-head span::before{content:'';width:7px;height:7px;border-radius:50%;background:#3ecf6e;}

.chat-body{
  flex:1;overflow-y:auto;
  padding:18px 16px;
  display:flex;flex-direction:column;gap:10px;
  background:var(--bg);
}
.chat-msg{
  max-width:82%;
  padding:11px 14px;border-radius:14px;
  font-size:.88rem;line-height:1.5;
}
.chat-msg.bot{
  align-self:flex-start;
  background:#fff;color:var(--ink);
  border:1px solid var(--line);
  border-bottom-left-radius:4px;
}
.chat-msg.user{
  align-self:flex-end;
  background:var(--grad-dark);color:#fff;
  border-bottom-right-radius:4px;
}
.chat-quick{display:flex;flex-wrap:wrap;gap:8px;padding:2px 16px 14px;flex:none;background:var(--bg);}
.chat-quick button{
  padding:8px 14px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--ink-light);font-size:.78rem;font-weight:500;
  transition:all .25s ease;
}
.chat-quick button:hover{background:var(--dark);color:#fff;border-color:var(--dark);}

.chat-input-row{
  flex:none;display:flex;gap:8px;align-items:center;
  padding:14px 16px;border-top:1px solid var(--line);background:#fff;
}
.chat-input-row input{
  flex:1;border:1px solid var(--line);border-radius:999px;
  padding:11px 16px;font-size:.86rem;outline:none;
  transition:border-color .3s ease;
}
.chat-input-row input:focus{border-color:var(--red-light);}
.chat-input-row button{
  width:40px;height:40px;border-radius:50%;flex:none;
  background:var(--grad-red);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.chat-input-row button svg{width:16px;height:16px;}

@media(max-width:480px){
  .chat-launcher{right:16px;bottom:16px;width:52px;height:52px;}
  .chat-panel{right:16px;left:16px;bottom:80px;width:auto;max-width:none;}
}
