@uplifted/react 0.22.7 → 0.24.0
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/CHANGELOG.md +52 -0
- package/dist/AddClientSheet.d.ts +11 -1
- package/dist/AddClientSheet.d.ts.map +1 -1
- package/dist/AddClientSheet.js +26 -15
- package/dist/AddClientSheet.js.map +1 -1
- package/dist/AiSettingsSheet.d.ts +2 -2
- package/dist/AiSettingsSheet.d.ts.map +1 -1
- package/dist/AiSettingsSheet.js +30 -97
- package/dist/AiSettingsSheet.js.map +1 -1
- package/dist/AssistantGrid.d.ts +10 -8
- package/dist/AssistantGrid.d.ts.map +1 -1
- package/dist/AssistantGrid.js +90 -16
- package/dist/AssistantGrid.js.map +1 -1
- package/dist/ChannelBadge.d.ts +1 -1
- package/dist/ChannelBadge.js +1 -1
- package/dist/ClientList.d.ts.map +1 -1
- package/dist/ClientList.js +5 -5
- package/dist/ClientList.js.map +1 -1
- package/dist/Composer.d.ts +2 -0
- package/dist/Composer.d.ts.map +1 -1
- package/dist/Composer.js +5 -6
- package/dist/Composer.js.map +1 -1
- package/dist/ConnectClientSheet.d.ts +26 -0
- package/dist/ConnectClientSheet.d.ts.map +1 -0
- package/dist/ConnectClientSheet.js +67 -0
- package/dist/ConnectClientSheet.js.map +1 -0
- package/dist/ConversationPane.d.ts +3 -1
- package/dist/ConversationPane.d.ts.map +1 -1
- package/dist/ConversationPane.js +30 -7
- package/dist/ConversationPane.js.map +1 -1
- package/dist/HostLinkAction.d.ts +10 -0
- package/dist/HostLinkAction.d.ts.map +1 -0
- package/dist/HostLinkAction.js +14 -0
- package/dist/HostLinkAction.js.map +1 -0
- package/dist/HostPreviewPane.d.ts +4 -2
- package/dist/HostPreviewPane.d.ts.map +1 -1
- package/dist/HostPreviewPane.js +6 -6
- package/dist/HostPreviewPane.js.map +1 -1
- package/dist/ItemActions.d.ts +7 -3
- package/dist/ItemActions.d.ts.map +1 -1
- package/dist/ItemActions.js +4 -3
- package/dist/ItemActions.js.map +1 -1
- package/dist/OfferSheet.d.ts +2 -0
- package/dist/OfferSheet.d.ts.map +1 -1
- package/dist/OfferSheet.js +3 -1
- package/dist/OfferSheet.js.map +1 -1
- package/dist/QuickSend.d.ts +3 -1
- package/dist/QuickSend.d.ts.map +1 -1
- package/dist/QuickSend.js +10 -3
- package/dist/QuickSend.js.map +1 -1
- package/dist/SegmentEditor.d.ts +11 -4
- package/dist/SegmentEditor.d.ts.map +1 -1
- package/dist/SegmentEditor.js +95 -11
- package/dist/SegmentEditor.js.map +1 -1
- package/dist/ThreadFeed.d.ts +7 -1
- package/dist/ThreadFeed.d.ts.map +1 -1
- package/dist/ThreadFeed.js +4 -4
- package/dist/ThreadFeed.js.map +1 -1
- package/dist/UpliftPanel.d.ts +10 -2
- package/dist/UpliftPanel.d.ts.map +1 -1
- package/dist/UpliftPanel.js +120 -20
- package/dist/UpliftPanel.js.map +1 -1
- package/dist/UpliftProvider.d.ts.map +1 -1
- package/dist/UpliftProvider.js +16 -2
- package/dist/UpliftProvider.js.map +1 -1
- package/dist/build-info.json +9 -0
- package/dist/channels.d.ts +3 -1
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +4 -0
- package/dist/channels.js.map +1 -1
- package/dist/draftContext.d.ts +34 -0
- package/dist/draftContext.d.ts.map +1 -0
- package/dist/draftContext.js +48 -0
- package/dist/draftContext.js.map +1 -0
- package/dist/host.d.ts +19 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js.map +1 -1
- package/dist/icons.d.ts +3 -0
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +4 -0
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/phone.d.ts +3 -3
- package/dist/phone.js +3 -3
- package/dist/segments.d.ts +1 -2
- package/dist/segments.d.ts.map +1 -1
- package/dist/segments.js +3 -3
- package/dist/segments.js.map +1 -1
- package/dist/styles.d.ts +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +56 -14
- package/dist/styles.js.map +1 -1
- package/dist/usePreviewDrafts.d.ts +1 -1
- package/dist/usePreviewDrafts.d.ts.map +1 -1
- package/dist/usePreviewDrafts.js +8 -1
- package/dist/usePreviewDrafts.js.map +1 -1
- package/dist/useSend.d.ts +7 -2
- package/dist/useSend.d.ts.map +1 -1
- package/dist/useSend.js +7 -2
- package/dist/useSend.js.map +1 -1
- package/package.json +5 -9
package/dist/styles.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* D16: layout answers to the panel's own width through a container query, never the viewport.
|
|
10
10
|
*/
|
|
11
11
|
export declare const STYLE_ELEMENT_ID = "uplifted-react-styles";
|
|
12
|
-
export declare const upliftStyles = "\n:where(.uplift){\n --u-bg:#ffffff;--u-surface:#ffffff;--u-surface-2:#fafafa;--u-surface-3:#f4f4f5;\n --u-text:#262626;--u-muted:#666666;--u-border:rgba(0,0,0,.08);\n --u-accent:#0f8a63;--u-accent-soft:#e3f5ee;--u-accent-ink:#ffffff;--u-link:#0b6b4c;\n --u-highlight:var(--u-accent);--u-highlight-soft:var(--u-accent-soft);\n --u-gold:#c9971c;--u-gold-hi:#f7e2a0;--u-gold-ink:#8a6410;--u-gold-ink-hi:#c9971c;\n --u-seg-l:88%;\n --u-danger:#c10007;--u-warn:#bb4d00;--u-out:#eaf1ff;--u-out-ink:#12244d;\n --u-font:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Inter,sans-serif;--u-radius:10px;\n}\n:where(.uplift[data-theme=\"dark\"],[data-theme=\"dark\"] .uplift){\n --u-bg:#111111;--u-surface:#111111;--u-surface-2:#0a0a0a;--u-surface-3:#1a1a1a;\n --u-text:#f5f5f5;--u-muted:#9a9a9a;--u-border:rgba(255,255,255,.08);\n --u-accent:#70d7b0;--u-accent-soft:#17342a;--u-accent-ink:#062a1e;--u-link:#70d7b0;\n --u-gold:#d9a830;--u-gold-hi:#fff1b8;--u-gold-ink:#d9a830;--u-gold-ink-hi:#f3d47a;\n --u-seg-l:26%;\n --u-danger:#ff6467;--u-warn:#ffb900;--u-out:#1d2b4a;--u-out-ink:#e3ebff;\n}\n.uplift,.uplift *,.uplift *::before,.uplift *::after{box-sizing:border-box}\n.uplift{font:15px/1.45 var(--u-font);color:var(--u-text);background:var(--u-bg);border:1px solid var(--u-border);border-radius:14px;overflow:hidden;container-type:inline-size;container-name:panel;position:relative;-webkit-font-smoothing:antialiased}\n:where(.uplift) button{font:inherit;color:inherit;cursor:pointer}\n:where(.uplift) button:disabled{cursor:not-allowed}\n.uplift :focus-visible{outline:2px solid var(--u-highlight);outline-offset:2px;border-radius:6px}\n.uplift h2,.uplift h3,.uplift h4,.uplift p{margin:0}\n.u-sp{flex:1}\n.u-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n.u-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--u-border);background:var(--u-surface-2);border-radius:999px;padding:4px 10px;font-size:13px;color:var(--u-muted)}\n.u-pill b{color:var(--u-text);font-weight:600}\n.u-linkbtn{background:none;border:0;padding:4px 2px;color:var(--u-link);font-weight:600;text-decoration:underline;text-underline-offset:3px}\n.u-split{display:grid;grid-template-columns:320px minmax(0,1fr);height:min(max(520px,62.5cqw),86vh)}\n.u-split>*{min-height:0}\n.u-list{overflow:hidden}\n.u-pane{overflow:hidden}\n.u-iconbtn{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--u-border);background:var(--u-bg);border-radius:8px;color:var(--u-muted);padding:0}\n.u-iconbtn:hover{color:var(--u-text)}\n.u-iconbtn-pair{width:auto;padding:0 9px;display:inline-flex;align-items:center;gap:4px}\n.u-ai-spark{display:inline-flex;color:var(--u-highlight)}\n.u-iconbtn .u-ai-spark svg{width:14px;height:14px}\n.u-iconbtn svg{width:16px;height:16px}\n.u-iconbtn[aria-pressed=\"true\"]{color:var(--u-text);background:var(--u-surface-2)}\n.u-bulkbtn svg{width:14px;height:14px}\n.uplift.u-full{position:fixed;inset:0;z-index:2147483000;border-radius:0;border:0;display:flex;flex-direction:column}\n.uplift.u-full .u-split{flex:1;height:auto;min-height:0}\n.u-back{display:none;border:1px solid var(--u-border);background:var(--u-bg);border-radius:8px;padding:6px 10px;font-size:16px;min-height:36px;align-items:center;flex:none}\n.u-list{border-right:1px solid var(--u-border);display:flex;flex-direction:column;min-width:0}\n/* inbox toolbar: native Uplift's collapsed search + segmented sort + Bulk generate */\n.u-toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--u-border)}\n.u-search{position:relative;flex:0 1 32px;min-width:32px;display:flex;align-items:center;cursor:pointer;transition:flex-basis .2s ease,flex-grow .2s ease}\n.u-search-open{flex:1 1 140px;cursor:auto}\n.u-search svg{position:absolute;left:9px;width:14px;height:14px;color:var(--u-muted);pointer-events:none}\n.u-search input{width:100%;min-height:32px;padding:6px 10px 6px 30px;border-radius:999px;border:1px solid var(--u-border);background:var(--u-surface-2);font:inherit;font-size:13px;color:var(--u-text)}\n.u-search:not(.u-search-open) input{cursor:pointer;padding-right:0}\n.u-search:not(.u-search-open) input::placeholder{opacity:0}\n.u-search input:focus{outline:none;border-color:var(--u-accent);background:var(--u-bg)}\n.u-search input::-webkit-search-cancel-button{cursor:pointer}\n.u-sortgroup{display:inline-flex;align-items:center;padding:2px;border-radius:999px;background:var(--u-surface-2);flex:none}\n.u-sortgroup button{border:0;background:none;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:600;color:var(--u-muted);min-height:28px;white-space:nowrap}\n.u-sortgroup button:hover{color:var(--u-text)}\n.u-sortgroup button[aria-pressed=\"true\"]{background:var(--u-bg);color:var(--u-text);box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--u-border)}\n.u-toolbar button.u-bulkbtn{margin-left:auto;display:inline-flex;align-items:center;gap:1px;border:0;border-radius:999px;background:none;color:var(--u-muted);padding:0 6px;min-height:32px;flex:none}\n.u-toolbar button.u-bulkbtn:hover:not(:disabled){color:var(--u-accent);background:var(--u-surface-2)}\n.u-toolbar button.u-bulkbtn:disabled{opacity:.45}\n.u-rows{list-style:none;margin:0;padding:0;overflow:auto;flex:1;min-height:0}\n.u-rows li{display:flex;flex-wrap:wrap;align-items:stretch;border-bottom:1px solid var(--u-border)}\n.u-row-open{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:11px 12px;display:grid;grid-template-columns:36px minmax(0,1fr);gap:2px 10px;min-height:64px}\n.u-av{grid-row:span 3;width:36px;height:36px;border-radius:999px;display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff}\n.u-av.u-av-sm{grid-row:auto;width:32px;height:32px}\n.u-r-top{display:flex;gap:6px;align-items:baseline;min-width:0}\n.u-r-name{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.u-r-time{margin-left:auto;font-size:12.5px;color:var(--u-muted);flex:none}\n.u-r-line{font-size:13.5px;color:var(--u-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.u-r-tags{display:flex;flex-wrap:wrap;gap:4px}\n.u-tag{font-size:12px;font-weight:600;border-radius:999px;padding:1px 8px;border:1px solid var(--u-border);color:var(--u-muted);background:var(--u-surface-2)}\n.u-tag.u-need{color:var(--u-danger);border-color:color-mix(in srgb,var(--u-danger) 35%,transparent)}\n.u-tag.u-ok{color:var(--u-link);border-color:color-mix(in srgb,var(--u-highlight) 35%,transparent)}\n.u-tag.u-warn{color:var(--u-warn);border-color:color-mix(in srgb,var(--u-warn) 35%,transparent)}\n.u-list-foot{padding:10px 12px;font-size:13px;color:var(--u-muted)}\n.u-skel{height:12px;border-radius:6px;background:var(--u-surface-3);margin:6px 0}\n.u-skel-row{padding:14px 12px;border-bottom:1px solid var(--u-border)}\n.u-state{padding:22px 16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;font-size:14.5px;color:var(--u-muted)}\n.u-state h3{font-size:16px;color:var(--u-text)}\n.u-state p{max-width:52ch}\n.u-pane{display:flex;flex-direction:column;min-width:0}\n.u-pane-head{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--u-border)}\n.u-who{display:flex;flex-direction:column;min-width:0}\n.u-who strong{font-size:15px}\n.u-who small{font-size:13px;color:var(--u-muted)}\n.u-chan{margin-left:auto;font-size:13px;color:var(--u-muted)}\n.u-feed{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--u-surface-2);min-height:200px}\n.u-tpl-chip{display:inline-flex;align-items:center;gap:4px;margin-left:6px;border:1px solid var(--u-border);border-radius:999px;padding:0 7px;font-size:11px;color:var(--u-muted);background:var(--u-bg);min-height:18px}\n.u-bub.u-tpl-shown{opacity:.85;border:1px dashed color-mix(in srgb,var(--u-out-ink) 50%,transparent)}\n.u-day{align-self:center;font-size:12px;color:var(--u-muted);background:var(--u-bg);border:1px solid var(--u-border);padding:2px 10px;border-radius:999px}\n.u-older{align-self:center;border:1px solid var(--u-border);background:var(--u-bg);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--u-muted);min-height:32px}\n.u-ev{align-self:center;max-width:92%;display:flex;gap:8px;align-items:flex-start;font-size:13.5px;background:var(--u-bg);border:1px solid var(--u-border);border-radius:10px;padding:8px 11px}\n.u-ev svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--u-muted)}\n.u-ev b{font-weight:600}\n.u-ev .u-meta{color:var(--u-muted);font-size:12.5px}\n.u-bub{max-width:78%;padding:8px 12px;border-radius:14px;font-size:14.5px;white-space:pre-wrap;overflow-wrap:anywhere}\n.u-bub.u-in{align-self:flex-start;background:var(--u-bg);border:1px solid var(--u-border);border-bottom-left-radius:4px}\n.u-bub.u-out{align-self:flex-end;background:var(--u-out);color:var(--u-out-ink);border-bottom-right-radius:4px}\n.u-bmeta{font-size:12px;color:var(--u-muted)}\n.u-bmeta.u-r{align-self:flex-end}\n/* ---- Composer footer (port of native ChatPage footer) ---- */\n.u-composer{display:flex;flex-direction:column;gap:8px;padding:10px 16px 12px;background:var(--u-surface-2);border-top:1px solid var(--u-border)}\n.u-composer>*:empty{display:none}\n.u-rail{align-self:center;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--u-muted);font-size:12px;padding:2px 10px;border-radius:999px;min-height:24px}\n.u-rail:hover{color:var(--u-text);background:var(--u-surface-3)}\n.u-rail svg{width:14px;height:14px}\n.u-extras-wrap{position:relative;display:flex;flex-direction:column}\n.u-extras-wrap>.u-rail{align-self:flex-end}\n.u-extras-wrap>.u-rail[aria-expanded=\"true\"]{position:absolute;top:0;right:0;z-index:1}\n.u-extras-wrap:has(>.u-rail[aria-expanded=\"true\"]) .u-ag-h{padding-right:34px}\n.u-extras{display:contents}\n.u-extras-off{display:none}\n/* draft grid (ComposerAssistant) */\n.u-ag{display:flex;flex-direction:column;gap:6px}\n.u-ag-h{display:flex;align-items:center;gap:2px}\n.u-ag-toggle{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border:0;background:transparent;color:var(--u-muted);font-size:12px;font-weight:600;border-radius:6px;min-height:28px}\n.u-ag-toggle:hover{background:var(--u-surface-3);color:var(--u-text)}\n.u-ag-spark{display:inline-flex;color:var(--u-highlight)}.u-ag-spark svg{width:12px;height:12px}\n.u-ag-label{letter-spacing:.02em}\n.u-ag-chev{display:inline-flex;color:var(--u-muted);transition:transform .15s}.u-ag-chev svg{width:14px;height:14px}\n.u-ag-chev-open{transform:rotate(180deg)}\n.u-ag-by{font-size:12px;color:var(--u-muted);margin-left:6px}\n.u-ag-regen{display:inline-flex;align-items:center;justify-content:center;padding:4px;border:0;background:transparent;color:var(--u-muted);border-radius:6px;min-width:24px;min-height:24px}\n.u-ag-regen svg{width:11px;height:11px}\n.u-ag-regen:hover:not(:disabled){color:var(--u-highlight);background:var(--u-surface-3)}\n.u-ag-regen:disabled{opacity:.5}\n.u-ag-spinning svg{animation:u-spin 1s linear infinite}\n@keyframes u-spin{to{transform:rotate(360deg)}}\n.u-ag-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}\n.u-ag-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:56px;padding:10px 12px;background:var(--u-surface-2);border:1px solid transparent;border-radius:var(--u-radius);color:var(--u-text);text-align:left;transition:background .15s,transform .15s}\n.u-ag-cell:hover:not(:disabled){background:var(--u-bg)}\n/* Gold shimmer ring on finished drafts (Ian, 2026-10-11): a gradient pseudo-element masked to the edge. Reduced motion leaves a still ring. */\n.u-ag-cell:not(.u-ag-loading)::before{content:\"\";position:absolute;inset:-1px;border-radius:calc(var(--u-radius) + 1px);padding:1.5px;pointer-events:none;background:linear-gradient(110deg,var(--u-gold) 0%,var(--u-gold-hi) 25%,var(--u-gold) 50%,var(--u-gold-hi) 75%,var(--u-gold) 100%);background-size:250% 100%;animation:u-shimmer 3.2s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}\n@keyframes u-shimmer{from{background-position:0% 50%}to{background-position:250% 50%}}\n.u-ag-cell[aria-checked=\"true\"]{box-shadow:0 0 0 2px var(--u-highlight)}\n.u-ag-cell[aria-checked=\"true\"]::before{display:none}\n.u-ag-lab{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--u-highlight);text-transform:uppercase;letter-spacing:.04em}\n.u-ag-pencil{display:inline-flex;opacity:.6}.u-ag-pencil svg{width:10px;height:10px}\n.u-ag-txt{font-size:14px;line-height:1.35;color:var(--u-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}\n.u-ag-loading{overflow:hidden;cursor:default;pointer-events:none;justify-content:center;align-items:center;border-color:var(--u-border)}\n.u-ag-loading-txt{position:relative;z-index:1;font-size:12px;color:var(--u-muted)}\n.u-ag-shimmer{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:u-ag-sheen 1.4s infinite;transform:translateX(-100%)}\n@keyframes u-ag-sheen{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}\n.u-ag-empty{font-size:12.5px;color:var(--u-muted);padding:6px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}\n.u-ag-foot{font-size:12.5px;color:var(--u-muted);margin:0}\n/* attachments */\n.u-attach-row{align-items:center;gap:8px;flex-wrap:wrap}\n.u-limits{font-size:12px;color:var(--u-muted)}\n.u-limits-warn{color:var(--u-warn)}\n.u-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}\n.u-chip{display:inline-flex;align-items:center;gap:6px;max-width:240px;padding:4px 8px;border-radius:999px;background:var(--u-bg);border:1px solid var(--u-border);font-size:12px;color:var(--u-muted)}\n.u-chip svg{width:13px;height:13px;flex:none}\n.u-chip-err{border-color:var(--u-danger);color:var(--u-danger)}\n.u-chip-errtxt{font-size:10px}\n.u-chip-thumb{width:22px;height:22px;object-fit:cover;border-radius:5px}\n.u-chip-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.u-chip-x{display:inline-flex;align-items:center;border:0;background:none;color:inherit;padding:2px;min-height:0}\n.u-chip-x svg{width:12px;height:12px}\n.u-spin{animation:u-spin 1s linear infinite}\n.u-rec{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:9px;background:var(--u-bg);font-size:12px;color:var(--u-muted)}\n.u-rec-dot{width:8px;height:8px;border-radius:50%;background:#ff3b30;animation:u-rec-pulse 1.2s ease-in-out infinite}\n@keyframes u-rec-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n.u-rec-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--u-border);background:var(--u-bg);color:var(--u-text);border-radius:999px;width:28px;height:28px;min-height:0;padding:0}\n.u-rec-btn svg{width:14px;height:14px}\n.u-rec-done{background:var(--u-accent);color:var(--u-accent-ink);border-color:var(--u-accent)}\n.u-sms-note{font-size:12px;color:var(--u-warn)}\n/* editor row: + button, pill with the editor and the inline send/\u2728 */\n.u-c-row{display:flex;align-items:flex-end;gap:8px;width:100%}\n.u-attach-wrap{position:relative;flex:none}\n.u-attach-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:0;padding:0;margin-bottom:3px;border:1px solid var(--u-border);border-radius:999px;background:var(--u-bg);color:var(--u-muted);transition:color .15s,background .15s}\n.u-attach-btn svg{width:18px;height:18px}\n.u-attach-btn:hover:not(:disabled){color:var(--u-highlight);background:var(--u-highlight-soft)}\n.u-attach-btn:disabled{opacity:.45}\n.u-pill{position:relative;flex:1;min-width:0;display:flex;align-items:flex-end;gap:6px;background:var(--u-bg);border:1px solid var(--u-border);border-radius:14px;padding:4px 4px 4px 8px}\n.u-pill-grow{flex:1;min-width:0}\n.u-pill .u-editor{border:0;background:transparent;border-radius:0;padding:6px 4px;min-height:38px;max-height:220px;resize:none}\n.u-pill .u-editor:focus{outline:none}\n.u-pill:focus-within{border-color:var(--u-highlight)}\n/* Locked pill (stock intro, nothing to edit): gold shimmer ring like the draft cells. Reduced motion leaves a still ring. */\n.u-pill-locked{border-color:transparent}\n.u-pill-locked::before{content:\"\";position:absolute;inset:-1px;border-radius:15px;padding:1.5px;pointer-events:none;background:linear-gradient(110deg,var(--u-gold) 0%,var(--u-gold-hi) 25%,var(--u-gold) 50%,var(--u-gold-hi) 75%,var(--u-gold) 100%);background-size:250% 100%;animation:u-shimmer 3.2s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}\n.u-pill-locked:focus-within{border-color:transparent}\n.u-editor-locked{cursor:default;caret-color:transparent}\n.u-send-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;flex:none;border-radius:999px;border:0;background:var(--u-accent);color:var(--u-accent-ink);transition:transform .15s,opacity .15s}\n.u-send-btn svg{width:15px;height:15px;stroke:var(--u-accent-ink)}\n.u-send-btn:hover:not(:disabled){transform:translateY(-1px)}\n.u-send-btn:disabled{opacity:.4;cursor:not-allowed}\n.u-gen-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;flex:none;border:0;border-radius:999px;background:transparent;color:var(--u-highlight);transition:background .15s}\n.u-gen-btn svg{width:16px;height:16px}\n.u-gen-btn:hover:not(:disabled){background:var(--u-highlight-soft)}\n.u-gen-btn:disabled{opacity:.4}\n.u-menu-backdrop{position:fixed;inset:0;z-index:40}\n.u-menu{position:absolute;bottom:calc(100% + 6px);z-index:41;display:flex;flex-direction:column;min-width:150px;padding:4px;border-radius:12px;background:var(--u-bg);border:1px solid var(--u-border);box-shadow:0 10px 30px rgba(0,0,0,.18)}\n.u-menu-left{left:0}.u-menu-right{right:0}\n.u-menu-title{padding:6px 12px 4px;font-size:11.5px;font-weight:600;color:var(--u-muted)}\n.u-menu-titlerow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px 2px 0}\n.u-menu-titlerow .u-menu-title{padding:2px 12px 2px}\n.u-menu-cfg{display:inline-flex;align-items:center;justify-content:center;padding:4px;min-width:24px;min-height:24px;border:0;background:none;color:var(--u-muted);border-radius:6px}\n.u-menu-cfg svg{width:13px;height:13px}\n.u-menu-cfg:hover{color:var(--u-text);background:var(--u-surface-3)}\n/* proactive options editor */\n.u-po-help{font-size:13.5px;color:var(--u-muted);margin:0 0 10px}\n.u-po-list{display:flex;flex-direction:column;gap:10px}\n.u-po-row{border:1px solid var(--u-border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--u-surface-2)}\n.u-po-top{display:flex;align-items:center;gap:6px}\n.u-po-label{flex:1;min-width:0;border:1px solid var(--u-border);border-radius:8px;padding:7px 10px;font:inherit;font-size:14px;background:var(--u-bg);color:var(--u-text)}\n.u-po-text{width:100%;border:1px solid var(--u-border);border-radius:8px;padding:7px 10px;font:inherit;font-size:13.5px;background:var(--u-bg);color:var(--u-text);resize:vertical}\n.u-po-iconwrap{position:relative;flex:none}\n.u-po-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:0;padding:0;border:1px solid var(--u-border);border-radius:8px;background:var(--u-bg);color:var(--u-text)}\n.u-po-iconbtn svg{width:15px;height:15px}\n.u-po-iconbtn:disabled{opacity:.4}\n.u-po-iconbtn-on{border-color:var(--u-highlight);box-shadow:0 0 0 1px var(--u-highlight);color:var(--u-highlight)}\n.u-po-remove:hover{color:var(--u-danger);border-color:var(--u-danger)}\n.u-po-iconpick{position:absolute;top:calc(100% + 4px);left:0;z-index:5;display:grid;grid-template-columns:repeat(6,32px);gap:4px;padding:6px;background:var(--u-bg);border:1px solid var(--u-border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18)}\n.u-po-add{margin-top:10px;border:1px dashed var(--u-border);background:transparent;border-radius:9px;padding:8px 12px;font-weight:600;color:var(--u-link);min-height:38px;width:100%}\n.u-po-actions{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}\n.u-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:none;text-align:left;font-size:14px;color:var(--u-text);min-height:36px}\n.u-menu-item:hover{background:var(--u-surface-3)}\n.u-menu-purpose svg{width:14px;height:14px;color:var(--u-highlight);flex:none}\n/* inbox rows (native ClientRow) */\n.u-row-open{position:relative}\n.u-r-ind{position:absolute;left:3px;top:50%;transform:translateY(-50%);width:20px;display:grid;place-items:center}\n.u-rows .u-row-open{padding-left:26px}\n.u-r-dot{width:8px;height:8px;border-radius:50%;background:var(--u-highlight)}\n.u-r-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--u-highlight);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}\n/* The open conversation is the only row with a colour: a clear shade and an accent bar on the left\n edge, like WhatsApp's selected chat. Unread shows by the dot and bold name, never a tint. Built\n from the text colour so it reads on any host theme, light or dark. */\n.u-rows li:has(.u-row-open[aria-current=\"true\"]){background:color-mix(in srgb,var(--u-text) 8%,var(--u-bg));box-shadow:inset 3px 0 0 var(--u-accent)}\n.u-rows li:has(.u-row-open[aria-current=\"true\"]) .u-row-open{background:transparent}\n.u-r-name-unread{font-weight:700}\n.u-r-follow,.u-r-fail{display:inline-flex;align-items:center;flex:none}\n.u-r-follow svg,.u-r-fail svg{width:13px;height:13px}\n.u-r-follow{color:var(--u-warn)}\n.u-r-fail{color:var(--u-danger)}\n.u-r-prev{display:inline-flex;align-items:center;gap:5px;max-width:100%}\n.u-r-pico{display:inline-flex;flex:none}.u-r-pico svg{width:11px;height:11px}\n.u-r-prev-in .u-r-ptxt{color:var(--u-text)}\n.u-r-prev-in .u-r-pico{color:var(--u-highlight)}\n.u-r-prev-out .u-r-ptxt,.u-r-prev-out .u-r-pico{color:var(--u-muted)}\n.u-r-prev-ev .u-r-ptxt,.u-r-prev-ev .u-r-pico{color:var(--u-muted);font-style:italic}\n.u-r-ptxt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}\n.u-r-hosttags{flex:1 0 100%;display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 10px 72px;margin-top:-6px}\n.u-tag-connect{cursor:pointer;font:inherit;font-size:12px;font-weight:600;line-height:inherit}\n.u-tag-connect:hover{border-color:var(--u-highlight);color:var(--u-highlight);background:var(--u-highlight-soft)}\n.u-r-quick{flex:1 0 100%;display:flex;justify-content:flex-end;align-items:center;min-width:0;padding:0 12px 10px 72px}\n.u-qsend{display:inline-flex;align-items:center;gap:6px;max-width:100%;border:1px solid var(--u-highlight);background:var(--u-highlight);color:#fff;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600;min-height:26px}\n.u-qsend:hover:not(:disabled){filter:brightness(1.08)}\n/* Bulk generate states in the quick-send slot (native: Generating\u2026 / Generation failed) */\n.u-qsend.u-qsend-bulk{background:var(--u-surface-2);border-color:var(--u-border);color:var(--u-muted);cursor:default}\n.u-qsend-busy svg{width:12px;height:12px}\n/* Bulk generate sheet (native BulkGenerateModal) */\n.u-bulk-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px}\n.u-bulk-spark{color:var(--u-highlight);display:grid;place-items:center;padding-top:9px}\n.u-bulk-spark svg{width:18px;height:18px}\n.u-bulk-titles{flex:1;min-width:0}\n.u-bulk-titles h3{margin:4px 0 2px;font-size:18px}\n.u-bulk-sub{margin:0;font-size:13.5px;color:var(--u-muted)}\n.u-bulk-sub .u-linkbtn{font-size:13px}\n.u-bulk-sec{margin-top:14px}\n.u-bulk-sechead{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}\n.u-bulk-sechead .u-linkbtn{font-size:13px}\n.u-bulk-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--u-muted)}\n.u-bulk-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;overflow:auto;padding:2px}\n.u-bulk-empty{font-size:13px;color:var(--u-muted)}\n.u-bulk-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--u-border);background:var(--u-bg);border-radius:999px;padding:3px 10px 3px 3px;font-size:13px;color:var(--u-muted);min-height:30px;max-width:100%}\n.u-bulk-chip-on{border-color:var(--u-highlight);background:var(--u-highlight-soft);color:var(--u-text)}\n.u-bulk-av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:700;flex:none}\n.u-bulk-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.u-bulk-meta{font-size:11px;color:var(--u-muted)}\n.u-bulk-prompt{width:100%;box-sizing:border-box;border:1px solid var(--u-border);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;color:var(--u-text);background:var(--u-bg);resize:vertical}\n.u-bulk-prompt:focus{outline:none;border-color:var(--u-accent)}\n.u-bulk-hist{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}\n.u-bulk-histlabel{font-size:12px;color:var(--u-muted)}\n.u-bulk-histbtn{border:1px solid var(--u-border);background:var(--u-surface-2);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--u-text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.u-bulk-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}\n.u-bulk-go{display:inline-flex;align-items:center;gap:6px}\n.u-bulk-go svg{width:14px;height:14px}\n/* Gold shimmer ring on a ready quick reply, same as the draft cells. Countdown, sending, sent and error states drop it. */\n.u-qsend{position:relative}\n.u-qsend:not(.u-qsend-count):not(.u-qsend-sending):not(.u-qsend-sent):not(.u-qsend-err):not(:disabled)::before{content:\"\";position:absolute;inset:-2px;border-radius:999px;padding:2px;pointer-events:none;background:linear-gradient(110deg,var(--u-gold) 0%,var(--u-gold-hi) 25%,var(--u-gold) 50%,var(--u-gold-hi) 75%,var(--u-gold) 100%);background-size:250% 100%;animation:u-shimmer 3.2s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}\n.u-qsend svg{width:12px;height:12px;flex:none}\n.u-qsend-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.u-qsend-count{border-color:var(--u-warn);background:color-mix(in srgb,var(--u-warn) 12%,transparent);color:var(--u-warn)}\n.u-qsend-sent{border-color:var(--u-accent);background:var(--u-accent);color:var(--u-accent-ink)}\n.u-qsend-err{border-color:var(--u-danger);color:var(--u-danger);background:transparent}\n.u-qsend:disabled{opacity:.9}\n/* delivery receipts */\n.u-rcpt{display:inline-flex;align-items:center;margin-left:4px;color:var(--u-muted)}\n.u-rcpt svg{width:13px;height:13px}\n.u-rcpt-ok{color:var(--u-highlight)}\n.u-rcpt-bad{color:var(--u-danger)}\n/* inline reply drafts under the latest client message */\n.u-inl{align-self:flex-start;max-width:78%;display:flex;flex-direction:column;gap:6px;margin-top:2px}\n.u-inl-h{display:flex;align-items:center;gap:4px}\n.u-inl-toggle{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--u-muted);font-size:12px;font-weight:600;padding:2px 6px;border-radius:6px;min-height:24px}\n.u-inl-toggle:hover{background:var(--u-surface-3);color:var(--u-text)}\n.u-inl-notnow{border:0;background:transparent;color:var(--u-muted);font-size:12px;padding:2px 6px;min-height:24px;border-radius:6px}\n.u-inl-notnow:hover{color:var(--u-text);background:var(--u-surface-3)}\n.u-inl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%}\n.u-inl-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;border:1px solid var(--u-border);background:var(--u-bg);border-radius:12px;padding:7px 10px;text-align:left;color:var(--u-text)}\n/* Gold shimmer ring, same as the composer's draft cells. Reduced motion leaves a still ring. */\n.u-inl-cell::before{content:\"\";position:absolute;inset:-1px;border-radius:13px;padding:1.5px;pointer-events:none;background:linear-gradient(110deg,var(--u-gold) 0%,var(--u-gold-hi) 25%,var(--u-gold) 50%,var(--u-gold-hi) 75%,var(--u-gold) 100%);background-size:250% 100%;animation:u-shimmer 3.2s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}\n.u-inl-cell:hover{border-color:var(--u-highlight)}\n.u-inl-txt{font-size:13px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n/* Item action row (native InlineDrafts): under client messages, and inside activity cards. */\n.u-ia{align-self:flex-start;width:78%;display:flex;flex-direction:column;gap:6px;margin-top:2px}\n.u-ev .u-ia{width:100%;margin-top:6px}\n.u-ev>div{flex:1}\n.u-ev>div{min-width:0}\n.u-ev .u-ia svg{width:13px;height:13px;margin-top:0}\n.u-ia-h{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin-left:-6px}\n.u-ia-h .u-inl-toggle svg{width:13px;height:13px}\n.u-ia-ai{display:flex;flex-direction:column;gap:6px;border:1px solid var(--u-border);background:var(--u-bg);border-radius:12px;padding:10px;min-width:min(420px,100%)}\n.u-ia-ai-label{font-size:12.5px;font-weight:700}\n.u-ia-ai-hint{font-size:12px;color:var(--u-muted)}\n.u-ia-ai-note{font-size:12px;color:var(--u-warn);background:color-mix(in srgb,var(--u-warn) 10%,transparent);border-radius:8px;padding:6px 8px}\n.u-ia-ai textarea{font:inherit;font-size:13.5px;color:var(--u-text);background:var(--u-surface-2);border:1px solid var(--u-border);border-radius:8px;padding:8px 10px;resize:vertical;min-height:64px}\n.u-ia-ai-row{display:flex;align-items:center;gap:10px;font-size:12px}\n.u-ia-ai-count{color:var(--u-muted);font-variant-numeric:tabular-nums}\n.u-ia-ai-err{color:var(--u-danger)}\n.u-cx-h4{display:flex;align-items:center;gap:6px}\n.u-cx-info{display:inline-grid;place-items:center;width:22px;height:22px;border:0;border-radius:999px;background:transparent;color:var(--u-muted);padding:0;cursor:pointer}\n.u-cx-info:hover{color:var(--u-highlight);background:var(--u-highlight-soft)}\n.u-cx-info svg{width:15px;height:15px}\n.u-cx-head{display:flex;align-items:center;gap:10px}\n.u-cx-mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:999px;color:#fff;flex:none}\n.u-cx-rule{margin:10px 0}\n.u-cx-rule h4{margin:0 0 3px;font-size:14px}\n.u-cx-rule p{margin:0;font-size:13.5px;line-height:1.5;color:var(--u-muted)}\n.u-cx-sec{display:block;margin-top:14px;font-size:13px;font-weight:600}\n.u-cx-mocks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 10px}\n.u-cx-col{display:flex;flex-direction:column;gap:4px;min-width:0}\n.u-cx-label{font-size:11.5px;font-weight:500;color:var(--u-muted)}\n.u-cx-phone{border:1px solid var(--u-border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}\n.u-cx-coach{background:var(--u-surface-2)}\n.u-cx-coach-bub{align-self:flex-end;max-width:95%;background:var(--u-highlight);color:#fff;border-radius:12px;border-bottom-right-radius:4px;padding:8px 10px;font-size:12px;line-height:1.45}\n.u-cx-tpl{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.22);font-size:10px;font-weight:500}\n.u-cx-client{background:#e5ddd5;border-color:#d5cdc4}\n.u-cx-client-bub{align-self:flex-start;max-width:95%;background:#fff;color:#1c1c1e;border-radius:12px;border-top-left-radius:4px;padding:8px 10px;font-size:12px;line-height:1.45;box-shadow:0 1px 1px rgba(0,0,0,.08)}\n.u-cx-link{display:block;margin-top:6px;color:#027eb5;font-weight:500}\n.u-cx-meta{font-size:10px;color:var(--u-muted);text-align:center;margin-top:auto}\n.u-cx-client .u-cx-meta{color:#7a7269}\n.u-cx-foot{font-size:12px;line-height:1.5;color:var(--u-muted)}\n.u-offer-who{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--u-muted);margin:2px 0 8px}\n.u-offer-avs{display:inline-flex}\n.u-offer-avs .u-av{border:2px solid var(--u-bg);margin-left:-6px}\n.u-offer-avs .u-av:first-child{margin-left:0}\n.u-offer-list{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:13.5px}\n.u-offer-list li{display:flex;gap:8px;align-items:flex-start}\n.u-offer-tick{display:inline-flex;color:var(--u-accent);flex:none;margin-top:2px}\n.u-offer-tick svg{width:15px;height:15px}\n.u-ai-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}\n.u-ai-plan{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--u-border);border-radius:10px;padding:8px 11px;font-size:13px;margin:0 0 10px}\n.u-ai-plan .u-linkbtn{font-size:13px}\n.u-ai-err{color:var(--u-danger,#b42318);font-size:12.5px;width:100%}\n.u-ai-disclaimer{display:flex;gap:8px;align-items:flex-start;background:var(--u-highlight-soft);border-radius:10px;padding:9px 11px;font-size:12.5px;line-height:1.45;margin:6px 0 10px}\n.u-ai-disclaimer svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--u-highlight)}\n.u-ai-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--u-border);margin-bottom:10px}\n.u-ai-tab{border:0;background:transparent;padding:7px 10px;font-size:13px;font-weight:600;color:var(--u-muted);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:0}\n.u-ai-tab-on{color:var(--u-text);border-bottom-color:var(--u-highlight)}\n.u-ai-body{display:flex;flex-direction:column;gap:14px}\n.u-ai-sec{display:flex;flex-direction:column;gap:6px}\n.u-ai-sec h4{margin:0;font-size:14px}\n.u-ai-area,.u-ai-input{font:inherit;font-size:13.5px;color:var(--u-text);background:var(--u-surface-2);border:1px solid var(--u-border);border-radius:8px;padding:8px 10px;width:100%;box-sizing:border-box}\n.u-ai-area{resize:vertical}\n.u-ai-hr{border:0;border-top:1px solid var(--u-border);margin:8px 0}\n.u-ai-form{display:flex;flex-direction:column;gap:6px;border:1px solid var(--u-border);border-radius:10px;padding:10px}\n.u-ai-form label{font-size:12.5px;font-weight:700}\n.u-ai-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}\n.u-ai-list li{border:1px solid var(--u-border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:3px}\n.u-ai-item-head{display:flex;align-items:center;gap:6px;font-size:13px}\n.u-ai-check{color:var(--u-accent);display:inline-flex}\n.u-ai-check svg{width:14px;height:14px}\n.u-ai-tags{display:flex;flex-wrap:wrap;gap:4px}\n.u-ai-k{font-size:11.5px;font-weight:700;color:var(--u-muted);text-transform:uppercase;letter-spacing:.04em}\n.u-ai-v{font-size:13.5px;white-space:pre-wrap}\n.u-ai-voice{display:flex;flex-direction:column;gap:6px}\n.u-ai-locked{border:1px dashed var(--u-border);border-radius:10px;padding:12px;font-size:13px;color:var(--u-muted)}\n.u-ai-locked strong{color:var(--u-text)}\n.u-ai-field{display:flex;flex-direction:column;gap:3px;margin-top:10px}\n.u-ai-field textarea{font:inherit;font-size:13.5px;color:var(--u-text);background:var(--u-surface-2);border:1px solid var(--u-border);border-radius:8px;padding:8px 10px;resize:vertical}\n.u-ai-labelrow{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:700}\n.u-ai-sub{margin-top:16px!important;font-size:12.5px;font-weight:700;color:var(--u-muted)}\n.u-ai-ok{color:var(--u-accent);font-size:13px;font-weight:600}\n.u-ai-more{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--u-border);font-size:13px;color:var(--u-muted)}\n.u-ia-save{border:1px solid var(--u-accent);background:var(--u-accent);color:var(--u-accent-ink);border-radius:8px;padding:5px 12px;font-weight:600;font-size:13px;min-height:30px}\n.u-ia-save:disabled{opacity:.5}\n/* WhatsApp closed window */\n.u-wa{display:flex;gap:8px;align-items:flex-start;padding:8px 12px;border-radius:9px;background:color-mix(in srgb,var(--u-warn) 10%,var(--u-bg));border:1px solid color-mix(in srgb,var(--u-warn) 35%,transparent);font-size:13px;line-height:1.4}\n.u-wa-ico{display:inline-flex;color:var(--u-warn);flex:none;margin-top:2px}.u-wa-ico svg{width:14px;height:14px}\n.u-wa-body{min-width:0}\n.u-wa-more{display:inline-flex;align-items:center;gap:2px;border:0;background:transparent;color:var(--u-link);font-weight:600;font-size:12.5px;padding:0 4px;min-height:0;margin-left:4px}\n.u-wa-more svg{width:12px;height:12px}\n.u-wa-why{margin:6px 0 0;color:var(--u-muted);font-size:12.5px}\n.u-ghost{display:flex;flex-direction:column;align-items:flex-end;gap:2px;opacity:.7}\n.u-ghost-bub{border:1px dashed color-mix(in srgb,var(--u-out-ink) 50%,transparent);background:color-mix(in srgb,var(--u-out) 60%,transparent)}\n.u-ghost-cut{font-weight:700}\n/* beginning of history */\n.u-hist-start{align-self:center;font-size:12px;color:var(--u-muted);padding:4px 0}\n/* header badges */\n.u-chan-badge{display:inline-flex;align-items:center;justify-content:center;position:absolute;right:-2px;bottom:-2px;width:16px;height:16px;border-radius:50%;color:#fff;border:2px solid var(--u-bg);box-sizing:content-box}\n.u-chan-wa{background:#25d366}\n.u-chan-sms{background:var(--u-highlight)}\n.u-r-av{grid-row:span 3;align-self:start}\n.u-r-av .u-av{grid-row:auto}\n.u-av-wrap{position:relative;display:inline-flex;flex:none}\n.u-head-status{margin-left:4px}\n/* attachments on thread messages */\n.u-att{display:flex;flex-wrap:wrap;gap:6px;max-width:78%}\n.u-att-out{align-self:flex-end;justify-content:flex-end}.u-att-in{align-self:flex-start}\n.u-att-img{border:0;background:none;padding:0;min-height:0;cursor:zoom-in}\n.u-att-img img{display:block;max-width:220px;max-height:220px;border-radius:12px;border:1px solid var(--u-border)}\n.u-att-desc{display:block;font-size:12px;color:var(--u-muted);max-width:220px}\n.u-att-video{display:block;max-width:280px;max-height:320px;border-radius:12px;background:#000;object-fit:contain}\n.u-att-audio{display:flex;flex-direction:column;gap:4px;max-width:300px}\n.u-att-player{width:100%;max-width:300px}\n.u-att-trans{font-size:13px;color:var(--u-muted);font-style:italic}\n.u-lightbox{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.85);display:grid;place-items:center;padding:24px}\n.u-lightbox img{max-width:100%;max-height:100%;border-radius:8px}\n.u-lightbox-x{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:999px;border:0;background:rgba(255,255,255,.15);color:#fff;display:grid;place-items:center}\n.u-lightbox-x svg{width:18px;height:18px}\n.u-att-file{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--u-bg);border:1px solid var(--u-border);font-size:13px;color:var(--u-link);text-decoration:none}\n.u-att-file svg{width:14px;height:14px}\n.u-editor{width:100%;border:1px solid var(--u-border);border-radius:var(--u-radius);padding:10px 12px;min-height:64px;font:inherit;font-size:14.5px;background:var(--u-bg);color:var(--u-text);resize:vertical}\n.u-editor::placeholder{color:var(--u-muted)}\n.u-editor-rich{min-height:64px;max-height:220px;overflow-y:auto;white-space:normal;word-break:break-word;line-height:1.5}\n.u-editor-rich:empty::before{content:attr(data-placeholder);color:var(--u-muted);pointer-events:none}\n.u-editor-rich[aria-disabled=\"true\"]{opacity:.6}\n/* Draft pills, ported from native: one per clause, hue hashed from the text, \u00D7 drops it. */\n.u-seg{display:inline;padding:1px 2px;margin:0 2px;border-radius:3px;background:hsl(var(--u-seg-h) 55% var(--u-seg-l));color:var(--u-text);font-weight:500;user-select:none;transition:opacity .15s ease}\n.u-seg:hover{opacity:.85}\n/* Stock intro: no pill highlight, the text itself shimmers gold (gradient clipped to the glyphs). Reduced motion leaves a still gold gradient. */\n.u-seg-lock{cursor:default;user-select:text;padding:0;margin:0;border-radius:0;font-weight:600;background:linear-gradient(110deg,var(--u-gold-ink) 0%,var(--u-gold-ink-hi) 30%,var(--u-gold-ink) 50%,var(--u-gold-ink-hi) 70%,var(--u-gold-ink) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:u-shimmer 4s linear infinite}\n.u-seg-lock:hover{opacity:1}\n.u-seg-x{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:0 8px;min-width:24px;min-height:22px;cursor:pointer;font-size:15px;font-weight:700;color:#111;background:rgba(255,200,0,.8);border-radius:999px;line-height:1;vertical-align:middle;touch-action:manipulation;-webkit-tap-highlight-color:transparent}\n.u-seg-x:hover,.u-seg-x:active,.u-seg-x:focus-visible{color:#fff;background:#c00;outline:none}\n.u-editor:disabled{opacity:.6}\n.u-send{border:0;background:var(--u-accent);color:var(--u-accent-ink);font-weight:700;border-radius:9px;padding:8px 16px;min-height:40px}\n.u-send:disabled{opacity:.45}\n.u-gen{border:1px solid var(--u-border);background:var(--u-bg);border-radius:9px;padding:8px 14px;font-weight:600;min-height:40px}\n.u-gen:disabled{opacity:.5}\n.u-note{margin-top:8px;border-radius:9px;padding:9px 12px;font-size:13.5px;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}\n.u-note-err{background:color-mix(in srgb,var(--u-danger) 9%,var(--u-bg));border:1px solid color-mix(in srgb,var(--u-danger) 35%,transparent)}\n.u-note-warn{background:color-mix(in srgb,var(--u-warn) 10%,var(--u-bg));border:1px solid color-mix(in srgb,var(--u-warn) 35%,transparent)}\n.u-note-ok{background:var(--u-highlight-soft)}\n.u-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 16px;font-size:14px;border-bottom:1px solid var(--u-border);background:var(--u-accent-soft)}\n.u-headbtn{border:1px solid var(--u-border);background:var(--u-bg);border-radius:8px;padding:6px 11px;font-size:14px;font-weight:600;min-height:34px}\n.u-headbtn:disabled{opacity:.5}\n.u-connect{margin-left:4px;display:inline-flex;align-items:center;gap:7px;flex:none}\n/* AI settings + full screen: the right end of the conversation header (no panel header row). */\n.u-head-acts{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex:none}\n.u-chan ~ .u-head-acts{margin-left:6px}\n.u-pane-head-empty{justify-content:flex-end;min-height:62px;box-sizing:border-box}\n/* On wide panels the toolbar leaves them to the conversation header. */\n.u-toolbar-acts{display:none}\n.u-toolbar .u-addbtn{flex:none}\n.u-connect svg{flex:none}\n.u-example{width:100%;border:1px dashed var(--u-border);border-radius:12px;padding:12px;background:var(--u-surface-2);display:flex;flex-direction:column}\n.u-ex-lab{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--u-muted);margin-bottom:6px}\n.u-sheet-wrap{position:absolute;inset:0;background:rgba(10,10,10,.45);display:grid;place-items:center;padding:16px;z-index:5}\n.u-sheet{width:min(560px,100%);max-height:100%;overflow:auto;background:var(--u-bg);color:var(--u-text);border:1px solid var(--u-border);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.25);padding:20px;outline:none}\n.u-eyebrow{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--u-muted)}\n.u-sheet h3{font-size:21px;margin:6px 0 8px}\n.u-lede{font-size:14.5px;color:var(--u-muted)}\n.u-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;align-items:center}\n.u-secondary{border:1px solid var(--u-border);background:var(--u-bg);border-radius:9px;padding:8px 14px;font-weight:600;min-height:40px}\n.u-steps{display:flex;gap:6px;margin-bottom:12px}\n.u-steps span{flex:1;height:4px;border-radius:999px;background:var(--u-surface-3)}\n.u-steps span.u-on{background:var(--u-highlight)}\n.u-plan{margin-top:14px;border:1px solid var(--u-highlight);border-radius:12px;padding:14px;background:var(--u-highlight-soft)}\n.u-plan-name{font-weight:700;font-size:15px}\n.u-plan-price{font-size:30px;font-weight:700;margin-top:2px}\n.u-plan-price small{font-size:15px;font-weight:500;color:var(--u-muted)}\n.u-plan-vs{font-size:13.5px;color:var(--u-muted)}\n.u-feats{margin:12px 0 0;padding-left:18px;font-size:14px}\n.u-feats li{margin:3px 0}\n.u-chanbox{margin-top:12px;border:1px solid var(--u-border);border-radius:12px;padding:11px 13px}\n.u-chanbox h4{font-size:15px}\n.u-chanbox p{font-size:14px;margin-top:4px;color:var(--u-text)}\n.u-tick{display:flex;gap:10px;align-items:flex-start;margin-top:12px;font-size:14.5px}\n.u-tick input{width:20px;height:20px;margin-top:1px;accent-color:var(--u-highlight)}\n.u-field{margin-top:12px;display:flex;flex-direction:column;gap:5px}\n.u-field>label,.u-field>span:first-child{font-size:13.5px;font-weight:600}\n.u-field select{border:1px solid var(--u-border);background:var(--u-bg);color:var(--u-text);border-radius:9px;padding:9px 11px;font:inherit;min-height:42px}\n.u-field input{border:1px solid var(--u-border);background:var(--u-bg);color:var(--u-text);border-radius:9px;padding:9px 11px;font:inherit;min-height:42px}\n.u-field input[aria-invalid=\"true\"]{border-color:var(--u-danger)}\n.u-hint{font-size:13px;color:var(--u-muted)}\n.u-err{font-size:13px;color:var(--u-danger)}\n.u-chanpick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.u-chanpick button{border:1px solid var(--u-border);background:var(--u-bg);border-radius:10px;padding:9px;text-align:left;min-height:56px}\n.u-chanpick button[aria-checked=\"true\"]{border-color:var(--u-highlight);box-shadow:0 0 0 1px var(--u-highlight)}\n.u-chanpick b{display:block;font-size:14.5px}\n.u-chanpick small{font-size:12.5px;color:var(--u-muted)}\n@media (prefers-reduced-motion:reduce){.uplift *{transition:none!important;animation:none!important}}\n@container panel (max-width:759px){\n .u-cx-mocks{grid-template-columns:1fr}\n .u-inl-grid{grid-template-columns:1fr}\n .u-ia{width:100%}\n .u-split{grid-template-columns:1fr;height:min(80vh,720px)}\n .u-split.u-show-thread .u-list{display:none}\n .u-split:not(.u-show-thread) .u-pane{display:none}\n .u-back{display:inline-flex}\n .u-toolbar-acts{display:inline-flex;flex:none;margin-left:auto}\n .u-toolbar-acts .u-head-acts{margin-left:0}\n /* Phone widths: the toolbar wraps its buttons rather than cutting them off; the conversation header\n keeps name, Connect and the buttons on one line by dropping the phone number and Connect's label. */\n .u-toolbar{flex-wrap:wrap;row-gap:6px}\n .u-sortgroup button{padding:4px 7px}\n .u-pane-head{gap:8px;padding:10px 12px}\n .u-pane-head .u-chan{display:none}\n .u-who{flex:0 1 auto}\n .u-who strong,.u-who small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n .u-connect{padding:6px 9px}\n .u-connect span{display:none}\n .u-ag-grid{grid-template-columns:1fr}\n .u-c-actions .u-meta{flex-basis:100%}\n .u-sheet-wrap{padding:0}\n .u-sheet{width:100%;height:100%;border-radius:0}\n}\n";
|
|
12
|
+
export declare const upliftStyles = "\n:where(.uplift){\n --u-bg:#ffffff;--u-surface:#ffffff;--u-surface-2:#fafafa;--u-surface-3:#f4f4f5;\n --u-text:#262626;--u-muted:#666666;--u-border:rgba(0,0,0,.08);\n --u-accent:#0f8a63;--u-accent-soft:#e3f5ee;--u-accent-ink:#ffffff;--u-link:#0b6b4c;\n --u-highlight:var(--u-accent);--u-highlight-soft:var(--u-accent-soft);\n --u-gold:#c9971c;--u-gold-hi:#f7e2a0;--u-gold-ink:#8a6410;--u-gold-ink-hi:#c9971c;\n --u-seg-l:88%;\n --u-danger:#c10007;--u-warn:#bb4d00;--u-out:#eaf1ff;--u-out-ink:#12244d;\n --u-font:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Inter,sans-serif;--u-radius:10px;\n}\n:where(.uplift[data-theme=\"dark\"],[data-theme=\"dark\"] .uplift){\n --u-bg:#111111;--u-surface:#111111;--u-surface-2:#0a0a0a;--u-surface-3:#1a1a1a;\n --u-text:#f5f5f5;--u-muted:#9a9a9a;--u-border:rgba(255,255,255,.08);\n --u-accent:#70d7b0;--u-accent-soft:#17342a;--u-accent-ink:#062a1e;--u-link:#70d7b0;\n --u-gold:#d9a830;--u-gold-hi:#fff1b8;--u-gold-ink:#d9a830;--u-gold-ink-hi:#f3d47a;\n --u-seg-l:26%;\n --u-danger:#ff6467;--u-warn:#ffb900;--u-out:#1d2b4a;--u-out-ink:#e3ebff;\n}\n.uplift,.uplift *,.uplift *::before,.uplift *::after{box-sizing:border-box}\n.uplift{font:15px/1.45 var(--u-font);color:var(--u-text);background:var(--u-bg);border:1px solid var(--u-border);border-radius:14px;overflow:hidden;container-type:inline-size;container-name:panel;position:relative;-webkit-font-smoothing:antialiased}\n:where(.uplift) button{font:inherit;color:inherit;cursor:pointer}\n:where(.uplift) button:disabled{cursor:not-allowed}\n.uplift :focus-visible{outline:2px solid var(--u-highlight);outline-offset:2px;border-radius:6px}\n.uplift h2,.uplift h3,.uplift h4,.uplift p{margin:0}\n.u-sp{flex:1}\n.u-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n.u-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--u-border);background:var(--u-surface-2);border-radius:999px;padding:4px 10px;font-size:13px;color:var(--u-muted)}\n.u-pill b{color:var(--u-text);font-weight:600}\n.u-linkbtn{background:none;border:0;padding:4px 2px;color:var(--u-link);font-weight:600;text-decoration:underline;text-underline-offset:3px}\n.u-split{display:grid;grid-template-columns:320px minmax(0,1fr);height:min(max(520px,62.5cqw),86vh)}\n.u-split>*{min-height:0}\n.u-list{overflow:hidden}\n.u-pane{overflow:hidden}\n.u-iconbtn{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--u-border);background:var(--u-bg);border-radius:8px;color:var(--u-muted);padding:0}\n.u-iconbtn:hover{color:var(--u-text)}\n.u-iconbtn-pair{width:auto;padding:0 9px;display:inline-flex;align-items:center;gap:4px}\n.u-ai-spark{display:inline-flex;color:var(--u-highlight)}\n.u-iconbtn .u-ai-spark svg{width:14px;height:14px}\n.u-iconbtn svg{width:16px;height:16px}\n.u-iconbtn[aria-pressed=\"true\"]{color:var(--u-text);background:var(--u-surface-2)}\n.u-bulkbtn svg{width:14px;height:14px}\n.uplift.u-full{position:fixed;inset:0;z-index:2147483000;border-radius:0;border:0;display:flex;flex-direction:column}\n.uplift.u-full .u-split{flex:1;height:auto;min-height:0}\n.u-back{display:none;border:1px solid var(--u-border);background:var(--u-bg);border-radius:8px;padding:6px 10px;font-size:16px;min-height:36px;align-items:center;flex:none}\n.u-list{border-right:1px solid var(--u-border);display:flex;flex-direction:column;min-width:0}\n/* inbox toolbar: native Uplift's collapsed search + segmented sort + Bulk generate */\n.u-toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--u-border)}\n.u-search{position:relative;flex:0 1 32px;min-width:32px;display:flex;align-items:center;cursor:pointer;transition:flex-basis .2s ease,flex-grow .2s ease}\n.u-search-open{flex:1 1 140px;cursor:auto}\n.u-search svg{position:absolute;left:9px;width:14px;height:14px;color:var(--u-muted);pointer-events:none}\n.u-search input{width:100%;min-height:32px;padding:6px 10px 6px 30px;border-radius:999px;border:1px solid var(--u-border);background:var(--u-surface-2);font:inherit;font-size:13px;color:var(--u-text)}\n.u-search:not(.u-search-open) input{cursor:pointer;padding-right:0}\n.u-search:not(.u-search-open) input::placeholder{opacity:0}\n.u-search input:focus{outline:none;border-color:var(--u-accent);background:var(--u-bg)}\n.u-search input::-webkit-search-cancel-button{cursor:pointer}\n.u-sortgroup{display:inline-flex;align-items:center;padding:2px;border-radius:999px;background:var(--u-surface-2);flex:none}\n.u-sortgroup button{border:0;background:none;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:600;color:var(--u-muted);min-height:28px;white-space:nowrap}\n.u-sortgroup button:hover{color:var(--u-text)}\n.u-sortgroup button[aria-pressed=\"true\"]{background:var(--u-bg);color:var(--u-text);box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--u-border)}\n.u-rows li.u-bulkrow{border-bottom:0;padding:10px 12px}\n.u-bulkrow .u-bulkbtn{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:100%;border:1px dashed var(--u-border);border-radius:10px;background:none;color:var(--u-muted);padding:8px 10px;min-height:36px;font:inherit;font-size:13px;cursor:pointer}\n.u-bulkrow .u-bulkbtn span{margin-left:6px}\n.u-bulkrow .u-bulkbtn:hover:not(:disabled){color:var(--u-accent);border-color:var(--u-accent);background:var(--u-surface-2)}\n.u-bulkrow .u-bulkbtn:disabled{opacity:.45;cursor:not-allowed}\n.u-clear-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;flex:none;border-radius:999px;border:0;background:none;color:var(--u-muted);cursor:pointer}\n.u-clear-btn svg{width:15px;height:15px}\n.u-clear-btn:hover:not(:disabled){color:var(--u-text);background:var(--u-surface-2)}\n.u-clear-btn:disabled{opacity:.4;cursor:not-allowed}\n.u-rows{list-style:none;margin:0;padding:0;overflow:auto;flex:1;min-height:0}\n.u-rows li{display:flex;flex-wrap:wrap;align-items:stretch;border-bottom:1px solid var(--u-border)}\n.u-row-open{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:11px 12px;display:grid;grid-template-columns:36px minmax(0,1fr);gap:2px 10px;min-height:64px}\n.u-av{grid-row:span 3;width:36px;height:36px;border-radius:999px;display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff}\n.u-av.u-av-sm{grid-row:auto;width:32px;height:32px}\n.u-r-top{display:flex;gap:6px;align-items:baseline;min-width:0}\n.u-r-name{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.u-r-time{margin-left:auto;font-size:12.5px;color:var(--u-muted);flex:none}\n.u-r-line{font-size:13.5px;color:var(--u-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.u-r-tags{display:flex;flex-wrap:wrap;gap:4px}\n.u-tag{font-size:12px;font-weight:600;border-radius:999px;padding:1px 8px;border:1px solid var(--u-border);color:var(--u-muted);background:var(--u-surface-2)}\n.u-tag.u-need{color:var(--u-danger);border-color:color-mix(in srgb,var(--u-danger) 35%,transparent)}\n.u-tag.u-ok{color:var(--u-link);border-color:color-mix(in srgb,var(--u-highlight) 35%,transparent)}\n.u-tag.u-warn{color:var(--u-warn);border-color:color-mix(in srgb,var(--u-warn) 35%,transparent)}\n.u-list-foot{padding:10px 12px;font-size:13px;color:var(--u-muted)}\n.u-skel{height:12px;border-radius:6px;background:var(--u-surface-3);margin:6px 0}\n.u-skel-row{padding:14px 12px;border-bottom:1px solid var(--u-border)}\n.u-state{padding:22px 16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;font-size:14.5px;color:var(--u-muted)}\n.u-state h3{font-size:16px;color:var(--u-text)}\n.u-state p{max-width:52ch}\n.u-pane{display:flex;flex-direction:column;min-width:0}\n.u-pane-head{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--u-border)}\n.u-who{display:flex;flex-direction:column;min-width:0}\n.u-who strong{font-size:15px}\n.u-who small{font-size:13px;color:var(--u-muted)}\n.u-chan{margin-left:auto;font-size:13px;color:var(--u-muted)}\n.u-feed{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--u-surface-2);min-height:200px}\n.u-tpl-chip{display:inline-flex;align-items:center;gap:4px;margin-left:6px;border:1px solid var(--u-border);border-radius:999px;padding:0 7px;font-size:11px;color:var(--u-muted);background:var(--u-bg);min-height:18px}\n.u-bub.u-tpl-shown{opacity:.85;border:1px dashed color-mix(in srgb,var(--u-out-ink) 50%,transparent)}\n.u-day{align-self:center;font-size:12px;color:var(--u-muted);background:var(--u-bg);border:1px solid var(--u-border);padding:2px 10px;border-radius:999px}\n.u-older{align-self:center;border:1px solid var(--u-border);background:var(--u-bg);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--u-muted);min-height:32px}\n.u-ev{align-self:center;max-width:92%;display:flex;gap:8px;align-items:flex-start;font-size:13.5px;background:var(--u-bg);border:1px solid var(--u-border);border-radius:10px;padding:8px 11px}\n.u-ev svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--u-muted)}\n.u-ev b{font-weight:600}\n.u-ev .u-meta{color:var(--u-muted);font-size:12.5px}\n.u-bub{max-width:78%;padding:8px 12px;border-radius:14px;font-size:14.5px;white-space:pre-wrap;overflow-wrap:anywhere}\n.u-bub.u-in{align-self:flex-start;background:var(--u-bg);border:1px solid var(--u-border);border-bottom-left-radius:4px}\n.u-bub.u-out{align-self:flex-end;background:var(--u-out);color:var(--u-out-ink);border-bottom-right-radius:4px}\n.u-bmeta{font-size:12px;color:var(--u-muted)}\n.u-bmeta.u-r{align-self:flex-end}\n/* ---- Composer footer (port of native ChatPage footer) ---- */\n.u-composer{display:flex;flex-direction:column;gap:8px;padding:10px 16px 12px;background:var(--u-surface-2);border-top:1px solid var(--u-border)}\n.u-composer>*:empty{display:none}\n.u-rail{align-self:center;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--u-muted);font-size:12px;padding:2px 10px;border-radius:999px;min-height:24px}\n.u-rail:hover{color:var(--u-text);background:var(--u-surface-3)}\n.u-rail svg{width:14px;height:14px}\n.u-extras-wrap{position:relative;display:flex;flex-direction:column}\n.u-extras-wrap>.u-rail{align-self:flex-end}\n.u-extras-wrap>.u-rail[aria-expanded=\"true\"]{position:absolute;top:0;right:0;z-index:1}\n.u-extras-wrap:has(>.u-rail[aria-expanded=\"true\"]) .u-ag-h{padding-right:34px}\n.u-extras{display:contents}\n.u-extras-off{display:none}\n/* draft grid (ComposerAssistant) */\n.u-ag{display:flex;flex-direction:column;gap:6px}\n.u-ag-h{display:flex;align-items:center;gap:2px}\n.u-ag-toggle{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border:0;background:transparent;color:var(--u-muted);font-size:12px;font-weight:600;border-radius:6px;min-height:28px}\n.u-ag-toggle:hover{background:var(--u-surface-3);color:var(--u-text)}\n.u-ag-spark{display:inline-flex;color:var(--u-highlight)}.u-ag-spark svg{width:12px;height:12px}\n.u-ag-label{letter-spacing:.02em}\n.u-ag-chev{display:inline-flex;color:var(--u-muted);transition:transform .15s}.u-ag-chev svg{width:14px;height:14px}\n.u-ag-chev-open{transform:rotate(180deg)}\n.u-ag-by{font-size:12px;color:var(--u-muted);margin-left:6px}\n.u-ag-regen{display:inline-flex;align-items:center;justify-content:center;padding:4px;border:0;background:transparent;color:var(--u-muted);border-radius:6px;min-width:24px;min-height:24px}\n.u-ag-regen svg{width:11px;height:11px}\n.u-ag-regen:hover:not(:disabled){color:var(--u-highlight);background:var(--u-surface-3)}\n.u-ag-regen:disabled{opacity:.5}\n.u-ag-spinning svg{animation:u-spin 1s linear infinite}\n@keyframes u-spin{to{transform:rotate(360deg)}}\n.u-ag-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}\n.u-ag-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}\n.u-ag-tile{display:flex;align-items:center;gap:5px;min-height:30px;padding:6px 8px;border:1px solid var(--u-border);border-radius:8px;background:var(--u-bg);color:var(--u-muted);min-width:0;overflow:hidden;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}\n.u-ag-tile:hover{border-color:var(--u-muted)}\n.u-ag-tile-ic{display:inline-flex;flex:none}.u-ag-tile-ic svg{width:12px;height:12px}\n.u-ag-tile-txt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:1.2;font-weight:600;color:var(--u-muted)}\n.u-ag-tile-txt.u-ag-tile-on{color:var(--u-text)}\n.u-ag-tile-shimmer{height:30px;border-radius:8px;background:linear-gradient(90deg,var(--u-surface-2) 25%,var(--u-border) 50%,var(--u-surface-2) 75%);background-size:300% 100%;animation:u-ag-tiles 1.4s ease-in-out infinite}\n@keyframes u-ag-tiles{0%{background-position:200% 0}100%{background-position:-200% 0}}\n.u-ag-lab svg{width:12px;height:12px}\n.u-pill-gen .u-pill-grow{position:relative}\n.u-pill-gen .u-pill-grow::after{content:\"\";position:absolute;inset:8px 6px;border-radius:6px;pointer-events:none;background:linear-gradient(var(--u-surface-2),var(--u-surface-2)) 0 0/100% 9px no-repeat,linear-gradient(var(--u-surface-2),var(--u-surface-2)) 0 15px/88% 9px no-repeat,linear-gradient(var(--u-surface-2),var(--u-surface-2)) 0 30px/60% 9px no-repeat;animation:u-pill-gen 1.4s ease-in-out infinite}\n@keyframes u-pill-gen{0%,100%{opacity:.5}50%{opacity:1}}\n@media (prefers-reduced-motion: reduce){.u-ag-tile-shimmer,.u-pill-gen .u-pill-grow::after{animation:none}}\n.u-ag-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:56px;padding:10px 12px;background:var(--u-surface-2);border:1px solid transparent;border-radius:var(--u-radius);color:var(--u-text);text-align:left;transition:background .15s,transform .15s}\n.u-ag-cell:hover:not(:disabled){background:var(--u-bg)}\n/* Gold shimmer ring on finished drafts (Ian, 2026-10-11): a gradient pseudo-element masked to the edge. Reduced motion leaves a still ring. */\n.u-ag-cell:not(.u-ag-loading)::before{content:\"\";position:absolute;inset:-1px;border-radius:calc(var(--u-radius) + 1px);padding:1.5px;pointer-events:none;background:linear-gradient(110deg,var(--u-gold) 0%,var(--u-gold-hi) 25%,var(--u-gold) 50%,var(--u-gold-hi) 75%,var(--u-gold) 100%);background-size:250% 100%;animation:u-shimmer 3.2s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}\n@keyframes u-shimmer{from{background-position:0% 50%}to{background-position:250% 50%}}\n.u-ag-cell[aria-checked=\"true\"]{box-shadow:0 0 0 2px var(--u-highlight)}\n.u-ag-cell[aria-checked=\"true\"]::before{display:none}\n.u-ag-lab{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--u-highlight);text-transform:uppercase;letter-spacing:.04em}\n.u-ag-pencil{display:inline-flex;opacity:.6}.u-ag-pencil svg{width:10px;height:10px}\n.u-ag-txt{font-size:14px;line-height:1.35;color:var(--u-text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}\n.u-ag-loading{overflow:hidden;cursor:default;pointer-events:none;justify-content:center;align-items:center;border-color:var(--u-border)}\n.u-ag-loading-txt{position:relative;z-index:1;font-size:12px;color:var(--u-muted)}\n.u-ag-shimmer{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:u-ag-sheen 1.4s infinite;transform:translateX(-100%)}\n@keyframes u-ag-sheen{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}\n.u-ag-empty{font-size:12.5px;color:var(--u-muted);padding:6px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}\n.u-ag-foot{font-size:12.5px;color:var(--u-muted);margin:0}\n/* attachments */\n.u-attach-row{align-items:center;gap:8px;flex-wrap:wrap}\n.u-limits{font-size:12px;color:var(--u-muted)}\n.u-limits-warn{color:var(--u-warn)}\n.u-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}\n.u-chip{display:inline-flex;align-items:center;gap:6px;max-width:240px;padding:4px 8px;border-radius:999px;background:var(--u-bg);border:1px solid var(--u-border);font-size:12px;color:var(--u-muted)}\n.u-chip svg{width:13px;height:13px;flex:none}\n.u-chip-err{border-color:var(--u-danger);color:var(--u-danger)}\n.u-chip-errtxt{font-size:10px}\n.u-chip-thumb{width:22px;height:22px;object-fit:cover;border-radius:5px}\n.u-chip-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.u-chip-x{display:inline-flex;align-items:center;border:0;background:none;color:inherit;padding:2px;min-height:0}\n.u-chip-x svg{width:12px;height:12px}\n.u-spin{animation:u-spin 1s linear infinite}\n.u-rec{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:9px;background:var(--u-bg);font-size:12px;color:var(--u-muted)}\n.u-rec-dot{width:8px;height:8px;border-radius:50%;background:#ff3b30;animation:u-rec-pulse 1.2s ease-in-out infinite}\n@keyframes u-rec-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n.u-rec-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--u-border);background:var(--u-bg);color:var(--u-text);border-radius:999px;width:28px;height:28px;min-height:0;padding:0}\n.u-rec-btn svg{width:14px;height:14px}\n.u-rec-done{background:var(--u-accent);color:var(--u-accent-ink);border-color:var(--u-accent)}\n.u-sms-note{font-size:12px;color:var(--u-warn)}\n/* editor row: + button, pill with the editor and the inline send/\u2728 */\n.u-c-row{display:flex;align-items:flex-end;gap:8px;width:100%}\n.u-attach-wrap{position:relative;flex:none}\n.u-attach-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:0;padding:0;margin-bottom:3px;border:1px solid var(--u-border);border-radius:999px;background:var(--u-bg);color:var(--u-muted);transition:color .15s,background .15s}\n.u-attach-btn svg{width:18px;height:18px}\n.u-attach-btn:hover:not(:disabled){color:var(--u-highlight);background:var(--u-highlight-soft)}\n.u-attach-btn:disabled{opacity:.45}\n.u-pill{position:relative;flex:1;min-width:0;display:flex;align-items:flex-end;gap:6px;background:var(--u-bg);border:1px solid var(--u-border);border-radius:14px;padding:4px 4px 4px 8px}\n.u-pill-grow{flex:1;min-width:0}\n.u-pill .u-editor{border:0;background:transparent;border-radius:0;padding:6px 4px;min-height:38px;max-height:220px;resize:none}\n.u-pill .u-editor:focus{outline:none}\n.u-pill:focus-within{border-color:var(--u-highlight)}\n/* Locked pill (stock intro, nothing to edit): gold shimmer ring like the draft cells. Reduced motion leaves a still ring. */\n.u-pill-locked{border-color:transparent}\n.u-pill-locked::before{content:\"\";position:absolute;inset:-1px;border-radius:15px;padding:1.5px;pointer-events:none;background:linear-gradient(110deg,var(--u-gold) 0%,var(--u-gold-hi) 25%,var(--u-gold) 50%,var(--u-gold-hi) 75%,var(--u-gold) 100%);background-size:250% 100%;animation:u-shimmer 3.2s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}\n.u-pill-locked:focus-within{border-color:transparent}\n.u-editor-locked{cursor:default;caret-color:transparent}\n.u-send-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;flex:none;border-radius:999px;border:0;background:var(--u-accent);color:var(--u-accent-ink);transition:transform .15s,opacity .15s}\n.u-send-btn svg{width:15px;height:15px;stroke:var(--u-accent-ink)}\n.u-send-btn:hover:not(:disabled){transform:translateY(-1px)}\n.u-send-btn:disabled{opacity:.4;cursor:not-allowed}\n.u-send-btn-text{width:auto;padding:0 12px;font-size:12.5px;font-weight:600;white-space:nowrap}\n.u-gen-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;flex:none;border:0;border-radius:999px;background:transparent;color:var(--u-highlight);transition:background .15s}\n.u-gen-btn svg{width:16px;height:16px}\n.u-gen-btn:hover:not(:disabled){background:var(--u-highlight-soft)}\n.u-gen-btn:disabled{opacity:.4}\n.u-menu-backdrop{position:fixed;inset:0;z-index:40}\n.u-menu{position:absolute;bottom:calc(100% + 6px);z-index:41;display:flex;flex-direction:column;min-width:150px;padding:4px;border-radius:12px;background:var(--u-bg);border:1px solid var(--u-border);box-shadow:0 10px 30px rgba(0,0,0,.18)}\n.u-menu-left{left:0}.u-menu-right{right:0}\n.u-menu-title{padding:6px 12px 4px;font-size:11.5px;font-weight:600;color:var(--u-muted)}\n.u-menu-titlerow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px 2px 0}\n.u-menu-titlerow .u-menu-title{padding:2px 12px 2px}\n.u-menu-cfg{display:inline-flex;align-items:center;justify-content:center;padding:4px;min-width:24px;min-height:24px;border:0;background:none;color:var(--u-muted);border-radius:6px}\n.u-menu-cfg svg{width:13px;height:13px}\n.u-menu-cfg:hover{color:var(--u-text);background:var(--u-surface-3)}\n/* proactive options editor */\n.u-po-help{font-size:13.5px;color:var(--u-muted);margin:0 0 10px}\n.u-po-list{display:flex;flex-direction:column;gap:10px}\n.u-po-row{border:1px solid var(--u-border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--u-surface-2)}\n.u-po-top{display:flex;align-items:center;gap:6px}\n.u-po-label{flex:1;min-width:0;border:1px solid var(--u-border);border-radius:8px;padding:7px 10px;font:inherit;font-size:14px;background:var(--u-bg);color:var(--u-text)}\n.u-po-text{width:100%;border:1px solid var(--u-border);border-radius:8px;padding:7px 10px;font:inherit;font-size:13.5px;background:var(--u-bg);color:var(--u-text);resize:vertical}\n.u-po-iconwrap{position:relative;flex:none}\n.u-po-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:0;padding:0;border:1px solid var(--u-border);border-radius:8px;background:var(--u-bg);color:var(--u-text)}\n.u-po-iconbtn svg{width:15px;height:15px}\n.u-po-iconbtn:disabled{opacity:.4}\n.u-po-iconbtn-on{border-color:var(--u-highlight);box-shadow:0 0 0 1px var(--u-highlight);color:var(--u-highlight)}\n.u-po-remove:hover{color:var(--u-danger);border-color:var(--u-danger)}\n.u-po-iconpick{position:absolute;top:calc(100% + 4px);left:0;z-index:5;display:grid;grid-template-columns:repeat(6,32px);gap:4px;padding:6px;background:var(--u-bg);border:1px solid var(--u-border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18)}\n.u-po-add{margin-top:10px;border:1px dashed var(--u-border);background:transparent;border-radius:9px;padding:8px 12px;font-weight:600;color:var(--u-link);min-height:38px;width:100%}\n.u-po-actions{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}\n.u-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:none;text-align:left;font-size:14px;color:var(--u-text);min-height:36px}\n.u-menu-item:hover{background:var(--u-surface-3)}\n.u-menu-purpose svg{width:14px;height:14px;color:var(--u-highlight);flex:none}\n/* inbox rows (native ClientRow) */\n.u-row-open{position:relative}\n.u-r-ind{position:absolute;left:3px;top:50%;transform:translateY(-50%);width:20px;display:grid;place-items:center}\n.u-rows .u-row-open{padding-left:26px}\n.u-r-dot{width:8px;height:8px;border-radius:50%;background:var(--u-highlight)}\n.u-r-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--u-highlight);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}\n/* The open conversation is the only row with a colour: a clear shade and an accent bar on the left\n edge, like WhatsApp's selected chat. Unread shows by the dot and bold name, never a tint. Built\n from the text colour so it reads on any host theme, light or dark. */\n.u-rows li:has(.u-row-open[aria-current=\"true\"]){background:color-mix(in srgb,var(--u-text) 8%,var(--u-bg));box-shadow:inset 3px 0 0 var(--u-accent)}\n.u-rows li:has(.u-row-open[aria-current=\"true\"]) .u-row-open{background:transparent}\n.u-r-name-unread{font-weight:700}\n.u-r-follow,.u-r-fail{display:inline-flex;align-items:center;flex:none}\n.u-r-follow svg,.u-r-fail svg{width:13px;height:13px}\n.u-r-follow{color:var(--u-warn)}\n.u-r-fail{color:var(--u-danger)}\n.u-r-prev{display:inline-flex;align-items:center;gap:5px;max-width:100%}\n.u-r-pico{display:inline-flex;flex:none}.u-r-pico svg{width:11px;height:11px}\n.u-r-prev-in .u-r-ptxt{color:var(--u-text)}\n.u-r-prev-in .u-r-pico{color:var(--u-highlight)}\n.u-r-prev-out .u-r-ptxt,.u-r-prev-out .u-r-pico{color:var(--u-muted)}\n.u-r-prev-ev .u-r-ptxt,.u-r-prev-ev .u-r-pico{color:var(--u-muted);font-style:italic}\n.u-r-ptxt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}\n.u-r-hosttags{flex:1 0 100%;display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 10px 72px;margin-top:-6px}\n.u-tag-connect{cursor:pointer;font:inherit;font-size:12px;font-weight:600;line-height:inherit}\n.u-tag-connect:hover{border-color:var(--u-highlight);color:var(--u-highlight);background:var(--u-highlight-soft)}\n.u-r-quick{flex:1 0 100%;display:flex;justify-content:flex-end;align-items:center;min-width:0;padding:0 12px 10px 72px}\n.u-qsend{display:inline-flex;align-items:center;gap:6px;max-width:100%;border:1px solid var(--u-highlight);background:var(--u-highlight);color:#fff;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600;min-height:26px}\n.u-qsend:hover:not(:disabled){filter:brightness(1.08)}\n/* Bulk generate states in the quick-send slot (native: Generating\u2026 / Generation failed) */\n.u-qsend.u-qsend-bulk{background:var(--u-surface-2);border-color:var(--u-border);color:var(--u-muted);cursor:default}\n.u-qsend-busy svg{width:12px;height:12px}\n/* Bulk generate sheet (native BulkGenerateModal) */\n.u-bulk-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px}\n.u-bulk-spark{color:var(--u-highlight);display:grid;place-items:center;padding-top:9px}\n.u-bulk-spark svg{width:18px;height:18px}\n.u-bulk-titles{flex:1;min-width:0}\n.u-bulk-titles h3{margin:4px 0 2px;font-size:18px}\n.u-bulk-sub{margin:0;font-size:13.5px;color:var(--u-muted)}\n.u-bulk-sub .u-linkbtn{font-size:13px}\n.u-bulk-sec{margin-top:14px}\n.u-bulk-sechead{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}\n.u-bulk-sechead .u-linkbtn{font-size:13px}\n.u-bulk-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--u-muted)}\n.u-bulk-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;overflow:auto;padding:2px}\n.u-bulk-empty{font-size:13px;color:var(--u-muted)}\n.u-bulk-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--u-border);background:var(--u-bg);border-radius:999px;padding:3px 10px 3px 3px;font-size:13px;color:var(--u-muted);min-height:30px;max-width:100%}\n.u-bulk-chip-on{border-color:var(--u-highlight);background:var(--u-highlight-soft);color:var(--u-text)}\n.u-bulk-av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:700;flex:none}\n.u-bulk-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.u-bulk-meta{font-size:11px;color:var(--u-muted)}\n.u-bulk-prompt{width:100%;box-sizing:border-box;border:1px solid var(--u-border);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;color:var(--u-text);background:var(--u-bg);resize:vertical}\n.u-bulk-prompt:focus{outline:none;border-color:var(--u-accent)}\n.u-bulk-hist{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}\n.u-bulk-histlabel{font-size:12px;color:var(--u-muted)}\n.u-bulk-histbtn{border:1px solid var(--u-border);background:var(--u-surface-2);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--u-text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.u-bulk-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}\n.u-bulk-go{display:inline-flex;align-items:center;gap:6px}\n.u-bulk-go svg{width:14px;height:14px}\n/* Gold shimmer ring on a ready quick reply, same as the draft cells. Countdown, sending, sent and error states drop it. */\n.u-qsend{position:relative}\n.u-qsend:not(.u-qsend-count):not(.u-qsend-sending):not(.u-qsend-sent):not(.u-qsend-err):not(:disabled)::before{content:\"\";position:absolute;inset:-2px;border-radius:999px;padding:2px;pointer-events:none;background:linear-gradient(110deg,var(--u-gold) 0%,var(--u-gold-hi) 25%,var(--u-gold) 50%,var(--u-gold-hi) 75%,var(--u-gold) 100%);background-size:250% 100%;animation:u-shimmer 3.2s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}\n.u-qsend svg{width:12px;height:12px;flex:none}\n.u-qsend-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.u-qsend-count{border-color:var(--u-warn);background:color-mix(in srgb,var(--u-warn) 12%,transparent);color:var(--u-warn)}\n.u-qsend-sent{border-color:var(--u-accent);background:var(--u-accent);color:var(--u-accent-ink)}\n.u-qsend-err{border-color:var(--u-danger);color:var(--u-danger);background:transparent}\n.u-qsend:disabled{opacity:.9}\n/* delivery receipts */\n.u-rcpt{display:inline-flex;align-items:center;margin-left:4px;color:var(--u-muted)}\n.u-rcpt svg{width:13px;height:13px}\n.u-rcpt-ok{color:var(--u-highlight)}\n.u-rcpt-bad{color:var(--u-danger)}\n/* inline reply drafts under the latest client message */\n.u-inl{align-self:flex-start;max-width:78%;display:flex;flex-direction:column;gap:6px;margin-top:2px}\n.u-inl-h{display:flex;align-items:center;gap:4px}\n.u-inl-toggle{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--u-muted);font-size:12px;font-weight:600;padding:2px 6px;border-radius:6px;min-height:24px}\n.u-inl-toggle:hover{background:var(--u-surface-3);color:var(--u-text)}\n.u-inl-notnow{border:0;background:transparent;color:var(--u-muted);font-size:12px;padding:2px 6px;min-height:24px;border-radius:6px}\n.u-inl-notnow:hover{color:var(--u-text);background:var(--u-surface-3)}\n.u-inl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%}\n.u-inl-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;border:1px solid var(--u-border);background:var(--u-bg);border-radius:12px;padding:7px 10px;text-align:left;color:var(--u-text)}\n/* Gold shimmer ring, same as the composer's draft cells. Reduced motion leaves a still ring. */\n.u-inl-cell::before{content:\"\";position:absolute;inset:-1px;border-radius:13px;padding:1.5px;pointer-events:none;background:linear-gradient(110deg,var(--u-gold) 0%,var(--u-gold-hi) 25%,var(--u-gold) 50%,var(--u-gold-hi) 75%,var(--u-gold) 100%);background-size:250% 100%;animation:u-shimmer 3.2s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}\n.u-inl-cell:hover{border-color:var(--u-highlight)}\n.u-inl-txt{font-size:13px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n/* Item action row (native InlineDrafts): under client messages, and inside activity cards. */\n.u-ia{align-self:flex-start;width:78%;display:flex;flex-direction:column;gap:6px;margin-top:2px}\n.u-ev .u-ia{width:100%;margin-top:6px}\n.u-ev>div{flex:1}\n.u-ev>div{min-width:0}\n.u-ev .u-ia svg{width:13px;height:13px;margin-top:0}\n.u-ia-h{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin-left:-6px}\n.u-ia-h .u-inl-toggle svg{width:13px;height:13px}\n.u-ia-ai{display:flex;flex-direction:column;gap:6px;border:1px solid var(--u-border);background:var(--u-bg);border-radius:12px;padding:10px;min-width:min(420px,100%)}\n.u-ia-ai-label{font-size:12.5px;font-weight:700}\n.u-ia-ai-hint{font-size:12px;color:var(--u-muted)}\n.u-ia-ai-note{font-size:12px;color:var(--u-warn);background:color-mix(in srgb,var(--u-warn) 10%,transparent);border-radius:8px;padding:6px 8px}\n.u-ia-ai textarea{font:inherit;font-size:13.5px;color:var(--u-text);background:var(--u-surface-2);border:1px solid var(--u-border);border-radius:8px;padding:8px 10px;resize:vertical;min-height:64px}\n.u-ia-ai-row{display:flex;align-items:center;gap:10px;font-size:12px}\n.u-ia-ai-count{color:var(--u-muted);font-variant-numeric:tabular-nums}\n.u-ia-ai-err{color:var(--u-danger)}\n.u-cx-h4{display:flex;align-items:center;gap:6px}\n.u-cx-info{display:inline-grid;place-items:center;width:22px;height:22px;border:0;border-radius:999px;background:transparent;color:var(--u-muted);padding:0;cursor:pointer}\n.u-cx-info:hover{color:var(--u-highlight);background:var(--u-highlight-soft)}\n.u-cx-info svg{width:15px;height:15px}\n.u-cx-head{display:flex;align-items:center;gap:10px}\n.u-cx-mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:999px;color:#fff;flex:none}\n.u-cx-rule{margin:10px 0}\n.u-cx-rule h4{margin:0 0 3px;font-size:14px}\n.u-cx-rule p{margin:0;font-size:13.5px;line-height:1.5;color:var(--u-muted)}\n.u-cx-sec{display:block;margin-top:14px;font-size:13px;font-weight:600}\n.u-cx-mocks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 10px}\n.u-cx-col{display:flex;flex-direction:column;gap:4px;min-width:0}\n.u-cx-label{font-size:11.5px;font-weight:500;color:var(--u-muted)}\n.u-cx-phone{border:1px solid var(--u-border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}\n.u-cx-coach{background:var(--u-surface-2)}\n.u-cx-coach-bub{align-self:flex-end;max-width:95%;background:var(--u-highlight);color:#fff;border-radius:12px;border-bottom-right-radius:4px;padding:8px 10px;font-size:12px;line-height:1.45}\n.u-cx-tpl{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.22);font-size:10px;font-weight:500}\n.u-cx-client{background:#e5ddd5;border-color:#d5cdc4}\n.u-cx-client-bub{align-self:flex-start;max-width:95%;background:#fff;color:#1c1c1e;border-radius:12px;border-top-left-radius:4px;padding:8px 10px;font-size:12px;line-height:1.45;box-shadow:0 1px 1px rgba(0,0,0,.08)}\n.u-cx-link{display:block;margin-top:6px;color:#027eb5;font-weight:500}\n.u-cx-meta{font-size:10px;color:var(--u-muted);text-align:center;margin-top:auto}\n.u-cx-client .u-cx-meta{color:#7a7269}\n.u-cx-foot{font-size:12px;line-height:1.5;color:var(--u-muted)}\n.u-offer-who{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--u-muted);margin:2px 0 8px}\n.u-offer-avs{display:inline-flex}\n.u-offer-avs .u-av{border:2px solid var(--u-bg);margin-left:-6px}\n.u-offer-avs .u-av:first-child{margin-left:0}\n.u-offer-list{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:13.5px}\n.u-offer-list li{display:flex;gap:8px;align-items:flex-start}\n.u-offer-tick{display:inline-flex;color:var(--u-accent);flex:none;margin-top:2px}\n.u-offer-tick svg{width:15px;height:15px}\n.u-ai-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}\n.u-ai-plan{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--u-border);border-radius:10px;padding:8px 11px;font-size:13px;margin:0 0 10px}\n.u-ai-plan .u-linkbtn{font-size:13px}\n.u-ai-err{color:var(--u-danger,#b42318);font-size:12.5px;width:100%}\n.u-ai-disclaimer{display:flex;gap:8px;align-items:flex-start;background:var(--u-highlight-soft);border-radius:10px;padding:9px 11px;font-size:12.5px;line-height:1.45;margin:6px 0 10px}\n.u-ai-disclaimer svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--u-highlight)}\n.u-ai-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--u-border);margin-bottom:10px}\n.u-ai-tab{border:0;background:transparent;padding:7px 10px;font-size:13px;font-weight:600;color:var(--u-muted);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:0}\n.u-ai-tab-on{color:var(--u-text);border-bottom-color:var(--u-highlight)}\n.u-ai-body{display:flex;flex-direction:column;gap:14px}\n.u-ai-sec{display:flex;flex-direction:column;gap:6px}\n.u-ai-sec h4{margin:0;font-size:14px}\n.u-ai-area,.u-ai-input{font:inherit;font-size:13.5px;color:var(--u-text);background:var(--u-surface-2);border:1px solid var(--u-border);border-radius:8px;padding:8px 10px;width:100%;box-sizing:border-box}\n.u-ai-area{resize:vertical}\n.u-ai-form{display:flex;flex-direction:column;gap:6px;border:1px solid var(--u-border);border-radius:10px;padding:10px}\n.u-ai-form label{font-size:12.5px;font-weight:700}\n.u-ai-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}\n.u-ai-list li{border:1px solid var(--u-border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:3px}\n.u-ai-item-head{display:flex;align-items:center;gap:6px;font-size:13px}\n.u-ai-tags{display:flex;flex-wrap:wrap;gap:4px}\n.u-ai-learned{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:8px 0 0;font-size:13.5px}\n.u-ai-learned dt{font-weight:700;color:var(--u-muted)}\n.u-ai-learned dd{margin:0}\n.u-ai-k{font-size:11.5px;font-weight:700;color:var(--u-muted);text-transform:uppercase;letter-spacing:.04em}\n.u-ai-v{font-size:13.5px;white-space:pre-wrap}\n.u-ai-locked{border:1px dashed var(--u-border);border-radius:10px;padding:12px;font-size:13px;color:var(--u-muted)}\n.u-ai-locked strong{color:var(--u-text)}\n.u-ai-field{display:flex;flex-direction:column;gap:3px;margin-top:10px}\n.u-ai-field textarea{font:inherit;font-size:13.5px;color:var(--u-text);background:var(--u-surface-2);border:1px solid var(--u-border);border-radius:8px;padding:8px 10px;resize:vertical}\n.u-ai-labelrow{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:700}\n.u-ai-sub{margin-top:16px!important;font-size:12.5px;font-weight:700;color:var(--u-muted)}\n.u-ai-ok{color:var(--u-accent);font-size:13px;font-weight:600}\n.u-ai-more{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--u-border);font-size:13px;color:var(--u-muted)}\n.u-ia-save{border:1px solid var(--u-accent);background:var(--u-accent);color:var(--u-accent-ink);border-radius:8px;padding:5px 12px;font-weight:600;font-size:13px;min-height:30px}\n.u-ia-save:disabled{opacity:.5}\n/* WhatsApp closed window */\n.u-wa{display:flex;gap:8px;align-items:flex-start;padding:8px 12px;border-radius:9px;background:color-mix(in srgb,var(--u-warn) 10%,var(--u-bg));border:1px solid color-mix(in srgb,var(--u-warn) 35%,transparent);font-size:13px;line-height:1.4}\n.u-wa-ico{display:inline-flex;color:var(--u-warn);flex:none;margin-top:2px}.u-wa-ico svg{width:14px;height:14px}\n.u-wa-body{min-width:0}\n.u-wa-more{display:inline-flex;align-items:center;gap:2px;border:0;background:transparent;color:var(--u-link);font-weight:600;font-size:12.5px;padding:0 4px;min-height:0;margin-left:4px}\n.u-wa-more svg{width:12px;height:12px}\n.u-wa-why{margin:6px 0 0;color:var(--u-muted);font-size:12.5px}\n.u-ghost{display:flex;flex-direction:column;align-items:flex-end;gap:2px;opacity:.7}\n.u-ghost-bub{border:1px dashed color-mix(in srgb,var(--u-out-ink) 50%,transparent);background:color-mix(in srgb,var(--u-out) 60%,transparent)}\n.u-ghost-cut{font-weight:700}\n/* beginning of history */\n.u-hist-start{align-self:center;font-size:12px;color:var(--u-muted);padding:4px 0}\n/* header badges */\n.u-chan-badge{display:inline-flex;align-items:center;justify-content:center;position:absolute;right:-2px;bottom:-2px;width:16px;height:16px;border-radius:50%;color:#fff;border:2px solid var(--u-bg);box-sizing:content-box}\n.u-chan-wa{background:#25d366}\n.u-chan-sms{background:var(--u-highlight)}\n.u-r-av{grid-row:span 3;align-self:start}\n.u-r-av .u-av{grid-row:auto}\n.u-av-wrap{position:relative;display:inline-flex;flex:none}\n.u-head-status{margin-left:4px}\n/* attachments on thread messages */\n.u-att{display:flex;flex-wrap:wrap;gap:6px;max-width:78%}\n.u-att-out{align-self:flex-end;justify-content:flex-end}.u-att-in{align-self:flex-start}\n.u-att-img{border:0;background:none;padding:0;min-height:0;cursor:zoom-in}\n.u-att-img img{display:block;max-width:220px;max-height:220px;border-radius:12px;border:1px solid var(--u-border)}\n.u-att-desc{display:block;font-size:12px;color:var(--u-muted);max-width:220px}\n.u-att-video{display:block;max-width:280px;max-height:320px;border-radius:12px;background:#000;object-fit:contain}\n.u-att-audio{display:flex;flex-direction:column;gap:4px;max-width:300px}\n.u-att-player{width:100%;max-width:300px}\n.u-att-trans{font-size:13px;color:var(--u-muted);font-style:italic}\n.u-lightbox{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.85);display:grid;place-items:center;padding:24px}\n.u-lightbox img{max-width:100%;max-height:100%;border-radius:8px}\n.u-lightbox-x{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:999px;border:0;background:rgba(255,255,255,.15);color:#fff;display:grid;place-items:center}\n.u-lightbox-x svg{width:18px;height:18px}\n.u-att-file{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--u-bg);border:1px solid var(--u-border);font-size:13px;color:var(--u-link);text-decoration:none}\n.u-att-file svg{width:14px;height:14px}\n.u-editor{width:100%;border:1px solid var(--u-border);border-radius:var(--u-radius);padding:10px 12px;min-height:64px;font:inherit;font-size:14.5px;background:var(--u-bg);color:var(--u-text);resize:vertical}\n.u-editor::placeholder{color:var(--u-muted)}\n.u-editor-rich{min-height:64px;max-height:220px;overflow-y:auto;white-space:normal;word-break:break-word;line-height:1.5}\n.u-editor-rich:empty::before{content:attr(data-placeholder);color:var(--u-muted);pointer-events:none}\n.u-editor-rich[aria-disabled=\"true\"]{opacity:.6}\n/* Draft pills, ported from native: one per clause, hue hashed from the text, \u00D7 drops it. */\n/* Pills keep the suggested draft's greyed text until the coach touches one: clicked or typed-in pills turn white (native #633). */\n.u-seg{display:inline;padding:1px 3px;margin:0 2px 0 0;border-radius:6px;border:1px solid var(--u-highlight-soft);background:var(--u-surface-2);color:var(--u-muted);line-height:1.9;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background .15s,color .15s,border-color .15s}\n.u-seg.touched{background:var(--u-bg);color:var(--u-text)}\n.u-seg.active{background:var(--u-bg);color:var(--u-text);border-color:var(--u-highlight)}\n/* Suggested draft: Uplift's words, softened, until the coach engages. */\n.u-editor-sugg{cursor:text;display:flex;flex-direction:column;gap:2px}\n.u-pill .u-editor-sugg,.u-editor-sugg{background:var(--u-surface-2);border-radius:10px}\n.u-editor-sugg:focus-visible{outline:2px solid var(--u-highlight);outline-offset:1px}\n.u-sugg-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--u-highlight)}\n.u-sugg-label i{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}\n.u-sugg-label em{font-style:normal;font-weight:400;color:var(--u-muted)}\n.u-sugg-text{color:var(--u-muted)}\n/* Stock intro: no pill highlight, the text itself shimmers gold (gradient clipped to the glyphs). Reduced motion leaves a still gold gradient. */\n.u-seg-lock{cursor:default;user-select:text;padding:0;margin:0;border:0;border-radius:0;font-weight:600;background:linear-gradient(110deg,var(--u-gold-ink) 0%,var(--u-gold-ink-hi) 30%,var(--u-gold-ink) 50%,var(--u-gold-ink-hi) 70%,var(--u-gold-ink) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:u-shimmer 4s linear infinite}\n.u-seg-lock:hover{opacity:1}\n.u-seg-x{display:inline-flex;align-items:center;justify-content:center;margin-left:2px;min-width:24px;min-height:24px;cursor:pointer;font-size:14px;color:var(--u-muted);border-radius:6px;line-height:1;vertical-align:middle;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}\n.u-seg-x:hover,.u-seg-x:active,.u-seg-x:focus-visible{color:var(--u-text);background:var(--u-border);outline:none}\n.u-editor:disabled{opacity:.6}\n.u-send{border:0;background:var(--u-accent);color:var(--u-accent-ink);font-weight:700;border-radius:9px;padding:8px 16px;min-height:40px}\n.u-send:disabled{opacity:.45}\n.u-gen{border:1px solid var(--u-border);background:var(--u-bg);border-radius:9px;padding:8px 14px;font-weight:600;min-height:40px}\n.u-gen:disabled{opacity:.5}\n.u-note{margin-top:8px;border-radius:9px;padding:9px 12px;font-size:13.5px;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}\n.u-note-err{background:color-mix(in srgb,var(--u-danger) 9%,var(--u-bg));border:1px solid color-mix(in srgb,var(--u-danger) 35%,transparent)}\n.u-note-warn{background:color-mix(in srgb,var(--u-warn) 10%,var(--u-bg));border:1px solid color-mix(in srgb,var(--u-warn) 35%,transparent)}\n.u-note-ok{background:var(--u-highlight-soft)}\n.u-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 16px;font-size:14px;border-bottom:1px solid var(--u-border);background:var(--u-accent-soft)}\n.u-headbtn{border:1px solid var(--u-border);background:var(--u-bg);border-radius:8px;padding:6px 11px;font-size:14px;font-weight:600;min-height:34px}\n.u-headbtn:disabled{opacity:.5}\n.u-connect{margin-left:4px;display:inline-flex;align-items:center;gap:7px;flex:none}\n.u-hostlink{margin-left:4px;display:inline-flex;align-items:center;gap:6px;flex:none;text-decoration:none;color:var(--u-text);white-space:nowrap}\n.u-hostlink-icon{width:18px;height:18px;object-fit:contain;flex:none}\n.u-ev-open{margin-top:8px;display:flex}\n.u-ev-open .u-hostlink{margin-left:0}\n.u-ia-extra{display:inline-flex;margin-left:4px}\n.u-ia-extra .u-hostlink{margin-left:0;border:0;background:transparent;color:var(--u-muted);font-size:12px;font-weight:600;padding:2px 6px;border-radius:6px;min-height:24px;gap:5px}\n.u-ia-extra .u-hostlink:hover{background:var(--u-surface-3);color:var(--u-text)}\n.u-ia-extra .u-hostlink-icon{width:14px;height:14px}\n/* AI settings + full screen: the right end of the conversation header (no panel header row). */\n.u-head-acts{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex:none}\n.u-chan ~ .u-head-acts{margin-left:6px}\n.u-pane-head-empty{justify-content:flex-end;min-height:62px;box-sizing:border-box}\n/* On wide panels the toolbar leaves them to the conversation header. */\n.u-toolbar-acts{display:none}\n.u-toolbar .u-addbtn{flex:none;margin-left:auto}\n.u-connect svg{flex:none}\n.u-example{width:100%;border:1px dashed var(--u-border);border-radius:12px;padding:12px;background:var(--u-surface-2);display:flex;flex-direction:column}\n.u-ex-lab{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--u-muted);margin-bottom:6px}\n.u-sheet-wrap{position:absolute;inset:0;background:rgba(10,10,10,.45);display:grid;place-items:center;padding:16px;z-index:5}\n.u-sheet{width:min(560px,100%);max-height:100%;overflow:auto;background:var(--u-bg);color:var(--u-text);border:1px solid var(--u-border);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.25);padding:20px;outline:none}\n.u-eyebrow{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--u-muted)}\n.u-sheet h3{font-size:21px;margin:6px 0 8px}\n.u-lede{font-size:14.5px;color:var(--u-muted)}\n.u-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;align-items:center}\n.u-secondary{border:1px solid var(--u-border);background:var(--u-bg);border-radius:9px;padding:8px 14px;font-weight:600;min-height:40px}\n.u-steps{display:flex;gap:6px;margin-bottom:12px}\n.u-steps span{flex:1;height:4px;border-radius:999px;background:var(--u-surface-3)}\n.u-steps span.u-on{background:var(--u-highlight)}\n.u-plan{margin-top:14px;border:1px solid var(--u-highlight);border-radius:12px;padding:14px;background:var(--u-highlight-soft)}\n.u-plan-name{font-weight:700;font-size:15px}\n.u-plan-price{font-size:30px;font-weight:700;margin-top:2px}\n.u-plan-price small{font-size:15px;font-weight:500;color:var(--u-muted)}\n.u-plan-vs{font-size:13.5px;color:var(--u-muted)}\n.u-feats{margin:12px 0 0;padding-left:18px;font-size:14px}\n.u-feats li{margin:3px 0}\n.u-chanbox{margin-top:12px;border:1px solid var(--u-border);border-radius:12px;padding:11px 13px}\n.u-chanbox h4{font-size:15px}\n.u-chanbox p{font-size:14px;margin-top:4px;color:var(--u-text)}\n.u-tick{display:flex;gap:10px;align-items:flex-start;margin-top:12px;font-size:14.5px}\n.u-tick input{width:20px;height:20px;margin-top:1px;accent-color:var(--u-highlight)}\n.u-field{margin-top:12px;display:flex;flex-direction:column;gap:5px}\n.u-field>label,.u-field>span:first-child{font-size:13.5px;font-weight:600}\n.u-field select{border:1px solid var(--u-border);background:var(--u-bg);color:var(--u-text);border-radius:9px;padding:9px 11px;font:inherit;min-height:42px}\n.u-field input{border:1px solid var(--u-border);background:var(--u-bg);color:var(--u-text);border-radius:9px;padding:9px 11px;font:inherit;min-height:42px}\n.u-field input[aria-invalid=\"true\"]{border-color:var(--u-danger)}\n.u-hint{font-size:13px;color:var(--u-muted)}\n.u-err{font-size:13px;color:var(--u-danger)}\n.u-chanpick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.u-chanpick button{border:1px solid var(--u-border);background:var(--u-bg);border-radius:10px;padding:9px;text-align:left;min-height:56px}\n.u-chanpick button[aria-checked=\"true\"]{border-color:var(--u-highlight);box-shadow:0 0 0 1px var(--u-highlight)}\n.u-chanpick b{display:block;font-size:14.5px}\n.u-chanpick small{font-size:12.5px;color:var(--u-muted)}\n@media (prefers-reduced-motion:reduce){.uplift *{transition:none!important;animation:none!important}}\n@container panel (max-width:759px){\n .u-cx-mocks{grid-template-columns:1fr}\n .u-inl-grid{grid-template-columns:1fr}\n .u-ia{width:100%}\n .u-split{grid-template-columns:1fr;height:min(80vh,720px)}\n .u-split.u-show-thread .u-list{display:none}\n .u-split:not(.u-show-thread) .u-pane{display:none}\n .u-back{display:inline-flex}\n .u-toolbar-acts{display:inline-flex;flex:none;margin-left:auto}\n .u-toolbar-acts .u-head-acts{margin-left:0}\n /* Phone widths: the toolbar wraps its buttons rather than cutting them off; the conversation header\n keeps name, Connect and the buttons on one line by dropping the phone number and Connect's label. */\n .u-toolbar{flex-wrap:wrap;row-gap:6px}\n .u-sortgroup button{padding:4px 7px}\n .u-pane-head{gap:8px;padding:10px 12px}\n .u-pane-head .u-chan{display:none}\n .u-who{flex:0 1 auto}\n .u-who strong,.u-who small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n .u-connect{padding:6px 9px}\n .u-connect span{display:none}\n /* The host link stays, compact; the name keeps room to show. */\n .u-who{min-width:72px}\n .u-pane-head .u-hostlink{padding:6px 9px;font-size:13px}\n /* With a host link there may not be room for everything: the panel's buttons wrap to a second line rather than run off the edge. */\n .u-pane-head{flex-wrap:wrap;row-gap:6px}\n .u-ag-grid{grid-template-columns:1fr}\n .u-c-actions .u-meta{flex-basis:100%}\n .u-sheet-wrap{padding:0}\n .u-sheet{width:100%;height:100%;border-radius:0}\n}\n";
|
|
13
13
|
/** Add the panel stylesheet to `doc` once. Safe to call on every render. */
|
|
14
14
|
export declare function injectStyles(doc?: Document | undefined): void;
|
|
15
15
|
//# sourceMappingURL=styles.d.ts.map
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAExD,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAExD,eAAO,MAAM,YAAY,yrlDAqjBxB,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,GAAG,GAAE,QAAQ,GAAG,SAAkE,GAAG,IAAI,CAMrH"}
|
package/dist/styles.js
CHANGED
|
@@ -69,9 +69,15 @@ export const upliftStyles = `
|
|
|
69
69
|
.u-sortgroup button{border:0;background:none;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:600;color:var(--u-muted);min-height:28px;white-space:nowrap}
|
|
70
70
|
.u-sortgroup button:hover{color:var(--u-text)}
|
|
71
71
|
.u-sortgroup button[aria-pressed="true"]{background:var(--u-bg);color:var(--u-text);box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--u-border)}
|
|
72
|
-
.u-
|
|
73
|
-
.u-
|
|
74
|
-
.u-
|
|
72
|
+
.u-rows li.u-bulkrow{border-bottom:0;padding:10px 12px}
|
|
73
|
+
.u-bulkrow .u-bulkbtn{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:100%;border:1px dashed var(--u-border);border-radius:10px;background:none;color:var(--u-muted);padding:8px 10px;min-height:36px;font:inherit;font-size:13px;cursor:pointer}
|
|
74
|
+
.u-bulkrow .u-bulkbtn span{margin-left:6px}
|
|
75
|
+
.u-bulkrow .u-bulkbtn:hover:not(:disabled){color:var(--u-accent);border-color:var(--u-accent);background:var(--u-surface-2)}
|
|
76
|
+
.u-bulkrow .u-bulkbtn:disabled{opacity:.45;cursor:not-allowed}
|
|
77
|
+
.u-clear-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;flex:none;border-radius:999px;border:0;background:none;color:var(--u-muted);cursor:pointer}
|
|
78
|
+
.u-clear-btn svg{width:15px;height:15px}
|
|
79
|
+
.u-clear-btn:hover:not(:disabled){color:var(--u-text);background:var(--u-surface-2)}
|
|
80
|
+
.u-clear-btn:disabled{opacity:.4;cursor:not-allowed}
|
|
75
81
|
.u-rows{list-style:none;margin:0;padding:0;overflow:auto;flex:1;min-height:0}
|
|
76
82
|
.u-rows li{display:flex;flex-wrap:wrap;align-items:stretch;border-bottom:1px solid var(--u-border)}
|
|
77
83
|
.u-row-open{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:11px 12px;display:grid;grid-template-columns:36px minmax(0,1fr);gap:2px 10px;min-height:64px}
|
|
@@ -141,6 +147,19 @@ export const upliftStyles = `
|
|
|
141
147
|
.u-ag-spinning svg{animation:u-spin 1s linear infinite}
|
|
142
148
|
@keyframes u-spin{to{transform:rotate(360deg)}}
|
|
143
149
|
.u-ag-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
|
|
150
|
+
.u-ag-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
|
|
151
|
+
.u-ag-tile{display:flex;align-items:center;gap:5px;min-height:30px;padding:6px 8px;border:1px solid var(--u-border);border-radius:8px;background:var(--u-bg);color:var(--u-muted);min-width:0;overflow:hidden;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
|
|
152
|
+
.u-ag-tile:hover{border-color:var(--u-muted)}
|
|
153
|
+
.u-ag-tile-ic{display:inline-flex;flex:none}.u-ag-tile-ic svg{width:12px;height:12px}
|
|
154
|
+
.u-ag-tile-txt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:1.2;font-weight:600;color:var(--u-muted)}
|
|
155
|
+
.u-ag-tile-txt.u-ag-tile-on{color:var(--u-text)}
|
|
156
|
+
.u-ag-tile-shimmer{height:30px;border-radius:8px;background:linear-gradient(90deg,var(--u-surface-2) 25%,var(--u-border) 50%,var(--u-surface-2) 75%);background-size:300% 100%;animation:u-ag-tiles 1.4s ease-in-out infinite}
|
|
157
|
+
@keyframes u-ag-tiles{0%{background-position:200% 0}100%{background-position:-200% 0}}
|
|
158
|
+
.u-ag-lab svg{width:12px;height:12px}
|
|
159
|
+
.u-pill-gen .u-pill-grow{position:relative}
|
|
160
|
+
.u-pill-gen .u-pill-grow::after{content:"";position:absolute;inset:8px 6px;border-radius:6px;pointer-events:none;background:linear-gradient(var(--u-surface-2),var(--u-surface-2)) 0 0/100% 9px no-repeat,linear-gradient(var(--u-surface-2),var(--u-surface-2)) 0 15px/88% 9px no-repeat,linear-gradient(var(--u-surface-2),var(--u-surface-2)) 0 30px/60% 9px no-repeat;animation:u-pill-gen 1.4s ease-in-out infinite}
|
|
161
|
+
@keyframes u-pill-gen{0%,100%{opacity:.5}50%{opacity:1}}
|
|
162
|
+
@media (prefers-reduced-motion: reduce){.u-ag-tile-shimmer,.u-pill-gen .u-pill-grow::after{animation:none}}
|
|
144
163
|
.u-ag-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:56px;padding:10px 12px;background:var(--u-surface-2);border:1px solid transparent;border-radius:var(--u-radius);color:var(--u-text);text-align:left;transition:background .15s,transform .15s}
|
|
145
164
|
.u-ag-cell:hover:not(:disabled){background:var(--u-bg)}
|
|
146
165
|
/* Gold shimmer ring on finished drafts (Ian, 2026-10-11): a gradient pseudo-element masked to the edge. Reduced motion leaves a still ring. */
|
|
@@ -150,7 +169,7 @@ export const upliftStyles = `
|
|
|
150
169
|
.u-ag-cell[aria-checked="true"]::before{display:none}
|
|
151
170
|
.u-ag-lab{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--u-highlight);text-transform:uppercase;letter-spacing:.04em}
|
|
152
171
|
.u-ag-pencil{display:inline-flex;opacity:.6}.u-ag-pencil svg{width:10px;height:10px}
|
|
153
|
-
.u-ag-txt{font-size:14px;line-height:1.35;color:var(--u-text);display:-webkit-box;-webkit-line-clamp:
|
|
172
|
+
.u-ag-txt{font-size:14px;line-height:1.35;color:var(--u-text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}
|
|
154
173
|
.u-ag-loading{overflow:hidden;cursor:default;pointer-events:none;justify-content:center;align-items:center;border-color:var(--u-border)}
|
|
155
174
|
.u-ag-loading-txt{position:relative;z-index:1;font-size:12px;color:var(--u-muted)}
|
|
156
175
|
.u-ag-shimmer{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:u-ag-sheen 1.4s infinite;transform:translateX(-100%)}
|
|
@@ -199,6 +218,7 @@ export const upliftStyles = `
|
|
|
199
218
|
.u-send-btn svg{width:15px;height:15px;stroke:var(--u-accent-ink)}
|
|
200
219
|
.u-send-btn:hover:not(:disabled){transform:translateY(-1px)}
|
|
201
220
|
.u-send-btn:disabled{opacity:.4;cursor:not-allowed}
|
|
221
|
+
.u-send-btn-text{width:auto;padding:0 12px;font-size:12.5px;font-weight:600;white-space:nowrap}
|
|
202
222
|
.u-gen-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;flex:none;border:0;border-radius:999px;background:transparent;color:var(--u-highlight);transition:background .15s}
|
|
203
223
|
.u-gen-btn svg{width:16px;height:16px}
|
|
204
224
|
.u-gen-btn:hover:not(:disabled){background:var(--u-highlight-soft)}
|
|
@@ -378,18 +398,17 @@ export const upliftStyles = `
|
|
|
378
398
|
.u-ai-sec h4{margin:0;font-size:14px}
|
|
379
399
|
.u-ai-area,.u-ai-input{font:inherit;font-size:13.5px;color:var(--u-text);background:var(--u-surface-2);border:1px solid var(--u-border);border-radius:8px;padding:8px 10px;width:100%;box-sizing:border-box}
|
|
380
400
|
.u-ai-area{resize:vertical}
|
|
381
|
-
.u-ai-hr{border:0;border-top:1px solid var(--u-border);margin:8px 0}
|
|
382
401
|
.u-ai-form{display:flex;flex-direction:column;gap:6px;border:1px solid var(--u-border);border-radius:10px;padding:10px}
|
|
383
402
|
.u-ai-form label{font-size:12.5px;font-weight:700}
|
|
384
403
|
.u-ai-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
|
|
385
404
|
.u-ai-list li{border:1px solid var(--u-border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:3px}
|
|
386
405
|
.u-ai-item-head{display:flex;align-items:center;gap:6px;font-size:13px}
|
|
387
|
-
.u-ai-check{color:var(--u-accent);display:inline-flex}
|
|
388
|
-
.u-ai-check svg{width:14px;height:14px}
|
|
389
406
|
.u-ai-tags{display:flex;flex-wrap:wrap;gap:4px}
|
|
407
|
+
.u-ai-learned{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:8px 0 0;font-size:13.5px}
|
|
408
|
+
.u-ai-learned dt{font-weight:700;color:var(--u-muted)}
|
|
409
|
+
.u-ai-learned dd{margin:0}
|
|
390
410
|
.u-ai-k{font-size:11.5px;font-weight:700;color:var(--u-muted);text-transform:uppercase;letter-spacing:.04em}
|
|
391
411
|
.u-ai-v{font-size:13.5px;white-space:pre-wrap}
|
|
392
|
-
.u-ai-voice{display:flex;flex-direction:column;gap:6px}
|
|
393
412
|
.u-ai-locked{border:1px dashed var(--u-border);border-radius:10px;padding:12px;font-size:13px;color:var(--u-muted)}
|
|
394
413
|
.u-ai-locked strong{color:var(--u-text)}
|
|
395
414
|
.u-ai-field{display:flex;flex-direction:column;gap:3px;margin-top:10px}
|
|
@@ -442,13 +461,23 @@ export const upliftStyles = `
|
|
|
442
461
|
.u-editor-rich:empty::before{content:attr(data-placeholder);color:var(--u-muted);pointer-events:none}
|
|
443
462
|
.u-editor-rich[aria-disabled="true"]{opacity:.6}
|
|
444
463
|
/* Draft pills, ported from native: one per clause, hue hashed from the text, × drops it. */
|
|
445
|
-
|
|
446
|
-
.u-seg:
|
|
464
|
+
/* Pills keep the suggested draft's greyed text until the coach touches one: clicked or typed-in pills turn white (native #633). */
|
|
465
|
+
.u-seg{display:inline;padding:1px 3px;margin:0 2px 0 0;border-radius:6px;border:1px solid var(--u-highlight-soft);background:var(--u-surface-2);color:var(--u-muted);line-height:1.9;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background .15s,color .15s,border-color .15s}
|
|
466
|
+
.u-seg.touched{background:var(--u-bg);color:var(--u-text)}
|
|
467
|
+
.u-seg.active{background:var(--u-bg);color:var(--u-text);border-color:var(--u-highlight)}
|
|
468
|
+
/* Suggested draft: Uplift's words, softened, until the coach engages. */
|
|
469
|
+
.u-editor-sugg{cursor:text;display:flex;flex-direction:column;gap:2px}
|
|
470
|
+
.u-pill .u-editor-sugg,.u-editor-sugg{background:var(--u-surface-2);border-radius:10px}
|
|
471
|
+
.u-editor-sugg:focus-visible{outline:2px solid var(--u-highlight);outline-offset:1px}
|
|
472
|
+
.u-sugg-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--u-highlight)}
|
|
473
|
+
.u-sugg-label i{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}
|
|
474
|
+
.u-sugg-label em{font-style:normal;font-weight:400;color:var(--u-muted)}
|
|
475
|
+
.u-sugg-text{color:var(--u-muted)}
|
|
447
476
|
/* Stock intro: no pill highlight, the text itself shimmers gold (gradient clipped to the glyphs). Reduced motion leaves a still gold gradient. */
|
|
448
|
-
.u-seg-lock{cursor:default;user-select:text;padding:0;margin:0;border-radius:0;font-weight:600;background:linear-gradient(110deg,var(--u-gold-ink) 0%,var(--u-gold-ink-hi) 30%,var(--u-gold-ink) 50%,var(--u-gold-ink-hi) 70%,var(--u-gold-ink) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:u-shimmer 4s linear infinite}
|
|
477
|
+
.u-seg-lock{cursor:default;user-select:text;padding:0;margin:0;border:0;border-radius:0;font-weight:600;background:linear-gradient(110deg,var(--u-gold-ink) 0%,var(--u-gold-ink-hi) 30%,var(--u-gold-ink) 50%,var(--u-gold-ink-hi) 70%,var(--u-gold-ink) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:u-shimmer 4s linear infinite}
|
|
449
478
|
.u-seg-lock:hover{opacity:1}
|
|
450
|
-
.u-seg-x{display:inline-flex;align-items:center;justify-content:center;margin-left:
|
|
451
|
-
.u-seg-x:hover,.u-seg-x:active,.u-seg-x:focus-visible{color
|
|
479
|
+
.u-seg-x{display:inline-flex;align-items:center;justify-content:center;margin-left:2px;min-width:24px;min-height:24px;cursor:pointer;font-size:14px;color:var(--u-muted);border-radius:6px;line-height:1;vertical-align:middle;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
|
|
480
|
+
.u-seg-x:hover,.u-seg-x:active,.u-seg-x:focus-visible{color:var(--u-text);background:var(--u-border);outline:none}
|
|
452
481
|
.u-editor:disabled{opacity:.6}
|
|
453
482
|
.u-send{border:0;background:var(--u-accent);color:var(--u-accent-ink);font-weight:700;border-radius:9px;padding:8px 16px;min-height:40px}
|
|
454
483
|
.u-send:disabled{opacity:.45}
|
|
@@ -462,13 +491,21 @@ export const upliftStyles = `
|
|
|
462
491
|
.u-headbtn{border:1px solid var(--u-border);background:var(--u-bg);border-radius:8px;padding:6px 11px;font-size:14px;font-weight:600;min-height:34px}
|
|
463
492
|
.u-headbtn:disabled{opacity:.5}
|
|
464
493
|
.u-connect{margin-left:4px;display:inline-flex;align-items:center;gap:7px;flex:none}
|
|
494
|
+
.u-hostlink{margin-left:4px;display:inline-flex;align-items:center;gap:6px;flex:none;text-decoration:none;color:var(--u-text);white-space:nowrap}
|
|
495
|
+
.u-hostlink-icon{width:18px;height:18px;object-fit:contain;flex:none}
|
|
496
|
+
.u-ev-open{margin-top:8px;display:flex}
|
|
497
|
+
.u-ev-open .u-hostlink{margin-left:0}
|
|
498
|
+
.u-ia-extra{display:inline-flex;margin-left:4px}
|
|
499
|
+
.u-ia-extra .u-hostlink{margin-left:0;border:0;background:transparent;color:var(--u-muted);font-size:12px;font-weight:600;padding:2px 6px;border-radius:6px;min-height:24px;gap:5px}
|
|
500
|
+
.u-ia-extra .u-hostlink:hover{background:var(--u-surface-3);color:var(--u-text)}
|
|
501
|
+
.u-ia-extra .u-hostlink-icon{width:14px;height:14px}
|
|
465
502
|
/* AI settings + full screen: the right end of the conversation header (no panel header row). */
|
|
466
503
|
.u-head-acts{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex:none}
|
|
467
504
|
.u-chan ~ .u-head-acts{margin-left:6px}
|
|
468
505
|
.u-pane-head-empty{justify-content:flex-end;min-height:62px;box-sizing:border-box}
|
|
469
506
|
/* On wide panels the toolbar leaves them to the conversation header. */
|
|
470
507
|
.u-toolbar-acts{display:none}
|
|
471
|
-
.u-toolbar .u-addbtn{flex:none}
|
|
508
|
+
.u-toolbar .u-addbtn{flex:none;margin-left:auto}
|
|
472
509
|
.u-connect svg{flex:none}
|
|
473
510
|
.u-example{width:100%;border:1px dashed var(--u-border);border-radius:12px;padding:12px;background:var(--u-surface-2);display:flex;flex-direction:column}
|
|
474
511
|
.u-ex-lab{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--u-muted);margin-bottom:6px}
|
|
@@ -527,6 +564,11 @@ export const upliftStyles = `
|
|
|
527
564
|
.u-who strong,.u-who small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
528
565
|
.u-connect{padding:6px 9px}
|
|
529
566
|
.u-connect span{display:none}
|
|
567
|
+
/* The host link stays, compact; the name keeps room to show. */
|
|
568
|
+
.u-who{min-width:72px}
|
|
569
|
+
.u-pane-head .u-hostlink{padding:6px 9px;font-size:13px}
|
|
570
|
+
/* With a host link there may not be room for everything: the panel's buttons wrap to a second line rather than run off the edge. */
|
|
571
|
+
.u-pane-head{flex-wrap:wrap;row-gap:6px}
|
|
530
572
|
.u-ag-grid{grid-template-columns:1fr}
|
|
531
573
|
.u-c-actions .u-meta{flex-basis:100%}
|
|
532
574
|
.u-sheet-wrap{padding:0}
|
package/dist/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqjB3B,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,MAA4B,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;IAC7G,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAAE,OAAO;IACzD,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC;IACzB,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC;IAC9B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -11,5 +11,5 @@ export declare function usePreviewDrafts(input: {
|
|
|
11
11
|
events: ReadonlyArray<PreviewEvent>;
|
|
12
12
|
} | null): DraftsState;
|
|
13
13
|
/** Only the fields the preview endpoint accepts (it rejects unknown keys such as a host's own id). */
|
|
14
|
-
export declare function toPreviewEvent({ type, occurredAt, exercise, sets, reps, weight, unit, sessionName }: PreviewEvent): PreviewEvent;
|
|
14
|
+
export declare function toPreviewEvent({ type, occurredAt, exercise, sets, reps, weight, unit, sessionName, channel, text }: PreviewEvent): PreviewEvent;
|
|
15
15
|
//# sourceMappingURL=usePreviewDrafts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreviewDrafts.d.ts","sourceRoot":"","sources":["../src/usePreviewDrafts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyB,YAAY,EAAe,MAAM,eAAe,CAAC;AAGtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,GAAG,IAAI,GAAG,WAAW,CAgDvJ;AAED,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,YAAY,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"usePreviewDrafts.d.ts","sourceRoot":"","sources":["../src/usePreviewDrafts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyB,YAAY,EAAe,MAAM,eAAe,CAAC;AAGtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,GAAG,IAAI,GAAG,WAAW,CAgDvJ;AAED,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,YAAY,GAAG,YAAY,CAc/I"}
|
package/dist/usePreviewDrafts.js
CHANGED
|
@@ -58,7 +58,7 @@ export function usePreviewDrafts(input) {
|
|
|
58
58
|
return { status, drafts, error, retryIn, generate, clear, seed };
|
|
59
59
|
}
|
|
60
60
|
/** Only the fields the preview endpoint accepts (it rejects unknown keys such as a host's own id). */
|
|
61
|
-
export function toPreviewEvent({ type, occurredAt, exercise, sets, reps, weight, unit, sessionName }) {
|
|
61
|
+
export function toPreviewEvent({ type, occurredAt, exercise, sets, reps, weight, unit, sessionName, channel, text }) {
|
|
62
62
|
const e = { type, occurredAt };
|
|
63
63
|
if (exercise)
|
|
64
64
|
e.exercise = exercise;
|
|
@@ -72,6 +72,13 @@ export function toPreviewEvent({ type, occurredAt, exercise, sets, reps, weight,
|
|
|
72
72
|
e.unit = unit;
|
|
73
73
|
if (sessionName)
|
|
74
74
|
e.sessionName = sessionName;
|
|
75
|
+
// Only a message the client sent in the host's own app carries these; Uplift rejects them elsewhere.
|
|
76
|
+
if (type === "externalMessage") {
|
|
77
|
+
if (channel)
|
|
78
|
+
e.channel = channel;
|
|
79
|
+
if (text)
|
|
80
|
+
e.text = text.slice(0, 500);
|
|
81
|
+
}
|
|
75
82
|
return e;
|
|
76
83
|
}
|
|
77
84
|
//# sourceMappingURL=usePreviewDrafts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreviewDrafts.js","sourceRoot":"","sources":["../src/usePreviewDrafts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"usePreviewDrafts.js","sourceRoot":"","sources":["../src/usePreviewDrafts.ts"],"names":[],"mappings":"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"}
|
package/dist/useSend.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import type { Attachment, SendResult, UpliftError } from "@uplifted/sdk";
|
|
1
|
+
import type { Attachment, DraftContext, SendOrigin, SendResult, UpliftError } from "@uplifted/sdk";
|
|
2
2
|
export type SendStatus = "idle" | "sending" | "sent" | "error";
|
|
3
|
+
/** How the coach produced the text and what drafts were on screen (draftContext.ts); teaches Uplift their voice. */
|
|
4
|
+
export interface SendVoice {
|
|
5
|
+
origin: SendOrigin;
|
|
6
|
+
draftContext: DraftContext | null;
|
|
7
|
+
}
|
|
3
8
|
export interface SendState {
|
|
4
9
|
status: SendStatus;
|
|
5
10
|
error: UpliftError | null;
|
|
@@ -8,7 +13,7 @@ export interface SendState {
|
|
|
8
13
|
* Send `body`. Resolves with the result, or null on failure (read `error`). The same text
|
|
9
14
|
* keeps the same Idempotency-Key until it succeeds, so Retry can never double send (C21, T24).
|
|
10
15
|
*/
|
|
11
|
-
send: (body: string, attachments?: Attachment[]) => Promise<SendResult | null>;
|
|
16
|
+
send: (body: string, attachments?: Attachment[], voice?: SendVoice) => Promise<SendResult | null>;
|
|
12
17
|
/** Back to idle; the key for the current text is kept. */
|
|
13
18
|
reset: () => void;
|
|
14
19
|
}
|
package/dist/useSend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSend.d.ts","sourceRoot":"","sources":["../src/useSend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useSend.d.ts","sourceRoot":"","sources":["../src/useSend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAInG,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D,oHAAoH;AACpH,MAAM,WAAW,SAAS;IAAG,MAAM,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE;AAEpF,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAClG,0DAA0D;IAC1D,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAQD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CA4C1D"}
|
package/dist/useSend.js
CHANGED
|
@@ -19,7 +19,7 @@ export function useSend(clientId) {
|
|
|
19
19
|
setError(null);
|
|
20
20
|
setResult(null);
|
|
21
21
|
}, [clientId]);
|
|
22
|
-
const send = useCallback(async (body, attachments = []) => {
|
|
22
|
+
const send = useCallback(async (body, attachments = [], voice) => {
|
|
23
23
|
if (!clientId || status === "sending")
|
|
24
24
|
return null;
|
|
25
25
|
const text = body.trim();
|
|
@@ -32,7 +32,12 @@ export function useSend(clientId) {
|
|
|
32
32
|
setStatus("sending");
|
|
33
33
|
setError(null);
|
|
34
34
|
try {
|
|
35
|
-
const res = await client.send(clientId, {
|
|
35
|
+
const res = await client.send(clientId, {
|
|
36
|
+
body: text,
|
|
37
|
+
...(attachments.length ? { attachments } : {}),
|
|
38
|
+
...(voice ? { origin: voice.origin, draftContext: voice.draftContext } : {}),
|
|
39
|
+
idempotencyKey: keyFor.current.key,
|
|
40
|
+
});
|
|
36
41
|
keyFor.current = null;
|
|
37
42
|
setResult(res);
|
|
38
43
|
setStatus("sent");
|
package/dist/useSend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSend.js","sourceRoot":"","sources":["../src/useSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useSend.js","sourceRoot":"","sources":["../src/useSend.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uplifted/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Uplift messaging screens as host-agnostic React components and hooks.",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/iantur89/uplifted.git",
|
|
10
|
-
"directory": "packages/react"
|
|
11
|
-
},
|
|
12
7
|
"main": "./dist/index.js",
|
|
13
8
|
"types": "./dist/index.d.ts",
|
|
14
9
|
"exports": {
|
|
@@ -19,16 +14,17 @@
|
|
|
19
14
|
},
|
|
20
15
|
"files": [
|
|
21
16
|
"dist",
|
|
22
|
-
"!dist/.tsbuildinfo"
|
|
17
|
+
"!dist/.tsbuildinfo",
|
|
18
|
+
"CHANGELOG.md"
|
|
23
19
|
],
|
|
24
20
|
"sideEffects": false,
|
|
25
21
|
"peerDependencies": {
|
|
26
|
-
"@uplifted/sdk": "^0.
|
|
22
|
+
"@uplifted/sdk": "^0.11.0",
|
|
27
23
|
"react": "^18.3.0 || ^19.0.0",
|
|
28
24
|
"react-dom": "^18.3.0 || ^19.0.0"
|
|
29
25
|
},
|
|
30
26
|
"devDependencies": {
|
|
31
|
-
"@uplifted/sdk": "0.
|
|
27
|
+
"@uplifted/sdk": "0.11.0"
|
|
32
28
|
},
|
|
33
29
|
"publishConfig": {
|
|
34
30
|
"access": "restricted"
|