/* ==================== FLOATING ROUND CHAT BUTTON ====================
   This file overrides the old rectangular minimized chat bar.
   Minimized: a clean round button.
   Expanded: full chat panel.
==================================================================== */

:root {
  --chat-button-size: clamp(56px, 7.2vw, 68px);
  --chat-panel-width: min(360px, calc(100vw - 24px));
  --chat-panel-height: min(460px, calc(100dvh - 90px));
}

#chatBox {
  right: calc(18px + env(safe-area-inset-right, 0px)) !important;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important;
  width: var(--chat-panel-width) !important;
  max-height: var(--chat-panel-height) !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  box-shadow: 0 14px 44px rgba(0, 0, 0, 0.35) !important;
  transform-origin: bottom right;
}

/* Round button state */
#chatBox.minimized {
  width: var(--chat-button-size) !important;
  height: var(--chat-button-size) !important;
  max-height: var(--chat-button-size) !important;
  min-height: var(--chat-button-size) !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.32) !important;
  cursor: pointer;
  overflow: visible !important;
}

#chatBox.minimized:hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.38) !important;
}

#chatBox.minimized #chatHeader {
  width: var(--chat-button-size) !important;
  height: var(--chat-button-size) !important;
  padding: 0 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg, #1e88e5, #0d47a1) !important;
  font-size: 0 !important;
  box-shadow: inset 0 2px 5px rgba(255, 255, 255, 0.28);
}

#chatBox.minimized #chatHeader::before {
  content: '💬';
  font-size: calc(var(--chat-button-size) * 0.46);
  line-height: 1;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.25));
}

#chatBox.minimized #chatToggle,
#chatBox.minimized #chatMessages,
#chatBox.minimized #chatInputArea {
  display: none !important;
}

/* New-message badge on round button */
#chatBox.minimized.has-new-message #chatHeader {
  animation: floating-chat-pulse 1.05s infinite;
}

#chatBox.minimized.has-new-message #chatHeader::after {
  content: '' !important;
  position: absolute;
  top: 5px;
  right: 5px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #ff1744;
  border: 3px solid #fff;
  transform: none !important;
  animation: none !important;
}

@keyframes floating-chat-pulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(33, 150, 243, 0.55);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 0 10px rgba(33, 150, 243, 0);
  }
}

/* Expanded panel state */
#chatBox:not(.minimized) {
  display: flex !important;
  flex-direction: column !important;
  background: rgba(255, 255, 255, 0.98) !important;
  animation: chat-panel-open 0.18s ease-out;
}

@keyframes chat-panel-open {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

#chatBox:not(.minimized) #chatHeader {
  min-height: 48px;
  border-radius: 22px 22px 0 0 !important;
  padding: 12px 15px !important;
  font-size: 1rem !important;
}

#chatBox:not(.minimized) #chatToggle {
  display: flex !important;
  font-size: 1.1rem !important;
  line-height: 1 !important;
}

#chatBox:not(.minimized) #chatMessages {
  max-height: min(330px, calc(100dvh - 210px)) !important;
  min-height: 180px !important;
}

/* Mobile landscape: keep panel compact, button still round */
@media (max-width: 900px), (max-height: 560px) {
  :root {
    --chat-button-size: 58px;
    --chat-panel-width: min(320px, calc(100vw - 20px));
    --chat-panel-height: min(360px, calc(100dvh - 74px));
  }

  #chatBox {
    right: calc(10px + env(safe-area-inset-right, 0px)) !important;
    bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
  }

  #chatBox:not(.minimized) #chatHeader {
    padding: 9px 12px !important;
    min-height: 42px;
  }

  #chatBox:not(.minimized) #chatMessages {
    max-height: min(230px, calc(100dvh - 170px)) !important;
    min-height: 120px !important;
  }
}

/* Very small phones */
@media (max-width: 480px) {
  :root {
    --chat-button-size: 56px;
    --chat-panel-width: calc(100vw - 20px);
  }

  #chatBox:not(.minimized) {
    left: 10px !important;
    right: 10px !important;
    width: calc(100vw - 20px) !important;
  }
}


/* ==================== GLASS / TRANSPARENT CHAT PANEL ==================== */
#chatBox:not(.minimized) {
  background: linear-gradient(180deg, rgba(255,255,255,0.24), rgba(255,255,255,0.14)) !important;
  backdrop-filter: blur(14px) saturate(135%);
  -webkit-backdrop-filter: blur(14px) saturate(135%);
  border: 1px solid rgba(255,255,255,0.38) !important;
  box-shadow: 0 18px 40px rgba(0,0,0,0.22) !important;
}

#chatBox:not(.minimized) #chatHeader {
  background: linear-gradient(135deg, rgba(30, 136, 229, 0.88), rgba(13, 71, 161, 0.76)) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.22);
}

#chatBox:not(.minimized) #chatMessages {
  background: rgba(255,255,255,0.10) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#chatBox:not(.minimized) #chatInputArea {
  background: rgba(255,255,255,0.10) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-top: 1px solid rgba(255,255,255,0.20);
}

#chatBox:not(.minimized) .chat-message {
  background: rgba(255,255,255,0.24) !important;
  border: 1px solid rgba(255,255,255,0.28);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}

#chatBox:not(.minimized) .chat-message.my-message {
  background: rgba(76,175,80,0.18) !important;
  border-left: 3px solid rgba(76,175,80,0.95);
}

#chatBox:not(.minimized) .chat-message.other-message {
  background: rgba(33,150,243,0.16) !important;
  border-left: 3px solid rgba(33,150,243,0.95);
}

#chatBox:not(.minimized) .chat-sender,
#chatBox:not(.minimized) .chat-text,
#chatBox:not(.minimized) .chat-timestamp {
  text-shadow: 0 1px 1px rgba(255,255,255,0.25);
}

#chatBox:not(.minimized) .chat-text {
  color: #1f2937 !important;
}

#chatBox:not(.minimized) #chatInput {
  background: rgba(255,255,255,0.58) !important;
  border: 1px solid rgba(255,255,255,0.55) !important;
  box-shadow: inset 0 1px 2px rgba(255,255,255,0.3);
}

#chatBox:not(.minimized) #chatInput::placeholder {
  color: rgba(55,65,81,0.75);
}

#chatBox:not(.minimized) #sendChatBtn {
  box-shadow: 0 8px 20px rgba(25,118,210,0.30);
}


/* ==================== ULTRA TRANSPARENT CHAT PANEL ====================
   Stronger transparency: the map remains visible behind the chat.
==================================================================== */
#chatBox:not(.minimized) {
  background: rgba(255, 255, 255, 0.045) !important;
  backdrop-filter: blur(4px) saturate(115%) !important;
  -webkit-backdrop-filter: blur(4px) saturate(115%) !important;
  border: 1px solid rgba(255, 255, 255, 0.24) !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16) !important;
}

#chatBox:not(.minimized) #chatHeader {
  background: rgba(25, 118, 210, 0.58) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  border-bottom: 1px solid rgba(255,255,255,0.18) !important;
}

#chatBox:not(.minimized) #chatMessages {
  background: rgba(255, 255, 255, 0.025) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#chatBox:not(.minimized) #chatInputArea {
  background: rgba(255, 255, 255, 0.035) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-top: 1px solid rgba(255,255,255,0.14) !important;
}

#chatBox:not(.minimized) .chat-message {
  background: rgba(255,255,255,0.16) !important;
  border: 1px solid rgba(255,255,255,0.24) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06) !important;
}

#chatBox:not(.minimized) .chat-message.my-message {
  background: rgba(76, 175, 80, 0.12) !important;
}

#chatBox:not(.minimized) .chat-message.other-message {
  background: rgba(33, 150, 243, 0.10) !important;
}

#chatBox:not(.minimized) #chatInput {
  background: rgba(255,255,255,0.34) !important;
  border: 1px solid rgba(255,255,255,0.38) !important;
  color: #111827 !important;
}

#chatBox:not(.minimized) #chatInput::placeholder {
  color: rgba(31,41,55,0.62) !important;
}

/* Make the message list lower-profile so it doesn't look like a white block */
#chatBox:not(.minimized) #chatMessages::-webkit-scrollbar-track {
  background: rgba(255,255,255,0.05) !important;
}

#chatBox:not(.minimized) #chatMessages::-webkit-scrollbar-thumb {
  background: rgba(25,118,210,0.45) !important;
}


/* ==================== SMART CHAT DOCK ====================
   Chat button is positioned by JavaScript outside the board whenever possible.
==================================================================== */
#chatBox.smart-positioned {
  left: var(--chat-left, auto) !important;
  top: var(--chat-top, auto) !important;
  right: auto !important;
  bottom: auto !important;
}

/* Keep the round button compact when it must sit near the board */
#chatBox.minimized.smart-positioned {
  z-index: 9995 !important;
}

/* Opened panel should be small enough to avoid covering too much space */
#chatBox:not(.minimized).smart-positioned {
  width: min(300px, calc(100vw - 24px)) !important;
  max-height: min(330px, calc(100dvh - 90px)) !important;
}

/* When screen is very tight, make chat behave like a slim bottom sheet */
@media (max-width: 700px), (max-height: 520px) {
  #chatBox:not(.minimized).smart-positioned {
    width: min(300px, calc(100vw - 20px)) !important;
    max-height: min(285px, calc(100dvh - 70px)) !important;
  }
}
