/* ═══════════════════════════════════════════════════════════
   M4D Identity — manager picker modal & header badge
   ═══════════════════════════════════════════════════════════ */

/* ── Header badge (avatar circle in .m4d-right) ─────────────── */
.m4d-id-badge {
  all: unset;
  cursor: pointer;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(96, 165, 250, .4);
  transition: border-color .15s, transform .12s;
  -webkit-tap-highlight-color: transparent;
}
.m4d-id-badge:hover  { border-color: rgba(96, 165, 250, .85); transform: scale(1.07); }
.m4d-id-badge:active { transform: scale(.95); }
.m4d-id-badge .m4d-id-av { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }

/* Guest variant of the header badge */
.m4d-id-badge.m4d-id-guest { border-color: rgba(148, 163, 184, .3); }
.m4d-id-badge.m4d-id-guest:hover { border-color: rgba(148, 163, 184, .65); transform: scale(1.07); }
.m4d-id-guest-ini {
  background: linear-gradient(135deg, rgba(100,116,139,.5), rgba(51,65,85,.6));
  font-size: 15px;
  color: rgba(229, 231, 235, .55);
}

/* ── Shared avatar styles ───────────────────────────────────── */
.m4d-id-av {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.m4d-id-ini {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(96,165,250,.55), rgba(30,64,175,.65));
  color: #e5e7eb;
  font-weight: 800;
  font-size: 20px;
  font-style: normal;
  width: 52px;
  height: 52px;
  border-radius: 50%;
}
.m4d-id-av.large,
.m4d-id-ini.large { width: 76px; height: 76px; font-size: 30px; }

/* ── Modal overlay ──────────────────────────────────────────── */
.m4d-id-modal {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: grid;
  justify-items: center;
  align-items: center;
  padding: 16px;
  opacity: 0;
  transition: opacity .22s ease;
}
.m4d-id-modal.m4d-id-in  { opacity: 1; }
.m4d-id-modal.m4d-id-out { opacity: 0; pointer-events: none; }

.m4d-id-bd {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, .75);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* ── Panel ──────────────────────────────────────────────────── */
.m4d-id-panel {
  position: relative;
  width: min(600px, 100%);
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: rgba(9, 14, 33, .98);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 20px;
  box-shadow: 0 32px 80px rgba(0, 0, 0, .7), 0 0 0 1px rgba(96, 165, 250, .06);
  transform: translateY(18px) scale(.97);
  transition: transform .26s cubic-bezier(.16, 1, .3, 1);
}
.m4d-id-modal.m4d-id-in  .m4d-id-panel { transform: none; }
.m4d-id-modal.m4d-id-out .m4d-id-panel { transform: translateY(10px) scale(.97); }

/* Panel header row */
.m4d-id-ph {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 20px 20px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, .07);
}
.m4d-id-title {
  margin: 0 0 4px;
  font-size: clamp(18px, 3vw, 22px);
  font-weight: 800;
  color: #e5e7eb;
}
.m4d-id-sub {
  margin: 0;
  font-size: 13px;
  color: rgba(255, 255, 255, .4);
}
.m4d-id-close {
  all: unset;
  cursor: pointer;
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: rgba(255, 255, 255, .35);
  background: rgba(255, 255, 255, .05);
  transition: background .13s, color .13s;
}
.m4d-id-close:hover { background: rgba(255, 255, 255, .1); color: #e5e7eb; }

/* ── Manager card grid ──────────────────────────────────────── */
.m4d-id-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 16px;
}
@media (max-width: 380px) { .m4d-id-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 500px) { .m4d-id-grid { grid-template-columns: repeat(4, 1fr); } }

.m4d-id-card {
  all: unset;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 14px 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, .07);
  background: rgba(255, 255, 255, .03);
  text-align: center;
  transition: background .13s, border-color .13s, transform .1s;
  -webkit-tap-highlight-color: transparent;
}
.m4d-id-card:hover         { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.15); transform: translateY(-2px); }
.m4d-id-card:active        { transform: scale(.96); transition-duration: .05s; }
.m4d-id-card:focus-visible { outline: 2px solid rgba(96,165,250,.6); outline-offset: 2px; }
.m4d-id-card.is-me         { background: rgba(96,165,250,.1); border-color: rgba(96,165,250,.3); }

/* Avatar wrapper — allows "You" badge overlay */
.m4d-id-av-wrap { position: relative; display: inline-block; }

.m4d-id-you {
  position: absolute;
  bottom: -3px;
  right: -3px;
  background: #3b82f6;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  padding: 2px 5px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: .3px;
  border: 2px solid rgba(9, 14, 33, .98);
  white-space: nowrap;
}
.m4d-id-dname {
  font-size: 12px;
  font-weight: 700;
  color: #e5e7eb;
  line-height: 1.2;
  word-break: break-word;
}
.m4d-id-tname {
  font-size: 10px;
  color: rgba(255, 255, 255, .38);
  line-height: 1.2;
  word-break: break-word;
}

/* Loading / error states */
.m4d-id-loading {
  grid-column: 1 / -1;
  padding: 32px 0;
  text-align: center;
  color: rgba(255, 255, 255, .4);
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.m4d-id-spinner {
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255,255,255,.15);
  border-top-color: #60a5fa;
  border-radius: 50%;
  animation: m4d-spin .8s linear infinite;
}
@keyframes m4d-spin { to { transform: rotate(360deg); } }

.m4d-id-err {
  grid-column: 1 / -1;
  padding: 24px 0;
  text-align: center;
  color: #f87171;
  font-size: 14px;
  margin: 0;
}

/* ── Guest row at bottom of picker ──────────────────────── */
.m4d-id-guest-row {
  padding: 10px 16px 14px;
  border-top: 1px solid rgba(255, 255, 255, .06);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}
.m4d-id-change-pin-btn {
  all: unset;
  cursor: pointer;
  font-size: 12px;
  color: rgba(96, 165, 250, .55);
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid rgba(96, 165, 250, .18);
  transition: color .13s, background .13s, border-color .13s;
  -webkit-tap-highlight-color: transparent;
}
.m4d-id-change-pin-btn:hover {
  color: rgba(96, 165, 250, .9);
  background: rgba(96, 165, 250, .07);
  border-color: rgba(96, 165, 250, .32);
}
.m4d-id-guest-btn {
  all: unset;
  cursor: pointer;
  font-size: 13px;
  color: rgba(255, 255, 255, .32);
  padding: 7px 18px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, .08);
  transition: color .13s, background .13s, border-color .13s;
  -webkit-tap-highlight-color: transparent;
}
.m4d-id-guest-btn:hover { color: rgba(255, 255, 255, .6); background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); }

/* ── Guest notice banner (used by form pages) ────────────── */
.m4d-guest-notice {
  margin-bottom: 14px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(148, 163, 184, .06);
  border: 1px solid rgba(148, 163, 184, .2);
  font-size: .875rem;
  color: rgba(229, 231, 235, .65);
  line-height: 1.5;
}
.m4d-guest-notice a { color: #60a5fa; text-decoration: none; }
.m4d-guest-notice a:hover { text-decoration: underline; }

/* ── Confirmation step ──────────────────────────────────────── */
.m4d-id-confirm {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 28px 20px 26px;
}
.m4d-id-confirm[hidden] { display: none; }

.m4d-id-conf-av { margin-bottom: 6px; }

.m4d-id-conf-q {
  margin: 0;
  font-size: clamp(16px, 2.5vw, 20px);
  color: #e5e7eb;
  text-align: center;
}
.m4d-id-conf-q strong { color: #93c5fd; }

.m4d-id-conf-team {
  margin: 0;
  font-size: 13px;
  color: rgba(255, 255, 255, .4);
  text-align: center;
}

.m4d-id-conf-btns {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 18px;
  width: 100%;
  max-width: 260px;
}

.m4d-id-yes,
.m4d-id-no {
  all: unset;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  transition: background .13s, transform .1s;
  -webkit-tap-highlight-color: transparent;
}
.m4d-id-yes {
  background: rgba(96, 165, 250, .18);
  border: 1px solid rgba(96, 165, 250, .4);
  color: #93c5fd;
}
.m4d-id-yes:hover  { background: rgba(96, 165, 250, .28); }
.m4d-id-no {
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .45);
  font-size: 13px;
}
.m4d-id-no:hover { background: rgba(255, 255, 255, .08); color: #e5e7eb; }
.m4d-id-yes:active,
.m4d-id-no:active  { transform: scale(.97); }
.m4d-id-yes:disabled { opacity: .55; cursor: default; }

/* Sign-out variant — subtle red tint */
.m4d-id-no.m4d-id-signout {
  color: rgba(252, 165, 165, .7);
  border-color: rgba(239, 68, 68, .2);
}
.m4d-id-no.m4d-id-signout:hover {
  background: rgba(239, 68, 68, .08);
  border-color: rgba(239, 68, 68, .35);
  color: #fca5a5;
}

/* ── PIN entry in confirm step ──────────────────────────────── */
.m4d-id-pin-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin: 12px 0 4px;
}
.m4d-id-pin-lbl {
  font-size: 11px;
  font-weight: 700;
  color: rgba(229,231,235,.45);
  text-transform: uppercase;
  letter-spacing: .6px;
}
.m4d-id-pin-input {
  width: 130px;
  text-align: center;
  letter-spacing: .3em;
  font-size: 22px;
  font-weight: 800;
  padding: 10px 12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  color: #e5e7eb;
  outline: none;
  transition: border-color .15s, background .15s;
  font-family: Inter, system-ui, sans-serif;
}
.m4d-id-pin-input:focus {
  border-color: rgba(96,165,250,.5);
  background: rgba(96,165,250,.06);
}
.m4d-id-pin-err {
  font-size: 13px;
  color: #fca5a5;
  margin: 0;
  text-align: center;
}
.m4d-id-pin-err[hidden] { display: none; }
.m4d-id-pin-help {
  margin: 2px 0 0;
  font-size: 11px;
  color: rgba(255, 255, 255, .28);
  text-align: center;
  line-height: 1.4;
}
