/* ============================================================
   宠物产品实验室 · 苹果风重构设计系统 (V1.2.2 redesign)
   - 左侧图标轨（icon rail，悬停/触摸展开），顶栏补齐左偏移避免被遮挡
   - 顶栏命令栏 + ⌘K Spotlight 命令面板
   - 阶段条 → 时间轴；内容卡片 → Bento 大圆角语言
   - 抽屉 → 浮动面板；统一弹簧动效
   - 中性苹果分层配色（浅色 #f5f5f7 / 深色 #1c1c1e 系，去掉蓝调）
   复用 styles.css 的组件类，仅重排视觉与布局，不改动任何 JS 业务 id。
   ============================================================ */

/* ---------- 0. 字体与运动曲线 ---------- */
:root{
  --rail-w:76px; --rail-w-open:250px; --topbar-h:54px;
  --radius:12px; --radius-lg:18px; --radius-xl:28px; --radius-ctrl:10px;
  --hairline:rgba(255,255,255,.10);
  --shadow-sm:0 1px 2px rgba(0,0,0,.30);
  --shadow:0 1px 2px rgba(0,0,0,.28),0 10px 30px rgba(0,0,0,.32);
  --shadow-pop:0 24px 70px rgba(0,0,0,.55);
  --spring:cubic-bezier(.34,1.56,.64,1);
  --ease:cubic-bezier(.32,.72,0,1);
  --ease-io:cubic-bezier(.4,0,.2,1);
  --focus:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent);
}

/* 浅色（Apple 系统浅色） */
:root[data-theme="light"]{
  --bg:#f5f5f7; --surface-1:#ffffff; --surface-2:#fbfbfd; --surface-3:#e8e8ed; --surface-hi:#ffffff;
  --line:#d2d2d7; --line-soft:#e8e8ed; --text:#1d1d1f; --text-2:#424245; --text-mute:#86868b;
  --accent:#0a7d73; --accent-2:#5b5bd6; --accent-3:#b25000; --danger:#d70015; --ok:#248a3d;
  --fact:#248a3d; --human:#5b5bd6; --assume:#b25000; --tbd:#6e6e73;
  --kpi-num:#1d1d1f; --kpi-lab:#6e6e73;
  --hairline:rgba(0,0,0,.10);
  --shadow-sm:0 1px 2px rgba(0,0,0,.05);
  --shadow:0 1px 3px rgba(0,0,0,.06),0 12px 34px rgba(0,0,0,.10);
  --shadow-pop:0 24px 70px rgba(0,0,0,.22);
}
/* 深色（Apple 系统中性深灰，去掉蓝调） */
:root[data-theme="dark"]{
  --bg:#1c1c1e; --surface-1:#2c2c2e; --surface-2:#1c1c1e; --surface-3:#3a3a3c; --surface-hi:#48484a;
  --line:#3a3a3c; --line-soft:#2c2c2e; --text:#f5f5f7; --text-2:#d1d1d6; --text-mute:#8e8e93;
  --accent:#0d9488; --accent-2:#7d7dff; --accent-3:#ff9f0a; --danger:#ff453a; --ok:#30d158;
  --fact:#30d158; --human:#7d7dff; --assume:#ff9f0a; --tbd:#98989d;
  --kpi-num:#f5f5f7; --kpi-lab:#98989d;
  --hairline:rgba(255,255,255,.10);
  --shadow-sm:0 1px 2px rgba(0,0,0,.45);
  --shadow:0 1px 2px rgba(0,0,0,.40),0 12px 34px rgba(0,0,0,.50);
  --shadow-pop:0 24px 70px rgba(0,0,0,.62);
}
@media (prefers-color-scheme: light){
  :root:not([data-theme]){
    --bg:#f5f5f7; --surface-1:#ffffff; --surface-2:#fbfbfd; --surface-3:#e8e8ed; --surface-hi:#ffffff;
    --line:#d2d2d7; --line-soft:#e8e8ed; --text:#1d1d1f; --text-2:#424245; --text-mute:#86868b;
    --accent:#0a7d73; --accent-2:#5b5bd6; --accent-3:#b25000; --danger:#d70015; --ok:#248a3d;
    --fact:#248a3d; --human:#5b5bd6; --assume:#b25000; --tbd:#6e6e73;
    --kpi-num:#1d1d1f; --kpi-lab:#6e6e73;
    --hairline:rgba(0,0,0,.10);
    --shadow-sm:0 1px 2px rgba(0,0,0,.05);
    --shadow:0 1px 3px rgba(0,0,0,.06),0 12px 34px rgba(0,0,0,.10);
    --shadow-pop:0 24px 70px rgba(0,0,0,.22);
  }
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme]){
    --bg:#1c1c1e; --surface-1:#2c2c2e; --surface-2:#1c1c1e; --surface-3:#3a3a3c; --surface-hi:#48484a;
    --line:#3a3a3c; --line-soft:#2c2c2e; --text:#f5f5f7; --text-2:#d1d1d6; --text-mute:#8e8e93;
    --accent:#0d9488; --accent-2:#7d7dff; --accent-3:#ff9f0a; --danger:#ff453a; --ok:#30d158;
    --fact:#30d158; --human:#7d7dff; --assume:#ff9f0a; --tbd:#98989d;
    --kpi-num:#f5f5f7; --kpi-lab:#98989d;
    --hairline:rgba(255,255,255,.10);
    --shadow-sm:0 1px 2px rgba(0,0,0,.45);
    --shadow:0 1px 2px rgba(0,0,0,.40),0 12px 34px rgba(0,0,0,.50);
    --shadow-pop:0 24px 70px rgba(0,0,0,.62);
  }
}

/* ---------- 1. 背景：中性分层 + 微弱辉光 ---------- */
body{
  background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
body::before{ /* 极淡网格，弱化存在的感 */
  content:""; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background-image:
    linear-gradient(color-mix(in srgb,var(--text) 4%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text) 4%,transparent) 1px,transparent 1px);
  background-size:30px 30px; opacity:.5;
}
body::after{ /* 苹果式色彩辉光 */
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(1100px 620px at 82% -12%, color-mix(in srgb,var(--accent) 9%, transparent), transparent 60%),
    radial-gradient(900px 520px at -8% 108%, color-mix(in srgb,var(--accent-2) 7%, transparent), transparent 60%);
}

/* ---------- 0b. 视图组件主题变量（供 deepseek_view / image_gen_view 的注入式 <style> 使用） ----------
   全部惰性引用主 token，故浅/深主题自动生效，且不受运行时注入顺序影响。 */
:root{
  --v-bg:var(--surface-2);
  --v-surface:var(--surface-1);
  --v-surface-2:var(--surface-3);
  --v-surface-3:var(--surface-hi);
  --v-border:var(--line);
  --v-hair:var(--hairline);
  --v-fg:var(--text);
  --v-fg-2:var(--text-2);
  --v-muted:var(--text-mute);
  --v-accent:var(--accent);
  --v-accent-2:var(--accent-2);
  --v-accent-3:var(--accent-3);
  --v-danger:var(--danger);
  --v-ok:var(--ok);
  --v-warn:var(--assume);
  /* 兼容 deepseek_view 旧变量名（其内部用 var(--panel,...) 带兜底） */
  --panel:var(--surface-1);
  --border:var(--line);
  --fg:var(--text);
  --muted:var(--text-mute);
  --bg:var(--surface-2);
  --card:var(--surface-3);
}

/* ---------- 2. 顶栏：命令栏（固定，位于图标轨右侧之上，悬停展开不会盖住品牌） ---------- */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:300; gap:14px;
  padding:9px 20px 9px calc(var(--rail-w) + 20px);
  background:color-mix(in srgb,var(--surface-1) 70%, transparent);
  -webkit-backdrop-filter:saturate(180%) blur(22px); backdrop-filter:saturate(180%) blur(22px);
  border-bottom:1px solid var(--hairline);
}
.brand{ gap:11px; }
.brand .ic{ /* 苹果风 app 图标质感 */
  width:30px; height:30px; padding:6px; border-radius:9px; flex:none;
  background:linear-gradient(150deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#000));
  color:#fff; box-shadow:0 1px 2px rgba(0,0,0,.28);
}
.brand .name{ font-size:15px; font-weight:650; letter-spacing:-.2px; }
.brand .ver{ display:none; }
.brand .lab{ font-size:12.5px; color:var(--text-mute); font-weight:450; }
.topright{ gap:10px; }
#navToggle{ display:none; } /* 桌面用图标轨，隐藏汉堡 */

/* 命令面板触发按钮（redesign.js 注入 #cmdBtn） */
#cmdBtn{
  display:inline-flex; align-items:center; gap:8px; width:auto; height:36px; padding:0 14px;
  border-radius:var(--radius-pill); border:1px solid var(--hairline);
  background:color-mix(in srgb,var(--surface-3) 85%,transparent); color:var(--text-2); cursor:pointer;
  font-size:13px; font-weight:500; transition:transform .18s var(--spring), box-shadow .2s, color .15s, border-color .15s, background .15s;
}
#cmdBtn:hover{ color:var(--text); border-color:var(--accent); transform:translateY(-1px); box-shadow:var(--shadow-sm); }
#cmdBtn:active{ transform:scale(.95); }
#cmdBtn .kbd{ font-size:11px; color:var(--text-mute); border:1px solid var(--line); border-radius:6px; padding:0 5px; }

/* 顶部搜索 → 精致胶囊 */
.gsearch input{
  height:36px; border-radius:var(--radius-pill); border:1px solid var(--hairline);
  background:color-mix(in srgb,var(--surface-3) 80%,transparent); color:var(--text); font-size:13.5px;
  transition:border-color .2s var(--ease-io), box-shadow .2s, background .2s;
}
.gsearch input:focus{ box-shadow:var(--focus); border-color:var(--accent); background:var(--surface-1); }
.gsearch .hint{ border-radius:6px; }
.gsearch .suggest{
  top:44px; border-radius:var(--radius); box-shadow:var(--shadow-pop);
  background:color-mix(in srgb,var(--surface-1) 92%,transparent);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); border:1px solid var(--hairline);
}

/* ---------- 3. 左侧图标轨 ---------- */
.body{ grid-template-columns:1fr; padding-top:var(--topbar-h); min-height:100vh; box-sizing:border-box; } /* 顶栏固定，主区下移让位；侧栏 fixed 脱离网格流 */
.sidebar{
  position:fixed; top:var(--topbar-h); bottom:0; left:0; width:var(--rail-w); z-index:240;
  display:flex; flex-direction:column; gap:4px; padding:14px 9px;
  background:color-mix(in srgb,var(--surface-1) 78%, transparent);
  -webkit-backdrop-filter:saturate(180%) blur(30px); backdrop-filter:saturate(180%) blur(30px);
  border-right:1px solid var(--hairline);
  transition:width .28s var(--ease), box-shadow .28s var(--ease);
}
.sidebar:hover,.sidebar.rail-open{ width:var(--rail-w-open); box-shadow:var(--shadow-pop); z-index:260; }
.brand-sub{ display:none; }
.snav{ flex:1; overflow-y:auto; overflow-x:visible; padding:2px; gap:2px; }
.snav::-webkit-scrollbar{ width:0; }
.navgroup{
  display:flex; align-items:center; gap:8px; padding:12px 12px 5px; color:var(--text-mute);
  font-size:11px; letter-spacing:.4px; border-top:1px solid var(--hairline); margin-top:6px;
}
.navgroup:first-of-type{ border-top:0; margin-top:0; }
.navgroup .caret,.navgroup .cnt{ display:none; }
.navgroup .t{ display:block; opacity:0; transition:opacity .2s; pointer-events:none; }
.sidebar:hover .navgroup .t,.sidebar.rail-open .navgroup .t{ opacity:1; }
.sidebar:not(:hover):not(.rail-open) .navgroup{ justify-content:center; padding-left:0; padding-right:0; }
.navitem{
  display:flex; align-items:center; gap:12px; width:100%; padding:9px 11px; border:0; border-radius:10px;
  background:transparent; color:var(--text-2); cursor:pointer; text-align:left; font-size:13.5px; font-weight:500;
  transition:background .15s var(--ease-io), color .15s, transform .18s var(--spring);
}
.navitem .ic{ width:21px; height:21px; flex:none; }
.navitem .lbl{ display:inline-block; max-width:0; overflow:hidden; white-space:nowrap; opacity:0; transform:translateX(-6px);
  transition:opacity .2s, transform .2s var(--ease), max-width .24s var(--ease); font-weight:500; }
.sidebar:hover .navitem .lbl,.sidebar.rail-open .navitem .lbl{ opacity:1; transform:none; max-width:200px; }
.sidebar:not(:hover):not(.rail-open) .navitem{ justify-content:center; padding-left:0; padding-right:0; }
.navitem:hover{ background:var(--surface-3); color:var(--text); transform:translateX(2px); }
.navitem.active{ background:color-mix(in srgb,var(--accent) 16%,transparent); color:var(--text); }
.navitem.active .ic{ color:var(--accent); }
.navitem .pin{ display:none; }
.pinbar,.recentbar{ padding:2px; }
.pinbar .ph,.recentbar .ph{ display:none; }
.sidebar:hover .pinbar .ph,.sidebar.rail-open .pinbar .ph,
.sidebar:hover .recentbar .ph,.sidebar.rail-open .recentbar .ph{ display:block; font-size:11px; color:var(--text-mute); padding:8px 12px 2px; pointer-events:none; }
.foot{ padding:8px 2px 0; border-top:1px solid var(--hairline); margin-top:6px; }
.stop{ display:flex; align-items:center; gap:11px; width:100%; padding:9px 11px; border:1px solid transparent; border-radius:10px;
  background:transparent; color:var(--text-2); cursor:pointer; font-size:13.5px; }
.stop .ic{ width:20px; height:20px; flex:none; }
.stop span{ white-space:nowrap; opacity:0; transition:opacity .2s; pointer-events:none; }
.sidebar:hover .stop span,.sidebar.rail-open .stop span{ opacity:1; }
.sidebar:not(:hover):not(.rail-open) .stop{ justify-content:center; padding-left:0; padding-right:0; }
.stop:hover{ background:color-mix(in srgb,var(--danger) 16%,transparent); color:var(--danger); }

/* 主区让出图标轨宽度（与顶栏左偏移对齐：76+20 ≈ 96） */
#view{ margin-left:var(--rail-w); height:calc(100vh - var(--topbar-h)); }

/* ---------- 4. 阶段条 → 时间轴 ---------- */
.phasebar{ display:flex; gap:0; align-items:stretch; overflow-x:auto; padding:6px 2px 16px; scrollbar-width:none; }
.phasebar::-webkit-scrollbar{ display:none; }
.phase{
  position:relative; flex:1 0 170px; min-width:170px; text-align:left; cursor:pointer;
  background:var(--surface-1); border:1px solid var(--hairline); border-radius:var(--radius-lg);
  padding:14px 16px; margin-right:24px; color:var(--text-2);
  transition:transform .22s var(--spring), box-shadow .22s, border-color .15s, background .15s;
}
.phase::after{
  content:""; position:absolute; right:-24px; top:50%; width:24px; height:2px;
  background:linear-gradient(90deg,var(--line),transparent); transform:translateY(-50%);
}
.phase:last-child{ margin-right:0; }
.phase:last-child::after{ display:none; }
.phase:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--accent); }
.phase:active{ transform:scale(.985); }
.phase.active{ border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent); }
.phase .pname{ font-size:13.5px; font-weight:600; color:var(--text); display:flex; align-items:center; gap:6px; letter-spacing:-.2px; }
.phase .pstat{ margin-top:6px; font-size:12.5px; color:var(--text-mute); display:flex; gap:10px; }
.phase .pstat b{ color:var(--kpi-num); font-size:15px; font-variant-numeric:tabular-nums; }
.phase .pnext{ margin-top:5px; font-size:11.5px; color:var(--text-mute); line-height:1.4; opacity:.85; }
.phase .blk{ color:var(--accent-3); }

/* ---------- 5. 内容卡片 → Bento 语言 ---------- */
.wrap{ padding:22px 26px 44px; max-width:1480px; margin:0 auto; }
.panel{ border-radius:var(--radius-lg); border-color:var(--hairline); background:var(--surface-1); box-shadow:var(--shadow); padding:20px 22px; }
.kpi{ border-radius:var(--radius-lg); border-color:var(--hairline); background:var(--surface-1); box-shadow:var(--shadow); padding:18px 20px; transition:transform .24s var(--spring), box-shadow .24s, border-color .15s; }
.kpi:hover{ transform:translateY(-4px); box-shadow:var(--shadow-pop); border-color:color-mix(in srgb,var(--accent) 40%,transparent); }
.kpi .num{ font-size:30px; font-weight:700; letter-spacing:-.6px; color:var(--kpi-num); line-height:1.05; font-variant-numeric:tabular-nums; }
.kpi .lab{ font-size:12.5px; color:var(--kpi-lab); margin-top:6px; }
.cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(232px,1fr)); gap:16px; }
.cards .card{ border-radius:var(--radius-lg); border-color:var(--hairline); background:var(--surface-1); box-shadow:var(--shadow); padding:18px; transition:transform .24s var(--spring), box-shadow .24s, border-color .15s; }
.cards .card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-pop); border-color:color-mix(in srgb,var(--accent) 40%,transparent); }
.table-wrap{ border-radius:var(--radius-lg); border-color:var(--hairline); background:var(--surface-1); box-shadow:var(--shadow); overflow:hidden; }
/* 视图切换淡入上浮 */
#page > *{ animation:viewIn .5s var(--ease) both; }
@keyframes viewIn{ from{ opacity:0; transform:translateY(12px) scale(.992); } to{ opacity:1; transform:none; } }

/* ---------- 6. 按钮 / 分段控件 / 焦点 / 滚动条 ---------- */
.btn-ic{
  width:34px; height:34px; border-radius:var(--radius-ctrl); border:1px solid var(--hairline);
  background:color-mix(in srgb,var(--surface-3) 85%,transparent); color:var(--text-2);
  transition:transform .18s var(--spring), box-shadow .2s, color .15s, border-color .15s, background .15s;
}
.btn-ic:hover{ color:var(--text); border-color:var(--accent); transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.btn-ic:active{ transform:scale(.92); }
.seg{ display:inline-flex; padding:3px; gap:2px; background:var(--surface-3); border:1px solid var(--hairline); border-radius:var(--radius-pill); }
.seg button{ border:0; background:transparent; color:var(--text-2); font-size:13px; font-weight:500; padding:5px 14px; border-radius:var(--radius-pill); cursor:pointer;
  transition:color .18s, background .22s var(--spring), box-shadow .22s, transform .15s var(--spring); }
.seg button.active{ background:var(--surface-1); color:var(--text); box-shadow:0 1px 3px rgba(0,0,0,.22); }
.seg button:active{ transform:scale(.94); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .navitem:focus-visible{ outline:none; box-shadow:var(--focus); }
*::-webkit-scrollbar{ width:10px; height:10px; }
*::-webkit-scrollbar-thumb{ background:var(--line); border-radius:10px; border:3px solid transparent; background-clip:padding-box; }
*::-webkit-scrollbar-thumb:hover{ background:var(--text-mute); }

/* ---------- 7. 抽屉 → 浮动面板 ---------- */
.drawer{
  background:color-mix(in srgb,var(--surface-1) 88%,transparent);
  -webkit-backdrop-filter:saturate(180%) blur(34px); backdrop-filter:saturate(180%) blur(34px);
  border-left:1px solid var(--hairline); box-shadow:var(--shadow-pop); border-radius:18px 0 0 18px;
  transition:transform .36s var(--spring);
}
.drawer-mask{ background:rgba(0,0,0,.32); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
.drawer .dh{ padding:16px 20px; border-bottom:1px solid var(--hairline); }
.drawer .x{ width:30px; height:30px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; }
.drawer .x:hover{ background:var(--surface-3); }
.toast{ background:color-mix(in srgb,var(--surface-1) 90%,transparent); -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); border:1px solid var(--hairline); box-shadow:var(--shadow-pop); border-radius:14px; animation:toastIn .32s var(--spring); }
@keyframes toastIn{ from{ opacity:0; transform:translateY(10px) scale(.96); } to{ opacity:1; transform:none; } }

/* ---------- 8. ⌘K Spotlight 命令面板 ---------- */
.spotlight{ position:fixed; inset:0; z-index:600; display:flex; align-items:flex-start; justify-content:center;
  padding-top:14vh; background:rgba(0,0,0,.34); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  opacity:0; pointer-events:none; transition:opacity .2s var(--ease); }
.spotlight.show{ opacity:1; pointer-events:auto; }
.spotlight .panel{ width:min(640px,92vw); background:color-mix(in srgb,var(--surface-1) 90%,transparent); border:1px solid var(--hairline);
  border-radius:var(--radius-xl); box-shadow:var(--shadow-pop); overflow:hidden; transform:translateY(-8px) scale(.98); transition:transform .28s var(--spring); }
.spotlight.show .panel{ transform:none; }
.spotlight .s-input{ display:flex; align-items:center; gap:12px; padding:18px 22px; border-bottom:1px solid var(--hairline); }
.spotlight .s-input .ic{ width:22px; height:22px; color:var(--text-mute); flex:none; }
.spotlight .s-input input{ flex:1; border:0; background:transparent; color:var(--text); font-size:18px; outline:none; }
.spotlight .s-input input::placeholder{ color:var(--text-mute); }
.spotlight .s-list{ max-height:52vh; overflow-y:auto; padding:8px; }
.spotlight .s-row{ display:flex; align-items:center; gap:13px; padding:11px 14px; border-radius:12px; cursor:pointer; color:var(--text-2); }
.spotlight .s-row .ic{ width:20px; height:20px; color:var(--text-mute); flex:none; }
.spotlight .s-row .s-t{ font-size:14.5px; color:var(--text); font-weight:500; }
.spotlight .s-row .s-g{ margin-left:auto; font-size:11.5px; color:var(--text-mute); }
.spotlight .s-row.sel{ background:color-mix(in srgb,var(--accent) 18%,transparent); color:var(--text); }
.spotlight .s-row.sel .ic{ color:var(--accent); }
.spotlight .s-empty{ padding:26px; text-align:center; color:var(--text-mute); font-size:14px; }
.spotlight .s-foot{ display:flex; gap:16px; padding:10px 18px; border-top:1px solid var(--hairline); font-size:11.5px; color:var(--text-mute); }
.spotlight .s-foot kbd{ border:1px solid var(--line); border-radius:5px; padding:0 5px; font-size:11px; }

/* ---------- 9. 响应式 ---------- */
@media (max-width:980px){
  .body{ grid-template-columns:1fr; }
  #view{ margin-left:0; }
  .topbar{ padding-left:20px; } /* 取消左偏移，汉堡出现接管导航 */
  .sidebar{ width:var(--rail-w-open); transform:translateX(-100%); transition:transform .3s var(--ease), box-shadow .3s; box-shadow:var(--shadow-pop); z-index:260; }
  .sidebar.open{ transform:translateX(0); }
  .sidebar:hover{ width:var(--rail-w-open); }
  .sidebar .navitem .lbl,.sidebar .navgroup .t,.sidebar .stop span{ opacity:1; transform:none; pointer-events:auto; max-width:200px; }
  .sidebar:not(:hover):not(.rail-open) .navitem{ justify-content:flex-start; padding-left:11px; padding-right:11px; }
  #navToggle{ display:inline-flex; }
}
@media (hover:none) and (min-width:981px){
  .sidebar{ width:var(--rail-w-open); }
  .sidebar .navitem .lbl,.sidebar .navgroup .t,.sidebar .stop span{ opacity:1; transform:none; pointer-events:auto; max-width:200px; }
  .sidebar:not(:hover):not(.rail-open) .navitem{ justify-content:flex-start; padding-left:11px; padding-right:11px; }
  #view{ margin-left:var(--rail-w-open); }
}
@media (max-width:560px){
  .brand .lab{ display:none; }
  .conn .txt{ display:none; }
  .topright{ gap:6px; }
  .spotlight{ padding-top:8vh; }
}
/* 尊重系统"减少动态效果" */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ========== 自主产品项目中心 ========== */
.pc-filter{ flex-wrap:wrap; gap:8px; margin:10px 0; }
.pc-filter label{ flex:1 1 140px; }
.kv-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:6px 18px; margin:8px 0 4px; }
.kv-grid .kv{ display:flex; gap:8px; font-size:13px; }
.kv-grid .kv .k{ color:var(--v-muted); min-width:74px; }
.kv-grid .kv .v{ color:var(--v-fg); flex:1; }
.pc-form label{ display:flex; flex-direction:column; gap:4px; flex:1 1 220px; margin-bottom:8px; font-size:12px; color:var(--v-muted); }
.pc-form textarea,.pc-form input,.pc-form select{ background:var(--v-surface-2); color:var(--v-fg); border:1px solid var(--v-border); border-radius:8px; padding:7px 9px; font:inherit; }
.pc-form .row{ display:flex; gap:10px; flex-wrap:wrap; }
.pc-det h3{ margin:16px 0 4px; font-size:14px; color:var(--v-fg-2); border-left:3px solid var(--v-accent); padding-left:8px; }
.pc-ai{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; padding:10px 12px; font-size:13px; line-height:1.6; color:var(--v-fg); white-space:pre-wrap; }
.pc-thumbs{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; margin:6px 0; }
.pc-thumb{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; overflow:hidden; }
.pc-thumb img{ width:100%; height:140px; object-fit:cover; display:block; background:#000; }
.pc-thumb-cap{ padding:6px 8px; font-size:12px; }
.pc-thumb-act{ display:flex; gap:4px; padding:0 8px 8px; flex-wrap:wrap; }
.pc-log{ display:flex; flex-direction:column; gap:8px; }
.pc-log-item{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; padding:8px 10px; }
.pc-log-time{ color:var(--v-muted); font-size:11px; margin:0 8px; }
.pc-log-actor{ color:var(--v-muted); font-size:11px; }
.pc-log-content{ margin-top:4px; font-size:13px; line-height:1.5; color:var(--v-fg); white-space:pre-wrap; }
.pc-link .tip{ margin-bottom:8px; }

/* 项目中心补充样式（列表计数条 / 阶段胶囊 / 标题标签 / 卡片标题与元信息 / alt 按钮） */
.countbar{ display:flex; gap:14px; flex-wrap:wrap; margin:10px 0; }
.countbar>div{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; padding:8px 14px; font-size:13px; color:var(--v-muted); }
.countbar>div b{ font-size:18px; color:var(--v-fg); margin-right:6px; }
.pill{ display:inline-block; background:var(--v-surface-2); border:1px solid var(--v-border); color:var(--v-muted); border-radius:999px; padding:2px 10px; font-size:12px; margin:2px 4px 2px 0; }
.tag{ display:inline-block; margin-left:8px; padding:2px 10px; border-radius:999px; font-size:12px; font-weight:500; background:color-mix(in srgb,var(--v-accent) 18%,transparent); color:var(--v-fg-2); vertical-align:middle; }
.legend{ display:flex; gap:18px; flex-wrap:wrap; font-size:12px; color:var(--v-muted); margin:6px 0 2px; }
.legend span::before{ content:"•"; margin-right:4px; }
.cards .ct{ font-size:14px; margin-bottom:4px; }
.cards .cm{ font-size:12px; color:var(--v-muted); line-height:1.5; margin-bottom:2px; }
button.alt{ background:var(--v-surface-2); color:var(--v-fg); border:1px solid var(--v-border); border-radius:8px; padding:6px 12px; cursor:pointer; font:inherit; }
button.alt:hover{ border-color:var(--v-accent); }

/* ===== AI 产品方案生成器 ===== */
.pc-plans{ display:flex; flex-direction:column; gap:10px; margin:4px 0 8px; }
.pc-plan-card{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; padding:10px 12px; }
.pc-plan-card.adopted{ border-color:color-mix(in srgb,var(--v-ok) 55%,var(--v-border)); box-shadow:0 0 0 1px color-mix(in srgb,var(--v-ok) 25%,transparent); }
.pc-plan-head{ display:flex; align-items:center; gap:8px; }
.pc-plan-head b{ font-size:14px; }
.pc-plan-model{ margin-left:auto; font-size:11px; color:var(--v-muted); }
.pc-plan-one{ font-size:13px; color:var(--v-fg); margin:6px 0; line-height:1.5; }
.pc-plan-act{ display:flex; gap:6px; flex-wrap:wrap; }
.mt10{ margin-top:10px; }
.tip.warn{ background:color-mix(in srgb,var(--v-warn) 16%,var(--v-surface-2)); border-color:color-mix(in srgb,var(--v-warn) 45%,var(--v-border)); }
.pc-plan-fields{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; padding:6px 12px; margin-top:6px; }
.pc-plan-row{ display:grid; grid-template-columns:170px 1fr; gap:12px; padding:7px 0; border-bottom:1px solid var(--v-hair); }
.pc-plan-row:last-child{ border-bottom:none; }
.pc-plan-label{ font-size:12px; color:var(--v-muted); display:flex; flex-direction:column; gap:4px; }
.pc-plan-val{ font-size:13px; color:var(--v-fg); line-height:1.55; white-space:pre-wrap; }
.evi{ display:inline-block; padding:1px 8px; border-radius:999px; font-size:11px; font-weight:500; border:1px solid transparent; }
.evi.evidence{ background:color-mix(in srgb,var(--v-ok) 16%,transparent); color:var(--v-ok); border-color:color-mix(in srgb,var(--v-ok) 40%,transparent); }
.evi.ai{ background:color-mix(in srgb,var(--v-accent) 16%,transparent); color:var(--v-accent); border-color:color-mix(in srgb,var(--v-accent) 40%,transparent); }
.evi.human{ background:color-mix(in srgb,var(--v-warn) 18%,transparent); color:var(--v-warn); border-color:color-mix(in srgb,var(--v-warn) 45%,transparent); }
.evi.missing{ background:color-mix(in srgb,var(--v-danger) 16%,transparent); color:var(--v-danger); border-color:color-mix(in srgb,var(--v-danger) 45%,transparent); }
.evi.humantag{ background:var(--v-surface); color:var(--v-muted); border-color:var(--v-border); }
.evi.diff{ background:color-mix(in srgb,var(--v-warn) 22%,transparent); color:var(--v-warn); border-color:color-mix(in srgb,var(--v-warn) 50%,transparent); }
.pc-raw{ margin-top:8px; }
.pc-raw summary{ cursor:pointer; font-size:12px; color:var(--v-muted); padding:4px 0; }
.pc-raw[open] summary{ color:var(--v-fg); }
.pc-plan-evi{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; padding:10px 12px; }
.pc-eff label, .pc-edit label{ display:block; margin-bottom:8px; font-size:12px; color:var(--v-muted); }
.pc-eff textarea, .pc-edit textarea{ width:100%; background:var(--v-surface); color:var(--v-fg); border:1px solid var(--v-border); border-radius:8px; padding:8px; font:inherit; font-size:13px; line-height:1.5; resize:vertical; }
.pc-edit-f{ display:block; margin-bottom:6px; }
.pc-edit-f textarea{ margin-top:2px; }
.pc-cmp-table{ width:100%; border-collapse:collapse; margin-top:8px; font-size:13px; }
.pc-cmp-table th, .pc-cmp-table td{ border:1px solid var(--v-border); padding:8px 10px; text-align:left; vertical-align:top; }
.pc-cmp-table th{ background:var(--v-surface-2); color:var(--v-muted); font-weight:600; }
.pc-cmp-table tr.diff-on{ background:color-mix(in srgb,var(--v-warn) 12%,transparent); }
.pc-cmp-table tr.diff-on td:first-child{ color:var(--v-warn); font-weight:600; }
.pc-cmp .row{ align-items:flex-end; }

/* ===== 效果图版本树 + 定向修改（Feature B） ===== */
.pc-thumb.main{ border-color:color-mix(in srgb,var(--v-ok) 55%,var(--v-border)); box-shadow:0 0 0 1px color-mix(in srgb,var(--v-ok) 28%,transparent); }
.pc-thumb.failed{ border-color:color-mix(in srgb,var(--v-danger) 50%,var(--v-border)); }
.pc-thumb-fail{ height:140px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:8px; font-size:12px; color:var(--v-danger); background:color-mix(in srgb,var(--v-danger) 10%,var(--v-surface-2)); }
.pc-thumb-fail small{ color:var(--v-muted); font-size:11px; }

.pc-vtree{ margin:8px 0; }
.pc-vnode{ background:var(--v-surface-1); border:1px solid var(--v-border); border-radius:10px; padding:8px 10px; margin:8px 0; }
.pc-vnode.main{ border-color:color-mix(in srgb,var(--v-ok) 55%,var(--v-border)); box-shadow:0 0 0 1px color-mix(in srgb,var(--v-ok) 25%,transparent); }
.pc-vnode.failed{ border-color:color-mix(in srgb,var(--v-danger) 50%,var(--v-border)); }
.pc-vnode-head{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
.pc-vlabel{ font-size:14px; font-weight:600; color:var(--v-fg); }
.pc-vtime{ font-size:11px; color:var(--v-muted); }
.pc-vnode-body{ display:flex; gap:10px; align-items:flex-start; }
.pc-vthumb{ flex:0 0 150px; }
.pc-vthumb img{ width:150px; height:150px; object-fit:cover; border-radius:8px; background:#000; display:block; }
.pc-vnode-act{ display:flex; gap:5px; flex-wrap:wrap; align-items:center; margin-top:6px; }
.pc-vsel{ display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--v-muted); }
.pc-vmeta{ font-size:12px; color:var(--v-fg-2); margin-top:6px; line-height:1.5; }
.pc-vprompt{ font-size:12px; color:var(--v-muted); white-space:pre-wrap; line-height:1.5; padding:6px 8px; background:var(--v-surface-2); border-radius:8px; margin-top:4px; }

.pc-refbar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:6px 0; padding:8px 10px; background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; }
.pc-refbar b{ font-size:12px; color:var(--v-muted); }
.pc-refchip{ width:46px; height:46px; object-fit:cover; border-radius:8px; border:1px solid var(--v-border); }

.pc-imgmod label, .pc-imgref label{ display:block; margin-bottom:10px; font-size:12px; color:var(--v-muted); }
.pc-imgmod select, .pc-imgref select, .pc-imgmod textarea, .pc-imgref input[type=file]{ width:100%; }
.pc-imgmod textarea, .pc-imgref textarea{ background:var(--v-surface); color:var(--v-fg); border:1px solid var(--v-border); border-radius:8px; padding:8px; font:inherit; font-size:13px; line-height:1.5; resize:vertical; }
.pc-imgmod-parent{ display:flex; flex-direction:column; gap:6px; margin-bottom:10px; padding:8px 10px; background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; }
.pc-imgmod-parent img{ max-width:220px; border-radius:8px; }
.pc-imgmod-refs .pc-thumbs.sm{ grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:8px; margin-top:4px; }
.pc-refopt{ display:flex; flex-direction:column; align-items:center; gap:2px; font-size:11px; color:var(--v-muted); cursor:pointer; }
.pc-refopt img{ width:100%; height:84px; object-fit:cover; border-radius:8px; border:1px solid var(--v-border); background:#000; }
.pc-refopt input{ margin-top:2px; }

.pc-cmpimg{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin:8px 0; }
.pc-cmpcell{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; overflow:hidden; }
.pc-cmpcell img{ width:100%; height:180px; object-fit:cover; display:block; background:#000; }
.pc-cmplabel{ padding:6px 8px; font-size:12px; color:var(--v-fg-2); }
.pc-cmplabel small{ color:var(--v-muted); }

/* ── 成本·利润·打样决策中心（Feature C）── */
.pc-cost{ max-width:100%; }
.pc-cost-tabs{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid var(--v-border); }
.pc-ctab{ background:var(--v-surface-2); color:var(--v-muted); border:1px solid var(--v-border); border-radius:8px; padding:6px 11px; font-size:12.5px; cursor:pointer; }
.pc-ctab.on{ background:color-mix(in srgb,var(--v-accent) 22%,transparent); color:var(--v-fg); border-color:var(--v-accent); }
.pc-cost-body{ margin-top:4px; }
.pc-cost-body h4{ margin:12px 0 4px; font-size:13px; color:var(--v-fg-2); }
.pc-cmform{ display:flex; flex-wrap:wrap; gap:8px 14px; margin:8px 0; }
.pc-cmform label{ display:flex; flex-direction:column; gap:3px; font-size:12px; color:var(--v-muted); flex:1 1 200px; max-width:260px; }
.pc-cmform input{ background:var(--v-surface-2); color:var(--v-fg); border:1px solid var(--v-border); border-radius:8px; padding:6px 8px; font:inherit; }
.pc-bomedit label{ display:flex; flex-direction:column; gap:3px; font-size:12px; color:var(--v-muted); flex:1 1 200px; max-width:280px; }
.pc-bomedit input,.pc-bomedit select{ background:var(--v-surface-2); color:var(--v-fg); border:1px solid var(--v-border); border-radius:8px; padding:6px 8px; font:inherit; }
.pc-bomtable{ overflow-x:auto; margin:10px 0; border:1px solid var(--v-border); border-radius:10px; }
.pc-bomtable table{ width:100%; border-collapse:collapse; font-size:12px; }
.pc-bomtable th,.pc-bomtable td{ border:1px solid var(--v-border); padding:4px 6px; text-align:left; vertical-align:top; }
.pc-bomtable th{ background:var(--v-surface-2); color:var(--v-fg-2); white-space:nowrap; }
.pc-bomtable input,.pc-bomtable select{ width:96px; background:var(--v-surface); color:var(--v-fg); border:1px solid var(--v-border); border-radius:6px; padding:3px 5px; font:inherit; font-size:12px; }
.pc-mode{ font-size:10.5px; color:var(--v-muted); border:1px solid var(--v-border); border-radius:6px; padding:0 5px; margin-left:4px; }
.pc-ok-line{ background:color-mix(in srgb,var(--v-ok) 14%,transparent); border:1px solid var(--v-ok); color:var(--v-fg); border-radius:8px; padding:7px 10px; font-size:13px; margin:6px 0; }
.pc-warn-line{ background:color-mix(in srgb,var(--v-danger) 12%,transparent); border:1px solid var(--v-danger); color:var(--v-fg); border-radius:8px; padding:7px 10px; font-size:13px; margin:6px 0; }
.pc-fails{ margin:6px 0 0 18px; padding:0; }
.pc-fails li{ margin:2px 0; color:var(--v-fg-2); }
.pc-gate{ font-size:13px; line-height:1.7; }
.badge.b-ai{ background:color-mix(in srgb,var(--v-accent-2) 22%,transparent); color:var(--v-fg); border:1px solid var(--v-accent-2); }
.pc-ai-block{ background:var(--v-surface-2); border:1px solid var(--v-border); border-left:3px solid var(--v-accent-2); border-radius:10px; padding:10px 12px; font-size:13px; line-height:1.7; color:var(--v-fg); margin:8px 0; }
.pc-ai-block b{ color:var(--v-fg-2); }
.pc-refbar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:8px 0; font-size:12px; color:var(--v-muted); }
.pc-refchip{ width:64px; height:64px; object-fit:cover; border-radius:8px; border:1px solid var(--v-border); background:#000; }

/* 真实用户测试与需求验证中心（Feature D）—— 复用 pc-cost 组件，仅补少量布局 */
.pc-cost .blk-act label{ display:inline-flex; align-items:center; gap:4px; }
.pc-cost .blk-act select{ background:var(--v-surface-2); color:var(--v-fg); border:1px solid var(--v-border); border-radius:8px; padding:4px 6px; font:inherit; }

/* 小批量试产与市场验证中心（Feature E）—— 复用 pc-cost 暗色组件 */
button.primary{ background:linear-gradient(180deg,var(--v-accent),color-mix(in srgb,var(--v-accent) 80%,#000)); color:#fff; border:1px solid var(--v-accent); border-radius:8px; padding:6px 12px; cursor:pointer; font:inherit; font-weight:600; }
button.primary:hover{ filter:brightness(1.08); }
.pc-table{ width:100%; border-collapse:collapse; font-size:12.5px; }
.pc-table th{ text-align:left; color:var(--v-muted); font-weight:600; padding:7px 9px; border-bottom:1px solid var(--v-border); background:var(--v-surface-2); position:sticky; top:0; }
.pc-table td{ padding:6px 9px; border-bottom:1px solid var(--v-border); color:var(--v-fg); vertical-align:top; }
.pc-table tbody tr:hover{ background:color-mix(in srgb,var(--v-accent) 8%,transparent); }
.pc-ok-line{ padding:8px 10px; border-radius:8px; background:color-mix(in srgb,var(--v-ok,#2e9e5b) 14%,transparent); border:1px solid color-mix(in srgb,var(--v-ok,#2e9e5b) 40%,transparent); margin:6px 0; }
.pc-warn-line{ padding:8px 10px; border-radius:8px; background:color-mix(in srgb,#d9534f 12%,transparent); border:1px solid color-mix(in srgb,#d9534f 40%,transparent); margin:6px 0; }
.pc-vprompt code{ background:var(--v-surface-2); padding:1px 5px; border-radius:5px; }
.pc-det.pc-cost .pc-table{ background:var(--v-surface-1); }

/* 商品化、品牌资产与上市发布中心（Feature F）—— 复用 pc-cost 暗色组件 */
.pc-cost .blk-edit{ background:var(--v-surface-1); border:1px solid var(--v-border); border-radius:10px; padding:10px 12px; margin:8px 0; }
.pc-cost .blk-edit h4{ margin:0 0 8px; font-size:14px; color:var(--v-fg-2); font-weight:600; }
.pc-cost .blk-edit .blk-act{ margin-top:10px; }
.blk-edit{ background:var(--v-surface-1); border:1px solid var(--v-border); border-radius:10px; padding:10px 12px; margin:8px 0; }
.blk-edit h4{ margin:0 0 8px; font-size:14px; color:var(--v-fg-2); font-weight:600; }

/* 研发总驾驶舱与智能待办中心（Feature G）—— 复用 pc-cost 暗色组件 */
.ck-metrics{ display:grid; grid-template-columns:repeat(auto-fill,minmax(196px,1fr)); gap:12px; margin:10px 0; }
.ck-metric{ border:1px solid var(--v-border); border-radius:12px; background:var(--v-surface-1); padding:13px 14px; cursor:pointer; transition:transform .15s, border-color .15s; }
.ck-metric:hover{ border-color:var(--v-accent); transform:translateY(-2px); }
.ck-metric .v{ font-size:22px; font-weight:700; color:var(--v-fg); }
.ck-metric .l{ font-size:12.5px; color:var(--v-muted); margin-top:5px; line-height:1.4; }
.ck-note{ font-size:12px; color:var(--v-muted); margin:6px 0; }
.pri-P0{ background:color-mix(in srgb,#d9534f 22%,transparent); color:#ffd9d6; border:1px solid #d9534f; }
.pri-P1{ background:color-mix(in srgb,#e08e0b 22%,transparent); color:#ffe6bf; border:1px solid #e08e0b; }
.pri-P2{ background:color-mix(in srgb,#3a7bd5 20%,transparent); color:#cfe0ff; border:1px solid #3a7bd5; }
.pri-P3{ background:color-mix(in srgb,var(--v-muted) 18%,transparent); color:var(--v-fg); border:1px solid var(--v-border); }
.ck-bar{ display:flex; align-items:center; gap:8px; margin:4px 0; font-size:12.5px; }
.ck-bar .track{ flex:1; height:10px; background:var(--v-surface-2); border-radius:6px; overflow:hidden; }
.ck-bar .fill{ height:100%; background:var(--v-accent); }
.ck-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:5px; vertical-align:middle; }
.dot-ok{ background:#2e9e5b; } .dot-warn{ background:#e08e0b; } .dot-bad{ background:#d9534f; }
.ck-reason{ font-size:12px; color:var(--v-fg-2); margin:3px 0; }
.pc-cost .ck-metric .v{ color:var(--v-fg); }

/* ── 系统保障中心 ── */
.ck-row{ display:flex; flex-wrap:wrap; gap:10px; margin:8px 0; }
.ck-metric{ flex:1 1 160px; min-width:150px; background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:10px; padding:12px 14px; }
.ck-metric .t{ font-size:12px; color:var(--v-fg-2); margin-bottom:6px; }
.ck-metric .v{ font-size:18px; font-weight:700; color:var(--v-fg); }
.ck-tabbar{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; border-bottom:1px solid var(--v-border); padding-bottom:8px; }
.ck-tab{ background:var(--v-surface-2); color:var(--v-fg-2); border:1px solid var(--v-border); border-radius:8px; padding:6px 12px; cursor:pointer; font-size:13px; }
.ck-tab.active{ background:var(--v-accent); color:#fff; border-color:var(--v-accent); }
.ck-table{ width:100%; border-collapse:collapse; font-size:13px; margin-top:6px; }
.ck-table th,.ck-table td{ border:1px solid var(--v-border); padding:6px 8px; text-align:left; }
.ck-table th{ background:var(--v-surface-2); color:var(--v-fg-2); }
.ck-table tr:nth-child(even){ background:rgba(255,255,255,.02); }
.ck-note{ font-size:12px; color:var(--v-fg-2); background:var(--v-surface-2); border-left:3px solid var(--v-accent); padding:8px 10px; border-radius:6px; margin:8px 0; }
.ck-block{ margin:10px 0; }
.ck-block h4{ margin:6px 0; color:var(--v-fg); }
.ck-alert{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:8px; padding:8px 10px; margin:6px 0; }
.ck-filter{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.ck-filter select,.ck-filter input{ background:var(--v-surface-2); color:var(--v-fg); border:1px solid var(--v-border); border-radius:6px; padding:5px 8px; }
.ck-doc{ font-size:13px; line-height:1.6; color:var(--v-fg); white-space:normal; }
.ck-doc pre{ background:var(--v-surface-2); border:1px solid var(--v-border); border-radius:8px; padding:10px; overflow:auto; }
.ck-alert b{ color:var(--v-fg); }
.ck-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:5px; vertical-align:middle; }
.pri-P0{ background:#d9534f; color:#fff; padding:1px 7px; border-radius:6px; font-size:11px; font-weight:700; }
.pri-P1{ background:#e08e0b; color:#fff; padding:1px 7px; border-radius:6px; font-size:11px; font-weight:700; }
.pri-P2{ background:#3a7bd5; color:#fff; padding:1px 7px; border-radius:6px; font-size:11px; font-weight:700; }
.pri-P3{ background:#5a6b7b; color:#fff; padding:1px 7px; border-radius:6px; font-size:11px; font-weight:700; }

/* ============================================================
   V1.2.2 任务引导卡（首页"今天想做什么？"四大入口）
   ============================================================ */
.taskguide{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0 8px}
.tg-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;border-radius:var(--radius-lg);
  background:var(--surface-1);border:1px solid var(--hairline);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;
  transition:transform .18s var(--spring),border-color .18s,box-shadow .18s}
.tg-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow)}
.tg-ic{font-size:22px;line-height:1;color:var(--accent)}
.tg-t{font-size:15px;font-weight:600;color:var(--text)}
.tg-d{font-size:12.5px;color:var(--text-mute);line-height:1.5}
@media (max-width:900px){.taskguide{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   V1.2.2 资料完整度条（检索卡）
   ============================================================ */
.lib-comp{display:flex;align-items:center;gap:8px;margin:6px 0 2px}
.lib-comp-lb{font-size:11.5px;color:var(--text-mute);white-space:nowrap}
.lib-comp-bar{flex:1;height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.lib-comp-bar i{display:block;height:100%;border-radius:3px;background:var(--accent)}
.lib-comp-bar.libc-low i{background:var(--danger)}
.lib-comp-bar.libc-mid i{background:var(--assume)}
.lib-comp-n{font-size:11.5px;min-width:34px;text-align:right;color:var(--text-mute);font-variant-numeric:tabular-nums}
.lib-comp-n.libc-low{color:var(--danger)}
.lib-comp-n.libc-mid{color:var(--assume)}
.lib-comp-n.libc-hi{color:var(--ok)}
