/* Access control: workspace roles, node-scoped access, read-only branches, SSO and SCIM */

/* ---------- Members ---------- */

.bbi-acc-members .bbi-card__head { white-space: nowrap; }

.bbi-acc-pending {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.bbi-card__head small.bbi-acc-pending { color: #d97706; }
.bbi-acc-pending svg { width: 13px; height: 13px; }

.bbi-acc-people { padding: 0 10px; }

.bbi-acc-person {
  display: flex;
  align-items: center;
  gap: 11px;
  height: 50px;
  padding: 0 8px;
  border-radius: 12px;
}

.bbi-acc-person + .bbi-acc-person { margin-top: 2px; }
.bbi-acc-person .bbi-avatar { width: 32px; height: 32px; box-shadow: 0 0 0 2px #fff; }
.bbi-acc-person__who { min-width: 0; }
.bbi-acc-person__who b { display: block; font-size: 14px; font-weight: 800; line-height: 1.25; color: var(--bbi-ink); white-space: nowrap; }
.bbi-acc-person__who small { display: block; font-size: 12px; font-weight: 600; color: var(--bbi-muted); white-space: nowrap; }

.bbi-acc-person.is-focus {
  background: rgba(17, 167, 196, 0.07);
  box-shadow: inset 0 0 0 1px rgba(17, 167, 196, 0.25);
}

.bbi-acc-role {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 26px;
  margin-left: auto;
  padding: 0 8px 0 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.bbi-acc-role svg { width: 12px; height: 12px; opacity: 0.7; }
.bbi-acc-role--admin { background: var(--bbi-navy-deep); color: #fff; }
.bbi-acc-role--member { background: rgba(94, 114, 228, 0.12); color: var(--bbi-indigo); }
.bbi-acc-role--plus { background: #f1ebff; color: #6b46d6; }
.bbi-acc-role--collab { background: #ddf4f7; color: #0b8aa3; }

.bbi-acc-scope {
  margin: 6px 14px 0;
  padding: 10px 12px 12px;
  border-radius: 14px;
  background: var(--bbi-surface-2);
}

.bbi-acc-scope__label {
  display: block;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--bbi-muted);
}

.bbi-acc-picker {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 44px;
  padding: 0 12px 0 8px;
  border-radius: 11px;
  border: 1px solid #dfe4f2;
  background: #fff;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

.bbi-acc-picker > svg { width: 15px; height: 15px; margin-left: auto; color: var(--bbi-muted); }
.bbi-acc-picker.is-open { border-color: rgba(94, 114, 228, 0.6); box-shadow: 0 0 0 3px rgba(94, 114, 228, 0.12); }
.bbi-acc-picker.is-set { border-color: rgba(17, 167, 196, 0.45); }
.bbi-acc-picker.is-pressed { transform: scale(0.98); }

.bbi-acc-picker__value { display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.bbi-acc-picker__value em { font-size: 13px; font-style: normal; font-weight: 700; color: var(--bbi-faint); }
.bbi-acc-picker__value b { font-size: 14px; font-weight: 800; color: var(--bbi-ink); }
.bbi-acc-picker__value small { font-size: 12px; font-weight: 700; color: #0b8aa3; }
.bbi-acc-picker__value b,
.bbi-acc-picker__value small { display: none; }
.bbi-acc-picker.is-set .bbi-acc-picker__value em { display: none; }
.bbi-acc-picker.is-set .bbi-acc-picker__value b,
.bbi-acc-picker.is-set .bbi-acc-picker__value small { display: inline; }

.bbi-acc-ro {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding-left: 2px;
}

.bbi-acc-ro b { font-size: 13px; font-weight: 800; color: var(--bbi-muted); transition: color 0.3s ease; }
.bbi-acc-ro.is-on b { color: var(--bbi-ink); }

.bbi-acc-switch {
  position: relative;
  width: 36px;
  height: 20px;
  flex: none;
  border-radius: 999px;
  background: #d5dbea;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.bbi-acc-switch i {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  transition: left 0.3s var(--bbi-spring);
}

.bbi-acc-switch.is-on { background: var(--bbi-grad-brand); }
.bbi-acc-switch.is-on i { left: 19px; }
.bbi-acc-switch.is-pressed { transform: scale(0.92); }

/* Node picker menu */

.bbi-acc-menu {
  z-index: 20;
  padding: 6px;
  border-radius: 14px;
  box-shadow: var(--bbi-shadow-lg);
}

.bbi-acc-menu__item {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 34px;
  padding: 0 10px;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 700;
  color: var(--bbi-ink);
  transition: background-color 0.2s ease;
}

.bbi-acc-menu__item svg { width: 14px; height: 14px; color: var(--bbi-muted); }
.bbi-acc-menu__item--l1 { padding-left: 26px; }
.bbi-acc-menu__item.is-hover { background: rgba(94, 114, 228, 0.1); color: var(--bbi-indigo); }
.bbi-acc-menu__item.is-hover svg { color: var(--bbi-indigo); }

/* ---------- Tree ---------- */

.bbi-acc-tree { overflow: hidden; }
.bbi-acc-tree .bbi-card__head { white-space: nowrap; }
.bbi-acc-tree__tile { transition: background 0.3s ease; }
.bbi-acc-tree.is-scoped .bbi-acc-tree__tile { background: linear-gradient(135deg, #2dcecc, #11a7c4); }

.bbi-acc-tree__who { display: inline-flex; align-items: center; }
.bbi-acc-tree__sam { display: none; align-items: center; gap: 6px; color: #0b8aa3; }
.bbi-acc-tree__sam .bbi-avatar { width: 20px; height: 20px; box-shadow: none; }
.bbi-acc-tree.is-scoped .bbi-acc-tree__admin { display: none; }
.bbi-acc-tree.is-scoped .bbi-acc-tree__sam { display: inline-flex; }

.bbi-acc-links path { transition: stroke 0.4s ease, opacity 0.4s ease; }
.bbi-acc-tree.is-scoped .bbi-acc-link--hidden { opacity: 0.35; stroke-dasharray: 3 5; }
.bbi-acc-tree.is-scoped .bbi-acc-link--west { stroke: #11a7c4; }

.bbi-acc-node {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px 0 4px;
  border-radius: 10px;
  border: 1px solid var(--bbi-line);
  background: #fff;
  box-shadow: var(--bbi-shadow-sm);
  font-size: 13px;
  font-weight: 800;
  color: var(--bbi-ink);
  white-space: nowrap;
  transition: opacity 0.45s ease, background-color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}

.bbi-acc-node__icon {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 7px;
  background: var(--bbi-surface-2);
  color: var(--bbi-muted);
  transition: background 0.4s ease, color 0.4s ease;
}

.bbi-acc-node__icon svg { width: 13px; height: 13px; }
.bbi-acc-node__name { transition: filter 0.45s ease, color 0.45s ease; }

.bbi-acc-node__n {
  padding-left: 4px;
  font-size: 12px;
  font-weight: 700;
  color: var(--bbi-muted);
  font-variant-numeric: tabular-nums;
}

.bbi-acc-node__lock,
.bbi-acc-node__ro {
  display: none;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 6px;
}

.bbi-acc-node__lock svg,
.bbi-acc-node__ro svg { width: 12px; height: 12px; }
.bbi-acc-node__lock { background: #eef0f6; color: var(--bbi-muted); }
.bbi-acc-node__ro { background: #fff1db; color: #d97706; }

/* Scoped to West: everything outside is hidden from Sam */
.bbi-acc-tree.is-scoped .bbi-acc-node.is-other {
  opacity: 0.75;
  background: var(--bbi-surface-2);
  box-shadow: none;
}

.bbi-acc-tree.is-scoped .is-other .bbi-acc-node__name { filter: blur(4px); color: var(--bbi-muted); }
.bbi-acc-tree.is-scoped .is-other .bbi-acc-node__icon { color: var(--bbi-faint); }
.bbi-acc-tree.is-scoped .is-other .bbi-acc-node__n { display: none; }
.bbi-acc-tree.is-scoped .is-other .bbi-acc-node__lock { display: grid; }

.bbi-acc-tree.is-scoped .bbi-acc-node.is-visible { border-color: rgba(17, 167, 196, 0.4); }
.bbi-acc-tree.is-scoped .is-visible .bbi-acc-node__icon { background: #ddf4f7; color: #0b8aa3; }

.bbi-acc-tree.is-scoped .bbi-acc-node.is-west {
  border-color: #11a7c4;
  box-shadow: 0 0 0 3px rgba(17, 167, 196, 0.14), var(--bbi-shadow-sm);
}

.bbi-acc-tree.is-scoped .is-west .bbi-acc-node__icon { background: linear-gradient(135deg, #2dcecc, #11a7c4); color: #fff; }
.bbi-acc-tree.is-readonly .is-visible .bbi-acc-node__ro { display: grid; }

.bbi-acc-scopetag {
  position: absolute;
  height: 26px;
  background: #ddf4f7;
  color: #0b8aa3;
  opacity: 0;
  transition: opacity 0.35s ease;
}

.bbi-acc-tree.is-scoped .bbi-acc-scopetag { opacity: 1; }
.bbi-acc-scopetag.is-ro { background: #fff1db; color: #d97706; }

/* ---------- Identity strip ---------- */

.bbi-acc-id { padding: 14px 16px; }

.bbi-acc-id__chips { display: flex; align-items: center; gap: 8px; }

.bbi-acc-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 11px 0 9px;
  border-radius: 9px;
  border: 1px solid var(--bbi-line);
  background: #fff;
  font-size: 12px;
  font-weight: 800;
  color: var(--bbi-ink);
  white-space: nowrap;
}

.bbi-acc-chip svg { width: 14px; height: 14px; color: var(--bbi-indigo); }

.bbi-acc-id__slot {
  position: relative;
  height: 46px;
  margin-top: 8px;
}

.bbi-acc-id__ghost {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border: 2px dashed #e1e5f3;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--bbi-faint);
  transition: opacity 0.3s ease;
}

.bbi-acc-event {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  border-radius: 12px;
  background: var(--bbi-good-bg);
  box-shadow: inset 0 0 0 1px var(--bbi-good-edge);
  opacity: 0;
}

.bbi-acc-id__slot.is-on .bbi-acc-id__ghost { opacity: 0; }
.bbi-acc-id__slot.is-on .bbi-acc-event { opacity: 1; }

.bbi-acc-event .bbi-avatar { width: 30px; height: 30px; box-shadow: 0 0 0 2px #fff; }
.bbi-acc-event__who b { font-size: 14px; font-weight: 800; color: var(--bbi-ink); }
.bbi-acc-event__who small { margin-left: 8px; font-size: 12px; font-weight: 700; color: var(--bbi-good); }
.bbi-acc-event__grp { margin-left: auto; background: #fff; color: var(--bbi-ink); }
.bbi-acc-event__ok { background: #fff; }
