/* Website chat assistant (assets/js/chatbot.js). Scoped to .xscb. */
.xscb{
  --xscb-c:var(--in-primary,#5d579e);
  --xscb-c2:color-mix(in srgb,var(--xscb-c) 62%,var(--in-accent,#01696f));
  --xscb-bg:#fff;--xscb-bg2:#f6f5fa;--xscb-ink:#1d1d1f;--xscb-mute:#6e6e73;--xscb-line:rgba(0,0,0,.09);
  --xscb-bot:#f1eff8;--xscb-shadow:0 24px 60px -18px rgba(25,20,60,.35),0 2px 8px rgba(0,0,0,.06);
  position:fixed;right:20px;bottom:20px;z-index:1070;font-family:var(--in-font,inherit);font-size:15px;line-height:1.45;color:var(--xscb-ink)
}
@media (prefers-color-scheme:dark){
  .xscb{--xscb-bg:#17161f;--xscb-bg2:#211f2c;--xscb-ink:#f2f1f7;--xscb-mute:#a9a6b8;--xscb-line:rgba(255,255,255,.1);--xscb-bot:#262335;--xscb-shadow:0 24px 60px -18px rgba(0,0,0,.8)}
}
body.theme-dark .xscb,[data-pc-theme="dark"] .xscb{--xscb-bg:#17161f;--xscb-bg2:#211f2c;--xscb-ink:#f2f1f7;--xscb-mute:#a9a6b8;--xscb-line:rgba(255,255,255,.1);--xscb-bot:#262335}
.xscb *{box-sizing:border-box}
.xscb [hidden]{display:none!important}

/* launcher */
.xscb-launch{display:flex;align-items:center;gap:.55rem;border:0;cursor:pointer;padding:.5rem 1.05rem .5rem .5rem;border-radius:99px;color:#fff;font:inherit;font-weight:650;
  background:linear-gradient(135deg,var(--xscb-c),var(--xscb-c2));box-shadow:0 14px 34px -10px color-mix(in srgb,var(--xscb-c) 75%,transparent),0 2px 6px rgba(0,0,0,.12);
  position:relative;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;animation:xscbPop .6s cubic-bezier(.2,.8,.2,1.3) 1s both}
.xscb-launch:hover{transform:translateY(-2px) scale(1.02)}
.xscb-launch:focus-visible{outline:3px solid color-mix(in srgb,var(--xscb-c) 45%,#fff);outline-offset:3px}
@keyframes xscbPop{from{opacity:0;transform:translateY(16px) scale(.8)}}
.xscb-launch-av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:1.3rem;background:rgba(255,255,255,.2);animation:xscbWave 4s ease-in-out 2s infinite}
@keyframes xscbWave{0%,86%,100%{transform:rotate(0)}89%{transform:rotate(-14deg)}93%{transform:rotate(12deg)}96%{transform:rotate(-6deg)}}
.xscb-dot{position:absolute;top:4px;left:34px;width:11px;height:11px;border-radius:50%;background:#a3a3ad;border:2px solid #fff}
.xscb.is-online .xscb-dot,.xscb-panel.is-online .xscb-status::before{background:#22c55e}
.xscb.is-open .xscb-launch-txt{display:none}
.xscb.is-open .xscb-launch{padding:.5rem}

/* panel */
.xscb-panel{position:absolute;right:0;bottom:calc(100% + 14px);width:380px;max-width:calc(100vw - 32px);height:min(600px,calc(100vh - 120px));display:flex;flex-direction:column;
  background:var(--xscb-bg);border:1px solid var(--xscb-line);border-radius:24px;box-shadow:var(--xscb-shadow);overflow:hidden;
  opacity:0;transform:translateY(12px) scale(.97);transform-origin:bottom right;transition:opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1)}
.xscb-panel.in{opacity:1;transform:none}
.xscb-head{display:flex;align-items:center;gap:.7rem;padding:14px 14px 14px 16px;color:#fff;background:linear-gradient(135deg,var(--xscb-c),var(--xscb-c2));position:relative;overflow:hidden}
.xscb-head::after{content:"";position:absolute;inset:-40% -10% auto auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 65%);pointer-events:none}
.xscb-av{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;font-size:1.35rem;background:rgba(255,255,255,.2);flex:none}
.xscb-head-meta{flex:1;min-width:0;display:flex;flex-direction:column}
.xscb-head-meta strong{font-size:1rem;letter-spacing:-.01em}
.xscb-status{font-size:.8rem;opacity:.92;display:flex;align-items:center;gap:.35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xscb-status::before{content:"";width:8px;height:8px;border-radius:50%;background:#d4d4d8;flex:none}
.xscb-close{border:0;background:rgba(255,255,255,.16);color:#fff;width:34px;height:34px;border-radius:12px;display:grid;place-items:center;cursor:pointer;position:relative;z-index:1}
.xscb-close:hover{background:rgba(255,255,255,.28)}
.xscb-close:focus-visible,.xscb button:focus-visible,.xscb a:focus-visible,.xscb input:focus-visible,.xscb select:focus-visible,.xscb textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--xscb-c) 45%,transparent);outline-offset:2px}

.xscb-chatview{display:flex;flex-direction:column;flex:1;min-height:0}
.xscb-log{flex:1;overflow-y:auto;padding:16px 14px 6px;display:flex;flex-direction:column;gap:10px;background:var(--xscb-bg);scroll-behavior:smooth}
.xscb-msg{display:flex;gap:8px;align-items:flex-end;max-width:100%;animation:xscbIn .28s cubic-bezier(.2,.8,.2,1) both}
@keyframes xscbIn{from{opacity:0;transform:translateY(6px)}}
.xscb-mav{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;font-size:.95rem;background:var(--xscb-bot);flex:none}
.xscb-bubble{padding:10px 13px;border-radius:18px;max-width:84%;overflow-wrap:anywhere}
.xscb-bot .xscb-bubble{background:var(--xscb-bot);border-bottom-left-radius:6px}
.xscb-user{justify-content:flex-end}
.xscb-user .xscb-bubble{background:var(--xscb-c);color:#fff;border-bottom-right-radius:6px}
.xscb-src-l{display:block;margin-top:8px;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--xscb-mute);font-weight:700}
.xscb-src{display:flex;flex-direction:column;gap:3px;margin-top:3px}
.xscb-src a{color:var(--xscb-c);font-weight:600;text-decoration:none;font-size:.9rem}
@media (prefers-color-scheme:dark){.xscb-src a{color:color-mix(in srgb,var(--xscb-c) 45%,#fff)}}
.xscb-src a:hover{text-decoration:underline}
.xscb-inline-btn{margin-top:8px;border:1px solid color-mix(in srgb,var(--xscb-c) 35%,transparent);background:var(--xscb-bg);color:inherit;border-radius:99px;padding:.35rem .8rem;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}
.xscb-inline-btn:hover{background:var(--xscb-bg2)}
.xscb-typing .xscb-bubble{display:flex;gap:4px;padding:13px 14px}
.xscb-typing i{width:7px;height:7px;border-radius:50%;background:var(--xscb-mute);animation:xscbDot 1.1s infinite ease-in-out}
.xscb-typing i:nth-child(2){animation-delay:.15s}.xscb-typing i:nth-child(3){animation-delay:.3s}
@keyframes xscbDot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
.xscb-avail{margin:2px 0 2px 36px;padding:10px 12px;border-radius:14px;border:1px dashed var(--xscb-line);background:var(--xscb-bg2);display:flex;flex-direction:column;gap:2px;font-size:.86rem}
.xscb-avail strong{display:flex;align-items:center;gap:.4rem}
.xscb-avail strong::before{content:"";width:8px;height:8px;border-radius:50%;background:#f59e0b}
.xscb-avail.on strong::before{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.18)}
.xscb-avail span{color:var(--xscb-mute)}

.xscb-chips{display:flex;flex-wrap:wrap;gap:6px;padding:6px 14px 8px}
.xscb-chip{border:1px solid color-mix(in srgb,var(--xscb-c) 30%,transparent);background:color-mix(in srgb,var(--xscb-c) 7%,var(--xscb-bg));color:inherit;border-radius:99px;padding:.32rem .75rem;font:inherit;font-size:.84rem;cursor:pointer;transition:background .2s,transform .2s}
.xscb-chip:hover{background:color-mix(in srgb,var(--xscb-c) 16%,var(--xscb-bg));transform:translateY(-1px)}
.xscb-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--xscb-line);background:var(--xscb-bg)}
.xscb-input input{flex:1;min-width:0;border:1px solid var(--xscb-line);background:var(--xscb-bg2);color:inherit;border-radius:99px;padding:.6rem .95rem;font:inherit;font-size:16px}
.xscb-send{width:42px;height:42px;border:0;border-radius:50%;color:#fff;background:var(--xscb-c);display:grid;place-items:center;cursor:pointer;flex:none;transition:transform .2s}
.xscb-send:hover{transform:scale(1.06)}
.xscb-send:disabled{opacity:.55;cursor:default}
.xscb-foot{display:flex;justify-content:space-between;align-items:center;padding:0 14px 12px;font-size:.84rem;background:var(--xscb-bg)}
.xscb-person{border:0;background:none;color:var(--xscb-c);font:inherit;font-weight:700;cursor:pointer;padding:.2rem 0}
@media (prefers-color-scheme:dark){.xscb-person{color:color-mix(in srgb,var(--xscb-c) 45%,#fff)}}
.xscb-kb{color:var(--xscb-mute);text-decoration:none}
.xscb-kb:hover{text-decoration:underline}

/* handoff */
.xscb-hand{flex:1;overflow-y:auto;padding:14px 16px 18px;background:var(--xscb-bg)}
.xscb-hform h3{font-size:1.15rem;margin:.5rem 0 .2rem;letter-spacing:-.02em;color:inherit}
.xscb-hnote{color:var(--xscb-mute);font-size:.86rem;margin:0 0 12px}
.xscb-back{border:0;background:none;color:var(--xscb-mute);font:inherit;font-size:.85rem;cursor:pointer;padding:0}
.xscb-recv{border:0;padding:0;margin:0 0 12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.xscb-recv legend{font-size:.82rem;font-weight:700;margin-bottom:6px;padding:0;color:inherit}
.xscb-rcard{display:flex;gap:8px;align-items:flex-start;padding:10px;border:1.5px solid var(--xscb-line);border-radius:14px;cursor:pointer;transition:border-color .2s,background .2s}
.xscb-rcard:has(input:checked){border-color:var(--xscb-c);background:color-mix(in srgb,var(--xscb-c) 8%,var(--xscb-bg))}
.xscb-rcard input{margin-top:3px;accent-color:var(--xscb-c)}
.xscb-rcard strong{display:block;font-size:.88rem;line-height:1.25}
.xscb-rcard small{color:var(--xscb-mute);font-size:.76rem}
.xscb-field{display:block;margin-bottom:10px}
.xscb-field span{display:block;font-size:.82rem;font-weight:650;margin-bottom:4px}
.xscb-field input,.xscb-field select,.xscb-field textarea{width:100%;border:1px solid var(--xscb-line);background:var(--xscb-bg2);color:inherit;border-radius:12px;padding:.55rem .75rem;font:inherit;font-size:16px}
.xscb-field textarea{resize:vertical;min-height:90px}
.xscb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.xscb-err{color:#c2410c;font-size:.86rem;margin:0 0 10px}
.xscb-submit{width:100%;border:0;border-radius:14px;padding:.75rem;font:inherit;font-weight:700;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--xscb-c),var(--xscb-c2))}
.xscb-submit:disabled{opacity:.6}

/* phones: full-height sheet */
@media (max-width:520px){
  .xscb{right:14px;bottom:14px}
  .xscb-launch-txt{display:none}
  .xscb-launch{padding:.45rem}
  .xscb.is-open{right:0;bottom:0;left:0}
  .xscb.is-open .xscb-launch{display:none}
  .xscb-panel{position:fixed;inset:auto 0 0 0;width:100%;max-width:none;height:calc(100dvh - 40px);border-radius:22px 22px 0 0;bottom:0}
}
@media (prefers-reduced-motion:reduce){.xscb *,.xscb{animation:none!important;transition:none!important}}
@media print{.xscb{display:none}}
