Styling and CSS overrides

Inject scoped CSS after the Assistant Shadow DOM is connected.

The Assistant renders inside Shadow DOM, so styles from the host page do not cross into it. Add overrides only after tdAssistantConnected fires.

document.addEventListener('tdAssistantConnected', (event) => {
  const root = event.target.shadowRoot;
  if (!root) return;

  const styles = document.createElement('style');
  styles.textContent = `
    .td-launcher {
      right: 100px !important;
      bottom: 50px !important;
    }

    .td-assistant {
      right: 100px !important;
      bottom: 130px !important;
    }
  `;
  root.appendChild(styles);
});

Common selectors

SelectorArea
.td-assistantMain Assistant window
.td-headerHeader
.td-bodyMain content
.td-footerFooter navigation
.td-cardHome-screen cards
.td-launcherLauncher container
.td-launcher__iconLauncher icon
.td-launcher__textLauncher text
.td-livechatLive Chat
.td-contactContact form
.td-orderOrder Status
.td-kbKnowledge Base

Upgrade stability

These class names are implementation hooks, not a versioned theme API. An Assistant release can rename or restructure them. Keep overrides small and test them after widget updates.