.ksc{--taupe:#a39585;--taupe-lt:#d8cbbc;--sand:#f2ebe0;--blush:#ecd0c6;--ink:#22252e;--body:#4a4742;--ease:cubic-bezier(.165,.84,.44,1);
  position:fixed;right:22px;bottom:22px;z-index:99999;font-family:'Jost','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}
.ksc *,.ksc *::before,.ksc *::after{box-sizing:border-box}
.ksc button{font:inherit}
.ksc :focus-visible{outline:2px solid var(--ink);outline-offset:3px}

.ksc-launcher{display:grid;place-items:center;width:62px;height:62px;border:0;border-radius:50%;background:var(--ink);color:var(--blush);cursor:pointer;
  box-shadow:0 12px 30px rgba(34,37,46,.28);transition:transform .4s var(--ease),background .4s var(--ease);margin-left:auto}
.ksc-launcher:hover{transform:translateY(-3px) scale(1.04);background:var(--taupe)}
.ksc.is-open .ksc-launcher{display:none}

.ksc-tease{position:absolute;right:0;bottom:78px;width:max-content;max-width:230px;background:#fff;color:var(--ink);padding:12px 16px;border-radius:18px 18px 4px 18px;
  font-size:.92rem;box-shadow:0 14px 34px rgba(34,37,46,.16);cursor:pointer;animation:ksc-pop .6s var(--ease)}
.ksc-tease[hidden]{display:none}
@keyframes ksc-pop{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}

.ksc-panel{display:flex;flex-direction:column;width:min(380px,calc(100vw - 32px));height:min(600px,calc(100vh - 44px));height:min(600px,calc(100dvh - 44px));
  background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 30px 70px rgba(34,37,46,.28);animation:ksc-pop .5s var(--ease)}
.ksc-panel[hidden]{display:none}

.ksc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;background:var(--sand);border-bottom:1px solid var(--taupe-lt)}
.ksc-who strong{display:block;font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:1.2rem;color:var(--ink);line-height:1.2}
.ksc-who span{display:block;font-size:.8rem;color:var(--taupe);margin-top:2px}
.ksc-close{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:#fff;color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;transition:background .3s}
.ksc-close:hover{background:var(--blush)}

.ksc-log{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px;background:#faf9f6;scroll-behavior:smooth}
.ksc-msg{max-width:86%;padding:12px 16px;border-radius:20px;font-size:.96rem;color:var(--body);white-space:pre-wrap;overflow-wrap:anywhere;animation:ksc-pop .35s var(--ease)}
.ksc-bot{align-self:flex-start;background:var(--sand);border-bottom-left-radius:6px}
.ksc-user{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:6px}
.ksc-msg a{color:inherit;text-decoration:underline;text-decoration-color:var(--taupe);text-underline-offset:3px;font-weight:500}
.ksc-user a{color:var(--blush)}

.ksc-typing{display:flex;gap:5px;padding:15px 18px}
.ksc-typing i{width:7px;height:7px;border-radius:50%;background:var(--taupe);animation:ksc-dot 1.2s infinite ease-in-out}
.ksc-typing i:nth-child(2){animation-delay:.15s}.ksc-typing i:nth-child(3){animation-delay:.3s}
@keyframes ksc-dot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}

.ksc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 14px;background:#faf9f6}
.ksc-chips[hidden]{display:none}
.ksc-chip{border:1px solid var(--taupe);background:transparent;color:var(--body);border-radius:999px;padding:8px 14px;font-size:.88rem;cursor:pointer;
  transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.ksc-chip:hover{background:var(--taupe);color:#fff;transform:translateY(-2px)}

.ksc-form{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--sand);background:#fff}
.ksc-input{flex:1;resize:none;border:1px solid var(--taupe-lt);border-radius:18px;padding:11px 16px;font:inherit;font-size:.96rem;color:var(--ink);background:#faf9f6;max-height:110px;outline:none;transition:border-color .3s}
.ksc-input:focus{border-color:var(--taupe)}
.ksc-send{flex:none;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--blush);color:var(--ink);cursor:pointer;transition:background .3s,transform .3s var(--ease)}
.ksc-send:hover:not(:disabled){background:var(--ink);color:var(--blush);transform:translateY(-2px)}
.ksc-send:disabled{opacity:.5;cursor:default}

.ksc-foot{padding:0 18px 14px;background:#fff;text-align:center}
.ksc-foot p{margin:0 0 4px;font-size:.74rem;line-height:1.4;color:#8d857b}
.ksc-book{font-size:.82rem;color:var(--ink);text-decoration:underline;text-decoration-color:var(--taupe);text-underline-offset:3px}

@media (max-width:576px){
  .ksc{right:12px;bottom:12px}
  .ksc-panel{width:calc(100vw - 24px);height:calc(100vh - 24px);height:calc(100dvh - 24px)}
  .ksc-input{font-size:16px} /* stops iPhones zooming in on focus */
}
@media (prefers-reduced-motion:reduce){
  .ksc *,.ksc *::before,.ksc *::after{animation:none!important;transition:none!important}
}
