/* DilSeCraft helper bot (views/partials/support-bot.php + assets/js/support-bot.js)
   Dressed in the site's own palette: cream paper, ink, dusty rose, butter. */
.dsb{--ink:#302A2C;--ink-2:#4A4144;--cream:#FFFDF8;--paper:#F8F3EA;--warm:#FFFEFC;--blush:#F3D9D7;--rose:#C98287;--rose-d:#A9636A;
  --butter:#F5E8BD;--muted:#74696B;--line:#E8DFD2;--line-soft:#F0E9DE;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:85;
  font-family:var(--sans);color:var(--ink);transition:bottom .25s ease}
.dsb *{box-sizing:border-box}

/* ---------- launcher: Anvi's face ---------- */
.dsb__fab{position:relative;display:flex;align-items:center;padding:4px;border:0;border-radius:999px;cursor:pointer;
  background:var(--warm);color:var(--ink);box-shadow:0 0 0 1px var(--line-soft),0 10px 22px rgba(48,42,44,.10),0 22px 44px rgba(48,42,44,.12);
  transition:transform .2s cubic-bezier(.22,.8,.28,1),box-shadow .2s}
.dsb__fab:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--line),0 14px 28px rgba(48,42,44,.12),0 28px 56px rgba(48,42,44,.14)}
.dsb__fab-av{position:relative;width:56px;height:56px;border-radius:50%;flex:none;background:var(--blush)}
.dsb__fab-av img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.dsb__fab-on{position:absolute;right:1px;bottom:1px;width:14px;height:14px;border-radius:50%;background:#3BB273;border:2.5px solid var(--warm)}
.dsb__fab-x{display:none;width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--cream);place-items:center}
.dsb__fab-x svg{width:18px;height:18px}
.dsb.is-open .dsb__fab-av{display:none}
.dsb.is-open .dsb__fab-x{display:grid}
.dsb__dot{position:absolute;top:0;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--rose);color:#fff;
  font-size:.66rem;font-weight:700;line-height:14px;text-align:center;border:2px solid var(--warm);display:none}
.dsb.has-unread .dsb__dot{display:block}
.dsb__hint{position:absolute;right:76px;bottom:10px;width:max-content;max-width:230px;padding:12px 16px;border-radius:18px 18px 4px 18px;background:var(--warm);
  box-shadow:0 0 0 1px var(--line-soft),0 12px 30px rgba(48,42,44,.12);font-size:.86rem;line-height:1.35;cursor:pointer;
  animation:dsbHint .5s cubic-bezier(.22,.8,.28,1) both}
.dsb__hint b{display:block;font-family:var(--serif);font-size:1.15rem;font-weight:600;margin-bottom:1px}
.dsb.is-open .dsb__hint{display:none}
@keyframes dsbHint{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}

/* ---------- panel ---------- */
.dsb__panel{position:absolute;right:0;bottom:78px;width:min(396px,calc(100vw - 32px));height:min(640px,calc(100vh - 120px));
  display:flex;flex-direction:column;border-radius:26px;overflow:hidden;background:var(--cream);
  box-shadow:0 0 0 1px var(--line-soft),0 14px 30px rgba(48,42,44,.08),0 34px 80px rgba(48,42,44,.16);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.98);transform-origin:bottom right;
  transition:opacity .24s cubic-bezier(.22,.8,.28,1),transform .24s cubic-bezier(.22,.8,.28,1),visibility 0s linear .24s}
.dsb.is-open .dsb__panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}

.dsb__head{position:relative;display:flex;align-items:center;gap:12px;padding:16px 12px 14px 16px;overflow:hidden;
  background:linear-gradient(135deg,#FBEDEA 0%,#FBF3E4 60%,#F7F1E6 100%);border-bottom:1px solid var(--line-soft)}
.dsb__head::after{content:"";position:absolute;right:40px;top:-40px;width:140px;height:140px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(245,232,189,.8),transparent);pointer-events:none}
.dsb__av{position:relative;z-index:1;width:46px;height:46px;border-radius:50%;flex:none;background:var(--blush);box-shadow:0 0 0 3px #fff,0 4px 12px rgba(48,42,44,.12)}
.dsb__av img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.dsb__av::after{content:"";position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;background:#3BB273;border:2px solid #fff}
.dsb__who{position:relative;z-index:1;min-width:0}
.dsb__who b{display:block;font-family:var(--serif);font-size:1.5rem;font-weight:600;line-height:1}
.dsb__who b em{font-style:italic;font-weight:500;color:var(--rose);font-size:1.02rem;margin-left:3px}
.dsb__who small{display:block;font-size:.75rem;color:var(--muted);margin-top:5px}
.dsb__close{position:relative;z-index:1;margin-left:auto;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.75);
  color:var(--ink);cursor:pointer;display:grid;place-items:center;box-shadow:0 0 0 1px var(--line-soft)}
.dsb__close:hover{background:#fff}
.dsb__close svg{width:12px;height:12px}

.dsb__log{flex:1;overflow-y:auto;padding:18px 14px 10px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth;
  background:radial-gradient(90% 50% at 100% 0%,rgba(243,217,215,.35),transparent 60%),radial-gradient(70% 40% at 0% 100%,rgba(245,232,189,.25),transparent 60%),var(--cream)}

/* first screen: a small hello card */
.dsb__intro{flex-shrink:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 10px 6px}
.dsb__intro img{width:76px;height:76px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px #fff,0 8px 22px rgba(48,42,44,.12);margin-bottom:10px}
.dsb__intro h4{margin:0;font-family:var(--serif);font-size:1.7rem;font-weight:600;line-height:1.05}
.dsb__intro h4 em{font-style:italic;color:var(--rose);font-weight:500;padding:0 2px;background:linear-gradient(transparent 60%,var(--butter) 60%,var(--butter) 92%,transparent 92%)}
.dsb__intro p{margin:6px 0 0;font-size:.82rem;color:var(--muted)}

.dsb__row{flex-shrink:0;display:flex;align-items:flex-end;gap:8px}
.dsb__row--user{justify-content:flex-end}
.dsb__mini{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none;background:var(--blush);box-shadow:0 0 0 2px #fff}
.dsb__row--follow .dsb__mini{visibility:hidden}
.dsb__msg{max-width:84%;padding:10px 14px;border-radius:18px;font-size:.92rem;line-height:1.5;word-wrap:break-word;animation:dsbIn .26s ease both}
.dsb__msg a{color:var(--rose-d);font-weight:600;text-underline-offset:2px}
.dsb__msg strong{font-weight:700}
.dsb__msg--bot{background:var(--warm);border:1px solid var(--line-soft);border-bottom-left-radius:6px;box-shadow:0 1px 2px rgba(48,42,44,.04)}
.dsb__msg--agent{background:#FFF6E0;border:1px solid #F1E2B5;border-bottom-left-radius:6px}
.dsb__msg--agent .dsb__tag{display:block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9A7A2C;margin-bottom:3px}
.dsb__msg--user{background:var(--ink);color:var(--cream);border-bottom-right-radius:6px}
.dsb__msg--user a{color:var(--blush)}
@keyframes dsbIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.dsb__cards{flex-shrink:0;display:flex;gap:10px;overflow-x:auto;margin:0 -14px;padding:2px 14px 8px 48px;scroll-padding-left:48px;scroll-snap-type:x proximity;scrollbar-width:none}
.dsb__cards::-webkit-scrollbar{display:none}
.dsb__card{flex:0 0 196px;scroll-snap-align:start;background:var(--warm);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;margin:0;
  box-shadow:0 0 0 1px var(--line-soft),0 2px 6px rgba(48,42,44,.05),0 10px 26px rgba(48,42,44,.06)}
.dsb__card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--paper)}
.dsb__card-b{padding:10px 12px 12px;display:flex;flex-direction:column;gap:3px;flex:1}
.dsb__parent{display:block;font-size:.64rem;font-weight:700;color:var(--rose);text-transform:uppercase;letter-spacing:.09em}
.dsb__card h3{margin:0;font-family:var(--serif);font-size:1.22rem;line-height:1.08;font-weight:600}
.dsb__card p{margin:0;font-size:.76rem;color:var(--muted);line-height:1.35}
.dsb__price{font-weight:700;font-size:.9rem;margin-top:3px}
.dsb__price s{font-weight:500;color:var(--muted);font-size:.78rem;margin-left:5px}
.dsb__card-a{display:flex;gap:6px;margin-top:auto;padding-top:8px}
.dsb__card-a a{flex:1;text-align:center;padding:8px 6px;border-radius:999px;font-size:.78rem;font-weight:700;text-decoration:none;transition:background .15s}
.dsb__try{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.dsb__try:hover{background:#F1E9DC}
.dsb__make{background:var(--ink);color:var(--cream)}
.dsb__make:hover{background:var(--ink-2)}

.dsb__chips{flex-shrink:0;display:flex;flex-wrap:wrap;gap:7px;padding-left:34px}
.dsb__chip{border:1px solid var(--line);background:var(--warm);color:var(--ink);border-radius:999px;padding:7px 13px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;
  transition:background .15s,border-color .15s,transform .15s}
.dsb__chip:hover{border-color:var(--rose);background:#FDF3F2;transform:translateY(-1px)}

.dsb__typing{display:flex;gap:4px;padding:13px 15px;background:var(--warm);border:1px solid var(--line-soft);border-radius:18px;border-bottom-left-radius:6px}
.dsb__typing i{width:7px;height:7px;border-radius:50%;background:var(--rose);opacity:.45;animation:dsbDot 1.1s infinite ease-in-out}
.dsb__typing i:nth-child(2){animation-delay:.15s}.dsb__typing i:nth-child(3){animation-delay:.3s}
@keyframes dsbDot{0%,60%,100%{transform:none;opacity:.35}30%{transform:translateY(-4px);opacity:1}}

.dsb__form{display:flex;align-items:flex-end;gap:8px;margin:0;padding:10px 12px 8px;background:var(--cream);border-top:1px solid var(--line-soft)}
.dsb__field{flex:1;display:flex;align-items:flex-end;gap:6px;background:var(--warm);border-radius:24px;padding:4px 5px 4px 16px;
  box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .15s}
.dsb__field:focus-within{box-shadow:inset 0 0 0 1.5px var(--rose),0 0 0 4px rgba(201,130,135,.12)}
.dsb__in{flex:1;border:0;outline:0;resize:none;max-height:110px;min-height:22px;font:inherit;font-size:.93rem;line-height:1.4;padding:9px 0;background:transparent;color:var(--ink)}
.dsb__in::placeholder{color:#A99EA0}
.dsb__send{width:38px;height:38px;flex:none;margin:1px 0;border:0;border-radius:50%;background:var(--ink);color:var(--cream);cursor:pointer;display:grid;place-items:center;transition:opacity .15s,transform .15s}
.dsb__send:not(:disabled):hover{transform:scale(1.06)}
.dsb__send:disabled{opacity:.28;cursor:default}
.dsb__send svg{width:17px;height:17px}
.dsb__foot{font-size:.68rem;text-align:center;color:var(--muted);padding:0 0 9px;background:var(--cream)}
.dsb__foot b{font-family:var(--serif);font-size:.86rem;font-weight:600;color:var(--ink)}

@media (max-width:560px){
  .dsb.is-open{right:0;bottom:0;left:0;top:0}
  .dsb.is-open .dsb__fab{display:none}
  .dsb__panel{position:fixed;inset:0;width:100%;height:100%;height:100dvh;border-radius:0;bottom:0}
  .dsb__head{padding-top:max(16px,env(safe-area-inset-top))}
  .dsb__form{padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .dsb__fab-av,.dsb__fab-x{width:54px;height:54px}
  .dsb__hint{right:70px;max-width:200px}
}
@media (prefers-reduced-motion:reduce){.dsb__panel,.dsb__fab,.dsb__msg,.dsb__hint{transition:none;animation:none}}
@media print{.dsb{display:none !important}}
body.gp-locked .dsb{display:none}
html.dsb-lock,html.dsb-lock body{overflow:hidden}
.dsb__wa{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:#25D366;color:#fff;font-weight:700;font-size:.88rem;text-decoration:none;box-shadow:0 8px 18px rgba(37,211,102,.28)}
.dsb__wa:hover{filter:brightness(1.05)}
.dsb__wa svg{width:18px;height:18px}
.dsb.is-away{opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;transition:opacity .2s,transform .2s,visibility 0s linear .2s}
.dsb{transition:bottom .25s ease,opacity .2s,transform .2s}
.dsb__coupon{margin:4px 0 6px 34px;padding:14px 16px;border:1.5px dashed var(--rose);border-radius:16px;background:#FDF3F2;display:grid;gap:6px;justify-items:start;max-width:260px}
.dsb__coupon-pct{font-size:.74rem;font-weight:800;letter-spacing:.08em;color:var(--rose-d);text-transform:uppercase}
.dsb__coupon-code{font:700 1.08rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);letter-spacing:.06em;background:#fff;border-radius:8px;padding:6px 10px;user-select:all}
.dsb__coupon small{font-size:.74rem;color:var(--ink);opacity:.7}
.dsb__coupon-copy{border:0;border-radius:999px;background:var(--rose-d);color:#fff;font:inherit;font-size:.8rem;font-weight:700;padding:7px 14px;cursor:pointer}
.dsb__coupon.is-over{opacity:.55;border-style:solid}
.dsb__coupon.is-over .dsb__coupon-code{text-decoration:line-through}
.dsb__think{margin-top:5px;font-size:11.5px;color:var(--muted,#8a7f86);padding-left:4px}
.dsb__typing-wrap{display:flex;flex-direction:column;align-items:flex-start}

/* ---------- the "AI waking up" look (owner 2026-10-24: like Gemini) ----------
   A living colour ring hugs the chat while it is open; opening it sends the
   ring round fast with a big soft glow, an iris reveal and a sheen across
   the chat. Phones: the ring runs round the screen's own edges. */
@property --dsb-a{syntax:"<angle>";inherits:true;initial-value:0deg}
/* the angle is animated on each layer itself, so the gradient is written out where it is used */
.dsb{--dsb-stops:#4F8CFF,#9B72CB,#FF6FA8,#FFB36B,#FFD66B,#5FD0B5,#4F8CFF}
.dsb__ring,.dsb__glow{position:absolute;right:0;bottom:78px;width:min(396px,calc(100vw - 32px));height:min(640px,calc(100vh - 120px));
  border-radius:26px;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility 0s linear .4s}
.dsb__ring{z-index:2;padding:2px;background:conic-gradient(from var(--dsb-a),var(--dsb-stops));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.dsb__glow{z-index:-1;background:conic-gradient(from var(--dsb-a),var(--dsb-stops));filter:blur(30px);transform:scale(.98)}
.dsb.is-open .dsb__ring{opacity:.85;visibility:visible;transition-delay:0s;animation:dsbSpin 6s linear infinite}
.dsb.is-open .dsb__glow{opacity:.42;visibility:visible;transition-delay:0s;animation:dsbSpin 6s linear infinite}
.dsb.is-waking .dsb__ring{opacity:1;padding:3px;animation:dsbSpin 1.1s cubic-bezier(.45,.05,.3,1) 2,dsbSpin 6s linear 2.2s infinite}
.dsb.is-waking .dsb__glow{animation:dsbSpin 1.1s cubic-bezier(.45,.05,.3,1) 2,dsbGlow 2.2s ease both,dsbSpin 6s linear 2.2s infinite}
@keyframes dsbSpin{to{--dsb-a:360deg}}
@keyframes dsbGlow{0%{opacity:0;transform:scale(.9)}30%{opacity:1;transform:scale(1.07)}100%{opacity:.42;transform:scale(.98)}}

/* iris: the chat opens out of Anvi's bubble */
.dsb.is-waking .dsb__panel{animation:dsbIris .7s cubic-bezier(.22,.8,.28,1) both}
@keyframes dsbIris{from{clip-path:circle(0% at 100% 100%)}to{clip-path:circle(150% at 100% 100%)}}

/* a sheen of colour sweeping up through the chat */
.dsb__sheen{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;
  background:linear-gradient(170deg,transparent 30%,rgba(79,140,255,.18) 42%,rgba(155,114,203,.22) 50%,rgba(255,111,168,.2) 58%,rgba(255,179,107,.14) 66%,transparent 78%);
  background-size:100% 260%;background-position:0 100%;mix-blend-mode:multiply}
.dsb.is-waking .dsb__sheen{animation:dsbSheen 1.6s cubic-bezier(.3,.6,.2,1) .25s both}
@keyframes dsbSheen{0%{opacity:0;background-position:0 100%}20%{opacity:1}100%{opacity:0;background-position:0 -20%}}

/* her name and face light up as she wakes */
.dsb.is-waking .dsb__who b{background:linear-gradient(90deg,var(--ink) 0 35%,#4F8CFF 45%,#9B72CB 52%,#FF6FA8 59%,var(--ink) 70% 100%);background-size:300% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:dsbName 1.6s ease .3s both}
.dsb.is-waking .dsb__who b em{-webkit-text-fill-color:var(--rose)}
@keyframes dsbName{from{background-position:100% 0}to{background-position:0 0}}
.dsb__av::before,.dsb__intro-av::before{content:"";position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(from var(--dsb-a),var(--dsb-stops));z-index:-1;opacity:.9;animation:dsbSpin 3s linear infinite}
.dsb.is-waking .dsb__av::before{animation:dsbSpin .7s linear 3,dsbSpin 3s linear 2.1s infinite;filter:blur(1px)}
.dsb__intro-av{position:relative;z-index:0;display:inline-block;margin-bottom:10px;border-radius:50%}
.dsb__intro-av img{margin:0 !important}
.dsb__intro-av::before{inset:-5px;filter:blur(.5px)}
.dsb__intro-av::after{content:"";position:absolute;inset:-14px;border-radius:50%;background:conic-gradient(from var(--dsb-a),var(--dsb-stops));filter:blur(18px);opacity:.35;z-index:-2;animation:dsbSpin 3s linear infinite,dsbBreathe 3s ease-in-out infinite}
@keyframes dsbBreathe{0%,100%{opacity:.25;transform:scale(.92)}50%{opacity:.5;transform:scale(1.05)}}

/* the launcher carries a thin living ring too */
.dsb__fab-av::before{content:"";position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(from var(--dsb-a),var(--dsb-stops));z-index:-1;animation:dsbSpin 4s linear infinite}
.dsb__fab-av{isolation:isolate}
.dsb__fab:hover .dsb__fab-av::before{animation-duration:1.2s}

/* typing dots in the same colours */
.dsb__typing i{background:linear-gradient(135deg,#4F8CFF,#9B72CB,#FF6FA8);opacity:.7}

@media (max-width:560px){
  .dsb__ring,.dsb__glow{position:fixed;inset:0;width:auto;height:auto;border-radius:0;bottom:0}
  .dsb__ring{padding:3px;z-index:6}
  .dsb__glow{z-index:5;filter:blur(18px);transform:none;padding:12px;
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
  .dsb.is-open .dsb__ring{opacity:.7}
  .dsb.is-open .dsb__glow{opacity:.35}
  @keyframes dsbGlow{0%{opacity:0}30%{opacity:1}100%{opacity:.35}}
  .dsb.is-waking .dsb__panel{animation-name:dsbIrisPh}
  @keyframes dsbIrisPh{from{clip-path:circle(0% at 90% 94%)}to{clip-path:circle(150% at 90% 94%)}}
}
@media (prefers-reduced-motion:reduce){
  .dsb__ring,.dsb__glow,.dsb__sheen,.dsb__av::before,.dsb__intro-av::before,.dsb__intro-av::after,.dsb__fab-av::before,.dsb.is-waking .dsb__panel,.dsb.is-waking .dsb__who b{animation:none !important}
}

/* Anvi fills the gift editor (2026-11-03): result row + a glow on what changed */
.dsb__fillbar{flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding-left:34px}
.dsb__filled-n{font-size:.8rem;font-weight:700;color:#2E7D4F;background:#EAF6EE;border-radius:999px;padding:6px 11px}
.dsb__fillbar .dsb__undo{background:transparent}
.dsb-filled{animation:dsbFilled 2.4s ease-out}
@keyframes dsbFilled{0%,35%{box-shadow:0 0 0 3px rgba(176,92,214,.55),0 0 18px rgba(176,92,214,.35)}100%{box-shadow:0 0 0 0 rgba(176,92,214,0)}}
