.message-thread{min-width:0;display:flex;flex-direction:column;gap:8px;padding:4px 0 8px}
.message-bubble{max-width:82%;min-width:0;padding:9px 11px;border-radius:16px;display:grid;gap:4px;font-size:14px;line-height:1.3;overflow-wrap:anywhere;touch-action:manipulation}
.message-bubble--incoming{align-self:flex-start;background:var(--white);border:1px solid var(--border);border-bottom-left-radius:5px}
.message-bubble--outgoing{align-self:flex-end;background:var(--button-secondary);border-bottom-right-radius:5px}
.message-bubble--system{align-self:center;max-width:92%;background:transparent;color:var(--text-secondary);text-align:center;font-size:12px}
.message-bubble--deleted{color:var(--text-secondary);font-style:italic}
.message-bubble__meta{justify-self:end;display:inline-flex;align-items:center;gap:4px;min-height:12px}
.message-bubble__time,.message-bubble__edited{font-size:10px;color:var(--text-secondary)}
.message-bubble__status{display:inline-flex;align-items:center;min-width:10px;font-size:11px;line-height:1;font-weight:700;color:var(--text-secondary);white-space:nowrap}
.message-bubble__status--sent{letter-spacing:0}
.message-bubble__status--delivered{gap:0;color:var(--text-secondary)}
.message-bubble__status--read{gap:0}
.message-bubble__status-tick{display:inline-block;margin-left:-1px}
.message-bubble__status-tick:first-child{margin-left:0}
.message-bubble__status-tick--read-primary{color:#2f8f57}
.message-bubble__status-tick--read-secondary{color:#d0a100}
.message-bubble__status--failed{letter-spacing:0}
.message-bubble__attachments{display:grid;gap:6px}
.message-bubble__reply{display:grid;gap:2px;border-left:2px solid currentColor;padding:4px 7px;font-size:11px;opacity:.72}
.message-bubble__reply strong{font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.message-bubble__reply span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.message-bubble__forwarded{font-size:10px;color:var(--text-secondary)}
.message-bubble__reactions{display:flex;flex-wrap:wrap;gap:4px}
.message-bubble__reaction{display:inline-flex;align-items:center;min-height:24px;padding:2px 7px;border:1px solid var(--border);border-radius:12px;background:var(--white);font-size:12px;font-style:normal}
.message-poll{display:grid;gap:5px;margin-top:2px}
.message-poll__option{width:100%;min-height:38px;border:1px solid var(--border);border-radius:10px;background:var(--white);padding:7px 9px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font:inherit;color:inherit}
.message-poll__option strong{font-size:12px}
.message-attachment{display:block;max-width:100%;overflow:hidden;border-radius:12px;background:var(--surface-soft)}
.message-attachment--image img{display:block;width:100%;max-height:280px;object-fit:cover}
.message-attachment--video{width:100%;max-height:280px;background:#000}
.message-attachment--file{min-height:54px;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--border);background:var(--white);color:var(--text);text-decoration:none}
.message-attachment--file strong{font-size:12px}
.message-attachment--file span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.message-composer{position:fixed;z-index:19;left:50%;bottom:calc(var(--nav-height) + 8px + env(safe-area-inset-bottom));width:min(calc(100% - (var(--page-x) * 2)),calc(var(--app-max-width) - (var(--page-x) * 2)));transform:translateX(-50%);display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:8px;align-items:end;padding:8px 0;background:linear-gradient(180deg,rgba(245,245,243,0),var(--app-bg) 20%)}
.message-composer--with-attachments{grid-template-columns:44px minmax(0,1fr) 46px}
.message-composer__reply{grid-column:1/-1;min-height:34px;border:1px solid var(--border);border-radius:10px;background:var(--white);padding:6px 8px;display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:6px;align-items:center;font-size:11px}
.message-composer__reply span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.message-composer__reply-close{width:28px;height:28px;border:0;background:transparent;font:inherit;font-size:20px;line-height:1}
.message-composer__input{box-sizing:border-box;width:100%;min-width:0;height:auto;min-height:44px;max-height:116px;overflow-y:hidden;resize:none;border:1px solid var(--border);border-radius:18px;padding:11px 13px;background:var(--white);font:inherit;line-height:1.25}
.message-composer__attach{width:44px;height:44px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--button-secondary);color:var(--text);font:inherit;font-size:21px}
.message-composer .ui-button.message-composer__send{border-radius:50%;font-size:18px}
.message-composer__attachments{grid-column:1/-1;display:flex;gap:6px;min-width:0;overflow-x:auto}
.message-composer__attachment-chip{flex:0 0 auto;max-width:150px;border:1px solid var(--border);border-radius:10px;padding:5px 8px;background:var(--white);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:360px){.message-bubble{max-width:88%}}

.v2-app .message-composer{bottom:env(safe-area-inset-bottom);width:min(calc(100% - 36px),calc(var(--app-max-width) - 36px));background:linear-gradient(180deg,rgba(255,255,255,0),#fff 24%)}
.v2-app--chat .v2-z,.v2-workspace-surface--chat{padding-bottom:92px}
.booking-account--account .message-bubble{border-radius:var(--radius-control)}
.booking-account--account .message-bubble--incoming{border-bottom-left-radius:max(4px,calc(var(--radius-control) / 3))}
.booking-account--account .message-bubble--outgoing{border-bottom-right-radius:max(4px,calc(var(--radius-control) / 3))}
.booking-account--account.booking-shape--cut .message-bubble,.booking-account--account.booking-shape--cut .message-composer__input,.booking-account--account.booking-shape--cut .message-composer__attach{clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}

.message-composer__input:focus,.message-composer__input:focus-visible,.message-composer__attach:focus,.message-composer__attach:focus-visible,.message-composer .ui-button.message-composer__send:focus,.message-composer .ui-button.message-composer__send:focus-visible{outline:none;box-shadow:none}
.message-composer__input:focus,.message-composer__input:focus-visible{border-color:var(--border)}
