/* 搜罗（正式版第 3 轮）：资料库页头的“搜罗”入口与“用‘q’搜罗 →”（Part 0），以及搜罗起始页与结果页（Part S，规格 §10–§12）。
   版式（对照原型 e-formal/search.*，改用正式令牌）：整页白纸；页头为衬线 h1“搜罗”+ 一行搜索表单，底部一条墨色细线；
   结果页左栏为结果摘要行、筛选、说明、与结果行同网格的列头（墨色细线）和紧凑行（24px | 1fr | 112px | 88px），底部吸附“已选”条（2px 海军蓝顶线）；
   右栏预览（≥1280px 宽 --ss-side-panel，1101–1279px 宽 --ss-report-rail-narrow，桌面吸顶），≤1100px 预览为底部弹层 dialog.search-sheet。
   断点 480 / 800 / 1100 / 1280；颜色只用 var(--ss-*)（transparent 只作渐隐端点）；深色主题全部由令牌切换；打印隐藏条件、筛选、已选条与预览，列表打印为编号清单；
   强制配色下筛选按钮与预览中的行保留可见边框；减少动态效果时弹层不做滑入。在 report-a4.css 之后加载，不用 !important，不写内联样式。
   第 3 轮复查：吸底已选条为键盘焦点预留滚动留白；搜索框不显示浏览器自带的清除按钮；两组筛选的选项起点对齐；未获取全文说明去掉空方块；
   0 结果不再叠两道墨线；范围面板里的网络出口不再套一层卡片；来源名只在词与词之间换行（≥1280 列宽 128px）；≤800 复选框点按区 44×44；
   ≤480 文字按钮、面板选项与“打开原文”点按区不低于 44px；强制配色下搜索框聚焦有系统色外框；打印隐藏列头、不带预览高亮。 */

/* ── 资料库入口（Part 0）：资料库页头“搜罗”按钮与“用‘q’搜罗 →” ─────────────── */
.titlebar a.search-entry{display:inline-flex;align-items:center;justify-content:center;min-height:32px;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);line-height:1.5;font-weight:500;white-space:nowrap;text-decoration:none}
.titlebar a.search-entry:hover{border-color:var(--ss-primary-text);color:var(--ss-primary-text);text-decoration:none}
.titlebar a.search-entry:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}
.materials-bridge{margin:-4px 0 12px;font-size:var(--ss-text-sm);overflow-wrap:anywhere}
.materials-bridge a{color:var(--ss-primary-text);font-weight:500;text-underline-offset:3px}
@media(max-width:480px){.titlebar a.search-entry{min-height:44px}.materials-bridge a{display:inline-flex;align-items:center;min-height:44px}}
@media(forced-colors:active){.titlebar a.search-entry{border-color:LinkText}}

/* ── 整页白纸：搜罗两页的页头带、列表与预览在同一张纸上（位置路径由 formal-theme.css 并入页头带） ─────────────── */
body:has(#workspace > .page-head.search-head){background:var(--ss-surface)}

/* ── 页头：h1 + 一行搜索表单；底部墨色细线与内容同宽（不铺到页面边缘） ─────────────── */
.page-head.search-head{position:relative;gap:0;margin-bottom:16px;padding-top:12px;padding-bottom:16px;border-bottom:0;
  background:linear-gradient(var(--ss-ink),var(--ss-ink)) center bottom / calc(100% - 2 * var(--mx)) 1px no-repeat,var(--ss-surface)}
.search-head-row{display:flex;align-items:center;gap:12px 24px;min-width:0}
.search-head .page-title{flex:none;gap:0}
.search-head .page-title h1{font-family:var(--ss-font-serif);font-size:28px;line-height:40px;font-weight:700;letter-spacing:0;color:var(--ss-ink)}
.search-form{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0}
.search-icon{flex:none;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
/* 关键词：40px 高、16px 字（iOS 不放大）；聚焦时整框加深为 2px 海军蓝 */
.search-field{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:160px;height:40px;padding-left:12px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface);color:var(--ss-muted);cursor:text}
.search-field:hover{border-color:var(--ss-faint)}
.search-field:focus-within{border-color:var(--ss-primary-text);box-shadow:inset 0 0 0 1px var(--ss-primary-text)}
.search-field input{flex:1;min-width:0;height:100%;min-height:0;padding:0 12px 0 0;border:0;border-radius:0;outline:0;background:transparent;box-shadow:none;font-size:var(--ss-text-lg);font-weight:500;color:var(--ss-ink)}
.search-field input:focus-visible{outline:0}
/* 浏览器自带的清除按钮（蓝色 ×）与正式主题不符，不显示（第 3 轮复查 D6）；清空关键词用退格或全选删除 */
:is(.search-field,.search-filter-text) input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.search-field input::placeholder{color:var(--ss-muted);font-weight:400}
.search-field input[aria-invalid=true]{color:var(--ss-ink)}
.search-field:has(input[aria-invalid=true]){border-color:var(--ss-danger-text)}
/* 条件按钮：灰底、键名 | 值 + 下拉箭头；展开时白底海军蓝边 */
.search-chips{position:relative;display:flex;flex:none;gap:8px;min-width:0}
button.search-chip{display:inline-flex;align-items:center;gap:6px;height:40px;min-height:40px;max-width:100%;padding:0 10px 0 12px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface-2);box-shadow:none;color:var(--ss-ink);font-size:var(--ss-text-sm);font-weight:400;line-height:1;white-space:nowrap}
button.search-chip:hover{border-color:var(--ss-faint);background:var(--ss-surface)}
button.search-chip[aria-expanded=true]{border-color:var(--ss-primary-text);background:var(--ss-surface)}
.search-chip-key{padding-right:6px;border-right:1px solid var(--ss-line);font-size:var(--ss-text-xs);letter-spacing:.06em;color:var(--ss-muted)}
.search-chip-value{min-width:0;overflow-wrap:anywhere;font-weight:500}
.search-chip .search-icon{width:14px;height:14px;color:var(--ss-muted);transition:transform .15s ease}
.search-chip[aria-expanded=true] .search-icon{transform:rotate(180deg)}
button.search-go{flex:none;height:40px;min-height:40px;padding:0 18px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface);box-shadow:none;color:var(--ss-ink);font-size:var(--ss-text-sm);font-weight:600}
button.search-go:hover{border-color:var(--ss-primary-text);color:var(--ss-primary-text)}
button.search-go.primary{border-color:var(--ss-primary-text);background:var(--ss-primary-text);color:var(--ss-on-primary-text)}
button.search-go.primary:hover{color:var(--ss-on-primary-text)}
.search-error{margin:8px 0 0;font-size:var(--ss-text-sm);font-weight:500;color:var(--ss-danger-text)}
.search-hint{margin:8px 0 0;font-size:var(--ss-text-sm);color:var(--ss-muted)}
/* 条件面板：非模态，≥801px 浮在条件按钮下方右对齐；≤800px 在表单内展开占满一行 */
.search-panel{display:grid;gap:12px;padding:16px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-panel);background:var(--ss-surface);box-shadow:var(--ss-shadow-pop);color:var(--ss-ink);font-size:var(--ss-text-sm);white-space:normal}
.search-panel-label{margin:0;font-size:var(--ss-text-xs);font-weight:500;letter-spacing:.04em;color:var(--ss-muted)}
.search-panel .tag-picker{margin:0;gap:6px}
.search-panel .tag-choice{min-height:32px;padding:4px 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)}
.search-panel .tag-choice:has(input:checked){border-color:var(--ss-primary-text);background:var(--ss-primary-soft);color:var(--ss-primary-text)}
.search-panel .tag-choice small{font-size:var(--ss-text-xs);color:var(--ss-muted)}
.search-panel .tag-choice input{accent-color:var(--ss-primary-text)}
.search-modes{display:flex;flex-wrap:wrap;gap:2px 16px;min-width:0;margin:0;padding:12px 0 0;border:0;border-top:1px solid var(--ss-line)}
.search-modes legend{float:left;width:100%;margin:0 0 4px;padding:0;font-size:var(--ss-text-xs);font-weight:500;letter-spacing:.04em;color:var(--ss-muted)}
.search-mode{display:inline-flex;align-items:center;gap:8px;min-height:32px;color:var(--ss-ink);cursor:pointer}
.search-mode input{accent-color:var(--ss-primary-text)}
.search-panel .network-control{display:grid;gap:6px;margin:0;padding:12px 0 0;border:0;border-top:1px solid var(--ss-line);border-radius:0;background:none}
.search-panel .network-control .hint{margin:0;font-size:var(--ss-text-xs)}
.search-panel .date-range{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.search-panel .date-range>.field{display:grid;flex:1 1 140px;min-width:0;gap:4px;font-size:var(--ss-text-xs)}
.search-panel .date-range input{width:100%;min-width:0}
.search-panel button.search-reset{justify-self:start}
/* 结果页范围面板的说明（本次为联网补充、使用了已停用标签）：说明色小字 */
.search-panel-note{margin:0;font-size:var(--ss-text-xs);line-height:1.6;color:var(--ss-ink-2)}
@media(min-width:801px){
  .search-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:440px;max-width:calc(100vw - 2 * var(--mx))}
  .search-panel-time{width:368px}
}

/* ── 起始页：最近的搜罗 ─────────────── */
.search-recent{max-width:960px;margin-top:8px}
.search-recent-title{margin:0;padding-bottom:8px;border-bottom:1px solid var(--ss-ink);font-family:var(--ss-font-serif);font-size:var(--ss-text-xl);font-weight:700;line-height:1.4;color:var(--ss-ink)}
.search-recent-list{margin:0;padding:0;list-style:none}
.search-recent-row{display:flex;align-items:baseline;justify-content:space-between;gap:4px 24px;padding:12px 0;border-bottom:1px solid var(--ss-line)}
.search-recent-q{min-width:0;font-size:var(--ss-text-lg);font-weight:500;line-height:1.5;color:var(--ss-ink);overflow-wrap:anywhere;text-decoration:none}
.search-recent-q:hover{color:var(--ss-primary-text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.search-recent-meta{display:inline-flex;align-items:center;gap:10px;flex:none;font-size:var(--ss-text-sm);color:var(--ss-muted);font-variant-numeric:tabular-nums}
.search-recent-empty,.search-recent-error>p{margin:14px 0 0;font-size:var(--ss-text-sm);color:var(--ss-muted)}
.search-recent-error{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.search-recent-foot{margin:12px 0 0;font-size:var(--ss-text-sm)}
.search-recent-all{font-weight:500;color:var(--ss-primary-text);text-underline-offset:3px}
.search-recent-body[aria-busy=true]{min-height:48px}

/* ── 结果页布局：列表 + 预览（≥1280 预览 --ss-side-panel、间距 40；1101–1279 预览 --ss-report-rail-narrow、间距 32；≤1100 单栏） ─────────────── */
.quick-layout.search-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--ss-side-panel);column-gap:40px;align-items:start;margin:0;background:none}
.quick-layout.search-layout.is-empty{grid-template-columns:minmax(0,1fr)}
.quick-layout.search-layout.is-empty>.search-preview{display:none}
.quick-layout.search-layout .quick-main{display:block;min-width:0;padding:0}
/* 结果摘要行：安静的一行说明（不是卡片），过程与要点入口靠右 */
.search-layout .quick-status{display:grid;gap:8px;margin:0 0 12px}
.search-layout .result-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;margin:0;padding:0;border:0;border-radius:0;background:none;font-size:var(--ss-text-sm);line-height:1.6;color:var(--ss-muted)}
.search-layout .result-summary b{font-size:var(--ss-text-sm);font-weight:600;color:var(--ss-ink)}
.search-layout .result-summary>.ss-tag{align-self:center}
.search-layout .result-summary .btn-link{min-height:24px;font-size:var(--ss-text-sm)}
.search-layout .quick-status .page-notice{margin:0}
/* 筛选：两组按钮（来源类别 | 正文）与标题摘要筛选同一行，放不下时换行 */
/* 两组筛选与文字筛选是同一行里的三个块（.search-filters 不占盒子），放不下时整块换行，文字筛选靠右 */
.search-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;margin:0}
.search-filters{display:contents}
.facet-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;max-width:100%}
.facet-label{font-size:var(--ss-text-xs);font-weight:500;color:var(--ss-ink-2);white-space:nowrap}
/* 两组筛选上下堆叠时选项起点对齐：组名固定最小宽度 */
@media(min-width:801px){.facet-label{flex:none;min-width:4.5em}}
.facet-options{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
button.facet{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 9px;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-xs);font-weight:400;line-height:1.4;white-space:nowrap}
button.facet:hover{border-color:var(--ss-ink-2);color:var(--ss-ink)}
button.facet[aria-pressed=true]{border-color:var(--ss-primary-text);background:var(--ss-primary-soft);color:var(--ss-primary-text);font-weight:500}
.facet-count{color:var(--ss-muted);font-variant-numeric:tabular-nums}
button.facet[aria-pressed=true] .facet-count{color:var(--ss-primary-text)}
.search-toolbar{flex:0 1 240px;min-width:180px;margin-left:auto}
.search-filter-text{display:flex;align-items:center;gap:6px;height:32px;padding-left:10px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface);color:var(--ss-muted)}
.search-filter-text:focus-within{border-color:var(--ss-primary-text);box-shadow:inset 0 0 0 1px var(--ss-primary-text)}
.search-filter-text input{flex:1;min-width:0;height:100%;min-height:0;padding:0 10px 0 0;border:0;border-radius:0;outline:0;background:transparent;box-shadow:none;font-size:var(--ss-text-sm);color:var(--ss-ink)}
.search-filter-text input:focus-visible{outline:0}
.search-filter-text input::placeholder{color:var(--ss-muted)}
/* 说明：漏斗缺口筛选与未获取全文（虚线方框与行内虚线编号同义） */
.search-layout .quick-filter-note:empty{display:none}
.search-layout .quick-filter-note .funnel-filter{margin:10px 0 0}
.search-gap-note{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:10px 0 0;font-size:var(--ss-text-sm);line-height:1.6;color:var(--ss-ink-2)}

.search-gap-text{flex:1 1 280px;min-width:0;margin:0;text-wrap:pretty}
/* 不再画前置空方块（像未渲染的勾选框）；改为让份数本身带虚线框，与行内“未获取全文”的虚线编号同义 */
.search-gap-count{padding:0 6px;border:1px dashed var(--ss-faint);border-radius:var(--ss-radius-tag);font-weight:600;color:var(--ss-ink)}
.search-gap-note .btn-link{min-height:24px}

/* ── 列头与结果行：同一网格（勾选 | 资料与要点 | 来源 · 日期 | 类别 · 正文） ─────────────── */
.search-layout .result-head,.quick-layout.search-layout .result-row{display:grid;grid-template-columns:24px minmax(0,1fr) 112px 88px;column-gap:16px}
.search-layout .result-head{align-items:end;margin-top:14px;padding:0 12px 6px;border-bottom:1px solid var(--ss-ink)}
.result-head-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;min-width:0}
.result-head-title{margin:0;font-size:var(--ss-text-xs);font-weight:500;line-height:1.5;letter-spacing:.1em;color:var(--ss-muted)}
.result-count{font-size:var(--ss-text-xs);line-height:1.5;color:var(--ss-ink-2);font-variant-numeric:tabular-nums}
.result-head .btn-link{min-height:20px;font-size:var(--ss-text-xs)}
.result-head .result-clear-selection{margin-left:auto}
.result-head-col{font-size:var(--ss-text-xs);font-weight:500;line-height:1.5;letter-spacing:.1em;color:var(--ss-muted);white-space:nowrap}
.quick-layout.search-layout .quick-result-list{display:block;margin:0;padding:0;list-style:none;overflow:visible;border:0;border-radius:0;background:none}
.quick-layout.search-layout .quick-material-card.result-row{gap:0 16px;margin:0;padding:10px 12px 11px;border:0;border-bottom:1px solid var(--ss-line);border-radius:0;background:var(--ss-surface);box-shadow:none;cursor:pointer;transition:background-color .15s ease}
@media(hover:hover){.quick-layout.search-layout .quick-material-card.result-row:hover{background:var(--ss-surface-2)}}
/* 预览中的行：浅青底 + 左侧 2px 青色线；已勾选只看复选框，不改底色（D45） */
.quick-layout.search-layout .quick-material-card.result-row.is-previewed{background:var(--ss-highlight);box-shadow:inset 2px 0 0 var(--ss-accent)}
.result-pick{position:relative;display:flex;justify-content:center;align-items:flex-start;padding-top:4px;cursor:pointer}
.result-head .result-pick{align-items:flex-end;padding:0 0 2px}
.search-layout .result-pick input{width:16px;height:16px;min-height:16px;margin:0;accent-color:var(--ss-primary-text);cursor:pointer}
.result-main{min-width:0}
button.result-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.result-open:hover{background:none}
button.result-open:hover .result-title{color:var(--ss-primary-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
/* 编号方框：默认灰框；未获取全文为虚线；预览中为青色实心 */
.result-no{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-right:4px;padding:0 4px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-tag);background:var(--ss-surface);color:var(--ss-ink-2);font-size:11px;font-weight:500;line-height:1;vertical-align:2px;font-variant-numeric:tabular-nums}
.result-no.is-partial{border-style:dashed;border-color:var(--ss-faint)}
.result-row.is-previewed .result-no,.result-no.is-current{border-color:var(--ss-accent);background:var(--ss-accent);color:var(--ss-surface)}
.search-layout .result-main .original-title{margin:1px 0 0;overflow:visible;font-size:var(--ss-text-xs);line-height:1.5;color:var(--ss-muted);white-space:normal;overflow-wrap:anywhere}
.result-point{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;margin:2px 0 0;font-size:var(--ss-text-sm);line-height:1.65;color:var(--ss-ink-2);overflow-wrap:anywhere}
.result-point-label{color:var(--ss-muted)}
.search-layout .result-main .summary-state{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin:2px 0 0;font-size:var(--ss-text-xs);line-height:1.5;color:var(--ss-muted)}
.search-layout .result-main .summary-state.is-pending{color:var(--ss-primary-text)}
.search-layout .result-main .summary-state .btn-link{min-height:20px;font-size:var(--ss-text-xs)}
.result-print-title{display:none}
.result-src,.result-kind{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;margin:0;padding-top:3px;font-size:var(--ss-text-xs);line-height:1.5}
.result-source{font-weight:500;color:var(--ss-ink);word-break:keep-all;overflow-wrap:break-word}
.result-date{color:var(--ss-muted);font-variant-numeric:tabular-nums}
/* 预览中的行底色为高亮色：次要文字改用 ink-2，保证深色主题下对比度 ≥4.5 */
.search-layout .result-row.is-previewed :is(.original-title,.result-point-label,.summary-state,.result-date){color:var(--ss-ink-2)}
.result-category{color:var(--ss-ink)}
@media(min-width:801px){.result-meta{display:contents}}
/* 空状态（没有结果 / 当前筛选下没有结果） */
.search-empty{padding:24px 12px;border-bottom:1px solid var(--ss-line)}
.search-layout.is-empty .search-empty{border-top:0;padding-top:8px}
.search-empty-text{margin:0;font-size:var(--ss-text-md);color:var(--ss-ink)}
.search-empty-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:10px}
.search-empty-actions>button:not(.btn-link){min-height:36px;padding:4px 14px}
.search-load-error{display:grid;gap:8px;max-width:720px}

/* ── 已选条：吸附在左栏底部、始终可见；2px 海军蓝顶线，上方渐隐带遮住滚到其下的行 ─────────────── */
.quick-layout.search-layout .quick-selection-bar{position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;margin:24px 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}
.quick-layout.search-layout .quick-selection-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}
.search-layout .quick-selection-total{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;flex:1 1 0;min-width:0;color:var(--ss-ink-2)}
.selection-sum{display:inline-flex;align-items:baseline;gap:6px;font-size:var(--ss-text-sm);color:var(--ss-ink-2);white-space:nowrap}
.search-layout .quick-selection-total strong.selection-count{font-size:var(--ss-text-sm);font-weight:400;color:var(--ss-ink-2)}
.selection-number{font-family:var(--ss-font-serif);font-size:24px;font-weight:700;line-height:1;color:var(--ss-primary-text);font-variant-numeric:tabular-nums}
.selection-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
button.selection-chip{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;min-height:22px;padding:0 5px;border:1px solid var(--ss-accent);border-radius:var(--ss-radius-tag);background:var(--ss-surface);box-shadow:none;color:var(--ss-accent-text);font-size:var(--ss-text-xs);font-weight:500;line-height:1;font-variant-numeric:tabular-nums}
button.selection-chip:hover{background:var(--ss-accent-soft)}
.selection-more{font-size:var(--ss-text-xs);color:var(--ss-muted)}
.selection-mix{display:inline-flex;flex-wrap:wrap;gap:2px 10px;font-size:var(--ss-text-xs);line-height:1.5;color:var(--ss-muted)}
.search-layout .quick-selection-detail{font-size:var(--ss-text-xs);color:var(--ss-muted)}
.quick-selection-gap{color:var(--ss-ink-2)}
.selection-hint{min-width:0;font-size:var(--ss-text-xs);line-height:1.5;color:var(--ss-muted)}
.search-layout .quick-selection-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;flex:none;width:auto;margin:0 0 0 auto}
.search-layout .quick-selection-actions>button{height:38px;min-height:38px;padding:0 16px;border-radius:var(--ss-radius-control);font-size:var(--ss-text-sm);font-weight:500;white-space:nowrap}
.search-layout .quick-selection-actions>button.primary{min-width:0;font-weight:600}
.search-layout .quick-selection-actions>button:disabled{cursor:not-allowed}
.selection-limit{flex:1 1 100%;margin:0;font-size:var(--ss-text-xs);color:var(--ss-warn-text);text-align:right}

/* 已选条吸附在视口底部：键盘焦点滚动与 scrollIntoView 预留条高与渐隐带（条高桌面约 71px、≤800px 约 125px，渐隐带 22px），焦点不被遮住（WCAG 2.4.11） */
html:has(.search-layout .quick-selection-bar:not([hidden])){scroll-padding-bottom:112px}

/* ── 预览（右栏，≥1101px）：灰细框 + 2px 青色顶线；桌面吸顶（顶栏不吸顶，所以距视口 16px），内容过长时面板内滚动；
   限高 --search-preview-max 按面板上沿计算（未吸顶时面板底部也在视口内），没有脚本时退回 calc(100vh - 32px) ─────────────── */
.search-preview{position:sticky;top:16px;align-self:start;min-width:0;max-height:var(--search-preview-max,calc(100vh - 32px));overflow:auto;overscroll-behavior:contain;border:1px solid var(--ss-line);border-top:2px solid var(--ss-accent);background:var(--ss-surface)}
.search-preview:empty{border:0}
.preview-body{display:block;color:var(--ss-ink)}
.preview-kicker{display:flex;align-items:center;gap:8px;margin:0;padding:12px 16px;border-bottom:1px solid var(--ss-line);font-size:var(--ss-text-sm);color:var(--ss-ink-2)}
.preview-kicker .result-no{margin:0;vertical-align:0}
.preview-title{margin:0;padding:14px 16px 0;font-family:var(--ss-font-serif);font-size:var(--ss-text-lg);font-weight:600;line-height:1.55;color:var(--ss-ink);overflow-wrap:anywhere}
.preview-body>.original-title{margin:4px 16px 0;font-size:var(--ss-text-xs);line-height:1.5;color:var(--ss-muted);white-space:normal;overflow:visible;overflow-wrap:anywhere}
.preview-point{padding:14px 16px 0}
.preview-label{margin:0 0 4px;font-size:var(--ss-text-xs);font-weight:500;line-height:1.5;letter-spacing:.04em;color:var(--ss-muted)}
.preview-summary{margin:0;font-size:var(--ss-text-sm);line-height:1.75;color:var(--ss-ink);overflow-wrap:anywhere}
.preview-summary+.material-summary-pair{margin-top:12px}
/* 要点就是下面的原文 / 中文对照时，“要点”标题只给读屏（对照块自带“原文摘要 / 中文摘要”标签，避免两层标签） */
.preview-point>.preview-label:has(+ .material-summary-pair){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:is(.search-preview,.search-sheet) .material-summary-pair{margin:0;padding:10px 12px;border-left:2px solid var(--ss-primary-text);background:var(--ss-surface-2)}
:is(.search-preview,.search-sheet) .material-summary-pair .summary-language{margin:0 0 4px;font-size:var(--ss-text-xs);color:var(--ss-muted)}
:is(.search-preview,.search-sheet) .material-summary{margin:0;font-size:var(--ss-text-sm);line-height:1.7;color:var(--ss-ink);overflow-wrap:anywhere}
:is(.search-preview,.search-sheet) .material-summary-pair>.summary-zh{margin-top:10px;padding-top:10px;border-top:1px solid var(--ss-line)}
:is(.search-preview,.search-sheet) .summary-state{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:var(--ss-text-sm);color:var(--ss-muted)}
:is(.search-preview,.search-sheet) .summary-state.is-pending{color:var(--ss-primary-text)}
:is(.search-preview,.search-sheet) mark{padding:0 1px;border-radius:2px;background:var(--ss-highlight);color:inherit;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.preview-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin:14px 16px 0;border-top:1px solid var(--ss-line)}
.preview-meta-item{min-width:0;padding:8px 0;border-bottom:1px solid var(--ss-line)}
.preview-meta-item:nth-child(even){padding-left:12px}
.preview-meta-item:last-child:nth-child(odd){grid-column:1/-1}
.preview-meta dt{font-size:var(--ss-text-xs);line-height:1.5;color:var(--ss-muted)}
.preview-meta dd{margin:2px 0 0;font-size:var(--ss-text-sm);font-weight:500;line-height:1.5;color:var(--ss-ink);overflow-wrap:anywhere}
.preview-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:14px;padding:10px 16px;border-top:1px solid var(--ss-line);background:var(--ss-surface-2)}
/* 第 3 轮集成：右栏预览的操作行吸附在面板底部（面板内滚动时“阅读资料 / 打开原文 / 选入”始终可见；限高由 search-page.js 的 searchFitPreview 按面板上沿写入） */
.search-preview .preview-actions{position:sticky;bottom:0;z-index:1}
button.preview-read{min-height:32px;padding:4px 12px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface);box-shadow:none;color:var(--ss-ink);font-size:var(--ss-text-sm);font-weight:500}
button.preview-read:hover{border-color:var(--ss-primary-text);color:var(--ss-primary-text)}
a.preview-link{font-size:var(--ss-text-sm);font-weight:500;color:var(--ss-accent-text);text-underline-offset:3px}
button.preview-pick{display:inline-flex;align-items:center;gap:8px;min-height:32px;margin-left:auto;padding:0 6px;border:0;border-radius:var(--ss-radius-control);background:none;box-shadow:none;color:var(--ss-ink);font-size:var(--ss-text-sm);font-weight:500}
button.preview-pick:hover{background:var(--ss-primary-soft)}
.preview-pick-box{display:inline-flex;align-items:center;justify-content:center;flex:none;width:16px;height:16px;border:1.5px solid var(--ss-muted);border-radius:3px;background:var(--ss-surface)}
.preview-pick[aria-pressed=true] .preview-pick-box{border-color:var(--ss-primary-text);background:var(--ss-primary-text)}
.preview-pick[aria-pressed=true] .preview-pick-box::after{content:"";width:8px;height:4px;border:solid var(--ss-on-primary-text);border-width:0 0 2px 2px;transform:translateY(-1px) rotate(-45deg)}

/* ── 预览弹层（≤1100px）：原生 dialog，贴底、最高 85vh、顶部拖动条，关闭按钮浮在右上角 ─────────────── */
dialog.search-sheet{width:100%;max-width:none;max-height:85vh;margin:auto 0 0;padding:0;border:0;border-radius:12px 12px 0 0;background:var(--ss-surface);box-shadow:var(--ss-shadow-pop);color:var(--ss-ink);overflow:auto;overscroll-behavior:contain}
dialog.search-sheet::backdrop{background:var(--ss-scrim)}
.search-sheet-head{position:sticky;top:0;z-index:2;height:0}
.search-sheet-grab{position:absolute;top:6px;left:50%;width:36px;height:4px;margin-left:-18px;border-radius:2px;background:var(--ss-faint)}
button.search-sheet-close{position:absolute;top:10px;right:12px;min-height:36px;padding:4px 14px;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control);background:var(--ss-surface);box-shadow:none;color:var(--ss-ink);font-size:var(--ss-text-sm);font-weight:500}
.search-sheet .preview-kicker{min-height:56px;padding:18px 96px 10px 16px}
.search-sheet .preview-actions{position:sticky;bottom:0;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
@media(prefers-reduced-motion:no-preference){dialog.search-sheet[open]{animation:search-sheet-in .22s ease-out}}
@keyframes search-sheet-in{from{transform:translateY(32px);opacity:.4}to{transform:none;opacity:1}}

/* 键盘焦点：青色外框 */
:is(button.search-chip,button.search-go,button.facet,button.result-open,button.selection-chip,button.preview-read,button.preview-pick,button.search-sheet-close,a.preview-link,.search-recent-q,.search-recent-all):focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}
.search-layout .result-pick input:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}

/* ── 宽度 ─────────────── */
@media(min-width:1280px){
  .search-layout .result-head,.quick-layout.search-layout .result-row{grid-template-columns:24px minmax(0,1fr) 128px 88px}
}
@media(max-width:1279px){
  .quick-layout.search-layout{grid-template-columns:minmax(0,1fr) var(--ss-report-rail-narrow);column-gap:32px}
}
@media(max-width:1100px){
  .quick-layout.search-layout{grid-template-columns:minmax(0,1fr)}
  .search-preview{display:none}
  .search-head-row{gap:12px 20px}
}
@media(max-width:800px){
  /* 页头：标题一行；表单两行（关键词 + 搜索 / 条件按钮），条件面板在表单内展开 */
  .search-head-row{flex-direction:column;align-items:stretch;gap:8px}
  .search-head .page-title h1{font-size:var(--ss-text-2xl);line-height:1.35}
  .search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .search-field{grid-column:1;grid-row:1;min-width:0}
  button.search-go{grid-column:2;grid-row:1}
  .search-chips{grid-column:1/-1;grid-row:2;flex-wrap:wrap}
  .search-chip{order:0}
  .search-panel{order:1;flex:1 1 100%;box-shadow:none}
  /* 筛选：两组上下排列，组名在上 */
  .search-controls{flex-direction:column;align-items:stretch;gap:10px}
  .facet-group{flex-direction:column;align-items:flex-start;gap:6px}
  .search-toolbar{flex:none;min-width:0;margin-left:0}
  .search-filter-text{height:40px}
  .search-filter-text input{font-size:var(--ss-text-lg)}
  /* 结果行两区：勾选 | 标题与要点，下一行来源、日期、类别、正文；复选框热区 44px 宽 */
  .search-layout .result-head{grid-template-columns:24px minmax(0,1fr);padding:0 4px 6px}
  .search-layout .result-head-col{display:none}
  .quick-layout.search-layout .quick-material-card.result-row{grid-template-columns:24px minmax(0,1fr);grid-template-areas:"pick main" "pick meta";gap:4px 12px;padding:12px 4px}
  .result-row>.result-pick{grid-area:pick}
  .result-row>.result-main{grid-area:main}
  .result-meta{grid-area:meta;display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;min-width:0}
  .result-src,.result-kind{flex-direction:row;flex-wrap:wrap;align-items:center;gap:0 8px;padding-top:0}
  .result-kind{padding-left:12px;border-left:1px solid var(--ss-line)}
  .result-pick::before{content:"";position:absolute;top:0;right:-10px;bottom:0;left:-10px}
  .search-layout .result-pick input{position:relative;z-index:1}
  /* 行内复选框的点按区：勾选列拉伸到整行高度（至少 44px），宽 44px；列头全选上下各延伸 13px（不改列头视觉高度） */
  .quick-layout.search-layout .result-row>.result-pick{align-self:stretch;min-height:44px}
  .search-layout .result-head .result-pick::before{top:-13px;bottom:-13px}
  html:has(.search-layout .quick-selection-bar:not([hidden])){scroll-padding-bottom:152px}
  /* 已选条两行：已选份数与构成、只看已选 / 加入专题与主按钮占满一行；不显示编号块 */
  .quick-layout.search-layout .quick-selection-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"total total only" "topic start start" "limit limit limit";gap:8px;padding:8px 0 calc(8px + env(safe-area-inset-bottom))}
  .search-layout .quick-selection-total{grid-area:total;gap:2px 10px}
  .search-layout .quick-selection-actions{display:contents}
  .search-layout .quick-selected-only{grid-area:only}
  .search-layout .selection-topic{grid-area:topic}
  .search-layout #quick-start-research{grid-area:start;width:100%}
  .selection-chips,.selection-hint{display:none}
  .selection-limit{grid-area:limit;text-align:left}
  .search-recent-row{flex-direction:column;gap:2px}
}
@media(max-width:480px){
  .search-field,button.search-chip,button.search-go{height:44px;min-height:44px}
  button.search-chip{padding:0 8px 0 10px}
  /* 筛选按钮看起来 36px，上下各延伸 4px 的点按区合计 44px（行距 8px，相邻两行的点按区不重叠） */
  .facet-options{row-gap:8px}
  button.facet{position:relative;min-height:36px;padding:2px 10px}
  button.facet::after{content:"";position:absolute;inset:-4px 0}
  .search-layout .result-summary-sources{display:none}
  .search-layout .quick-selection-actions>button,.search-empty-actions>button{height:44px;min-height:44px}
  /* 行内文字按钮看起来 32px（不把手机首屏往下推），上下各延伸 6px 的点按区合计 44px */
  .search-layout .result-head .btn-link,.search-gap-note .btn-link,.search-layout .result-main .summary-state .btn-link,.search-layout .result-summary .btn-link{position:relative;min-height:32px}
  .search-layout .result-head .btn-link::after,.search-gap-note .btn-link::after,.search-layout .result-main .summary-state .btn-link::after,.search-layout .result-summary .btn-link::after{content:"";position:absolute;inset:-6px 0}
  button.preview-read,button.preview-pick,button.search-sheet-close{min-height:44px}
  a.preview-link,.search-panel button.search-reset{display:inline-flex;align-items:center;min-height:44px}
  .search-panel .tag-choice,.search-mode{min-height:44px}
  .search-panel .network-switch{display:inline-flex;align-items:center;min-height:44px}
  .search-recent-q{display:inline-flex;align-items:center;min-height:44px}
  .search-recent-all{display:inline-flex;align-items:center;min-height:44px}
}

/* ── 强制配色：筛选按钮、条件按钮、编号与预览中的行保留可见边框 ─────────────── */
@media(forced-colors:active){
  button.facet,button.search-chip,button.selection-chip,.preview-pick-box{border-color:ButtonText}
  button.facet[aria-pressed=true]{border:2px solid Highlight}
  .preview-pick[aria-pressed=true] .preview-pick-box{border-color:Highlight;background:Highlight}
  .quick-layout.search-layout .quick-material-card.result-row.is-previewed{outline:2px solid Highlight;outline-offset:-2px}
  .result-no,.search-preview,.search-field,.search-filter-text{border-color:CanvasText}
  .quick-layout.search-layout .quick-selection-bar{border-top-color:CanvasText}
  .page-head.search-head{border-bottom:1px solid CanvasText;background:Canvas}
  /* 输入框自身不画外框，焦点由外层阴影表示；强制配色会去掉阴影，改用系统高亮色外框 */
  .search-field:focus-within,.search-filter-text:focus-within{outline:2px solid Highlight;outline-offset:1px}
}

/* ── 打印：只留标题、关键词与编号清单（来源、日期、类别、正文），隐藏条件、筛选、已选条与预览 ─────────────── */
@media print{
  body:has(#workspace > .page-head.search-head){background:none}
  .page-head.search-head{margin:0 0 12px;padding:0;background:none}
  .search-chips,.search-panel,.search-error,.search-hint,.search-field .search-icon,.search-controls,.search-gap-note,.quick-filter-note,
  .quick-layout.search-layout .quick-selection-bar,.search-preview,dialog.search-sheet,.result-head,.result-pick,.result-summary-links{display:none}
  /* 列头规则在屏幕样式中带 .search-layout 前缀，这里用同样的前缀才能隐藏；预览中的行不带屏幕上的高亮底色与青色线 */
  .search-layout .result-head{display:none}
  .quick-layout.search-layout .quick-material-card.result-row.is-previewed{background:none;box-shadow:none}
  .search-field{height:auto;padding:0;border:0}
  .quick-layout.search-layout{display:block}
  .quick-layout.search-layout .quick-material-card.result-row{display:block;padding:8px 0;border-bottom:1px solid var(--ss-line);background:none;box-shadow:none;break-inside:avoid}
  .result-print-title{display:block;margin:0;font-size:var(--ss-text-md);font-weight:600;color:var(--ss-ink)}
  .result-point{display:block;overflow:visible}
  .result-meta{display:flex;flex-wrap:wrap;gap:0 12px}
  .result-src,.result-kind{flex-direction:row;gap:0 8px;padding-top:2px}
}
