/* GDS 2.0 personal workspace, desktop adaptation.
   Extra app navigation stays 180px (collapsed 80px); assistant rail is 260px.
   Main column is capped at 776px and shrinks to the remaining width with 24px gutters.
   Completed replaces the assistant rail: 390px context + flexible editor.
   Titlebar remains unique and visible. Fonts/controls are never globally scaled. */

.eva-personal-workspace {
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: row;
  overflow: hidden;
  background: var(--eva-surface-primary);
  color: var(--eva-text-primary);
  font: var(--eva-fw-regular) 15px/24px var(--eva-font-sans);
}

.eva-personal-workspace__stage {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  overflow: hidden;
  background: var(--eva-surface-primary);
}

/* ------------------------------------------------------------
   态显隐
   ------------------------------------------------------------ */
.eva-personal-workspace__scroll,
.eva-personal-workspace__conversation,
.eva-personal-workspace__completed,
.eva-personal-workspace__opcard,
.eva-personal-workspace__pickerhost {
  display: none;
}
.eva-personal-workspace[data-eva-state="home"] .eva-personal-workspace__scroll,
.eva-personal-workspace[data-eva-state="input"] .eva-personal-workspace__scroll,
.eva-personal-workspace[data-eva-state="skill-picker"] .eva-personal-workspace__scroll,
.eva-personal-workspace[data-eva-state="operation"] .eva-personal-workspace__scroll {
  display: flex;
}
.eva-personal-workspace[data-eva-state="skill-picker"] .eva-personal-workspace__pickerhost {
  display: block;
}
.eva-personal-workspace[data-eva-state="operation"] .eva-personal-workspace__opcard {
  display: block;
}
.eva-personal-workspace[data-eva-state="generating"] .eva-personal-workspace__conversation:not(.eva-personal-workspace__history),
.eva-personal-workspace[data-eva-state="history"] .eva-personal-workspace__history {
  display: flex;
}
.eva-personal-workspace[data-eva-state="completed"] .eva-personal-workspace__completed {
  display: flex;
}

/* ============================================================
   home / input / skill-picker / operation
   宿主是 overflow:hidden，滚动条必须由这一层自带（AGENTS.md 提到的
   .eva-connection-center 自我抵消写法就是漏了这一步）。
   ============================================================ */
.eva-personal-workspace__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden; /* hero 装饰会越出主列，越出部分不参与布局 */
  padding: var(--eva-space-10) var(--eva-space-6);
  box-sizing: border-box;
}
.eva-personal-workspace__column {
  margin: auto;
  width: min(100%, var(--eva-main-col-w));
  min-width: 0;
  flex: none;
  display: flex;
  flex-direction: column;
}

/* ---- 新会话欢迎区：仅保留欢迎标题 ---- */
.eva-personal-workspace__hero {
  position: relative;
  height: 48px;
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.eva-personal-workspace__hero-grid {
  position: absolute;
  right: -62px;
  top: -82px;
  width: 250px;
  height: 250px;
  background-image:
    linear-gradient(var(--eva-decoration-dot) 3px, transparent 3px),
    linear-gradient(90deg, var(--eva-decoration-dot) 3px, transparent 3px);
  background-size: var(--eva-space-2) var(--eva-space-2);
  mask-image: radial-gradient(circle, var(--eva-text-strong), transparent 70%);
  -webkit-mask-image: radial-gradient(circle, var(--eva-text-strong), transparent 70%);
}
.eva-personal-workspace__welcome {
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--eva-space-2);
  color: var(--eva-text-strong);
  font: var(--eva-fw-semibold) 32px/40px var(--eva-font-sans);
  white-space: nowrap;
}
.eva-personal-workspace__welcome-avatar {
  position: relative;
  width: 36px;
  height: 36px;
  flex: none;
  overflow: hidden;
  border-radius: var(--eva-radius-full);
  background: var(--eva-decoration-dot);
}
.eva-personal-workspace__welcome-avatar img {
  position: absolute;
  top: -3px;
  left: -14px;
  width: 64px;
  height: auto;
  max-width: none;
}
.eva-newchat-icon-action:focus-visible,
.eva-newchat-context:focus-visible,
.eva-newchat-model:focus-visible {
  outline: var(--eva-border-focus-w) solid var(--eva-border-focus);
  outline-offset: var(--eva-space-0-5);
}

/* ---- 快捷能力排：位于输入器后，仍保持原来的 37px 高度 ---- */
.eva-personal-workspace__rail {
  flex: none;
  margin-top: var(--eva-space-2);
}
.eva-personal-workspace__capability .eva-i { color: var(--eva-action-primary); }

/* ---- 输入器：沿用原复合输入器尺寸，只替换工具内容 ---- */
.eva-personal-workspace__composer {
  position: relative;
  flex: none;
  margin-top: var(--eva-space-1);
}
/* 新会话不再把快捷能力放在输入器外框内，因此隐藏原组件用于承接
   底部快捷区的灰色底板；保留 776×166 占位，输入器本体位置不变。 */
.eva-composer-wrap--newchat {
  background: transparent;
}
.eva-newchat-actions {
  height: 52px;
  padding: var(--eva-space-2-5);
  gap: var(--eva-space-2);
}
.eva-newchat-icon-action,
.eva-newchat-context,
.eva-newchat-model {
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--eva-space-1-5);
  border: 0;
  border-radius: var(--eva-radius-full);
  background: transparent;
  color: var(--eva-text-secondary-accessible);
  cursor: pointer;
  font: var(--eva-fw-regular) 14px/22px var(--eva-font-sans);
}
.eva-newchat-icon-action {
  width: 32px;
  flex: none;
  padding: 0;
}
.eva-newchat-context,
.eva-newchat-model { padding: 0 var(--eva-space-2); }
.eva-newchat-context:hover,
.eva-newchat-model:hover,
.eva-newchat-icon-action:hover { background: var(--eva-surface-subtle); }
.eva-newchat-context span,
.eva-newchat-model span {
  max-width: 132px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.eva-newchat-actions__spacer { flex: 1 1 auto; min-width: var(--eva-space-2); }
.eva-newchat-model {
  flex: none;
  color: var(--eva-text-primary);
  font-weight: var(--eva-fw-medium);
}
.eva-newchat-actions .eva-send {
  width: 32px;
  height: 32px;
}

/* ---- 技能选择器：画板 342,119，高 263.5，底边 382.5，
        正好压在输入器外框顶边上方 0.5px，浮在 hero 与 chip 排之上 ---- */
.eva-personal-workspace__pickerhost {
  position: absolute;
  left: 0;
  bottom: calc(100% + var(--eva-border-hairline-w));
  z-index: 2;
}

.eva-personal-workspace__column .eva-personal-workspace__pickerhost { right: 0; }

/* Home geometry follows its available workspace, including a resized assistant rail. */
.eva-personal-workspace__column .eva-composer-wrap,
.eva-personal-workspace__column .eva-composer,
.eva-personal-workspace__column .eva-picker {
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
}
.eva-personal-workspace__stage { container-type: inline-size; }
@container (max-width: 540px) {
  .eva-personal-workspace__scroll { padding-inline: var(--eva-space-4); }
  .eva-personal-workspace__mascot { opacity: .35; }
}

/* Operation card overlays the native assistant rail without reflow. */
.eva-personal-workspace__opcard {
  position: absolute;
  left: var(--eva-space-5);
  bottom: var(--eva-space-5);
  z-index: 3;
}

/* ============================================================
   generating
   顶栏 52 通栏 · 会话流 776 居中（画板 342,84）· 输入器 768 贴底
   （画板 346,668，底边 786，视口 800 → 底部留 14）
   ============================================================ */
.eva-personal-workspace__conversation {
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
}
.eva-personal-workspace__topbar {
  flex: none;
}
.eva-personal-workspace__stream {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--eva-space-8) 0 var(--eva-space-2);
  display: flex;
  justify-content: center;
}
.eva-personal-workspace__stream > .eva-flow {
  /* 776px 是 GDS 的标准主列；个人会话栏同时存在时，小视口需在内容区
     留出安全内边距，不能让固定列宽从左右两侧被裁掉。 */
  width: min(var(--eva-main-col-w), calc(100% - var(--eva-space-6)));
  flex: none;
  height: max-content;
}
.eva-personal-workspace__dock {
  flex: none;
  display: flex;
  justify-content: center;
  padding-bottom: var(--eva-space-3-5);
}

/* ============================================================
   completed（见顶部 [D1]）
   390 会话列 + 810 基线编辑列，中间 1px 细分隔（.eva-ed-col 自带）
   ============================================================ */
.eva-personal-workspace__completed {
  flex: 1 1 auto;
  min-height: 0;
  align-items: stretch;
}
.eva-personal-completed__conversation {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.eva-personal-completed__stream {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--eva-space-6) var(--eva-space-5) var(--eva-space-2);
}
.eva-personal-completed__dock {
  flex: none;
  padding: 0 var(--eva-space-3-5) var(--eva-space-3-5);
}
/* 编辑列内部：页签 52 / 文件头 48 / 编辑体（基线 660，可伸缩）/ 状态条 40 */
.eva-personal-completed__body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
}

/* ============================================================
   本页专用的少量补充（DS 里由画板绝对定位承担的部分）
   ============================================================ */
/* 顶栏标题左边的任务图标，与 .ttl 之间 8px 由 .eva-topbar 的 gap 给 */
.eva-personal-topbar__mark {
  flex: none;
  display: grid;
  place-items: center;
  color: var(--eva-text-primary);
}
/* 会话流里的工具事件行，图标槽固定 16 见方，文字永不换行 */
.eva-personal-tool__icon {
  flex: none;
  display: grid;
  place-items: center;
}

/* ============================================================
   history：复用会话主列，只按用户请求、Eva 结论、待确认项与附件组织。
   它是工作上下文，不重造团队 IM 气泡；所有颜色和边界均取 GDS 语义 token。
   ============================================================ */
.eva-history-flow {
  display: flex;
  flex-direction: column;
  gap: var(--eva-space-5);
  padding-bottom: var(--eva-space-6);
}
.eva-history-message {
  display: flex;
  max-width: min(100%, 680px);
  flex-direction: column;
  gap: var(--eva-space-1);
}
.eva-history-message.is-user {
  align-self: flex-end;
  margin-left: auto;
}
.eva-history-message__sender {
  display: flex;
  align-items: center;
  gap: var(--eva-space-1);
  color: var(--eva-text-secondary);
}
.eva-history-message.is-user .eva-history-message__sender { align-self: flex-end; }
.eva-history-message__body {
  display: flex;
  flex-direction: column;
  gap: var(--eva-space-2);
}
.eva-history-message.is-user .eva-history-message__body {
  max-width: 560px;
  padding: var(--eva-space-3) var(--eva-space-4);
  border: var(--eva-border-standard-w) solid var(--eva-border-subtle);
  border-radius: var(--eva-radius-panel);
  background: var(--eva-surface-subtle);
}
.eva-history-message__text {
  margin: 0;
  color: var(--eva-text-primary);
}
.eva-history-message__note {
  padding: var(--eva-space-3) var(--eva-space-4);
  border-radius: var(--eva-radius-key);
  background: var(--eva-surface-subtle);
  color: var(--eva-text-secondary);
}
.eva-history-artifact {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--eva-space-2);
  padding: var(--eva-space-3) var(--eva-space-4);
  border: var(--eva-border-standard-w) solid var(--eva-border-subtle);
  border-radius: var(--eva-radius-panel);
  background: var(--eva-surface-primary);
}
.eva-history-artifact__icon,
.eva-history-artifact__action {
  display: grid;
  place-items: center;
  color: var(--eva-text-secondary);
}
.eva-history-artifact__name,
.eva-history-artifact__meta { display: block; }
.eva-history-artifact__name {
  overflow: hidden;
  color: var(--eva-text-primary);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.eva-history-artifact__meta { color: var(--eva-text-muted); }

/* 个人助理配置属于当前工作区内容，不使用遮罩式弹框。 */
.eva-assistant-editor-inline {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: var(--eva-surface-primary);
}
.eva-assistant-editor-inline .eva-create-assistant-modal {
  height: 100%;
  min-height: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.eva-assistant-editor-inline .eva-create-assistant-modal__body { overflow: auto; }

/* GDS geometry adapted to the extra global navigation, without scaling text. */
.eva-personal-workspace__welcome { position:relative; z-index:1; }
.eva-personal-workspace__rail { position:relative; z-index:1; }
.eva-personal-workspace .eva-composer-wrap { padding:4px; }
.eva-composer-input-area { height:66px; display:flex; align-items:baseline; gap:6px; padding:14px 16px 0; box-sizing:border-box; }
.eva-personal-workspace textarea.eva-composer-prompt { flex:1; width:100%; min-width:0; height:52px; min-height:0; padding:0; margin:0; resize:none; border:0; outline:none; background:transparent; color:var(--eva-text-primary); font:400 15px/24px var(--eva-font-sans); }
.eva-personal-workspace textarea.eva-composer-prompt::placeholder { color:var(--eva-text-muted); }
.eva-personal-workspace .eva-composer:focus-within { border-color:var(--eva-border-focus); }
.eva-personal-workspace__dock .eva-composer { width:min(768px, calc(100% - 28px)); }
.eva-personal-workspace__opcard { left:14px; bottom:20px; }
.eva-personal-workspace .eva-actionrow button { min-width:32px; min-height:32px; }
.eva-personal-workspace .eva-tab .nm { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.eva-personal-workspace .eva-canvas { width:min(calc(100% - 32px),534px); height:auto; aspect-ratio:16/9; }
.eva-personal-workspace .eva-toolbar { overflow-x:auto; flex-shrink:0; }
.eva-personal-workspace .eva-tool-btn { flex-shrink:0; }
.eva-personal-workspace .eva-rail { overflow-x:auto; scrollbar-width:none; padding-right:32px; }
.eva-personal-workspace .eva-rail-next { position:sticky; right:0; width:32px; height:32px; margin-left:-24px; }

.eva-personal-workspace *, .eva-personal-workspace *::before, .eva-personal-workspace *::after { box-sizing:border-box; }
.eva-personal-workspace .eva-artifact { max-width:100%; }
.eva-personal-workspace .eva-artifact :is(.nm,.sub) { display:block; }

.eva-opcard-img > img { width:100%; height:100%; object-fit:cover; }
.eva-dismiss::after { content:""; position:absolute; inset:-5px; }
.eva-personal-workspace .eva-topbar { height:52px; flex-shrink:0; }
.eva-personal-workspace .eva-tabbar { flex-shrink:0; }
.eva-personal-workspace .eva-fileheader { flex-shrink:0; }
.eva-personal-workspace .eva-statusbar { flex-shrink:0; }
.eva-document-preview { display:none; flex:1; min-width:0; overflow:auto; margin:24px; padding:24px; white-space:pre-wrap; color:var(--eva-text-primary); background:var(--eva-surface-paper); border:1px solid var(--eva-border-subtle); border-radius:var(--eva-radius-panel); }
.eva-personal-completed__body[data-document="document"] > :is(.eva-rail-slides,.eva-ed-main) { display:none; }
.eva-personal-completed__body[data-document="document"] > .eva-document-preview { display:block; }
.eva-personal-workspace .eva-skillrow .ds { color:var(--eva-text-secondary-accessible); }
.eva-personal-workspace .eva-personal-tool__icon + .tx { color:var(--eva-text-secondary-accessible); }
.eva-picker-empty { padding:16px; color:var(--eva-text-secondary-accessible); }
.eva-personal-workspace :is(.eva-tool-btn,.eva-model,.eva-iconbtn,.eva-round):disabled { color:var(--eva-text-muted); cursor:not-allowed; }
.eva-personal-workspace .eva-tool-btn[aria-pressed="true"] { background:var(--eva-surface-subtle); color:var(--eva-action-primary); border-radius:var(--eva-radius-control); }
.eva-personal-workspace .eva-canvas[contenteditable="true"] { outline:2px solid var(--eva-border-focus); outline-offset:2px; }

/* Conversation skill selection stays anchored to its existing composer. */
.eva-personal-workspace [data-eva-personal-composer] { position: relative; overflow: visible; }
.eva-personal-workspace [data-eva-personal-composer] > .eva-personal-workspace__pickerhost {
  display: block;
  right: 0;
}
.eva-personal-workspace [data-eva-personal-composer] > .eva-personal-workspace__pickerhost .eva-picker {
  width: 100%;
  max-width: 100%;
}

/* Selected text sizes the control; native select covers the same hit area without contributing its longest-option width. */
.eva-personal-directory-picker { position: relative; flex: 0 1 auto; min-width: 0; max-width: min(240px, 45%); cursor: pointer; }
.eva-personal-directory-picker > svg { flex: none; pointer-events: none; }
.eva-personal-directory-picker__label { min-width: 0; flex: 0 1 auto; pointer-events: none; }
.eva-personal-directory-picker select { position: absolute; inset: 0; box-sizing: border-box; width: 100%; height: 100%; opacity: 0; border: 0; cursor: pointer; font: inherit; }
.eva-personal-directory-picker:focus-within { outline: 2px solid var(--eva-border-focus); outline-offset: 2px; }
