@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.
@@ -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
  *