/* Host-scoped presentation for the pinned Widget; real-asset browser QA covers
   these selectors. Widget still owns messages, sends, voice and file handling. */
:is(.cw-member-chat,.cw-member-chat-colors) { --cw-card:var(--surface); --cw-bg:var(--surface-soft); --cw-text:var(--ink); --cw-subtle:var(--muted); --cw-border:var(--line); --cw-primary:var(--accent); --cw-primary-strong:var(--accent-text,var(--accent)); font-family:inherit; }
/* Widget 1.0.22 owns the surfaces; its public role colors inherit the palette. */
:is(.cw-member-chat,.cw-member-chat-colors) { --cw-ai:var(--member-chat-ai); --cw-user:var(--member-chat-user); }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-assistant > .cw-bubble-surface { --cw-text:var(--member-chat-ai-text); --cw-primary:var(--member-chat-ai-link); --cw-primary-strong:var(--member-chat-ai-link); color:var(--cw-text); }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-user > .cw-bubble-surface { --cw-text:var(--member-chat-user-text); --cw-primary:var(--member-chat-user-link); --cw-primary-strong:var(--member-chat-user-link); color:var(--cw-text); }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-bubble-surface :is(blockquote,.cw-reply-preview) { color:var(--cw-text); border-color:currentColor; background:transparent; }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-bubble-text .cw-table { background:transparent; }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-bubble-text .cw-table th { color:var(--cw-text); background:transparent; }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-bubble-surface .cw-file-attachment { color:var(--cw-text); background:transparent; }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-bubble-surface .cw-file-attachment-meta { color:var(--cw-text); }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-bubble-surface .cw-social-canvas-action { color:var(--cw-primary); background:transparent; }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-activity-bubble { background:transparent; color:var(--ink); }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-activity-bubble .cw-bubble-text { color:var(--cw-text); }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-bubble-action { color:var(--muted); }
:is(.cw-member-chat,.cw-member-chat-colors) .cw-typing-dot { background:var(--muted); }
.cw-member-chat .cw-chat-transcript { background:var(--surface); min-height:0; }
.cw-member-chat .cw-chat-composer { z-index:1; isolation:isolate; padding:8px 10px 2px; gap:3px; background:var(--surface); }
.cw-member-chat .cw-chat-input-shell { display:grid; grid-template-columns:44px minmax(0,1fr) 44px 44px; align-items:end; gap:0; border-radius:24px; }
.cw-member-chat .cw-composer-content { grid-column:2; grid-row:1; padding:0; max-height:min(280px,40dvh); }
.cw-member-chat .cw-chat-input { min-height:44px; font-size:1rem; padding:10px 4px; }
.cw-member-chat .cw-composer-toolbar,.cw-member-chat .cw-composer-tools { display:contents; }
.cw-member-chat .member-composer-more { grid-column:1; grid-row:1; width:44px; height:44px; border:0; border-radius:50%; background:transparent; color:var(--muted); font:inherit; font-size:24px; cursor:pointer; }
.cw-member-chat .cw-voice-btn { grid-column:3; grid-row:1; align-self:end; }
.cw-member-chat .cw-send-btn { grid-column:4; grid-row:1; align-self:end; }
.cw-member-chat .cw-send-status { grid-column:1 / -1; padding-inline:12px; }
.cw-member-chat .cw-send-status:empty { display:none; }
.cw-member-chat .cw-chat-composer-footer { margin:0; padding:3px 0; min-height:24px; }
.cw-member-chat .cw-bubble-action::before { background:transparent; }
.cw-member-chat .cw-bubble-action:hover::before,.cw-member-chat .cw-bubble-action:focus-visible::before { background:var(--surface-soft); }
.cw-member-chat .member-composer-menu { position:absolute; bottom:100%; left:10px; z-index:20; padding:6px; display:grid; gap:4px; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:0 6px 24px color-mix(in srgb,var(--ink) 12%,transparent); }
.cw-member-chat .member-composer-menu .cw-icon-btn { grid-area:auto; display:flex; justify-content:flex-start; gap:8px; width:auto; min-width:44px; min-height:44px; padding:8px 12px; border-radius:8px; color:var(--ink); font:inherit; }
.cw-member-chat .member-composer-menu .cw-icon-btn > span:last-child { white-space:nowrap; }
/* Keep command touch targets inside the composer. The floating picker could
   dismiss without activating on the installed iPhone PWA; retain its original
   buttons/listeners and avoid an out-of-bounds overlay hit-test dependency. */
.cw-member-chat .cw-chat-composer:has(.cw-command-menu:not(.cw-hidden)) { grid-template-areas:"commands" "input" "footer"; }
.cw-member-chat .cw-command-menu { position:static; grid-area:commands; max-height:min(240px,35dvh); min-width:0; }
.cw-member-chat .cw-command-btn { min-height:44px; font:inherit; }
.cw-member-chat .cw-chat-input-shell:has(.cw-voice-draft:not(.cw-hidden),.cw-composer-reply:not(.cw-hidden),.cw-pending-uploads:not(.cw-hidden)) { grid-template-columns:44px minmax(0,1fr) 44px 44px; }
.cw-member-chat .cw-chat-input-shell:has(.cw-voice-draft:not(.cw-hidden),.cw-composer-reply:not(.cw-hidden),.cw-pending-uploads:not(.cw-hidden)) .cw-composer-content { grid-column:1 / -1; grid-row:1; padding:8px 10px 0; }
.cw-member-chat .cw-chat-input-shell:has(.cw-voice-draft:not(.cw-hidden),.cw-composer-reply:not(.cw-hidden),.cw-pending-uploads:not(.cw-hidden)) :is(.member-composer-more,.cw-voice-btn,.cw-send-btn) { grid-row:2; }
/* A completed send is announced without reserving another permanent UI row. */
.cw-member-chat .cw-send-status[data-phase="sent"] { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.cw-member-chat .cw-chat-input-shell:has(.cw-voice-btn:not(.cw-hidden)):has(.cw-send-btn:disabled:not(.is-sending)) { grid-template-columns:44px minmax(0,1fr) 44px; }
.cw-member-chat .cw-chat-input-shell:has(.cw-voice-btn:not(.cw-hidden)) .cw-send-btn:disabled:not(.is-sending) { display:none; }
.cw-member-chat .cw-chat-input-shell:has(.cw-voice-btn.cw-hidden) .cw-composer-content { grid-column:2 / 4; }
.cw-member-chat .cw-chat-input-shell:has(.cw-voice-draft:not(.cw-hidden),.cw-composer-reply:not(.cw-hidden),.cw-pending-uploads:not(.cw-hidden)) .cw-composer-content { grid-column:1 / -1; }
