.piggyback-assist-root { --pb-bg:#fff; --pb-panel:#101419; --pb-card:#fff; --pb-soft:#f6f7f8; --pb-text:#15191f; --pb-inverse:#f7f8fa; --pb-muted:#68707a; --pb-muted-inverse:#a9b1bb; --pb-border:#dfe3e8; --pb-border-dark:rgba(255,255,255,.14); --pb-accent:#bf1d2d; --pb-accent-dark:#951523; --pb-focus:#f5b84b; color:var(--pb-text); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.piggyback-assist-root * { box-sizing:border-box; }
.pb-assist-panel[hidden] { display:none; }
.pb-assist-button { position:fixed; right:20px; bottom:20px; z-index:9998; min-height:44px; padding:0 16px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:linear-gradient(135deg,#181d24,#2b1117); color:#fff; cursor:pointer; font-size:14px; font-weight:800; box-shadow:0 16px 38px rgba(0,0,0,.28); }
.pb-assist-button:hover { transform:translateY(-1px); }
.pb-assist-button:focus-visible,.pb-assist-close:focus-visible,.pb-assist-submit:focus-visible,.pb-assist-chat-action:focus-visible,.pb-assist-composer textarea:focus-visible { outline:3px solid var(--pb-focus); outline-offset:2px; }
.pb-assist-panel { position:fixed; right:20px; bottom:76px; z-index:9999; display:flex; flex-direction:column; width:min(520px,calc(100vw - 32px)); height:min(720px,calc(100dvh - 108px)); max-height:calc(100vh - 108px); overflow:hidden; border:1px solid var(--pb-border-dark); border-radius:18px; background:var(--pb-panel); box-shadow:0 24px 80px rgba(0,0,0,.38); }
.pb-assist-header { flex:0 0 auto; display:flex; gap:16px; justify-content:space-between; padding:20px; border-bottom:1px solid var(--pb-border-dark); background:radial-gradient(circle at top right,rgba(191,29,45,.35),transparent 34%),linear-gradient(135deg,#111820,#191f27); color:var(--pb-inverse); }
.pb-assist-brand { min-width:0; }.pb-assist-brand h2 { margin:4px 0 2px; color:var(--pb-inverse); font-size:24px; line-height:1.12; letter-spacing:-.03em; }.pb-assist-brand p { margin:0; color:var(--pb-muted-inverse); font-size:15px; font-weight:700; }.pb-assist-status-line { color:var(--pb-accent); font-size:11px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.pb-assist-close { flex:0 0 34px; width:34px; height:34px; border:1px solid var(--pb-border-dark); border-radius:10px; background:rgba(255,255,255,.08); color:var(--pb-inverse); cursor:pointer; font-size:24px; line-height:1; }
.pb-assist-body { flex:1 1 auto; min-height:0; display:flex; padding:16px; overflow:hidden; overscroll-behavior:contain; }
.pb-assist-public-staging-chat,.pb-assist-generative-chat { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--pb-border); border-radius:16px; background:var(--pb-card); box-shadow:0 10px 28px rgba(0,0,0,.12); }
.pb-assist-conversation { flex:1 1 auto; min-height:clamp(220px,38vh,340px); overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:16px; }.pb-assist-messages { display:grid; gap:10px; align-content:start; min-height:100%; }
.pb-assist-chat-message { max-width:92%; overflow-wrap:anywhere; word-break:break-word; white-space:pre-wrap; border-radius:14px; padding:10px 12px; font-size:14px; line-height:1.45; }.pb-assist-chat-message--user { justify-self:end; background:var(--pb-accent); color:#fff; }.pb-assist-chat-message--assistant { justify-self:start; border:1px solid var(--pb-border); background:var(--pb-soft); color:var(--pb-text); }.pb-assist-chat-message--status { justify-self:start; border:1px solid #c8ced6; background:#f3f5f7; color:#3f4853; font-size:13px; }
.pb-assist-composer { flex:0 0 auto; display:grid; gap:6px; max-height:min(230px,40%); padding:10px 14px 12px; border-top:1px solid var(--pb-border); background:#fff; }.pb-assist-composer .pb-assist-muted { margin:0; color:var(--pb-muted); font-size:12px; line-height:1.32; }.pb-assist-field { display:grid; gap:2px; color:var(--pb-text); font-size:14px; font-weight:700; }.pb-assist-composer textarea { display:block; width:100%; min-height:54px; max-height:112px; margin-top:3px; border:1px solid var(--pb-border); border-radius:10px; padding:10px; font:inherit; resize:vertical; overflow-y:auto; }.pb-assist-consent { color:var(--pb-text); font-size:12px; line-height:1.3; }.pb-assist-submit { min-height:42px; border:0; border-radius:10px; background:var(--pb-accent); color:#fff; cursor:pointer; font:inherit; font-weight:800; }.pb-assist-submit:hover:not(:disabled) { background:var(--pb-accent-dark); }.pb-assist-submit:disabled,.pb-assist-composer textarea:disabled,.pb-assist-composer input:disabled { cursor:not-allowed; opacity:.6; }
.pb-assist-unavailable { display:grid; gap:8px; padding:10px 0 0; color:var(--pb-muted); font-size:13px; line-height:1.4; }.pb-assist-unavailable p { margin:0; }
.pb-assist-chat-actions { display:flex; flex-wrap:wrap; gap:8px; padding:2px 0; }.pb-assist-chat-action { display:inline-flex; align-items:center; justify-content:center; min-height:38px; border-radius:9px; padding:8px 12px; background:var(--pb-accent); color:#fff; font-size:13px; font-weight:700; line-height:1.2; text-align:center; text-decoration:none; }.pb-assist-chat-action:hover { background:var(--pb-accent-dark); color:#fff; }.pb-assist-chat-action--secondary { border:1px solid var(--pb-border); background:var(--pb-soft); color:var(--pb-text); }.pb-assist-chat-action--secondary:hover { background:#f3f5f7; color:var(--pb-text); }.pb-assist-chat-action-notice { flex-basis:100%; margin:0; color:var(--pb-muted); font-size:12px; line-height:1.35; }
@media (max-width:600px) { .pb-assist-button { right:12px; bottom:12px; }.pb-assist-panel { right:12px; bottom:68px; width:calc(100vw - 24px); height:min(680px,calc(100dvh - 86px)); border-radius:16px; }.pb-assist-header { padding:16px; }.pb-assist-brand h2 { font-size:21px; }.pb-assist-body { padding:10px; }.pb-assist-conversation { min-height:220px; padding:12px; }.pb-assist-composer { max-height:min(240px,40%); padding:10px 12px; } }

/* WP01 launcher design: specificity contains the later Hello Elementor button reset. */
.piggyback-assist-root { --pb-edge:20px; }
.piggyback-assist-root .pb-assist-button {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  right:calc(var(--pb-edge) + env(safe-area-inset-right,0px));
  bottom:calc(var(--pb-launcher-bottom,80px) + env(safe-area-inset-bottom,0px));
  min-height:50px; max-width:calc(100vw - 40px); padding:11px 22px;
  border:1px solid #951523; border-radius:999px;
  background:linear-gradient(180deg,#c52b3b 0%,var(--pb-accent) 46%,var(--pb-accent-dark) 100%);
  color:#fff; font-family:inherit; font-size:15px; font-weight:800; line-height:1.3;
  text-decoration:none; white-space:normal; text-align:center;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.25),0 5px 14px rgba(149,21,35,.28);
  transform:none; transition:background-color .15s ease,box-shadow .15s ease;
}
.piggyback-assist-root .pb-assist-button svg { width:21px; height:21px; flex:0 0 21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.piggyback-assist-root .pb-assist-button:hover { background:linear-gradient(180deg,#bf1d2d,#951523); color:#fff; transform:none; box-shadow:inset 0 2px 0 rgba(255,255,255,.3),0 6px 16px rgba(149,21,35,.35); }
.piggyback-assist-root .pb-assist-button:active { background:#951523; box-shadow:inset 0 2px 4px rgba(0,0,0,.24); transform:none; }
.piggyback-assist-root .pb-assist-button:focus-visible { outline:3px solid var(--pb-focus); outline-offset:3px; color:#fff; }
.piggyback-assist-root .pb-assist-panel {
  right:calc(var(--pb-edge) + env(safe-area-inset-right,0px));
  bottom:calc(var(--pb-panel-bottom,142px) + env(safe-area-inset-bottom,0px));
  width:min(520px,calc(100vw - 2 * var(--pb-edge) - env(safe-area-inset-right,0px) - env(safe-area-inset-left,0px)));
  height:min(720px,calc(var(--pb-panel-available,100dvh - 154px) - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px)));
  max-height:calc(100dvh - 24px); min-height:0;
}
.piggyback-assist-root.pb-assist-layout-suspended { visibility:hidden; pointer-events:none; }
/* CSS also suppresses before the observer's next frame, without touching consent. */
body:has(#cmplz-cookiebanner-1-optin.cmplz-show) .piggyback-assist-root { visibility:hidden; pointer-events:none; }
.piggyback-assist-root .pb-assist-body { overflow-y:auto; }
.piggyback-assist-root .pb-assist-generative-chat { overflow:visible; min-width:0; }
.piggyback-assist-root .pb-assist-conversation { min-height:64px; }
.piggyback-assist-root .pb-assist-composer { max-height:none; }
@media (max-width:600px) {
  .piggyback-assist-root { --pb-edge:14px; }
  .piggyback-assist-root .pb-assist-button { padding:11px 20px; }
  .piggyback-assist-root .pb-assist-header { padding:10px 12px; }
  .piggyback-assist-root .pb-assist-brand h2 { font-size:19px; }
  .piggyback-assist-root .pb-assist-body { padding:8px; }
  .piggyback-assist-root .pb-assist-composer textarea { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) { .piggyback-assist-root .pb-assist-button { transition:none; } }

.piggyback-assist-root .pb-assist-close { padding:0; color:var(--pb-inverse); border-radius:10px; }
