button.lfl-profile-trigger {
  display: inline-flex; position: relative; flex: 0 0 auto; align-items: center;
  justify-content: center; padding: 0; margin: 0; min-width: 0; min-height: 0;
  border: 0; border-radius: 50%; background: transparent; color: inherit;
  font: inherit; line-height: 0; vertical-align: middle; cursor: pointer;
}
button.lfl-profile-trigger img { display: block; }
button.lfl-profile-trigger:focus-visible { outline: 2px solid var(--lfl-blue-border, #65b2ff); outline-offset: 3px; }
.lfl-profile-popup {
  display: flex; position: fixed; inset: auto; z-index: 2147483000; gap: 6px;
  width: max-content; max-width: calc(100vw - 16px); box-sizing: border-box;
  margin: 0; padding: 8px; border: 1px solid var(--lfl-border, #535c65); border-radius: 11px;
  background: var(--lfl-surface-soft, #20252a); color: var(--lfl-text, #fff); box-shadow: 0 6px 24px var(--lfl-shadow, #0008);
}
.lfl-profile-popup a {
  display: grid; place-items: center; box-sizing: border-box; width: 40px; height: 40px;
  padding: 0; border: 1px solid transparent; border-radius: 8px;
  color: #fff; font: 800 16px/1 system-ui, sans-serif; text-decoration: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
  transition: filter .14s ease, transform .14s ease;
}
.lfl-profile-popup a:hover { filter: brightness(1.08); transform: translateY(-1px); }
.lfl-profile-popup a:focus-visible { outline: 2px solid var(--lfl-blue-border, #65b2ff); outline-offset: 2px; }

.lfl-profile-popup .lfl-profile-destination--lfl {
  background: #1769aa;
  border-color: #2f82c4;
}
.lfl-profile-popup .lfl-profile-destination--primal {
  background: #00c1fd;
  border-color: #55d7ff;
  color: #062531;
}
.lfl-profile-popup .lfl-profile-destination--amethyst {
  background: #5756a3;
  border-color: #7473bc;
}

.lfl-profile-popup a[aria-disabled="true"] {
  filter: saturate(.35); opacity: .62; cursor: default; transform: none;
}

/* Shared viewer-relative Connect and owner-relative Pulse identity badges. These decorate the same avatar
   triggers across Notes, Media, Networks, Profiles, Voice Room and other LFL
   surfaces. They are presentation only: state comes from verified
   local Connect/Pulse projections, never from a comment/profile self-claim. */
.lfl-profile-badge-host { position: relative !important; overflow: visible !important; }
.lfl-profile-identity-badges { position: absolute; inset: 0; z-index: 4; pointer-events: none; overflow: visible; }
.lfl-profile-identity-badge {
  position: absolute; display: grid; place-items: center;
  width: clamp(11px, 32%, 16px); height: auto; aspect-ratio: 1;
  pointer-events: none; line-height: 0;
}
.lfl-profile-identity-badge svg { display: block; width: 100%; height: 100%; overflow: visible; }
.lfl-profile-identity-badge--pulse { top: -2px; right: -2px; }
.lfl-profile-identity-badge--connect { left: -2px; bottom: -2px; }
