/* ============================================================
   智导 · 设计规范 v1（ui.css）
   新界面只用这里的变量和 u- 开头的组件类；旧样式在 style.css，逐页迁移后删除。
   原则：一个品牌色 + 中性灰 + 三个状态色；靠留白、字重、对齐分层；阴影只给浮层；无渐变、无装饰动画。
   ============================================================ */
:root{
  /* 颜色：文字与界面 */
  --u-ink:#1d1d1f;        /* 主要文字 */
  --u-ink-2:#515154;      /* 次要文字 */
  --u-ink-3:#86868b;      /* 辅助说明（最小 12px） */
  --u-ink-4:#b4b4b9;      /* 占位、禁用 */
  --u-line:#e6e6ea;       /* 分隔线、卡片边框 */
  --u-line-2:#d2d2d7;     /* 输入框边框 */
  --u-bg:#f5f5f7;         /* 页面底色 */
  --u-surface:#ffffff;    /* 卡片、面板 */
  --u-fill:#f0f0f3;       /* 次级填充（标签、悬停） */
  --u-fill-2:#e8e8ed;
  /* 颜色：品牌与状态（状态色只用于表达状态，不做装饰） */
  --u-blue:#0066cc;
  --u-blue-press:#0055ad;
  --u-blue-soft:#eaf2fc;
  --u-green:#1e7e34;  --u-green-soft:#e9f5ec;
  --u-amber:#9a6200;  --u-amber-soft:#fdf3e0;
  --u-red:#c9271c;    --u-red-soft:#fdecea;
  /* 字号：只有这 6 级 */
  --u-fs-12:12px; --u-fs-14:14px; --u-fs-15:15px; --u-fs-17:17px; --u-fs-22:22px; --u-fs-28:28px;
  /* 间距：4 的倍数 */
  --u-s1:4px; --u-s2:8px; --u-s3:12px; --u-s4:16px; --u-s5:20px; --u-s6:24px; --u-s8:32px; --u-s10:40px;
  /* 圆角：3 级 */
  --u-r-s:6px; --u-r-m:10px; --u-r-l:14px;
  /* 阴影：仅浮层使用 */
  --u-shadow:0 12px 32px rgba(0,0,0,.12),0 2px 6px rgba(0,0,0,.06);
  --u-ease:cubic-bezier(.25,.1,.25,1);
  --u-font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;
}

/* ---------- 图标：统一线性图标（ui.js 的 icon()） ---------- */
.u-ico{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.u-ico.s{width:14px;height:14px}.u-ico.l{width:18px;height:18px}

/* ---------- 应用外壳 ---------- */
.app{display:grid;grid-template-columns:216px minmax(0,1fr) 0;grid-template-rows:52px minmax(0,1fr);height:100%;background:var(--u-bg);color:var(--u-ink);font-family:var(--u-font);font-size:var(--u-fs-14);line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:0}
.app.log-open{grid-template-columns:216px minmax(0,1fr) 340px}
.app button{font-family:inherit}
.app ::selection{background:#cfe3fa}

/* 侧栏：分组导航 */
.app-nav{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;background:#fbfbfd;border-right:1px solid var(--u-line);min-height:0}
/* 侧栏顶部放客户的企业名，产品名退到第二行 */
.app-brand{height:52px;flex:none;display:flex;align-items:center;gap:10px;padding:0 var(--u-s3);border-bottom:1px solid var(--u-line)}
.app-logo{flex:none;width:28px;height:28px;border-radius:var(--u-r-s);background:var(--u-ink);color:#fff;font-size:var(--u-fs-14);font-weight:600;line-height:28px;text-align:center}
.app-brand-t{min-width:0;line-height:1.3}
.app-brand-t b{display:block;font-size:var(--u-fs-14);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-brand-t small{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-nav-scroll{flex:1;min-height:0;overflow:auto;padding:var(--u-s1) var(--u-s2) var(--u-s3)}
.app-nav h6{margin:var(--u-s4) var(--u-s2) var(--u-s1);font-size:var(--u-fs-12);font-weight:500;color:var(--u-ink-3)}
.app-nav h6:first-child{margin-top:var(--u-s2)}
.app-nav .u-nv{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 var(--u-s2);border:0;border-radius:var(--u-r-s);background:none;color:var(--u-ink-2);font-size:var(--u-fs-14);text-align:left;cursor:pointer;transition:background .15s var(--u-ease),color .15s var(--u-ease)}
.app-nav .u-nv:hover{background:var(--u-fill);color:var(--u-ink)}
.app-nav .u-nv.on{background:var(--u-fill-2);color:var(--u-ink);font-weight:600}
.app-nav .u-nv .u-ico{color:var(--u-ink-3)}
.app-nav .u-nv.on .u-ico{color:var(--u-blue)}
.app-nav .u-nv span.t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-nav .u-nv .u-nb{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--u-fill-2);color:var(--u-ink-2);font-size:var(--u-fs-12);font-weight:600;line-height:18px;text-align:center;font-variant-numeric:tabular-nums}
.app-nav .u-nv .u-nb.attn{background:var(--u-red);color:#fff}
.app-nav-foot{flex:none;padding:var(--u-s2);border-top:1px solid var(--u-line)}

/* 顶栏 */
.app-top{grid-column:2/4;grid-row:1;display:flex;align-items:center;gap:var(--u-s4);padding:0 var(--u-s5);background:var(--u-surface);border-bottom:1px solid var(--u-line);min-width:0}
.app-where{min-width:0;display:flex;align-items:baseline;gap:var(--u-s2);font-size:var(--u-fs-14);white-space:nowrap}
.app-where span{color:var(--u-ink-3)}
.app-where span::after{content:"/";margin-left:var(--u-s2);color:var(--u-ink-4)}
.app-where b{font-weight:600}
.app-top .u-sp{flex:1}
.app-stat{display:flex;gap:var(--u-s5);font-size:var(--u-fs-14);color:var(--u-ink-2);white-space:nowrap}
.app-stat button{border:0;background:none;color:inherit;font-size:inherit;cursor:pointer;padding:0}
.app-stat button:hover{color:var(--u-ink)}
.app-stat b{color:var(--u-ink);font-weight:600;font-variant-numeric:tabular-nums}
.app-stat .attn b{color:var(--u-red)}
/* 演示模式的加速时钟：只在演示企业中出现 */
.app-demo{display:flex;align-items:center;gap:var(--u-s2);padding:3px 4px 3px 10px;border:1px solid var(--u-line);border-radius:var(--u-r-m);font-size:var(--u-fs-12);color:var(--u-ink-2);white-space:nowrap}
.app-demo b{font-variant-numeric:tabular-nums;color:var(--u-ink);font-weight:600}
.app-demo .u-seg button{height:22px;padding:0 8px}
/* AI 连接状态（由 ai.js 注入 .ai-pill） */
:is(.app,.wz,.hm) .ai-pill{display:inline-flex;align-items:center;gap:6px;height:28px;margin:0;padding:0 10px;border:1px solid var(--u-line);border-radius:var(--u-r-m);background:var(--u-surface);box-shadow:none;font-size:var(--u-fs-12);color:var(--u-ink-2);white-space:nowrap;animation:none}
:is(.app,.wz,.hm) .ai-pill b{font-weight:500;color:var(--u-ink)}
:is(.app,.wz,.hm) .ai-pill .dim{color:var(--u-blue)}
:is(.app,.wz,.hm) .ai-pill .pulse{width:7px;height:7px;border-radius:50%;background:var(--u-ink-4);box-shadow:none;animation:none}
:is(.app,.wz,.hm) .ai-pill.on .pulse{background:var(--u-green)}
:is(.app,.wz,.hm) .ai-pill.off .pulse{background:var(--u-amber)}

/* 主区域 */
.app-main{grid-column:2;grid-row:2;position:relative;overflow:hidden;min-width:0;min-height:0;background:var(--u-bg)}
/* 尚未迁移的旧页面：先统一字体与主色，去掉入场动画（逐页迁移后删除本段） */
.app-main .page{animation:none;font-family:var(--u-font)}
.app-main{--c1:#0066cc;--c2:#0066cc;--c3:#0066cc;--bg:#f5f5f7;--line:#e6e6ea;--line2:#d2d2d7;--txt:#1d1d1f;--ok:#1e7e34;--warn:#9a6200;--bad:#c9271c}

/* 动态记录（右侧，可收起） */
.app-log{grid-column:3;grid-row:2;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--u-surface);border-left:1px solid var(--u-line);overflow:hidden}
.app:not(.log-open) .app-log{display:none}
.app-log-hd{flex:none;display:flex;align-items:center;gap:var(--u-s2);height:44px;padding:0 var(--u-s3) 0 var(--u-s4);border-bottom:1px solid var(--u-line)}
.app-log-hd b{font-size:var(--u-fs-14);font-weight:600;flex:1}
.u-log{flex:1;min-height:0;overflow:auto;padding:var(--u-s2) var(--u-s4) var(--u-s4)}
.u-log .u-ev{display:grid;grid-template-columns:8px minmax(0,1fr);gap:10px;padding:var(--u-s2) 0;border-bottom:1px solid var(--u-fill)}
.u-log .u-ev:last-child{border-bottom:0}
.u-log .u-ev .u-dot{width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--u-ink-4)}
.u-log .u-ev .u-dot.ok{background:var(--u-green)}.u-log .u-ev .u-dot.warn{background:var(--u-amber)}.u-log .u-ev .u-dot.bad{background:var(--u-red)}.u-log .u-ev .u-dot.info{background:var(--u-blue)}
.u-log .u-ev .u-t{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3);font-variant-numeric:tabular-nums}
.u-log .u-ev .u-b{font-size:var(--u-fs-14);color:var(--u-ink-2);word-break:break-word}
.u-log .u-ev .u-b b{color:var(--u-ink);font-weight:500}
.u-log .u-ev .u-b a,.u-log .u-ev .u-b .lnk{color:var(--u-blue);cursor:pointer;text-decoration:none}
.u-log .u-empty{padding:var(--u-s8) 0;text-align:center;color:var(--u-ink-3);font-size:var(--u-fs-14)}

/* ---------- 基础组件 ---------- */
.u-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 14px;border:1px solid var(--u-line-2);border-radius:var(--u-r-m);background:var(--u-surface);color:var(--u-ink);font-size:var(--u-fs-14);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:background .15s var(--u-ease),border-color .15s var(--u-ease)}
.u-btn:hover{background:var(--u-fill)}
.u-btn:active{background:var(--u-fill-2)}
.u-btn.pri{border-color:var(--u-blue);background:var(--u-blue);color:#fff}
.u-btn.pri:hover{background:var(--u-blue-press);border-color:var(--u-blue-press)}
.u-btn.quiet{border-color:transparent;background:none;color:var(--u-blue)}
.u-btn.quiet:hover{background:var(--u-blue-soft)}
.u-btn.sm{height:28px;padding:0 10px}
.u-btn.icon{width:28px;height:28px;padding:0;border-color:transparent;background:none;color:var(--u-ink-2)}
.u-btn.icon:hover{background:var(--u-fill)}
.u-btn:disabled{opacity:.45;cursor:default}
.u-btn:focus-visible,.u-input:focus-visible,.app-nav .u-nv:focus-visible,.u-opt:focus-visible{outline:2px solid var(--u-blue);outline-offset:2px}

.u-input{width:100%;padding:8px 12px;border:1px solid var(--u-line-2);border-radius:var(--u-r-m);background:var(--u-surface);color:var(--u-ink);font:inherit;font-size:var(--u-fs-14);line-height:1.5;outline:none;box-shadow:none;transition:border-color .15s var(--u-ease)}
.u-input::placeholder{color:var(--u-ink-4)}
.u-input:focus{border-color:var(--u-blue);box-shadow:0 0 0 3px rgba(0,102,204,.14)}
textarea.u-input{resize:none}

.u-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:var(--u-r-s);background:var(--u-fill);color:var(--u-ink-2);font-size:var(--u-fs-12);font-weight:500;white-space:nowrap}
.u-tag.ok{background:var(--u-green-soft);color:var(--u-green)}
.u-tag.warn{background:var(--u-amber-soft);color:var(--u-amber)}
.u-tag.bad{background:var(--u-red-soft);color:var(--u-red)}
.u-tag.info{background:var(--u-blue-soft);color:var(--u-blue)}

.u-seg{display:inline-flex;padding:2px;border-radius:var(--u-r-s);background:var(--u-fill)}
.u-seg button{height:24px;padding:0 10px;border:0;border-radius:4px;background:none;color:var(--u-ink-2);font-size:var(--u-fs-12);cursor:pointer}
.u-seg button.on{background:var(--u-surface);color:var(--u-ink);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.08)}

.u-card{background:var(--u-surface);border:1px solid var(--u-line);border-radius:var(--u-r-l)}
.u-check{display:inline-flex;align-items:center;gap:6px;font-size:var(--u-fs-14);color:var(--u-ink-2);cursor:pointer;user-select:none}
.u-check input{width:14px;height:14px;margin:0;padding:0;accent-color:var(--u-blue)}
.u-num{font-variant-numeric:tabular-nums}
.u-muted{color:var(--u-ink-3)}
.u-link{color:var(--u-blue);cursor:pointer;text-decoration:none;border:0;background:none;padding:0;font-size:inherit}
.u-link:hover{text-decoration:underline}

/* 对话框（替代原生 prompt / confirm） */
.u-mask{position:fixed;inset:0;z-index:985;display:flex;align-items:center;justify-content:center;padding:var(--u-s5);background:rgba(0,0,0,.28);font-family:var(--u-font);animation:u-fade .15s var(--u-ease)}
.u-dialog{width:440px;max-width:100%;padding:var(--u-s6);border-radius:var(--u-r-l);background:var(--u-surface);box-shadow:var(--u-shadow);color:var(--u-ink)}
.u-dialog h3{margin:0 0 var(--u-s2);font-size:var(--u-fs-17);font-weight:600}
.u-dialog p{margin:0 0 var(--u-s4);font-size:var(--u-fs-14);color:var(--u-ink-2);line-height:1.6;white-space:pre-line}
.u-dialog .acts{display:flex;justify-content:flex-end;gap:var(--u-s2);margin-top:var(--u-s5)}
@keyframes u-fade{from{opacity:0}to{opacity:1}}

/* ---------- 工作台 ---------- */
.ws{position:absolute;inset:0;overflow:auto}
.ws-in{max-width:1120px;margin:0 auto;padding:var(--u-s8) var(--u-s8) var(--u-s10)}
.ws-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--u-s4);margin-bottom:var(--u-s5)}
.ws-hd h1{margin:0;font-size:var(--u-fs-28);font-weight:600;letter-spacing:-.2px;line-height:1.2}
.ws-hd p{margin:var(--u-s1) 0 0;font-size:var(--u-fs-14);color:var(--u-ink-3)}

/* 待我处理 */
.ws-todo:not(:empty){margin-bottom:var(--u-s5)}
.ws-todo .ws-sec{margin-top:0}
.td{padding:0 var(--u-s5)}
.td-row{display:flex;align-items:center;gap:var(--u-s3);padding:var(--u-s3) 0;border-bottom:1px solid var(--u-fill)}
.td-row:last-child{border-bottom:0}
.td-row .u-tag{flex:none}
.td-tt{flex:1;min-width:0}
.td-tt b{display:block;font-size:var(--u-fs-14);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-tt small{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-none{padding:var(--u-s3) var(--u-s4);border-radius:var(--u-r-m);background:var(--u-fill);font-size:var(--u-fs-14);color:var(--u-ink-3)}

/* 下达指令 */
.ws-compose{padding:var(--u-s4);margin-bottom:var(--u-s4)}
.ws-compose textarea{border:0;padding:var(--u-s1) var(--u-s1) var(--u-s2);font-size:var(--u-fs-15);box-shadow:none}
.ws-compose textarea:focus{box-shadow:none}
.ws-compose .ws-bar{display:flex;align-items:center;gap:var(--u-s3);padding-top:var(--u-s3);border-top:1px solid var(--u-fill)}
.ws-compose .ws-bar .u-sp{flex:1}
.ws-quick{display:flex;flex-wrap:wrap;align-items:center;gap:var(--u-s2);margin-bottom:var(--u-s6);font-size:var(--u-fs-12);color:var(--u-ink-3)}
.ws-quick button{height:26px;padding:0 10px;border:1px solid var(--u-line);border-radius:13px;background:var(--u-surface);color:var(--u-ink-2);font-size:var(--u-fs-12);cursor:pointer;transition:border-color .15s var(--u-ease),color .15s var(--u-ease)}
.ws-quick button:hover{border-color:var(--u-line-2);color:var(--u-ink)}

/* 提示条：未连接 AI / 待审批 */
.ws-note{display:flex;align-items:center;gap:var(--u-s3);padding:10px var(--u-s4);margin-bottom:var(--u-s3);border-radius:var(--u-r-m);background:var(--u-fill);font-size:var(--u-fs-14);color:var(--u-ink-2)}
.ws-note .u-sp{flex:1}
.ws-note.attn{background:var(--u-amber-soft);color:var(--u-amber)}
.ws-note.attn b{font-weight:600}
.ws-sec{display:flex;align-items:baseline;justify-content:space-between;margin:var(--u-s6) 0 var(--u-s3)}
.ws-sec h2{margin:0;font-size:var(--u-fs-17);font-weight:600}
.ws-sec span{font-size:var(--u-fs-12);color:var(--u-ink-3)}

/* 空状态 */
.ws-empty{padding:var(--u-s10) var(--u-s8);text-align:center}
.ws-empty h2{margin:0 0 var(--u-s2);font-size:var(--u-fs-17);font-weight:600}
.ws-empty>p{margin:0 auto var(--u-s8);max-width:460px;font-size:var(--u-fs-14);color:var(--u-ink-3)}
.ws-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--u-s6);max-width:760px;margin:0 auto;text-align:left}
.ws-steps div{padding-top:var(--u-s3);border-top:1px solid var(--u-line)}
.ws-steps i{display:block;font-style:normal;font-size:var(--u-fs-12);color:var(--u-ink-3);font-variant-numeric:tabular-nums}
.ws-steps b{display:block;margin:2px 0 var(--u-s1);font-size:var(--u-fs-15);font-weight:600}
.ws-steps span{font-size:var(--u-fs-14);color:var(--u-ink-2);line-height:1.6}

/* 指令面板 */
.cmd{margin-bottom:var(--u-s3);overflow:hidden}
.cmd-hd{display:flex;align-items:center;gap:var(--u-s3);padding:var(--u-s4) var(--u-s5);cursor:pointer;user-select:none}
.cmd-hd:hover{background:#fafafc}
.cmd-num{flex:none;font-size:var(--u-fs-14);color:var(--u-ink-3);font-variant-numeric:tabular-nums}
.cmd-tt{flex:1;min-width:0}
.cmd-tt b{display:block;font-size:var(--u-fs-15);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmd.open .cmd-tt b{white-space:normal}
.cmd-tt small{display:block;margin-top:2px;font-size:var(--u-fs-12);color:var(--u-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmd-hd .u-fold{color:var(--u-ink-4);transition:transform .2s var(--u-ease)}
.cmd.open .cmd-hd .u-fold{transform:rotate(180deg)}
.cmd-bd{padding:0 var(--u-s5) var(--u-s5)}
.cmd-goal{margin:0 0 var(--u-s4);font-size:var(--u-fs-14);color:var(--u-ink-2)}
.cmd.fin .cmd-tt b{color:var(--u-ink-2);font-weight:500}

/* 9 段进度：细条 + 当前阶段名，不用图标 */
.u-steps{display:grid;grid-template-columns:repeat(9,1fr);gap:4px;margin:0 0 var(--u-s5)}
.u-steps div{min-width:0}
.u-steps i{display:block;height:3px;border-radius:2px;background:var(--u-fill-2)}
.u-steps span{display:block;margin-top:6px;font-size:var(--u-fs-12);color:var(--u-ink-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-steps .done i{background:var(--u-blue)}
.u-steps .done span{color:var(--u-ink-3)}
.u-steps .active i{background:var(--u-blue)}
.u-steps .active span{color:var(--u-ink);font-weight:600}
.u-steps .active.gate i{background:var(--u-amber)}
.u-steps .skip i{background:var(--u-fill)}
.u-steps .skip span{color:var(--u-ink-4);text-decoration:line-through}
.cmd-hd .u-steps{width:180px;flex:none;margin:0;gap:3px}
.cmd-hd .u-steps span{display:none}

/* 进行中提示 */
.cmd-run{display:flex;align-items:center;gap:var(--u-s2);padding:var(--u-s3) 0;font-size:var(--u-fs-14);color:var(--u-ink-2)}
.cmd-run .spin{width:14px;height:14px;flex:none;border:2px solid var(--u-fill-2);border-top-color:var(--u-blue);border-radius:50%;animation:u-spin .8s linear infinite}
@keyframes u-spin{to{transform:rotate(360deg)}}

/* 方案决策 */
.dv-lead{margin:0 0 var(--u-s4);font-size:var(--u-fs-15);color:var(--u-ink);line-height:1.6}
.dv-opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--u-s3)}
.u-opt{position:relative;display:block;width:100%;padding:var(--u-s4);border:1px solid var(--u-line);border-radius:var(--u-r-m);background:var(--u-surface);color:inherit;font:inherit;text-align:left}
.u-opt.pickable{cursor:pointer;transition:border-color .15s var(--u-ease)}
.u-opt.pickable:hover{border-color:var(--u-line-2)}
.u-opt.on{border-color:var(--u-blue);box-shadow:inset 0 0 0 1px var(--u-blue)}
.u-opt .u-hd{display:flex;align-items:center;gap:var(--u-s2);margin-bottom:var(--u-s2)}
.u-opt .u-hd b{flex:1;min-width:0;font-size:var(--u-fs-15);font-weight:600}
.u-opt .u-hd em{font-style:normal;color:var(--u-ink-3);font-weight:400;margin-right:6px}
.u-opt p{margin:0 0 var(--u-s3);font-size:var(--u-fs-14);color:var(--u-ink-2);line-height:1.6}
.u-opt dl{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--u-s2);margin:0;padding-top:var(--u-s3);border-top:1px solid var(--u-fill)}
.u-opt dt{font-size:var(--u-fs-12);color:var(--u-ink-3)}
.u-opt dd{margin:2px 0 0;font-size:var(--u-fs-14);font-weight:500;color:var(--u-ink)}
.u-opt .risk{margin-top:var(--u-s3);font-size:var(--u-fs-12);color:var(--u-ink-3);line-height:1.5}
.u-opt .risk b{font-weight:500;color:var(--u-ink-2)}
.dv-sup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--u-s6);margin-top:var(--u-s5);padding-top:var(--u-s5);border-top:1px solid var(--u-line)}
.dv-sup h5{display:flex;align-items:center;gap:var(--u-s2);margin:0 0 var(--u-s2);font-size:var(--u-fs-14);font-weight:600}
.dv-sup h5 small{font-size:var(--u-fs-12);font-weight:400;color:var(--u-ink-3)}
.dv-sup p{margin:0;font-size:var(--u-fs-14);color:var(--u-ink-2);line-height:1.6}
.dv-sup ul{margin:var(--u-s2) 0 0;padding:0;list-style:none}
.dv-sup li{position:relative;padding-left:12px;font-size:var(--u-fs-12);color:var(--u-ink-3);line-height:1.7}
.dv-sup li::before{content:"";position:absolute;left:0;top:9px;width:4px;height:4px;border-radius:50%;background:var(--u-ink-4)}
.dv-score{display:flex;align-items:baseline;gap:var(--u-s2);margin-bottom:var(--u-s2)}
.dv-score b{font-size:var(--u-fs-22);font-weight:600;font-variant-numeric:tabular-nums;line-height:1}
.dv-score small{font-size:var(--u-fs-12);color:var(--u-ink-3)}
.dv-dims{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--u-s2) var(--u-s3);margin-top:var(--u-s3)}
.dv-dims span{display:flex;justify-content:space-between;gap:var(--u-s2);font-size:var(--u-fs-12);color:var(--u-ink-3)}
.dv-dims b{font-weight:500;color:var(--u-ink);font-variant-numeric:tabular-nums}
.dv-dims .low b{color:var(--u-amber)}
.dv-bar{display:flex;align-items:center;gap:var(--u-s3);margin-top:var(--u-s5);padding:var(--u-s3) var(--u-s4);border-radius:var(--u-r-m);background:var(--u-fill)}
.dv-bar div{flex:1;min-width:0;font-size:var(--u-fs-14);color:var(--u-ink-2)}
.dv-bar div b{color:var(--u-ink);font-weight:600}
.dv-done{display:flex;align-items:center;gap:var(--u-s3);padding:var(--u-s3) 0;margin-bottom:var(--u-s2);font-size:var(--u-fs-14);color:var(--u-ink-2);border-bottom:1px solid var(--u-fill)}
.dv-done b{color:var(--u-ink);font-weight:600}
.dv-done .u-sp{flex:1}

/* 任务表 */
.u-table{width:100%;border-collapse:collapse;table-layout:fixed}
.u-table th{padding:var(--u-s2) var(--u-s3) var(--u-s2) 0;border-bottom:1px solid var(--u-line);font-size:var(--u-fs-12);font-weight:500;color:var(--u-ink-3);text-align:left;white-space:nowrap}
.u-table td{padding:var(--u-s3) var(--u-s3) var(--u-s3) 0;border-bottom:1px solid var(--u-fill);font-size:var(--u-fs-14);vertical-align:top;overflow:hidden}
.cmd .u-table th:nth-child(1){width:32%}.cmd .u-table th:nth-child(2){width:14%}.cmd .u-table th:nth-child(3){width:14%}.cmd .u-table th:nth-child(4){width:18%}.cmd .u-table th:nth-child(5){width:10%}.cmd .u-table th:nth-child(6){width:12%}
.u-table tr:last-child td{border-bottom:0}
.u-table tbody tr[data-t]{cursor:pointer}
.u-table tbody tr[data-t]:hover td{background:#fafafc}
.u-table tr.flash td{animation:u-flash 1s var(--u-ease)}
@keyframes u-flash{from{background:var(--u-blue-soft)}to{background:transparent}}
.u-table .u-t1{display:block;font-weight:500;color:var(--u-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-table .u-t2{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-table .u-own{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;max-width:100%}
.u-table .u-own:hover .u-t1{color:var(--u-blue)}
.u-prog{display:flex;align-items:center;gap:var(--u-s2)}
.u-prog .u-pg{flex:1;height:3px;border-radius:2px;background:var(--u-fill-2);overflow:hidden}
.u-prog .u-pg i{display:block;height:100%;border-radius:2px;background:var(--u-blue);transition:width .4s var(--u-ease)}
.u-prog.warn .u-pg i{background:var(--u-amber)}
.u-prog.done .u-pg i{background:var(--u-green)}
.u-score b{font-weight:600;font-variant-numeric:tabular-nums}
.u-score small{color:var(--u-ink-3);font-size:var(--u-fs-12)}
.u-score.no b{color:var(--u-red)}
.u-docs{display:inline-flex;gap:2px}
.u-docs button{white-space:nowrap;height:24px;padding:0 7px;border:1px solid var(--u-line);border-radius:var(--u-r-s);background:var(--u-surface);color:var(--u-ink-2);font-size:var(--u-fs-12);cursor:pointer}
.u-docs button:hover{border-color:var(--u-blue);color:var(--u-blue)}
.cmd-ft{display:flex;align-items:center;gap:var(--u-s4);margin-top:var(--u-s4);padding-top:var(--u-s4);border-top:1px solid var(--u-line);font-size:var(--u-fs-14);color:var(--u-ink-2)}
.cmd-ft b{color:var(--u-ink);font-weight:600;font-variant-numeric:tabular-nums}
.cmd-ft .u-sp{flex:1}
.cmd-acc{margin-top:var(--u-s3);font-size:var(--u-fs-14);color:var(--u-ink-2);line-height:1.6}
.cmd-acc b{color:var(--u-ink);font-weight:600}

/* ---------- 详情弹窗（指令详情；任务详情迁移后共用） ---------- */
.u-btn.danger{color:var(--u-red)}
.u-btn.danger:hover{background:var(--u-red-soft);border-color:var(--u-red)}
.modal.u-modal{display:flex;flex-direction:column;width:920px;max-width:94vw;max-height:88vh;padding:0;overflow:hidden;border:0;border-radius:var(--u-r-l);background:var(--u-surface);box-shadow:var(--u-shadow);color:var(--u-ink);font-family:var(--u-font);font-size:var(--u-fs-14);line-height:1.5;animation:u-fade .15s var(--u-ease)}
.u-modal button{font-family:inherit}
.u-modal>.hd{flex:none;display:flex;align-items:flex-start;gap:var(--u-s3);padding:var(--u-s5) var(--u-s5) var(--u-s4) var(--u-s6);border-bottom:1px solid var(--u-line)}
.u-modal>.hd .cmd-num{padding-top:3px}
.u-modal>.hd .tt{flex:1;min-width:0}
.u-modal>.hd h3{margin:0;font-size:var(--u-fs-17);font-weight:600;line-height:1.4}
.u-modal>.hd small{display:block;margin-top:2px;font-size:var(--u-fs-12);color:var(--u-ink-3)}
.u-modal>.bd{flex:1;min-height:0;overflow:auto;padding:var(--u-s5) var(--u-s6) var(--u-s6)}
.u-modal>.bd>.dv-bar{margin:0 0 var(--u-s2)}
.u-modal>.ft{flex:none;display:flex;align-items:center;gap:var(--u-s2);padding:var(--u-s3) var(--u-s6);border-top:1px solid var(--u-line);background:#fbfbfd}
.u-modal>.ft .u-input{flex:1;min-width:0;height:32px;padding:0 12px}
.u-modal>.ft .u-sp{flex:1}
.u-modal .sec{padding:var(--u-s5) 0;border-top:1px solid var(--u-line)}
.u-modal .u-steps+.sec,.u-modal>.bd>.sec:first-child{border-top:0;padding-top:0}
.u-modal>.bd>.dv-bar+.sec{border-top:0;padding-top:var(--u-s4)}
.u-modal .sec:last-child{padding-bottom:0}
.u-modal .sec h4,.u-modal .sec summary{display:flex;align-items:baseline;gap:var(--u-s2);margin:0 0 var(--u-s3);font-size:var(--u-fs-15);font-weight:600}
.u-modal .sec h4 small,.u-modal .sec summary small{font-size:var(--u-fs-12);font-weight:400;color:var(--u-ink-3)}
.u-modal .sec h5{margin:var(--u-s4) 0 var(--u-s2);font-size:var(--u-fs-14);font-weight:600;color:var(--u-ink)}
.u-modal .sec p{margin:0 0 var(--u-s2);color:var(--u-ink-2);line-height:1.6}
.u-modal .sec p.dv-lead{color:var(--u-ink);margin-bottom:var(--u-s3)}
.u-modal .sec p.note{padding:var(--u-s2) var(--u-s3);border-radius:var(--u-r-s);background:var(--u-fill);white-space:pre-line}
.u-modal .sec p.note b{color:var(--u-ink);font-weight:600}
.u-modal .sec ul{margin:0;padding:0;list-style:none}
.u-modal .sec ul:not(.find) li{position:relative;padding-left:12px;color:var(--u-ink-2);line-height:1.7}
.u-modal .sec ul:not(.find) li::before{content:"";position:absolute;left:0;top:10px;width:4px;height:4px;border-radius:50%;background:var(--u-ink-4)}
.u-modal .find li{display:flex;align-items:flex-start;gap:var(--u-s2);padding:6px 0;color:var(--u-ink-2);line-height:1.6}
.u-modal .find .u-tag{flex:none;margin-top:1px}
.u-modal .find small{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3)}
.u-modal .sec a{color:var(--u-blue);text-decoration:none}
.u-modal .sec a:hover{text-decoration:underline}
.u-modal .kv{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--u-s3);margin:var(--u-s3) 0}
.u-modal .kv div{padding-left:var(--u-s3);border-left:2px solid var(--u-line)}
.u-modal .kv b{display:block;font-size:var(--u-fs-15);font-weight:600;font-variant-numeric:tabular-nums}
.u-modal .kv span{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3)}
.u-modal .cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--u-s5);margin:0}
.u-modal .cols dt{font-size:var(--u-fs-12);color:var(--u-ink-3)}
.u-modal .cols dd{margin:var(--u-s1) 0 0;color:var(--u-ink-2);line-height:1.6}
.u-modal .cols dd b{color:var(--u-ink);font-weight:600}
.u-modal .u-table{table-layout:auto}
.u-modal .u-table td{overflow:visible}
.u-modal .u-table .u-t1,.u-modal .u-table .u-t2{white-space:normal}
.u-modal .u-table .nw{white-space:nowrap}
.u-modal .dv-dims{grid-template-columns:repeat(7,minmax(0,1fr))}
.u-modal details.sec summary{margin:0;cursor:pointer;list-style:none;user-select:none}
.u-modal details.sec summary::-webkit-details-marker{display:none}
.u-modal details.sec summary::before{content:"";width:6px;height:6px;margin-right:2px;border-right:1.6px solid var(--u-ink-3);border-bottom:1.6px solid var(--u-ink-3);transform:translateY(-2px) rotate(-45deg);transition:transform .15s var(--u-ease)}
.u-modal details.sec[open] summary{margin-bottom:var(--u-s3)}
.u-modal details.sec[open] summary::before{transform:translateY(-3px) rotate(45deg)}
.u-modal .src{display:flex;flex-direction:column;gap:2px;margin-top:var(--u-s1);font-size:var(--u-fs-12)}
.u-modal .lg div{display:flex;gap:var(--u-s3);padding:6px 0;border-bottom:1px solid var(--u-fill);color:var(--u-ink-2)}
.u-modal .lg div:last-child{border-bottom:0}
.u-modal .lg .u-muted{flex:none;font-size:var(--u-fs-12);font-variant-numeric:tabular-nums;line-height:1.7}
.u-modal .lg b{color:var(--u-ink);font-weight:500}
.u-modal .lg a,.u-modal .lg .lnk{color:var(--u-blue);cursor:pointer}
@media (max-width:760px){
  .u-modal .kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .u-modal .cols,.u-modal .dv-opts{grid-template-columns:1fr}
  .u-modal .dv-dims{grid-template-columns:repeat(3,minmax(0,1fr))}
  .u-modal>.ft{flex-wrap:wrap}
}

/* 任务详情补充 */
.u-modal>.hd small .u-tag{margin-right:var(--u-s1)}
.u-modal .sec h4 .u-sp{flex:1}
.u-modal .cols.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.u-modal .cols dd .u-link b{color:var(--u-blue)}
.u-modal .files{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--u-s3)}
.u-modal .files button{display:block;min-width:0;padding:var(--u-s3) var(--u-s4);border:1px solid var(--u-line);border-radius:var(--u-r-m);background:var(--u-surface);color:inherit;text-align:left;cursor:pointer;transition:border-color .15s var(--u-ease)}
.u-modal .files button:hover{border-color:var(--u-blue)}
.u-modal .files b{display:block;font-size:var(--u-fs-14);font-weight:600}
.u-modal .files span{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-modal .cmd-run .u-prog{flex:1;max-width:240px;margin-left:auto}
.u-modal .dv-dims+.u-table{margin-top:var(--u-s3)}
.u-modal .imgs{display:flex;flex-wrap:wrap;gap:var(--u-s2);margin-top:var(--u-s2)}
.u-modal .imgs img{display:block;height:64px;border:1px solid var(--u-line);border-radius:var(--u-r-s)}
.u-modal .md{max-height:none;padding:0;font-size:var(--u-fs-14);line-height:1.7;color:var(--u-ink-2)}
.u-modal .md.out{max-height:52vh;overflow:auto;padding:var(--u-s3) var(--u-s4);border:1px solid var(--u-line);border-radius:var(--u-r-m)}
.u-modal .md h3,.u-modal .md h4,.u-modal .md h5,.u-modal .md h6{margin:var(--u-s3) 0 var(--u-s1);font-size:var(--u-fs-14);font-weight:600;color:var(--u-ink)}
.u-modal .md li::before{display:none}
.u-modal .md ul,.u-modal .md ol{padding-left:20px;list-style:revert}
.u-modal .md li{padding-left:0!important}
.u-modal .md blockquote{margin:0 0 var(--u-s2);padding:var(--u-s2) var(--u-s3);border-radius:var(--u-r-s);background:var(--u-fill);color:var(--u-ink-3)}

/* 员工 / AI 员工详情 */
.modal.u-modal.narrow{width:720px}
.u-modal>.hd .hd-score{flex:none;text-align:right;line-height:1.2}
.u-modal>.hd .hd-score small{margin:0}
.u-modal>.hd .hd-score b{font-size:var(--u-fs-22);font-weight:600;font-variant-numeric:tabular-nums}
.u-modal .sec p.tier-d{margin-top:var(--u-s3)}
.u-modal .picks{display:flex;flex-wrap:wrap;gap:var(--u-s2) var(--u-s5)}
.u-modal .picks .u-check.off{color:var(--u-ink-4);cursor:default}
.u-modal .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--u-s2)}
.u-modal.narrow .dv-dims{grid-template-columns:repeat(5,minmax(0,1fr))}
.u-modal.narrow .u-opt p{margin:0}
.u-modal.narrow .dv-opts+p.note{margin-top:var(--u-s3)}

/* 汇报材料查看器 */
.modal.u-modal.rv{width:1120px;height:88vh}
.rv-bar{flex:none;display:flex;align-items:center;gap:var(--u-s3);padding:var(--u-s3) var(--u-s6);border-bottom:1px solid var(--u-line)}
.rv-bar .u-sp{flex:1}
.rv-bar .u-seg button{height:28px;padding:0 var(--u-s4);font-size:var(--u-fs-14)}
.u-modal.rv>.bd{background:var(--u-bg)}
.rv-doc{max-width:800px;margin:0 auto;padding:var(--u-s10) 48px!important;border:1px solid var(--u-line)!important;border-radius:var(--u-r-s);background:var(--u-surface)}
.rv-doc h1{margin:0;font-size:var(--u-fs-22);font-weight:600;line-height:1.3}
.rv-doc .sub{margin:var(--u-s1) 0 0;color:var(--u-ink-3)}
.rv-doc .cols{margin:var(--u-s5) 0;padding:var(--u-s4) 0;border-top:1px solid var(--u-line);border-bottom:1px solid var(--u-line);gap:var(--u-s3) var(--u-s5)}
.rv-doc .md{margin-top:var(--u-s4)}
.rv-doc h4{margin-top:var(--u-s6)!important}
.rv-doc ol{margin:0;padding-left:20px;color:var(--u-ink-2);line-height:1.8}
.rv-xls{border:1px solid var(--u-line);border-radius:var(--u-r-m);background:var(--u-surface);overflow:hidden}
.rv-sheets{display:flex;gap:2px;padding:var(--u-s2) var(--u-s2) 0;background:var(--u-fill);overflow-x:auto}
.rv-sheets button{flex:none;height:30px;padding:0 var(--u-s4);border:0;border-radius:var(--u-r-s) var(--u-r-s) 0 0;background:none;color:var(--u-ink-2);font-size:var(--u-fs-14);cursor:pointer;white-space:nowrap}
.rv-sheets button.on{background:var(--u-surface);color:var(--u-ink);font-weight:600}
.rv-xls h4{margin:0;padding:var(--u-s3) var(--u-s4);font-size:var(--u-fs-14);font-weight:600;border-bottom:1px solid var(--u-line)}
.rv-xls>p{margin:0;padding:var(--u-s2) var(--u-s4) var(--u-s3);font-size:var(--u-fs-12)}
.rv-grid{overflow:auto;max-height:58vh}
.rv-grid table{min-width:100%;border-collapse:collapse;font-size:var(--u-fs-14)}
.rv-grid th,.rv-grid td{max-width:360px;padding:6px 10px;border:1px solid var(--u-line);text-align:left;vertical-align:top}
.rv-grid th{position:sticky;top:0;background:#fafafc;font-weight:600;white-space:nowrap}
.rv-grid .rn{width:36px;background:#fafafc;color:var(--u-ink-4);font-size:var(--u-fs-12);font-weight:400;text-align:center}
.rv-grid td.num{text-align:right;font-variant-numeric:tabular-nums}
.rv-ppt{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--u-s4)}
.rv-stage{position:relative;aspect-ratio:16/9;border:1px solid var(--u-line);border-radius:var(--u-r-m);background:var(--u-surface);overflow:hidden}
.rv-stage>img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.rv-stage .nav,.rv-stage .full{position:absolute;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--u-line);border-radius:50%;background:rgba(255,255,255,.92);color:var(--u-ink);cursor:pointer}
.rv-stage .nav{top:50%;transform:translateY(-50%)}
.rv-stage .nav.l{left:var(--u-s3)}.rv-stage .nav.r{right:var(--u-s3)}
.rv-stage .nav:disabled{opacity:.3;cursor:default}
.rv-stage .full{right:var(--u-s3);bottom:var(--u-s3);border-radius:var(--u-r-s)}
.rv-stage .rv-pn{position:absolute;left:var(--u-s3);bottom:var(--u-s3);padding:1px 8px;border-radius:var(--u-r-s);background:rgba(0,0,0,.55);color:#fff;font-size:var(--u-fs-12);font-variant-numeric:tabular-nums}
.rv-notes{padding:var(--u-s4);border:1px solid var(--u-line);border-radius:var(--u-r-m);background:var(--u-surface);overflow:auto}
.rv-notes h5{margin:0 0 var(--u-s1);font-size:var(--u-fs-14);font-weight:600}
.rv-notes h5:not(:first-child){margin-top:var(--u-s4)}
.rv-notes p{margin:0;color:var(--u-ink-2);line-height:1.7;white-space:pre-line}
.rv-notes p.u-muted{margin-top:var(--u-s4);font-size:var(--u-fs-12)}
.rv-thumbs{display:flex;gap:var(--u-s2);margin-top:var(--u-s3);padding-bottom:var(--u-s1);overflow-x:auto}
.rv-thumbs button{position:relative;flex:0 0 148px;aspect-ratio:16/9;padding:0;border:1px solid var(--u-line);border-radius:var(--u-r-s);background:var(--u-surface);overflow:hidden;cursor:pointer}
.rv-thumbs button.on{border-color:var(--u-blue);box-shadow:0 0 0 1px var(--u-blue)}
.rv-thumbs img{display:block;width:100%;height:100%;object-fit:cover}
.rv-thumbs button>span{position:absolute;left:4px;bottom:3px;padding:0 5px;border-radius:4px;background:rgba(0,0,0,.55);color:#fff;font-size:10px}
/* 文字版幻灯片：统一用品牌蓝，去掉渐变装饰 */
.slide-html{font-family:var(--u-font)}
.slide-html .bar{height:auto;border-radius:0;background:var(--u-blue)}
.slide-html::after{display:none}
.slide-html.close{background:#fff}
.slide-html .st{font-weight:600;color:var(--u-ink)}
.slide-html .ss{color:var(--u-ink-2)}
.slide-html ul{color:var(--u-ink-2)}
.slide-html .sp{color:var(--u-ink-3)}
/* 全屏汇报 */
.brief-mode.u-brief{background:#111113;font-family:var(--u-font);animation:u-fade .15s var(--u-ease)}
.u-brief .bm-top{gap:var(--u-s4);background:none;border-bottom:1px solid rgba(255,255,255,.1);font-size:var(--u-fs-14);color:#d2d2d7}
.u-brief .bm-top b{color:#fff;font-weight:600}
.u-brief .bm-top .dim{color:#86868b;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-brief .bm-top .u-sp{flex:1}
.u-brief .bm-top button,.u-brief .bm-nav{display:grid;place-items:center;border:0;background:rgba(255,255,255,.1);color:#fff;cursor:pointer}
.u-brief .bm-top button{width:32px;height:32px;border-radius:var(--u-r-s)}
.u-brief .bm-nav{transform:translateY(-50%)}
.u-brief .bm-nav:disabled{opacity:.25;cursor:default}
.u-brief .bm-notes{color:#d2d2d7}
.u-brief .bm-notes b{color:#fff;font-weight:600}
@media (max-width:1100px){
  .rv-ppt{grid-template-columns:1fr}
  .rv-doc{padding:var(--u-s6) var(--u-s5)!important}
}

/* 已迁移的独立页面（待我审批等）：沿用工作台的版心 */
.app-main .page.u-page{padding:0;font-size:var(--u-fs-14);line-height:1.5;color:var(--u-ink)}
.ap .ws-hd{align-items:flex-start}
.ap .ws-hd p{max-width:560px}
.ap .td-row{align-items:flex-start}
.ap .td-row .u-tag{margin-top:1px}
.ap .td-tt small{white-space:normal}
.ap .td-row .u-btn{flex:none}

/* ---------- 通用：一行排布、加载圈、评分条、圆点列表 ---------- */
.u-row{display:flex;align-items:center;gap:var(--u-s2)}
.u-row .u-input{flex:1;min-width:0}
.u-row .u-sp{flex:1}
.u-row.top{align-items:flex-start;gap:var(--u-s3)}
.u-spin{display:inline-block;width:14px;height:14px;flex:none;border:2px solid var(--u-fill-2);border-top-color:var(--u-blue);border-radius:50%;animation:u-spin .8s linear infinite}
.u-table.auto{table-layout:auto}
.u-table.auto td{overflow:visible}
.u-table .nw{white-space:nowrap}
.u-table tbody tr:is([data-dept],[data-ag],[data-st]){cursor:pointer}
.u-table tbody tr:is([data-dept],[data-ag],[data-st]):hover td{background:#fafafc}
.kv-bars>div{display:grid;grid-template-columns:72px minmax(0,1fr) 28px;align-items:center;gap:var(--u-s3);padding:5px 0}
.kv-bars span{color:var(--u-ink-2)}
.kv-bars b{text-align:right;font-weight:500;font-variant-numeric:tabular-nums}
.kv-bars .u-pg{height:4px}
.wz-list{margin:0;padding:0;list-style:none}
.wz-list li{position:relative;padding-left:12px;color:var(--u-ink-2);line-height:1.7}
.wz-list li::before{content:"";position:absolute;left:0;top:10px;width:4px;height:4px;border-radius:50%;background:var(--u-ink-4)}

/* ---------- 内容卡片（向导、经营概览共用） ---------- */
.wz-card{padding:var(--u-s5);margin-bottom:var(--u-s4)}
.wz-card h4{display:flex;align-items:baseline;gap:var(--u-s2);margin:0 0 var(--u-s3);font-size:var(--u-fs-15);font-weight:600}
.wz-card h4:not(:first-child){margin-top:var(--u-s5)}
.wz-card h4 small{font-size:var(--u-fs-12);font-weight:400;color:var(--u-ink-3)}
.wz-card h4 .u-sp{flex:1}
.wz-card h4 .u-btn{align-self:center}
.wz-card p{margin:0 0 var(--u-s2);color:var(--u-ink-2);line-height:1.6}
.wz-card p:last-child{margin-bottom:0}
.wz-card p b{color:var(--u-ink);font-weight:600}
.wz-card .kv-bars+p{margin-top:var(--u-s3)}
.wz-card .md{font-size:var(--u-fs-14);line-height:1.7;color:var(--u-ink-2)}
.wz-card .md h3,.wz-card .md h4,.wz-card .md h5,.wz-card .md h6{display:block;margin:var(--u-s3) 0 var(--u-s1);font-size:var(--u-fs-14);font-weight:600;color:var(--u-ink)}
.wz-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--u-s4)}
.wz-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:var(--u-s3);font-size:var(--u-fs-12);color:var(--u-ink-3)}
.wz-tags.sk{margin:0}
.wz-none{padding:var(--u-s8) var(--u-s4);text-align:center;color:var(--u-ink-3)}

/* ---------- 创建向导 ---------- */
.wz,.hm{height:100%;background:var(--u-bg);color:var(--u-ink);font-family:var(--u-font);font-size:var(--u-fs-14);line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:0}
.wz{display:flex;flex-direction:column}
.wz button,.hm button{font-family:inherit}
.wz-top{flex:none;display:flex;align-items:center;gap:var(--u-s3);height:52px;padding:0 var(--u-s5);background:var(--u-surface);border-bottom:1px solid var(--u-line)}
.wz-top .u-sp{flex:1}
.wz-brand{padding:0;font-size:var(--u-fs-15);font-weight:600;color:var(--u-ink)}
.wz-steps{display:flex;gap:var(--u-s1);margin:0 0 0 var(--u-s4);padding:0;list-style:none}
.wz-steps li{display:flex;align-items:center;gap:var(--u-s2);height:28px;padding:0 10px 0 6px;border-radius:var(--u-r-s);color:var(--u-ink-3);white-space:nowrap}
.wz-steps i{width:20px;height:20px;border-radius:50%;background:var(--u-fill-2);color:var(--u-ink-2);font-style:normal;font-size:var(--u-fs-12);line-height:20px;text-align:center;font-variant-numeric:tabular-nums}
.wz-steps .on{color:var(--u-ink);font-weight:600}
.wz-steps .on i{background:var(--u-blue);color:#fff}
.wz-steps .done{color:var(--u-ink-2);cursor:pointer}
.wz-steps .done i{background:var(--u-blue-soft);color:var(--u-blue)}
.wz-steps .done:hover{background:var(--u-fill)}
.wz-body{flex:1;min-height:0;overflow:auto}
.wz-in{max-width:960px;margin:0 auto;padding:var(--u-s8) var(--u-s8) var(--u-s10)}
.wz-in.wide{max-width:1200px}
.wz-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--u-s4);margin-bottom:var(--u-s5)}
.wz-hd h1{margin:0;font-size:var(--u-fs-22);font-weight:600;line-height:1.3}
.wz-hd p{margin:var(--u-s1) 0 0;max-width:640px;color:var(--u-ink-3)}
.wz-hd .acts{flex:none;display:flex;gap:var(--u-s2)}
.wz-foot{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--u-s4);height:60px;padding:0 var(--u-s5);background:var(--u-surface);border-top:1px solid var(--u-line)}
.wz-foot>:first-child{justify-self:start}
.wz-foot>:last-child{justify-self:end;min-width:96px}
.wz-hint{font-size:var(--u-fs-12);color:var(--u-ink-3);text-align:center}
.wz-status{display:flex;align-items:center;gap:var(--u-s2);margin-top:var(--u-s3);color:var(--u-ink-2)}
.wz-cands{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--u-s3);margin-top:var(--u-s4)}
.wz-cands .u-opt{padding:var(--u-s3) var(--u-s4)}
.wz-cands b{display:block;font-size:var(--u-fs-14);font-weight:600}
.wz-cands small{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3)}
.wz-card p.wz-evi{margin:var(--u-s3) 0 0;font-size:var(--u-fs-12);color:var(--u-ink-3)}
.wz-pick{display:grid;grid-template-columns:240px minmax(0,1fr);height:440px;margin-bottom:var(--u-s3);overflow:hidden}
.wz-cats{padding:var(--u-s2);border-right:1px solid var(--u-line);overflow:auto}
.wz-cats button{display:flex;align-items:baseline;gap:var(--u-s2);width:100%;padding:6px var(--u-s2);border-radius:var(--u-r-s);color:var(--u-ink-2);font-size:var(--u-fs-14);text-align:left}
.wz-cats em{flex:none;width:12px;font-style:normal;font-size:var(--u-fs-12);color:var(--u-ink-4)}
.wz-cats button:hover{background:var(--u-fill);color:var(--u-ink)}
.wz-cats button.on{background:var(--u-fill-2);color:var(--u-ink);font-weight:600}
.wz-cats button.miss{opacity:.4}
.wz-divs{display:flex;flex-direction:column;min-width:0;min-height:0}
.wz-divs-hd{flex:none;padding:var(--u-s3) var(--u-s4);border-bottom:1px solid var(--u-line)}
.wz-div-list{flex:1;min-height:0;padding:var(--u-s2);overflow:auto}
.wz-div-list button{display:block;width:100%;padding:var(--u-s2) var(--u-s3);border:1px solid transparent;border-radius:var(--u-r-s);text-align:left}
.wz-div-list b{display:block;font-size:var(--u-fs-14);font-weight:500;color:var(--u-ink)}
.wz-div-list em{margin-right:var(--u-s2);font-style:normal;font-size:var(--u-fs-12);font-weight:400;color:var(--u-ink-4);font-variant-numeric:tabular-nums}
.wz-div-list small{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wz-div-list button:hover{background:var(--u-fill)}
.wz-div-list button.on{border-color:var(--u-blue);background:var(--u-blue-soft)}
.wz-note{margin:0;font-size:var(--u-fs-12)}
.wz-log{margin-top:var(--u-s3);font-size:var(--u-fs-12);color:var(--u-ink-3);line-height:1.8}
.wz-log:empty{display:none}
.wz-chain{display:flex;flex-wrap:wrap;align-items:center;gap:var(--u-s2)}
.wz-chain span{padding:var(--u-s1) 10px;border-radius:var(--u-r-s);background:var(--u-fill);color:var(--u-ink-2)}
.wz-chain .u-ico{color:var(--u-ink-4)}
.wz-dl{display:grid;gap:10px;margin:0}
.wz-dl dt{font-size:var(--u-fs-12);color:var(--u-ink-3)}
.wz-dl dd{margin:2px 0 0;color:var(--u-ink-2);line-height:1.5}
.wz-news a{display:block;padding:10px 0;border-bottom:1px solid var(--u-fill);color:inherit;text-decoration:none}
.wz-news a:last-child{border-bottom:0;padding-bottom:0}
.wz-news b{display:block;font-weight:500;color:var(--u-blue)}
.wz-news span{display:block;font-size:var(--u-fs-12);color:var(--u-ink-2);line-height:1.6}
.wz-news small{font-size:var(--u-fs-12);color:var(--u-ink-3)}
.wz-two{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--u-s4);align-items:start}
.wz-depts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--u-s2)}
.wz-dept{display:flex;align-items:center;gap:var(--u-s2);padding:10px var(--u-s2) 10px var(--u-s3);border:1px solid var(--u-line);border-radius:var(--u-r-m)}
.wz-dept div{flex:1;min-width:0}
.wz-dept b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wz-dept small{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3)}
.wz-pal{display:flex;flex-wrap:wrap;gap:var(--u-s2)}
.wz-pal button{height:28px;padding:0 10px;border:1px solid var(--u-line);border-radius:14px;background:var(--u-surface);color:var(--u-ink-2);font-size:var(--u-fs-14);transition:border-color .15s var(--u-ease),color .15s var(--u-ease)}
.wz-pal button::before{content:"+ ";color:var(--u-ink-4)}
.wz-pal button:hover{border-color:var(--u-blue);color:var(--u-blue)}
.wz-staff{display:grid;grid-template-columns:176px 340px minmax(0,1fr);gap:var(--u-s4);align-items:start}
.wz-tabs{display:flex;flex-direction:column;gap:2px}
.wz-tabs button{display:flex;align-items:center;justify-content:space-between;gap:var(--u-s2);height:32px;padding:0 10px;border-radius:var(--u-r-s);color:var(--u-ink-2);font-size:var(--u-fs-14);text-align:left}
.wz-tabs button span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wz-tabs button small{font-size:var(--u-fs-12);color:var(--u-ink-3);font-variant-numeric:tabular-nums}
.wz-tabs button:hover{background:var(--u-fill)}
.wz-tabs button.on{background:var(--u-fill-2);color:var(--u-ink);font-weight:600}
.wz-form .f{display:block;margin-bottom:var(--u-s3);font-size:var(--u-fs-12);color:var(--u-ink-3)}
.wz-form .f .u-input{display:block;margin-top:var(--u-s1)}
.wz-form .f .u-seg{display:flex;width:max-content;margin-top:var(--u-s1)}
.wz-form .f p{margin:6px 0 0;font-size:var(--u-fs-12)}
.wz-form .f.grow{flex:1;min-width:0}
.wz-form .f.yrs{flex:none;width:96px}
.wz-form .wz-tags{margin:0 0 var(--u-s4)}
.wz-form label.u-btn{cursor:pointer}
.wz-launch{position:fixed;inset:0;z-index:984;display:grid;place-items:center;background:rgba(245,245,247,.97);color:var(--u-ink);font-family:var(--u-font)}
.wz-launch h2{display:flex;align-items:center;gap:10px;margin:0 0 var(--u-s3);font-size:var(--u-fs-17);font-weight:600}
.wz-launch p{margin:0;font-size:var(--u-fs-14);color:var(--u-ink-2);line-height:1.8}

/* ---------- 首页：企业端 / 献策端 ---------- */
.hm{overflow:auto}
.hm-top{display:flex;align-items:center;height:52px;padding:0 var(--u-s5)}
.hm-top .u-sp{flex:1}
.hm-brand{font-size:var(--u-fs-15);font-weight:600}
.hm-main{max-width:1040px;margin:0 auto;padding:var(--u-s10) var(--u-s8)}
.hm-hd{margin-bottom:var(--u-s6)}
.hm-hd h1{margin:0;font-size:var(--u-fs-28);font-weight:600;letter-spacing:-.2px;line-height:1.2}
.hm-hd p{margin:var(--u-s2) 0 0;color:var(--u-ink-3)}
.hm-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--u-s5)}
.hm-card{display:flex;flex-direction:column;padding:var(--u-s8)}
.hm-k{font-size:var(--u-fs-12);color:var(--u-ink-3)}
.hm-card h2{margin:var(--u-s1) 0 var(--u-s2);font-size:var(--u-fs-22);font-weight:600}
.hm-card>p{margin:0;color:var(--u-ink-2);line-height:1.6}
.hm-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--u-s3);margin:var(--u-s5) 0;padding:var(--u-s4) 0;border-top:1px solid var(--u-fill);border-bottom:1px solid var(--u-fill);list-style:none;counter-reset:hs}
.hm-steps li{counter-increment:hs;color:var(--u-ink-2)}
.hm-steps li::before{content:counter(hs);display:block;font-size:var(--u-fs-12);color:var(--u-ink-4);font-variant-numeric:tabular-nums}
.hm-acts{display:flex;flex-wrap:wrap;gap:var(--u-s2)}
.hm-acts .u-btn{height:36px;padding:0 var(--u-s4)}
.hm-links{display:flex;flex-wrap:wrap;gap:var(--u-s2) var(--u-s5);margin-top:var(--u-s4);min-height:21px}
.hm-links .u-link b{font-weight:600;font-variant-numeric:tabular-nums}
.hm-card>p.hm-stat{margin-top:auto;padding-top:var(--u-s5);font-size:var(--u-fs-12);color:var(--u-ink-3)}
.hm-foot{display:flex;justify-content:space-between;gap:var(--u-s4);margin-top:var(--u-s6);font-size:var(--u-fs-12);color:var(--u-ink-3)}

/* ---------- 经营概览 ---------- */
.ck .ws-note{margin-bottom:var(--u-s4)}
.ck-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--u-s3);margin-bottom:var(--u-s4)}
.ck-stats .u-card{padding:var(--u-s4) var(--u-s5)}
.ck-stats small{display:block;font-size:var(--u-fs-12);color:var(--u-ink-3)}
.ck-stats b{display:block;margin-top:var(--u-s1);font-size:var(--u-fs-22);font-weight:600;font-variant-numeric:tabular-nums;line-height:1.3}
.ck-trend{display:block;width:100%;max-height:150px}
.ck-trend polyline{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.ck-trend .a{stroke:var(--u-blue)}
.ck-trend .b{stroke:var(--u-ink-4)}
.ck-trend text{font-size:10px;fill:var(--u-ink-3)}

/* ---------- 侧边面板（部门详情）：与详情弹窗共用 hd / bd / sec ---------- */
.drawer.u-drawer{width:560px;padding:0;border:0;border-left:1px solid var(--u-line);background:var(--u-surface);box-shadow:var(--u-shadow);color:var(--u-ink);font-family:var(--u-font);font-size:var(--u-fs-14);line-height:1.5;animation:u-fade .15s var(--u-ease)}
.u-drawer .ws-quick{margin:var(--u-s3) 0}
.u-drawer .sec p.u-muted{margin:0;font-size:var(--u-fs-12)}

/* 幻灯片的翻页、页码、全屏集中到右下角，不压住内容 */
.rv-stage .nav{top:auto;bottom:var(--u-s3);transform:none}
.rv-stage .nav.l{left:auto;right:92px}
.rv-stage .nav.r{right:52px}
.rv-stage .full{border-radius:50%}
.rv-stage .rv-pn{left:auto;right:136px;bottom:18px}

@media (max-width:1100px){
  .wz-staff{grid-template-columns:160px minmax(0,1fr)}
  .wz-staff #staff-grid{grid-column:1/-1}
  .wz-two{grid-template-columns:1fr}
  .wz-steps li:not(.on) span{display:none}
  .ck-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .hm-two,.wz-grid2,.wz-cands{grid-template-columns:1fr}
  .wz-pick{grid-template-columns:1fr;height:auto}
  .wz-cats{max-height:160px;border-right:0;border-bottom:1px solid var(--u-line)}
  .wz-div-list{max-height:320px}
  .wz-staff{grid-template-columns:1fr}
  .wz-tabs{flex-direction:row;flex-wrap:wrap}
  .wz-in,.hm-main{padding:var(--u-s5) var(--u-s4) var(--u-s8)}
  .hm-card{padding:var(--u-s5)}
  .hm-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wz-top #btn-demo,.wz-hint{display:none}
}

/* ---------- 响应式 ---------- */
@media (max-width:1280px){
  .app.log-open{grid-template-columns:216px minmax(0,1fr) 300px}
  .ws-in{padding:var(--u-s6) var(--u-s6) var(--u-s8)}
}
@media (max-width:1100px){
  /* 侧栏收成图标栏；动态记录改为浮层，不挤占内容 */
  .app,.app.log-open{grid-template-columns:56px minmax(0,1fr) 0}
  .app-brand-t,.app-nav h6,.app-nav .u-nv span.t{display:none}
  .app-brand{justify-content:center;padding:0}
  .app-nav .u-nv{justify-content:center;padding:0;position:relative}
  .app-nav .u-nv .u-nb{position:absolute;top:2px;right:4px;min-width:14px;height:14px;padding:0 3px;line-height:14px;font-size:10px}
  .app-nav h6{height:1px;margin:var(--u-s2);background:var(--u-line);overflow:hidden}
  .app.log-open .app-log{position:fixed;top:52px;right:0;bottom:0;width:340px;max-width:92vw;z-index:60;box-shadow:var(--u-shadow)}
  .app-stat .hide-s{display:none}
  .td-row{flex-wrap:wrap}
  .td-tt{flex-basis:60%}
  .dv-opts{grid-template-columns:1fr}
  .dv-sup{grid-template-columns:1fr}
  .cmd-hd .u-steps{display:none}
}
@media (max-width:760px){
  .ws-in{padding:var(--u-s5) var(--u-s4) var(--u-s8)}
  .ws-hd h1{font-size:var(--u-fs-22)}
  .ws-steps{grid-template-columns:1fr}
  .u-table .col-own,.u-table .col-docs{display:none}
  .app-stat{display:none}
}
@media (prefers-reduced-motion:reduce){
  .app *,.u-mask{transition:none!important}
  .cmd-run .spin{animation-duration:2s}
}

/* AI 连接状态可点击（去连接） */
.ai-pill{cursor:pointer}
