/* =====================================================================
   Credi — recycled verbatim from CM Beyer's Bea assistant widget.
   Same launcher, panel, header, message bubbles, chips and input as
   cmbeyer.co.uk; only the name (Bea -> Credi), the copy and the backend
   are changed. The teal (#11676A) already matches this site's --teal.
   ===================================================================== */
#bea{position:fixed;bottom:16px;right:16px;z-index:9991;font-family:var(--font-body)}
#bea-launch{position:relative;width:56px;height:56px;border:none;border-radius:50%;background:#11676A;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.22);transition:transform .15s,box-shadow .15s}
#bea-launch:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(0,0,0,.28)}
#bea-launch:focus-visible{outline:3px solid #7fd4d4;outline-offset:2px}
#bea-dot{position:absolute;top:3px;right:3px;width:11px;height:11px;border-radius:50%;background:#37d27a;border:2px solid #11676A}
#bea-panel{position:absolute;bottom:70px;right:0;width:350px;max-width:calc(100vw - 28px);height:480px;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px - env(safe-area-inset-top,0px));background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.22);display:flex;flex-direction:column;overflow:hidden}
#bea-panel[hidden]{display:none}
.bea-head{display:flex;align-items:center;gap:.6rem;padding:.8rem .9rem;background:#11676A;color:#fff}
.bea-ava{display:flex;flex:0 0 auto}
.bea-id{display:flex;flex-direction:column;line-height:1.15;flex:1}
.bea-id b{font-size:.98rem}
.bea-id small{font-size:.7rem;opacity:.85}
#bea-close{background:none;border:none;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;padding:0 .2rem;opacity:.9}
#bea-close:hover{opacity:1}
.bea-log{flex:1;overflow-y:auto;padding:1rem .9rem;display:flex;flex-direction:column;gap:.6rem;background:#f7f9f9}
.bea-msg{max-width:85%;padding:.6rem .8rem;border-radius:12px;font-size:.88rem;line-height:1.5}
.bea-msg a{color:inherit;font-weight:600;text-decoration:underline}
.bea-msg.bot{align-self:flex-start;background:#fff;color:#1a1a1a;border:1px solid #e5e7eb;border-bottom-left-radius:4px}
.bea-msg.me{align-self:flex-end;background:#11676A;color:#fff;border-bottom-right-radius:4px}
.bea-msg ul{margin:.3rem 0 0;padding-left:1.1rem}
.bea-links{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
.bea-links a{font-size:.76rem;font-weight:600;color:#11676A;background:#dff0f0;border-radius:99px;padding:.28rem .7rem;text-decoration:none}
.bea-links a:hover{background:#cfe9e9}
.bea-typing{align-self:flex-start;display:flex;gap:4px;padding:.7rem .8rem}
.bea-typing span{width:7px;height:7px;border-radius:50%;background:#9bb;animation:beaB 1s infinite}
.bea-typing span:nth-child(2){animation-delay:.15s}.bea-typing span:nth-child(3){animation-delay:.3s}
@keyframes beaB{0%,60%,100%{opacity:.3}30%{opacity:1}}
.bea-chips{display:flex;flex-wrap:wrap;gap:.4rem;padding:.6rem .9rem 0}
.bea-chips button{font-size:.76rem;color:#11676A;background:#fff;border:1px solid #cfe2e2;border-radius:99px;padding:.3rem .7rem;cursor:pointer;font-family:inherit}
.bea-chips button:hover{background:#dff0f0}
.bea-form{display:flex;gap:.5rem;padding:.7rem .9rem .5rem;align-items:center}
.bea-hp{position:absolute;left:-9999px;width:1px;height:1px}
#bea-input{flex:1;font-family:inherit;font-size:.9rem;padding:.6rem .75rem;border:1px solid #d7dede;border-radius:99px;outline:none}
#bea-input:focus{border-color:#11676A;box-shadow:0 0 0 3px #dff0f0}
#bea-send{flex:0 0 auto;width:40px;height:40px;border:none;border-radius:50%;background:#11676A;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
#bea-send:disabled{opacity:.5;cursor:default}
.bea-foot{font-size:.68rem;color:#8a9a9a;text-align:center;margin:0;padding:0 .9rem .7rem}
.bea-foot a{color:#11676A}
@media(max-width:480px){#bea-panel{width:calc(100vw - 20px)}#bea{bottom:12px;right:12px}}
@media(prefers-reduced-motion:reduce){#bea-launch,.bea-typing span{transition:none;animation:none}}
