/* The chat stays independent of the replaceable catalogue DOM. */
#jungleChatDock { --chat-dock-viewport: 100dvh; --chat-dock-keyboard: 0px; position: fixed; right: max(22px, env(safe-area-inset-right)); bottom: calc(86px + env(safe-area-inset-bottom)); z-index: 35; color: #183c31; font-family: inherit; pointer-events: none; }
.chat-dock-panel, .chat-dock-bubble { pointer-events: auto; }
#jungleChatDock[hidden], #jungleChatDock [hidden] { display: none !important; }
#jungleChatDock button, #jungleChatDock textarea { font: inherit; }
#jungleChatDock button { cursor: pointer; }
#jungleChatDock button:disabled { cursor: default; opacity: .58; }
#jungleChatDock button:focus-visible, #jungleChatDock textarea:focus-visible { outline: 3px solid #f2bb53; outline-offset: 2px; }
#jungleChatDock svg { width: 22px; height: 22px; flex: 0 0 auto; }
.chat-dock-blocked { visibility: hidden; pointer-events: none; }
.age-pending #jungleChatDock { display: none; }
.chat-card.chat-card-with-mode { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; text-align: left; }
.chat-card-with-mode .chat-card-open { border: 0; padding: 0; background: transparent; display: flex; min-width: 0; align-items: center; gap: 12px; color: inherit; text-align: left; font: inherit; cursor: pointer; }
.chat-card-with-mode .chat-main { min-width: 0; }
.chat-card-mode-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; }
.chat-card-mode-actions button { min-height: 40px; display: flex; align-items: center; gap: 5px; border: 1px solid #d7e2d7; border-radius: 10px; padding: 8px 12px; background: #f3f7ee; color: #376b4d; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.chat-card-mode-actions button:nth-child(2) { background: white; color: #76877b; }
.chat-dock-panel { width: 386px; height: min(584px, calc(var(--chat-dock-viewport) - 116px)); min-height: 240px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #cedcd3; border-radius: 21px; background: #fff; box-shadow: 0 18px 70px #133c3133, 0 3px 12px #133c311a; }
.chat-dock-header { display: flex; align-items: center; gap: 9px; min-height: 73px; padding: 12px 9px 12px 15px; flex: 0 0 auto; background: #153d31; color: #fff; }
.chat-dock-avatar { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 auto; border-radius: 13px; background: #ffffff15; }
.chat-dock-heading { min-width: 0; flex: 1; }
.chat-dock-heading strong { display: block; font-size: 13px; line-height: 1.32; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-dock-heading small { display: block; margin-top: 4px; color: #c6dbd0; font-size: 10px; line-height: 1.3; }
.chat-dock-controls { display: flex; gap: 1px; }
.chat-dock-controls button { border: 0; display: grid; place-items: center; width: 33px; height: 44px; padding: 0; border-radius: 9px; color: #eef7f1; background: transparent; }
.chat-dock-controls button:hover { background: #ffffff18; }
.chat-dock-controls svg { width: 18px !important; height: 18px !important; }
.chat-dock-context { padding: 9px 15px; border-bottom: 1px solid #e2eae3; background: #f1f6ed; font-size: 10px; line-height: 1.5; color: #5a7467; flex: 0 0 auto; }
.chat-dock-scroll { flex: 1; min-height: 55px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: 12px; background: #f7f8f2; scrollbar-width: thin; }
.chat-dock-messages { display: flex; flex-direction: column; gap: 11px; }
.chat-dock-message { align-self: flex-start; max-width: 87%; padding: 10px 12px; border: 1px solid #dce5dd; border-radius: 14px 14px 14px 3px; background: #fff; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.chat-dock-message p { margin: 0; white-space: pre-wrap; }
.chat-dock-message.mine { align-self: flex-end; border-color: #cee2d3; border-radius: 14px 14px 3px 14px; background: #e5f1e5; }
.chat-dock-message time { display: block; margin-top: 6px; color: #6d8375; text-align: right; font-size: 9px; }
.chat-dock-history { display: block; margin: 0 auto 13px; min-height: 34px; padding: 5px 10px; border: 1px solid #dbe5dc; border-radius: 99px; background: #fff; color: #577363; font-size: 10px !important; }
.chat-dock-history-error { margin: 3px 0 12px; color: #9e4b2b; font-size: 11px; line-height: 1.4; }
.chat-dock-empty { margin: auto; padding: 30px 10px; text-align: center; color: #708578; font-size: 12px; line-height: 1.6; }
.chat-dock-composer { border-top: 1px solid #dae6dc; padding: 12px; flex: 0 0 auto; background: #fff; max-height: 58%; overflow-y: auto; }
.chat-dock-text-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.chat-dock-composer textarea { display: block; width: 100%; box-sizing: border-box; min-height: 54px; max-height: 100px; padding: 10px 11px; resize: none; border: 1px solid #d4e1d8; border-radius: 11px; background: #fff; color: #1b3e33; font-size: 12px !important; line-height: 1.4; }
.chat-dock-composer textarea::placeholder { color: #819285; }
.chat-dock-toolbar { display: flex; justify-content: space-between; gap: 5px; align-items: center; margin-top: 7px; }
.chat-dock-tools { display: flex; align-items: center; min-width: 0; }
.chat-dock-tools button { border: none; display: grid; place-items: center; width: 38px; height: 44px; padding: 0; border-radius: 10px; background: #f0f6ef; color: #496e59; margin-right: 4px; }
.chat-dock-tools small { max-width: 83px; padding-left: 3px; font-size: 9px; line-height: 1.35; color: #798c7d; }
.chat-dock-send { display: flex; align-items: center; gap: 7px; padding: 11px 13px; border: none; border-radius: 11px; min-height: 44px; background: #194635; color: #fff; font-weight: 800 !important; font-size: 11px !important; white-space: nowrap; }
.chat-dock-send svg { width: 16px !important; height: 16px !important; }
.chat-dock-error { padding: 9px; border-radius: 9px; margin: 0 0 9px; color: #934225; background: #fff0e8; font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }
.chat-dock-selected { display: flex; flex-direction: column; gap: 5px; }
.chat-dock-selected:not(:empty) { margin-bottom: 9px; }
.chat-dock-selected-file { display: flex; gap: 8px; align-items: center; background: #f2f6ef; border: 1px solid #e0e8dd; border-radius: 10px; padding: 5px 5px 5px 6px; min-height: 45px; }
.chat-dock-selected-file img { width: 42px; height: 42px; object-fit: cover; border-radius: 7px; }
.chat-dock-selected-file > div { flex: 1; min-width: 0; }
.chat-dock-selected-file strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; line-height: 1.5; }
.chat-dock-selected-file small { color: #75877a; display: block; font-size: 9px; }
.chat-dock-selected-file > button { display: grid; place-items: center; width: 35px; height: 38px; background: none; border: none; color: #728475; padding: 0; flex: 0 0 auto; }
.chat-dock-selected-file > button svg { width: 16px !important; height: 16px !important; }
.chat-dock-selected-file progress { display: block; width: 100%; height: 4px; margin-top: 4px; accent-color: #316b4b; }
.chat-dock-file-symbol { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; color: #73997d; }
.chat-dock-closed { padding: 15px; font-size: 12px; text-align: center; background: #fff; border-top: 1px solid #dbe5dc; color: #738476; }
.chat-dock-attachment { border: 1px solid #d3ded3; border-radius: 10px; overflow: hidden; margin-top: 7px; background: #ffffff99; }
.chat-dock-attachment > span { display: none; }
.chat-dock-attachment button { width: 100%; display: flex; align-items: center; gap: 7px; justify-content: space-between; border: 0; min-height: 44px; text-align: left; padding: 9px; color: #365d46; background: transparent; }
.chat-dock-attachment button > span { display: block; min-width: 0; }
.chat-dock-attachment strong { display: block; font-size: 10px; line-height: 1.3; overflow-wrap: anywhere; }
.chat-dock-attachment small { display: block; color: #768979; font-size: 9px; margin-top: 3px; }
.chat-dock-attachment button svg { width: 17px !important; height: 17px !important; }
.chat-dock-photo-view { max-width: 220px; padding: 8px; font-size: 10px; color: #819483; }
.chat-dock-photo-view:has(img) { padding: 0; }
.chat-dock-photo-view img { width: 100%; max-height: 230px; object-fit: contain; display: block; background: #edf1e8; }
.chat-dock-bubble { display: none; position: relative; align-items: center; gap: 9px; min-height: 54px; max-width: 260px; padding: 13px 18px; border: 1px solid #ffffff80; border-radius: 18px; color: #fff; background: #194d38; box-shadow: 0 8px 34px #123e3133; }
.chat-dock-bubble-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 800; }
.chat-dock-unread { position: absolute; top: -7px; right: -6px; border: 3px solid #f8faf3; border-radius: 99px; display: grid; place-items: center; min-width: 25px; height: 25px; padding: 0 5px; background: #f2ae42; color: #513918; font-size: 11px; font-weight: 900; box-sizing: border-box; }
#jungleChatDock[data-mode="bubble"] .chat-dock-panel { display: none; }
#jungleChatDock[data-mode="bubble"] .chat-dock-bubble { display: flex; }
#jungleChatDock[data-mode="full"] { inset: 86px max(20px, calc((100vw - 1000px) / 2)) calc(86px + env(safe-area-inset-bottom)); }
#jungleChatDock[data-mode="full"] .chat-dock-panel { width: 100%; height: 100%; }
#jungleChatDock[data-mode="full"] .chat-dock-heading strong { font-size: 17px; }
#jungleChatDock[data-mode="full"] .chat-dock-message { max-width: 73%; font-size: 14px; }
#jungleChatDock[data-mode="full"] .chat-dock-scroll { padding: 22px; }
#jungleChatDock[data-mode="full"] .chat-dock-composer { padding: 16px; }
#jungleChatDock[data-mode="full"] .chat-dock-composer textarea { font-size: 14px !important; }
@media (max-width: 600px) {
  #jungleChatDock { left: max(8px, env(safe-area-inset-left)); right: max(8px, env(safe-area-inset-right)); bottom: calc(79px + env(safe-area-inset-bottom)); }
  .chat-dock-panel { width: 100%; max-width: 386px; margin-left: auto; height: min(600px, 76dvh, calc(var(--chat-dock-viewport) - 95px)); border-radius: 18px; }
  .chat-dock-header { padding-left: 10px; gap: 7px; min-height: 65px; }
  .chat-dock-avatar { width: 31px; height: 35px; }
  .chat-dock-heading strong { font-size: 12px; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .chat-dock-heading small { font-size: 9px; }
  .chat-dock-controls button { width: 44px; height: 44px; }
  .chat-dock-context { font-size: 10px; padding: 8px 12px; }
  .chat-dock-composer { padding: 10px; }
  .chat-dock-composer textarea { font-size: 16px !important; }
  .chat-dock-tools button { width: 44px; margin-right: 3px; }
  .chat-dock-tools small { max-width: 66px; font-size: 8px; }
  .chat-dock-send { padding: 10px 11px; }
  .chat-dock-bubble { max-width: 230px; padding: 11px 16px; min-height: 50px; margin-left: auto; }
  #jungleChatDock[data-mode="full"] { inset: max(8px, env(safe-area-inset-top)) 8px calc(79px + env(safe-area-inset-bottom)); }
  #jungleChatDock[data-mode="full"] .chat-dock-scroll { padding: 12px; }
  #jungleChatDock[data-mode="full"] .chat-dock-message { max-width: 87%; font-size: 12px; }
  #jungleChatDock.chat-dock-keyboard-open { bottom: var(--chat-dock-keyboard); }
  #jungleChatDock.chat-dock-keyboard-open .chat-dock-panel { height: min(600px, calc(var(--chat-dock-viewport) - 20px)); }
}
@media (max-width: 360px) { .chat-dock-tools small { display: none; } }
@media (prefers-reduced-motion: reduce) { #jungleChatDock * { scroll-behavior: auto !important; } }

/* Only the authenticated customer's server-confirmed in-person age record. */
.profile-own-name { display: inline-flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.profile-banner .profile-own-name { justify-content: flex-start; }
.profile-age-verified { display: inline-flex; flex: none; align-items: center; gap: 3px; vertical-align: middle; white-space: nowrap; font-size: 11px; font-weight: 800; line-height: 1.4; color: #176046; }
.profile-age-verified svg { width: 18px; height: 18px; overflow: visible; }
.profile-age-verified circle { fill: #176046; stroke: none; }
.profile-age-verified path { fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
