/* Gratuity chatbot: tokens mirror the site's :root and .gratuity-site.dark variables */
#gcb-root{
  --g-gold:#BE882C; --g-deep:#8C671F; --g-soft:#E4C784; --g-mist:#F7EEDA;
  --g-ink:#221C14; --g-ink-soft:#5B4E3E; --g-stone:#7A6E56;
  --g-surface:#FFFFFF; --g-bg:#FCFAF5; --g-line:#EAE0C9;
  --g-shadow:0 18px 50px rgba(34,28,20,.22);
  position:fixed; right:20px; bottom:20px; z-index:99999;
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; line-height:1.55;
}
#gcb-root[data-theme="dark"]{
  --g-gold:#C89637; --g-deep:#DBB25A; --g-soft:#E4C784; --g-mist:#1C1710;
  --g-ink:#F3ECDA; --g-ink-soft:#CFC3AB; --g-stone:#A2957A;
  --g-surface:#211A11; --g-bg:#181309; --g-line:#38301F;
  --g-shadow:0 18px 50px rgba(0,0,0,.6);
}
#gcb-root *,#gcb-root *::before,#gcb-root *::after{box-sizing:border-box;}
#gcb-root button{font-family:inherit;margin:0;}

/* Launcher */
#gcb-launcher{
  position:relative; width:58px; height:58px; border-radius:50%; padding:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:var(--g-gold) !important; color:#fff !important; border:0 !important;
  box-shadow:0 10px 26px rgba(140,103,31,.38);
  transition:transform .2s ease, box-shadow .2s ease, background-color .3s ease;
}
#gcb-launcher:hover,#gcb-launcher:focus,#gcb-launcher:active{
  background:var(--g-deep) !important; color:#fff !important; transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(140,103,31,.45); outline:none;
}
#gcb-root[data-theme="dark"] #gcb-launcher:hover{background:var(--g-gold) !important;filter:brightness(1.1);}
#gcb-launcher:focus-visible{outline:2px solid var(--g-deep) !important;outline-offset:3px;}
#gcb-launcher svg{width:27px;height:27px;position:absolute;transition:opacity .2s ease,transform .25s ease;}
#gcb-launcher .gcb-ico-close{opacity:0;transform:rotate(-70deg) scale(.6);}
#gcb-root.is-open #gcb-launcher .gcb-ico-chat{opacity:0;transform:rotate(70deg) scale(.6);}
#gcb-root.is-open #gcb-launcher .gcb-ico-close{opacity:1;transform:none;}
.gcb-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--g-gold);opacity:0;animation:gcbPulse 2.8s ease-out 1.2s 3;}
#gcb-root.is-open .gcb-pulse{display:none;}
@keyframes gcbPulse{0%{transform:scale(1);opacity:.55;}100%{transform:scale(1.7);opacity:0;}}

/* Panel */
#gcb-panel{
  position:absolute; right:0; bottom:74px; width:380px; max-width:calc(100vw - 24px);
  height:min(610px, calc(100vh - 120px)); display:flex; flex-direction:column; overflow:hidden;
  background:var(--g-surface); color:var(--g-ink);
  border:1.5px solid var(--g-line); border-radius:24px; box-shadow:var(--g-shadow);
  opacity:0; visibility:hidden; transform:translateY(14px) scale(.96); transform-origin:bottom right;
  transition:opacity .22s ease, transform .25s cubic-bezier(.4,0,.2,1), visibility .22s, background-color .3s ease, border-color .3s ease;
}
#gcb-root.is-open #gcb-panel{opacity:1;visibility:visible;transform:none;}

.gcb-head{display:flex;align-items:center;gap:10px;padding:14px 14px 14px 16px;color:#fff;
  background:linear-gradient(135deg,var(--g-deep),var(--g-gold));}
#gcb-root[data-theme="dark"] .gcb-head{background:linear-gradient(135deg,#8C671F,#C89637);}
.gcb-avatar{width:50px;height:50px;border-radius:50%;background:#FFFFFF;border:2.5px solid #FFFFFF;box-shadow:0 3px 10px rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;}
.gcb-avatar img{width:36px;height:36px;object-fit:contain;display:block;margin:0;padding:0;border:0;max-width:none;opacity:1;filter:brightness(.86) saturate(1.25) contrast(1.08);}
.gcb-head-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25;}
.gcb-head-text strong{font-size:.98rem;font-weight:700;color:#fff;letter-spacing:-.01em;}
.gcb-head-text span{font-size:.74rem;color:rgba(255,255,255,.85);}
#gcb-root .gcb-icon-btn{width:32px;height:32px;padding:0;border:0;border-radius:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.14) !important;color:#fff !important;transition:background-color .2s ease;}
#gcb-root .gcb-icon-btn:hover,#gcb-root .gcb-icon-btn:focus{background:rgba(255,255,255,.28) !important;color:#fff !important;outline:none;}
#gcb-root .gcb-icon-btn:focus-visible{outline:2px solid #fff !important;outline-offset:1px;}
.gcb-icon-btn svg{width:17px;height:17px;}

/* Messages */
#gcb-messages{flex:1;overflow-y:auto;padding:16px 14px 8px;background:var(--g-bg);display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth;
  transition:background-color .3s ease;}
#gcb-messages::-webkit-scrollbar{width:6px;}
#gcb-messages::-webkit-scrollbar-thumb{background:var(--g-line);border-radius:6px;}
.gcb-msg{max-width:86%;padding:10px 14px;border-radius:18px;word-wrap:break-word;overflow-wrap:anywhere;font-size:.88rem;animation:gcbIn .22s ease;}
.gcb-msg p{margin:0;} .gcb-msg p + p,.gcb-msg p + ul,.gcb-msg ul + p,.gcb-msg ol + p,.gcb-msg p + ol{margin-top:7px;}
.gcb-msg ul,.gcb-msg ol{margin:7px 0 0;padding-left:18px;} .gcb-msg li + li{margin-top:3px;}
.gcb-msg strong{font-weight:700;}
.gcb-msg a{color:inherit;text-decoration:underline;}
.gcb-bot{align-self:flex-start;background:var(--g-surface);color:var(--g-ink-soft);border:1px solid var(--g-line);border-bottom-left-radius:6px;}
.gcb-bot strong{color:var(--g-ink);} .gcb-bot a{color:var(--g-deep);}
.gcb-user{align-self:flex-end;background:var(--g-gold);color:#fff;border-bottom-right-radius:6px;}
.gcb-err{align-self:flex-start;background:var(--g-mist);color:var(--g-deep);border:1px dashed var(--g-soft);border-bottom-left-radius:6px;}
@keyframes gcbIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

.gcb-typing{align-self:flex-start;display:flex;gap:5px;padding:13px 15px;background:var(--g-surface);border:1px solid var(--g-line);border-radius:18px;border-bottom-left-radius:6px;}
.gcb-typing i{width:7px;height:7px;border-radius:50%;background:var(--g-gold);opacity:.35;animation:gcbDot 1.1s infinite ease-in-out;}
.gcb-typing i:nth-child(2){animation-delay:.16s;} .gcb-typing i:nth-child(3){animation-delay:.32s;}
@keyframes gcbDot{0%,80%,100%{opacity:.3;transform:translateY(0);}40%{opacity:1;transform:translateY(-4px);}}

/* Suggestion chips */
#gcb-chips{display:flex;flex-wrap:wrap;gap:7px;padding:4px 14px 10px;background:var(--g-bg);transition:background-color .3s ease;}
#gcb-chips:empty{display:none;}
#gcb-root .gcb-chip{padding:7px 12px;border-radius:999px;cursor:pointer;font-size:.74rem;font-weight:600;
  background:var(--g-surface) !important;color:var(--g-ink) !important;border:1px solid var(--g-soft) !important;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
#gcb-root .gcb-chip:hover,#gcb-root .gcb-chip:focus{background:var(--g-gold) !important;color:#fff !important;border-color:var(--g-gold) !important;outline:none;}
#gcb-root .gcb-chip:focus-visible{outline:2px solid var(--g-deep) !important;outline-offset:2px;}

/* Input */
#gcb-form{display:flex;gap:8px;padding:10px 12px 6px;background:var(--g-surface);border-top:1px solid var(--g-line);transition:background-color .3s ease,border-color .3s ease;}
#gcb-root #gcb-input{flex:1;min-width:0;height:44px;padding:0 16px;border-radius:999px;font-size:13px;font-family:inherit;
  background:var(--g-surface);color:var(--g-ink);border:1px solid var(--g-line);outline:none;box-shadow:none;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .3s ease;}
#gcb-root[data-theme="dark"] #gcb-input{background:var(--g-bg);}
#gcb-root #gcb-input::placeholder{color:var(--g-stone);opacity:1;}
#gcb-root #gcb-input:focus{border-color:var(--g-gold);box-shadow:0 0 0 3px rgba(190,136,44,.14);}
#gcb-root #gcb-send{width:44px;height:44px;flex:0 0 auto;padding:0;border:0;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  background:var(--g-gold) !important;color:#fff !important;transition:background-color .2s ease,transform .15s ease,opacity .2s ease;}
#gcb-root #gcb-send:hover,#gcb-root #gcb-send:focus{background:var(--g-deep) !important;color:#fff !important;outline:none;transform:translateY(-1px);}
#gcb-root[data-theme="dark"] #gcb-send:hover{filter:brightness(1.1);background:var(--g-gold) !important;}
#gcb-root #gcb-send:focus-visible{outline:2px solid var(--g-deep) !important;outline-offset:2px;}
#gcb-send:disabled{opacity:.5;cursor:not-allowed;transform:none !important;}
#gcb-send svg{width:19px;height:19px;}
.gcb-foot{margin:0;padding:0 14px 10px;background:var(--g-surface);text-align:center;font-size:.66rem;color:var(--g-stone);transition:background-color .3s ease;}

/* Mobile */
@media (max-width:520px){
  #gcb-root{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));}
  #gcb-panel{position:fixed;left:10px;right:10px;bottom:calc(86px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;
    height:calc(100vh - 110px);height:calc(100dvh - 110px);border-radius:20px;}
  #gcb-launcher{width:54px;height:54px;}
  #gcb-root #gcb-input{font-size:16px;}
  .gcb-msg{font-size:.9rem;max-width:90%;}
}
@media (prefers-reduced-motion:reduce){
  #gcb-root *{animation:none !important;transition:none !important;}
}

/* Keep list bullets/numbers (site theme resets ul/ol) */
#gcb-root .gcb-msg ul{list-style:disc outside;padding-left:20px;margin:7px 0 0;}
#gcb-root .gcb-msg ol{list-style:decimal outside;padding-left:20px;margin:7px 0 0;}
#gcb-root .gcb-msg li{display:list-item;list-style:inherit;margin:0;}
#gcb-root .gcb-msg li + li{margin-top:4px;}
#gcb-root .gcb-msg li::marker{color:var(--g-gold);}

/* Voice */
#gcb-voice .gcb-v-off{display:none;}
#gcb-voice[aria-pressed="false"] .gcb-v-on{display:none;}
#gcb-voice[aria-pressed="false"] .gcb-v-off{display:block;}
#gcb-root .gcb-listen{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;padding:4px 10px 4px 8px;border-radius:999px;cursor:pointer;
  font-size:.7rem;font-weight:600;line-height:1.4;background:var(--g-mist) !important;color:var(--g-deep) !important;border:1px solid var(--g-soft) !important;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
#gcb-root .gcb-listen:hover,#gcb-root .gcb-listen:focus,#gcb-root .gcb-listen.is-playing{background:var(--g-gold) !important;color:#fff !important;border-color:var(--g-gold) !important;outline:none;}
#gcb-root .gcb-listen:focus-visible{outline:2px solid var(--g-deep) !important;outline-offset:2px;}
.gcb-listen svg{width:14px;height:14px;flex:0 0 auto;}
.gcb-listen .gcb-l-stop{display:none;}
.gcb-listen.is-playing .gcb-l-play{display:none;}
.gcb-listen.is-playing .gcb-l-stop{display:block;}
.gcb-listen.is-playing svg{animation:gcbTalk 1s ease-in-out infinite;}
@keyframes gcbTalk{0%,100%{transform:scale(1);}50%{transform:scale(1.18);}}

/* Greeting bubble */
#gcb-nudge{position:absolute;right:0;bottom:70px;display:flex;align-items:stretch;max-width:268px;
  background:var(--g-surface);border:1.5px solid var(--g-soft);border-radius:18px 18px 6px 18px;box-shadow:var(--g-shadow);
  animation:gcbNudge .35s cubic-bezier(.4,0,.2,1);transition:background-color .3s ease,border-color .3s ease;}
#gcb-nudge[hidden]{display:none;}
#gcb-root.is-open #gcb-nudge{display:none;}
@keyframes gcbNudge{from{opacity:0;transform:translateY(8px) scale(.96);}to{opacity:1;transform:none;}}
#gcb-root #gcb-nudge-open{flex:1;min-width:0;padding:11px 8px 11px 15px;border:0;border-radius:18px 0 0 6px;cursor:pointer;text-align:left;
  font-size:.82rem;font-weight:600;line-height:1.4;background:transparent !important;color:var(--g-ink) !important;}
#gcb-root #gcb-nudge-open:hover,#gcb-root #gcb-nudge-open:focus{color:var(--g-deep) !important;background:transparent !important;outline:none;}
#gcb-root #gcb-nudge-open:focus-visible{outline:2px solid var(--g-deep) !important;outline-offset:-2px;}
#gcb-root #gcb-nudge-x{flex:0 0 auto;width:32px;padding:0;border:0;cursor:pointer;display:flex;align-items:flex-start;justify-content:center;padding-top:9px;
  background:transparent !important;color:var(--g-stone) !important;}
#gcb-root #gcb-nudge-x:hover,#gcb-root #gcb-nudge-x:focus{color:var(--g-deep) !important;background:transparent !important;outline:none;}
#gcb-root #gcb-nudge-x:focus-visible{outline:2px solid var(--g-deep) !important;outline-offset:-2px;}
#gcb-nudge-x svg{width:14px;height:14px;}
#gcb-nudge[dir="rtl"] #gcb-nudge-open{text-align:right;}
@media (max-width:520px){#gcb-nudge{max-width:calc(100vw - 100px);bottom:64px;}}
