/* Scoped work-area layout. Global ui-polish controls remain the shared source of sizes. */
.wb-page.wb-workspace-page .wb-status-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:9px; }
.wb-page.wb-workspace-page .wb-status-grid article { padding:11px 15px; gap:5px; border-radius:10px; }
.wb-page.wb-workspace-page .wb-status-grid b { font-size:16px; line-height:1.45; }
.wb-page.wb-workspace-page .wb-status-grid article>span { font-size:12px; }
.wb-page.wb-workspace-page .wb-status-grid small { font-size:12px; line-height:1.5; }
.wb-page.wb-workspace-page .wb-service-note { margin-bottom:13px; font-size:12px; gap:16px; }
.wb-page.wb-workspace-page .wb-feature-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; margin:0 0 14px; }
.wb-page.wb-workspace-page .wb-feature-tab { min-width:0; display:flex; align-items:center; gap:12px; padding:15px 16px; text-align:left; border:1px solid var(--border); border-radius:10px; color:var(--text-muted); background:#fff; cursor:pointer; transition:background .15s,border-color .15s; }
.wb-page.wb-workspace-page .wb-feature-tab:hover { background:var(--surface-hover); border-color:var(--border-strong); }
.wb-page.wb-workspace-page .wb-feature-tab[aria-selected="true"] { background:var(--canvas); border-color:var(--border-control); box-shadow:inset 0 -2px 0 var(--accent); }
.wb-feature-tab>span:nth-child(2) { min-width:0; }
.wb-feature-tab b { display:block; font-size:14px; font-weight:650; color:var(--accent); line-height:1.55; }
.wb-feature-tab small { display:block; font-size:12px; color:var(--text-muted); line-height:1.7; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wb-feature-icon { display:grid; place-items:center; width:33px; height:33px; flex-shrink:0; border-radius:9px; background:var(--canvas); color:var(--text-muted); }
.wb-feature-tab[aria-selected="true"] .wb-feature-icon { background:var(--n-100); color:var(--text-muted); }
.wb-feature-icon svg { width:20px; height:20px; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.wb-tab-arrow { font-size:17px; color:var(--text-muted); margin-left:auto; }
.wb-feature-tab[aria-selected="true"] .wb-tab-arrow { color:var(--text-muted); }
.wb-page.wb-workspace-page .wb-workspace-panel { padding:21px 23px; min-width:0; border-radius:12px; }
.wb-page.wb-workspace-page .wb-workspace-panel[hidden] { display:none!important; }
.wb-page.wb-workspace-page .wb-workspace-panel>.panel-title { margin-bottom:17px; align-items:center; }
.wb-page.wb-workspace-page .wb-workspace-panel h2 { font-size:14px; line-height:1.6; margin:0; font-weight:600; color:var(--text-muted); }
.wb-page.wb-workspace-page .wb-workspace-panel label { margin:0; font-size:13px; line-height:1.7; min-width:0; }
.wb-page.wb-workspace-page .wb-workspace-panel :is(input,select) { width:100%; min-width:0; margin:6px 0 0; }
.wb-page.wb-workspace-page .wb-archive-filters { display:grid; grid-template-columns:1.15fr .85fr 1.25fr; gap:14px; }
.wb-page.wb-workspace-page .wb-archive-period { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:14px; align-items:end; margin-top:13px; }
.wb-page.wb-workspace-page .wb-query-actions { margin:0; display:flex; gap:11px; align-items:center; }
.wb-page.wb-workspace-page .wb-query-actions>span { max-width:85px; line-height:1.7; font-size:12px; }
.wb-page.wb-workspace-page .wb-query-form>.wb-help { margin:10px 0 0; font-size:12px; }
.wb-page.wb-workspace-page .wb-archive-heading { padding:15px 0 12px; margin-top:16px; }
.wb-page.wb-workspace-page .wb-message-list { max-height:380px; min-height:110px; }
.wb-page.wb-workspace-page .wb-empty { padding:30px 20px; font-size:12px; }
.wb-page.wb-workspace-page .wb-pagination { margin-top:13px; }
.wb-page.wb-workspace-page .wb-send-notice { background:var(--accent-soft-bg); border:1px solid var(--border-subtle); border-radius:8px; padding:10px 13px; margin:0 0 20px; font-size:12px; }
.wb-page.wb-workspace-page .wb-compose-grid { display:grid; grid-template-columns:minmax(200px,.85fr) minmax(0,1.4fr); gap:26px; }
.wb-recipient-fields { border-right:1px solid var(--border-subtle); padding-right:26px; }
.wb-recipient-fields h3 { font-size:13px; color:var(--text-muted); font-weight:500; margin:0 0 12px; }
.wb-page.wb-workspace-page .wb-recipient-fields label { display:block; margin-top:12px; }
.wb-page.wb-workspace-page .wb-recipient-fields>.wb-help { font-size:12px; margin:15px 0 0; }
.wb-compose-editor { min-width:0; }
.wb-page.wb-workspace-page .wb-compose-editor textarea { width:100%; margin:6px 0 12px; min-height:228px; resize:vertical; line-height:1.9; font-size:13px; }
.wb-page.wb-workspace-page .wb-unsupported { flex-direction:row; flex-wrap:wrap; gap:6px 18px; margin-top:17px; padding-top:13px; font-size:12px; }
.wb-page.wb-workspace-page .wb-receipt-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:26px; min-height:235px; }
.wb-current-receipt { min-width:0; border-right:1px solid var(--border-subtle); padding-right:26px; }
.wb-receipt-lookup { min-width:0; }
.wb-page.wb-workspace-page .wb-receipt-search { margin:0; padding:0; border:0; align-items:end; }
.wb-page.wb-workspace-page .wb-receipt-search>button { margin:0; }
.wb-page.wb-workspace-page .wb-receipt-safety { font-size:12px; padding:12px 13px; border-radius:8px; background:var(--accent-soft-bg); border:1px solid var(--border-subtle); margin:18px 0 0; }
.wb-page.wb-workspace-page .wb-attempt-summary { color:var(--text-muted); }
.wb-page.wb-workspace-page .wb-attempt-facts { grid-template-columns:68px minmax(0,1fr); gap:8px; }
.wb-page.wb-workspace-page .wb-receipt-detail:not(:empty) { margin-top:20px; padding-top:17px; }
.wb-page.wb-workspace-page .wb-workspace-panel:focus-visible { outline:3px solid var(--border-strong); outline-offset:3px; }
@media(max-width:950px) {
  .wb-page.wb-workspace-page .wb-feature-tab { padding:12px; gap:9px; }
  .wb-feature-icon { width:29px; height:29px; }
  .wb-feature-tab small { font-size:12px; }
  .wb-tab-arrow { display:none; }
  .wb-page.wb-workspace-page .wb-query-actions { flex-direction:column; align-items:flex-start; gap:3px; }
  .wb-page.wb-workspace-page .wb-query-actions>span { display:none; }
  .wb-page.wb-workspace-page .wb-compose-grid { gap:20px; grid-template-columns:minmax(190px,.9fr) minmax(0,1.2fr); }
  .wb-recipient-fields,.wb-current-receipt { padding-right:20px; }
  .wb-page.wb-workspace-page .wb-receipt-grid { gap:20px; }
}
@media(max-width:800px) {
  .wb-page.wb-workspace-page .wb-status-grid article { padding:10px 12px; }
  .wb-page.wb-workspace-page .wb-status-grid small { display:none; }
  .wb-page.wb-workspace-page .wb-service-note { gap:5px; font-size:12px; }
  .wb-page.wb-workspace-page .wb-workspace-panel { padding:18px; }
  .wb-page.wb-workspace-page .wb-feature-tabs { gap:8px; }
  .wb-feature-tab b { font-size:13px; }
  .wb-feature-tab small { font-size:12px; }
}
@media(max-width:600px) {
  .wb-page.wb-workspace-page .wb-status-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .wb-page.wb-workspace-page .wb-status-grid article { padding:9px 12px; flex-direction:row; align-items:center; justify-content:space-between; gap:8px; }
  .wb-page.wb-workspace-page .wb-status-grid b { font-size:14px; }
  .wb-page.wb-workspace-page .wb-status-grid article>span { font-size:12px; }
  .wb-page.wb-workspace-page .wb-feature-tab { flex-direction:column; justify-content:center; text-align:center; gap:6px; padding:11px 7px; }
  .wb-feature-icon { width:26px; height:26px; border-radius:7px; }
  .wb-feature-icon svg { width:17px; height:17px; }
  .wb-feature-tab small { display:none; }
  .wb-page.wb-workspace-page .wb-workspace-panel { padding:17px 15px; }
  .wb-page.wb-workspace-page .wb-archive-filters { grid-template-columns:1fr; gap:11px; }
  .wb-page.wb-workspace-page .wb-archive-period { grid-template-columns:1fr; gap:11px; margin-top:11px; }
  .wb-page.wb-workspace-page .wb-query-actions { flex-direction:row; align-items:center; justify-content:space-between; margin-top:2px; }
  .wb-page.wb-workspace-page .wb-query-actions>span { display:block; max-width:none; }
  .wb-page.wb-workspace-page .wb-compose-grid,.wb-page.wb-workspace-page .wb-receipt-grid { grid-template-columns:1fr; gap:20px; }
  .wb-recipient-fields,.wb-current-receipt { border-right:0; padding-right:0; }
  .wb-page.wb-workspace-page .wb-compose-editor textarea { min-height:190px; }
  .wb-receipt-lookup { border-top:1px solid var(--border-subtle); padding-top:18px; }
  .wb-page.wb-workspace-page .wb-message-list { max-height:340px; }
  .wb-page.wb-workspace-page .wb-service-note small { font-size:12px; }
}

/* 搜聊天记录的命中列表（app.js renderMessageHits）。
   放在会话列表上方：搜索框一个，结果两种——上面是正文命中，下面照旧是按群名筛出来的会话。
   出处：用户 2026-09-24「这里能不能直接搜索聊天记录啊？」——原来那个框只匹配群名。 */
.message-hits { display: grid; gap: 4px; padding: 8px 6px 10px; border-bottom: 1px solid var(--border-subtle); }
.message-hits .hits-head { display: flex; justify-content: space-between; align-items: baseline;
  padding: 0 4px 4px; color: var(--text-muted); font-size: 11.5px; }
.message-hits .hits-head b { color: var(--text-secondary); font-weight: 650; }
.message-hits .hit { display: grid; gap: 3px; width: 100%; padding: 7px 9px; text-align: left; cursor: pointer;
  border: 1px solid transparent; border-radius: 9px; background: var(--surface-hover); color: var(--text-secondary); font: inherit; }
.message-hits .hit:hover { border-color: var(--border-strong); background: var(--surface-selected); }
.message-hits .hit-head { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.message-hits .hit-head b { color: var(--text-primary); font-size: 12.5px; font-weight: 620;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.message-hits .hit-head time { flex: 0 0 auto; color: var(--text-muted); font-size: 11px; }
.message-hits .hit-body { color: var(--text-muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.message-hits mark { padding: 0 1px; border-radius: 3px; background: var(--a-200); color: var(--warning-fg); }

/* 跳过去之后让人一眼找到是哪条：只闪一下，2.6 秒后自己消失（见 scrollToMessage） */
.message-row.message-focus .bubble { box-shadow: 0 0 0 2px var(--accent); }

/* 合并转发的「聊天记录」逐条展开（app.js chatRecordHtml，老板 10-08「这种读不了的怎么搞？」） */
.chat-record { min-width: 240px; max-width: 460px; }
.chat-record .cr-title { display: block; margin-bottom: 6px; color: var(--text-primary); font-size: 13px; }
.chat-record ol { margin: 0; padding: 0; list-style: none; border-left: 2px solid var(--border-subtle); }
.chat-record li { padding: 3px 0 3px 8px; font-size: 13px; line-height: 1.55; }
.chat-record li + li { border-top: 1px dashed var(--border-subtle); }
.chat-record .cr-who { color: var(--text-primary); font-weight: 600; font-size: 12px; white-space: nowrap; }
.chat-record li time { display: inline; margin: 0 0 0 6px; padding: 0; color: var(--text-muted); font-size: 11px; white-space: nowrap; }
.chat-record .cr-what { overflow-wrap: anywhere; }
.chat-record .cr-media { color: var(--text-muted); }
.chat-record .cr-more summary { margin: 4px 0 2px 10px; color: var(--accent); font-size: 12px; cursor: pointer; }
.chat-record .cr-note { margin: 6px 0 0; color: var(--text-muted); font-size: 12px; }
.outgoing .chat-record .cr-title, .outgoing .chat-record .cr-who { color: inherit; }
.outgoing .chat-record .cr-media, .outgoing .chat-record li time, .outgoing .chat-record .cr-note { color: var(--g-100); }
