/* Cold-visible Chat launcher and closed panel shell. */

.chat-fab {
  position: fixed; bottom: 24px; right: 24px; z-index: 240;
  width: 56px; height: 56px; border-radius: 50%; border: none;
  background: var(--accent-gradient); color: white;
  cursor: pointer; box-shadow: var(--shadow-lg);
  display: flex; align-items: center; justify-content: center;
  transition: transform 0.2s, box-shadow 0.2s;
}
.chat-fab:hover { transform: scale(1.08); box-shadow: 0 4px 20px rgba(79, 140, 255, 0.4); }
.chat-fab:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.chat-fab svg { width: 26px; height: 26px; fill: none; stroke: white; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chat-fab.hidden { display: none; }
@media (max-width: 480px) {
  .chat-fab { width: 48px; height: 48px; bottom: 16px; right: 16px; }
  .chat-fab svg { width: 22px; height: 22px; }
}
.chat-fab-badge {
  position: absolute; top: -2px; right: -2px;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--red); border: 2px solid var(--bg-card);
  pointer-events: none;
}
.chat-fab-nudge { animation: fabNudge 3s ease-in-out 2s 2; }
@keyframes fabNudge {
  0%, 100% { transform: scale(1); }
  15% { transform: scale(1.12); }
  30% { transform: scale(1); }
  45% { transform: scale(1.08); }
  60% { transform: scale(1); }
}

.chat-backdrop {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.4); z-index: 250; display: none;
  overflow: hidden;
  /* Visual dimming only — pointer-events disabled so the dashboard
     stays interactive while chat is open. Closing the chat is via
     X button, Escape, or the fullscreen-mode toggle. */
  pointer-events: none;
}
.chat-panel {
  position: fixed; top: 0; right: 0; bottom: 0; width: 560px;
  background: var(--bg-secondary); border-left: 1px solid var(--border);
  z-index: 260; display: flex; flex-direction: row;
  transform: translateX(100%); transition: transform 0.3s ease, width 0.25s ease;
  box-shadow: -4px 0 24px rgba(0,0,0,0.4); will-change: transform;
}
.chat-rail-back { display: none; }
