/* A familiar window outside; a modern, human conversation inside. */
body[data-page='home'] .home-conversation { width: min(680px, calc(100% - 24px)); max-width: 680px; padding-top: 24px; }
.messenger { position: relative; border-radius: 6px; overflow: hidden; }
.messenger-site-header { min-height: 54px; border-radius: 3px 3px 0 0; }
body[data-page='home'] .messenger-person { padding: 12px 16px; }
.chat-connection { margin-left: auto; font-size: .8125rem; color: var(--muted); text-align: right; }
.chat-connection[data-state='connected'] { color: var(--title); }
#chat-scroll.messenger-paper { height: clamp(280px, 43dvh, 400px); overflow-y: auto; overscroll-behavior: contain; scroll-behavior: auto; margin: 0 10px; border: 1px solid var(--line); border-radius: 5px; scrollbar-gutter: stable; }
.messenger-hero { padding: 18px 20px; }
.messenger-hero h1 { font-size: clamp(1.25rem, 3vw, 1.55rem); }
.messenger-hero .messenger-pitch { margin: 10px 0; font-size: .9375rem; line-height: 1.5; }
.home-offer { padding: 7px 0; }
.home-offer p { font-size: .875rem; margin: 1px 0; }
.home-offer .offer-details { font-size: .8125rem; min-height: 28px; }
.messenger-hero .bench-receipt { font-size: .8125rem; line-height: 1.5; margin-top: 8px; }
#chat-log.chat-log { max-height: none; overflow: visible; padding: 14px; display: flex; flex-direction: column; gap: 12px; scrollbar-gutter: auto; }
#chat-log:empty { display: none; }
.chat-bubble { max-width: 86%; padding: 11px 14px; border: 1px solid var(--line); border-radius: 14px; overflow-wrap: anywhere; }
.chat-bubble.from-visitor { align-self: flex-end; background: var(--grass); color: var(--ink); border-bottom-right-radius: 4px; }
.chat-bubble.from-ethan { align-self: flex-start; background: var(--platinum); border-left: 3px solid var(--blue); border-bottom-left-radius: 4px; }
.chat-message-meta { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 12px; font-size: .75rem; line-height: 1.4; color: var(--ink); }
.chat-message-meta time { font-weight: 400; }
.chat-bubble p { margin: 5px 0 0; font-size: 1rem; line-height: 1.5; white-space: pre-wrap; }
.chat-bubble[data-status='failed'], .chat-bubble[data-status='uncertain'] { border-color: var(--violet); }
body[data-page='home'] .messenger-compose { padding: 12px 16px; background: var(--soft); }
.chat-composer-row { display: flex; gap: 10px; align-items: flex-end; }
body[data-page='home'] .messenger-compose textarea { min-height: 50px; max-height: 130px; resize: none; border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 16px; }
.chat-composer-row .button { min-width: 78px; min-height: 50px; border-radius: 7px; box-shadow: none; border: 1px solid var(--line); padding: 10px 16px; }
body[data-page='home'] .messenger-notice { padding: 8px 0 0; font-size: .8125rem; }
.messenger-feedback { font-size: .875rem; }
.chat-unavailable { font-size: .875rem; margin: 8px 0 0; }
.chat-unavailable a { text-decoration: underline; color: var(--violet); }
.chat-new-messages { position: absolute; right: 30px; top: calc(54px + 68px + clamp(280px, 43dvh, 400px) - 45px); padding: 8px 14px; min-height: 38px; background: var(--title); color: var(--platinum); border: 1px solid var(--platinum); border-radius: 20px; font: 700 .875rem/1.4 var(--sans); box-shadow: 0 2px 6px #18251d30; }
body[data-page='home'] .messenger-statusbar { display: flex; justify-content: flex-start; gap: 4px 16px; padding: 2px 14px; font-size: .75rem; border: 0; border-top: 1px solid var(--line); }
.messenger-statusbar > span { margin-right: auto; }
.messenger-statusbar a { font-size: .8125rem; }
@media (max-width: 600px) {
  body[data-page='home'] .home-conversation { width: calc(100% - 12px); padding-top: 6px; }
  body[data-page='home'] .messenger-person { padding: 10px; gap: 9px; }
  .chat-connection { max-width: 90px; font-size: .75rem; }
  #chat-scroll.messenger-paper { margin-inline: 5px; }
  .messenger-hero { padding: 14px; }
  body[data-page='home'] .messenger-compose { padding: 10px; }
  .chat-composer-row { gap: 7px; }
  .chat-composer-row .button { min-width: 64px; padding-inline: 10px; }
  .chat-bubble { max-width: 92%; }
  .messenger-statusbar > span { flex-basis: 100%; padding-top: 5px; }
}

.chat-connection[data-state=online]::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #8fe13d; border: 1px solid #153c2b; margin-right: 6px; }
.chat-connection { max-width: 180px; }

/* The phone viewport is the window; only the conversation scrolls. */
@media (max-width: 800px), (max-height: 500px) and (pointer: coarse) {
  body[data-page='home'] { position: fixed; inset: auto 0 auto; top: var(--chat-viewport-top, 0px); width: 100%; height: var(--chat-viewport-height, 100dvh); min-height: 0; overflow: hidden; display: flex; flex-direction: column; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
  body[data-page='home'] #main { flex: 1; min-height: 0; display: flex; }
  body[data-page='home'] .home-conversation { flex: 1; width: 100%; max-width: 680px; min-height: 0; padding: 4px; margin: 0 auto; display: flex; flex-direction: column; gap: 0; }
  body[data-page='home'] .messenger { flex: 1; min-height: 0; display: flex; flex-direction: column; margin: 0; padding: 3px; box-shadow: none; }
  body[data-page='home'] .messenger-site-header { flex-shrink: 0; min-height: 46px; padding: 4px 8px; }
  body[data-page='home'] .messenger-site-header .menu-toggle { min-height: 40px; width: 44px; }
  body[data-page='home'] .messenger-navigation { position: absolute; top: 49px; left: 3px; right: 3px; max-height: calc(100% - 55px); overflow-y: auto; z-index: 20; border: 1px solid var(--line); }
  body[data-page='home'] .messenger-person { flex-shrink: 0; padding: 6px 9px; gap: 8px; }
  body[data-page='home'] .messenger-person > div:not(.messenger-avatar) { flex: 1; }
  body[data-page='home'] .messenger-person p { margin: 1px 0 0; font-size: .75rem; }
  body[data-page='home'] .chat-connection { font-size: .75rem; max-width: 120px; flex-shrink: 0; }
  body[data-page='home'] #chat-scroll.messenger-paper { flex: 1; height: auto; min-height: 0; margin: 0 3px; overflow-y: auto; }
  body[data-page='home'] .messenger-hero { padding: 10px 12px; }
  body[data-page='home'] .messenger-hero h1 { font-size: clamp(1.125rem, 4.7vw, 1.375rem); line-height: 1.3; letter-spacing: -.02em; margin: 0; }
  body[data-page='home'] .messenger-hero .messenger-pitch { font-size: .875rem; line-height: 1.4; margin: 8px 0; }
  body[data-page='home'] .punchline-row { margin: 4px 0; }
  body[data-page='home'] .punchline-row .hero-ticker { padding: 0; }
  body[data-page='home'] .punchline-row .hero-ticker-copy { padding: 0; }
  body[data-page='home'] .home-offer { padding: 5px 0; }
  body[data-page='home'] .home-offer p { font-size: .875rem; line-height: 1.4; margin: 2px 0; }
  body[data-page='home'] .home-offer .offer-details { display: none; }
  body[data-page='home'] .messenger-hero .bench-receipt { font-size: .75rem; line-height: 1.35; margin: 6px 0 0; }
  body[data-page='home'] .messenger-compose { flex-shrink: 0; padding: 7px 9px; margin: 0; }
  body[data-page='home'] .messenger-compose label { font-size: .875rem; margin-bottom: 4px; }
  body[data-page='home'] .chat-composer-row { min-width: 0; }
  body[data-page='home'] .messenger-compose textarea { min-width: 0; flex: 1; min-height: 46px; max-height: 80px; padding: 10px; }
  body[data-page='home'] .chat-composer-row .button { min-height: 46px; flex-shrink: 0; }
  body[data-page='home'] .messenger-notice { font-size: .75rem; line-height: 1.4; padding: 5px 0 0; }
  body[data-page='home'] .messenger-feedback:not(:empty) { margin-top: 4px; }
  body[data-page='home'] .chat-unavailable { margin-top: 4px; line-height: 1.3; }
  body[data-page='home'] .messenger-statusbar { display: flex; flex-wrap: nowrap; flex-shrink: 0; padding: 0 9px; gap: 16px; margin-top: 0; }
  body[data-page='home'] .messenger-statusbar > span { display: none; }
  body[data-page='home'] .messenger-statusbar a { min-height: 40px; font-size: .8125rem; }
  body[data-page='home'] .home-savings-link { flex-shrink: 0; margin: 0; }
  body[data-page='home'] .home-savings-link .summon-offer { min-height: 32px; padding: 3px 8px; }
  body[data-page='home'] .chat-footer { display: none; }
  body[data-page='home'] .chat-new-messages { top: auto; bottom: calc(var(--chat-composer-height, 118px) + 48px); right: 18px; }
  body[data-page='home'] .website-offer.utility-panel { bottom: 6px; max-height: calc(var(--chat-viewport-height, 100dvh) - 12px); }
  body[data-page='home'][data-keyboard='open'] .home-savings-link { display: none; }
  body[data-page='home'][data-keyboard='open'] .messenger-person p { display: none; }
  body[data-page='home'][data-keyboard='open'] .messenger-statusbar { display: none; }
  body[data-page='home'][data-keyboard='open'] .chat-new-messages { bottom: calc(var(--chat-composer-height, 118px) + 8px); }
}
