/* ============================================================
   codex-mgmt.css — 管理（项目 / 用户）
   对标：Codex 26.1007.2314 team-settings-page（页头 + 搜索 + Invite +
         underline tabs + 成员行）+ Badge soft + Library 列表列节奏
   命名：.cdx-mgmt-*；字号照抄 Codex electron 真值（24/18/16/14/13/11）
   ============================================================ */

:root{
  --mgmt-content-max: var(--page-wide-max);
  --mgmt-content-pad: var(--page-directory-pad);
  --mgmt-btn-h: 32px;
  --mgmt-row-h: 44px;
  --mgmt-ghost-hover: rgba(0, 0, 0, .05);
  --mgmt-ghost-hover-50: rgba(0, 0, 0, .025);
  --mgmt-border-subtle: color-mix(in oklab, var(--color-foreground) 5%, transparent);
  --mgmt-border-light: color-mix(in oklab, var(--color-foreground) 8%, transparent);
  --mgmt-border-strong: color-mix(in oklab, var(--color-foreground) 12%, transparent);
  --mgmt-text-secondary: color-mix(in oklab, var(--color-foreground) 65%, transparent);
  --mgmt-text-tertiary: color-mix(in oklab, var(--color-foreground) 50%, transparent);
  --mgmt-surface-elevated: color-mix(in oklab, var(--color-foreground) 2%, transparent);
}
.dark, .theme-zai-dark{
  --mgmt-ghost-hover: rgba(255, 255, 255, .1);
  --mgmt-ghost-hover-50: rgba(255, 255, 255, .05);
}

/* ---------- 页面壳（同资料库 / GPT 商店：整页 panel 卡） ---------- */
.cdx-mgmt-root{
  position:relative;height:100%;min-height:0;
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--color-background);color:var(--color-foreground);
}

.cdx-mgmt-sticky{
  position:sticky;top:0;z-index:20;flex-shrink:0;
  background:var(--color-panel);
  border-bottom:1px solid transparent;
  transition:border-color .15s ease;
}
.cdx-mgmt-sticky.is-stuck{border-bottom-color:var(--mgmt-border-subtle)}

.cdx-mgmt-head{padding:16px var(--mgmt-content-pad) 0}
.cdx-mgmt-head-inner{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  max-width:var(--mgmt-content-max);margin:0 auto;
}
.cdx-mgmt-titleblock{display:flex;flex-direction:column;gap:2px;min-width:0}
.cdx-mgmt-h1{
  margin:0;display:flex;align-items:center;min-height:36px;
  font-size:var(--text-ui-2xl);font-weight:600;line-height:1.4;
  letter-spacing:0;color:var(--color-foreground);
}
.cdx-mgmt-sub{
  margin:0;max-width:46ch;
  font-size:var(--mgmt-fs-base);line-height:24px;
  color:var(--mgmt-text-secondary);
}
.cdx-mgmt-toolbar{display:flex;align-items:center;gap:12px;flex-shrink:0;padding-top:2px;flex-wrap:wrap;justify-content:flex-end}

/* 搜索（Codex team search / gpt search：胶囊 h-32 · 240px） */
.cdx-mgmt-search{
  position:relative;flex:none;
  width:240px;min-width:160px;max-width:240px;
  display:flex;align-items:center;height:var(--mgmt-btn-h);gap:8px;
  border:1px solid var(--mgmt-border-strong);
  border-radius:var(--radius-full);
  background:transparent;padding:0 12px;color:var(--color-foreground);
  transition:border-color .15s ease;
}
.cdx-mgmt-search:focus-within{border-color:color-mix(in oklab, var(--color-foreground) 40%, transparent)}
.cdx-mgmt-search-ico{display:inline-flex;color:var(--mgmt-text-tertiary);line-height:0;flex-shrink:0}
.cdx-mgmt-search-input{
  min-width:0;flex:1;border:0;outline:none;background:transparent;
  font:inherit;font-size:var(--mgmt-fs-sm);line-height:20px;
  color:var(--color-foreground);
}
.cdx-mgmt-search-input::placeholder{color:color-mix(in oklab, var(--color-foreground) 45%, transparent)}

/* 主按钮 */
.cdx-mgmt-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:var(--mgmt-btn-h);padding:0 14px;border:1px solid transparent;
  border-radius:var(--radius-full);
  font-size:var(--mgmt-fs-sm);font-weight:500;line-height:1;cursor:pointer;
  transition:background .12s ease,color .12s ease,opacity .12s ease;
  white-space:nowrap;
}
.cdx-mgmt-btn--primary{
  background:var(--color-foreground);color:var(--color-foreground-inverse);
}
.cdx-mgmt-btn--primary:hover{opacity:.88}
.cdx-mgmt-btn--ghost{
  background:transparent;color:var(--mgmt-text-secondary);border-radius:var(--radius-lg);
}
.cdx-mgmt-btn--ghost:hover{background:var(--mgmt-ghost-hover);color:var(--color-foreground)}
.cdx-mgmt-btn--danger:hover{
  background:var(--color-destructive-surface);color:var(--color-destructive);
}
.cdx-mgmt-btn svg{flex-shrink:0}

/* underline tabs（Codex SegmentedControl variant:"underline" / gpt utabs） */
.cdx-mgmt-utabs{
  display:flex;align-items:center;gap:24px;
  max-width:var(--mgmt-content-max);margin:12px auto 0;
  padding:0 var(--mgmt-content-pad);
  border-bottom:1px solid var(--mgmt-border-light);
}
.cdx-mgmt-utab{
  position:relative;display:inline-flex;align-items:center;gap:8px;
  padding:6px 2px 10px;border:0;background:transparent;
  color:var(--mgmt-text-secondary);font-size:var(--mgmt-fs-base);font-weight:500;
  line-height:20px;cursor:pointer;transition:color .12s ease;
}
.cdx-mgmt-utab:hover{color:var(--color-foreground)}
.cdx-mgmt-utab.is-active{color:var(--color-foreground)}
.cdx-mgmt-utab.is-active::after{
  content:'';position:absolute;inset-inline:0;bottom:-1px;height:2px;
  background:var(--color-foreground);border-radius:1px;
}
.cdx-mgmt-utab-ico{display:inline-flex;line-height:0;color:inherit;opacity:.85}
.cdx-mgmt-utab-count{
  font-size:var(--mgmt-fs-sm);font-weight:500;
  color:var(--mgmt-text-tertiary);
}
.cdx-mgmt-utab.is-active .cdx-mgmt-utab-count{color:var(--mgmt-text-secondary)}

/* ---------- 滚动体 ---------- */
.cdx-mgmt-scroll{position:relative;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}
.cdx-mgmt-page{
  width:100%;max-width:var(--mgmt-content-max);
  margin:0 auto;padding:20px var(--mgmt-content-pad) 48px;
  container-type:inline-size;
}

/* 指标条：扁平 elevated，不对标旧四卡 dashboard */
.cdx-mgmt-stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;margin-bottom:20px;
}
@container (max-width:720px){
  .cdx-mgmt-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.cdx-mgmt-stat{
  display:flex;flex-direction:column;gap:4px;
  min-width:0;padding:12px 14px;
  border-radius:var(--radius-xl);
  background:var(--mgmt-surface-elevated);
  border:1px solid var(--mgmt-border-subtle);
}
.cdx-mgmt-stat-v{
  font-size:var(--mgmt-fs-lg);font-weight:600;line-height:24px;
  letter-spacing:0;color:var(--color-foreground);
  font-variant-numeric:tabular-nums;
}
.cdx-mgmt-stat-l{
  font-size:var(--mgmt-fs-xs);line-height:16px;
  color:var(--mgmt-text-tertiary);
}

/* ---------- 列表（Library list 节奏） ---------- */
.cdx-mgmt-list{display:flex;flex-direction:column;min-width:0}
.cdx-mgmt-listhead{
  position:relative;display:flex;align-items:center;gap:16px;
  height:42px;padding:0 12px;
  font-size:var(--mgmt-fs-base);line-height:20px;
  color:var(--mgmt-text-secondary);user-select:none;
}
.cdx-mgmt-listhead::after{
  content:'';position:absolute;left:12px;right:12px;bottom:0;height:1px;
  background:var(--mgmt-border-subtle);
}
.cdx-mgmt-col{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cdx-mgmt-col--name{flex:1.2;min-width:120px}
.cdx-mgmt-col--owner{width:96px;flex-shrink:0}
.cdx-mgmt-col--mem{width:64px;flex-shrink:0}
.cdx-mgmt-col--date{width:108px;flex-shrink:0}
.cdx-mgmt-col--storage{width:80px;flex-shrink:0}
.cdx-mgmt-col--status{width:88px;flex-shrink:0}
.cdx-mgmt-col--acts{width:148px;flex-shrink:0;text-align:end}
.cdx-mgmt-col--email{flex:1;min-width:140px}
.cdx-mgmt-col--role{width:88px;flex-shrink:0}
.cdx-mgmt-col--team{width:140px;flex-shrink:0}
.cdx-mgmt-col--quota{width:110px;flex-shrink:0}

.cdx-mgmt-row{
  position:relative;display:flex;align-items:center;gap:16px;
  min-height:var(--mgmt-row-h);padding:0 12px;
  border-radius:var(--radius-lg);cursor:default;user-select:none;
}
.cdx-mgmt-row:hover{background:var(--mgmt-ghost-hover)}
.cdx-mgmt-row:focus-visible{
  outline:2px solid var(--color-ring);outline-offset:2px;
}
.cdx-mgmt-row .cdx-mgmt-col{
  font-size:var(--mgmt-fs-base);line-height:20px;color:var(--color-foreground);
}
.cdx-mgmt-row .cdx-mgmt-col--muted{color:var(--mgmt-text-secondary)}
.cdx-mgmt-name{
  display:flex;align-items:center;gap:10px;min-width:0;
}
.cdx-mgmt-avatar{
  width:28px;height:28px;flex-shrink:0;border-radius:var(--radius-full);
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--mgmt-ghost-hover);color:var(--mgmt-text-secondary);
  font-size:var(--mgmt-fs-xs);font-weight:600;line-height:1;
  text-transform:uppercase;
}
.cdx-mgmt-avatar--tile{
  border-radius:8px;
  border:1px solid var(--mgmt-border-light);
  background:transparent;
}
.cdx-mgmt-name-text{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-weight:500;
}

/* soft badge（Codex Badge soft + pill） */
.cdx-mgmt-badge{
  display:inline-flex;align-items:center;
  height:18px;padding:0 6px;border-radius:var(--radius-full);
  font-size:var(--mgmt-fs-xs);font-weight:500;line-height:1;white-space:nowrap;
}
.cdx-mgmt-badge--success{
  background:var(--color-success-surface);
  color:var(--color-success);
}
.cdx-mgmt-badge--secondary{
  background:var(--mgmt-surface-elevated);
  color:var(--mgmt-text-tertiary);
  border:1px solid var(--mgmt-border-light);
}
/* 等待审批 = confirmation 绿（AGENTS.md；禁 warning 橙） */
.cdx-mgmt-badge--pending{
  background:var(--color-interaction-confirmation-surface);
  color:var(--color-interaction-confirmation-foreground);
}
.cdx-mgmt-badge--admin{
  background:var(--color-destructive-surface);
  color:var(--color-destructive);
}
.cdx-mgmt-badge--researcher{
  background:var(--color-interaction-ask-surface);
  color:var(--color-interaction-ask-foreground);
}
.cdx-mgmt-badge--guest{
  background:var(--mgmt-surface-elevated);
  color:var(--mgmt-text-secondary);
}

/* 行操作：hover 才显（Library r-acts） */
.cdx-mgmt-acts{
  display:flex;align-items:center;justify-content:flex-end;gap:2px;
  opacity:0;transition:opacity .12s ease;
}
.cdx-mgmt-row:hover .cdx-mgmt-acts,
.cdx-mgmt-row:focus-within .cdx-mgmt-acts{opacity:1}
@media (hover:none){
  .cdx-mgmt-acts{opacity:1}
}
.cdx-mgmt-act{
  display:inline-flex;align-items:center;justify-content:center;
  height:28px;padding:0 8px;border:0;border-radius:var(--radius-md);
  background:transparent;color:var(--mgmt-text-secondary);
  font:inherit;font-size:var(--mgmt-fs-sm);font-weight:500;cursor:pointer;
  white-space:nowrap;
}
.cdx-mgmt-act:hover{background:var(--mgmt-ghost-hover);color:var(--color-foreground)}
.cdx-mgmt-act--danger:hover{
  background:var(--color-destructive-surface);color:var(--color-destructive);
}

/* 空态 */
.cdx-mgmt-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;padding:48px 16px;text-align:center;
}
.cdx-mgmt-empty-title{
  font-size:var(--mgmt-fs-lg);font-weight:500;line-height:24px;
  color:var(--color-foreground);
}
.cdx-mgmt-empty-desc{
  font-size:var(--mgmt-fs-base);line-height:22px;
  color:var(--mgmt-text-secondary);max-width:36ch;
}

@media (max-width:900px){
  .cdx-mgmt-head,.cdx-mgmt-utabs,.cdx-mgmt-page{padding-left:24px;padding-right:24px}
  .cdx-mgmt-utabs{padding-left:24px;padding-right:24px}
  .cdx-mgmt-col--date,
  .cdx-mgmt-col--storage,
  .cdx-mgmt-col--team,
  .cdx-mgmt-col--quota{display:none}
  .cdx-mgmt-col--acts{width:120px}
}

/* ---------- 嵌入设置页（侧栏已切换分区；无整页壳） ---------- */
.cdx-mgmt-embed{
  display:flex;flex-direction:column;gap:16px;min-width:0;
  container-type:inline-size;
}
.cdx-mgmt-embed-lead{
  margin:0;font-size:var(--mgmt-fs-base);line-height:22px;
  color:var(--mgmt-text-secondary);
}
.cdx-mgmt-embed .cdx-mgmt-toolbar{
  justify-content:flex-start;padding-top:0;flex-wrap:wrap;
}
.cdx-mgmt-embed .cdx-mgmt-stats{margin-bottom:0}
.cdx-mgmt-embed .cdx-mgmt-acts{opacity:1}
@container (max-width:720px){
  .cdx-mgmt-embed .cdx-mgmt-col--date,
  .cdx-mgmt-embed .cdx-mgmt-col--storage,
  .cdx-mgmt-embed .cdx-mgmt-col--team,
  .cdx-mgmt-embed .cdx-mgmt-col--quota{display:none}
  .cdx-mgmt-embed .cdx-mgmt-col--acts{width:120px}
}

/* Member identity stays together; both ends remain visible when scrolling. */
.cdx-mgmt-identity{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}
.cdx-mgmt-member-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-ui-sm);color:var(--color-foreground-subtle)}
.zc-settings-page .cdx-mgmt-list.cdx-mgmt-users{min-width:780px;gap:0}
.cdx-mgmt-users :is(.cdx-mgmt-listhead,.cdx-mgmt-row){display:grid;grid-template-columns:minmax(180px,1.6fr) 66px minmax(110px,1fr) 76px 105px 68px 96px;gap:var(--sp-3)}
.cdx-mgmt-users .cdx-mgmt-col{width:auto;min-width:0}
.zc-settings-page .cdx-mgmt-users .cdx-mgmt-row{min-height:var(--sp-16);border-bottom:1px solid var(--color-border-subtle);border-radius:0}
.cdx-mgmt-users :is(.cdx-mgmt-col--name,.cdx-mgmt-col--acts){position:sticky;z-index:1;background:var(--color-card);align-self:stretch;display:flex;align-items:center}
.cdx-mgmt-users .cdx-mgmt-col--name{left:0;padding-right:var(--sp-2)}
.cdx-mgmt-users .cdx-mgmt-col--acts{right:0;justify-content:flex-end;padding-left:var(--sp-2)}
.cdx-mgmt-users .cdx-mgmt-row{--member-row-bg:var(--color-card);background:var(--member-row-bg)}
.cdx-mgmt-users .cdx-mgmt-row:hover{--member-row-bg:color-mix(in srgb,var(--color-foreground) 5%,var(--color-card));background:var(--member-row-bg)}
.cdx-mgmt-users .cdx-mgmt-row :is(.cdx-mgmt-col--name,.cdx-mgmt-col--acts){background:var(--member-row-bg)}
.cdx-mgmt-users .cdx-mgmt-acts{gap:var(--sp-2)}
