/* 资料库（library.js，/research/materials；第 4 轮 Part L，规格 §12、D74–D77、D79、D80、23.69–23.75）的样式。
   页面根 main > .doc-page.list-page.library：衬线 h1、页头底部墨色细线与正式表格来自 pages.css；预览与底部弹层沿用 search.css 的类名（.search-preview、.search-sheet、.preview-*）。
   本文件：页头一行（标题 · 按标题查找 · 导入资料 · 重复候选）与说明句中的“搜罗”入口；筛选行（来源标签按钮、两个下拉、清除筛选）；
   列表头、正式表格的列宽（32 | 1fr | 128 | 104 | 72）、行内标题与一行要点（读取前为一行骨架）；列表 + 右栏预览的栅格（≥1280 为 380、1101–1279 为 320、≤1100 单栏改用弹层）；
   吸底已选条（2px 海军蓝顶线 + 渐隐带）、分页与空状态；导入资料、批量中文整理与重复候选三个对话框（#modal 内，按内容用 :has 调整宽度）；
   ≤800 每行改为两区、≤480 点按区 44px；强制配色、打印与减少动态效果。
   颜色只用 var(--ss-*) 令牌（深色主题由令牌切换）；不写内联样式；预览栏限高由 library.js 在本文件末尾插入的 .library .search-preview 规则写入 --search-preview-max（CSSOM）。 */

/* ── 隐藏：本页与三个对话框里设置了 display 的元素，hidden 属性仍然生效 ─────────────── */
.library :is(.library-list-head,.library-table-card,.library-pager,.library-bar,.materials-bridge,.library-point,.library-limit,button.library-clear)[hidden],
:is(.library-import,.library-duplicates,.batch-organize) [hidden]{display:none}

/* ── 页头：标题、按标题查找与页头操作同一行；说明在下一行，句末的“搜罗”是入口链接 ─────────────── */
.library>.page-head .page-title-row{flex-wrap:nowrap;gap:12px 24px}
.library>.page-head .page-title{flex:none}
.library-search{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0}
.library .library-field{flex:1 1 auto;min-width:0}
.library>.page-head .page-actions{flex:none;flex-wrap:nowrap;gap:8px}
.library>.page-head .page-actions button{height:40px;min-height:40px;padding:0 16px;font-weight:500;white-space:nowrap}
.library>.page-head .page-actions button.library-duplicates{padding:0 6px;color:var(--ss-ink-2)}
.library>.page-head .page-actions button.library-duplicates:hover{color:var(--ss-primary-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.library-dek a.search-entry{color:var(--ss-primary-text);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.library-dek a.search-entry:hover{color:var(--ss-accent-text)}
.library-dek a.search-entry:focus-visible,.library>.page-head .page-actions button:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}

/* ── 筛选行：来源标签按钮（与搜罗的筛选按钮同一写法：按下为浅主色底）、两个下拉、清除筛选 ─────────────── */
.library .library-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;margin:0 0 14px}
.library-filter{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0}
.library-filter-label{flex:none;margin-right:2px;font-size:var(--ss-text-xs);font-weight:500;color:var(--ss-ink-2);white-space:nowrap}
.library .library-tags{gap:6px}
.library button.chip{display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface);box-shadow:none;color:var(--ss-ink-2);font-size:var(--ss-text-sm);font-weight:400;line-height:1.4;white-space:nowrap}
.library button.chip:hover{border-color:var(--ss-ink-2);color:var(--ss-ink)}
.library button.chip[aria-pressed=true]{border-color:var(--ss-primary-text);background:var(--ss-primary-soft);color:var(--ss-primary-text);font-weight:500}
.library .library-filter-selects select{width:auto;max-width:220px;height:28px;min-height:28px;padding:0 28px 0 10px;border-color:var(--ss-line);font-size:var(--ss-text-sm);color:var(--ss-ink)}
.library .library-filter-selects select:hover{border-color:var(--ss-ink-2)}
.library button.library-clear{min-height:28px;color:var(--ss-primary-text);font-size:var(--ss-text-sm)}
.library :is(button.chip,button.library-clear):focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}

/* ── 列表 + 右栏预览（≥1280 为 380、1101–1279 为 320，≤1100 单栏；没有资料或读取失败时单栏） ─────────────── */
.library-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--ss-side-panel);column-gap:40px;align-items:start}
.library-layout.is-empty{grid-template-columns:minmax(0,1fr)}
.library-layout.is-empty>.library-preview{display:none}
.library-main{min-width:0}

/* 列表头：左“共 N 份 · 已筛选 · 按收录时间，新的在前”，右“k / n 页 · 每页 20 份” */
.library-list-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px;margin:0 0 8px}
.library-count{margin:0;font-size:var(--ss-text-sm);line-height:1.6;color:var(--ss-ink-2);font-variant-numeric:tabular-nums}
.library-count:focus{outline:0}
.library-count:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}
.library-position{margin:0;font-size:var(--ss-text-xs);line-height:1.6;color:var(--ss-muted);font-variant-numeric:tabular-nums}
.library-position:empty{display:none}

/* ── 资料表：正式表格（pages.css）+ 固定列宽；首行文字基线对齐，勾选框与标题第一行居中 ─────────────── */
.library table.material-table{table-layout:fixed}
.library .material-table col.library-col-check{width:32px}
.library .material-table col.library-col-source{width:128px}
.library .material-table col.library-col-date{width:104px}
.library .material-table col.library-col-level{width:72px}
.library .material-table thead th{vertical-align:bottom}
.library .material-table :is(th,td).col-check{width:auto;padding-right:8px;padding-left:8px}
.library .material-table tbody td{padding-top:12px;padding-bottom:12px;font-size:var(--ss-text-sm);line-height:1.55;vertical-align:baseline}
.library .material-table tbody td.col-check{vertical-align:top}
.library-pick{display:flex;align-items:center;cursor:pointer}
.library .material-table tbody .library-pick{padding-top:4px}
.library .library-pick input{margin:0;cursor:pointer}
.library .library-pick input:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}

/* 资料列：原标题（无衬线 15px）+ 一行要点（≤1100 为两行）；要点读到前是一行骨架，读到后行高变化不超过一行（收起时为一行加 2px 间距，约 23.5px，规格 23.94 ≤24px） */
button.library-open{display:block;width:100%;min-height:0;padding:0;border:0;border-radius:var(--ss-radius-tag);background:none;box-shadow:none;color:var(--ss-ink);font-size:15px;font-weight:500;line-height:1.55;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
button.library-open:hover{border-color:transparent;background:none;color:var(--ss-primary-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
button.library-open:active{transform:none}
button.library-open:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}
.library-point{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;overflow:hidden;margin:2px 0 0;font-size:var(--ss-text-sm);line-height:1.65;color:var(--ss-ink-2);overflow-wrap:anywhere}
.library-point.is-loading{display:block;height:calc(var(--ss-text-sm) * 1.65)}
.library-point.is-loading .skeleton-bar{display:block;width:min(72%,440px);height:10px;margin-top:6px}
.library-point-label{color:var(--ss-muted)}
.library-point.is-pending{display:flex;align-items:center;gap:8px;color:var(--ss-primary-text)}

/* 来源、日期、正文三列：名称与日期为正文色，第二行说明色（.sub，pages.css）；缺失写“—” */
.library-source{display:block;font-weight:500;color:var(--ss-ink);word-break:keep-all;overflow-wrap:anywhere}
.library .material-table td .sub{margin-top:2px;overflow-wrap:anywhere}
.library-published{display:block;color:var(--ss-ink)}
.library-cell-date{font-variant-numeric:tabular-nums}
.library-cell-level .ss-tag{white-space:nowrap}
.library-missing{color:var(--ss-muted)}
/* 预览中的行为引句高亮底：深色主题下说明色在高亮底上对比不足（约 4.2:1），行内的第二行说明、要点前缀与“—”改用次级正文色 */
[data-theme="dark"] .library .material-table tr[aria-current="true"] :is(.sub,.library-point-label,.library-missing){color:var(--ss-ink-2)}

/* 预览中的行：引句高亮底 + 声纳青内侧线（pages.css）；读到上的行变暗等待新页；首次读取为三行骨架 */
.library .material-table.is-loading tbody{opacity:.5;transition:opacity .15s ease}
.library .material-table tr.library-skeleton td{vertical-align:top}
.library .material-table tr.library-skeleton .skeleton-bar{display:block;height:10px;margin:6px 0 0;max-width:100%}
.library .material-table tr.library-skeleton .library-skeleton-title{width:70%;height:14px;margin-top:4px}
.library .material-table tr.library-skeleton .library-skeleton-line{width:88%}
.library .material-table tr.library-skeleton .library-skeleton-tag{width:44px;height:16px}

/* 读取失败与空状态：落在表头位置的墨色细线下 */
.library-status:empty{display:none}
.library-status>.region-error{margin-top:0}
.library-empty{margin:0;padding:20px 0 22px;border-top:1px solid var(--ss-ink);border-bottom:1px solid var(--ss-line);font-size:var(--ss-text-md);line-height:1.6;color:var(--ss-ink-2)}

/* ── 分页：“共 N 份 · 每页 20 份”与“上一页 · k / n 页 · 下一页” ─────────────── */
.library .library-pager{margin:14px 0 0;font-size:var(--ss-text-sm);color:var(--ss-muted)}
.library-pager-total{font-variant-numeric:tabular-nums}
.library .library-pager .library-pager-nav{gap:12px}
.library-pager-position{color:var(--ss-ink-2);font-variant-numeric:tabular-nums}
.library .library-pager button{min-height:32px;padding:0 14px}
.library .library-pager button:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}

/* ── 已选条：吸附在视口底部（列表区内），2px 海军蓝顶线 + 上方渐隐带；已选行不着色（pages.css） ─────────────── */
.library .library-bar{position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;margin:20px 0 0;padding:10px 12px;border:0;border-top:2px solid var(--ss-primary-text);border-radius:0;background:var(--ss-surface);box-shadow:none}
.library .library-bar::before{content:"";position:absolute;right:0;bottom:calc(100% + 2px);left:0;height:20px;background:linear-gradient(to bottom,transparent,var(--ss-surface));pointer-events:none}
.library-bar-total{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;flex:1 1 auto;min-width:0}
.library-bar-sum{display:inline-flex;align-items:baseline;gap:6px;margin:0;font-size:var(--ss-text-sm);color:var(--ss-ink-2);white-space:nowrap}
.library-bar-mix{color:var(--ss-muted)}
.library-bar-links{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
.library .library-bar-links button.link-button{min-height:32px;color:var(--ss-primary-text);font-size:var(--ss-text-sm)}
.library .library-bar .selection-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin-left:auto}
.library .library-bar .selection-actions>button{height:38px;min-height:38px;padding:0 16px;font-weight:500;white-space:nowrap}
.library .library-bar .selection-actions>button.primary{font-weight:600}
.library .library-bar button:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}
.library-limit{flex:1 1 100%;margin:0;font-size:var(--ss-text-xs);color:var(--ss-warn-text);text-align:right}
/* 键盘焦点滚动与 scrollIntoView 预留条高与渐隐带，焦点不被已选条遮住（WCAG 2.4.11） */
html:has(.library .library-bar:not([hidden])){scroll-padding-bottom:112px}

/* ── 预览（右栏或弹层，结构同搜罗）：中文标题、要点骨架、资料信息中的整行项、专题链接 ─────────────── */
.library-preview-zh{margin:4px 16px 0;font-size:var(--ss-text-sm);line-height:1.6;color:var(--ss-ink-2);overflow-wrap:anywhere}
.library-preview-loading{display:grid;gap:8px;padding:4px 0}
.library-preview-loading .skeleton-bar{height:10px}
.library-preview-body .preview-meta-item.is-wide{grid-column:1/-1;padding-left:0}
.library-preview-body .preview-meta dd a{color:var(--ss-accent-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.library-meta-muted{color:var(--ss-muted);font-weight:400}

/* ── 对话框：导入资料（600px）——导入方式为分段单选，文件框带样式化的选择按钮，可选字段收在“更多信息” ─────────────── */
#modal:has(> #modal-body > .library-import){width:min(600px,calc(100vw - 32px))}
.library-import{gap:14px}
.library-import-modes{display:flex;flex-wrap:wrap;gap:8px;min-width:0;margin:0;padding:0;border:0}
.library-import-modes legend{float:left;width:100%;margin:0 0 2px;padding:0;font-size:var(--ss-text-sm);color:var(--ss-muted)}
.library-import-mode{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px 0 10px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface);color:var(--ss-ink);font-size:var(--ss-text-sm);cursor:pointer}
.library-import-mode:hover{border-color:var(--ss-ink-2)}
.library-import-mode:has(input:checked){border-color:var(--ss-primary-text);background:var(--ss-primary-soft);color:var(--ss-primary-text);font-weight:500}
.library-import-mode input{width:16px;height:16px;min-height:16px;margin:0;padding:0;accent-color:var(--ss-primary-text)}
.library-import-mode:has(input:focus-visible){outline:2px solid var(--ss-accent);outline-offset:2px}
.library-import label.field{gap:6px}
/* 文件框：原生输入视觉隐藏（仍可聚焦），外观为虚线框内的“选择文件”按钮与已选文件名 */
.library-file{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:6px;border:1px dashed var(--ss-faint);border-radius:var(--ss-radius-control);background:var(--ss-surface-2);cursor:pointer}
.library-import .library-file input[type=file]{position:absolute;top:0;left:0;width:1px;height:1px;min-height:0;margin:0;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0)}
.library-file-button{flex:none;padding:5px 12px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface);color:var(--ss-ink);font-size:var(--ss-text-sm);font-weight:500;line-height:1.5}
.library-file:hover .library-file-button{border-color:var(--ss-primary-text);color:var(--ss-primary-text)}
.library-file-name{min-width:0;font-size:var(--ss-text-sm);line-height:1.5;color:var(--ss-ink-2);overflow-wrap:anywhere}
.library-file:has(input:focus){outline:2px solid var(--ss-accent);outline-offset:2px}
.library-file:has(input[aria-invalid=true]){border-style:solid;border-color:var(--ss-danger-text)}
.library-import .library-import-file-hint{margin:2px 0 0;line-height:1.6}
.library-import .library-import-content{min-height:160px}
.library-import-more{border-top:1px solid var(--ss-line)}
.library-import-more>summary{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 0;list-style:none;color:var(--ss-primary-text);font-size:var(--ss-text-sm);font-weight:500;cursor:pointer}
.library-import-more>summary::-webkit-details-marker{display:none}
.library-import-more>summary::before{content:"";flex:none;width:6px;height:6px;margin:0 2px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(-45deg);transition:transform .15s ease-out}
.library-import-more[open]>summary::before{transform:rotate(45deg)}
.library-import-more>summary:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}
.library-import-more-body{display:grid;gap:14px;padding:4px 0 8px}
.library-import .library-import-note{margin:0;line-height:1.6}
.library-import-error:empty{display:none}
.library-import-error{display:grid;gap:6px}
.library-import-error-text{margin:0;font-size:var(--ss-text-sm);font-weight:500;line-height:1.6;color:var(--ss-danger-text)}
.library-import [aria-invalid=true]{border-color:var(--ss-danger-text)}
.library-dialog-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.library-dialog-actions>button{min-height:36px;padding:0 16px}

/* ── 对话框：批量中文整理（material-actions.js，560px）——先确认，再列出每份资料的整理状态 ─────────────── */
#modal:has(> #modal-body > .batch-organize){width:min(560px,calc(100vw - 32px))}
.batch-organize-lead{margin:0 0 6px;font-size:var(--ss-text-md);line-height:1.7;color:var(--ss-ink)}
.batch-organize>.hint{margin:0;line-height:1.6}
.batch-organize-error:empty{display:none}
.batch-organize-error{display:grid;gap:6px;margin:12px 0 0}
.batch-organize-error-text{margin:0;font-size:var(--ss-text-sm);font-weight:500;color:var(--ss-danger-text)}
.batch-organize-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.batch-organize-actions>button{min-height:36px;padding:0 16px}
.batch-organize-summary{margin:0;font-size:var(--ss-text-sm);font-weight:500;color:var(--ss-ink)}
.batch-organize-summary:focus{outline:0}
.batch-organize-list{margin:12px 0;padding:0;list-style:none;border-top:1px solid var(--ss-ink)}
.batch-organize-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--ss-line)}
.batch-organize-name{min-width:0;font-size:var(--ss-text-sm);line-height:1.6;color:var(--ss-ink);overflow-wrap:anywhere}
.batch-organize-row>.ss-tag{flex:none}

/* ── 对话框：重复候选——每对左右对照（标题、来源、发布、正文、收录），判断下拉只给审核人员 ─────────────── */
.library-dup-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px}
.library-dup-intro{flex:1 1 320px;margin:0;line-height:1.6}
.library-dup-head>button{min-height:36px;padding:0 14px}
.library-dup-role{margin:8px 0 0;font-size:var(--ss-text-sm);color:var(--ss-muted)}
.library-dup-total{margin:16px 0 0;padding-bottom:6px;border-bottom:1px solid var(--ss-ink);font-size:var(--ss-text-xs);font-weight:500;letter-spacing:.06em;color:var(--ss-muted)}
.library-dup-list[aria-busy=true]{opacity:.7}
.library-dup-loading{display:grid;gap:8px;padding:16px 0}
.library-dup-loading .skeleton-bar{height:12px}
.library-dup-pair{padding:14px 0 16px;border-bottom:1px solid var(--ss-line)}
.library-dup-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:10px}
.library-dup-reason{flex:1 1 240px;min-width:0;margin:0;font-size:var(--ss-text-sm);line-height:1.6;color:var(--ss-ink-2);overflow-wrap:anywhere}
.library-dup-judge,.library-dup-status{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--ss-text-sm);color:var(--ss-ink)}
.library-dup-judge-label{font-size:var(--ss-text-xs);font-weight:500;color:var(--ss-muted)}
.library-dup-judge select{width:auto;min-width:148px;min-height:32px}
.library-dup-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:24px}
.library-dup-side{min-width:0}
.library-dup-side+.library-dup-side{padding-left:24px;border-left:1px solid var(--ss-line)}
button.library-dup-title{font-size:var(--ss-text-md);font-weight:600;line-height:1.55;color:var(--ss-ink)}
.library-dup-meta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;margin:6px 0 0;font-size:var(--ss-text-sm);line-height:1.6}
.library-dup-meta>div{display:contents}
.library-dup-meta dt{color:var(--ss-muted);font-size:var(--ss-text-xs);line-height:1.8}
.library-dup-meta dd{margin:0;color:var(--ss-ink-2);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.library-dup-side.is-missing p{margin:0;font-size:var(--ss-text-sm)}
.library-dup-empty{margin:0;padding:20px 0;font-size:var(--ss-text-md);color:var(--ss-ink-2)}
.library-duplicates>.library-dup-more{margin-top:14px;min-height:36px;padding:0 16px}
.library-duplicates :is(button,select):focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}

/* ── 宽度 ─────────────── */
@media(max-width:1279px){
  .library-layout{grid-template-columns:minmax(0,1fr) var(--ss-report-rail-narrow);column-gap:32px}
}
@media(max-width:1100px){
  .library-layout{grid-template-columns:minmax(0,1fr)}
  .library-point{-webkit-line-clamp:2;line-clamp:2}
}
@media(max-width:800px){
  /* 页头：标题与操作一行，查找框占满下一行 */
  .library>.page-head .page-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title actions" "search search";align-items:center;gap:10px 12px}
  .library>.page-head .page-title{grid-area:title}
  .library>.page-head .page-actions{grid-area:actions}
  .library-search{grid-area:search}
  /* 筛选：来源标签一行，两个下拉各占一半 */
  .library .library-toolbar{gap:10px 16px}
  .library-filter-tags{flex:1 1 100%}
  .library-filter-selects{flex:1 1 auto}
  .library .library-filter-selects select{flex:1 1 0;max-width:none}
  /* 行改为两区：勾选 | 标题与要点，下一行为来源 · 日期 · 正文 */
  .library table.material-table,.library .material-table :is(thead,tbody){display:block}
  .library .material-table colgroup{display:none}
  .library .material-table tr{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 0;padding:12px 0 12px 40px;border-bottom:1px solid var(--ss-line)}
  .library .material-table thead tr{padding:0 0 6px 40px;border-bottom:1px solid var(--ss-ink)}
  .library .material-table thead th:nth-child(n+3){display:none}
  .library .material-table :is(th,td),.library .material-table tbody td,.library .material-table tbody tr:last-child>:is(th,td){padding:0;border:0}
  .library .material-table :is(th,td).col-check,.library .material-table tbody td.col-check{position:absolute;top:0;bottom:0;left:0;width:40px;padding:12px 0 0 8px}
  .library .material-table thead th.col-check{padding-top:0}
  .library .material-table tbody td.library-cell-main{flex:1 1 100%;min-width:0;margin-bottom:4px}
  .library .material-table tbody td:is(.library-cell-source,.library-cell-date,.library-cell-level){display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;flex:none;max-width:100%;font-size:var(--ss-text-xs)}
  .library .material-table tbody td:is(.library-cell-date,.library-cell-level){margin-left:10px;padding-left:10px;border-left:1px solid var(--ss-line)}
  .library .material-table tbody td .sub{display:inline;margin:0}
  .library .material-table tbody td :is(.library-source,.library-published){display:inline}
  .library .material-table tbody tr.library-skeleton td:not(.library-cell-main):not(.col-check){display:none}
  /* 勾选点按区：列拉伸到整行高度，宽 40px */
  .library .material-table tbody .library-pick{position:relative}
  .library .material-table tbody .library-pick::before{content:"";position:absolute;top:-12px;right:-12px;bottom:-14px;left:-8px}
  .library .material-table tbody .library-pick input{position:relative;z-index:1}
  /* 已选条：两行（份数与链接 / 三个操作），操作按钮均分 */
  .library .library-bar{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:8px 0 calc(8px + env(safe-area-inset-bottom))}
  .library .library-bar .selection-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}
  .library .library-bar .selection-actions>button{padding:0 8px}
  .library-limit{text-align:left}
  html:has(.library .library-bar:not([hidden])){scroll-padding-bottom:152px}
  .library-dup-grid{grid-template-columns:minmax(0,1fr);row-gap:12px}
  .library-dup-side+.library-dup-side{padding:12px 0 0;border-top:1px solid var(--ss-line);border-left:0}
}
@media(max-width:480px){
  .library>.page-head .page-actions button{height:44px;min-height:44px;padding:0 12px}
  .library>.page-head .page-actions button.library-duplicates{padding:0 4px}
  /* 说明句中的“搜罗”：上下各延伸 12px 的点按区，不改变行高 */
  .library-dek a.search-entry{display:inline-block;margin:-12px 0;padding:12px 0}
  /* 筛选按钮看起来 36px，上下各延伸 4px 的点按区合计 44px；下拉 44px */
  .library .library-tags{row-gap:8px}
  /* 行的第二区：来源独占一行，日期与正文在下一行（行首不留分隔线） */
  .library .material-table tbody td.library-cell-source{flex-basis:100%}
  .library .material-table tbody td.library-cell-date{margin-left:0;padding-left:0;border-left:0}
  .library button.chip{position:relative;min-height:36px}
  .library button.chip::after{content:"";position:absolute;inset:-4px 0}
  .library .library-filter-selects select{height:44px;min-height:44px}
  .library button.library-clear{min-height:44px}
  .library .library-bar-links button.link-button{min-height:44px}
  .library .library-bar .selection-actions>button,.library .library-pager button{height:44px;min-height:44px}
  .library .library-bar .selection-actions>button{padding:0 4px;font-size:var(--ss-text-sm)}
  .library .library-pager{flex-direction:column;align-items:stretch}
  .library .library-pager .library-pager-nav{justify-content:space-between}
  .library-import-mode,.library-dialog-actions>button,.batch-organize-actions>button,.library-dup-head>button,.library-duplicates>.library-dup-more{min-height:44px}
  .library-import-more>summary{min-height:44px}
  .library-dup-judge select{min-height:44px}
  .library-dup-top{flex-direction:column;align-items:flex-start}
}

/* ── 强制配色：筛选按钮、已选条顶线、导入方式与对照分隔线保持可见 ─────────────── */
@media(forced-colors:active){
  .library button.chip,.library-import-mode{border-color:ButtonText}
  .library button.chip[aria-pressed=true],.library-import-mode:has(input:checked){border:2px solid Highlight}
  .library .library-bar{border-top-color:CanvasText}
  .library-dup-side+.library-dup-side,.library-empty,.library-dup-total,.batch-organize-list{border-color:CanvasText}
  .library-point.is-loading .skeleton-bar,.library .material-table tr.library-skeleton .skeleton-bar{forced-color-adjust:none;background:GrayText}
}

/* ── 打印：只留标题、说明与资料表（标题、要点全文、来源、日期、正文）；筛选、勾选、预览、分页与已选条不打印 ─────────────── */
@media print{
  .library-search,.library>.page-head .page-actions,.library .library-toolbar,.library .materials-bridge,.library .library-preview,.library .library-sheet,
  .library .library-pager,.library .library-bar,.library-position,.library-point.is-loading,.library .material-table tr.library-skeleton{display:none}
  .library-layout{display:block}
  .library .material-table col.library-col-check{width:0}
  .library .material-table :is(th,td).col-check{padding:0}
  .library .material-table .col-check>*{display:none}
  .library-point{display:block;overflow:visible;-webkit-line-clamp:unset;line-clamp:none}
  .library .material-table.is-loading tbody{opacity:1}
  .library-dek a.search-entry{color:inherit;text-decoration:none}
  /* workspace.css 打印时隐藏全部按钮（!important）；资料标题是按钮，这里用更具体的选择器保留 */
  .library .material-table button.library-open{display:block!important;color:inherit;text-decoration:none}
}

/* ── 减少动态效果 ─────────────── */
@media(prefers-reduced-motion:reduce){
  .library .material-table.is-loading tbody,.library-import-more>summary::before{transition:none}
}

/* ── 产品化第 4 步“统一检索”：标题查找下方的两步——按正文搜罗资料库（次要按钮）、库内＋联网补充（文字按钮）；预填搜罗页的链接在前 ── */
.library .materials-bridge{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}
.library .library-bridge-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.library .library-bridge-lead{color:var(--ss-muted)}
.library button.library-bridge-go{min-height:30px;padding:3px 12px;font-size:var(--ss-text-sm)}
.library button.library-bridge-web{min-height:30px;font-size:var(--ss-text-sm)}
@media(max-width:480px){.library :is(button.library-bridge-go,button.library-bridge-web){min-height:44px}}
