@helpway/react 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +2865 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +44 -34
- package/dist/index.js +244 -248
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/themed/styles.css"],"sourcesContent":["/* ═══ Helpway Widget — Premium Intercom-Style ═══\n Vanilla CSS for Shadow DOM. Gradient hero, card-based actions,\n avatar-first conversation rows, bottom tab navigation. */\n\n/* ── Reset ─────────────────────────────────────── */\n:host {\n\tall: initial;\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial,\n\t\tsans-serif;\n\tfont-size: 14px;\n\tline-height: 1.5;\n\tcolor: #1a1a1a;\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n.hw-widget *,\n.hw-widget *::before,\n.hw-widget *::after {\n\tbox-sizing: border-box;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n/* ── Tokens ────────────────────────────────────── */\n.hw-widget {\n\t--hw-primary: #171717;\n\t--hw-primary-hover: #2a2a2a;\n\t/* Focus ring tokens — used by composer + content search + any future\n\t input. Kept as variables so the dark override gets a proper contrast\n\t pair instead of a one-off per-component tweak. */\n\t--hw-focus-border: #9ca3af;\n\t--hw-focus-ring: rgba(0, 0, 0, 0.06);\n\t--hw-accent: #6366f1;\n\t--hw-bg: #ffffff;\n\t--hw-bg-subtle: #fafafa;\n\t--hw-bg-hover: #f5f5f5;\n\t--hw-border: #f0f0f0;\n\t--hw-border-md: #e5e5e5;\n\t--hw-text: #111;\n\t--hw-text-1: #111;\n\t--hw-text-2: #666;\n\t--hw-text-3: #999;\n\t--hw-text-4: #bbb;\n\t--hw-radius: 16px;\n\t--hw-visitor-bubble-bg: #f0f0f0;\n\t--hw-visitor-bubble-text: #1a1a1a;\n\t--hw-font: inherit;\n}\n\n/* ── Agent Avatar Image / Icon ────────────────── */\n.hw-agent-img {\n\twidth: 100%;\n\theight: 100%;\n\tobject-fit: cover;\n}\n.hw-agent-icon {\n\twidth: 100%;\n\theight: 100%;\n\tborder-radius: inherit;\n}\n\n/* ── Focus Styles ──────────────────────────────── */\n.hw-widget :focus-visible {\n\toutline: 2px solid var(--hw-primary);\n\toutline-offset: 2px;\n}\n\n.hw-widget :focus:not(:focus-visible) {\n\toutline: none;\n}\n\n/* ── Widget Container ─────────────────────────── */\n.hw-widget {\n\tposition: fixed;\n\tbottom: 20px;\n\tright: var(--hw-position-right, 20px);\n\tleft: var(--hw-position-left, auto);\n\tz-index: 999999;\n\tfont-family: var(--hw-font);\n}\n\n/* ════════════════════════════════════════════════\n BUBBLE (FAB)\n ════════════════════════════════════════════════ */\n\n.hw-bubble {\n\twidth: 48px;\n\theight: 48px;\n\tborder-radius: 14px;\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tborder: none;\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n\ttransition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease;\n\tposition: relative;\n\toverflow: visible;\n}\n\n/* bubbleStyle variants — override border-radius */\n.hw-bubble--rounded {\n\tborder-radius: 14px;\n}\n.hw-bubble--square {\n\tborder-radius: 8px;\n}\n.hw-bubble--pill {\n\tborder-radius: 24px;\n}\n\n/* launcherStyle: bubble / help — wider pill with icon + label side by side */\n.hw-bubble--launcher-bubble,\n.hw-bubble--launcher-help {\n\twidth: auto;\n\tpadding: 0 16px 0 12px;\n\tgap: 8px;\n\tborder-radius: 24px; /* pill shape for labelled launcher */\n}\n\n/* When bubbleStyle is square or rounded on a labelled launcher, respect shape */\n.hw-bubble--launcher-bubble.hw-bubble--square,\n.hw-bubble--launcher-help.hw-bubble--square {\n\tborder-radius: 8px;\n}\n.hw-bubble--launcher-bubble.hw-bubble--rounded,\n.hw-bubble--launcher-help.hw-bubble--rounded {\n\tborder-radius: 14px;\n}\n\n/* Label text inside the launcher */\n.hw-bubble-label {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\twhite-space: nowrap;\n\tline-height: 1;\n\t/* not absolute-positioned, flows next to icons in flex row */\n\tposition: static;\n\topacity: 1;\n\ttransform: none;\n}\n\n/* Icons become static (not absolute) in labelled launcher so label can sit beside them */\n.hw-bubble--launcher-bubble .hw-bubble-icon,\n.hw-bubble--launcher-help .hw-bubble-icon {\n\tposition: static;\n}\n\n.hw-bubble:hover {\n\ttransform: scale(1.05);\n\tbox-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);\n}\n\n.hw-bubble:active {\n\ttransform: scale(0.95);\n}\n\n.hw-bubble--open {\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n}\n\n.hw-bubble:focus-visible {\n\toutline: 2px solid white;\n\toutline-offset: 2px;\n}\n\n.hw-bubble-icon {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: absolute;\n\ttransition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease;\n}\n\n.hw-bubble-icon svg {\n\twidth: 22px;\n\theight: 22px;\n}\n\n.hw-bubble-icon--hidden {\n\ttransform: scale(0.3) rotate(90deg);\n\topacity: 0;\n}\n\n/* Bot icon — static brand mark, no rotation */\n.hw-bubble-icon--bot {\n\t/* Rotation removed: the launcher bubble should feel stable and\n\t intentional; the previous 8s slow spin read as \"loading\" to some\n\t visitors and added visual noise on every page load. */\n}\n\n/* When agent has a custom avatar image — fill the bubble */\n.hw-bubble--avatar .hw-bubble-icon--bot {\n\twidth: 100%;\n\theight: 100%;\n}\n.hw-bubble--avatar .hw-bubble-icon--bot .hw-agent-img {\n\twidth: 100%;\n\theight: 100%;\n\tborder-radius: 0; /* bubble itself handles rounding */\n}\n\n.hw-bubble-icon--close svg {\n\twidth: 22px;\n\theight: 22px;\n}\n\n.hw-bubble-badge {\n\tposition: absolute;\n\ttop: -4px;\n\tright: -4px;\n\tmin-width: 20px;\n\theight: 20px;\n\tborder-radius: 10px;\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tfont-size: 11px;\n\tfont-weight: 700;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0 5px;\n\tborder: 2px solid white;\n\tanimation: hw-badge-pop 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n\n@keyframes hw-badge-pop {\n\tfrom {\n\t\ttransform: scale(0);\n\t}\n\tto {\n\t\ttransform: scale(1);\n\t}\n}\n\n.hw-bubble-badge::after {\n\tcontent: \"\";\n\tposition: absolute;\n\tinset: -2px;\n\tborder-radius: inherit;\n\tbackground: var(--hw-primary);\n\topacity: 0;\n\tanimation: hw-badge-pulse 2s ease-out infinite;\n}\n\n@keyframes hw-badge-pulse {\n\t0% {\n\t\topacity: 0.5;\n\t\ttransform: scale(1);\n\t}\n\t100% {\n\t\topacity: 0;\n\t\ttransform: scale(1.8);\n\t}\n}\n\n/* ════════════════════════════════════════════════\n CHAT WINDOW\n ════════════════════════════════════════════════ */\n\n.hw-window {\n\tposition: absolute;\n\tbottom: 72px;\n\tright: var(--hw-window-right, 0);\n\tleft: var(--hw-window-left, auto);\n\twidth: 440px;\n\theight: 640px;\n\tbackground: var(--hw-bg-subtle);\n\t/* Explicit text color so the host page's Tailwind / shadcn `color:\n\t var(--foreground)` cascade doesn't bleed through — without this,\n\t dashboard-embedded previews render widget text as the page's\n\t foreground color instead of the widget theme's --hw-text. */\n\tcolor: var(--hw-text);\n\tborder-radius: var(--hw-radius);\n\tbox-shadow: 0 8px 30px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04);\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\tanimation: hw-window-open 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n\n@keyframes hw-window-open {\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateY(12px) scale(0.96);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateY(0) scale(1);\n\t}\n}\n\n.hw-window--closing {\n\tanimation: hw-window-close 0.2s ease forwards;\n}\n\n@keyframes hw-window-close {\n\tfrom {\n\t\topacity: 1;\n\t\ttransform: translateY(0) scale(1);\n\t}\n\tto {\n\t\topacity: 0;\n\t\ttransform: translateY(8px) scale(0.98);\n\t}\n}\n\n/* Content area — fills between header/hero and footer */\n.hw-content {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\tmin-height: 0;\n}\n\n/* Reduced motion */\n@media (prefers-reduced-motion: reduce) {\n\t.hw-window,\n\t.hw-window--closing,\n\t.hw-content,\n\t.hw-msg,\n\t.hw-bubble-icon,\n\t.hw-bubble-badge,\n\t.hw-bubble-badge::after,\n\t.hw-typing-dot,\n\t.hw-loading-dot {\n\t\tanimation-duration: 0.01ms !important;\n\t\ttransition-duration: 0.01ms !important;\n\t}\n}\n\n/* ════════════════════════════════════════════════\n HERO (Home tab — gradient header + floating cards)\n ════════════════════════════════════════════════ */\n\n.hw-hero {\n\tflex-shrink: 0;\n\t/* Brand-aware gradient — derives its edges from --hw-primary via\n\t color-mix() instead of hardcoded neutrals. Previous version had\n\t #2d2d2d and #1a1a2e at the ends, so a pink or yellow brand color\n\t read as dark slate at the corners and broke identity. Now: full\n\t brand at 50% (the visual focal point), darker-mix at both edges\n\t for depth. Supported: Chrome 111+, Safari 16.2+, Firefox 113+. */\n\tbackground: linear-gradient(\n\t\t160deg,\n\t\tcolor-mix(in srgb, var(--hw-primary) 60%, black) 0%,\n\t\tvar(--hw-primary) 50%,\n\t\tcolor-mix(in srgb, var(--hw-primary) 40%, black) 100%\n\t);\n\tcolor: white;\n\tpadding: 20px 22px 40px; /* reduced — sheet overlap handles spacing */\n}\n\n.hw-hero-top {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmargin-bottom: 16px;\n}\n\n.hw-hero-close {\n\twidth: 30px;\n\theight: 30px;\n\tborder-radius: 50%;\n\tborder: none;\n\tbackground: rgba(255, 255, 255, 0.1);\n\tcolor: rgba(255, 255, 255, 0.6);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition: background 0.15s, color 0.15s;\n}\n.hw-hero-close:hover {\n\tbackground: rgba(255, 255, 255, 0.2);\n\tcolor: white;\n}\n.hw-hero-close:active {\n\ttransform: scale(0.92);\n\ttransition: transform 0.14s cubic-bezier(0.23, 1, 0.32, 1), background 0.15s, color 0.15s;\n}\n.hw-hero-close svg {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.hw-hero-bot-icon {\n\twidth: 36px;\n\theight: 36px;\n\tflex-shrink: 0;\n\tcolor: white;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder-radius: 10px;\n\toverflow: hidden;\n}\n.hw-hero-bot-icon svg {\n\twidth: 32px;\n\theight: 32px;\n}\n\n.hw-hero-greeting {\n\tfont-size: 26px;\n\tfont-weight: 700;\n\tline-height: 1.15;\n\tmargin-bottom: 6px;\n}\n.hw-hero-greeting-name {\n\tfont-weight: 300;\n}\n.hw-hero-greeting-question {\n\tfont-weight: 700;\n}\n.hw-hero-subtitle {\n\tfont-size: 15px;\n\tcolor: rgba(255, 255, 255, 0.5);\n\tline-height: 1.35;\n}\n\n/* ── Content Sheet — overlaps hero, Intercom-style drawer ── */\n.hw-sheet {\n\tflex: 1;\n\toverflow-y: auto;\n\tmin-height: 0;\n\tbackground: #ffffff;\n\tborder-radius: 20px 20px 0 0;\n\tmargin-top: -24px;\n\tbox-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);\n\tposition: relative;\n\tz-index: 1;\n}\n\n.hw-sheet-inner {\n\tpadding: 20px 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n}\n\n/* ════════════════════════════════════════════════\n HEADER (Sub-view / Messages tab — compact 44px)\n ════════════════════════════════════════════════ */\n\n.hw-header {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 12px 16px;\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tflex-shrink: 0;\n\tgap: 10px;\n}\n\n/* Sub-view header (back + identity + close) — transparent */\n.hw-header--sub {\n\tjustify-content: space-between;\n\tbackground: transparent;\n\tcolor: var(--hw-text);\n\tborder-bottom: 1px solid var(--hw-border);\n}\n\n.hw-header-back {\n\twidth: 28px;\n\theight: 28px;\n\tborder-radius: 8px;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--hw-text-3);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition: color 0.15s, background 0.15s;\n\tflex-shrink: 0;\n}\n.hw-header-back svg {\n\twidth: 18px;\n\theight: 18px;\n}\n.hw-header-back:hover {\n\tcolor: var(--hw-text);\n\tbackground: var(--hw-bg-subtle);\n}\n\n.hw-header-identity {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.hw-header-bot-icon {\n\twidth: 28px;\n\theight: 28px;\n\tflex-shrink: 0;\n\tcolor: var(--hw-text);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder-radius: 8px;\n\toverflow: hidden;\n}\n.hw-header-bot-icon svg {\n\twidth: 24px;\n\theight: 24px;\n}\n\n.hw-header-info {\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.hw-header-name {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tline-height: 1.3;\n}\n\n.hw-header-status {\n\tfont-size: 12px;\n\tcolor: var(--hw-text-3);\n\tline-height: 1.3;\n}\n\n.hw-header-close {\n\twidth: 28px;\n\theight: 28px;\n\tborder-radius: 8px;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--hw-text-3);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\t/* Strong ease-out + transform for a subtle press on close — on the\n\t * widget close button press feels terminal (\"I'm done\"), so scale\n\t * goes to 0.92 for a clearly felt dip. */\n\ttransition:\n\t\tbackground-color 140ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\tcolor 140ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\ttransform 140ms cubic-bezier(0.23, 1, 0.32, 1);\n\tflex-shrink: 0;\n}\n.hw-header-close svg {\n\twidth: 20px;\n\theight: 20px;\n}\n.hw-header-close:hover {\n\tbackground: var(--hw-bg-subtle);\n\tcolor: var(--hw-text);\n}\n.hw-header-close:active {\n\ttransform: scale(0.92);\n}\n\n/* Messages / Content tab header — centered title */\n.hw-header--centered {\n\tjustify-content: space-between;\n\tbackground: transparent;\n\tcolor: var(--hw-text);\n\tborder-bottom: 1px solid var(--hw-border);\n}\n.hw-header--centered .hw-header-title {\n\tposition: absolute;\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tmax-width: calc(100% - 88px);\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\ttext-align: center;\n}\n.hw-header-spacer {\n\twidth: 28px;\n\tflex-shrink: 0;\n}\n\n/* Legacy: keep for backwards compat */\n.hw-header--messages {\n\tjustify-content: space-between;\n\tbackground: transparent;\n\tcolor: var(--hw-text);\n\tborder-bottom: 1px solid var(--hw-border);\n}\n.hw-header-title {\n\tfont-size: 16px;\n\tfont-weight: 600;\n}\n.hw-header-actions {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n.hw-header-action {\n\twidth: 28px;\n\theight: 28px;\n\tborder-radius: 8px;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--hw-text-3);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition:\n\t\tbackground-color 140ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\tcolor 140ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\ttransform 140ms cubic-bezier(0.23, 1, 0.32, 1);\n}\n.hw-header-action svg {\n\twidth: 16px;\n\theight: 16px;\n}\n.hw-header-action:hover {\n\tbackground: var(--hw-bg-subtle);\n\tcolor: var(--hw-text);\n}\n.hw-header-action:active {\n\ttransform: scale(0.94);\n}\n\n/* ════════════════════════════════════════════════\n HOME TAB\n ════════════════════════════════════════════════ */\n\n/* ── Action Card ─────────────────────────────── */\n\n.hw-card {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\twidth: 100%;\n\tpadding: 14px 16px;\n\tborder-radius: 14px;\n\tbackground: var(--hw-bg);\n\tborder: 1px solid rgba(0, 0, 0, 0.06);\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.03);\n\tcursor: pointer;\n\t/* Scoped box-shadow + transform on strong ease-out. Hover raises\n\t * the card visually via deeper shadow; press dips it back. This is\n\t * the primary home-tab CTA — the subtle lift signals \"clickable\"\n\t * better than bg-change alone. */\n\ttransition:\n\t\tbox-shadow 180ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\ttransform 180ms cubic-bezier(0.23, 1, 0.32, 1);\n\ttext-align: left;\n\tcolor: var(--hw-text);\n\tfont-family: inherit;\n}\n.hw-card:hover {\n\tbox-shadow: 0 6px 20px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.05);\n\ttransform: translateY(-1px);\n}\n.hw-card:active {\n\ttransform: translateY(0) scale(0.99);\n\ttransition-duration: 120ms;\n}\n\n.hw-card-body {\n\tflex: 1;\n\tmin-width: 0;\n}\n.hw-card-title {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tline-height: 1.3;\n\tcolor: var(--hw-text);\n}\n.hw-card-meta {\n\tfont-size: 12px;\n\tcolor: var(--hw-text-3);\n\tline-height: 1.3;\n\tmargin-top: 1px;\n}\n\n.hw-card-arrow {\n\twidth: 32px;\n\theight: 32px;\n\tborder-radius: 50%;\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n}\n.hw-card-arrow svg {\n\twidth: 14px;\n\theight: 14px;\n}\n\n/* ════════════════════════════════════════════════\n MESSAGES TAB\n ════════════════════════════════════════════════ */\n\n.hw-msgs-tab {\n\tflex: 1;\n\toverflow-y: auto;\n\tpadding: 12px 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n}\n\n/* ── Recent Conversations Card (Home tab — grouped rows) ──── */\n.hw-recent-card {\n\tborder-radius: 14px;\n\tbackground: var(--hw-bg);\n\tborder: 1px solid rgba(0, 0, 0, 0.06);\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.03);\n\toverflow: hidden;\n}\n\n.hw-recent-header {\n\tfont-size: 12px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text-2);\n\tpadding: 12px 14px 0;\n}\n\n.hw-recent-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\twidth: 100%;\n\tpadding: 10px 14px;\n\tborder: none;\n\tborder-bottom: 1px solid var(--hw-border);\n\tbackground: none;\n\tcursor: pointer;\n\ttext-align: left;\n\tfont-family: inherit;\n\tcolor: var(--hw-text);\n\t/* Scoped bg + transform transition on the strong ease-out curve —\n\t * row now responds to both hover (color) and press (micro scale),\n\t * matching the dashboard's conversation list feel. */\n\ttransition:\n\t\tbackground-color 140ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\ttransform 140ms cubic-bezier(0.23, 1, 0.32, 1);\n\tposition: relative;\n}\n.hw-recent-row:hover {\n\tbackground: rgba(0, 0, 0, 0.03);\n}\n.hw-recent-row:active {\n\ttransform: scale(0.995);\n}\n.hw-recent-row--last {\n\tborder-bottom: none;\n}\n\n.hw-recent-row .hw-conv-card-avatar {\n\twidth: 32px;\n\theight: 32px;\n\tborder-radius: 8px;\n}\n.hw-recent-row .hw-conv-card-avatar svg {\n\twidth: 18px;\n\theight: 18px;\n}\n.hw-recent-row .hw-conv-card-name {\n\tfont-size: 13px;\n}\n.hw-recent-row .hw-conv-card-preview {\n\tfont-size: 12px;\n}\n\n.hw-recent-row--unread .hw-conv-card-name {\n\tcolor: var(--hw-text);\n}\n.hw-recent-row--unread .hw-conv-card-time {\n\tcolor: var(--hw-accent);\n\tfont-weight: 500;\n}\n\n.hw-recent-row-badge {\n\tmin-width: 18px;\n\theight: 18px;\n\tborder-radius: 9px;\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0 5px;\n\tflex-shrink: 0;\n\tfont-variant-numeric: tabular-nums;\n}\n\n.hw-recent-see-all {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 10px 14px;\n\ttext-align: center;\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcolor: var(--hw-text);\n\tbackground: none;\n\tborder: none;\n\tborder-top: 1px solid var(--hw-border);\n\tcursor: pointer;\n\tfont-family: inherit;\n\ttransition: background 0.1s;\n}\n.hw-recent-see-all:hover {\n\tbackground: rgba(0, 0, 0, 0.02);\n}\n\n/* ── Conversation Card (Messages tab) ──── */\n.hw-conv-card {\n\tposition: relative;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\twidth: 100%;\n\tpadding: 14px 16px;\n\tborder-radius: 14px;\n\tbackground: var(--hw-bg);\n\tborder: 1px solid rgba(0, 0, 0, 0.06);\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.03);\n\tcursor: pointer;\n\ttransition: box-shadow 0.15s, transform 0.1s;\n\ttext-align: left;\n\tfont-family: inherit;\n\tcolor: var(--hw-text);\n}\n.hw-conv-card:hover {\n\tbox-shadow: 0 4px 16px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.04);\n}\n.hw-conv-card:active {\n\ttransform: scale(0.99);\n}\n\n.hw-conv-card-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n\n.hw-conv-card-avatar {\n\twidth: 36px;\n\theight: 36px;\n\tborder-radius: 10px;\n\tbackground: var(--hw-bg-subtle);\n\tcolor: var(--hw-text-3);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\toverflow: hidden;\n}\n.hw-conv-card-avatar svg {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.hw-conv-card-content {\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.hw-conv-card-top {\n\tdisplay: flex;\n\talign-items: baseline;\n\tgap: 8px;\n}\n\n.hw-conv-card-name {\n\tflex: 1;\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text);\n}\n\n.hw-conv-card-time {\n\tfont-size: 11px;\n\tcolor: var(--hw-text-3);\n\tflex-shrink: 0;\n\tfont-variant-numeric: tabular-nums;\n}\n\n.hw-conv-card-preview {\n\tfont-size: 13px;\n\tcolor: var(--hw-text-2);\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tline-height: 1.4;\n\tmargin-top: 1px;\n}\n\n.hw-conv-card--unread .hw-conv-card-name {\n\tcolor: var(--hw-text);\n}\n.hw-conv-card--unread .hw-conv-card-time {\n\tcolor: var(--hw-accent);\n\tfont-weight: 500;\n}\n\n.hw-conv-card-badge {\n\tposition: absolute;\n\ttop: 12px;\n\tright: 12px;\n\tmin-width: 18px;\n\theight: 18px;\n\tborder-radius: 9px;\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0 5px;\n\tfont-variant-numeric: tabular-nums;\n}\n\n/* ── Empty State ─────────────────────────────── */\n.hw-empty-state {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 32px;\n\ttext-align: center;\n}\n\n.hw-empty-icon-wrap {\n\twidth: 48px;\n\theight: 48px;\n\tborder-radius: 50%;\n\tbackground: var(--hw-bg-subtle);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-bottom: 16px;\n\tcolor: var(--hw-text-3);\n}\n.hw-empty-icon-wrap svg {\n\twidth: 24px;\n\theight: 24px;\n}\n\n.hw-empty-title {\n\tfont-size: 15px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text);\n\tmargin-bottom: 4px;\n}\n\n.hw-empty-desc {\n\tfont-size: 13px;\n\tcolor: var(--hw-text-3);\n\tmargin-bottom: 20px;\n}\n\n.hw-empty-btn {\n\tpadding: 8px 20px;\n\tborder-radius: 10px;\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tborder: none;\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcursor: pointer;\n\tfont-family: inherit;\n\ttransition: background 0.15s;\n}\n.hw-empty-btn:hover {\n\tbackground: var(--hw-primary-hover);\n}\n\n/* ════════════════════════════════════════════════\n TAB BAR\n ════════════════════════════════════════════════ */\n\n.hw-tabs {\n\tdisplay: flex;\n\tborder-top: 1px solid var(--hw-border);\n\tflex-shrink: 0;\n\tbackground: var(--hw-bg-subtle);\n}\n\n.hw-tabs-item {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 2px;\n\tpadding: 8px 0;\n\tborder: none;\n\tbackground: none;\n\tcursor: pointer;\n\tfont-family: inherit;\n\tfont-size: 11px;\n\tfont-weight: 500;\n\tcolor: var(--hw-text-3);\n\ttransition: color 0.15s;\n}\n.hw-tabs-item svg {\n\twidth: 22px;\n\theight: 22px;\n}\n.hw-tabs-item--active {\n\tcolor: var(--hw-text);\n}\n.hw-tabs-item:hover {\n\tcolor: var(--hw-text-2);\n}\n.hw-tabs-item:active {\n\ttransform: scale(0.94);\n\ttransition: transform 0.14s cubic-bezier(0.23, 1, 0.32, 1), color 0.15s;\n}\n\n.hw-tabs-icon-wrap {\n\tposition: relative;\n\tdisplay: inline-flex;\n}\n\n.hw-tabs-badge {\n\tposition: absolute;\n\ttop: -6px;\n\tright: -10px;\n\tmin-width: 16px;\n\theight: 16px;\n\tborder-radius: 8px;\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tfont-size: 10px;\n\tfont-weight: 700;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0 4px;\n\tfont-variant-numeric: tabular-nums;\n}\n\n/* ════════════════════════════════════════════════\n MESSAGES AREA\n ════════════════════════════════════════════════ */\n\n.hw-messages {\n\tflex: 1;\n\toverflow-y: auto;\n\toverflow-x: hidden; /* Mobile safeguard — a single stray overflow would create horizontal scroll */\n\tpadding: 16px 20px;\n\tbackground: var(--hw-bg-subtle);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\toverscroll-behavior: contain;\n\t/* Flex column with constrained children — min-width:0 allows children to\n honor their own max-width rather than inflating to content width. */\n\tmin-width: 0;\n}\n\n/* ── Empty Messages ─────────────────────────── */\n.hw-empty {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 32px;\n\tcolor: var(--hw-text-3);\n\ttext-align: center;\n}\n\n.hw-empty-icon {\n\twidth: 40px;\n\theight: 40px;\n\tmargin-bottom: 12px;\n\topacity: 0.3;\n}\n\n/* ── Date Separator ──────────────────────────── */\n.hw-date-sep {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\tpadding: 12px 0;\n}\n\n.hw-date-sep-line {\n\tflex: 1;\n\theight: 1px;\n\tbackground: var(--hw-border-md);\n}\n\n.hw-date-sep-text {\n\tfont-size: 11px;\n\tcolor: var(--hw-text-3);\n\tfont-weight: 500;\n\twhite-space: nowrap;\n}\n\n/* ════════════════════════════════════════════════\n MESSAGE BUBBLE\n ════════════════════════════════════════════════ */\n\n.hw-msg {\n\tdisplay: flex;\n\tpadding: 4px 0;\n\tmax-width: 75%;\n\t/* Critical: prevent flex children from expanding beyond the container.\n Without min-width:0, long unbreakable content (URLs, Turkish words\n without soft-break opportunities) stretches the flex item past its\n max-width and overflows the messages column on mobile. */\n\tmin-width: 0;\n\tanimation: hw-msg-appear 0.25s ease-out;\n}\n\n@keyframes hw-msg-appear {\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateY(6px);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateY(0);\n\t}\n}\n\n.hw-msg--visitor {\n\talign-self: flex-end;\n}\n\n.hw-msg--team,\n.hw-msg--ai {\n\talign-self: flex-start;\n}\n\n.hw-msg-body {\n\tdisplay: flex;\n\tflex-direction: column;\n\t/* Inherit parent's width constraint (max-width: 75% on .hw-msg).\n Without these, flex items inside .hw-msg-body can push the body\n past its parent's bounds on mobile. */\n\tmin-width: 0;\n\tmax-width: 100%;\n}\n\n.hw-msg-bubble {\n\tpadding: 10px 14px;\n\tborder-radius: 18px;\n\tfont-size: 14px;\n\tline-height: 1.45;\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n\t/* overflow-wrap catches long unbreakable tokens that word-break misses\n in some Safari builds. Keeping both is defensive and cheap. */\n\toverflow-wrap: anywhere;\n\t/* Constrain to the body — prevents a long URL or run-on word from\n stretching the bubble past 75% of the messages column on mobile. */\n\tmax-width: 100%;\n}\n\n.hw-msg--visitor .hw-msg-bubble {\n\tbackground: var(--hw-primary);\n\tcolor: white;\n\tborder-bottom-right-radius: 4px;\n}\n\n.hw-msg--team .hw-msg-bubble {\n\tbackground: var(--hw-visitor-bubble-bg);\n\tcolor: var(--hw-visitor-bubble-text);\n\tborder-bottom-left-radius: 4px;\n}\n\n.hw-msg--ai .hw-msg-bubble {\n\tbackground: var(--hw-visitor-bubble-bg);\n\tcolor: var(--hw-text);\n\tborder-bottom-left-radius: 4px;\n\twhite-space: normal; /* AI messages use HTML rendering (markdown), not pre-wrap */\n}\n\n/* Meta (time + sender label) — hidden, show on hover */\n.hw-msg-meta {\n\tfont-size: 11px;\n\tcolor: var(--hw-text-3);\n\tmargin-top: 3px;\n\tpadding: 0 4px;\n\topacity: 0;\n\ttransition: opacity 0.15s;\n\tfont-variant-numeric: tabular-nums;\n}\n\n.hw-msg:hover .hw-msg-meta,\n.hw-msg:focus-within .hw-msg-meta {\n\topacity: 1;\n}\n\n.hw-msg--visitor .hw-msg-meta {\n\ttext-align: right;\n}\n\n.hw-msg--team .hw-msg-body,\n.hw-msg--ai .hw-msg-body {\n\talign-items: flex-start;\n}\n\n.hw-msg--visitor .hw-msg-body {\n\talign-items: flex-end;\n}\n\n/* Sender label above bubble */\n.hw-msg-sender {\n\tfont-size: 11px;\n\tfont-weight: 500;\n\tcolor: var(--hw-text-3);\n\tmargin-bottom: 3px;\n\tpadding: 0 4px;\n}\n\n/* ════════════════════════════════════════════════\n TYPING INDICATOR\n ════════════════════════════════════════════════ */\n\n.hw-typing {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3px;\n\tpadding: 8px 0;\n\twidth: fit-content;\n\tanimation: hw-msg-appear 0.25s ease-out;\n}\n\n.hw-typing-label {\n\tfont-size: 11px;\n\tfont-weight: 500;\n\tcolor: var(--hw-text-3);\n\tpadding: 0 4px;\n}\n\n.hw-typing-dots {\n\tdisplay: flex;\n\tgap: 3px;\n\tpadding: 10px 14px;\n\twidth: fit-content;\n\tbackground: var(--hw-visitor-bubble-bg);\n\tborder-radius: var(--hw-radius);\n\tborder-bottom-left-radius: 4px;\n}\n\n.hw-typing-dot {\n\twidth: 6px;\n\theight: 6px;\n\tborder-radius: 50%;\n\tbackground: var(--hw-text-3);\n\tanimation: hw-typing-bounce 1.4s infinite;\n}\n\n.hw-typing-dot:nth-child(2) {\n\tanimation-delay: 0.2s;\n}\n.hw-typing-dot:nth-child(3) {\n\tanimation-delay: 0.4s;\n}\n\n@keyframes hw-typing-bounce {\n\t0%,\n\t60%,\n\t100% {\n\t\ttransform: translateY(0);\n\t}\n\t30% {\n\t\ttransform: translateY(-4px);\n\t}\n}\n\n/* ════════════════════════════════════════════════\n LOADING STATE\n ════════════════════════════════════════════════ */\n\n.hw-loading {\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.hw-loading-dots {\n\tdisplay: flex;\n\tgap: 4px;\n}\n\n.hw-loading-dot {\n\twidth: 8px;\n\theight: 8px;\n\tborder-radius: 50%;\n\tbackground: var(--hw-text-4);\n\tanimation: hw-loading-pulse 1.4s infinite;\n}\n\n.hw-loading-dot:nth-child(2) {\n\tanimation-delay: 0.2s;\n}\n.hw-loading-dot:nth-child(3) {\n\tanimation-delay: 0.4s;\n}\n\n@keyframes hw-loading-pulse {\n\t0%,\n\t60%,\n\t100% {\n\t\topacity: 0.3;\n\t\ttransform: scale(0.8);\n\t}\n\t30% {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t}\n}\n\n/* ── Skeleton Loader ──────────────────────────── */\n\n@keyframes hw-skeleton-shimmer {\n\t0% {\n\t\tbackground-position: -200px 0;\n\t}\n\t100% {\n\t\tbackground-position: calc(200px + 100%) 0;\n\t}\n}\n\n.hw-skeleton {\n\tbackground: linear-gradient(\n\t\t90deg,\n\t\tvar(--hw-bg-subtle) 25%,\n\t\trgba(0, 0, 0, 0.04) 50%,\n\t\tvar(--hw-bg-subtle) 75%\n\t);\n\tbackground-size: 200px 100%;\n\tanimation: hw-skeleton-shimmer 1.5s ease-in-out infinite;\n\tborder-radius: 6px;\n}\n\n.hw-skeleton-messages {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 16px;\n\tgap: 16px;\n}\n\n.hw-skeleton-msg {\n\tdisplay: flex;\n\tgap: 10px;\n\talign-items: flex-start;\n}\n\n.hw-skeleton-msg--right {\n\tflex-direction: row-reverse;\n}\n\n.hw-skeleton-avatar {\n\twidth: 28px;\n\theight: 28px;\n\tborder-radius: 8px;\n\tflex-shrink: 0;\n}\n\n.hw-skeleton-bubble {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.hw-skeleton-line {\n\theight: 12px;\n\tborder-radius: 6px;\n}\n\n/* ── Skeleton: Conversation list ──────────────── */\n\n.hw-skeleton-convs {\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 8px 0;\n}\n\n.hw-skeleton-conv {\n\tdisplay: flex;\n\tgap: 10px;\n\talign-items: center;\n\tpadding: 10px 16px;\n}\n\n.hw-skeleton-conv-avatar {\n\twidth: 36px;\n\theight: 36px;\n\tborder-radius: 8px;\n\tflex-shrink: 0;\n}\n\n.hw-skeleton-conv-lines {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n/* ── Skeleton: Content list ──────────────── */\n\n.hw-skeleton-content {\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 12px 16px;\n\tgap: 12px;\n}\n\n.hw-skeleton-content-item {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tpadding: 12px;\n\tborder-radius: 10px;\n\tbackground: var(--hw-bg);\n}\n\n/* ════════════════════════════════════════════════\n EMAIL COLLECTION CARD (fixed above composer)\n ════════════════════════════════════════════════ */\n\n.hw-email-card {\n\tmargin: 0 12px;\n\tpadding: 14px 16px 10px;\n\tborder: 1px solid var(--hw-border, rgba(0,0,0,0.08));\n\tborder-radius: 14px;\n\tbackground: var(--hw-surface, #fff);\n\tbox-shadow: 0 1px 4px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.03);\n\tanimation: hw-email-slide-in 0.25s ease-out;\n}\n\n@keyframes hw-email-slide-in {\n\tfrom { opacity: 0; transform: translateY(8px); }\n\tto { opacity: 1; transform: translateY(0); }\n}\n\n.hw-email-card-header {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 10px;\n\tmargin-bottom: 12px;\n}\n\n.hw-email-card-icon {\n\tflex-shrink: 0;\n\twidth: 32px;\n\theight: 32px;\n\tborder-radius: 8px;\n\tbackground: var(--hw-brand, #0a0a0a);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcolor: #fff;\n}\n\n.hw-email-card-title {\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text, #1a1a1a);\n\tline-height: 1.3;\n\tmargin: 0 0 2px;\n}\n\n.hw-email-card-subtitle {\n\tfont-size: 12px;\n\tcolor: var(--hw-text-muted, #888);\n\tline-height: 1.4;\n\tmargin: 0;\n}\n\n.hw-email-card-input {\n\twidth: 100%;\n\tpadding: 9px 12px;\n\tborder-radius: 10px;\n\tborder: 1px solid var(--hw-border, rgba(0,0,0,0.1));\n\tbackground: var(--hw-bg, #fafafa);\n\tcolor: var(--hw-text, #1a1a1a);\n\tfont-size: 13px;\n\toutline: none;\n\tmargin-bottom: 8px;\n\tbox-sizing: border-box;\n\ttransition: border-color 0.15s;\n}\n\n.hw-email-card-input:focus {\n\tborder-color: var(--hw-brand, #0a0a0a);\n\tbox-shadow: 0 0 0 2px rgba(0,0,0,0.06);\n}\n\n.hw-email-card-input--error {\n\tborder-color: #ef4444;\n}\n\n.hw-email-card-submit {\n\twidth: 100%;\n\tpadding: 9px;\n\tborder-radius: 10px;\n\tborder: none;\n\tbackground: var(--hw-brand, #0a0a0a);\n\tcolor: #fff;\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcursor: pointer;\n\ttransition: opacity 0.15s;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 6px;\n}\n\n.hw-email-card-submit:hover:not(:disabled) {\n\topacity: 0.88;\n}\n\n.hw-email-card-submit:disabled {\n\topacity: 0.5;\n\tcursor: not-allowed;\n}\n\n.hw-email-card--success {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 6px;\n\tpadding: 10px 16px;\n\tfont-size: 13px;\n\tcolor: var(--hw-text-muted, #888);\n\tanimation: hw-email-slide-in 0.2s ease-out;\n}\n\n.hw-email-card--success svg {\n\tflex-shrink: 0;\n}\n\n/* ════════════════════════════════════════════════\n COMPOSER\n ════════════════════════════════════════════════ */\n\n.hw-composer {\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 12px 16px;\n\tbackground: transparent;\n\tflex-shrink: 0;\n}\n\n.hw-composer--compact {\n\tpadding: 8px 12px;\n}\n\n.hw-composer-box {\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder: 2px solid var(--hw-border-md);\n\tborder-radius: 16px;\n\toverflow: hidden;\n\ttransition: border-color 0.2s;\n\tbackground: var(--hw-bg);\n}\n\n.hw-composer-box:focus-within {\n\tborder-color: var(--hw-focus-border);\n\tbox-shadow: 0 0 0 3px var(--hw-focus-ring);\n}\n\n.hw-composer-input {\n\tflex: 1;\n\tresize: none;\n\tborder: none;\n\tpadding: 12px 16px 4px;\n\tfont-size: 14px;\n\tfont-family: inherit;\n\tline-height: 1.4;\n\toutline: none;\n\tmin-height: 40px;\n\tmax-height: 120px;\n\tbackground: transparent;\n\tcolor: var(--hw-text);\n}\n\n.hw-composer-input:focus {\n\toutline: none;\n}\n\n.hw-composer-input:focus-visible {\n\toutline: none;\n}\n\n.hw-composer-input::placeholder {\n\tcolor: var(--hw-text-4);\n}\n\n.hw-composer-toolbar {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 4px 10px 10px;\n}\n\n.hw-composer-toolbar-left {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n}\n\n/* Send button — tight 140ms transition scoped to only the props that\n * actually change. Press scale goes to 0.9 (bigger than Button's 0.97\n * because this is a terminal action — \"fire\"). Uses the same strong\n * ease-out curve as the rest of the dashboard. */\n.hw-composer-send {\n\twidth: 32px;\n\theight: 32px;\n\tborder-radius: 50%;\n\tborder: none;\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\ttransition:\n\t\tbackground-color 140ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\tcolor 140ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\ttransform 140ms cubic-bezier(0.23, 1, 0.32, 1);\n}\n\n.hw-composer-send:active:not(:disabled) {\n\ttransform: scale(0.9);\n}\n\n.hw-composer-send--active {\n\tbackground: var(--hw-primary);\n\tcolor: white;\n}\n\n.hw-composer-send--inactive {\n\tbackground: var(--hw-border);\n\tcolor: var(--hw-text-4);\n\tcursor: default;\n}\n\n.hw-composer-send svg {\n\twidth: 14px;\n\theight: 14px;\n}\n\n/* Character count — invisible until the visitor crosses the warn\n * threshold, then reveals with a subtle rise instead of popping in.\n * Uses @starting-style so the transition only fires on mount (no\n * animation on re-renders while the number is updating). */\n.hw-composer-charcount {\n\tfont-size: 11px;\n\tcolor: var(--hw-text-3);\n\tfont-variant-numeric: tabular-nums;\n\topacity: 1;\n\ttransform: translateY(0);\n\ttransition:\n\t\tcolor 180ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\topacity 180ms cubic-bezier(0.23, 1, 0.32, 1),\n\t\ttransform 180ms cubic-bezier(0.23, 1, 0.32, 1);\n}\n\n@starting-style {\n\t.hw-composer-charcount {\n\t\topacity: 0;\n\t\ttransform: translateY(3px);\n\t}\n}\n\n.hw-composer-charcount--over {\n\tcolor: #ef4444;\n\tfont-weight: 600;\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.hw-composer-charcount {\n\t\ttransform: none;\n\t\ttransition: color 160ms ease, opacity 160ms ease;\n\t}\n\t@starting-style {\n\t\t.hw-composer-charcount {\n\t\t\ttransform: none;\n\t\t}\n\t}\n}\n\n/* Composer — attachment previews */\n.hw-composer-previews {\n\tdisplay: flex;\n\tgap: 6px;\n\tpadding: 8px 10px 0;\n\toverflow-x: auto;\n\tscrollbar-width: none;\n}\n.hw-composer-previews::-webkit-scrollbar {\n\tdisplay: none;\n}\n\n.hw-composer-preview {\n\tposition: relative;\n\twidth: 48px;\n\theight: 48px;\n\tborder-radius: 8px;\n\toverflow: hidden;\n\tflex-shrink: 0;\n\tbackground: var(--hw-border);\n\tcursor: pointer;\n}\n\n.hw-composer-preview--error {\n\toutline: 2px solid #ef4444;\n\toutline-offset: -2px;\n}\n\n.hw-composer-preview-img {\n\twidth: 100%;\n\theight: 100%;\n\tobject-fit: cover;\n}\n\n.hw-composer-preview-file {\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: var(--hw-bg-subtle);\n}\n\n.hw-composer-preview-ext {\n\tfont-size: 10px;\n\tfont-weight: 700;\n\tcolor: var(--hw-text-3);\n\ttext-transform: uppercase;\n}\n\n.hw-composer-preview-loader {\n\tposition: absolute;\n\tinset: 0;\n\tbackground: rgba(0, 0, 0, 0.35);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n.hw-composer-preview-loader::after {\n\tcontent: \"\";\n\twidth: 16px;\n\theight: 16px;\n\tborder: 2px solid rgba(255, 255, 255, 0.3);\n\tborder-top-color: white;\n\tborder-radius: 50%;\n\tanimation: hw-spin 0.6s linear infinite;\n}\n\n@keyframes hw-spin {\n\tto {\n\t\ttransform: rotate(360deg);\n\t}\n}\n\n.hw-composer-preview-badge {\n\tposition: absolute;\n\ttop: 2px;\n\tright: 2px;\n\twidth: 16px;\n\theight: 16px;\n\tborder-radius: 50%;\n\tbackground: #ef4444;\n\tcolor: white;\n\tfont-size: 10px;\n\tfont-weight: 700;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.hw-composer-preview-remove {\n\tposition: absolute;\n\ttop: 2px;\n\tright: 2px;\n\twidth: 18px;\n\theight: 18px;\n\tborder-radius: 50%;\n\tborder: none;\n\tbackground: rgba(0, 0, 0, 0.55);\n\tcolor: white;\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\topacity: 0;\n\ttransition: opacity 0.15s;\n}\n.hw-composer-preview-remove svg {\n\twidth: 10px;\n\theight: 10px;\n}\n.hw-composer-preview:hover .hw-composer-preview-remove {\n\topacity: 1;\n}\n\n/* Composer — attach button (active) */\n.hw-composer-attach {\n\twidth: 28px;\n\theight: 28px;\n\tborder: none;\n\tbackground: none;\n\tcolor: var(--hw-text-3);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder-radius: 6px;\n\topacity: 0.7;\n\ttransition: opacity 0.15s;\n}\n.hw-composer-attach:hover {\n\topacity: 1;\n}\n.hw-composer-attach svg {\n\twidth: 16px;\n\theight: 16px;\n}\n\n/* ── Message — image attachments ────────────────── */\n\n.hw-msg-images {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tmargin-bottom: 4px;\n}\n\n.hw-msg-image-link {\n\tdisplay: block;\n\tborder-radius: 14px;\n\toverflow: hidden;\n\tline-height: 0;\n}\n\n.hw-msg-image {\n\tmax-width: 140px;\n\tmax-height: 80px;\n\tobject-fit: cover;\n\tborder-radius: 8px;\n\toutline: 1px solid rgba(0, 0, 0, 0.08);\n\toutline-offset: -1px;\n}\n\n/* ── Message — file attachments ─────────────────── */\n\n.hw-msg-files {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tmargin-top: 4px;\n}\n\n.hw-msg-file {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\tborder-radius: 10px;\n\tbackground: var(--hw-bg-subtle);\n\ttext-decoration: none;\n\tcolor: var(--hw-text);\n\ttransition: background 0.15s;\n}\n.hw-msg-file:hover {\n\tbackground: var(--hw-border);\n}\n\n.hw-msg-file-icon {\n\tflex-shrink: 0;\n\twidth: 20px;\n\theight: 20px;\n\tcolor: var(--hw-text-3);\n}\n.hw-msg-file-icon svg {\n\twidth: 100%;\n\theight: 100%;\n}\n\n.hw-msg-file-info {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-width: 0;\n}\n\n.hw-msg-file-name {\n\tfont-size: 13px;\n\tfont-weight: 500;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.hw-msg-file-size {\n\tfont-size: 11px;\n\tcolor: var(--hw-text-3);\n}\n\n/* Image thumbnail — cursor hint */\n.hw-msg-image-link {\n\tcursor: pointer;\n\tborder: none;\n\tpadding: 0;\n\tbackground: none;\n\tdisplay: block;\n\tline-height: 0;\n}\n\n/* ── Hover preview — floating near cursor ─────── */\n\n.hw-hover-preview {\n\tposition: fixed;\n\tz-index: 99998;\n\tpadding: 6px;\n\tborder-radius: 14px;\n\tbackground: white;\n\tbox-shadow: 0 8px 32px rgba(0, 0, 0, 0.18), 0 0 0 1px rgba(0, 0, 0, 0.06);\n\tcursor: pointer;\n\tanimation: hw-hover-in 0.15s ease-out;\n}\n\n@media (prefers-color-scheme: dark) {\n\t.hw-hover-preview {\n\t\tbackground: #1c1c1e;\n\t\tbox-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.08);\n\t}\n}\n\n@keyframes hw-hover-in {\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: scale(0.96) translateY(4px);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: scale(1) translateY(0);\n\t}\n}\n\n.hw-hover-preview-img {\n\twidth: 100%;\n\tmax-height: 200px;\n\tobject-fit: contain;\n\tborder-radius: 10px;\n\tdisplay: block;\n\toutline: 1px solid rgba(0, 0, 0, 0.08);\n\toutline-offset: -1px;\n}\n\n/* Document preview variant */\n.hw-hover-preview--doc {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tpadding: 10px 14px;\n}\n\n.hw-hover-preview-doc-icon {\n\twidth: 28px;\n\theight: 28px;\n\tflex-shrink: 0;\n}\n.hw-hover-preview-doc-icon svg {\n\twidth: 100%;\n\theight: 100%;\n}\n\n.hw-hover-preview-doc-info {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-width: 0;\n}\n\n.hw-hover-preview-doc-name {\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcolor: var(--hw-text);\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.hw-hover-preview-doc-hint {\n\tfont-size: 11px;\n\tcolor: var(--hw-text-3);\n}\n\n/* ════════════════════════════════════════════════\n EVENT CARD (join/leave/resolve)\n ════════════════════════════════════════════════ */\n\n.hw-event {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: 8px 16px;\n}\n.hw-event-text {\n\tfont-size: 12px;\n\tcolor: var(--hw-text-3);\n\ttext-align: center;\n}\n\n.hw-event--card {\n\tjustify-content: flex-start;\n\talign-items: center;\n\tgap: 10px;\n\tbackground: var(--hw-bg-subtle);\n\tpadding: 10px 14px;\n\tborder-radius: 12px;\n\tmargin: 4px 16px;\n}\n\n.hw-event-avatar {\n\twidth: 32px;\n\theight: 32px;\n\tborder-radius: 50%;\n\tbackground: #e0e0e0;\n\tcolor: #555;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tflex-shrink: 0;\n\toverflow: hidden;\n}\n.hw-event-avatar-img {\n\twidth: 100%;\n\theight: 100%;\n\tobject-fit: cover;\n}\n\n.hw-event-body {\n\tfont-size: 13px;\n\tline-height: 1.3;\n}\n.hw-event-name {\n\tfont-weight: 600;\n\tcolor: var(--hw-text);\n}\n.hw-event-action {\n\tcolor: var(--hw-text-2);\n}\n\n/* ════════════════════════════════════════════════\n RESOLVED BANNER\n ════════════════════════════════════════════════ */\n\n.hw-resolved-banner {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 12px 16px;\n\tborder-top: 1px solid var(--hw-border);\n\tbackground: var(--hw-bg-subtle);\n\tcolor: var(--hw-text-2);\n\tfont-size: 13px;\n\tflex-shrink: 0;\n}\n\n/* ════════════════════════════════════════════════\n NEW CONVERSATION FORM\n ════════════════════════════════════════════════ */\n\n.hw-new {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tbackground: var(--hw-bg-subtle);\n}\n\n.hw-new-body {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 32px 24px;\n\ttext-align: center;\n}\n\n.hw-new-welcome {\n\tflex: 1;\n\t/* Match .hw-messages padding so the welcome bubble doesn't shift\n horizontally when the view transitions to ConversationView after\n the visitor sends their first message. */\n\tpadding: 16px 20px;\n\toverflow-y: auto;\n}\n\n.hw-new-heading {\n\tfont-size: 17px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text);\n\tmargin-bottom: 6px;\n}\n\n.hw-new-desc {\n\tfont-size: 13px;\n\tcolor: var(--hw-text-2);\n\tmargin-bottom: 24px;\n}\n\n/* ════════════════════════════════════════════════\n POWERED BY\n ════════════════════════════════════════════════ */\n\n.hw-powered {\n\ttext-align: center;\n\tpadding: 8px;\n\tfont-size: 11px;\n\tcolor: var(--hw-text-4);\n\tflex-shrink: 0;\n}\n\n.hw-powered a {\n\tcolor: var(--hw-text-2);\n\ttext-decoration: none;\n\tfont-weight: 500;\n}\n\n.hw-powered a:hover {\n\tcolor: var(--hw-text);\n}\n\n/* ════════════════════════════════════════════════\n MOBILE RESPONSIVE (< 480px)\n ════════════════════════════════════════════════ */\n\n@media (max-width: 479px) {\n\t.hw-widget {\n\t\tbottom: 16px;\n\t\tright: 16px;\n\t\tleft: auto;\n\t}\n\n\t.hw-window {\n\t\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\twidth: 100%;\n\t\t/* --hw-visible-height is set by default-widget.tsx from\n\t\t visualViewport.height — shrinks when iOS virtual keyboard opens\n\t\t so the composer stays above the keyboard. Falls back to 100% when\n\t\t visualViewport isn't supported or not yet measured. */\n\t\theight: var(--hw-visible-height, 100%);\n\t\tborder-radius: 0;\n\t\tanimation: hw-mob-up 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n\t.hw-window--closing {\n\t\tanimation: hw-mob-down 0.2s ease forwards;\n\t}\n\t@keyframes hw-mob-up {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: translateY(100%);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n\t@keyframes hw-mob-down {\n\t\tfrom {\n\t\t\topacity: 1;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t\tto {\n\t\t\topacity: 0;\n\t\t\ttransform: translateY(100%);\n\t\t}\n\t}\n\n\t/* Safe areas */\n\t.hw-hero {\n\t\tpadding-top: calc(20px + env(safe-area-inset-top, 0px));\n\t}\n\t.hw-header {\n\t\tpadding-top: env(safe-area-inset-top, 0px);\n\t}\n\t.hw-tabs {\n\t\tpadding-bottom: env(safe-area-inset-bottom, 0px);\n\t}\n\t.hw-composer {\n\t\tpadding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));\n\t}\n\t.hw-powered {\n\t\tpadding-bottom: calc(5px + env(safe-area-inset-bottom, 0px));\n\t}\n\n\t/* Touch targets */\n\t.hw-header-close,\n\t.hw-header-back,\n\t.hw-header-action {\n\t\twidth: 34px;\n\t\theight: 34px;\n\t}\n\n\t.hw-composer-send {\n\t\twidth: 40px;\n\t\theight: 40px;\n\t}\n\n\t/* Hide bubble when fullscreen */\n\t.hw-window ~ .hw-bubble {\n\t\tdisplay: none;\n\t}\n\n\t/* Mobile: tighten message list padding + give bubbles more room.\n 75% of a 360px viewport with 20px side padding = 240px bubble cap,\n which truncates even short sentences like \"Merhaba!\". Bumping to\n 82% on mobile (~262px) fits Turkish greetings and the body still\n has visible room for the opposite-side avatar/spacing. */\n\t.hw-messages {\n\t\tpadding: 12px 14px;\n\t}\n\t.hw-msg {\n\t\tmax-width: 82%;\n\t}\n}\n\n/* ════════════════════════════════════════════════\n MESSAGE PREVIEW BUBBLE (shown when widget is closed)\n ════════════════════════════════════════════════ */\n\n.hw-preview {\n\tposition: absolute;\n\tbottom: calc(100% + 12px);\n\tright: 0;\n\twidth: 300px;\n\tmax-width: calc(100vw - 40px);\n\tbackground: var(--hw-bg);\n\tborder: 1px solid var(--hw-border);\n\tborder-radius: 16px;\n\tbox-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);\n\tanimation: hw-preview-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n\toverflow: hidden;\n\tcursor: pointer;\n\ttransition: transform 0.15s, box-shadow 0.15s;\n}\n\n.hw-preview:hover {\n\ttransform: translateY(-2px);\n\tbox-shadow: 0 12px 40px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.hw-preview--closing {\n\tanimation: hw-preview-out 0.2s ease forwards;\n}\n\n@keyframes hw-preview-in {\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateY(8px) scale(0.95);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateY(0) scale(1);\n\t}\n}\n@keyframes hw-preview-out {\n\tfrom {\n\t\topacity: 1;\n\t\ttransform: translateY(0) scale(1);\n\t}\n\tto {\n\t\topacity: 0;\n\t\ttransform: translateY(8px) scale(0.95);\n\t}\n}\n\n.hw-preview-header {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 12px 14px 0;\n}\n\n.hw-preview-avatar {\n\twidth: 28px;\n\theight: 28px;\n\tborder-radius: 50%;\n\tbackground: linear-gradient(135deg, var(--hw-primary), color-mix(in srgb, var(--hw-primary) 50%, black));\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcolor: white;\n\tflex-shrink: 0;\n\toverflow: hidden;\n}\n\n.hw-preview-avatar svg {\n\twidth: 16px;\n\theight: 16px;\n}\n\n.hw-preview-name {\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text);\n\tflex: 1;\n}\n\n.hw-preview-close {\n\twidth: 24px;\n\theight: 24px;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--hw-text-3);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder-radius: 50%;\n\ttransition: background 0.15s, color 0.15s;\n\tflex-shrink: 0;\n}\n.hw-preview-close:hover {\n\tbackground: var(--hw-bg-subtle);\n\tcolor: var(--hw-text-2);\n}\n.hw-preview-close:active {\n\ttransform: scale(0.90);\n\ttransition: transform 0.14s cubic-bezier(0.23, 1, 0.32, 1), background 0.15s, color 0.15s;\n}\n.hw-preview-close svg {\n\twidth: 12px;\n\theight: 12px;\n}\n\n.hw-preview-body {\n\tpadding: 8px 14px 14px;\n\tfont-size: 14px;\n\tline-height: 1.45;\n\tcolor: var(--hw-text-2);\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: 3;\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n}\n\n/* ═══════════════════════════════════════════════════════════\n Content Tabs — Better i18n Content CMS integration\n Generic list → detail pattern for all content types\n ═══════════════════════════════════════════════════════════ */\n\n/* ── Search (rounded input card) ────────────────────────── */\n.hw-content-search {\n\tpadding: 10px 16px;\n}\n\n.hw-content-search-box {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\tbackground: var(--hw-bg);\n\tborder: 1px solid var(--hw-border-md);\n\tborder-radius: 10px;\n\ttransition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.hw-content-search-box:focus-within {\n\tborder-color: var(--hw-focus-border);\n\tbox-shadow: 0 0 0 3px var(--hw-focus-ring);\n}\n\n.hw-content-search-input {\n\tflex: 1;\n\tborder: none !important;\n\toutline: none !important;\n\tbox-shadow: none !important;\n\tbackground: none;\n\tfont-size: 13px;\n\tcolor: var(--hw-text-1);\n\tfont-family: inherit;\n\tline-height: 1;\n\t-webkit-appearance: none;\n}\n\n.hw-content-search-input:focus,\n.hw-content-search-input:focus-visible {\n\toutline: none !important;\n\tbox-shadow: none !important;\n\tborder: none !important;\n}\n\n.hw-content-search-input::placeholder {\n\tcolor: var(--hw-text-3);\n}\n\n.hw-content-search-icon {\n\twidth: 15px;\n\theight: 15px;\n\tcolor: var(--hw-text-3);\n\tflex-shrink: 0;\n}\n\n/* ── Entry List ────────────────────────────────────────── */\n.hw-content-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n}\n\n.hw-content-entries {\n\tflex: 1;\n\toverflow-y: auto;\n\toverscroll-behavior: contain;\n}\n\n.hw-content-entry {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 14px 16px;\n\tborder: none;\n\tborder-bottom: 1px solid var(--hw-border);\n\tbackground: none;\n\tcursor: pointer;\n\ttext-align: left;\n\ttransition: background-color 0.15s ease;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.hw-content-entry:hover {\n\tbackground: var(--hw-bg-hover);\n}\n\n.hw-content-entry:active {\n\tbackground: var(--hw-border);\n}\n\n.hw-content-entry:last-child {\n\tborder-bottom: none;\n}\n\n.hw-content-entry-main {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n\n.hw-content-entry-text {\n\tflex: 1;\n\tmin-width: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3px;\n}\n\n.hw-content-entry-title {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text-1);\n\tline-height: 1.3;\n}\n\n.hw-content-entry-desc {\n\tfont-size: 13px;\n\tcolor: var(--hw-text-2);\n\tline-height: 1.4;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: 2;\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n}\n\n.hw-content-entry-meta {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-top: 2px;\n}\n\n.hw-content-entry-badge {\n\tfont-size: 11px;\n\tfont-weight: 500;\n\tcolor: var(--hw-text-3);\n\tbackground: var(--hw-bg-hover);\n\tpadding: 1px 6px;\n\tborder-radius: 4px;\n}\n\n.hw-content-entry-date {\n\tfont-size: 11px;\n\tcolor: var(--hw-text-3);\n}\n\n.hw-content-entry-chevron {\n\twidth: 16px;\n\theight: 16px;\n\tcolor: var(--hw-text-3);\n\tflex-shrink: 0;\n\topacity: 0.5;\n}\n\n/* ── Detail View ───────────────────────────────────────── */\n.hw-content-detail {\n\tpadding: 16px;\n\toverflow-y: auto;\n\toverscroll-behavior: contain;\n\theight: 100%;\n}\n\n.hw-content-detail-header {\n\tmargin-bottom: 16px;\n}\n\n.hw-content-detail-title {\n\tfont-size: 17px;\n\tfont-weight: 700;\n\tcolor: var(--hw-text-1);\n\tmargin: 0 0 6px;\n\tline-height: 1.3;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n\n.hw-content-detail-meta {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tflex-wrap: wrap;\n}\n\n.hw-content-detail-date {\n\tfont-size: 12px;\n\tcolor: var(--hw-text-3);\n}\n\n.hw-content-detail-body {\n\tfont-size: 14px;\n\tline-height: 1.6;\n\tcolor: var(--hw-text-1);\n}\n\n/* ── Markdown Rendering ────────────────────────────────── */\n.hw-markdown h1 {\n\tfont-size: 17px;\n\tfont-weight: 700;\n\tmargin: 20px 0 8px;\n}\n\n.hw-markdown h2 {\n\tfont-size: 15px;\n\tfont-weight: 600;\n\tmargin: 16px 0 6px;\n}\n\n.hw-markdown h3 {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tmargin: 12px 0 4px;\n}\n\n.hw-markdown p {\n\tmargin: 0 0 12px;\n}\n\n.hw-markdown ul {\n\tmargin: 0 0 12px;\n\tpadding-left: 20px;\n}\n\n.hw-markdown li {\n\tmargin: 4px 0;\n}\n\n.hw-markdown code {\n\tfont-family: ui-monospace, \"SF Mono\", monospace;\n\tfont-size: 12px;\n\tbackground: var(--hw-bg-hover);\n\tpadding: 1px 5px;\n\tborder-radius: 4px;\n}\n\n/* ═══ Code block card — header (lang + copy) + body ═══\n Emitted by renderMarkdown for every triple-backtick fence.\n Designed to match the Better i18n docs look: subtle header bar,\n mono body with horizontal scroll for long lines. */\n.hw-code {\n\tmargin: 10px 0;\n\tborder-radius: 10px;\n\toverflow: hidden;\n\tborder: 1px solid var(--hw-border, rgba(0, 0, 0, 0.08));\n\tbackground: var(--hw-bg-hover, #f5f5f4);\n\tfont-family: ui-monospace, \"SF Mono\", \"Menlo\", monospace;\n}\n\n.hw-code-header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 6px 12px;\n\tfont-size: 11px;\n\tcolor: var(--hw-text-2, #6b7280);\n\tbackground: rgba(0, 0, 0, 0.03);\n\tborder-bottom: 1px solid var(--hw-border, rgba(0, 0, 0, 0.06));\n}\n\n.hw-code-lang {\n\ttext-transform: lowercase;\n\tletter-spacing: 0.02em;\n\tfont-weight: 500;\n}\n\n.hw-code-copy {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding: 2px 8px;\n\tfont-size: 11px;\n\tfont-family: inherit;\n\tcolor: var(--hw-text-2, #6b7280);\n\tbackground: transparent;\n\tborder: 1px solid transparent;\n\tborder-radius: 5px;\n\tcursor: pointer;\n\ttransition: background 120ms ease, color 120ms ease;\n}\n\n.hw-code-copy:hover {\n\tcolor: var(--hw-text, #111);\n\tbackground: rgba(0, 0, 0, 0.06);\n}\n\n.hw-code-copy--copied {\n\tcolor: #16a34a;\n}\n\n.hw-code-copy--failed {\n\tcolor: #dc2626;\n}\n\n.hw-code pre {\n\tmargin: 0;\n\tpadding: 10px 12px;\n\tbackground: transparent;\n\tborder-radius: 0;\n\toverflow-x: auto;\n\tmax-width: 100%;\n}\n\n.hw-code pre code {\n\tdisplay: block;\n\tbackground: transparent;\n\tpadding: 0;\n\tfont-size: 12px;\n\tline-height: 1.55;\n\twhite-space: pre;\n\tcolor: var(--hw-text, #111);\n}\n\n/* Dark-mode auto-tweaks — widget supports --hw-* tokens so theme adapts.\n If tokens aren't overridden, browsers honoring prefers-color-scheme get a\n darker card by default. */\n@media (prefers-color-scheme: dark) {\n\t.hw-code {\n\t\tbackground: rgba(255, 255, 255, 0.04);\n\t\tborder-color: rgba(255, 255, 255, 0.08);\n\t}\n\t.hw-code-header {\n\t\tbackground: rgba(255, 255, 255, 0.03);\n\t\tborder-bottom-color: rgba(255, 255, 255, 0.06);\n\t}\n\t.hw-code-copy:hover {\n\t\tbackground: rgba(255, 255, 255, 0.08);\n\t}\n}\n\n/* Legacy bare <pre> fallback (rendered by old CMS bodyHtml content that may\n not have been re-processed). Keep the overflow + wrap behavior so nothing\n breaks visually while we transition to the card-wrapped variant. */\n.hw-markdown pre {\n\tmargin: 8px 0;\n\tpadding: 10px 12px;\n\tbackground: var(--hw-bg-hover);\n\tborder-radius: 8px;\n\toverflow-x: auto;\n\tmax-width: 100%;\n}\n\n.hw-markdown pre code {\n\tdisplay: block;\n\tbackground: transparent;\n\tpadding: 0;\n\tborder-radius: 0;\n\tfont-size: 12px;\n\tline-height: 1.5;\n\twhite-space: pre;\n\tword-break: normal;\n\tcolor: inherit;\n}\n\n/* Also style fenced blocks that live inside a message bubble (AI replies) —\n bubbles already have their own bg, so a slightly darker overlay reads. */\n.hw-msg-bubble pre {\n\tmargin: 6px 0;\n\tpadding: 8px 10px;\n\tbackground: rgba(0, 0, 0, 0.06);\n\tborder-radius: 6px;\n\toverflow-x: auto;\n\tmax-width: 100%;\n}\n\n.hw-msg-bubble pre code {\n\tbackground: transparent;\n\tpadding: 0;\n\tfont-size: 12px;\n\tline-height: 1.5;\n\twhite-space: pre;\n}\n\n.hw-msg--team .hw-msg-bubble pre,\n.hw-msg--visitor .hw-msg-bubble pre {\n\tbackground: rgba(255, 255, 255, 0.12);\n}\n\n.hw-markdown blockquote {\n\tmargin: 0 0 12px;\n\tpadding: 8px 12px;\n\tborder-left: 3px solid var(--hw-border);\n\tcolor: var(--hw-text-2);\n\tfont-style: italic;\n}\n\n.hw-markdown a {\n\tcolor: var(--hw-primary);\n\ttext-decoration: underline;\n\ttext-underline-offset: 2px;\n}\n\n.hw-markdown img {\n\tmax-width: 100%;\n\tborder-radius: 8px;\n\tmargin: 8px 0;\n\toutline: 1px solid rgba(0, 0, 0, 0.08);\n\toutline-offset: -1px;\n}\n\n.hw-markdown hr {\n\tborder: none;\n\tborder-top: 1px solid var(--hw-border);\n\tmargin: 16px 0;\n}\n\n/* ── Empty / Loading ───────────────────────────────────── */\n.hw-content-empty {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 40px 20px;\n\ttext-align: center;\n}\n\n.hw-content-empty-title {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text-1);\n\tmargin-bottom: 4px;\n}\n\n.hw-content-empty-desc {\n\tfont-size: 12px;\n\tcolor: var(--hw-text-3);\n}\n\n.hw-content-loading {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 40px 20px;\n}\n\n/* ── Load More ─────────────────────────────────────────── */\n.hw-content-load-more {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 10px;\n\tborder: none;\n\tbackground: none;\n\tcolor: var(--hw-primary);\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcursor: pointer;\n\ttext-align: center;\n}\n\n.hw-content-load-more:hover {\n\tbackground: var(--hw-bg-hover);\n}\n\n.hw-content-load-more:disabled {\n\topacity: 0.5;\n\tcursor: default;\n}\n\n/* ════════════════════════════════════════════════\n TOUCH DEVICE FIXES\n ════════════════════════════════════════════════ */\n\n@media (hover: none) {\n\t.hw-composer-preview-remove {\n\t\topacity: 0.7;\n\t}\n\t.hw-msg-meta {\n\t\topacity: 1;\n\t}\n}\n\n/* ════════════════════════════════════════════════\n DRAG & DROP OVERLAY\n ════════════════════════════════════════════════ */\n\n.hw-composer--dragging .hw-composer-box {\n\tborder-color: var(--hw-primary);\n\tbackground: color-mix(in srgb, var(--hw-primary) 4%, transparent);\n}\n\n.hw-composer-drop-overlay {\n\tposition: absolute;\n\tinset: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: color-mix(in srgb, var(--hw-bg) 90%, transparent);\n\tborder: 2px dashed var(--hw-primary);\n\tborder-radius: 12px;\n\tz-index: 10;\n\tpointer-events: none;\n\tanimation: hw-drop-pulse 1.5s ease-in-out infinite;\n}\n\n.hw-composer-drop-text {\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcolor: var(--hw-primary);\n}\n\n@keyframes hw-drop-pulse {\n\t0%,\n\t100% {\n\t\topacity: 0.8;\n\t}\n\t50% {\n\t\topacity: 1;\n\t}\n}\n\n/* ════════════════════════════════════════════════\n MESSAGE COPY BUTTON\n ════════════════════════════════════════════════ */\n\n.hw-msg-copy {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 20px;\n\theight: 20px;\n\tmargin-left: 4px;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground: none;\n\tcolor: var(--hw-text-4);\n\tcursor: pointer;\n\tvertical-align: middle;\n\ttransition: color 0.15s, background 0.15s;\n\tpadding: 0;\n\tflex-shrink: 0;\n}\n\n.hw-msg-copy:hover {\n\tbackground: var(--hw-bg-hover);\n\tcolor: var(--hw-text-2);\n}\n\n.hw-msg-copy svg {\n\twidth: 12px;\n\theight: 12px;\n}\n\n.hw-msg-copy--done {\n\tcolor: #22c55e;\n}\n\n/* ════════════════════════════════════════════════\n DISCONNECT BANNER\n ════════════════════════════════════════════════ */\n\n.hw-disconnect {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 6px;\n\tpadding: 6px 12px;\n\tbackground: #fef3c7;\n\tcolor: #92400e;\n\tfont-size: 12px;\n\tfont-weight: 500;\n\tflex-shrink: 0;\n\tanimation: hw-msg-appear 0.25s ease-out;\n}\n\n.hw-disconnect-dot {\n\twidth: 6px;\n\theight: 6px;\n\tborder-radius: 50%;\n\tbackground: #f59e0b;\n\tanimation: hw-loading-pulse 1.4s infinite;\n}\n\n/* ════════════════════════════════════════════════\n ERROR STATE\n ════════════════════════════════════════════════ */\n\n.hw-error-state {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 32px 24px;\n\ttext-align: center;\n\tgap: 12px;\n}\n\n.hw-error-icon {\n\twidth: 48px;\n\theight: 48px;\n\tborder-radius: 50%;\n\tbackground: #fef2f2;\n\tcolor: #ef4444;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.hw-error-icon svg {\n\twidth: 24px;\n\theight: 24px;\n}\n\n.hw-error-title {\n\tfont-size: 15px;\n\tfont-weight: 600;\n\tcolor: var(--hw-text);\n}\n\n.hw-error-desc {\n\tfont-size: 13px;\n\tcolor: var(--hw-text-2);\n}\n\n.hw-error-btn {\n\tpadding: 8px 20px;\n\tborder: 1px solid var(--hw-border-md);\n\tborder-radius: 8px;\n\tbackground: var(--hw-bg);\n\tcolor: var(--hw-text);\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcursor: pointer;\n\ttransition: background 0.15s;\n}\n\n.hw-error-btn:hover {\n\tbackground: var(--hw-bg-hover);\n}\n\n/* ════════════════════════════════════════════════\n SEND ERROR TOAST\n ════════════════════════════════════════════════ */\n\n.hw-send-error {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\tbackground: #fef2f2;\n\tcolor: #dc2626;\n\tfont-size: 12px;\n\tfont-weight: 500;\n\tflex-shrink: 0;\n\tanimation: hw-msg-appear 0.25s ease-out;\n}\n\n.hw-send-error-retry {\n\tmargin-left: auto;\n\tpadding: 2px 8px;\n\tborder: 1px solid #fca5a5;\n\tborder-radius: 4px;\n\tbackground: none;\n\tcolor: #dc2626;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tcursor: pointer;\n}\n\n.hw-send-error-retry:hover {\n\tbackground: #fee2e2;\n}\n\n/* ════════════════════════════════════════════════\n RESOLVED CONVERSATION — REOPEN + CSAT\n ════════════════════════════════════════════════ */\n\n.hw-resolved {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 12px;\n\tpadding: 16px 20px;\n\tborder-top: 1px solid var(--hw-border);\n\tflex-shrink: 0;\n}\n\n.hw-resolved-text {\n\tfont-size: 13px;\n\tcolor: var(--hw-text-3);\n\tfont-weight: 500;\n}\n\n.hw-resolved-actions {\n\tdisplay: flex;\n\tgap: 8px;\n}\n\n.hw-resolved-reopen {\n\tpadding: 6px 16px;\n\tborder: 1px solid var(--hw-border-md);\n\tborder-radius: 8px;\n\tbackground: var(--hw-bg);\n\tcolor: var(--hw-text);\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcursor: pointer;\n\ttransition: background 0.15s;\n}\n\n.hw-resolved-reopen:hover {\n\tbackground: var(--hw-bg-hover);\n}\n\n/* CSAT Rating */\n.hw-csat {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 8px;\n}\n\n.hw-csat-label {\n\tfont-size: 12px;\n\tcolor: var(--hw-text-3);\n}\n\n.hw-csat-buttons {\n\tdisplay: flex;\n\tgap: 8px;\n}\n\n.hw-csat-btn {\n\twidth: 36px;\n\theight: 36px;\n\tborder: 1px solid var(--hw-border-md);\n\tborder-radius: 8px;\n\tbackground: var(--hw-bg);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 18px;\n\ttransition: transform 0.15s, border-color 0.15s, background 0.15s;\n}\n\n.hw-csat-btn:hover {\n\ttransform: scale(1.1);\n\tborder-color: var(--hw-text-3);\n}\n\n.hw-csat-btn--selected {\n\tborder-color: var(--hw-primary);\n\tbackground: var(--hw-bg-hover);\n\ttransform: scale(1.15);\n}\n\n.hw-csat-thanks {\n\tfont-size: 12px;\n\tcolor: #22c55e;\n\tfont-weight: 500;\n\tanimation: hw-msg-appear 0.25s ease-out;\n}\n\n/* ════════════════════════════════════════════════\n INFINITE SCROLL — LOAD MORE TRIGGER\n ════════════════════════════════════════════════ */\n\n.hw-load-more-trigger {\n\tdisplay: flex;\n\tjustify-content: center;\n\t/* Zero-height by default — only an IntersectionObserver sentinel.\n The spinner adds its own padding when actively loading. Without\n this, the trigger reserves 8px of vertical space and shifts the\n welcome bubble down ~17px when the view transitions from\n NewConversationView (no trigger) to ConversationView. */\n\tmin-height: 1px;\n}\n\n.hw-load-more-trigger:has(.hw-load-more-spinner) {\n\tpadding: 8px 0;\n}\n\n.hw-load-more-spinner {\n\tdisplay: flex;\n\tgap: 3px;\n}\n\n.hw-load-more-spinner > div {\n\twidth: 5px;\n\theight: 5px;\n\tborder-radius: 50%;\n\tbackground: var(--hw-text-4);\n\tanimation: hw-loading-pulse 1.4s infinite;\n}\n\n.hw-load-more-spinner > div:nth-child(2) {\n\tanimation-delay: 0.2s;\n}\n.hw-load-more-spinner > div:nth-child(3) {\n\tanimation-delay: 0.4s;\n}\n\n/* ════════════════════════════════════════════════\n MOBILE SWIPE HANDLE\n ════════════════════════════════════════════════ */\n\n.hw-drag-handle {\n\tdisplay: none;\n}\n\n@media (max-width: 479px) {\n\t.hw-drag-handle {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tpadding: 8px 0 4px;\n\t\tflex-shrink: 0;\n\t}\n\n\t.hw-drag-handle-pill {\n\t\twidth: 32px;\n\t\theight: 4px;\n\t\tborder-radius: 2px;\n\t\tbackground: var(--hw-text-4);\n\t}\n}\n\n/* ════════════════════════════════════════════════\n MARKDOWN IN MESSAGES\n ════════════════════════════════════════════════ */\n\n.hw-msg-bubble p {\n\tmargin: 0 0 8px;\n}\n.hw-msg-bubble p:last-child {\n\tmargin-bottom: 0;\n}\n.hw-msg-bubble strong {\n\tfont-weight: 600;\n}\n.hw-msg-bubble em {\n\tfont-style: italic;\n}\n.hw-msg-bubble a {\n\tcolor: var(--hw-primary);\n\ttext-decoration: underline;\n\ttext-underline-offset: 2px;\n\tword-break: break-all;\n}\n.hw-msg-bubble a:hover {\n\topacity: 0.8;\n}\n.hw-msg--visitor .hw-msg-bubble a {\n\tcolor: rgba(255, 255, 255, 0.9);\n}\n.hw-msg--visitor .hw-msg-bubble a:hover {\n\tcolor: white;\n}\n\n.hw-msg-bubble ul,\n.hw-msg-bubble ol {\n\tmargin: 4px 0 8px;\n\tpadding-left: 20px;\n}\n\n.hw-msg-bubble li {\n\tmargin: 2px 0;\n}\n\n.hw-msg-bubble code {\n\tpadding: 1px 4px;\n\tborder-radius: 3px;\n\tbackground: rgba(0, 0, 0, 0.06);\n\tfont-size: 0.9em;\n\tfont-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n}\n\n.hw-msg-bubble pre {\n\tmargin: 4px 0 8px;\n\tpadding: 8px 10px;\n\tborder-radius: 6px;\n\tbackground: rgba(0, 0, 0, 0.06);\n\toverflow-x: auto;\n\tfont-size: 0.85em;\n}\n\n.hw-msg-bubble pre code {\n\tpadding: 0;\n\tbackground: none;\n}\n\n.hw-msg-bubble blockquote {\n\tmargin: 4px 0 8px;\n\tpadding: 4px 0 4px 12px;\n\tborder-left: 3px solid var(--hw-border-md);\n\tcolor: var(--hw-text-2);\n}\n\n/* ════════════════════════════════════════════════\n DARK MODE\n ════════════════════════════════════════════════ */\n\n/* Explicit dark activation via `data-theme=\"dark\"` on the widget root.\n Covers the test harness (prefers-color-scheme isn't always reachable in\n headless automation) and eventual host-app opt-in. Duplicates only the\n token block — downstream selectors already read through the tokens. */\n.hw-widget[data-theme=\"dark\"] {\n\t--hw-bg: #1c1c1e;\n\t--hw-bg-subtle: #161618;\n\t--hw-bg-hover: #2c2c2e;\n\t--hw-border: rgba(255, 255, 255, 0.08);\n\t--hw-border-md: rgba(255, 255, 255, 0.14);\n\t--hw-text: #f5f5f5;\n\t--hw-text-1: #f5f5f5;\n\t--hw-text-2: #a1a1aa;\n\t--hw-text-3: #71717a;\n\t--hw-text-4: #52525b;\n\t--hw-visitor-bubble-bg: #2c2c2e;\n\t--hw-visitor-bubble-text: #f5f5f5;\n\t--hw-focus-border: rgba(255, 255, 255, 0.28);\n\t--hw-focus-ring: rgba(255, 255, 255, 0.08);\n}\n\n@media (prefers-color-scheme: dark) {\n\t.hw-widget:not([data-theme=\"light\"]) {\n\t\t--hw-bg: #1c1c1e;\n\t\t--hw-bg-subtle: #161618;\n\t\t--hw-bg-hover: #2c2c2e;\n\t\t/* Borders were #2c2c2e — identical to --hw-bg-hover, making every\n\t\t card edge invisible. Semi-transparent whites read over any dark\n\t\t surface and stay consistent when cards sit on each other. */\n\t\t--hw-border: rgba(255, 255, 255, 0.08);\n\t\t--hw-border-md: rgba(255, 255, 255, 0.14);\n\t\t--hw-text: #f5f5f5;\n\t\t--hw-text-1: #f5f5f5;\n\t\t--hw-text-2: #a1a1aa;\n\t\t--hw-text-3: #71717a;\n\t\t--hw-text-4: #52525b;\n\t\t--hw-visitor-bubble-bg: #2c2c2e;\n\t\t--hw-visitor-bubble-text: #f5f5f5;\n\t\t/* Focus ring in dark needs lighter border + subtle halo. */\n\t\t--hw-focus-border: rgba(255, 255, 255, 0.28);\n\t\t--hw-focus-ring: rgba(255, 255, 255, 0.08);\n\t}\n}\n\n@media (prefers-color-scheme: dark) {\n\t/* Header + tab bar sit on the window surface, should match. */\n\t.hw-widget:not([data-theme=\"light\"]) .hw-header {\n\t\tbackground: var(--hw-bg);\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t.hw-header-bot-icon {\n\t\tbackground: var(--hw-bg-hover);\n\t}\n\n\t.hw-header-name,\n\t.hw-header-title {\n\t\tcolor: var(--hw-text);\n\t}\n\n\t.hw-header-status {\n\t\tcolor: var(--hw-text-2);\n\t}\n\n\t.hw-header-close,\n\t.hw-header-back {\n\t\tcolor: var(--hw-text-2);\n\t}\n\n\t.hw-header-close:hover,\n\t.hw-header-back:hover {\n\t\tbackground: var(--hw-bg-hover);\n\t\tcolor: var(--hw-text);\n\t}\n\n\t/* Content list entries (changelog / help articles). The border fix at the\n\t token level already helps, but the item hover needs a dark variant. */\n\t.hw-content-entry {\n\t\tbackground: var(--hw-bg);\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t.hw-content-entry:hover {\n\t\tbackground: var(--hw-bg-hover);\n\t\tborder-color: var(--hw-border-md);\n\t}\n\n\t.hw-content-empty,\n\t.hw-empty {\n\t\tcolor: var(--hw-text-3);\n\t}\n\n\t/* Conversation list rows. */\n\t.hw-conv-card {\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t.hw-recent-row {\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t/* Drag-over highlight on composer. */\n\t.hw-composer-drop-overlay {\n\t\tbackground: rgba(0, 0, 0, 0.6);\n\t\tcolor: var(--hw-text);\n\t}\n\n\t.hw-composer--dragging .hw-composer-box {\n\t\tborder-color: var(--hw-focus-border);\n\t\tbox-shadow: 0 0 0 3px var(--hw-focus-ring);\n\t}\n\n\t.hw-hero {\n\t\t/* Dark mode — same brand-aware pattern, edges go further into black. */\n\t\tbackground: linear-gradient(\n\t\t\t160deg,\n\t\t\tcolor-mix(in srgb, var(--hw-primary) 40%, black) 0%,\n\t\t\tvar(--hw-primary) 50%,\n\t\t\tcolor-mix(in srgb, var(--hw-primary) 25%, black) 100%\n\t\t);\n\t}\n\n\t.hw-sheet {\n\t\tbackground: var(--hw-bg);\n\t}\n\n\t.hw-card {\n\t\tbackground: var(--hw-bg-hover);\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t.hw-card:hover {\n\t\tbackground: #333;\n\t}\n\n\t.hw-window {\n\t\tbox-shadow: 0 8px 30px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.06);\n\t}\n\n\t.hw-bubble:focus-visible {\n\t\toutline-color: var(--hw-text-3);\n\t}\n\n\t.hw-msg--visitor .hw-msg-bubble {\n\t\tbackground: var(--hw-primary);\n\t\tcolor: white;\n\t}\n\n\t.hw-msg-bubble code {\n\t\tbackground: rgba(255, 255, 255, 0.08);\n\t}\n\n\t.hw-msg-bubble pre {\n\t\tbackground: rgba(255, 255, 255, 0.08);\n\t}\n\n\t.hw-composer-box {\n\t\tbackground: var(--hw-bg);\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t.hw-composer-input {\n\t\tcolor: var(--hw-text);\n\t}\n\n\t.hw-tabs {\n\t\tbackground: var(--hw-bg);\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t.hw-conv-card:hover,\n\t.hw-recent-row:hover {\n\t\tbackground: var(--hw-bg-hover);\n\t}\n\n\t.hw-disconnect {\n\t\tbackground: #422006;\n\t\tcolor: #fcd34d;\n\t}\n\n\t.hw-send-error {\n\t\tbackground: #450a0a;\n\t\tcolor: #fca5a5;\n\t}\n\n\t.hw-error-icon {\n\t\tbackground: #450a0a;\n\t\tcolor: #f87171;\n\t}\n\n\t.hw-msg-copy:hover {\n\t\tbackground: var(--hw-bg-hover);\n\t\tcolor: var(--hw-text-2);\n\t}\n\n\t.hw-resolved {\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t.hw-resolved-reopen,\n\t.hw-csat-btn {\n\t\tbackground: var(--hw-bg-hover);\n\t\tborder-color: var(--hw-border-md);\n\t\tcolor: var(--hw-text);\n\t}\n\n\t.hw-hover-preview {\n\t\tbackground: #1c1c1e;\n\t\tborder-color: var(--hw-border);\n\t}\n\n\t/* Search input needs a lifted surface so it reads against the panel;\n\t the focus ring already adapts via the --hw-focus-* tokens above. */\n\t.hw-content-search-box {\n\t\tbackground: var(--hw-bg-hover);\n\t\tborder-color: var(--hw-border-md);\n\t}\n\n\t.hw-preview {\n\t\tbackground: var(--hw-bg);\n\t\tborder-color: var(--hw-border);\n\t}\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,40 +7,6 @@ import react__default, { ReactNode } from 'react';
|
|
|
7
7
|
import * as _helpway_types from '@helpway/types';
|
|
8
8
|
import { TimelineItem, RealtimeEvent, TimelineItemPart } from '@helpway/types';
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
* `<HelpwayWidget />` — one-line drop-in React component that loads
|
|
12
|
-
* the Helpway widget script and tears it down on unmount.
|
|
13
|
-
*
|
|
14
|
-
* This is the lowest-friction integration path for React / Next.js /
|
|
15
|
-
* Vite apps that don't need to render custom chat UI themselves. Under
|
|
16
|
-
* the hood it just injects `https://api.helpway.ai/widget.js` with the
|
|
17
|
-
* provided public key, exactly like the plain `<script>` snippet — but
|
|
18
|
-
* wrapped in a React lifecycle so it participates in StrictMode double
|
|
19
|
-
* mounts, SSR boundaries, and component cleanup without footguns.
|
|
20
|
-
*
|
|
21
|
-
* Power-user alternative: import `{ SupportProvider, useWidget, … }`
|
|
22
|
-
* from this same package for full programmatic control.
|
|
23
|
-
*/
|
|
24
|
-
interface HelpwayWidgetProps {
|
|
25
|
-
/**
|
|
26
|
-
* Public API key from the Helpway dashboard. Required.
|
|
27
|
-
* Format: `pk_live_…` or `pk_test_…`.
|
|
28
|
-
*/
|
|
29
|
-
apiKey: string;
|
|
30
|
-
/**
|
|
31
|
-
* Override the default widget loader URL. Almost no one needs this —
|
|
32
|
-
* exposed for staging / self-hosted setups.
|
|
33
|
-
* @default "https://api.helpway.ai/widget.js"
|
|
34
|
-
*/
|
|
35
|
-
src?: string;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Render this once at the root of your app (e.g. in `_app.tsx`,
|
|
39
|
-
* `layout.tsx`, or `main.tsx`). Unmounting removes the script and
|
|
40
|
-
* collapses the widget iframe — useful for route-scoped mounts.
|
|
41
|
-
*/
|
|
42
|
-
declare function HelpwayWidget({ apiKey, src, }: HelpwayWidgetProps): null;
|
|
43
|
-
|
|
44
10
|
interface IdentifyData {
|
|
45
11
|
externalId: string;
|
|
46
12
|
email?: string;
|
|
@@ -77,6 +43,50 @@ interface SupportProviderProps {
|
|
|
77
43
|
*/
|
|
78
44
|
declare function SupportProvider({ apiKey, apiUrl, locale, initialConversationId, onReady, children, }: SupportProviderProps): react_jsx_runtime.JSX.Element;
|
|
79
45
|
|
|
46
|
+
interface HelpwayWidgetProps {
|
|
47
|
+
/**
|
|
48
|
+
* Public API key from the Helpway dashboard. Required.
|
|
49
|
+
* Format: `pk_live_…` or `pk_test_…`.
|
|
50
|
+
*/
|
|
51
|
+
apiKey: string;
|
|
52
|
+
/**
|
|
53
|
+
* Override the default API URL. Almost no one needs this —
|
|
54
|
+
* exposed for staging / self-hosted setups.
|
|
55
|
+
* @default "https://api.helpway.ai"
|
|
56
|
+
*/
|
|
57
|
+
apiUrl?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Widget locale (e.g. "tr", "en", "de"). Falls back to server-side
|
|
60
|
+
* detection (Accept-Language + CF-IPCountry) then widget-core default.
|
|
61
|
+
*/
|
|
62
|
+
locale?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Deep link: auto-open this conversation after bootstrap.
|
|
65
|
+
* Usually sourced from `?hw_conv=` URL param for email CTAs.
|
|
66
|
+
*/
|
|
67
|
+
initialConversationId?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Called once after the widget has bootstrapped and exposes
|
|
70
|
+
* programmatic APIs (identify, openConversation).
|
|
71
|
+
*/
|
|
72
|
+
onReady?: (api: {
|
|
73
|
+
identify: (data: IdentifyData) => Promise<void>;
|
|
74
|
+
openConversation: (id: string) => void;
|
|
75
|
+
}) => void;
|
|
76
|
+
/**
|
|
77
|
+
* @deprecated Legacy prop from the v0.1 script-loader era. If set,
|
|
78
|
+
* the `/widget.js` suffix is stripped to derive `apiUrl`. New code
|
|
79
|
+
* should use `apiUrl` instead.
|
|
80
|
+
*/
|
|
81
|
+
src?: string;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Render this once at the root of your app (e.g. in `_app.tsx`,
|
|
85
|
+
* `layout.tsx`, or `main.tsx`). Unmounting cleanly tears down the
|
|
86
|
+
* widget and its WebSocket connection — useful for route-scoped mounts.
|
|
87
|
+
*/
|
|
88
|
+
declare function HelpwayWidget({ apiKey, apiUrl, locale, initialConversationId, onReady, src, }: HelpwayWidgetProps): react_jsx_runtime.JSX.Element;
|
|
89
|
+
|
|
80
90
|
/**
|
|
81
91
|
* Core widget state — connection status, visitor identity, website info.
|
|
82
92
|
*
|