/* ============================================
   REAL-TIME COLLABORATION — presence pill, live cursors, site-tab dots,
   history panel. Palette rides the existing ds tokens where they exist.
   ============================================ */

/* Topbar presence pill */
.collab-presence {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px 2px 4px; border-radius: 999px;
  background: rgba(47, 125, 246, .12); border: 1px solid rgba(47, 125, 246, .35);
  vertical-align: middle;
}
.collab-live-badge {
  font-size: 9px; font-weight: 700; letter-spacing: .08em; color: #2f7df6;
  padding: 0 4px;
}
.collab-presence.collab-degraded { filter: grayscale(1); opacity: .6; }
.collab-presence.collab-degraded .collab-live-badge::after { content: " · reconnecting"; font-weight: 500; }
.collab-dot {
  width: 18px; height: 18px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff; font-size: 8px; font-weight: 700;
  border: 1.5px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.15);
}
.collab-more { font-size: 10px; color: var(--text-dim, #888); }

/* Live cursors on the map (non-interactive overlay pane) */
.collab-cursor {
  position: absolute; top: 0; left: 0;
  transform: translate(-4000px, -4000px);
  transition: transform 140ms linear;
  pointer-events: none; z-index: 95; /* above notes (90) on the overlay ladder */
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.4));
}
.collab-cursor-name {
  position: relative; top: -4px; left: 12px;
  padding: 1px 6px; border-radius: 3px;
  color: #fff; font-size: 10px; font-weight: 600; white-space: nowrap;
}

/* Per-site presence dots on the site tabs */
.collab-tab-dots { display: inline-flex; gap: 2px; margin-left: 5px; vertical-align: middle; }
.collab-tab-dot {
  width: 7px; height: 7px; border-radius: 50%;
  border: 1px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.2);
}
