/* 我的 Agent
 * AI 身份保留摘要行，小队可展开所属话题；聊天与全部话题沿用统一 IM。
 * 变量沿用 046 的中栏 rail 变量与 GDS token，不定义新色值。 */

.eva-spaces-list { display: flex; flex-direction: column; gap: var(--gds-space-1); }
.eva-spaces-group { display: flex; flex-direction: column; gap: 2px; }
.eva-spaces-list > .eva-spaces-group:first-child .eva-ai-team__section-rule { display: none; }
.eva-spaces-group__action {
  display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto;
  padding: 0 var(--gds-space-1); border: 0; border-radius: 6px; background: transparent;
  color: var(--eva-rail-caption); font: inherit; cursor: pointer;
}
.eva-spaces-group__action:hover { color: var(--eva-rail-primary); background: var(--eva-rail-hover); }

.eva-spaces-row {
  display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: var(--gds-space-2);
  width: 100%; min-height: 56px; padding: var(--gds-space-2); border: 0; border-radius: var(--eva-rail-primary-row-radius);
  background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.eva-spaces-row:hover { background: var(--eva-rail-hover); }
.eva-spaces-row.is-selected,
.eva-spaces-row.is-selected:hover { background: var(--eva-rail-selected); }
.eva-spaces-row:focus-visible { outline: 2px solid var(--gds-color-focus-ring, var(--eva-action-primary)); outline-offset: -2px; }
.eva-spaces-row.is-highlighted { animation: eva-spaces-row-arrive 2.4s ease-out; }
@keyframes eva-spaces-row-arrive { 0%, 40% { background: var(--eva-rail-selected); } 100% { background: transparent; } }
.eva-spaces-row__avatar { display: inline-flex; width: 36px; height: 36px; }
.eva-spaces-row__avatar .eva-ai-team__team-avatar { border-radius: 50%; }
.eva-spaces-row__main { display: flex; flex-direction: column; min-width: 0; }
.eva-spaces-row__top,
.eva-spaces-row__bottom { display: flex; align-items: center; gap: var(--gds-space-2); min-width: 0; }
.eva-spaces-row__top .eva-identity-name-row { flex: 1 1 auto; min-width: 0; }
.eva-spaces-row__name {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--eva-rail-primary); font-size: var(--eva-rail-name-size); line-height: var(--eva-rail-line-height);
  font-weight: var(--gds-font-weight-regular);
}
.eva-spaces-row.is-unread:not(.eva-spaces-row--recent) .eva-spaces-row__name { font-weight: var(--gds-font-weight-semibold, 600); }
.eva-spaces-row__time { flex: 0 0 auto; color: var(--eva-rail-time); font-size: var(--gds-type-caption-font-size); line-height: var(--gds-type-caption-line-height); }
.eva-spaces-row__preview {
  flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--eva-rail-secondary); font-size: var(--gds-type-caption-font-size); line-height: var(--gds-type-caption-line-height);
}
.eva-spaces-row__preview.is-state { color: var(--eva-rail-time); }
.eva-spaces-row__badge { flex: 0 0 auto; }

/* codex/message-muted-folders 的最近行布局；父群与话题复用 EvaSpacesRow 的配置变体。 */
.eva-spaces-row--recent {
  grid-template-columns: 32px minmax(0, 1fr); gap: 10px;
  min-height: 59px; padding: 11px var(--gds-space-2); margin-bottom: 1px;
  border-radius: var(--eva-radius-control);
}
.eva-spaces-row--recent .eva-spaces-row__avatar { position: relative; width: 32px; height: 32px; }
.eva-spaces-row__avatar-unread { position: absolute; top: -9px; right: -5px; }
.eva-spaces-row--recent .eva-spaces-row__main { gap: 2px; }
.eva-spaces-row--recent .eva-spaces-row__top { height: 19px; }
.eva-spaces-row--recent .eva-spaces-row__name { font-weight: var(--eva-fw-medium); line-height: 19px; color: var(--semi-color-text-0); }
.eva-spaces-row--recent .eva-spaces-row__bottom { height: 16px; }
.eva-spaces-row--recent .eva-spaces-row__preview { flex: 1 1 0; color: var(--semi-color-text-2); }
.eva-spaces-row--recent .eva-spaces-row__time { font-size: 11px; line-height: 16px; color: var(--semi-color-text-2); }
.eva-spaces-row__preview-mention { color: var(--eva-im-mention-accent); font: inherit; vertical-align: baseline; }
/* 右侧话题按钮与父群入口是并列按钮，展开不切换聊天。 */
.eva-spaces-squad { min-width: 0; }
.eva-spaces-squad__head { position: relative; }
.eva-spaces-squad__head .eva-spaces-row__top { padding-right: 40px; }
.eva-spaces-squad__actions { position: absolute; top: 3px; right: var(--gds-space-2); width: 36px; height: 28px; }
.eva-spaces-squad__toggle.semi-button { width: 32px; min-width: 32px; height: 28px; padding: 0; color: var(--eva-text-secondary); }
.eva-spaces-squad__toggle [data-eva-unread-indicator="message"] { position: absolute; top: 5px; right: 5px; pointer-events: none; }
.eva-spaces-squad__actions .eva-topic-mention-button { position: absolute; top: -2px; right: 0; }
.eva-spaces-squad__toggle:focus-visible,
.eva-spaces-squad__topic:focus-visible { outline: 2px solid var(--gds-color-focus-ring, var(--eva-action-primary)); outline-offset: -2px; }
.eva-spaces-squad__topics[hidden] { display: none; }
/* 行背景保持与父行相同的左右边界，层级缩进只作用于内容，不显示连接线。 */
.eva-spaces-squad__topic {
  padding-inline-start: calc(var(--gds-space-2) + var(--eva-rail-follow-thread-inset) - var(--eva-rail-identity-content-inset));
}
.eva-spaces-squad__topic .eva-spaces-row__name { font-weight: var(--eva-fw-regular); color: var(--eva-text-secondary); }
.eva-spaces-squad__topic-pin { display: inline-flex; flex: 0 0 auto; color: var(--eva-rail-time); }
.eva-spaces-squad__empty {
  margin: 0; padding: var(--gds-space-2) var(--gds-space-2) var(--gds-space-2) calc(var(--gds-space-2) + var(--eva-rail-follow-thread-inset) - var(--eva-rail-identity-content-inset));
  color: var(--eva-rail-time); font-size: var(--gds-type-caption-font-size); line-height: var(--gds-type-caption-line-height);
}

.eva-spaces-hit {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--gds-space-2);
  width: 100%; min-height: 32px; padding: 0 var(--gds-space-2) 0 calc(36px + var(--gds-space-4));
  border: 0; border-radius: var(--eva-rail-nested-row-radius); background: transparent; color: var(--eva-rail-primary);
  font: inherit; font-size: var(--gds-type-caption-font-size); text-align: left; cursor: pointer;
}
.eva-spaces-hit:hover { background: var(--eva-rail-hover); }
.eva-spaces-hit__label { color: var(--eva-rail-time); }
.eva-spaces-hit__title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.eva-spaces-hit time { color: var(--eva-rail-time); }

.eva-spaces-agent__main { flex-direction: row; }
.eva-spaces-agent__conversation { display: flex; flex: 1; flex-direction: column; min-width: 0; min-height: 0; }
.eva-spaces-agent__conversation > .ch-layout { flex: 1; min-height: 0; }

.eva-spaces-agent__conversation.is-blocked .eva-im-composer { display: none; }
.eva-spaces-authorize {
  display: flex; align-items: center; justify-content: space-between; gap: var(--gds-space-3); min-height: 48px; box-sizing: border-box;
  margin: 0 var(--gds-space-4) var(--gds-space-4); padding: var(--gds-space-2) var(--gds-space-3);
  border-radius: 8px; background: var(--eva-conversation-row-hover);
  color: var(--gds-color-text-primary); font-size: var(--gds-type-body-font-size, 14px);
}


/* 2026-10-28（08 §8）：分身常驻第一行；AI 小队、数字员工分组可折叠，操作常驻在标题行右侧。 */
.eva-spaces-group__toggle {
  display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; min-width: 0;
  padding: 0; border: 0; border-radius: 6px; background: transparent; color: inherit; font: inherit; cursor: pointer;
}
.eva-spaces-group__toggle:hover { color: var(--eva-rail-primary); }
.eva-spaces-group__chevron { flex: 0 0 auto; transition: transform .15s ease; }
.eva-spaces-group.is-collapsed .eva-spaces-group__chevron { transform: rotate(-90deg); }
.eva-spaces-group__badge { margin-left: 2px; }
.eva-spaces-group__icon-action {
  display: inline-grid; place-items: center; flex: 0 0 auto; width: 24px; height: 24px;
  padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--eva-rail-caption); cursor: pointer;
}
.eva-spaces-group__icon-action:hover { color: var(--eva-rail-primary); background: var(--eva-rail-hover); }
.eva-spaces-group--pinned { padding-bottom: var(--gds-space-1); }
.eva-spaces-group__toggle:focus-visible,
.eva-spaces-group__icon-action:focus-visible,
.eva-spaces-group__action:focus-visible { outline: 2px solid var(--semi-color-primary); outline-offset: 1px; }

/* 顶部置顶区：分身和数字员工可置顶。 */
.eva-spaces-pins { gap: var(--gds-space-1); padding-bottom: var(--gds-space-2); }
.eva-spaces-pin {
  display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0;
  padding: var(--gds-space-2) 2px; border: 0; border-radius: 12px;
  background: transparent; color: inherit; font: inherit; cursor: pointer;
}
.eva-spaces-pin:focus-visible { outline: 2px solid var(--semi-color-primary); outline-offset: 1px; }
.eva-spaces-pin__avatar { position: relative; display: inline-flex; }
.eva-spaces-pin__dot { position: absolute; right: 0; bottom: 2px; }
.eva-spaces-pin__name {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  width: 100%; font-size: 12px; line-height: 16px; text-align: center;
}
.eva-spaces-pin.is-unread .eva-spaces-pin__name { font-weight: var(--gds-font-weight-medium); }
.eva-spaces-row-wrap { display: block; min-width: 0; }

/* 2026-10-28 追加：拖拽置顶。被拖的块浮起跟着指针；置顶区变底色并在落点让出空位，其余块滑开。
 * 2026-11-03 用户确认：1–3 格平分整行，4 格及以上固定四列、换行从左排。
 * 列数由组件按当前格数写进 --eva-pin-cols（拖动中的空位也算一格），每列平分可用宽度。落点只是空位，不画框。 */
.eva-spaces-pins {
  --eva-pin-cols: 4;
  display: grid; grid-template-columns: repeat(var(--eva-pin-cols), minmax(0, 1fr));
  border-radius: 16px; transition: background-color .15s ease;
}
.eva-spaces-pins > .eva-spaces-pin { box-sizing: border-box; min-width: 0; }
.eva-spaces-pins.is-drop-target { background: var(--eva-rail-hover); }
.eva-spaces-pin.is-slot { visibility: hidden; }
/* 从置顶区拖回：指针下的本组整体变灰，放手即取消置顶回到这一组。 */
.eva-spaces-group { border-radius: 12px; transition: background-color .15s ease; }
.eva-spaces-group.is-drop-target { background: var(--eva-rail-hover); }
.eva-spaces-group__drop-hint { padding: var(--gds-space-1) var(--gds-space-2); color: var(--eva-rail-time); font-size: var(--gds-type-caption-font-size); line-height: var(--gds-type-caption-line-height); }
/* 悬停置顶头像：横向的名称 + 最近内容卡，与拖动浮层区分。 */
.eva-spaces-pin-peek {
  position: fixed; z-index: 2000; display: flex; flex-direction: column; gap: 2px; width: max-content; max-width: 240px;
  padding: var(--gds-space-2) var(--gds-space-3); border: 1px solid var(--semi-color-border); border-radius: 12px;
  background: var(--semi-color-bg-0); box-shadow: 0 8px 24px rgba(15, 23, 42, .12); pointer-events: none;
}
.eva-spaces-pin-peek__name { overflow-wrap: anywhere; color: var(--semi-color-text-0); font-size: 13px; font-weight: var(--gds-font-weight-medium); line-height: 20px; }
.eva-spaces-pin-peek__text {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  color: var(--semi-color-text-2); font-size: 12px; line-height: 18px; overflow-wrap: anywhere;
}
.eva-spaces-pin-float {
  position: fixed; z-index: 2000; display: flex; flex-direction: column; align-items: center; gap: 6px; width: 84px;
  padding: var(--gds-space-2) var(--gds-space-1); border-radius: 14px; background: var(--semi-color-bg-0);
  box-shadow: 0 12px 32px rgba(15, 23, 42, .18); transform: translate(-50%, -50%) scale(1.06); pointer-events: none;
}
.eva-spaces-pin-float .eva-spaces-pin__name { font-size: 12px; line-height: 16px; text-align: center; }
.eva-spaces-agent.is-pin-dragging, .eva-spaces-agent.is-pin-dragging * { cursor: grabbing !important; user-select: none; }
.eva-spaces-pin img, .eva-spaces-row-wrap img { -webkit-user-drag: none; }
.eva-spaces-row-wrap.is-dragging { opacity: .4; }
@media (prefers-reduced-motion: reduce) { .eva-spaces-pins, .eva-spaces-group { transition: none; } }


/* 未开通分身时由身份数据推导，不创建占位身份或会话。 */
.eva-spaces-persona-empty {
  display: flex; flex-direction: column; align-items: center; gap: var(--gds-space-1);
  padding: var(--gds-space-3) var(--gds-space-2); text-align: center;
}
.eva-spaces-persona-empty__title {
  color: var(--gds-color-text-secondary); font-size: var(--gds-type-label-font-size);
  line-height: var(--gds-type-label-line-height); font-weight: var(--gds-font-weight-regular);
}
.eva-spaces-persona-empty + .eva-spaces-pins:empty { display: none; }
/* Drag feedback follows the task board's overlay and hint geometry. */
.eva-spaces-pins, .eva-spaces-group { position: relative; }
.eva-spaces-drop-overlay { position: absolute; inset: 0; z-index: 2; pointer-events: none; display: flex; align-items: center; justify-content: center; padding: 12px; border-radius: var(--eva-radius-chip); background: color-mix(in srgb,var(--eva-surface-primary) 60%,transparent); box-shadow: 0 0 0 2px color-mix(in srgb,var(--eva-action-primary) 25%,transparent); }
.eva-spaces-drag-hint { max-width: 100%; padding: 4px 10px; border: 1px solid var(--eva-border-faint); border-radius: var(--semi-border-radius-small); background: var(--eva-surface-primary); color: var(--eva-text-primary); box-shadow: var(--semi-shadow-elevated); font: 500 12px/18px var(--eva-font-sans); text-align: center; }


.eva-spaces-pins:empty { min-height: 80px; }
