.gtpsb-widget{position:fixed;bottom:var(--gtpsb-offset);z-index:999999;display:none;font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.gtpsb-widget.gtpsb-right{right:var(--gtpsb-offset)}
.gtpsb-widget.gtpsb-left{left:var(--gtpsb-offset)}

/* Floating GoToPlace button */
.gtpsb-button{position:relative;width:72px;height:72px;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:0 12px 34px rgba(42,91,220,.30);color:#fff;font-weight:800;cursor:pointer;transition:.2s;overflow:hidden}
.gtpsb-button:hover{transform:translateY(-2px) scale(1.03)}
.gtpsb-button>img{width:58px;height:58px;object-fit:contain;display:block}
.gtpsb-button i{position:absolute;z-index:3;right:10px;top:10px;width:13px;height:13px;box-sizing:border-box;display:block;background:#27c86f;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px rgba(23,42,73,.16);pointer-events:none}

/* Desktop chat */
.gtpsb-chat-card{position:absolute;bottom:88px;width:420px;max-width:calc(100vw - 32px);padding:18px;background:#fff;border:1px solid #e5eaf0;border-radius:22px;box-shadow:0 20px 60px rgba(20,36,61,.24);opacity:0;visibility:hidden;transform:translateY(8px) scale(.98);transition:opacity .18s,visibility .18s,transform .18s;box-sizing:border-box}
.gtpsb-right .gtpsb-chat-card{right:0}
.gtpsb-left .gtpsb-chat-card{left:0}
.gtpsb-widget.open .gtpsb-chat-card{opacity:1;visibility:visible;transform:none}
.gtpsb-chat-close{position:absolute;right:12px;top:9px;z-index:4;border:0;background:transparent;font-size:25px;line-height:1;color:#7b8794;cursor:pointer;padding:5px}
.gtpsb-chat-brand{display:flex;gap:11px;align-items:center;padding-right:152px;position:relative;min-height:50px}
.gtpsb-chat-logo{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:#fff;border:1px solid #e5eaf0;overflow:hidden;flex:0 0 50px}
.gtpsb-chat-logo img{width:43px;height:43px;object-fit:contain;display:block}
.gtpsb-chat-brand strong{display:block;font-size:18px;color:#172033}
.gtpsb-chat-brand small{display:block;color:#778397;margin-top:1px;font-size:13px}
.gtpsb-chat-greeting{margin:15px 0;padding:13px 14px;background:#f2f7ff;border-radius:14px;color:#253247;font-size:15px}
.gtpsb-form-title{font-weight:700;margin:0 0 8px;color:#172033}
.gtpsb-chat-form textarea,.gtpsb-chat-form input[type=text]{box-sizing:border-box;width:100%;margin:0 0 10px;padding:12px 13px;border:1px solid #d9e1ea;border-radius:11px;background:#fff;color:#172033;font:inherit;outline:none}
.gtpsb-chat-form textarea:focus,.gtpsb-chat-form input[type=text]:focus{border-color:#7ab7f3;box-shadow:0 0 0 3px rgba(22,126,232,.09)}
.gtpsb-chat-form textarea{resize:vertical;min-height:108px}
.gtpsb-chat-form button{width:100%;min-height:48px;border:0;border-radius:11px;padding:12px 14px;background:#167ee8;color:#fff;font-weight:700;font-size:15px;cursor:pointer}
.gtpsb-chat-form button[disabled]{opacity:.6;cursor:wait}
.gtpsb-form-status{min-height:19px;margin-top:8px;font-size:13px;color:#1a7f42}
.gtpsb-form-status.error{color:#b42318}
.gtpsb-open-max{display:block;margin-top:10px;padding:12px 14px;border-radius:11px;text-align:center;text-decoration:none!important;background:#eef2ff;color:#2857ad!important;font-weight:700}
.gtpsb-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}

.gtpsb-anim-pulse .gtpsb-button{animation:gtpsb-pulse 2.2s infinite}
.gtpsb-anim-bounce .gtpsb-button{animation:gtpsb-bounce 2.4s infinite}
.gtpsb-anim-shake .gtpsb-button{animation:gtpsb-shake 4s infinite}
.gtpsb-anim-glow .gtpsb-button{animation:gtpsb-glow 2s infinite}
@keyframes gtpsb-pulse{50%{transform:scale(1.06)}}
@keyframes gtpsb-bounce{0%,80%,100%{transform:translateY(0)}90%{transform:translateY(-8px)}}
@keyframes gtpsb-shake{0%,92%,100%{transform:rotate(0)}94%{transform:rotate(-6deg)}96%{transform:rotate(6deg)}98%{transform:rotate(-3deg)}}
@keyframes gtpsb-glow{50%{box-shadow:0 12px 40px rgba(84,92,255,.65)}}

.gtpsb-contact-panel{position:fixed;left:24px;bottom:24px;z-index:999998;font:14px/1.3 system-ui,sans-serif}
.gtpsb-contact-toggle{border:0;border-radius:999px;background:#0b84f3;color:#fff;padding:12px 18px;font-weight:700;box-shadow:0 8px 28px rgba(0,0,0,.18);cursor:pointer}
.gtpsb-contact-menu{display:none;position:absolute;left:0;bottom:52px;min-width:170px;background:#fff;border-radius:14px;padding:8px;box-shadow:0 12px 32px rgba(0,0,0,.16)}
.gtpsb-contact-panel.open .gtpsb-contact-menu{display:block}
.gtpsb-contact-menu a{display:block;text-decoration:none;padding:9px 10px;border-radius:8px;color:#1f2937}
.gtpsb-contact-menu a:hover{background:#f1f5f9}
.gtpsb-share-wrap{margin:20px 0}.gtpsb-share-button{border:0;border-radius:9px;padding:10px 16px;background:#0b84f3;color:#fff;font-weight:700;cursor:pointer}

/* Mobile: the opened dialog is centered in the viewport and uses almost all available width. */
@media(max-width:700px){
  .gtpsb-widget{--gtpsb-offset:14px!important}
  .gtpsb-widget.gtpsb-right{right:14px}
  .gtpsb-widget.gtpsb-left{left:14px}
  .gtpsb-button{width:68px;height:68px}
  .gtpsb-button>img{width:54px;height:54px}
  .gtpsb-button i{right:9px;top:9px;width:12px;height:12px;border-width:2px}
  .gtpsb-chat-card,
  .gtpsb-right .gtpsb-chat-card,
  .gtpsb-left .gtpsb-chat-card{
    position:fixed;
    left:50%;
    right:auto;
    top:50%;
    bottom:auto;
    width:calc(100vw - 24px);
    max-width:440px;
    max-height:calc(100vh - 28px);
    padding:18px;
    border-radius:22px;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    transform:translate(-50%,-47%) scale(.985);
  }
  .gtpsb-widget.open .gtpsb-chat-card{transform:translate(-50%,-50%) scale(1)}
  .gtpsb-chat-logo{width:52px;height:52px;flex-basis:52px}
  .gtpsb-chat-logo img{width:45px;height:45px}
  .gtpsb-chat-brand strong{font-size:19px}
  .gtpsb-chat-brand small{font-size:13px}
  .gtpsb-chat-greeting{font-size:15.5px;padding:13px 14px;margin:15px 0}
  .gtpsb-form-title{font-size:15px;margin-bottom:9px}
  .gtpsb-chat-form textarea,.gtpsb-chat-form input[type=text]{font-size:16px;padding:13px 14px;border-radius:12px}
  .gtpsb-chat-form textarea{min-height:120px;max-height:30vh}
  .gtpsb-chat-form button{min-height:52px;font-size:16px;border-radius:12px}
  .gtpsb-open-max{padding:13px 14px;font-size:15.5px;border-radius:12px}
  .gtpsb-contact-panel{left:14px;bottom:14px}
}

@media(max-width:380px){
  .gtpsb-chat-card,
  .gtpsb-right .gtpsb-chat-card,
  .gtpsb-left .gtpsb-chat-card{width:calc(100vw - 16px);padding:15px;max-height:calc(100vh - 16px)}
  .gtpsb-chat-form textarea{min-height:105px}
}


/* 1.5.1 — chat sessions, privacy-friendly retention and header controls. */
.gtpsb-new-session{display:none;position:absolute;right:38px;top:9px;min-height:32px;padding:5px 9px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#526173;font:inherit;font-size:12px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap}
.gtpsb-new-session:hover{background:#eef5ff;color:#1d64b5;border-color:#cfe1f5}
.gtpsb-new-session:disabled{opacity:.55;cursor:wait}
.gtpsb-widget.has-thread .gtpsb-new-session{display:block}
.gtpsb-session-divider{display:flex;align-items:center;gap:9px;width:100%;margin:7px 0;color:#94a0af;font-size:11.5px;line-height:1.2;text-align:center}
.gtpsb-session-divider:before,.gtpsb-session-divider:after{content:"";height:1px;flex:1;background:#e7ecf2}
.gtpsb-session-divider span{flex:0 0 auto;padding:0 3px}

/* Persistent two-way GoToPlace conversation */
.gtpsb-chat-messages{display:none;max-height:230px;overflow-y:auto;overscroll-behavior:contain;margin:0 0 12px;padding:2px 2px 2px 0;scrollbar-width:thin}
.gtpsb-chat-messages.has-messages{display:flex;flex-direction:column;gap:8px}
.gtpsb-msg{display:flex;width:100%}
.gtpsb-msg-text{max-width:84%;padding:10px 12px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;box-sizing:border-box;font-size:14.5px;line-height:1.4}
.gtpsb-msg-visitor{justify-content:flex-end}.gtpsb-msg-visitor .gtpsb-msg-text{background:#167ee8;color:#fff;border-bottom-right-radius:5px}
.gtpsb-msg-owner{justify-content:flex-start}.gtpsb-msg-owner .gtpsb-msg-text{background:#f1f5f9;color:#172033;border-bottom-left-radius:5px}
@media(max-width:700px){.gtpsb-chat-messages{max-height:28vh}.gtpsb-msg-text{max-width:88%;font-size:15.5px;padding:11px 13px}}

/* 1.3.1 — conversation mode: once a visitor has started chatting, the widget behaves like a normal messenger. */
.gtpsb-widget.has-thread .gtpsb-chat-card{
  height:min(600px,calc(100vh - 128px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding-bottom:14px;
}
.gtpsb-widget.has-thread .gtpsb-chat-brand{flex:0 0 auto;padding-bottom:12px;border-bottom:1px solid #edf1f6}
.gtpsb-widget.has-thread .gtpsb-chat-greeting,
.gtpsb-widget.has-thread .gtpsb-form-title,
.gtpsb-widget.has-thread .gtpsb-chat-form input[name="contact"],
.gtpsb-widget.has-thread .gtpsb-open-max{display:none!important}
.gtpsb-widget.has-thread .gtpsb-chat-messages{
  display:flex;
  flex:1 1 auto;
  min-height:180px;
  max-height:none;
  flex-direction:column;
  gap:9px;
  overflow-y:auto;
  margin:12px -4px 10px 0;
  padding:4px 8px 8px 0;
  scroll-behavior:smooth;
}
.gtpsb-widget.has-thread .gtpsb-chat-form{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:end;
  padding-top:10px;
  border-top:1px solid #edf1f6;
  background:#fff;
}
.gtpsb-widget.has-thread .gtpsb-chat-form textarea{
  grid-column:1;
  min-height:48px;
  height:48px;
  max-height:112px;
  resize:none;
  margin:0;
  padding:12px 14px;
  line-height:1.35;
  border-radius:16px;
  overflow-y:auto;
}
.gtpsb-widget.has-thread .gtpsb-chat-form button{
  grid-column:2;
  width:auto;
  min-width:100px;
  min-height:48px;
  margin:0;
  padding:11px 17px;
  border-radius:16px;
  white-space:nowrap;
}
.gtpsb-widget.has-thread .gtpsb-form-status{
  grid-column:1/-1;
  min-height:0;
  margin:0;
  font-size:12px;
  line-height:1.2;
}
.gtpsb-msg-bubble{max-width:84%;display:flex;flex-direction:column}
.gtpsb-msg-text{max-width:100%}
.gtpsb-msg-time{margin-top:3px;padding:0 5px;font-size:10.5px;line-height:1;color:#9aa5b4}
.gtpsb-msg-visitor .gtpsb-msg-bubble{align-items:flex-end}
.gtpsb-msg-owner .gtpsb-msg-bubble{align-items:flex-start}
.gtpsb-msg-visitor .gtpsb-msg-time{text-align:right}

@media(max-width:700px){
  .gtpsb-widget.has-thread .gtpsb-chat-card,
  .gtpsb-widget.has-thread.gtpsb-right .gtpsb-chat-card,
  .gtpsb-widget.has-thread.gtpsb-left .gtpsb-chat-card{
    height:min(76vh,650px);
    max-height:calc(100vh - 28px);
    overflow:hidden;
  }
  .gtpsb-widget.has-thread .gtpsb-chat-messages{min-height:200px;max-height:none;margin-top:10px}
  .gtpsb-widget.has-thread .gtpsb-chat-form{grid-template-columns:minmax(0,1fr) auto;gap:7px}
  .gtpsb-widget.has-thread .gtpsb-chat-form textarea{min-height:50px;height:50px;max-height:104px;font-size:16px;padding:13px 14px}
  .gtpsb-widget.has-thread .gtpsb-chat-form button{min-width:92px;min-height:50px;padding:11px 14px;font-size:15px}
  .gtpsb-msg-bubble{max-width:88%}
}
@media(max-width:380px){
  .gtpsb-widget.has-thread .gtpsb-chat-form button{min-width:82px;padding-left:11px;padding-right:11px;font-size:14px}
}

.gtpsb-widget:not(.has-thread) .gtpsb-chat-brand{padding-right:32px}
@media(max-width:700px){
  .gtpsb-chat-brand{padding-right:132px}
  .gtpsb-new-session{right:38px;top:10px;padding:5px 8px;font-size:11.5px}
}
@media(max-width:410px){
  .gtpsb-chat-brand{padding-right:78px}
  .gtpsb-new-session{width:34px;height:34px;padding:0;font-size:18px;line-height:32px;text-align:center}
  .gtpsb-new-session span{display:none}
}
