﻿/* =========================================================
   JJYB_AI智剪 — Quantum Lab 科幻风（2026-10-27 升级）
   变量名 --pd-* 保留历史（上千处引用），值全部指向 tokens.css。
   ========================================================= */
:root {
  color-scheme: light;

  /* 画布：深太空蓝 */
  --pd-bg-deep: #141414;
  --pd-bg-mid: #141414;
  --pd-bg-soft: #141414;
  --pd-sidebar: #141414;
  --pd-card: #141414;
  --pd-card-hover: #141414;

  /* 边框 */
  --pd-border: #d4d8dd;
  --pd-border-strong: #c3cad3;

  /* 主强调：霓虹青（变量名 --pd-pink 是历史遗留） */
  --pd-pink: #1f5c4d;
  --pd-pink-2: #1f5c4d;
  --pd-pink-dim: rgba(31, 92, 77, 0.12);

  /* 文字 */
  --pd-text: #eef2f8;
  --pd-text-2: #5f6b78;
  --pd-text-3: #6b7683;

  /* 状态 */
  --pd-success: #1f5c4d;
  --pd-failed: #f7eeec;
  --pd-pending: #b45309;
  --pd-running: #eef2f8;

  /* 字体 */
  --pd-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --pd-w: 232px;
  --pd-main-max: 1760px;

  /* 区块底色（统一指向深空） */
  --t-green-s:  #141414;  --t-green-b:  #141414;
  --t-blue-s:   #141414;  --t-blue-b:   #141414;
  --t-teal-s:   #141414;  --t-teal-b:   #141414;
  --t-amber-s:  #141414;  --t-amber-b:  #141414;
  --t-violet-s: #141414;  --t-violet-b: #141414;
  --t-rose-s:   #141414;  --t-rose-b:   #141414;
  /* 区块内强调文字 */
  --t-green-ink: #1f5c4d;
  --t-blue-ink: #eef2f8;
  --t-teal-ink: #1f5c4d;
  --t-violet-ink: var(--pd-text-2);
  --t-rose-ink: var(--pd-text-2);

  /* 阴影 */
  --pd-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.30);
  --pd-shadow-md: 0 2px 10px rgba(0, 0, 0, 0.35);
  --pd-shadow-lg: 0 16px 44px rgba(0, 0, 0, 0.50);
}

/* 整体覆盖 */
html, body, .pd-root {
  background: var(--pd-bg-deep);
  color: var(--pd-text);
  min-height: 100vh;
}
.pd-root {
  display: grid;
  grid-template-columns: var(--pd-w) 1fr;
  min-height: 100vh;
}

/* ====================== 侧栏 ====================== */
.pd-sidebar {
  background: var(--pd-sidebar);
  border-right: 1px solid #141414;
  padding: 18px 16px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}
.pd-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 6px;
}
.pd-brand-mark {
  width: 28px; height: 28px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--pd-pink), var(--pd-pink-2));
  display: grid; place-items: center;
  font-weight: 800; color: white; font-size: 14px;
}
.pd-brand-name { font-weight: 800; font-size: 15px; }
.pd-brand-sub { font-size: 10px; color: var(--pd-text-3); letter-spacing: 1px; margin-top: 1px; }

.pd-section-title {
  font-size: 10px; font-weight: 700; letter-spacing: 1.5px;
  color: var(--pd-text-3); text-transform: uppercase;
  padding: 0 6px; margin-bottom: 6px;
}

.pd-platform { padding: 0 6px; }
.pd-platform select {
  width: 100%;
  background: #ffffff;
  border: 1px solid #141414;
  color: var(--pd-text);
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 13px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23047857' d='M5 6L0 0h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 26px;
}
.pd-platform select option {
  background: var(--pd-bg-mid);
  color: var(--pd-text);
}

/* 抖音账号状态卡（侧边栏） */
.pd-account { padding: 0 6px; }
.pd-account-row {
  display: flex; align-items: center; gap: 9px;
  padding: 9px 12px;
  border-radius: 10px;
  background: #ffffff;
  border: 1px solid #141414;
  cursor: pointer;
  font-size: 12px;
  color: var(--pd-text-2);
  transition: background 0.12s, border-color 0.12s;
  user-select: none;
}
.pd-account-row:hover {
  background: #ffffff;
  border-color: #c3cad3;
}
.pd-account-dot {
  width: 8px; height: 8px; border-radius: 50%;
  flex-shrink: 0;
  background: var(--pd-text-3);
  transition: background 0.18s, box-shadow 0.18s;
}
.pd-account-dot.pd-account-dot-ok {
  background: #1f5c4d;
  box-shadow: 0 0 8px rgba(31, 92, 77, 0.55);
}
.pd-account-dot.pd-account-dot-bad {
  background: #f7eeec;
  box-shadow: 0 0 8px rgba(168, 60, 49, 0.55);
}
.pd-account-text {
  flex: 1; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pd-account-action { font-size: 13px; opacity: 0.7; flex-shrink: 0; }

/* 抖音登录独立页面 */
.pd-login-page {
  max-width: 720px;
  margin: 0 auto;
  display: flex; flex-direction: column; gap: 16px;
}
.pd-login-page-status {
  display: flex; align-items: center; gap: 16px;
  padding: 22px 24px;
  background: rgba(20, 20, 20, 0.03);
  border: 1px solid #d4d8dd;
  border-radius: 14px;
}
.pd-login-page-status .pd-account-dot { width: 14px; height: 14px; }
.pd-login-page-status-text { font-size: 16px; font-weight: 600; color: var(--pd-text); }
.pd-login-page-detail { font-size: 12px; color: var(--pd-text-3); margin-top: 4px; }
.pd-login-page-url-box {
  display: flex; gap: 8px;
  padding: 14px;
  background: rgba(20, 20, 20, 0.03);
  border: 1px solid #d4d8dd;
  border-radius: 12px;
  align-items: center;
}
.pd-login-page-url {
  flex: 1; min-width: 0;
  background: #ffffff;
  border: 1px solid #d4d8dd;
  color: var(--pd-text);
  padding: 10px 12px;
  border-radius: 8px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
}
.pd-login-page-url:focus { outline: 1px solid var(--pd-pink); border-color: var(--pd-pink); }
.pd-login-page-actions {
  display: flex; gap: 10px; flex-wrap: wrap;
  margin-top: 14px;
}
.pd-login-instruction {
  color: var(--pd-text-dim);
  font-size: 13px; line-height: 1.7;
  margin: 0 0 12px;
}
.pd-login-instruction code {
  background: rgba(20, 20, 20, 0.05);
  padding: 1px 6px; border-radius: 4px;
  font-size: 12px;
}

.pd-nav { display: flex; flex-direction: column; gap: 2px; }
.pd-nav a {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px;
  border-radius: 10px;
  color: var(--pd-text-2);
  font-size: 13px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.12s, color 0.12s;
}
.pd-nav a:hover { background: rgba(255, 255, 255, 0.55); color: var(--pd-text); }
.pd-nav a.active {
  background: #ffffff;
  color: #2f5d8a;
  font-weight: 600;
  position: relative;
}
.pd-nav a.active::before {
  content: '';
  position: absolute;
  left: 0; top: 50%; transform: translateY(-50%);
  width: 3px; height: 14px;
  background: #141414;
  border-radius: 0 2px 2px 0;
}
.pd-nav .pd-nav-badge {
  margin-left: auto;
  background: var(--pd-pink);
  color: white;
  font-size: 11px;
  font-weight: 700;
  border-radius: 999px;
  padding: 1px 7px;
  min-width: 18px;
  text-align: center;
}
.pd-nav-badge.hidden { display: none; }
.hidden { display: none !important; }

.pd-sidebar-foot {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #141414;
  /* 240px 侧栏里一行塞 6 个会把「本地代理」挤成竖排 → 改 3 列两行（2026-09-20） */
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px;
}
.pd-sidebar-foot button {
  background: #ffffff;
  border: 1px solid #141414;
  color: var(--pd-text-2);
  padding: 8px 4px;
  border-radius: 8px;
  font-size: 11px;
  cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  min-width: 0;
  white-space: nowrap;
  transition: all 0.12s;
}
.pd-sidebar-foot button:hover {
  border-color: #141414;
  background: var(--pd-card-hover);
  color: #2f5d8a;
}
.pd-sidebar-foot .pd-foot-icon { font-size: 14px; }
.pd-sidebar-foot button.proxy-on { border-color: rgba(31, 92, 77, 0.55); color: #2f5d8a; }
.pd-sidebar-foot button.proxy-on .pd-foot-icon { filter: drop-shadow(0 0 4px rgba(31, 92, 77, 0.6)); }

/* ====================== 主区 ====================== */
/* 自适应：跟随窗口宽度铺满，只有超宽屏才受限宽约束并居中。
   （2026-09-20 改：原先写死 max-width:1200px 且左对齐，1920 屏右边空 ~480px） */
.pd-main {
  width: 100%;
  min-width: 0;
  max-width: var(--pd-main-max);
  margin: 0 auto;
  padding: clamp(20px, 1.5vw, 32px) clamp(18px, 2vw, 44px) 80px;
}

.pd-hero {
  position: relative;
  margin-bottom: 28px;
  background: #141414;
  border: 1px solid #141414;
  border-radius: 18px;
  padding: 22px 28px;
}
.pd-hero h1 {
  font-size: 38px;
  font-weight: 800;
  margin: 0;
  letter-spacing: 0.5px;
  line-height: 1.15;
}
.pd-hero h1 em {
  font-style: normal;
  color: var(--pd-pink);
}
.pd-hero-meta {
  margin-top: 4px;
  font-size: 12px;
  color: var(--pd-pink);
  letter-spacing: 1.5px;
}
.pd-hero-meta::before {
  content: '•';
  margin-right: 6px;
  color: var(--pd-pink);
}
.pd-hero-deco {
  position: absolute;
  top: -10px; right: 0;
  font-size: 64px;
  opacity: 0.18;
  pointer-events: none;
}

/* ====================== 卡片 ====================== */
/* 页面布局约定（2026-09-20 固化）—— 新增页面请只用这几件套，不要在页面里写死 px 宽度。
   1) 默认               <article class="pd-page" data-page="xxx">
                         → 单列，卡片自动铺满主区可用宽度（无需任何额外 class）
   2) 并排两栏           同上再加 is-split
                         → 左主(1.7) + 右辅(1) 两栏；窗口 <1100px 自动塌成一列
   3) 卡片墙（按宽自动分栏） 同上再加 is-grid
                         → auto-fit，宽度够就 2/3/4 栏，不够就 1 栏
   4) 一栏里叠多张卡      <div class="pd-stack"> 包起来（配 is-split 用）
   5) 某张卡横跨整行      卡片加 span-all（仅在有 is-split / is-grid 的页面里用）
   ⚠️ 页面里一律不要写 max-width: 数字px / width: 数字px（输入框这种小控件除外）。
   ========================================================================= */
.pd-page { display: none; flex-direction: column; gap: 18px; }
.pd-page.active { display: flex; }

.pd-page.active.is-split,
.pd-page.active.is-grid { display: grid; gap: 18px; align-items: start; }
.pd-page.active.is-split { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
.pd-page.active.is-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.pd-page > .span-all { grid-column: 1 / -1; }

/* 同一栏里竖排多张卡（配 is-split / is-grid 用） */
.pd-stack { display: flex; flex-direction: column; gap: 18px; min-width: 0; }

/* 窄屏：并排两栏塌成单列（卡片墙靠 auto-fit 自己塌，不用管） */
@media (max-width: 1100px) {
  .pd-page.active.is-split { grid-template-columns: minmax(0, 1fr); }
}

.pd-card {
  background: var(--pd-card);
  border: 1px solid var(--pd-border);
  border-radius: 16px;
  padding: 22px 24px;
  position: relative;
  transition: border-color 0.12s, background 0.12s;
}
.pd-card:hover { border-color: var(--pd-border-strong); }
.pd-card-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--pd-pink);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.pd-card-tag::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--pd-pink);
  box-shadow: 0 0 6px var(--pd-pink);
}
.pd-card h2 {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 14px;
}
.pd-card p.pd-card-desc {
  font-size: 13px;
  color: var(--pd-text-2);
  margin: 0 0 14px;
  line-height: 1.55;
}

/* 输入行 */
.pd-input-row {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
.pd-input-row input,
.pd-input-row textarea {
  flex: 1;
  background: #ffffff;
  border: 1px solid #d4d8dd;
  border-radius: 12px;
  padding: 12px 14px;
  color: var(--pd-text);
  font-size: 14px;
  font-family: inherit;
  outline: none;
  transition: border-color 0.12s;
}
.pd-input-row input::placeholder,
.pd-input-row textarea::placeholder { color: var(--pd-text-3); }
.pd-input-row input:focus,
.pd-input-row textarea:focus { border-color: #c3cad3; }
.pd-input-row textarea {
  min-height: 140px;
  resize: vertical;
  font-family: ui-monospace, "Cascadia Code", monospace;
  font-size: 13px;
  line-height: 1.6;
}

/* ====================== 视频制作工作台（2026-10-14 新增，7 步流水线） ======================
   复刻「原创视频制作工作台」的步骤式交互。
   2026-10-15 两处大改（用户反馈「没有平铺拉满 + 颜色难看，改清新风格」）：
   ① 宽度：.pdvw-root 不写宽度——父级 .pd-page.active 是 flex 列，子项带 auto margin
      会「不拉伸、按内容宽度收缩并居中」（实测 1920 屏整页仅 701px、两边各空 450px）。
      与 .pd-studio 一致，自然铺满主区可用宽度。
   ② 配色：整页换「浅色薄荷清新」。变量挂在 article 上而不是 .pdvw-root——三个弹层
      是 root 的兄弟节点，挂 root 够不到（弹层里 .pdvw-btn-primary 的渐变会因变量
      未定义而整段失效、按钮变透明）。同时局部覆盖 --pd-text*/--pd-border 等全局
      变量，让复用全局类的弹层/表单/下拉一起翻浅；color-scheme:light 让岛内原生
      控件（select 弹层/滚动条）也走浅色。 */
.pdvw-root {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.pd-page[data-page="video"] {
  color-scheme: light;
  /* Quantum Lab 科幻风 — 视频工作台局部变量 */
  --vw-accent: #1f5c4d;
  --vw-accent-deep: #1f5c4d;
  --vw-accent-2: #1f5c4d;
  --vw-accent-soft: rgba(31, 92, 77, 0.12);
  --vw-ok: #1f5c4d;
  --vw-wait: #b45309;
  --vw-canvas: #eef5f2;
  --vw-surface: #141414;
  --vw-surface-2: #141414;
  --vw-border: #141414;
  --vw-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 10px 28px rgba(0, 0, 0, 0.35);
  /* 局部覆盖全局变量（只影响本 article 内，含弹层） */
  --pd-bg-mid: #141414;
  --pd-card: #141414;
  --pd-card-hover: #141414;
  --pd-border: #141414;
  --pd-border-strong: #2f5d8a;
  --pd-text: #eef2f8;
  --pd-text-2: #5f6b78;
  --pd-text-3: #6b7683;
  --pd-failed: #f7eeec;
  --pd-running: #eef2f8;
}
/* 浅色画布：整页一块淡薄荷底，白色面板浮上去（深色主站里的「清新岛」） */
.pd-page[data-page="video"].active {
  background: var(--vw-canvas);
  border: 1px solid var(--vw-border);
  border-radius: 18px;
  padding: clamp(16px, 1.4vw, 26px);
}

/* ---- 顶部 ---- */
.pdvw-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 14px; flex-wrap: wrap;
}
.pdvw-head-main h1 { margin: 0 0 6px; font-size: 21px; letter-spacing: .5px; }
.pdvw-crumb {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  font-size: 12.5px; color: var(--pd-text-2);
}
.pdvw-crumb i { font-style: normal; color: var(--pd-text-3); }
.pdvw-head-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pdvw-hbtn {
  background: var(--vw-surface); color: var(--pd-text-2);
  border: 1px solid var(--vw-border); border-radius: 9px;
  padding: 7px 13px; font-size: 12.5px; cursor: pointer;
  transition: all .16s;
}
.pdvw-hbtn:hover { color: var(--pd-text); border-color: #c3cad3; background: var(--pd-card-hover); }

/* 全自动开关 */
.pdvw-auto { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--pd-text-2); cursor: pointer; user-select: none; }
.pdvw-auto input { display: none; }
.pdvw-auto-track {
  width: 38px; height: 21px; border-radius: 21px;
  background: #eef5f2; border: 1px solid var(--vw-border);
  position: relative; transition: all .18s;
}
.pdvw-auto-dot {
  position: absolute; top: 2px; left: 2px; width: 15px; height: 15px; border-radius: 50%;
  background: var(--pd-text-2); transition: all .18s;
}
.pdvw-auto input:checked + .pdvw-auto-track { background: var(--vw-accent-soft); border-color: var(--vw-accent); }
.pdvw-auto input:checked + .pdvw-auto-track .pdvw-auto-dot { left: 20px; background: var(--vw-accent); }

/* ---- 步骤条 ---- */
.pdvw-steps {
  display: flex; gap: 8px; flex-wrap: wrap;
  background: var(--vw-surface); border: 1px solid var(--vw-border);
  border-radius: 13px; padding: 10px 12px;
  box-shadow: var(--vw-shadow);
}
.pdvw-step {
  display: inline-flex; align-items: center; gap: 7px;
  background: transparent; border: 1px solid transparent; border-radius: 9px;
  color: var(--pd-text-3); font-size: 13px; padding: 6px 12px; cursor: pointer;
  transition: all .16s;
}
.pdvw-step b {
  display: inline-flex; align-items: center; justify-content: center;
  width: 19px; height: 19px; border-radius: 50%;
  background: #eef5f2; color: var(--pd-text-3);
  font-size: 11px; font-weight: 600;
}
.pdvw-step:hover { color: var(--pd-text-2); background: var(--vw-surface-2); }
.pdvw-step.is-done { color: var(--vw-ok); }
.pdvw-step.is-done b { background: rgba(47, 93, 138, 0.12); color: var(--vw-ok); }
.pdvw-step.is-cur {
  color: var(--vw-accent-deep); background: var(--vw-accent-soft);
  border-color: var(--vw-accent);
}
.pdvw-step.is-cur b { background: var(--vw-accent); color: #fff; }

/* ---- 步骤面板 ---- */
.pdvw-panel {
  background: var(--vw-surface); border: 1px solid var(--vw-border);
  border-radius: 15px; padding: 20px 22px;
  display: flex; flex-direction: column; gap: 13px;
  box-shadow: var(--vw-shadow);
}
.pdvw-panel-head { display: flex; align-items: center; gap: 11px; }
.pdvw-pno {
  display: inline-flex; align-items: center; justify-content: center;
  width: 27px; height: 27px; border-radius: 50%;
  background: var(--vw-accent); color: #fff; font-size: 14px; font-weight: 700;
}
.pdvw-panel-head h2 { margin: 0; font-size: 17px; }
.pdvw-badge {
  font-size: 11.5px; color: var(--pd-text-3);
  border: 1px solid var(--vw-border); border-radius: 20px; padding: 2px 11px;
}
.pdvw-badge.is-done { color: var(--vw-ok); border-color: rgba(47, 93, 138, .32); }
.pdvw-badge.is-run { color: var(--pd-running); border-color: rgba(47, 93, 138, .32); }
.pdvw-badge-wait { color: var(--vw-wait); border-color: rgba(180, 83, 9, .32); }
.pdvw-panel-desc { margin: 0; font-size: 13px; line-height: 1.75; color: var(--pd-text-2); }
.pdvw-panel-desc b { color: var(--pd-text); }
.pdvw-panel-actions { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }

/* ---- 按钮 ---- */
.pdvw-btn {
  background: var(--vw-surface-2); color: var(--pd-text);
  border: 1px solid var(--vw-border); border-radius: 9px;
  padding: 8px 16px; font-size: 13px; cursor: pointer; text-decoration: none;
  display: inline-flex; align-items: center; gap: 6px;
  transition: all .16s;
}
.pdvw-btn:hover { border-color: #c3cad3; background: var(--pd-card-hover); }
.pdvw-btn:disabled { opacity: .5; cursor: not-allowed; }
.pdvw-btn-primary {
  background: linear-gradient(135deg, var(--vw-accent-deep), var(--vw-accent));
  border-color: transparent; color: #fff; font-weight: 600;
}
.pdvw-btn-primary:hover { filter: brightness(1.12); background: linear-gradient(135deg, var(--vw-accent-deep), var(--vw-accent)); }
.pdvw-btn-lg { padding: 11px 26px; font-size: 14.5px; }

/* ---- 表单 ---- */
.pdvw-field { display: flex; flex-direction: column; gap: 7px; }
.pdvw-field label { font-size: 12.5px; color: var(--pd-text-2); }
.pdvw-field textarea, .pdvw-field input, .pdvw-field select {
  background: #eef5f2; color: var(--pd-text);
  border: 1px solid var(--vw-border); border-radius: 10px;
  padding: 11px 13px; font-size: 13.5px; line-height: 1.75; width: 100%;
  font-family: inherit;
}
.pdvw-field textarea { resize: vertical; min-height: 90px; }
.pdvw-field textarea:focus, .pdvw-field input:focus, .pdvw-field select:focus {
  outline: none; border-color: var(--vw-accent);
}
.pdvw-field select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23047857' d='M5 6L0 0h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center;
  padding-right: 30px; cursor: pointer;
}
.pdvw-field select option { background: var(--pd-bg-mid); color: var(--pd-text); }
.pdvw-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pdvw-field-foot { font-size: 12px; color: var(--pd-text-3); }
/* 视频工作台二创方式 chips（多选），沿用本页薄荷墨绿主题，不复用全局粉色调 */
.pdvw-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pdvw-chips .pd-chip {
  cursor: pointer; appearance: none; user-select: none;
  border: 1px solid rgba(31, 92, 77, .55);
  background: rgba(255, 255, 255, .04);
  color: #cdd5de;
  font-size: 13px; line-height: 1.4;
  padding: 6px 13px; border-radius: 999px;
  transition: all .12s ease;
}
.pdvw-chips .pd-chip:hover { border-color: var(--vw-accent); color: #ffffff; }
.pdvw-chips .pd-chip.is-on {
  background: var(--vw-accent);
  border-color: var(--vw-accent);
  color: #eafff7; font-weight: 600;
}
.pdvw-panel-foot {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  border-top: 1px dashed var(--vw-border); padding-top: 13px;
}
.pdvw-panel-msg { font-size: 12.5px; color: var(--pd-text-2); }
.pdvw-panel-msg.ok { color: var(--vw-ok); }
.pdvw-panel-msg.err { color: #f7eeec; }

/* ---- 第 1 步：链接行 + 进度 ---- */
.pdvw-urlrow { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; }
.pdvw-urlrow input {
  flex: 1; min-width: 280px;
  background: #eef5f2; color: var(--pd-text);
  border: 1px solid var(--vw-border); border-radius: 10px;
  padding: 10px 13px; font-size: 13px;
}
.pdvw-urlrow input:focus { outline: none; border-color: var(--vw-accent); }
.pdvw-urlrow-or { font-size: 12px; color: var(--pd-text-3); white-space: nowrap; }
.pdvw-progress { display: flex; align-items: center; gap: 12px; font-size: 12.5px; color: var(--pd-text-2); }
.pdvw-progress-bar {
  flex: 1; height: 7px; border-radius: 7px;
  background: #eef5f2; overflow: hidden;
}
.pdvw-progress-bar i {
  display: block; height: 100%; width: 0;
  background: linear-gradient(90deg, var(--vw-accent), var(--vw-accent-2));
  transition: width .3s;
}

/* ---- 步骤 0：开始总览 ---- */
.pdvw-start { display: flex; flex-direction: column; gap: 16px; padding: 8px 2px; }
.pdvw-start h2 { margin: 0; font-size: 19px; }
.pdvw-start-flow {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px;
}
.pdvw-start-item {
  background: var(--vw-surface-2); border: 1px solid var(--vw-border);
  border-radius: 12px; padding: 13px 15px;
  display: flex; flex-direction: column; gap: 5px;
}
.pdvw-start-item b { color: var(--vw-accent); font-size: 13.5px; }
.pdvw-start-item span { font-size: 12px; color: var(--pd-text-2); line-height: 1.6; }
.pdvw-start-item.is-wait { opacity: .62; }
.pdvw-start-item.is-wait b { color: var(--pd-text-3); }
.pdvw-start-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pdvw-start-note { margin: 0; font-size: 12px; color: var(--pd-text-3); line-height: 1.7; }

/* ---- 步骤 3/4：段落卡片 ---- */
.pdvw-segs { display: flex; flex-direction: column; gap: 10px; }
.pdvw-seg {
  background: var(--vw-surface-2); border: 1px solid var(--vw-border);
  border-radius: 12px; padding: 12px 14px;
  display: flex; flex-direction: column; gap: 9px;
}
.pdvw-seg-head { display: flex; align-items: center; gap: 9px; }
.pdvw-seg-no {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 24px; height: 24px; padding: 0 6px; border-radius: 7px;
  background: var(--vw-accent-soft); color: var(--vw-accent);
  font-size: 12px; font-weight: 700;
}
.pdvw-seg-head .pdvw-seg-move { margin-left: auto; display: flex; gap: 5px; }
.pdvw-seg-btn {
  background: transparent; border: 1px solid var(--vw-border); border-radius: 7px;
  color: var(--pd-text-3); font-size: 11.5px; padding: 3px 9px; cursor: pointer;
}
.pdvw-seg-btn:hover { color: var(--pd-text); border-color: #c3cad3; }
.pdvw-seg textarea {
  background: #eef5f2; color: var(--pd-text);
  border: 1px solid var(--vw-border); border-radius: 9px;
  padding: 9px 12px; font-size: 13px; line-height: 1.7; width: 100%;
  font-family: inherit; resize: vertical;
}
.pdvw-seg textarea:focus { outline: none; border-color: var(--vw-accent); }
.pdvw-seg-src {
  font-size: 12px; color: var(--pd-text-3); line-height: 1.65;
  border-left: 2px solid var(--vw-border); padding-left: 10px;
}

/* ---- 步骤 5：生图占位 ---- */
.pdvw-imgs { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.pdvw-img {
  border: 1px solid var(--vw-border); border-radius: 12px; overflow: hidden;
  background: var(--vw-surface-2);
  display: flex; flex-direction: column;
}
.pdvw-img-block {
  height: 118px; display: flex; align-items: center; justify-content: center;
  font-size: 12px; color: #1f5c4d; font-weight: 600;
}
.pdvw-img-cap { padding: 9px 12px; font-size: 12px; color: var(--pd-text-2); line-height: 1.6; }
.pdvw-img-cap b { color: var(--pd-text-3); font-weight: 600; }

/* ---- 步骤 6：配音占位 ---- */
.pdvw-voices { display: flex; flex-direction: column; gap: 8px; }
.pdvw-voice {
  display: grid; grid-template-columns: 46px 1fr 90px 76px; gap: 11px; align-items: center;
  background: var(--vw-surface-2); border: 1px solid var(--vw-border);
  border-radius: 10px; padding: 10px 14px; font-size: 12.5px;
}
.pdvw-voice b { color: var(--vw-accent); }
.pdvw-voice .pdvw-voice-txt { color: var(--pd-text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdvw-voice .pdvw-voice-dur { color: var(--pd-text-2); font-family: var(--pd-mono); font-size: 12px; }
.pdvw-voice .pdvw-voice-wait { color: var(--vw-wait); font-size: 11.5px; text-align: right; }

/* ---- 步骤 7：导出 ---- */
.pdvw-export-summary {
  display: flex; gap: 18px; flex-wrap: wrap;
  background: var(--vw-surface-2); border: 1px solid var(--vw-border);
  border-radius: 11px; padding: 12px 16px; font-size: 13px; color: var(--pd-text-2);
}
.pdvw-export-summary b { color: var(--pd-text); }
.pdvw-export-result { display: flex; flex-direction: column; gap: 9px; align-items: flex-start; }
.pdvw-export-note { margin: 0; font-size: 12px; color: var(--pd-text-3); line-height: 1.7; }

/* ---- 弹层 ---- */
.pd-modal.pdvw-modal-md { width: min(640px, 94vw); }
.pd-modal.pdvw-modal-lg { width: min(760px, 94vw); }
.pdvw-modal-tip { margin: 0 0 12px; font-size: 12.5px; color: var(--pd-text-2); line-height: 1.7; }
.pdvw-modal-tip code {
  background: var(--vw-surface-2); border: 1px solid var(--vw-border);
  border-radius: 5px; padding: 1px 6px; font-size: 11.5px; color: var(--vw-accent);
}
.pdvw-modal-actions { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.pdvw-history { display: flex; flex-direction: column; gap: 8px; max-height: 55vh; overflow-y: auto; }
.pdvw-hist-item {
  display: flex; align-items: center; gap: 10px;
  background: var(--vw-surface-2); border: 1px solid var(--vw-border);
  border-radius: 10px; padding: 11px 14px; cursor: pointer;
}
.pdvw-hist-item:hover { border-color: #c3cad3; background: var(--pd-card-hover); }
.pdvw-hist-main { flex: 1; min-width: 0; }
.pdvw-hist-main strong { display: block; font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdvw-hist-main small { font-size: 11.5px; color: var(--pd-text-3); }
.pdvw-hist-del {
  background: transparent; border: 1px solid var(--vw-border); border-radius: 7px;
  color: var(--pd-text-3); font-size: 11.5px; padding: 4px 10px; cursor: pointer;
}
.pdvw-hist-del:hover { color: #f7eeec; border-color: rgba(168, 60, 49, .4); }
.pdvw-hist-empty { text-align: center; color: var(--pd-text-3); font-size: 12.5px; padding: 26px 0; }

/* ---- 底部 ---- */
.pdvw-foot {
  text-align: center; font-size: 11.5px; color: var(--pd-text-3);
  padding: 4px 0 10px; line-height: 1.7;
}

/* ====================== 智能体广场（2026-10-01 按 duxin 真机结构复刻；2026-10-15 全站翻浅后统一为浅色，删去双皮肤切换） ======================
   颜色走局部变量，全部引用全局浅色薄荷体系，与全站保持一致。 */
.pdag-root {
  --ag-accent: var(--pd-pink);
  --ag-accent-2: var(--pd-pink-2);
  --ag-accent-soft: rgba(31, 92, 77, 0.16);
  --ag-ink: var(--pd-text);
  --ag-muted: var(--pd-text-2);
  --ag-faint: var(--pd-text-3);
  --ag-surface: var(--pd-card);
  --ag-surface-2: #141414;
  --ag-border: #d4d8dd;
  --ag-border-strong: #c3cad3;
  --ag-shadow: 0 10px 28px rgba(20, 20, 20, 0.10);
  --ag-radius: 12px;
  --ag-display: inherit;
}

/* 卡片强调色（浅色薄荷体系下的和谐强调色） */
.pdag-card[data-accent="green"] { --ag-card-ink: #2f5d8a; --ag-card-surface: rgba(47, 93, 138, 0.10); }
.pdag-card[data-accent="amber"] { --ag-card-ink: #2f5d8a; --ag-card-surface: rgba(47, 93, 138, 0.10); }
.pdag-card[data-accent="pink"]  { --ag-card-ink: #2f5d8a; --ag-card-surface: rgba(47, 93, 138, 0.10); }
.pdag-card[data-accent="blue"]  { --ag-card-ink: #2f5d8a; --ag-card-surface: rgba(47, 93, 138, 0.10); }

/* ---- 广场：标题区 ---- */
.pdag-intro {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 24px; padding-bottom: 3px; margin-bottom: 18px;
}
.pdag-intro h1 {
  margin: 0; color: var(--ag-ink); font-family: var(--ag-display);
  font-size: clamp(2.35rem, 4.2vw, 3.75rem); font-weight: 600;
  letter-spacing: 0.03em; line-height: 1.04;
}
.pdag-intro p {
  margin: 11px 0 0; max-width: 630px; color: var(--ag-muted);
  font-size: clamp(0.96rem, 1.2vw, 1.06rem); line-height: 1.72;
}
.pdag-count {
  color: var(--ag-muted); font-size: 0.96rem; font-weight: 750;
  white-space: nowrap; padding-bottom: 8px;
}

/* ---- 广场右上角：模型选择 + 对接大模型（2026-10-27） ---- */
.pdag-usage {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  justify-content: flex-end; padding-bottom: 6px;
}
.pdag-usage .pdag-count { padding-bottom: 0; }
.pdag-modelpick {
  display: inline-flex; align-items: center; gap: 7px; min-height: 38px;
  padding: 0 10px 0 11px; box-sizing: border-box;
  background: var(--ag-surface); border: 1px solid var(--ag-border); border-radius: 10px;
  transition: border-color 0.14s, box-shadow 0.14s;
}
.pdag-modelpick:focus-within { border-color: var(--ag-accent); box-shadow: 0 0 0 3px var(--ag-accent-soft); }
.pdag-modelpick-ic { display: inline-flex; color: var(--ag-muted); }
.pdag-modelpick select {
  max-width: 220px; border: 0; outline: none; background: transparent; cursor: pointer;
  color: var(--ag-ink); font-family: inherit; font-size: 0.84rem; font-weight: 750;
}
.pdag-gear {
  width: 38px; height: 38px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--ag-border); border-radius: 10px; cursor: pointer;
  background: var(--ag-surface); color: var(--ag-muted);
  transition: color 0.14s, border-color 0.14s, background 0.14s;
}
.pdag-gear:hover { color: var(--ag-accent); border-color: var(--ag-accent); background: var(--ag-accent-soft); }
/* 2026-10-29：右上角「＋ 智能体」入口（自建智能体）；墨绿实底，与齿轮区分开 */
.pdag-addbtn {
  min-height: 38px; padding: 0 14px; flex: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 5px;
  border: 1px solid var(--ag-accent); border-radius: 10px;
  background: var(--ag-accent); color: #ffffff;
  font-family: inherit; font-size: 0.84rem; font-weight: 800; white-space: nowrap;
  transition: filter 0.14s, transform 0.14s;
}
.pdag-addbtn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.pdag-wb-actions .pdag-btn { display: inline-flex; align-items: center; gap: 7px; }
.pdag-prompt-area {
  width: 100%; box-sizing: border-box; padding: 10px 12px; resize: vertical;
  border: 1px solid #d4d8dd; border-radius: 8px; background: #ffffff; color: var(--pd-text);
  font-family: inherit; font-size: 13px; line-height: 1.66;
}
.pdag-prompt-area:focus { outline: none; border-color: var(--pd-pink); box-shadow: 0 0 0 3px rgba(31, 92, 77, 0.12); }

/* ---- 广场：搜索 + 分类 ---- */
.pdag-controls { margin-bottom: 18px; }
.pdag-search {
  display: flex; align-items: center; gap: 10px; min-height: 50px;
  padding: 0 14px; box-sizing: border-box;
  background: var(--ag-surface); border: 1px solid var(--ag-border);
  border-radius: 13px; transition: border-color 0.14s, box-shadow 0.14s;
}
.pdag-search:focus-within { border-color: var(--ag-accent); box-shadow: 0 0 0 3px var(--ag-accent-soft); }
.pdag-search span { color: var(--ag-muted); font-size: 14px; }
.pdag-search input {
  flex: 1; min-width: 0; height: 48px; border: 0; outline: none;
  background: transparent; color: var(--ag-ink);
  font-family: inherit; font-size: 0.94rem;
}
.pdag-search input::placeholder { color: var(--ag-faint); }

/* ---------- 大模型网址 / KEY 整理表（2026-10-30，侧栏「🧠 大模型」） ---------- */
.pd-lsites-cur { margin: 6px 0 12px; padding: 10px 12px; border: 1px solid var(--pd-line, #e3e6ec);
  border-left: 3px solid #2563eb; border-radius: 8px; background: rgba(37,99,235,.04); font-size: 12.5px; }
.pd-lsites-cur-t { font-weight: 600; margin-bottom: 6px; font-size: 12px; color: var(--pd-text-2); }
.pd-lsites-cur-l { margin: 3px 0; word-break: break-all; color: var(--pd-text-2); }
.pd-lsites-cur-l b { color: var(--pd-text-3); font-weight: 600; margin-right: 4px; }
.pd-lsites-keycode { font-family: ui-monospace, Consolas, monospace; font-size: 11.5px;
  background: rgba(220,38,38,.06); color: #b91c1c; padding: 1px 6px; border-radius: 4px; }
.pd-lsites-body { display: flex; flex-direction: column; gap: 8px; max-height: 52vh; overflow-y: auto; padding-right: 2px; }
.pd-lsites-row { border: 1px solid var(--pd-line, #e3e6ec); border-radius: 10px; padding: 9px 11px;
  background: var(--pd-card, #fff); transition: border-color .15s, box-shadow .15s; }
.pd-lsites-row.saved { border-color: #16a34a; box-shadow: 0 0 0 2px rgba(22,163,74,.12); }
.pd-lsites-r1 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pd-lsites-name { flex: 0 0 170px; min-width: 130px; font-weight: 600; font-size: 13px;
  padding: 5px 8px; border: 1px solid transparent; border-radius: 6px; background: transparent;
  color: var(--pd-text, #1f2937); }
.pd-lsites-name:hover, .pd-lsites-name:focus { border-color: var(--pd-line, #d6dae2); background: var(--pd-bg, #f7f8fa); outline: none; }
.pd-lsites-link { font-size: 12px; color: #2563eb; text-decoration: none; padding: 3px 8px;
  border: 1px solid rgba(37,99,235,.25); border-radius: 999px; white-space: nowrap; }
.pd-lsites-link:hover { background: rgba(37,99,235,.08); }
.pd-lsites-none { font-size: 12px; color: var(--pd-text-4, #9aa1ad); }
.pd-lsites-r2 { display: flex; align-items: center; gap: 6px; margin-top: 7px; flex-wrap: wrap; }
.pd-lsites-key { flex: 1 1 260px; min-width: 0; font-family: ui-monospace, Consolas, monospace; font-size: 12px;
  padding: 5px 8px; border: 1px solid var(--pd-line, #d6dae2); border-radius: 6px; background: var(--pd-bg, #fafbfc);
  color: #b91c1c; letter-spacing: .02em; }
.pd-lsites-key.empty { color: var(--pd-text-3, #6b7280); font-family: inherit; }
.pd-lsites-key:focus { outline: none; border-color: #2563eb; }
.pd-lsites-del { color: #dc2626 !important; border-color: rgba(220,38,38,.3) !important; }
.pd-lsites-del:hover { background: #dc2626 !important; color: #fff !important; }
.pd-lsites-note { width: 100%; margin-top: 6px; font-size: 12px; padding: 4px 8px;
  border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--pd-text-3); }
.pd-lsites-note:hover, .pd-lsites-note:focus { border-color: var(--pd-line, #d6dae2); background: var(--pd-bg, #f7f8fa); outline: none; }
.pd-lsites-foot { display: flex; align-items: center; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
.pd-lsites-tip { font-size: 11.5px; color: var(--pd-text-3, #6b7280); }
/* 2026-10-28：分区筛选条（全部 / 内置 / 各分类带数量）与分页行 */
.pdag-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pdag-cat {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 13px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--ag-border); background: var(--ag-surface);
  color: var(--ag-muted); font-family: inherit; font-size: 0.82rem; font-weight: 600;
  transition: border-color 0.14s, color 0.14s, background 0.14s;
}
.pdag-cat:hover { border-color: var(--ag-accent); color: var(--ag-ink); }
.pdag-cat.active { background: var(--ag-accent); border-color: var(--ag-accent); color: #fff; }
.pdag-cat .cnt { font-size: 0.74rem; font-weight: 700; opacity: 0.75; }
.pdag-more-row { display: flex; justify-content: center; align-items: center; gap: 10px; margin: 20px 0 6px; }
.pdag-more-tip { color: var(--ag-faint); font-size: 0.8rem; }

/* ---- 广场：卡片网格 ---- */
.pdag-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.pdag-empty { grid-column: 1 / -1; padding: 48px 0; text-align: center; color: var(--ag-faint); font-size: 0.9rem; }
.pdag-card {
  position: relative;   /* 2026-10-29：供右上角删除按钮定位 */
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 12px;
  box-sizing: border-box; padding: 16px; min-height: 168px;
  background: var(--ag-surface); border: 1px solid var(--ag-border);
  border-radius: var(--ag-radius); overflow: hidden;
  transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s;
}
/* 2026-10-29：导入/自建智能体卡片的删除入口（内置卡不渲染）。
   ⚠️ 上一版用 var(--ag-surface)/var(--ag-muted) 描边着色，在「商务白」主题下
   与卡片底色几乎一致，用户实测看不见；这里改成固定色，两种主题都可见。 */
.pdag-card-del {
  position: absolute; top: 10px; right: 10px; z-index: 3;
  width: 26px; height: 26px; padding: 0; line-height: 24px; text-align: center;
  border-radius: 50%; cursor: pointer;
  border: 1px solid rgba(179, 38, 30, 0.38); background: #ffffff;
  color: #b3261e; font-size: 14px; font-weight: 800; font-family: inherit;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.10);
  transition: color 0.14s, border-color 0.14s, background 0.14s;
}
.pdag-card-del:hover { color: #ffffff; border-color: #b3261e; background: #b3261e; }
.pdag-card-del:disabled { opacity: 0.5; cursor: progress; }
/* 底部文字版删除（与 × 同一个动作，给不习惯角标的人一个明确入口） */
.pdag-card-footer { flex-wrap: wrap; }
.pdag-del-btn {
  display: inline-flex; align-items: center; gap: 5px;
  min-height: 34px; padding: 0 10px; cursor: pointer;
  border: 1px solid rgba(179, 38, 30, 0.30); border-radius: 10px;
  background: rgba(179, 38, 30, 0.06); color: #b3261e;
  font-family: inherit; font-size: 0.76rem; font-weight: 750; white-space: nowrap;
  transition: color 0.14s, border-color 0.14s, background 0.14s;
}
.pdag-del-btn:hover { background: #b3261e; border-color: #b3261e; color: #ffffff; }
.pdag-del-btn:disabled { opacity: 0.5; cursor: progress; }
.pdag-card:hover {
  border-color: var(--ag-card-ink, var(--ag-accent));
  box-shadow: var(--ag-shadow); transform: translateY(-3px);
}
.pdag-card-cat {
  padding: 6px 8px; border-radius: 999px; line-height: 1;
  font-size: 0.76rem; font-weight: 760;
  background: var(--ag-card-surface, var(--ag-accent-soft));
  border: 1px solid var(--ag-card-ink, var(--ag-accent));
  color: var(--ag-card-ink, var(--ag-accent));
  align-self: flex-start;   /* 卡片是 flex 列布局，不写会把这枚小标签拉满整行 */
}
/* 已设自定义提示词的小圆点（2026-10-27） */
.pdag-card-cat .pdag-card-flag {
  display: inline-block; width: 5px; height: 5px; margin-left: 5px;
  border-radius: 50%; background: currentColor; vertical-align: middle;
}
.pdag-card-copy { display: grid; align-content: space-between; gap: 11px; min-width: 0; }
.pdag-card-copy h3 { margin: 0; color: var(--ag-ink); font-size: 1.1rem; font-weight: 820; line-height: 1.25; }
.pdag-card-copy p {
  margin: 6px 0 0; color: var(--ag-muted); font-size: 0.85rem; line-height: 1.58;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.pdag-card-footer {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding-top: 11px; border-top: 1px solid var(--ag-border);
}
.pdag-prompt-btn {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 34px; padding: 0 11px; cursor: pointer;
  border: 1px solid var(--ag-border); border-radius: 10px;
  background: var(--ag-surface); color: var(--ag-muted);
  font-family: inherit; font-size: 0.78rem; font-weight: 750; white-space: nowrap;
  transition: color 0.14s, border-color 0.14s, background 0.14s;
}
.pdag-prompt-btn:hover { color: var(--ag-accent); border-color: var(--ag-accent); background: var(--ag-accent-soft); }
.pdag-prompt-btn svg { flex: none; }
.pdag-card-footer .pdag-launch { margin-left: 0; }
.pdag-launch {
  margin-left: auto; min-height: 34px; padding: 0 11px 0 13px;
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
  border: 0; border-radius: 10px; cursor: pointer;
  background: linear-gradient(135deg, var(--ag-accent), var(--ag-accent-2));
  color: #fff; font-family: inherit; font-size: 0.8rem; font-weight: 800;
  transition: filter 0.16s, transform 0.16s;
}
.pdag-launch:hover { filter: brightness(1.08); transform: translateX(1px); }

/* ---- 工作台骨架 ---- */
/* 2026-10-27：工作台改成「定高 + 内部滚动」——整页不跟着滚，只有消息区滚。
   高度由 JS（_pdagFitHeight）按视口算出来写进 style.height；窄屏退回自然高度。 */
.pdag-wb {
  display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 14px;
  min-height: 0;
}
.pdag-wb.hidden { display: none; }
/* 对话页锁整页滚动（只有消息区滚）。html 才是真正的滚动容器，
   只给 body 加不够 —— Chrome 下 scrollTo 仍能滚出那点固有溢出。 */
html.pdag-lock-scroll,
html.pdag-lock-scroll body { overflow: hidden; }
.pdag-wb-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; padding-bottom: 10px;
  border-bottom: 1px solid var(--ag-border);
}
.pdag-wb-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.pdag-wb-title h1 {
  margin: 0; color: var(--ag-ink); font-size: 20px; line-height: 1.25;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pdag-wb-title span { display: block; margin-top: 3px; color: var(--ag-muted); font-size: 12px; }
.pdag-wb-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pdag-btn {
  min-height: 34px; padding: 0 12px; cursor: pointer;
  border: 1px solid var(--ag-border); border-radius: 10px;
  background: var(--ag-surface-2); color: var(--ag-ink);
  font-family: inherit; font-size: 0.82rem; font-weight: 700;
  transition: border-color 0.14s, color 0.14s, background 0.14s;
}
.pdag-btn:hover { border-color: var(--ag-accent); color: var(--ag-accent); }
.pdag-btn.is-on { border-color: var(--ag-accent); color: var(--ag-accent); background: var(--ag-accent-soft); }
.pdag-wb-body {
  display: grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
  gap: 12px; min-height: 0; overflow: hidden;
}
.pdag-main { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 0; min-width: 0; min-height: 0; }

/* ---- 工作台：左栏 ---- */
.pdag-rail {
  display: flex; flex-direction: column; gap: 14px;
  padding: 14px; box-sizing: border-box;
  background: var(--ag-surface); border: 1px solid var(--ag-border);
  border-radius: var(--ag-radius); overflow-y: auto; min-height: 0;
  max-height: calc(100vh - 250px);
}
.pdag-wb.is-fitted .pdag-rail { height: 100%; max-height: none; }
.pdag-rail-sec { display: grid; gap: 10px; min-width: 0; }
.pdag-rail-label {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--ag-muted); font-size: 0.78rem; font-weight: 850;
}
.pdag-agentbox {
  display: grid; gap: 10px; padding: 11px;
  background: var(--ag-surface-2); border: 1px solid var(--ag-border); border-radius: 10px;
}
.pdag-agentbox-main { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: center; }
.pdag-agentbox-av {
  width: 34px; height: 34px; border-radius: 9px; font-size: 17px;
  display: grid; place-items: center;
  background: var(--ag-card-surface, var(--ag-accent-soft));
  border: 1px solid var(--ag-card-ink, var(--ag-accent));
  color: var(--ag-card-ink, var(--ag-accent));
}
.pdag-agentbox strong { display: block; color: var(--ag-ink); font-size: 0.92rem; line-height: 1.25; }
.pdag-agentbox small { display: block; margin-top: 3px; color: var(--ag-muted); font-size: 0.72rem; }
.pdag-new {
  width: 100%; min-height: 38px; border: 0; border-radius: 9px; cursor: pointer;
  background: linear-gradient(135deg, var(--ag-accent), var(--ag-accent-2));
  color: #fff; font-family: inherit; font-size: 0.86rem; font-weight: 800;
}
.pdag-sessions { display: grid; gap: 8px; }
.pdag-sessions-empty {
  padding: 12px; text-align: center; color: var(--ag-muted); font-size: 0.82rem;
  border: 1px dashed var(--ag-border); border-radius: 9px;
}
.pdag-session {
  display: grid; gap: 4px; padding: 9px 10px; cursor: pointer; text-align: left;
  background: var(--ag-surface-2); border: 1px solid var(--ag-border);
  border-radius: 9px; color: var(--ag-ink); font-family: inherit;
}
.pdag-session.is-active { background: var(--ag-accent-soft); border-color: var(--ag-accent); }
.pdag-session strong { font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdag-session span { color: var(--ag-muted); font-size: 0.72rem; }
.pdag-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pdag-chips button {
  padding: 6px 10px; cursor: pointer;
  background: var(--ag-surface-2); border: 1px solid var(--ag-border);
  border-radius: 999px; color: var(--ag-ink);
  font-family: inherit; font-size: 0.8rem; font-weight: 700;
}
.pdag-chips button:hover { border-color: var(--ag-accent); color: var(--ag-accent); }
.pdag-posrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pdag-input, .pdag-select {
  width: 100%; box-sizing: border-box; padding: 8px 10px; outline: none;
  background: var(--ag-surface-2); border: 1px solid var(--ag-border);
  border-radius: 9px; color: var(--ag-ink); font-family: inherit; font-size: 0.84rem;
}
.pdag-input:focus, .pdag-select:focus { border-color: var(--ag-accent); }
.pdag-switch {
  position: relative; flex: 0 0 auto; width: 38px; height: 22px; padding: 0; cursor: pointer;
  border: 1px solid var(--ag-border); border-radius: 999px; background: var(--ag-surface-2);
}
.pdag-switch::after {
  content: ''; position: absolute; top: 2px; left: 2px;
  width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: left 0.15s;
}
.pdag-switch.is-on { background: var(--ag-accent); border-color: var(--ag-accent); }
.pdag-switch.is-on::after { left: 18px; }

/* ---- 工作台：单模型列 ---- */
.pdag-cols {
  display: flex; gap: 10px; min-height: 0; overflow-x: auto; overflow-y: hidden;
  padding: 2px 2px 0; scroll-snap-type: x proximity;
}
.pdag-wb.is-fitted .pdag-cols { padding-bottom: 0; }
.pdag-col {
  display: grid; grid-template-rows: auto minmax(0, 1fr);
  width: clamp(300px, 30vw, 430px); min-width: 300px; min-height: 0;
  background: var(--ag-surface); border: 1px solid var(--ag-border);
  border-radius: 14px; overflow: hidden; box-shadow: var(--ag-shadow);
  scroll-snap-align: start;
}
.pdag-col.is-selected { border-color: var(--ag-accent); }
.pdag-col.is-expanded { width: 100%; min-width: 0; }
.pdag-wb.is-fitted .pdag-col { width: 100%; height: 100%; }
.pdag-col-header {
  display: flex; align-items: center; gap: 9px; min-height: 68px;
  padding: 11px 12px; border-bottom: 1px solid var(--ag-border);
  background: var(--ag-surface-2);
}
.pdag-col-av {
  flex: 0 0 32px; width: 32px; height: 32px; border-radius: 10px;
  display: grid; place-items: center; font-size: 15px;
  background: var(--ag-accent-soft); border: 1px solid var(--ag-border); color: var(--ag-accent);
}
.pdag-col-name { flex: 1 1 0; min-width: 0; }
.pdag-col-kicker { display: block; margin-bottom: 2px; color: var(--ag-muted); font-size: 10px; letter-spacing: 0.03em; }
/* 2026-10-27：单模型 —— 列头由下拉改成固定文案（模型在广场右上角统一选） */
.pdag-col-fixed {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--ag-ink); font-size: 14px; font-weight: 750;
}
.pdag-col-price { display: inline-flex; align-items: center; gap: 3px; color: var(--ag-muted); font-size: 11px; white-space: nowrap; }
.pdag-col-acts { display: inline-flex; gap: 2px; }
.pdag-col-acts button {
  width: 24px; height: 24px; padding: 0; cursor: pointer;
  border: 0; border-radius: 6px; background: transparent; color: var(--ag-muted); font-size: 12px;
}
.pdag-col-acts button:hover { background: var(--ag-accent-soft); color: var(--ag-accent); }
.pdag-col-msgs {
  min-height: 0; overflow-y: auto; padding: 16px 14px;
  scrollbar-gutter: stable; overscroll-behavior: contain;
}
.pdag-wb.is-fitted .pdag-col-msgs { min-height: 0; }
.pdag-col-empty {
  display: grid; place-items: center; align-content: center; gap: 8px;
  height: 100%; min-height: 220px; color: var(--ag-muted); font-size: 0.84rem; text-align: center;
}
.pdag-msg { margin-bottom: 18px; }
.pdag-msg-head { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 7px; color: var(--ag-muted); font-size: 11px; }
.pdag-msg-body { color: var(--ag-ink); font-size: 14px; line-height: 1.78; overflow-wrap: anywhere; }
.pdag-msg-body .pd-md p { margin: 0 0 8px; }
.pdag-msg-body .pd-md p:last-child { margin-bottom: 0; }
.pdag-msg.is-user > .pdag-msg-body {
  width: fit-content; max-width: 90%; margin-left: auto;
  padding: 8px 10px; border-radius: 8px 2px 8px 8px; background: var(--ag-accent-soft);
}
.pdag-msg-acts {
  display: flex; gap: 4px; margin-top: 10px; padding-top: 7px;
  border-top: 1px solid var(--ag-border);
}
.pdag-msg-acts button {
  height: 24px; padding: 0 6px; cursor: pointer;
  border: 0; border-radius: 6px; background: transparent; color: var(--ag-muted); font-size: 12px;
}
.pdag-msg-acts button:hover { background: var(--ag-accent-soft); color: var(--ag-accent); }
/* 2026-10-27：单模型后「本次仅发本列 / 列内发送」整套删除，对应样式一并清掉 */

/* ---- 工作台：底部输入区 ---- */
.pdag-composer {
  margin-top: 10px; padding: 10px 12px 12px; box-sizing: border-box;
  background: var(--ag-surface); border: 1px solid var(--ag-border);
  border-radius: 10px; box-shadow: var(--ag-shadow);
}
.pdag-composer-top {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  margin-bottom: 7px; color: var(--ag-muted); font-size: 12px;
}
.pdag-composer-top strong { color: var(--ag-accent); }
.pdag-composer-row { display: flex; align-items: flex-end; gap: 8px; }
.pdag-composer-row textarea {
  flex: 1; min-width: 0; box-sizing: border-box; min-height: 52px; padding: 10px 12px;
  outline: none; resize: vertical;
  background: var(--ag-surface-2); border: 1px solid var(--ag-border);
  border-radius: 9px; color: var(--ag-ink); font-family: inherit; font-size: 0.9rem;
}
.pdag-composer-row textarea:focus { border-color: var(--ag-accent); }
.pdag-iconbtn {
  flex: 0 0 auto; width: 36px; height: 36px; cursor: pointer;
  border: 1px solid var(--ag-border); border-radius: 9px;
  background: var(--ag-surface-2); color: var(--ag-muted); font-size: 15px;
}
.pdag-iconbtn.is-on { border-color: var(--ag-accent); background: var(--ag-accent-soft); color: var(--ag-accent); }
.pdag-iconbtn:hover { border-color: var(--ag-accent); color: var(--ag-accent); }
.pdag-send {
  flex: 0 0 auto; min-height: 38px; padding: 0 18px; cursor: pointer;
  border: 0; border-radius: 9px;
  background: linear-gradient(135deg, var(--ag-accent), var(--ag-accent-2));
  color: #fff; font-family: inherit; font-size: 0.88rem; font-weight: 800;
}
.pdag-send:disabled { opacity: 0.5; cursor: not-allowed; }
.pdag-kbpanel {
  display: grid; gap: 6px; max-height: 220px; overflow: auto;
  margin-bottom: 8px; padding: 10px;
  background: var(--ag-surface-2); border: 1px solid var(--ag-border); border-radius: 10px;
}
.pdag-kbpanel label { display: flex; align-items: center; gap: 8px; color: var(--ag-ink); font-size: 0.82rem; cursor: pointer; }
.pdag-kbpanel .pdag-kbhint { color: var(--ag-muted); font-size: 0.76rem; }
.pdag-refs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.pdag-ref {
  display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px;
  background: var(--ag-accent-soft); border: 1px solid var(--ag-border);
  border-radius: 999px; color: var(--ag-accent); font-size: 0.74rem; font-weight: 700;
}
.pdag-ref button { border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 12px; padding: 0; }
.pdag-typing { color: var(--ag-muted); font-size: 12px; padding: 2px 0; }

/* 2026-10-27：失败 / 超时的回复气泡 —— 醒目一点，并把「重试」做成主按钮，
   避免用户回头去狂点底部发送（那会并发打满上游、后台卡死）。 */
.pdag-msg.is-error > .pdag-msg-body {
  padding: 10px 12px; border-radius: 10px;
  background: rgba(168, 60, 49, 0.07); border: 1px solid rgba(168, 60, 49, 0.28);
  color: #a83c31; font-size: 13px; line-height: 1.7;
}
.pdag-msg.is-error .pdag-msg-head span:first-child { color: #a83c31; font-weight: 700; }
.pdag-retry-btn {
  min-height: 30px; padding: 0 14px; cursor: pointer;
  border: 1px solid var(--ag-accent); border-radius: 8px;
  background: var(--ag-accent); color: #fff;
  font-family: inherit; font-size: 0.78rem; font-weight: 800;
}
.pdag-retry-btn:hover { filter: brightness(1.06); }
.pdag-retry-btn:disabled { opacity: 0.45; cursor: not-allowed; filter: none; }
.pdag-send.is-busy { opacity: 0.6; cursor: progress; }

@media (max-width: 1200px) {
  .pdag-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .pdag-wb-body { grid-template-columns: 1fr; }
  .pdag-rail { max-height: none; }
}
@media (max-width: 860px) {
  .pdag-grid { grid-template-columns: 1fr; }
  .pdag-controls { grid-template-columns: 1fr; }
  .pdag-intro { align-items: flex-start; flex-direction: column; gap: 10px; }
  .pdag-intro h1 { font-size: clamp(2.35rem, 11vw, 3.2rem); }
  .pdag-count { padding-bottom: 0; }
  .pdag-card { min-height: 274px; }
}

/* 队列输入区下方的主页链接提示（只提示、不拦截提交） */
.pd-batch-hint {
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.7;
  background: rgba(180, 83, 9, 0.10);
  border: 1px solid rgba(180, 83, 9, 0.28);
  color: #b45309;
}

.pd-btn {
  background: linear-gradient(135deg, var(--pd-pink), var(--pd-pink-2));
  color: white;
  border: none;
  border-radius: 12px;
  padding: 12px 22px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.06s, opacity 0.12s;
  white-space: nowrap;
}
.pd-btn:hover { opacity: 0.92; }
.pd-btn:active { transform: translateY(1px); }
.pd-btn[disabled] { opacity: 0.4; cursor: not-allowed; }
.pd-btn-ghost {
  background: transparent;
  border: 1px solid #d4d8dd;
  color: var(--pd-pink);
  padding: 7px 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.12s;
}
.pd-btn-ghost:hover { background: var(--pd-pink-dim); }
.pd-btn-ghost.is-active {
  background: var(--pd-pink);
  color: white;
  border-color: var(--pd-pink);
}
.pd-btn-tiny {
  background: rgba(20, 20, 20, 0.04);
  border: 1px solid #d4d8dd;
  color: var(--pd-text-2);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  cursor: pointer;
}
.pd-btn-tiny:hover { color: var(--pd-pink); border-color: #d4d8dd; }
/* 统一键盘焦点环（2026-10-20 控件优化）：鼠标点击不显示，键盘 Tab 导航时给一个
   一致的墨绿焦点环，覆盖按钮 / chips / 工具钮 / 导航等主要交互控件。
   只新增 :focus-visible，不改动现有 hover / active 外观（低风险加法）。 */
.pd-btn:focus-visible,
.pd-btn-ghost:focus-visible,
.pd-btn-tiny:focus-visible,
.pd-chip:focus-visible,
.pd-tool-btn:focus-visible,
.pd-nav a:focus-visible,
.pd-src-item:focus-visible,
.pd-sc-item:focus-visible,
.pd-kb-card:focus-visible {
  outline: 2px solid var(--pd-pink);
  outline-offset: 2px;
  border-radius: 8px;
}

/* 状态徽章 */
.pd-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
}
.pd-badge-success { background: rgba(31, 92, 77, 0.12); color: var(--pd-success); border: 1px solid rgba(31, 92, 77, 0.4); }
.pd-badge-failed  { background: rgba(168, 60, 49, 0.12); color: #f7eeec;  border: 1px solid rgba(168, 60, 49, 0.4); }
.pd-badge-running { background: rgba(47, 93, 138, 0.12); color: var(--pd-running); border: 1px solid rgba(47, 93, 138, 0.4); }
.pd-badge-pending { background: rgba(180, 83, 9, 0.12); color: #b45309; border: 1px solid rgba(180, 83, 9, 0.4); }
/* 「未下完」(partial)：下载被中断但已下到一部分，不是失败也不是完成。
   用橙色调和 pending 的黄区分开，提示用户「点继续下载还能接着下」。 */
.pd-badge-partial { background: rgba(180, 83, 9, 0.14); color: #fbf1e0; border: 1px solid rgba(180, 83, 9, 0.45); }
.pd-badge-muted   { background: rgba(20, 20, 20, 0.06); color: var(--pd-text-2); border: 1px solid #d4d8dd; }

/* Job 大数字卡 */
.pd-job-card .pd-job-count {
  font-size: 72px;
  font-weight: 800;
  color: var(--pd-pink);
  line-height: 1;
  margin: 4px 0 14px;
  font-variant-numeric: tabular-nums;
}
.pd-job-card .pd-job-count.is-zero { color: var(--pd-text-3); }
.pd-job-card .pd-job-foot {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 13px;
  color: var(--pd-text-2);
  margin-bottom: 8px;
}
.pd-job-dots { display: flex; gap: 8px; align-items: center; font-size: 12px; }
.pd-job-dots i {
  width: 8px; height: 8px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 4px;
  vertical-align: middle;
}
.pd-job-dots .dot-success { background: var(--pd-success); }
.pd-job-dots .dot-failed  { background: #f7eeec; }
.pd-job-dots .dot-pending { background: #b45309; }

.pd-progress {
  height: 4px;
  background: rgba(20, 20, 20, 0.05);
  border-radius: 2px;
  overflow: hidden;
}
.pd-progress > .bar {
  height: 100%;
  background: linear-gradient(90deg, var(--pd-pink), var(--pd-pink-2));
  width: 0;
  transition: width 0.3s;
}

/* 试试示例标签 */
.pd-try-tags {
  display: flex; gap: 8px; align-items: center;
  margin-top: 14px;
  font-size: 12px;
  color: var(--pd-text-3);
}

/* 状态条 */
.pd-footbar {
  position: fixed;
  bottom: 16px; left: calc(var(--pd-w) + 24px); right: 24px;
  background: #141414;
  border: 1px solid #141414;
  border-radius: 12px;
  padding: 10px 18px;
  display: flex; align-items: center; gap: 10px;
  font-size: 13px;
  color: #2f5d8a;
  z-index: 50;
}
.pd-footbar.is-warn {
  border-color: rgba(168, 60, 49, 0.5);
  color: #f7eeec;
}
.pd-footbar .pd-footbar-icon { font-size: 16px; }

/* 轻量 toast：用于「打开文档」这类瞬时操作的明确反馈（比 footbar 显眼）。
   os.startfile 立即返回、编辑器要几秒才起，仅靠底部状态条容易被忽略。 */
.pd-toast {
  position: fixed;
  left: 50%; bottom: 74px;
  transform: translateX(-50%) translateY(8px);
  background: #ffffff;
  border: 1px solid rgba(31, 92, 77, 0.5);
  color: #16453a;
  border-radius: 10px;
  padding: 10px 18px;
  font-size: 13px; line-height: 1.45;
  max-width: min(76vw, 560px);
  box-shadow: 0 8px 26px rgba(20, 20, 20, 0.18);
  z-index: 200;
  opacity: 0; pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
.pd-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }
.pd-toast.is-warn {
  background: #fafafa;
  border-color: rgba(168, 60, 49, 0.5);
  color: #a83c31;
}

/* 多链接队列 */
.pd-queue-list { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.pd-queue-item {
  display: grid;
  grid-template-columns: 28px 1fr auto auto;
  gap: 10px; align-items: center;
  padding: 10px 12px;
  background: #eef5f2;
  border-radius: 10px;
  border: 1px solid #d4d8dd;
  font-size: 13px;
}
.pd-queue-item .pd-qi-num {
  color: var(--pd-text-3);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.pd-queue-item .pd-qi-url {
  color: var(--pd-text);
  font-family: ui-monospace, monospace;
  font-size: 12px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pd-queue-empty {
  text-align: center;
  color: var(--pd-text-3);
  font-size: 13px;
  padding: 18px;
  border: 1px dashed #d4d8dd;
  border-radius: 10px;
  margin-top: 10px;
}

/* 任务中心列表 */
.pd-task-list { display: flex; flex-direction: column; gap: 8px; }
.pd-task-row {
  display: flex;
  gap: 12px;
  padding: 10px 12px;
  background: #eef5f2;
  border-radius: 10px;
  border: 1px solid #d4d8dd;
  font-size: 12px;
  align-items: flex-start;
}
.pd-task-status {
  flex: 0 0 auto;
  min-width: 64px;
  margin-top: 2px;
}
.pd-task-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.pd-task-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}
.pd-task-row .pd-tr-url {
  color: var(--pd-text);
  font-family: ui-monospace, monospace;
  font-size: 13px;
  line-height: 1.45;
  word-break: break-all;
  white-space: normal;
}
.pd-task-row .pd-tr-error {
  color: #f7eeec;
  font-size: 12px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}
.pd-task-row .pd-tr-meta { color: var(--pd-text-2); font-size: 11px; }

/* 任务中心：重试后的定位高亮 + 行内「看下了什么」展开区 */
.pd-task-row.is-retried { border-color: rgba(47, 93, 138, 0.45); }
.pd-task-row.is-expanded { border-color: rgba(47, 93, 138, 0.35); }
.pd-task-row.is-fresh { animation: pdTaskFlash 1.5s ease-out 2; }
@keyframes pdTaskFlash {
  0%, 100% { background: #eef5f2; }
  40% { background: rgba(47, 93, 138, 0.12); }
}
.pd-task-items {
  margin: -4px 0 4px 0;
  padding: 10px 12px;
  background: #eef5f2;
  border: 1px solid rgba(47, 93, 138, 0.22);
  border-top: none;
  border-radius: 0 0 10px 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 340px;
  overflow: auto;
}
/* ⚠️ 必须显式写这条：上面的 `display: flex` 是作者样式，会盖掉 `[hidden]` 的
   UA 规则（`[hidden]{display:none}`），于是 `box.hidden = true` 完全不起作用 ——
   表现为「收起点不动」+ 每一行下面都挂着一条空的 20px 灰盒子。 */
.pd-task-items[hidden] { display: none; }
.pd-ti-row {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 6px 8px; border-radius: 8px; cursor: pointer;
  background: rgba(20, 20, 20, 0.03);
}
.pd-ti-row:hover { background: rgba(47, 93, 138, 0.18); }
.pd-ti-thumb {
  flex: 0 0 auto; width: 48px; aspect-ratio: 3 / 4;
  border-radius: 6px; overflow: hidden; background: rgba(20, 20, 20, 0.06);
}
.pd-ti-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-ti-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.pd-ti-title {
  color: var(--pd-text); font-size: 12px; line-height: 1.45; word-break: break-word;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pd-ti-meta { color: var(--pd-text-2); font-size: 11px; display: flex; gap: 10px; flex-wrap: wrap; }
.pd-ti-hint { color: var(--pd-text-3); font-size: 11px; padding: 2px; }

/* 详情抽屉（从右滑入 900px；高度已铺满视口 top:0/bottom:0，靠 .pd-drawer-body flex:1 自适应） */
.pd-drawer-mask {
  position: fixed; inset: 0; background: rgba(20, 20, 20, 0.35);
  z-index: 9998; opacity: 0; pointer-events: none;
  transition: opacity 0.18s;
}
.pd-drawer-mask.is-on { opacity: 1; pointer-events: auto; }
.pd-drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(900px, 96vw);
  background: var(--pd-bg-mid, #141414);
  border-left: 1px solid var(--pd-border, rgba(20, 20, 20, 0.08));
  box-shadow: -8px 0 30px rgba(20, 20, 20, 0.18);
  z-index: 9999; transform: translateX(100%);
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex; flex-direction: column;
}
.pd-drawer.is-on { transform: translateX(0); }
.pd-drawer-resizer {
  position: absolute; left: -3px; top: 0; bottom: 0;
  width: 8px; cursor: ew-resize; z-index: 3;
  background: transparent; transition: background 0.15s;
}
.pd-drawer-resizer::before {
  content: ""; position: absolute; left: 3px; top: 50%;
  transform: translateY(-50%); width: 2px; height: 48px;
  border-radius: 2px; background: rgba(20, 20, 20, 0.18);
  transition: background 0.15s;
}
.pd-drawer-resizer:hover::before,
.pd-drawer-resizer.is-dragging::before { background: var(--brand-500, #2f5d8a); }
.pd-drawer-resizer:hover,
.pd-drawer-resizer.is-dragging { background: rgba(47, 93, 138, 0.12); }
.pd-drawer-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px; border-bottom: 1px solid #d4d8dd;
  flex-shrink: 0;
}
.pd-drawer-head h3 { margin: 0; font-size: 15px; color: var(--pd-text); font-weight: 600; }
.pd-drawer-close {
  background: transparent; border: none; color: var(--pd-text-2);
  font-size: 20px; cursor: pointer; padding: 0 6px; line-height: 1;
}
.pd-drawer-close:hover { color: var(--pd-pink, #2f5d8a); }
.pd-drawer-body {
  padding: 16px 18px 24px; overflow-y: auto; flex: 1;
  display: flex; flex-direction: column; gap: 16px;
}
.pd-drawer-player {
  width: 100%; aspect-ratio: 16/9; max-height: 62vh; max-width: 100%;
  background: #000; border-radius: 10px;
  overflow: hidden; flex-shrink: 0; margin: 0 auto;
  /* 竖屏素材由 JS 按 video.videoWidth/videoHeight 注入内联 aspect-ratio，按真实比例显示、不留大黑边 */
}
.pd-drawer-player video { width: 100%; height: 100%; object-fit: contain; }
/* 2026-10-19 深夜：原「播放器居左 + 转写居右」两栏结构已解散 ——
   播放器移入详情头图右上角（.pd-dh-player），语音转写改为下方第一个 tab pane。
   左右分栏拖拽（.pd-drawer-top-resizer）随之删除；对应 JS IIFE 有元素守卫，自动空转。 */
/* 语音转写 tab pane：高度独立可调（底部拖拽条，双击恢复默认） */
.pd-drawer-col-tr {
  flex: 1 1 0; min-width: 150px;
  display: flex; flex-direction: column;
  height: 480px; min-height: 200px; max-height: 88vh;
}
/* 转写栏底部拖拽条：上下拖动调整转写区高度（字幕多时可拉高），双击恢复默认 */
.pd-drawer-col-tr-resizer {
  flex: 0 0 14px; cursor: ns-resize; position: relative;
  background: transparent; transition: background 0.15s;
}
.pd-drawer-col-tr-resizer::before {
  content: ""; position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%); width: 46px; height: 3px;
  border-radius: 3px; background: rgba(20, 20, 20, 0.16);
  transition: background 0.15s;
}
.pd-drawer-col-tr-resizer:hover::before,
.pd-drawer-col-tr-resizer.is-dragging::before { background: var(--brand-500, #2f5d8a); }
.pd-drawer-col-tr-resizer:hover,
.pd-drawer-col-tr-resizer.is-dragging { background: rgba(47, 93, 138, 0.1); }
.pd-drawer-col-tr .pd-drawer-transcript-list {
  flex: 1 1 auto; min-height: 0; max-height: none;
}
.pd-drawer-col-tr .pd-drawer-transcript { max-height: none; }

.pd-field { display: block; margin-bottom: 12px; font-size: 12px; color: var(--pd-text-2); }
.pd-field span { display: block; margin-bottom: 5px; }
.pd-field input { width: 100%; padding: 8px 10px; border-radius: 8px; border: 1px solid #d4d8dd; background: #ffffff; color: var(--pd-text); font-size: 13px; box-sizing: border-box; }
.pd-field input:focus { outline: none; border-color: var(--pd-pink); }
.pd-settings-status { margin-top: 12px; font-size: 12.5px; line-height: 1.6; white-space: pre-wrap; }
.pd-settings-status.ok { color: #2f5d8a; }
.pd-settings-status.err { color: #f7eeec; }
.pd-settings-status.info { color: var(--pd-text-2); }
/* ---------- 设置：分析提示词模块编辑 ---------- */
.pd-prompt-mod-tag.head { background: rgba(47, 93, 138, 0.18); color: #eef2f8; }
.pd-danger { color: #f7eeec; border-color: rgba(168, 60, 49, 0.4); }
.pd-prompt-empty, .pd-drawer-empty { font-size: 12px; color: var(--pd-text-3); padding: 8px 0; }
/* ---------- 内容工坊（看板式三列工作台） ---------- */
.pd-studio { display: flex; flex-direction: column; gap: 15px; }
.pd-studio-head {
  display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap;
  padding-bottom: 13px; border-bottom: 1px solid #d4d8dd;
}
.pd-studio-head h2 { margin: 0; }
.pd-studio-sub { font-size: 12.5px; color: var(--pd-text-3); line-height: 1.65; margin-top: 6px; max-width: 620px; }
.pd-studio-head-actions { margin-left: auto; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* 三步上下堆叠（2026-10-08 改）：1 选题灵感 / 2 写脚本 / 3 标题生成 —— 「每步一整行」。
   （2026-10-08 晚起）**去掉行内左右分栏**：每步内部就是「表单在上、产出在下」的
   单整列，产出铺满整宽（用户反馈左右分栏把选题灵感的方格挤在窄栏里、内容好多没显示出来）。
   2026-10-27：原上排独占整行的区块已删除，.pd-top 容器一并移除。 */
.pd-board { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }

/* 每步的内部：表单（.pd-col-form）在上、产出（.pd-col-res）在下，都是整行宽。
   不再分左右两栏（2026-10-08 按用户要求去掉）。 */

.pd-col {
  display: flex; flex-direction: column; gap: 11px;
  background: rgba(31, 92, 77, 0.02);
  border: 1px solid #d4d8dd;
  border-radius: 14px; padding: 14px; min-height: 300px;
  transition: border-color .18s, background .18s;
}
.pd-col.is-active { border-color: #d4d8dd; background: rgba(31, 92, 77, 0.035); }
.pd-col.done .pd-col-step { background: rgba(31, 92, 77, 0.16); color: var(--pd-success); }

.pd-col-head { display: flex; align-items: center; gap: 8px; }
.pd-col-step {
  width: 20px; height: 20px; flex: 0 0 20px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 600;
  background: rgba(20, 20, 20, 0.08); color: var(--pd-text-2);
}
.pd-col.is-active .pd-col-step { background: var(--pd-pink-dim); color: var(--pd-pink); }
.pd-col-name { font-size: 13.5px; font-weight: 600; color: var(--pd-text); }
.pd-col-badge { font-size: 11px; color: var(--pd-text-3); }

.pd-hint {
  display: flex; gap: 9px; align-items: flex-start;
  padding: 9px 11px; border-radius: 10px;
  background: rgba(20, 20, 20, 0.03);
  border-left: 2px solid var(--pd-pink);
}
.pd-hint-txt { font-size: 12px; color: var(--pd-text-2); line-height: 1.7; }
.pd-hint-txt b { color: var(--pd-text); font-weight: 600; }

/* 可折叠提示（2026-10-08）：写脚本面板顶部那段说明原来常驻一大段，把表单整体往下推。
   改成 <details>：summary 只留一行关键信息，「怎么学语料 / 没有选题也能写」点开才看。
   summary 用 marker 隐藏 + 自带箭头，展开时箭头翻转。 */
/* 收起时必须**彻底不占空间**：<details> 只隐藏内容区，.pd-fold-body 自己的 padding 仍会生效 →
   实测收起后还残留 29px 空白（把省下的空间又吐回去一部分）。用 display:none 干掉。 */

/* 语料扫描行（写脚本面板）：语料是「点一下才扫」的快照 —— 扫的是哪一版，
   生成就学哪一版；知识库后来变了，靠按钮上的提醒重扫，不偷偷换掉语料。 */
.pd-scan-msg { font-size: 11.5px; color: var(--pd-text-3); line-height: 1.6; }
.pd-scan-msg.ok { color: var(--pd-success); }
.pd-scan-msg.err { color: #f7eeec; }
.pd-scan-row .pd-btn-tiny.is-stale { color: #b45309; border-color: rgba(180, 83, 9, 0.5); }

.pd-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pd-chip {
  font-size: 11.5px; color: var(--pd-text-2); cursor: pointer; font-family: inherit;
  padding: 4px 10px; border-radius: 999px;
  border: 1px solid #d4d8dd;
  background: rgba(20, 20, 20, 0.03);
  transition: all .15s;
}
.pd-chip:hover { color: var(--pd-pink); border-color: #d4d8dd; background: var(--pd-pink-dim); }

.pd-field { display: flex; flex-direction: column; gap: 6px; }
.pd-field > label { font-size: 11.5px; color: var(--pd-text-3); }
.pd-field textarea, .pd-field input, .pd-field select {
  width: 100%; box-sizing: border-box;
  background: rgba(20, 20, 20, 0.04); color: var(--pd-text);
  border: 1px solid #d4d8dd; border-radius: 9px;
  padding: 9px 11px; font-size: 13px; font-family: inherit; line-height: 1.6;
  resize: vertical;
}
.pd-field textarea:focus, .pd-field input:focus, .pd-field select:focus {
  outline: none; border-color: #d4d8dd;
}
.pd-field textarea::placeholder, .pd-field input::placeholder { color: var(--pd-text-3); }
.pd-field-hint { font-size: 11px; color: var(--pd-text-3); line-height: 1.6; min-height: 0; }
.pd-field-hint.is-doc { color: var(--pd-pink); }
/* 目标时长（2026-09-24）：数字框 + 预设 chips 同一行 */
/* 学什么（2026-10-08）：显式下拉，决定「学整个库」还是「照着勾的那条对标写」 */
.pd-dur-row > .pd-chips { flex: 1 1 auto; }
/* 素材多选清单（2026-09-24）：常驻勾选列表 + 搜索框，条数多了靠内滚 */
.pd-src-item { display: flex; gap: 8px; align-items: center; padding: 6px 8px; border-radius: 8px; cursor: pointer; font-size: 12.5px; }
.pd-src-item:hover { background: rgba(20, 20, 20, 0.05); }
.pd-src-item.is-on { background: var(--pd-pink-dim); }
.pd-src-box { flex: 0 0 auto; width: 14px; height: 14px; border-radius: 4px; border: 1px solid #c3cad3; display: flex; align-items: center; justify-content: center; font-size: 10px; line-height: 1; color: transparent; }
.pd-src-item.is-on .pd-src-box { background: var(--pd-pink); border-color: var(--pd-pink); color: #fff; }
.pd-src-t { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pd-src-d { flex: 0 0 auto; font-size: 11px; color: var(--pd-text-3); }
.pd-src-empty { padding: 10px; font-size: 12px; color: var(--pd-text-3); }
/* 抄模式：脚本末尾附带的那条「同结构变体选题」（2026-09-24） */
.pd-variant { border: 1px solid #d4d8dd; border-left: 3px solid #2f5d8a; background: rgba(20, 20, 20, 0.03); }
.pd-variant .pd-sec-head { color: var(--pd-text); }
/* 写脚本面板的「参考素材」清单（2026-09-24：参考归脚本，不归选题） */
#pd-script-ref-q { margin-bottom: 6px; }
.pd-src-k { flex: 0 0 auto; font-size: 11px; opacity: 0.85; }
/* 单条选题深挖（2026-09-24）：就地展开在这条选题下方，不替换整个列表 */
/* 2026-09-26：条目改成 grid 之后，深挖块必须用 grid 定位走第二行占满整宽 ——
   还留着 `flex: 1 0 100%` 会失效，深挖内容会被挤进第 2 栏（贴着按钮那一列）。 */
.pd-dig { grid-column: 1 / -1; grid-row: 2; margin-top: 2px; border-radius: 10px; background: rgba(20, 20, 20, 0.04); border: 1px solid #d4d8dd; padding: 10px 12px; font-size: 12.5px; }
.pd-dig-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font-size: 12px; font-weight: 500; color: var(--pd-text-2); }
.pd-dig-head > .pd-btn-tiny { margin-left: auto; }
.pd-dig-body { color: var(--pd-text); line-height: 1.7; word-break: break-word; }
.pd-dig-body h2 { font-size: 12.5px; color: var(--pd-pink); margin: 10px 0 4px; }
.pd-dig-body h2:first-child { margin-top: 0; }
.pd-dig-body p { margin: 0 0 4px; }
.pd-dig-err { color: #f7eeec; }
/* 「重生成这段」的改动要求小弹窗 */
.pd-ask-mask { position: fixed; inset: 0; background: rgba(20, 20, 20, 0.35); display: flex; align-items: center; justify-content: center; z-index: 96; padding: 20px; }
.pd-ask { width: 100%; max-width: 460px; background: var(--pd-bg-mid); border: 1px solid #d4d8dd; border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; }
.pd-ask h4 { margin: 0; font-size: 14px; color: var(--pd-text); font-weight: 600; }
.pd-ask input { width: 100%; box-sizing: border-box; padding: 9px 10px; border-radius: 8px; border: 1px solid #d4d8dd; background: #ffffff; color: var(--pd-text); font-size: 13px; }
.pd-ask input:focus { outline: none; border-color: var(--pd-pink); }
.pd-ask-row { display: flex; gap: 8px; justify-content: flex-end; }
/* =============== 实体获客文案 · 对话页（2026-10-14：原「选题灵感」表单页改为对话式） ===============
   旧 idea 表单的选择器（#pd-col-idea #pd-idea-topic / .pd-out / .pd-sec-body 方格网格等）随表单
   一起下架；旧 JS 渲染函数（_pdIdeaRender 等）按用户要求「停用不删」，目标元素已不在，空转。 */
.pd-chat { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
/* 消息列表：对话就该限高内滚；max-height 给页头 / 输入行 / 底部 footbar 留位置 */
.pd-chat-log {
  display: flex; flex-direction: column; gap: 12px;
  min-height: 360px; max-height: calc(100vh - 330px);
  overflow-y: auto; padding: 14px;
  background: rgba(255, 255, 255, 0.55); border: 1px solid #d4d8dd; border-radius: 12px;
}
.pd-chat-empty { margin: auto 0; text-align: center; color: var(--pd-text-3); font-size: 12.5px; line-height: 2; }
.pd-chat-empty b { color: var(--pd-text-2); }
.pd-chat-row { display: flex; flex-direction: column; gap: 5px; max-width: 82%; min-width: 0; }
.pd-chat-row.is-user { align-self: flex-end; align-items: flex-end; }
.pd-chat-row.is-ai { align-self: flex-start; }
.pd-chat-bubble { padding: 10px 13px; border-radius: 12px; font-size: 13px; line-height: 1.75; word-break: break-word; min-width: 0; }
.pd-chat-row.is-user .pd-chat-bubble {
  background: var(--pd-pink-dim); border: 1px solid #d4d8dd; color: var(--pd-text);
  white-space: pre-wrap; border-bottom-right-radius: 4px;
}
.pd-chat-row.is-ai .pd-chat-bubble {
  background: rgba(20, 20, 20, 0.045); border: 1px solid #d4d8dd;
  border-bottom-left-radius: 4px;
}
.pd-chat-meta { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--pd-text-3); }
.pd-chat-acts { display: flex; gap: 6px; }
.pd-chat-quick { display: flex; flex-wrap: wrap; gap: 6px; }
.pd-chat-in { display: flex; gap: 10px; align-items: flex-end; }
.pd-chat-in textarea {
  flex: 1 1 auto; min-width: 0; min-height: 46px; resize: vertical;
  background: rgba(20, 20, 20, 0.04); color: var(--pd-text);
  border: 1px solid #d4d8dd; border-radius: 9px;
  padding: 9px 11px; font-size: 13px; font-family: inherit; line-height: 1.6;
}
.pd-chat-in textarea:focus { outline: none; border-color: #d4d8dd; }
.pd-chat-in textarea::placeholder { color: var(--pd-text-3); }
.pd-chat-in .pd-btn { flex: 0 0 auto; }
/* 自定义提示词框（对话上方常驻，默认展开可折叠）：追加在内置人设后，每轮自动带上 */
/* =============== 写脚本 · 配置区 + 对话窗口（2026-10-14 对话化改造） ===============
   结构：⚙️ 配置区（原表单，details 折叠，摘要行右侧＝模型下拉 + 一键整篇生成）
        → 对话窗口（左窄栏会话列表 + 右消息流/输入框，主体）
        → 一键整篇生成的产出（老 .pd-col-res）。 */
/* 对话区：左窄栏（会话）＋ 右主体（消息流 / 输入） */
.pd-sc { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 12px; align-items: stretch; min-width: 0; }
.pd-sc-side {
  display: flex; flex-direction: column; gap: 8px; min-width: 0;
  background: #eef5f2; border: 1px solid #d4d8dd;
  border-radius: 12px; padding: 10px; max-height: 660px;
}
.pd-sc-new {
  padding: 8px 10px; font-size: 12.5px; text-align: left; cursor: pointer;
  background: var(--pd-pink-dim); color: var(--pd-text);
  border: 1px solid #d4d8dd; border-radius: 8px; flex: 0 0 auto;
}
.pd-sc-new:hover { border-color: var(--pd-pink); }
.pd-sc-list { display: flex; flex-direction: column; gap: 6px; overflow-y: auto; min-height: 0; flex: 1 1 auto; }
.pd-sc-list-empty { padding: 14px 6px; font-size: 11.5px; color: var(--pd-text-3); text-align: center; line-height: 1.9; }
.pd-sc-item {
  position: relative; padding: 8px 26px 8px 9px; border-radius: 8px; cursor: pointer;
  border: 1px solid transparent; background: rgba(20, 20, 20, 0.03);
}
.pd-sc-item:hover { background: rgba(20, 20, 20, 0.06); }
.pd-sc-item.is-on { border-color: var(--pd-pink); background: var(--pd-pink-dim); }
.pd-sc-item-t { font-size: 12px; color: var(--pd-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pd-sc-item-m { font-size: 10.5px; color: var(--pd-text-3); margin-top: 3px; }
.pd-sc-item-del {
  position: absolute; top: 6px; right: 5px; width: 18px; height: 18px; padding: 0;
  font-size: 10px; line-height: 1; color: var(--pd-text-3); cursor: pointer;
  background: none; border: none; border-radius: 5px;
}
.pd-sc-item-del:hover { color: #f7eeec; background: rgba(168, 60, 49, 0.12); }
.pd-sc-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
/* 消息流：对话就该限高内滚（与实体获客对话页同款高度策略） */
.pd-sc-in .pd-btn { flex: 0 0 auto; }
/* 助手消息操作行里的「已自动留档」角标 */
@media (max-width: 900px){
  .pd-sc { grid-template-columns: 1fr; }
  .pd-sc-side { max-height: 210px; }
}
/* 实体获客文案页（2026-10-14）：对话区升级成**三栏** —— 左「🎯 IP定位」常驻面板
   ＋ 中「会话列表」＋ 右「消息流」。只在 .pd-sc-3 下生效，写脚本页的两栏不受影响。 */
.pd-sc.pd-sc-3 { grid-template-columns: 288px 196px minmax(0, 1fr); }
@media (max-width: 1380px){
  .pd-sc.pd-sc-3 { grid-template-columns: 256px 172px minmax(0, 1fr); }
}
@media (max-width: 1080px){
  .pd-sc.pd-sc-3 { grid-template-columns: 1fr; }
  .pd-ip { max-height: none; }
}
/* 🎯 IP定位面板（左侧常驻）：填门店资料 → 🤖 生成 → 确认/编辑 → 勾「套用到对话」 */
.pd-ip {
  display: flex; flex-direction: column; gap: 8px; min-width: 0;
  background: #ffffff; border: 1px solid #d4d8dd;
  border-radius: 12px; padding: 10px; max-height: 640px;
}
.pd-ip-head { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.pd-ip-title { font-size: 13px; font-weight: 700; color: var(--pd-text); }
.pd-ip-state {
  margin-left: auto; font-size: 10.5px; padding: 2px 8px; border-radius: 999px;
  background: rgba(20, 20, 20, 0.07); color: var(--pd-text-3); white-space: nowrap;
}
.pd-ip-state.is-applied { background: var(--pd-pink-dim); color: var(--pd-pink); font-weight: 600; }
.pd-ip-body { display: flex; flex-direction: column; gap: 5px; overflow-y: auto; min-height: 0; flex: 1 1 auto; }
.pd-ip-tip { font-size: 10.5px; line-height: 1.45; color: var(--pd-text-3); padding: 0 2px; }
.pd-ip-f { display: flex; flex-direction: column; gap: 2px; flex: 0 0 auto; }
.pd-ip-f > span { font-size: 11px; color: var(--pd-text-2); font-weight: 600; }
.pd-ip-quick { margin: -1px 0 1px; gap: 4px; }
.pd-ip-quick .pd-chip { font-size: 10.5px; padding: 1px 7px; line-height: 1.4; }
.pd-ip-adv { flex: 0 0 auto; border-top: 1px dashed rgba(20,20,20,.18); padding-top: 7px; }
.pd-ip-adv > summary {
  font-size: 11px; color: var(--pd-text-2); font-weight: 600; cursor: pointer;
  list-style: none; padding: 2px 0 6px; user-select: none;
}
.pd-ip-adv > summary::before { content: '▸ '; font-size: 10px; color: var(--pd-text-3); }
.pd-ip-adv[open] > summary::before { content: '▾ '; }
.pd-ip-adv > summary:hover { color: var(--pd-text); }
.pd-ip-adv > .pd-ip-f { margin-bottom: 7px; }
.pd-ip-adv > .pd-ip-quick { margin-bottom: 7px; }
.pd-ip-f input, .pd-ip-f textarea, .pd-ip-result textarea {
  width: 100%; box-sizing: border-box; resize: vertical;
  background: rgba(20, 20, 20, 0.03); color: var(--pd-text);
  border: 1px solid #d4d8dd; border-radius: 7px;
  padding: 5px 8px; font-size: 12px; font-family: inherit; line-height: 1.4;
}
.pd-ip-f input:focus, .pd-ip-f textarea:focus, .pd-ip-result textarea:focus {
  outline: none; border-color: var(--pd-pink); background: #fff;
}
.pd-ip-f input::placeholder, .pd-ip-f textarea::placeholder, .pd-ip-result textarea::placeholder { color: var(--pd-text-3); }
.pd-ip-btns { display: flex; gap: 7px; flex: 0 0 auto; }
.pd-ip-btns .pd-btn, .pd-ip-btns .pd-btn-ghost { flex: 1 1 auto; }
.pd-ip-result {
  display: flex; flex-direction: column; gap: 5px; flex: 0 0 auto;
  border-top: 1px dashed rgba(20, 20, 20, 0.22); padding-top: 9px;
}
.pd-ip-result-head { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 600; color: var(--pd-text-2); }
.pd-ip-note { margin-left: auto; font-weight: 400; color: var(--pd-text-3); font-size: 10.5px; }
.pd-ip-result textarea { min-height: 88px; }
.pd-ip-foot { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.pd-ip-apply { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--pd-text-2); cursor: pointer; user-select: none; }
.pd-ip-apply input { accent-color: var(--pd-pink); }
.pd-ip-foot .pd-btn { margin-left: auto; }
/* 📚 IP 定位库浮层（2026-10-15）：列所有存档定位 → 查看 / 复用 / 删除 */
.pd-ip-lib { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; }
.pd-ip-lib[hidden] { display: none; }
.pd-ip-lib-mask { position: absolute; inset: 0; background: rgba(20,30,28,.38); }
.pd-ip-lib-panel {
  position: relative; width: min(560px, 92vw); max-height: 84vh; background: #fff;
  border: 1px solid #d4d8dd; border-radius: 14px; box-shadow: 0 18px 50px rgba(20,30,28,.22);
  display: flex; flex-direction: column; overflow: hidden;
}
.pd-ip-lib-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid #ebebeb; }
.pd-ip-lib-title { font-size: 15px; font-weight: 700; color: #1f5c4d; }
.pd-ip-lib-sub { font-size: 12px; color: #6b7785; }
.pd-ip-lib-x { margin-left: auto; border: none; background: transparent; font-size: 22px; line-height: 1; color: #6b7785; cursor: pointer; padding: 0 4px; }
.pd-ip-lib-x:hover { color: #1f5c4d; }
.pd-ip-lib-save { display: flex; gap: 8px; padding: 12px 16px; border-bottom: 1px solid #ebebeb; }
.pd-ip-lib-save input { flex: 1 1 auto; min-width: 0; padding: 8px 10px; border: 1px solid #d4d8dd; border-radius: 10px; font-size: 13px; background: #fff; color: #1a1a1a; }
.pd-ip-lib-save input:focus { outline: none; border-color: #1f5c4d; box-shadow: 0 0 0 3px rgba(31,92,77,.12); }
.pd-ip-lib-list { flex: 1 1 auto; overflow-y: auto; padding: 10px 16px; min-height: 80px; }
.pd-ip-lib-list[hidden] { display: none; }
.pd-ip-lib-empty { text-align: center; color: #8a96a3; font-size: 13px; padding: 28px 12px; line-height: 1.7; }
.pd-ip-lib-item { border: 1px solid #ebebeb; border-radius: 12px; padding: 11px 12px; margin-bottom: 10px; background: #fff; }
.pd-ip-lib-item:hover { border-color: #1f5c4d; }
.pd-ip-lib-item-top { display: flex; align-items: center; gap: 8px; }
.pd-ip-lib-item-name { font-size: 13.5px; font-weight: 700; color: #1a1a1a; }
.pd-ip-lib-item-meta { font-size: 11.5px; color: #6b7785; margin-top: 3px; line-height: 1.6; }
.pd-ip-lib-item-actions { display: flex; gap: 6px; margin-top: 9px; }
.pd-ip-lib-item-actions .pd-btn, .pd-ip-lib-item-actions .pd-btn-ghost { font-size: 12px; padding: 5px 11px; }
.pd-ip-lib-detail { flex: 1 1 auto; overflow-y: auto; padding: 14px 16px; }
.pd-ip-lib-detail[hidden] { display: none; }
.pd-ip-lib-detail-head { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: #1f5c4d; }
.pd-ip-lib-back { margin-left: auto; border: 1px solid #d4d8dd; background: #fff; border-radius: 8px; font-size: 12px; padding: 4px 10px; cursor: pointer; color: #1a1a1a; }
.pd-ip-lib-back:hover { border-color: #1f5c4d; color: #1f5c4d; }
.pd-ip-lib-detail-meta { font-size: 12px; color: #6b7785; margin: 8px 0 12px; line-height: 1.8; }
.pd-ip-lib-detail-meta b { color: #1f5c4d; font-weight: 600; }
.pd-ip-lib-detail-body { font-size: 13px; color: #1a1a1a; white-space: pre-wrap; line-height: 1.75; background: #f4f6f9; border: 1px solid #ebebeb; border-radius: 10px; padding: 12px 14px; }
.pd-ip-lib-detail-foot { margin-top: 14px; display: flex; justify-content: flex-end; }
/* IP 面板头部的「📚 定位库」按钮 */
.pd-ip-lib-btn { margin-left: auto; border: 1px solid #d4d8dd; background: #fff; border-radius: 8px; font-size: 12px; padding: 4px 10px; cursor: pointer; color: #1f5c4d; font-weight: 600; }
.pd-ip-lib-btn:hover { border-color: #1f5c4d; background: #eef5f2; }
/* 右下角浮钮 + 「对接大模型」设置面板（position:fixed；bottom 避开 footbar：
   footbar 是 bottom:16px、高约 40px，所以浮钮抬到 72px、面板抬到 126px。
   ⚠️ 2026-10-15 修：DY 层改布局后输入行的发送按钮（距底约 104px）会被 72px 高的
      浮钮压住（hit-target 命中 fab → 点不到发送）→ 浮钮抬到 140px、面板抬到 194px，
      并给 #pd-chat-send 提 z-index 兜底（textarea 自动长高时按钮下移也不被挡）。 */
.pd-chat-fab {
  position: fixed; right: 24px; bottom: 140px; z-index: 60;
  display: flex; align-items: center; gap: 7px;
  padding: 9px 14px; border-radius: 999px; cursor: pointer;
  background: rgba(255,255,255,0.92); color: var(--pd-text-2);
  border: 1px solid #d4d8dd; font-size: 12.5px;
  backdrop-filter: blur(10px); box-shadow: 0 6px 20px rgba(20, 20, 20, 0.12);
}
.pd-chat-fab:hover { color: var(--pd-text); border-color: var(--pd-pink); }
.pd-chat-fab #pd-chat-fab-model { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 发送按钮：层级高于浮钮，保证任何布局下都可点 */
#pd-chat-send { position: relative; z-index: 70; }
.pd-chat-model {
  position: fixed; right: 24px; bottom: 194px; z-index: 61; width: 310px;
  display: flex; flex-direction: column; gap: 9px;
  background: rgba(255,255,255,0.97); border: 1px solid #d4d8dd;
  border-radius: 14px; padding: 14px;
  box-shadow: 0 12px 40px rgba(20, 20, 20, 0.18); backdrop-filter: blur(12px);
}
.pd-chat-model[hidden] { display: none; }
.pd-chat-model-head { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--pd-text); }
.pd-chat-model-note { font-size: 11px; color: var(--pd-text-3); font-weight: 400; }
.pd-chat-model-x { margin-left: auto; background: none; border: none; color: var(--pd-text-3); cursor: pointer; font-size: 16px; line-height: 1; padding: 2px 4px; }
.pd-chat-model-x:hover { color: var(--pd-text); }
.pd-chat-model .pd-field { gap: 5px; }
.pd-chat-model-foot { display: flex; align-items: center; gap: 8px; }
.pd-chat-model-foot .pd-btn { flex: 0 0 auto; }
#pd-chat-model-msg { flex: 1 1 auto; font-size: 11.5px; color: var(--pd-text-3); line-height: 1.5; }
#pd-chat-model-msg.ok { color: var(--pd-success); }
#pd-chat-model-msg.err { color: #f7eeec; }

/* 下拉：自绘外观 + 粉色箭头，并强制 option 配色（别依赖系统主题，见 :root color-scheme 注释） */
.pd-field select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23047857' d='M5 6L0 0h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center;
  padding-right: 28px; cursor: pointer;
}
.pd-field select option { background: var(--pd-bg-mid); color: var(--pd-text); }
.pd-field select option[value=""] { color: var(--pd-text-3); }

/* 「本次走哪条路」常驻提示（2026-10-08）：生成前把「照着《X》写 / 学整个库 + 目标时长」
   固定显示在生成按钮上方，生成完也还在 —— 症状是「走了哪条路没察觉」，所以必须常驻。 */
.pd-plan.is-copy { border-color: #d4d8dd; background: var(--pd-pink-dim); color: var(--pd-text); }
.pd-plan.is-lib { color: var(--pd-text-3); }

.pd-col-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.pd-col-msg { font-size: 11.5px; color: var(--pd-text-3); line-height: 1.6; }
.pd-col-msg.err { color: #f7eeec; }
.pd-col-msg.ok { color: var(--pd-success); }



/* 2026-10-08：「直接问它」本机问答区的样式（输入框 / 回答区 / 打字光标动画）
   已按用户要求整体删除 —— 工作台只保留外部模型网页入口。 */


/* 链路接力「下一步」条 */
.pd-next {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 9px 12px; border-radius: 10px;
  background: rgba(31, 92, 77, 0.06);
  border: 1px dashed rgba(31, 92, 77, 0.35);
}
.pd-next[hidden] { display: none; }
.pd-next-txt { font-size: 12px; color: var(--pd-success); font-weight: 600; }
.pd-next-btn {
  margin-left: auto;
  background: linear-gradient(135deg, var(--pd-pink), var(--pd-pink-2));
  color: #fff; border: none; border-radius: 9px; padding: 7px 14px;
  font-size: 12.5px; font-weight: 700; cursor: pointer;
}
.pd-next-btn:hover { filter: brightness(1.08); }

.pd-out { display: flex; flex-direction: column; gap: 9px; }
.pd-out-empty {
  padding: 18px 13px; text-align: center;
  border: 1px dashed rgba(20, 20, 20, 0.34); border-radius: 10px;
  font-size: 12px; color: var(--pd-text-3); line-height: 1.75;
}

/* 条目 = 两栏网格：左文字、右按钮。
   ⚠️ 2026-09-26 修用户报的「列表排列不争气」。原来是 flex + flex-wrap：
      文字一长就把三个按钮（用这条 / 深挖 / 📋）挤到**下一行左对齐**
      （真机实测 actsTop=81、actsLeft=11，跟下一条的【元素】糊在一起），
      文字短时按钮又留在右侧 —— 同一个列表里按钮位置随文字长短来回跳，看着参差不齐。
      改成 grid 后按钮**恒在第一行右侧**（文字再长也不换行），深挖展开块走第二行占满。 */
.pd-topic-item {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 9px; row-gap: 6px; align-items: start;
  padding: 9px 10px; border-radius: 10px;
  background: rgba(20, 20, 20, 0.035);
  border: 1px solid #d4d8dd;
  transition: all .15s;
}
.pd-topic-item:hover { border-color: #d4d8dd; background: rgba(31, 92, 77, 0.05); }
.pd-topic-item.is-picked { border-color: var(--pd-pink); background: rgba(31, 92, 77, 0.1); }
.pd-topic-text { grid-column: 1; grid-row: 1; min-width: 0; font-size: 12.5px; color: var(--pd-text); line-height: 1.65; word-break: break-word; }
.pd-topic-el { font-size: 10.5px; color: var(--pd-pink); margin-bottom: 3px; letter-spacing: .3px; }
/* 看板里的复制按钮：钉在第一行右侧，不参与拉伸 */
.pd-topic-acts { grid-column: 2; grid-row: 1; display: flex; gap: 6px; align-items: flex-start; }
.pd-line > .pd-btn-tiny { flex: 0 0 auto; align-self: flex-start; }
.pd-sec-head > .pd-btn-tiny { margin-left: 8px; flex: 0 0 auto; }

.pd-sec {
  border: 1px solid #d4d8dd;
  border-radius: 11px; overflow: hidden;
  background: rgba(20, 20, 20, 0.02);
}
.pd-sec-head {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 11px; background: rgba(20, 20, 20, 0.035);
  font-size: 12px; font-weight: 600; color: var(--pd-text);
}
.pd-sec-n { font-size: 10.5px; color: var(--pd-text-3); font-weight: 400; margin-left: auto; }
.pd-sec-body { padding: 10px 12px; font-size: 13px; color: var(--pd-text); line-height: 1.85; }
.pd-sec-body p { margin: 0 0 8px; }
.pd-sec-body p:last-child { margin-bottom: 0; }
.pd-sec-note { font-size: 12.5px; color: var(--pd-text-2); line-height: 1.8; }
.pd-sec-note p { margin: 0 0 6px; }
.pd-line { display: flex; gap: 10px; padding: 4px 0; border-bottom: 1px dashed rgba(20, 20, 20, 0.17); }
.pd-line:last-child { border-bottom: none; }
/* 「口播 · 画面」合成一套后的节拍列表（用户最终选定版）：同一拍的画面/口播
   **纵向交错**排进同一个列表 —— 时间戳一行、口播一行、画面一行。
   （中间试过「时间|口播|画面」三列并排表格，用户反馈「还是上个版本好一点」，已回退到此版。）
   CSS 用 `.pd-beat-l b{min-width:30px;margin-right:6px}` 固定标签宽度，视觉对齐。 */
.pd-beats { display: flex; flex-direction: column; }
.pd-beat { padding: 9px 12px; border-top: 1px solid #d4d8dd; }
.pd-beat:first-child { border-top: none; }
.pd-beat-t { font-size: 11.5px; font-weight: 600; color: var(--pd-pink); margin-bottom: 4px; }
.pd-beat-l { font-size: 12.5px; color: var(--pd-text); line-height: 1.75; word-break: break-word; }
.pd-beat-l b {
  display: inline-block; min-width: 30px; margin-right: 6px;
  font-size: 10.5px; font-weight: 600; color: var(--pd-text-3);
}

/* 侧滑面板（产出记录 / 口播改写） */
.pd-slide-mask {
  position: fixed; inset: 0; background: rgba(20, 20, 20, 0.35);
  z-index: 9998; opacity: 0; pointer-events: none; transition: opacity .18s;
}
.pd-slide-mask.is-on { opacity: 1; pointer-events: auto; }
.pd-slide {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(600px, 96vw);
  background: var(--pd-bg-mid, #141414);
  border-left: 1px solid #d4d8dd;
  box-shadow: -8px 0 30px rgba(20, 20, 20, 0.18);
  z-index: 9999; transform: translateX(100%);
  transition: transform .22s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex; flex-direction: column;
}
.pd-slide.is-on { transform: translateX(0); }
.pd-slide-head {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 18px; border-bottom: 1px solid #d4d8dd;
}
.pd-slide-head h3 { margin: 0; font-size: 15px; color: var(--pd-text); font-weight: 600; }
.pd-slide-close {
  margin-left: auto; background: transparent; border: none; cursor: pointer;
  color: var(--pd-text-3); font-size: 16px; font-family: inherit; line-height: 1;
}
.pd-slide-close:hover { color: var(--pd-pink); }
.pd-slide-body { flex: 1; overflow: auto; padding: 14px 18px; display: flex; flex-direction: column; gap: 10px; }

@media (max-width: 620px) { }
.pd-chip.is-on { color: #fff; border-color: var(--pd-pink); background: var(--pd-pink); font-weight: 600; }

.pd-rec-item {
  border: 1px solid #d4d8dd; border-radius: 11px;
  padding: 11px 13px; background: rgba(20, 20, 20, 0.025); cursor: pointer;
  transition: all .15s;
}
.pd-rec-item:hover { border-color: #d4d8dd; background: rgba(31, 92, 77, 0.05); }
.pd-rec-item.is-on { border-color: var(--pd-pink); background: rgba(31, 92, 77, 0.08); }
.pd-rec-top { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; }
.pd-rec-tag {
  flex: 0 0 auto; font-size: 10.5px; padding: 2px 8px; border-radius: 999px;
  background: var(--pd-pink-dim); color: var(--pd-pink);
}
.pd-rec-title { flex: 1 1 auto; min-width: 0; font-size: 13px; font-weight: 600; color: var(--pd-text); word-break: break-word; }
.pd-rec-meta { font-size: 11px; color: var(--pd-text-3); line-height: 1.6; }
.pd-rec-acts { display: flex; gap: 7px; margin-top: 10px; flex-wrap: wrap; }
.pd-rec-preview { margin-top: 10px; }
/* 产出记录：搜索 + 类型筛选 */
.pd-rec-tools { display: flex; flex-direction: column; gap: 8px; padding: 12px 18px 0; flex: 0 0 auto; }
.pd-rec-q {
  width: 100%; box-sizing: border-box; font-family: inherit; font-size: 12.5px;
  padding: 7px 11px; border-radius: 9px;
  border: 1px solid #d4d8dd;
  background: rgba(20, 20, 20, 0.04); color: var(--pd-text);
}
.pd-rec-q:focus { outline: none; border-color: var(--pd-pink); }
.pd-rec-q::placeholder { color: var(--pd-text-3); }
.pd-rec-filters { display: flex; gap: 6px; flex-wrap: wrap; }
.pd-rec-fbtn {
  font-family: inherit; font-size: 11px; cursor: pointer;
  padding: 3px 10px; border-radius: 999px;
  border: 1px solid #d4d8dd;
  background: transparent; color: var(--pd-text-3);
}
.pd-rec-fbtn:hover { color: var(--pd-text); border-color: #d4d8dd; }
.pd-rec-fbtn.is-on { background: var(--pd-pink-dim); color: var(--pd-pink); border-color: transparent; }
.pd-rec-sum { font-size: 11px; color: var(--pd-text-3); }
.pd-drawer-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pd-seg { display: inline-flex; border: 1px solid #d4d8dd; border-radius: 8px; overflow: hidden; }
.pd-seg-item {
  border: none; background: transparent; color: var(--pd-text-3);
  padding: 5px 10px; font-size: 12px; cursor: pointer; transition: all .15s;
}
.pd-seg-item:hover { color: var(--pd-text); background: rgba(20, 20, 20, 0.05); }
.pd-seg-item.active {
  background: linear-gradient(90deg, var(--pd-pink, #2f5d8a), var(--pd-cyan, #2f5d8a));
  color: #fff; font-weight: 600;
}
.pd-drawer-progress {
  display: flex; align-items: center; gap: 8px; padding: 8px 12px;
  background: rgba(20, 20, 20, 0.03); border-radius: 8px; font-size: 12px;
  color: var(--pd-text-2);
}
.pd-drawer-progress .bar { flex: 1; height: 4px; background: rgba(20, 20, 20, 0.08); border-radius: 2px; overflow: hidden; }
.pd-drawer-progress .bar > div { height: 100%; background: var(--pd-pink, #2f5d8a); width: 0%; transition: width 0.3s; }

/* 全局分析进度气泡（脱离抽屉生命周期，切页面/重渲染不丢） */
.pd-floating-analyzes {
  position: fixed; right: 18px; bottom: 76px; width: 320px; max-height: 50vh; overflow: auto;
  background: #ffffff; border: 1px solid rgba(47, 93, 138, 0.35);
  border-radius: 12px; padding: 10px 12px; color: var(--pd-text);
  box-shadow: 0 8px 28px rgba(20, 20, 20, 0.16);
  font-size: 12px; z-index: 9000; backdrop-filter: blur(8px);
  display: none;
}
.pd-floating-analyzes-head {
  font-weight: 700; margin-bottom: 8px; color: var(--pd-pink, #2f5d8a);
  display: flex; align-items: center; gap: 6px;
}
.pd-floating-analyzes-item {
  padding: 8px 0; border-bottom: 1px dashed rgba(20, 20, 20, 0.21);
  cursor: pointer; transition: background 0.15s; border-radius: 6px;
}
.pd-floating-analyzes-item:hover { background: rgba(47, 93, 138, 0.12); }
.pd-floating-analyzes-item:last-child { border-bottom: none; }
.pd-floating-analyzes-item .title { display: block; margin-bottom: 4px; font-weight: 600; }
.pd-floating-analyzes-item .bar { height: 4px; background: rgba(20, 20, 20, 0.08); border-radius: 2px; overflow: hidden; margin-bottom: 4px; }
.pd-floating-analyzes-item .bar > div { height: 100%; background: linear-gradient(90deg, var(--pd-pink, #2f5d8a), var(--pd-cyan, #2f5d8a)); transition: width 0.4s; }
.pd-floating-analyzes-item .msg { font-size: 10px; color: var(--pd-text-3, #9aa3af); }
@media (max-width: 768px) {
  .pd-floating-analyzes { right: 8px; left: 8px; width: auto; bottom: 64px; }
}
.pd-drawer-section {
  background: #eef5f2; border: 1px solid #d4d8dd;
  border-radius: 10px; padding: 12px 14px;
}
.pd-drawer-section h4 {
  margin: 0 0 8px; font-size: 13px; font-weight: 600;
  color: var(--pd-text); display: flex; align-items: center; gap: 6px;
}
.pd-drawer-scene .pd-scene-noframe { width: 100%; aspect-ratio: 16 / 9; background: #000; border-radius: 5px; display: grid; place-items: center; color: #6b6b6b; font-size: 10px; }
.pd-drawer-scene .meta { color: var(--pd-text-3); font-size: 10px; margin-bottom: 0; font-family: var(--pd-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-drawer-scene .txt { color: var(--pd-text); line-height: 1.4; font-size: 11px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pd-drawer-scene .txt-transcript .lbl { color: #2f5d8a; font-size: 9px; margin-right: 2px; }
/* 分镜表（2026-10-01）：卡片列表改为表格，列=镜号/时间/代表画面/画面内容/怎么拍/台词·声音 */
.pd-scene-table-wrap { max-height: 640px; overflow: auto; border: 1px solid #d4d8dd; border-radius: 8px; }
.pd-scene-table { width: 100%; border-collapse: collapse; font-size: 12px; table-layout: fixed; }
.pd-scene-table thead th { position: sticky; top: 0; z-index: 1; background: var(--pd-bg-soft); color: var(--pd-text-2); font-weight: 500; text-align: left; padding: 8px 10px; border-bottom: 1px solid #d4d8dd; white-space: nowrap; }
.pd-scene-table tbody td { padding: 8px 10px; border-bottom: 1px solid #d4d8dd; color: var(--pd-text); vertical-align: top; line-height: 1.55; word-break: break-word; }
.pd-scene-table tbody tr:last-child td { border-bottom: none; }
.pd-scene-table .c-no { width: 52px; }
.pd-scene-table .c-time { width: 88px; }
.pd-scene-table .c-frame { width: 126px; }
.pd-scene-table .c-style { width: 112px; }
.pd-scene-no { display: inline-grid; place-items: center; min-width: 26px; height: 22px; padding: 0 5px; border: 1px solid #d4d8dd; border-radius: 5px; font-family: var(--pd-mono); font-size: 11px; color: var(--pd-text-2); }
.pd-scene-table .c-time { font-family: var(--pd-mono); font-size: 11px; color: var(--pd-text-2); white-space: nowrap; }
.pd-scene-time-to { color: var(--pd-text-3); }
.pd-scene-table .c-frame img { width: 112px; height: 63px; object-fit: cover; border-radius: 5px; background: #000; display: block; }
.pd-scene-table .pd-scene-noframe { width: 112px; height: 63px; background: #000; border-radius: 5px; display: grid; place-items: center; color: #6b6b6b; font-size: 10px; }
.pd-scene-td-empty { color: var(--pd-text-3); }
.pd-scene-table-hint { padding: 8px 10px; color: var(--pd-text-3); font-size: 11px; border-top: 1px solid #d4d8dd; }
.pd-drawer-transcript {
  font-size: 13px; line-height: 1.7; color: var(--pd-text-2);
  white-space: pre-wrap; max-height: 200px; overflow-y: auto;
}
.pd-drawer-transcript-list {
  max-height: 280px; overflow-y: auto; border-radius: 8px;
  background: rgba(20, 20, 20, 0.02); padding: 4px;
}
.pd-tr-row {
  display: grid; grid-template-columns: 52px 1fr; gap: 8px;
  padding: 5px 8px; border-radius: 6px; cursor: pointer; line-height: 1.5;
  font-size: 13px; color: var(--pd-text-2); transition: background .12s;
}
.pd-tr-row:hover { background: rgba(47, 93, 138, 0.12); }
.pd-tr-row.is-active { background: rgba(47, 93, 138, 0.22); color: var(--pd-text); }
.pd-tr-ts { color: var(--pd-text-3); font-family: var(--pd-mono); font-size: 11px; white-space: nowrap; }
.pd-tr-row.is-active .pd-tr-ts { color: #2f5d8a; }
.pd-tr-txt { min-width: 0; }
.pd-tr-txt mark { background: #fbf1e0; color: #1a1a1a; border-radius: 2px; padding: 0 1px; }
.pd-tr-tools { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; flex-wrap: wrap; }
.pd-tr-search { flex: 1; min-width: 120px; background: rgba(20, 20, 20, 0.06); border: 1px solid #d4d8dd; color: var(--pd-text); border-radius: 6px; padding: 5px 8px; font-size: 12px; }
.pd-tr-search::placeholder { color: var(--pd-text-3); }
.pd-drawer-llm {
  font-size: 13px; line-height: 1.7; color: var(--pd-text);
}
.pd-drawer-llm h5 { font-size: 13px; color: var(--pd-pink, #2f5d8a); margin: 10px 0 4px; }
.pd-drawer-llm h5:first-child { margin-top: 0; }
.pd-drawer-llm ul { margin: 4px 0 8px 18px; padding: 0; }
.pd-drawer-llm li { margin-bottom: 3px; }
.pd-llm-kv { margin: 4px 0 8px; }
.pd-llm-kv .k { display: inline-block; min-width: 76px; color: var(--pd-pink, #2f5d8a); font-weight: 600; vertical-align: top; }
.pd-llm-kv .v { display: inline-block; max-width: calc(100% - 84px); }
.pd-llm-sub { margin: 4px 0 8px; padding: 2px 0 2px 8px; border-left: 2px solid rgba(31, 92, 77, 0.28); }
/* 分析结构分组卡片（总览 / 看 / 想 / 做） */
.pd-llm-group { margin: 0 0 12px; padding: 8px 10px 4px; border: 1px solid #d4d8dd; border-radius: 8px; background: rgba(20, 20, 20, 0.02); }
.pd-llm-group:last-child { margin-bottom: 0; }
.pd-llm-group-h { font-size: 12px; font-weight: 700; color: var(--pd-text-2); margin: 0 0 4px; padding-bottom: 5px; border-bottom: 1px dashed rgba(20, 20, 20, 0.25); }
.pd-llm-reuse { margin: 4px 0 8px 18px; padding: 0; }
.pd-llm-reuse li { margin-bottom: 3px; }
.pd-llm-formula {
  background: rgba(31, 92, 77, 0.08);
  border-left: 3px solid var(--pd-pink, #2f5d8a);
  padding: 6px 10px; margin: 4px 0 8px; border-radius: 4px;
  font-weight: 600; color: var(--pd-text);
}
.pd-llm-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.pd-llm-chip {
  background: rgba(47, 93, 138, 0.12);
  border: 1px solid rgba(47, 93, 138, 0.3);
  color: #2f5d8a; padding: 3px 9px; border-radius: 12px; font-size: 12px;
}
/* 拆片打分徽章（2026-09-15）：≥9 优绿、<5 硬伤红，中间默认紫 */
.pd-score-chip b { font-size: 13px; margin-left: 2px; }
.pd-score-chip.pd-score-hi { background: rgba(31, 92, 77, 0.14); border-color: rgba(31, 92, 77, 0.4); color: #1f5c4d; }
.pd-score-chip.pd-score-lo { background: rgba(168, 60, 49, 0.12); border-color: rgba(168, 60, 49, 0.4); color: #a83c31; }
.pd-llm-whyviral {
  background: rgba(180, 83, 9, 0.08);
  border-left: 3px solid #b45309;
  padding: 6px 10px; margin: 4px 0 8px; border-radius: 4px;
  color: var(--pd-text);
}
.pd-badge-mtype {
  display: inline-block;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
  background: rgba(47, 93, 138, 0.15);
  color: #eef2f8;
  border: 1px solid rgba(47, 93, 138, 0.35);
  margin-left: 4px;
}
.pd-drawer-empty { color: var(--pd-text-3); font-size: 12px; font-style: italic; }
.pd-drawer-kb-info {
  font-size: 11px; color: var(--pd-text-3); margin-top: 6px;
  padding: 6px 10px; background: rgba(31, 92, 77, 0.08); border-radius: 6px;
  border-left: 2px solid rgba(31, 92, 77, 0.4);
}

/* 作品档案网格 */
.pd-archive-item {
  background: #ffffff;
  border: 1px solid #d4d8dd;
  border-radius: 12px;
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: border-color 0.12s, transform 0.12s;
  /* 2026-10-28：176 张卡片一次性布局/绘制实测 582ms。交给浏览器跳过视口外
     卡片的渲染（滚动到才画），实测首屏 209ms；auto 会记住实际高度，滚动不抖。 */
  content-visibility: auto;
  contain-intrinsic-size: auto 300px;
}
.pd-archive-item:hover { border-color: #d4d8dd; transform: translateY(-2px); }
.pd-archive-thumb {
  /* 内联 style aspect-ratio 由 videoCardHTML 根据 v.video_w/h 注入（优先）。
     缺宽高时 fallback 到 9/16（抖音常态竖屏）而不是 16/9，避免未知宽高的卡片被一律压成横卡。 */
  aspect-ratio: 9 / 16;
  background: rgba(20, 20, 20, 0.03) center/cover;
  position: relative;
  display: grid; place-items: center;
  color: var(--pd-text-3);
  font-size: 12px;
  overflow: hidden;
}
.pd-archive-thumb video {
  width: 100%; height: 100%; object-fit: cover;
}
/* 2026-09-11：卡片改为「静态首帧图常驻 + hover 叠加播放」。
   首帧图在底层永远可见；video 叠在上面，只在 hover 播放时淡入。 */
.pd-archive-thumb img.pd-thumb-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.pd-archive-thumb video.pd-thumb-video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; opacity: 0; pointer-events: none;
  transition: opacity 0.18s ease;
}
.pd-archive-thumb video.pd-thumb-video.is-playing { opacity: 1; }
.pd-archive-info {
  padding: 10px 12px;
  display: flex; flex-direction: column; gap: 4px;
}
.pd-archive-title {
  font-size: 12px;
  color: var(--pd-text);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.35;
  min-height: 32px;
}
.pd-archive-meta { font-size: 11px; color: var(--pd-text-3); }
.pd-archive-actions { display: flex; gap: 6px; margin-top: 4px; align-items: center; }

.pd-archive-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 20px;
  color: var(--pd-text-3);
  font-size: 14px;
  border: 1px dashed #d4d8dd;
  border-radius: 12px;
}
.pd-archive-empty .icon { font-size: 36px; margin-bottom: 8px; }

/* 档案卡勾选 + 批量工具栏 */
.pd-archive-item { position: relative; }
.pd-archive-check {
  position: absolute; top: 8px; left: 8px; z-index: 5;
  width: 20px; height: 20px; cursor: pointer; accent-color: var(--pd-pink);
  background: rgba(0,0,0,0.45); border-radius: 5px; border: 1px solid rgba(255, 255, 255, 0.25);
}
.pd-archive-check:checked { background: var(--pd-pink); }
.pd-video-del {
  position: absolute; top: 8px; right: 8px; z-index: 5;
  width: 24px; height: 24px; border-radius: 50%;
  border: none; background: rgba(20, 20, 20, 0.35);
  color: rgba(255, 255, 255, 0.9); font-size: 18px; line-height: 22px;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background 0.15s, transform 0.12s, opacity 0.15s; backdrop-filter: blur(2px);
  opacity: 0.65;
  pointer-events: auto;
}
.pd-archive-item:hover .pd-video-del { opacity: 1; }
.pd-video-del:hover { background: rgba(31, 92, 77, 0.85); transform: scale(1.08); color: #fff; }
.pd-archive-actions { margin-top: 6px; }
.pd-video-open {
  display: inline-block; padding: 4px 9px; font-size: 12px; line-height: 1;
  border: 1px solid rgba(31, 92, 77, 0.35); border-radius: 6px;
  background: rgba(31, 92, 77, 0.12); color: #1f5c4d; cursor: pointer;
  transition: background .15s, color .15s;
}
.pd-video-open:hover { background: var(--pd-pink); color: #fff; }
.pd-video-doc {
  display: inline-block; padding: 4px 9px; font-size: 12px; line-height: 1;
  border: 1px solid rgba(31, 92, 77, 0.4); border-radius: 6px;
  background: rgba(31, 92, 77, 0.16); color: #1f5c4d; cursor: pointer;
  transition: background .15s, color .15s;
}
.pd-video-doc:hover { background: #1f5c4d; color: #fff; }
/* 未分析完成的素材：按钮置灰禁用（与抽屉 pd-btn-tiny 一致），hover 仍显示提示 */
.pd-video-doc:disabled, .pd-btn-tiny:disabled { opacity: .45; cursor: not-allowed; filter: grayscale(.5); }
.pd-archive-thumb.no-cover { background: rgba(20, 20, 20, 0.04); }
.pd-archive-group .pd-select-all { margin: 0 0 8px 2px; font-size: 12px; color: var(--pd-text-3); display: flex; align-items: center; gap: 6px; }
.pd-archive-group .pd-select-all input { accent-color: var(--pd-pink); }
.pd-batch-bar {
  display: none; align-items: center; gap: 10px; flex-wrap: wrap;
  margin: 0 0 14px; padding: 10px 12px; border-radius: 10px;
  background: rgba(31, 92, 77, 0.08); border: 1px solid rgba(31, 92, 77, 0.25);
}
.pd-batch-bar.is-on { display: flex; }
.pd-batch-bar .cnt { color: var(--pd-pink); font-weight: 600; }

/* 知识库选择器弹窗 */
.pd-modal-mask {
  position: fixed; inset: 0; z-index: 200; display: none;
  background: rgba(0,0,0,0.6); align-items: center; justify-content: center;
}
.pd-modal-mask.is-on { display: flex; }
.pd-modal {
  width: min(440px, 92vw); max-height: 80vh; overflow: auto;
  background: #141414; border: 1px solid #d4d8dd; border-radius: 14px;
  box-shadow: 0 20px 60px rgba(20, 20, 20, 0.2);
}
.pd-modal-head { padding: 14px 18px; font-weight: 600; border-bottom: 1px solid #d4d8dd; }
.pd-modal-body { padding: 14px 18px; display: flex; flex-direction: column; gap: 10px; }
.pd-modal-foot { padding: 12px 18px; border-top: 1px solid #d4d8dd; display: flex; justify-content: flex-end; gap: 10px; }
.pd-kb-opt {
  display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 9px;
  border: 1px solid #d4d8dd; cursor: pointer; font-size: 13px;
}
.pd-kb-opt:hover { border-color: var(--pd-pink); }
.pd-kb-opt.is-sel { border-color: var(--pd-pink); background: rgba(31, 92, 77, 0.1); }
.pd-kb-opt .nm { font-weight: 600; }
.pd-kb-opt .meta { color: var(--pd-text-3); font-size: 11px; }
.pd-kb-new { display: flex; gap: 8px; margin-top: 4px; }
.pd-kb-new input {
  flex: 1; padding: 8px 10px; border-radius: 8px; border: 1px solid #d4d8dd;
  background: #ffffff; color: var(--pd-text); font-size: 13px;
}
.pd-kb-msg { font-size: 12px; min-height: 16px; }
.pd-kb-msg.err { color: #f7eeec; }
.pd-kb-msg.ok { color: #2f5d8a; }

/* 博主追踪 */
.pd-blogger-add { display: flex; gap: 8px; margin: 12px 0 4px; }
.pd-blogger-add input {
  flex: 1; padding: 9px 12px; border-radius: 10px;
  background: #ffffff; border: 1px solid #d4d8dd;
  color: var(--pd-text); font-size: 13px;
}
.pd-blogger-add input:focus { outline: none; border-color: var(--pd-pink); }
/* 2026-09-20：链接类型提示——贴了单条视频链接时变橙色告警，避免白跑一次请求 */
.pd-blogger-tip { font-size: 12px; line-height: 1.5; color: var(--pd-text-3); margin: 0 0 2px; }
.pd-blogger-tip b { color: var(--pd-text); }
.pd-blogger-tip.warn { color: #fbf1e0; }
.pd-blogger-tip.warn b { color: #fbf1e0; }
.pd-blogger-list { display: flex; flex-direction: column; gap: 16px; margin-top: 14px; }
.pd-blogger {
  border: 1px solid #d4d8dd;
  border-radius: 14px; overflow: hidden;
  background: #ffffff;
}
.pd-blogger-avatar { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; background: rgba(20, 20, 20, 0.06); }
.pd-blogger-name { font-size: 15px; font-weight: 700; color: var(--pd-text); }
.pd-blogger-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; padding: 14px 16px;
}
/* 博主同步（2026-09-15）：已入库角标 + 未下载下载按钮 + 卡片头同步按钮 */
.pd-dl-badge {
  position: absolute; left: 6px; top: 6px; z-index: 3;
  font-size: 10.5px; padding: 2px 7px; border-radius: 6px; pointer-events: none;
  background: rgba(31, 92, 77, 0.85); color: #fff;
}
.pd-dl-badge.new {
  background: rgba(0, 0, 0, 0.55); color: rgba(255, 255, 255, 0.85);
}
.pd-video-dl {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; cursor: pointer; border: 1px solid #d4d8dd;
  background: rgba(31, 92, 77, 0.06); color: var(--pd-pink, #1f5c4d);
  padding: 3px 10px; border-radius: 7px; font-weight: 600;
}
.pd-video-dl:hover { border-color: var(--pd-pink, #1f5c4d); color: var(--pd-pink, #1f5c4d); filter: brightness(0.96); }
.pd-video-dl:disabled { opacity: 0.55; cursor: default; }
.pd-blogger-sync {
  color: var(--pd-text-2); font-size: 12px; cursor: pointer;
  border: 1px solid #d4d8dd; background: none;
  padding: 3px 10px; border-radius: 7px; margin-right: 6px;
}
.pd-blogger-sync:hover { color: var(--pd-pink, #1f5c4d); border-color: var(--pd-pink, #1f5c4d); }
.pd-blogger-sync:disabled { opacity: 0.55; cursor: default; }
.pd-vstat { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
.pd-vstat span {
  font-size: 10.5px; color: var(--pd-text-3);
  background: rgba(20, 20, 20, 0.04); border: 1px solid #d4d8dd;
  padding: 2px 6px; border-radius: 6px;
}
.pd-vstat span b { color: var(--pd-text-2); }
.pd-vstat span i { font-style: normal; color: var(--pd-text-3); margin-right: 4px; }

/* 评论区块 */
/* 评论区默认折叠：只留标题+条数，点标题才展开（用户 2026-09-10 选定） */
.pd-cm-toggle { cursor: pointer; user-select: none; }
.pd-cm-toggle:hover { color: var(--brand-500, #2f5d8a); }
.pd-cm-arrow { display: inline-block; width: 9px; font-size: 10px; color: var(--pd-text-3); }
.pd-cm-block.is-collapsed .pd-cm-body { display: none; }
.pd-cm-block.is-collapsed .pd-cm-toggle { margin-bottom: 0; }
.pd-cm-tools { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.pd-cm-hint { font-size: 11.5px; color: var(--pd-text-3); }
.pd-cm-count { font-size: 12px; color: var(--pd-text-3); font-weight: 400; }
.pd-cm-list { display: flex; flex-direction: column; gap: 8px; max-height: 380px; overflow-y: auto; }
.pd-cm-row {
  padding: 8px 10px; border-radius: 8px;
  background: rgba(20, 20, 20, 0.03); border-left: 2px solid #d4d8dd;
  transition: background 0.15s, border-left-color 0.15s;
}
.pd-cm-row:hover { background: rgba(47, 93, 138, 0.08); border-left-color: var(--brand-500, #2f5d8a); }
.pd-cm-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; font-size: 11px; flex-wrap: wrap; }
.pd-cm-nick { color: var(--pd-text-2); font-weight: 600; }
.pd-cm-time { color: var(--pd-text-3); font-family: var(--pd-mono); }
.pd-cm-like { color: var(--pd-pink, #2f5d8a); }
.pd-cm-text { font-size: 12.5px; line-height: 1.55; color: var(--pd-text); word-break: break-word; }
.pd-cm-reply { margin-top: 4px; font-size: 11px; color: var(--pd-text-3); }

/* 本地作品按作者分组 */
.pd-archive-groups { display: flex; flex-direction: column; gap: 18px; margin-top: 12px; }
.pd-archive-group-title .cnt { font-size: 12px; color: var(--pd-pink); font-weight: 600; }
/* 收起状态：网格隐藏，caret 反向 */
.pd-archive-group.is-collapsed .pd-archive-group-grid { display: none; }
.pd-archive-group.is-collapsed .pd-archive-group-title .caret { transform: rotate(-90deg); }
/* title 右侧靠右：把后续 .pd-select-all 推过去 */
.pd-archive-group-title .pd-select-all { margin-left: auto; }
.pd-archive-group-grid {
  /* 与外层 .pd-archive-grid 对齐：8 个一排；屏宽 ≥ ~1140px 触发 8 列，否则 6/5/4 自适应 */
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px;
}

/* 登录 modal */
.pd-modal-mask {
  position: fixed; inset: 0;
  background: rgba(20, 20, 20, 0.45);
  backdrop-filter: blur(4px);
  display: none;
  align-items: center; justify-content: center;
  z-index: 100;
}
.pd-modal-mask.is-on { display: flex; }
.pd-modal {
  background: var(--pd-bg-mid);
  border: 1px solid #d4d8dd;
  border-radius: 16px;
  padding: 26px 30px;
  max-width: 420px;
  width: calc(100% - 40px);
  position: relative;
}
.pd-modal h3 { margin: 0 0 14px; font-size: 17px; }
.pd-modal p { margin: 0 0 12px; font-size: 13px; color: var(--pd-text-2); line-height: 1.5; }
.pd-modal .pd-modal-close {
  position: absolute; top: 14px; right: 14px;
  background: transparent; border: 0; color: var(--pd-text-3);
  font-size: 18px; cursor: pointer;
}
.pd-modal.pd-modal-wide { max-width: 560px; }
/* 写脚本页「🛠 提示词配置」弹层（2026-10-14）：提示词都很长，给宽 + 整层内滚，别把按钮顶出屏幕 */
.pd-modal.pd-modal-lg { max-width: 900px; max-height: 86vh; overflow-y: auto; }

/* 工具类 */
.pd-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pd-row > * { flex: 0 0 auto; }
.pd-grow { flex: 1; }
.pd-mono { font-family: ui-monospace, monospace; font-size: 11px; color: var(--pd-text-3); }
.pd-hidden { display: none !important; }

/* 响应式 */
@media (max-width: 760px) {
  .pd-root { grid-template-columns: 1fr; }
  .pd-sidebar {
    position: relative; height: auto;
    border-right: 0; border-bottom: 1px solid #141414;
    flex-direction: row; flex-wrap: wrap; gap: 12px;
  }
  .pd-sidebar-foot { display: none; }
  .pd-footbar { left: 12px; right: 12px; }
  .pd-main { padding: 18px 16px 80px; }
  .pd-hero h1 { font-size: 28px; }
  .pd-hero-deco { display: none; }
}

/* ====================== 区块色块系统（2026-10-15 用户定稿） ======================
   反馈原话：「整体的线条加深一下，看着好浅；区块颜色改成不同的色块，保持整体的一致性，区块边框颜色加深」。
   ① 边框整体加深：--pd-border/-strong 提档 + 全站低透明度线条 rgba(29,53,41,α) 提档（见 :root）。
   ② 每类功能区块一色：统一饱和度 / 圆角 / 加深边框，整站保持一致的观感。
   ⚠️ 本段置于样式表末尾，靠源码顺序覆盖前面同优先级的 .pd-card / .pd-col 等同名规则。 */
.pd-card {
  background: var(--tint-s, #141414);
  border-color: var(--tint-b, #d4d8dd);
}
.pd-card:hover { border-color: var(--tint-b, #c3cad3); }
/* 链接任务 / 多链接队列 / 任务中心 / 作品档案：直属卡片按位置轮转三色，相邻区块一眼区分 */
.pd-page > .pd-card:nth-of-type(3n+1) { --tint-s: #141414; --tint-b: #141414; }
.pd-page > .pd-card:nth-of-type(3n+2) { --tint-s: #141414;  --tint-b: #141414; }
.pd-page > .pd-card:nth-of-type(3n+3) { --tint-s: #141414; --tint-b: #141414; }  /* 第三色=青（原琥珀） */

/* 三步工作台：每步一色（实体获客文案=薄荷绿 / 写脚本=天空蓝） */
.pd-col[data-col="idea"]   { background: #141414; border-color: #141414; }
.pd-col[data-col="script"] { background: #141414;  border-color: #141414; }


/* 抖音登录页两块（绿） */
.pd-login-page-status,
.pd-login-page-url-box { background: #141414; border-color: #141414; }

/* 智能体广场：卡片改用各自强调色的淡彩块（原来是近纯白），边框同步加深 */
.pdag-card { background: var(--ag-card-surface, var(--ag-surface)); }
.pdag-card[data-accent="green"] { --ag-card-surface: #141414; --ag-border: #141414; }
.pdag-card[data-accent="amber"] { --ag-card-surface: #141414; --ag-border: #141414; }
.pdag-card[data-accent="pink"]  { --ag-card-surface: #141414;  --ag-border: #141414; }
.pdag-card[data-accent="blue"]  { --ag-card-surface: #141414;  --ag-border: #141414; }

/* 视频制作工作台：面板与起始概览卡纳入同一薄荷色块 */
.pdvw-panel,
.pdvw-start-item { background: #141414; border-color: #141414; }

/* ============================================================================
   2026-10-15 整体改版层（v2）：克制专业 · 墨绿中性
   ----------------------------------------------------------------------------
   旧版问题：① 卡片按 nth-child 轮转薄荷绿/天空蓝大色块，像彩色瓷砖；
   ② 底部状态条是悬浮胶囊，任何滚动位置都压住正文；
   ③ 三列工作台页头 align-items:flex-end，说明文字与右上按钮相碰/首行被切；
   ④ 智能体卡片固定 min-height 274px，内容顶对齐、按钮悬半空，死空间大。
   本层置于样式表末尾，按源码顺序覆盖旧的色块/轮转规则；只改观感与少量结构，
   不动任何 JS 钩子与 class 名。
   ============================================================================ */

/* ---------- 基础排版/渲染 ---------- */
body {
  font-family: inherit;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: 0.01em;
}

/* ---------- 侧栏 ---------- */
.pd-sidebar { gap: 18px; padding: 16px 14px; border-right-color: #d4d8dd; }
.pd-brand { padding: 2px 6px 6px; gap: 10px; }
.pd-brand-mark {
  border-radius: 9px;
  background: var(--pd-pink);
  color: #141414;                 /* 亮翡翠底用深色字 */
  font-size: 13px;
  letter-spacing: 0;
}
.pd-brand-name { font-size: 14.5px; font-weight: 700; letter-spacing: 0.02em; }
.pd-brand-sub { font-size: 10px; letter-spacing: 0.6px; color: var(--pd-text-3); }
.pd-section-title { font-size: 10.5px; letter-spacing: 1.2px; font-weight: 600; }

/* 平台下拉 / 账号卡：白底发丝线，不再用蓝色描边 */
.pd-platform select,
.pd-account-row { border-color: #d4d8dd; }
.pd-platform select { border-radius: 8px; font-size: 12.5px; padding: 7px 10px; }
.pd-account-row { border-radius: 8px; }
.pd-account-row:hover { border-color: #c3cad3; }
.pd-account-dot.pd-account-dot-ok { background: #1f5c4d; box-shadow: none; }
.pd-account-dot.pd-account-dot-bad { background: #f7eeec; box-shadow: none; }

/* 导航：安静的中性项 + 激活态墨绿淡底 + 2px 指示条 */
.pd-nav { gap: 1px; }
.pd-nav a {
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  color: var(--pd-text-2);
  letter-spacing: 0.01em;
}
.pd-nav a:hover { background: rgba(255, 255, 255, 0.05); color: var(--pd-text); }
.pd-nav a.active {
  background: var(--pd-pink-dim);
  color: var(--pd-pink);
  font-weight: 600;
}
.pd-nav a.active::before { background: var(--pd-pink); height: 13px; width: 2.5px; }
.pd-nav .pd-nav-badge {
  background: var(--pd-pink-dim);
  color: var(--pd-pink);
  font-size: 10.5px;
  font-weight: 600;
  min-width: 17px;
  padding: 0 6px;
  line-height: 16px;
  height: 16px;
}
.pd-nav a.active .pd-nav-badge { background: var(--pd-pink); color: #141414; }

/* 侧栏底部工具格：轻描边小方块 */
.pd-sidebar-foot { border-top-color: #d4d8dd; gap: 5px; }
.pd-sidebar-foot button {
  border-color: #d4d8dd;
  border-radius: 8px;
  font-size: 10.5px;
  color: var(--pd-text-3);
  gap: 2px;
}
.pd-sidebar-foot button:hover {
  border-color: #c3cad3;
  background: var(--pd-bg-soft);
  color: var(--pd-text);
}
.pd-sidebar-foot button.proxy-on { border-color: var(--pd-pink); color: var(--pd-pink); background: var(--pd-pink-dim); }
.pd-sidebar-foot button.proxy-on .pd-foot-icon { filter: none; }

/* ---------- 主区（底部留出贴边状态行的高度） ---------- */
.pd-main { padding: clamp(20px, 1.6vw, 30px) clamp(18px, 2vw, 40px) 56px; }

/* Hero：白卡 + 深色大标题（墨绿只用在强调词），装饰 emoji 移除 */
.pd-hero {
  background: var(--pd-card);
  border: 1px solid #d4d8dd;
  border-radius: 14px;
  padding: 24px 28px;
  margin-bottom: 20px;
  box-shadow: var(--pd-shadow-sm);
}
.pd-hero h1 { font-size: 30px; font-weight: 700; letter-spacing: 0.01em; color: var(--pd-text); }
.pd-hero h1 em { color: var(--pd-pink); }
.pd-hero-meta, .pd-hero-meta::before { color: var(--pd-text-3); letter-spacing: 1.2px; }
.pd-hero-deco { display: none; }

/* ---------- 卡片（覆盖旧 nth-child 色块轮转） ---------- */
.pd-card {
  background: var(--pd-card) !important;
  border: 1px solid #d4d8dd !important;
  border-radius: 12px;
  padding: 20px 22px;
  box-shadow: var(--pd-shadow-sm);
}
.pd-card:hover { border-color: #d4d8dd !important; }
.pd-card-tag {
  color: var(--pd-text-3);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 1.4px;
  margin-bottom: 10px;
  text-transform: uppercase;
}
.pd-card-tag::before { content: none; }   /* 标签文字自带 ●，不再生成伪元素圆点（避免双点） */
.pd-card h2 { font-size: 16.5px; font-weight: 650; letter-spacing: 0.01em; margin-bottom: 12px; }

/* 三步工作台列（原绿/蓝/青三色）→ 统一白卡 */
.pd-col[data-col="idea"],
.pd-col[data-col="script"] {
  background: var(--pd-card);
  border-color: #d4d8dd;
  border-radius: 12px;
  box-shadow: var(--pd-shadow-sm);
}

.pd-login-page-status,
.pd-login-page-url-box { background: var(--pd-bg-soft); border-color: #d4d8dd; }

/* ---------- 按钮 ---------- */
.pd-btn {
  background: var(--pd-pink);
  color: #141414;                 /* 亮翡翠实底配深色字，深色主题下对比最强 */
  border-radius: 9px;
  padding: 10px 20px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: 0 4px 14px rgba(31, 92, 77, 0.22);
}
.pd-btn:hover { background: #1f5c4d; }
.pd-btn:active { transform: translateY(0.5px); }
.pd-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.pd-btn-ghost {
  background: transparent;
  border: 1px solid #c3cad3;
  color: var(--pd-text-2);
  border-radius: 8px;
  padding: 7px 14px;
  font-size: 12.5px;
  font-weight: 500;
}
.pd-btn-ghost:hover,
.pd-btn-ghost.is-active {
  color: var(--pd-pink); border-color: var(--pd-pink); background: var(--pd-pink-dim);
}
.pd-btn-tiny {
  background: transparent;
  border: 1px solid #d4d8dd;
  color: var(--pd-text-2);
  border-radius: 7px;
  padding: 4px 11px;
  font-size: 12px;
}
.pd-btn-tiny:hover { color: var(--pd-pink); border-color: var(--pd-pink); background: var(--pd-pink-dim); }

/* ---------- 通用输入 ---------- */
.pd-input-row input,
.pd-input-row textarea {
  border-color: #d4d8dd;
  border-radius: 9px;
  background: #141414;
  color: var(--pd-text);
}
.pd-input-row input::placeholder,
.pd-input-row textarea::placeholder { color: var(--pd-text-3); }
.pd-input-row input:focus,
.pd-input-row textarea:focus {
  border-color: var(--pd-pink);
  box-shadow: 0 0 0 3px var(--pd-pink-dim);
}
/* 全站原生输入控件：深色底（旧代码大量白底在此统一收敛） */
input[type="text"], input[type="password"], input[type="url"], input[type="number"],
input[type="search"], input[type="email"], select, textarea {
  border-color: #d4d8dd;
  background: #141414;
  color: var(--pd-text);
}
input::placeholder, textarea::placeholder { color: var(--pd-text-3); }
select option { background: var(--pd-bg-mid); color: var(--pd-text); }
input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid var(--pd-pink);
  outline-offset: 1px;
}

/* ---------- 底部状态条：悬浮胶囊 → 贴边细状态行（修正文遮挡） ---------- */
.pd-footbar {
  bottom: 0;
  left: var(--pd-w);
  right: 0;
  border: 0;
  border-top: 1px solid #d4d8dd;
  border-radius: 0;
  padding: 7px 24px;
  background: rgba(20, 20, 20, 0.88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-size: 12.5px;
  color: var(--pd-text-3);
  z-index: 40;
  box-shadow: none;
}
.pd-footbar.is-warn { border-top-color: rgba(168, 60, 49, 0.4); color: #f7eeec; }

/* ---------- 页头修复：说明文字与右上按钮不再相碰/被切 ---------- */
.pd-studio-head {
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom-color: #d4d8dd;
}
.pd-studio-head h2 { font-size: 19px; font-weight: 700; white-space: nowrap; }
.pd-studio-head > div:first-child { min-width: 0; flex: 1 1 auto; }
.pd-studio-sub { max-width: none; color: var(--pd-text-3); margin-top: 6px; }
.pd-studio-head-actions { margin-left: auto; flex: 0 0 auto; padding-top: 2px; }
@media (max-width: 1100px) {
  .pd-studio-head-actions { margin-left: 0; }
}

/* ---------- 智能体广场：卡片去色块、修死空间 ---------- */
.pdag-card {
  --ag-card-surface: var(--pd-card); --ag-border: #d4d8dd;
  background: var(--pd-card);
  border: 1px solid #d4d8dd;
  border-radius: 12px;
  box-shadow: var(--pd-shadow-sm);
  display: flex;
  flex-direction: column;
  min-height: 0 !important;
  padding: 18px;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.pdag-card:hover {
  border-color: #c3cad3;
  box-shadow: var(--pd-shadow-md);
  transform: translateY(-1px);
}
.pdag-card-copy { margin-top: 10px; }
.pdag-card-footer { margin-top: auto; padding-top: 16px; }
.pdag-card-cat {
  border: 1px solid #d4d8dd;
  color: var(--pd-text-3);
  background: var(--pd-card);
}

/* ---------- 徽章/状态胶囊：深色语义色 ---------- */
.pd-badge { font-size: 11.5px; }
.pd-badge-success { background: rgba(31, 92, 77, 0.12); color: var(--pd-success); border-color: rgba(31, 92, 77, 0.32); }
.pd-badge-failed  { background: rgba(168, 60, 49, 0.12); color: #f7eeec;  border-color: rgba(168, 60, 49, 0.32); }
.pd-badge-running { background: rgba(47, 93, 138, 0.14); color: var(--pd-running); border-color: rgba(47, 93, 138, 0.34); }
.pd-badge-pending { background: rgba(180, 83, 9, 0.12); color: #b45309; border-color: rgba(180, 83, 9, 0.32); }
.pd-badge-partial { background: rgba(180, 83, 9, 0.12); color: #b45309; border-color: rgba(180, 83, 9, 0.32); }
.pd-badge-muted   { background: var(--pd-bg-soft); color: var(--pd-text-2); border-color: #d4d8dd; }

/* ---------- 弹层 ---------- */
.pd-modal-mask { background: rgba(20, 20, 20, 0.6); }
.pd-modal {
  background: var(--pd-bg-mid);
  border-color: #d4d8dd;
  border-radius: 14px;
  box-shadow: var(--pd-shadow-lg);
}
.pd-modal h3 { font-weight: 650; }

/* ---------- 其它 ---------- */
::selection { background: rgba(31, 92, 77, 0.28); color: #eef2f8; }
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.16); border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.28); border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }

button:focus-visible, a:focus-visible {
  outline: 2px solid var(--pd-pink);
  outline-offset: 1.5px;
  border-radius: 6px;
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ---------- 细节深色化收尾（2026-10-15 深色方案 C） ---------- */
/* 任务行：凹陷深底；行状态高亮用亮蓝 */
.pd-task-row { background: var(--pd-bg-soft); border-color: #d4d8dd; }
.pd-task-row.is-retried, .pd-task-row.is-expanded { border-color: rgba(47, 93, 138, 0.45); }
@keyframes pdTaskFlash {
  0%, 100% { background: var(--pd-bg-soft); }
  40% { background: rgba(47, 93, 138, 0.18); }
}
/* 视频工作台步骤圆点/已完成态 */
.pdvw-step b { background: var(--pd-bg-soft); }
.pdvw-step.is-done b { background: rgba(31, 92, 77, 0.14); }
.pdvw-badge.is-done { border-color: rgba(31, 92, 77, 0.32); }
/* 智能体：强调浸染 */
.pdag-root { --ag-accent-soft: rgba(31, 92, 77, 0.12); }
.pdag-card[data-accent="green"],
.pdag-card[data-accent="amber"],
.pdag-card[data-accent="pink"],
.pdag-card[data-accent="blue"] { --ag-card-ink: var(--pd-text); }
/* 智能体广场大标题：60px 过响 → 与全站页头尺度对齐 */
.pdag-intro h1 {
  font-size: clamp(1.7rem, 2.6vw, 2.35rem);
  font-weight: 700;
  letter-spacing: 0.01em;
}
/* 三步工作台列的激活/完成态 */
.pd-col.is-active { background: var(--pd-bg-soft); }
.pd-col.done .pd-col-step { background: rgba(31, 92, 77, 0.16); }

/* 视频制作工作台面板：统一深卡 */
.pdvw-panel,
.pdvw-start-item { background: var(--pd-card); border-color: #d4d8dd; }

@media (max-width: 760px) {
  .pd-footbar { left: 0; right: 0; }
  .pd-main { padding-bottom: 52px; }
}

/* ============================================================================
   抖音创作者后台风格层（DY）· 2026-10-15
   ----------------------------------------------------------------------------
   方向：浅色中性底（#eef2f8）+ 白卡 + 发丝线 + 克制的品牌强调色。
   目标：解决 ① 排版密度/节奏 ② 字阶与字重 ③ 圆角与组件精度 ④ 颜色气质。
   手法：重定义 --pd-* 令牌（全站据此翻浅），再逐个覆盖上一版残留的深色硬编码
        （#141414 文字 / #141414 输入底 / #1f5c4d 悬停 / 深色 footbar / 白色滚动条）。
   注意：只改观感与尺度，不动任何 JS 钩子与 class 名。
   ============================================================================ */

/* 强调色（换方案只需改这三行；政红=抖音品牌，方案 2=近黑，方案 3=字节蓝） */
:root {
  color-scheme: light;
  --dy-accent: #1f5c4d;
  --dy-accent-2: #16453a;
  --dy-accent-dim: rgba(31, 92, 77, 0.08);

  --pd-bg-deep: #ffffff;
  --pd-bg-mid: #ffffff;
  --pd-bg-soft: #fafafa;
  --pd-sidebar: #ffffff;
  --pd-card: #ffffff;
  --pd-card-hover: #fafafa;
  --pd-border: #d4d8dd;
  --pd-border-strong: #c3cad3;

  --pd-pink: var(--dy-accent);
  --pd-pink-2: var(--dy-accent-2);
  --pd-pink-dim: var(--dy-accent-dim);

  --pd-text: #141414;
  --pd-text-2: #6b6b6b;
  --pd-text-3: #6b7683;
  --pd-success: #1f5c4d;
  --pd-failed: #a83c31;
  --pd-pending: #b45309;
  --pd-running: #2f5d8a;

  --t-green-s: var(--pd-card);   --t-green-b: #d4d8dd;
  --t-blue-s:  var(--pd-card);   --t-blue-b:  #d4d8dd;
  --t-teal-s:  var(--pd-card);   --t-teal-b:  #d4d8dd;
  --t-amber-s: var(--pd-card);   --t-amber-b: #d4d8dd;
  --t-violet-s: var(--pd-card);  --t-violet-b: #d4d8dd;
  --t-rose-s:  var(--pd-card);   --t-rose-b:  #d4d8dd;
  --t-green-ink: var(--dy-accent); --t-teal-ink: var(--dy-accent);
  --t-blue-ink: var(--pd-running);
  --t-violet-ink: var(--pd-text-2); --t-rose-ink: var(--pd-text-2);

  --pd-shadow-sm: 0 1px 4px rgba(20, 20, 20, 0.06);
  --pd-shadow-md: 0 4px 12px rgba(20, 20, 20, 0.08);
  --pd-shadow-lg: 0 8px 28px rgba(20, 20, 20, 0.12);
}

html, body, .pd-root { background: var(--pd-bg-deep) !important; color: var(--pd-text) !important; }
body { letter-spacing: 0; font-family: inherit; }

/* ---------- 侧栏：白底、发丝线、克制的选中态 ---------- */
.pd-sidebar { background: var(--pd-sidebar) !important; border-right: 1px solid #d4d8dd !important; }
.pd-brand-mark { background: var(--dy-accent) !important; color: #ffffff !important; border-radius: 8px; }
.pd-brand-name { color: var(--pd-text); }
.pd-section-title {
  color: var(--pd-text-3) !important; font-size: 12px !important; font-weight: 500 !important;
  letter-spacing: 0.2px !important; text-transform: none !important; padding-left: 10px;
}
.pd-platform select, .pd-account-row {
  background: var(--pd-bg-soft) !important; border: 1px solid #d4d8dd !important;
  color: var(--pd-text) !important; border-radius: 8px !important;
}
.pd-account-row:hover { background: var(--pd-card-hover) !important; border-color: #c3cad3 !important; }

.pd-nav a {
  border-radius: 8px; padding: 9px 10px; font-size: 13.5px; font-weight: 400;
  color: var(--pd-text-2); letter-spacing: 0;
}
.pd-nav a:hover { background: var(--pd-card-hover) !important; color: var(--pd-text) !important; }
.pd-nav a.active {
  background: #ffffff !important; color: var(--dy-accent) !important;
  font-weight: 600; border: 0 !important; box-shadow: 0 1px 2px rgba(20, 20, 20, 0.06);
}
.pd-nav a.active::before { background: var(--dy-accent) !important; height: 15px; width: 3px; border-radius: 2px; }
.pd-nav .pd-nav-badge { background: var(--pd-card-hover) !important; color: var(--pd-text-2) !important; }
.pd-nav a.active .pd-nav-badge { background: var(--dy-accent) !important; color: #ffffff !important; }

.pd-sidebar-foot { border-top: 1px solid #d4d8dd !important; }
.pd-sidebar-foot button {
  background: #ffffff !important; border: 1px solid #d4d8dd !important;
  color: var(--pd-text-2) !important; border-radius: 8px; font-weight: 500;
}
.pd-sidebar-foot button:hover { background: var(--pd-card-hover) !important; color: var(--pd-text) !important; border-color: #c3cad3 !important; }
.pd-sidebar-foot button.proxy-on { border-color: var(--pd-success) !important; color: var(--pd-success) !important; background: rgba(31, 92, 77, 0.08) !important; }

/* ---------- 主区节奏：放宽卡内留白、统一卡间距 ---------- */
.pd-main { padding: 24px 28px 60px; }
.pd-page { gap: 16px; }
.pd-hero {
  background: var(--pd-card) !important; border: 1px solid #d4d8dd !important;
  border-radius: 12px; padding: 24px 26px; box-shadow: var(--pd-shadow-sm);
}
.pd-hero h1 { font-size: 26px; font-weight: 600; letter-spacing: 0; line-height: 1.35; }
.pd-hero h1 em { color: var(--dy-accent); font-style: normal; }
.pd-hero-meta, .pd-hero-meta::before { color: var(--pd-text-3); letter-spacing: 0.8px; }
.pd-hero-deco { display: none; }

.pd-card {
  background: var(--pd-card) !important; border: 1px solid #d4d8dd !important;
  border-radius: 12px !important; padding: 22px 24px !important; box-shadow: var(--pd-shadow-sm);
}
.pd-card:hover { border-color: #d4d8dd !important; }
.pd-card-tag { color: var(--pd-text-3) !important; font-size: 12px; font-weight: 500; letter-spacing: 0.2px; text-transform: none; margin-bottom: 12px; }
.pd-card h2 { font-size: 16px; font-weight: 600; letter-spacing: 0; color: var(--pd-text); margin-bottom: 14px; }
.pd-card p.pd-card-desc { font-size: 13px; line-height: 1.75; color: var(--pd-text-2); }

/* ---------- 输入：白底 40px 高、8px 圆角、聚焦品牌色描边 ---------- */
.pd-input-row input, .pd-input-row textarea,
.pd-field input, .pd-field select, .pd-field textarea,
.pd-ask input, .pd-kb-new input, .pd-blogger-add input,
input[type="text"], input[type="password"], input[type="url"],
input[type="number"], input[type="search"], input[type="email"], select, textarea {
  background: #ffffff !important; border: 1px solid #d4d8dd !important;
  color: var(--pd-text) !important; border-radius: 8px !important;
}
.pd-input-row input { height: 40px; padding: 0 14px; font-size: 14px; }
.pd-input-row textarea { padding: 12px 14px; font-size: 14px; }
input::placeholder, textarea::placeholder { color: var(--pd-text-3) !important; }
select option { background: #ffffff; color: var(--pd-text); }
.pd-input-row input:focus, .pd-input-row textarea:focus,
input:focus-visible, textarea:focus-visible, select:focus-visible {
  border-color: var(--dy-accent) !important; outline: none !important;
  box-shadow: 0 0 0 3px var(--dy-accent-dim) !important;
}

/* ---------- 按钮：8px 圆角、500 字重、无发光的克制实底 ---------- */
.pd-btn {
  background: var(--dy-accent) !important; color: #ffffff !important;
  border-radius: 8px !important; padding: 9px 18px !important;
  font-size: 14px !important; font-weight: 500 !important; letter-spacing: 0 !important;
  box-shadow: none !important;
}
.pd-btn:hover { background: var(--dy-accent-2) !important; }
.pd-btn:active { transform: none !important; }
.pd-btn-ghost, .pd-btn-tiny {
  background: #ffffff !important; border: 1px solid #d4d8dd !important;
  color: var(--pd-text-2) !important; border-radius: 8px !important; font-weight: 500 !important;
}
.pd-btn-ghost { padding: 7px 14px; font-size: 13px; }
.pd-btn-tiny { padding: 5px 12px; font-size: 12.5px; }
.pd-btn-ghost:hover, .pd-btn-ghost.is-active, .pd-btn-tiny:hover {
  color: var(--dy-accent) !important; border-color: var(--dy-accent) !important; background: var(--dy-accent-dim) !important;
}

/* ---------- 徽章 / 数字 / 进度：后台式胶囊与细进度条 ---------- */
.pd-badge { border-radius: 999px !important; font-weight: 500; padding: 2px 10px; }
.pd-job-card .pd-job-count { font-size: 26px; font-weight: 700; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; color: var(--dy-accent); }
.pd-progress { background: var(--pd-bg-soft) !important; border-radius: 999px; overflow: hidden; }
.pd-progress > .bar { background: var(--dy-accent) !important; border-radius: 999px; }

/* ---------- 底部状态条：白底贴边细行（不再压内容） ---------- */
.pd-footbar {
  background: #ffffff !important; border-top: 1px solid #d4d8dd !important;
  color: var(--pd-text-3) !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
.pd-footbar.is-warn { border-top-color: #f7eeec !important; color: #f7eeec !important; }
.pd-footbar::after {
  content: "DY-v6 · 2026-10-15";
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  font-size: 10px; font-weight: 600; letter-spacing: 0.3px;
  color: var(--dy-accent); opacity: 0.75;
}

/* ---------- 滚动条：浅色下用中性灰（原白色透明看不见） ---------- */
::-webkit-scrollbar-thumb { background: rgba(20, 20, 20, 0.18) !important; border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: rgba(20, 20, 20, 0.30) !important; border: 2px solid transparent; background-clip: content-box; }

/* ---------- 对话工作台等旧硬编码白面统一到令牌 ---------- */
.pd-chat-log, .pd-sc-msgs {
  background: var(--pd-bg-soft) !important; border-color: #d4d8dd !important;
}
.pd-chat-fab, .pd-chat-model { background: var(--pd-card) !important; border-color: #d4d8dd !important; }
.pd-sc-item { background: var(--pd-card) !important; border-color: #d4d8dd !important; }
.pd-sc-item.is-on { background: var(--dy-accent-dim) !important; border-color: var(--dy-accent) !important; }
.pd-sc-side, .pd-ip, .pd-settings-block, .pd-prompt-mod, .pd-fold, .pd-hint, .pd-plan,
.pd-drawer-section, .pd-queue-item, .pd-task-items, .pd-task-row, .pd-dig, .pd-prompt-legend,
.pd-src-list, .pd-script-cfg-sum, .pd-login-page-status, .pd-login-page-url-box,
.pd-kb-opt, .pd-archive-item, .pd-blogger {
  background: var(--pd-bg-soft) !important; border-color: #d4d8dd !important;
}

/* ---------- 视频工作台岛：浅色化（局部变量跟随） ---------- */
.pd-page[data-page="video"] {
  color-scheme: light;
  --pd-bg-mid: #ffffff; --pd-card: #ffffff; --pd-card-hover: #eef2f8;
  --pd-border: #d4d8dd; --pd-border-strong: #c3cad3;
  --pd-text: #141414; --pd-text-2: #6b6b6b; --pd-text-3: #6b7683;
  --pd-failed: #f7eeec; --pd-running: #2f5d8a;
  --vw-accent: var(--dy-accent); --vw-accent-deep: var(--dy-accent-2); --vw-accent-2: var(--dy-accent);
  --vw-accent-soft: var(--dy-accent-dim); --vw-ok: var(--pd-success); --vw-wait: #b45309;
  --vw-canvas: var(--pd-bg-deep); --vw-surface: var(--pd-card); --vw-surface-2: var(--pd-bg-soft);
  --vw-border: #d4d8dd;
  --vw-shadow: 0 1px 2px rgba(20, 20, 20, 0.05), 0 8px 24px rgba(20, 20, 20, 0.06);
}
.pdvw-field textarea, .pdvw-field input, .pdvw-field select, .pdvw-seg textarea {
  background: #ffffff !important; color: var(--pd-text) !important; border-color: #d4d8dd !important;
}
.pdvw-panel, .pdvw-start-item { background: var(--pd-card) !important; border-color: #d4d8dd !important; }
.pd-scene-table thead th { background: var(--pd-bg-soft) !important; color: var(--pd-text-2) !important; }

/* ---------- 语义徽章：旧薄荷/琥珀硬编码 → 抖音语义色 ---------- */
.pd-badge-success { background: rgba(31, 92, 77, 0.08) !important; border-color: rgba(31, 92, 77, 0.24) !important; color: var(--pd-success) !important; }
.pd-badge-failed  { background: rgba(168, 60, 49, 0.08) !important; border-color: rgba(168, 60, 49, 0.24) !important; color: #f7eeec !important; }
.pd-badge-running { background: rgba(47, 93, 138, 0.08) !important; border-color: rgba(47, 93, 138, 0.24) !important; color: var(--pd-running) !important; }
.pd-badge-pending { background: rgba(180, 83, 9, 0.08) !important; border-color: rgba(180, 83, 9, 0.24) !important; color: #b45309 !important; }
.pd-badge-partial { background: rgba(180, 83, 9, 0.08) !important; border-color: rgba(180, 83, 9, 0.24) !important; color: #b45309 !important; }
.pd-badge-muted   { background: var(--pd-bg-soft) !important; border-color: #d4d8dd !important; color: var(--pd-text-2) !important; }

/* ---------- 旧绿色底块 → 中性灰 ---------- */
.pd-batch-bar { background: var(--pd-bg-soft) !important; border-color: #d4d8dd !important; }
.pd-settings-status.ok { color: var(--pd-success) !important; }
.pd-sidebar-foot button.proxy-on .pd-foot-icon { filter: none !important; }

/* ---------- 结构边界：每个区块都要有清晰可见的边（对照抖音后台的卡片） ---------- */
/* 区块标题：近黑填充行 + 白字（抖音黑白红品牌色，对比最强） */
.pd-card > h2 {
  margin: 0 -24px 18px; padding: 13px 24px;
  background: #141414;
  border-top: 1px solid #141414; border-bottom: 1px solid #141414;
  font-size: 16px; font-weight: 600; letter-spacing: 0; color: #ffffff;
}
.pd-card > h2:first-child { margin-top: -22px; border-radius: 12px 12px 0 0; }
.pd-card, .pd-hero { border: 1px solid #d4d8dd !important; box-shadow: var(--pd-shadow-sm) !important; }
.pd-sidebar { border-right: 1px solid #d4d8dd !important; }
.pd-footbar { border-top: 1px solid #d4d8dd !important; }
.pd-task-row, .pd-queue-item, .pd-archive-item, .pd-blogger, .pd-sc-item, .pd-src-item,
.pd-settings-block, .pd-prompt-mod, .pd-drawer-section, .pd-kb-opt, .pd-prompt-legend,
.pd-script-cfg-sum, .pd-plan, .pd-fold, .pd-dig {
  border: 1px solid #d4d8dd !important;
}
.pd-job-card { border-bottom: 1px solid #d4d8dd; }

/* ============================================================================
   媒灵色板层（ML）· 2026-10-17 定稿
   ----------------------------------------------------------------------------
   全站统一为媒灵工作台配色：白底 #ffffff + 墨绿主色 #1f5c4d + 语义色（琥珀/砖红/靛青）。
   仅改观感与尺度，不动任何 JS 钩子与 class 名。
   本层置于样式表最末尾，以 !important 统一压过 DY 白卡层与底层深色方案。
   ============================================================================ */
/* 2026-10-27：整套 --db-* 改为引用 static/tokens.css 的令牌（唯一真源）。
   本层是全站生效层（下面所有规则都靠 !important 引用这组变量），
   所以改这一处 = 工作台整体跟令牌走。视觉变化只有画布/次级面各浅一档。 */
:root {
  --db-surface: #141414;
  --db-surface-2: #141414;
  --db-bg:      #141414;        /* 画布：#eaeef2 → #f4f6f8（2026-10-27 定稿统一） */
  --db-border:  #d4d8dd;
  --db-border-strong: #c3cad3;
  --db-ink:     #eef2f8;
  --db-ink-soft: #5f6b78;
  --db-accent: #1f5c4d;
  --db-accent-strong: #1f5c4d;
  --db-accent-soft: rgba(31, 92, 77, 0.12);
  --db-accent-border: rgba(31, 92, 77, 0.30);
  --db-warning: #b45309;
  --db-danger: #f7eeec;
  --db-info: #2f5d8a;
}

/* 页面整体白底 */
html, body, .pd-root { background: var(--db-bg) !important; }

/* 一级区块：卡片 / 工作台列 / 页头 / 设置块 / 登录块 */
.pd-card,
.pd-col,
.pd-hero,
.pd-settings-block,
.pd-login-page-status,
.pd-login-page-url-box {
  background: var(--db-surface) !important;
  border: 1px solid var(--db-border) !important;
  color: var(--db-ink) !important;
  box-shadow: 0 1px 2px rgba(20,20,20,0.05), 0 2px 6px rgba(20,20,20,0.04) !important;
}
.pd-card:hover, .pd-col:hover { border-color: var(--db-border-strong) !important; box-shadow: 0 2px 4px rgba(20,20,20,0.06), 0 4px 12px rgba(20,20,20,0.05) !important; }

/* 三步工作台列：统一白底（不再分色轮转） */
.pd-col[data-col="idea"],
.pd-col[data-col="script"] {
  background: var(--db-surface) !important;
  border: 1px solid var(--db-border) !important;
  color: var(--db-ink) !important;
}

/* 区块标题与描述：深字（hero 强调词用墨绿） */
.pd-card h2, .pd-card h3, .pd-col h2, .pd-col h3,
.pd-settings-block h2, .pd-hero h1 {
  color: var(--db-ink) !important;
}
.pd-card p, .pd-col p, .pd-settings-block p,
.pd-hero-meta, .pd-hero-sub, .pd-studio-sub {
  color: var(--db-ink-soft) !important;
}

/* 内嵌白面：表格（表头/单元格）白底深字，表头墨绿浅底 */
.pd-card table, .pd-col table, .pd-drawer table, .pd-page table {
  background: #ffffff !important; color: var(--db-ink) !important;
}
.pd-card table th, .pd-card table td, .pd-col table th, .pd-col table td,
.pd-drawer table th, .pd-drawer table td,
.pd-page table th, .pd-page table td {
  color: var(--db-ink) !important; border-color: var(--db-border) !important;
}
.pd-card table thead th, .pd-col table thead th, .pd-page table thead th {
  background: var(--db-accent-soft) !important; color: var(--db-accent-strong) !important;
}

/* 小区块：对话/表单/列表/提示/会话项/队列/通用提示 —— 统一白底 + 发丝边 */
.pd-page[data-page="idea"] .pd-sc-side,
.pd-page[data-page="idea"] .pd-chat-log,
.pd-page[data-page="idea"] .pd-ip,
.pd-page[data-page="idea"] .pd-chat-fab,
.pd-page[data-page="idea"] .pd-chat-model,
.pd-sc-item,
.pd-page[data-page="idea"] .pd-sc-item,
.pd-queue-item, .pd-task-items, .pd-task-row, .pd-batch-bar,
.pd-fold, .pd-hint, .pd-plan, .pd-dig, .pd-prompt-legend, .pd-src-list, .pd-src-item,
.pd-kb-opt, .pd-archive-item, .pd-blogger, .pd-prompt-mod,
.pd-drawer-section, .pd-drawer-scene {
  background: var(--db-surface) !important;
  border: 1px solid var(--db-border) !important;
  color: var(--db-ink) !important;
}
.pd-sc-item.is-on { background: var(--db-accent-soft) !important; border-color: var(--db-accent-border) !important; }

/* 悬浮发送按钮：墨绿实底白字 */
.pd-chat-fab { background: var(--db-accent) !important; color: #ffffff !important; border: 1px solid var(--db-accent) !important; }

/* 智能体广场：卡片统一白底 + 发丝边 */
.pdag-card {
  background: var(--db-surface) !important;
  border: 1px solid var(--db-border) !important;
  color: var(--db-ink) !important;
}
.pdag-card[data-accent] { background: var(--db-surface) !important; border-color: var(--db-border) !important; }
.pdag-card h3, .pdag-card .pdag-desc, .pdag-card .pdag-meta { color: var(--db-ink) !important; }

/* 视频制作工作台：面板统一白底 + 发丝边 */
.pdvw-panel, .pdvw-start-item {
  background: var(--db-surface) !important;
  border: 1px solid var(--db-border) !important;
  color: var(--db-ink) !important;
}

/* 侧栏：白底外壳 + 发丝边；内部导航项白底发丝边，当前项墨绿浅底 + 墨绿深字 */
.pd-sidebar { background: var(--db-surface) !important; border-right: 1px solid var(--db-border) !important; }
.pd-brand-name, .pd-section-title { color: var(--db-ink) !important; }
.pd-nav a {
  background: #ffffff !important;
  border: 1px solid var(--db-border) !important;
  color: var(--db-ink) !important;
}
.pd-nav a:hover { background: var(--db-surface-2) !important; }
.pd-nav a.active, .pd-nav a.is-on {
  background: var(--db-accent-soft) !important;
  border-color: var(--db-accent-border) !important;
  color: var(--db-accent-strong) !important;
}
.pd-sidebar-foot { border-top: 1px solid var(--db-border) !important; }
.pd-sidebar-foot button { color: var(--db-ink) !important; border: 1px solid var(--db-border) !important; background: #ffffff !important; }

/* 底部状态条：白底 + 发丝边 + 深字 */
.pd-footbar {
  background: var(--db-surface) !important;
  color: var(--db-ink) !important;
  border-top: 1px solid var(--db-border) !important;
}

/* 输入框 / 下拉 / 文本域 / 按钮：白底 + 发丝边 + 深字（简洁统一） */
.pd-input-row input, .pd-input-row select, .pd-input-row textarea,
input[type="text"], input[type="number"], input[type="url"], input[type="search"],
select, textarea,
.pd-btn, .pd-btn-ghost, button.pd-btn {
  background: #ffffff !important;
  border: 1px solid var(--db-border) !important;
  color: var(--db-ink) !important;
}
.pd-btn-primary { background: var(--db-accent) !important; color: #ffffff !important; border-color: var(--db-accent) !important; }
.pd-btn:hover, .pd-btn-ghost:hover { background: var(--db-surface-2) !important; }

/* 状态小色点 / 语义色：发丝边，文字保留语义色（成功绿/错误红/警告琥珀） */
.pd-badge, .pd-badge-muted, .pd-badge-ok, .pd-badge-err, .pd-badge-warn {
  border: 1px solid var(--db-border) !important;
  background: #ffffff !important;
}
.pd-badge-ok { color: var(--db-accent-strong) !important; }
.pd-badge-err { color: var(--db-danger) !important; }
.pd-badge-warn { color: var(--db-warning) !important; }

/* 中和 DY 抖音红残留，统一为媒灵墨绿（2026-10-17） */
.pd-hero h1 em { color: var(--db-accent) !important; }
.pd-footbar::after { color: var(--db-accent) !important; }
.pd-nav a.active::before, .pd-nav a.is-on::before { background: var(--db-accent) !important; }
.pd-job-card .pd-job-count { color: var(--db-accent) !important; }
.pd-progress > .bar { background: var(--db-accent) !important; }
.pd-btn-ghost:hover, .pd-btn-tiny:hover, .pd-btn-ghost.is-active {
  color: var(--db-accent) !important; border-color: var(--db-accent) !important; background: var(--db-accent-soft) !important;
}
.pd-page[data-page="video"] {
  --vw-accent: var(--db-accent); --vw-accent-deep: var(--db-accent-strong);
  --vw-accent-2: var(--db-accent); --vw-accent-soft: var(--db-accent-soft);
  --vw-ok: var(--db-accent-strong); --vw-wait: var(--db-warning); --vw-border: var(--db-border);
}

.pd-search { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: flex-start; justify-content: center; background: rgba(20,24,28,.45); padding-top: 12vh; }
.pd-search.hidden { display: none; }
.pd-search-box { width: min(720px, 92vw); max-height: 70vh; display: flex; flex-direction: column; background: #fff; border: 1px solid #d4d8dd; border-radius: 14px; box-shadow: 0 18px 60px rgba(0,0,0,.28); overflow: hidden; }
.pd-search-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid #d4d8dd; }
.pd-search-ico { font-size: 16px; }
.pd-search-input { flex: 1; border: none; outline: none; font-size: 16px; color: #141414; background: transparent; }
.pd-search-close { border: none; background: transparent; font-size: 16px; cursor: pointer; color: #6b7280; }
.pd-search-body { overflow-y: auto; padding: 8px 0; }
.pd-search-group-title { font-size: 12px; color: #6b7280; padding: 10px 16px 4px; letter-spacing: .04em; }
.pd-search-item { padding: 9px 16px; cursor: pointer; border-left: 3px solid transparent; }
.pd-search-item.active, .pd-search-item:hover { background: #f4f6f9; border-left-color: #1f5c4d; }
.pd-search-item-title { font-size: 14px; color: #141414; display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.pd-search-item-lib { font-size: 11px; color: #1f5c4d; background: #eaf2ef; border-radius: 999px; padding: 1px 8px; white-space: nowrap; }
.pd-search-item-snippet { font-size: 12px; color: #6b7280; margin-top: 3px; line-height: 1.5; word-break: break-all; }
.pd-search-empty { padding: 24px 16px; text-align: center; color: #9aa1ab; font-size: 13px; }
.pd-search-foot { padding: 8px 16px; border-top: 1px solid #eef0f3; font-size: 11px; color: #9aa1ab; text-align: right; }
.pd-search-fab { position: fixed; right: 18px; bottom: 18px; z-index: 60; width: 46px; height: 46px; border-radius: 999px; border: none; background: #1f5c4d; color: #fff; font-size: 20px; cursor: pointer; box-shadow: 0 6px 20px rgba(31,92,77,.4); }
.pd-search-fab:hover { background: #18493d; }

/* ===== 定时监测 ===== */
.pd-mon-row{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin-top:10px; font-size:13px; color:#2a323a; }
.pd-mon-switch{ display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.pd-mon-field input{ padding:5px 7px; border:1px solid #d4d8dd; border-radius:8px; background:#fff; color:#2a323a; }
.pd-mon-hint{ color:#6b747d; font-size:12px; }
.pd-mon-actions{ display:flex; gap:10px; align-items:center; margin-top:12px; }
.pd-mon-result{ font-size:12px; color:#1f5c4d; }

/* ===== KB 批量 / 标签 ===== */
.pd-kb-selall{ font-size:12px; color:#6b747d; display:inline-flex; align-items:center; gap:5px; cursor:pointer; }
.pd-kb-card{ position:relative; }
.pd-kb-card-check{ position:absolute; top:10px; right:10px; z-index:2; }
.pd-kb-card-check input{ width:16px; height:16px; cursor:pointer; accent-color:#1f5c4d; }
.pd-kb-card-tags{ display:flex; flex-wrap:wrap; gap:5px; margin:6px 0 2px; }
.pd-kb-tag{ font-size:11px; color:#1f5c4d; background:#eef5f2; border:1px solid #cfe2db; border-radius:999px; padding:1px 8px; }
.pd-kb-tag-edit{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:8px 0; border-top:1px solid #eef1f4; margin-top:6px; }
.pd-kb-tag-edit-label{ font-size:12px; color:#6b747d; }
.pd-kb-tag-edit-tags{ display:flex; flex-wrap:wrap; gap:5px; }
.pd-kb-tag-edit-tags .pd-kb-tag{ cursor:default; }
.pd-kb-tag-x{ margin-left:4px; cursor:pointer; color:#a83c31; font-weight:700; }
.pd-kb-tag-input{ flex:1; min-width:120px; padding:5px 8px; border:1px solid #d4d8dd; border-radius:8px; background:#fff; color:#2a323a; font-size:12px; }

/* ===== 知识库看板：侧栏 + 主区（对标「项目知识库 Notebook」） ===== */
.pd-kb-layout{ display:flex; gap:16px; align-items:flex-start; }
.pd-kb-side{ flex:0 0 250px; align-self:stretch; background:#fff; border:1px solid #d4d8dd; border-radius:14px; padding:14px 12px; position:sticky; top:16px; max-height:calc(100vh - 40px); display:flex; flex-direction:column; }
.pd-kb-side-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.pd-kb-side-title{ display:flex; align-items:center; gap:6px; font-weight:700; color:#1f5c4d; font-size:14px; }
.pd-kb-side-refresh{ border:1px solid #d4d8dd; background:#fff; color:#5b6b63; border-radius:8px; padding:3px 9px; font-size:12px; cursor:pointer; }
.pd-kb-side-refresh:hover{ border-color:#1f5c4d; color:#1f5c4d; }
.pd-kb-side-stat{ font-size:12px; color:#6b747d; padding:7px 9px; background:#eef5f2; border-radius:9px; margin-bottom:10px; }
.pd-kb-side-nav{ flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:2px; }
.pd-kb-grp{ font-size:11px; font-weight:600; color:#8a958f; letter-spacing:.04em; padding:10px 8px 4px; }
.pd-kb-lib{ display:flex; align-items:center; gap:6px; width:100%; border:none; background:transparent; padding:7px 8px; border-radius:8px; cursor:pointer; font-size:13px; color:#2a323a; text-align:left; }
.pd-kb-lib:hover{ background:#f3f6f5; }
.pd-kb-lib.active{ background:#1f5c4d; color:#fff; }
.pd-kb-lib .nm{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pd-kb-lib .cnt{ font-size:11px; color:#8a958f; background:#eef1f4; border-radius:999px; padding:0 7px; }
.pd-kb-lib.active .cnt{ background:rgba(255,255,255,.22); color:#fff; }
.pd-kb-lib .caret{ width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid #8a958f; transition:transform .15s; flex:0 0 auto; }
.pd-kb-lib .caret.open{ transform:rotate(180deg); }
.pd-kb-lib-wrap.is-active > .pd-kb-lib:not(.active){ background:#eef5f2; }
.pd-kb-subcat.active{ color:#1f5c4d; font-weight:600; background:#eef5f2; }
.pd-kb-subcat .cnt{ font-size:10px; color:#8a958f; }
.pd-kb-side-foot{ margin-top:10px; padding-top:10px; border-top:1px solid #eef1f4; }
.pd-kb-add-material{ width:100%; justify-content:center; }
/* 右侧主区 */
.pd-kb-main{ flex:1; min-width:0; }
.pd-kb-main-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:4px; }
.pd-kb-mode{ display:inline-flex; background:#eef1f4; border-radius:10px; padding:3px; gap:2px; align-self:flex-start; }
.pd-kb-mode-btn{ border:none; background:transparent; padding:6px 14px; border-radius:8px; cursor:pointer; font-size:13px; color:#5b6b63; }
.pd-kb-mode-btn.active{ background:#fff; color:#1f5c4d; font-weight:600; box-shadow:0 1px 2px rgba(31,92,77,.12); }
.pd-kb-pane.hidden{ display:none; }
.pd-kb-sub{ margin:6px 0 12px; color:#6b747d; font-size:13px; }
/* 对话面板（RAG） */
.pd-kb-chat{ display:flex; flex-direction:column; height:calc(100vh - 250px); min-height:440px; background:#fff; border:1px solid #d4d8dd; border-radius:14px; overflow:hidden; }
.pd-kb-chat-log{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:12px; }
.pd-kb-chat-welcome{ margin:auto; text-align:center; color:#6b747d; max-width:460px; }
.pd-kb-chat-welcome-t{ font-size:18px; font-weight:700; color:#1f5c4d; margin-bottom:8px; }
.pd-kb-chat-welcome-s{ font-size:13px; line-height:1.7; }
.pd-kb-chat-bubble{ max-width:86%; padding:10px 13px; border-radius:12px; font-size:13px; line-height:1.6; white-space:pre-wrap; word-break:break-word; }
.pd-kb-chat-bubble.is-user{ align-self:flex-end; background:#1f5c4d; color:#fff; border-bottom-right-radius:3px; }
.pd-kb-chat-bubble.is-bot{ align-self:flex-start; background:#f3f6f5; color:#2a323a; border-bottom-left-radius:3px; }
.pd-kb-chat-bubble.is-typing .pd-kb-chat-text{ color:#8a958f; }
.pd-kb-chat-cites{ margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; }
.pd-kb-chat-cite{ border:1px solid #cfe2db; background:#eef5f2; color:#1f5c4d; border-radius:999px; padding:3px 10px; font-size:11px; cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
.pd-kb-chat-cite span{ color:#6b747d; }
.pd-kb-chat-input{ display:flex; gap:8px; padding:10px; border-top:1px solid #eef1f4; background:#fff; }
.pd-kb-chat-input input{ flex:1; padding:9px 12px; border:1px solid #d4d8dd; border-radius:10px; font-size:13px; color:#2a323a; background:#fff; }
.pd-kb-chat-input input:focus{ outline:none; border-color:#1f5c4d; }
.pd-kb-chat-send{ border:none; background:#1f5c4d; color:#fff; border-radius:10px; width:40px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.pd-kb-chat-send:disabled{ opacity:.55; cursor:default; }
.pd-kb-chat-hint{ padding:6px 14px 10px; font-size:11px; color:#6b7683; text-align:center; }
/* 添加资料弹窗 */
.pd-kb-add-box{ width:520px; max-width:92vw; }
.pd-kb-add-body{ padding:14px 16px; display:flex; flex-direction:column; gap:6px; }
.pd-kb-add-label{ font-size:12px; color:#6b747d; margin-top:4px; }
.pd-kb-add-body input, .pd-kb-add-body textarea{ padding:8px 10px; border:1px solid #d4d8dd; border-radius:9px; font-size:13px; color:#2a323a; background:#fff; width:100%; box-sizing:border-box; font-family:inherit; }
.pd-kb-add-body textarea{ resize:vertical; }
.pd-kb-add-body input:focus, .pd-kb-add-body textarea:focus{ outline:none; border-color:#1f5c4d; }
.pd-kb-add-msg{ font-size:12px; min-height:16px; margin-top:4px; }
.pd-kb-add-msg.ok{ color:#1f5c4d; }
.pd-kb-add-msg.err{ color:#a83c31; }
@media (max-width: 860px){
  .pd-kb-layout{ flex-direction:column; }
  .pd-kb-side{ flex:none; width:100%; position:relative; top:0; max-height:none; }
  .pd-kb-chat{ height:70vh; }
}

/* ===== 分析队列浮条 ===== */
.pd-queue-bar{ position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:60; background:#fff; border:1px solid #d4d8dd; border-radius:12px; box-shadow:0 6px 24px rgba(31,92,77,.14); padding:9px 14px; display:flex; align-items:center; gap:12px; font-size:13px; color:#2a323a; max-width:92vw; }
.pd-queue-bar.hidden{ display:none; }
.pd-queue-bar .q-state{ font-weight:600; color:#1f5c4d; }
.pd-queue-bar .q-meta{ color:#6b747d; }
.pd-queue-bar button{ padding:4px 10px; border-radius:8px; border:1px solid #d4d8dd; background:#fff; cursor:pointer; font-size:12px; color:#a83c31; }

/* ===== 响应式 ===== */
@media (max-width: 900px){
  .pd-main{ margin-left:0; }
  #pd-nav, .pd-sidebar-foot{ }
  .pd-layout{ flex-direction:column; }
  .pd-sidebar{ position:relative; width:100%; height:auto; border-right:none; border-bottom:1px solid #d4d8dd; }
  .pd-detail-hero{ flex-direction:column; }
  .pd-drawer{ width:100% !important; }
  .pd-kb-grid{ grid-template-columns:1fr; }
}
@media (max-width: 600px){
  .pd-blogger-add, .pd-mon-row, .pd-input-row{ flex-wrap:wrap; }
}

'
      + 'body{font-family:system-ui,"Microsoft YaHei",sans-serif;padding:32px;line-height:1.7;color:#222;max-width:820px;margin:0 auto;}'
      + '.pd-md h1{font-size:20px;border-bottom:2px solid #1f5c4d;padding-bottom:8px;color:#1f5c4d;}'
      + '.pd-md h2{font-size:16px;margin-top:22px;color:#1f5c4d;}'
      + '.pd-md table{border-collapse:collapse;width:100%;} .pd-md th,.pd-md td{border:1px solid #d4d8dd;padding:6px 8px;font-size:13px;}'
      + '.pd-md pre{white-space:pre-wrap;word-break:break-word;background:#f6f8f9;padding:12px;border-radius:8px;}'
      + '@media print{body{padding:0;}}

  /* 1. 侧栏整体 1:1 媒灵化（修掉 ML 层给导航项加的白框黑边） */
  .pd-sidebar {
    background:#ffffff !important;
    border-right:1px solid #c3cad3 !important;
    padding:0 0 18px 0 !important;
    gap:0 !important;
  }
  .pd-brand {
    border-bottom:1px solid #d4d8dd !important;
    padding:20px 18px !important;
    min-height:89px !important;
    gap:12px !important;
  }
  .pd-brand-mark {
    width:40px !important; height:40px !important; border-radius:8px !important;
    background:#141414 !important; border:1px solid #d4d8dd !important;
  }
  .pd-brand-name { color:#141414 !important; font-size:17px !important; font-weight:700 !important; }
  .pd-brand-sub { color:#8a8a8a !important; font-size:11px !important; letter-spacing:0 !important; margin-top:3px !important; }
  .pd-platform, .pd-account { padding:14px 14px 0 !important; }
  .pd-platform select, .pd-account-row {
    background:#ffffff !important; border:1px solid #d4d8dd !important;
    color:#141414 !important; border-radius:10px !important;
  }
  .pd-account-dot { background:#b5b5b5 !important; }
  .pd-account-dot.pd-account-dot-ok { background:#1f5c4d !important; box-shadow:none !important; }
  .pd-account-dot.pd-account-dot-bad { background:#a83c31 !important; box-shadow:none !important; }

  /* 分区标题：媒灵小字墨绿 */
  .pd-section-title {
    color:#1f5c4d !important;
    font-size:10px !important; font-weight:700 !important;
    letter-spacing:0.06em !important; text-transform:uppercase !important;
    margin:20px 10px 8px !important; padding:0 6px !important;
  }

  /* 导航项：扁平，不要白框 */
  .pd-nav { gap:1px !important; padding:14px 14px 22px !important; }
  .pd-nav a {
    background:transparent !important; border:none !important;
    color:#4a4a4a !important; border-radius:6px !important;
    padding:8px 10px !important; font-size:14px !important; font-weight:400 !important;
  }
  .pd-nav a:hover { background:#fafafa !important; color:#141414 !important; }
  .pd-nav a.active {
    background:#1f5c4d !important; color:#ffffff !important;
    box-shadow:none !important; font-weight:600 !important;
  }
  .pd-nav a.active::before { display:none !important; }
  .pd-nav a.active .pd-nav-badge { background:#ffffff !important; color:#1f5c4d !important; }
  .pd-nav .pd-nav-badge { background:#f5f5f5 !important; color:#6b6b6b !important; }

  /* 侧栏底部按钮：浅灰线白底，不抢戏 */
  .pd-sidebar-foot {
    border-top:1px solid #d4d8dd !important;
    margin:0 14px !important; padding:14px 0 0 !important;
  }
  .pd-sidebar-foot button {
    background:#ffffff !important; border:1px solid #d4d8dd !important;
    color:#4a4a4a !important; border-radius:8px !important;
  }
  .pd-sidebar-foot button:hover { background:#fafafa !important; color:#141414 !important; }
  .pd-sidebar-foot button.proxy-on { background:#eef5f2 !important; border-color:#cfe2db !important; color:#16453a !important; }

  /* 2. 报告分组卡片媒灵化：浅线 + 圆角 + 轻阴影 + 墨绿标题（对标媒灵 section-block） */
  .pd-llm-group {
    border:1px solid #d4d8dd !important;
    background:#ffffff !important;
    border-radius:14px !important;
    padding:12px 14px 8px !important;
    box-shadow:0 4px 14px rgba(20,20,20,0.055) !important;
  }
  .pd-llm-group-h {
    color:#1f5c4d !important;
    border-bottom:1px solid #d4d8dd !important;
    padding:0 0 6px 11px !important;
    position:relative !important;
    font-size:12.5px !important;
  }
  .pd-llm-group-h::before {
    content:"" !important; position:absolute !important; left:0 !important; top:1px !important;
    width:4px !important; height:15px !important; border-radius:2px !important; background:#1f5c4d !important;
  }

  /* 3. 蓝系残留 → 媒灵墨绿胶囊 / 类型标签 */
  .pd-llm-chip {
    background:rgba(31,92,77,0.10) !important;
    border:1px solid rgba(31,92,77,0.30) !important;
    color:#1f5c4d !important;
    border-radius:999px !important;
    font-weight:600 !important;
  }
  .pd-badge-mtype {
    background:rgba(31,92,77,0.12) !important;
    color:#1f5c4d !important;
    border:1px solid rgba(31,92,77,0.35) !important;
  }

  /* 4. 重点词强化：结论 / 关键数据用墨绿，正文用主墨色 */
  .pd-llm-kv .k { color:#1f5c4d !important; }
  .pd-llm-kv .v { color:#141414 !important; }
  .pd-llm-whyviral, .pd-llm-formula { border-radius:10px !important; }
  .pd-drawer-llm h5 { color:#1f5c4d !important; }

  /* 5. 卡片标题：去掉抖音层近黑填充条，改媒灵干净浅色标题（深字 + 发丝底边） */
  .pd-card > h2 {
    margin: 0 0 14px !important;
    padding: 0 0 8px !important;
    background: transparent !important;
    border-top: none !important;
    border-bottom: 1px solid #d4d8dd !important;
    border-radius: 0 !important;
    color: #141414 !important;
    font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0 !important;
  }
  .pd-card > h2:first-child {
    margin-top: 0 !important; border-radius: 0 !important;
  }
  .pd-hero h1, .pd-card h2, .pd-card h3 { color:#141414 !important; }

  /* 6. 美化收口：克制品牌绿 + 精致层级 + 一致圆角（全场唯一强调色 = 墨绿 #1f5c4d） */
  /* 6.1 一致圆角：卡 14 / 控件 10 / 胶囊 999 */
  .pd-card, .pd-col, .pd-hero, .pd-settings-block,
  .pd-login-page-status, .pd-login-page-url-box, .pdag-card, .pdvw-panel,
  .pd-drawer-section, .pd-script-cfg, .pd-ip, .pd-sc-side, .pd-chat-log,
  .pd-msgs, .pd-plan, .pd-fold, .pd-dig, .pd-src-item, .pd-blogger,
  .pd-archive-item, .pd-queue-item, .pd-task-row, .pd-prompt-mod, .pd-field,
  .pd-account-row, .pd-seg {
    border-radius: 14px !important;
  }
  .pd-input-row input, .pd-input-row textarea, select, textarea,
  input[type="text"], input[type="number"], input[type="url"], input[type="search"],
  .pd-btn, .pd-btn-ghost, .pd-field input, .pd-badge, .pd-account-row,
  .pd-chat-model, .pd-script-cfg-sum {
    border-radius: 10px !important;
  }
  .pd-nav-badge, .pd-llm-chip, .pd-badge-mtype, .pd-pill,
  .pd-badge-ok, .pd-badge-err, .pd-badge-warn, .pd-btn-ghost { border-radius: 999px !important; }

  /* 6.2 精致分层投影（冷调极淡，白卡浮起） */
  .pd-card, .pd-col, .pd-hero, .pd-settings-block,
  .pd-login-page-status, .pd-login-page-url-box, .pdag-card, .pdvw-panel, .pd-drawer-section {
    box-shadow: 0 1px 2px rgba(16,24,40,.05), 0 4px 14px rgba(16,24,40,.05) !important;
  }
  .pd-card:hover, .pd-col:hover, .pdag-card:hover {
    box-shadow: 0 4px 10px rgba(16,24,40,.08), 0 10px 28px rgba(16,24,40,.07) !important;
  }

  /* 6.3 主按钮：品牌绿渐变 + 精致阴影 + 微交互 */
  .pd-btn {
    background: linear-gradient(180deg, #1f5c4d, #16453a) !important;
    border: 1px solid #16453a !important; color: #fff !important;
    box-shadow: 0 1px 2px rgba(22,69,58,.28) !important;
    font-weight: 600 !important;
    transition: filter .15s, transform .05s, box-shadow .15s !important;
  }
  .pd-btn:hover { filter: brightness(1.07) !important; box-shadow: 0 2px 6px rgba(22,69,58,.32) !important; }
  .pd-btn:active { transform: translateY(1px) !important; box-shadow: 0 1px 1px rgba(22,69,58,.30) !important; }
  .pd-btn-ghost {
    background: #fff !important; border: 1px solid #d4d8dd !important; color: #16453a !important;
    transition: background .15s, border-color .15s, color .15s !important;
  }
  .pd-btn-ghost:hover { background: #eef5f2 !important; border-color: #1f5c4d !important; }
  .pd-btn-ghost.is-active { background: #1f5c4d !important; border-color: #1f5c4d !important; color: #fff !important; }

  /* 6.4 输入聚焦：品牌绿环（无障碍 + 品牌） */
  .pd-input-row input:focus, .pd-input-row textarea:focus,
  .pd-field input:focus, .pd-field textarea:focus, .pd-field select:focus,
  .pd-ip-f input:focus, .pd-ip-f textarea:focus,
  input:focus, select:focus, textarea:focus {
    border-color: #1f5c4d !important;
    box-shadow: 0 0 0 3px rgba(31,92,77,.14) !important;
    outline: none !important;
  }
  :focus-visible { outline: 2px solid rgba(31,92,77,.5) !important; outline-offset: 2px !important; }

  /* 6.5 卡片标题：墨绿短杠标记（克制品牌签名） */
  .pd-card > h2 { border-bottom: 1px solid #d4d8dd !important; }
  .pd-card > h2::before {
    content: "" !important; display: inline-block !important;
    width: 4px; height: 15px; border-radius: 2px;
    background: #1f5c4d !important; margin-right: 9px; vertical-align: -2px !important;
  }

  /* 6.6 首页 hero：极淡品牌绿渐变底（全场唯一的彩色呼吸位） */
  .pd-hero {
    background: linear-gradient(180deg, #f1f7f4 0%, #ffffff 72%) !important;
    border: 1px solid #d4d8dd !important;
  }

  /* 6.7 导航当前项 + 品牌 mark：绿色收口 */
  .pd-nav a.active { box-shadow: 0 1px 2px rgba(22,69,58,.28) !important; }
  .pd-brand-mark {
    background: linear-gradient(135deg, #1f5c4d, #16453a) !important;
    border: 1px solid #16453a !important; color: #fff !important;
  }

  /* 左上角品牌 → 点击返回工作台首页（可点击提示）*/
  #pd-brand-home { cursor: pointer; transition: background .15s ease; }
  #pd-brand-home:hover { background: rgba(31, 92, 77, .07); }

  /* ============ 7. 设计系统统一收口 ============ */
  /* 7.1 修复浅底隐形文字硬伤：原 #f7eeec / #eef2f8 在近白底上几乎不可见，
        统一为可读语义色（错误=砖红 #a83c31，代码/重点=深绿 #16453a） */
  .pd-task-row .pd-tr-error,
  .pd-settings-status.err,
  .pd-danger,
  .pd-scan-msg.err,
  #pd-chat-model-msg.err,
  .pd-col-msg.err,
  .pd-kb-msg.err,
  .pd-blogger-del:hover,
  .pd-sc-item-del:hover {
    color: #a83c31 !important;
  }
  /* 头/尾标签：原白字(#eef2f8)在蓝/绿浅底上隐形 → 改墨绿深字 + 墨绿浅底 */
  .pd-prompt-mod-tag.head {
    background: rgba(31, 92, 77, 0.14) !important;
    color: #16453a !important;
  }
  /* 维度标签：原靛蓝字(#2f5d8a)配墨绿浅底冷暖错位 → 统一墨绿 */
    /* 提示词编辑器里的代码/变量占位：原白字隐形 → 深绿可读 */
  
  /* 7.2 视频工作台岛把 --pd-failed 重置成了近白(#f7eeec)，导致该岛错误文字隐形，
        回填砖红（作用域覆盖，不影响主程序） */
  .pd-page[data-page="video"] { --pd-failed: #a83c31 !important; }

  /* 7.3 模块表面统一：提示词模块卡 → 白底 + 发丝线 + 一致圆角 + 微投影 */
    
  /* 7.4 会话/对话列表项：白卡 + 发丝边 + 悬停/选中绿调（原纯灰块无边界） */
  .pd-sc-item {
    background: #ffffff !important;
    border: 1px solid #e6e9ee !important;
    border-radius: 10px !important;
  }
  .pd-sc-item:hover { background: #f4f6f9 !important; }
  .pd-sc-item.is-on { background: #eef5f2 !important; border-color: #1f5c4d !important; }

  /* 7.5 表格：清爽表头 + 行悬停浅灰（原无悬停态，列表密时难分辨） */
  .pd-scene-table tbody tr:hover td { background: #f4f6f9 !important; }
  .pd-card table tbody tr:hover td,
  .pd-col table tbody tr:hover td { background: #f4f6f9 !important; }

  /* 8. 抽屉内的「版本切换」条（2026-10-27：语音转写 本地/云端/读字幕、分镜 本地切点/大模型全拆）
        做成与色板一致的分段控件。⚠️ 抽屉底是 --pd-bg-mid（深色），弹窗是白卡，
        所以这里**只用中性色 + 变量**，不写死白底，免得在深色抽屉里糊成一块亮斑。 */
  .pd-ver-bar {
    display: flex !important; flex-wrap: wrap; gap: 6px !important;
    margin: 6px 0 10px !important; padding: 4px !important;
    background: rgba(127, 127, 127, 0.10) !important;
    border: 1px solid var(--pd-line, #d4d8dd) !important;
    border-radius: 10px !important;
  }
  .pd-ver-bar button {
    display: inline-flex !important; align-items: center !important; gap: 6px !important;
    border: 1px solid transparent !important; background: transparent !important;
    color: var(--pd-text-2, #6b7280) !important; font-size: 12px !important; line-height: 1 !important;
    padding: 7px 11px !important; border-radius: 8px !important; cursor: pointer !important;
    white-space: nowrap !important;
  }
  .pd-ver-bar button:hover {
    background: rgba(127, 127, 127, 0.16) !important; color: var(--pd-text, #141414) !important;
  }
  .pd-ver-bar button.active {
    background: #1f5c4d !important; border-color: #1f5c4d !important; color: #ffffff !important;
    font-weight: 600 !important;
  }
  .pd-ver-bar button .cnt {
    font-size: 11px !important; padding: 1px 6px !important; border-radius: 999px !important;
    background: rgba(127, 127, 127, 0.20) !important; color: inherit !important;
  }
  .pd-ver-bar button.active .cnt {
    background: rgba(255, 255, 255, 0.22) !important; color: #ffffff !important;
  }

  /* 9. 「对接大模型」弹窗里的引擎区块（2026-10-27）：浅底分组卡，跟接口字段分开 */
  .pd-engine-block {
    margin-top: 14px !important; padding: 12px 12px 6px !important;
    background: #f7f9fb !important; border: 1px solid #e6e9ee !important;
    border-radius: 12px !important;
  }
  .pd-engine-title {
    font-size: 12px !important; font-weight: 700 !important; color: #1f5c4d !important;
    letter-spacing: .02em !important; margin-bottom: 8px !important;
  }
  .pd-engine-block .pd-field { margin-bottom: 10px !important; }
  .pd-engine-block select,
  .pd-engine-block input[type="text"],
  .pd-engine-block input[type="password"] {
    width: 100% !important; background: #ffffff !important;
    border: 1px solid #d4d8dd !important; border-radius: 10px !important;
    color: #141414 !important; font-size: 13px !important; padding: 8px 10px !important;
  }
  .pd-engine-block select:focus,
  .pd-engine-block input:focus {
    border-color: #1f5c4d !important; outline: none !important;
    box-shadow: 0 0 0 3px rgba(31, 92, 77, .12) !important;
  }
  .pd-engine-hint { font-size: 11px !important; color: #8a8a8a !important; line-height: 1.6 !important; margin: 2px 0 4px !important; }

/* ---- 区块公共：kicker / 计数 chip / 页头 ---- */
.pd-bmk { margin-bottom: 18px; }
.pd-bmk-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 14px; flex-wrap: wrap;
}
.pd-bmk-head-main { min-width: 0; flex: 1; }
.pd-bmk-kicker {
  font-size: 10.5px; font-weight: 700; letter-spacing: 0.08em;
  color: #1f5c4d; text-transform: uppercase; margin-bottom: 4px;
}
.pd-bmk-head-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pd-bmk-chip {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 600; color: #16453a;
  background: #eef5f2; border: 1px solid #cfe2db; border-radius: 999px;
  padding: 3px 12px; white-space: nowrap;
}
.pd-bmk-chip b { color: #1f5c4d; }

/* ---- 分类筛选条（2026-10-21，形态对齐知识库看板 pd-kb-tools） ---- */
.pd-bmk-filters {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin: 0 0 14px;
}
.pd-bmk-filters input[type="search"] {
  flex: 1 1 180px; min-width: 150px; max-width: 260px;
  padding: 6px 10px; font-size: 12px;
  border: 1px solid #d4d8dd; border-radius: 8px;
  background: #fff; color: #1c2420;
}
.pd-bmk-filters input[type="search"]::placeholder { color: #97a29d; }
.pd-bmk-filters select {
  padding: 6px 8px; font-size: 12px;
  border: 1px solid #d4d8dd; border-radius: 8px;
  background: #fff; color: #1c2420;
}
.pd-bmk-filters-cnt { font-size: 12px; color: #5f6b66; margin-left: auto; white-space: nowrap; }

/* ---- tab 条（对标内容 / 规律分析共用） ---- */
.pd-bmk-tabs, .pd-pat-tabs {
  display: flex; gap: 2px; flex-wrap: wrap;
  border-bottom: 1px solid #d4d8dd; margin: 14px 0 14px;
}
.pd-bmk-tabs button, .pd-pat-tabs button {
  appearance: none; border: none; background: none; cursor: pointer;
  font-size: 13px; color: #5f6b66; padding: 8px 14px;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
  display: inline-flex; align-items: center; gap: 5px;
  transition: color .12s;
}
.pd-bmk-tabs button:hover, .pd-pat-tabs button:hover { color: #1f5c4d; }
.pd-bmk-tabs button.active, .pd-pat-tabs button.active {
  color: #1f5c4d; font-weight: 700; border-bottom-color: #1f5c4d;
}
.pd-bmk-tabs .cnt {
  font-size: 11px; font-weight: 600; color: #1f5c4d;
  background: #eef5f2; border-radius: 999px; padding: 1px 8px;
}

/* ---- 对标账号卡（demo: home-account） ---- */
.pd-blogger-kicker {
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.1em;
  color: #1f5c4d; opacity: .8; margin-bottom: 2px;
}
.pd-blogger-tags { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 5px; }
.pd-blogger-plat {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 600; color: #2f5d8a;
  background: #eef3f9; border: 1px solid #d7e2ee; border-radius: 999px; padding: 2px 9px;
}

/* ---- 内容卡徽标：编号 + 数据档位（贴在封面底部，避开勾选框/删除钮/已入库角标） ---- */
.pd-thumb-badges {
  position: absolute; left: 6px; right: 6px; bottom: 6px; z-index: 3;
  display: flex; justify-content: space-between; align-items: center; gap: 6px;
  pointer-events: none;
}
.pd-thumb-idx {
  font-size: 11px; font-weight: 600; color: #fff;
  background: rgba(20, 20, 20, 0.55); border-radius: 6px; padding: 2px 8px;
  backdrop-filter: blur(2px);
}
.pd-lv {
  font-size: 11px; font-weight: 600; color: #fff;
  border-radius: 999px; padding: 2px 10px; white-space: nowrap;
}
.pd-lv-hot { background: #a83c31; }            /* 大爆款 */
.pd-lv-ok  { background: #1f5c4d; }            /* 正常 */
.pd-lv-low { background: #b45309; }            /* 视频差 */
.pd-lv-na  { background: rgba(20, 20, 20, 0.55); }  /* 未填写 */

/* ---- 规律分析：文档预览 + 迷你 markdown ---- */
.pd-pat-doc-bar {
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 12px;
}
.pd-pat-doc-bar label { font-size: 12px; color: #6b6b6b; }
.pd-pat-doc-sel {
  appearance: none; background: #ffffff; border: 1px solid #d4d8dd; border-radius: 8px;
  color: #141414; font-size: 13px; padding: 6px 30px 6px 10px; cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b6b6b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
  max-width: 100%;
}
.pd-pat-doc-sel:focus { outline: none; border-color: #1f5c4d; }
.pd-pat-src {
  display: inline-block; font-size: 11px; color: #5f6b66;
  background: #f4f6f9; border: 1px solid #e0e0e0; border-radius: 6px;
  padding: 3px 10px; margin-bottom: 12px;
}
.pd-md { font-size: 13.5px; line-height: 1.75; color: #1a1a1a; word-wrap: break-word; }
.pd-md h1, .pd-md h2, .pd-md h3, .pd-md h4, .pd-md h5, .pd-md h6 {
  margin: 18px 0 8px; line-height: 1.4; color: #141414;
}
.pd-md h1 { font-size: 19px; } .pd-md h2 { font-size: 16px; } .pd-md h3 { font-size: 14.5px; }
.pd-md h4, .pd-md h5, .pd-md h6 { font-size: 13.5px; }
.pd-md > :first-child { margin-top: 0; }
.pd-md p { margin: 8px 0; }
.pd-md a { color: #1f5c4d; text-decoration: none; border-bottom: 1px solid #cfe2db; }
.pd-md a:hover { border-bottom-color: #1f5c4d; }
.pd-md ul, .pd-md ol { margin: 8px 0; padding-left: 22px; }
.pd-md li { margin: 3px 0; }
.pd-md blockquote {
  margin: 10px 0; padding: 8px 14px;
  border-left: 3px solid #cfe2db; background: #eef5f2;
  border-radius: 0 8px 8px 0; color: #3d4a45;
}
.pd-md hr { border: none; border-top: 1px solid #d4d8dd; margin: 16px 0; }
.pd-md code {
  font-family: Consolas, Monaco, monospace; font-size: 12px;
  background: #f4f6f9; border: 1px solid #e6eaef; border-radius: 4px; padding: 1px 5px;
}
.pd-md pre {
  background: #f4f6f9; border: 1px solid #e0e0e0; border-radius: 8px;
  padding: 12px 14px; overflow: auto; margin: 10px 0;
}
.pd-md pre code { background: none; border: none; padding: 0; }
.pd-md-tbl-wrap { overflow-x: auto; margin: 10px 0; }
.pd-md-tbl { border-collapse: collapse; width: 100%; font-size: 12.5px; }
.pd-md-tbl th, .pd-md-tbl td { border: 1px solid #d4d8dd; padding: 7px 10px; vertical-align: top; }
.pd-md-tbl th { background: #f4f6f9; font-weight: 600; color: #141414; white-space: nowrap; }
.pd-md-tbl tr:nth-child(even) td { background: #fafbfc; }

/* ---- 规律分析：特征词典 / 特征实例空态提示 ---- */
.pd-pat-hint {
  font-size: 12px; color: #6b6b6b; line-height: 1.7;
  background: #f4f6f9; border: 1px dashed #c3cad3; border-radius: 10px;
  padding: 14px 16px; margin-top: 4px;
}
.pd-pat-hint b { color: #1f5c4d; }

/* =============== 2026-10-19 晚：对齐媒灵 demo 版式（账号 hero / 内容宽卡 / 详情头图+tab） =============== */

/* ---- ① 对标账号：深绿渐变 hero + 2x2 半透明统计卡（demo 图1） ---- */
.pd-blogger-hero {
  background: linear-gradient(120deg, #2e7c66 0%, #1f5c4d 52%, #173f34 100%);
  border-radius: 14px 14px 0 0;
  padding: 22px 24px 20px; color: #fff;
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 20px; flex-wrap: wrap;
}
.pd-blogger-hero-id { display: flex; gap: 16px; align-items: flex-start; min-width: 0; }
.pd-blogger-hero .pd-blogger-avatar {
  width: 76px; height: 76px; border-radius: 16px; object-fit: cover; flex: none;
  border: 2px solid rgba(255, 255, 255, 0.6); background: rgba(255, 255, 255, 0.16);
  display: grid; place-items: center; font-size: 30px; color: rgba(255, 255, 255, 0.85);
}
.pd-blogger-hero-meta { min-width: 0; }
.pd-blogger-hero .pd-blogger-kicker { color: rgba(255, 255, 255, 0.72); margin-bottom: 3px; }
.pd-blogger-hero .pd-blogger-name { font-size: 24px; font-weight: 800; color: #fff; line-height: 1.2; }
.pd-blogger-hero .pd-blogger-sub { font-size: 12px; color: rgba(255, 255, 255, 0.7); margin-top: 3px; }
.pd-blogger-hero .pd-blogger-tags { margin-top: 8px; }
.pd-blogger-hero .pd-blogger-plat {
  background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.22); color: #fff;
}
.pd-blogger-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.pd-blogger-hero-btn {
  appearance: none; cursor: pointer; text-decoration: none;
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12.5px; font-weight: 600; line-height: 1;
  padding: 8px 14px; border-radius: 999px;
  background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.24); color: #fff;
  transition: background 0.15s;
}
.pd-blogger-hero-btn:hover { background: rgba(255, 255, 255, 0.26); }
.pd-blogger-hero-btn.primary { background: #ffffff; color: #16453a; border-color: #ffffff; }
.pd-blogger-hero-btn.primary:hover { background: #eef5f2; }
.pd-blogger-hero-btn.danger:hover { background: rgba(168, 60, 49, 0.8); }
.pd-blogger-hero-stats {
  display: grid; grid-template-columns: repeat(2, minmax(132px, 1fr)); gap: 10px; flex: none;
}
.pd-blogger-stat {
  background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 12px; padding: 10px 14px;
  display: flex; align-items: center; gap: 10px; min-width: 0;
}
.pd-blogger-stat .ic { font-size: 17px; line-height: 1; }
.pd-blogger-stat b { display: block; font-size: 17px; font-weight: 800; color: #fff; line-height: 1.15; }
.pd-blogger-stat span { display: block; font-size: 11px; color: rgba(255, 255, 255, 0.72); margin-top: 1px; }
/* hero 下方作品网格留白 */
.pd-blogger-grid { padding: 16px 16px 6px; }

/* ---- ② 对标内容：横向宽卡两列网格（demo 图2） ---- */
.pd-wide-grid { grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); }
.pd-archive-item.pd-wide { flex-direction: row; align-items: stretch; }
.pd-archive-item.pd-wide .pd-archive-thumb {
  width: 148px; flex: none; aspect-ratio: auto; height: auto;
  align-self: stretch; min-height: 172px;
}
.pd-archive-item.pd-wide .pd-archive-info { flex: 1; min-width: 0; padding: 12px 14px; gap: 6px; }
.pd-wide-top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pd-wide-no { font-size: 12px; font-weight: 800; color: #1f5c4d; letter-spacing: 0.02em; }
.pd-wide-plat {
  font-size: 10.5px; font-weight: 600; color: #2f5d8a;
  background: #eef3f9; border: 1px solid #d7e2ee; border-radius: 999px; padding: 1px 8px;
}
.pd-wide-date { margin-left: auto; font-size: 11px; color: #6b6b6b; white-space: nowrap; }
.pd-archive-item.pd-wide .pd-archive-title {
  font-size: 14px; font-weight: 700; line-height: 1.4; min-height: 0; -webkit-line-clamp: 2;
}
.pd-wide-sub { font-size: 12px; color: #6b6b6b; }
.pd-wide-stats { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: #3d4a45; }
.pd-wide-stats span { display: inline-flex; align-items: center; gap: 4px; }
.pd-wide-detail {
  appearance: none; border: none; background: none; cursor: pointer; padding: 0;
  font-size: 12.5px; font-weight: 700; color: #1f5c4d;
}
.pd-wide-detail:hover { text-decoration: underline; }
.pd-archive-item.pd-wide .pd-archive-actions { margin-top: auto; padding-top: 4px; }

/* ---- ③ 详情抽屉：demo 图3 头图 + tab 导航 ---- */
.pd-detail-hero {
  display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap;
  background: #ffffff; border: 1px solid #d4d8dd; border-radius: 14px;
  padding: 20px 22px; margin: 0 0 14px;
  box-shadow: 0 4px 14px rgba(20, 20, 20, 0.055);
}
.pd-detail-hero-main { flex: 1; min-width: 260px; }
.pd-detail-hero-title { font-size: 21px; font-weight: 800; color: #141414; line-height: 1.35; }
.pd-detail-hero-pills { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
.pd-dh-pill { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 10px; }
.pd-dh-pill.ok { color: #16453a; background: #eef5f2; border: 1px solid #cfe2db; }
.pd-dh-pill.na { color: #b45309; background: #fdf6ea; border: 1px solid #eeddc0; }
.pd-detail-hero-meta {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px 18px; margin-top: 14px;
}
.pd-detail-hero-meta .pd-dh-meta { min-width: 0; }
.pd-detail-hero-meta span { display: block; font-size: 11px; color: #6b6b6b; }
.pd-detail-hero-meta b { display: block; font-size: 13px; font-weight: 600; color: #141414; margin-top: 1px; }
.pd-detail-hero-stats { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 14px; font-size: 12.5px; color: #3d4a45; }
.pd-detail-hero-stats b { color: #141414; }
.pd-detail-hero-side { flex: none; width: 300px; }
.pd-dh-player {
  width: 100%; border-radius: 10px; overflow: hidden;
  border: 1px solid #d4d8dd; background: #f4f6f9;
}
.pd-dh-player video { display: block; margin: 0 auto; }
.pd-detail-hero-main .pd-drawer-actions { margin-top: 14px; }
.pd-detail-hero-open {
  display: inline-block; margin-top: 8px; font-size: 12px; font-weight: 600;
  color: #1f5c4d; text-decoration: none; border: 1px solid #cfe2db;
  background: #eef5f2; border-radius: 999px; padding: 5px 12px;
}
.pd-detail-hero-open:hover { background: #1f5c4d; color: #fff; }
/* 博主信息块：2026-10-27 从「🧩分镜拆解」pane 之后移入详情头图左栏（meta 下方、按钮行上方），首屏可见 */
.pd-dh-blogger-info { background: #fafbfc; border: 1px solid #e3e8ed; border-radius: 10px; padding: 12px 14px; margin: 4px 0 14px; }
.pd-dh-blogger-info h4 { margin: 0 0 8px; font-size: 13px; color: #1f5c4d; font-weight: 700; }
.pd-dh-bi-link { margin-top: 10px; }
/* 抽屉 tab：2026-10-19 深夜改 demo 图2 胶囊式（激活 = 墨绿填充） */
.pd-drawer-tabs {
  display: flex; gap: 8px; flex-wrap: wrap;
  border-bottom: none; margin: 4px 0 14px;
}
.pd-drawer-tabs button {
  appearance: none; cursor: pointer;
  font-size: 13px; color: #5f6b66; padding: 8px 16px;
  border: 1px solid #d4d8dd; border-radius: 999px; background: #ffffff;
  display: inline-flex; align-items: center; gap: 6px; transition: color .12s, border-color .12s, background .12s;
}
.pd-drawer-tabs button:hover { color: #1f5c4d; border-color: #cfe2db; }
.pd-drawer-tabs button.active {
  background: #1f5c4d; color: #ffffff; border-color: #1f5c4d; font-weight: 700;
}
.pd-drawer-tabs .cnt {
  font-size: 11px; font-weight: 600; color: #1f5c4d;
  background: #eef5f2; border-radius: 999px; padding: 1px 8px;
}
.pd-drawer-tabs button.active .cnt { background: rgba(255, 255, 255, 0.22); color: #ffffff; }
.pd-drawer-tabpane { display: none; }
.pd-drawer-tabpane.active { display: block; }

.pd-kb-sub { font-size: 12.5px; color: #6b6b6b; margin: 0 0 12px; }
.pd-kb-tools { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.pd-kb-tools input[type="search"] {
  flex: 1; min-width: 220px; appearance: none;
  background: #ffffff; border: 1px solid #d4d8dd; border-radius: 10px;
  color: #141414; font-size: 13px; padding: 8px 12px;
}
.pd-kb-tools input[type="search"]:focus { outline: none; border-color: #1f5c4d; box-shadow: 0 0 0 3px rgba(31, 92, 77, .10); }
.pd-kb-tools select {
  appearance: none; background: #ffffff; border: 1px solid #d4d8dd; border-radius: 10px;
  color: #141414; font-size: 13px; padding: 8px 30px 8px 12px; cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b6b6b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
}
.pd-kb-tools select:focus { outline: none; border-color: #1f5c4d; }

.pd-kb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.pd-kb-card {
  background: #ffffff; border: 1px solid #d4d8dd; border-radius: 14px;
  padding: 14px 16px 12px; cursor: pointer; min-width: 0;
  display: flex; flex-direction: column; gap: 7px;
  box-shadow: 0 4px 14px rgba(20, 20, 20, .055);
  transition: border-color .12s, box-shadow .12s, transform .12s;
}
.pd-kb-card:hover { border-color: #1f5c4d; box-shadow: 0 6px 18px rgba(20, 20, 20, .09); transform: translateY(-1px); }
.pd-kb-card:focus-visible { outline: none; border-color: #1f5c4d; box-shadow: 0 0 0 3px rgba(31, 92, 77, .12); }
/* 「📎 打开文档」从档案跳过来时的定位高亮（_pdKbFocusNote 加，常驻到下次跳转/重渲染：
   立起来常驻，用户读完笔记关掉浮层后仍能看到是哪一条） */
.pd-kb-card.is-flash {
  border-color: #1f5c4d;
  background: #eef5f2;
  box-shadow: 0 0 0 3px rgba(31, 92, 77, .28), 0 6px 18px rgba(20, 20, 20, .09);
  animation: pd-kb-flash 1.1s ease-in-out 2;
}
@keyframes pd-kb-flash {
  0%, 100% { background: #eef5f2; }
  50% { background: #ffffff; }
}
.pd-kb-card-top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pd-kb-no { font-size: 12px; font-weight: 800; color: #1f5c4d; letter-spacing: .02em; }
.pd-kb-pill { font-size: 10.5px; font-weight: 600; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.pd-kb-pill--note { color: #16453a; background: #eef5f2; border: 1px solid #cfe2db; }
.pd-kb-pill--tech { color: #2f5d8a; background: #eef3f9; border: 1px solid #d7e2ee; }
.pd-kb-pill--llm { color: #ffffff; background: #1f5c4d; border: 1px solid #1f5c4d; }
.pd-kb-pill--pending { color: #b45309; background: #fdf3e7; border: 1px solid #f0c98a; }
.pd-kb-pill--lib { color: #6b6b6b; background: #f4f6f9; border: 1px solid #e0e0e0; }
/* 含大模型分析的笔记：左侧墨绿强调条 + 轻微底色，整组在「含分析优先」里一眼可辨 */
.pd-kb-card--llm { border-left: 3px solid #1f5c4d; background: #fbfdfc; }
.pd-kb-card--llm:hover { border-color: #1f5c4d; }
.pd-kb-card-title { font-size: 14px; font-weight: 700; color: #141414; line-height: 1.45; }
.pd-kb-card-sum {
  font-size: 12px; color: #5f6b66; line-height: 1.6;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.pd-kb-card-meta { font-size: 11.5px; color: #6b6b6b; display: flex; gap: 6px; flex-wrap: wrap; }
.pd-kb-card-meta i { font-style: normal; color: #c3cad3; }
.pd-kb-card-foot {
  margin-top: auto; padding-top: 8px; border-top: 1px solid #ebebeb;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11.5px; color: #6b6b6b;
}
.pd-kb-card-more { font-weight: 700; color: #1f5c4d; }
.pd-kb-card:hover .pd-kb-card-more { text-decoration: underline; }
/* 卡片「📋 复制」按钮（2026-10-21 用户要：看板里能直接复制信息） */
.pd-kb-card-foot-r { display: inline-flex; align-items: center; gap: 8px; }
.pd-kb-card-copy{
  font-family: inherit; font-size: 11px; color: #1f5c4d; background: #eef5f2;
  border: 1px solid #cfe2db; border-radius: 999px; padding: 2px 9px; cursor: pointer;
}
.pd-kb-card-copy:hover { background: #e2efe9; }
.pd-kb-card-copy:disabled { opacity: .6; cursor: default; }

.pd-kb-empty { text-align: center; padding: 44px 0; color: #6b6b6b; font-size: 13px; }
.pd-kb-empty .icon { font-size: 30px; margin-bottom: 8px; }

/* 全文阅读浮层 */
.pd-kb-reader {
  position: fixed; inset: 0; z-index: 80;
  background: rgba(20, 20, 20, .38);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.pd-kb-reader-box {
  background: #ffffff; border: 1px solid #d4d8dd; border-radius: 14px;
  width: min(860px, 100%); max-height: calc(100vh - 48px);
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 18px 50px rgba(20, 20, 20, .18);
}
.pd-kb-reader-head {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 16px 20px 12px; border-bottom: 1px solid #ebebeb;
}
.pd-kb-reader-title { font-size: 17px; font-weight: 800; color: #141414; line-height: 1.35; flex: 1; min-width: 0; }
.pd-kb-reader-close {
  appearance: none; cursor: pointer; flex: none;
  width: 30px; height: 30px; border-radius: 8px;
  border: 1px solid #d4d8dd; background: #ffffff; color: #6b6b6b; font-size: 13px;
  transition: border-color .12s, color .12s;
}
.pd-kb-reader-close:hover { border-color: #a83c31; color: #a83c31; }
.pd-kb-reader-meta {
  font-size: 11px; color: #5f6b66; background: #f4f6f9;
  border-bottom: 1px solid #e0e0e0; padding: 6px 20px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pd-kb-reader-body { padding: 16px 22px 22px; overflow-y: auto; }
.pd-kb-loading { text-align: center; color: #6b6b6b; font-size: 13px; padding: 40px 0; }
.pd-kb-empty.hidden, .pd-kb-reader.hidden { display: none !important; }

/* ---- 全文浮层：分段卡片式呈现（2026-10-19，做法一） ---- */
.pd-kb-toc {
  display: flex; flex-wrap: wrap; gap: 6px;
  padding: 10px 22px 12px; background: #fafbfc;
  border-bottom: 1px solid #ebebeb;
}
.pd-kb-toc.hidden { display: none !important; }
.pd-kb-toc-chip {
  appearance: none; cursor: pointer; font-size: 11px; line-height: 1.5;
  background: #ffffff; border: 0.5px solid #d4d8dd; border-radius: 999px;
  color: #3d4a45; padding: 2px 10px;
  display: inline-flex; align-items: center; gap: 5px;
  transition: border-color .12s ease, color .12s ease;
}
.pd-kb-toc-chip:hover { border-color: #1f5c4d; color: #1f5c4d; }
.pd-kb-toc-chip i { font-style: normal; font-size: 10px; color: #1f5c4d; font-weight: 600; }
.pd-kb-sec {
  background: #ffffff; border: 0.5px solid #d4d8dd; border-radius: 10px;
  overflow: hidden; margin: 0 0 10px;
}
.pd-kb-sec:last-child { margin-bottom: 0; }
.pd-kb-sec-h {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 500; color: #1f5c4d;
  padding: 7px 12px; background: #f4f6f9; border-bottom: 1px solid #ebebeb;
}
.pd-kb-sec-h i {
  font-style: normal; flex: none;
  min-width: 16px; height: 16px; border-radius: 999px;
  background: #eef5f2; border: 0.5px solid #cfe2db;
  color: #1f5c4d; font-size: 10px; font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center;
}
.pd-kb-sec-b { padding: 9px 12px; }
.pd-kb-sec-b > :first-child { margin-top: 0; }
.pd-kb-sec-b > :last-child { margin-bottom: 0; }
.pd-kb-sec-b h3 { color: #1f5c4d; font-size: 13.5px; margin: 14px 0 6px; }
.pd-kb-sec-b h3:first-child { margin-top: 0; }
.pd-kb-sec-b h4 { color: #141414; font-size: 13px; margin: 12px 0 5px; }
.pd-kb-kv { display: flex; gap: 8px; margin: 4px 0; }
.pd-kb-kv .k { flex: none; max-width: 60%; color: #1f5c4d; font-weight: 500; }
.pd-kb-kv .v { flex: 1; min-width: 0; }
.pd-kb-kv-li .k { color: #1f5c4d; font-weight: 500; }
.pd-kb-kv-li .k::after { content: "："; color: #5f6b66; font-weight: 400; }

/* ---- 全文浮层：双 tab（📄 笔记原文 / 🤖 大模型分析，2026-10-19） ---- */
.pd-kb-rtabs {
  display: flex; padding: 0 22px; background: #fafbfc;
  border-bottom: 1px solid #ebebeb;
}
.pd-kb-rtabs.hidden { display: none !important; }
.pd-kb-rtab {
  appearance: none; cursor: pointer; background: none; border: none;
  font-size: 13px; color: #5f6b66; padding: 9px 16px; margin-bottom: -1px;
  border-bottom: 2px solid transparent;
  transition: color .12s ease, border-color .12s ease;
}
.pd-kb-rtab:hover { color: #1f5c4d; }
.pd-kb-rtab.active { color: #1f5c4d; font-weight: 500; border-bottom-color: #1f5c4d; }
.pd-kb-rpane { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.pd-kb-rpane.hidden { display: none !important; }
.pd-kb-rpane > .pd-kb-toc { flex: none; }
.pd-kb-rpane > .pd-kb-reader-body { flex: 1; min-height: 0; }
.pd-kb-llm-body .pd-llm-group:last-child { margin-bottom: 0; }

/* 深链定位脉冲（2026-10-27）：首页「待抓评论」跳进来后，把「批量抓评论」按钮亮出来。
   放在样式表最末尾，确保压得过前面各层对 .pd-btn-tiny 的设定。 */
@keyframes pd-deeplink-pulse-k {
  0%, 100% { box-shadow: 0 0 0 0 rgba(31, 92, 77, 0.42); }
  50%      { box-shadow: 0 0 0 7px rgba(31, 92, 77, 0); }
}
.pd-deeplink-pulse {
  animation: pd-deeplink-pulse-k 1.5s ease-in-out 4;
  border-color: #1f5c4d !important;
  color: #16453a !important;
  background: #eef5f2 !important;
}

/* ============================================================================
   8. 后台任务浮动气泡（拆片 / 转写 / 大模型 / 下载）统一媒灵化 · 2026-10-27
   四个气泡共用一个 `.pd-floating-analyzes` 外壳（fixed 右下角、可堆叠）。
   原来它们是深色主题遗留：蓝色标题、虚线分隔、灰紫进度条；下载那个更连 CSS
   都没有，直接掉进文档流跑到页脚变成裸文本。这里一次性统一。
   ============================================================================ */
.pd-floating-analyzes {
  width: 296px;
  background: #ffffff !important;
  border: 1px solid #d4d8dd !important;
  border-radius: 14px !important;
  padding: 12px 14px !important;
  color: #141414 !important;
  box-shadow: 0 12px 32px rgba(20, 32, 28, .13), 0 1px 2px rgba(20, 32, 28, .05) !important;
  backdrop-filter: none !important;
  font-size: 12px;
  scrollbar-width: thin;
}
.pd-floating-analyzes-head {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; letter-spacing: .01em;
  color: #141414 !important;
  margin: 0 0 2px 0 !important;
  padding-bottom: 8px;
  border-bottom: 1px solid #ebebeb;
}
.pd-floating-analyzes-head span { color: #8a918d !important; font-weight: 400 !important; }
.pd-floating-analyzes-item {
  padding: 9px 0 !important;
  border-bottom: 1px solid #f2f4f3 !important;
  border-radius: 0 !important;
  background: none;
}
.pd-floating-analyzes-item:hover { background: #f7f9f8 !important; }
.pd-floating-analyzes-item:last-of-type { border-bottom: none !important; }
.pd-floating-analyzes-item .title {
  display: block; margin-bottom: 6px !important;
  font-weight: 500 !important; font-size: 12px; line-height: 1.4;
  color: #141414;
}
.pd-floating-analyzes-item .bar {
  height: 3px !important; border-radius: 999px !important;
  background: #edf0ee !important; margin-bottom: 5px !important;
}
.pd-floating-analyzes-item .bar > div {
  background: #1f5c4d !important; border-radius: 999px !important;
  transition: width .4s ease;
}
.pd-floating-analyzes-item .msg { color: #7b837f !important; font-size: 11px !important; }
/* 下载气泡底部汇总行（本轮新增）：跑完的条目不再逐条占位，折成一行 */
.pd-floating-analyzes-foot {
  margin-top: 8px; padding-top: 8px;
  border-top: 1px solid #ebebeb;
  font-size: 11px; color: #1f5c4d;
}
/* 下载气泡：标题走强调色，与三个分析类气泡区分开 */
#pd-floating-downloads .pd-floating-analyzes-head { color: #1f5c4d !important; }
@media (max-width: 768px) {
  .pd-floating-analyzes {
    width: auto !important; left: 12px !important; right: 12px !important;
  }
}

/* ============================================================================
   Design layer v3 · Quantum Studio（2026-10-27）
   ----------------------------------------------------------------------------
   统一工作台的视觉语言：深空画布 + 玻璃面板 + 青绿极光强调色。
   本层位于 body 末尾，最后加载，覆盖历史遗留的白底/墨绿层与半成品深色层。
   只改视觉，不动任何 class 钩子与 JS 行为。
   ============================================================================ */

:root {
  color-scheme: dark;

  /* ---- 画布与面板 ---- */
  --pd-bg-deep:   var(--c-bg);
  --pd-bg-mid:    var(--c-bg-2);
  --pd-bg-soft:   #0e1826;
  --pd-sidebar:   #0a121d;
  --pd-card:      var(--c-surface);
  --pd-card-hover:#111c2b;

  /* ---- 文字 ---- */
  --pd-text:      var(--c-ink);
  --pd-text-2:    var(--c-ink-2);
  --pd-text-3:    #6d8197;

  /* ---- 线条 ---- */
  --pd-border:        rgba(var(--line-rgb), 0.12);
  --pd-border-strong: rgba(var(--line-rgb), 0.24);

  /* ---- 强调色：极光青 / 薄荷 ---- */
  --pd-pink:      var(--c-accent);   /* 历史变量名，值改为极光青 */
  --pd-pink-2:    var(--c-accent2);
  --pd-pink-dim:  rgba(var(--acc-rgb), 0.12);
  --pd-accent:      var(--c-accent);
  --pd-accent-2:    var(--c-accent2);
  --pd-accent-soft: rgba(var(--acc-rgb), 0.12);
  --pd-accent-line: rgba(var(--acc-rgb), 0.34);

  /* ---- 语义色 ---- */
  --pd-success:  var(--c-accent2);
  --pd-failed:   #f87171;
  --pd-pending:  #fbbf24;
  --pd-running:  var(--c-accent-ink);

  /* ---- 阴影 ---- */
  --pd-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35);
  --pd-shadow-md: 0 14px 34px -22px rgba(0, 0, 0, 0.95);
  --pd-shadow-lg: 0 28px 70px -30px rgba(0, 0, 0, 0.95);

  /* ---- 兼容旧层变量 ---- */
  --db-bg:            var(--c-bg);
  --db-surface:       var(--c-surface);
  --db-surface-2:     var(--c-surface-3);
  --db-border:        rgba(var(--line-rgb), 0.12);
  --db-border-strong: rgba(var(--line-rgb), 0.24);
  --db-ink:           var(--c-ink);
  --db-ink-soft:      var(--c-ink-2);
  --db-accent:        var(--c-accent);
  --db-accent-strong: var(--c-accent-tint);
  --db-accent-soft:   rgba(var(--acc-rgb), 0.12);
  --db-accent-border: rgba(var(--acc-rgb), 0.34);
  --db-warning:       #fbbf24;
  --db-danger:        #f87171;
  --db-info:          var(--c-accent-ink);

  --t-green-s: var(--c-surface); --t-green-b: var(--c-surface);
  --t-blue-s:  var(--c-surface); --t-blue-b:  var(--c-surface);
  --t-teal-s:  var(--c-surface); --t-teal-b:  var(--c-surface);
  --t-amber-s: var(--c-surface); --t-amber-b: var(--c-surface);
  --t-violet-s:var(--c-surface); --t-violet-b:var(--c-surface);
  --t-rose-s:  var(--c-surface); --t-rose-b:  var(--c-surface);
  --t-green-ink: var(--c-accent2);
  --t-blue-ink:  var(--c-accent-ink);
  --t-teal-ink:  var(--c-accent2);
  --t-violet-ink:#c4b5fd;
  --t-rose-ink:  #fda4af;
  --pd-line: rgba(var(--line-rgb), 0.14);
  --pd-input-bg: rgba(var(--wash-rgb), 0.04);
  --pd-text-1: var(--c-ink);
}

/* ============================ 画布 ============================ */
html, body, .pd-root {
  background-color: var(--c-bg) !important;
  color: var(--pd-text) !important;
}
body {
  background-image:
    radial-gradient(1100px 620px at 8% -10%, rgba(var(--acc-rgb), 0.10), transparent 62%),
    radial-gradient(900px 560px at 102% 4%, rgba(var(--acc2-rgb), 0.07), transparent 58%),
    radial-gradient(760px 520px at 55% 118%, rgba(99, 102, 241, 0.07), transparent 62%),
    linear-gradient(180deg, var(--c-bg) 0%, var(--c-bg) 100%) !important;
  background-attachment: fixed !important;
}
.pd-root { background: transparent !important; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb {
  background: rgba(148, 183, 214, 0.22);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover { background: rgba(148, 183, 214, 0.36); background-clip: padding-box; }
::-webkit-scrollbar-track { background: transparent; }
::selection { background: rgba(var(--acc-rgb), 0.28); color: var(--c-ink); }

/* ============================ 侧栏 ============================ */
.pd-sidebar {
  background: linear-gradient(180deg, var(--c-side-a) 0%, var(--c-side-b) 100%) !important;
  border-right: 1px solid var(--pd-border) !important;
  padding: 18px 14px 16px !important;
  gap: 4px !important;
  width: var(--pd-w);
}
.pd-brand {
  gap: 12px !important;
  padding: 4px 8px 18px !important;
  margin-bottom: 6px !important;
  min-height: 0 !important;
  border-bottom: 1px solid var(--pd-border) !important;
}
.pd-brand-mark {
  width: 38px !important; height: 38px !important;
  border-radius: 12px !important;
  background: linear-gradient(140deg, var(--c-accent-hi) 0%, var(--c-accent2) 100%) !important;
  border: none !important;
  color: var(--c-on-accent) !important;
  font-size: 17px !important; font-weight: 800 !important;
  box-shadow: 0 8px 22px -8px rgba(var(--acc-rgb), 0.65), inset 0 1px 0 rgba(var(--wash-rgb), 0.45) !important;
}
.pd-brand-name { color: var(--c-ink) !important; font-size: 15px !important; font-weight: 750 !important; letter-spacing: 0.01em !important; }
.pd-brand-sub  { color: var(--c-ink-3) !important; font-size: 9.5px !important; letter-spacing: 0.18em !important; margin-top: 3px !important; }

.pd-section-title {
  color: var(--c-ink-3) !important;
  font-size: 10px !important;
  font-weight: 650 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  margin: 18px 8px 8px !important;
  padding: 0 !important;
}
.pd-platform, .pd-account { padding: 0 4px !important; }
.pd-platform select {
  background-color: rgba(var(--wash-rgb), 0.035) !important;
  border: 1px solid var(--pd-border) !important;
  color: var(--c-ink) !important;
  border-radius: 10px !important;
  height: 38px !important;
  font-size: 12.5px !important;
  padding: 0 30px 0 12px !important;
}
.pd-account-row {
  background: rgba(var(--wash-rgb), 0.035) !important;
  border: 1px solid var(--pd-border) !important;
  color: var(--pd-text-2) !important;
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-size: 12.5px !important;
}
.pd-account-row:hover { background: rgba(var(--acc-rgb), 0.07) !important; border-color: rgba(var(--acc-rgb), 0.3) !important; }
.pd-account-dot { background: #55687c !important; box-shadow: none !important; }
.pd-account-dot.pd-account-dot-ok   { background: var(--c-accent2) !important; box-shadow: 0 0 10px rgba(var(--acc2-rgb), 0.6) !important; }
.pd-account-dot.pd-account-dot-bad  { background: #f87171 !important; box-shadow: 0 0 10px rgba(248, 113, 113, 0.5) !important; }

.pd-nav { display: flex; flex-direction: column; gap: 2px !important; padding: 0 !important; margin-top: 2px; }
.pd-nav a {
  position: relative;
  display: flex !important; align-items: center; gap: 8px;
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--c-ink-2) !important;
  border-radius: 9px !important;
  padding: 9px 11px !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.pd-nav a:hover { background: rgba(var(--wash-rgb), 0.045) !important; color: #e9f6ff !important; }
.pd-nav a.active, .pd-nav a.is-on {
  background: linear-gradient(90deg, rgba(var(--acc-rgb), 0.16), rgba(var(--acc-rgb), 0.03)) !important;
  border-color: rgba(var(--acc-rgb), 0.22) !important;
  color: var(--c-ink) !important;
  font-weight: 650 !important;
  box-shadow: inset 3px 0 0 var(--c-accent) !important;
}
.pd-nav a.active::before, .pd-nav a.is-on::before { display: none !important; }
.pd-nav-badge {
  background: rgba(var(--wash-rgb), 0.07) !important;
  color: var(--c-ink-2) !important;
  border: none !important;
  border-radius: 999px !important;
  font-size: 10.5px !important;
  padding: 1px 7px !important;
}
.pd-nav a.active .pd-nav-badge { background: var(--c-accent) !important; color: var(--c-on-accent) !important; font-weight: 700 !important; }

.pd-sidebar-foot {
  margin: auto 0 0 0 !important;
  padding: 14px 4px 0 !important;
  border-top: 1px solid var(--pd-border) !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px;
}
.pd-sidebar-foot button {
  background: rgba(var(--wash-rgb), 0.03) !important;
  border: 1px solid var(--pd-border) !important;
  color: var(--c-ink-2) !important;
  border-radius: 9px !important;
  padding: 8px 6px !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  display: inline-flex !important; align-items: center; justify-content: center; gap: 5px;
  transition: all 0.15s ease;
}
.pd-sidebar-foot button:hover { background: rgba(var(--acc-rgb), 0.08) !important; border-color: rgba(var(--acc-rgb), 0.3) !important; color: var(--c-ink) !important; }
.pd-sidebar-foot button.proxy-on { background: rgba(var(--acc2-rgb), 0.12) !important; border-color: rgba(var(--acc2-rgb), 0.34) !important; color: var(--c-success) !important; }
.pd-foot-icon { font-size: 12px; }
.pd-sidebar-foot button { font-size: 11px !important; padding: 8px 4px !important; }
#pd-deps span, .pd-deps span {
  background: rgba(var(--acc2-rgb), 0.08) !important;
  border: 1px solid rgba(var(--acc2-rgb), 0.22) !important;
  color: var(--c-success) !important;
  border-radius: 999px !important;
  padding: 4px 10px !important;
  font-size: 11.5px !important;
  line-height: 1.4;
}

/* ============================ 主区 / 页头 ============================ */
.pd-main { background: transparent !important; }
.pd-hero {
  position: relative;
  overflow: hidden !important;
  margin-bottom: 22px !important;
  padding: clamp(22px, 2.2vw, 34px) clamp(22px, 2.6vw, 40px) !important;
  border-radius: 20px !important;
  border: 1px solid rgba(var(--acc-rgb), 0.18) !important;
  background:
    radial-gradient(680px 260px at 88% -30%, rgba(var(--acc2-rgb), 0.20), transparent 62%),
    radial-gradient(520px 240px at 4% 120%, rgba(var(--acc-rgb), 0.12), transparent 60%),
    linear-gradient(135deg, var(--c-hero-a) 0%, var(--c-hero-b) 54%, var(--c-hero-c) 100%) !important;
  box-shadow: 0 26px 60px -34px rgba(0, 0, 0, 0.95), inset 0 1px 0 rgba(var(--wash-rgb), 0.05) !important;
}
.pd-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(var(--line-rgb), 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--line-rgb), 0.055) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(700px 240px at 82% -10%, #000 10%, transparent 78%);
  mask-image: radial-gradient(700px 240px at 82% -10%, #000 10%, transparent 78%);
  pointer-events: none;
}
.pd-hero::after {
  content: "";
  position: absolute; left: 0; top: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--c-accent) 38%, var(--c-accent2) 66%, transparent);
  opacity: 0.9;
}
.pd-hero h1 {
  position: relative; z-index: 1;
  margin: 0 !important;
  font-size: clamp(26px, 2.4vw, 36px) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  color: var(--c-ink) !important;
}
.pd-hero h1 em {
  font-style: normal !important;
  background: linear-gradient(100deg, var(--c-accent-tint) 0%, var(--c-accent2) 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent !important;
}
.pd-hero-meta {
  position: relative; z-index: 1;
  margin-top: 10px !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase;
  color: var(--c-ink-3) !important;
}
.pd-hero-meta::before { content: "◇"; margin-right: 8px; color: var(--c-accent) !important; }
.pd-hero-deco { display: none !important; }

/* ============================ 卡片 ============================ */
.pd-card, .pd-col, .pd-settings-block, .pd-login-page-status, .pd-login-page-url-box {
  background: linear-gradient(180deg, var(--c-card-a) 0%, var(--c-card-b) 100%) !important;
  border: 1px solid var(--pd-border) !important;
  border-radius: 18px !important;
  box-shadow: 0 20px 44px -32px rgba(0, 0, 0, 0.95), inset 0 1px 0 rgba(var(--wash-rgb), 0.035) !important;
  color: var(--pd-text) !important;
  padding: 22px 24px !important;
}
.pd-card:hover, .pd-col:hover { border-color: rgba(var(--acc-rgb), 0.22) !important; }
.pd-card > h2 {
  margin: 0 0 14px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  color: var(--c-ink) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
.pd-card h2, .pd-card h3, .pd-col h2, .pd-col h3,
.pd-settings-block h2, .pd-studio-head h2 {
  color: var(--c-ink) !important;
}
.pd-card p, .pd-col p, .pd-settings-block p,
.pd-card p.pd-card-desc, .pd-studio-sub, .pd-hero-sub {
  color: var(--pd-text-2) !important;
}
.pd-card-tag {
  color: var(--c-accent-ink) !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  margin-bottom: 10px !important;
}
.pd-card-tag::before { content: none !important; }
.pd-card-desc { line-height: 1.7 !important; font-size: 13px !important; }
.pd-mono { font-family: var(--pd-mono) !important; }

/* ============================ 表单控件 ============================ */
.pd-input-row input,
.pd-input-row select,
.pd-input-row textarea,
input[type="text"]:not(.pd-search-input),
input[type="number"],
input[type="url"],
input[type="search"],
input[type="password"],
select,
textarea {
  background-color: rgba(var(--wash-rgb), 0.04) !important;
  border: 1px solid var(--pd-border) !important;
  color: var(--c-ink) !important;
  border-radius: 11px !important;
  font-size: 13.5px !important;
  box-shadow: none !important;
}
.pd-input-row input,
.pd-input-row select,
input[type="text"]:not(.pd-search-input),
input[type="number"],
input[type="url"],
input[type="search"],
input[type="password"],
select { height: 42px !important; padding: 0 14px !important; }
textarea { padding: 12px 14px !important; }
.pd-input-row input:focus,
.pd-input-row select:focus,
.pd-input-row textarea:focus,
input:focus, select:focus, textarea:focus {
  border-color: rgba(var(--acc-rgb), 0.55) !important;
  box-shadow: 0 0 0 3px rgba(var(--acc-rgb), 0.14) !important;
  background-color: rgba(var(--wash-rgb), 0.055) !important;
  outline: none !important;
}
input::placeholder, textarea::placeholder { color: var(--c-ink-3) !important; opacity: 1; }
select option { background: var(--c-surface) !important; color: var(--c-ink) !important; }
#pd-max-videos {
  background: rgba(var(--wash-rgb), 0.04) !important;
  border-color: var(--pd-border) !important;
  color: var(--c-ink) !important;
}

/* ============================ 按钮 ============================ */
.pd-btn, button.pd-btn, .pd-btn-primary, button.pd-btn-primary, .pdvw-btn-primary, button.pdvw-btn-primary {
  background: linear-gradient(135deg, var(--c-accent-hi) 0%, var(--c-accent2) 100%) !important;
  border: 1px solid rgba(var(--acc2-rgb), 0.4) !important;
  color: var(--c-on-accent) !important;
  border-radius: 10px !important;
  min-height: 38px !important;
  padding: 0 18px !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  letter-spacing: 0.01em;
  box-shadow: 0 10px 24px -12px rgba(var(--acc-rgb), 0.6), inset 0 1px 0 rgba(var(--wash-rgb), 0.4) !important;
  transition: filter 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.pd-btn:hover, button.pd-btn:hover, .pd-btn-primary:hover, button.pd-btn-primary:hover, .pdvw-btn-primary:hover {
  filter: brightness(1.06) !important;
  background: linear-gradient(135deg, var(--c-accent-hi) 0%, var(--c-accent2) 100%) !important;
  color: var(--c-on-accent) !important;
  box-shadow: 0 14px 30px -12px rgba(var(--acc-rgb), 0.7), inset 0 1px 0 rgba(var(--wash-rgb), 0.45) !important;
}
.pd-btn:active { transform: translateY(1px) !important; }
.pd-btn:disabled, .pd-btn[disabled], button.pd-btn:disabled, button.pd-btn[disabled] {
  opacity: 1 !important;
  cursor: not-allowed !important;
  background: rgba(var(--wash-rgb), 0.05) !important;
  border-color: rgba(var(--line-rgb), 0.12) !important;
  color: var(--c-ink-3) !important;
  box-shadow: none !important;
  filter: none !important;
}

.pd-btn-ghost, button.pd-btn-ghost, .pd-btn-tiny, button.pd-btn-tiny {
  background: rgba(var(--wash-rgb), 0.03) !important;
  border: 1px solid var(--pd-border) !important;
  color: var(--c-ink-2) !important;
  border-radius: 10px !important;
  min-height: 34px !important;
  padding: 0 14px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}
.pd-btn-ghost:hover, button.pd-btn-ghost:hover, .pd-btn-tiny:hover, button.pd-btn-tiny:hover, .pd-btn-ghost.is-active {
  background: rgba(var(--acc-rgb), 0.09) !important;
  border-color: rgba(var(--acc-rgb), 0.34) !important;
  color: var(--c-ink) !important;
}
.pd-btn-tiny { min-height: 30px !important; padding: 0 12px !important; }
.pd-try-tags { color: var(--pd-text-3) !important; }
.pd-try-tags > span { font-size: 12px !important; color: var(--pd-text-3) !important; }

/* ============================ 徽标 ============================ */
.pd-badge, .pd-badge-muted {
  background: rgba(148, 183, 214, 0.10) !important;
  border: 1px solid rgba(148, 183, 214, 0.18) !important;
  color: var(--c-ink-2) !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  padding: 3px 10px !important;
}
.pd-badge-success, .pd-badge-ok {
  background: rgba(var(--acc2-rgb), 0.10) !important;
  border-color: rgba(var(--acc2-rgb), 0.30) !important;
  color: var(--c-success) !important;
}
.pd-badge-failed, .pd-badge-err {
  background: rgba(248, 113, 113, 0.10) !important;
  border-color: rgba(248, 113, 113, 0.30) !important;
  color: var(--c-danger) !important;
}
.pd-badge-pending, .pd-badge-partial, .pd-badge-warn {
  background: rgba(251, 191, 36, 0.10) !important;
  border-color: rgba(251, 191, 36, 0.28) !important;
  color: var(--c-warn) !important;
}
.pd-badge-running {
  background: rgba(56, 189, 248, 0.12) !important;
  border-color: rgba(56, 189, 248, 0.30) !important;
  color: var(--c-accent-ink) !important;
}
.pd-badge-mtype {
  background: rgba(var(--acc-rgb), 0.10) !important;
  border-color: rgba(var(--acc-rgb), 0.28) !important;
  color: var(--c-accent-tint) !important;
}

/* ============================ 任务 / 进度 ============================ */
.pd-job-card .pd-job-count {
  font-family: var(--pd-mono) !important;
  font-size: 40px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.03em !important;
  color: var(--c-accent-tint) !important;
  text-shadow: 0 0 24px rgba(var(--acc-rgb), 0.28);
}
.pd-job-card .pd-job-count.is-zero { color: var(--c-ink-3) !important; text-shadow: none; }
.pd-job-foot { color: var(--pd-text-2) !important; font-size: 12px !important; }
.pd-job-dots { color: var(--pd-text-2) !important; }
.pd-job-dots i { width: 8px; height: 8px; border-radius: 999px; display: inline-block; margin-right: 4px; }
.pd-job-dots .dot-success { background: var(--c-accent2) !important; }
.pd-job-dots .dot-failed  { background: #f87171 !important; }
.pd-job-dots .dot-pending { background: #fbbf24 !important; }
.pd-progress {
  background: rgba(148, 183, 214, 0.10) !important;
  border-radius: 999px !important;
  height: 6px !important;
  overflow: hidden;
}
.pd-progress > .bar {
  background: linear-gradient(90deg, var(--c-accent), var(--c-accent2)) !important;
  border-radius: 999px !important;
  box-shadow: 0 0 14px rgba(var(--acc-rgb), 0.5);
}

/* ============================ 列表 / 行 ============================ */
.pd-task-row, .pd-queue-item, .pd-archive-item, .pd-blogger, .pd-sc-item,
.pd-src-item, .pd-kb-opt, .pd-batch-bar, .pd-plan, .pd-fold, .pd-dig,
.pd-prompt-mod, .pd-drawer-section, .pd-drawer-scene,
.pd-task-items, .pd-queue-list {
  background: rgba(var(--wash-rgb), 0.025) !important;
  border: 1px solid rgba(var(--line-rgb), 0.09) !important;
  border-radius: 12px !important;
  color: var(--c-ink) !important;
}
.pd-task-row:hover, .pd-queue-item:hover, .pd-archive-item:hover, .pd-blogger:hover,
.pd-sc-item:hover, .pd-src-item:hover, .pd-kb-opt:hover {
  background: rgba(var(--wash-rgb), 0.04) !important;
  border-color: rgba(var(--acc-rgb), 0.22) !important;
}
.pd-sc-item.is-on { background: rgba(var(--acc-rgb), 0.09) !important; border-color: rgba(var(--acc-rgb), 0.32) !important; }
.pd-queue-empty, .pd-archive-empty, .pd-sc-list-empty, .pd-out-empty, .pd-kb-empty, .pdag-empty {
  color: var(--pd-text-3) !important;
  font-size: 12.5px !important;
}

/* ============================ 表格 ============================ */
.pd-card table, .pd-col table, .pd-drawer table, .pd-page table {
  background: transparent !important;
  color: var(--c-ink) !important;
}
.pd-card table th, .pd-card table td, .pd-col table th, .pd-col table td,
.pd-drawer table th, .pd-drawer table td, .pd-page table th, .pd-page table td {
  color: var(--c-ink) !important;
  border-color: rgba(var(--line-rgb), 0.10) !important;
}
.pd-card table thead th, .pd-col table thead th, .pd-page table thead th {
  background: rgba(var(--acc-rgb), 0.06) !important;
  color: var(--c-accent-ink) !important;
}

/* ============================ 弹层 / 抽屉 / 搜索 ============================ */
.pd-modal, .pd-drawer, .pd-slide, .pd-search-box, .pd-ip, .pd-ip-lib-panel {
  background: linear-gradient(180deg, var(--c-surface-2) 0%, var(--c-bg-2) 100%) !important;
  border: 1px solid rgba(var(--line-rgb), 0.14) !important;
  color: var(--pd-text) !important;
  box-shadow: var(--pd-shadow-lg) !important;
}
.pd-modal-mask, .pd-drawer-mask, .pd-slide-mask, .pd-ip-lib-mask, .pd-search {
  background: rgba(3, 8, 14, 0.68) !important;
  backdrop-filter: blur(5px);
}
.pd-modal-head, .pd-modal-foot, .pd-drawer-head, .pd-slide-head, .pd-search-head, .pd-search-foot {
  border-color: rgba(var(--line-rgb), 0.12) !important;
  color: var(--pd-text) !important;
}
.pd-search-box { border-radius: 16px !important; overflow: hidden; }
.pd-search-input {
  background: transparent !important;
  border: none !important;
  color: var(--c-ink) !important;
  font-size: 15px !important;
  height: auto !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.pd-search-input:focus { box-shadow: none !important; background: transparent !important; }
.pd-search-item { border-radius: 8px !important; margin: 2px 8px; padding: 10px 12px !important; }
.pd-search-item.active, .pd-search-item:hover { background: rgba(var(--wash-rgb), 0.05) !important; border-left-color: var(--c-accent) !important; }
.pd-search-item-title { color: var(--c-ink) !important; }
.pd-search-item-snippet, .pd-search-group-title, .pd-search-foot, .pd-search-empty { color: var(--pd-text-3) !important; }
.pd-search-item-lib { background: rgba(var(--acc-rgb), 0.12) !important; color: var(--c-accent-tint) !important; }
.pd-search-close { color: #8fa5ba !important; }
.pd-search-fab {
  background: linear-gradient(140deg, var(--c-accent), var(--c-accent2)) !important;
  color: var(--c-on-accent) !important;
  box-shadow: 0 10px 26px -10px rgba(var(--acc-rgb), 0.7) !important;
}

/* ============================ 底部状态条 ============================ */
.pd-footbar {
  background: rgba(8, 14, 23, 0.92) !important;
  border-top: 1px solid rgba(var(--line-rgb), 0.10) !important;
  color: var(--pd-text-3) !important;
  backdrop-filter: blur(8px);
}
.pd-footbar::after { color: var(--c-accent) !important; }

/* ============================ 智能体 / 知识库 / 视频台 ============================ */
.pdag-root, .pd-kb-layout, .pdvw-root, .pd-studio { color: var(--pd-text) !important; }
.pdag-card, .pdvw-panel, .pdvw-start-item, .pd-kb-side, .pd-kb-card,
.pd-kb-reader-box, .pd-kb-chat {
  background: linear-gradient(180deg, var(--c-card-a), var(--c-card-b)) !important;
  border: 1px solid var(--pd-border) !important;
  color: var(--pd-text) !important;
  border-radius: 14px !important;
}
.pdag-card h3, .pdag-desc, .pdag-meta, .pdag-col-name, .pd-kb-card-title, .pd-kb-sec-h,
.pdvw-panel-head, .pdvw-panel-desc, .pdvw-field label {
  color: var(--c-ink) !important;
}
.pd-kb-side { border-radius: 14px !important; }
.pd-kb-side-nav, .pd-kb-side-title, .pd-kb-sub, .pdag-rail-label, .pdvw-crumb { color: var(--pd-text-2) !important; }
.pd-kb-mode-btn, .pd-kb-rtab, .pdag-modelpick, .pdag-select, .pdvw-seg-btn {
  background: rgba(var(--wash-rgb), 0.03) !important;
  border: 1px solid var(--pd-border) !important;
  color: var(--c-ink-2) !important;
  border-radius: 9px !important;
}
.pd-kb-mode-btn.active, .pd-kb-rtab.active, .pdvw-seg-btn.active {
  background: rgba(var(--acc-rgb), 0.12) !important;
  border-color: rgba(var(--acc-rgb), 0.32) !important;
  color: var(--c-ink) !important;
}
.pd-chat-fab { background: linear-gradient(140deg, var(--c-accent), var(--c-accent2)) !important; color: var(--c-on-accent) !important; border: none !important; }

/* 视频工作台：局部变量统一到深色主题 */
.pd-page[data-page="video"] {
  color-scheme: dark !important;
  --vw-canvas: var(--c-bg-2) !important;
  --vw-surface: var(--c-surface) !important;
  --vw-surface-2: var(--c-surface-3) !important;
  --vw-border: rgba(var(--line-rgb), 0.12) !important;
  --vw-accent: var(--c-accent) !important;
  --vw-accent-deep: var(--c-accent2) !important;
  --vw-accent-2: var(--c-accent) !important;
  --vw-accent-soft: rgba(var(--acc-rgb), 0.12) !important;
  --vw-ok: var(--c-accent2) !important;
  --vw-wait: #fbbf24 !important;
  --pd-card: var(--c-surface) !important;
  --pd-bg-mid: var(--c-bg-2) !important;
  --pd-bg-soft: #0e1826 !important;
  --pd-text: var(--c-ink) !important;
  --pd-text-2: var(--c-ink-2) !important;
  --pd-text-3: #6d8197 !important;
  --pd-border: rgba(var(--line-rgb), 0.12) !important;
  --pd-border-strong: rgba(var(--line-rgb), 0.24) !important;
}

/* ============================ 细节 ============================ */
.pd-card, .pd-col { overflow: hidden; }
.pd-card > h2:first-child { margin-top: 0 !important; border-radius: 0 !important; }
.pd-blogger-tip, .pd-mon-hint, .pd-hint, .pd-sv-hint, .pd-cm-hint, .pd-ti-hint {
  color: var(--pd-text-3) !important;
}
.pd-blogger-tip b, .pd-mon-hint b { color: var(--c-ink) !important; }
.pd-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

@media (max-width: 900px) {
  .pd-sidebar { width: 212px; }
  .pd-card { padding: 18px 18px !important; }
  .pd-hero { padding: 20px 22px !important; }
}


/* ---- Benchmark archive / shared tabs (2026-10-27) ---- */
.pd-bmk-head { flex-wrap: wrap !important; gap: 14px !important; align-items: flex-start !important; }
.pd-bmk-head-main { flex: 1 1 320px !important; min-width: 0 !important; }
.pd-bmk-head-actions { flex-wrap: wrap !important; gap: 8px !important; }
.pd-bmk-chip {
  background: rgba(var(--acc-rgb), 0.10) !important;
  border: 1px solid rgba(var(--acc-rgb), 0.28) !important;
  color: var(--c-accent-tint) !important;
  border-radius: 999px !important;
}
.pd-bmk-tabs, .pd-pat-tabs { border-bottom: 1px solid rgba(var(--line-rgb), 0.12) !important; }
.pd-bmk-tabs button, .pd-pat-tabs button { color: var(--c-ink-2) !important; }
.pd-bmk-tabs button:hover, .pd-pat-tabs button:hover { color: var(--c-ink) !important; }
.pd-bmk-tabs button.active, .pd-pat-tabs button.active, .pd-bmk-tabs .active {
  color: var(--c-accent-tint) !important;
  border-color: var(--c-accent) !important;
}
.pd-bmk-filters-cnt { color: var(--pd-text-3) !important; }
.pd-bmk-head-actions .pd-btn, .pd-bmk-head-actions .pd-btn-ghost, .pd-bmk-head-actions button {
  white-space: nowrap;
}


/* ---- Knowledge board (2026-10-27) ---- */
.pd-kb-side-refresh,
.pd-kb-reader-close {
  background: rgba(var(--wash-rgb), 0.05) !important;
  border: 1px solid rgba(var(--line-rgb), 0.14) !important;
  color: var(--c-ink-2) !important;
  border-radius: 8px !important;
}
.pd-kb-side-refresh:hover,
.pd-kb-reader-close:hover { border-color: rgba(var(--acc-rgb), 0.35) !important; color: var(--c-ink) !important; }
.pd-kb-side-stat {
  background: rgba(var(--wash-rgb), 0.035) !important;
  border: 1px solid rgba(var(--line-rgb), 0.10) !important;
  border-radius: 10px !important;
  color: var(--c-ink-2) !important;
}
.pd-kb-grp { color: var(--c-ink-3) !important; }
.pd-kb-lib { color: var(--c-ink-2) !important; border-radius: 9px !important; }
.pd-kb-lib:hover { background: rgba(var(--wash-rgb), 0.05) !important; color: #e9f6ff !important; }
.pd-kb-lib.active {
  background: rgba(var(--acc-rgb), 0.14) !important;
  color: var(--c-ink) !important;
  box-shadow: inset 3px 0 0 var(--c-accent) !important;
}
.pd-kb-lib .cnt { background: rgba(var(--wash-rgb), 0.07) !important; color: var(--c-ink-2) !important; }
.pd-kb-lib.active .cnt { background: rgba(var(--acc-rgb), 0.9) !important; color: var(--c-on-accent) !important; }
.pd-kb-lib-wrap.is-active > .pd-kb-lib:not(.active) { background: rgba(var(--acc-rgb), 0.06) !important; }
.pd-kb-mode {
  background: rgba(var(--wash-rgb), 0.04) !important;
  border: 1px solid rgba(var(--line-rgb), 0.12) !important;
  border-radius: 10px !important;
  padding: 3px !important;
}
.pd-kb-mode-btn { background: transparent !important; color: var(--c-ink-2) !important; border: 1px solid transparent !important; }
.pd-kb-mode-btn.active {
  background: rgba(var(--acc-rgb), 0.14) !important;
  border-color: rgba(var(--acc-rgb), 0.28) !important;
  color: var(--c-ink) !important;
  box-shadow: none !important;
}
.pd-kb-sub, .pd-kb-card-sum, .pd-kb-card-meta, .pd-kb-card-foot,
.pd-kb-empty, .pd-kb-loading, .pd-kb-reader-meta { color: var(--c-ink-2) !important; }
.pd-kb-card-title, .pd-kb-reader-title, .pd-kb-sec-b h3, .pd-kb-sec-b h4 { color: var(--c-ink) !important; }
.pd-kb-no, .pd-kb-card-more, .pd-kb-sec-h, .pd-kb-kv .k, .pd-kb-kv-li .k { color: var(--c-accent-tint) !important; }
.pd-kb-card-foot { border-top: 1px solid rgba(var(--line-rgb), 0.10) !important; }
.pd-kb-card--llm { border-left: 3px solid var(--c-accent) !important; background: linear-gradient(180deg, var(--c-card-a), var(--c-card-b)) !important; }
.pd-kb-card.is-flash {
  background: rgba(var(--acc-rgb), 0.10) !important;
  border-color: rgba(var(--acc-rgb), 0.5) !important;
  box-shadow: 0 0 0 3px rgba(var(--acc-rgb), 0.20) !important;
}
@keyframes pd-kb-flash {
  0%, 100% { background: rgba(var(--acc-rgb), 0.10); }
  50% { background: rgba(var(--acc-rgb), 0.03); }
}
.pd-kb-pill--note { color: var(--c-accent-tint) !important; background: rgba(var(--acc-rgb), 0.10) !important; border: 1px solid rgba(var(--acc-rgb), 0.26) !important; }
.pd-kb-pill--tech { color: var(--c-accent-ink) !important; background: rgba(59, 130, 246, 0.10) !important; border: 1px solid rgba(59, 130, 246, 0.26) !important; }
.pd-kb-pill--llm { color: var(--c-on-accent) !important; background: var(--c-accent) !important; border: 1px solid var(--c-accent) !important; }
.pd-kb-pill--pending { color: var(--c-warn) !important; background: rgba(251, 191, 36, 0.10) !important; border: 1px solid rgba(251, 191, 36, 0.26) !important; }
.pd-kb-pill--lib { color: var(--c-ink-2) !important; background: rgba(var(--wash-rgb), 0.05) !important; border: 1px solid rgba(var(--line-rgb), 0.12) !important; }
.pd-kb-card-copy {
  color: var(--c-accent-tint) !important;
  background: rgba(var(--acc-rgb), 0.08) !important;
  border: 1px solid rgba(var(--acc-rgb), 0.24) !important;
}
.pd-kb-card-copy:hover { background: rgba(var(--acc-rgb), 0.14) !important; }
.pd-kb-tools input[type="search"], .pd-kb-tools select {
  background-color: rgba(var(--wash-rgb), 0.04) !important;
  border-color: rgba(var(--line-rgb), 0.12) !important;
  color: var(--c-ink) !important;
}
.pd-kb-reader { background: rgba(3, 8, 14, 0.72) !important; }
.pd-kb-reader-box { background: var(--c-surface) !important; border-color: rgba(var(--line-rgb), 0.14) !important; }
.pd-kb-reader-head, .pd-kb-reader-meta, .pd-kb-toc, .pd-kb-rtabs { background: rgba(var(--wash-rgb), 0.02) !important; border-color: rgba(var(--line-rgb), 0.10) !important; }
.pd-kb-toc-chip {
  background: rgba(var(--wash-rgb), 0.04) !important;
  border: 1px solid rgba(var(--line-rgb), 0.14) !important;
  color: var(--c-ink-2) !important;
}
.pd-kb-toc-chip:hover { border-color: rgba(var(--acc-rgb), 0.4) !important; color: var(--c-ink) !important; }
.pd-kb-sec { background: rgba(var(--wash-rgb), 0.025) !important; border: 1px solid rgba(var(--line-rgb), 0.10) !important; }
.pd-kb-sec-h { background: rgba(var(--acc-rgb), 0.06) !important; border-bottom: 1px solid rgba(var(--line-rgb), 0.10) !important; }
.pd-kb-sec-h i { background: rgba(var(--acc-rgb), 0.14) !important; border-color: rgba(var(--acc-rgb), 0.3) !important; color: var(--c-accent-tint) !important; }
.pd-kb-rtab { color: var(--c-ink-2) !important; }
.pd-kb-rtab.active { color: var(--c-accent-tint) !important; border-bottom-color: var(--c-accent) !important; }
.pd-floating-analyzes {
  background: var(--c-surface) !important;
  border: 1px solid rgba(var(--line-rgb), 0.16) !important;
  color: var(--c-ink) !important;
  box-shadow: 0 18px 40px -20px rgba(0, 0, 0, 0.9) !important;
}
.pd-floating-analyzes-head { color: var(--c-ink) !important; border-bottom: 1px solid rgba(var(--line-rgb), 0.10) !important; }
.pd-floating-analyzes-head span { color: var(--c-ink-2) !important; }
.pd-floating-analyzes-item { border-bottom: 1px solid rgba(var(--line-rgb), 0.08) !important; }
.pd-floating-analyzes-item .title { color: var(--c-ink) !important; }
.pd-floating-analyzes-item .bar { background: rgba(var(--wash-rgb), 0.08) !important; }
.pd-floating-analyzes-item .msg { color: var(--c-ink-2) !important; }
.pd-floating-analyzes-foot { border-top: 1px solid rgba(var(--line-rgb), 0.10) !important; color: var(--c-accent-tint) !important; }
#pd-floating-downloads .pd-floating-analyzes-head { color: var(--c-accent-tint) !important; }


/* ---- Final fixes (2026-10-27) ---- */
.pd-card > h2 { border-bottom: none !important; }
.pd-card > h2::before { content: none !important; display: none !important; width: 0 !important; }
:focus-visible { outline: 2px solid rgba(var(--acc-rgb), 0.55) !important; outline-offset: 2px !important; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--c-accent); }

.pd-mon-row, .pd-mon-field, .pd-mon-switch, .pd-mon-result { color: var(--pd-text-2) !important; }
.pd-mon-hint { color: var(--pd-text-3) !important; }
.pd-mon-switch input { accent-color: var(--c-accent); }

.pd-archive-empty, .pd-blogger-list .pd-archive-empty {
  background: rgba(var(--wash-rgb), 0.015) !important;
  border: 1px dashed rgba(var(--line-rgb), 0.16) !important;
  border-radius: 14px !important;
  color: var(--pd-text-3) !important;
}
.pd-archive-empty .icon { opacity: .55; }

.pd-ip-lib-btn {
  background: rgba(var(--acc-rgb), 0.10) !important;
  border: 1px solid rgba(var(--acc-rgb), 0.28) !important;
  color: var(--c-accent-tint) !important;
  border-radius: 999px !important;
}
.pd-ip-lib-btn:hover { background: rgba(var(--acc-rgb), 0.16) !important; }

/* Benchmark wide cards: tighter rows, readable meta */
.pd-archive-item.pd-wide { align-items: stretch !important; }
.pd-archive-item.pd-wide .pd-archive-thumb {
  width: 112px !important;
  min-height: 0 !important;
  height: auto !important;
  align-self: stretch !important;
  border-radius: 10px !important;
  margin: 10px 0 10px 10px !important;
}
.pd-archive-item.pd-wide .pd-archive-info { padding: 12px 14px !important; gap: 6px !important; }
.pd-archive-item.pd-wide .pd-archive-actions { margin-top: 4px !important; padding-top: 0 !important; }
.pd-wide-no { color: var(--c-accent-tint) !important; }
.pd-wide-sub, .pd-wide-date, .pd-wide-stats { color: var(--c-ink-2) !important; }
.pd-wide-plat {
  color: var(--c-accent-ink) !important;
  background: rgba(59, 130, 246, 0.10) !important;
  border: 1px solid rgba(59, 130, 246, 0.26) !important;
}
.pd-wide-detail { color: var(--c-accent-tint) !important; }

.pd-bmk-tabs .cnt, .pd-pat-tabs .cnt {
  background: rgba(var(--wash-rgb), 0.06) !important;
  color: var(--c-ink-2) !important;
  border-radius: 999px !important;
  padding: 0 7px !important;
  font-size: 11px !important;
}
.pd-bmk-tabs button.active .cnt, .pd-pat-tabs button.active .cnt {
  background: var(--c-accent) !important;
  color: var(--c-on-accent) !important;
  font-weight: 700 !important;
}


.pd-archive-item.pd-wide .pd-archive-info { justify-content: center !important; }
.pd-bmk-kicker { color: #6f8aa2 !important; }
.pd-bmk-head-actions .pd-btn-ghost { background: rgba(var(--wash-rgb), 0.035) !important; }
.pd-bmk-filters, .pd-bmk-tools { color: var(--pd-text-2) !important; }


/* ---- Detail drawer (2026-10-27) ---- */
.pd-detail-hero {
  background: linear-gradient(180deg, var(--c-card-a) 0%, var(--c-card-b) 100%) !important;
  border: 1px solid rgba(var(--line-rgb), 0.12) !important;
  border-radius: 16px !important;
  color: var(--c-ink) !important;
}
.pd-detail-hero-title { color: var(--c-ink) !important; }
.pd-detail-hero-meta, .pd-dh-meta { color: var(--c-ink-2) !important; }
.pd-dh-meta span { color: #7f97ad !important; }
.pd-dh-meta b { color: var(--c-ink) !important; }
.pd-detail-hero-stats { color: var(--c-ink-2) !important; }
.pd-dh-pill {
  background: rgba(var(--wash-rgb), 0.06) !important;
  border: 1px solid rgba(var(--line-rgb), 0.16) !important;
  color: var(--c-ink-2) !important;
}
.pd-dh-pill.ok {
  background: rgba(var(--acc2-rgb), 0.10) !important;
  border-color: rgba(var(--acc2-rgb), 0.28) !important;
  color: var(--c-success) !important;
}
.pd-detail-hero-open {
  background: rgba(var(--acc-rgb), 0.10) !important;
  border: 1px solid rgba(var(--acc-rgb), 0.28) !important;
  color: var(--c-accent-tint) !important;
  border-radius: 999px !important;
}
.pd-detail-hero-open:hover { background: rgba(var(--acc-rgb), 0.16) !important; }
.pd-dh-player, .pd-drawer-player { background: var(--c-bg-2) !important; }
.pd-dh-blogger-info { background: rgba(var(--wash-rgb), 0.025) !important; }
.pd-dh-blogger-info h4 { color: var(--c-ink-2) !important; }

.pd-drawer-tabs button {
  background: rgba(var(--wash-rgb), 0.035) !important;
  border: 1px solid rgba(var(--line-rgb), 0.12) !important;
  color: var(--c-ink-2) !important;
  border-radius: 999px !important;
  padding: 6px 14px !important;
}
.pd-drawer-tabs button:hover { background: rgba(var(--wash-rgb), 0.06) !important; color: var(--c-ink) !important; }
.pd-drawer-tabs button.active {
  background: rgba(var(--acc-rgb), 0.14) !important;
  border-color: rgba(var(--acc-rgb), 0.34) !important;
  color: var(--c-ink) !important;
  font-weight: 650 !important;
}
.pd-drawer-tabs .cnt {
  background: rgba(var(--wash-rgb), 0.08) !important;
  color: var(--c-ink-2) !important;
  border-radius: 999px !important;
  padding: 0 6px !important;
}
.pd-drawer-tabs button.active .cnt { background: var(--c-accent) !important; color: var(--c-on-accent) !important; font-weight: 700 !important; }
.pd-drawer-section { background: rgba(var(--wash-rgb), 0.025) !important; border: 1px solid rgba(var(--line-rgb), 0.10) !important; border-radius: 12px !important; }
.pd-drawer-section h4, .pd-drawer-section h3 { color: var(--c-ink) !important; }
.pd-tr-search { background: rgba(var(--wash-rgb), 0.04) !important; color: var(--c-ink) !important; border-color: rgba(var(--line-rgb), 0.12) !important; }
.pd-tr-row { border-color: rgba(var(--line-rgb), 0.08) !important; }
.pd-tr-ts { color: #6d8197 !important; }
.pd-tr-txt { color: var(--c-ink) !important; }


/* ---- LLM report inside drawer (2026-10-27) ---- */
.pd-llm-group {
  background: rgba(var(--wash-rgb), 0.025) !important;
  border: 1px solid rgba(var(--line-rgb), 0.10) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}
.pd-llm-group * { color: var(--c-ink) !important; }
.pd-llm-group h2, .pd-llm-group h3, .pd-llm-group h4, .pd-llm-group h5,
.pd-llm-group strong, .pd-llm-group b { color: var(--c-ink) !important; }
.pd-llm-group .pd-llm-group-h, .pd-llm-group .pd-llm-group-h * { color: var(--c-accent-tint) !important; }
.pd-llm-group-h { border-bottom: 1px solid rgba(var(--line-rgb), 0.10) !important; }
.pd-llm-group-h::before { background: var(--c-accent) !important; }
.pd-llm-chip {
  background: rgba(var(--acc-rgb), 0.10) !important;
  border: 1px solid rgba(var(--acc-rgb), 0.28) !important;
  color: var(--c-accent-tint) !important;
}
.pd-llm-kv .k { color: #1f5c4d !important; }
.pd-llm-kv .v { color: #141414 !important; }
.pd-llm-group table th { background: rgba(var(--acc-rgb), 0.06) !important; color: var(--c-accent-tint) !important; }
.pd-llm-group table td { background: transparent !important; color: var(--c-ink) !important; }
.pd-llm-group table th, .pd-llm-group table td { border-color: rgba(var(--line-rgb), 0.10) !important; }
.pd-llm-group a { color: var(--c-accent-tint) !important; }
.pd-md h1, .pd-md h2, .pd-md h3, .pd-md h4 { color: var(--c-accent-tint) !important; }
.pd-md th, .pd-md td { border-color: rgba(var(--line-rgb), 0.10) !important; color: var(--c-ink) !important; }
.pd-md th { background: rgba(var(--acc-rgb), 0.06) !important; color: var(--c-accent-tint) !important; }


.pd-field input, .pd-field textarea, .pd-field select,
.pd-ip-f input, .pd-ip-f textarea,
.pdvw-field input, .pdvw-field textarea,
.pd-search-input {
  background-color: rgba(var(--wash-rgb), 0.04) !important;
  border: 1px solid rgba(var(--line-rgb), 0.12) !important;
  color: var(--c-ink) !important;
}
.pd-field input:focus, .pd-field textarea:focus, .pd-field select:focus {
  border-color: rgba(var(--acc-rgb), 0.55) !important;
  box-shadow: 0 0 0 3px rgba(var(--acc-rgb), 0.14) !important;
}
.pd-field label, .pd-field-hint, .pd-field-foot { color: var(--c-ink-2) !important; }


#pd-max-videos { flex: 0 0 88px !important; width: 88px !important; text-align: center; }
#pd-mon-interval { flex: 0 0 68px !important; width: 68px !important; text-align: center; }
.pd-mon-field { display: inline-flex; align-items: center; gap: 8px; }


/* Sidebar utility grid: 3 on top, 2 centered below */
.pd-sidebar-foot { grid-template-columns: repeat(6, 1fr) !important; }
.pd-sidebar-foot button { grid-column: span 2; }
.pd-sidebar-foot button:nth-child(4) { grid-column: 2 / 4; }
.pd-sidebar-foot button:nth-child(5) { grid-column: 4 / 6; }


/* ============================================================================
   Theme tokens (2026-10-28) ? switch by setting data-theme on <html>
   aurora | cobalt | ember | plum
   ============================================================================ */
:root, html[data-theme="aurora"] {
  --c-bg: #070c14;
  --c-bg-2: #0b1420;
  --c-surface: #0e1724;
  --c-surface-2: #0f1a28;
  --c-surface-3: #14202f;
  --c-hero-a: #0e1b2b;
  --c-hero-b: #0b1622;
  --c-hero-c: #0a1a20;
  --c-card-a: var(--c-card-a);
  --c-card-b: var(--c-card-b);
  --line-rgb: 150, 196, 235;
  --acc-rgb: 34, 211, 238;
  --acc2-rgb: 46, 230, 168;
  --c-accent: #22d3ee;
  --c-accent2: #2ee6a8;
  --c-accent-hi: #3ae4f2;
  --c-accent-tint: var(--c-accent-ink);
  --c-on-accent: #032028;
}

html[data-theme="cobalt"] {
  --c-bg: #05070f;
  --c-bg-2: #0a1020;
  --c-surface: #0d1626;
  --c-surface-2: #111c30;
  --c-surface-3: #16233a;
  --c-hero-a: #0a1430;
  --c-hero-b: #081226;
  --c-hero-c: #071a2e;
  --c-card-a: rgba(16, 26, 44, 0.94);
  --c-card-b: rgba(9, 16, 30, 0.96);
  --line-rgb: 148, 180, 235;
  --acc-rgb: 59, 130, 246;
  --acc2-rgb: 34, 211, 238;
  --c-accent: #3b82f6;
  --c-accent2: #22d3ee;
  --c-accent-hi: #60a5fa;
  --c-accent-tint: var(--c-accent-ink);
  --c-on-accent: #04122b;
}

html[data-theme="ember"] {
  --c-bg: #0c0a08;
  --c-bg-2: #14100c;
  --c-surface: #171310;
  --c-surface-2: #1d1814;
  --c-surface-3: #241d17;
  --c-hero-a: #1b1209;
  --c-hero-b: #150f0a;
  --c-hero-c: #1a1208;
  --c-card-a: rgba(28, 22, 17, 0.94);
  --c-card-b: rgba(16, 12, 9, 0.96);
  --line-rgb: 235, 205, 170;
  --acc-rgb: 245, 158, 11;
  --acc2-rgb: 251, 146, 60;
  --c-accent: #f59e0b;
  --c-accent2: #fb923c;
  --c-accent-hi: #fbbf24;
  --c-accent-tint: var(--c-warn);
  --c-on-accent: #231405;
}

html[data-theme="plum"] {
  --c-bg: #0a0712;
  --c-bg-2: #110b1d;
  --c-surface: #151021;
  --c-surface-2: #1b1429;
  --c-surface-3: #231a33;
  --c-hero-a: #171027;
  --c-hero-b: #120b20;
  --c-hero-c: #1a0f28;
  --c-card-a: rgba(26, 20, 40, 0.94);
  --c-card-b: rgba(14, 10, 24, 0.96);
  --line-rgb: 205, 190, 245;
  --acc-rgb: 167, 139, 250;
  --acc2-rgb: 244, 114, 182;
  --c-accent: #a78bfa;
  --c-accent2: #f472b6;
  --c-accent-hi: #c4b5fd;
  --c-accent-tint: #ddd6fe;
  --c-on-accent: #1a0b2e;
}

/* ---- Remaining light-theme islands: force readable text ---- */
.pd-kb-reader-body, .pd-kb-reader-body * { color: var(--c-ink) !important; }
.pd-kb-reader-body h1, .pd-kb-reader-body h2, .pd-kb-reader-body h3, .pd-kb-reader-body h4 {
  color: var(--c-accent-tint) !important;
}
.pd-kb-reader-body a { color: var(--c-accent-tint) !important; }
.pd-kb-reader-body th, .pd-kb-reader-body td { border-color: rgba(var(--line-rgb), 0.12) !important; }
.pd-kb-reader-body code, .pd-kb-reader-body pre {
  background: rgba(var(--wash-rgb), 0.05) !important;
  color: var(--c-ink) !important;
  border: 1px solid rgba(var(--line-rgb), 0.12) !important;
}
#pd-kb-chat-q, #pd-asr-cloud-key, .pd-kb-chat-input input {
  background: rgba(var(--wash-rgb), 0.04) !important;
  border: 1px solid rgba(var(--line-rgb), 0.12) !important;
  color: var(--c-ink) !important;
}
.pd-kb-chat, .pd-kb-chat-log, .pd-kb-chat-input, .pd-kb-chat-welcome {
  background: var(--c-surface) !important;
  color: var(--c-ink) !important;
  border-color: rgba(var(--line-rgb), 0.12) !important;
}
.pd-ip-lib-panel, .pd-ip-lib-detail, .pd-ip-lib-detail-body,
.pd-ip-lib-list, .pd-ip-lib-head {
  background: var(--c-surface) !important;
  color: var(--c-ink) !important;
  border-color: rgba(var(--line-rgb), 0.12) !important;
}
.pd-ip-lib-detail-body *, .pd-ip-lib-item-name, .pd-ip-lib-item-meta { color: var(--c-ink) !important; }
.pd-ip-lib-back {
  background: rgba(var(--wash-rgb), 0.04) !important;
  border: 1px solid rgba(var(--line-rgb), 0.14) !important;
  color: var(--c-ink) !important;
  border-radius: 8px !important;
}
.pd-queue-bar {
  background: var(--c-surface) !important;
  color: var(--c-ink) !important;
  border: 1px solid rgba(var(--line-rgb), 0.14) !important;
}
.pd-queue-bar * { color: inherit !important; }
.pd-queue-bar button {
  background: rgba(var(--wash-rgb), 0.045) !important;
  border: 1px solid rgba(var(--line-rgb), 0.14) !important;
  color: var(--c-ink) !important;
}


/* minor readability */
.pd-thumb-fallback { color: var(--c-ink-3) !important; }
.pd-bmk-chip b, .pd-bmk-filters-cnt b { color: var(--c-ink) !important; }


/* ============================================================================
   Ink tokens (2026-10-28) ? light & dark readable text system
   ============================================================================ */
:root, html[data-theme="aurora"] {
  --c-ink: #e8f2fb;
  --c-ink-2: #9db0c4;
  --c-ink-3: #6d8197;
  --c-accent-ink: #8fe8f7;
  --c-success: #7cf0c4;
  --c-warn: #fcd34d;
  --c-danger: #fca5a5;
  --c-wash-rgb: 255, 255, 255;
  --c-side-a: rgba(12, 20, 32, 0.96);
  --c-side-b: rgba(8, 14, 23, 0.98);
}

/* ---------- Business light 1: white + ink green ---------- */
html[data-theme="white-ink"] {
  color-scheme: light;
  --c-bg: #f2f5f4;
  --c-bg-2: #edf2f0;
  --c-surface: #ffffff;
  --c-surface-2: #f8fbfa;
  --c-surface-3: #eef3f1;
  --c-hero-a: #ffffff;
  --c-hero-b: #f7fbf9;
  --c-hero-c: #eef6f2;
  --c-card-a: #ffffff;
  --c-card-b: #fbfdfc;
  --c-side-a: rgba(255, 255, 255, 0.98);
  --c-side-b: rgba(247, 250, 249, 0.99);
  --line-rgb: 22, 48, 40;
  --acc-rgb: 15, 95, 74;
  --acc2-rgb: 18, 122, 92;
  --c-accent: #0f5f4a;
  --c-accent2: #127a5c;
  --c-accent-hi: #158a68;
  --c-accent-tint: #0f6b52;
  --c-accent-ink: #0f5f4a;
  --c-on-accent: #ffffff;
  --c-ink: #1a2520;
  --c-ink-2: #55655e;
  --c-ink-3: #5f6f68;
  --c-success: #0f766e;
  --c-warn: #a16207;
  --c-danger: #b91c1c;
  --c-wash-rgb: 22, 48, 40;
}

/* ---------- Business light 2: white + navy blue ---------- */
html[data-theme="white-blue"] {
  color-scheme: light;
  --c-bg: #f1f4f9;
  --c-bg-2: #ebeff6;
  --c-surface: #ffffff;
  --c-surface-2: #f7f9fd;
  --c-surface-3: #edf1f8;
  --c-hero-a: #ffffff;
  --c-hero-b: #f6f9ff;
  --c-hero-c: #eef4ff;
  --c-card-a: #ffffff;
  --c-card-b: #fbfcff;
  --c-side-a: rgba(255, 255, 255, 0.98);
  --c-side-b: rgba(246, 249, 254, 0.99);
  --line-rgb: 28, 48, 86;
  --acc-rgb: 29, 78, 216;
  --acc2-rgb: 30, 64, 175;
  --c-accent: #1d4ed8;
  --c-accent2: #1e40af;
  --c-accent-hi: #2563eb;
  --c-accent-tint: #1d4ed8;
  --c-accent-ink: #1d4ed8;
  --c-on-accent: #ffffff;
  --c-ink: #16202c;
  --c-ink-2: #55637a;
  --c-ink-3: #5f6d80;
  --c-success: #0f766e;
  --c-warn: #a16207;
  --c-danger: #b91c1c;
  --c-wash-rgb: 28, 48, 86;
}

/* ---------- Business light 3: warm ivory + bronze ---------- */
html[data-theme="white-sand"] {
  color-scheme: light;
  --c-bg: #f6f2ea;
  --c-bg-2: #f1ece2;
  --c-surface: #fffdf8;
  --c-surface-2: #fbf7ef;
  --c-surface-3: #f3ecdf;
  --c-hero-a: #fffdf8;
  --c-hero-b: #fbf6ec;
  --c-hero-c: #f6efe2;
  --c-card-a: #fffdf8;
  --c-card-b: #fdfaf3;
  --c-side-a: rgba(255, 253, 248, 0.99);
  --c-side-b: rgba(249, 244, 235, 0.99);
  --line-rgb: 64, 50, 32;
  --acc-rgb: 138, 90, 43;
  --acc2-rgb: 111, 69, 24;
  --c-accent: #8a5a2b;
  --c-accent2: #6f4518;
  --c-accent-hi: #9a652f;
  --c-accent-tint: #7a4d22;
  --c-accent-ink: #7a4d22;
  --c-on-accent: #ffffff;
  --c-ink: #2b241c;
  --c-ink-2: #6b5f50;
  --c-ink-3: #6f6355;
  --c-success: #0f766e;
  --c-warn: #a16207;
  --c-danger: #b91c1c;
  --c-wash-rgb: 64, 50, 32;
}

/* Light-theme component corrections */
html[data-theme^="white"] .pd-btn,
html[data-theme^="white"] button.pd-btn {
  box-shadow: 0 8px 20px -12px rgba(var(--acc-rgb), 0.45) !important;
}
html[data-theme^="white"] .pd-btn:hover,
html[data-theme^="white"] button.pd-btn:hover {
  box-shadow: 0 12px 26px -12px rgba(var(--acc-rgb), 0.5) !important;
}
html[data-theme^="white"] .pd-brand-mark {
  box-shadow: 0 8px 18px -10px rgba(var(--acc-rgb), 0.55) !important;
}
html[data-theme^="white"] .pd-hero {
  box-shadow: 0 20px 40px -30px rgba(20, 40, 34, 0.35) !important;
}
html[data-theme^="white"] .pd-card,
html[data-theme^="white"] .pd-col,
html[data-theme^="white"] .pd-settings-block {
  box-shadow: 0 12px 28px -24px rgba(20, 40, 34, 0.45) !important;
}
html[data-theme^="white"] .pd-sidebar {
  box-shadow: 1px 0 0 rgba(var(--line-rgb), 0.06);
}
html[data-theme^="white"] .pd-nav a.active {
  color: var(--c-accent) !important;
  background: rgba(var(--acc-rgb), 0.09) !important;
  border-color: rgba(var(--acc-rgb), 0.22) !important;
  box-shadow: inset 3px 0 0 var(--c-accent) !important;
}
html[data-theme^="white"] .pd-nav a.active .pd-nav-badge {
  background: var(--c-accent) !important;
  color: #ffffff !important;
}
html[data-theme^="white"] .pd-job-card .pd-job-count { text-shadow: none; }
html[data-theme^="white"] .pd-progress > .bar { box-shadow: none; }
html[data-theme^="white"] .pd-brand-mark {
  background: linear-gradient(140deg, var(--c-accent-hi), var(--c-accent)) !important;
  color: #ffffff !important;
}
html[data-theme^="white"] .pd-search-fab,
html[data-theme^="white"] .pd-chat-fab {
  background: var(--c-accent) !important;
  color: #ffffff !important;
}
html[data-theme^="white"] .pd-drawer,
html[data-theme^="white"] .pd-modal,
html[data-theme^="white"] .pd-slide,
html[data-theme^="white"] .pd-search-box {
  box-shadow: 0 24px 60px -24px rgba(20, 40, 34, 0.35) !important;
}


/* ---- Theme picker ---- */
.pd-theme-box { padding: 0 4px; margin-top: 4px; }
.pd-theme-box .pd-section-title { margin: 12px 8px 6px !important; }
.pd-theme-box select {
  width: 100%;
  height: 36px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
  border-radius: 9px !important;
  background-color: rgba(var(--wash-rgb), 0.045) !important;
  border: 1px solid rgba(var(--line-rgb), 0.12) !important;
  color: var(--c-ink-2) !important;
}


/* Legacy token bridge: every historical --pd-* / --db-* now follows the active theme */
:root, html[data-theme] {
  --pd-bg-deep: var(--c-bg);
  --pd-bg-mid: var(--c-surface-2);
  --pd-bg-soft: var(--c-surface-3);
  --pd-sidebar: var(--c-surface);
  --pd-card: var(--c-surface);
  --pd-card-hover: var(--c-surface-2);
  --pd-text: var(--c-ink);
  --pd-text-2: var(--c-ink-2);
  --pd-text-3: var(--c-ink-3);
  --pd-border: rgba(var(--line-rgb), 0.12);
  --pd-border-strong: rgba(var(--line-rgb), 0.24);
  --pd-success: var(--c-success);
  --pd-failed: var(--c-danger);
  --pd-pending: var(--c-warn);
  --pd-running: var(--c-accent-ink);
  --db-bg: var(--c-bg);
  --db-surface: var(--c-surface);
  --db-surface-2: var(--c-surface-2);
  --db-border: rgba(var(--line-rgb), 0.12);
  --db-border-strong: rgba(var(--line-rgb), 0.24);
  --db-ink: var(--c-ink);
  --db-ink-soft: var(--c-ink-2);
  --db-accent: var(--c-accent);
  --db-accent-strong: var(--c-accent-ink);
  --db-accent-soft: rgba(var(--acc-rgb), 0.10);
}

/* Light theme surfaces that were still dark */
html[data-theme^="white"] .pd-footbar {
  background: var(--c-surface) !important;
  border-top: 1px solid rgba(var(--line-rgb), 0.10) !important;
  color: var(--c-ink-3) !important;
}
html[data-theme^="white"] .pd-scene-table-wrap { border-color: rgba(var(--line-rgb), 0.12) !important; }
html[data-theme^="white"] .pd-scene-table tbody tr:hover td { background: rgba(var(--wash-rgb), 0.04) !important; }
html[data-theme^="white"] .pd-scene-table thead th { background: var(--c-surface-3) !important; color: var(--c-ink-2) !important; }
html[data-theme^="white"] .pd-kb-chat-hint { color: var(--c-ink-3) !important; }
html[data-theme^="white"] .pd-lv-na {
  background: rgba(var(--wash-rgb), 0.08) !important;
  color: var(--c-ink-3) !important;
}
html[data-theme^="white"] .pdvw-badge-wait { color: var(--c-warn) !important; background: rgba(161, 98, 7, 0.10) !important; border-color: rgba(161, 98, 7, 0.25) !important; }
html[data-theme^="white"] .pdag-agentbox-av { background: rgba(var(--acc-rgb), 0.10) !important; color: var(--c-accent) !important; }
html[data-theme^="white"] .pd-thumb-fallback { color: var(--c-ink-3) !important; }

.pd-kb-chat-hint { color: var(--c-ink-3) !important; }
.pd-lv-na { color: var(--c-ink-3) !important; }


/* Agent square local tokens follow the theme */
.pdag-root {
  --ag-accent: var(--c-accent);
  --ag-accent-2: var(--c-accent2);
  --ag-accent-soft: rgba(var(--acc-rgb), 0.12);
  --ag-ink: var(--c-ink);
  --ag-muted: var(--c-ink-2);
  --ag-faint: var(--c-ink-3);
  --ag-surface: var(--c-surface);
  --ag-surface-2: var(--c-surface-2);
  --ag-border: rgba(var(--line-rgb), 0.12);
  --ag-border-strong: rgba(var(--line-rgb), 0.24);
  --ag-shadow: 0 10px 28px rgba(20, 40, 34, 0.10);
}
.pdag-card[data-accent] {
  --ag-card-ink: var(--c-accent);
  --ag-card-surface: rgba(var(--acc-rgb), 0.10);
}


/* Scene table meta + KB tag hint */
.pd-scene-vision-bar .k, .pd-scene-vision-bar .v,
.pd-scene-table .k, .pd-scene-table .v { color: var(--c-ink-2) !important; }
.pd-kb-tag-edit-label { color: var(--c-ink-3) !important; }
html[data-theme^="white"] .pd-scene-noframe { background: #e9eeec !important; }


/* ============================================================================
   BUSINESS V1 (2026-10-28) ? reference: tanxiao.com.cn/demo
   ============================================================================ */
html[data-theme="biz"] {
  color-scheme: light;
  --c-bg: #f4f6f5;
  --c-bg-2: #edf1ef;
  --c-surface: #ffffff;
  --c-surface-2: #fbfcfb;
  --c-surface-3: #f0f5f2;
  --c-hero-a: #123f32;
  --c-hero-b: #14503f;
  --c-hero-c: #17604a;
  --c-card-a: #ffffff;
  --c-card-b: #ffffff;
  --c-side-a: rgba(255, 255, 255, 0.99);
  --c-side-b: rgba(251, 252, 251, 0.99);
  --line-rgb: 21, 25, 24;
  --acc-rgb: 20, 80, 63;
  --acc2-rgb: 28, 106, 83;
  --c-accent: #14503f;
  --c-accent2: #1c6a53;
  --c-accent-hi: #17604a;
  --c-accent-tint: #14503f;
  --c-accent-ink: #14503f;
  --c-on-accent: #ffffff;
  --c-ink: #151918;
  --c-ink-2: #4c5853;
  --c-ink-3: #6d7872;
  --c-success: #1c8a68;
  --c-warn: #a16207;
  --c-danger: #b42318;
  --c-wash-rgb: 21, 25, 24;
  --c-border: #d8dfdb;
}

html[data-theme="biz"] body { background: var(--c-bg) !important; }
html[data-theme="biz"] .pd-main { padding: 18px 30px 34px !important; max-width: 1600px; }
html[data-theme="biz"] .pd-sidebar {
  width: 232px !important; flex: 0 0 232px !important;
  background: #fff !important;
  border-right: 1px solid var(--c-border) !important;
  box-shadow: none !important;
  padding-top: 18px !important;
}
html[data-theme="biz"] .pd-brand-mark {
  width: 34px !important; height: 34px !important; border-radius: 9px !important;
  background: var(--c-accent) !important; color: #fff !important;
  font-size: 15px !important; box-shadow: none !important;
}
html[data-theme="biz"] .pd-brand-name { font-size: 14px !important; font-weight: 700 !important; }
html[data-theme="biz"] .pd-brand-sub { font-size: 8.5px !important; letter-spacing: .16em !important; color: var(--c-ink-3) !important; }
html[data-theme="biz"] .pd-section-title { font-size: 10.5px !important; font-weight: 600 !important; letter-spacing: .08em !important; color: #98a29d !important; }
html[data-theme="biz"] .pd-nav { gap: 2px !important; }
html[data-theme="biz"] .pd-nav a {
  padding: 9px 10px !important; border-radius: 9px !important;
  color: var(--c-ink-2) !important; font-size: 12.5px !important;
  border: 1px solid transparent !important;
}
html[data-theme="biz"] .pd-nav a:hover { background: #f6f8f7 !important; color: var(--c-ink) !important; }
html[data-theme="biz"] .pd-nav a.active {
  background: var(--c-accent) !important; border-color: var(--c-accent) !important;
  color: #fff !important; font-weight: 600 !important;
  box-shadow: 0 6px 14px -10px rgba(20, 80, 63, .7) !important;
}
html[data-theme="biz"] .pd-nav a.active .pd-nav-badge { background: rgba(255,255,255,.2) !important; color: #fff !important; }
html[data-theme="biz"] .pd-theme-box { display: none !important; }
html[data-theme="biz"] .pd-sidebar-foot { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
html[data-theme="biz"] .pd-sidebar-foot button {
  grid-column: auto !important; border: 1px solid var(--c-border) !important;
  background: #fff !important; border-radius: 10px !important;
  color: var(--c-ink-2) !important; padding: 10px 6px !important;
  font-size: 11.5px !important;
}

/* topbar */
.pd-topbar { display: flex; align-items: center; justify-content: space-between; padding: 2px 2px 16px; }
.pd-topbar-crumb { font-size: 11px; letter-spacing: .12em; color: #98a29d; font-weight: 600; }
.pd-topbar-crumb b { color: var(--c-ink); letter-spacing: .02em; }
.pd-topbar-btn {
  width: 34px; height: 34px; border-radius: 9px; border: 1px solid var(--c-border);
  background: #fff; color: var(--c-ink-2); display: grid; place-items: center; cursor: pointer;
}
.pd-topbar.hidden { display: none !important; }

/* hero */
html[data-theme="biz"] .pd-hero {
  background: linear-gradient(135deg, #123f32 0%, #14503f 46%, #17604a 100%) !important;
  border: 0 !important; border-radius: 18px !important;
  padding: 30px 34px !important; min-height: 178px !important;
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  gap: 30px !important; overflow: hidden !important;
  box-shadow: 0 22px 44px -34px rgba(20, 80, 63, .8) !important;
  position: relative;
}
html[data-theme="biz"] .pd-hero::before {
  content: ""; position: absolute; right: -90px; top: -120px; width: 420px; height: 420px;
  border-radius: 50%;
  background-image: radial-gradient(rgba(255,255,255,.22) 1px, transparent 1px);
  background-size: 16px 16px; opacity: .5; pointer-events: none;
}
html[data-theme="biz"] .pd-hero::after { display: none !important; }
html[data-theme="biz"] .pd-hero-main { position: relative; z-index: 1; min-width: 0; }
html[data-theme="biz"] .pd-hero-kicker {
  display: flex; align-items: center; gap: 8px;
  font-size: 10.5px; letter-spacing: .12em; color: #a9c9bc; font-weight: 600;
}
html[data-theme="biz"] .pd-hero-kicker i { width: 5px; height: 5px; border-radius: 99px; background: #7fd6b6; display: inline-block; }
html[data-theme="biz"] .pd-hero h1 {
  color: #fff !important; font-size: 40px !important; line-height: 1.18 !important;
  letter-spacing: -.02em !important; margin: 13px 0 0 !important; font-weight: 700 !important;
}
html[data-theme="biz"] .pd-hero h1 em {
  color: #fff !important; font-style: normal !important;
  background: none !important; -webkit-text-fill-color: #fff !important;
}
html[data-theme="biz"] .pd-hero-sub { margin-top: 10px !important; font-size: 12.5px !important; color: #bcd4ca !important; }
html[data-theme="biz"] .pd-hero-meta, html[data-theme="biz"] .pd-hero-deco { display: none !important; }
html[data-theme="biz"] .pd-hero-side {
  position: relative; z-index: 1; flex: none; width: 280px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px; padding: 15px 16px;
}
html[data-theme="biz"] .pd-hs-title { font-size: 11px; font-weight: 700; color: #e6f3ed; letter-spacing: .04em; }
html[data-theme="biz"] .pd-hs-text { margin-top: 8px; font-size: 11.5px; color: #a9c9bc; line-height: 1.6; }

/* cards */
html[data-theme="biz"] .pd-card {
  background: #fff !important;
  border: 1px solid var(--c-border) !important;
  border-radius: 16px !important;
  box-shadow: 0 14px 30px -28px rgba(20, 40, 34, .5) !important;
  padding: 20px 22px !important;
}
html[data-theme="biz"] .pd-card-tag { color: #8a948f !important; font-size: 10px !important; letter-spacing: .08em !important; }
.pd-card-head { display: flex; align-items: flex-start; gap: 11px; }
.pd-card-ic {
  width: 34px; height: 34px; flex: none; border-radius: 9px;
  background: #e9f2ed; color: var(--c-accent);
  display: grid; place-items: center;
}
.pd-card-ht { min-width: 0; }
.pd-card-ht h2 {
  font-size: 15.5px !important; font-weight: 700 !important; line-height: 1.3 !important;
  margin: 0 !important; padding: 0 !important; border: 0 !important; color: var(--c-ink) !important;
}
.pd-card-sub { margin-top: 3px; font-size: 11px; color: var(--c-ink-3); }
.pd-status-pill {
  margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 10px; border-radius: 999px; font-size: 10.5px; font-weight: 600;
  background: #fff; border: 1px solid var(--c-border); color: var(--c-ink-2); white-space: nowrap;
}
.pd-status-pill.ok { background: #e9f2ed; border-color: #d3e5db; color: #14503f; }
.pd-status-pill i { width: 6px; height: 6px; border-radius: 99px; background: #1c8a68; }

/* page grid */
html[data-theme="biz"] .pd-page[data-page="link-task"].active {
  display: grid !important;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr);
  gap: 18px !important;
  align-items: stretch;
}
html[data-theme="biz"] .pd-page[data-page="link-task"] > .pd-card { margin: 0 !important; }
html[data-theme="biz"] .pd-page[data-page="link-task"] > .pd-card:nth-child(3),
html[data-theme="biz"] .pd-page[data-page="link-task"] > .pd-card:nth-child(4),
html[data-theme="biz"] .pd-page[data-page="link-task"] > .pd-card:nth-child(5) { grid-column: 1 / -1; }

/* inputs & buttons */
html[data-theme="biz"] .pd-input-row { gap: 10px !important; margin-top: 20px !important; }
html[data-theme="biz"] .pd-input-row input,
html[data-theme="biz"] .pd-blogger-add input {
  height: 48px !important; border-radius: 11px !important;
  border: 1px solid var(--c-border) !important; background: #fbfcfb !important;
  color: var(--c-ink) !important; font-size: 12.5px !important; padding: 0 14px !important;
}
html[data-theme="biz"] .pd-input-row input:focus,
html[data-theme="biz"] .pd-blogger-add input:focus {
  border-color: var(--c-accent) !important; box-shadow: 0 0 0 3px rgba(20,80,63,.10) !important;
}
html[data-theme="biz"] .pd-btn {
  background: var(--c-accent) !important; border: 1px solid var(--c-accent) !important;
  color: #fff !important; border-radius: 11px !important; font-weight: 650 !important;
  box-shadow: 0 10px 20px -14px rgba(20,80,63,.8) !important;
}
html[data-theme="biz"] .pd-btn:hover { background: #17604a !important; }
html[data-theme="biz"] .pd-btn-ghost {
  background: #fff !important; border: 1px solid #d7e2dc !important;
  color: var(--c-accent) !important; border-radius: 11px !important; font-weight: 600 !important;
}
html[data-theme="biz"] .pd-btn-ghost:hover { background: #f1f7f4 !important; border-color: #c6dcd2 !important; }
html[data-theme="biz"] #pd-link-detect, html[data-theme="biz"] #pd-blogger-add { height: 48px !important; padding: 0 22px !important; }
html[data-theme="biz"] #pd-blogger-sync-all { height: 48px !important; padding: 0 18px !important; }
html[data-theme="biz"] #pd-max-videos {
  height: 34px !important; width: 74px !important; flex: 0 0 74px !important;
  border-radius: 9px !important; border: 1px solid var(--c-border) !important;
  background: #fbfcfb !important; color: var(--c-ink) !important;
}
html[data-theme="biz"] .pd-try-tags { margin-top: 13px !important; gap: 8px !important; }
html[data-theme="biz"] .pd-try-tags > span { font-size: 11px !important; color: #98a29d !important; }
html[data-theme="biz"] .pd-try-tags .pd-btn-ghost {
  height: 28px !important; padding: 0 11px !important; border-radius: 999px !important;
  font-size: 11px !important; color: var(--c-ink-2) !important; border-color: var(--c-border) !important;
}
html[data-theme="biz"] .pd-try-tags .pd-btn-ghost.is-active {
  background: #e9f2ed !important; border-color: #d3e6dd !important; color: var(--c-accent) !important;
}

/* job card */
html[data-theme="biz"] .pd-job-card { display: flex; flex-direction: column; }
html[data-theme="biz"] .pd-job-count { font-size: 46px !important; font-weight: 700 !important; letter-spacing: -.02em !important; margin-top: 20px !important; }
html[data-theme="biz"] .pd-job-foot { margin-top: auto !important; }
html[data-theme="biz"] .pd-progress { margin-top: 14px !important; background: #edf1ef !important; }
html[data-theme="biz"] .pd-progress .bar { background: var(--c-accent) !important; }
html[data-theme="biz"] #pd-job-status { background: #fff !important; border: 1px solid var(--c-border) !important; color: var(--c-ink-2) !important; }

/* deps */
html[data-theme="biz"] #pd-deps > * {
  display: inline-flex !important; align-items: center; gap: 6px;
  background: #f7faf8 !important; border: 1px solid #e2eae6 !important;
  border-radius: 999px !important; padding: 6px 11px !important;
  font-size: 11px !important; color: var(--c-ink-2) !important;
}
html[data-theme="biz"] .pd-page[data-page="link-task"] > .pd-card:nth-child(3) #pd-deps { margin-top: 18px !important; }

/* blogger */
html[data-theme="biz"] .pd-blogger-add { margin-top: 18px !important; gap: 10px !important; }
html[data-theme="biz"] .pd-bmk-chip {
  margin-left: auto !important; background: #fff !important;
  border: 1px solid var(--c-border) !important; color: var(--c-ink-2) !important;
  border-radius: 999px !important; padding: 5px 10px !important; font-size: 10.5px !important;
}
html[data-theme="biz"] .pd-blogger-tip {
  margin-top: 12px !important; border: 1px dashed #dfe5e1 !important;
  background: #fcfdfc !important; color: var(--c-ink-3) !important;
  border-radius: 12px !important; padding: 12px 14px !important; font-size: 11.5px !important;
}
html[data-theme="biz"] .pd-archive-empty {
  margin-top: 12px !important; border: 1px dashed #dfe5e1 !important;
  border-radius: 12px !important; padding: 18px !important;
  background: #fcfdfc !important; color: var(--c-ink-3) !important; font-size: 11.5px !important;
}
html[data-theme="biz"] .pd-archive-empty .icon { display: none !important; }

/* monitor card */
html[data-theme="biz"] .pd-page[data-page="link-task"] > .pd-card:nth-child(5) .pd-card-tag { display: block !important; margin-bottom: 4px !important; }
html[data-theme="biz"] .pd-page[data-page="link-task"] > .pd-card:nth-child(5) h2 { font-size: 15.5px !important; }

/* responsive */
@media (max-width: 1180px) {
  html[data-theme="biz"] .pd-page[data-page="link-task"].active { grid-template-columns: 1fr !important; }
  html[data-theme="biz"] .pd-page[data-page="link-task"] > .pd-card { grid-column: 1 / -1 !important; }
}
@media (max-width: 980px) {
  html[data-theme="biz"] .pd-hero { flex-direction: column !important; align-items: flex-start !important; }
  html[data-theme="biz"] .pd-hero-side { width: 100% !important; }
}


/* business v1 corrections */
html[data-theme="biz"] #pd-foot-theme { display: none !important; }
html[data-theme="biz"] .pd-sidebar-foot { grid-template-columns: 1fr 1fr !important; }
html[data-theme="biz"] .pd-footbar {
  background: #fff !important;
  border-top: 1px solid var(--c-border) !important;
  color: var(--c-ink-3) !important;
}
html[data-theme="biz"] .pd-footbar * { color: var(--c-ink-3) !important; }
html[data-theme="biz"] .pd-footbar .pd-foot-highlight { color: var(--c-accent) !important; }
html[data-theme="biz"] .pd-card-head > .pd-badge { margin-left: auto; }
html[data-theme="biz"] .pd-job-foot { display: block !important; margin-top: auto !important; }
html[data-theme="biz"] #pd-job-msg { display: block; font-size: 11px; color: var(--c-ink-3); margin-bottom: 8px; }
html[data-theme="biz"] .pd-job-dots { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 8px; width: 100%; }
html[data-theme="biz"] .pd-job-dots > span {
  display: flex !important; flex-direction: column; align-items: flex-start; gap: 2px;
  background: #fafbfa; border: 1px solid #edf0ee; border-radius: 10px;
  padding: 9px 10px; font-size: 14px; font-weight: 700; color: var(--c-ink);
}
html[data-theme="biz"] .pd-job-dots > span i { width: 6px; height: 6px; margin-bottom: 3px; }
html[data-theme="biz"] .pd-job-dots > span:nth-child(1)::after { content: "\6210\529f"; font-size: 10px; font-weight: 500; color: var(--c-ink-3); }
html[data-theme="biz"] .pd-job-dots > span:nth-child(2)::after { content: "\5931\8d25"; font-size: 10px; font-weight: 500; color: var(--c-ink-3); }
html[data-theme="biz"] .pd-job-dots > span:nth-child(3)::after { content: "\5f85\5904\7406"; font-size: 10px; font-weight: 500; color: var(--c-ink-3); }


/* nav icons injected by script */
.pd-nav-ic { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; flex: none; color: #8d9792; }
html[data-theme="biz"] .pd-nav a.active .pd-nav-ic { color: #d9ece3; }
html[data-theme="biz"] .pd-nav a .pd-nav-ic { margin-right: 1px; }
.pd-nav a { white-space: nowrap; }


/* sidebar group label inserted by script */
.pd-nav-grp {
  padding: 12px 10px 6px; font-size: 10.5px; font-weight: 600;
  letter-spacing: .08em; color: #98a29d;
}


html[data-theme="biz"] .pd-page[data-page="link-task"]:not(.active) { display: none !important; }


html[data-theme="biz"] .pd-hero.hidden { display: none !important; }
html[data-theme="biz"] .pd-main { padding-top: 22px !important; }


/* ??????????2026-10-28? */
.pd-rec-item { position: relative; }
.pd-rec-check { position: absolute; top: 12px; right: 12px; width: 15px; height: 15px; accent-color: var(--pd-pink); cursor: pointer; }
.pd-rec-item .pd-rec-top { padding-right: 26px; }
.pd-rec-del-sel { margin-left: auto; color: #b3261e !important; border-color: #e6b8b4 !important; }
.pd-rec-del-sel:disabled { opacity: .45; cursor: default; }

/* ??????2026-10-28????????? */
.pd-assets{background:var(--db-surface);border:1px solid var(--db-border);border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
.pd-assets-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pd-assets-kicker{font-size:10px;letter-spacing:.14em;color:var(--pd-text-3)}
.pd-assets h3{margin:2px 0 4px;font-size:22px;color:var(--pd-text)}
.pd-assets-sub{margin:0;font-size:12.5px;color:var(--pd-text-3)}
.pd-assets-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pd-asset-card{text-align:left;border:1px solid var(--db-border);background:#fff;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:transform .12s,border-color .12s}
.pd-asset-card:hover{transform:translateY(-1px);border-color:var(--pd-pink)}
.pd-asset-card.is-on{border-color:var(--pd-pink);box-shadow:0 0 0 2px rgba(31,92,77,.12)}
.pd-asset-label{font-size:12px;color:var(--pd-text-2)}
.pd-asset-count{font-size:30px;font-weight:700;line-height:1.1;color:var(--pd-pink)}
.pd-asset-hint{font-size:11px;color:var(--pd-text-3)}
.pd-assets-tabs{display:flex;flex-wrap:wrap;gap:8px}
.pd-asset-tab{border:1px solid var(--db-border);background:#fff;border-radius:999px;padding:5px 12px;font-size:12px;color:var(--pd-text-2);cursor:pointer}
.pd-asset-tab.is-on{background:var(--db-accent-soft);border-color:var(--pd-pink);color:var(--pd-pink);font-weight:600}
.pd-asset-tab span{opacity:.65;margin-left:4px}
.pd-assets-subtabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.pd-asset-subtab{border:1px dashed var(--db-border);background:var(--pd-bg,#fafafa);border-radius:8px;padding:3px 10px;font-size:11.5px;color:var(--pd-text-3);cursor:pointer}
.pd-asset-subtab.is-on{border-style:solid;border-color:var(--pd-pink);background:#fff;color:var(--pd-pink);font-weight:600}
.pd-asset-subtab span{opacity:.6;margin-left:4px}
.pd-asset-kindchip{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:6px;background:var(--db-accent-soft);color:var(--db-accent-strong);font-size:10px;font-weight:500;vertical-align:1px}
.pd-assets-bar{display:flex;justify-content:space-between;gap:12px;font-size:11.5px;color:var(--pd-text-3)}
.pd-assets-tablewrap{overflow:auto;border:1px solid var(--db-border);border-radius:10px}
.pd-assets-table{width:100%;border-collapse:collapse;font-size:12.5px}
.pd-assets-table th{background:var(--db-accent-soft);color:var(--db-accent-strong);text-align:left;padding:9px 12px;font-weight:600;white-space:nowrap}
.pd-assets-table td{padding:10px 12px;border-top:1px solid var(--db-border);vertical-align:top;line-height:1.6}
.pd-assets-table tbody tr:hover{background:rgba(31,92,77,.04)}
.pd-assets-empty{text-align:center;color:var(--pd-text-3);padding:18px !important}
.pd-kb-layout.is-assets-only{grid-template-columns:minmax(0,1fr)}
.pd-kb-layout.is-assets-only .pd-kb-side{display:none}
.pd-kb-layout.is-assets-only .pd-kb-tools,
.pd-kb-layout.is-assets-only #pd-kb-grid,
.pd-kb-layout.is-assets-only #pd-kb-empty{display:none}
.pd-asset-flag{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid var(--db-border);border-radius:999px;font-size:10px;color:var(--pd-text-3);font-weight:400;vertical-align:1px}
.pd-assets-table tbody tr[data-aid]{cursor:pointer}
.pd-asset-modal{max-width:760px;width:min(760px,92vw);max-height:84vh;display:flex;flex-direction:column;gap:10px}
.pd-asset-modal-meta{font-size:11.5px;color:var(--pd-text-3)}
.pd-asset-modal-sec b{display:block;font-size:12px;color:var(--pd-text-2);margin-bottom:4px}
.pd-asset-modal-sec p{margin:0 0 8px;font-size:12.5px;line-height:1.7}
.pd-asset-modal-body{max-height:46vh;overflow:auto;font-size:12.5px;line-height:1.7;border:1px solid var(--db-border);border-radius:8px;padding:10px 12px;background:#fff}
@media(max-width:1100px){.pd-assets-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---------- 知识 Wiki（2026-10-29，Karpathy LLM Wiki） ---------- */
.pd-wiki-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;background:#f4f8f6;border:1px solid #d9e5df;border-radius:14px;padding:14px 16px;margin-bottom:12px}
.pd-wiki-intro{max-width:720px;display:flex;flex-direction:column;gap:4px}
.pd-wiki-intro b{color:#1f5c4d;font-size:14px;letter-spacing:.2px}
.pd-wiki-intro span{color:#5b6b63;font-size:12.5px;line-height:1.7}
.pd-wiki-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pd-wiki-stats{font-size:12px;color:#6b747d;background:#fff;border:1px solid #e1e8e4;border-radius:999px;padding:4px 10px}
.pd-wiki-tools{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.pd-wiki-tools input{flex:1;min-width:180px;border:1px solid #d4d8dd;border-radius:10px;padding:8px 12px;font-size:13px;background:#fff}
.pd-wiki-tools input:focus{outline:none;border-color:#1f5c4d;box-shadow:0 0 0 3px rgba(31,92,77,.1)}
.pd-wiki-hint{font-size:12px;color:#8a949c;white-space:nowrap}
.pd-wiki-groups{display:flex;flex-direction:column;gap:20px}
.pd-wiki-group-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.pd-wiki-group-head h4{margin:0;font-size:14px;color:#1f2d27}
.pd-wiki-group-head h4 span{margin-left:6px;font-size:11px;color:#1f5c4d;background:#e6f0ec;border-radius:999px;padding:1px 7px}
.pd-wiki-group-head p{margin:0;font-size:12px;color:#8a949c}
.pd-wiki-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.pd-wiki-card{position:relative;background:#fff;border:1px solid #dde3e0;border-radius:12px;padding:13px 14px;cursor:pointer;transition:border-color .16s,box-shadow .16s,transform .16s;min-height:96px}
.pd-wiki-card:hover{border-color:#1f5c4d;box-shadow:0 6px 18px rgba(20,20,20,.08);transform:translateY(-1px)}
.pd-wiki-card:focus-visible{outline:none;border-color:#1f5c4d;box-shadow:0 0 0 3px rgba(31,92,77,.12)}
.pd-wiki-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.pd-wiki-type{font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 8px;background:#eef3f1;color:#456059}
.pd-wiki-type--topic{background:#e7f1ec;color:#1f5c4d}
.pd-wiki-type--source{background:#eef2f7;color:#3c5570}
.pd-wiki-type--entity{background:#f8efe4;color:#8a5a1f}
.pd-wiki-sub{font-size:10.5px;color:#7b858d}
.pd-wiki-date{margin-left:auto;font-size:10.5px;color:#a0a8ae}
.pd-wiki-card-title{font-size:13.5px;font-weight:700;color:#17211c;line-height:1.5;margin-bottom:4px}
.pd-wiki-card-sum{font-size:12px;color:#64706a;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pd-wiki-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.pd-wiki-card-tags span{font-size:10.5px;color:#6b7a73;background:#f2f5f3;border-radius:999px;padding:1px 7px}
.pd-wiki-del{position:absolute;top:9px;right:9px;border:1px solid #e3c9c9;background:#fff;color:#a34a4a;border-radius:7px;font-size:10.5px;padding:1px 7px;cursor:pointer;opacity:.55;transition:opacity .15s}
.pd-wiki-card:hover .pd-wiki-del{opacity:1}
.pd-wiki-del:hover{background:#fbeeee}
.pd-kb-card-del{position:absolute;top:8px;right:34px;z-index:3;border:1px solid #e3c9c9;background:#fff;color:#a34a4a;border-radius:7px;font-size:12px;line-height:1;padding:3px 5px;cursor:pointer;opacity:.55;transition:opacity .15s}
.pd-kb-card:hover .pd-kb-card-del{opacity:1}
.pd-kb-card-del:hover{background:#fbeeee}
.pd-kb-clear{display:block;width:100%;margin-top:6px;color:#a34a4a;border-color:#e3c9c9}
.pd-kb-clear:hover{background:#fbeeee;border-color:#c98b8b;color:#8c2f2f}

/* ---------- 视频发布追踪（2026-11-03） ---------- */
.pdpt-root{max-width:1500px;margin:0 auto;padding:22px 24px 40px}
.pdpt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.pdpt-kicker{font-size:11px;letter-spacing:1.4px;color:#1f5c4d;font-weight:700;margin-bottom:6px}
.pdpt-head h1{margin:0 0 6px;font-size:26px;color:#17211c;letter-spacing:-.2px}
.pdpt-desc{margin:0;max-width:760px;font-size:13px;line-height:1.75;color:#6b747d}
.pdpt-head-actions{display:flex;align-items:center;gap:8px;padding-top:6px}
.pdpt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
.pdpt-stat{background:#fff;border:1px solid #e1e7e3;border-radius:13px;padding:12px 14px;display:flex;align-items:baseline;gap:6px;box-shadow:0 1px 0 rgba(20,30,25,.02)}
.pdpt-stat span{font-size:12px;color:#7b858d;margin-right:2px}
.pdpt-stat b{font-size:22px;color:#17211c;line-height:1;font-variant-numeric:tabular-nums}
.pdpt-stat em{font-style:normal;font-size:11px;color:#9aa3aa}
.pdpt-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.pdpt-toolbar input{flex:1;min-width:240px;border:1px solid #d4d8dd;border-radius:10px;padding:9px 12px;font-size:13px;background:#fff}
.pdpt-toolbar select{border:1px solid #d4d8dd;border-radius:10px;padding:9px 10px;font-size:13px;background:#fff;color:#39443e}
.pdpt-toolbar input:focus,.pdpt-toolbar select:focus{outline:none;border-color:#1f5c4d;box-shadow:0 0 0 3px rgba(31,92,77,.1)}
.pdpt-count{font-size:12px;color:#8a949c;white-space:nowrap}
.pdpt-tablewrap{background:#fff;border:1px solid #e1e7e3;border-radius:14px;overflow:auto;box-shadow:0 2px 10px rgba(20,30,25,.03)}
.pdpt-table{width:100%;border-collapse:collapse;min-width:1200px}
.pdpt-table th{position:sticky;top:0;z-index:1;background:#f6f9f7;color:#5b6b63;font-size:11.5px;font-weight:700;letter-spacing:.3px;text-align:left;padding:11px 12px;border-bottom:1px solid #e5ebe7;white-space:nowrap}
.pdpt-table td{padding:12px;border-bottom:1px solid #eef2ef;vertical-align:top;font-size:12.5px;color:#39443e}
.pdpt-table tr:last-child td{border-bottom:none}
.pdpt-table tbody tr:hover{background:#fbfdfc}
.pdpt-title-cell{min-width:220px}
.pdpt-title-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.pdpt-title-row b{font-size:13.5px;color:#17211c;line-height:1.45}
.pdpt-sub{margin-top:3px;font-size:11.5px;color:#8a949c}
.pdpt-pill{font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 7px;white-space:nowrap}
.pdpt-pill--planned{background:#fdf3e2;color:#96621a}
.pdpt-pill--published{background:#e7f3ec;color:#1f5c4d}
.pdpt-pill--overdue{background:#fbeaea;color:#a33a3a}
.pdpt-time{white-space:nowrap;color:#53615a;font-variant-numeric:tabular-nums}
.pdpt-time b{color:#1f5c4d}
.pdpt-note-cell{max-width:330px;min-width:200px}
.pdpt-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.65;color:#4d5a53}
.pdpt-metrics-view{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:5px}
.pdpt-metrics-view span{font-size:10.5px;color:#5b6b63;background:#f1f5f3;border-radius:999px;padding:1px 7px}
.pdpt-muted{color:#b3bbc1}
.pdpt-actions{white-space:nowrap;width:118px}
.pdpt-btn{border:1px solid #d4d8dd;background:#fff;color:#3d4b44;border-radius:8px;font-size:11.5px;padding:4px 9px;cursor:pointer;margin-right:5px}
.pdpt-btn:hover{border-color:#1f5c4d;color:#1f5c4d}
.pdpt-btn--danger{color:#a34a4a;border-color:#e7d2d2}
.pdpt-btn--danger:hover{background:#fbeeee;border-color:#c98b8b;color:#8c2f2f}
.pdpt-loading{text-align:center;color:#8a949c;padding:40px 0}
.pdpt-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:56px 20px;text-align:center;color:#8a949c}
.pdpt-empty-icon{font-size:30px;margin-bottom:4px;opacity:.8}
.pdpt-empty b{font-size:14px;color:#4d5a53}
.pdpt-empty span{font-size:12.5px;line-height:1.7;max-width:520px}
.pdpt-modal-box{width:min(1160px,96vw);max-width:min(1160px,96vw);max-height:92vh;overflow:auto}
.pdpt-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding:4px 2px 2px}
.pdpt-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.pdpt-field--full{grid-column:1/-1}
.pdpt-field>span{font-size:12px;font-weight:700;color:#4d5a53}
.pdpt-account-row{display:flex;gap:6px;align-items:stretch}
.pdpt-account-row select{flex:1;min-width:0}
.pdpt-account-add{white-space:nowrap;font-size:12px;padding:6px 10px}

/* 账号总览 */
.pdpt-accoverview{margin:14px 0 4px}
.pdpt-accoverview-head{font-size:13px;font-weight:800;color:#33443c;margin-bottom:8px}
.pdpt-accoverview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.pdpt-acccard{border:1px solid #e2e6e2;border-radius:12px;background:#fff;padding:12px 14px;display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.pdpt-acccard:hover{border-color:#1f5c4d;box-shadow:0 2px 8px rgba(31,92,77,.12)}
.pdpt-acccard.is-on{border-color:#1f5c4d;background:#f0f6f3;box-shadow:0 0 0 2px rgba(31,92,77,.18)}
.pdpt-acccard.is-on .pdpt-acccard-name::after{content:" · 查看中";color:#1f5c4d;font-weight:700;font-size:12px}
.pdpt-acccard-name{font-size:14px;color:#1f5c4d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdpt-acccard-nums{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:#5b6a62}
.pdpt-field>span i{color:#b45309;font-style:normal}
.pdpt-field input,.pdpt-field select,.pdpt-field textarea{border:1px solid #d4d8dd;border-radius:9px;padding:8px 10px;font-size:13px;background:#fff;font-family:inherit;color:#25302a}
.pdpt-field input:focus,.pdpt-field select:focus,.pdpt-field textarea:focus{outline:none;border-color:#1f5c4d;box-shadow:0 0 0 3px rgba(31,92,77,.1)}
.pdpt-field textarea{resize:vertical;line-height:1.65}
.pdpt-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:7px}
.pdpt-metrics label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#7b858d}
.pdpt-metrics input{width:100%;padding:6px 8px;font-size:12px}
.pdpt-hint{font-size:10.5px;font-weight:600;color:#8a968f;font-style:normal;margin-left:6px}
.pdpt-autoobs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;margin:2px 0 12px;background:#f0f6f3;border:1px solid #dbe7e0;border-radius:10px}
.pdpt-autoobs-toggle{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#1f5c4d;cursor:pointer}
.pdpt-autoobs-toggle input{width:15px;height:15px;cursor:pointer}
.pdpt-autoobs select{border:1px solid #cdd8d2;border-radius:8px;padding:5px 8px;font-size:12px;background:#fff;color:#25302a;font-family:inherit}
.pdpt-autoobs select:disabled{opacity:.5}
.pdpt-autoobs .pdpt-auto-now{font-size:12px;padding:5px 11px;border-radius:999px}
.pdpt-autoobs .pdpt-auto-now[disabled]{opacity:.55;cursor:default}
.pdpt-autoobs-status{font-size:11.5px;color:#6b7a72;margin-left:auto}
.pdpt-cell-main{display:flex;align-items:center;gap:9px;min-width:0}
.pdpt-cover{flex:0 0 auto;width:40px;height:53px;object-fit:cover;border-radius:6px;background:#eef1ef;border:1px solid #e0e5e1}
.pdpt-cover--ph{display:flex;align-items:center;justify-content:center;font-size:18px;color:#b7c0bb}
.pdpt-cell-text{min-width:0;flex:1}
.pdpt-cover-view{margin-bottom:7px;display:flex;align-items:center;gap:10px}
.pdpt-cover-view img{width:56px;height:74px;object-fit:cover;border-radius:8px;border:1px solid #e0e5e1;background:#eef1ef}
.pdpt-cover-view .pdpt-cover-view-tip{font-size:11.5px;color:#6b7a72}
.pdpt-hist-btn{font-size:12px;padding:6px 11px;border-radius:8px;margin-left:4px}
.pdpt-hist-box{max-width:560px}
.pdpt-hist-body{padding:12px 16px;max-height:52vh;overflow:auto}
.pdpt-hist-tip{font-size:12px;color:#6b7a72;margin:0 0 10px;line-height:1.6}
.pdpt-hist-list{display:flex;flex-direction:column;gap:6px}
.pdpt-hist-empty{font-size:12.5px;color:#9aa49e;padding:16px 0;text-align:center}
.pdpt-hist-row{display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px solid #e2e6e2;border-radius:9px;background:#f7faf8}
.pdpt-hist-row .pdpt-hist-time{font-size:12.5px;color:#25302a;font-weight:600}
.pdpt-hist-row .pdpt-hist-count{font-size:11.5px;color:#6b7a72}
.pdpt-hist-row .pdpt-hist-restore{margin-left:auto;font-size:11.5px;padding:4px 11px;border-radius:999px}
.pdpt-hist-row.is-now{opacity:.7;background:#eef2ef}
.pdpt-obs-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.pdpt-obs-head>span{font-size:12px;font-weight:700;color:#4d5a53}
.pdpt-observe-btn{font-size:11.5px;padding:4px 10px;border-radius:999px;white-space:nowrap}
.pdpt-observe-btn[disabled]{opacity:.55;cursor:default}
.pdpt-observed-at{font-size:11px;color:#1f5c4d;margin:-2px 0 6px}
.pdpt-snapshots{display:flex;flex-direction:column;gap:4px;margin-bottom:7px;max-height:150px;overflow:auto;border:1px solid #e6eae7;border-radius:9px;padding:7px 9px;background:#f7faf8}
.pdpt-snapshots .pdpt-snap-title{font-size:11px;font-weight:700;color:#4d5a53;margin-bottom:1px}
.pdpt-snap-row{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:11.5px;color:#5b6a62;align-items:center}
.pdpt-snap-row .pdpt-snap-time{color:#8a968f;min-width:78px}
.pdpt-snap-delta{font-weight:700}
.pdpt-snap-delta.up{color:#1f9d6b}
.pdpt-snap-delta.flat{color:#8a968f}
.pdpt-trend{font-weight:700}
.pdpt-trend.up{color:#1f9d6b}
.pdpt-trend.down{color:#b45309}
.pdpt-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}
.pdpt-msg{margin-right:auto;font-size:12px;color:#a33a3a}
.pdpt-actions-col{width:210px}
@media (max-width:900px){
  .pdpt-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pdpt-form{grid-template-columns:1fr}
  .pdpt-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pdpt-root{padding:16px 12px 30px}
}

/* 发布追踪 · 关联拍摄文案（2026-11-05） */
.pdpt-script-row{display:flex;gap:8px;align-items:center}
.pdpt-script-row select{flex:1;min-width:0}
.pdpt-script-refresh{white-space:nowrap}
.pdpt-script-cell{min-width:150px;max-width:210px}
.pdpt-script-tag{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#3c5570;background:#eef2f7;border-radius:7px;padding:2px 7px;vertical-align:top}

/* 发布追踪 · 关键词 / 完播 / 转化 / 提醒（2026-11-05） */
.pdpt-keys{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.pdpt-keys span{font-size:10.5px;color:#5b6b63;background:#f1f5f3;border-radius:999px;padding:1px 7px}
.pdpt-remind-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pdpt-remind-row input[type="datetime-local"]{flex:1;min-width:190px}
.pdpt-remind-done{display:flex;align-items:center;gap:5px;font-size:12px;color:#6b747d;white-space:nowrap}
.pdpt-remind{font-size:10.5px;color:#7b858d;margin-top:3px}
.pdpt-remind.is-due{color:#a33a3a;font-weight:700}
.pdpt-comp-view,.pdpt-conv-view{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.pdpt-comp-view span{font-size:10.5px;color:#3c5570;background:#eef2f7;border-radius:999px;padding:1px 7px}
.pdpt-conv-view span{font-size:10.5px;color:#1f5c4d;background:#e7f3ec;border-radius:999px;padding:1px 7px}
.pdpt-hint{font-size:10.5px;color:#9aa3aa;font-weight:400}
.pdpt-metrics--conv{grid-template-columns:repeat(auto-fit,minmax(98px,1fr))}
.pdpt-remind-bar{background:#fff7ed;border:1px solid #f2d5ad;border-radius:13px;padding:11px 13px;margin-bottom:12px;display:flex;flex-direction:column;gap:7px}
.pdpt-remind-title{font-size:12.5px;font-weight:700;color:#8a5a1f}
.pdpt-remind-item{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #f3e2cb;border-radius:9px;padding:6px 9px;font-size:12px;color:#4d5a53}
.pdpt-remind-item b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.pdpt-remind-item span{font-size:11px;color:#a06a2c;white-space:nowrap}
.pdpt-remind-more{font-size:11px;color:#a06a2c}
.pdpt-remind-enable{align-self:flex-start;margin-top:2px}
