/* ═══════════════════════════════════════════════════════════════════
   kdd-unified.css · 知微前台统一设计系统 · 全站唯一 CSS 权威入口
   ★ V13.0.096(小豆): 全站前端架构重构——导航唯一性+首页数据卡+深色兜底清零 2026-10-13
   ★ V13.0.097(小豆): 学习中心 Token 对齐——语义令牌/9级字阶/间距20px/图表10色/焦点环 2026-10-13
   ★ V13.0.100(小豆): 统一骨架让位根治——5套页面骨架边距分裂(200/386/0px)收敛为 var(--side-w),
                      消灭 6 页主区被 fixed 侧栏遮住 + dashboard/chat/explorer 主区 50px 重叠 2026-10-19
   ───────────────────────────────────────────────────────────────────
   定位: 全站所有页面唯一 CSS 入口（直服10页 + ai-docs 1851页 + 未来新增页）。
         由 nginx sub_filter 统一注入 </head> 前最后一位。
   结构（重组非堆叠）:
     0 设计令牌(自包含: 合并 variables.css+tokens.css 语义层, OKLCH, 白浅金)
     1 基础排版(clamp 流体 + 1.25 模块化比例)
     2 布局骨架(顶栏/侧栏/主区/页脚)
     3 导航组件(.kdd-topnav 顶栏 / .z-adocs-sidebar 侧栏 / .zw-breadcrumb 面包屑唯一权威)
     4 内容组件(卡片/表格/代码块/徽章/按钮/页脚, 金色仅 accent 不铺底)
     5 响应式(640/768/1024/1280, 合并 responsive.css)
     6 移动端增强(z-adocs-sidebar 抽屉, 合并 mobile-enhance.css)
     7 无障碍(WCAG 2.2 AA: 对比度≥4.5:1 / 焦点环 / prefers-reduced-motion)
     8 深色残留兜底(白名单式压平历史深色 chrome, 禁止误伤内容代码块)
     9 布局规范性令牌(间距/圆角/阴影/焦点环/字体/图表10色, V13.0.095)
    10 统一骨架让位(全站主容器统一 margin-left:var(--side-w), V13.0.100)
   硬约束: 全站任何页面任何 chrome 元素不允许深色背景；白浅金 --canvas/--surface 底
           + 金色正文 --brand(--g700) / 鎏金 --brand-gold(--g400) accent。
           V2.1.001 对齐: 全部颜色走语义 Token（--ink/--s200/--ok/--chart-* 等），禁裸 hex 声明值。
           V13.0.100: 页面骨架唯一权威=本文件区块 10, 主容器边距一律 var(--side-w), 禁页面自定 200/386px。
   依赖: 自包含, 不依赖 tokens.css / variables.css / responsive.css / mobile-enhance.css
         （上述文件已置空壳, 仅防 404, 内容指向本文件）。
   用法: <link rel="stylesheet" href="/css/kdd-unified.css?v=13.0.100">
   ═══════════════════════════════════════════════════════════════════ */

/* ═══════════════ 区块 0 · 设计令牌（KDD 学习中心 V2.1.001 对齐 · 白浅金） ═══════════════ */
:root{
  /* ── 品牌金色阶（g400 品牌基准；#D4AF37 对白仅1.98:1 禁作正文文字） ── */
  --g50:#FBF7E8; --g100:#F5ECD0; --g200:#EAD79A; --g300:#DFC36C;
  --g400:#D4AF37; --g500:#B8942F; --g600:#9A7A22; --g700:#8A6D1E; --g800:#5E4913;

  /* ── Slate 中性灰阶（s50 画布 → s900 最深；s200 对齐学习中心 #E2E8F0） ── */
  --s50:#F8FAFC; --s100:#F1F5F9; --s200:#E2E8F0; --s300:#CBD5E1;
  --s400:#94A3B8; --s500:#64748B; --s600:#475569; --s700:#334155;
  --s800:#1E293B; --s900:#0F172A;

  /* ── 语义状态色（成功/警告/错误/信息 + 状态底；状态色禁用于价格涨跌） ── */
  --ok:#0D9488; --warn:#D97706; --err:#DC2626; --info:#B8942F;
  --ok-bg:#F0FDFA; --warn-bg:#FFFBEB; --err-bg:#FEF2F2; --info-bg:#F5F5F5;
  --warn-ink:#92400E;   /* 警告可读深字：--warn 3.9:1 禁作正文，alert/标签正文场景专用 */
  --ok-ink:#166534;      /* 成功可读深字：--ok 实测3.75:1 不达正文AA，alert 正文场景专用（对白7.13:1） */

  /* ── 涨跌（中国惯例：涨红跌绿，不变） ── */
  --up:#B91C1C; --down:#0F766E;

  /* ── 学习中心语义别名 ── */
  --canvas:var(--s50);
  --surface:#FFFFFF;
  --white:#FFFFFF;          /* 深色兜底 !important 覆盖块专用白值别名 */
  --line:var(--s200);
  --ink:var(--s800);
  --ink-2:var(--s600);
  --ink-3:var(--s500);
  --brand:var(--g700);      /* 知微适配：全站 var(--brand) 引用=金色正文（5.12:1 AA），无缝承接旧 #b8860b 链接语境 */
  --brand-hover:var(--g500);
  --brand-ink:var(--g700);
  --brand-gold:var(--g400);  /* 鎏金装饰/按钮金底（对白1.98:1，禁作正文文字） */
  --brand-deep:var(--g500);  /* 旧名兼容（= --brand-hover） */
  --brand-on:#3F300C;        /* 金底深字（#D4AF37 上 7.2:1） */
  --focus:var(--g700);       /* 焦点环（对白底 5.12:1 ≥3:1 WCAG 2.4.11） */

  /* ── 知微特色（白浅金 VI 保留，不随学习中心灰化） ── */
  --border-gold:#e8e2d0;     /* 知微浅金边框（chrome 分隔视觉特色，--border 引用之） */
  --cream-1:#fdfaf0;         /* hero 米白端 */
  --cream-2:#f6f0e0;         /* hero 米金渐变端 */
  --gold-pale:rgba(212,175,55,0.10);  /* 浅金弱底（active/hover） */
  --kdd-gold:var(--g400);     /* 旧内联样式 var(--kdd-gold) 兼容别名 */

  /* ── 知微旧语义别名映射（全站 var() 引用零改动） ── */
  --bg:var(--canvas);
  --bg-elevated:var(--surface);
  --bg-sunken:var(--s100);
  --border:var(--border-gold);
  --border-soft:var(--line);
  --text:var(--ink);
  --text-soft:var(--ink-2);
  --text-faint:var(--ink-3);
  --link:var(--brand);
  --on-brand:var(--brand-on);
  --danger:var(--err);

  /* ── 9 级字阶（正文最小14px 红线；Caption/Micro 仅短标签/徽章） ── */
  --fs-display:2rem; --fs-h1:1.5rem; --fs-h2:1.125rem; --fs-h3:15px;
  --fs-body:14px; --fs-body-strong:14px; --fs-sm:12.5px; --fs-cap:11.5px; --fs-micro:10.5px;
  --lh-tight:1.2; --lh-head:1.35; --lh-body:1.6;

  /* ── 图表 10 色序列（对齐 charts.html KDD_THEME.color） ── */
  --chart-1:var(--g400); --chart-2:var(--g700); --chart-3:var(--g500);
  --chart-4:var(--g800); --chart-5:var(--g300); --chart-6:var(--g600);
  --chart-7:var(--g200); --chart-8:var(--s700); --chart-9:var(--ok); --chart-10:var(--info);

  /* ── 8px 间距阶梯（学习中心风格；补 20px 档） ── */
  --sp-0:0; --sp-0\.5:4px; --sp-1:8px; --sp-2:12px; --sp-3:16px;
  --sp-4:20px; --sp-5:24px; --sp-6:32px; --sp-8:48px; --sp-12:64px;
  /* 旧 --kdd-space-* 映射到 --sp-*（新增 --kdd-space-9:20px） */
  --kdd-space-1:var(--sp-0\.5); --kdd-space-2:var(--sp-1); --kdd-space-3:var(--sp-2);
  --kdd-space-4:var(--sp-3); --kdd-space-5:var(--sp-5); --kdd-space-6:var(--sp-6);
  --kdd-space-7:var(--sp-8); --kdd-space-8:var(--sp-12); --kdd-space-9:var(--sp-4);

  /* ── 组件层令牌（保留） ── */
  --kdd-radius-sm:4px; --kdd-radius-md:8px; --kdd-radius-lg:12px; --kdd-radius-xl:16px; --kdd-radius-pill:999px;
  --r-sm:4px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-full:9999px;
  --kdd-shadow-sm:0 1px 2px rgb(15 23 42 / 0.06), 0 1px 3px rgb(15 23 42 / 0.08);
  --kdd-shadow-md:0 4px 8px rgb(15 23 42 / 0.08), 0 2px 4px rgb(15 23 42 / 0.06);
  --kdd-shadow-lg:0 12px 24px rgb(15 23 42 / 0.12), 0 4px 8px rgb(15 23 42 / 0.08);
  --kdd-font-display:"Space Grotesk","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --kdd-font-body:"Inter","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --kdd-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --kdd-header-h:64px;
  --sidebar-width:220px;
  --touch-target:44px;
  --focus-outline:2px solid var(--focus);
  --focus-offset:2px;
  color-scheme:light;
}

/* ═══════════════ 区块 1 · 基础排版（clamp 流体，1.25 模块化比例） ═══════════════ */
html{ font-size:16px; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--kdd-font-body);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  margin:0; padding:0;
}
h1,h2,h3,h4,h5,h6{ font-family:var(--kdd-font-display); line-height:1.2; color:var(--text); font-weight:650; }
h1{ font-size:clamp(1.6rem, 2.4vw + 0.8rem, 2.4rem); letter-spacing:-0.02em; }
h2{ font-size:clamp(1.25rem, 1.6vw + 0.6rem, 1.7rem); margin-top:2rem; letter-spacing:-0.015em; }
h3{ font-size:clamp(1.1rem, 1.2vw + 0.5rem, 1.35rem); }
p{ max-width:72ch; }
a{ color:var(--link); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }
code,pre,kbd{ font-family:var(--kdd-font-mono); }
::selection{ background:rgba(212,175,55,0.30); }
img,video{ max-width:100%; height:auto; }

/* ═══════════════ 区块 2 · 布局骨架（容器/主区/页脚） ═══════════════ */
.kdd-container{ max-width:1100px; margin:0 auto; padding:clamp(16px, 4vw, 40px) clamp(16px, 4vw, 32px); }
.kdd-content{ max-width:80ch; }
.kdd-content > *{ margin-bottom:1rem; }
.kdd-page-header{ margin-bottom:2rem; padding-bottom:1.25rem; border-bottom:1px solid var(--border); }
.kdd-page-header .kdd-title{ margin:0 0 0.5rem; }
.kdd-lead{ color:var(--text-soft); font-size:clamp(0.95rem, 1vw + 0.5rem, 1.1rem); margin:0; max-width:60ch; }
/* 容器与子项 min-width:0 防内容撑破（V13.0.087 溢出根治） */
.main-area, .main-area > *, .kdd-grid, [class*="col-"]{ min-width:0; max-width:100%; }
/* 首页 sidebar-layout 经典布局（侧栏 fixed 脱流，主区 margin-left 让位） */
body.sidebar-layout{ display:block !important; }
body.sidebar-layout .main-area{ display:block; width:auto; margin-left:var(--sidebar-width); min-width:0; }

/* ═══════════════ 区块 3 · 导航组件（顶栏 / 侧栏 / 面包屑） ═══════════════ */
/* ── 3.1 统一顶栏 .kdd-navbar / .kdd-template-nav（白底金 accent） ── */
.kdd-navbar, .kdd-template-nav{
  position:sticky; top:0; z-index:1000;
  background:var(--bg-elevated);
  border-bottom:1px solid var(--border);
  box-shadow:var(--kdd-shadow-sm);
}
.kdd-template-nav{ flex:none; flex-shrink:0; width:auto; margin-left:var(--sidebar-width); align-self:flex-start; height:auto; }
.navbar-container{
  max-width:1280px; margin:0 auto; padding:0 clamp(12px, 2vw, 24px);
  display:flex; align-items:center; gap:16px; min-height:var(--kdd-header-h);
}
.navbar-logo{ display:flex; align-items:center; gap:8px; font-weight:650; color:var(--brand); white-space:nowrap; }
.navbar-logo img{ height:24px; width:auto; }
.navbar-links{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav-link{
  display:inline-flex; align-items:center; min-height:44px; padding:8px 12px;
  border-radius:var(--kdd-radius-md); font-size:0.92rem; color:var(--text-soft);
  white-space:nowrap; transition:background 150ms ease, color 150ms ease;
}
.nav-link:hover{ background:var(--gold-pale); color:var(--brand); text-decoration:none; }
.nav-link[aria-current], .nav-link.active{ color:var(--brand); font-weight:600; }
/* 汉堡按钮（kdd-nav.js 注入，移动端显示） */
.kdd-nav-toggle{
  display:none; margin-left:auto; min-height:44px; min-width:44px;
  align-items:center; justify-content:center;
  background:transparent; border:1px solid var(--border);
  border-radius:var(--kdd-radius-md); cursor:pointer; color:var(--brand);
}
.kdd-nav-toggle:hover{ background:var(--gold-pale); }
.kdd-nav-toggle svg{ width:22px; height:22px; }

/* ── 3.2 统一侧栏 .z-adocs-sidebar（白底，金色 active/hover） ── */
body .z-adocs-sidebar, body.v13-body .z-adocs-sidebar{
  background:var(--bg-elevated) !important;
  background-image:none !important;
  color:var(--text) !important;
  border-right:1px solid var(--border) !important;
}
body.v13-body .z-adocs-sb-header, body.v13-body .z-adocs-sb-footer{
  color:var(--text) !important; background:var(--bg-elevated) !important; background-image:none !important;
}
body.v13-body .z-adocs-sb-item{
  background-image:none !important; background-color:var(--bg-elevated) !important;
}
.z-adocs-sb-item a, .z-adocs-sb-item .z-adocs-sb-label{ color:var(--text-soft) !important; }
.z-adocs-sb-item.active a, .z-adocs-sb-item:hover a,
.z-adocs-sb-item.active .z-adocs-sb-label, .z-adocs-sb-item:hover .z-adocs-sb-label{ color:var(--brand) !important; }

/* ── 3.3 面包屑唯一权威 .zw-breadcrumb（浅金底，全站 chrome 层唯一面包屑） ── */
.zw-breadcrumb{
  font-size:0.85rem; color:var(--text-soft);
  padding:10px clamp(16px, 4vw, 32px);
  background:var(--bg-sunken);
  border-bottom:1px solid var(--border);
  overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch;
}
.zw-breadcrumb a{ color:var(--link); }
.zw-breadcrumb a:hover{ color:var(--brand-deep); }
.zw-breadcrumb .sep, .zw-breadcrumb .separator{ color:var(--text-faint); margin:0 6px; }
/* 兼容旧 .kdd-breadcrumb 同名样式（浅色，不隐藏——它是内容区合法面包屑） */
.kdd-breadcrumb{
  font-size:0.85rem; color:var(--text-soft);
  padding:10px clamp(16px, 4vw, 32px); background:var(--bg-sunken);
  border-bottom:1px solid var(--border);
  overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch;
}
.kdd-breadcrumb a{ color:var(--link); }
.kdd-breadcrumb .sep{ color:var(--text-faint); margin:0 6px; }

/* ═══════════════ 区块 4 · 内容组件（金色仅 accent 不铺底） ═══════════════ */
/* Hero（浅金浅色版，chrome 层禁深色） */
.kdd-hero{
  text-align:center; padding:clamp(32px, 6vw, 56px) clamp(20px, 4vw, 40px);
  border-radius:var(--kdd-radius-xl); margin-bottom:2.5rem;
  background:var(--cream-1);
  border:1px solid var(--border); color:var(--text);
}
.kdd-hero .kdd-title{ color:var(--brand); margin:0 0 0.75rem; }
.kdd-hero .kdd-lead{ color:var(--text-soft); margin:0 auto; }
/* 卡片与网格 */
.kdd-grid{ display:grid; gap:16px; grid-template-columns:repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
.kdd-card{
  background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:var(--kdd-radius-lg); padding:20px;
  box-shadow:var(--kdd-shadow-sm); transition:box-shadow 200ms ease, transform 200ms ease;
}
.kdd-card-link{ display:block; color:var(--text); }
.kdd-card-link:hover{ box-shadow:var(--kdd-shadow-md); transform:translateY(-2px); text-decoration:none; }
.kdd-card-link h3{ margin:0 0 0.5rem; color:var(--text); font-size:1.05rem; }
.kdd-card-link p{ margin:0; color:var(--text-soft); font-size:0.9rem; }
/* 标签 */
.kdd-tag{
  display:inline-flex; align-items:center; gap:4px; min-height:24px; padding:2px 10px;
  border-radius:var(--kdd-radius-pill); font-size:0.8rem; font-weight:550;
  background:var(--bg-sunken); color:var(--text-soft); border:1px solid var(--border);
}
.kdd-tag[data-tone="info"]{ color:var(--brand); }
.kdd-tag[data-tone="success"]{ color:var(--ok); }
.kdd-tag[data-tone="warning"]{ color:var(--warn); }
.kdd-tag[data-tone="danger"]{ color:var(--danger); }
/* 按钮 */
.kdd-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:44px; padding:0 20px; border-radius:var(--kdd-radius-md);
  border:1px solid transparent; cursor:pointer; font-size:0.95rem; font-weight:550;
  background:var(--brand-gold); color:var(--on-brand);
  transition:background 150ms ease, transform 100ms ease;
}
.kdd-btn:hover{ background:var(--brand-deep); text-decoration:none; }
.kdd-btn:active{ transform:scale(0.98); }
.kdd-btn[data-variant="secondary"]{ background:var(--bg-elevated); border-color:var(--border); color:var(--text); }
.kdd-btn[data-variant="gold"]{ background:var(--brand-gold); color:var(--on-brand); }
.kdd-btn[data-variant="gold"]:hover{ background:var(--brand-deep); }
/* 提示 */
.kdd-alert{ padding:14px 16px; border-radius:var(--kdd-radius-md); margin:1rem 0; border:1px solid; font-size:0.92rem; background:var(--bg-elevated); }
.kdd-alert[data-tone="info"]{ border-color:var(--info-bg); color:var(--info); }
.kdd-alert[data-tone="success"]{ border-color:var(--ok-bg); color:var(--ok-ink); }
.kdd-alert[data-tone="warning"]{ border-color:var(--warn-bg); color:var(--warn-ink); }
.kdd-alert[data-tone="danger"]{ border-color:var(--err-bg); color:var(--err); }
/* 代码块（统一组件 .kdd-code 全 chrome；裸 pre 不强制背景，不覆盖内容层代码块配色） */
:where(pre, .kdd-code){ border-radius:var(--kdd-radius-md); font-size:0.88rem; line-height:1.6; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.kdd-code{ background:var(--bg-sunken); border:1px solid var(--border); padding:16px; color:var(--text); }
/* 页脚 */
.kdd-footer{
  margin-top:3rem; padding:24px clamp(16px, 4vw, 32px);
  border-top:1px solid var(--border);
  color:var(--text-faint); font-size:0.85rem; text-align:center;
}
/* 模板类别名（content/topic/integration 对齐内容排版） */
.kdd-template-content, .kdd-template-topic, .kdd-template-integration{ max-width:80ch; }
.kdd-template-content > *, .kdd-template-topic > *, .kdd-template-integration > *{ margin-bottom:1rem; }
.kdd-template-content .kdd-page-header, .kdd-template-topic .kdd-page-header, .kdd-template-integration .kdd-page-header{ margin-bottom:2rem; padding-bottom:1.25rem; border-bottom:1px solid var(--border); }
.kdd-template-content h1, .kdd-template-topic h1, .kdd-template-integration h1,
.kdd-template-content h2, .kdd-template-topic h2, .kdd-template-integration h2,
.kdd-template-content h3, .kdd-template-topic h3, .kdd-template-integration h3{ font-family:var(--kdd-font-display); line-height:1.2; color:var(--text); font-weight:650; }
.kdd-template-content p, .kdd-template-topic p, .kdd-template-integration p{ color:var(--text-soft); }
/* 金底元素一律深字（覆盖内联金底按钮，金黑配≥8:1） */
[style*="background:#D4AF37"], [style*="background:#d4af37"],
[style*="background:#B8860B"], [style*="background:#b8860b"],
[style*="background:var(--kdd-gold)"], [style*="background:var(--brand)"],
.kdd-ds .kdd-btn-primary{ color:var(--on-brand) !important; }
.kdd-ds .kdd-btn-primary:hover{ background:var(--brand-deep); color:var(--on-brand); }

/* ═══════════════ 区块 5 · 响应式（640/768/1024/1280，合并 responsive.css） ═══════════════ */
.container, .main-content, .v13-main, .timeline-page{ max-width:100%; padding-left:16px; padding-right:16px; }
.table-responsive{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 -16px; padding:0 16px; }
.table-responsive table{ min-width:600px; }
/* ≤640px 导航折叠为汉堡+横向滚动 */
@media (max-width:640px){
  .navbar-container{ flex-wrap:wrap; padding:8px 12px; gap:8px; }
  .navbar-links{ order:3; flex-basis:100%; margin-left:0; overflow-x:auto; -webkit-overflow-scrolling:touch; gap:2px; scrollbar-width:none; display:none; }
  .navbar-links::-webkit-scrollbar{ display:none; }
  .kdd-navbar.is-open .navbar-links{ display:flex; }
  .kdd-nav-toggle{ display:inline-flex; }
  .kdd-navbar .navbar-links .nav-link{ min-height:40px; }
  .sidebar-toggle{ margin-right:8px; }
  .kdd-sidebar input[type="text"]{ padding-left:52px; }
  .kdd-grid{ grid-template-columns:1fr; }
  .kdd-hero{ padding:28px 18px; border-radius:var(--kdd-radius-lg); }
  .kdd-page-header{ margin-bottom:1.25rem; }
  .grid, .card-grid, .stats-grid, .entity-grid, .dashboard-cards{ grid-template-columns:1fr !important; gap:16px !important; }
}
@media (min-width:641px) and (max-width:1023px){
  .grid, .card-grid, .stats-grid, .entity-grid, .dashboard-cards{ grid-template-columns:repeat(2,1fr) !important; }
  .container, .main-content, .v13-main, .timeline-page{ padding-left:24px; padding-right:24px; }
}
@media (min-width:1024px){
  .grid, .card-grid, .stats-grid, .dashboard-cards{ grid-template-columns:repeat(3,1fr) !important; }
  .entity-grid{ grid-template-columns:repeat(4,1fr) !important; }
  .container, .main-content, .v13-main, .timeline-page{ padding-left:32px; padding-right:32px; }
}
@media (min-width:1280px){ .kdd-container{ max-width:1200px; } }
@media (min-width:1536px){ .kdd-container{ max-width:1280px; } }
/* 表格窄屏卡片堆叠 + 横向滚动（tokens 响应表） */
@media (max-width:640px){ table.resp, .resp-table{ display:block; } table.resp thead, .resp-table thead{ display:none; }
  table.resp tr, .resp-table tr{ display:block; border:1px solid var(--border); border-radius:8px; padding:8px 12px; margin-bottom:10px; background:var(--bg-elevated); }
  table.resp td, .resp-table td{ display:flex; justify-content:space-between; align-items:baseline; padding:6px 0; border:none; border-bottom:1px dashed var(--border); }
  table.resp td::before, .resp-table td::before{ content:attr(data-label); font-weight:600; color:var(--text-soft); margin-right:12px; flex-shrink:0; } }
@media (max-width:768px){ table{ display:block; width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border-collapse:collapse; } table thead, table tbody{ min-width:600px; } }
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:12px 0; }
.table-scroll table{ min-width:max-content; }

/* ═══════════════ 区块 6 · 移动端增强（z-adocs-sidebar 抽屉，合并 mobile-enhance.css） ═══════════════ */
/* 触控目标 44px */
a, button, .btn, [role="button"], .nav-link, .z-adocs-sb-item, .menu-item{ min-height:var(--touch-target); }
@media (max-width:640px){
  a, button, .z-adocs-sb-item, .nav-item, .menu-item, .sidebar-link, .chat-input-btn, .tool-btn{ min-height:var(--touch-target); min-width:var(--touch-target); }
  /* SPA 侧栏 → 抽屉（mobile-enhance.js 控制 .open） */
  .z-adocs-sidebar, aside.z-adocs-sidebar{
    position:fixed !important; top:0 !important; left:0 !important; bottom:0 !important;
    width:min(82vw, 320px) !important; height:100% !important;
    transform:translateX(-100%); transition:transform 0.3s cubic-bezier(0.33,1,0.68,1);
    z-index:1000 !important; overflow-y:auto !important; -webkit-overflow-scrolling:touch;
    padding-bottom:env(safe-area-inset-bottom, 20px) !important;
    box-shadow:0 0 40px rgba(15,23,42,0.20);
  }
  .z-adocs-sidebar.open{ transform:translateX(0); }
  .app-header, .topbar, .main-content, .content, .chat-layout, #app, .app-main, main{ margin-left:0 !important; padding-left:12px !important; padding-right:12px !important; width:auto !important; max-width:100% !important; }
  /* 首页侧栏抽屉化 */
  .sidebar, aside.sidebar, .side-nav{
    position:fixed !important; top:0 !important; left:0 !important; bottom:0 !important;
    width:min(82vw, 320px) !important; height:100% !important;
    transform:translateX(-100%); transition:transform 0.3s cubic-bezier(0.33,1,0.68,1);
    z-index:1000 !important; overflow-y:auto !important; -webkit-overflow-scrolling:touch;
    padding-bottom:env(safe-area-inset-bottom, 20px) !important;
  }
  .sidebar.open, aside.sidebar.open, .side-nav.open{ transform:translateX(0); }
  body.sidebar-layout .main-area{ margin-left:0 !important; width:100% !important; }
  .chat-layout{ grid-template-columns:1fr !important; }
  .side-stack{ display:none !important; }
  h1, .page-title{ font-size:clamp(22px, 6vw, 32px) !important; }
  h2, .section-title{ font-size:clamp(18px, 5vw, 26px) !important; }
  body{ font-size:15px; line-height:1.7; }
  input, textarea, select{ font-size:16px !important; min-height:44px; }
  body{ padding-bottom:env(safe-area-inset-bottom, 0px); }
}
@media (min-width:641px) and (max-width:1024px){
  .z-adocs-sidebar{ position:fixed !important; top:0; left:0; bottom:0; width:min(70vw,300px) !important; transform:translateX(-100%); transition:transform 0.3s; z-index:1000 !important; overflow-y:auto; }
  .z-adocs-sidebar.open{ transform:translateX(0); }
  .sidebar, aside.sidebar, .side-nav{ position:fixed !important; top:0; left:0; bottom:0; width:min(70vw,300px) !important; transform:translateX(-100%); z-index:1000 !important; overflow-y:auto; }
  .sidebar.open, aside.sidebar.open, .side-nav.open{ transform:translateX(0); }
}
@media (min-width:1025px){
  .z-adocs-sidebar{ transform:none !important; position:sticky !important; }
  .hamburger-btn, .back-top-btn, .sidebar-mask{ display:none !important; }
  .sidebar, aside.sidebar, .side-nav{ transform:none !important; position:fixed !important; top:0 !important; left:0 !important; width:var(--sidebar-width) !important; height:100% !important; box-shadow:none !important; }
  body.sidebar-layout .main-area{ margin-left:var(--sidebar-width) !important; }
}
@media (hover:none){ .card:hover, .btn:hover, .z-adocs-sb-item:hover, .tool-btn:hover{ transform:none !important; box-shadow:none !important; } }

/* ═══════════════ 区块 7 · 无障碍（WCAG 2.2 AA） ═══════════════ */
:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; border-radius:var(--r-sm); }
:focus:not(:focus-visible){ outline:none; }
.skip-link{ position:absolute; left:-9999px; top:0; z-index:2000; background:var(--brand-gold); color:var(--on-brand); padding:10px 16px; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }
#main-content{ scroll-margin-top:20px; }
input::placeholder{ color:var(--text-faint); opacity:1; }
@media (prefers-reduced-motion: reduce){ *, *::before, *::after{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; } }

/* ═══════════════ 区块 8 · 深色残留兜底（白名单式压平历史深色 chrome，禁误伤内容代码块） ═══════════════ */
/* 硬约束：全站任何 chrome 元素（导航/侧栏/面包屑/页头/页脚/卡片 chrome 层）禁深色背景。
   以下仅针对基线报告确认的已知深色选择器白名单压平，不做全局通配（内容层深色代码块/图表库内部配色不受影响）。 */

/* 8.1 body / 裸深色容器兜底（4页裸 #0a0e17/#0d1420 内联） */
body{ background:var(--canvas) !important; color:var(--ink) !important; }
body > div[style*="background:#0a0e17"], body > div[style*="background:#0d1420"],
body > div[style*="background:#030712"], body > div[style*="background:#0d1830"]{
  background:var(--surface) !important; color:var(--ink) !important;
}

/* 8.2 直服家族B深色输入框（dashboard/chat/explorer 的 INPUT.v13-input rgba(6,12,26,0.8)） */
input.v13-input, textarea.v13-input{
  background:var(--surface) !important; border:1px solid var(--border) !important;
  color:var(--ink) !important; -webkit-text-fill-color:var(--ink) !important;
}

/* 8.3 v13 深色面板/指标/聊天气泡（dashboard/chat/explorer/unified-explorer） */
.v13-panel, .v13-metric, .chat-panel, .chat-bubble, .top-bar, .info-panel, .loading-overlay{
  background:var(--surface) !important; color:var(--ink) !important; border-color:var(--border) !important;
}
.v13-panel h1, .v13-panel h2, .v13-panel h3, .v13-panel h4,
.v13-metric .metric-value, .v13-metric .metric-label{ color:var(--ink) !important; }
.chat-bubble{ border:1px solid var(--border) !important; }

/* 8.4 ai-docs 深色 chrome 组件残留（stat-card/card/trend-row/formula-box/quote/TH/sidebar） */
.stat-card, .trend-row, .formula-box, .quote, .dash-card, .kpi,
div[class*="card"][style*="#111827"], div[class*="card"][style*="#12121a"]{
  background:var(--surface) !important; color:var(--ink) !important; border:1px solid var(--border) !important;
}
.stat-value, .stat-label{ color:var(--ink) !important; }
th, thead th{ background:var(--s100) !important; color:var(--ink) !important; }
/* 深色侧栏/aside/侧栏切换按钮 */
aside.side, aside.sidebar, .sidebar-toggle, button.sidebar-toggle{
  background:var(--surface) !important; color:var(--ink) !important; border:1px solid var(--border) !important;
}
.sidebar-toggle:hover, button.sidebar-toggle:hover{ background:var(--s100) !important; color:var(--brand) !important; }
/* 深色侧栏链接文字提亮 */
.sidebar a, .sidebar .nav-label, .sidebar .sidebar-logo-text, .nav-tree-label,
.nav-tree-node > span, .nav-tree-category, .nav-toc-item a, .nav-backlinks-container a{ color:var(--s700) !important; }
.sidebar a:hover, .sidebar a.active, .sidebar .nav-link:hover{ color:var(--brand) !important; background:rgba(212,175,55,0.08) !important; }
.sidebar .nav-group-title, .sidebar .version{ color:var(--brand) !important; }
.sidebar .sidebar-search input{ background:var(--s50) !important; border-color:var(--border) !important; color:var(--ink) !important; }

/* 8.5 kdd-crosslink-card 深色卡片同步浅色化 */
.kdd-crosslink-card{
  background:var(--surface) !important; color:var(--ink) !important; border:1px solid var(--border) !important;
}
.kdd-crosslink-card h3{ color:var(--ink) !important; }

/* 8.6 深色 hero / header（机构页 hero #1a1f2e / header #141820） */
.hero[style*="#1a1f2e"], .hero[style*="#0a0e17"], header[style*="#141820"], header.hero{
  background:var(--cream-1) !important; color:var(--ink) !important; border:1px solid var(--border) !important;
}

/* 8.7 kdd-breadcrumb 深色残留压平（kdd-nav.js 注入的深色面包屑） */
.kdd-breadcrumb[style*="#0d1420"], .kdd-breadcrumb[style*="#0a0e17"]{
  background:var(--s100) !important; color:var(--ink-2) !important; border-bottom:1px solid var(--border) !important;
}

/* ═══════════════ 区块 2.补 · 家族B工作台布局兜底（dashboard/chat/explorer/devui） ═══════════════ */
/* 修复 P0: v13-cockpit.css 退役后, 消除首屏 990px 空白 + 顶导航压底;
   顶导航回到 y=0, 侧栏贴 x=0, 主区不被巨大 margin/padding-top 撑开。 */
body.v13-body{ padding-top:0 !important; }
body.v13-body .kdd-template-nav, body.v13-body .kdd-navbar{
  margin-top:0 !important; top:0 !important; position:sticky !important; width:auto !important;
}
body.v13-body .v13-shell, body.v13-body .v13-main{ margin-top:0 !important; }
/* 侧栏 z-adocs-sidebar 贴 x=0（基线偏 x=200 留 200px 空白条） */
body.v13-body .z-adocs-sidebar{ left:0 !important; }
body.v13-body .v13-shell{ margin-left: var(--sidebar-width,220px) !important; }
body.v13-body .v13-main{ width:auto; max-width:100%; }
/* devui 顶导航通栏（基线 w=719 未通栏） */
body.devui-body .kdd-template-nav, body.devui-body .kdd-navbar{
  width:100% !important; margin-left:0 !important;
}
/* 移动端下顶导航/主区全宽让位 */
@media (max-width:1024px){
  body.v13-body .v13-shell, body.v13-body .v13-main{ margin-left:0 !important; }
}

/* ═══════════════ 区块8补充 · 独立验证FAIL修复 V13.0.094(小豆) ═══════════════ */
/* 根因: 独立浏览器验证发现4项FAIL,以下白名单式压平已知深色chrome,禁止误伤内容正文 */

/* FAIL-1 P0: 家族B(dashboard/chat/explorer)侧栏偏 x=200 → 贴 x=0
   根因: ai-docs-sidebar.js 注入 body{margin-left:200px}, sidebar被插入含偏移容器;
   强制 fixed 相对视口, 清 transform/right/内联偏移, 内容避让交给 .v13-shell margin-left。 */
body.v13-body .z-adocs-sidebar{
  position:fixed !important; left:0 !important; top:0 !important; right:auto !important;
  margin:0 !important; transform:none !important;
}
body.v13-body{ margin-left:0 !important; }
body.v13-body .v13-shell, body.v13-body .v13-main{ margin-left:200px !important; }

/* FAIL-2 P1: ai-docs 深色内容卡片压平 (chapter-card/stat-card/formula-box/hero等,
   深色变量 --bg-card:#111827/#121826/#141d2e → 白系) */
:root{ --bg-card:var(--surface) !important; }
.chapter-card, .chapter-card.green, .chapter-card.orange, .chapter-card.purple,
.stat-card, .stat-box, .stat-value, .insight-card, .insight-card.green, .insight-card.orange, .insight-card.purple,
.theory-card, .formula-box, .card-header, .card-body, .arch-node, .trend-row,
.hero, .hero-badge, .header, header{
  background:var(--surface) !important; color:var(--ink) !important;
  border:1px solid var(--border-gold) !important;
}
.card-title, .chapter-card .card-num, .insight-card *{ color:var(--ink) !important; }

/* FAIL-3 P0: 老深色 kdd-navbar 压平+隐藏 (topnav已全站注入, 消除双条叠放; 保留类防JS报错) */
.kdd-navbar{ background:var(--surface) !important; display:none !important; }
.kdd-navbar *{ color:var(--ink) !important; }

/* FAIL-4 P1: 面包屑CSS去重 (不再依赖JS时序; 仅留 .zw-breadcrumb 唯一可见) */
.kdd-breadcrumb, .nav-breadcrumb-container{ display:none !important; }
.zw-breadcrumb{ display:block !important; }

/* ═══════════════ 区块8补充2 · 第三轮FAIL-2白名单补全 V13.0.094(小豆) ═══════════════ */
/* 复测实测残留: ai-docs深色页由整套深色CSS变量驱动(--bg-primary:#0a0e17等),
   非个别类; 批量语义级覆盖变量最安全, 避免裸.card泛选择器全站误伤 */

/* 1. 批量覆盖深色语义变量 (ai-docs/index/02432/agent-demo/ai-collab共享) */
:root{
  --bg:var(--white) !important;
  --bg-primary:var(--canvas) !important;
  --bg-secondary:var(--s50) !important;
  --bg-tertiary:var(--white) !important;
  --bg-card:var(--surface) !important;
  --bg-hover:var(--s100) !important;
  --border:var(--border-gold) !important;
  --border-color:var(--border-gold) !important;
  --text-primary:var(--ink) !important;
  --text-secondary:var(--ink-2) !important;
  --text-muted:var(--ink-3) !important;
}

/* 2. ai-collab等535页老.sidebar硬编码#1e293b深色侧栏 → 浅金白底
   (注: z-adocs侧栏是独立类.z-adocs-sidebar, 不受本规则影响) */
.sidebar{ background:var(--surface) !important; color:var(--ink) !important; border-right:1px solid var(--border-gold) !important; }
.sidebar-nav a{ color:var(--ink-2) !important; }
.sidebar-nav a:hover{ background:var(--s50) !important; color:var(--brand) !important; }

/* 3. 代码块统一浅色化 (用户硬规则: 任何元素禁深色背景; 保留浅金边框) */
code, pre{ background:var(--s50) !important; color:var(--ink) !important; border:1px solid var(--border-gold) !important; }

/* 4. 深色输入框压白 (agent-demo/ai-docs/index深色input) */
input, textarea, select{ background:var(--surface) !important; color:var(--ink) !important; border:1px solid var(--border-gold) !important; }

/* 5. 老.kdd-navbar强化隐藏 (复测ai-collab仍可见; topnav已全站注入) */
.kdd-navbar, nav.kdd-navbar{ display:none !important; background:var(--surface) !important; }

/* ═══════════════ 区块8补充3 · 第四轮硬编码深色收尾 V13.0.094(小豆) ═══════════════ */
/* 终验残留: 页面内联硬编码hex, 变量覆盖触达不到, 按变量/类精确补 */

/* ① ai-agent-industry: --surface(#12121a)/--surface-2(#1a1a26)深色卡片未在--bg系列覆盖;
   02432用--card(#111a2e)变量名(非--bg-card) */
:root{
  --surface:var(--white) !important;
  --surface-2:var(--s50) !important;
  --card:var(--white) !important;
}

/* ② 02432-dobot: .src(#0f172a)/.risk-box(#190f15)硬编码标签压浅(保留风险语义) */
.src{ background:var(--s50) !important; color:var(--ink) !important; }
.risk-box{ background:var(--warn-bg) !important; border-left:4px solid var(--brand) !important; color:var(--ink) !important; }

/* ③ ai-collab: 页面<style> body.kdd-fix-double-nav .kdd-navbar{display:flex!important}
   (V13.0.102保留LOGO条) 优先级高过裸.kdd-navbar; 终验判定为冗余flex小块(w=132),
   同优先级选择器覆盖隐藏 (topnav已全站注入, LOGO在topnav中) */
body.kdd-fix-double-nav .kdd-navbar{ display:none !important; }

/* ═══════════════ 区块 9 · 布局规范性令牌 V13.0.095(小豆) ═══════════════ */
/* 24列栅格 + 8px间距节奏 + 统一组件尺寸。白浅金体系，禁深色背景。
   栅格策略: .kdd-grid 默认保持自适应卡组(auto-fill)不回退 ai-docs 1851页;
   当子项携带 .kdd-col-* 工具类时(:has)切换为精确12列栅格——直服10页收敛专用。 */

/* 9.1 间距/容器/栅格令牌（8px 节奏） */
:root{
  /* --kdd-space-1~9 已上移区块0 统一映射 --sp-*（8px基准+20px档） */
  --kdd-container-max:1200px;
  --kdd-gutter-h:16px; --kdd-gutter-v:24px;
  --kdd-topnav-h:64px; --kdd-sidebar-w:224px;
  --kdd-text-max:65ch;
}

/* 9.2 容器收口：1200 居中，padding-inline 24 */
.kdd-container{ max-width:var(--kdd-container-max) !important; margin:0 auto; padding-inline:var(--kdd-space-5); }

/* 9.3 正文限宽 65ch（ai-docs 长文阅读规范，接管各正文容器类） */
.kdd-content, .kdd-content-area, .kdd-main > article, .kdd-article-body,
main.kdd-content, .kdd-prose{
  max-width:var(--kdd-text-max) !important; margin-inline:auto !important; line-height:1.6;
}

/* 9.4 栅格工具类：默认自适应卡组；子项带 col 类时切精确 12 列 */
.kdd-grid{ display:grid; gap:var(--kdd-gutter-v) var(--kdd-gutter-h); grid-template-columns:repeat(auto-fill, minmax(min(260px,100%),1fr)); }
.kdd-grid:has(> .kdd-col-4), .kdd-grid:has(> .kdd-col-6),
.kdd-grid:has(> .kdd-col-8), .kdd-grid:has(> .kdd-col-12){
  grid-template-columns:repeat(12, 1fr);
}
.kdd-col-4{ grid-column:span 4; }
.kdd-col-6{ grid-column:span 6; }
.kdd-col-8{ grid-column:span 8; }
.kdd-col-12{ grid-column:span 12; }

/* 9.5 组件收口：卡片 24/12、按钮 40、输入框 40（textarea 随内容增高） */
.kdd-card{ padding:var(--kdd-space-5) !important; border-radius:var(--kdd-radius-lg); background:var(--surface); border:1px solid var(--border); }
.kdd-btn{ height:40px !important; min-height:40px !important; border-radius:var(--kdd-radius-md); }
input, textarea, select, .v13-input{ height:40px; border-radius:var(--kdd-radius-md); }
textarea{ height:auto; min-height:40px; }

/* 9.6 区块间距收口 24/32/48 */
.kdd-section{ padding:var(--kdd-space-6) 0; }
.kdd-section-gap{ gap:var(--kdd-space-5); }

/* 9.7 响应式 ≤768：所有 col 全宽 span 12 */
@media (max-width:768px){
  .kdd-col-4, .kdd-col-6, .kdd-col-8, .kdd-col-12{ grid-column:span 12; }
}

/* 9.8 组件尺寸令牌强制收口（终验复测根治：通杀所有按钮/输入框类名，压过区块6触控目标44px） */
/* 按钮通杀统一 40px：覆盖 button/.btn/.btn-gold/.btn-ghost/.v13-btn/.kdd-btn/.z-adocs-sb-zbtn */
button, .btn, .btn-gold, .btn-ghost, .btn-primary, .btn-secondary, .v13-btn, .kdd-btn, .z-adocs-sb-zbtn, .mode-toggle .v13-btn{
  height:40px !important; min-height:40px !important; border-radius:8px !important; padding-top:0 !important; padding-bottom:0 !important; line-height:1 !important; }
/* 输入框通杀统一 40px */
input, textarea, select, .v13-input, input[type="text"], input[type="search"], input[type="number"], input[type="password"], .chat-input-bar .v13-input, .tool-row .v13-input, .v13-quick-chat .v13-input{
  height:40px !important; min-height:40px !important; border-radius:8px !important; padding-top:0 !important; padding-bottom:0 !important; }
textarea{ height:auto !important; min-height:40px !important; }
/* 侧栏统一 224px */
.z-adocs-sidebar{ width:224px !important; }
/* 顶栏由 topnav.js NAV_HEIGHT=64 驱动（#kdd-topnav 内联 height:64px） */

/* 9.9 文字色压平：消除 rgb(51,51,51)=#333 深色扫描项（侧边栏logo文字色改为合法slate） */
.z-adocs-sb-logo-text{ color:var(--ink) !important; }

/* ═══════════════ 打印 ═══════════════ */
@media print{
  .kdd-navbar, .kdd-template-nav, .kdd-breadcrumb, .kdd-footer, .kdd-nav-toggle, .kdd-nav-links, .kdd-nav-brand, .kdd-version-badge, .kdd-search-box, .kdd-entry-grid, .kdd-kpi-grid{ display:none !important; }
}


/* ═══════════════ V13.0.096(小豆): 全站前端架构重构——导航唯一性+首页数据卡+深色兜底清零 ═══════════════ */
/* 1. 统一顶导航 class 化组件(直服10页, 替代内联)  2. 首页KPI/实体榜/入口卡  3. 浅色变量兜底 */

/* ── 1. 统一顶导航组件(通栏白底, inner 1200居中) ── */
.kdd-template-nav{ margin-left:0 !important; }
.kdd-nav-inner{
  max-width:1200px; margin:0 auto; padding:0 24px;
  display:flex; align-items:center; gap:16px; min-height:64px;
}
.kdd-nav-brand{
  display:flex; align-items:center; gap:8px; font-weight:700; font-size:16px;
  text-decoration:none; color:var(--text); white-space:nowrap;
}
.kdd-nav-logo{ height:28px; width:28px; border-radius:6px; object-fit:cover; }
.kdd-nav-links{ display:flex; flex-wrap:wrap; gap:2px 12px; flex:1; justify-content:center; }
.kdd-nav-link{
  color:var(--text); text-decoration:none; font-size:14px; padding:6px 8px;
  border-radius:6px; transition:color .15s, background .15s; white-space:nowrap;
}
.kdd-nav-link:hover{ color:var(--brand); background:var(--gold-pale); }
.kdd-nav-link.kdd-active{ color:var(--brand); font-weight:600; background:rgba(212,175,55,.12); }
.kdd-nav-link[aria-current="page"]{ color:var(--brand); font-weight:600; }
.kdd-version-badge{
  font-size:12px; color:var(--brand); white-space:nowrap;
  background:rgba(212,175,55,.12); padding:2px 8px; border-radius:999px;
  border:1px solid rgba(212,175,55,.3);
}
.kdd-nav-toggle{
  display:none; margin-left:auto; min-height:40px; min-width:40px;
  align-items:center; justify-content:center; cursor:pointer;
  background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:6px; color:var(--brand); font-size:18px;
}
@media (max-width:640px){
  .kdd-nav-toggle{ display:inline-flex; }
  .kdd-nav-inner{ position:relative; flex-wrap:wrap; }
  .kdd-nav-links{
    display:none; position:absolute; top:64px; left:0; right:0; z-index:1001;
    flex-direction:column; background:var(--bg-elevated);
    padding:12px 16px; border-bottom:1px solid var(--border);
    box-shadow:var(--kdd-shadow-md);
  }
  .kdd-template-nav.nav-open .kdd-nav-links{ display:flex; }
}

/* ── 2. 首页搜索卡 ── */
.kdd-search-box{ position:relative; margin-bottom:24px; }
.kdd-search-box form{ display:flex; gap:8px; }
.kdd-search-box input{
  flex:1; padding:10px 14px; border:1px solid var(--border);
  border-radius:8px; background:var(--bg-elevated); color:var(--text); font-size:14px;
}
.kdd-btn-gold{ background:var(--brand-gold); color:var(--brand-on); border:none; padding:10px 20px; border-radius:8px; cursor:pointer; font-size:14px; }
.search-dropdown{
  display:none; position:absolute; top:100%; left:0; right:0; z-index:1100;
  background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:8px; margin-top:4px; box-shadow:var(--kdd-shadow-md); overflow:hidden;
}
.search-dropdown.active{ display:block; }
.search-item{ display:flex; gap:8px; padding:10px 14px; cursor:pointer; font-size:13px; border-bottom:1px solid var(--border-soft); }
.search-item:hover{ background:var(--gold-pale); }
.search-type{ color:var(--brand); white-space:nowrap; }
.search-name{ color:var(--text); }
.search-empty{ padding:12px 14px; color:var(--text-soft); font-size:13px; }

/* ── 3. KPI 数据卡 ── */
.kdd-kpi-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:16px; margin-bottom:24px;
}
.kdd-kpi-card{
  background:var(--bg-elevated); border:1px solid var(--border);
  border-top:2px solid var(--brand-gold);
  border-radius:12px; padding:20px; text-align:center;
  box-shadow:var(--kdd-shadow-sm);
}
.kdd-kpi-card.kdd-kpi-gold{ border-top-color:var(--brand); }
.kdd-kpi-num{
  font-size:32px; font-weight:700; color:var(--text);
  font-variant-numeric:tabular-nums; letter-spacing:-.5px; line-height:1.2;
}
.kdd-kpi-gold .kdd-kpi-num{ color:var(--brand); }
.kdd-kpi-label{ font-size:12px; color:var(--text-soft); margin-top:6px; }

/* ── 4. 通用面板/实体榜 ── */
.kdd-panel{
  background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:12px; margin-bottom:24px; box-shadow:var(--kdd-shadow-sm);
}
.kdd-panel-title{
  display:flex; align-items:center; gap:8px;
  padding:14px 20px; font-size:14px; font-weight:600; color:var(--text);
  border-bottom:1px solid var(--border-soft);
}
.kdd-panel-body{ padding:16px 20px; }
.kdd-dot{ width:8px; height:8px; border-radius:50%; background:var(--brand-gold); display:inline-block; }
.kdd-loading{ color:var(--text-soft); font-size:13px; padding:8px 0; }
.kdd-empty{ color:var(--text-soft); font-size:13px; padding:8px 0; }
.kdd-entity-rank{ display:flex; flex-direction:column; }
.kdd-entity-row{
  display:flex; align-items:center; gap:12px; padding:9px 0;
  border-bottom:1px solid var(--border-soft); font-size:13px;
}
.kdd-entity-row:last-child{ border-bottom:none; }
.kdd-entity-ranknum{
  width:22px; height:22px; border-radius:50%; background:var(--gold-pale);
  color:var(--brand); font-weight:600; font-size:11px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.kdd-entity-name{ flex:1; color:var(--text); font-weight:500; }
.kdd-entity-type{ color:var(--text-soft); font-size:11px; padding:2px 8px; background:var(--bg-sunken); border-radius:999px; white-space:nowrap; }
.kdd-entity-rel{ color:var(--brand); font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }

/* ── 5. 功能入口卡 ── */
.kdd-entry-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:16px; margin-bottom:8px;
}
.kdd-entry-card{
  background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:12px; padding:20px 16px; text-decoration:none;
  display:flex; flex-direction:column; align-items:center; gap:6px;
  text-align:center; transition:border-color .15s, box-shadow .15s, transform .15s;
}
.kdd-entry-card:hover{
  border-color:var(--brand-gold); box-shadow:var(--kdd-shadow-md); transform:translateY(-2px);
}
.kdd-entry-icon{ font-size:28px; }
.kdd-entry-label{ font-size:14px; font-weight:600; color:var(--text); }
.kdd-entry-desc{ font-size:11px; color:var(--text-soft); }

/* ── 6. 最近更新浅色兜底 ── */
.kdd-update-head{ display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.kdd-update-title{ font-size:13px; font-weight:600; color:var(--text); }
.kdd-update-time{ font-size:11px; color:var(--text-soft); margin-left:auto; }
.kdd-update-content{ font-size:12px; color:var(--text-soft); line-height:1.7; }
.kdd-update-tags{ display:flex; flex-wrap:wrap; gap:6px 16px; }


/* ═══════════════ V13.0.096 验收问题修复 · P2-2 roadmap 侧栏深色 + P2-4 dashboard 移动端溢出 ═══════════════ */

/* ── P2-2: /ai-docs/roadmap.html 左侧 aside.kdd-sidebar(id=kddSidebar) 深色压平 ──
   根因: 页面内 :root 定义 --bg2:#111827, .kdd-sidebar{background:var(--bg2)}
   原§8只压平了 .sidebar, 漏了 .kdd-sidebar(roadmap 专用类)。 */
aside.kdd-sidebar, #kddSidebar,
aside.kdd-sidebar.sidebar{
  background:var(--surface) !important;
  color:var(--s700) !important;
  border-right:1px solid var(--border-gold) !important;
  background-image:none !important;
}
#kddSidebar .sidebar-nav a,
aside.kdd-sidebar .sidebar-nav a{
  color:var(--ink-2) !important;
  background:transparent !important;
  border-left-color:transparent !important;
}
#kddSidebar .sidebar-nav a:hover,
aside.kdd-sidebar .sidebar-nav a:hover{
  background:rgba(212,175,55,.10) !important;
  color:var(--brand) !important;
}
#kddSidebar .sidebar-nav a.active,
aside.kdd-sidebar .sidebar-nav a.active{
  color:var(--brand) !important;
  background:rgba(212,175,55,.12) !important;
  border-left-color:var(--brand) !important;
}
#kddSidebar .sidebar-logo .brand,
#kddSidebar .sidebar-logo-text,
aside.kdd-sidebar .sidebar-logo-text{ color:var(--ink) !important; }
#kddSidebar .sidebar-nav a .tag,
aside.kdd-sidebar .sidebar-nav a .tag{
  background:var(--s100) !important; color:var(--ink-3) !important;
}
.sidebar-toggle{ background:var(--surface) !important; color:var(--brand) !important; border:1px solid var(--border-gold) !important; }

/* ── P2-4: dashboard.html @375px 横向溢出(scrollWidth=677)修复 ──
   根因: 图谱 canvas 位图宽度 + v13-grid 两列在小屏未收缩。
   修根因: grid 强制单列 + min-width:0; 兜底: body/main overflow-x:hidden。 */
@media (max-width:640px){
  body.v13-body{ overflow-x:hidden !important; }
  body.v13-body .v13-shell,
  body.v13-body .v13-main{
    max-width:100% !important;
    overflow-x:hidden !important;
    margin-left:0 !important;
  }
  body.v13-body .v13-grid-main,
  body.v13-body .v13-grid-bottom{
    grid-template-columns:1fr !important;
    min-width:0 !important;
  }
  body.v13-body .v13-graph-canvas{
    max-width:100% !important;
    height:300px !important;
  }
}

/* ═══════════════ 区块 10 · 统一骨架让位 V13.0.100(小豆) ═══════════════ */
/* ────────────────────────────────────────────────────────────────
   根因(5-Why): 10 页 5 套页面骨架并存且边距各自为政——
     · dashboard/chat/explorer: v13 兜底 margin-left:200px, 侧栏实宽 250px → 主区 50px 重叠
     · explorer-3d/timeline/entity/infobox/devui/unified-explorer: 无 <main> 标签,
       主容器 margin-left:0(实测), 被 248-250px fixed 侧栏整体遮住左侧 250px 内容
     · timeline 自定 386px、其余 0px → 边距数值 200/386/0 三值分裂
   对标: 单一真相源单文件 CSS(dfm2html.com) + ITCSS 布局层(特异性从低到高) + 布局令牌统一取值
  修复: 统一主容器让位规则 margin-left:var(--side-w,248px) + 全屏应用页悬浮面板避让侧栏
  验证: 浏览器逐页 JS 体检 mainML==sideW + 桌面截图无遮挡(见 V13.0.100 验证记录)
  边界: 仅 body.kdd-shell 页生效(新壳); z-adocs 旧体系页/ai-docs 不受影响;
        移动端(≤768px)侧栏转抽屉, 让位归零恢复全宽; timeline 已自适配居中不强行统一。 */
body.kdd-shell > main,
body.kdd-shell > .main-area,
body.kdd-shell > .app-main,
body.kdd-shell > .content,
body.kdd-shell > .ib-page,
body.kdd-shell > #entityPage,
body.kdd-shell > .v13-shell,
body.kdd-shell > .v13-main {
  margin-left: var(--side-w, 248px) !important;
  min-width: 0;
}
/* 家族B嵌套骨架(body > .v13-shell > main.v13-main): shell 让位 248, 内部 main 归零防双重偏移(实测 448px) */
body.kdd-shell > .v13-shell .v13-main {
  margin-left: 0 !important;
}

/* 全屏应用页（3D 图谱等, canvas 全屏+悬浮面板）: 面板避让侧栏, 画布让出侧栏区 */
body.kdd-shell #graph-container {
  left: var(--side-w, 248px) !important;
}
body.kdd-shell .control-panel {
  left: calc(var(--side-w, 248px) + 24px) !important;
}

/* devui 开发者台: 自身 .sidebar 让位知微侧栏, .main(flex:1) 自动跟随 */
body.kdd-shell .sidebar {
  margin-left: var(--side-w, 248px) !important;
}

/* 移动端(≤768px): 侧栏转抽屉(区块6), 让位归零恢复全宽, 面板回常规位 */
@media (max-width: 768px) {
  body.kdd-shell > main,
  body.kdd-shell > .main-area,
  body.kdd-shell > .app-main,
  body.kdd-shell > .content,
  body.kdd-shell > .ib-page,
  body.kdd-shell > #entityPage,
  body.kdd-shell > .v13-shell,
  body.kdd-shell > .v13-main,
  body.kdd-shell .sidebar {
    margin-left: 0 !important;
  }
  body.kdd-shell #graph-container {
    left: 0 !important;
  }
  body.kdd-shell .control-panel {
    left: 16px !important;
  }
}

/* ═══════════════ 区块 12 · ai-docs 旧体系侧栏视觉统一（V13.0.103） ═══════════════
   ★ V13.0.103(小豆知微): ai-docs 338/350 页旧版 .kdd-sidebar 内联导航视觉脱节修复
     根因: ai-docs 页面导航为内联样式(总览/专题汇总/…, color:#333 font:14px padding:8px),
           无品牌区、密度松散、无滚动可视化, 与主站 zhiwei-shell 23项框架视觉不一致
          (长庚总 2026-10-20 反馈 topics-summary "导航栏全是存的"=旧体系残留)
     对标: 双层导航标准(Notion Docs/Read the Docs/掘金) — 主站工作台导航 + 文档专区二级导航,
           视觉框架必须统一(浅金白底/紧凑密度/品牌标识/滚动兜底)
     修复: ①伪元素品牌区"知微情报"统一标识(零 HTML 改动, 338 页一次生效; 已有 .sidebar-logo 页豁免)
           ②内联导航项覆盖: 密度 6px/字号 13px/浅金 hover-active ③组标题 10px 大写
           ④thin 滚动条主题化(5px 浅金) ⑤搜索框浅色统一
     验证: topics-summary + 抽样 5 页浏览器截图对比(品牌区/行高/滚动条在位)
     边界: 不动宽度(避免与各页主区 margin 联动重叠, 宽度统一留待全页布局轮);
           仅样式覆盖 !important, 不改 HTML 结构; 移动端抽屉逻辑不触碰 */
aside.kdd-sidebar:not(:has(.sidebar-logo))::before{
  content:"知微情报";
  display:flex; align-items:center; height:52px; flex-shrink:0;
  padding:0 20px; margin:0 0 10px;
  font-family:var(--kdd-font-display,"Space Grotesk","PingFang SC",sans-serif);
  font-size:15px; font-weight:800; letter-spacing:.04em;
  color:var(--ink,#111827); background:var(--surface,#fff);
  border-bottom:1px solid var(--border-gold,rgba(212,175,55,.35));
}
aside.kdd-sidebar{
  display:flex; flex-direction:column;
  scrollbar-width:thin;
  scrollbar-color:rgba(212,175,55,.45) transparent;
}
aside.kdd-sidebar::-webkit-scrollbar{ width:5px; }
aside.kdd-sidebar::-webkit-scrollbar-thumb{ background:rgba(212,175,55,.45); border-radius:3px; }
aside.kdd-sidebar nav a{
  display:block !important;
  padding:6px 12px !important;
  margin:1px 0;
  color:#3a3a3a !important;
  font-size:13px !important;
  line-height:1.3 !important;
  border-radius:6px !important;
  text-decoration:none !important;
  transition:background .15s ease,color .15s ease;
}
aside.kdd-sidebar nav a:hover{
  background:rgba(212,175,55,.10) !important;
  color:#8a6d1f !important;
}
aside.kdd-sidebar nav a.active,
aside.kdd-sidebar nav a[aria-current="page"]{
  background:rgba(212,175,55,.14) !important;
  color:#8a6d1f !important;
  font-weight:600 !important;
}
aside.kdd-sidebar nav > div > div{
  padding:10px 12px 4px !important;
  font-size:10px !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:#999 !important;
}
aside.kdd-sidebar input[type="text"]{
  font-size:12.5px !important;
  border-color:#e5e7eb !important;
  background:#f8fafc !important;
}

/* ═══════════════ 区块 14 · 深色模式（V13.0.105 学习中心规范 data-theme=dark） ═══════════════ */
:root[data-theme="dark"]{
  --canvas:var(--s900); --surface:#1B2436; --subtle:#151E30; --sunken:#0B1220;
  --side-bg:var(--sunken);                                /* 侧栏背景: 夜间=sunken 最深, 日夜间对比明确 */
  --line:#2A3852; --line-strong:#3A4B6A; --line-input:#3A4B6A;
  --ink:#E8EEF7; --ink-2:#B4C0D4; --ink-3:#8A98B0; --ink-inv:#0F172A;
  --brand-ink:#E8C766; --brand-on:#1B1503;             /* 金底深字 dark */
  --focus:#DFC36C;                                     /* 焦点环: dark = g300 */
  --ok:#2DD4BF; --warn:#FBBF24; --err:#F87171; --info:#D4AF37;
  --ok-bg:rgba(45,212,191,.16); --warn-bg:rgba(251,191,36,.16); --err-bg:rgba(248,113,113,.15); --info-bg:rgba(212,175,55,.16);
  --sh-lg:0 12px 32px rgba(0,0,0,.55); --sh-pop:0 8px 24px rgba(0,0,0,.45);
  --ring:0 0 0 3px rgba(223,195,108,.4);
}
:root[data-theme="dark"] .side-item.active{background:rgba(212,175,55,0.2);color:#E8C766}
/* 顶栏主题切换按钮（学习中心 .top-theme：sun/moon 双图标，dark 显示月亮） */
.top-theme{width:36px;height:36px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md,8px);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);transition:all .15s;margin-left:8px;flex-shrink:0}
.top-theme:hover{border-color:var(--brand);color:var(--brand-ink)}
.top-theme svg{width:17px;height:17px;stroke-width:1.5}
.top-theme .moon{display:none}
:root[data-theme="dark"] .top-theme .sun{display:none}
:root[data-theme="dark"] .top-theme .moon{display:block}

/* 14.2 深色强覆盖（V13.0.106）：ai-docs 页面级 tokens + 侧栏/顶栏 chrome + 硬编码浅色卡片兜底 */
:root[data-theme="dark"]{
  --bg-primary:var(--s900); --bg-secondary:var(--sunken);
  --bg-card:var(--surface); --bg-card-hover:var(--subtle);
  --text-primary:var(--ink); --text-secondary:var(--ink-2); --text-muted:var(--ink-3);
  --accent:var(--brand); --accent2:var(--brand-gold); --accent3:var(--ok);
  --border:var(--line); --border-strong:var(--line-strong);
  --card:var(--surface); --card-hover:var(--subtle);
  --text:var(--ink); --sec:var(--ink-2); --text2:var(--ink-2);
  --input-bg:var(--subtle);
}
:root[data-theme="dark"] body.kdd-shell .side{ background:var(--sunken) !important; }
:root[data-theme="dark"] .kdd-navbar, :root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .kdd-page-header, :root[data-theme="dark"] header{
  background:var(--surface) !important; border-color:var(--line) !important;
}
:root[data-theme="dark"] .topic-card, :root[data-theme="dark"] .section-card,
:root[data-theme="dark"] .card, :root[data-theme="dark"] .panel,
:root[data-theme="dark"] .info-card, :root[data-theme="dark"] .stat-card,
:root[data-theme="dark"] .metric-card, :root[data-theme="dark"] .box{
  background:var(--surface) !important; color:var(--ink) !important; border-color:var(--line) !important;
}

/* ═══════════════ 区块 15 · 主区撑满（V13.0.107 学习中心 .main 规范：flex:1 填满侧栏右侧全部空间） ═══════════════ */
/* 15.1 ai-docs 模板主容器去 max-width:1200 硬限（kdd-design-system-bridge.css:43 根因：右侧大片空白） */
.kdd-template-nav .header,
.kdd-template-nav .section,
.kdd-template-nav .stats,
.kdd-template-nav .kdd-page-header,
.kdd-template-nav .grid{
  max-width:none !important;
}
/* 15.2 卡片栅格恢复自适应（学习中心 auto-fill：宽屏自动 4-5 列填满；覆盖 @media 固定3列 !important） */
.kdd-template-nav .grid.kdd-grid,
.kdd-template-nav .grid{
  grid-template-columns:repeat(auto-fill, minmax(min(260px,100%),1fr)) !important;
  gap:16px !important;
}
/* 15.3 统计卡撑满 + 纵向间距紧凑（对齐学习中心 8px 基准） */
.kdd-template-nav .stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;
  gap:16px !important;
}
.kdd-template-nav .header{ margin-bottom:8px !important; }
.kdd-template-nav .section{ margin-top:8px !important; }

/* 15.4 隐藏旧 nav 框架残留（V13.0.108）：nav-left-sidebar 旧左栏 / nav-right-sidebar 右目录栏 / tabs 条 —— 内容区被挤窄根因 */
.kdd-shell .nav-left-sidebar,
.kdd-shell .nav-right-sidebar,
.kdd-shell .nav-tabs-bar-container{
  display:none !important;
}
.kdd-shell .nav-layout .nav-main-area{
  flex:1 1 auto !important; width:auto !important; max-width:none !important;
}
.kdd-shell .nav-content-wrapper{
  width:auto !important; max-width:none !important;
}

/* 15.5 详情页旧 sidebar 清理（V13.0.109）：177页模板 .app>.sidebar 旧子目录栏与 zhiwei-shell 冲突坍缩成窄条挤中间，隐藏并让 .main 撑满 */
.kdd-shell .app .sidebar{
  display:none !important;
}
.kdd-shell .app .main{
  margin-left:0 !important; max-width:none !important; width:auto !important;
  flex:1 1 auto !important; padding:36px 32px 80px !important;
}
