/* ── CHAT WIDGET ────────────────────────────────────────────── */
#gy-chat{position:fixed;bottom:1.5rem;right:1.5rem;z-index:500;font-family:var(--font-body);}
#gy-chat-launcher{
  position:relative;
  width:60px;height:60px;border-radius:50%;
  border:1px solid var(--glass-border);
  background:linear-gradient(140deg,rgba(0,230,200,.9),rgba(0,188,212,.9));
  color:var(--obsidian);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 40px rgba(0,230,200,.35),0 4px 12px rgba(0,0,0,.4);
  transition:transform .25s ease,box-shadow .25s ease;
}
#gy-chat-launcher:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 14px 48px rgba(0,230,200,.5),0 4px 12px rgba(0,0,0,.4);}
#gy-chat-launcher svg{width:26px;height:26px;transition:opacity .2s ease,transform .2s ease;}
#gy-chat-launcher .gy-ic-close{position:absolute;opacity:0;transform:rotate(-45deg);}
#gy-chat[data-open="true"] #gy-chat-launcher .gy-ic-open{opacity:0;transform:rotate(45deg);}
#gy-chat[data-open="true"] #gy-chat-launcher .gy-ic-close{opacity:1;transform:rotate(0);}
#gy-chat-dot{
  position:absolute;top:2px;right:2px;
  width:14px;height:14px;border-radius:50%;
  background:#ff5a5a;border:2px solid var(--obsidian);
}
#gy-chat[data-open="true"] #gy-chat-dot,#gy-chat[data-seen="true"] #gy-chat-dot{display:none;}

/* "Need help?" speech bubble above the launcher */
#gy-chat-nudge{
  position:absolute;bottom:76px;right:0;
  display:flex;align-items:flex-start;gap:.35rem;
  width:max-content;max-width:min(250px,calc(100vw - 2rem));
  padding:.75rem .6rem .75rem .95rem;
  background:var(--surface);
  border:1px solid rgba(0,230,200,.28);
  border-radius:16px;border-bottom-right-radius:4px;
  box-shadow:0 14px 40px rgba(0,0,0,.5),0 0 24px rgba(0,230,200,.12);
  transform-origin:bottom right;
  opacity:0;transform:translateY(10px) scale(.85);
  visibility:hidden;pointer-events:none;
  transition:opacity .3s ease,transform .4s cubic-bezier(.34,1.56,.64,1),visibility 0s linear .4s;
}
/* tail pointing down at the launcher */
#gy-chat-nudge::after{
  content:'';position:absolute;bottom:-7px;right:22px;
  width:12px;height:12px;
  background:var(--surface);
  border-right:1px solid rgba(0,230,200,.28);
  border-bottom:1px solid rgba(0,230,200,.28);
  transform:rotate(45deg);
}
#gy-chat[data-nudge="true"]:not([data-seen="true"]):not([data-open="true"]) #gy-chat-nudge{
  opacity:1;transform:none;visibility:visible;pointer-events:auto;
  transition:opacity .3s ease,transform .4s cubic-bezier(.34,1.56,.64,1),visibility 0s;
}
#gy-chat-nudge-open{
  background:none;border:0;padding:0;text-align:left;cursor:pointer;
  color:var(--white);font-family:var(--font-body);
}
#gy-chat-nudge-open b{display:block;font-size:.92rem;font-weight:700;line-height:1.25;}
#gy-chat-nudge-open span{display:block;margin-top:.2rem;font-size:.75rem;line-height:1.4;color:var(--muted);}
#gy-chat-nudge-open:hover b{color:var(--teal);}
#gy-chat-nudge-x{
  flex-shrink:0;width:22px;height:22px;margin-top:-.2rem;
  border:0;border-radius:50%;background:none;cursor:pointer;
  color:var(--muted);font-size:1.1rem;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
#gy-chat-nudge-x:hover{color:var(--white);background:rgba(255,255,255,.08);}

#gy-chat-panel{
  position:absolute;bottom:76px;right:0;
  width:min(380px,calc(100vw - 3rem));
  height:min(560px,70vh);
  display:flex;flex-direction:column;
  background:var(--void);
  border:1px solid var(--glass-border);
  border-radius:20px;overflow:hidden;
  box-shadow:0 24px 70px rgba(0,0,0,.6),0 0 0 1px rgba(0,230,200,.06);
  transform-origin:bottom right;
  opacity:0;transform:translateY(12px) scale(.96);
  visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,transform .28s cubic-bezier(.4,0,.2,1),visibility 0s linear .28s;
}
#gy-chat[data-open="true"] #gy-chat-panel{
  opacity:1;transform:none;visibility:visible;pointer-events:auto;
  transition:opacity .28s ease,transform .28s cubic-bezier(.4,0,.2,1),visibility 0s;
}

#gy-chat-panel header{
  display:flex;align-items:center;gap:.65rem;
  padding:.9rem 1rem;
  background:linear-gradient(180deg,rgba(0,230,200,.14),rgba(0,230,200,.04));
  border-bottom:1px solid var(--glass-border);
}
#gy-chat-panel header .gy-badge{
  width:32px;height:32px;border-radius:50%;flex:0 0 32px;
  background:linear-gradient(140deg,var(--teal),var(--cyan));
  display:flex;align-items:center;justify-content:center;color:var(--obsidian);
}
#gy-chat-panel header .gy-badge svg{width:16px;height:16px;}
#gy-chat-title{flex:1;min-width:0;}
#gy-chat-title b{font-family:var(--font-display);font-size:1.15rem;letter-spacing:.04em;color:var(--white);display:block;line-height:1;}
#gy-chat-title span{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);}
#gy-chat-close{
  width:30px;height:30px;border-radius:8px;flex:0 0 30px;
  border:1px solid var(--glass-border);background:rgba(255,255,255,.04);
  color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;
  transition:color .2s,background .2s;
}
#gy-chat-close:hover{color:var(--white);background:rgba(255,255,255,.1);}

#gy-chat-log{
  flex:1;overflow-y:auto;
  padding:1rem;display:flex;flex-direction:column;gap:.6rem;
  background:
    radial-gradient(60% 40% at 100% 0,rgba(0,230,200,.06),transparent 70%),
    var(--void);
}
.gy-msg{
  max-width:82%;padding:.6rem .8rem;border-radius:14px;
  font-size:.82rem;line-height:1.5;color:var(--white);
  white-space:pre-wrap;word-wrap:break-word;
}
.gy-msg-bot{align-self:flex-start;background:var(--surface);border:1px solid rgba(255,255,255,.06);border-bottom-left-radius:4px;}
.gy-msg-user{align-self:flex-end;background:rgba(0,230,200,.16);border:1px solid rgba(0,230,200,.28);border-bottom-right-radius:4px;}
.gy-msg-emergency{align-self:flex-start;background:rgba(255,140,0,.12);border:1px solid rgba(255,140,0,.35);color:rgba(255,220,190,.95);border-bottom-left-radius:4px;}
.gy-msg-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem;}
.gy-act{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.42rem .7rem;border-radius:999px;
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.04em;
  border:1px solid var(--teal-mid);background:rgba(0,230,200,.08);color:var(--teal);
  text-decoration:none;transition:background .2s,border-color .2s;
}
.gy-act:hover{background:rgba(0,230,200,.18);border-color:var(--teal);}
.gy-msg-emergency .gy-act{border-color:rgba(255,140,0,.5);background:rgba(255,140,0,.15);color:rgba(255,200,150,.95);}
.gy-msg-emergency .gy-act:hover{background:rgba(255,140,0,.28);}

.gy-typing{align-self:flex-start;display:flex;gap:4px;padding:.7rem .8rem;background:var(--surface);border-radius:14px;border-bottom-left-radius:4px;}
.gy-typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:gy-bounce 1s infinite ease-in-out;}
.gy-typing span:nth-child(2){animation-delay:.15s;}
.gy-typing span:nth-child(3){animation-delay:.3s;}
@keyframes gy-bounce{0%,80%,100%{transform:translateY(0);opacity:.4;}40%{transform:translateY(-5px);opacity:1;}}

#gy-chat-quick{display:flex;flex-wrap:wrap;gap:.4rem;padding:.6rem 1rem 0;}
#gy-chat-quick:empty{display:none;}
.gy-chip{
  padding:.4rem .7rem;border-radius:999px;
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.03em;
  border:1px solid var(--glass-border);background:rgba(255,255,255,.03);color:var(--white);
  transition:border-color .2s,background .2s;
}
.gy-chip:hover{border-color:var(--teal);background:rgba(0,230,200,.1);color:var(--teal);}

#gy-chat-form{display:flex;gap:.5rem;padding:.8rem 1rem 1rem;border-top:1px solid var(--glass-border);background:var(--void);}
#gy-chat-input{
  flex:1;min-width:0;
  padding:.6rem .8rem;border-radius:10px;
  border:1px solid var(--glass-border);background:rgba(255,255,255,.04);
  color:var(--white);font-family:var(--font-body);font-size:.82rem;
}
#gy-chat-input::placeholder{color:var(--dimmer);}
#gy-chat-input:focus{outline:none;border-color:var(--teal);background:rgba(0,230,200,.06);}
#gy-chat-send{
  width:40px;height:40px;flex:0 0 40px;border-radius:10px;
  border:1px solid var(--glass-border);
  background:linear-gradient(140deg,var(--teal),var(--cyan));color:var(--obsidian);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s;
}
#gy-chat-send:hover{transform:scale(1.06);}
#gy-chat-send svg{width:16px;height:16px;}

@media(max-width:767px){
  #gy-chat{bottom:1rem;right:1rem;}
  #gy-chat-panel{
    position:fixed;inset:auto 0 0 0;
    width:100%;height:auto;max-height:82vh;
    border-radius:20px 20px 0 0;
    transform:translateY(100%);
  }
  #gy-chat[data-open="true"] #gy-chat-panel{transform:none;}
}
@media(prefers-reduced-motion:reduce){
  #gy-chat-panel,#gy-chat-launcher,#gy-chat-launcher svg,#gy-chat-send,#gy-chat-nudge{transition:none!important;}
  .gy-typing span{animation:none;}
}
