/*
 * 医知荟正式界面 V1：仅呈现层。
 * 所有正式改造均限定在 html[data-ui="v1"] 下；classic 不命中任何规则。
 * 业务 DOM、接口、文件桥、流式生成和分析引擎不在本文件职责范围内。
 */

.ui-version-btn{
  min-height:24px;
  padding:2px 7px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--panel);
  color:var(--text-dim);
  font-family:inherit;
  font-size:10.5px;
  font-weight:600;
  line-height:1.2;
  cursor:pointer;
  white-space:nowrap;
}
.ui-version-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.ui-version-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
:root[data-ui="v1"]{
  --v1-control-h:36px;
  --v1-control-sm:32px;
  --v1-radius:8px;
  --v1-radius-lg:12px;
  --v1-focus:color-mix(in srgb,var(--accent) 38%,transparent);
  --v1-shadow:0 8px 24px rgba(24,32,48,.10);
  /* 八套皮肤统一保证辅助信息不再淡到不可读。 */
  --text-faint:color-mix(in srgb,var(--text) 64%,var(--panel));
}

/* 按钮层级：主操作纯品牌色，普通操作平面化，常用点击目标不低于 32px。 */
:root[data-ui="v1"] .btn{
  min-height:var(--v1-control-h);
  padding:0 14px;
  border-radius:var(--v1-radius);
  background:var(--panel);
  color:var(--text);
  box-shadow:none;
  font-weight:600;
}
:root[data-ui="v1"] .btn:hover{
  background:var(--panel-hover);
  border-color:color-mix(in srgb,var(--accent) 38%,var(--border));
  box-shadow:none;
}
:root[data-ui="v1"] .btn-primary{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
  box-shadow:0 2px 5px rgba(24,32,48,.16);
}
:root[data-ui="v1"] .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 3px 8px rgba(24,32,48,.18)}
:root[data-ui="v1"] .btn-sm{min-height:var(--v1-control-sm);padding:0 11px;font-size:12px}
:root[data-ui="v1"] a.btn-link{display:inline-flex;align-items:center;text-decoration:none}
:root[data-ui="v1"] .btn:focus-visible,
:root[data-ui="v1"] .qchip:focus-visible,
:root[data-ui="v1"] .fn button:focus-visible{
  outline:2px solid var(--v1-focus);
  outline-offset:2px;
}

/* 左栏：总控台回归导航语义，新建项目保留为唯一常驻入口。 */
:root[data-ui="v1"] .fn-master{
  justify-content:flex-start;
  color:var(--text-dim)!important;
  background:transparent!important;
  box-shadow:none;
  border:1px solid transparent;
  padding:8px 11px;
}
:root[data-ui="v1"] .fn-master:hover{color:var(--text)!important;background:var(--panel)!important;box-shadow:none}
:root[data-ui="v1"] .fn-master.active{
  color:var(--accent)!important;
  background:var(--accent-soft)!important;
  border-color:transparent;
  box-shadow:inset 3px 0 0 var(--accent);
}
:root[data-ui="v1"] .fn .fn-new{
  min-height:36px;
  border-radius:var(--v1-radius);
  background:var(--panel);
  font-weight:600;
}
:root[data-ui="v1"] .sidebar>.proj-head>button{display:none}
:root[data-ui="v1"] .proj{padding:10px 11px;border-radius:var(--v1-radius);border-left-width:3px}
:root[data-ui="v1"] .proj.active{background:var(--accent-soft);color:var(--text);border-left-color:var(--accent)}
:root[data-ui="v1"] .svc-kefu{background:var(--panel);border-color:var(--border);color:var(--text)}
:root[data-ui="v1"] .svc-kefu:hover{background:var(--panel-hover);border-color:var(--accent);color:var(--accent);filter:none}
:root[data-ui="v1"] .side-foot{gap:6px;padding-inline:12px}

/* 修复已确认的浅色背景配白字对比度错误。 */
:root[data-ui="v1"] .fn button[data-v].active,
:root[data-ui="v1"] .titem.up:hover,
:root[data-ui="v1"] .titem.sel,
:root[data-ui="v1"] .trow.sel{
  background:var(--accent-soft);
  color:var(--accent);
}

/* 真实数据位置 / 计算位置 / 文件访问状态条。 */
:root[data-ui="v1"] .ui-context-strip{
  display:flex!important;
  align-items:center;
  gap:7px;
  min-height:42px;
  padding:7px 22px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--panel) 82%,var(--accent-soft));
  color:var(--text-dim);
  flex:0 0 auto;
  overflow-x:auto;
  scrollbar-width:none;
}
:root[data-ui="v1"] .ui-context-strip::-webkit-scrollbar{display:none}
:root[data-ui="v1"] .ui-context-kicker{font-size:10.5px;color:var(--text-faint);white-space:nowrap}
:root[data-ui="v1"] .ui-context-pill{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:27px;
  padding:3px 9px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--panel);
  font-size:11.5px;
  white-space:nowrap;
}
:root[data-ui="v1"] .ui-context-pill b{color:var(--text);font-weight:650}
:root[data-ui="v1"] .ui-context-pill.edition{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--accent);background:var(--accent-soft);font-weight:700}
:root[data-ui="v1"] .ui-context-pill.ok{color:#247a4b;border-color:color-mix(in srgb,#247a4b 30%,var(--border));background:color-mix(in srgb,#e8f5ed 75%,var(--panel))}
:root[data-ui="v1"] .ui-context-pill.warn{color:#9a650d;border-color:color-mix(in srgb,#9a650d 32%,var(--border));background:color-mix(in srgb,#fff4dc 78%,var(--panel))}
:root[data-ui="v1"] .ui-context-pill.off{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 32%,var(--border));background:color-mix(in srgb,var(--danger) 8%,var(--panel))}

/* Composer：保留原 textarea/sendBtn 和流式链路，只改变容器呈现。 */
:root[data-ui="v1"] .composer{padding:12px 0 14px;background:var(--panel)}
:root[data-ui="v1"] .qbar{gap:7px;margin-bottom:8px}
:root[data-ui="v1"] .qchip{
  min-height:var(--v1-control-sm);
  padding:5px 11px;
  border-radius:var(--v1-radius);
  background:var(--panel);
  box-shadow:none;
}
:root[data-ui="v1"] .qchip:hover{background:var(--accent-soft);box-shadow:none}
:root[data-ui="v1"] .qchip-primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:none}
:root[data-ui="v1"] .qbar-project .q-new-project,
:root[data-ui="v1"] .qbar-project .qsep{display:none}
:root[data-ui="v1"] .composer .cwrap{
  margin:0 32px;
  padding:5px;
  gap:5px;
  border:1px solid var(--border);
  border-radius:var(--v1-radius-lg);
  background:var(--panel);
  box-shadow:0 1px 3px rgba(24,32,48,.05);
  transition:border-color .14s,box-shadow .14s;
}
:root[data-ui="v1"] .composer .cwrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
:root[data-ui="v1"] .composer textarea{
  min-height:38px;
  padding:8px 10px;
  border:0!important;
  border-radius:8px;
  background:transparent;
  box-shadow:none!important;
  outline:none!important;
}
:root[data-ui="v1"] .composer .cwrap > .ui-compose-actions > #sendBtn{
  width:38px;
  height:38px;
  border-radius:9px;
  background:var(--accent);
  box-shadow:none;
}
:root[data-ui="v1"] .composer .cwrap > .ui-compose-actions > #sendBtn:hover{background:var(--accent-hover);box-shadow:none}

/* 下一阶段 CTA：浅色信息卡，避免与发送主按钮争夺视觉焦点。 */
:root[data-ui="v1"] button.plan-next{
  width:calc(100% - 24px);
  min-height:58px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:10px;
  margin:8px 12px 3px;
  padding:8px 11px;
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));
  border-radius:10px;
  background:var(--accent-soft);
  color:var(--accent);
  text-align:left;
  cursor:pointer;
}
:root[data-ui="v1"] button.plan-next:hover{filter:none;border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 75%,var(--panel))}
:root[data-ui="v1"] .plan-next-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
:root[data-ui="v1"] .plan-next-copy small{font-size:10.5px;color:var(--text-faint);font-weight:600}
:root[data-ui="v1"] .plan-next-copy b{font-size:12.5px;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .plan-next-go{font-size:18px;line-height:1}

/* Markdown 成果工具栏：常用操作常驻，其余进入原生 details 菜单。 */
:root[data-ui="v1"] .pv-fn .pv-actions{position:relative;flex-wrap:nowrap;gap:6px}
:root[data-ui="v1"] .pv-overflow{position:relative;display:inline-flex}
:root[data-ui="v1"] .pv-overflow>summary{list-style:none;cursor:pointer}
:root[data-ui="v1"] .pv-overflow>summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .pv-overflow-menu{
  position:absolute;
  z-index:90;
  top:calc(100% + 6px);
  right:0;
  min-width:190px;
  display:grid;
  gap:3px;
  padding:6px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--panel);
  box-shadow:var(--v1-shadow);
}
:root[data-ui="v1"] .pv-overflow-menu>.btn,
:root[data-ui="v1"] .pv-overflow-menu>.btn-link{
  width:100%;
  justify-content:flex-start;
  margin:0!important;
  border-color:transparent;
  background:transparent;
  color:var(--text);
  box-shadow:none;
}
:root[data-ui="v1"] .pv-overflow-menu>.btn:hover,
:root[data-ui="v1"] .pv-overflow-menu>.btn-link:hover{background:var(--panel-hover);color:var(--accent)}

@media(max-width:1024px){
  :root[data-ui="v1"] .ui-context-strip{padding-inline:14px}
  :root[data-ui="v1"] .composer .cwrap{margin-inline:14px}
  :root[data-ui="v1"] .qbar{padding-inline:14px}
}

@media(prefers-reduced-motion:reduce){
  :root[data-ui="v1"] *{transition-duration:.001ms!important}
}

/* ========================================================================== *
 * Full shell V1
 *
 * The selectors below deliberately mirror ui-button-demo-v1.html.  They are
 * all rooted at html[data-ui="v1"] so the classic interface keeps its exact
 * historical layout and behaviour.
 * ========================================================================== */
/* The full-shell DOM also exists while the runtime switch is on Classic.
   Flatten only the two legacy content wrappers and hide V1 chrome so Classic
   retains its pre-V1 tree/plan layout byte-for-byte in presentation. */
:root[data-ui="classic"] .ui-appbar,
:root[data-ui="classic"] .ui-project-search,
:root[data-ui="classic"] .ui-inspector-head,
:root[data-ui="classic"] .ui-inspector-tabs,
:root[data-ui="classic"] #uiFileState,
:root[data-ui="classic"] #inspectorPanelAudit{display:none!important}
:root[data-ui="classic"] #inspectorPanelFlow,
:root[data-ui="classic"] #inspectorPanelFiles{display:contents!important}

:root[data-ui="v1"]{
  --ui-bg:#f4f5f7;
  --ui-surface:#ffffff;
  --ui-surface-subtle:#f7f8fa;
  --ui-surface-muted:#eef1f5;
  --ui-border:#dfe3e8;
  --ui-border-strong:#c9d0d8;
  --ui-text:#17202a;
  --ui-text-muted:#596574;
  --ui-text-faint:#687587;
  --ui-accent:#315f8d;
  --ui-accent-hover:#274f77;
  --ui-accent-soft:#e8f0f8;
  --ui-accent-ring:#89acd0;
  --ui-success:#247a4b;
  --ui-success-soft:#e8f5ed;
  --ui-warning:#9a650d;
  --ui-warning-soft:#fff4dc;
  --ui-danger:#b13d35;
  --ui-danger-soft:#fdecea;
  --ui-shadow-float:0 16px 40px rgba(24,38,54,.16);
  /* 【界面字号 · 手动调节】外壳框架尺寸一律除以 --ui-fs-zoom，是本机制的核心取舍：
     zoom 会把后代的一切按 Z 放大，若框架尺寸不除回去，三栏的【物理宽度】就跟着变大 →
     1128px 的三栏最小宽 ×1.3 = 1466 设备像素，1280 笔记本必然溢出，而 @media/matchMedia 完全看不见
     元素级 zoom（实测：innerWidth / clientWidth / matchMedia 在 zoom 前后逐字节相同），
     于是 body 的 overflow:hidden 会把检查器那一栏【静默剪掉、连滚动条都没有】。
     除以 Z 之后：框架物理尺寸恒定，栏内文字/图标/间距变大 —— 这正是"把字调大"的语义
     （同一物理宽度里字更大 ⇒ 每栏装的内容更少），而且从根上不需要按窗口宽度封顶。
     --ui-fs-zoom 未定义时每个 calc 都退化为原值，默认态逐像素不变。 */
  --ui-topbar:calc(46px / var(--ui-fs-zoom,1));
  --ui-sidebar:calc(272px / var(--ui-fs-zoom,1));
  --ui-inspector:calc(336px / var(--ui-fs-zoom,1));
  --ui-right-host:calc(796px / var(--ui-fs-zoom,1));
  --ui-radius-sm:6px;
  --ui-radius:8px;
  --ui-radius-lg:12px;

  /* Existing application components inherit the same tokens as the demo. */
  --bg:var(--ui-bg);
  --col:var(--ui-surface);
  --panel:var(--ui-surface);
  --panel-2:var(--ui-surface-muted);
  --panel-hover:var(--ui-surface-muted);
  --border:var(--ui-border);
  --border-soft:var(--ui-border);
  --text:var(--ui-text);
  --text-dim:var(--ui-text-muted);
  --text-faint:var(--ui-text-faint);
  --accent:var(--ui-accent);
  --accent-hover:var(--ui-accent-hover);
  --accent-soft:var(--ui-accent-soft);
  --danger:var(--ui-danger);
  --warn:var(--ui-warning);
  --link:var(--ui-accent);

  width:100%;
  height:100%;
  overflow:hidden;
}

:root[data-ui="v1"] body{
  display:grid;
  grid-template-areas:
    "appbar appbar appbar"
    "sidebar center preview";
  grid-template-columns:var(--ui-sidebar) minmax(calc(520px / var(--ui-fs-zoom,1)),1fr) minmax(calc(796px / var(--ui-fs-zoom,1)),1.65fr);
  grid-template-rows:var(--ui-topbar) minmax(0,1fr);
  /* zoom（不是 transform）：实测 zoom 不为 position:fixed 后代创建包含块，而 transform:scale 会
     —— 同一个 `position:fixed;inset:0` 子元素在 zoom:1.3 下量得 604x415@0,0（正确），在
     transform:scale(1.3) 下量得 785x39@0,39（错位）。本页有 30 处 document.body.appendChild 的
     position:fixed 弹层（模态/登录遮罩/上传遮罩/吐司/右键菜单），所以 transform 方案直接判死。
     zoom 还能免改地缩放全部 811 处硬编码 px（本仓 font-size 的 rem/em/% 用量实测为 0）。 */
  zoom:var(--ui-fs-zoom,1);
  width:calc(100vw / var(--ui-fs-zoom,1));
  min-width:0;
  height:calc(100vh / var(--ui-fs-zoom,1));
  margin:0;
  overflow:hidden;
  background:var(--ui-bg);
  color:var(--ui-text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
  font-size:14px;
}
:root[data-ui="v1"] body>#splitL,
:root[data-ui="v1"] body>#splitR{display:none!important}
:root[data-ui="v1"] body>.sidebar{grid-area:sidebar}
:root[data-ui="v1"] body>#centerCol{grid-area:center}
:root[data-ui="v1"] body>#previewAside{grid-area:preview}
:root[data-ui="v1"] body:not(.ui-artifact-open){grid-template-columns:var(--ui-sidebar) minmax(calc(520px / var(--ui-fs-zoom,1)),1fr) var(--ui-inspector)}
:root[data-ui="v1"] body:not(.ui-artifact-open).ui-inspector-collapsed{grid-template-columns:var(--ui-sidebar) minmax(calc(520px / var(--ui-fs-zoom,1)),1fr) 0}

/* Dark product bar. */
:root[data-ui="v1"] .ui-appbar{
  grid-area:appbar;
  position:fixed;
  inset:0 0 auto 0;
  width:calc(100vw / var(--ui-fs-zoom,1));
  min-width:0;
  height:var(--ui-topbar);
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 16px;
  border-bottom:1px solid #223d5a;
  background:#17324f;
  color:#fff;
  z-index:80;
}
:root[data-ui="v1"] .ui-appbar-title{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  color:#fff;
  font-weight:700;
  letter-spacing:.2px;
  white-space:nowrap;
}
:root[data-ui="v1"] .ui-appbar-title small,
:root[data-ui="v1"] .ui-appbar-title .ui-appbar-note{color:#c8d7e6;font-size:12px;font-weight:400}
:root[data-ui="v1"] .ui-appbar-actions{margin-left:auto;display:flex;align-items:center;gap:7px}
:root[data-ui="v1"] .ui-appbar-actions .btn,
:root[data-ui="v1"] .ui-appbar-actions button{
  min-height:30px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:7px;
  background:transparent;
  color:#fff;
  box-shadow:none;
  font-size:12.5px;
}
:root[data-ui="v1"] .ui-appbar-actions .btn:hover,
:root[data-ui="v1"] .ui-appbar-actions button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.36)}
:root[data-ui="v1"] .ui-appbar-actions .on,
:root[data-ui="v1"] .ui-appbar-actions [aria-pressed="true"]{background:#fff;color:#17324f;border-color:#fff}
:root[data-ui="v1"] .ui-edition-chip{
  min-height:28px;
  display:inline-flex;
  align-items:center;
  padding:0 12px;
  border-radius:6px;
  color:#d9e6f2;
  font-size:12.5px;
  font-weight:600;
}
:root[data-ui="v1"] .ui-edition-chip.active{background:#fff;color:#17324f}
:root[data-ui="v1"] .ui-edition-chip[hidden]{display:none!important}

/* Complete demo button family (applies only to V1). */
:root[data-ui="v1"] .btn-secondary{background:var(--ui-surface);border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"] .btn-secondary:hover{background:var(--ui-surface-subtle);border-color:#aeb8c3}
:root[data-ui="v1"] .btn-quiet{background:transparent;border-color:transparent;color:var(--ui-text-muted);padding-inline:10px;box-shadow:none}
:root[data-ui="v1"] .btn-quiet:hover{background:var(--ui-surface-muted);border-color:transparent;color:var(--ui-text)}
:root[data-ui="v1"] .btn-icon{width:36px;height:36px;min-height:36px;padding:0;border-color:var(--ui-border);background:var(--ui-surface);color:var(--ui-text-muted)}
:root[data-ui="v1"] .btn-icon:hover{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"] .btn-danger{background:var(--ui-surface);border-color:#d9aaa6;color:var(--ui-danger)}
:root[data-ui="v1"] .btn-danger:hover{background:var(--ui-danger-soft);border-color:#c87770}
:root[data-ui="v1"] .btn-block{width:100%}

/* Left navigation: exact demo proportions and rhythm. */
:root[data-ui="v1"] .sidebar{
  width:auto;
  height:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-right:1px solid var(--ui-border);
  background:#f9fafb;
}
:root[data-ui="v1"] .sidebar .brand{padding:18px 18px 13px;gap:6px;border-bottom:1px solid var(--ui-border)}
:root[data-ui="v1"] .sidebar .brand-logo{height:39px;width:auto}
:root[data-ui="v1"] .sidebar .brand-sub{padding:0;color:var(--ui-text-muted);font-size:11.5px;letter-spacing:.7px}
:root[data-ui="v1"] .sidebar .fn{padding:12px;display:grid;gap:7px;border-bottom:1px solid var(--ui-border)}
:root[data-ui="v1"] .sidebar .fn-master,
:root[data-ui="v1"] .sidebar .fn .fn-new{
  width:100%;
  min-height:38px;
  margin:0;
  padding:0 11px;
  border-radius:var(--ui-radius);
  font-size:13px;
  font-weight:600;
}
:root[data-ui="v1"] .sidebar .fn-master{justify-content:flex-start;color:var(--ui-text-muted)!important;background:transparent!important;border:0;box-shadow:none}
:root[data-ui="v1"] .sidebar .fn-master:hover{background:var(--ui-surface-muted)!important;color:var(--ui-text)!important}
:root[data-ui="v1"] .sidebar .fn-master.active{background:var(--ui-accent-soft)!important;color:var(--ui-accent)!important;box-shadow:inset 3px 0 0 var(--ui-accent)}
:root[data-ui="v1"] .sidebar .fn .fn-new{justify-content:center;background:var(--ui-surface);border:1px solid var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"] .sidebar .fn .fn-new:hover{background:var(--ui-surface-subtle);border-color:#aeb8c3}
:root[data-ui="v1"] .sidebar>.proj-head{padding:14px 14px 8px;color:var(--ui-text-muted);font-size:11px;font-weight:700;letter-spacing:.45px}
:root[data-ui="v1"] .sidebar>#projFn{display:none!important}

/* 研究台账中的研究矩阵是唯一入口：当前项目 / 全部项目 / 指定项目。 */
.matrix-scope-modal{width:min(560px,calc(94vw / var(--ui-fs-zoom,1)));padding:20px}
.matrix-scope-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.matrix-scope-modal>header small{display:block;color:var(--ui-accent);font-size:10px;font-weight:800;letter-spacing:.11em;margin-bottom:3px}
.matrix-scope-modal>header h3{margin:0 0 4px;font-size:17px}
.matrix-scope-modal>header p{margin:0;color:var(--ui-text-muted);font-size:12px;line-height:1.55}
.matrix-scope-close{flex:0 0 34px;width:34px;height:34px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface);color:var(--ui-text-muted);cursor:pointer}
.matrix-scope-close:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
.matrix-scope-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}
.matrix-scope-option{display:flex;min-width:0;min-height:104px;flex-direction:column;align-items:flex-start;text-align:left;gap:4px;padding:13px;border:1px solid var(--ui-border);border-radius:11px;background:var(--ui-surface);color:var(--ui-text);cursor:pointer}
.matrix-scope-option:hover,.matrix-scope-option.primary{border-color:var(--ui-accent);background:var(--ui-accent-soft)}
.matrix-scope-option:disabled{cursor:not-allowed;opacity:.55;border-color:var(--ui-border);background:var(--ui-surface-muted)}
.matrix-scope-option>span{font-size:10.5px;font-weight:750;color:var(--ui-text-muted)}
.matrix-scope-option>b{max-width:100%;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.matrix-scope-option>small{font-size:11px;line-height:1.45;color:var(--ui-text-muted)}
.matrix-scope-search{display:grid;gap:6px;margin-bottom:8px;color:var(--ui-text-muted);font-size:11px;font-weight:650}
.matrix-scope-search input{width:100%;height:36px;padding:0 11px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface);color:var(--ui-text);font:inherit;font-weight:400;outline:none}
.matrix-scope-search input:focus{border-color:var(--ui-accent);box-shadow:0 0 0 3px var(--ui-accent-ring)}
.matrix-scope-list{max-height:min(310px,calc(36vh / var(--ui-fs-zoom,1)));overflow:auto;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface)}
.matrix-scope-project+ .matrix-scope-project{border-top:1px solid var(--ui-border)}
.matrix-scope-project>button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:8px 11px;border:0;background:transparent;color:var(--ui-text);text-align:left;cursor:pointer}
.matrix-scope-project>button:hover,.matrix-scope-project>button[aria-current="true"]{background:var(--ui-surface-muted)}
.matrix-scope-project>button>span:first-child{display:grid;min-width:0;gap:2px}
.matrix-scope-project b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.matrix-scope-project small{font-size:10.5px;color:var(--ui-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.matrix-scope-empty{padding:22px;text-align:center;color:var(--ui-text-muted);font-size:12px}
@media(max-width:620px){.matrix-scope-actions{grid-template-columns:1fr}.matrix-scope-option{min-height:88px}.matrix-scope-list{max-height:calc(30vh / var(--ui-fs-zoom,1))}}
:root[data-ui="v1"] .ui-project-search{
  position:relative;
  display:block;
  flex:0 0 auto;
  margin:0 12px 8px;
}
:root[data-ui="v1"] .ui-project-search>svg,
:root[data-ui="v1"] .ui-project-search>.ic,
:root[data-ui="v1"] .ui-project-search>span{
  position:absolute;
  left:10px;
  top:7px;
  z-index:1;
  width:16px;
  height:16px;
  color:var(--ui-text-faint);
  font-size:16px;
  line-height:16px;
  pointer-events:none;
}
:root[data-ui="v1"] .ui-project-search input,
:root[data-ui="v1"] input.ui-project-search{
  width:100%;
  height:34px;
  padding:0 10px 0 34px;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius);
  background:var(--ui-surface);
  color:var(--ui-text);
  outline:0;
}
:root[data-ui="v1"] input.ui-project-search{width:calc(100% - 24px);margin:0 12px 8px}
:root[data-ui="v1"] .ui-project-search input:focus,
:root[data-ui="v1"] input.ui-project-search:focus{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-accent-ring)}

:root[data-ui="v1"] .projlist{flex:1;min-height:0;padding:0 8px 10px;display:grid;align-content:start;gap:2px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
:root[data-ui="v1"] .proj{
  position:relative;
  width:100%;
  min-height:54px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:3px 8px;
  align-items:center;
  padding:9px 10px;
  border:0;
  border-left:0;
  border-radius:var(--ui-radius);
  background:transparent;
  color:var(--ui-text);
  text-align:left;
}
:root[data-ui="v1"] .proj:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"] .proj.active{background:var(--ui-accent-soft);color:var(--ui-text);border-left:0;box-shadow:inset 3px 0 0 var(--ui-accent)}
:root[data-ui="v1"] .proj .pinfo{grid-column:1;min-width:0}
:root[data-ui="v1"] .proj .pn{font-size:13px;font-weight:650;color:var(--ui-text);line-height:1.35}
:root[data-ui="v1"] .proj .pm{margin-top:3px;color:var(--ui-text-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:root[data-ui="v1"] .proj .pact{grid-column:2;grid-row:1;display:flex;align-items:center;align-self:center;color:var(--ui-text-faint)}
:root[data-ui="v1"] .proj .pact span{min-width:24px;min-height:24px;display:grid;place-items:center;padding:0;border-radius:6px;color:var(--ui-text-faint)}
:root[data-ui="v1"] .proj .pact span:hover{background:rgba(255,255,255,.72);color:var(--ui-text)}
:root[data-ui="v1"] .proj .ui-project-more{
  grid-column:2;
  grid-row:1;
  align-self:center;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--ui-text-faint);
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
:root[data-ui="v1"] .proj .ui-project-more:hover{background:rgba(255,255,255,.72);color:var(--ui-text)}
:root[data-ui="v1"] .ui-project-menu{
  position:fixed;
  z-index:110;
  min-width:190px;
  display:grid;
  gap:3px;
  padding:6px;
  border:1px solid var(--ui-border);
  border-radius:10px;
  background:var(--ui-surface);
  box-shadow:var(--ui-shadow-float);
}
:root[data-ui="v1"] .ui-project-menu.open,
:root[data-ui="v1"] .ui-project-menu.on{display:grid}
:root[data-ui="v1"] .ui-project-menu button{
  min-height:34px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 9px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--ui-text);
  cursor:pointer;
  text-align:left;
}
:root[data-ui="v1"] .ui-project-menu button:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-project-menu .danger{color:var(--ui-danger)}

:root[data-ui="v1"] .sidebar .svc-bar{margin-top:0;padding:10px 12px 4px;border-top:1px solid var(--ui-border)}
:root[data-ui="v1"] .sidebar .svc-btn{min-height:32px;background:transparent;border-color:transparent;color:var(--ui-text-muted);box-shadow:none}
:root[data-ui="v1"] .sidebar .svc-btn:hover{background:var(--ui-surface-muted);border-color:transparent;color:var(--ui-text)}
:root[data-ui="v1"] .sidebar .user-chip{background:transparent;border-color:transparent}
:root[data-ui="v1"] .sidebar .side-foot{padding:8px 12px 10px;gap:7px;border-top:0;background:#f9fafb}

/* Conversation pane. */
:root[data-ui="v1"] .center{
  width:auto;
  height:100%;
  min-height:0;
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-right:1px solid var(--ui-border);
  background:#fbfbfa;
}
:root[data-ui="v1"] .center>.cv-head{
  min-height:57px;
  padding:8px 18px;
  display:flex;
  align-items:center;
  gap:8px;
  border-bottom:1px solid var(--ui-border);
  background:rgba(255,255,255,.93);
  color:var(--ui-text-muted);
  font-size:14px;
}
:root[data-ui="v1"] .center>.cv-head b{color:var(--ui-text);font-weight:700}
:root[data-ui="v1"] .center>.ui-chat-head>span:first-child{min-width:0;flex:1}
:root[data-ui="v1"] .center>.ui-chat-head>span:first-child>small{display:block;margin-top:2px;color:var(--ui-text-muted);font-size:11px;font-weight:400}
:root[data-ui="v1"] .ui-chat-actions{display:flex;align-items:center;gap:8px}
:root[data-ui="v1"] .ui-chat-actions button,
:root[data-ui="v1"] .ui-inspector-head button{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius);
  background:var(--ui-surface);
  color:var(--ui-text-muted);
  cursor:pointer;
}
:root[data-ui="v1"] .ui-chat-actions button:hover,
:root[data-ui="v1"] .ui-inspector-head button:hover{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"] .center .ui-context-strip{
  min-height:auto;
  padding:9px 18px;
  gap:7px;
  flex-wrap:wrap;
  border-bottom:1px solid var(--ui-border);
  background:#f8fafc;
}
:root[data-ui="v1"] .center .ui-context-kicker{font-size:11px;color:var(--ui-text-muted);margin-right:2px}
:root[data-ui="v1"] .center .ui-context-pill{min-height:25px;padding:0 8px;border-color:var(--ui-border);background:var(--ui-surface);font-size:11.5px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .center .ui-context-pill.edition{border-color:#b9cce0;background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"] .center .ui-context-pill.ok{border-color:#b8d8c5;background:var(--ui-success-soft);color:var(--ui-success)}
:root[data-ui="v1"] .center .ui-context-pill.warn{border-color:#e3c98d;background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"] .center .ui-context-pill.off{border-color:#d9aaa6;background:var(--ui-danger-soft);color:var(--ui-danger)}
:root[data-ui="v1"] .messages{padding:22px 24px 16px;background:#fbfbfa}
:root[data-ui="v1"] .messages>.mwrap{max-width:none;margin:0;padding:0}
:root[data-ui="v1"] .msg{
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  gap:10px;
  align-items:start;
  margin-bottom:18px;
}
:root[data-ui="v1"] .msg.user{grid-template-columns:minmax(0,1fr);justify-items:end}
:root[data-ui="v1"] .msg .avatar{width:30px;height:30px;border-radius:8px;background:#244d74;color:#fff;font-size:12px;font-weight:700;box-shadow:none}
:root[data-ui="v1"] .msg.assistant .bubble{
  width:auto;
  max-width:92%;
  min-width:0;
  padding:12px 14px;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-surface);
  color:var(--ui-text);
  line-height:1.65;
}
:root[data-ui="v1"] .msg.user .bubble{
  max-width:92%;
  padding:12px 14px;
  border:1px solid #e5ddce;
  border-radius:var(--ui-radius-lg);
  background:#f0ede5;
  color:var(--ui-text);
  line-height:1.65;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
}
:root[data-ui="v1"] .msg.user .bubble a,
:root[data-ui="v1"] .msg.user .bubble code{max-width:100%;overflow-wrap:anywhere;word-break:break-all}
:root[data-ui="v1"] .msg.assistant:has(> .bubble > .ui-task-card){grid-template-columns:minmax(0,1fr)}
:root[data-ui="v1"] .msg.assistant:has(> .bubble > .ui-task-card)>.avatar{display:none}
:root[data-ui="v1"] .msg.assistant .bubble:has(> .ui-task-card){width:100%;max-width:100%;padding:0;border:0;background:transparent}
:root[data-ui="v1"] .msg.assistant .bubble:has(> .ui-task-card)>.md-stream{
  position:relative;
  width:auto;
  max-width:calc(92% - 40px);
  margin:18px 0 0 40px;
  padding:12px 14px;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-surface);
  color:var(--ui-text);
  line-height:1.65;
}
:root[data-ui="v1"] .msg.assistant .bubble:has(> .ui-task-card)>.md-stream::before{
  content:"医";
  position:absolute;
  top:0;
  left:-40px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#244d74;
  color:#fff;
  font-size:12px;
  font-weight:700;
}
:root[data-ui="v1"] .msg.assistant .bubble:has(> .ui-task-card)>.md-stream:empty,
:root[data-ui="v1"] .msg.assistant .bubble:has(> .ui-task-card)>.md-stream:has(> .stream-skel:only-child){display:none}
/* The activity card now lives in its own semantic slot. Hide only the empty
   answer skeleton; real streamed content remains visible. */
:root[data-ui="v1"] .assistant-turn>.assistant-answer.md-stream:empty,
:root[data-ui="v1"] .assistant-turn>.assistant-answer.md-stream:has(> .stream-skel:only-child){display:none}

/* Structured work log: one quiet status line, expandable evidence rows, answer first at terminal. */
:root[data-ui="v1"] .ui-task-card{
  width:100%;
  margin:0 0 7px;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
:root[data-ui="v1"] .ui-task-head{display:flex;align-items:center;gap:8px;min-height:26px;padding:0;border:0}
:root[data-ui="v1"] .ui-task-head>span{min-width:0;display:flex;align-items:center;gap:7px;flex:1;color:var(--ui-text-muted);font-size:12px;font-weight:600}
:root[data-ui="v1"] .ui-task-head>span::before{content:"";width:7px;height:7px;flex:0 0 7px;border:1.5px solid var(--ui-accent);border-top-color:transparent;border-radius:50%;animation:uiV1Spin .8s linear infinite}
:root[data-ui="v1"] .ui-task-card:not([data-state="running"]) .ui-task-head>span::before{border-color:var(--ui-text-faint);animation:none}
:root[data-ui="v1"] .ui-task-head>span small{margin-left:0;color:var(--ui-text-faint);font-size:10.5px;font-weight:400;font-variant-numeric:tabular-nums}
:root[data-ui="v1"] .ui-task-title{min-width:0;flex:1;color:var(--ui-text);font-size:13px;font-weight:700}
:root[data-ui="v1"] .ui-task-title small,
:root[data-ui="v1"] .ui-task-title span{margin-left:6px;color:var(--ui-text-muted);font-size:11px;font-weight:400}
:root[data-ui="v1"] .ui-task-stop{min-height:32px;padding:0 11px;border:1px solid #d9aaa6;border-radius:7px;background:var(--ui-surface);color:var(--ui-danger);font-size:12px;font-weight:600;cursor:pointer}
:root[data-ui="v1"] .ui-task-stop:hover{background:var(--ui-danger-soft);border-color:#c87770}
:root[data-ui="v1"] .ui-task-head>button{min-height:24px;display:inline-flex;align-items:center;gap:4px;padding:0 7px;border:0;border-radius:6px;background:transparent;color:var(--ui-text-faint);font:inherit;font-size:10.5px;font-weight:600;cursor:pointer}
:root[data-ui="v1"] .ui-task-head>button:hover{background:var(--ui-danger-soft);border-color:#c87770}
:root[data-ui="v1"] .ui-task-body{padding:1px 0 0 14px}
:root[data-ui="v1"] .ui-task-stop-icon{width:12px;height:12px;display:block;flex:0 0 12px}
:root[data-ui="v1"] .ui-task-card .work-line{width:100%;margin:1px 0 3px;padding:0;background:transparent;color:var(--ui-text-faint);font-size:11px;line-height:1.45}
:root[data-ui="v1"] .ui-task-card .work-line .tdots{width:12px;height:12px;display:block;border:1.5px solid #cdd7e1;border-top-color:var(--ui-accent);border-radius:50%;animation:uiV1Spin .8s linear infinite}
:root[data-ui="v1"] .ui-task-card .work-line .tdots i{display:none}
:root[data-ui="v1"] .ui-task-progress{display:block;height:4px;margin:5px 0 4px;background:var(--ui-surface-muted);border-radius:99px;overflow:hidden}
:root[data-ui="v1"] .ui-task-progress>span,
:root[data-ui="v1"] .ui-task-progress>i{display:block;width:0;height:100%;border-radius:99px;background:var(--ui-accent);transition:width .3s ease;animation:none;transform:none}
:root[data-ui="v1"] .ui-task-card[data-state="done"] .ui-task-progress>span,
:root[data-ui="v1"] .ui-task-card[data-state="done"] .ui-task-progress>i{width:100%;animation:none}
:root[data-ui="v1"] .ui-task-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 0;color:var(--ui-text-faint);font-size:10px}
:root[data-ui="v1"] .ui-task-links{display:flex;align-items:center;gap:3px;flex-wrap:wrap;margin:1px -4px 0}
:root[data-ui="v1"] .ui-task-links button,
:root[data-ui="v1"] .ui-task-links a{min-height:23px;display:inline-flex;align-items:center;padding:0 5px;border:0;border-radius:6px;background:transparent;color:var(--ui-text-faint);font:inherit;font-size:10.5px;font-weight:600;text-decoration:none;cursor:pointer}
:root[data-ui="v1"] .ui-task-links button:hover,
:root[data-ui="v1"] .ui-task-links a:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .ui-task-card[data-details-open="false"] .ui-task-detail-slot{display:none}
:root[data-ui="v1"] .ui-task-card .work-steps{margin:3px 0 0;border:0;border-radius:0;background:transparent}
:root[data-ui="v1"] .ui-task-card .work-steps summary{padding:3px 0;font-size:10.5px;line-height:1.35}
:root[data-ui="v1"] .ui-task-card .work-steps .ws-body{max-height:180px;padding:3px 0 2px;gap:2px;overflow:auto;scrollbar-gutter:stable;overscroll-behavior:contain}
:root[data-ui="v1"] .ui-task-card .work-steps .ws-step{font-size:10.75px;line-height:1.42}
:root[data-ui="v1"] .ui-task-card .work-steps .ws-txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-task-detail-slot:empty{display:none}
:root[data-ui="v1"] .work-steps .ws-step{display:grid;grid-template-columns:18px auto minmax(0,1fr) auto auto;align-items:start;column-gap:6px;min-width:0;cursor:pointer}
:root[data-ui="v1"] .work-steps .ws-detail{grid-column:1/-1;padding:3px 4px 3px 24px;border-top:1px dashed var(--ui-border);color:var(--ui-text-faint);font-size:11px;line-height:1.5;cursor:text;overflow-wrap:anywhere}
:root[data-ui="v1"] .work-steps .ws-dot{width:16px;height:16px;display:grid;place-items:center;margin-top:0;border:0;border-radius:999px;background:var(--ui-surface-muted);box-shadow:none;color:var(--ui-text-muted);font:700 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;opacity:1}
:root[data-ui="v1"] .work-steps .ws-dot::before{content:"\2022"}
:root[data-ui="v1"] .work-steps .kind-command .ws-dot::before{content:">_";font-size:7px}
:root[data-ui="v1"] .work-steps .kind-command .ws-txt{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;font-size:10.5px;letter-spacing:.1px}   /* 执行代码行用等宽字(2026-08-15 完整命令展示) */
:root[data-ui="v1"] .work-steps .kind-file_edit .ws-dot::before{content:"\00B1"}
:root[data-ui="v1"] .work-steps .kind-file_read .ws-dot::before{content:"\2261"}
:root[data-ui="v1"] .work-steps .kind-research .ws-dot::before{content:"\2315"}
:root[data-ui="v1"] .work-steps .kind-analysis .ws-dot::before{content:"\223F"}
:root[data-ui="v1"] .work-steps .kind-qc .ws-dot::before{content:"\2691"}   /* ⚑ 质控审核(过程透明) */
:root[data-ui="v1"] .work-steps .kind-notice .ws-dot::before{content:"\2139"}   /* ℹ 运行通知(上下文已自动压缩等·2026-08-15) */
:root[data-ui="v1"] .work-steps .kind-notice .ws-txt{color:var(--ui-text-faint)}
:root[data-ui="v1"] .work-steps .ws-kind{color:var(--ui-text-muted);font-size:10px;font-weight:650;white-space:nowrap}
:root[data-ui="v1"] .work-steps .ws-txt{min-width:0;color:var(--ui-text-muted);overflow-wrap:anywhere}
:root[data-ui="v1"] .work-steps .ws-state{color:var(--ui-text-faint);font-size:9.5px;white-space:nowrap}
:root[data-ui="v1"] .work-steps .ws-dur{color:var(--ui-text-faint);font-size:9.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
:root[data-ui="v1"] .work-steps .state-done .ws-state{color:var(--ui-success)}
:root[data-ui="v1"] .turn-activity>.work-steps .ws-step+.ws-step{border-top:1px dashed var(--ui-border);padding-top:4px;margin-top:4px}
:root[data-ui="v1"] .work-steps .state-running .ws-dot{color:var(--ui-accent)}
:root[data-ui="v1"] .work-steps .state-done .ws-dot{color:var(--ui-success);opacity:.72}
:root[data-ui="v1"] .work-steps .state-adjusting .ws-dot{background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"] .work-steps .state-adjusting .ws-state{color:var(--ui-text-faint);font-weight:500}
:root[data-ui="v1"] .work-steps .state-recovered .ws-dot{background:var(--ui-surface-muted);color:var(--ui-text-muted)}
:root[data-ui="v1"] .work-steps .state-recovered .ws-state{color:var(--ui-text-faint);font-weight:500}
:root[data-ui="v1"] .work-steps .state-failed .ws-dot{background:var(--ui-danger-soft);color:var(--ui-danger)}
:root[data-ui="v1"] .work-steps .state-failed .ws-state{color:var(--ui-danger);font-weight:650}
:root[data-ui="v1"] .work-steps .state-stopped .ws-dot{color:var(--ui-warning)}
:root[data-ui="v1"] .turn-activity>.work-steps{max-width:var(--ui-chat-measure);margin:0 0 7px;border:0;border-radius:0;background:transparent}
:root[data-ui="v1"] .turn-activity>.work-steps>summary{padding:2px 0;color:var(--ui-text-faint);font-size:10.5px;font-weight:600}
:root[data-ui="v1"] .turn-activity>.work-steps[open]>summary{border-bottom:0}
:root[data-ui="v1"] .turn-activity>.work-steps>.ws-body{max-height:220px;padding:5px 0 2px;gap:3px}
:root[data-ui="v1"] .turn-activity>.work-steps .ws-step{font-size:12px}   /* 与思考记录同号字体（2026-08-15 老板要求） */
@keyframes uiV1Spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  :root[data-ui="v1"] .ui-task-card[data-state="queued"] .ui-task-progress>span,
  :root[data-ui="v1"] .ui-task-card[data-state="queued"] .ui-task-progress>i,
  :root[data-ui="v1"] .ui-task-card[data-state="running"] .ui-task-progress>span,
  :root[data-ui="v1"] .ui-task-card[data-state="running"] .ui-task-progress>i{animation:none;transform:none}
}

/* Exact three-mode composer and action row. */
:root[data-ui="v1"] .composer{
  padding:10px 18px 14px;
  border-top:1px solid var(--ui-border);
  background:var(--ui-surface);
}
:root[data-ui="v1"] .composer .qbar{margin:0 0 8px;padding:2px;gap:7px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
:root[data-ui="v1"] .composer .qbar::-webkit-scrollbar{display:none}
:root[data-ui="v1"] .ui-composer-context{
  display:flex;
  align-items:center;
  gap:7px;
  margin-bottom:8px;
  padding:2px;
  overflow-x:auto;
  scrollbar-width:none;
}
:root[data-ui="v1"] .ui-composer-context::-webkit-scrollbar{display:none}
:root[data-ui="v1"] .ui-compose-project,
:root[data-ui="v1"] .ui-exec-badge{
  min-height:25px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0 8px;
  border:1px solid var(--ui-border);
  border-radius:999px;
  background:var(--ui-surface);
  color:var(--ui-text-muted);
  font-size:11.5px;
  font-weight:650;
  white-space:nowrap;
}
:root[data-ui="v1"] .ui-compose-project{margin-left:0}
:root[data-ui="v1"] .ui-compose-project strong{color:var(--ui-text);font-weight:650}
:root[data-ui="v1"] .ui-compose-icon{width:16px;height:16px;display:block;flex:0 0 auto}
:root[data-ui="v1"] .ui-chevron{width:14px;height:14px}
:root[data-ui="v1"] .ui-compose-box,
:root[data-ui="v1"] .composer .cwrap{
  position:relative;
  width:100%;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0;
  align-items:stretch;
  border:1px solid var(--ui-border-strong);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-surface);
  box-shadow:0 1px 3px rgba(24,38,54,.06);
  overflow:visible;
}
:root[data-ui="v1"] .ui-compose-box:focus-within,
:root[data-ui="v1"] .composer .cwrap:focus-within{border-color:var(--ui-accent);box-shadow:0 0 0 3px rgba(49,95,141,.13)}
:root[data-ui="v1"] .ui-compose-box textarea,
:root[data-ui="v1"] .composer .cwrap textarea{
  display:block;
  width:100%;
  min-width:0;
  min-height:70px;
  max-height:150px;
  padding:13px 14px 5px;
  box-sizing:border-box;
  resize:none;
  overflow-y:auto;
  overflow-wrap:anywhere;
  border:0!important;
  border-radius:var(--ui-radius-lg) var(--ui-radius-lg) 0 0;
  background:transparent;
  color:var(--ui-text);
  line-height:1.55;
  outline:0!important;
  box-shadow:none!important;
}
:root[data-ui="v1"] .ui-compose-actions{min-width:0;min-height:52px;display:flex;align-items:center;gap:5px;padding:5px 7px 7px}
:root[data-ui="v1"] .ui-compose-actions>.ui-compose-spacer{flex:1;min-width:8px}
:root[data-ui="v1"] .ui-compose-actions>.spacer{flex:1}
:root[data-ui="v1"] .ui-compose-actions .skill-wrap{display:inline-flex;align-items:center;min-width:0}
:root[data-ui="v1"] .ui-compose-actions .qchip.ui-tool-action{
  width:auto;
  height:36px;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 10px;
  border:1px solid transparent;
  border-radius:var(--ui-radius);
  background:transparent;
  color:var(--ui-text-muted);
  box-shadow:none;
  font-size:12.5px;
  font-weight:600;
}
:root[data-ui="v1"] .ui-compose-actions .qchip.ui-tool-action:hover{background:var(--ui-surface-muted);border-color:transparent;color:var(--ui-text)}
:root[data-ui="v1"] .ui-compose-actions .skill-wrap>.skill-pop{
  bottom:calc(100% + 6px);
  left:0;
  min-width:262px;
  max-width:min(360px,calc(calc(100vw / var(--ui-fs-zoom,1)) - 36px));
  padding:6px;
  border:1px solid var(--ui-border);
  border-radius:10px;
  background:var(--ui-surface);
  box-shadow:var(--ui-shadow-float);
}
:root[data-ui="v1"] .ui-compose-actions .skill-pop .sp-hd{padding:6px 9px;color:var(--ui-text-muted);font-size:10.5px;letter-spacing:.04em}
:root[data-ui="v1"] .ui-compose-actions .skill-pop .skill-item{
  min-height:42px;
  display:flex;
  justify-content:center;
  gap:2px;
  padding:6px 9px;
  border-radius:7px;
  background:transparent;
}
:root[data-ui="v1"] .ui-compose-actions .skill-pop .skill-item:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-compose-actions .skill-pop .skill-item b{color:var(--ui-text);font-size:12.5px;font-weight:600}
:root[data-ui="v1"] .ui-compose-actions .skill-pop .skill-item span{color:var(--ui-text-muted);font-size:10.5px;line-height:1.35}
:root[data-ui="v1"] .ui-icon-action{
  width:36px;
  height:36px;
  min-height:36px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius);
  background:var(--ui-surface);
  color:var(--ui-text-muted);
  cursor:pointer;
}
:root[data-ui="v1"] .composer .cwrap .ui-compose-actions button.ui-icon-action{
  width:36px;
  height:36px;
  min-height:36px;
  padding:0;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius);
  background:var(--ui-surface);
  color:var(--ui-text-muted);
  box-shadow:none;
}
:root[data-ui="v1"] .ui-icon-action:hover{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"] .composer .cwrap .ui-compose-actions button.ui-icon-action:hover{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"] .ui-compose-hint{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;color:var(--ui-text-muted);font-size:11px;white-space:nowrap}
:root[data-ui="v1"] .ui-compose-actions .btn-icon{width:36px;height:36px;min-height:36px;border-color:var(--ui-border);background:var(--ui-surface)}
:root[data-ui="v1"] .ui-compose-actions #sendBtn,
:root[data-ui="v1"] .ui-compose-actions .send-btn,
:root[data-ui="v1"] .composer .cwrap>#sendBtn{
  width:40px;
  height:40px;
  min-height:40px;
  display:grid;
  place-items:center;
  flex:0 0 40px;
  padding:0;
  align-self:center;
  box-sizing:border-box;
  line-height:0;
  margin:5px 7px 7px auto;
  border:0;
  border-radius:10px;
  background:var(--ui-accent);
  color:#fff;
  box-shadow:0 1px 2px rgba(20,40,64,.18);
}
:root[data-ui="v1"] .ui-compose-actions #sendBtn,
:root[data-ui="v1"] .ui-compose-actions .send-btn{margin:0}
:root[data-ui="v1"] .ui-compose-actions #sendBtn>.ui-compose-icon,
:root[data-ui="v1"] .ui-compose-actions .send-btn>.ui-compose-icon{width:18px;height:18px;margin:0;display:block}
:root[data-ui="v1"] .ui-compose-actions #sendBtn:hover,
:root[data-ui="v1"] .ui-compose-actions .send-btn:hover,
:root[data-ui="v1"] .composer .cwrap>#sendBtn:hover{background:var(--ui-accent-hover)}
:root[data-ui="v1"] .ui-compose-actions #sendBtn.stopbtn{background:var(--ui-danger)}
:root[data-ui="v1"] .ui-compose-actions #sendBtn.stopbtn:hover{background:#aa3d38}
:root[data-ui="v1"] .center>.hsplit{display:none}
:root[data-ui="v1"] .messages,
:root[data-ui="v1"] .mwrap,
:root[data-ui="v1"] .msg,
:root[data-ui="v1"] .bubble{min-width:0;max-width:100%}
:root[data-ui="v1"] .messages{overflow-x:hidden}
:root[data-ui="v1"] .bubble table{display:block;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}

/* Combined artifact + inspector host. */
:root[data-ui="v1"] .preview{
  width:auto;
  height:100%;
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-columns:0 0 minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
  overflow:hidden;
  border-left:0;
  background:var(--ui-bg);
}
:root[data-ui="v1"] .preview .pv-pane{
  grid-column:1;
  grid-row:1;
  width:auto;
  height:100%;
  min-width:0;
  min-height:0;
  display:none;
  flex-direction:column;
  overflow:hidden;
  border-right:1px solid var(--ui-border);
  background:#f3f1eb;
}
:root[data-ui="v1"] .preview.pv-open{grid-template-columns:minmax(460px,1fr) 0 var(--ui-inspector)}
:root[data-ui="v1"] .preview.pv-open .pv-pane{display:flex}
:root[data-ui="v1"] .preview .pv-vdiv{grid-column:2;display:none!important}
:root[data-ui="v1"] .preview .pv-treecol{
  grid-column:3;
  grid-row:1;
  width:auto;
  height:100%;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-right:0;
  background:#fbfbfc;
}

:root[data-ui="v1"] .ui-artifact-head,
:root[data-ui="v1"] .pv-pane>.pv-tabbar{
  min-height:57px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-bottom:1px solid var(--ui-border);
  background:var(--ui-surface);
}
:root[data-ui="v1"] .ui-artifact-head .ui-artifact-title,
:root[data-ui="v1"] .pv-pane>.pv-tabbar .pv-tab{min-width:0;flex:1;display:block;padding:0;border:0;background:transparent;color:var(--ui-text);font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-artifact-head small,
:root[data-ui="v1"] .ui-artifact-head .meta,
:root[data-ui="v1"] .pv-pane>.pv-tabbar .pv-crumb{display:block;flex:0 1 auto;max-width:42%;color:var(--ui-text-muted);font-size:10.5px}
:root[data-ui="v1"] .pv-pane>.pv-tabbar .pvd-close{
  order:3;
  margin-left:auto;
}
:root[data-ui="v1"] .pv-pane>.pv-body{
  flex:1;
  min-height:0;
  margin:22px 28px 40px;
  padding:42px 50px;
  overflow:auto;
  border:1px solid #dfddd6;
  background:#fff;
  box-shadow:0 5px 22px rgba(35,37,39,.08);
  color:#202020;
}
:root[data-ui="v1"] .pv-pane>.pv-body.md{font-family:"Noto Serif SC","Songti SC","宋体",serif;font-size:13px;line-height:1.7;text-align:justify;text-justify:inter-ideograph;hyphens:auto;word-break:break-word}
:root[data-ui="v1"] .pv-pane>.pv-body.pv-sheet-view{
  display:flex;
  flex-direction:column;
  margin:10px 12px 16px;
  padding:0 10px 10px;
  overflow:hidden;
  border-radius:9px;
}
:root[data-ui="v1"] .pv-pane>.pv-body.pv-sheet-view>.pv-fn{
  position:static;
  top:auto;
  flex:0 0 auto;
  min-height:42px;
  margin:0 -10px 8px;
  padding:9px 10px;
}
:root[data-ui="v1"] .pv-sheet-view>.sheet-tabs{
  flex:0 0 auto;
  margin:0;
  padding:0 2px;
}
:root[data-ui="v1"] .pv-sheet-view>.office-sheet{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  max-height:none;
  overflow:auto;
}
:root[data-ui="v1"] .pv-sheet-view>.office-sheet table{min-width:100%}
:root[data-ui="v1"] .pv-pane>.pv-body.md p{margin:0 0 10px;text-align:justify}
:root[data-ui="v1"] .pv-pane>.pv-body.md h1{margin:0 0 8px;font-size:24px}
:root[data-ui="v1"] .pv-pane>.pv-body.md h2{margin:26px 0 10px;padding-bottom:5px;border-bottom:1px solid #87909a;font-size:18px}
:root[data-ui="v1"] .pv-pane>.pv-body.md h3{margin:18px 0 7px;font-size:15px}
:root[data-ui="v1"] .pv-pane>.pv-body.md table{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:11.5px;line-height:1.45}
:root[data-ui="v1"] .pv-pane>.pv-body.md th,
:root[data-ui="v1"] .pv-pane>.pv-body.md td{padding:7px 8px;border-color:#cfd3d7}
:root[data-ui="v1"] .pv-pane>.pv-body.md th{background:#f2f4f6}
:root[data-ui="v1"] .pv-pane .ui-control-paper{font-family:"Noto Serif SC","Songti SC","宋体",serif;color:#202020;line-height:1.7}
:root[data-ui="v1"] .pv-pane .ui-control-paper h1{margin:0 0 8px;font-size:24px}
:root[data-ui="v1"] .pv-pane .ui-control-paper h2{margin:26px 0 10px;padding-bottom:5px;border-bottom:1px solid #87909a;font-size:18px}
:root[data-ui="v1"] .pv-pane .ui-control-paper h3{margin:18px 0 7px;font-size:15px}
:root[data-ui="v1"] .pv-body>.pv-fn{top:-42px;margin:-42px -50px 24px;padding:10px 12px 8px;background:#fff;border-bottom:1px solid var(--ui-border)}

/* Project Master Control: dedicated, data-driven dashboard instead of generic Markdown paper. */
:root[data-ui="v1"] .pc-icon{
  width:18px;
  height:18px;
  display:block;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
:root[data-ui="v1"] .pc-file-icon{
  width:15px;
  height:15px;
  display:block;
  fill:none;
  stroke:var(--ui-accent);
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
:root[data-ui="v1"] .ui-chat-actions .ui-control-entry .pc-icon{width:16px;height:16px}
:root[data-ui="v1"] .pv-pane>.pv-body.pc-shell{
  margin:14px 16px 28px;
  padding:0;
  border:0;
  border-radius:12px;
  background:transparent;
  box-shadow:none;
  color:var(--ui-text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
}
:root[data-ui="v1"] .pc-shell>.pc-toolbar{
  position:sticky;
  top:0;
  z-index:8;
  min-height:58px;
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
  padding:9px 11px;
  border:1px solid var(--ui-border);
  border-radius:11px;
  background:color-mix(in srgb,var(--ui-surface) 94%,transparent);
  box-shadow:0 4px 16px rgba(24,38,54,.07);
  backdrop-filter:blur(12px);
}
:root[data-ui="v1"] .pc-toolbar-title{min-width:0;flex:1;display:flex;align-items:center;gap:9px}
:root[data-ui="v1"] .pc-toolbar-title>span:first-child{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:9px;background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"] .pc-toolbar-title>span:last-child{min-width:0;display:flex;flex-direction:column;gap:1px}
:root[data-ui="v1"] .pc-toolbar-title b{font-size:13px;color:var(--ui-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-toolbar-title small{font-size:10px;font-weight:500;color:var(--ui-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-toolbar-status{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:5px 8px;border:1px solid var(--ui-border);border-radius:999px;background:var(--ui-surface);color:var(--ui-text-muted);font-size:10.5px;font-weight:700}
:root[data-ui="v1"] .pc-toolbar-status i{width:7px;height:7px;border-radius:50%;background:currentColor}
:root[data-ui="v1"] .pc-toolbar-status.live{border-color:#b8d8c5;background:var(--ui-success-soft);color:var(--ui-success)}
:root[data-ui="v1"] .pc-toolbar-status.pending{border-color:#e3c98d;background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"] .pc-toolbar-status.private{border-color:#c7c4e8;background:#f0effa;color:#6258a8}
:root[data-ui="v1"] .pc-toolbar-status.snapshot{background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .pc-toolbar .pv-actions{display:flex;align-items:center;gap:6px}
:root[data-ui="v1"] .pc-toolbar .btn{gap:5px;white-space:nowrap}
:root[data-ui="v1"] .pc-toolbar .btn .pc-icon{width:14px;height:14px}
:root[data-ui="v1"] .pc-refresh.loading .pc-icon{animation:uiV1Spin .8s linear infinite}
:root[data-ui="v1"] .pc-dashboard{display:grid;gap:12px}
:root[data-ui="v1"] .pc-hero,
:root[data-ui="v1"] .pc-section,
:root[data-ui="v1"] .pc-progress-card,
:root[data-ui="v1"] .pc-next-card{
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:var(--ui-surface);
  box-shadow:0 2px 10px rgba(24,38,54,.045);
}
:root[data-ui="v1"] .pc-hero{display:flex;align-items:flex-start;gap:18px;padding:22px 24px;background:linear-gradient(135deg,var(--ui-surface) 0%,var(--ui-surface-subtle) 100%)}
:root[data-ui="v1"] .pc-hero-copy{min-width:0;flex:1}
:root[data-ui="v1"] .pc-eyebrow{display:block;margin-bottom:7px;color:var(--ui-accent);font-size:9.5px;font-weight:800;letter-spacing:.14em}
:root[data-ui="v1"] .pc-hero h1{margin:0;color:var(--ui-text);font-size:25px;line-height:1.2;letter-spacing:-.02em}
:root[data-ui="v1"] .pc-hero p{margin:7px 0 0;color:var(--ui-text-muted);font-size:11.5px;line-height:1.55}
:root[data-ui="v1"] .pc-sync-card{display:flex;align-items:flex-start;gap:8px;max-width:200px;padding:9px 11px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface)}
:root[data-ui="v1"] .pc-sync-dot{width:8px;height:8px;flex:0 0 8px;margin-top:4px;border-radius:50%;background:var(--ui-text-faint)}
:root[data-ui="v1"] .pc-sync-card>span:last-child{min-width:0}
:root[data-ui="v1"] .pc-sync-card b{display:block;color:var(--ui-text);font-size:11.5px}
:root[data-ui="v1"] .pc-sync-card small{display:block;margin-top:2px;color:var(--ui-text-muted);font-size:9.5px;line-height:1.4}
:root[data-ui="v1"] .pc-sync-card.live{border-color:#b8d8c5;background:var(--ui-success-soft)}
:root[data-ui="v1"] .pc-sync-card.live .pc-sync-dot{background:var(--ui-success);box-shadow:0 0 0 4px color-mix(in srgb,var(--ui-success) 13%,transparent)}
:root[data-ui="v1"] .pc-sync-card.pending{border-color:#e3c98d;background:var(--ui-warning-soft)}
:root[data-ui="v1"] .pc-sync-card.pending .pc-sync-dot{background:var(--ui-warning)}
:root[data-ui="v1"] .pc-sync-card.private{border-color:#c7c4e8;background:#f0effa}
:root[data-ui="v1"] .pc-sync-card.private .pc-sync-dot{background:#6258a8}
:root[data-ui="v1"] .pc-overview{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(190px,.8fr);gap:12px}
:root[data-ui="v1"] .pc-progress-card{padding:17px 19px}
:root[data-ui="v1"] .pc-progress-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
:root[data-ui="v1"] .pc-progress-head>span:first-child{display:flex;align-items:baseline;gap:9px}
:root[data-ui="v1"] .pc-progress-head small{color:var(--ui-text-muted);font-size:10.5px}
:root[data-ui="v1"] .pc-progress-head b{color:var(--ui-text);font-size:27px;line-height:1}
:root[data-ui="v1"] .pc-progress-head b em{font-size:13px;font-style:normal}
:root[data-ui="v1"] .pc-progress-head>span:last-child{color:var(--ui-text-muted);font-size:10.5px}
:root[data-ui="v1"] .pc-progress-track{height:7px;margin:13px 0 11px;overflow:hidden;border-radius:999px;background:var(--ui-surface-muted)}
:root[data-ui="v1"] .pc-progress-track i{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--ui-accent),color-mix(in srgb,var(--ui-accent) 68%,#4eb37b));transition:width .35s ease}
:root[data-ui="v1"] .pc-progress-foot{display:flex;align-items:center;gap:15px;color:var(--ui-text-muted);font-size:10.5px}
:root[data-ui="v1"] .pc-progress-foot b{color:var(--ui-text);font-size:11.5px}
:root[data-ui="v1"] .pc-next-card{position:relative;padding:16px 17px;overflow:hidden}
:root[data-ui="v1"] .pc-next-card>.pc-meta-icon{position:absolute;right:13px;top:13px}
:root[data-ui="v1"] .pc-next-card small{display:block;color:var(--ui-text-muted);font-size:9.5px;font-weight:700;letter-spacing:.05em}
:root[data-ui="v1"] .pc-next-card b{display:block;max-width:85%;margin-top:7px;color:var(--ui-text);font-size:13px;line-height:1.45}
:root[data-ui="v1"] .pc-next-card p{margin:7px 0 0;color:var(--ui-text-muted);font-size:9.8px;line-height:1.45}
:root[data-ui="v1"] .pc-section{padding:17px 19px}
:root[data-ui="v1"] .pc-section-head{display:flex;align-items:center;gap:9px;margin-bottom:14px}
:root[data-ui="v1"] .pc-section-head>span{width:31px;height:31px;display:grid;place-items:center;flex:0 0 31px;border-radius:8px;background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"] .pc-section-head>span .pc-icon{width:16px;height:16px}
:root[data-ui="v1"] .pc-section-head>div{min-width:0;flex:1}
:root[data-ui="v1"] .pc-section-head small{display:block;color:var(--ui-text-faint);font-size:8.5px;font-weight:800;letter-spacing:.12em}
:root[data-ui="v1"] .pc-section-head h2{margin:1px 0 0;color:var(--ui-text);font-size:14px;line-height:1.3}
:root[data-ui="v1"] .pc-section-head>em{max-width:44%;overflow:hidden;color:var(--ui-text-muted);font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
:root[data-ui="v1"] .pc-meta-card{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:11px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .pc-meta-icon{width:27px;height:27px;display:grid;place-items:center;flex:0 0 27px;border-radius:7px;background:var(--ui-surface);color:var(--ui-accent)}
:root[data-ui="v1"] .pc-meta-icon .pc-icon{width:14px;height:14px}
:root[data-ui="v1"] .pc-meta-card>span:last-child{min-width:0}
:root[data-ui="v1"] .pc-meta-card small{display:block;color:var(--ui-text-muted);font-size:9px}
:root[data-ui="v1"] .pc-meta-card b{display:block;margin-top:2px;color:var(--ui-text);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-meta-card em{display:block;margin-top:2px;color:var(--ui-text-faint);font-size:9px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-stage-list{display:grid;gap:5px}
:root[data-ui="v1"] .pc-stage{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:9px;border:1px solid transparent}
:root[data-ui="v1"] .pc-stage:hover{border-color:var(--ui-border);background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .pc-stage.in_progress{border-color:color-mix(in srgb,var(--ui-accent) 25%,var(--ui-border));background:var(--ui-accent-soft)}
:root[data-ui="v1"] .pc-stage-index{width:23px;height:23px;display:grid;place-items:center;flex:0 0 23px;border-radius:50%;background:var(--ui-surface-muted);color:var(--ui-text-muted);font-size:8.5px;font-weight:800}
:root[data-ui="v1"] .pc-stage.completed .pc-stage-index{background:var(--ui-success-soft);color:var(--ui-success)}
:root[data-ui="v1"] .pc-stage.in_progress .pc-stage-index{background:var(--ui-accent);color:#fff}
:root[data-ui="v1"] .pc-stage-main{min-width:0;flex:1}
:root[data-ui="v1"] .pc-stage-line{display:flex;align-items:center;gap:8px}
:root[data-ui="v1"] .pc-stage-line b{min-width:0;flex:1;color:var(--ui-text);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-stage-line span{color:var(--ui-text-muted);font-size:9.5px}
:root[data-ui="v1"] .pc-stage.in_progress .pc-stage-line span{color:var(--ui-accent);font-weight:700}
:root[data-ui="v1"] .pc-stage-progress{height:4px;margin:6px 0;overflow:hidden;border-radius:999px;background:var(--ui-surface-muted)}
:root[data-ui="v1"] .pc-stage-progress i{height:100%;display:block;border-radius:inherit;background:var(--ui-accent)}
:root[data-ui="v1"] .pc-stage.completed .pc-stage-progress i{background:var(--ui-success)}
:root[data-ui="v1"] .pc-stage-main>small{display:block;color:var(--ui-text-faint);font-size:9px}
:root[data-ui="v1"] .pc-file-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:10px}
:root[data-ui="v1"] .pc-file-stats>span{padding:9px 10px;border-radius:8px;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .pc-file-stats small{display:block;color:var(--ui-text-muted);font-size:8.5px}
:root[data-ui="v1"] .pc-file-stats b{display:block;margin-top:3px;color:var(--ui-text);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-file-list{display:grid;gap:2px}
:root[data-ui="v1"] .pc-file-list>div{display:flex;align-items:center;gap:7px;min-height:27px;padding:4px 6px;border-radius:6px}
:root[data-ui="v1"] .pc-file-list>div:hover{background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .pc-file-list span{color:var(--ui-text-faint)}
:root[data-ui="v1"] .pc-file-list span .pc-icon{width:13px;height:13px}
:root[data-ui="v1"] .pc-file-list b{min-width:0;flex:1;color:var(--ui-text-muted);font-size:9.8px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-file-list small{color:var(--ui-text-faint);font-size:8.5px}
:root[data-ui="v1"] .pc-recent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
:root[data-ui="v1"] .pc-recent-grid>div{padding:11px;border-radius:9px;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .pc-recent-grid small,
:root[data-ui="v1"] .pc-next-list>small{display:block;color:var(--ui-text-muted);font-size:9px;font-weight:700}
:root[data-ui="v1"] .pc-recent-grid p{margin:5px 0 0;color:var(--ui-text);font-size:10.5px;line-height:1.6}
:root[data-ui="v1"] .pc-next-list{margin-top:9px;padding-top:9px;border-top:1px solid var(--ui-border)}
:root[data-ui="v1"] .pc-next-list>div{display:flex;align-items:flex-start;gap:8px;margin-top:7px}
:root[data-ui="v1"] .pc-next-list>div>span{width:18px;height:18px;display:grid;place-items:center;flex:0 0 18px;border-radius:50%;background:var(--ui-accent-soft);color:var(--ui-accent);font-size:8px;font-weight:800}
:root[data-ui="v1"] .pc-next-list p{margin:0;color:var(--ui-text-muted);font-size:10px;line-height:1.5}
:root[data-ui="v1"] .pc-integrity{border-color:#c8d9d0;background:linear-gradient(135deg,var(--ui-surface),color-mix(in srgb,var(--ui-success-soft) 55%,var(--ui-surface)))}
:root[data-ui="v1"] .pc-integrity-grid{display:grid;grid-template-columns:.55fr 1.15fr 1fr;gap:7px}
:root[data-ui="v1"] .pc-integrity-grid>div{min-width:0;padding:9px 10px;border-radius:8px;background:color-mix(in srgb,var(--ui-surface) 84%,transparent)}
:root[data-ui="v1"] .pc-integrity-grid small{display:block;color:var(--ui-text-muted);font-size:8.5px}
:root[data-ui="v1"] .pc-integrity-grid b{display:block;margin-top:3px;color:var(--ui-text);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .pc-integrity>p{margin:10px 0 0;color:var(--ui-text-muted);font-size:9.5px;line-height:1.55}
:root[data-ui="v1"] .pc-empty{padding:14px;border:1px dashed var(--ui-border);border-radius:9px;background:var(--ui-surface-subtle);color:var(--ui-text-muted);font-size:10.5px;line-height:1.55}
@media(max-width:1180px){
  :root[data-ui="v1"] .pc-overview{grid-template-columns:1fr}
  :root[data-ui="v1"] .pc-meta-grid{grid-template-columns:1fr}
  :root[data-ui="v1"] .pc-recent-grid{grid-template-columns:1fr}
  :root[data-ui="v1"] .pc-toolbar-status{display:none}
}

/* Inspector: Flow / Files / Audit tabs share the real plan, tree and audit DOM. */
:root[data-ui="v1"] .ui-inspector-head{
  height:57px;
  flex:0 0 57px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-bottom:1px solid var(--ui-border);
  background:var(--ui-surface);
}
:root[data-ui="v1"] .ui-inspector-head strong{min-width:0;flex:1;color:var(--ui-text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-inspector-tabs{display:flex;flex:0 0 auto;gap:2px;padding:7px 8px;border-bottom:1px solid var(--ui-border);background:var(--ui-surface)}
:root[data-ui="v1"] .ui-inspector-tab{
  flex:1;
  min-height:31px;
  padding:0 8px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--ui-text-muted);
  font-size:11.5px;
  font-weight:650;
  cursor:pointer;
}
:root[data-ui="v1"] .ui-inspector-tab:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-inspector-tab.on,
:root[data-ui="v1"] .ui-inspector-tab.active,
:root[data-ui="v1"] .ui-inspector-tab[aria-selected="true"]{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-inspector-panel{display:none;flex:1;min-height:0;overflow:auto;padding:12px;overscroll-behavior:contain;scrollbar-gutter:stable}
:root[data-ui="v1"] .ui-inspector-panel.on,
:root[data-ui="v1"] .ui-inspector-panel.active,
:root[data-ui="v1"] .ui-inspector-panel[aria-hidden="false"]{display:block}
:root[data-ui="v1"] #inspectorPanelFiles.ui-inspector-panel.active{display:flex;flex-direction:column;overflow:hidden}
:root[data-ui="v1"] #inspectorPanelFiles #treeBox{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
:root[data-ui="v1"] .ui-inspector-panel[hidden]{display:none!important}
:root[data-ui="v1"] .ui-inspector-panel .plan-panel{border:0;background:transparent}
:root[data-ui="v1"] .ui-inspector-panel .plan-hd{padding:2px 2px 8px;color:var(--ui-text-muted);font-size:10.5px;font-weight:700;letter-spacing:.35px;text-transform:uppercase}
:root[data-ui="v1"] .ui-inspector-panel .plan-rows{padding:0;display:grid;gap:2px}
:root[data-ui="v1"] .ui-inspector-panel .plan-row,
:root[data-ui="v1"] .ui-inspector-panel .plan-stage{margin:0;padding:8px;border-radius:8px}
:root[data-ui="v1"] .ui-inspector-panel .plan-stage.cur,
:root[data-ui="v1"] .ui-inspector-panel .plan-row.cur{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-inspector-panel .plan-stage .ps-n{width:21px;height:21px;font-size:10px;background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-inspector-panel .plan-stage.done .ps-n{background:var(--ui-success-soft);color:var(--ui-success)}
:root[data-ui="v1"] .ui-inspector-panel .plan-stage.cur .ps-n{background:var(--ui-accent);color:#fff}
:root[data-ui="v1"] .ui-inspector-panel button.plan-next{width:100%;margin:11px 0 0;min-height:58px}
/* 流程：从“状态清单”升级为可扫读的项目进度面板 */
:root[data-ui="v1"] #inspectorPanelFlow{padding:12px}
:root[data-ui="v1"] #inspectorPanelFlow .plan-panel{display:grid;gap:10px}
:root[data-ui="v1"] .ui-flow-hero{
  position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:start;gap:10px;
  padding:13px 13px 12px;border:1px solid #c8d9ea;border-radius:12px;
  background:linear-gradient(145deg,#edf5fc 0%,#f9fbfd 72%);color:var(--ui-text);overflow:hidden;
}
:root[data-ui="v1"] .ui-flow-hero-icon{
  display:grid;place-items:center;width:36px;height:36px;border-radius:10px;
  background:#fff;color:var(--ui-accent);box-shadow:0 4px 14px rgba(37,85,127,.10);
}
:root[data-ui="v1"] .ui-flow-hero-icon .pc-icon{width:18px;height:18px}
:root[data-ui="v1"] .ui-flow-hero-copy{min-width:0;padding-right:3px}
:root[data-ui="v1"] .ui-flow-hero-copy>small{
  display:block;color:#55758f;font-size:8.5px;font-weight:750;letter-spacing:.12em;line-height:1.2;
}
:root[data-ui="v1"] .ui-flow-hero-copy h3{margin:3px 0 0;font-size:15px;line-height:1.2}
:root[data-ui="v1"] .ui-flow-hero-copy p{
  margin:4px 0 0;color:var(--ui-text-muted);font-size:10px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
:root[data-ui="v1"] .ui-flow-progress{padding:4px 6px 0;color:var(--ui-accent);font-size:17px;font-weight:760;letter-spacing:-.03em}
:root[data-ui="v1"] .ui-flow-collapse{
  position:absolute;right:5px;bottom:5px;width:24px;height:24px;border:0;border-radius:7px;background:transparent;
  color:#7894ac;font-size:10px;cursor:pointer;
}
:root[data-ui="v1"] .ui-flow-collapse:hover{background:rgba(255,255,255,.75);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-flow-meter{
  grid-column:1/-1;height:5px;margin-top:2px;border-radius:999px;background:#dce7f0;overflow:hidden;
}
:root[data-ui="v1"] .ui-flow-meter>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#376e9e,#4b88b9);transition:width .24s ease}
:root[data-ui="v1"] .ui-flow-stats{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 11px;padding-right:22px;color:var(--ui-text-muted);font-size:9.5px}
:root[data-ui="v1"] .ui-flow-stats span{white-space:nowrap}
:root[data-ui="v1"] .ui-flow-stats b{color:var(--ui-text);font-weight:700}
:root[data-ui="v1"] .ui-flow-collapsed{
  display:flex;align-items:center;gap:9px;padding:10px!important;border:1px solid var(--ui-border);
  border-radius:10px;background:var(--ui-surface);text-transform:none!important;cursor:pointer;
}
:root[data-ui="v1"] .ui-flow-collapsed .plan-ic{
  display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--ui-accent-soft);color:var(--ui-accent);
}
:root[data-ui="v1"] .ui-flow-collapsed .plan-ic .pc-icon{width:15px;height:15px}
:root[data-ui="v1"] .ui-flow-collapsed>span:nth-child(2){display:grid;gap:1px;min-width:0}
:root[data-ui="v1"] .ui-flow-collapsed b{font-size:12px;color:var(--ui-text);letter-spacing:0}
:root[data-ui="v1"] .ui-flow-collapsed .plan-sum{margin:0;font-size:9.5px;letter-spacing:0}
:root[data-ui="v1"] #inspectorPanelFlow .plan-rows{display:grid;gap:9px}
:root[data-ui="v1"] .ui-flow-mode .plan-row{
  display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:9px;padding:10px;
  border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);
}
:root[data-ui="v1"] .ui-flow-mode .plan-row:hover{border-color:#9cbad4;background:#f8fbfd}
:root[data-ui="v1"] .ui-flow-mode .plan-row.cur{border-color:#a9c6de;background:#f0f6fb}
:root[data-ui="v1"] .ui-flow-mode .pr-ic{
  display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--ui-accent-soft);color:var(--ui-accent);
}
:root[data-ui="v1"] .ui-flow-mode .pr-ic .pc-icon{width:15px;height:15px}
:root[data-ui="v1"] .ui-flow-mode .pr-name{font-size:12.5px;font-weight:700}
:root[data-ui="v1"] .ui-flow-mode .pr-badge{font-size:9.5px}
:root[data-ui="v1"] .ui-flow-mode .pr-hint{margin-top:3px;font-size:9.5px;line-height:1.45}
:root[data-ui="v1"] .ui-flow-section-title{display:flex;align-items:baseline;justify-content:space-between;margin:1px 2px -3px}
:root[data-ui="v1"] .ui-flow-section-title>span{font-size:11.5px;font-weight:700;color:var(--ui-text)}
:root[data-ui="v1"] .ui-flow-section-title>small{color:var(--ui-text-muted);font-size:9px}
:root[data-ui="v1"] .ui-flow-timeline{
  position:relative;display:grid;gap:2px;padding:5px 0 4px;
  border:1px solid var(--ui-border);border-radius:11px;background:var(--ui-surface);
}
:root[data-ui="v1"] .ui-flow-timeline::before{
  content:"";position:absolute;left:20px;top:22px;bottom:22px;width:1px;background:#dbe3ea;pointer-events:none;
}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage{
  position:relative;z-index:1;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;
  min-height:38px;padding:7px 9px;margin:0 4px;border:1px solid transparent;border-radius:8px;background:transparent;
}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage:hover{border-color:#d4e0ea;background:#f7fafc}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage.cur{border-color:#b7cee2;background:#edf5fc}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage.done{color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage .ps-n{
  width:22px;height:22px;min-width:22px;border:2px solid #fff;box-shadow:0 0 0 1px #d6dfe7;background:#eef2f5;
}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage.done .ps-n{box-shadow:0 0 0 1px #b9d8c5;background:var(--ui-success);color:#fff}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage.cur .ps-n{box-shadow:0 0 0 1px #8eb1d0;background:var(--ui-accent);color:#fff}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage .ps-n .pc-icon{width:12px;height:12px}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage .ps-nm{font-size:11.5px;font-weight:560}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage.cur .ps-nm{font-weight:700}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage .ps-st{padding:2px 6px;border-radius:999px;background:var(--ui-surface-muted);font-size:8.5px}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage.cur .ps-st{background:#dbeaf7;color:var(--ui-accent);font-weight:700}
:root[data-ui="v1"] .ui-flow-timeline .plan-stage .ps-upd{padding:3px 7px;border-color:#a8c7b4;color:var(--ui-success);font-size:8.5px;background:#f5fbf7}
:root[data-ui="v1"] #inspectorPanelFlow button.plan-next{
  min-height:54px;margin:0;border-color:#9dbbd5;background:linear-gradient(135deg,#edf5fc,#f8fbfd);
}
:root[data-ui="v1"] .ui-flow-config button{
  width:100%;display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;
  border:1px dashed #cdd8e1;border-radius:9px;background:transparent;color:var(--ui-text-muted);text-align:left;cursor:pointer;
}
:root[data-ui="v1"] .ui-flow-config button:hover{border-color:#9cbad4;background:#f8fbfd;color:var(--ui-text)}
:root[data-ui="v1"] .ui-flow-config button>span:first-child{display:grid;place-items:center;width:27px;height:27px;border-radius:7px;background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-flow-config .pc-icon{width:13px;height:13px}
:root[data-ui="v1"] .ui-flow-config button>span:nth-child(2){display:grid;gap:1px}
:root[data-ui="v1"] .ui-flow-config b{font-size:10.5px}
:root[data-ui="v1"] .ui-flow-config small{font-size:8.5px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-flow-config i{font-style:normal;font-size:12px}

:root[data-ui="v1"] .ui-file-state{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:11px;
  margin:0 0 12px;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-surface);
  color:var(--ui-text);
}
:root[data-ui="v1"] .ui-file-state>.ui-file-state-dot{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:grid;
  place-items:center;
  margin:0;
  border-radius:8px;
  background:var(--ui-success-soft);
}
:root[data-ui="v1"] .ui-file-state>.ui-file-state-dot::before{content:"✓";color:var(--ui-success);font-weight:800}
:root[data-ui="v1"] .ui-file-state.warn>.ui-file-state-dot{background:var(--ui-warning-soft)}
:root[data-ui="v1"] .ui-file-state.warn>.ui-file-state-dot::before{content:"!";color:var(--ui-warning)}
:root[data-ui="v1"] .ui-file-state.off>.ui-file-state-dot,
:root[data-ui="v1"] .ui-file-state.error>.ui-file-state-dot{background:var(--ui-danger-soft)}
:root[data-ui="v1"] .ui-file-state.off>.ui-file-state-dot::before,
:root[data-ui="v1"] .ui-file-state.error>.ui-file-state-dot::before{content:"×";color:var(--ui-danger)}
:root[data-ui="v1"] .ui-file-state>span:last-child{min-width:0;flex:1;margin:0}
:root[data-ui="v1"] .ui-file-state strong{display:block;font-size:12.5px}
:root[data-ui="v1"] .ui-file-state b{display:block;color:var(--ui-text);font-size:12.5px}
:root[data-ui="v1"] .ui-file-state small,
:root[data-ui="v1"] .ui-file-state span{display:block;margin-top:2px;color:var(--ui-text-muted);font-size:10.5px;line-height:1.45}
:root[data-ui="v1"] .ui-file-state.ok{border-color:#b8d8c5;background:var(--ui-success-soft)}
:root[data-ui="v1"] .ui-file-state.warn{border-color:#e3c98d;background:var(--ui-warning-soft)}
:root[data-ui="v1"] .ui-file-state.off,
:root[data-ui="v1"] .ui-file-state.error{border-color:#d9aaa6;background:var(--ui-danger-soft)}
/* 文件：工作区状态、检索与目录资产分层呈现 */
:root[data-ui="v1"] .ui-files-hero{
  display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:start;gap:10px;flex:0 0 auto;
  padding:13px;margin:0 0 10px;border:1px solid #c9ddd0;border-radius:12px;
  background:linear-gradient(145deg,#eef8f2 0%,#f9fcfa 72%);color:var(--ui-text);
}
:root[data-ui="v1"] .ui-files-hero.warn{border-color:#e1c98f;background:linear-gradient(145deg,#fff8e8,#fffdf8)}
:root[data-ui="v1"] .ui-files-hero-icon{
  display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#fff;color:var(--ui-success);
  box-shadow:0 4px 14px rgba(36,111,69,.09);
}
:root[data-ui="v1"] .ui-files-hero.warn .ui-files-hero-icon{color:var(--ui-warning)}
:root[data-ui="v1"] .ui-files-hero-icon .pc-icon{width:18px;height:18px}
:root[data-ui="v1"] .ui-files-hero-copy{min-width:0}
:root[data-ui="v1"] .ui-files-hero-copy>small{
  display:block;color:#56806a;font-size:8.5px;font-weight:750;letter-spacing:.12em;line-height:1.2;
}
:root[data-ui="v1"] .ui-files-hero.warn .ui-files-hero-copy>small{color:#8a6c29}
:root[data-ui="v1"] .ui-files-hero-copy h3{margin:3px 0 0;font-size:15px;line-height:1.2}
:root[data-ui="v1"] .ui-files-hero-copy p{
  margin:5px 0 0;color:var(--ui-text-muted);font-size:9.5px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
:root[data-ui="v1"] .ui-files-hero-copy p em{
  display:block;margin-top:2px;color:#6c8174;font-size:8.5px;font-style:normal;overflow:hidden;text-overflow:ellipsis;
}
:root[data-ui="v1"] .ui-files-count{
  min-width:31px;height:31px;display:grid;place-items:center;padding:0 7px;border:1px solid #b9d7c4;border-radius:9px;
  background:#fff;color:var(--ui-success);font-size:13px;font-weight:760;
}
:root[data-ui="v1"] .ui-files-hero.warn .ui-files-count{border-color:#dfc68a;color:var(--ui-warning)}
:root[data-ui="v1"] .ui-inspector-panel .pv-toolbar,
:root[data-ui="v1"] .pv-treecol>.pv-toolbar{display:flex;flex:0 0 auto;gap:6px;margin:0 0 8px;padding:0}
:root[data-ui="v1"] .ui-inspector-panel .tree-filter,
:root[data-ui="v1"] .pv-treecol>.pv-toolbar .tree-filter{height:36px;padding:0 9px 0 11px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface);font-size:11px}
:root[data-ui="v1"] .ui-inspector-panel .tree-filter:focus,
:root[data-ui="v1"] .pv-treecol>.pv-toolbar .tree-filter:focus{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-accent-ring)}
:root[data-ui="v1"] .ui-inspector-panel .pv-refresh,
:root[data-ui="v1"] .pv-treecol>.pv-toolbar .pv-refresh{width:36px;height:36px;flex:0 0 36px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface);color:var(--ui-text-muted);cursor:pointer}
:root[data-ui="v1"] .ui-inspector-panel .pv-refresh:hover{border-color:#9db9d0;background:#f7fafc;color:var(--ui-accent)}
:root[data-ui="v1"] .ui-files-section{display:flex;align-items:baseline;justify-content:space-between;flex:0 0 auto;margin:0 2px 6px}
:root[data-ui="v1"] .ui-files-section>span{font-size:11.5px;font-weight:700;color:var(--ui-text)}
:root[data-ui="v1"] .ui-files-section>small{color:var(--ui-text-muted);font-size:9px}
:root[data-ui="v1"] .ui-inspector-panel .tree,
:root[data-ui="v1"] .pv-treecol>.tree{height:auto;min-height:0;flex:1;padding:5px 4px 10px;border:1px solid var(--ui-border);border-radius:11px;background:var(--ui-surface);scrollbar-gutter:stable}
:root[data-ui="v1"] .ui-inspector-panel .trow,
:root[data-ui="v1"] .ui-inspector-panel .titem{min-height:31px;border-radius:7px;color:var(--ui-text-muted);font-size:11.5px}
:root[data-ui="v1"] .ui-inspector-panel .trow{
  position:relative;min-height:32px;margin:1px 0;border:1px solid transparent;border-radius:7px;color:var(--ui-text-muted);font-size:11px;
  transition:background .12s,border-color .12s,color .12s;
}
:root[data-ui="v1"] .ui-inspector-panel .trow:hover,
:root[data-ui="v1"] .ui-inspector-panel .titem:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-inspector-panel .trow.tdir{font-weight:650;color:var(--ui-text)}
:root[data-ui="v1"] .ui-inspector-panel .trow.tdir:hover{border-color:#d9e3eb;background:#f6f9fb}
:root[data-ui="v1"] .ui-inspector-panel .trow.tfile{color:#526272}
:root[data-ui="v1"] .ui-inspector-panel .trow.tfile:hover{color:var(--ui-text)}
:root[data-ui="v1"] .ui-inspector-panel .trow.sel{
  border-color:#aac4dc;background:#edf5fb;color:var(--ui-accent);box-shadow:inset 2px 0 0 var(--ui-accent);
}
:root[data-ui="v1"] .ui-inspector-panel .trow .tchev{width:12px;color:#8ea0af;font-size:9px}
:root[data-ui="v1"] .ui-inspector-panel .trow .tfic,
:root[data-ui="v1"] .ui-inspector-panel .trow .tic{width:19px;display:inline-grid;place-items:center;font-size:13px}
:root[data-ui="v1"] .ui-inspector-panel .trow .tnm{line-height:1.3}
:root[data-ui="v1"] .ui-inspector-panel .tkids{position:relative}
:root[data-ui="v1"] .ui-inspector-panel .tkids::before{
  content:"";position:absolute;left:18px;top:0;bottom:4px;width:1px;background:#edf0f3;pointer-events:none;
}
:root[data-ui="v1"] .ui-inspector-panel #treeBox>.tnode+.tnode{margin-top:1px}
:root[data-ui="v1"] .ui-inspector-panel .ui-audit-grid{display:grid;gap:8px}
:root[data-ui="v1"] .ui-inspector-panel .ui-audit-item{
  padding:10px;
  border:1px solid var(--ui-border);
  border-radius:9px;
  background:var(--ui-surface);
}
:root[data-ui="v1"] .ui-inspector-panel .ui-audit-item strong{display:block;font-size:12px}
:root[data-ui="v1"] .ui-inspector-panel .ui-audit-item span{display:block;margin-top:3px;color:var(--ui-text-muted);font-size:10.5px;line-height:1.45}
:root[data-ui="v1"] .ui-audit-box{display:grid;gap:8px}
:root[data-ui="v1"] .ui-audit-summary,
:root[data-ui="v1"] .ui-audit-note{padding:9px 10px;border-radius:8px;background:var(--ui-surface-subtle);color:var(--ui-text-muted);font-size:10.5px;line-height:1.5}
:root[data-ui="v1"] .ui-audit-note.warn{border:1px solid #e3c98d;background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"] .ui-audit-card{
  padding:10px;
  border:1px solid var(--ui-border);
  border-radius:9px;
  background:var(--ui-surface);
}
:root[data-ui="v1"] .ui-audit-card>small{display:block;color:var(--ui-text-muted);font-size:10px}
:root[data-ui="v1"] .ui-audit-card>b{display:block;margin-top:3px;color:var(--ui-text);font-size:12px}
:root[data-ui="v1"] .ui-audit-card>span{display:block;margin-top:3px;color:var(--ui-text-muted);font-size:10.5px;line-height:1.45}
:root[data-ui="v1"] .ui-audit-card.ok{border-color:#b8d8c5}
:root[data-ui="v1"] .ui-audit-card.warn{border-color:#e3c98d;background:var(--ui-warning-soft)}
:root[data-ui="v1"] .ui-audit-card.ui-audit-link{cursor:pointer;transition:border-color .12s,background .12s}
:root[data-ui="v1"] .ui-audit-card.ui-audit-link:hover{border-color:var(--ui-accent,#315f8d);background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .ui-audit-card.ui-audit-link .ui-audit-go{color:var(--ui-accent,#315f8d);font-weight:600;float:right}
/* 研究台账：把研究资产提到首屏，系统审计折叠但继续运行 */
:root[data-ui="v1"] .ui-ledger-hero{
  display:flex;align-items:flex-start;gap:11px;padding:13px;
  border:1px solid #c8d9ea;border-radius:12px;
  background:linear-gradient(145deg,#edf5fc 0%,#f8fbfd 70%);
  color:var(--ui-text);
}
:root[data-ui="v1"] .ui-ledger-hero>span{
  display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;
  border-radius:9px;background:#fff;color:var(--ui-accent);
  box-shadow:0 4px 14px rgba(37,85,127,.10);
}
:root[data-ui="v1"] .ui-ledger-hero .pc-icon{width:18px;height:18px}
:root[data-ui="v1"] .ui-ledger-hero small{display:block;color:#55758f;font-size:8.5px;font-weight:750;letter-spacing:.12em}
:root[data-ui="v1"] .ui-ledger-hero h3{margin:3px 0 0;font-size:15px;line-height:1.25}
:root[data-ui="v1"] .ui-ledger-hero p{margin:5px 0 0;color:var(--ui-text-muted);font-size:10.5px;line-height:1.55}
:root[data-ui="v1"] .ui-ledger-priority{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
:root[data-ui="v1"] .ui-ledger-asset{
  position:relative;display:flex;align-items:flex-start;gap:8px;min-width:0;padding:11px 9px;
  border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);
  color:var(--ui-text);text-align:left;cursor:pointer;
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;
}
:root[data-ui="v1"] .ui-ledger-asset:hover{
  transform:translateY(-1px);border-color:#93b5d3;box-shadow:0 6px 16px rgba(33,72,107,.08);
}
:root[data-ui="v1"] .ui-ledger-asset.featured{
  grid-column:1/-1;padding:13px;border-color:#9ebbd5;
  background:linear-gradient(120deg,#f4f8fc 0%,#fff 72%);
}
:root[data-ui="v1"] .ui-ledger-asset-icon{
  display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;
  border-radius:8px;background:#edf4fa;color:var(--ui-accent);
}
:root[data-ui="v1"] .ui-ledger-asset.featured .ui-ledger-asset-icon{width:32px;height:32px;flex-basis:32px;background:#dfeef9}
:root[data-ui="v1"] .ui-ledger-asset-icon .pc-icon{width:15px;height:15px}
:root[data-ui="v1"] .ui-ledger-asset-copy{display:block;min-width:0;padding-right:8px}
:root[data-ui="v1"] .ui-ledger-asset-copy small{display:block;color:var(--ui-text-muted);font-size:9.5px}
:root[data-ui="v1"] .ui-ledger-asset-copy b{display:block;margin-top:3px;font-size:12.5px;line-height:1.35}
:root[data-ui="v1"] .ui-ledger-asset.featured .ui-ledger-asset-copy b{font-size:14px}
:root[data-ui="v1"] .ui-ledger-asset-copy em{display:block;margin-top:3px;color:var(--ui-text-muted);font-size:9.5px;font-style:normal;line-height:1.4}
:root[data-ui="v1"] .ui-ledger-arrow{position:absolute;right:9px;top:9px;color:#7894ac;font-size:13px}
:root[data-ui="v1"] .ui-ledger-section-title{display:flex;align-items:baseline;justify-content:space-between;margin:3px 1px -1px}
:root[data-ui="v1"] .ui-ledger-section-title>span{font-size:11.5px;font-weight:700;color:var(--ui-text)}
:root[data-ui="v1"] .ui-ledger-section-title>small{color:var(--ui-text-muted);font-size:9.5px}
:root[data-ui="v1"] .ui-ledger-links{display:grid;gap:6px}
:root[data-ui="v1"] .ui-ledger-link{
  display:grid;grid-template-columns:24px minmax(0,1fr) auto 12px;align-items:center;gap:8px;
  width:100%;padding:8px 9px;border:1px solid var(--ui-border);border-radius:9px;
  background:var(--ui-surface);color:var(--ui-text);text-align:left;cursor:pointer;
}
:root[data-ui="v1"] .ui-ledger-link:hover{border-color:#a5bfd5;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .ui-ledger-link>span:first-child{display:grid;place-items:center;color:#507ca1}
:root[data-ui="v1"] .ui-ledger-link .pc-icon{width:15px;height:15px}
:root[data-ui="v1"] .ui-ledger-link b{display:block;font-size:11px}
:root[data-ui="v1"] .ui-ledger-link small{display:block;margin-top:2px;color:var(--ui-text-muted);font-size:9.5px;line-height:1.35}
:root[data-ui="v1"] .ui-ledger-link em{color:#456b8e;font-size:9.5px;font-style:normal;white-space:nowrap}
:root[data-ui="v1"] .ui-ledger-link i{color:#7894ac;font-size:12px;font-style:normal}
:root[data-ui="v1"] .ui-ledger-fold{overflow:hidden;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface)}
:root[data-ui="v1"] .ui-ledger-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;cursor:pointer;list-style:none}
:root[data-ui="v1"] .ui-ledger-fold>summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .ui-ledger-fold>summary>span{display:grid;grid-template-columns:18px auto 1fr;align-items:center;gap:6px;min-width:0}
:root[data-ui="v1"] .ui-ledger-fold>summary .pc-icon{width:14px;height:14px;color:#6c879e}
:root[data-ui="v1"] .ui-ledger-fold>summary b{font-size:10.5px}
:root[data-ui="v1"] .ui-ledger-fold>summary small{overflow:hidden;color:var(--ui-text-muted);font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-ledger-fold>summary i{color:#668097;font-size:9.5px;font-style:normal}
:root[data-ui="v1"] .ui-ledger-fold>summary i::after{content:" ↓"}
:root[data-ui="v1"] .ui-ledger-fold[open]>summary{border-bottom:1px solid var(--ui-border);background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .ui-ledger-fold[open]>summary i::after{content:" ↑"}
:root[data-ui="v1"] .ui-ledger-fold>.ui-qc-box,
:root[data-ui="v1"] .ui-ledger-system{margin:0;padding:9px;border:0}
:root[data-ui="v1"] .ui-ledger-system{display:grid;gap:7px}
:root[data-ui="v1"] .lit-ledger-mode{
  display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:10px 11px;
  border:1px solid #b8d3c4;border-radius:9px;background:#f1f8f4;color:var(--ui-text);
}
:root[data-ui="v1"] .lit-ledger-mode>span{display:grid;place-items:center;color:#2d7752}
:root[data-ui="v1"] .lit-ledger-mode .pc-icon{width:18px;height:18px}
:root[data-ui="v1"] .lit-ledger-mode>div{flex:1;min-width:0}
:root[data-ui="v1"] .lit-ledger-mode b{display:block;font-size:12px}
:root[data-ui="v1"] .lit-ledger-mode small{display:block;margin-top:2px;color:var(--ui-text-muted);font-size:10.5px}
:root[data-ui="v1"] .lit-ledger-mode button{padding:5px 9px;border:1px solid #9fc1ae;border-radius:7px;background:#fff;color:#286b49;font-size:10.5px;cursor:pointer}
/* 台账·质量质控(确定性质控闸) */
:root[data-ui="v1"] .ui-qc-box{display:grid;gap:7px;margin-top:4px;padding-top:9px;border-top:1px solid var(--ui-border)}
:root[data-ui="v1"] .ui-qc-head{display:flex;align-items:center;gap:8px;font-size:12px}
:root[data-ui="v1"] .ui-qc-head b{font-size:12.5px}
:root[data-ui="v1"] .ui-qc-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;margin-left:auto}
:root[data-ui="v1"] .ui-qc-badge.ok{background:var(--ui-success-soft,#e4f2e8);color:var(--ui-success,#2c8a4a)}
:root[data-ui="v1"] .ui-qc-badge.warn{background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"] .ui-qc-badge.crit{background:#f7e5e5;color:#c23b3b}
:root[data-ui="v1"] .ui-qc-file{border:1px solid var(--ui-border);border-radius:8px;padding:7px 9px;background:var(--ui-surface)}
:root[data-ui="v1"] .ui-qc-file-hd{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600}
:root[data-ui="v1"] .ui-qc-fn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text)}
:root[data-ui="v1"] .ui-qc-cnt{font-size:10px;color:var(--ui-warning);font-weight:700}
:root[data-ui="v1"] .ui-qc-cnt.ok{color:var(--ui-success,#2c8a4a)}
:root[data-ui="v1"] .ui-qc-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
:root[data-ui="v1"] .ui-qc-dot.ok{background:#2c8a4a} :root[data-ui="v1"] .ui-qc-dot.warn{background:#c47a22} :root[data-ui="v1"] .ui-qc-dot.crit{background:#c23b3b}
:root[data-ui="v1"] .ui-qc-issue{display:flex;gap:6px;font-size:10.5px;line-height:1.5;color:var(--ui-text-muted);margin-top:5px;padding-left:2px}
:root[data-ui="v1"] .ui-qc-sev{flex:0 0 auto;font-weight:700;font-size:9px;padding:1px 5px;border-radius:4px;height:fit-content;margin-top:1px}
:root[data-ui="v1"] .ui-qc-issue.sev-high .ui-qc-sev{background:#f7e5e5;color:#c23b3b}
:root[data-ui="v1"] .ui-qc-issue.sev-medium .ui-qc-sev{background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"] .ui-qc-issue.action-auto_repair .ui-qc-sev{background:#f7e5e5;color:#c23b3b}
:root[data-ui="v1"] .ui-qc-issue.action-needs_input .ui-qc-sev{background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"] .ui-qc-issue.action-review .ui-qc-sev{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-qc-issue.action-notice .ui-qc-sev{background:var(--ui-surface-muted);color:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-qc-deep{margin-top:2px;justify-self:start;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:7px;padding:5px 11px;font-size:11.5px;font-weight:600;color:var(--ui-accent);cursor:pointer}
:root[data-ui="v1"] .ui-qc-deep:hover{background:var(--ui-accent-soft);border-color:var(--ui-accent)}
:root[data-ui="v1"] body.ui-inspector-collapsed .preview.pv-open,
:root[data-ui="v1"] .preview.pv-open.ui-inspector-collapsed{grid-template-columns:minmax(520px,1fr) 0 0}
:root[data-ui="v1"] body.ui-inspector-collapsed .pv-treecol,
:root[data-ui="v1"] .preview.ui-inspector-collapsed .pv-treecol{display:none}

/* Wide-screen V1 splitters. Four persistent surfaces require a real desktop
   canvas; 1280/1366 use the overlay topology instead of squeezing content. */
@media(min-width:1440px){
  :root[data-ui="v1"] body.ui-v1-columns.ui-artifact-open{
    grid-template-columns:var(--ui-sidebar) minmax(calc(520px / var(--ui-fs-zoom,1)),1fr) var(--ui-right-host);
  }
  :root[data-ui="v1"] body.ui-v1-columns:not(.ui-artifact-open){
    grid-template-columns:var(--ui-sidebar) minmax(calc(520px / var(--ui-fs-zoom,1)),1fr) var(--ui-inspector);
  }
  :root[data-ui="v1"] body.ui-v1-columns:not(.ui-artifact-open).ui-inspector-collapsed{
    grid-template-columns:var(--ui-sidebar) minmax(calc(520px / var(--ui-fs-zoom,1)),1fr) 0;
  }
  :root[data-ui="v1"] body>#splitL,
  :root[data-ui="v1"] body>#splitR{
    display:block!important;
    position:fixed;
    top:var(--ui-topbar);
    bottom:0;
    width:10px;
    height:auto;
    z-index:74;
    margin:0;
    border:0;
    background:transparent;
    cursor:col-resize;
    touch-action:none;
  }
  :root[data-ui="v1"] body>#splitL{left:calc(var(--ui-sidebar) - 5px)}
  :root[data-ui="v1"] body>#splitR{right:calc(var(--ui-inspector) - 5px)}
  :root[data-ui="v1"] body.ui-artifact-open>#splitR{right:calc(var(--ui-right-host) - 5px)}
  :root[data-ui="v1"] body>#splitL::after,
  :root[data-ui="v1"] body>#splitR::after,
  :root[data-ui="v1"] .preview .pv-vdiv::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:4px;
    width:2px;
    border-radius:2px;
    background:transparent;
    transition:background .12s,box-shadow .12s;
  }
  :root[data-ui="v1"] body>#splitL:hover::after,
  :root[data-ui="v1"] body>#splitR:hover::after,
  :root[data-ui="v1"] body>#splitL.drag::after,
  :root[data-ui="v1"] body>#splitR.drag::after,
  :root[data-ui="v1"] .preview .pv-vdiv:hover::after,
  :root[data-ui="v1"] .preview .pv-vdiv.drag::after{
    background:var(--ui-accent);
    box-shadow:0 0 0 2px rgba(47,102,150,.12);
  }
  :root[data-ui="v1"] .preview.pv-open{grid-template-columns:minmax(460px,1fr) 0 var(--ui-inspector)}
  :root[data-ui="v1"] .preview.pv-open .pv-vdiv{
    display:block!important;
    position:relative;
    grid-column:2;
    grid-row:1;
    width:10px;
    height:100%;
    margin-left:-5px;
    z-index:75;
    background:transparent;
    cursor:col-resize;
    touch-action:none;
  }
  :root[data-ui="v1"] body.ui-inspector-collapsed>#splitR,
  :root[data-ui="v1"] body.ui-inspector-collapsed .preview .pv-vdiv,
  :root[data-ui="v1"] .preview.ui-inspector-collapsed .pv-vdiv{display:none!important}
}

/* Below 1440px the artifact becomes an overlay while the inspector remains an
   independent surface; this prevents the four columns from crushing prose. */
@media(max-width:1439.98px){
  :root[data-ui="v1"]{--ui-sidebar:230px;--ui-inspector:280px}
  :root[data-ui="v1"] body,
  :root[data-ui="v1"] body:not(.ui-artifact-open){grid-template-columns:var(--ui-sidebar) minmax(calc(440px / var(--ui-fs-zoom,1)),1fr) var(--ui-inspector)}
  :root[data-ui="v1"] body.ui-inspector-collapsed,
  :root[data-ui="v1"] body:not(.ui-artifact-open).ui-inspector-collapsed{grid-template-columns:var(--ui-sidebar) minmax(calc(440px / var(--ui-fs-zoom,1)),1fr) 0}
  :root[data-ui="v1"] .preview,
  :root[data-ui="v1"] .preview.pv-open{grid-template-columns:0 0 minmax(0,1fr)}
  :root[data-ui="v1"] .preview.pv-open .pv-pane{
    position:fixed;
    left:var(--ui-sidebar);
    right:var(--ui-inspector);
    top:var(--ui-topbar);
    bottom:0;
    z-index:65;
    width:auto;
    height:auto;
    box-shadow:var(--ui-shadow-float);
  }
  :root[data-ui="v1"] body.ui-inspector-collapsed .preview.pv-open .pv-pane,
  :root[data-ui="v1"] .preview.pv-open.ui-inspector-collapsed .pv-pane{right:0}
  :root[data-ui="v1"] .ui-appbar-title small,
  :root[data-ui="v1"] .ui-appbar-title .ui-appbar-note{display:none}
}

@media(max-width:960px){
  :root[data-ui="v1"] body,
  :root[data-ui="v1"] body:not(.ui-artifact-open),
  :root[data-ui="v1"] body:not(.ui-artifact-open).ui-inspector-collapsed{
    grid-template-areas:"appbar appbar" "sidebar center";
    grid-template-columns:var(--ui-sidebar) minmax(0,1fr);
  }
  :root[data-ui="v1"] .preview{
    position:static;
    width:0;
    height:0;
    min-width:0;
    display:block;
    overflow:visible;
    border:0;
  }
  :root[data-ui="v1"] .preview .pv-pane{
    position:fixed;
    left:var(--ui-sidebar);
    right:min(360px,calc(92vw / var(--ui-fs-zoom,1)));
    top:var(--ui-topbar);
    bottom:0;
    z-index:65;
    width:auto;
    height:auto;
    display:none;
    box-shadow:var(--ui-shadow-float);
  }
  :root[data-ui="v1"] body.ui-show-artifact .preview .pv-pane,
  :root[data-ui="v1"] body.show-artifact .preview .pv-pane,
  :root[data-ui="v1"] .preview.pv-open .pv-pane{display:flex}
  :root[data-ui="v1"] body.ui-inspector-collapsed .preview.pv-open .pv-pane,
  :root[data-ui="v1"] .preview.pv-open.ui-inspector-collapsed .pv-pane{right:0}
  :root[data-ui="v1"] .preview .pv-treecol{
    position:fixed;
    right:0;
    top:var(--ui-topbar);
    bottom:0;
    z-index:70;
    width:min(360px,calc(92vw / var(--ui-fs-zoom,1)));
    height:auto;
    display:flex;
    box-shadow:var(--ui-shadow-float);
  }
  :root[data-ui="v1"] body.ui-inspector-collapsed .preview .pv-treecol,
  :root[data-ui="v1"] .preview.ui-inspector-collapsed .pv-treecol{display:none}
  :root[data-ui="v1"] .preview .pv-vdiv{display:none!important}
}

@media(min-width:1440px){
  :root[data-ui="v1"] body>.sidebar,
  :root[data-ui="v1"] body>#previewAside{width:auto!important}
}

@media(max-width:960px){
  :root[data-ui="v1"]{--ui-sidebar:226px}
  :root[data-ui="v1"] .ui-appbar-title{font-size:12.5px}
  :root[data-ui="v1"] .ui-appbar-actions{margin-left:auto}
  :root[data-ui="v1"] .ui-appbar-title+.ui-appbar-note{display:none}
  :root[data-ui="v1"] .preview.pv-open .pv-pane{right:0}
  :root[data-ui="v1"] .preview.pv-open .pv-treecol{display:none}
}

@media(max-width:680px){
  :root[data-ui="v1"]{--ui-sidebar:172px}
  :root[data-ui="v1"] .ui-appbar{padding-inline:10px}
  :root[data-ui="v1"] .ui-appbar-actions button{padding-inline:8px}
  :root[data-ui="v1"] .sidebar .brand{padding-inline:12px}
  :root[data-ui="v1"] .messages{padding-inline:14px}
  :root[data-ui="v1"] .composer{padding-inline:10px}
  :root[data-ui="v1"] .ui-compose-hint{display:none}
  :root[data-ui="v1"] .pv-pane>.pv-body{margin:12px;padding:24px 22px}
}

/* Inspector overlays use one drawer boundary; the left menu stays at 760px. */
:root[data-ui="v1"] .ui-m-burger{
  display:none; align-items:center; justify-content:center;
  width:34px; height:34px; margin-right:8px; padding:0; flex:0 0 auto;
  background:transparent; border:1px solid rgba(255,255,255,.30); border-radius:8px;
  color:#eaf2fb; font-size:18px; line-height:1; cursor:pointer;
}
:root[data-ui="v1"] .ui-m-burger:hover{background:rgba(255,255,255,.13)}
:root[data-ui="v1"] .ui-m-backdrop{display:none}

@media(max-width:960px){
  :root[data-ui="v1"] .preview .pv-treecol{
    transform:translateX(101%); visibility:hidden;
    transition:transform .26s cubic-bezier(.4,0,.2,1),visibility .26s;
    z-index:80;
  }
  :root[data-ui="v1"] body.ui-m-nav-inspector .preview .pv-treecol{
    display:flex; transform:translateX(0); visibility:visible;
  }
  :root[data-ui="v1"] .ui-m-backdrop{
    position:fixed; inset:var(--ui-topbar,52px) 0 0 0;
    background:rgba(15,23,32,.44); z-index:75; -webkit-tap-highlight-color:transparent;
  }
  :root[data-ui="v1"] body.ui-m-nav-inspector .ui-m-backdrop{display:block}
}

@media(max-width:760px){
  /* 单列：仅保留中栏（对话/视图区），占满宽度 */
  :root[data-ui="v1"] body,
  :root[data-ui="v1"] body:not(.ui-artifact-open),
  :root[data-ui="v1"] body:not(.ui-artifact-open).ui-inspector-collapsed{
    grid-template-areas:"appbar" "center";
    grid-template-columns:1fr;
  }
  :root[data-ui="v1"] .center{grid-area:center;min-width:0;width:100%}
  :root[data-ui="v1"] .vsplit{display:none!important}
  :root[data-ui="v1"] .ui-m-burger{display:inline-flex}
  /* 侧栏 → 左抽屉（默认隐去，汉堡开合） */
  :root[data-ui="v1"] .sidebar{
    position:fixed; top:var(--ui-topbar,52px); left:0; bottom:0;
    width:min(calc(86vw / var(--ui-fs-zoom,1)),320px); max-width:320px; z-index:80;
    transform:translateX(-101%); transition:transform .26s cubic-bezier(.4,0,.2,1);
    box-shadow:var(--ui-shadow-float,0 12px 40px rgba(0,0,0,.32)); overflow-y:auto;
  }
  :root[data-ui="v1"] body.ui-m-nav-sidebar .sidebar{transform:translateX(0)}
  /* Keep the phone drawer width independent of the tablet sidebar. */
  :root[data-ui="v1"] .preview .pv-treecol{
    width:min(calc(90vw / var(--ui-fs-zoom,1)),380px);
  }
  /* 成果预览面板 → 全屏 */
  :root[data-ui="v1"] .preview.pv-open .pv-pane{left:0!important;right:0!important}
  :root[data-ui="v1"] body.ui-m-nav-sidebar .ui-m-backdrop{display:block}
}

@media(prefers-reduced-motion:reduce){
  :root[data-ui="v1"] *,
  :root[data-ui="v1"] *::before,
  :root[data-ui="v1"] *::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* 参考文献存在性核验·红字警告（写完文献后台自动核验 CrossRef/PubMed → cite_alert 回灌） */
:root[data-ui="v1"] .ui-cite-alert{margin:6px 0 8px;border:1px solid var(--danger,#d33);background:rgba(211,51,51,.08);border-radius:8px;padding:8px 10px}
:root[data-ui="v1"] .ui-cite-hd{color:var(--danger,#c0392b);font-weight:600;font-size:12.5px;margin-bottom:4px;line-height:1.45}
:root[data-ui="v1"] .ui-cite-item{font-size:11.5px;line-height:1.5;padding:1px 0;opacity:.92}
:root[data-ui="v1"] .ui-cite-item.bad{color:var(--danger,#c0392b)}
:root[data-ui="v1"] .ui-cite-item.warn{color:#c07a00}
:root[data-ui="v1"] .ui-cite-note{font-size:11px;opacity:.72;margin-top:5px}
:root[data-ui="v1"] .ai-cite-reflux{margin-top:10px;border-left:3px solid var(--danger,#d33);background:rgba(211,51,51,.07);border-radius:6px;padding:8px 11px}
:root[data-ui="v1"] .ai-cite-reflux .rf-hd{color:var(--danger,#c0392b);font-weight:600;font-size:12.5px;margin-bottom:3px}
:root[data-ui="v1"] .ai-cite-reflux .rf-item{font-size:12px;line-height:1.55;opacity:.92}
:root[data-ui="v1"] .ai-cite-reflux .rf-note{font-size:11px;opacity:.72;margin-top:5px}
/* 交付前【处置】口径:绿=系统已按权威记录改掉的(客户不用管),黄=待客户确认但不挡交付,红(默认)=挡住导出。
   .rf-hd 默认是红色,已修/提示两档必须显式覆盖 color,否则"已自动更正"会顶着红字发出去(报喜讯用报警脸)。 */
:root[data-ui="v1"] .ai-cite-reflux .rf-hd.rf-ok{color:var(--ok,#0a7)}
:root[data-ui="v1"] .ai-cite-reflux .rf-hd.rf-soft{color:#c07a00}
:root[data-ui="v1"] .ai-cite-reflux .rf-item.ok{color:var(--ok,#0a7)}
:root[data-ui="v1"] .ai-cite-reflux .rf-item.soft{color:#c07a00}
:root[data-ui="v1"] .ui-cite-item.ok{color:var(--ok,#0a7)}
/* 已修+待确认时整框不该是纯报警红——顶部标题自己分档,框体保持中性偏警示即可 */
:root[data-ui="v1"] .ai-cite-reflux:has(.rf-hd.rf-ok:first-child){border-left-color:var(--ok,#0a7);background:rgba(10,119,119,.06)}
/* 双界面入口与手机指令收件箱：顶栏始终可切到随身助手；待执行指令只放入输入框，不自动运行。 */
.ui-surface-link,.ui-mobile-inbox{min-height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:transparent;color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.ui-surface-link:hover,.ui-mobile-inbox:hover{background:rgba(255,255,255,.12)}
.ui-mobile-inbox[hidden]{display:none!important}
.ui-mobile-inbox-count{min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#c64a43;color:#fff;display:inline-grid;place-items:center;font-size:9px}
.ui-mobile-command{padding:11px 0;border-bottom:1px solid var(--border)}
.ui-mobile-command:last-child{border-bottom:0}
.ui-mobile-command strong{display:block;font-size:13px}.ui-mobile-command p{margin:5px 0 8px;color:var(--text-dim);font-size:12px;line-height:1.55;white-space:pre-wrap}
@media(max-width:760px){.ui-surface-link{padding:0 8px;font-size:11px}.ui-mobile-inbox{width:34px;padding:0;justify-content:center}.ui-mobile-inbox-copy{display:none}.ui-mobile-inbox-count{position:absolute;transform:translate(12px,-11px)}}

/* 20260730 · 研究数据工作台：把堆叠长页整理成可理解的四步工作流。 */
:root[data-ui="v1"] .data-workbench{max-width:980px;margin:0 auto;padding:2px 0 28px}
:root[data-ui="v1"] .data-workbench-hero{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;
  padding:22px 24px 88px;border:1px solid #cbd9e6;border-radius:16px;
  background:linear-gradient(135deg,#f7fbff 0%,#eef5fb 56%,#f8fbf8 100%);
  box-shadow:0 10px 28px rgba(26,67,99,.08);overflow:hidden
}
:root[data-ui="v1"] .data-workbench-hero>div:first-child{max-width:680px}
:root[data-ui="v1"] .data-workbench-hero small,
:root[data-ui="v1"] .data-panel-head small{font-size:10px;letter-spacing:.14em;color:#557289;font-weight:800}
:root[data-ui="v1"] .data-workbench-hero h2{margin:5px 0 7px;font-size:23px;line-height:1.2;color:#173b5f}
:root[data-ui="v1"] .data-workbench-hero p{margin:0;color:#536777;font-size:13px;line-height:1.7}
:root[data-ui="v1"] .data-workbench-hero>.btn{align-self:start}
:root[data-ui="v1"] .data-metrics{
  position:absolute;left:18px;right:18px;bottom:16px;display:grid;grid-template-columns:repeat(4,1fr);
  background:rgba(255,255,255,.88);border:1px solid rgba(183,201,216,.82);border-radius:12px;backdrop-filter:blur(10px)
}
:root[data-ui="v1"] .data-metrics>div{padding:10px 16px;border-right:1px solid #e3ebf2;display:flex;align-items:baseline;gap:7px}
:root[data-ui="v1"] .data-metrics>div:last-child{border-right:0}
:root[data-ui="v1"] .data-metrics span{font-size:20px;font-weight:800;color:#173b5f}
:root[data-ui="v1"] .data-metrics span.data-ready{font-size:13px;color:#9a6a12}
:root[data-ui="v1"] .data-metrics span.data-ready.ready{color:#13734b}
:root[data-ui="v1"] .data-metrics small{letter-spacing:0;color:#748695;font-size:10px;font-weight:600}
:root[data-ui="v1"] .data-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}
:root[data-ui="v1"] .data-tabs button{
  min-width:0;display:flex;align-items:center;gap:10px;text-align:left;padding:11px 13px;
  border:1px solid #d4dee7;border-radius:11px;background:#fff;color:#4c6070;cursor:pointer;transition:.16s ease
}
:root[data-ui="v1"] .data-tabs button:hover{border-color:#91adc2;background:#f8fbfd}
:root[data-ui="v1"] .data-tabs button.active{border-color:#2f6895;background:#eaf3fb;color:#173b5f;box-shadow:inset 0 0 0 1px rgba(47,104,149,.12)}
:root[data-ui="v1"] .data-tabs button>b{display:grid;place-items:center;width:27px;height:27px;flex:0 0 auto;border-radius:8px;background:#edf2f6;font-size:10px}
:root[data-ui="v1"] .data-tabs button.active>b{background:#2f6895;color:#fff}
:root[data-ui="v1"] .data-tabs button span{display:flex;min-width:0;flex-direction:column;font-size:12px;font-weight:700}
:root[data-ui="v1"] .data-tabs button small{font-size:9.5px;font-weight:500;opacity:.72;margin-top:2px}
:root[data-ui="v1"] .data-panel{display:none;animation:dataPanelIn .18s ease}
:root[data-ui="v1"] .data-panel.active{display:block}
@keyframes dataPanelIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
:root[data-ui="v1"] .data-panel-head{padding:12px 4px 8px}
:root[data-ui="v1"] .data-panel-head h3{margin:3px 0 5px;font-size:17px;color:#233f56}
:root[data-ui="v1"] .data-panel-head p{margin:0;color:#687a89;font-size:12px;line-height:1.65}
:root[data-ui="v1"] .data-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:7px 0 12px}
:root[data-ui="v1"] .data-dropzone{
  min-height:102px;padding:14px 16px;border:1px dashed #aebfcd;border-radius:12px;background:#fbfdff;
  display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto auto;column-gap:11px;cursor:pointer
}
:root[data-ui="v1"] .data-dropzone:hover{border-color:#2f6895;background:#f4f9fd}
:root[data-ui="v1"] .data-dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
:root[data-ui="v1"] .data-drop-icon{grid-row:1/4;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e8f1f8;color:#285f8b;font-size:16px}
:root[data-ui="v1"] .data-dropzone b{font-size:13px;color:#243e54}
:root[data-ui="v1"] .data-dropzone small{margin-top:3px;color:#6e808f;font-size:10.5px}
:root[data-ui="v1"] .data-dropzone .hint{margin-top:4px;font-size:10px}
:root[data-ui="v1"] .data-card{margin:10px 0;border-radius:12px;border-color:#d7e0e8;box-shadow:0 4px 14px rgba(27,54,76,.035)}
:root[data-ui="v1"] .data-card-title{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}
:root[data-ui="v1"] .data-card-title>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#edf4f9;flex:0 0 auto}
:root[data-ui="v1"] .data-card-title>div{display:flex;flex-direction:column}
:root[data-ui="v1"] .data-card-title b{font-size:13px;color:#273f53}
:root[data-ui="v1"] .data-card-title small{color:#71818e;font-size:10.5px;line-height:1.5;margin-top:2px}
:root[data-ui="v1"] .data-field-action{display:flex;align-items:flex-end}
:root[data-ui="v1"] .data-code-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:9px}
:root[data-ui="v1"] .data-code-toolbar select{width:auto;min-width:110px}
:root[data-ui="v1"] .data-code-editor{font-family:var(--mono);font-size:12px;line-height:1.65;background:#f8fafc}
:root[data-ui="v1"] .data-empty-state{padding:22px 16px;border:1px dashed #ccd7df;border-radius:10px;background:#fafcfd;text-align:center;display:flex;flex-direction:column;gap:4px}
:root[data-ui="v1"] .data-empty-state b{font-size:12px;color:#455d70}
:root[data-ui="v1"] .data-empty-state span{font-size:11.5px;color:#5f6f7c;line-height:1.75;max-width:52em}   /* 2026-07-30: 原 10.5px/#83919c 实测对比度 3.14:1(AA 要 4.5)。空态是承载"为什么空、什么时候会有"这类如实说明的地方,读不清等于没写 —— 调深到 4.85:1 并加大行高 */
@media(max-width:760px){
  :root[data-ui="v1"] .data-workbench{padding:0 8px 22px}
  :root[data-ui="v1"] .data-workbench-hero{grid-template-columns:1fr;padding:18px 16px 154px}
  :root[data-ui="v1"] .data-workbench-hero>.btn{justify-self:start}
  :root[data-ui="v1"] .data-metrics{grid-template-columns:1fr 1fr}
  :root[data-ui="v1"] .data-metrics>div:nth-child(2){border-right:0}
  :root[data-ui="v1"] .data-metrics>div:nth-child(-n+2){border-bottom:1px solid #e3ebf2}
  :root[data-ui="v1"] .data-tabs{grid-template-columns:1fr 1fr}
  :root[data-ui="v1"] .data-action-grid{grid-template-columns:1fr}
}

/* 新建项目：以用户场景为入口，同时保留完整工作流下拉。 */
:root[data-ui="v1"] .np-modal{max-width:660px!important;max-height:calc(92vh / var(--ui-fs-zoom,1));padding:0!important;overflow-y:auto;overscroll-behavior:contain}
:root[data-ui="v1"] .np-head{display:flex;justify-content:space-between;gap:16px;padding:20px 22px 14px;background:linear-gradient(135deg,#f5f9fc,#edf4fa);border-bottom:1px solid #dce5ec}
:root[data-ui="v1"] .np-head small{font-size:9px;letter-spacing:.15em;font-weight:800;color:#57748a}
:root[data-ui="v1"] .np-head h3{margin:3px 0 4px;font-size:19px;color:#193d5d}
:root[data-ui="v1"] .np-head p{margin:0;color:#647786;font-size:11.5px}
:root[data-ui="v1"] .np-modal>.field,
:root[data-ui="v1"] .np-modal>.np-scenarios,
:root[data-ui="v1"] .np-modal>.np-workflow-preview{margin-left:22px;margin-right:22px}
:root[data-ui="v1"] .np-name-field{margin-top:16px}
:root[data-ui="v1"] .np-name-row{display:flex;gap:8px}
:root[data-ui="v1"] .np-name-row input{flex:1;min-width:0}
:root[data-ui="v1"] .np-scenarios{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
/* 「更多选项」入口：不做成第 7 张卡（会把 2×3 打成 3+3+1 的豁口，而且"更多"不是一个研究场景，
   与其余六张不同质）。做成卡片下方【整行的主控】——与卡片同族的排版（图标+粗标题+副说明），
   但通栏 + 强调色底，一眼能看见。
   初版是灰色虚线小字，客户反馈"要醒目一些"：那种样式会被当成说明文字滑过去，
   而它承担的是"另外 17 个流程的唯一入口"，分量不该低于一张卡片。 */
:root[data-ui="v1"] .np-more{display:grid;grid-template-columns:27px 1fr auto;grid-template-rows:auto auto;
  gap:1px 9px;align-items:center;width:100%;margin:0 0 14px;padding:10px;text-align:left;
  border:1px solid #b9d0e4;border-radius:10px;background:#eff6fc;color:#2f6895;cursor:pointer}
:root[data-ui="v1"] .np-more>.np-more-ic{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;
  border-radius:8px;background:#dbe9f6;color:#2f6895;font-size:15px;line-height:1}
:root[data-ui="v1"] .np-more>b{grid-column:2;font-size:13px;font-weight:650;color:#22557f}
:root[data-ui="v1"] .np-more>small{grid-column:2;font-size:11.5px;color:#446a88;line-height:1.45}
:root[data-ui="v1"] .np-more>.np-more-go{grid-column:3;grid-row:1/3;font-size:15px;color:#2f6895;padding:0 2px}
:root[data-ui="v1"] .np-more:hover{border-color:#2f6895;background:#e3f0fb}
:root[data-ui="v1"] .np-more:hover>.np-more-go{transform:translateX(2px)}
:root[data-ui="v1"] .np-more>.np-more-go{transition:transform .15s ease}
:root[data-ui="v1"] .np-more:focus-visible{outline:2px solid var(--ui-accent,#2f6895);outline-offset:2px}
/* 点了「更多」之后闪一下，告诉客户"你要的全集在这儿"——只聚焦不给反馈，人会不知道发生了什么 */
:root[data-ui="v1"] .np-wf-flash{animation:npWfFlash 1.4s ease-out 1}
@keyframes npWfFlash{0%,100%{box-shadow:none}18%,60%{box-shadow:0 0 0 3px rgba(47,104,149,.22)}}
:root[data-ui="v1"] .np-scenarios button{display:grid;grid-template-columns:27px 1fr;grid-template-rows:auto auto;gap:1px 7px;text-align:left;padding:10px;border:1px solid #d7e1e8;border-radius:10px;background:#fff;color:#40576a;cursor:pointer}
:root[data-ui="v1"] .np-scenarios button:hover{border-color:#8daabe;background:#f7fbfe}
:root[data-ui="v1"] .np-scenarios button.active{border-color:#2f6895;background:#eaf3fb;box-shadow:inset 0 0 0 1px rgba(47,104,149,.12)}
:root[data-ui="v1"] .np-scenarios button>span{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#eef3f6}
:root[data-ui="v1"] .np-scenarios button b{font-size:11.5px}
:root[data-ui="v1"] .np-scenarios button small{font-size:9.5px;color:#788996}
:root[data-ui="v1"] .np-workflow-preview{display:grid;grid-template-columns:90px 1fr 135px;border:1px solid #dce4ea;border-radius:10px;background:#fafcfd;margin-top:10px;margin-bottom:4px}
:root[data-ui="v1"] .np-workflow-preview>span{padding:9px 11px;display:flex;flex-direction:column;border-right:1px solid #e5ebef;min-width:0}
:root[data-ui="v1"] .np-workflow-preview>span:last-child{border-right:0}
:root[data-ui="v1"] .np-workflow-preview b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#385267}
:root[data-ui="v1"] .np-workflow-preview small{font-size:9px;color:#82919c;margin-top:2px}
:root[data-ui="v1"] .np-modal>.modal-actions{padding:14px 22px 18px}
@media(max-width:760px){
  :root[data-ui="v1"] .np-overlay{align-items:flex-start;padding:12px 0;overflow-y:auto}
  :root[data-ui="v1"] .np-modal{max-height:calc((100vh / var(--ui-fs-zoom,1)) - (24px / var(--ui-fs-zoom,1)));width:min(calc(94vw / var(--ui-fs-zoom,1)),660px)}
  :root[data-ui="v1"] .np-head{position:sticky;top:0;z-index:2;padding:15px 16px 11px}
  :root[data-ui="v1"] .np-head h3{font-size:17px}
  :root[data-ui="v1"] .np-modal>.field,
  :root[data-ui="v1"] .np-modal>.np-scenarios,
  :root[data-ui="v1"] .np-modal>.np-workflow-preview{margin-left:14px;margin-right:14px}
  :root[data-ui="v1"] .np-scenarios{grid-template-columns:repeat(2,minmax(0,1fr))}
  :root[data-ui="v1"] .np-modal>.modal-actions{position:sticky;bottom:0;z-index:2;margin-top:10px;padding:11px 14px 13px;background:var(--ui-surface,#fff);border-top:1px solid var(--ui-border,#d8dee5)}
}

/* 科研工具：可搜索、可分类，避免技能增长后变成长滚动清单。 */
:root[data-ui="v1"] .ui-fail-diag{margin-top:10px;border:1px solid #e0e6eb;border-radius:8px;background:#f7f9fb}
:root[data-ui="v1"] .ui-fail-diag>summary{cursor:pointer;padding:7px 10px;font-size:11.5px;color:#5d7080;font-weight:600}
:root[data-ui="v1"] .ui-fail-diag>pre{margin:0;padding:8px 10px 10px;max-height:180px;overflow:auto;white-space:pre-wrap;word-break:break-all;font:11px/1.6 var(--mono);color:#3c4b57;user-select:text}
/* 运行中心 / 分析成果的列表（UI-DATA-WORKBENCH-20260730）。
   这些容器都在 .data-panel（.cv-body 内）里，不在 .composer .cwrap / .ui-chat-actions /
   .ui-inspector-head / .ui-flow-config 这四个「祖先 button 炸弹」之内，所以按钮无需额外复位
   —— 但里面的「打开」按钮用的是既有 .btn.btn-sm，本身就有样式。 */
:root[data-ui="v1"] .dw-table{display:flex;flex-direction:column;border:1px solid #e2e8ed;border-radius:9px;overflow:hidden;background:#fff}
:root[data-ui="v1"] .dw-row{display:flex;align-items:flex-start;gap:10px;padding:9px 11px;border-bottom:1px solid #eef2f5}
:root[data-ui="v1"] .dw-row:last-child{border-bottom:none}
:root[data-ui="v1"] .dw-row:hover{background:#f8fbfd}
:root[data-ui="v1"] .dw-row.dw-block{align-items:stretch}
:root[data-ui="v1"] .dw-cell{min-width:0}
:root[data-ui="v1"] .dw-main{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}
:root[data-ui="v1"] .dw-main>b{font-size:12.5px;color:#22394b;font-weight:600;word-break:break-all}
:root[data-ui="v1"] .dw-sub{font-size:11px;color:#5b6c79;line-height:1.65;word-break:break-all}
:root[data-ui="v1"] .dw-sub code{padding:0 3px;border-radius:3px;background:#eef3f7;color:#2f5c7e;font:10.5px/1.5 var(--mono);user-select:text}
:root[data-ui="v1"] .dw-sub i{color:#667683;font-style:normal}
:root[data-ui="v1"] .dw-sub.dw-bad{color:#a3242b}
:root[data-ui="v1"] .dw-sub.dw-env{color:#64757f}
:root[data-ui="v1"] .dw-right{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
:root[data-ui="v1"] .dw-badge{display:inline-block;padding:2px 7px;border:1px solid #d4dee6;border-radius:999px;background:#f4f8fb;color:#4e6373;font-size:10px;font-weight:600;white-space:nowrap}
:root[data-ui="v1"] .dw-badge.ok{border-color:#a9d3b6;background:#eef8f1;color:#1c6b39}
:root[data-ui="v1"] .dw-badge.bad{border-color:#e6b3b3;background:#fdf0f0;color:#a3242b}
:root[data-ui="v1"] .dw-group{margin-bottom:12px}
:root[data-ui="v1"] .dw-group:last-child{margin-bottom:0}
:root[data-ui="v1"] .dw-group-hd{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:11.5px;font-weight:700;color:#3d576b}
:root[data-ui="v1"] .dw-group-hd>span{padding:0 6px;border-radius:999px;background:#eef3f7;color:#4d6376;font-size:10px;font-weight:600}
@media(max-width:760px){
  :root[data-ui="v1"] .dw-row{flex-direction:column;gap:6px}
  :root[data-ui="v1"] .dw-right{align-items:flex-start;flex-direction:row}
}
/* 计划卡（P4 · UI-PLANMODE-20260730）。放在输入框上方的固定条区,不在聊天气泡里——
   气泡会被后续对话冲走,而「有计划等你批准」必须一直在眼皮底下。
   容器 #planBar 是 .composer 的直接子元素、不在 .cwrap 内,所以不会撞上那条把
   .composer .cwrap button 刷成 38x38 发送按钮的祖先规则(2026-07-30 芯片隐形事故的元凶)。
   说明类文字一律按 ≥4.5:1 选色——读不清等于没写。 */
:root[data-ui="v1"] .plan-bar{box-sizing:border-box;border:1px solid #d8e0e7;border-radius:12px;background:#fff;color:#24384a;box-shadow:0 5px 18px rgba(30,52,70,.07)}
:root[data-ui="v1"] .plan-bar-review{padding:10px 12px}
:root[data-ui="v1"] .plan-bar-review.is-collapsed{max-height:110px;overflow:hidden}
:root[data-ui="v1"] .plan-bar-exec{min-height:36px;display:flex;align-items:center;gap:8px;padding:7px 10px;border-color:#d9e3de;background:#f8fbf9;box-shadow:none}
:root[data-ui="v1"] .plan-exec-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#24835a;box-shadow:0 0 0 3px rgba(36,131,90,.12);animation:planExecPulse 1.8s ease-in-out infinite}
@keyframes planExecPulse{0%,100%{opacity:.62}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){:root[data-ui="v1"] .plan-exec-dot{animation:none}}
:root[data-ui="v1"] .plan-exec-label{flex:0 0 auto;font-size:10.75px;font-weight:650;color:#39745a;white-space:nowrap}
:root[data-ui="v1"] .plan-bar-head{display:flex;align-items:center;gap:7px;min-width:0}
:root[data-ui="v1"] .plan-bar-title{flex:1 1 auto;min-width:0;font-size:12.5px;font-weight:650;color:#21384b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .plan-bar-hint{margin-top:4px;font-size:11px;color:#60717f;line-height:1.45}
:root[data-ui="v1"] .plan-bar-hint.is-error{color:#8b4845}
:root[data-ui="v1"] .plan-badge{flex:0 0 auto;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;white-space:nowrap}
:root[data-ui="v1"] .plan-badge.review{background:#e9f1f8;color:#285f89;border:1px solid #cbddeb}
:root[data-ui="v1"] .plan-badge.failed{background:#fbeceb;color:#973d3a;border:1px solid #efcbc8}
:root[data-ui="v1"] .plan-badge.ro{background:#eef3f7;color:#41586b;border:1px solid #c9d8e4}
:root[data-ui="v1"] .plan-badge.exec{background:#1c6b39;color:#fff}
:root[data-ui="v1"] .plan-toggle{margin-left:auto}
:root[data-ui="v1"] .plan-body{margin-top:8px;max-height:min(calc(32vh / var(--ui-fs-zoom,1)),320px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid #e4e9ee;border-radius:9px;background:#fafbfc;padding:9px 10px}
:root[data-ui="v1"] .plan-body:focus-visible{outline:2px solid #4c84ae;outline-offset:2px}
:root[data-ui="v1"] .plan-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
:root[data-ui="v1"] .plan-steps>li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:7px;font-size:12px;color:#2b4256;line-height:1.55}
:root[data-ui="v1"] .plan-step-mark{width:8px;height:8px;margin-top:5px;border:1.5px solid #a7b4bf;border-radius:50%;background:#fff}
:root[data-ui="v1"] .plan-steps>li.is-done .plan-step-mark{border-color:#2b8a5c;background:#2b8a5c;box-shadow:inset 0 0 0 2px #fff}
:root[data-ui="v1"] .plan-steps>li.is-active .plan-step-mark{border-color:#397cae;background:#397cae;box-shadow:0 0 0 3px rgba(57,124,174,.14)}
:root[data-ui="v1"] .plan-steps>li.is-failed .plan-step-mark{border-color:#ba4545;background:#ba4545}
:root[data-ui="v1"] .plan-steps>li.is-stopped .plan-step-mark{border-color:#8b949c;background:#8b949c}
:root[data-ui="v1"] .plan-step-content{min-width:0}
:root[data-ui="v1"] .plan-step-title{display:flex;align-items:baseline;gap:7px;min-width:0}
:root[data-ui="v1"] .plan-step-title>b{min-width:0;font-weight:650;color:#1e3548}
:root[data-ui="v1"] .plan-step-status{flex:0 0 auto;font-size:10px;font-weight:650;color:#647684}
:root[data-ui="v1"] .plan-steps>li.is-done .plan-step-status{color:#27734e}
:root[data-ui="v1"] .plan-steps>li.is-active .plan-step-status{color:#2f6f9e}
:root[data-ui="v1"] .plan-steps>li.is-failed .plan-step-status{color:#a53a3a}
:root[data-ui="v1"] .plan-step-out{display:block;margin-top:2px;font-size:11px;color:#4a6275}
:root[data-ui="v1"] .plan-step-out code{padding:0 4px;border-radius:3px;background:#e9f1f7;color:#26597e;font:10.5px/1.6 var(--mono);user-select:text}
:root[data-ui="v1"] .plan-step-detail{display:block;margin-top:2px;font-size:11px;color:#546a7c;line-height:1.6}
:root[data-ui="v1"] .plan-raw-note{margin-bottom:6px;font-size:11.5px;color:#4f6272;line-height:1.6}
/* 【2026-07-30 客户报"格式混乱"】计划原文改走 renderMd 渲染成真 markdown（表格/加粗/标题），
   容器从 <pre> 换成 .plan-raw-md。沿用原来那口滚动框的尺寸与配色，只把排版交给 markdown；
   表格必须自己横向滚动，否则宽表会把整个输入框区域撑破（三栏宽度是物理约束）。 */
:root[data-ui="v1"] .plan-raw>.plan-raw-md{margin:0;padding:8px 10px;border:1px solid #e3ebf2;border-radius:8px;background:#fff;max-height:min(calc(34vh / var(--ui-fs-zoom,1)),300px);overflow:auto;font:11.5px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#33475b;user-select:text}
:root[data-ui="v1"] .plan-raw>.plan-raw-md>*{margin:0 0 6px}
:root[data-ui="v1"] .plan-raw>.plan-raw-md>*:last-child{margin-bottom:0}
:root[data-ui="v1"] .plan-raw>.plan-raw-md h1,:root[data-ui="v1"] .plan-raw>.plan-raw-md h2,:root[data-ui="v1"] .plan-raw>.plan-raw-md h3,:root[data-ui="v1"] .plan-raw>.plan-raw-md h4{font-size:12px;font-weight:700;color:#1f3346;margin:8px 0 4px}
:root[data-ui="v1"] .plan-raw>.plan-raw-md ol,:root[data-ui="v1"] .plan-raw>.plan-raw-md ul{padding-left:18px}
:root[data-ui="v1"] .plan-raw>.plan-raw-md blockquote{margin:6px 0;padding:2px 0 2px 8px;border-left:2px solid #cfdce8;color:#4f6272}
:root[data-ui="v1"] .plan-raw>.plan-raw-md table{border-collapse:collapse;display:block;max-width:100%;overflow-x:auto}
:root[data-ui="v1"] .plan-raw>.plan-raw-md th,:root[data-ui="v1"] .plan-raw>.plan-raw-md td{border:1px solid #e3ebf2;padding:3px 6px;white-space:nowrap}
:root[data-ui="v1"] .plan-raw>.plan-raw-md code{background:#f2f6fa;border-radius:3px;padding:0 3px}
:root[data-ui="v1"] .plan-raw>pre{margin:0;padding:8px 10px;border:1px solid #e3ebf2;border-radius:8px;background:#fff;max-height:min(calc(34vh / var(--ui-fs-zoom,1)),300px);overflow:auto;white-space:pre-wrap;word-break:break-word;font:11.5px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#33475b;user-select:text}
:root[data-ui="v1"] .plan-acts{display:flex;align-items:center;gap:7px;margin-top:8px;min-height:28px;flex-wrap:wrap}
:root[data-ui="v1"] .plan-acts .plan-abort{color:#6a7883}
:root[data-ui="v1"] .plan-bar button:focus-visible{outline:2px solid #397cae;outline-offset:2px}
:root[data-ui="v1"] .plan-history-receipt{grid-template-columns:minmax(0,1fr);margin:2px 0 14px;padding-left:40px}
:root[data-ui="v1"] .msg.assistant.plan-history-receipt>.bubble{width:auto;max-width:min(560px,92%);padding:0;border:0;background:transparent;box-shadow:none}
:root[data-ui="v1"] .plan-receipt{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:7px 10px;border:1px solid #dfe6e2;border-radius:9px;background:#f8faf9;color:#52645b;font-size:11.5px;line-height:1.4}
:root[data-ui="v1"] .plan-receipt-mark{width:17px;height:17px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#e4f2ea;color:#28724e;font-size:10px;font-weight:800}
:root[data-ui="v1"] .plan-receipt-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){
  :root[data-ui="v1"] .plan-bar-review{padding:8px 9px}
  :root[data-ui="v1"] .plan-bar-review.is-collapsed{max-height:110px}
  :root[data-ui="v1"] .plan-badge.ro{display:none}
  :root[data-ui="v1"] .plan-acts .btn{flex:1 1 auto}
  :root[data-ui="v1"] .plan-history-receipt{padding-left:0}
}
:root[data-ui="v1"] .skill-pop{width:min(390px,calc(calc(100vw / var(--ui-fs-zoom,1)) - 24px))!important;max-height:min(calc(72vh / var(--ui-fs-zoom,1)),620px)!important}
:root[data-ui="v1"] .skill-pop .sp-body{padding:0 0 7px;overflow:auto}
:root[data-ui="v1"] .skill-menu-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px;background:var(--panel,#fff)}
:root[data-ui="v1"] .skill-menu-head>div{display:flex;flex-direction:column}
:root[data-ui="v1"] .skill-menu-head small{font-size:8.5px;letter-spacing:.14em;color:#708495;font-weight:800}
:root[data-ui="v1"] .skill-menu-head b{font-size:14px;color:#263f53}
:root[data-ui="v1"] .skill-search-wrap{position:sticky;top:50px;z-index:3;margin:0 10px 7px;display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid #d5dfe7;border-radius:9px;background:var(--panel,#fff)}
:root[data-ui="v1"] .skill-search-wrap input{width:100%;height:34px;border:0!important;outline:0;background:transparent;font-size:11.5px}
/* 换行而非横滚:弹层宽 min(390px,100vw-24px),五个芯片实测 358px > 可视 307px,而原来 scrollbar-width:none
   把滚动条也藏了 → 永远有一个筛选项躲在"没有任何提示的横滚"里,用户不知道它存在。宁可占两行。 */
:root[data-ui="v1"] .skill-filters{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px 8px}
/* 发送按钮已收窄为直接子级 #sendBtn；弹层芯片保持组件自己的尺寸与配色，不再依赖专属度对冲。 */
:root[data-ui="v1"] .skill-filters button{
  flex:0 0 auto;width:auto;height:auto;white-space:nowrap;
  padding:5px 9px;border:1px solid #d3dde5;border-radius:999px;
  background:#fff;color:#54687a;font-size:11px;font-weight:600;line-height:1.3;
  box-shadow:none;cursor:pointer
}
:root[data-ui="v1"] .skill-filters button:hover{background:#f3f8fc;border-color:#b9cbd9;color:#2b6390;box-shadow:none}
:root[data-ui="v1"] .skill-filters button.active{background:#1f5f8f;border-color:#1f5f8f;color:#fff;font-weight:700;box-shadow:none}
:root[data-ui="v1"] .skill-filters button.active:hover{background:#1a527c;border-color:#1a527c;color:#fff}
:root[data-ui="v1"] .skill-pop .skill-item{margin:1px 7px;padding:9px 10px}
:root[data-ui="v1"] .skill-pop .skill-item[hidden]{display:none!important}
:root[data-ui="v1"] .skill-pop .skill-featured{border:1px solid #d7e5ef;background:#f5f9fc}
:root[data-ui="v1"] .skill-filter-empty{padding:24px 16px;text-align:center;color:#80909b;font-size:11px}
@media(max-width:620px){
  :root[data-ui="v1"] .np-scenarios{grid-template-columns:1fr 1fr}
  :root[data-ui="v1"] .np-name-row{flex-direction:column}
  :root[data-ui="v1"] .np-workflow-preview{grid-template-columns:72px 1fr}
  :root[data-ui="v1"] .np-workflow-preview>span:last-child{grid-column:1/3;border-top:1px solid #e5ebef}
}

/* 统一确认反馈与重复指令压缩。 */
:root[data-ui="v1"] .ui-confirm-modal{max-width:470px!important;display:grid;grid-template-columns:46px 1fr;gap:13px 15px;padding:20px!important}
:root[data-ui="v1"] .ui-confirm-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eaf3fb;color:#255f8d;font-size:18px;font-weight:800}
:root[data-ui="v1"] .ui-confirm-icon.danger{background:#fff0ee;color:#b23b35}
:root[data-ui="v1"] .ui-confirm-icon.ok{background:#e9f7ef;color:#1f7a50}
:root[data-ui="v1"] .ui-confirm-copy{min-width:0}
:root[data-ui="v1"] .ui-confirm-copy small{font-size:9px;letter-spacing:.11em;font-weight:800;color:#7b8b98}
:root[data-ui="v1"] .ui-confirm-copy h3{font-size:16px;margin:3px 0 8px;color:#263f53}
:root[data-ui="v1"] .ui-confirm-copy p{font-size:12px;line-height:1.65;margin:0;color:#526878;white-space:pre-wrap}
:root[data-ui="v1"] .ui-confirm-copy p.sub{margin-top:6px;color:#778895}
:root[data-ui="v1"] .ui-confirm-modal>.modal-actions{grid-column:1/3;margin:3px 0 0;padding:0}
:root[data-ui="v1"] .ui-repeat-message .bubble{border-color:#cfdae3}
:root[data-ui="v1"] .ui-repeat-note{margin-top:8px;padding-top:7px;border-top:1px solid rgba(72,101,124,.16);font-size:10px}
:root[data-ui="v1"] .ui-repeat-note summary{cursor:pointer;color:#47677f;font-weight:700;list-style:none}
:root[data-ui="v1"] .ui-repeat-note summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .ui-repeat-note summary:before{content:"↻";display:inline-block;margin-right:5px}
:root[data-ui="v1"] .ui-repeat-note summary span{font-weight:500;opacity:.7;margin-left:4px}
:root[data-ui="v1"] .ui-repeat-note p{margin:6px 0 0!important;font-size:9.5px!important;line-height:1.5!important;color:#6f8290!important}
:root[data-ui="v1"] .set-card{max-height:min(calc(86vh / var(--ui-fs-zoom,1)),760px);overflow:auto}
:root[data-ui="v1"] .set-sec h5{position:sticky;top:0;z-index:1;background:var(--panel,#fff);padding-top:7px}
:root[data-ui="v1"] .set-row .set-val{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:520px){
  :root[data-ui="v1"] .ui-confirm-modal{grid-template-columns:38px 1fr;padding:17px!important}
  :root[data-ui="v1"] .ui-confirm-icon{width:36px;height:36px}
  :root[data-ui="v1"] .set-row .set-val{max-width:calc(42vw / var(--ui-fs-zoom,1))}
}

/* =========================================================================
 * 历史深色呈现层 K（2026-08-10）—— 按钮、输入、消息与面板的兼容样式。
 * 仅呈现层：业务 DOM、接口、流式链路不变。palette 经 --ui-* 别名自动传导全局。
 * ========================================================================= */
:root[data-ui="v1"][data-skin="K"]{
  --ui-bg:#17181b;
  --ui-surface:#1f2024;
  --ui-surface-subtle:#26282d;
  --ui-surface-muted:#2d2f35;
  --ui-border:#33363d;
  --ui-border-strong:#454952;
  --ui-text:#e8eaed;
  --ui-text-muted:#a6aab3;
  --ui-text-faint:#8b9099;
  --ui-accent:#10a37f;
  --ui-accent-hover:#0d8f6f;
  --ui-accent-soft:rgba(16,163,127,.14);
  --ui-accent-ring:rgba(16,163,127,.42);
  --ui-success:#4ade80;
  --ui-success-soft:rgba(74,222,128,.14);
  --ui-warning:#f2c14e;
  --ui-warning-soft:rgba(242,193,78,.14);
  --ui-danger:#f0847d;
  --ui-danger-soft:rgba(240,132,125,.13);
  --ui-shadow-float:0 16px 44px rgba(0,0,0,.42);
  --ui-topbar:calc(44px / var(--ui-fs-zoom,1));
  color-scheme:dark;
}

/* —— 应用外壳：顶栏 / 左栏 / 中栏 / 预览 —— */
:root[data-ui="v1"][data-skin="K"] .ui-appbar{
  box-sizing:border-box;
  background:#202124;
  border-bottom:1px solid var(--ui-border);
  color:var(--ui-text);
}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-title{color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-title small,
:root[data-ui="v1"][data-skin="K"] .ui-appbar-title .ui-appbar-note{color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-edition-chip{border-color:var(--ui-border-strong);color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-edition-chip:hover{border-color:var(--ui-accent);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .ui-edition-chip.active{background:var(--ui-text);color:#202124;border-color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .sidebar{background:var(--ui-surface);border-right-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .sidebar .side-foot{background:var(--ui-surface)}
:root[data-ui="v1"][data-skin="K"] .sidebar .brand-logo.light{display:none}
:root[data-ui="v1"][data-skin="K"] .sidebar .brand-logo.dark{display:block}
:root[data-ui="v1"][data-skin="K"] .center{background:var(--ui-bg)}
:root[data-ui="v1"][data-skin="K"] .center>.cv-head{background:rgba(31,32,36,.92);backdrop-filter:blur(8px)}
:root[data-ui="v1"][data-skin="K"] .center .ui-context-strip{background:var(--ui-surface)}
:root[data-ui="v1"][data-skin="K"] .messages{background:var(--ui-bg)}
:root[data-ui="v1"][data-skin="K"] .preview .pv-pane{background:var(--ui-surface)}
:root[data-ui="v1"][data-skin="K"] .preview .pv-treecol{background:var(--ui-surface)}

/* —— 按钮：平面按钮（主操作绿点、常规描边、静默透明） —— */
:root[data-ui="v1"][data-skin="K"] .btn{
  min-height:var(--v1-control-h);
  padding:0 14px;
  border-radius:var(--ui-radius);
  background:var(--ui-surface-subtle);
  border:1px solid var(--ui-border-strong);
  color:var(--ui-text);
  box-shadow:none;
  font-weight:600;
}
:root[data-ui="v1"][data-skin="K"] .btn:hover{
  background:var(--ui-surface-muted);
  border-color:#565b66;
  color:var(--ui-text);
  box-shadow:none;
}
:root[data-ui="v1"][data-skin="K"] .btn-primary{
  background:var(--ui-accent);
  border-color:var(--ui-accent);
  color:#fff;
  box-shadow:0 2px 8px rgba(16,163,127,.22);
}
:root[data-ui="v1"][data-skin="K"] .btn-primary:hover{
  background:var(--ui-accent-hover);
  border-color:var(--ui-accent-hover);
  color:#fff;
  box-shadow:0 3px 12px rgba(16,163,127,.3);
}
:root[data-ui="v1"][data-skin="K"] .btn-secondary{
  background:var(--ui-surface);
  border-color:var(--ui-border-strong);
  color:var(--ui-text);
}
:root[data-ui="v1"][data-skin="K"] .btn-secondary:hover{background:var(--ui-surface-muted);border-color:#565b66}
:root[data-ui="v1"][data-skin="K"] .btn-quiet{
  background:transparent;
  border-color:transparent;
  color:var(--ui-text-muted);
  padding-inline:10px;
}
:root[data-ui="v1"][data-skin="K"] .btn-quiet:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .btn-icon{
  width:34px;height:34px;min-height:34px;
  background:var(--ui-surface);
  border-color:var(--ui-border);
  color:var(--ui-text-muted);
}
:root[data-ui="v1"][data-skin="K"] .btn-icon:hover{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .btn-danger{
  background:transparent;
  border-color:rgba(240,132,125,.38);
  color:var(--ui-danger);
}
:root[data-ui="v1"][data-skin="K"] .btn-danger:hover{background:var(--ui-danger-soft);border-color:rgba(240,132,125,.6)}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions .btn,
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions button{
  min-height:28px;
  padding:0 11px;
  border:1px solid var(--ui-border-strong);
  border-radius:7px;
  background:transparent;
  color:var(--ui-text-muted);
  box-shadow:none;
  font-size:12.5px;
}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions .btn:hover,
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions button:hover{background:var(--ui-surface-muted);border-color:#565b66;color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions .on,
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions [aria-pressed="true"]{background:var(--ui-accent-soft);border-color:var(--ui-accent);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .ui-chat-actions button,
:root[data-ui="v1"][data-skin="K"] .ui-inspector-head button{
  background:var(--ui-surface);
  border-color:var(--ui-border);
  color:var(--ui-text-muted);
}
:root[data-ui="v1"][data-skin="K"] .ui-chat-actions button:hover,
:root[data-ui="v1"][data-skin="K"] .ui-inspector-head button:hover{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .fn .fn-new{background:var(--ui-surface);border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .fn .fn-new:hover{background:var(--ui-surface-subtle);border-color:#565b66}
:root[data-ui="v1"][data-skin="K"] .sidebar .fn-master.active{background:var(--ui-accent-soft)!important;color:var(--ui-accent)!important;box-shadow:inset 3px 0 0 var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .ui-task-stop,
:root[data-ui="v1"][data-skin="K"] .ui-task-head>button{
  background:var(--ui-surface);
  border-color:rgba(240,132,125,.38);
  color:var(--ui-danger);
}
:root[data-ui="v1"][data-skin="K"] .ui-task-stop:hover,
:root[data-ui="v1"][data-skin="K"] .ui-task-head>button:hover{background:var(--ui-danger-soft);border-color:rgba(240,132,125,.6)}
:root[data-ui="v1"][data-skin="K"] .theme-btn{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong);color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .theme-btn:hover{background:var(--ui-surface-muted);color:var(--ui-text)}

/* —— 输入区与快捷提问 —— */
:root[data-ui="v1"][data-skin="K"] .composer{background:transparent}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap{
  background:var(--ui-surface);
  border:1px solid var(--ui-border-strong);
  border-radius:14px;
  box-shadow:0 8px 28px rgba(0,0,0,.35);
}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap:focus-within{
  border-color:var(--ui-accent);
  box-shadow:0 0 0 3px var(--ui-accent-ring),0 8px 28px rgba(0,0,0,.35);
}
:root[data-ui="v1"][data-skin="K"] .composer textarea{color:var(--ui-text);caret-color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap > .ui-compose-actions > #sendBtn{
  width:38px;height:38px;
  border-radius:10px;
  background:var(--ui-accent);
  color:#fff;
  box-shadow:0 2px 8px rgba(16,163,127,.25);
}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap > .ui-compose-actions > #sendBtn:hover{background:var(--ui-accent-hover);box-shadow:0 3px 12px rgba(16,163,127,.32)}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap > .ui-compose-actions > #sendBtn.stopbtn{background:#33272a;color:var(--ui-danger);border:1px solid rgba(240,132,125,.35);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap > .ui-compose-actions > #sendBtn.stopbtn:hover{background:var(--ui-danger-soft);color:var(--ui-danger)}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap button.dt-toggle{background:var(--ui-surface-subtle);border:1px solid var(--ui-border-strong);color:var(--ui-text-muted);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap button.dt-toggle:hover{background:var(--ui-surface-muted);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap button.dt-toggle.on{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}
:root[data-ui="v1"][data-skin="K"] .qchip{background:var(--ui-surface-subtle);border-color:var(--ui-border);color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .qchip:hover{background:var(--ui-accent-soft);border-color:var(--ui-accent);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .qchip-primary{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}

/* —— 消息：紧凑对话（用户绿调气泡 / 助手深色卡片） —— */
:root[data-ui="v1"][data-skin="K"] .msg .avatar{background:var(--ui-accent);color:#fff}
:root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble{
  background:var(--ui-surface);
  border-color:var(--ui-border);
  color:var(--ui-text);
  border-radius:14px;
}
:root[data-ui="v1"][data-skin="K"] .msg.user .bubble{
  background:rgba(16,163,127,.14);
  border-color:rgba(16,163,127,.38);
  color:var(--ui-text);
  border-radius:14px;
}
:root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble:has(> .ui-task-card)>.md-stream{
  background:var(--ui-surface);
  border-color:var(--ui-border);
  border-radius:14px;
}
:root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble:has(> .ui-task-card)>.md-stream::before{background:var(--ui-accent)}

/* —— 任务卡 / 流程时间线 —— */
:root[data-ui="v1"][data-skin="K"] .ui-task-card{background:transparent;border-color:transparent;border-radius:0}
:root[data-ui="v1"][data-skin="K"] .ui-task-head{border-bottom-color:transparent}
:root[data-ui="v1"][data-skin="K"] .ui-task-title,
:root[data-ui="v1"][data-skin="K"] .ui-task-head>span{color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-flow-timeline .plan-row:hover,
:root[data-ui="v1"][data-skin="K"] .ui-flow-mode .plan-row:hover{border-color:var(--ui-border-strong);background:var(--ui-surface-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-flow-timeline .plan-row.cur,
:root[data-ui="v1"][data-skin="K"] .ui-flow-mode .plan-row.cur{border-color:var(--ui-accent);background:var(--ui-accent-soft)}
:root[data-ui="v1"][data-skin="K"] .ui-flow-timeline .plan-stage:hover{border-color:var(--ui-border-strong);background:var(--ui-surface-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-flow-timeline .plan-stage.cur{border-color:var(--ui-accent);background:var(--ui-accent-soft)}
:root[data-ui="v1"][data-skin="K"] .ui-flow-timeline .plan-stage .ps-dot{
  border-color:var(--ui-surface);
  box-shadow:0 0 0 1px var(--ui-border-strong);
  background:var(--ui-surface-muted);
}
:root[data-ui="v1"][data-skin="K"] .ui-flow-timeline .plan-stage .ps-upd{
  border-color:rgba(74,222,128,.35);
  background:var(--ui-success-soft);
  color:var(--ui-success);
}
:root[data-ui="v1"][data-skin="K"] .ui-flow-config button:hover,
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .pv-refresh:hover,
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .trow.tdir:hover{border-color:var(--ui-border-strong);background:var(--ui-surface-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .trow.sel,
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .trow.active{border-color:var(--ui-accent);background:var(--ui-accent-soft);color:var(--ui-accent);box-shadow:inset 2px 0 0 var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .trow .td-line{background:var(--ui-border)}

/* —— 检查器 / 数据 / 方案 / 交付组件（硬编码浅色 → 深色等价） —— */
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md th,
:root[data-ui="v1"][data-skin="K"] .pv-body.md th{background:var(--ui-surface-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-qc-badge.crit,
:root[data-ui="v1"][data-skin="K"] .ui-qc-issue.sev-high .ui-qc-sev{background:var(--ui-danger-soft);color:var(--ui-danger)}
:root[data-ui="v1"][data-skin="K"] .data-tabs button:hover,
:root[data-ui="v1"][data-skin="K"] .np-scenarios button:hover{border-color:var(--ui-border-strong);background:var(--ui-surface-muted)}
:root[data-ui="v1"][data-skin="K"] .data-tabs button.active,
:root[data-ui="v1"][data-skin="K"] .np-scenarios button.active{border-color:var(--ui-accent);background:var(--ui-accent-soft);color:var(--ui-accent);box-shadow:inset 0 0 0 1px rgba(16,163,127,.18)}
:root[data-ui="v1"][data-skin="K"] .data-tabs button>b,
:root[data-ui="v1"][data-skin="K"] .np-scenarios button>span,
:root[data-ui="v1"][data-skin="K"] .data-card-title>span{background:var(--ui-surface-muted);color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .data-dropzone{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong)}
:root[data-ui="v1"][data-skin="K"] .data-dropzone:hover{border-color:var(--ui-accent);background:var(--ui-accent-soft)}
:root[data-ui="v1"][data-skin="K"] .data-drop-icon{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .data-code-editor{background:#1a1b1f;color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .data-empty-state{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong)}
:root[data-ui="v1"][data-skin="K"] .np-more{background:var(--ui-accent-soft);border-color:rgba(16,163,127,.35);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .np-more:hover{background:rgba(16,163,127,.22);border-color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .np-workflow-preview{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong)}
:root[data-ui="v1"][data-skin="K"] .ui-fail-diag{background:var(--ui-surface-subtle);border-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .dw-row:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"][data-skin="K"] .dw-sub code,
:root[data-ui="v1"][data-skin="K"] .plan-step-out code,
:root[data-ui="v1"][data-skin="K"] .plan-raw>.plan-raw-md code,
:root[data-ui="v1"][data-skin="K"] .md code{background:#2a2c31;color:#8fd8c0}
:root[data-ui="v1"][data-skin="K"] .dw-badge{background:var(--ui-surface-muted);border-color:var(--ui-border-strong);color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .dw-badge.ok{background:var(--ui-success-soft);border-color:rgba(74,222,128,.35);color:var(--ui-success)}
:root[data-ui="v1"][data-skin="K"] .dw-badge.bad{background:var(--ui-danger-soft);border-color:rgba(240,132,125,.38);color:var(--ui-danger)}
:root[data-ui="v1"][data-skin="K"] .dw-group-hd>span{background:var(--ui-surface-muted);color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .plan-bar{background:var(--ui-surface);border-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .plan-badge.ro{background:var(--ui-surface-muted);color:var(--ui-text-muted);border-color:var(--ui-border-strong)}
:root[data-ui="v1"][data-skin="K"] .msg.assistant.plan-history-receipt>.bubble{background:transparent;border:0;box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .plan-receipt{background:var(--ui-surface-muted);border-color:var(--ui-border);color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .pc-toolbar-status.private,
:root[data-ui="v1"][data-skin="K"] .pc-sync-card.private{background:var(--ui-accent-soft);border-color:rgba(16,163,127,.35);color:var(--ui-accent)}

/* —— 技能弹层 / 皮肤菜单 / 模态 —— */
:root[data-ui="v1"][data-skin="K"] .skill-pop,
:root[data-ui="v1"][data-skin="K"] .skin-menu,
:root[data-ui="v1"][data-skin="K"] .ws-pop,
:root[data-ui="v1"][data-skin="K"] .pv-overflow-menu{
  background:var(--ui-surface);
  border-color:var(--ui-border-strong);
  box-shadow:0 18px 44px -8px rgba(0,0,0,.55);
}
:root[data-ui="v1"][data-skin="K"] .skill-item:hover,
:root[data-ui="v1"][data-skin="K"] .ws-pop .ws-item:hover,
:root[data-ui="v1"][data-skin="K"] .ws-pop .ws-item.on,
:root[data-ui="v1"][data-skin="K"] .pv-overflow-menu>.btn:hover,
:root[data-ui="v1"][data-skin="K"] .pv-overflow-menu>.btn-link:hover,
:root[data-ui="v1"][data-skin="K"] .skin-row:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"][data-skin="K"] .skin-row.on{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .skill-pop .skill-featured{background:var(--ui-accent-soft);border-color:rgba(16,163,127,.3)}
:root[data-ui="v1"][data-skin="K"] .modal{background:var(--ui-surface);border-color:var(--ui-border-strong);box-shadow:0 20px 60px rgba(0,0,0,.6)}
:root[data-ui="v1"][data-skin="K"] .modal-overlay{background:rgba(0,0,0,.62)}
:root[data-ui="v1"][data-skin="K"] .modal h3,
:root[data-ui="v1"][data-skin="K"] .ui-confirm-copy h3{color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-confirm-copy p,
:root[data-ui="v1"][data-skin="K"] .ui-confirm-copy p.sub{color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-confirm-icon{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .ui-confirm-icon.danger{background:var(--ui-danger-soft);color:var(--ui-danger)}
:root[data-ui="v1"][data-skin="K"] .ui-confirm-icon.ok{background:var(--ui-success-soft);color:var(--ui-success)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-body{color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-chip{background:var(--ui-surface-subtle);border-color:var(--ui-border-strong)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-chip b{color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-chip.ok b{color:var(--ui-success)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-chip.warn b{color:var(--ui-warning)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-chip.bad b{color:var(--ui-danger)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-badge.ok{background:var(--ui-success-soft);color:var(--ui-success)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-badge.warn{background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"][data-skin="K"] .ui-trace-badge.bad{background:var(--ui-danger-soft);color:var(--ui-danger)}

/* —— Markdown / 链接 / 表单控件 —— */
:root[data-ui="v1"][data-skin="K"] .md a,
:root[data-ui="v1"][data-skin="K"] a{color:#5cc8a8}
:root[data-ui="v1"][data-skin="K"] .md pre{background:#1a1b1f;border:1px solid var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .md blockquote{border-left-color:var(--ui-border-strong);color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .md table,
:root[data-ui="v1"][data-skin="K"] .md th,
:root[data-ui="v1"][data-skin="K"] .md td{border-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .md hr{border-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] input:not([type="checkbox"]):not([type="radio"]),
:root[data-ui="v1"][data-skin="K"] select,
:root[data-ui="v1"][data-skin="K"] textarea{
  background:var(--ui-surface-subtle);
  border:1px solid var(--ui-border-strong);
  color:var(--ui-text);
}
:root[data-ui="v1"][data-skin="K"] input:not([type="checkbox"]):not([type="radio"]):focus,
:root[data-ui="v1"][data-skin="K"] select:focus,
:root[data-ui="v1"][data-skin="K"] textarea:focus{border-color:var(--ui-accent);outline:2px solid var(--ui-accent-ring);outline-offset:-1px}

/* —— 滚动条 / 通用 —— */
:root[data-ui="v1"][data-skin="K"] ::-webkit-scrollbar{width:10px;height:10px}
:root[data-ui="v1"][data-skin="K"] ::-webkit-scrollbar-thumb{
  background:#3a3d45;
  border-radius:6px;
  border:2px solid transparent;
  background-clip:content-box;
}
:root[data-ui="v1"][data-skin="K"] ::-webkit-scrollbar-thumb:hover{background:#4a4e58;border:2px solid transparent;background-clip:content-box}
:root[data-ui="v1"][data-skin="K"] ::-webkit-scrollbar-track{background:transparent}
:root[data-ui="v1"][data-skin="K"] ::selection{background:rgba(16,163,127,.32)}

/* —— 第二批硬编码浅色组件映射（纸感预览 / hero 卡 / 数据 / 技能筛选 / plan 原文） —— */
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body{
  background:var(--ui-surface);
  border-color:var(--ui-border-strong);
  color:var(--ui-text);
  box-shadow:none;
}
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}
:root[data-ui="v1"][data-skin="K"] .pv-body>.pv-fn{background:var(--ui-surface)}
:root[data-ui="v1"][data-skin="K"] .proj .pact span:hover,
:root[data-ui="v1"][data-skin="K"] .proj .ui-project-more:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-flow-hero{
  background:linear-gradient(145deg,#23262c 0%,#1f2024 72%);
  border-color:var(--ui-border-strong);
}
:root[data-ui="v1"][data-skin="K"] .ui-flow-hero-icon,
:root[data-ui="v1"][data-skin="K"] .ui-ledger-hero>span{
  background:var(--ui-accent-soft);
  color:var(--ui-accent);
  box-shadow:none;
}
:root[data-ui="v1"][data-skin="K"] .ui-files-hero{
  background:linear-gradient(145deg,#1e2925 0%,#1f2024 72%);
  border-color:rgba(74,222,128,.28);
}
:root[data-ui="v1"][data-skin="K"] .ui-files-hero.warn{
  border-color:rgba(242,193,78,.32);
  background:linear-gradient(145deg,#2b261d,#1f2024);
}
:root[data-ui="v1"][data-skin="K"] .ui-files-hero-icon{
  background:var(--ui-success-soft);
  color:var(--ui-success);
  box-shadow:none;
}
:root[data-ui="v1"][data-skin="K"] .ui-files-count{
  background:var(--ui-success-soft);
  border-color:rgba(74,222,128,.32);
  color:var(--ui-success);
}
:root[data-ui="v1"][data-skin="K"] .ui-files-hero.warn .ui-files-count{border-color:rgba(242,193,78,.35);color:var(--ui-warning)}
:root[data-ui="v1"][data-skin="K"] .ui-files-hero-copy p em,
:root[data-ui="v1"][data-skin="K"] .ui-ledger-hero small{color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-ledger-hero{
  background:linear-gradient(145deg,#23262c 0%,#1f2024 70%);
  border-color:var(--ui-border-strong);
}
:root[data-ui="v1"][data-skin="K"] .ui-ledger-asset.featured{
  background:linear-gradient(120deg,#23262c 0%,#1f2024 72%);
  border-color:var(--ui-border-strong);
}
:root[data-ui="v1"][data-skin="K"] .ui-ledger-asset-icon{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .ui-ledger-asset.featured .ui-ledger-asset-icon{background:rgba(16,163,127,.22)}
:root[data-ui="v1"][data-skin="K"] .ui-ledger-arrow{color:var(--ui-text-faint)}
:root[data-ui="v1"][data-skin="K"] .lit-ledger-mode{
  background:var(--ui-accent-soft);
  border-color:rgba(16,163,127,.32);
  color:var(--ui-text);
}
:root[data-ui="v1"][data-skin="K"] .lit-ledger-mode>span{color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .lit-ledger-mode button{
  background:var(--ui-surface);
  border-color:rgba(16,163,127,.4);
  color:var(--ui-accent);
}
:root[data-ui="v1"][data-skin="K"] .lit-ledger-mode button:hover{background:var(--ui-accent-soft);border-color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .data-metrics span{color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .data-metrics span.data-ready{color:var(--ui-warning)}
:root[data-ui="v1"][data-skin="K"] .data-metrics span.data-ready.ready{color:var(--ui-success)}
:root[data-ui="v1"][data-skin="K"] .data-metrics small{color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .data-tabs button{
  background:var(--ui-surface-subtle);
  border-color:var(--ui-border);
  color:var(--ui-text-muted);
}
:root[data-ui="v1"][data-skin="K"] .np-scenarios button{
  background:var(--ui-surface-subtle);
  border-color:var(--ui-border);
  color:var(--ui-text-muted);
}
:root[data-ui="v1"][data-skin="K"] .dw-table{background:var(--ui-surface-subtle);border-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .plan-raw>.plan-raw-md,
:root[data-ui="v1"][data-skin="K"] .plan-raw>pre{
  background:var(--ui-surface-subtle);
  border-color:var(--ui-border);
  color:var(--ui-text);
}
:root[data-ui="v1"][data-skin="K"] .skill-filters button{
  background:var(--ui-surface-subtle);
  border-color:var(--ui-border);
  color:var(--ui-text-muted);
}
:root[data-ui="v1"][data-skin="K"] .ui-mobile-command{
  background:rgba(31,32,36,.9);
  border-color:var(--ui-border-strong);
}
:root[data-ui="v1"][data-skin="K"] .ui-flow-collapse:hover{background:var(--ui-surface-muted);color:var(--ui-accent)}

/* ==========================================================================
   Research interaction shell + Skill Hub · 20260810-skillhub-a1
   ========================================================================== */
:root[data-ui="v1"] .fn-skillhub{
  display:flex;align-items:center;width:100%;min-height:38px;margin-top:4px;padding:0 14px;
  border:0;border-radius:8px;background:transparent;color:var(--ui-text-muted);font-family:inherit;font-size:12.5px;font-weight:600;line-height:1;cursor:pointer;text-align:left;
}
:root[data-ui="v1"] .fn-skillhub:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .fn-skillhub .ic{opacity:.78}
:root[data-ui="v1"] .skill-menu-links{display:flex;align-items:center;gap:10px}


/* Quiet empty state: exactly three context actions. */
:root[data-ui="v1"] .ui-empty-state{padding:18px 20px}
:root[data-ui="v1"] .ui-empty-kicker{margin-bottom:3px;color:var(--ui-text);font-size:15px;font-weight:680}
:root[data-ui="v1"] .ui-empty-copy{margin-bottom:13px;color:var(--ui-text-muted);font-size:12px}
:root[data-ui="v1"] .ui-empty-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
:root[data-ui="v1"] .ui-empty-actions .qa-card{min-height:70px;padding:10px 11px;border-color:var(--ui-border);background:var(--ui-surface);box-shadow:none;transform:none}
:root[data-ui="v1"] .ui-empty-actions .qa-card:hover{border-color:var(--ui-border-strong);background:var(--ui-surface-subtle);transform:none}
:root[data-ui="v1"] .ui-empty-actions .qa-ic{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:var(--ui-surface-muted);color:var(--ui-text);font-size:13px}

/* 思考记录/工作记录 activity-panel（思考流经服务端逐句脱敏后展示） */
:root[data-ui="v1"] .think-panel.activity-panel{border-color:var(--ui-border);background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .think-panel.activity-panel>summary{color:var(--ui-text-muted);font-weight:600}
:root[data-ui="v1"] .activity-body{color:var(--ui-text-muted);font-size:12px;line-height:1.55}

/* Skill Hub page/overlay. */
.skillhub-overlay{position:fixed;inset:0;z-index:12000;display:flex;align-items:stretch;justify-content:center;padding:14px;background:rgba(24,29,36,.46);backdrop-filter:blur(2px)}
.skillhub-shell{display:flex;flex-direction:column;width:min(1340px,98%);min-width:0;max-height:calc(100% - 28px);overflow:hidden;border:1px solid var(--ui-border,#d8dee5);border-radius:12px;background:var(--ui-bg,#f7f8fa);color:var(--ui-text,#20252b);box-shadow:0 28px 80px rgba(15,23,32,.25);font-size:12px}
.skillhub-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:16px 22px 14px;border-bottom:1px solid var(--ui-border,#d8dee5);background:var(--ui-surface,#fff)}
.skillhub-eyebrow{display:block;margin-bottom:5px;color:var(--ui-accent,#315f8d);font-size:10px;font-weight:750;letter-spacing:.12em}
.skillhub-head h2{margin:0;color:var(--ui-text,#20252b);font-size:23px;line-height:1.15;letter-spacing:-.02em}
.skillhub-head p{max-width:760px;margin:5px 0 0;color:var(--ui-text-muted,#65707c);font-size:11px;line-height:1.45}
.skillhub-head-actions{display:flex;align-items:center;gap:8px}
.skillhub-secondary,.skillhub-close{min-height:36px;border:1px solid var(--ui-border,#d8dee5);border-radius:8px;background:var(--ui-surface,#fff);color:var(--ui-text,#20252b);cursor:pointer}
.skillhub-secondary{padding:0 13px;font-size:12px;font-weight:650}.skillhub-secondary:hover,.skillhub-close:hover{background:var(--ui-surface-muted,#edf1f4)}
.skillhub-close{width:36px;padding:0;font-size:21px;font-weight:350}
.skillhub-loading{display:grid;place-items:center;min-height:360px;color:var(--ui-text-muted,#65707c);font-size:13px}
.skillhub-body{min-height:0;overflow:auto;padding:14px 22px 22px}
.skillhub-unavailable{min-height:320px;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;color:var(--ui-text-muted,#65707c)}
.skillhub-unavailable>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e4c98e;border-radius:50%;background:#fff8e8;color:#8b6414;font-weight:700}
.skillhub-unavailable b{color:var(--ui-text,#20252b);font-size:14px}.skillhub-unavailable p{max-width:360px;margin:0;line-height:1.6}.skillhub-unavailable button{margin-top:7px;padding:8px 13px;border:1px solid var(--ui-border,#d8dee5);border-radius:8px;background:var(--ui-surface,#fff);color:var(--ui-text,#20252b);cursor:pointer}
.skillhub-controls{display:grid;grid-template-columns:1fr;gap:9px;align-items:center;margin-bottom:11px}
.skillhub-search{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 11px;border:1px solid var(--ui-border,#d8dee5);border-radius:8px;background:var(--ui-surface,#fff)}
.skillhub-search:focus-within{border-color:var(--ui-accent,#315f8d);box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-accent,#315f8d) 12%,transparent)}
.skillhub-search span{color:var(--ui-text-faint,#8b949e);font-size:17px}.skillhub-search input{width:100%;border:0!important;outline:0!important;background:transparent!important;color:var(--ui-text,#20252b);font-size:12px;box-shadow:none!important}
.skillhub-filter-row{display:flex;align-items:center;gap:5px;min-width:0;overflow-x:auto;scrollbar-width:none}.skillhub-filter-row::-webkit-scrollbar{display:none}
.skillhub-filter-label{margin-right:3px;color:var(--ui-text-faint,#8b949e);font-size:10.5px;font-weight:700;letter-spacing:.05em}
.skillhub-filter-row button{min-height:30px;padding:0 10px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--ui-text-muted,#65707c);font-size:11px;white-space:nowrap;cursor:pointer}
.skillhub-filter-row button:hover{background:var(--ui-surface-muted,#edf1f4);color:var(--ui-text,#20252b)}
.skillhub-filter-row button.active{border-color:var(--ui-border,#d8dee5);background:var(--ui-surface,#fff);color:var(--ui-text,#20252b);font-weight:650}
.skillhub-categories{grid-column:1/-1}
.skillhub-summary{display:flex;justify-content:space-between;gap:12px;margin:5px 1px 12px;color:var(--ui-text-faint,#8b949e);font-size:10.5px}.skillhub-summary b{color:var(--ui-text,#20252b);font-size:12px}
.skillhub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.skillhub-card{display:flex;min-width:0;min-height:224px;flex-direction:column;padding:14px;border:1px solid var(--ui-border,#d8dee5);border-radius:9px;background:var(--ui-surface,#fff);box-shadow:0 1px 1px rgba(24,35,48,.025);transition:border-color .14s,transform .14s,box-shadow .14s}
.skillhub-card:hover{border-color:var(--ui-border-strong,#b7c0ca);transform:translateY(-1px);box-shadow:0 8px 24px rgba(24,35,48,.07)}
.skillhub-card-meta{display:flex;align-items:center;gap:6px;color:var(--ui-text-faint,#8b949e);font-size:9.5px;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.skillhub-card-meta>*+*{padding-left:7px;border-left:1px solid var(--ui-border,#d8dee5)}
.skillhub-source.builtin{color:var(--ui-accent,#315f8d)}.skillhub-source.user,.skillhub-source.project{color:var(--ui-success,#27835a)}
.skillhub-maturity{margin-left:auto}
.skillhub-card h3{margin:10px 0 6px;color:var(--ui-text,#20252b);font-size:15px;line-height:1.28;letter-spacing:-.01em}
.skillhub-desc{min-height:34px;margin:0 0 8px;color:var(--ui-text-muted,#65707c);font-size:10.8px;line-height:1.45}
.skillhub-runtime{display:flex;align-items:center;gap:6px;margin:0 0 8px;padding:6px 8px;border:1px solid var(--ui-border,#d8dee5);border-radius:7px;background:var(--ui-surface-soft,#f6f8fa);color:var(--ui-text-muted,#65707c);font-size:10px}.skillhub-runtime b{color:var(--ui-text,#20252b)}.skillhub-runtime small{margin-left:auto;color:var(--ui-text-faint,#8b949e)}.skillhub-runtime.ready{border-color:#b9dfcf;background:#eef8f3}.skillhub-runtime.partial{border-color:#ead6a8;background:#fff8e8}.skillhub-runtime.unavailable{border-color:#e7b9b9;background:#fff1f1}.skillhub-runtime.unknown{border-style:dashed}
.skillhub-capabilities{margin:-1px 0 9px;border:1px solid var(--ui-border,#d8dee5);border-radius:7px;background:var(--ui-surface,#fff);font-size:10px}.skillhub-capabilities summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;color:var(--ui-text-muted,#65707c);cursor:pointer;list-style:none}.skillhub-capabilities summary::-webkit-details-marker{display:none}.skillhub-capabilities summary:before{content:'+';width:15px;height:15px;border:1px solid var(--ui-border,#d8dee5);border-radius:50%;color:var(--ui-accent,#315f8d);text-align:center;line-height:13px}.skillhub-capabilities[open] summary:before{content:'−'}.skillhub-capabilities summary span{margin-right:auto;font-weight:650}.skillhub-capabilities summary b{color:var(--ui-text,#20252b);font-size:9.5px}.skillhub-capabilities ul{display:grid;gap:2px;max-height:250px;margin:0;padding:5px 6px 7px;border-top:1px solid var(--ui-border,#d8dee5);overflow:auto;list-style:none}.skillhub-capabilities li{display:grid;grid-template-columns:8px minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:5px 4px;border-radius:5px}.skillhub-capabilities li:hover{background:var(--ui-surface-soft,#f6f8fa)}.skillhub-capabilities li i{width:6px;height:6px;border-radius:50%;background:#b2bac3}.skillhub-capabilities li.ready i{background:var(--ui-success,#27835a)}.skillhub-capabilities li.verifying i{background:#d69b2d}.skillhub-capabilities li span{min-width:0}.skillhub-capabilities li b,.skillhub-capabilities li small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skillhub-capabilities li b{color:var(--ui-text,#20252b);font-size:10px}.skillhub-capabilities li small{margin-top:1px;color:var(--ui-text-faint,#8b949e);font-size:8.8px}.skillhub-capabilities li em{color:var(--ui-text-faint,#8b949e);font-size:8.8px;font-style:normal;white-space:nowrap}.skillhub-capabilities li button{min-height:24px;padding:0 7px;border:1px solid var(--ui-border-strong,#bfc7d1);border-radius:6px;background:var(--ui-surface,#fff);color:var(--ui-accent,#315f8d);font-size:9px;font-weight:650;cursor:pointer}.skillhub-capabilities li button:hover{border-color:var(--ui-accent,#315f8d);background:var(--ui-accent-soft,#edf4fb)}.skillhub-capabilities li button:disabled{opacity:.42;cursor:not-allowed}
.skillhub-method{margin:0 0 9px;border:1px solid var(--ui-border,#d8dee5);border-radius:7px;background:var(--ui-surface-soft,#f6f8fa);font-size:10px}.skillhub-method summary{padding:7px 9px;color:var(--ui-accent,#315f8d);font-weight:650;cursor:pointer}.skillhub-method pre{max-height:260px;margin:0;padding:9px;border-top:1px solid var(--ui-border,#d8dee5);overflow:auto;white-space:pre-wrap;word-break:break-word}.skillhub-method code{color:var(--ui-text-muted,#65707c);font:inherit;line-height:1.55}
.skillhub-tags,.skillhub-gates{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.skillhub-tags{margin-bottom:9px}.skillhub-tags span,.skillhub-gates span{padding:2px 6px;border-radius:999px;background:var(--ui-surface-muted,#edf1f4);color:var(--ui-text-muted,#65707c);font-size:9px}
.skillhub-output{margin-bottom:8px;color:var(--ui-text-muted,#65707c);font-size:10px;line-height:1.4}.skillhub-output b,.skillhub-gates b{margin-right:5px;color:var(--ui-text-faint,#8b949e);font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.skillhub-gates{padding-top:8px;border-top:1px solid var(--ui-border,#d8dee5)}
.skillhub-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px}.skillhub-risk{color:var(--ui-text-faint,#8b949e);font-size:9px}.skillhub-card-actions{display:flex;align-items:center;gap:5px}
.skillhub-edit,.skillhub-plan,.skillhub-run{min-height:30px;padding:0 9px;border-radius:7px;font-size:10.5px;font-weight:650;cursor:pointer}.skillhub-edit,.skillhub-plan{border:1px solid var(--ui-border,#d8dee5);background:transparent;color:var(--ui-text-muted,#65707c)}.skillhub-plan:hover,.skillhub-edit:hover{border-color:var(--ui-border-strong,#bfc7d1);background:var(--ui-surface-subtle,#f7f8fa);color:var(--ui-text,#20252b)}.skillhub-run{border:1px solid var(--ui-text,#20252b);background:var(--ui-text,#20252b);color:var(--ui-surface,#fff)}.skillhub-run:hover{opacity:.88}.skillhub-plan:disabled,.skillhub-run:disabled{opacity:.45;cursor:not-allowed}
.skillhub-empty{display:grid;justify-items:center;gap:8px;padding:70px 20px;border:1px dashed var(--ui-border,#d8dee5);border-radius:12px;color:var(--ui-text-muted,#65707c)}.skillhub-empty b{color:var(--ui-text,#20252b)}.skillhub-empty button{margin-top:8px;padding:8px 12px;border:1px solid var(--ui-border,#d8dee5);border-radius:7px;background:var(--ui-surface,#fff);color:var(--ui-text,#20252b);cursor:pointer}

/* K remains selectable, but document artifacts always render as a light paper surface. */
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body{background:#fff;color:#202124;border-color:#d7d9dd;box-shadow:0 1px 2px rgba(20,25,30,.08)}
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md{font-family:"Noto Serif SC","Songti SC","宋体",serif;color:#202124}
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md h1,
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md h2,
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md h3{color:#17191c}
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md th{background:#f2f4f6;color:#202124}
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md td{color:#202124;border-color:#cfd3d7}
:root[data-ui="v1"][data-skin="K"] .pv-body>.pv-fn{background:#fff;color:#202124}

@media (max-width:1050px){.skillhub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skillhub-controls{grid-template-columns:1fr}.skillhub-categories{grid-column:auto}}
@media (max-width:700px){.skillhub-overlay{padding:0}.skillhub-shell{width:100%;max-height:100%;border-radius:0}.skillhub-head{padding:14px 15px}.skillhub-head h2{font-size:20px}.skillhub-head p{display:none}.skillhub-secondary{display:none}.skillhub-body{padding:12px}.skillhub-grid{grid-template-columns:1fr}.skillhub-card{min-height:210px}:root[data-ui="v1"] .ui-empty-actions{grid-template-columns:1fr}}

/* =========================================================================
 * Light research workspace K (2026-08-11)
 *
 * This final block deliberately supersedes the former dark K palette.  It keeps
 * every business DOM id, request contract, permission signal and academic gate,
 * while keeping a quiet light-shell hierarchy:
 * neutral navigation, open assistant prose, paper-like artifacts and one
 * floating composer.  Keep this block last so old component-specific K rules
 * cannot silently reintroduce the dark/green treatment.
 * ========================================================================= */
:root[data-ui="v1"][data-skin="K"]{
  --ui-bg:#ffffff;
  --ui-surface:#ffffff;
  --ui-surface-subtle:#f6f7f8;
  --ui-surface-muted:#eceef1;
  --ui-border:#e3e5e8;
  --ui-border-strong:#cfd3d8;
  --ui-text:#202124;
  --ui-text-muted:#646a73;
  --ui-text-faint:#8c929b;
  --ui-accent:#2d66a0;
  --ui-accent-hover:#245681;
  --ui-accent-soft:#eaf1f8;
  --ui-accent-ring:rgba(45,102,160,.18);
  --ui-success:#247a4a;
  --ui-success-soft:#e8f4ed;
  --ui-warning:#a86512;
  --ui-warning-soft:#fff3de;
  --ui-danger:#b63f3b;
  --ui-danger-soft:#faeceb;
  --ui-shadow-float:0 18px 50px rgba(24,31,41,.14);
  --ui-topbar:calc(44px / var(--ui-fs-zoom,1));
  color-scheme:light;
}
:root[data-ui="v1"][data-skin="K"] body{background:#fff;color:var(--ui-text)}

/* Quiet application chrome. */
:root[data-ui="v1"][data-skin="K"] .ui-appbar{
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--ui-border);
  color:var(--ui-text);
  box-shadow:none;
  backdrop-filter:blur(10px);
}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-title{color:var(--ui-text);font-weight:650;letter-spacing:-.01em}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-mark{color:#69707a}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-title small,
:root[data-ui="v1"][data-skin="K"] .ui-appbar-title .ui-appbar-note{color:var(--ui-text-faint)}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions .btn,
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions button,
:root[data-ui="v1"][data-skin="K"] .ui-surface-link,
:root[data-ui="v1"][data-skin="K"] .ui-edition-chip{
  min-height:28px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:var(--ui-text-muted);
  box-shadow:none;
}
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions .btn:hover,
:root[data-ui="v1"][data-skin="K"] .ui-appbar-actions button:hover,
:root[data-ui="v1"][data-skin="K"] .ui-surface-link:hover,
:root[data-ui="v1"][data-skin="K"] .ui-edition-chip:hover{background:var(--ui-surface-muted);border-color:transparent;color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-edition-chip.active{background:#25272a;border-color:#25272a;color:#fff}
:root[data-ui="v1"][data-skin="K"] .ui-m-burger{border-color:var(--ui-border);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-m-burger:hover{background:var(--ui-surface-muted)}

/* Task rail: pale, dense, text-first. */
:root[data-ui="v1"][data-skin="K"] .sidebar{background:#f4f5f7;border-right:1px solid var(--ui-border);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .sidebar .side-foot{background:#f4f5f7;border-top-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .sidebar .brand{padding-top:13px;padding-bottom:11px}
:root[data-ui="v1"][data-skin="K"] .sidebar .brand-logo.light{display:block;height:30px;width:auto}
:root[data-ui="v1"][data-skin="K"] .sidebar .brand-logo.dark{display:none}
:root[data-ui="v1"][data-skin="K"] .sidebar .brand-sub{margin-top:4px;color:var(--ui-text-muted);font-size:11px}
:root[data-ui="v1"][data-skin="K"] .sidebar .fn,
:root[data-ui="v1"][data-skin="K"] .sidebar .proj-head,
:root[data-ui="v1"][data-skin="K"] .sidebar .credit-bar,
:root[data-ui="v1"][data-skin="K"] .sidebar .user-chip,
:root[data-ui="v1"][data-skin="K"] .sidebar .svc-bar{border-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .sidebar .fn button,
:root[data-ui="v1"][data-skin="K"] .sidebar .svc-btn,
:root[data-ui="v1"][data-skin="K"] .sidebar .theme-btn{background:transparent;border-color:transparent;color:var(--ui-text-muted);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .sidebar .fn button:hover,
:root[data-ui="v1"][data-skin="K"] .sidebar .svc-btn:hover,
:root[data-ui="v1"][data-skin="K"] .sidebar .theme-btn:hover{background:#e9ebee;color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .sidebar .fn-master.active,
:root[data-ui="v1"][data-skin="K"] .sidebar .fn button.active{background:#e4e7eb!important;color:var(--ui-text)!important;box-shadow:none!important}
:root[data-ui="v1"][data-skin="K"] .sidebar .fn-new{background:#fff;border:1px solid var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .sidebar .fn-new:hover{background:#f9fafb;border-color:#b9bec5}
:root[data-ui="v1"][data-skin="K"] .ui-project-search{background:#fff;border-color:var(--ui-border);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .ui-project-search input{background:transparent!important;border:0!important;color:var(--ui-text);outline:0!important}
:root[data-ui="v1"][data-skin="K"] .proj{margin:1px 7px;border:0;border-radius:7px;background:transparent;box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .proj:hover{background:#e9ebee}
:root[data-ui="v1"][data-skin="K"] .proj.active{background:#e2e5e9!important;color:var(--ui-text)!important;box-shadow:none!important}
:root[data-ui="v1"][data-skin="K"] .proj.active::before{display:none}
:root[data-ui="v1"][data-skin="K"] .proj .pn{color:var(--ui-text);font-weight:620}
:root[data-ui="v1"][data-skin="K"] .proj .pm{color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .proj .pact span:hover,
:root[data-ui="v1"][data-skin="K"] .proj .ui-project-more:hover{background:#d8dce1;color:var(--ui-text)}

/* Conversation surface: open prose instead of stacked cards. */
:root[data-ui="v1"][data-skin="K"] .center{background:#fff}
:root[data-ui="v1"][data-skin="K"] .center>.cv-head{min-height:48px;background:rgba(255,255,255,.96);border-bottom-color:var(--ui-border);color:var(--ui-text);backdrop-filter:blur(10px)}
:root[data-ui="v1"][data-skin="K"] .center>.cv-head small{color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .center .ui-context-strip{background:#fafbfc;border-bottom-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .messages{background:#fff;padding-top:18px}
:root[data-ui="v1"][data-skin="K"] .messages>.mwrap{width:min(var(--ui-chat-column),100%);margin-inline:auto}
:root[data-ui="v1"][data-skin="K"] .msg{gap:10px}
:root[data-ui="v1"][data-skin="K"] .msg.assistant{grid-template-columns:minmax(0,1fr)}
:root[data-ui="v1"][data-skin="K"] .msg.assistant>.avatar{display:none}
:root[data-ui="v1"][data-skin="K"] .msg .avatar{width:26px;height:26px;min-width:26px;border-radius:7px;background:#275b86;color:#fff;font-size:11px;box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble{
  max-width:min(780px,calc(100% - 36px));
  padding:4px 3px 14px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--ui-text);
  box-shadow:none;
}
:root[data-ui="v1"][data-skin="K"] .msg.user{justify-content:flex-end}
:root[data-ui="v1"][data-skin="K"] .msg.user .avatar{display:none}
:root[data-ui="v1"][data-skin="K"] .msg.user .bubble{max-width:min(680px,86%);padding:11px 15px;border:0;border-radius:16px;background:#f0f1f2;color:var(--ui-text);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble:has(> .ui-task-card){padding-top:5px}
:root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble:has(> .ui-task-card)>.md-stream{
  width:100%;
  max-width:none;
  margin:8px 0 0;
  padding:8px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
}
:root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble:has(> .ui-task-card)>.md-stream::before{content:none;display:none}
:root[data-ui="v1"][data-skin="K"] .ui-task-card{width:100%;margin-left:0;border:0;border-radius:0;background:transparent}
:root[data-ui="v1"][data-skin="K"] .ui-empty-state{padding-top:0!important}
:root[data-ui="v1"][data-skin="K"] .ui-empty-kicker{color:var(--ui-text);font-size:17px}
:root[data-ui="v1"][data-skin="K"] .ui-empty-copy{color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .qa-card{background:#fafafa;border-color:var(--ui-border);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .qa-card:hover{background:#f5f6f7;border-color:var(--ui-border-strong);transform:none}

/* One centered floating composer, with safety/status rows kept intact. */
:root[data-ui="v1"][data-skin="K"] .composer{padding:5px 22px 16px;border-top:0;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 16px)}
:root[data-ui="v1"][data-skin="K"] .composer>.genbar,
:root[data-ui="v1"][data-skin="K"] .composer>#fetchJobBar,
:root[data-ui="v1"][data-skin="K"] .composer>#intentBar,
:root[data-ui="v1"][data-skin="K"] .composer>#planBar,
:root[data-ui="v1"][data-skin="K"] .composer>.attach-tray,
:root[data-ui="v1"][data-skin="K"] .composer>.ui-composer-context,
:root[data-ui="v1"][data-skin="K"] .composer>.ui-compose-box{width:min(var(--ui-chat-column),100%);margin-left:auto!important;margin-right:auto!important}
:root[data-ui="v1"][data-skin="K"] .ui-composer-context{padding:0 8px 7px;color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-master-command .cmd-target{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap}
:root[data-ui="v1"][data-skin="K"] .ui-master-command .cmd-target select{min-width:190px;max-width:260px}
:root[data-ui="v1"][data-skin="K"] .ui-compose-project,
:root[data-ui="v1"][data-skin="K"] .ui-exec-badge{border-color:transparent;background:transparent;color:var(--ui-text-muted);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .ui-compose-project:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap{
  border:1px solid var(--ui-border-strong);
  border-radius:17px;
  background:#fff;
  box-shadow:0 8px 28px rgba(24,31,41,.09),0 1px 2px rgba(24,31,41,.04);
}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap:focus-within{border-color:#aeb4bc;box-shadow:0 9px 32px rgba(24,31,41,.11),0 0 0 3px rgba(45,102,160,.08)}
:root[data-ui="v1"][data-skin="K"] .composer textarea{background:transparent!important;border:0!important;color:var(--ui-text);caret-color:var(--ui-text);outline:0!important}
:root[data-ui="v1"][data-skin="K"] .composer .ui-icon-action,
:root[data-ui="v1"][data-skin="K"] .composer .qchip,
:root[data-ui="v1"][data-skin="K"] .composer button.dt-toggle{background:transparent;border-color:transparent;color:var(--ui-text-muted);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .composer .ui-icon-action:hover,
:root[data-ui="v1"][data-skin="K"] .composer .qchip:hover,
:root[data-ui="v1"][data-skin="K"] .composer button.dt-toggle:hover{background:var(--ui-surface-muted);border-color:transparent;color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap>.ui-compose-actions>#sendBtn{width:36px;height:36px;border:1px solid #25272a;border-radius:999px;background:#25272a;color:#fff;box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap>.ui-compose-actions>#sendBtn:hover{background:#0f1011;border-color:#0f1011;box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .composer .cwrap>.ui-compose-actions>#sendBtn.stopbtn{background:#fff;border-color:#d8a19f;color:var(--ui-danger)}
:root[data-ui="v1"][data-skin="K"] .skill-pop{background:#fff;border-color:var(--ui-border-strong);box-shadow:0 16px 42px rgba(24,31,41,.16);color:var(--ui-text)}

/* Artifact/editor and inspector stay distinct but visually quiet. */
:root[data-ui="v1"][data-skin="K"] .preview{background:#f4f5f6;border-left-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .preview .pv-pane{background:#f4f5f6}
:root[data-ui="v1"][data-skin="K"] .preview .pv-treecol{background:#f8f9fa;border-left-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .pv-tabbar,
:root[data-ui="v1"][data-skin="K"] .ui-inspector-head{min-height:48px;background:#fff;border-bottom-color:var(--ui-border);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-tabs{background:#fff;border-bottom-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-tab{background:transparent;color:var(--ui-text-muted);border-color:transparent}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-tab:hover{background:var(--ui-surface-subtle);color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-tab.active{background:#e9edf2;color:var(--ui-text);border-color:transparent;box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel{background:#f8f9fa;color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .pv-toolbar{background:#f8f9fa;border-color:var(--ui-border)}
:root[data-ui="v1"][data-skin="K"] .tree-filter{background:#fff!important;border-color:var(--ui-border)!important;color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .trow{border-color:transparent;color:var(--ui-text-muted)}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .trow:hover{background:#edf0f3;color:var(--ui-text)}
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .trow.sel,
:root[data-ui="v1"][data-skin="K"] .ui-inspector-panel .trow.active{background:#e4e8ed;border-color:transparent;color:var(--ui-text);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .ui-flow-hero,
:root[data-ui="v1"][data-skin="K"] .ui-files-hero,
:root[data-ui="v1"][data-skin="K"] .ui-ledger-hero,
:root[data-ui="v1"][data-skin="K"] .ui-ledger-asset.featured{
  background:#fff;
  border-color:var(--ui-border);
  color:var(--ui-text);
  box-shadow:none;
}
:root[data-ui="v1"][data-skin="K"] .ui-files-hero.warn{background:var(--ui-warning-soft);border-color:#ead3aa}
:root[data-ui="v1"][data-skin="K"] .ui-flow-hero-icon,
:root[data-ui="v1"][data-skin="K"] .ui-ledger-hero>span{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"][data-skin="K"] .ui-files-hero-icon{background:var(--ui-success-soft);color:var(--ui-success)}
:root[data-ui="v1"][data-skin="K"] .ui-files-count{background:var(--ui-success-soft);border-color:#bfddca;color:var(--ui-success)}
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body{margin:15px;padding:34px 42px;background:#fff;color:#202124;border:1px solid #dde0e4;box-shadow:0 1px 3px rgba(24,31,41,.07)}
:root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body.md{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#202124}

/* Cards, dialogs and Skill Hub inherit the light workbench instead of dark K. */
:root[data-ui="v1"][data-skin="K"] .plan-bar,
:root[data-ui="v1"][data-skin="K"] .modal,
:root[data-ui="v1"][data-skin="K"] .skillhub-shell,
:root[data-ui="v1"][data-skin="K"] .skillhub-head,
:root[data-ui="v1"][data-skin="K"] .skillhub-card{background:#fff;border-color:var(--ui-border);color:var(--ui-text);box-shadow:none}
:root[data-ui="v1"][data-skin="K"] .skillhub-overlay{background:rgba(43,47,53,.22);backdrop-filter:blur(3px)}
:root[data-ui="v1"][data-skin="K"] .skillhub-shell{box-shadow:0 24px 70px rgba(24,31,41,.18)}
:root[data-ui="v1"][data-skin="K"] .skillhub-card:hover{border-color:var(--ui-border-strong);box-shadow:0 8px 22px rgba(24,31,41,.06)}
:root[data-ui="v1"][data-skin="K"] .skillhub-run{background:#25272a;border-color:#25272a;color:#fff}
:root[data-ui="v1"][data-skin="K"] .modal-overlay{background:rgba(43,47,53,.28)}
:root[data-ui="v1"][data-skin="K"] .modal{box-shadow:0 22px 65px rgba(24,31,41,.2)}
:root[data-ui="v1"][data-skin="K"] .md a,
:root[data-ui="v1"][data-skin="K"] a{color:#245d93}
:root[data-ui="v1"][data-skin="K"] .md code,
:root[data-ui="v1"][data-skin="K"] .dw-sub code,
:root[data-ui="v1"][data-skin="K"] .plan-step-out code,
:root[data-ui="v1"][data-skin="K"] .plan-raw>.plan-raw-md code{background:#f1f3f5;color:#263547}
:root[data-ui="v1"][data-skin="K"] .md pre,
:root[data-ui="v1"][data-skin="K"] .data-code-editor{background:#f6f7f8;border-color:var(--ui-border);color:#202124}
:root[data-ui="v1"][data-skin="K"] ::-webkit-scrollbar-thumb{background:#c8ccd1;border:2px solid transparent;background-clip:content-box}
:root[data-ui="v1"][data-skin="K"] ::-webkit-scrollbar-thumb:hover{background:#aeb4bb;border:2px solid transparent;background-clip:content-box}
:root[data-ui="v1"][data-skin="K"] ::selection{background:rgba(45,102,160,.18)}

@media(max-width:680px){
  :root[data-ui="v1"][data-skin="K"] .messages>.mwrap{width:100%}
  :root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble{max-width:calc(100% - 36px)}
  :root[data-ui="v1"][data-skin="K"] .composer{padding:4px 10px max(10px,env(safe-area-inset-bottom))}
  :root[data-ui="v1"][data-skin="K"] .pv-pane>.pv-body{margin:8px;padding:24px 20px}
}

/* 2026-08-11 · reply lifecycle: activity → answer → artifacts → actions → toolbar. */
:root[data-ui="v1"] .assistant-turn{display:block;min-width:0}
:root[data-ui="v1"] .assistant-turn>.turn-activity,
:root[data-ui="v1"] .assistant-turn>.turn-artifacts,
:root[data-ui="v1"] .assistant-turn>.turn-actions,
:root[data-ui="v1"] .assistant-turn>.turn-toolbar{min-width:0}
:root[data-ui="v1"] .assistant-turn>.turn-activity:empty,
:root[data-ui="v1"] .assistant-turn>.turn-artifacts:empty,
:root[data-ui="v1"] .assistant-turn>.turn-actions:empty,
:root[data-ui="v1"] .assistant-turn>.turn-toolbar:empty{display:none}
:root[data-ui="v1"] .assistant-turn>.assistant-answer{min-width:0;max-width:var(--ui-chat-measure);font-size:var(--ui-chat-font-size);line-height:var(--ui-chat-line-height);overflow-wrap:anywhere}
:root[data-ui="v1"] .assistant-turn>.assistant-answer>.reply-table-scroll{display:block;max-width:100%;margin:12px 0;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface);scrollbar-width:thin}
:root[data-ui="v1"] .assistant-turn>.assistant-answer>.reply-table-scroll>table{display:table;width:max-content;min-width:100%;max-width:none;margin:0;border:0;border-collapse:collapse;overflow:visible}
:root[data-ui="v1"] .assistant-turn>.assistant-answer>.reply-table-scroll th,
:root[data-ui="v1"] .assistant-turn>.assistant-answer>.reply-table-scroll td{min-width:112px;max-width:360px;white-space:normal;word-break:normal;overflow-wrap:break-word;vertical-align:top}
:root[data-ui="v1"] .assistant-turn>.turn-artifacts{display:grid;gap:8px;margin-top:12px}
:root[data-ui="v1"] .assistant-turn>.turn-actions{display:grid;gap:8px;margin-top:14px}
:root[data-ui="v1"] .assistant-turn>.turn-toolbar{display:flex;align-items:center;gap:8px;margin-top:9px}
:root[data-ui="v1"] .assistant-turn>.turn-toolbar>.copy-ans{margin:0}
:root[data-ui="v1"] .assistant-turn>.turn-artifacts>.filefacts,
:root[data-ui="v1"] .assistant-turn>.turn-actions>.nextsteps,
:root[data-ui="v1"] .assistant-turn>.turn-actions>.clarify-card,
:root[data-ui="v1"] .assistant-turn>.turn-actions>.offerchips{margin-left:0;margin-right:0;width:100%;max-width:none}
:root[data-ui="v1"][data-skin="K"] .assistant-turn>.turn-activity>.ui-task-card{margin-bottom:10px}
:root[data-ui="v1"][data-skin="K"] .assistant-turn>.turn-toolbar>.copy-ans{padding:3px 8px;border:0;border-radius:7px;background:transparent;color:var(--ui-text-faint)}
:root[data-ui="v1"][data-skin="K"] .assistant-turn>.turn-toolbar>.copy-ans:hover{background:var(--ui-surface-muted);color:var(--ui-text)}

/* Compact composer launcher. The full catalog remains the first-class Skill Hub. */

/* Project Status is live project truth; the historical workflow is an optional template. */
:root[data-ui="v1"] .ui-project-status-loading{display:flex;align-items:center;gap:8px;padding:16px 12px;color:var(--ui-text-muted);font-size:11.5px}
:root[data-ui="v1"] .ui-project-status-loading>span{width:10px;height:10px;border:2px solid var(--ui-border-strong);border-top-color:var(--ui-accent);border-radius:50%;animation:spin .8s linear infinite}
:root[data-ui="v1"] .ui-project-status{display:grid;gap:9px;padding:9px;color:var(--ui-text)}
:root[data-ui="v1"] .ui-project-status-head{display:flex;align-items:center;justify-content:space-between;padding:2px 3px 4px}
:root[data-ui="v1"] .ui-project-status-head>div{display:grid;gap:1px}
:root[data-ui="v1"] .ui-project-status-head small{font-size:9px;letter-spacing:.12em;color:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-project-status-head h3{margin:0;font-size:13px;font-weight:650}
:root[data-ui="v1"] .ui-flow-collapse{width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:var(--ui-text-muted);cursor:pointer}
:root[data-ui="v1"] .ui-flow-collapse:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-status-hero{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:9px;align-items:start;padding:11px;border:1px solid var(--ui-border);border-radius:10px;background:#fff;overflow:hidden}
:root[data-ui="v1"] .ui-status-live{width:8px;height:8px;margin-top:4px;border-radius:50%;background:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-status-hero>div{min-width:0}
:root[data-ui="v1"] .ui-status-hero b{display:block;font-size:12px}
:root[data-ui="v1"] .ui-status-hero p{margin:2px 0 0;font-size:10.5px;line-height:1.45;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-status-hero strong{font-size:11px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-status-hero.running .ui-status-live,
:root[data-ui="v1"] .ui-status-hero.recovering .ui-status-live,
:root[data-ui="v1"] .ui-status-hero.background .ui-status-live{background:var(--ui-accent);box-shadow:0 0 0 4px var(--ui-accent-soft)}
:root[data-ui="v1"] .ui-status-hero.done .ui-status-live{background:var(--ui-success)}
:root[data-ui="v1"] .ui-status-hero.review .ui-status-live{background:var(--ui-warning)}
:root[data-ui="v1"] .ui-status-hero.blocked .ui-status-live{background:var(--ui-danger)}
:root[data-ui="v1"] .ui-flow-meter{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-flow-meter>i{display:block;height:100%;background:var(--ui-accent);transition:width .25s ease}
:root[data-ui="v1"] .ui-status-section{display:grid;gap:6px;padding:9px 10px;border:1px solid var(--ui-border);border-radius:9px;background:#fff}
:root[data-ui="v1"] .ui-status-section h4{display:flex;align-items:center;justify-content:space-between;margin:0;font-size:10.5px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-status-section h4>span{font-variant-numeric:tabular-nums;color:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-status-goal{margin:0;font-size:11.5px;line-height:1.5;color:var(--ui-text)}
:root[data-ui="v1"] .ui-status-list{display:grid;gap:3px;margin:0;padding:0;list-style:none}
:root[data-ui="v1"] .ui-status-list>li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:6px;align-items:start;padding:5px 3px;border-radius:6px}
:root[data-ui="v1"] .ui-status-list>li.doing{background:var(--ui-accent-soft)}
:root[data-ui="v1"] .ui-status-dot{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--ui-surface-muted);font-size:9px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-status-list>li.done .ui-status-dot{background:var(--ui-success-soft);color:var(--ui-success)}
:root[data-ui="v1"] .ui-status-list>li.doing .ui-status-dot{background:var(--ui-accent);color:#fff}
:root[data-ui="v1"] .ui-status-list b{display:block;overflow:hidden;text-overflow:ellipsis;font-size:10.8px;font-weight:600;color:var(--ui-text)}
:root[data-ui="v1"] .ui-status-list small{display:block;margin-top:1px;font-size:9.5px;line-height:1.35;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-status-list.jobs>li.failed{background:var(--ui-danger-soft)}
:root[data-ui="v1"] .ui-status-skills{gap:8px}
:root[data-ui="v1"] .ui-status-skill-task,
:root[data-ui="v1"] .ui-status-skill-rec{min-width:0;display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:6px;align-items:center;padding:7px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface)}
:root[data-ui="v1"] .ui-status-skill-rec{grid-template-columns:minmax(0,1fr) auto;border-color:transparent;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .ui-status-skill-task.running{border-color:color-mix(in srgb,var(--ui-accent) 42%,var(--ui-border));background:var(--ui-accent-soft)}
:root[data-ui="v1"] .ui-status-skill-task.completed{border-color:color-mix(in srgb,var(--ui-success) 36%,var(--ui-border));background:var(--ui-success-soft)}
:root[data-ui="v1"] .ui-status-skill-task.failed{border-color:color-mix(in srgb,var(--ui-danger) 34%,var(--ui-border));background:var(--ui-danger-soft)}
:root[data-ui="v1"] .ui-status-skill-mark{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:var(--ui-surface-muted);color:var(--ui-text-muted);font-size:10px}
:root[data-ui="v1"] .ui-status-skill-task b,
:root[data-ui="v1"] .ui-status-skill-rec b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text);font-size:10.8px;font-weight:650}
:root[data-ui="v1"] .ui-status-skill-task small,
:root[data-ui="v1"] .ui-status-skill-rec small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);font-size:9.4px}
:root[data-ui="v1"] .ui-status-skill-task>button,
:root[data-ui="v1"] .ui-status-skill-rec>button{width:auto;min-width:44px;min-height:28px;padding:0 7px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text-muted);font-family:inherit;font-size:10px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap}
:root[data-ui="v1"] .ui-status-skill-task>button:hover,
:root[data-ui="v1"] .ui-status-skill-rec>button:hover{border-color:var(--ui-accent);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-status-skill-task>button:disabled{opacity:.6;cursor:wait}
:root[data-ui="v1"] .ui-status-skill-recommend{display:grid;gap:4px;padding-top:2px}
:root[data-ui="v1"] .ui-status-skill-recommend>b{padding:2px 1px;color:var(--ui-text-faint);font-size:9.5px;font-weight:650}
:root[data-ui="v1"] .ui-status-browse-skills{width:100%;min-height:31px;display:flex;align-items:center;justify-content:space-between;padding:5px 8px;border:0;border-radius:7px;background:transparent;color:var(--ui-text-muted);font-family:inherit;font-size:10.5px;font-weight:600;line-height:1.3;cursor:pointer}
:root[data-ui="v1"] .ui-status-browse-skills:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .ui-status-blocker{display:grid;gap:4px;padding:8px;border-radius:7px;background:var(--ui-surface-subtle);font-size:10.5px}
:root[data-ui="v1"] .ui-status-blocker.review{background:var(--ui-warning-soft)}
:root[data-ui="v1"] .ui-status-blocker.failed{background:var(--ui-danger-soft)}
:root[data-ui="v1"] .ui-status-blocker span{line-height:1.45;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-status-blocker button{justify-self:start;border:0;background:transparent;padding:2px 0;color:var(--ui-accent);font-family:inherit;font-size:10.5px;font-weight:600;line-height:1.2;cursor:pointer}
:root[data-ui="v1"] .ui-status-empty{padding:4px 1px;font-size:10.5px;line-height:1.45;color:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-stage-template{border:1px solid var(--ui-border);border-radius:9px;background:#fff;overflow:hidden}
:root[data-ui="v1"] .ui-stage-template>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;cursor:pointer;list-style:none;font-size:11px;font-weight:600;color:var(--ui-text)}
:root[data-ui="v1"] .ui-stage-template>summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .ui-stage-template>summary small{font-size:9.5px;font-weight:400;color:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-stage-template[open]>summary{border-bottom:1px solid var(--ui-border)}
:root[data-ui="v1"] .ui-stage-template>.ui-flow-timeline,
:root[data-ui="v1"] .ui-stage-template>.plan-next,
:root[data-ui="v1"] .ui-stage-template>.plan-allok,
:root[data-ui="v1"] .ui-stage-template>.ui-flow-config{margin-left:8px;margin-right:8px}

@media(max-width:680px){
  :root[data-ui="v1"] .assistant-turn>.turn-actions{margin-top:10px}
}

/* Project threads + compact research typography (2026-08-11).
   Keep the project as the shared workspace; make each conversation a quiet,
   compact child row.  The same tokens center both reading and composition. */
:root[data-ui="v1"]{
  --ui-chat-font-size:16px;
  --ui-chat-line-height:1.7;
  --ui-code-font-size:13px;
  --ui-chat-measure:100%;
  --ui-chat-column:960px;
  --ui-thread-font-size:12.5px;
  --ui-font-meta:12px;
  --ui-font-ui:14px;
  --ui-font-title:14px;
}

/* Project-local main conversation and branches. */
:root[data-ui="v1"] .project-node{
  min-width:0;
  display:grid;
  gap:1px;
  border-radius:var(--ui-radius);
}
:root[data-ui="v1"] .project-row{
  position:relative;
  width:100%;
  min-width:0;
  min-height:46px;
  display:grid;
  grid-template-columns:24px minmax(0,1fr) 28px;
  gap:2px 3px;
  align-items:center;
  padding:0 5px 0 0;
  border-radius:var(--ui-radius);
  color:var(--ui-text);
  cursor:default;
}
:root[data-ui="v1"] .project-row:hover{background:var(--ui-surface-muted)}
:root[data-ui="v1"] .project-node.active>.project-row{background:var(--ui-accent-soft);box-shadow:inset 2px 0 0 var(--ui-accent)}
:root[data-ui="v1"] .project-disclosure{grid-column:1;width:24px;height:32px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:var(--ui-text-faint);cursor:pointer}
:root[data-ui="v1"] .project-disclosure span{display:block;font-size:11px;line-height:1;transition:transform .14s ease}
:root[data-ui="v1"] .project-disclosure[aria-expanded="true"] span{transform:rotate(90deg)}
:root[data-ui="v1"] .project-disclosure:hover{background:var(--ui-surface);color:var(--ui-text)}
:root[data-ui="v1"] .project-row-main{grid-column:2;min-width:0;min-height:46px;display:grid;align-items:center;padding:7px 3px 7px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
:root[data-ui="v1"] .project-row-main>.pinfo{min-width:0;display:block}
:root[data-ui="v1"] .project-row .pn{font-size:13px;font-weight:450;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:root[data-ui="v1"] .project-row .pn{display:block}
:root[data-ui="v1"] .project-row>.ui-project-more{grid-column:3;grid-row:1;width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--ui-text-faint);font-size:18px;line-height:1;cursor:pointer}
:root[data-ui="v1"] .project-row>.ui-project-more:hover{background:var(--ui-surface);color:var(--ui-text)}
:root[data-ui="v1"] .project-threads{
  position:relative;
  min-width:0;
  display:grid;
  gap:1px;
  margin:0 5px 6px 17px;
  padding:2px 0 2px 10px;
  border-left:1px solid var(--ui-border);
}
:root[data-ui="v1"] .project-thread{
  font-size:var(--ui-thread-font-size);line-height:1.4;
  min-width:0;
  min-height:29px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2px;
  align-items:center;
  padding:0 3px 0 0;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--ui-text-muted);
  font-family:inherit;
  font-weight:450;
  text-align:left;
}
:root[data-ui="v1"] .project-thread:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .project-thread.active{background:var(--ui-accent-soft);color:var(--ui-text)}
:root[data-ui="v1"] .project-thread[data-thread-kind="main"]{font-weight:650;color:var(--ui-text)}
:root[data-ui="v1"] .project-thread-select{min-width:0;min-height:29px;display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:6px;align-items:center;padding:4px 4px 4px 7px;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer}
:root[data-ui="v1"] .project-thread-select>.project-thread-icon{width:14px;height:14px;display:grid;place-items:center;color:var(--ui-text-faint);font-size:9px;text-align:center}
:root[data-ui="v1"] .project-thread[data-thread-kind="branch"] .project-thread-icon>i{width:9px;height:9px;display:block;border-left:1px solid currentColor;border-bottom:1px solid currentColor;border-radius:0 0 0 3px;transform:translateY(-2px)}
:root[data-ui="v1"] .project-thread-select>.project-thread-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .project-thread[data-unread="true"] .project-thread-title{font-weight:650;color:var(--ui-text)}
:root[data-ui="v1"] .project-thread-state{grid-column:3;width:7px;height:7px;border-radius:50%;background:var(--ui-text-faint)}
:root[data-ui="v1"] .project-thread-state.unread{background:var(--ui-accent)}
:root[data-ui="v1"] .project-thread-state.running{background:var(--ui-success)}
:root[data-ui="v1"] .project-thread-state.recovering{background:var(--ui-warning)}
:root[data-ui="v1"] .project-thread-handback{grid-column:2;min-width:26px;min-height:26px;display:grid;place-items:center;padding:0;border:0;background:transparent;border-radius:6px;color:var(--ui-text-faint);cursor:pointer}
:root[data-ui="v1"] .project-thread-handback:hover{background:var(--ui-surface);color:var(--ui-text)}
:root[data-ui="v1"] .project-thread-handback-label{display:none}
:root[data-ui="v1"] .project-new-thread-wrap{min-width:0}
:root[data-ui="v1"] .project-new-thread{
  width:100%;
  min-height:27px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:3px 7px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--ui-text-faint);
  font:500 var(--ui-thread-font-size)/1.4 inherit;
  text-align:left;
  cursor:pointer;
}
:root[data-ui="v1"] .project-new-thread:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .project-new-thread::before{content:"＋";width:14px;text-align:center;color:inherit}
:root[data-ui="v1"] .project-threads[hidden]{display:none!important}
:root[data-ui="v1"] .ui-thread-handback,
:root[data-ui="v1"] .ui-new-thread-action{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 10px;
  border:1px solid var(--ui-border);
  border-radius:9px;
  background:var(--ui-surface);
  color:var(--ui-text-muted);
  font:600 12px/1.35 inherit;
  cursor:pointer;
}
:root[data-ui="v1"] .ui-thread-handback:hover,
:root[data-ui="v1"] .ui-new-thread-action:hover{
  border-color:var(--ui-border-strong);
  background:var(--ui-surface-muted);
  color:var(--ui-text);
}
:root[data-ui="v1"] .ui-thread-handback:focus-visible,
:root[data-ui="v1"] .ui-new-thread-action:focus-visible,
:root[data-ui="v1"] .project-disclosure:focus-visible,
:root[data-ui="v1"] .project-row-main:focus-visible,
:root[data-ui="v1"] .project-thread-select:focus-visible,
:root[data-ui="v1"] .project-thread-handback:focus-visible,
:root[data-ui="v1"] .project-new-thread:focus-visible{
  outline:2px solid var(--ui-accent-ring);
  outline-offset:2px;
}
:root[data-ui="v1"] .ui-thread-handback{background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-chat-actions .ui-thread-handback,
:root[data-ui="v1"] .ui-chat-actions .ui-new-thread-action{
  width:auto;
  height:auto;
  min-width:max-content;
}

/* Conversation identity: branch navigation and actions stay
   distinct, while the composer repeats the exact destination above the box. */
:root[data-ui="v1"] .ui-chat-head{justify-content:space-between}
:root[data-ui="v1"] .ui-thread-nav{min-width:0;flex:1;display:flex;align-items:center;gap:9px}
:root[data-ui="v1"] .ui-thread-back{width:30px!important;height:30px!important;flex:0 0 30px;display:grid;place-items:center;padding:0;border:1px solid transparent!important;border-radius:8px;background:transparent!important;color:var(--ui-text-muted);font-size:17px;cursor:pointer}
:root[data-ui="v1"] .ui-thread-back:hover{border-color:var(--ui-border)!important;background:var(--ui-surface-muted)!important;color:var(--ui-text)}
:root[data-ui="v1"] .ui-thread-back:focus-visible{outline:2px solid var(--ui-accent-ring);outline-offset:2px}
:root[data-ui="v1"] .ui-thread-heading{min-width:0;display:grid;gap:1px;color:var(--ui-text)}
:root[data-ui="v1"] .ui-thread-heading>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650}
:root[data-ui="v1"] .ui-thread-heading>span{min-width:0;display:flex;align-items:center;gap:6px}
:root[data-ui="v1"] .ui-thread-heading>span>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650}
:root[data-ui="v1"] .ui-thread-heading small{color:var(--ui-text-muted);font-size:10.5px;font-weight:450;line-height:1.35}
:root[data-ui="v1"] .ui-thread-heading .ui-thread-project{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-faint);font-size:10px}
:root[data-ui="v1"] .ui-thread-heading em{flex:0 0 auto;padding:1px 5px;border:1px solid color-mix(in srgb,var(--ui-accent) 24%,var(--ui-border));border-radius:999px;background:var(--ui-accent-soft);color:var(--ui-accent);font-size:9.5px;font-style:normal;font-weight:650;line-height:1.35}
:root[data-ui="v1"] .ui-thread-context{min-width:0;min-height:25px;display:flex;align-items:center;gap:5px;padding:3px 7px;border:0;border-radius:7px;background:transparent;color:var(--ui-text-muted);font:500 11px/1.35 inherit;cursor:default}
:root[data-ui="v1"] .ui-thread-context>strong{color:var(--ui-accent);font-size:10.5px;font-weight:650}
:root[data-ui="v1"] .ui-thread-context>span:last-child{min-width:0;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text)}
:root[data-ui="v1"] .ui-thread-context-back{min-height:25px;padding:3px 8px;border:0;border-radius:7px;background:transparent;color:var(--ui-text-muted);font:600 11px/1.35 inherit;cursor:pointer}
:root[data-ui="v1"] .ui-thread-context-back:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .ui-thread-context-back:focus-visible{outline:2px solid var(--ui-accent-ring);outline-offset:2px}

/* Failed turns are receipts, never completed answers. */
:root[data-ui="v1"] .ui-task-card[data-state="success"]{border-color:color-mix(in srgb,var(--ui-success) 28%,var(--ui-border))}
:root[data-ui="v1"] .ui-task-card[data-state="success"] .ui-task-progress>span,
:root[data-ui="v1"] .ui-task-card[data-state="success"] .ui-task-progress>i{width:100%;animation:none;background:var(--ui-success)}
:root[data-ui="v1"] .ui-task-card[data-state="review"]{border-color:color-mix(in srgb,var(--ui-warning) 30%,var(--ui-border))}
:root[data-ui="v1"] .ui-task-card[data-state="review"] .ui-task-head b{color:var(--ui-text)}
:root[data-ui="v1"] .ui-task-card[data-state="review"] .ui-task-progress>span,
:root[data-ui="v1"] .ui-task-card[data-state="review"] .ui-task-progress>i{width:100%;animation:none;background:var(--ui-warning)}
:root[data-ui="v1"] .ui-task-card[data-state="failed"]{border-color:transparent;background:transparent}
:root[data-ui="v1"] .ui-task-card[data-state="failed"] .ui-task-head{border-bottom-color:transparent}
:root[data-ui="v1"] .ui-task-card[data-state="failed"] .ui-task-head b{color:var(--ui-danger)}
:root[data-ui="v1"] .ui-task-card[data-state="failed"] .ui-task-progress>span,
:root[data-ui="v1"] .ui-task-card[data-state="failed"] .ui-task-progress>i,
:root[data-ui="v1"] .ui-task-card[data-state="stopped"] .ui-task-progress>span,
:root[data-ui="v1"] .ui-task-card[data-state="stopped"] .ui-task-progress>i{width:0!important;transform:none!important;animation:none!important}
:root[data-ui="v1"] .ui-task-card[data-state="recovering"] .ui-task-progress>span,
:root[data-ui="v1"] .ui-task-card[data-state="recovering"] .ui-task-progress>i{width:62%;transform:none;animation:none;background:var(--ui-warning)}

/* 科研数据下载进度（与桌面客户端更新独立）：右侧 × 是真取消，不是隐藏。 */
:root[data-ui="v1"] .fetch-job-card{padding:8px 10px 9px 12px;border:1px solid color-mix(in srgb,var(--ui-accent) 19%,var(--ui-border));border-radius:10px;background:color-mix(in srgb,var(--ui-accent) 6%,var(--ui-surface));font-size:12.5px;line-height:1.5;margin-bottom:5px}
:root[data-ui="v1"] .fetch-job-card[data-status="failed"]{border-color:color-mix(in srgb,var(--ui-danger,#c83b46) 28%,var(--ui-border));background:color-mix(in srgb,var(--ui-danger,#c83b46) 6%,var(--ui-surface))}
:root[data-ui="v1"] .fetch-job-card[data-status="cancelled"]{border-color:var(--ui-border);background:var(--ui-surface-muted);color:var(--ui-text-muted)}
:root[data-ui="v1"] .fetch-job-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
:root[data-ui="v1"] .fetch-job-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .fetch-job-muted,:root[data-ui="v1"] .fetch-job-meta{color:var(--ui-text-muted)}
:root[data-ui="v1"] .fetch-job-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
:root[data-ui="v1"] .fetch-job-cancel{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--ui-text-muted);font-size:18px;line-height:1;cursor:pointer}
:root[data-ui="v1"] .fetch-job-cancel:hover{background:color-mix(in srgb,var(--ui-danger,#c83b46) 10%,transparent);color:var(--ui-danger,#c83b46)}
:root[data-ui="v1"] .fetch-job-cancel:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}
:root[data-ui="v1"] .fetch-job-cancel:disabled{cursor:wait;opacity:.55}
:root[data-ui="v1"] .fetch-job-track{height:5px;border-radius:999px;background:color-mix(in srgb,var(--ui-text) 9%,transparent);margin-top:5px;overflow:hidden}
:root[data-ui="v1"] .fetch-job-track>div{height:100%;border-radius:inherit;transition:width .5s ease}
:root[data-ui="v1"] .fetch-job-cancelled-note{margin-top:3px;color:var(--ui-text-muted)}
@media(max-width:720px){:root[data-ui="v1"] .fetch-job-head{align-items:flex-start}:root[data-ui="v1"] .fetch-job-meta{display:none}}
:root[data-ui="v1"] .work-steps.interrupted{border-color:transparent}
:root[data-ui="v1"] .work-steps:not(.interrupted) .state-failed .ws-dot{background:var(--ui-warning-soft);color:var(--ui-warning)}
:root[data-ui="v1"] .work-steps:not(.interrupted) .state-failed .ws-state{color:var(--ui-text-faint);font-weight:500}
:root[data-ui="v1"] .work-steps.interrupted .ws-step.state-failed .ws-dot{background:var(--ui-danger-soft);box-shadow:none;color:var(--ui-danger)}
:root[data-ui="v1"] .work-steps.interrupted .ws-step.state-stopped .ws-dot{background:var(--ui-warning-soft);box-shadow:none;color:var(--ui-warning)}
:root[data-ui="v1"] .msg.ui-failed-turn>.assistant-turn{max-width:var(--ui-chat-measure)}
:root[data-ui="v1"] .msg.ui-review-turn>.assistant-turn{max-width:var(--ui-chat-measure)}
:root[data-ui="v1"] .ui-turn-partial-primary{min-width:0;color:var(--ui-text)}
:root[data-ui="v1"] .ui-turn-review-draft{width:min(720px,100%);margin-top:7px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-subtle);color:var(--ui-text-muted);font-size:11px;overflow:hidden}
:root[data-ui="v1"] .ui-turn-review-draft>summary{padding:7px 9px;cursor:pointer;list-style:none;font-weight:620}
:root[data-ui="v1"] .ui-turn-review-draft>summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .ui-turn-review-draft>summary::after{content:" \203A";color:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-turn-review-draft[open]>summary::after{content:" \2304"}
:root[data-ui="v1"] .ui-turn-review-draft-body{padding:9px;border-top:1px solid var(--ui-border);background:var(--ui-surface)}
:root[data-ui="v1"] .ui-turn-terminal{width:min(720px,100%);display:grid;grid-template-columns:14px minmax(0,1fr) auto;column-gap:8px;row-gap:3px;align-items:center;margin-top:10px;padding:8px 0 2px;border-top:1px solid var(--ui-border);background:transparent;color:var(--ui-text);font-size:11px;line-height:1.4}
:root[data-ui="v1"] .ui-turn-terminal-mark{width:8px;height:8px;margin-left:2px;border:1.5px solid var(--ui-danger);border-radius:50%;background:transparent}
:root[data-ui="v1"] .ui-turn-terminal[data-tone="review"] .ui-turn-terminal-mark{border-color:var(--ui-warning)}
:root[data-ui="v1"] .ui-turn-terminal[data-tone="safety"] .ui-turn-terminal-mark{border-color:var(--ui-accent)}
:root[data-ui="v1"] .ui-turn-terminal[data-tone="suggestion"] .ui-turn-terminal-mark{border-color:var(--ui-accent);background:var(--ui-accent)}
:root[data-ui="v1"] .ui-turn-terminal[data-tone="suggestion"] .ui-turn-terminal-copy>span{white-space:normal;overflow:visible;color:var(--ui-text-muted);flex-basis:100%}
:root[data-ui="v1"] .ui-turn-terminal-copy{min-width:0;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
:root[data-ui="v1"] .ui-turn-terminal-copy>strong{flex:0 0 auto;color:var(--ui-text);font-size:11.5px;font-weight:650}
:root[data-ui="v1"] .ui-turn-terminal-copy>span{min-width:0;color:var(--ui-text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-turn-quality-findings{flex:1 0 100%;margin-top:4px;padding:7px 9px;border-left:2px solid var(--ui-danger);background:color-mix(in srgb,var(--ui-danger) 5%,transparent);color:var(--ui-text-muted);font-size:10.5px;line-height:1.5}
:root[data-ui="v1"] .ui-turn-quality-findings>b{display:block;color:var(--ui-text);font-size:11px}
:root[data-ui="v1"] .ui-turn-quality-findings ul{margin:3px 0 0;padding-left:17px}
:root[data-ui="v1"] .ui-turn-quality-findings li+li{margin-top:2px}
:root[data-ui="v1"] .ui-turn-terminal-actions{display:flex;align-items:center;gap:2px}
:root[data-ui="v1"] .ui-turn-terminal-actions button{min-height:24px;padding:3px 6px;border:0;border-radius:6px;background:transparent;color:var(--ui-text-muted);font:600 10.5px/1.3 inherit;cursor:pointer}
:root[data-ui="v1"] .ui-turn-terminal-actions button:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .ui-turn-terminal-actions button[data-primary="true"]{background:var(--ui-surface-muted);color:var(--ui-text);font-weight:650}
:root[data-ui="v1"] .ui-turn-terminal-actions button[data-primary="true"]:hover{background:color-mix(in srgb,var(--ui-accent) 10%,var(--ui-surface-muted));color:var(--ui-accent)}
:root[data-ui="v1"] .ui-turn-terminal-actions button:disabled{opacity:.55;cursor:wait}
:root[data-ui="v1"] .ui-turn-terminal-actions button:focus-visible{outline:2px solid var(--ui-accent-ring);outline-offset:1px}
:root[data-ui="v1"] .ui-turn-terminal-details{grid-column:2/-1;color:var(--ui-text-faint);font-size:10.5px}
:root[data-ui="v1"] .ui-turn-terminal-details>summary{width:max-content;padding:2px 0;cursor:pointer;list-style:none}
:root[data-ui="v1"] .ui-turn-terminal-details>summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .ui-turn-terminal-details>summary::after{content:" \203A"}
:root[data-ui="v1"] .ui-turn-terminal-details[open]>summary::after{content:" \2304"}
:root[data-ui="v1"] .ui-turn-terminal-details>div{margin:3px 0 4px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-turn-terminal-details>code{display:inline-block;padding:1px 4px;border:1px solid var(--ui-border);border-radius:4px;background:var(--ui-surface-subtle);color:var(--ui-text-faint);font-size:9.5px}
@media(max-width:680px){:root[data-ui="v1"] .ui-turn-terminal{grid-template-columns:14px minmax(0,1fr)}:root[data-ui="v1"] .ui-turn-terminal-copy{display:block}:root[data-ui="v1"] .ui-turn-terminal-copy>span{display:block;margin-top:2px;white-space:normal}:root[data-ui="v1"] .ui-turn-terminal-actions{grid-column:2}:root[data-ui="v1"] .ui-turn-terminal-details{grid-column:2}}
:root[data-ui="v1"] .ui-turn-history-note{width:min(620px,100%);border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-subtle);color:var(--ui-text-muted);font-size:11px;overflow:hidden}
:root[data-ui="v1"] .ui-bridge-verify-note{display:flex;align-items:center;gap:7px;width:min(620px,100%);margin:4px 0 8px;padding:7px 9px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-subtle);color:var(--ui-text-muted);font-size:11px}
:root[data-ui="v1"] .ui-bridge-verify-note strong{color:var(--ui-text);font-size:11.5px;font-weight:650}
:root[data-ui="v1"] .ui-bridge-verify-note span:last-child{color:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-turn-history-note>summary{display:flex;align-items:center;gap:7px;padding:7px 9px;cursor:pointer;list-style:none}
:root[data-ui="v1"] .ui-turn-history-note>summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .ui-turn-history-note>summary strong{color:var(--ui-text);font-size:11.5px;font-weight:650}
:root[data-ui="v1"] .ui-turn-history-note>summary>span:last-child{margin-left:auto;color:var(--ui-text-faint);white-space:nowrap}
:root[data-ui="v1"] .ui-turn-history-mark{width:17px;height:17px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--ui-surface-muted);color:var(--ui-text-muted);font-size:10px;font-weight:750}
:root[data-ui="v1"] .ui-turn-history-body{padding:8px 9px;border-top:1px solid var(--ui-border)}
:root[data-ui="v1"] .ui-turn-history-body>p{margin:0;line-height:1.5}
:root[data-ui="v1"] .ui-turn-history-body>button{margin-top:6px;padding:3px 7px;border:1px solid var(--ui-border);border-radius:6px;background:var(--ui-surface);color:var(--ui-text-muted);font:600 10.5px/1.4 inherit;cursor:pointer}
:root[data-ui="v1"] .ui-turn-no-output{display:inline-flex;align-items:center;min-height:25px;margin-top:7px;padding:3px 7px;border:1px solid color-mix(in srgb,var(--ui-danger) 24%,var(--ui-border));border-radius:7px;background:var(--ui-danger-soft);color:var(--ui-danger);font-size:10.75px;font-weight:600}

/* A branch returns a compact receipt to main; its transcript remains isolated. */
:root[data-ui="v1"] .ui-thread-handbacks{width:min(var(--ui-chat-measure),100%);margin:4px auto 18px;padding:12px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .ui-thread-handbacks>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;color:var(--ui-text);font-size:13px;font-weight:650}
:root[data-ui="v1"] .ui-thread-handbacks>header small{color:var(--ui-text-muted);font-size:11px;font-weight:500}
:root[data-ui="v1"] .ui-thread-handback-card{padding:11px 12px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface)}
:root[data-ui="v1"] .ui-thread-handback-card+.ui-thread-handback-card{margin-top:8px}
:root[data-ui="v1"] .ui-thread-handback-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--ui-text);font-size:12px}
:root[data-ui="v1"] .ui-thread-handback-meta time{color:var(--ui-text-faint);font-size:10.5px;font-variant-numeric:tabular-nums}
:root[data-ui="v1"] .ui-thread-handback-card>p{margin:7px 0 9px;color:var(--ui-text);font-size:13px;line-height:1.58;white-space:pre-wrap}
:root[data-ui="v1"] .ui-thread-handback-artifacts{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 9px}
:root[data-ui="v1"] .ui-thread-handback-artifacts button{max-width:100%;min-height:28px;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface-subtle);color:var(--ui-text-muted);font:500 11px/1.35 inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
:root[data-ui="v1"] .ui-thread-handback-artifacts button:hover{border-color:var(--ui-border-strong);color:var(--ui-text)}
:root[data-ui="v1"] .ui-thread-handback-actions{display:flex;justify-content:flex-end;gap:6px}
:root[data-ui="v1"] .ui-thread-handback-actions button{min-height:30px;padding:5px 10px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface);color:var(--ui-text-muted);font:600 11.5px/1.3 inherit;cursor:pointer}
:root[data-ui="v1"] .ui-thread-handback-actions button.primary{border-color:var(--ui-accent);background:var(--ui-accent);color:#fff}
:root[data-ui="v1"] .ui-thread-handback-actions button:disabled{opacity:.55;cursor:wait}

/* One reading axis for the transcript and composer. */
:root[data-ui="v1"] .messages>.mwrap{width:min(var(--ui-chat-column),100%);max-width:none;margin-inline:auto;padding:0}
:root[data-ui="v1"] .composer>#turnGoalBar,
:root[data-ui="v1"] .composer>.ui-compose-box{width:min(var(--ui-chat-column),100%);margin-left:auto!important;margin-right:auto!important}
:root[data-ui="v1"] .composer>.genbar,
:root[data-ui="v1"] .composer>#fetchJobBar,
:root[data-ui="v1"] .composer>#intentBar,
:root[data-ui="v1"] .composer>#planBar,
:root[data-ui="v1"] .composer>.attach-tray,
:root[data-ui="v1"] .composer>.ui-composer-context{width:min(var(--ui-chat-column),100%);margin-left:auto!important;margin-right:auto!important}

/* Research prose: calm body rhythm, compact headings, readable code. */
:root[data-ui="v1"] .assistant-turn>.assistant-answer{
  width:100%;
  max-width:var(--ui-chat-measure);
  font-size:var(--ui-chat-font-size);
  line-height:var(--ui-chat-line-height);
  letter-spacing:0;
  text-wrap:pretty;
  -webkit-user-select:text;
  user-select:text;
}
:root[data-ui="v1"] .assistant-answer> :first-child{margin-top:0}
:root[data-ui="v1"] .assistant-answer> :last-child{margin-bottom:0}
:root[data-ui="v1"] .assistant-answer p{margin:.18em 0 .88em;line-height:1.45}   /* 【2026-09-07 老板红批】段落行距窄一些：1.52→1.45（三档渲染实测，1.40 有粘连风险） */
:root[data-ui="v1"] .assistant-answer h1,
:root[data-ui="v1"] .assistant-answer h2,
:root[data-ui="v1"] .assistant-answer h3,
:root[data-ui="v1"] .assistant-answer h4{
  margin:1.45em 0 .58em;
  color:var(--ui-text);
  line-height:1.3;
  letter-spacing:-.012em;
}
:root[data-ui="v1"] .assistant-answer h1{font-size:1.54em}
:root[data-ui="v1"] .assistant-answer h2{font-size:1.31em}
:root[data-ui="v1"] .assistant-answer h3{font-size:1.15em}
:root[data-ui="v1"] .assistant-answer h4{font-size:1em}
/* 【WO6-B/E 2026-09-07】三级标题 20/17/15(基准13px)以 em 阶梯落地（跟随字号缩放）；
   列表行距收紧（原 inherit≈1.52-1.85，比正文还松，方向反了）。
   【2026-09-08 撤销元素级行长上限】42em 曾加在 p/ul/ol/blockquote/h* 上——p 546px、
   li/h*/table 829px 宽窄不一，气泡(850px)内右侧空 304px（老板红批"空白的问题"）。
   行长上限移到气泡层（见文件尾 .msg.assistant .bubble 规则），子元素 100% 跟随、宽度归一。 */
:root[data-ui="v1"] .assistant-answer ul,
:root[data-ui="v1"] .assistant-answer ol{margin:.42em 0 .92em;padding-left:1.48em}
:root[data-ui="v1"] .assistant-answer li{margin:.18em 0;padding-left:.08em;line-height:1.45}
:root[data-ui="v1"] .assistant-answer li>p{margin:.12em 0}
:root[data-ui="v1"] .assistant-answer blockquote{margin:.85em 0;padding:.12em 0 .12em 1em;border-left:2px solid var(--ui-border-strong);color:var(--ui-text-muted)}
:root[data-ui="v1"] .assistant-answer code{font-size:var(--ui-code-font-size);line-height:1.55}
:root[data-ui="v1"] .assistant-answer pre{max-width:100%;margin:.9em 0;padding:12px 14px;overflow:auto;overscroll-behavior-inline:contain;font-size:var(--ui-code-font-size);line-height:1.55;tab-size:2;white-space:pre}
:root[data-ui="v1"] .assistant-answer pre code{font-size:inherit;line-height:inherit}
:root[data-ui="v1"] .assistant-answer table{font-size:.9em;line-height:1.48}

@media(max-width:680px){
  :root[data-ui="v1"] .project-threads{margin-left:13px;padding-left:8px}
  :root[data-ui="v1"] .messages>.mwrap,
  :root[data-ui="v1"] .composer>.ui-compose-box{width:100%}
  :root[data-ui="v1"] .assistant-turn>.assistant-answer{max-width:100%;font-size:var(--ui-chat-font-size)}
  :root[data-ui="v1"] .ui-compose-hint{display:none}
  :root[data-ui="v1"] .ui-chat-head{gap:5px;padding-right:9px}
  :root[data-ui="v1"] .ui-thread-heading>small:last-child{display:none}
  :root[data-ui="v1"] .ui-chat-actions{min-width:0;gap:4px;overflow-x:auto;scrollbar-width:none}
  :root[data-ui="v1"] .ui-chat-actions::-webkit-scrollbar{display:none}
  :root[data-ui="v1"] .ui-chat-actions .ui-browser-action{display:none}
  :root[data-ui="v1"] .ui-chat-actions .ui-thread-handback,
  :root[data-ui="v1"] .ui-chat-actions .ui-new-thread-action{min-height:30px;padding:4px 7px;font-size:10.5px}
  :root[data-ui="v1"] .ui-thread-context>span:last-child{max-width:150px}
}

/* 2026-08-11 · single research shell + workflow-aware skills. */
:root[data-ui="v1"]{--ui-topbar:0px}
:root[data-ui="v1"] body{grid-template-rows:0 minmax(0,1fr)}
:root[data-ui="v1"] .ui-appbar{height:0;padding:0;border:0;background:transparent;overflow:visible;pointer-events:none}
:root[data-ui="v1"] .ui-appbar-title,
:root[data-ui="v1"] .ui-appbar-actions{display:none!important}
:root[data-ui="v1"] .ui-m-burger{pointer-events:auto;position:fixed;left:8px;top:8px}

/* The project rail, transcript and inspector use quiet 11–14px chrome; code stays 12px. */
:root[data-ui="v1"] .sidebar>.fn{padding:8px 10px}
:root[data-ui="v1"] .sidebar>.fn>.fn-new{width:100%;display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:0;padding:0 9px;text-align:left;font-size:12px}
:root[data-ui="v1"] .sidebar>.fn>.fn-new .fn-new-icon{width:16px;margin:0;color:var(--ui-accent);font-weight:700;text-align:center}
:root[data-ui="v1"] .sidebar>.fn>.fn-new .fn-new-label{min-width:0;text-align:left}
:root[data-ui="v1"] .sidebar>.proj-head{font-size:10.5px}
:root[data-ui="v1"] .project-row .pn{font-size:12.5px}
:root[data-ui="v1"] .project-row .pm{font-size:10.5px}
:root[data-ui="v1"] .center>.ui-chat-head{min-height:48px}
:root[data-ui="v1"] .center>.ui-chat-head>span:first-child{font-size:13px}
:root[data-ui="v1"] .assistant-turn>.assistant-answer{font-size:var(--ui-chat-font-size);line-height:var(--ui-chat-line-height)}
:root[data-ui="v1"] .assistant-answer code,
:root[data-ui="v1"] .assistant-answer pre{font-size:var(--ui-code-font-size)}
:root[data-ui="v1"] .pv-pane>.pv-body.md,
:root[data-ui="v1"] .ui-control-paper.md{font-size:var(--ui-font-title);line-height:1.68}
:root[data-ui="v1"] .pv-pane>.pv-body.md code,
:root[data-ui="v1"] .pv-pane>.pv-body.md pre,
:root[data-ui="v1"] .ui-control-paper.md code,
:root[data-ui="v1"] .ui-control-paper.md pre{font-size:var(--ui-code-font-size);line-height:1.55}

/* Long instructions, paths and links must wrap inside their own bubble and composer. */
:root[data-ui="v1"] .msg.user{width:100%;max-width:none;min-width:0;justify-items:end}
:root[data-ui="v1"] .msg.user .bubble{min-width:0;max-width:min(680px,86%);overflow:hidden;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}
:root[data-ui="v1"] .msg.user .bubble *,
:root[data-ui="v1"] .msg.user .bubble a{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
:root[data-ui="v1"] .ui-compose-box textarea,
:root[data-ui="v1"] .composer .cwrap textarea{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:14px}

/* The round send control is an exact centering box, independent of inherited line-height. */
:root[data-ui="v1"] .composer .cwrap>.ui-compose-actions>#sendBtn,
:root[data-ui="v1"] .ui-compose-actions #sendBtn{display:grid!important;place-items:center!important;padding:0!important;line-height:0!important}
:root[data-ui="v1"] .composer .cwrap>.ui-compose-actions>#sendBtn>.ui-compose-icon,
:root[data-ui="v1"] .ui-compose-actions #sendBtn>.ui-compose-icon{display:block!important;width:18px!important;height:18px!important;margin:auto!important;transform:none!important}

/* Artifact actions remain readable when the preview pane is narrow. */
:root[data-ui="v1"] .pc-shell>.pc-toolbar{height:auto;min-height:52px;flex-wrap:wrap;align-content:center;gap:7px;padding-block:7px}
:root[data-ui="v1"] .pc-toolbar .pv-actions{min-width:0;flex:1 1 100%;display:flex;overflow-x:auto;scrollbar-width:thin;padding-bottom:1px}
:root[data-ui="v1"] .pc-toolbar .pv-actions>.btn{flex:0 0 auto;min-width:max-content;overflow:visible;text-overflow:clip}

/* Skill Hub is one direct catalogue with project, reusable and custom views. */
.skillhub-search-row{position:sticky;top:-14px;z-index:3;padding:2px 0 8px;background:var(--ui-bg)}
.skillhub-switcher{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0 0 14px;padding:4px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-muted)}
.skillhub-switcher button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:0;border-radius:7px;background:transparent;color:var(--ui-text-muted);font-family:inherit;font-size:12px;font-weight:650;cursor:pointer}
.skillhub-switcher button:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-surface) 62%,transparent)}
.skillhub-switcher button.active{background:var(--ui-surface);color:var(--ui-text);box-shadow:0 1px 3px rgba(24,35,48,.1)}
.skillhub-switcher b{min-width:20px;padding:2px 6px;border-radius:999px;background:var(--ui-surface-muted);color:var(--ui-text-faint);font-size:10px;font-weight:700;text-align:center}
.skillhub-switcher button.active b{background:var(--ui-accent-soft);color:var(--ui-accent)}
.skillhub-section{display:grid;gap:10px;min-width:0}
.skillhub-section+.skillhub-section{margin-top:18px;padding-top:17px;border-top:1px solid var(--ui-border)}
.skillhub-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.skillhub-section-head>div{min-width:0}.skillhub-section-head h3{margin:0;color:var(--ui-text);font-size:15px;line-height:1.3}.skillhub-section-head p{margin:2px 0 0;color:var(--ui-text-muted);font-size:10.5px;line-height:1.4}
.skillhub-section-head>span{flex:0 0 auto;color:var(--ui-text-faint);font-size:10px}.skillhub-section-head>span b{color:var(--ui-text);font-size:11px}
.skillhub-general-controls{display:grid;gap:6px;padding:7px 9px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface)}
.skillhub-project-context{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:9px 11px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface)}
.skillhub-project-context>div{min-width:0;display:grid;gap:3px}.skillhub-project-context small{font-size:9.5px;letter-spacing:.08em;color:var(--ui-text-faint)}
.skillhub-project-context b{font-size:12.5px}.skillhub-project-context p{margin:0;color:var(--ui-text-muted);font-size:10px;line-height:1.4}
.skillhub-project-context>button{flex:0 0 auto;min-height:29px;padding:0 9px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text-muted);font-family:inherit;font-size:10px;cursor:pointer}
.skillhub-project-card{min-height:206px;border-top:2px solid var(--ui-border-strong)}
.skillhub-project-card.recommended{border-color:var(--ui-accent);background:linear-gradient(180deg,var(--ui-accent-soft),#fff 74px)}
.skillhub-project-card.completed{border-top-color:var(--ui-success)}
.skillhub-project-order{width:22px;height:22px;display:grid;place-items:center;padding:0!important;border:0!important;border-radius:50%;background:var(--ui-surface-muted);color:var(--ui-text);font-size:10px}
.skillhub-project-card.completed .skillhub-project-order{background:var(--ui-success-soft);color:var(--ui-success)}
.skillhub-context-reason{margin:0;padding:5px 7px;border-left:2px solid var(--ui-accent);background:var(--ui-accent-soft);color:var(--ui-text-muted);font-size:10px;line-height:1.4}

/* Project Status shows workflow skills directly; reusable skills are a separate section. */
:root[data-ui="v1"] .ui-status-skill-context{display:block;margin-top:-2px;color:var(--ui-text-faint);font-size:9.5px}
:root[data-ui="v1"] .ui-status-project-skills{display:grid;gap:4px}
:root[data-ui="v1"] .ui-status-project-skill{min-width:0;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface)}
:root[data-ui="v1"] .ui-status-project-skill+.ui-status-project-skill{margin-top:4px}
:root[data-ui="v1"] .ui-status-project-skill.recommended{border-color:var(--ui-accent);background:var(--ui-accent-soft)}
:root[data-ui="v1"] .ui-status-project-skill.completed{border-color:color-mix(in srgb,var(--ui-success) 34%,var(--ui-border));background:var(--ui-success-soft)}
:root[data-ui="v1"] .ui-status-project-skill-index{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--ui-surface-muted);color:var(--ui-text-muted);font-size:9px;font-weight:700}
:root[data-ui="v1"] .ui-status-project-skill.completed .ui-status-project-skill-index{background:#fff;color:var(--ui-success)}
:root[data-ui="v1"] .ui-status-project-skill>div{min-width:0}.ui-status-project-skill b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.8px}
:root[data-ui="v1"] .ui-status-project-skill small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);font-size:9.3px}
:root[data-ui="v1"] .ui-status-project-skill em{display:block;margin-top:3px;color:var(--ui-accent);font-size:8.8px;font-style:normal}
:root[data-ui="v1"] .ui-status-project-skill>button{min-width:42px;min-height:28px;padding:0 7px;border:1px solid var(--ui-border);border-radius:7px;background:#fff;color:var(--ui-text-muted);font-family:inherit;font-size:10px;font-weight:600;cursor:pointer}
:root[data-ui="v1"] .ui-status-project-skill>button:hover{border-color:var(--ui-accent);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-status-project-skill>button:disabled{opacity:.6;cursor:wait}

@media(max-width:700px){
  .skillhub-project-context{align-items:flex-start;flex-direction:column}
  .skillhub-section-head{align-items:flex-start}
  :root[data-ui="v1"] .center>.ui-chat-head{padding-left:46px}
}

/* Match the historical skin selector's specificity while keeping one shell. */
:root[data-ui="v1"][data-skin="K"] .ui-appbar{height:0;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible;pointer-events:none}

/* 2026-08-12 · compact rail, scheduled tasks and desktop research browser. */
:root[data-ui="v1"] .sidebar>.brand{min-height:50px;padding:10px 14px 7px;align-items:flex-start}
:root[data-ui="v1"] .sidebar>.brand .brand-logo{width:auto;height:29px;max-width:112px;object-fit:contain}
:root[data-ui="v1"] .sidebar>.fn{padding:3px 10px 7px;display:grid;gap:3px}
:root[data-ui="v1"] .sidebar>.fn>.fn-new,
:root[data-ui="v1"] .sidebar>.fn>.fn-scheduled{width:100%;min-height:36px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:2px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:var(--ui-text);text-align:left;font-family:inherit;font-size:12px;cursor:pointer}
:root[data-ui="v1"] .sidebar>.fn>.fn-new:hover,
:root[data-ui="v1"] .sidebar>.fn>.fn-scheduled:hover,
:root[data-ui="v1"] .sidebar>.fn>.fn-scheduled.active{background:var(--ui-surface-muted)}
:root[data-ui="v1"] .sidebar>.fn .fn-new-icon{width:18px;margin:0;color:var(--ui-accent);font-weight:700;text-align:center}
:root[data-ui="v1"] .sidebar>.proj-head{padding-top:5px}

:root[data-ui="v1"] .ui-scheduled-head small{display:block;margin-top:2px;color:var(--ui-text-muted);font-size:10.5px;font-weight:400}
:root[data-ui="v1"] .ui-scheduled-view{background:var(--ui-bg);overflow:auto}
:root[data-ui="v1"] .ui-scheduled-inner{width:min(900px,calc(100% - 40px));margin:0 auto;padding:32px 0 64px}
:root[data-ui="v1"] .ui-scheduled-intro small{color:var(--ui-accent);font-size:9.5px;font-weight:700;letter-spacing:.12em}
:root[data-ui="v1"] .ui-scheduled-intro h2{margin:5px 0 4px;font-size:23px;line-height:1.25;letter-spacing:-.02em}
:root[data-ui="v1"] .ui-scheduled-intro p{margin:0;max-width:700px;color:var(--ui-text-muted);font-size:12px;line-height:1.65}
:root[data-ui="v1"] .ui-scheduled-search{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:6px;margin:24px 0 20px;padding:5px 7px 5px 11px;border:1px solid var(--ui-border);border-radius:10px;background:#fff}
:root[data-ui="v1"] .ui-scheduled-search input{min-width:0;height:34px;border:0;outline:0;background:transparent;color:var(--ui-text);font:inherit;font-size:12px}
:root[data-ui="v1"] .ui-scheduled-presets{display:grid;gap:7px;margin-bottom:28px}
:root[data-ui="v1"] .ui-scheduled-presets h3,
:root[data-ui="v1"] .ui-scheduled-list-head h3{margin:0 0 5px;font-size:12px;font-weight:650}
:root[data-ui="v1"] .ui-scheduled-presets>button{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;min-height:55px;padding:9px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ui-text);text-align:left;font-family:inherit;cursor:pointer}
:root[data-ui="v1"] .ui-scheduled-presets>button:hover{border-color:var(--ui-border);background:#fff}
:root[data-ui="v1"] .ui-scheduled-presets>button>span{grid-row:1/3;width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:var(--ui-accent-soft);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-scheduled-presets b{font-size:12px}.ui-scheduled-presets small{color:var(--ui-text-muted);font-size:10.5px}
:root[data-ui="v1"] .ui-scheduled-list{display:grid;gap:8px;min-width:0}
:root[data-ui="v1"] .ui-scheduled-list-head{display:flex;align-items:center;justify-content:space-between}.ui-scheduled-list-head span{color:var(--ui-text-faint);font-size:10px}
:root[data-ui="v1"] #scheduledTaskList{display:grid;gap:8px}
:root[data-ui="v1"] .ui-scheduled-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--ui-border);border-radius:10px;background:#fff}
:root[data-ui="v1"] .ui-scheduled-card.disabled{opacity:.62}
:root[data-ui="v1"] .ui-scheduled-card-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--ui-surface-muted);color:var(--ui-text-muted)}
:root[data-ui="v1"] .ui-scheduled-card-copy{min-width:0}.ui-scheduled-card-copy>div{display:flex;align-items:center;gap:8px}.ui-scheduled-card-copy b{font-size:12px}.ui-scheduled-card-copy>div>span{color:var(--ui-accent);font-size:10px}
:root[data-ui="v1"] .ui-scheduled-card-copy p{margin:3px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);font-size:10.5px}.ui-scheduled-card-copy small{color:var(--ui-text-faint);font-size:9.5px}
:root[data-ui="v1"] .ui-scheduled-card-actions{display:flex;align-items:center;gap:5px}.ui-scheduled-card-actions .danger{color:var(--ui-danger)}
:root[data-ui="v1"] .ui-switch{position:relative;width:34px;height:20px}.ui-switch input{position:absolute;opacity:0}.ui-switch span{position:absolute;inset:0;border-radius:12px;background:var(--ui-border-strong);cursor:pointer}.ui-switch span:after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:.16s}.ui-switch input:checked+span{background:var(--ui-accent)}.ui-switch input:checked+span:after{transform:translateX(14px)}
:root[data-ui="v1"] .ui-scheduled-empty{padding:28px;border:1px dashed var(--ui-border);border-radius:10px;color:var(--ui-text-muted);font-size:12px;text-align:center}.ui-scheduled-empty.error{color:var(--ui-danger)}
.ui-scheduled-editor{width:min(680px,calc(calc(100vw / var(--ui-fs-zoom,1)) - 32px));max-width:680px}.ui-scheduled-editor-head{display:flex;align-items:flex-start;justify-content:space-between}.ui-scheduled-editor-head small{color:var(--ui-accent);font-size:9px;letter-spacing:.12em}.ui-scheduled-editor-head h3{margin:3px 0 15px}
.ui-scheduled-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ui-scheduled-form label{display:grid;gap:5px;color:var(--ui-text-muted);font-size:10.5px}.ui-scheduled-form label.wide{grid-column:1/-1}.ui-scheduled-form input,.ui-scheduled-form select,.ui-scheduled-form textarea{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid var(--ui-border);border-radius:8px;background:#fff;color:var(--ui-text);font:inherit;font-size:12px}.ui-scheduled-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ui-scheduled-enabled{display:flex!important;align-items:center;align-self:end;height:36px}.ui-scheduled-enabled input{width:auto}
.ui-command-source{display:inline-flex;margin-bottom:5px;padding:2px 6px;border-radius:999px;background:var(--ui-accent-soft);color:var(--ui-accent);font-size:9px;font-weight:700}

:root[data-ui="v1"] .ui-chat-actions .ui-browser-action{width:auto;height:auto;min-width:max-content;min-height:36px;padding:0 10px}
:root[data-ui="v1"] .ui-research-browser{display:grid!important;grid-template-rows:auto minmax(0,1fr);min-height:0;padding:0!important;overflow:hidden!important;background:var(--ui-bg)!important}
:root[data-ui="v1"] .ui-browser-toolbar{display:flex;align-items:center;gap:5px;padding:7px;border-bottom:1px solid var(--ui-border);background:var(--ui-surface);overflow-x:auto}
:root[data-ui="v1"] .ui-browser-toolbar button{flex:0 0 auto;min-height:30px;padding:0 8px;border:1px solid var(--ui-border);border-radius:7px;background:#fff;color:var(--ui-text);font:inherit;font-size:10px;cursor:pointer}
:root[data-ui="v1"] .ui-browser-toolbar input{min-width:180px;flex:1 1 260px;height:30px;padding:0 9px;border:1px solid var(--ui-border);border-radius:7px;background:#fff;color:var(--ui-text);font:inherit;font-size:10.5px}
:root[data-ui="v1"] .ui-browser-host{position:relative;min-width:0;min-height:320px;background:#fff}
:root[data-ui="v1"] .ui-browser-fallback{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;padding:28px;text-align:center}.ui-browser-fallback b{font-size:14px}.ui-browser-fallback p{max-width:420px;margin:0;color:var(--ui-text-muted);font-size:11px;line-height:1.6}
:root[data-ui="v1"] .ui-browser-toolbar .ui-browser-visibility{border-color:#b9c8d5;background:var(--ui-surface-subtle);font-weight:650}

/* Composer-only drop affordance.  Files still travel through chatUpload -> _addAttach -> _uploadPending. */
:root[data-ui="v1"] .ui-compose-box.ui-composer-drop-hot,
:root[data-ui="v1"] .composer .cwrap.ui-composer-drop-hot{border-color:var(--ui-accent)!important;box-shadow:0 0 0 3px rgba(49,95,141,.14),0 10px 30px rgba(31,67,99,.12)!important}
:root[data-ui="v1"] .ui-compose-box.ui-composer-drop-hot::after,
:root[data-ui="v1"] .composer .cwrap.ui-composer-drop-hot::after{content:"松开即可添加附件";position:absolute;inset:5px;z-index:8;display:grid;place-items:center;border:1.5px dashed var(--ui-accent);border-radius:calc(var(--ui-radius-lg) - 4px);background:rgba(245,249,253,.94);color:var(--ui-accent);font-size:12px;font-weight:700;letter-spacing:.02em;pointer-events:none}

/* Per-project text queue. The server-side project lock remains authoritative. */
:root[data-ui="v1"] .composer>.ui-message-queue{position:relative;z-index:12;width:min(var(--ui-chat-column),100%);height:34px;min-height:34px;max-height:34px;margin:0 auto 8px;padding:0;border:0;background:transparent;overflow:visible;contain:layout}
:root[data-ui="v1"] .ui-message-queue-summary{height:34px;display:flex;align-items:center;gap:6px;padding:3px 4px 3px 8px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface);box-shadow:0 2px 8px rgba(31,47,61,.06)}
:root[data-ui="v1"] .ui-message-queue-toggle{min-width:0;flex:1;height:26px;display:flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:var(--ui-text);font:inherit;cursor:pointer;text-align:left}
:root[data-ui="v1"] .ui-message-queue-toggle>b{flex:0 0 auto;font-size:10.5px}
:root[data-ui="v1"] .ui-message-queue-toggle>span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);font-size:10.5px}
:root[data-ui="v1"] .ui-message-queue-toggle>small{width:16px;color:var(--ui-text-muted);font-size:12px;text-align:center}
:root[data-ui="v1"] .ui-message-queue-popover{position:absolute;left:0;right:0;bottom:calc(100% + 6px);display:none;max-height:min(calc(42vh / var(--ui-fs-zoom,1)),360px);padding:8px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);box-shadow:0 14px 38px rgba(31,47,61,.16);overflow:auto}
:root[data-ui="v1"] .ui-message-queue-popover.open{display:block}
:root[data-ui="v1"] .ui-message-queue-popover-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:1px 2px 7px;color:var(--ui-text)}
:root[data-ui="v1"] .ui-message-queue-popover-head>b{font-size:11.5px}
:root[data-ui="v1"] .ui-message-queue-popover-head>span{color:var(--ui-text-muted);font-size:9.5px}
:root[data-ui="v1"] .ui-message-queue-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:1px 2px 7px}
:root[data-ui="v1"] .ui-message-queue-head>span{min-width:0;display:grid;gap:1px}
:root[data-ui="v1"] .ui-message-queue-head b{color:var(--ui-text);font-size:11.5px}
:root[data-ui="v1"] .ui-message-queue-head small{color:var(--ui-text-muted);font-size:9.5px}
:root[data-ui="v1"] .ui-message-queue-mode{display:inline-flex;align-items:center;margin-right:7px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--ui-accent) 10%,var(--ui-surface));color:var(--ui-accent);font-size:9px;font-style:normal;font-weight:650}
:root[data-ui="v1"] .ui-message-queue-mode.paused{background:#fff7ed;color:#b45309}
:root[data-ui="v1"] .ui-message-queue-head>button,
:root[data-ui="v1"] .ui-message-queue-actions>button{min-height:27px;padding:0 8px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text-muted);font:inherit;font-size:9.5px;white-space:nowrap;cursor:pointer}
:root[data-ui="v1"] .ui-message-queue-head>button:hover,
:root[data-ui="v1"] .ui-message-queue-actions>button:hover{border-color:var(--ui-border-strong);background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .ui-message-queue-head>button.ui-message-queue-resume{border-color:var(--ui-accent);background:var(--ui-accent);color:#fff;font-weight:650}
:root[data-ui="v1"] .ui-message-queue-head>button.ui-message-queue-resume:hover{border-color:var(--ui-accent-hover);background:var(--ui-accent-hover);color:#fff}
:root[data-ui="v1"] .ui-message-queue-summary>button:not(.ui-message-queue-toggle){height:26px;min-height:26px;padding:0 8px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text-muted);font:inherit;font-size:9.5px;cursor:pointer}
:root[data-ui="v1"] .ui-message-queue-summary>button.ui-message-queue-resume{border-color:var(--ui-accent);background:var(--ui-accent);color:#fff;font-weight:650}
:root[data-ui="v1"] .ui-message-queue-list{display:grid;gap:5px}
:root[data-ui="v1"] .ui-message-queue-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:7px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface)}
:root[data-ui="v1"] .ui-message-queue-row:first-child{border-color:color-mix(in srgb,var(--ui-accent) 36%,var(--ui-border));background:color-mix(in srgb,var(--ui-accent-soft) 54%,var(--ui-surface) 46%)}
:root[data-ui="v1"] .ui-message-queue-grip{color:var(--ui-text-faint);font-size:9px;letter-spacing:-2px;user-select:none}
:root[data-ui="v1"] .ui-message-queue-copy{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 7px;align-items:baseline}
:root[data-ui="v1"] .ui-message-queue-copy b{color:var(--ui-accent);font-size:9.5px;white-space:nowrap}
:root[data-ui="v1"] .ui-message-queue-copy>span{overflow:hidden;color:var(--ui-text);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-message-queue-copy small{grid-column:2;color:var(--ui-text-muted);font-size:9px}
:root[data-ui="v1"] .ui-message-queue-actions{display:flex;align-items:center;gap:4px}
:root[data-ui="v1"] .ui-message-queue-actions>select{min-height:27px;max-width:118px;padding:0 22px 0 7px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text-muted);font:inherit;font-size:9.5px;cursor:pointer}
:root[data-ui="v1"] .ui-message-queue-actions>select:focus{border-color:var(--ui-accent);outline:2px solid color-mix(in srgb,var(--ui-accent) 16%,transparent)}
:root[data-ui="v1"] .ui-message-queue-actions>button.danger{width:27px;padding:0;color:var(--ui-danger)}
:root[data-ui="v1"] .ui-message-queue-off{padding:8px;border:1px dashed var(--ui-border);border-radius:7px;color:var(--ui-text-muted);font-size:10px;line-height:1.5}

@media(max-width:760px){
  :root[data-ui="v1"] .ui-scheduled-inner{width:calc(100% - 22px);padding-top:22px}
  :root[data-ui="v1"] .ui-scheduled-card{grid-template-columns:30px minmax(0,1fr)}
  :root[data-ui="v1"] .ui-scheduled-card-actions{grid-column:1/-1;flex-wrap:wrap}
  .ui-scheduled-form{grid-template-columns:1fr}.ui-scheduled-form label.wide{grid-column:auto}
  :root[data-ui="v1"] .ui-message-queue-row{grid-template-columns:12px minmax(0,1fr)}
  :root[data-ui="v1"] .ui-message-queue-actions{grid-column:2;flex-wrap:wrap}
  :root[data-ui="v1"] .ui-message-queue-toggle>span{max-width:calc(48vw / var(--ui-fs-zoom,1))}
  :root[data-ui="v1"] .ui-message-queue-popover{max-height:calc(44vh / var(--ui-fs-zoom,1))}
}

/* 2026-08-13 · inspector skills/files split + ChatGPT-scale type. */
:root[data-ui="v1"] .assistant-turn>.assistant-answer{
  max-width:var(--ui-chat-measure);
  font-size:var(--ui-chat-font-size);
  line-height:var(--ui-chat-line-height);
}
:root[data-ui="v1"] .msg.user .bubble,
:root[data-ui="v1"] .ui-compose-box textarea,
:root[data-ui="v1"] .composer .cwrap textarea{font-size:14px;line-height:1.55}
:root[data-ui="v1"] .assistant-answer code,
:root[data-ui="v1"] .assistant-answer pre{font-size:var(--ui-code-font-size)}

/* Sidebar and inspector use 14px body copy with a quiet 12px metadata tier. */
:root[data-ui="v1"] .ui-inspector-head strong{font-size:var(--ui-font-title)}
:root[data-ui="v1"] .ui-inspector-tab{font-size:var(--ui-font-ui)}
:root[data-ui="v1"] .sidebar>.proj-head,
:root[data-ui="v1"] .project-row .pm,
:root[data-ui="v1"] .project-thread-meta,
:root[data-ui="v1"] .ui-task-meta,
:root[data-ui="v1"] .ui-task-links,
:root[data-ui="v1"] .turn-toolbar{font-size:var(--ui-font-meta)}
:root[data-ui="v1"] .project-row .pn{font-size:var(--ui-font-ui)}
:root[data-ui="v1"] .project-thread{font-size:var(--ui-thread-font-size)}
:root[data-ui="v1"] .ui-inspector-panel{font-size:var(--ui-font-ui)}
:root[data-ui="v1"] .ui-inspector-panel .trow,
:root[data-ui="v1"] .ui-inspector-panel .titem{font-size:var(--ui-font-meta)}

/* Files remain the only scrollable surface in their inspector panel. */
:root[data-ui="v1"] .ui-skills-panel-loading{padding:12px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface);color:var(--ui-text-muted);font-size:var(--ui-font-meta)}
:root[data-ui="v1"] #inspectorPanelFiles #treeBox{scrollbar-width:thin;scrollbar-color:var(--ui-border-strong) transparent}
:root[data-ui="v1"] #inspectorPanelFiles #treeBox::-webkit-scrollbar{display:block;width:10px}
:root[data-ui="v1"] #inspectorPanelFiles #treeBox::-webkit-scrollbar-thumb{min-height:28px;border:2px solid transparent;border-radius:999px;background:var(--ui-border-strong);background-clip:content-box}

/* Skills: exactly two direct inspector sections; deeper catalogues stay behind “更多”. */
:root[data-ui="v1"] #inspectorPanelFlow{padding:10px;overflow:auto}
:root[data-ui="v1"] #inspectorPanelFlow .plan-panel{display:grid;gap:10px}
:root[data-ui="v1"] .ui-inspector-skill-section{min-width:0;padding:10px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface)}
:root[data-ui="v1"] .ui-inspector-skill-section>header{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}
:root[data-ui="v1"] .ui-inspector-skill-section>header>span:first-child{min-width:0}
:root[data-ui="v1"] .ui-inspector-skill-section h3{margin:0;color:var(--ui-text);font-size:var(--ui-font-title);line-height:1.35}
:root[data-ui="v1"] .ui-inspector-skill-section header small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);font-size:var(--ui-font-meta)}
:root[data-ui="v1"] .ui-inspector-skill-section header button,
:root[data-ui="v1"] .ui-inspector-skill-row>button{min-height:29px;padding:0 8px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text-muted);font:600 var(--ui-font-meta)/1.2 inherit;cursor:pointer;white-space:nowrap}
:root[data-ui="v1"] .ui-inspector-skill-section header button:hover,
:root[data-ui="v1"] .ui-inspector-skill-row>button:hover{border-color:var(--ui-accent);color:var(--ui-accent)}
:root[data-ui="v1"] .ui-inspector-skill-row>button:disabled{opacity:.55;cursor:wait}
:root[data-ui="v1"] .ui-inspector-skill-actions{display:flex;flex:0 0 auto;gap:4px}
:root[data-ui="v1"] .ui-inspector-skill-list{display:grid;gap:5px;min-width:0}
:root[data-ui="v1"] .ui-inspector-skill-row{min-width:0;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px;border-radius:8px;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .ui-inspector-skill-row.recommended{background:var(--ui-accent-soft)}
:root[data-ui="v1"] .ui-inspector-skill-row.completed{background:var(--ui-success-soft)}
:root[data-ui="v1"] .ui-inspector-skill-index,
:root[data-ui="v1"] .ui-inspector-skill-glyph{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--ui-surface);color:var(--ui-accent);font-size:var(--ui-font-meta)}
:root[data-ui="v1"] .ui-inspector-skill-copy{min-width:0;display:grid;gap:2px}
:root[data-ui="v1"] .ui-inspector-skill-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text);font-size:var(--ui-font-ui)}
:root[data-ui="v1"] .ui-inspector-skill-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);font-size:var(--ui-font-meta)}
:root[data-ui="v1"] .ui-inspector-skill-empty{margin:0;padding:8px 2px;color:var(--ui-text-muted);font-size:var(--ui-font-meta);line-height:1.5}

/* The full Skill Hub follows the same readable metadata floor. */
.skillhub-card-meta,.skillhub-section-head>span,.skillhub-filter-label,.skillhub-risk{font-size:12px}
.skillhub-section-head p,.skillhub-project-context p,.skillhub-project-context small,.skillhub-output,.skillhub-gates b,.skillhub-tags span,.skillhub-gates span{font-size:12px}
.skillhub-desc{font-size:13px;line-height:1.5}
.skillhub-filter-row button,.skillhub-edit,.skillhub-plan,.skillhub-run,.skillhub-project-context>button{font-size:12px}

@media(max-width:420px){
  :root[data-ui="v1"] .ui-inspector-skill-section{padding:8px}
  :root[data-ui="v1"] .ui-inspector-skill-row{grid-template-columns:20px minmax(0,1fr) auto;padding:6px}
}

/* 2026-08-13 · compact AIHub-style interaction shell. */
:root[data-ui="v1"]{
  --ui-chat-font-size:13px;
  --ui-chat-line-height:1.52;
  --ui-code-font-size:12px;
  --ui-chat-measure:100%;
  --ui-chat-column:960px;
  --ui-thread-font-size:12px;
  --ui-font-meta:11px;
  --ui-font-ui:12px;
  --ui-font-title:12px;
}

/* 2026-08-15 老板要求：项目名行距缩短 + 单个项目下面可建多个聊天窗口（会话列表进项目栏）。
   project-row = 展开箭头(24px) + 项目名 + 更多(28px)；会话子列表见 .project-threads/.project-thread。 */
:root[data-ui="v1"] .project-row{min-height:32px;grid-template-columns:24px minmax(0,1fr) 28px;padding:0 3px 0 2px}
:root[data-ui="v1"] .project-row-main{grid-column:2;min-height:32px;padding:2px 3px 2px 0}
:root[data-ui="v1"] .project-row>.ui-project-more{grid-column:3}
:root[data-ui="v1"] .project-row .pn{font-size:12px;line-height:1.28}
:root[data-ui="v1"] .project-row .pm{font-size:10.5px;line-height:1.25}

/* Inspector chrome follows the exact 12px rail navigation standard. */
:root[data-ui="v1"] .ui-inspector-head strong,
:root[data-ui="v1"] .ui-inspector-tab,
:root[data-ui="v1"] .ui-inspector-panel,
:root[data-ui="v1"] .ui-inspector-skill-copy b,
:root[data-ui="v1"] .ui-inspector-skill-section h3{font-size:12px}
:root[data-ui="v1"] .ui-inspector-head{min-height:47px}
:root[data-ui="v1"] .ui-inspector-tabs{min-height:43px}

/* Three equal research-skill categories; only the selected list occupies space. */
:root[data-ui="v1"] #inspectorPanelFlow .plan-panel{gap:8px}
:root[data-ui="v1"] .ui-project-flow-status{display:grid;gap:7px;padding:9px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface)}
:root[data-ui="v1"] .ui-project-flow-status>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
:root[data-ui="v1"] .ui-project-flow-status>header>span{min-width:0;display:grid;gap:2px}
:root[data-ui="v1"] .ui-project-flow-status>header b{font-size:12px;line-height:1.3}
:root[data-ui="v1"] .ui-project-flow-status>header small{overflow:hidden;color:var(--ui-text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-project-flow-status>header strong{display:grid;gap:0;color:var(--ui-accent);font:700 11px/1.2 inherit;text-align:right}
:root[data-ui="v1"] .ui-project-flow-status>header strong>span{font-size:13px}
:root[data-ui="v1"] .ui-project-flow-status>header strong>small{font-size:9px;font-weight:600}
:root[data-ui="v1"] .ui-project-flow-track{height:5px;overflow:hidden;border-radius:999px;background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-project-flow-track>i{display:block;height:100%;border-radius:inherit;background:var(--ui-accent);transition:width .18s ease}
:root[data-ui="v1"] .ui-flow-context{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:6px 7px;border-radius:7px;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .ui-flow-context>span{min-width:0;display:grid;gap:1px}
:root[data-ui="v1"] .ui-flow-context small{color:var(--ui-text-faint);font-size:9px}
:root[data-ui="v1"] .ui-flow-context b{overflow:hidden;font-size:10.5px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-flow-context em{overflow:hidden;color:var(--ui-text-muted);font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-flow-context>button{flex:0 0 auto;min-height:25px;padding:0 7px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-accent);font:600 9.5px/1.2 inherit;cursor:pointer}
:root[data-ui="v1"] .ui-project-flow-summary{margin:0;color:var(--ui-text-muted);font-size:9.5px;line-height:1.45}
:root[data-ui="v1"] .ui-next-skill{display:grid;gap:6px;padding:8px;border-left:3px solid var(--ui-accent);border-radius:7px;background:var(--ui-accent-soft)}
:root[data-ui="v1"] .ui-next-skill>span{min-width:0;display:grid;gap:1px}
:root[data-ui="v1"] .ui-next-skill small{color:var(--ui-accent);font-size:10px;font-weight:700}
:root[data-ui="v1"] .ui-next-skill b{font-size:11.5px;line-height:1.3;overflow-wrap:anywhere}
:root[data-ui="v1"] .ui-next-skill em{color:var(--ui-text-muted);font-size:9.5px;font-style:normal;line-height:1.4;overflow-wrap:anywhere}
:root[data-ui="v1"] .ui-next-skill>footer{display:flex;align-items:flex-end;justify-content:space-between;gap:7px}
:root[data-ui="v1"] .ui-next-skill>footer>span{min-width:0;display:grid;gap:1px}
:root[data-ui="v1"] .ui-next-skill>footer small{font-size:9px}
:root[data-ui="v1"] .ui-next-skill>footer strong{overflow:hidden;color:var(--ui-text-muted);font-size:9.5px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-next-skill button{min-height:29px;padding:0 9px;border:0;border-radius:7px;background:var(--ui-accent);color:#fff;font:600 11px/1.2 inherit;cursor:pointer;white-space:nowrap}
:root[data-ui="v1"] .ui-next-skill button:disabled{opacity:.5;cursor:not-allowed}
:root[data-ui="v1"] .ui-project-flow-empty{margin:0;color:var(--ui-text-muted);font-size:11px}
:root[data-ui="v1"] .ui-skills-unavailable{margin:12px;padding:16px;border:1px solid #ead9b8;border-radius:12px;background:#fffaf0;color:#5f4a23}
:root[data-ui="v1"] .ui-skills-unavailable b{font-size:12px}
:root[data-ui="v1"] .ui-skills-unavailable p{margin:5px 0 10px;font-size:11px;line-height:1.45}
:root[data-ui="v1"] .ui-skills-unavailable button{border:1px solid #d8c59d;border-radius:8px;background:#fff;padding:6px 10px;cursor:pointer}
:root[data-ui="v1"] .ui-skill-switcher{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-muted)}
:root[data-ui="v1"] .ui-skill-switch{min-width:0;min-height:31px;padding:0 5px;border:0;border-radius:7px;background:transparent;color:var(--ui-text-muted);font:600 11px/1.2 inherit;cursor:pointer;white-space:nowrap}   /* 2026-08-15 老板要求：与台账(证据台账/溯源审计)同号 11px */
:root[data-ui="v1"] .ui-skill-switch.active{background:var(--ui-surface);color:var(--ui-text);box-shadow:0 1px 3px rgba(30,45,60,.08)}
:root[data-ui="v1"] .ui-skill-switch:focus-visible{outline:2px solid var(--ui-accent-ring);outline-offset:1px}
/* 项目状态关键统计用 2x2，窄检查器里仍能完整读清标签和值。 */
:root[data-ui="v1"] .ui-flow-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
:root[data-ui="v1"] .ui-flow-stats>span{min-width:0;display:grid;gap:1px;padding:5px 6px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .ui-flow-stats small{color:var(--ui-text-faint);font-size:9px;white-space:nowrap}
:root[data-ui="v1"] .ui-flow-stats b{overflow:hidden;color:var(--ui-text);font-size:10.5px;font-weight:600;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .ui-inspector-skill-section[data-skill-panel]{display:none;padding:8px}
:root[data-ui="v1"] .ui-inspector-skill-section[data-skill-panel].active{display:block}
:root[data-ui="v1"] .ui-inspector-skill-section h3{font-size:11.5px}
:root[data-ui="v1"] .ui-inspector-skill-section>header{margin-bottom:6px}
:root[data-ui="v1"] .ui-inspector-skill-section>header small{font-size:9.5px}
:root[data-ui="v1"] .ui-inspector-skill-section header button,
:root[data-ui="v1"] .ui-inspector-skill-row>button{min-height:25px;padding:0 7px;font-size:10px}
:root[data-ui="v1"] .ui-inspector-skill-list{gap:3px}
:root[data-ui="v1"] .ui-inspector-skill-row{grid-template-columns:20px minmax(0,1fr) auto;gap:5px;padding:5px}
:root[data-ui="v1"] .ui-inspector-skill-index,
:root[data-ui="v1"] .ui-inspector-skill-glyph{width:20px;height:20px;font-size:9.5px}
:root[data-ui="v1"] .ui-inspector-skill-copy{gap:1px}
:root[data-ui="v1"] .ui-inspector-skill-copy b{overflow:hidden;font-size:11px;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
:root[data-ui="v1"] .ui-inspector-skill-copy small{font-size:9.5px;line-height:1.25}
/* Compact workflow progress stays with skills; Ledger only renders research records. */
:root[data-ui="v1"] #inspectorPanelAudit{overflow:auto}
:root[data-ui="v1"] #inspectorPanelAudit>.ui-audit-box{padding-top:10px}

/* Compact transcript: one shared 850px column, tighter rhythm and justified prose. */
:root[data-ui="v1"] .messages{padding-top:14px}
:root[data-ui="v1"] .messages>.mwrap,
:root[data-ui="v1"] .composer>#turnGoalBar,
:root[data-ui="v1"] .composer>.ui-compose-box,
:root[data-ui="v1"] .composer>.ui-composer-context,
:root[data-ui="v1"] .composer>.ui-message-queue{width:min(var(--ui-chat-column),100%)}
:root[data-ui="v1"] .msg{margin-bottom:12px}
:root[data-ui="v1"][data-skin="K"] .msg.assistant .bubble{width:100%;max-width:100%;padding:2px 0 9px}
:root[data-ui="v1"] .assistant-turn>.assistant-answer{width:100%;max-width:100%;font-size:13px;line-height:var(--ui-chat-line-height);text-align:justify;text-justify:inter-ideograph;hyphens:auto}
:root[data-ui="v1"] .assistant-answer p{margin:.12em 0 .62em}
:root[data-ui="v1"] .assistant-answer ul,
:root[data-ui="v1"] .assistant-answer ol{margin:.3em 0 .65em}
:root[data-ui="v1"] .assistant-answer li{margin:.08em 0}
:root[data-ui="v1"] .assistant-answer table,
:root[data-ui="v1"] .assistant-answer pre,
:root[data-ui="v1"] .assistant-answer code{text-align:left;text-justify:auto}
:root[data-ui="v1"] .msg.user .bubble{font-size:var(--ui-chat-font-size);line-height:var(--ui-chat-line-height)}   /* 输入与输出同号（以输出为准·2026-08-15） */
:root[data-ui="v1"] .ui-compose-box textarea,
:root[data-ui="v1"] .composer .cwrap textarea{font-size:12px;line-height:1.48}
:root[data-ui="v1"] .ui-thread-heading{gap:0}
:root[data-ui="v1"] .ui-thread-heading>strong,
:root[data-ui="v1"] .ui-thread-heading>span>strong{font-size:12px;line-height:1.25}
:root[data-ui="v1"] .ui-thread-heading small{font-size:10.5px;line-height:1.2}
:root[data-ui="v1"] .ui-chat-actions{gap:4px}
:root[data-ui="v1"] .ui-chat-actions .ui-control-entry,
:root[data-ui="v1"] .ui-chat-actions .ui-interactions-action,
:root[data-ui="v1"] .ui-chat-actions .ui-browser-action,
:root[data-ui="v1"] .ui-chat-actions .ui-thread-handback,
:root[data-ui="v1"] .ui-chat-actions .ui-new-thread-action{width:auto;height:32px;min-width:max-content;min-height:32px;padding:0 8px;font-size:11px}

/* Interaction Records replaces nested branch rows while preserving handback. */
.ui-interaction-modal{width:min(520px,calc(100vw / var(--ui-fs-zoom,1) - 28px));padding:0;overflow:hidden}
.ui-interaction-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--ui-border)}
.ui-interaction-modal>header small{color:var(--ui-accent);font-size:9px;font-weight:700;letter-spacing:.1em}
.ui-interaction-modal>header h3{margin:2px 0 1px;font-size:16px}.ui-interaction-modal>header p{margin:0;color:var(--ui-text-muted);font-size:11px}
.ui-interaction-modal>header>button{width:30px;height:30px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface);cursor:pointer}
.ui-interaction-list{max-height:min(calc(56vh / var(--ui-fs-zoom,1)),480px);display:grid;gap:5px;padding:10px;overflow:auto}
.ui-interaction-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid transparent;border-radius:9px;background:var(--ui-surface-subtle)}
.ui-interaction-row.active{border-color:var(--ui-accent);background:var(--ui-accent-soft)}
.ui-interaction-row>button:first-child{min-width:0;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;padding:8px;border:0;background:transparent;text-align:left;cursor:pointer}
.ui-interaction-row>button:first-child>span:last-child{min-width:0;display:grid;gap:1px}.ui-interaction-row b,.ui-interaction-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-interaction-row b{font-size:12px}.ui-interaction-row small{color:var(--ui-text-muted);font-size:10.5px}
.ui-interaction-icon{color:var(--ui-accent);text-align:center}.ui-interaction-handback{margin-right:7px;padding:5px 7px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);font-size:10.5px;cursor:pointer}
.ui-interaction-row button:focus-visible,.ui-interaction-modal>header>button:focus-visible,.ui-interaction-modal>footer button:focus-visible{outline:2px solid var(--ui-accent-ring);outline-offset:1px}
.ui-interaction-modal>footer{display:flex;justify-content:flex-end;padding:10px 14px;border-top:1px solid var(--ui-border)}.ui-interaction-modal>footer button{min-height:32px;padding:0 11px;border:1px solid var(--ui-accent);border-radius:8px;background:var(--ui-accent);color:#fff;font:600 11px/1 inherit;cursor:pointer}

:root[data-ui="v1"] #exportPop .btn{
  width:auto;min-width:0;height:auto;min-height:30px;padding:4px 8px;white-space:normal;
}
:root[data-ui="v1"] .ui-chat-actions .ui-export-entry{
  width:auto;min-width:max-content;height:32px;min-height:32px;padding:0 8px;white-space:nowrap;
}
:root[data-ui="v1"] #exportPop input[type="checkbox"]{
  width:16px;height:16px;flex:0 0 16px;margin:0;
}
@media(max-width:760px){
  :root[data-ui="v1"] .ui-chat-actions .ui-control-entry,
  :root[data-ui="v1"] .ui-chat-actions .ui-interactions-action{display:none}
  /* The toolbar scrolls horizontally on phones. A fixed popover escapes that
     clipping box so file checkboxes and download controls remain clickable. */
  :root[data-ui="v1"] .ui-export-action #exportPop{
    position:fixed!important;top:72px!important;bottom:auto!important;
    left:12px!important;right:auto!important;z-index:300!important;
  }
}

/* ══════════════════════════════════════════════════════════════════════
   消息呈现·借皮 DSH（deepseek-harness, MIT）批 1 —— 2026-08-14
   依据:packages/client/ui-conversation/src/client/chat/ReasoningRow.module.css
        packages/client/ui-primitives/src/markdown/MarkdownText.module.css
   对照表:app/docs/ui/dsh-presentation-mapping-20260814.md
   纪律:借 DSH 的「行」外观,不借「内容」——原始 reasoning 永不进 DOM。
   ══════════════════════════════════════════════════════════════════════ */
/* 2026-08-15 老板决策：恢复「思考记录」面板（保留工作记录+思考记录双面板，DSH 优化显示） */

/* ── 思考折叠行（ReasoningRow 化·思考记录）──────────────────────
   DSH:图标+标题+2px 分隔点+首行摘要,默认折叠;展开体 22px 缩进灰字 14px/24;
       流式期间行上有 300px 扫光。 */
:root[data-ui="v1"] .think-panel{margin:0 0 2px;border:0;border-radius:0;background:transparent;overflow:visible}
:root[data-ui="v1"] .think-panel>summary{
  position:relative;overflow:hidden;list-style:none;cursor:pointer;user-select:none;
  display:flex;align-items:center;gap:7px;margin:0;padding:2px 0;
  color:var(--ui-text-muted);font-size:12px;line-height:20px;font-weight:400;
}
:root[data-ui="v1"] .think-panel>summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .think-panel>summary::before{content:"\1F9E0";font-size:13px;flex:0 0 auto}
:root[data-ui="v1"] .think-panel>summary::after{content:"\25B8";margin-left:auto;padding-right:2px;color:var(--ui-text-faint);font-size:10px;transition:transform .15s}
:root[data-ui="v1"] .think-panel[open]>summary::after{transform:rotate(90deg)}
:root[data-ui="v1"] .think-panel[open]>summary{border-bottom:0}
:root[data-ui="v1"] .think-body{
  max-height:420px;padding:4px 0 4px 22px;color:var(--ui-text-faint);
  font-size:12px;line-height:1.75;white-space:pre-wrap;word-break:break-word;overflow:auto;
}
/* 思考记录边输出边排版：紧凑字号与段落节奏，长过程不再挤占正文视野。 */
:root[data-ui="v1"] .think-body p{margin:0 0 5px}
:root[data-ui="v1"] .think-body p:last-child{margin-bottom:0}
:root[data-ui="v1"] .think-body ul,
:root[data-ui="v1"] .think-body ol{margin:.3em 0 .45em;padding-left:1.25em}
:root[data-ui="v1"] .think-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;font-size:.92em}
:root[data-ui="v1"] .think-body strong{font-weight:600}
/* 流式期间(气泡仍挂 streamingMsg id 且未展开)的行上扫光——DSH 2.6s ease-out 循环 */
#streamingMsg .think-panel:not([open])>summary{
  background-image:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--ui-surface-muted) 65%,transparent) 55%,transparent 100%);
  background-repeat:no-repeat;background-size:300px 100%;
  animation:dsh-think-row-sweep 2.6s ease-out infinite;
}
@keyframes dsh-think-row-sweep{0%{background-position:-300px 0}90%,100%{background-position:100% 0}}
@media (prefers-reduced-motion:reduce){
  #streamingMsg .think-panel:not([open])>summary{animation:none;background-image:none}
}

/* ── Markdown 排版节奏（DSH token,按 MedHub 字号换算为 em）──────────
   DSH:h1–h3 32/16、h4–h6 16/8、p 16、strong 600(16px 基)。此处 1em=段落字号,
   保持 MedHub 客户稿排版习惯的字号阶梯,只对齐节奏与加粗。 */
:root[data-ui="v1"] .assistant-answer p{margin:.18em 0 .66em}
:root[data-ui="v1"] .assistant-answer h1,
:root[data-ui="v1"] .assistant-answer h2,
:root[data-ui="v1"] .assistant-answer h3{margin:1.35em 0 .68em}
:root[data-ui="v1"] .assistant-answer h4,
:root[data-ui="v1"] .assistant-answer h5,
:root[data-ui="v1"] .assistant-answer h6{margin:.82em 0 .4em}
:root[data-ui="v1"] .assistant-answer h4+ul,
:root[data-ui="v1"] .assistant-answer h4+ol,
:root[data-ui="v1"] .assistant-answer h5+ul,
:root[data-ui="v1"] .assistant-answer h5+ol,
:root[data-ui="v1"] .assistant-answer h6+ul,
:root[data-ui="v1"] .assistant-answer h6+ol{margin-top:.5em}
:root[data-ui="v1"] .assistant-answer strong{font-weight:600}
:root[data-ui="v1"] .assistant-answer h1 strong,
:root[data-ui="v1"] .assistant-answer h2 strong,
:root[data-ui="v1"] .assistant-answer h3 strong,
:root[data-ui="v1"] .assistant-answer h4 strong,
:root[data-ui="v1"] .assistant-answer h5 strong,
:root[data-ui="v1"] .assistant-answer h6 strong{font-weight:inherit}
:root[data-ui="v1"] .assistant-answer blockquote{margin:.65em 0;padding:.18em 0 .18em 1em;border-left:2px solid var(--ui-border-strong);color:var(--ui-text-muted)}
:root[data-ui="v1"] .assistant-answer ul,
:root[data-ui="v1"] .assistant-answer ol{margin:.32em 0 .7em;padding-left:1.5em}

/* ── 批 2：思考行首行摘要 + 代码块顶栏 + 用户气泡几何 ────────────
   依据:DSH ReasoningRow(标题+分隔点+首行摘要)/CodeBlock(语言头+复制)/
        MessageItem(用户气泡 min(525px,82%)、圆角 22、16px/24px)。 */
:root[data-ui="v1"] .think-panel .think-sum{
  min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--ui-text-faint);font-size:12px;line-height:20px;
}
:root[data-ui="v1"] .think-panel .think-sum::before{
  content:"";display:inline-block;width:2px;height:2px;margin:0 8px 3px;border-radius:1px;
  background:var(--ui-text-faint);vertical-align:middle;
}
:root[data-ui="v1"] .think-panel .think-sum:empty{display:none}
/* 代码块顶栏（语言 + 复制；pre 移入 .md-code-block 容器） */
:root[data-ui="v1"] .md-code-block{margin:1em 0;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-subtle);overflow:hidden}
:root[data-ui="v1"] .md-code-block>.md-code-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 10px;border-bottom:1px solid var(--ui-border);color:var(--ui-text-faint);font-size:11px}
:root[data-ui="v1"] .md-code-lang{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.02em}
:root[data-ui="v1"] .md-code-copy{min-height:24px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:var(--ui-text-muted);font:inherit;font-size:11px;font-weight:600;cursor:pointer}
:root[data-ui="v1"] .md-code-copy:hover{background:var(--ui-surface-muted);color:var(--ui-text)}
:root[data-ui="v1"] .md-code-block pre{margin:0;border:0;border-radius:0;background:transparent}

/* 流式光标（边生成边排版）：末位闪烁竖线，DSH 同款视觉 */
:root[data-ui="v1"] .md-caret{display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:-0.15em;background:var(--ui-accent);animation:md-caret-blink 1s steps(2) infinite}
@keyframes md-caret-blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){:root[data-ui="v1"] .md-caret{animation:none;opacity:1}}

/* 2026-08-15 老板决策：回退交织时间线，保留「工作记录 + 思考记录」双面板（thread-* 样式移除） */

/* 用户气泡几何（DSH MessageItem：525px/82% 宽帽 + 22px 圆角 + 16/24 字号行高；内边距 em 化随字号缩放） */
/* 用户气泡几何（DSH MessageItem：525px/82% 宽帽 + 22px 圆角；2026-08-15 用户要求：输入信息字体与对话输出一致，以输出字号为准=var(--ui-chat-font-size)） */
:root[data-ui="v1"] .msg.user .bubble{max-width:min(525px,82%);border-radius:22px;padding:.625em 1em;font-size:var(--ui-chat-font-size);line-height:var(--ui-chat-line-height);overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}

/* Message activity timeline v2: quiet work clock + individually expandable events. */
:root[data-ui="v1"] .assistant-turn>.turn-activity{max-width:var(--ui-chat-measure);margin:0 0 8px}
:root[data-ui="v1"] .assistant-turn>.turn-activity>.ui-task-card{margin:0;border:0;background:transparent}
:root[data-ui="v1"] .ui-task-head{min-height:25px;padding:0 0 5px;border-bottom:0}
:root[data-ui="v1"] .ui-task-head>span{gap:6px;color:var(--ui-text-faint);font-size:11px;font-weight:400}
:root[data-ui="v1"] .ui-task-head>span::before{display:none}
:root[data-ui="v1"] .ui-task-head>span b{color:var(--ui-text-muted);font-size:11px;font-weight:500}
:root[data-ui="v1"] .ui-task-head>span small{color:var(--ui-text-faint);font-size:11px}
:root[data-ui="v1"] .ui-task-head>button{margin-left:0;color:var(--ui-text-faint);font-size:10.5px;font-weight:500}
:root[data-ui="v1"] .ui-task-head .ui-task-detail-toggle{margin-left:auto}
:root[data-ui="v1"] .ui-task-head .ui-task-detail-toggle i{font-style:normal;font-size:10px}
:root[data-ui="v1"] .ui-task-head .ui-task-stop{width:24px;height:24px;min-height:24px;display:grid;place-items:center;padding:0;border-radius:50%;color:var(--ui-text-faint)}
:root[data-ui="v1"] .ui-task-head .ui-task-stop:hover{background:var(--ui-danger-soft);color:var(--ui-danger)}
:root[data-ui="v1"] .ui-task-body{padding:2px 0 0}
:root[data-ui="v1"] .ui-task-meta,
:root[data-ui="v1"] .ui-task-links{display:none}
:root[data-ui="v1"] .ui-task-detail-slot{display:block}
:root[data-ui="v1"] .ui-task-card[data-details-open="false"] .ui-task-detail-slot{display:none!important}
:root[data-ui="v1"] .ui-task-card .work-line{margin:1px 0 5px;padding-left:22px;color:var(--ui-text-faint);font-size:11.5px}
:root[data-ui="v1"] .ui-task-card:has(.ws-step) .work-line{display:none}

:root[data-ui="v1"] .ui-task-card .think-panel{margin:0 0 3px}
:root[data-ui="v1"] .think-panel>summary{min-height:22px;padding:1px 3px;color:var(--ui-text-muted);font-size:10.5px;line-height:19px}
:root[data-ui="v1"] .think-panel>summary::before{content:"\223F";width:16px;height:16px;display:grid;place-items:center;border:1px solid var(--ui-border);border-radius:50%;color:var(--ui-text-faint);font-size:10px}
:root[data-ui="v1"] .think-panel>summary::after{font-size:9px}
:root[data-ui="v1"] .think-panel .think-sum{color:var(--ui-text-faint);font-size:10px}
:root[data-ui="v1"] .think-panel .think-sum::before{margin:0 6px 3px}
:root[data-ui="v1"] .think-body{margin:1px 0 5px 7px;padding:3px 0 3px 19px;border-left:1px solid var(--ui-border);font-size:10.5px;line-height:1.5}

:root[data-ui="v1"] .ui-task-card .work-steps,
:root[data-ui="v1"] .turn-activity>.work-steps{margin:0;border:0;border-radius:0;background:transparent;overflow:visible}
:root[data-ui="v1"] .ui-task-card .work-steps>summary{display:none!important}
:root[data-ui="v1"] .turn-activity>.turn-activity-details>summary{min-height:24px;display:flex!important;align-items:center;gap:6px;padding:2px 3px;color:var(--ui-text-faint);font-size:10.5px;font-weight:500}
:root[data-ui="v1"] .turn-activity>.turn-activity-details>summary::after{content:"\25B8";margin-left:2px;opacity:.65;transition:transform .14s ease}
:root[data-ui="v1"] .turn-activity>.turn-activity-details[open]>summary::after{transform:rotate(90deg)}
:root[data-ui="v1"] .ui-task-card .work-steps .ws-body,
:root[data-ui="v1"] .turn-activity>.work-steps>.ws-body{position:relative;max-height:none;padding:0 0 1px;gap:0;overflow:visible}
:root[data-ui="v1"] .work-steps .ws-body::before{content:"";position:absolute;left:9px;top:5px;bottom:6px;width:1px;background:var(--ui-border);pointer-events:none}
:root[data-ui="v1"] .work-steps .ws-step{
  position:relative;z-index:1;display:grid;grid-template-columns:19px auto minmax(0,1fr) 11px;
  align-items:start;column-gap:5px;min-height:23px;padding:2px;border:0;border-radius:6px;
  color:var(--ui-text-muted);font-size:10.5px;line-height:1.45;cursor:pointer;
}
:root[data-ui="v1"] .work-steps .ws-step:hover{background:var(--ui-surface-subtle)}
:root[data-ui="v1"] .work-steps .ws-step:focus-visible{outline:2px solid var(--ui-accent-ring);outline-offset:1px}
:root[data-ui="v1"] .work-steps .ws-step+.ws-step,
:root[data-ui="v1"] .turn-activity>.work-steps .ws-step+.ws-step{margin-top:3px;padding-top:2px;border-top:0}
:root[data-ui="v1"] .work-steps .ws-dot{width:16px;height:16px;margin:0;background:var(--ui-surface);border:1px solid var(--ui-border);color:var(--ui-text-faint);font-size:7.5px}
:root[data-ui="v1"] .work-steps .kind-skill .ws-dot::before{content:"\2726";font-size:9px}
:root[data-ui="v1"] .work-steps .kind-command .ws-dot::before{content:">_";font-size:6.5px}
:root[data-ui="v1"] .work-steps .kind-file_edit .ws-dot::before{content:"+";font-size:10px}
:root[data-ui="v1"] .work-steps .kind-file_read .ws-dot::before{content:"\25A1";font-size:8px}
:root[data-ui="v1"] .work-steps .kind-research .ws-dot::before{content:"\2315";font-size:9px}
:root[data-ui="v1"] .work-steps .kind-analysis .ws-dot::before{content:"\00B7";font-size:13px}
:root[data-ui="v1"] .work-steps .ws-kind{padding-top:0;color:var(--ui-text-faint);font-size:9.5px;font-weight:500}
:root[data-ui="v1"] .work-steps .ws-copy{grid-column:3;min-width:0;display:flex;align-items:baseline;gap:5px}
:root[data-ui="v1"] .work-steps .ws-txt{min-width:0;padding-top:0;color:var(--ui-text-muted);font-size:10.5px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-ui="v1"] .work-steps .ws-count{min-width:3.4em;text-align:right;font-variant-numeric:tabular-nums}
:root[data-ui="v1"] .work-steps .ws-count.is-empty{visibility:hidden}
:root[data-ui="v1"] .work-steps .kind-command .ws-txt{font-family:inherit;font-size:10.5px;letter-spacing:0}
:root[data-ui="v1"] .work-steps .kind-analysis .ws-kind{display:none}
:root[data-ui="v1"] .work-steps .kind-analysis .ws-copy{grid-column:2/4}
:root[data-ui="v1"] .work-steps .kind-analysis .ws-txt{color:var(--ui-text);font-size:11px}
:root[data-ui="v1"] .work-steps .ws-state,
:root[data-ui="v1"] .work-steps .ws-dur{flex:0 0 auto;padding-top:0;color:var(--ui-text-faint);font-size:9px;font-weight:400}
:root[data-ui="v1"] .work-steps .ws-dur{min-width:4.4em;text-align:right;font-variant-numeric:tabular-nums}
:root[data-ui="v1"] .work-steps .state-done .ws-state{display:none}
:root[data-ui="v1"] .work-steps .ws-chevron{grid-column:4;grid-row:1;width:11px;height:16px;display:grid;place-items:center;color:var(--ui-text-faint);font-size:9px;transition:transform .14s ease}
:root[data-ui="v1"] .work-steps .ws-chevron::before{content:"\25B8"}
:root[data-ui="v1"] .work-steps .ws-step[aria-expanded="true"] .ws-chevron{transform:rotate(90deg)}
:root[data-ui="v1"] .work-steps .ws-detail{
  grid-column:2/-1;margin:4px 3px 3px 0;padding:7px 9px;border:1px solid var(--ui-border);
  border-radius:8px;background:var(--ui-surface-subtle);color:var(--ui-text-muted);font-size:10.5px;line-height:1.45;cursor:text;
}
:root[data-ui="v1"] .work-steps .ws-detail[hidden]{display:none}
:root[data-ui="v1"] .ws-detail-title{margin-bottom:7px;color:var(--ui-text);font-size:11px;font-weight:650}
:root[data-ui="v1"] .ws-detail-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:5px 10px;margin:0}
:root[data-ui="v1"] .ws-detail-grid dt{color:var(--ui-text-faint)}
:root[data-ui="v1"] .ws-detail-grid dd{min-width:0;margin:0;color:var(--ui-text-muted);overflow-wrap:anywhere}
:root[data-ui="v1"] .ws-detail-grid code{padding:1px 5px;border:1px solid var(--ui-border);border-radius:5px;background:var(--ui-surface);color:var(--ui-text);font-size:10.5px}
:root[data-ui="v1"] .ws-command-detail pre{max-height:240px;margin:0;padding:9px 10px;overflow:auto;border:0;border-radius:7px;background:var(--ui-surface);color:var(--ui-text);font:10.5px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
:root[data-ui="v1"] .ws-detail-foot{margin-top:7px;color:var(--ui-text-faint);font-size:9.5px}

@media(max-width:680px){
  :root[data-ui="v1"] .work-steps .ws-step{grid-template-columns:21px auto minmax(0,1fr) 12px;column-gap:6px}
  :root[data-ui="v1"] .work-steps .ws-dur,
  :root[data-ui="v1"] .work-steps .ws-state{display:none}
  :root[data-ui="v1"] .work-steps .ws-chevron{grid-column:4}
  :root[data-ui="v1"] .work-steps .kind-analysis .ws-copy{grid-column:2/4}
  :root[data-ui="v1"] .work-steps .ws-detail{grid-column:2/-1}
}

/* 【2026-09-08 当日两改·老板红批「填满」终裁】行宽问题的最终定案：
   ① 42em-on-p（p 546/其余 829 宽窄不一+气泡内空白）→ 已撤；
   ② 48em 气泡帽（上线半天）→ 与「填满」相悖，亦撤；
   ③ 终态：列宽由 --ui-chat-column 控制（850→1720，填满窗口；K 皮肤三处硬编码 850 已改走 token），
      answer measure --ui-chat-measure → 100% 跟随列宽，气泡 K 皮肤本就 width:100%。
   内容链 mwrap→bubble→answer→p/li 全线 100%，无任何内缩——空白只在窗口超出 1720px 时出现。 */


/* 【2026-09-08 老板红批「这里的内容要显示全」】活动行文字不再单行省略——完整折行显示。
   原 :1111（index.html 内联块）与 :768（.ui-task-card 变体）都是 nowrap+ellipsis；
   本规则 (0,5,0) 高于内联 (0,4,0)、同于 :768 但物理在后 → 全部覆盖。 */
:root[data-ui="v1"] .assistant-turn .work-steps .ws-copy .ws-txt{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}

/* 【2026-09-08 老板新指令】悬停窥详情恢复（此前按旧红批撤过；现要求悬停即看、点击仍可钉住）：
   对详情已存在于 DOM 的行，:hover 期间以作者样式盖过 UA 的 [hidden] 隐藏，移开即收回。 */
/* 【2026-09-10 终裁·老板截图】活动行详情=【点击】展开，悬停窥视撤除（本轮反复以此为准）；
   同页反向指令：正文代码块=悬停看全文、无需点击（见 assistant-answer pre:hover 规则）。 */

/* 【2026-09-09 三改终裁·ZCode式居中】老板确认要 ZCode 式居中窄列：
   列宽 ~960px 居中，左右对称留白，内容/活动/输入框三级同宽对齐。
   旧 850→1720 全宽和 42em-on-p 内缩都错——正解是居中+同宽。 */
:root[data-ui="v1"] .messages>.mwrap{width:min(960px,100%);max-width:none;margin-inline:auto;padding:0}
:root[data-ui="v1"] .msg.assistant .bubble{width:100%;max-width:100%;padding:2px 0 9px}
:root[data-ui="v1"] .msg.assistant .bubble:has(>.ui-task-card){width:100%;max-width:100%;padding:2px 0 9px}
:root[data-ui="v1"] .assistant-turn>.assistant-answer{width:100%;max-width:100%;font-size:13px;line-height:var(--ui-chat-line-height)}

/* 【2026-09-09 老板红批·防跳动】流式期间活动行/正文/图表 DOM 高频变更导致视口上下跳动。
   ① 消息容器启用浏览器原生 scroll anchoring——新增内容在视口上方时不滚动；
   ② 高频活动行不作为锚点；正文保留锚点，上方活动增长时保持当前段落位置；
   ③ _followChatTail 已有 _stick 近底检测，与原生 anchoring 互补不冲突。 */
:root[data-ui="v1"] .messages{overflow-anchor:auto}
:root[data-ui="v1"] .assistant-turn .work-steps,
:root[data-ui="v1"] .assistant-turn .work-steps .ws-body,
:root[data-ui="v1"] .assistant-turn .work-steps .ws-step,
:root[data-ui="v1"] .turn-goal-list{overflow-anchor:none}
:root[data-ui="v1"] .assistant-turn .assistant-answer{overflow-anchor:auto}

/* 【2026-09-09 老板红批·间隔太大】活动流纵向间距压缩——叙述块/活动块/质控块之间的空隙太大 */
:root[data-ui="v1"] .assistant-turn .assistant-answer p{margin:.12em 0 .42em}
:root[data-ui="v1"] .assistant-turn .assistant-answer ul,
:root[data-ui="v1"] .assistant-turn .assistant-answer ol{margin:.2em 0 .4em}
:root[data-ui="v1"] .assistant-turn .turn-activity{margin-bottom:4px}
:root[data-ui="v1"] .assistant-turn .work-steps{margin-bottom:3px}
:root[data-ui="v1"] .assistant-turn .work-steps>.ws-body{gap:1px;padding:2px 0}
:root[data-ui="v1"] .assistant-turn .work-steps .ws-step+.ws-step{padding-top:1px;margin-top:1px}
:root[data-ui="v1"] .assistant-turn .ws-summary{margin:2px 0 3px}
:root[data-ui="v1"] .assistant-turn>.assistant-answer{margin-bottom:4px}
:root[data-ui="v1"] .turn-goal-list .turn-goal-step{padding:1px 0}

/* Activity details open only on explicit click/keyboard input. Hover must not
   override the reader's collapsed state or change the page geometry. */

/* 2026-09-19: readable, restrained controls and research tables. Answer only;
   previews, spreadsheet grids, navigation widths and choice semantics stay separate. */
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md .reply-table-scroll{border:0;border-radius:0;overflow-x:auto;max-width:100%}
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md table{border-collapse:collapse;border:0;border-top:2px solid var(--ui-border-strong,#aeb8c5);border-bottom:2px solid var(--ui-border-strong,#aeb8c5)}
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md table th,
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md table td{border:0;background:transparent;padding:8px 12px;vertical-align:top}
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md table thead{border-bottom:1px solid var(--ui-border-strong,#aeb8c5)}
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md table .reading-number{text-align:right;font-variant-numeric:tabular-nums}
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md table [align="center"]{text-align:center}
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md table [align="right"]{text-align:right}
:root[data-ui="v1"] .assistant-turn>article.assistant-answer.md table [align="left"]{text-align:left}
:root[data-ui="v1"] .assistant-turn .copy-ans,
:root[data-ui="v1"] .assistant-turn .md-code-copy,
:root[data-ui="v1"] .assistant-turn .clarify-actions button{min-height:30px;border-radius:6px;font:inherit;font-size:12px;padding:5px 10px;line-height:1.5}
:root[data-ui="v1"] .assistant-turn .copy-ans{color:var(--ui-text-muted,#526375);background:var(--ui-surface,#fff);border:1px solid var(--ui-border,#d6dce5);opacity:1;display:inline-flex;align-items:center;gap:6px}
:root[data-ui="v1"] .assistant-turn .copy-ans::before{content:'';width:13px;height:13px;display:inline-block;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='8' y='8' width='12' height='13' rx='2'/%3E%3Cpath d='M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h3'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
:root[data-ui="v1"] .assistant-turn .ns-item .ns-title{white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.5}
:root[data-ui="v1"] .assistant-turn .ns-item .ns-desc{color:var(--ui-text-muted,#526375);font-size:11px;line-height:1.5}
:root[data-ui="v1"] .assistant-turn .ws-dur,
:root[data-ui="v1"] .assistant-turn .ws-state,
:root[data-ui="v1"] .assistant-turn .ui-task-elapsed,
:root[data-ui="v1"] .assistant-turn .clarify-desc{color:var(--ui-text-muted,#526375)}
:root[data-ui="v1"] .assistant-turn button:focus-visible{outline:2px solid var(--ui-accent,#326da8);outline-offset:3px}
:root[data-ui="v1"] .assistant-turn button:disabled{cursor:default}
:root[data-ui="v1"] #sendBtn.checking-stop{color:var(--ui-text-muted,#526375);background:var(--ui-surface,#fff);border-color:var(--ui-border-strong,#aeb8c5)}
@media(max-width:640px){
  :root[data-ui="v1"] .assistant-turn .ns-item{min-height:44px}
  :root[data-ui="v1"] .assistant-turn .copy-ans,
  :root[data-ui="v1"] .assistant-turn .clarify-actions button{min-height:44px}
}

/* Final proposal: common header/sidebar icons and readable action surfaces. */
:root[data-ui="v1"] .ui-line-icon{width:15px;height:15px;flex:0 0 15px;vertical-align:middle;pointer-events:none}
:root[data-ui="v1"] .ui-chat-actions .ui-export-entry,:root[data-ui="v1"] .svc-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px}
:root[data-ui="v1"] .ui-turn-terminal-actions{gap:6px;flex-wrap:wrap}
:root[data-ui="v1"] .ui-turn-terminal-detail-body{grid-column:2/-1;min-width:0;margin-top:8px;padding:12px 14px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface-subtle);font-size:13px;line-height:1.7;color:var(--ui-text);overflow-wrap:anywhere}
:root[data-ui="v1"] .ui-turn-terminal-detail-body[hidden]{display:none!important}
:root[data-ui="v1"] .ui-turn-terminal-detail-body p{margin:5px 0 12px;white-space:pre-wrap}
:root[data-ui="v1"] .ui-turn-terminal-detail-body ul{margin:5px 0 12px;padding-left:20px}
:root[data-ui="v1"] .ui-turn-terminal-technical{border-top:1px solid var(--ui-border);padding-top:8px;color:var(--ui-text-muted);font-size:12px}
:root[data-ui="v1"] .ui-turn-terminal-technical summary{cursor:pointer}
:root[data-ui="v1"] .ui-turn-terminal-actions button{min-height:30px;padding:5px 10px;border:1px solid var(--ui-border);border-radius:6px;background:var(--ui-surface);color:var(--ui-text);font-size:12px;line-height:1.5}
:root[data-ui="v1"] .ui-turn-terminal-actions button[data-primary="true"]{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}
:root[data-ui="v1"] .assistant-turn .clarify-card{box-shadow:none;background:var(--ui-surface)}
:root[data-ui="v1"] .assistant-turn .clarify-opt{background:var(--ui-surface);border-color:var(--ui-border);border-radius:6px;padding:8px 10px}
:root[data-ui="v1"] .assistant-turn .clarify-opt.on{background:var(--ui-accent-soft);border-color:var(--ui-accent)}
:root[data-ui="v1"] .assistant-turn .clarify-opt:focus-within{outline:2px solid var(--ui-accent);outline-offset:2px}
:root[data-ui="v1"] .assistant-turn .clarify-opt-desc{color:var(--ui-text-muted);font-size:11px;line-height:1.5}
:root[data-ui="v1"] .assistant-turn .ui-task-head .ui-task-detail-toggle{color:var(--ui-text-muted);font-size:12px;flex-wrap:wrap;max-width:70%;white-space:normal;text-align:right}
:root[data-ui="v1"] .ui-task-category-summary{font-size:11px;line-height:1.5;font-weight:400}
:root[data-ui="v1"] .turn-activity>.turn-activity-details>summary{color:var(--ui-text-muted);font-size:12px;flex-wrap:wrap}
@media(max-width:640px){:root[data-ui="v1"] .ui-turn-terminal-actions button{min-height:44px}:root[data-ui="v1"] .ui-task-category-summary{flex-basis:100%}}

/* Empty conversation: reuse the real composer, including drafts and attachments. */
:root[data-ui="v1"][data-skin="K"] .sidebar>.brand .brand-logo{height:24px;width:auto;max-width:96px;object-fit:contain}
:root[data-ui="v1"] .ui-new-chat-start,:root[data-ui="v1"] .ui-start-actions{display:none}
:root[data-ui="v1"] #centerCol:has(.ui-new-chat-start):not(:has(#messages .msg)){overflow-y:auto}
:root[data-ui="v1"] #centerCol:has(.ui-new-chat-start):not(:has(#messages .msg))::after{content:"";flex:1.25 0 24px}
:root[data-ui="v1"] #centerCol:has(.ui-new-chat-start):not(:has(#messages .msg))>#messages{flex:1 0 24px;padding:0;min-height:24px;overflow:visible}
:root[data-ui="v1"] #centerCol:has(.ui-new-chat-start):not(:has(#messages .msg))>#composerSplit{display:none}
:root[data-ui="v1"] #centerCol:has(.ui-new-chat-start):not(:has(#messages .msg))>.composer{flex:0 0 auto;width:min(680px,100%);max-width:100%;box-sizing:border-box;align-self:center;padding:12px 24px;background:transparent}
:root[data-ui="v1"] #centerCol:not(:has(#messages .msg)) .ui-new-chat-start{display:block;text-align:center;margin-bottom:8px}
:root[data-ui="v1"] .ui-new-chat-start h1{font-size:24px;line-height:1.4;font-weight:600;margin:0 0 12px;letter-spacing:0;color:var(--ui-text)}
:root[data-ui="v1"] .ui-new-chat-start p{font-size:13px;line-height:1.7;color:var(--ui-text-muted);margin:0 0 26px}
:root[data-ui="v1"] .ui-start-project{text-align:left;min-width:0;padding:0 4px}
:root[data-ui="v1"] .ui-start-project .ws-pick{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);border:0;background:transparent;font-size:12px}
:root[data-ui="v1"] .ui-start-project .skill-wrap{max-width:100%;display:inline-block}
:root[data-ui="v1"] .ui-start-project .ws-pop{top:100%;bottom:auto;max-width:calc(100vw - 64px);z-index:210}
:root[data-ui="v1"] #centerCol:not(:has(#messages .msg)) .ui-start-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:18px}
:root[data-ui="v1"] .ui-start-actions button{min-height:32px;padding:6px 12px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text-muted);font-size:12px;cursor:pointer}
:root[data-ui="v1"] .ui-start-actions button:hover{background:var(--ui-accent-soft);color:var(--ui-text)}
:root[data-ui="v1"] .ui-start-actions button:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}
:root[data-ui="v1"] .ui-start-actions small{flex-basis:100%;text-align:center;font-size:11px;color:var(--ui-text-muted);margin-top:2px}
/* Windows overlay buttons occupy the physical top-right corner when inspector is closed. */
:root[data-ui="v1"][data-desktop-chrome="windows"] body.ui-inspector-collapsed>#centerCol>.ui-chat-head{padding-right:calc(146px / var(--ui-fs-zoom,1))}
:root[data-ui="v1"][data-desktop-chrome="windows"] body>#previewAside .ui-inspector-head{padding-right:calc(146px / var(--ui-fs-zoom,1))}
@media(max-width:760px){
  :root[data-ui="v1"] #centerCol:has(.ui-new-chat-start):not(:has(#messages .msg))>.composer{padding:12px 16px}
  :root[data-ui="v1"] .ui-new-chat-start h1{font-size:21px}
  :root[data-ui="v1"] .ui-start-actions button{min-height:44px;padding:8px 12px}
}
@media(max-height:600px){
  :root[data-ui="v1"] #centerCol:has(.ui-new-chat-start):not(:has(#messages .msg))>#messages{flex:0 0 12px;min-height:12px}
  :root[data-ui="v1"] .ui-new-chat-start p{margin-bottom:12px}
}

@media(max-width:960px){
  :root[data-ui="v1"][data-desktop-chrome="windows"] body>#centerCol>.ui-chat-head{padding-right:calc(146px / var(--ui-fs-zoom,1))}
}

/* Project selection remains a compact menu on the new-project landing page. */
:root[data-ui="v1"] .ws-pop{min-width:260px;max-height:360px;overflow-y:auto}
:root[data-ui="v1"] .ws-pop button.ws-item{width:100%;text-align:left;border:0;background:transparent;font:inherit}
:root[data-ui="v1"] .ws-pop button.ws-item:disabled{opacity:.55;cursor:default}
:root[data-ui="v1"] #projectStartInput{width:100%;min-height:82px;box-sizing:border-box;resize:vertical;border:0;outline:none;background:transparent;color:var(--ui-text);font:inherit;line-height:1.6;padding:12px 14px}

:root[data-ui="v1"] .ui-project-start-head{justify-content:flex-start;gap:12px}

/* Keep creation actions reachable even with hundreds of existing projects. */
:root[data-ui="v1"] #wsPop{max-height:min(360px,var(--ws-available-height,60vh))!important;overflow:hidden;box-sizing:border-box}
:root[data-ui="v1"] #wsPop.open{display:flex;flex-direction:column}
:root[data-ui="v1"] #wsPop>.ws-search{flex-shrink:0}
:root[data-ui="v1"] #wsPop>.ws-body{display:flex;flex-direction:column;min-height:0;overflow:hidden}
:root[data-ui="v1"] #wsPop .ws-create-actions,:root[data-ui="v1"] #wsPop .ws-sep{flex-shrink:0}
:root[data-ui="v1"] #wsPop .ws-project-list{min-height:0;overflow-y:auto;overscroll-behavior:contain}

/* Real task counts only. Unknown duration is motion, never a fabricated percentage. */
:root[data-ui="v1"] .ui-task-progress.indeterminate>i{width:24%!important;animation:medhub-task-pending 1.8s ease-in-out infinite!important}
@keyframes medhub-task-pending{0%{transform:translateX(-100%)}100%{transform:translateX(450%)}}
:root[data-ui="v1"] .ui-task-card[data-progress-known="false"] .ui-task-progress:not(.indeterminate)>i{width:0!important}
#steerBtn[hidden],#queueNextBtn[hidden],#steeringStatus[hidden]{display:none!important}
#steeringStatus{font-size:12px;color:var(--text-dim);max-height:160px;overflow:auto;margin:4px 8px 8px}
#steeringStatus summary{width:fit-content;max-width:100%;box-sizing:border-box;margin-inline:auto;padding:5px 10px;line-height:1.5;text-align:center;overflow-wrap:anywhere;cursor:pointer;border-radius:7px}
#steeringStatus summary:hover{background:var(--ui-surface-subtle,#f5f7fa)}
#steeringStatus summary:focus-visible{outline:2px solid var(--ui-accent,#315f8d);outline-offset:-2px}
:root[data-ui="v1"] .composer>#steeringStatus{width:min(var(--ui-chat-column),100%);box-sizing:border-box;margin:0 auto 8px;color:var(--ui-text-muted)}
#steeringStatus details>div{text-align:left;padding:6px 12px;border-top:1px solid var(--ui-border,#e4e8ee)}
#steeringStatus p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 10px}
@media(prefers-reduced-motion:reduce){:root[data-ui="v1"] .ui-task-progress.indeterminate>i{animation:none!important;transform:none!important}}

/* Pending messages stay visible above the single send/stop composer control. */
:root[data-ui="v1"] .composer>.ui-message-queue{height:auto;min-height:0;max-height:none;overflow:hidden;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface);contain:none}
:root[data-ui="v1"] .ui-message-queue-summary{height:auto;min-height:34px;border:0;border-radius:0;box-shadow:none;padding:6px 10px;font-size:12px;gap:10px}
:root[data-ui="v1"] .ui-message-queue-summary>span{flex:1;color:var(--ui-text-muted);font-size:11px}
:root[data-ui="v1"] .ui-message-queue-list{max-height:min(24vh,200px);overflow-y:auto;padding:0 8px 8px}
:root[data-ui="v1"] .ui-message-queue-copy{display:block}
:root[data-ui="v1"] .ui-message-queue-copy>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.5}
:root[data-ui="v1"] .ui-message-queue-copy>small{display:block;font-size:10px;margin-top:2px}
:root[data-ui="v1"] .ui-message-queue-actions>button{font-size:11px;min-height:30px}
:root[data-ui="v1"] .ui-message-queue-actions>button:disabled{opacity:.5;cursor:default}
@media(max-width:760px){:root[data-ui="v1"] .ui-message-queue-summary{flex-wrap:wrap;gap:5px}:root[data-ui="v1"] .ui-message-queue-list{max-height:22vh}}

/* Local academic reading refinement: keep the existing layout and answer scale. */
:root[data-ui="v1"] .assistant-turn .ws-summary-disclosure{white-space:normal;border-left:2px solid var(--ui-border);margin:4px 0 8px;padding-left:12px}
:root[data-ui="v1"] .assistant-turn .ws-summary-disclosure>summary{display:flex;align-items:center;gap:10px;min-height:32px;cursor:pointer;list-style:none;color:var(--ui-text-muted);font-size:12px;line-height:1.6}
:root[data-ui="v1"] .ws-summary-disclosure>summary::-webkit-details-marker{display:none}
:root[data-ui="v1"] .ws-summary-disclosure>summary::after{content:'›';margin-left:auto;padding:0 6px;color:var(--ui-text-muted);font-size:18px;flex:none}
:root[data-ui="v1"] .ws-summary-disclosure[open]>summary::after{transform:rotate(90deg)}
:root[data-ui="v1"] .assistant-turn .ws-summary-disclosure .ws-summary-label{display:inline;margin:0;flex:none;color:var(--ui-accent);font-size:12px;font-weight:600}
:root[data-ui="v1"] .ws-summary-excerpt{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ui-text-muted)}
:root[data-ui="v1"] .ws-summary-disclosure[open] .ws-summary-excerpt{visibility:hidden}
:root[data-ui="v1"] .ws-summary-disclosure .ws-summary-content{padding:2px 20px 8px 0;font-size:13px;line-height:1.8;color:var(--ui-text-muted);overflow-wrap:anywhere}
:root[data-ui="v1"] .ws-summary-disclosure .ws-summary-content p{margin:0 0 6px}
:root[data-ui="v1"] .ws-summary-disclosure>summary:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px;border-radius:4px}
:root[data-ui="v1"] .assistant-turn .work-steps>.ws-body>.ws-batch{border-color:var(--ui-border);background:var(--ui-surface-subtle);color:var(--ui-text-muted);border-radius:6px;margin:2px 0;min-height:34px;padding:6px 10px}
:root[data-ui="v1"] .assistant-turn .work-steps .ws-batch-status{font-size:12px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .assistant-turn .work-steps .ws-batch[data-attention="true"] .ws-batch-status{color:var(--ui-warning,#92600a)}
:root[data-ui="v1"] .assistant-turn .ui-task-head>span b,
:root[data-ui="v1"] .assistant-turn .ui-task-head>span small,
:root[data-ui="v1"] .assistant-turn .ui-task-head>.ui-task-detail-toggle{font-size:12px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .assistant-turn .work-steps .ws-copy .ws-state,
:root[data-ui="v1"] .assistant-turn .work-steps .ws-copy .ws-dur{font-size:11px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .assistant-turn .ui-task-head{min-height:32px;gap:8px}
:root[data-ui="v1"] .ui-message-queue-row{align-items:center;gap:10px;padding:8px 4px}
:root[data-ui="v1"] .ui-message-queue-actions>button{font-size:12px;min-height:32px;border-radius:6px}
:root[data-ui="v1"] .ui-message-queue-actions>button:first-child:not(:disabled){color:var(--ui-accent);background:var(--ui-accent-soft)}
:root[data-ui="v1"] .ui-message-queue-copy>small{font-size:11px;color:var(--ui-text-muted)}
:root[data-ui="v1"] .assistant-turn .turn-file-card{border-radius:6px;min-height:52px}
@media(max-width:760px){
  :root[data-ui="v1"] .ui-message-queue-row{flex-wrap:wrap}
  :root[data-ui="v1"] .ui-message-queue-actions{margin-left:auto}
  :root[data-ui="v1"] .ui-message-queue-actions>button{min-height:40px}
  :root[data-ui="v1"] .ws-summary-disclosure>summary{min-height:40px}
  :root[data-ui="v1"] .assistant-turn .ui-task-category-summary{display:block;white-space:normal;line-height:1.6}
}

/* Academic workspace refinement: shared controls, source-preserving folders. */
:root[data-ui="v1"] .pv-actions .btn,
:root[data-ui="v1"] .ui-chat-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border-radius:6px;box-shadow:none;font-weight:500}
:root[data-ui="v1"] .pv-actions .btn:focus-visible,
:root[data-ui="v1"] #treeBox .trow:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}
:root[data-ui="v1"] .pv-actions .pc-icon,
:root[data-ui="v1"] #treeBox .pc-icon{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
:root[data-ui="v1"] #treeBox .tic,
:root[data-ui="v1"] #treeBox .tfic{display:inline-flex;align-items:center;color:var(--ui-text-muted)}
:root[data-ui="v1"] #treeBox .tdir{min-height:36px;font-weight:600}
:root[data-ui="v1"] #treeBox .tfile{min-height:32px}
:root[data-ui="v1"] #treeBox .tree-folder-kind{font-size:10px;font-weight:400;color:var(--ui-text-muted);margin-left:auto;padding:2px 5px;background:var(--ui-surface-subtle);border-radius:4px;white-space:nowrap;max-width:84px;overflow:hidden;text-overflow:ellipsis}
:root[data-ui="v1"] #treeBox .tfigure-group>summary{min-height:34px}
:root[data-ui="v1"] #treeBox .tfigure-group[open]{border-left:1px solid var(--ui-border)}
/* The file preview uses the same three-line table as the conversation. */
:root[data-ui="v1"][data-skin] .pv-pane>.pv-body.md table{border-collapse:collapse;border:0;border-top:2px solid var(--ui-border-strong,#aeb8c5);border-bottom:2px solid var(--ui-border-strong,#aeb8c5);font-size:13px;line-height:1.6}
:root[data-ui="v1"][data-skin] .pv-pane>.pv-body.md table th,
:root[data-ui="v1"][data-skin] .pv-pane>.pv-body.md table td{border:0;background:transparent;color:var(--ui-text);padding:8px 12px;vertical-align:top}
:root[data-ui="v1"][data-skin] .pv-pane>.pv-body.md table thead{border-bottom:1px solid var(--ui-border-strong,#aeb8c5)}
:root[data-ui="v1"][data-skin] .pv-pane>.pv-body.md table .reading-number{text-align:right;font-variant-numeric:tabular-nums}
:root[data-ui="v1"][data-skin] .pv-pane>.pv-body.md table [align="right"]{text-align:right}
:root[data-ui="v1"][data-skin] .pv-pane>.pv-body.md table [align="center"]{text-align:center}
@media(max-width:760px){
  :root[data-ui="v1"] #treeBox .trow,:root[data-ui="v1"] .pv-actions .btn{min-height:40px}
}

:root[data-ui="v1"] .pv-pane .pv-fn .pv-actions{flex-wrap:wrap;align-items:center;gap:6px}
:root[data-ui="v1"] .pv-pane .pv-actions>.btn,
:root[data-ui="v1"] .pv-pane .pv-actions>.pv-overflow{flex:0 0 auto;white-space:nowrap}
:root[data-ui="v1"] .pv-pane .pv-actions .btn{white-space:nowrap;word-break:normal;overflow-wrap:normal}
:root[data-ui="v1"] .pv-pane .pv-actions .btn-primary{color:#fff;background:var(--ui-accent);border-color:var(--ui-accent)}
:root[data-ui="v1"] .pv-pane>.pv-tabbar .pv-tab{display:flex;align-items:center;gap:6px}
:root[data-ui="v1"] .pv-tab>.pc-icon,
:root[data-ui="v1"] .pv-tab>span:first-child{flex:none}
:root[data-ui="v1"] .pv-tab>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

:root[data-ui="v1"] .pv-pane>.pv-body.md>.pv-fn{top:0;margin:0 0 24px;padding:0 0 12px}

/* Document commands occupy their own row; only the paper below scrolls. */
.pv-document-tools[hidden]{display:none!important}
.pv-document-tools{flex:none;position:relative;z-index:7;padding:6px 12px;border-bottom:1px solid var(--border);background:var(--bg,#fff)}
.pv-document-tools>.pv-fn{position:static;margin:0;padding:0;border:0;background:transparent}
:root[data-ui="v1"] .pv-pane>.pv-document-tools{background:var(--ui-surface);border-color:var(--ui-border)}
:root[data-ui="v1"] .pv-pane>.pv-document-tools>.pv-fn{position:static;top:auto;margin:0;padding:0;border:0;box-shadow:none;background:transparent}
:root[data-ui="v1"] .pv-document-tools .pv-fn .pv-actions{gap:4px;flex-wrap:wrap}
:root[data-ui="v1"] .pv-document-tools .pv-actions .btn{min-height:28px;padding:4px 8px;font-size:12px;line-height:18px;gap:4px;margin-top:0!important;border-radius:5px}
:root[data-ui="v1"] .pv-document-tools .pv-actions .pc-icon{width:14px;height:14px}
:root[data-ui="v1"] .pv-document-tools .pv-overflow-menu{z-index:90}
@media(max-width:760px){
  .pv-document-tools{padding:5px 8px}
  :root[data-ui="v1"] .pv-document-tools .pv-actions .btn{min-height:36px;padding:6px 8px}
}
/* One shared header line across the workspace; Windows follows native overlay. */
@media(min-width:900px){
  :root[data-ui="v1"]{--ui-workspace-head-height:calc(48px / var(--ui-fs-zoom,1))}
  :root[data-ui="v1"][data-desktop-chrome="windows"]{--ui-workspace-head-height:calc(env(titlebar-area-height,32px) / var(--ui-fs-zoom,1))}
  :root[data-ui="v1"][data-skin] .sidebar>.brand,
  :root[data-ui="v1"][data-skin] .center>.ui-chat-head,
  :root[data-ui="v1"][data-skin] .pv-pane>.pv-tabbar,
  :root[data-ui="v1"][data-skin] .pv-treecol>.ui-inspector-head{
    box-sizing:border-box;height:var(--ui-workspace-head-height);min-height:var(--ui-workspace-head-height);max-height:var(--ui-workspace-head-height);flex:0 0 var(--ui-workspace-head-height);padding-top:0;padding-bottom:0;align-items:center;
  }
  :root[data-ui="v1"][data-skin] .sidebar>.brand{align-items:flex-start;justify-content:center}
  :root[data-ui="v1"][data-desktop-chrome="windows"] .ui-thread-heading{gap:0}
  :root[data-ui="v1"][data-desktop-chrome="windows"] .ui-thread-heading strong{font-size:calc(12px / var(--ui-fs-zoom,1));line-height:calc(14px / var(--ui-fs-zoom,1))}
  :root[data-ui="v1"][data-desktop-chrome="windows"] .ui-thread-heading small{font-size:calc(10px / var(--ui-fs-zoom,1));line-height:calc(12px / var(--ui-fs-zoom,1));margin-top:0}
  :root[data-ui="v1"][data-desktop-chrome="windows"][data-skin] .sidebar>.brand .brand-logo{height:calc(24px / var(--ui-fs-zoom,1))}
  :root[data-ui="v1"][data-desktop-chrome="windows"] .ui-chat-head .ui-chat-actions>button,
  :root[data-ui="v1"][data-desktop-chrome="windows"] .ui-chat-head .ui-export-entry,
  :root[data-ui="v1"][data-desktop-chrome="windows"] .ui-inspector-head>button,
  :root[data-ui="v1"][data-desktop-chrome="windows"] .pv-tabbar .pvd-close{height:calc(26px / var(--ui-fs-zoom,1));min-height:0;padding-top:0;padding-bottom:0}
  :root[data-ui="v1"][data-desktop-chrome="windows"] .pv-tabbar .pv-tab,
  :root[data-ui="v1"][data-desktop-chrome="windows"] .ui-inspector-head strong{font-size:calc(12px / var(--ui-fs-zoom,1))}
}

/* Research asset navigation: preserve the title and usable tabs in narrow panes. */
.ui-assets-head{flex-wrap:wrap}
.ui-assets-title{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.ui-assets-head .assets-tabs{min-width:0;max-width:100%;overflow-x:auto;flex-shrink:0;margin-left:0;padding:2px 0}
@media(max-width:760px){
  :root[data-ui="v1"] .center>.cv-head.ui-assets-head{padding-left:52px;gap:6px}
  .ui-assets-head .assets-tabs{flex-basis:100%}
  .ui-assets-head .assets-tabs .atab{flex-shrink:0}
}
/* Viewed-image receipts: compact previews, independent of document styling. */
:root[data-ui="v1"] .work-steps>.ws-body>button.ws-batch[data-image-group="true"]{border:0;background:transparent;min-height:26px;padding:3px 0;color:var(--muted,#6b7280);width:auto;border-radius:0}
.work-steps .ws-image-strip{display:flex;gap:8px;flex-wrap:wrap;padding:5px 0}
.work-steps .ws-image-thumb{display:flex;flex-direction:column;width:88px;gap:4px;color:var(--muted,#6b7280);text-decoration:none;font-size:10px;line-height:1.4}
.work-steps .ws-image-thumb img{display:block;width:88px;height:66px;object-fit:contain;background:#fff;border:1px solid var(--border,#d9dfe8);border-radius:7px}
.work-steps .ws-image-thumb span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.work-steps .ws-image-thumb:hover img,.work-steps .ws-image-thumb:focus-visible img{border-color:var(--accent,#2c68a0);box-shadow:0 0 0 2px #2c68a01a}
.work-steps .ws-image-note{font-size:10px;color:var(--muted,#6b7280);line-height:1.5;margin-top:3px}
.work-steps .ws-batch-images{padding:3px 0 8px 24px}
.work-steps .ws-batch-images[hidden]{display:none}
.work-steps .ws-image-detail{padding:7px 0 8px 24px;background:transparent;border:0}
.work-steps .ws-file-detail{padding:6px 0 8px 24px;background:transparent;border:0}
.work-steps .ws-file-strip{display:flex;flex-direction:column;gap:6px;max-width:560px;padding:5px 0}
.work-steps .ws-file-link{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 11px;border:1px solid var(--border,#d9dfe8);border-radius:8px;background:var(--surface,#fff);color:inherit;text-decoration:none}
.work-steps .ws-file-link:hover,.work-steps .ws-file-link:focus-visible{border-color:var(--accent,#2c68a0);background:#2c68a008}
.work-steps .ws-file-type{font-size:9px;font-weight:600;color:var(--accent,#2c68a0);min-width:34px;text-align:center}
.work-steps .ws-file-info{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.work-steps .ws-file-info strong{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.work-steps .ws-file-info small{font-size:10px;color:var(--muted,#6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.work-steps .ws-file-open{font-size:11px;color:var(--accent,#2c68a0);flex-shrink:0}

/* Pointer ownership stays on the send button during asynchronous icon updates. */
#sendBtn > *{pointer-events:none}
