/* ══════════════════════════════════════════════════════════
   新拟态主题 Neumorphism v1.0 · 应用到工作台
   设计语言：同色系双向阴影（亮部+暗部）制造浮雕感
   组件形态：无边框无渐变，纯靠阴影凹凸表达层级
   ══════════════════════════════════════════════════════════ */

:root {
  --bg: #e0e5ec;              /* 全局底色 */
  --surface: #e0e5ec;         /* 表面色 = 底色（拟态精髓） */
  --text: #4d5566;            /* 主文字 */
  --text-strong: #2f3642;     /* 标题 */
  --text-soft: #565e6e;       /* 次要文字 (WCAG 5.15:1) */
  --accent: #3865cc;          /* 强调蓝 (WCAG 4.25:1) */
  --accent-soft: #8fafe8;
  --green: #1f8a50;           /* 状态绿 (WCAG 3.45:1) */
  --shadow-dark: #b8bec9;     /* 暗影（偏灰蓝） */
  --shadow-light: #ffffff;    /* 亮影（纯白） */
  --radius: 14px;
  --radius-sm: 10px;
}

/* ── 全局 ── */
body { background:var(--bg); color:var(--text);
  background-image:
    radial-gradient(ellipse 60% 45% at 12% 8%, rgba(56,101,204,.05) 0%, transparent 60%),
    radial-gradient(ellipse 55% 40% at 88% 92%, rgba(31,138,80,.045) 0%, transparent 60%),
    radial-gradient(ellipse 45% 35% at 92% 6%, rgba(232,138,58,.04) 0%, transparent 55%);
  background-attachment:fixed;
}
::selection { background:var(--accent-soft); color:#fff; }

/* 滚动条拟态化 */
::-webkit-scrollbar { width:10px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:#cdd3dd; border-radius:8px; }
::-webkit-scrollbar-thumb:hover { background:#c0c7d4; }

/* ── 侧边栏（凹陷面板） ── */
.sidebar {
  background:var(--surface);
  border-right:none;
  box-shadow:
    inset 4px 4px 8px var(--shadow-dark),
    inset -4px -4px 8px var(--shadow-light);
  border-radius:0 18px 18px 0;
  margin:10px 0 10px 10px;
  height:calc(100vh - 20px);
  border-radius:18px;
  box-shadow:
    inset 3px 3px 7px var(--shadow-dark),
    inset -3px -3px 7px var(--shadow-light);
}
.sidebar h2 { color:var(--text-strong); font-weight:600; letter-spacing:1px; padding:0 10px; }
.sidebar a { color:var(--text); }
.sidebar a:hover { color:var(--accent); text-shadow:0 0 1px var(--accent-soft); }
.sidebar a.active {
  background:var(--surface);
  color:var(--accent);
  box-shadow:
    inset 3px 3px 6px var(--shadow-dark),
    inset -3px -3px 6px var(--shadow-light);
  font-weight:600;
}
.sidebar .cat { color:var(--text-strong); letter-spacing:1px; }
.sidebar .file { color:var(--text-soft); }

/* 搜索框（内凹槽） */
.search-box input {
  background:var(--surface);
  border:none;
  color:var(--text);
  box-shadow:
    inset 4px 4px 8px var(--shadow-dark),
    inset -4px -4px 8px var(--shadow-light);
  border-radius:10px;
  padding:10px 14px;
}
.search-box input::placeholder { color:var(--text-soft); }
.search-box input:focus { color:var(--accent); }

/* ── 内容区 ── */
.content h1 { color:var(--text-strong); border-bottom-color:transparent; font-weight:600; }
.content h2 { color:var(--accent); }
.content h3 { color:var(--text-strong); }
.content p { color:var(--text); }
.content a { color:var(--accent); }

/* 代码（内凹芯片） */
.content code {
  background:var(--surface);
  color:var(--accent);
  box-shadow:
    inset 2px 2px 4px var(--shadow-dark),
    inset -2px -2px 4px var(--shadow-light);
}
.content pre {
  background:var(--surface);
  box-shadow:
    inset 4px 4px 8px var(--shadow-dark),
    inset -4px -4px 8px var(--shadow-light);
}
.content pre code { color:var(--text); box-shadow:none; }

/* 引用块（凸起条） */
.content blockquote {
  border-left:none;
  background:var(--surface);
  box-shadow:
    4px 4px 8px var(--shadow-dark),
    -4px -4px 8px var(--shadow-light);
  border-radius:var(--radius-sm);
}

/* 表格（凸起面板） */
.content table { border-collapse:separate; border-spacing:0; border-radius:var(--radius); overflow:hidden; box-shadow:
  6px 6px 12px var(--shadow-dark),
  -6px -6px 12px var(--shadow-light); }
.content th {
  background:var(--surface);
  color:var(--text-strong);
  border:none;
  box-shadow:
    inset 2px 2px 4px var(--shadow-dark),
    inset -2px -2px 4px var(--shadow-light);
  font-weight:600;
}
.content td { border:none; border-bottom:1px solid rgba(140,150,170,.25); color:var(--text); background:rgba(255,255,255,.25); }
.content tr:last-child td { border-bottom:none; }

/* ── 首页卡片（凸起浮雕，hover 抬起，active 凹陷） ── */
.kb-home .card {
  background:var(--surface);
  box-shadow:
    7px 7px 14px var(--shadow-dark),
    -7px -7px 14px var(--shadow-light);
  transition:all .18s ease;
}
.kb-home .card:hover { transform:translateY(-2px); box-shadow:
  9px 9px 18px var(--shadow-dark),
  -9px -9px 18px var(--shadow-light); }
.kb-home .card h3 { color:var(--text-strong); }
.kb-home .card h3 a { color:var(--accent); text-decoration:none; }
.kb-home .card p { color:var(--text-soft); }

/* 搜索结果卡片 */
.result { background:var(--surface); box-shadow:
  5px 5px 10px var(--shadow-dark),
  -5px -5px 10px var(--shadow-light); }
.result h3 a { color:var(--accent); }
.result p { color:var(--text-soft); }

/* ── 面包屑 / 顶栏 ── */
.crumbs { color:var(--text-soft); }
.crumbs a { color:var(--text-soft); }
.crumbs a:hover { color:var(--accent); }
.topbar a { color:var(--text-soft); }
.topbar a:hover { color:var(--accent); }

.empty { color:var(--text-soft); }
/* 库切换器（新拟态：容器内凹，当前板块浮雕高亮） */
.lib-switch { background:var(--surface); box-shadow:
  inset 3px 3px 7px var(--shadow-dark),
  inset -3px -3px 7px var(--shadow-light); }
.lib-opt { color:var(--text-soft); }
.lib-opt:hover { color:var(--accent); background:rgba(255,255,255,.25); }
.lib-opt.active { background:var(--surface); color:var(--accent); font-weight:600; box-shadow:
  3px 3px 6px var(--shadow-dark),
  -3px -3px 6px var(--shadow-light); }

/* ── 登录页（拟态版 v2） ── */
.neu-login {
  background:var(--bg); color:var(--text);
  font-family:"Microsoft YaHei",system-ui,sans-serif;
  min-height:100vh; min-height:100dvh;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  position:relative;
}
/* 背景装饰光斑（拟态柔和氛围） */
.neu-login::before {
  content:""; position:fixed; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 480px 320px at 18% 22%, rgba(91,141,239,.07), transparent 70%),
    radial-gradient(ellipse 420px 300px at 82% 78%, rgba(91,141,239,.06), transparent 70%);
}
.neu-login .box {
  background:var(--surface);
  border-radius:26px; padding:44px 42px 36px; width:400px; max-width:100%;
  box-shadow:
    12px 12px 26px var(--shadow-dark),
    -12px -12px 26px var(--shadow-light);
  animation:loginIn .5s ease both;
  position:relative;
}
@keyframes loginIn {
  from { opacity:0; transform:translateY(16px) scale(.97); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}
/* 品牌区 */
.neu-login .brand { text-align:center; margin-bottom:28px; }
.neu-login .brand-icon {
  width:74px; height:74px; margin:0 auto 14px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.9rem; border-radius:22px;
  background:var(--surface);
  box-shadow:
    inset 4px 4px 8px var(--shadow-dark),
    inset -4px -4px 8px var(--shadow-light),
    6px 6px 14px var(--shadow-dark),
    -6px -6px 14px var(--shadow-light);
}
.neu-login h1 { color:var(--text-strong); font-size:1.45rem; text-align:center; margin:0 0 6px; font-weight:600; letter-spacing:1px; }
.neu-login .sub { color:var(--text-soft); font-size:.85rem; text-align:center; margin:0; }
/* 表单字段 */
.neu-login .field { margin-bottom:18px; }
.neu-login .field label { display:block; font-size:.82rem; color:var(--text-strong); margin-bottom:8px; font-weight:600; letter-spacing:.5px; }
.neu-login .input-wrap { position:relative; }
.neu-login .input-icon {
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  font-size:.95rem; opacity:.55; pointer-events:none;
}
.neu-login input[type=text], .neu-login input[type=password] {
  width:100%; padding:13px 42px 13px 40px; border:none; background:var(--surface);
  color:var(--text); font-size:.95rem; outline:none;
  border-radius:13px;
  box-shadow:
    inset 5px 5px 10px var(--shadow-dark),
    inset -5px -5px 10px var(--shadow-light);
  transition:box-shadow .2s, color .2s;
}
.neu-login input::placeholder { color:var(--text-soft); opacity:.6; }
.neu-login input:focus { color:var(--accent); box-shadow:
  inset 5px 5px 10px var(--shadow-dark),
  inset -5px -5px 10px var(--shadow-light),
  0 0 0 2px var(--accent-soft); }
.neu-login .toggle-pw {
  position:absolute; right:13px; top:50%; transform:translateY(-50%);
  cursor:pointer; font-size:.9rem; opacity:.45; transition:opacity .15s; user-select:none;
}
.neu-login .toggle-pw:hover { opacity:.9; }
/* 记住我（拟态复选框） */
.neu-login .row { margin:6px 0 2px; }
.neu-login .check { display:flex; align-items:center; gap:9px; cursor:pointer; font-size:.85rem; color:var(--text); user-select:none; }
.neu-login .check input { display:none; }
.neu-login .checkmark {
  width:19px; height:19px; border-radius:8px; flex-shrink:0;
  background:var(--surface);
  box-shadow:
    inset 3px 3px 6px var(--shadow-dark),
    inset -3px -3px 6px var(--shadow-light);
  position:relative; transition:box-shadow .15s;
}
.neu-login .check input:checked + .checkmark { box-shadow:
  3px 3px 6px var(--shadow-dark),
  -3px -3px 6px var(--shadow-light); }
.neu-login .check input:checked + .checkmark::after {
  content:"✓"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:var(--accent); font-size:.85rem; font-weight:700;
}
.neu-login .check-text { color:var(--text); }
/* 登录按钮 */
.neu-login .login-btn {
  width:100%; margin-top:22px; padding:14px; border:none; border-radius:13px;
  background:var(--surface); color:var(--accent); font-size:1rem; font-weight:600; cursor:pointer;
  letter-spacing:6px; text-indent:6px;
  box-shadow:
    6px 6px 13px var(--shadow-dark),
    -6px -6px 13px var(--shadow-light);
  transition:all .15s;
}
.neu-login .login-btn:hover { color:var(--text-strong); letter-spacing:8px; text-indent:8px; }
.neu-login .login-btn:active {
  box-shadow:
    inset 5px 5px 10px var(--shadow-dark),
    inset -5px -5px 10px var(--shadow-light);
  color:var(--accent);
}
.neu-login .err {
  color:#e06868; font-size:.82rem; margin-top:12px; text-align:center; min-height:1.2em;
  text-shadow:0 1px 0 rgba(255,255,255,.4);
}
.neu-login footer { text-align:center; color:var(--text-soft); font-size:.74rem; margin-top:24px; letter-spacing:.5px; }
@media (max-width:460px) {
  .neu-login .box { padding:32px 24px 28px; }
}

/* ── 首页（新拟态版） ── */
.home h1 { color:var(--text-strong); }
.home .badge { background:var(--surface); color:var(--accent); box-shadow: inset 3px 3px 6px var(--shadow-dark), inset -3px -3px 6px var(--shadow-light); }
.home .sub { color:var(--text-soft); }
.home .section-title { color:var(--text-strong); border-left-color:var(--accent); }
.home .card {
  background:var(--surface);
  box-shadow: 7px 7px 14px var(--shadow-dark), -7px -7px 14px var(--shadow-light);
}
.home .card:hover { transform:translateY(-3px); box-shadow: 9px 9px 18px var(--shadow-dark), -9px -9px 18px var(--shadow-light); }
.home .card:active { box-shadow: inset 5px 5px 10px var(--shadow-dark), inset -5px -5px 10px var(--shadow-light); transform:translateY(0); }
.home .card h3 { color:var(--text-strong); }
.home .card p { color:var(--text-soft); }
.home .card a { color:var(--accent); }
.home .hero-btn {
  background:var(--surface); color:var(--accent); font-weight:600;
  box-shadow: 6px 6px 12px var(--shadow-dark), -6px -6px 12px var(--shadow-light);
  transition:all .15s;
}
.home .hero-btn:hover { color:var(--text-strong); }
.home .hero-btn:active { box-shadow: inset 5px 5px 10px var(--shadow-dark), inset -5px -5px 10px var(--shadow-light); }
.home .status-dot.ok { background:var(--accent); box-shadow: 0 0 6px var(--accent-soft); }
.home .status-dot.off { background:var(--text-soft); }
.home footer { color:var(--text-soft); }
.home .logout-btn {
  background:var(--surface); color:var(--text-soft);
  box-shadow: 5px 5px 10px var(--shadow-dark), -5px -5px 10px var(--shadow-light);
  transition:all .15s;
}
.home .logout-btn:hover { color:#e06868; box-shadow: 6px 6px 12px var(--shadow-dark), -6px -6px 12px var(--shadow-light); }
.home .logout-btn:active { box-shadow: inset 4px 4px 8px var(--shadow-dark), inset -4px -4px 8px var(--shadow-light); }
/* 仪表盘（新拟态） */
.home .dash-header h1 { color:var(--text-strong); }
.home .dash-header .sub { color:var(--text-soft); }
/* 状态卡：与入口卡同款拟态 */
.stat-card { background:var(--surface); box-shadow: 8px 8px 16px var(--shadow-dark), -8px -8px 16px var(--shadow-light); }
.stat-card:hover { box-shadow: 10px 10px 20px var(--shadow-dark), -10px -10px 20px var(--shadow-light); }
.stat-card:active { box-shadow: inset 6px 6px 12px var(--shadow-dark), inset -6px -6px 12px var(--shadow-light); }
.stat-icon { background:var(--surface); box-shadow: inset 3px 3px 6px var(--shadow-dark), inset -3px -3px 6px var(--shadow-light); }
.stat-body h3 { color:var(--text-strong); }
.stat-body p { color:var(--text-soft); }
.stat-val { color:var(--green); }
.entry-card { background:var(--surface); box-shadow: 8px 8px 16px var(--shadow-dark), -8px -8px 16px var(--shadow-light); }
.entry-card:hover { box-shadow: 10px 10px 20px var(--shadow-dark), -10px -10px 20px var(--shadow-light); }
.entry-card:active { box-shadow: inset 6px 6px 12px var(--shadow-dark), inset -6px -6px 12px var(--shadow-light); }
.entry-kb .entry-icon { background:var(--surface); box-shadow: inset 3px 3px 6px var(--shadow-dark), inset -3px -3px 6px var(--shadow-light); }
.entry-exp .entry-icon { background:var(--surface); box-shadow: inset 3px 3px 6px var(--shadow-dark), inset -3px -3px 6px var(--shadow-light); }
.entry-body h3 { color:var(--text-strong); }
.entry-body p { color:var(--text-soft); }
.entry-link { color:var(--accent); }
.entry-link:hover { color:var(--text-strong); }
.entry-meta span { background:var(--surface); box-shadow: inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light); color:var(--accent); }
.dash-foot { color:var(--text-soft); }
.home .section-title { color:var(--text-strong); border-left-color:var(--accent); }
/* 表格速查（新拟态） */
.tb-title { color:var(--text-strong); }
.design-ai { background:var(--surface); box-shadow:7px 7px 14px var(--shadow-dark), -7px -7px 14px var(--shadow-light); }
.design-ai-badge { background:rgba(56,101,204,.12); color:var(--accent); }
.design-ai-input, .design-ai-field input, .design-ai-field textarea { background:var(--surface); box-shadow:inset 3px 3px 7px var(--shadow-dark), inset -3px -3px 7px var(--shadow-light); }
.design-ai-input:focus, .design-ai-field input:focus, .design-ai-field textarea:focus { box-shadow:inset 3px 3px 7px var(--shadow-dark), inset -3px -3px 7px var(--shadow-light), 0 0 0 2px rgba(56,101,204,.25); }
.design-ai-primary, .design-ai-archive { background:var(--accent); color:#fff; box-shadow:3px 3px 7px var(--shadow-dark), -3px -3px 7px var(--shadow-light); }
.design-ai-secondary { background:var(--surface); color:var(--text-soft); box-shadow:3px 3px 7px var(--shadow-dark), -3px -3px 7px var(--shadow-light); }
.design-ai-actions button:hover:not(:disabled) { transform:translateY(-1px); }
.design-record-table { background:var(--surface); box-shadow:6px 6px 12px var(--shadow-dark), -6px -6px 12px var(--shadow-light); }
.design-record-table th { background:rgba(56,101,204,.22); color:var(--text-strong); border-bottom:1px solid rgba(56,101,204,.28); }
.design-record-table td { color:var(--text); border-bottom:1px solid rgba(150,155,170,.14); }
.design-record-table tbody tr:nth-child(even) td { background:rgba(120,140,180,.07); }
.design-record-table tbody tr:hover td { background:rgba(255,255,255,.42); }
.design-record-add, .design-record-save-row { background:var(--accent); color:#fff; box-shadow:3px 3px 7px var(--shadow-dark), -3px -3px 7px var(--shadow-light); }
.design-record-delete { background:rgba(197,75,75,.12); color:#b53f3f; }
.design-record-cell:focus { background:rgba(255,255,255,.62) !important; box-shadow:inset 0 0 0 2px rgba(56,101,204,.35); }
.design-record-dirty .design-record-id { color:var(--accent); }
.tb-count { background:rgba(56,101,204,.1); color:var(--accent); }
.tb-table { background:var(--surface); box-shadow: 6px 6px 12px var(--shadow-dark), -6px -6px 12px var(--shadow-light); }
.tb-table th { background:rgba(56,101,204,.22); color:var(--text-strong); border-bottom:1px solid rgba(56,101,204,.28); font-weight:700; } /* P2：表头加深（对比度提升） */
.tb-table td { border-bottom:1px solid rgba(150,155,170,.12); color:var(--text); }
.tb-table tbody tr:hover td { background:rgba(255,255,255,.45); }
.tb-table tbody tr:nth-child(even):not(:hover) td { background:rgba(120,140,180,.09); } /* P2：斑马行（加大对比度，hover 优先） */
.tb-cat { color:var(--accent); }
.tb-name a { color:var(--text); }
.tb-name a:hover { color:var(--accent); }
.tb-tag { background:rgba(56,101,204,.14); color:#2c4a8a; }
.tb-date { color:var(--text-soft); opacity:.8; }
/* 思维导图（XMind 风格，新拟态：节点轻量、颜色在线条） */
.mm-path { stroke:var(--accent-soft); }
.mm-center { background:var(--surface); color:var(--text-strong); box-shadow:
  6px 6px 14px var(--shadow-dark), -6px -6px 14px var(--shadow-light),
  0 0 0 5px rgba(56,101,204,.07), 0 0 24px rgba(56,101,204,.10); }
.mm-center:hover { box-shadow:
  7px 7px 16px var(--shadow-dark), -7px -7px 16px var(--shadow-light),
  0 0 0 6px rgba(56,101,204,.10), 0 0 30px rgba(56,101,204,.14); }
.mm-l1 { color:var(--text-strong); }
.mm-l1:hover { color:var(--c, var(--accent)); }
.mm-l2 { color:var(--text); }
.mm-l2:hover { color:var(--c, var(--accent)); }
/* 徽章用分支色（内联 --c 传递），工具栏拟态 */
.mm-badge { background:var(--c, var(--accent)); }
.mm-tool { background:var(--surface); color:var(--text-soft); box-shadow:
  3px 3px 7px var(--shadow-dark), -3px -3px 7px var(--shadow-light); }
.mm-tool:hover { color:var(--accent); }
.mm-toolbar a.mm-tool { color:var(--accent); }
/* 小型状态卡（新拟态） */
.status-card { background:var(--surface); box-shadow: 4px 4px 8px var(--shadow-dark), -4px -4px 8px var(--shadow-light); transition:all .15s; }
.status-card:hover { box-shadow: 5px 5px 10px var(--shadow-dark), -5px -5px 10px var(--shadow-light); transform:translateY(-1px); }
.status-icon { background:var(--surface); box-shadow: inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light); }
.status-name { color:var(--text); }
.status-val { color:var(--green); }
.status-sub { color:var(--text-soft); }

/* ── 上传按钮（P2：主按钮强化：实心强调色 + 大号） ── */
.tb-upload { background:var(--accent); color:#fff; border:none; padding:8px 18px; font-size:.85rem; font-weight:700;
  border-radius:10px; box-shadow: 4px 4px 10px rgba(56,101,204,.35), -2px -2px 6px var(--shadow-light); }
.tb-upload:hover { background:var(--accent); filter:brightness(1.1); transform:translateY(-1px);
  box-shadow: 6px 6px 14px rgba(56,101,204,.4), -2px -2px 6px var(--shadow-light); }
.tb-upload:active { transform:translateY(0); box-shadow:
  inset 2px 2px 5px rgba(0,0,0,.2); }

/* ── 退出按钮（P2：放大 + 图标 + 高辨识度） ── */
.logout-link { display:inline-flex; align-items:center; gap:5px; padding:6px 16px; border-radius:10px;
  font-size:.85rem; font-weight:600; text-decoration:none; background:rgba(224,104,104,.12); color:#e06868;
  transition:transform .15s, background .15s; }
.logout-link:hover { background:rgba(224,104,104,.22); transform:translateY(-1px); }

/* ── 在线编辑 ── */
.edit-btn { background:var(--surface); color:var(--accent); border:1px solid transparent;
  box-shadow: 3px 3px 6px var(--shadow-dark), -3px -3px 6px var(--shadow-light); }
.edit-btn:hover { color:var(--accent); box-shadow:
  1px 1px 3px var(--shadow-dark), -1px -1px 3px var(--shadow-light); }
.edit-area { background:var(--surface); color:var(--text); border:none;
  box-shadow: inset 3px 3px 7px var(--shadow-dark), inset -3px -3px 7px var(--shadow-light); }
.edit-save { background:var(--accent); color:#fff; border:none;
  box-shadow: 4px 4px 8px var(--shadow-dark), -4px -4px 8px var(--shadow-light); }
.edit-save:hover { opacity:.92; }
.edit-cancel { background:var(--surface); color:var(--text-soft); border:none;
  box-shadow: 4px 4px 8px var(--shadow-dark), -4px -4px 8px var(--shadow-light); }

/* ── 手机汉堡按钮 ── */
.menu-btn { background:var(--surface); color:var(--text);
  box-shadow: 3px 3px 7px var(--shadow-dark), -3px -3px 7px var(--shadow-light); }
.menu-btn:active { box-shadow:
  inset 2px 2px 5px var(--shadow-dark), inset -2px -2px 5px var(--shadow-light); }

/* ── P0：侧边栏收起按钮 + 分页（新拟态） ── */
.sb-toggle { background:var(--surface); color:var(--text-soft);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light); }
.sb-toggle:hover { color:var(--accent); }
.tb-page-btn { background:var(--surface); color:var(--text-soft);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light); }
.tb-page-btn:hover:not(:disabled) { color:var(--accent); }
.tb-page-btn.tb-page-cur { background:var(--accent); color:#fff;
  box-shadow: 2px 2px 6px rgba(56,101,204,.35), -2px -2px 5px var(--shadow-light); }
.tb-page-size { background:var(--surface); color:var(--text-soft);
  box-shadow: inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light); }
.tb-row:hover { background:rgba(120,140,180,.08); }

/* ── P1：库导航行 / 面包屑 / 批量工具栏（新拟态） ── */
.lib-nav-row { background:var(--surface);
  box-shadow: inset 2px 2px 5px var(--shadow-dark), inset -2px -2px 5px var(--shadow-light); }
.lib-nav { color:var(--text-soft); }
.lib-nav:hover { color:var(--accent); background:rgba(120,140,180,.08); }
.lib-nav.active { color:var(--accent); background:var(--surface);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light); }
.crumb-item { background:var(--surface); color:var(--text-soft);
  box-shadow: inset 1.5px 1.5px 3px var(--shadow-dark), inset -1.5px -1.5px 3px var(--shadow-light); }
.crumb-item a { color:var(--text-soft); text-decoration:none; }
.crumb-item a:hover { color:var(--accent); }
.tb-filter { background:var(--surface); color:var(--text-soft);
  box-shadow: inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light); }
.tb-batch { background:var(--surface); color:var(--text);
  box-shadow: inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light); }
.tb-batch-del { background:var(--accent); color:#fff;
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light); }
.tb-mkdir { background:var(--surface); color:var(--accent);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light); }
.tb-mkdir:hover { color:var(--accent-strong); transform:translateY(-1px); }
.tb-back { background:var(--surface); color:var(--text-soft);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light); }
.tb-back:hover { color:var(--accent); transform:translateY(-1px); }
/* A 方案：分组折叠 */
.tb-grp-head { background:var(--surface); color:var(--text-strong);
  box-shadow: 3px 3px 6px var(--shadow-dark), -3px -3px 6px var(--shadow-light); }
.tb-grp-head:hover { color:var(--accent); }
/* C 方案：卡片 */
.tb-card { background:var(--surface); color:var(--text);
  box-shadow: 4px 4px 10px var(--shadow-dark), -4px -4px 10px var(--shadow-light); }
.tb-batch-move { background:var(--surface); color:var(--accent);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light); }
.tb-move-select { background:var(--surface); color:var(--text);
  box-shadow: inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light); }
.tb-batch-clear { background:var(--surface); color:var(--text-soft);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light); }
.tb-count-strong { background:var(--surface); color:var(--accent);
  box-shadow: inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light); }
