/* Hotel contacts search dropdown + contact history / "Change hotel" in contact cards.
   Uses the base tokens from styles.css (:root). No !important. */

.bmContactSearch{
  position:fixed;
  top:var(--bm-cs-top, 72px);
  left:var(--bm-cs-left, 12px);
  width:var(--bm-cs-width, 420px);
  max-height:min(62vh, 560px);
  display:flex;
  flex-direction:column;
  z-index:9000;
  background:var(--panel, #fff);
  color:var(--text, #262638);
  border:1px solid rgba(62,61,86,.12);
  border-radius:18px;
  box-shadow:0 24px 60px rgba(32,30,52,.18), 0 2px 6px rgba(32,30,52,.06);
  font-family:var(--font);
  opacity:0;
  transform:translateY(-6px) scale(.985);
  transform-origin:top center;
  transition:opacity .16s ease, transform .18s cubic-bezier(.2,.8,.2,1);
  overflow:hidden;
}
.bmContactSearch.is-open{ opacity:1; transform:none; }
.bmContactSearch[hidden]{ display:none; }

.bmCsHead{
  display:flex; align-items:center; gap:8px;
  padding:10px 10px 8px 16px;
  border-bottom:1px solid rgba(62,61,86,.08);
  font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--muted, #7A7888);
}
.bmCsHead b{ font-weight:800; color:var(--text, #262638); }
.bmCsHead span{
  min-width:22px; height:20px; padding:0 7px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--chip, #ECE9E2); color:var(--accent2, #3F3C57); font-weight:800; font-size:11px;
}
.bmCsClose{
  margin-left:auto; width:28px; height:28px; border:0; border-radius:10px;
  background:transparent; color:var(--muted, #7A7888); font-size:18px; line-height:1; cursor:pointer;
  transition:background .15s ease, color .15s ease;
}
.bmCsClose:hover{ background:var(--chip, #ECE9E2); color:var(--text, #262638); }

.bmCsList{ overflow:auto; overscroll-behavior:contain; padding:6px; }
.bmCsRow{
  display:flex; align-items:center; gap:8px;
  border-radius:13px;
  transition:background .12s ease;
}
.bmCsRow:hover, .bmCsRow.is-active{ background:#F4F2EE; }
.bmCsOpen{
  flex:1 1 auto; min-width:0;
  display:grid; gap:2px;
  padding:9px 10px;
  border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer;
}
.bmCsName{ font-size:13.5px; font-weight:700; line-height:1.3; overflow-wrap:anywhere; }
.bmCsHotel{ font-size:12px; font-weight:700; color:var(--accent2, #3F3C57); display:flex; flex-wrap:wrap; gap:0 8px; }
.bmCsHotel em{ font-style:normal; font-weight:600; color:var(--muted, #7A7888); }
.bmCsLine{ font-size:12px; color:var(--muted, #7A7888); overflow-wrap:anywhere; }
.bmCsOpen mark{ background:rgba(221,201,196,.7); color:inherit; border-radius:4px; padding:0 1px; }
.bmCsMove{
  flex:0 0 auto; margin-right:6px;
  height:30px; padding:0 11px; border-radius:10px;
  border:1px solid rgba(62,61,86,.14); background:var(--panel, #fff);
  color:var(--accent2, #3F3C57); font:inherit; font-size:12px; font-weight:700; cursor:pointer;
  opacity:0; transition:opacity .15s ease, background .15s ease, border-color .15s ease;
}
.bmCsRow:hover .bmCsMove, .bmCsRow.is-active .bmCsMove, .bmCsMove:focus-visible{ opacity:1; }
.bmCsMove:hover{ background:var(--chip, #ECE9E2); border-color:rgba(62,61,86,.24); }
.bmCsMore{ padding:10px 12px 6px; font-size:12px; color:var(--muted, #7A7888); text-align:center; }

/* Workspace contact rows: history and the text "Change hotel" action (the hotel card puts
   the move action in its contact toolbar instead). Without history the action takes no row:
   it floats in the row corner and appears on hover (always visible on touch screens). */
.bmContactFoot{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px;
  margin-top:8px;
}
@media (hover:hover){ .bmContactFoot:not(:has(.bmContactHistory)){ margin:0; } }
.bmWorkspaceContact{ position:relative; }
@media (hover:hover){
  .bmContactFoot:not(:has(.bmContactHistory)) .bmContactMoveBtn{ position:absolute; right:12px; bottom:10px; }
  .bmContactMoveBtn{ opacity:0; }
  .bmWorkspaceContact:hover .bmContactMoveBtn, .bmContactMoveBtn:focus-visible{ opacity:1; }
}
.bmContactHistory{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; font-size:11.5px; color:var(--muted, #7A7888); min-width:0; }
.bmContactHistoryLabel{ font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:10.5px; }
.bmContactHistoryItem{
  display:inline-flex; align-items:baseline; gap:5px;
  padding:2px 8px; border-radius:999px; background:var(--chip, #ECE9E2); color:var(--accent2, #3F3C57); font-weight:700;
}
.bmContactHistoryItem time{ font-weight:600; color:var(--muted, #7A7888); }
.bmContactHistoryItem{ max-width:100%; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bmContactHistoryMore{ display:inline-flex; align-items:center; padding:2px 8px; border-radius:999px; background:var(--surface-sunken); color:var(--muted); font-weight:800; cursor:help; }
.bmContactMoveBtn{
  margin-left:auto;
  height:28px; padding:0 10px; border-radius:9px;
  border:1px solid rgba(62,61,86,.14); background:var(--panel, #fff);
  color:var(--accent2, #3F3C57); font:inherit; font-size:12px; font-weight:700; cursor:pointer;
  transition:opacity .15s ease, background .15s ease, border-color .15s ease;
}
.bmContactMoveBtn:hover{ background:var(--chip, #ECE9E2); border-color:rgba(62,61,86,.24); }

/* Move-contact dialog: route (from → to), who is moving, inline hotel list */
.bmMoveContact{ display:flex; flex-direction:column; gap:14px; }
.bmMoveRoute{ display:grid; grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr); align-items:center; gap:8px; }
.bmMoveFrom, .bmMoveTo{
  min-width:0; display:flex; flex-direction:column; gap:3px;
  padding:11px 13px; border-radius:var(--radius-sm); background:var(--surface-soft);
  transition:background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.bmMoveFrom small, .bmMoveTo small{ font:700 10.5px/1 var(--font); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.bmMoveFrom b, .bmMoveTo b{ font:700 13.5px/1.3 var(--font); color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bmMoveTo b{ color:var(--muted2); }
.bmMoveTo.is-set{ background:var(--violet-soft); box-shadow:inset 0 0 0 1px var(--violet-ring); animation:bmMovePop .32s var(--ease-spring); }
.bmMoveTo.is-set b{ color:var(--violet-ink); }
@keyframes bmMovePop{ from{ transform:scale(.97); } to{ transform:none; } }
.bmMoveArrow{ display:grid; place-items:center; color:var(--muted2); }
.bmMoveArrow svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.bmMoveWho{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; font:500 12.5px/1.4 var(--font); color:var(--muted); }
.bmMoveWho b{ font:700 14px/1.3 var(--font); color:var(--ink); }
.bmMoveContactHint{ margin:0; font:500 12px/1.45 var(--font); color:var(--muted); }
