/* ============================================================
   27-library-density.css — 目录页疏/密两档密度（方案 A）
   密档（默认）：标题+日期一行制，约 40px/条，扫读用
   疏档：回到原始摘要形态（79px/条），细读用
   切换记忆：localStorage density = compact | airy
   ============================================================ */

/* 切换按钮：放在目录范围行右侧 */
.library-density {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 14px;
}
.library-density button {
  font: 500 13px/1 var(--font-reading);
  color: var(--text-secondary);
  background: none;
  border: 1px solid var(--border-subtle);
  border-radius: 999px;
  padding: 7px 16px;
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.library-density button:hover { color: var(--ink-primary); border-color: var(--border-strong); }

/* ---------- 密档（compact）：body[data-density=compact] 时生效 ----------
   单行制（浏览器实测 44px/条，一屏 18 条 vs 疏档 79px/9 条）：
   目录号 | 标题（16px 单行）| 分类+日期（右侧元数据行） */

body[data-density="compact"] .library-entry {
  grid-template-columns: 64px 1fr auto;
  padding: 10px 0;
  align-items: baseline;
  row-gap: 0;
  column-gap: 14px;
}
body[data-density="compact"] .entry-index { font-size: 10px; }

/* 标题占第 2 列 */
body[data-density="compact"] .catalog-record-content {
  display: block;
  grid-column: 2;
  grid-row: 1;
}
body[data-density="compact"] .library-entry h2 { font-size: 16px; margin: 0; }
body[data-density="compact"] .library-entry h2 a { line-height: 1.45; }

/* 摘要隐藏：密档为扫读形态 */
body[data-density="compact"] .entry-excerpt { display: none; }

/* 元数据放第 3 列：分类 + 日期（隐藏阅读时长与批注数） */
body[data-density="compact"] .catalog-record-meta {
  grid-column: 3;
  grid-row: 1;
  align-self: baseline;
  display: flex;
  gap: 10px;
  font-size: 11px;
  white-space: nowrap;
  margin: 0;
}
body[data-density="compact"] .catalog-record-meta span:nth-child(3),
body[data-density="compact"] .catalog-record-meta .annotation-count { display: none; }

/* hover 反馈：轻底色提示可点 */
body[data-density="compact"] .library-entry:hover { background: color-mix(in srgb, var(--paper-deep) 55%, transparent); }

/* v37 目录筛选工具栏：过滤是地图工具，不是占据首屏的卡片。 */
.library-filter-toolbar { max-width: var(--container-wide); margin: var(--space-4) auto 0; border-block: 1px solid var(--border-subtle); }
.filter-toolbar-head { display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-4); padding:12px 0 9px; }
.filter-toolbar-head p { margin:0; }
.filter-clear { color:var(--text-muted); font:500 12px/1.4 var(--font-ui); }
.filter-clear:hover { color:var(--text-primary); }
.filter-category-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 18px; padding:10px 0 12px; border-top:1px solid var(--border-subtle); }
.filter-label { flex:none; color:var(--text-muted); font:600 11px/1.5 var(--font-ui); letter-spacing:.04em; }
.filter-category-row .filter-label { margin-right:2px; }
.filter-category-row .filter-link { display:inline-flex; gap:4px; align-items:baseline; padding:3px 0; border:0; color:var(--text-secondary); font:400 14px/1.5 var(--font-reading); }
.filter-category-row .filter-link b { font:400 11px/1 var(--font-ui); color:var(--text-muted); }
.filter-category-row .filter-link.active { color:var(--text-primary); box-shadow:inset 0 -2px 0 var(--color-warm); font-weight:600; }
.filter-tags-drawer { border-top:1px solid var(--border-subtle); }
.filter-tags-drawer summary { display:flex; align-items:baseline; gap:12px; padding:11px 0; cursor:pointer; list-style:none; color:var(--text-secondary); font:400 14px/1.5 var(--font-reading); }
.filter-tags-drawer summary::-webkit-details-marker { display:none; }
.filter-tags-drawer summary::after { content:"+"; margin-left:auto; color:var(--text-muted); }
.filter-tags-drawer[open] summary::after { content:"−"; }
.filter-tags-drawer summary small { color:var(--text-muted); font:400 11px/1.4 var(--font-ui); }
.filter-tags-drawer .tag-list { display:flex; flex-wrap:wrap; gap:7px 16px; padding:2px 0 16px 54px; }
.filter-tags-drawer .cloud-tag { color:var(--text-secondary); font:400 13px/1.6 var(--font-reading); }
.filter-tags-drawer .cloud-tag small { color:var(--text-muted); font:400 10px/1 var(--font-ui); }
.filter-tags-drawer .cloud-tag[data-active="true"] { color:var(--text-primary); text-decoration:underline; text-decoration-color:var(--color-warm); text-underline-offset:4px; }

/* 摘要来源标签：把馆员判断和原文摘录分开说清楚。 */
.directory-summary-label { display:inline-block; margin-right:6px; color:var(--text-muted); font:600 10px/1.4 var(--font-ui); letter-spacing:.04em; }
.directory-summary-empty { color:var(--text-muted); font-style:italic; }
body[data-density="compact"] .directory-summary-label, body[data-density="compact"] .directory-summary-empty { display:none; }

@media (max-width:760px) {
  .library-filter-toolbar { margin-top:var(--space-3); }
  .filter-category-row { gap:4px 13px; }
  .filter-category-row .filter-label { flex-basis:100%; margin-bottom:2px; }
  .filter-tags-drawer .tag-list { padding-left:0; }
}

/* ---------- 疏档（airy）：回到原始形态，无需覆盖 ---------- */
