.request-avatar { width: 48px; height: 48px; flex-shrink: 0; display: grid; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); }
.request-avatar svg { width: 24px; height: 24px; }
.request-avatar.large { width: 72px; height: 72px; margin: 0 auto 24px; }
.request-avatar.large svg { width: 32px; height: 32px; }
.request-card { grid-template-columns: 48px minmax(0, 1fr) auto; align-items: start; }
.request-card > div { min-width: 0; }
.request-card p { white-space: normal; }
.request-card small, .request-direction { color: var(--muted); font-size: 0.75rem; line-height: 1.6; }
.request-direction { padding-top: 4px; }
.request-pane { min-height: 0; }
.request-pane .conversation-heading { font-size: 1.125rem; margin: 0; }
.request-pane .conversation-header > .text-button { margin-left: auto; min-height: 44px; min-width: 44px; }
.request-detail { flex: 1; overflow: auto; align-content: center; text-align: center; padding: 40px 28px; }
.request-detail > * { max-width: 400px; margin-left: auto; margin-right: auto; }
.request-detail h2 { font-size: 1.6rem; line-height: 1.4; margin-bottom: 16px; }
.request-detail p { color: var(--muted); line-height: 1.7; word-break: keep-all; overflow-wrap: anywhere; }
.request-detail .eyebrow { font-size: 0.875rem; margin-bottom: 12px; }
.request-detail .request-expiry { font-size: 0.8125rem; margin: 20px auto 28px; }
.request-buttons { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.request-buttons .text-button { min-height: 44px; }
.request-detail small { display: block; color: var(--muted); font-size: 0.8125rem; line-height: 1.7; margin-top: 20px; }
.chat-ending:has(.request-offer) { display: block; max-height: 70%; overflow: auto; padding: 24px; }
.request-offer { margin-top: 24px; }
.request-offer h2 { font-size: 1.25rem; margin: 0 0 8px; line-height: 1.45; }
.request-offer .button { display: flex; width: 100%; margin-top: 16px; white-space: normal; }
.request-offer small { display: block; color: var(--muted); font-size: 0.75rem; line-height: 1.7; margin-top: 10px; }
.chat-ending:has(.request-offer) > .button { display: flex; width: 100%; margin-top: 16px; white-space: normal; }
.empty-ended .chat-ending:has(.request-offer) { max-height: none; }
@media (max-width: 640px) {
  .request-detail { padding: 28px 20px; }
  .request-detail h2 { font-size: 1.35rem; }
  .chat-ending:has(.request-offer) { padding: 20px 16px; max-height: 78%; }
  .request-card { padding: 16px 12px; }
}
