/* 询盘答复（/xm-inquiry）。只用 tokens.css 变量。 */
[hidden] { display: none !important; }
body { margin: 0; background: var(--surface-sunken); color: var(--text-primary);
       font: var(--fs-sm)/var(--lh-sm) var(--font-sans, -apple-system, "PingFang SC", system-ui, sans-serif); }
.xi-app { max-width: 1200px; margin: 0 auto; padding: var(--sp-5) var(--sp-4) var(--sp-8); }
:root[data-embedded="1"] .xi-app { padding-top: var(--sp-3); }
.xi-head h1 { font-size: var(--fs-lg); margin: 0 0 4px; }
.xi-head p { margin: 0 0 var(--sp-3); color: var(--text-muted); font-size: var(--fs-xs); max-width: 80ch; }

/* 汇总邮箱收没收到新信（10-18）：平时一行小字，转信断了黄框 */
.xi-inflow { margin: 0 0 var(--sp-3); }
.xi-inflow-f { margin: 0; font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--text-muted); }
.xi-inflow.warn { background: var(--warning-bg); border: var(--bw-hair) solid var(--warning-border); border-radius: var(--radius-md);
                  padding: var(--sp-2) var(--sp-3); }
.xi-inflow-w { margin: 0 0 4px; font-size: var(--fs-sm); line-height: var(--lh-sm); color: var(--text-primary); }
.xi-inflow-w b { color: var(--warning-fg); margin-right: var(--sp-2); white-space: nowrap; }
.xi-inflow-fix { margin: 0 0 4px; font-size: var(--fs-xs); line-height: var(--lh-xs); }
.xi-inflow-fix summary { cursor: pointer; color: var(--warning-fg); font-weight: var(--fw-semibold); }
.xi-inflow-fix ul { margin: 4px 0 0; padding-left: 0; list-style: none; }     /* 修法自己带 ①② 序号，不再叠一层 1. 2. */

.xi-new, .xi-card { background: var(--surface); border: var(--bw-hair) solid var(--border); border-radius: var(--radius-md);
                    padding: var(--sp-3) var(--sp-4); }
.xi-new { margin-bottom: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-2); }
.xi-label { font-size: var(--fs-xs); color: var(--text-secondary); font-weight: var(--fw-semibold); white-space: nowrap; }
.xi-app textarea, .xi-app input[type="search"] {
  font: inherit; color: var(--text-primary); background: var(--surface); border: var(--bw-hair) solid var(--border-control);
  border-radius: var(--radius-sm); padding: var(--sp-2) var(--sp-3); box-sizing: border-box; }
.xi-app textarea { width: 100%; resize: vertical; line-height: var(--lh-prose); }
.xi-app textarea:focus, .xi-app input:focus { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
.xi-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.xi-row input[type="search"] { flex: 1; min-width: 200px; }

.xi-btn { border: var(--bw-hair) solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface);
          color: var(--text-primary); padding: 5px var(--sp-3); font: inherit; font-size: var(--fs-xs); cursor: pointer; }
.xi-btn:hover { background: var(--surface-hover); }
.xi-btn.primary { background: var(--accent); border-color: var(--accent); color: var(--text-on-accent); font-weight: var(--fw-semibold); }
.xi-btn.primary:hover { background: var(--accent-hover); }
.xi-btn.quiet { border-color: transparent; color: var(--text-muted); }
.xi-btn:disabled { opacity: .55; cursor: default; }
.xi-wait { font-size: var(--fs-xs); color: var(--text-muted); }
.xi-err { margin: 0; font-size: var(--fs-xs); color: var(--danger-fg); }
.xi-picked { font-size: var(--fs-xs); background: var(--accent-soft-bg); color: var(--accent-soft-fg);
             border: var(--bw-hair) solid var(--accent-soft-border); border-radius: var(--radius-full); padding: 2px var(--sp-2); }
.xi-picked button { border: 0; background: none; color: inherit; cursor: pointer; padding: 0 0 0 4px; font: inherit; }
.xi-results { display: flex; flex-direction: column; gap: 2px; max-height: 220px; overflow: auto;
              border: var(--bw-hair) solid var(--border-subtle); border-radius: var(--radius-sm); padding: 4px; }
.xi-results button { text-align: left; border: 0; background: none; padding: 4px var(--sp-2); font: inherit; font-size: var(--fs-xs);
                     color: var(--text-primary); border-radius: var(--radius-sm); cursor: pointer; }
.xi-results button:hover { background: var(--surface-hover); }
.xi-results small, .xi-sub { color: var(--text-muted); font-size: var(--fs-xs); }

.xi-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 var(--sp-2); }
.xi-chips button { border: var(--bw-hair) solid var(--border-strong); border-radius: var(--radius-full); background: var(--surface);
                   color: var(--text-secondary); padding: 2px var(--sp-3); font-size: var(--fs-xs); cursor: pointer; }
.xi-chips button.on { background: var(--accent-soft-bg); color: var(--accent-soft-fg); border-color: var(--accent-soft-border);
                      font-weight: var(--fw-semibold); }
.xi-msg { font-size: var(--fs-xs); color: var(--text-muted); margin: var(--sp-2) 0; }

#xi-list { display: flex; flex-direction: column; gap: var(--sp-3); }
.xi-card { display: flex; flex-direction: column; gap: var(--sp-2); }
.xi-card.dim { opacity: .7; }
.xi-top { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); font-size: var(--fs-xs); color: var(--text-muted); }
.xi-badge { border-radius: var(--radius-full); padding: 1px var(--sp-2); font-weight: var(--fw-semibold); border: var(--bw-hair) solid; }
.xi-badge.drafted { background: var(--info-bg); color: var(--info-fg); border-color: var(--info-border); }
.xi-badge.cant, .xi-badge.error { background: var(--warning-bg); color: var(--warning-fg); border-color: var(--warning-border); }
.xi-badge.forwarded { background: var(--neutral-bg); color: var(--neutral-fg); border-color: var(--neutral-border); }
.xi-badge.done { background: var(--success-bg); color: var(--success-fg); border-color: var(--success-border); }
.xi-badge.dropped { background: var(--neutral-bg); color: var(--text-muted); border-color: var(--neutral-border); }
.xi-xm { color: var(--text-secondary); }
.xi-q { margin: 0; font-size: var(--fs-sm); white-space: pre-wrap; }
.xi-block { border-left: 3px solid var(--border-strong); padding: 2px 0 2px var(--sp-3); }
.xi-block.warn { border-left-color: var(--warning-border); }
.xi-block.factory { border-left-color: var(--info-border); }
.xi-block h3 { font-size: var(--fs-xs); color: var(--text-secondary); margin: 0 0 4px; font-weight: var(--fw-semibold); }
.xi-block p { margin: 0; white-space: pre-wrap; }
.xi-cites { display: flex; flex-wrap: wrap; gap: 4px; font-size: var(--fs-xs); color: var(--text-muted); }
.xi-cites span { background: var(--surface-sunken); border-radius: var(--radius-sm); padding: 1px 6px; }
.xi-orig summary { cursor: pointer; font-size: var(--fs-xs); color: var(--text-secondary); }
.xi-orig pre { white-space: pre-wrap; font: inherit; margin: 4px 0 0; max-height: 260px; overflow: auto; color: var(--text-secondary); }
.xi-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.xi-note { font-size: var(--fs-xs); color: var(--text-muted); }
.xi-note.bad { color: var(--danger-fg); }
.xi-rule { margin-top: var(--sp-4); font-size: var(--fs-xs); color: var(--text-muted); }
.xi-rule summary { cursor: pointer; }
.xi-rule p { max-width: 90ch; line-height: var(--lh-sm); }

/* 汇总邮箱（只给管理员） */
.xi-box { margin-top: var(--sp-4); background: var(--surface); border: var(--bw-hair) solid var(--border); border-radius: var(--radius-md);
          padding: var(--sp-3) var(--sp-4); display: block; }
.xi-box summary { cursor: pointer; font-weight: var(--fw-semibold); display: flex; gap: var(--sp-2); flex-wrap: wrap; align-items: baseline; }
.xi-box[open] summary { margin-bottom: var(--sp-2); }
.xi-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--sp-2) var(--sp-3); margin: var(--sp-2) 0; }
.xi-grid label { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-xs); color: var(--text-secondary); }
.xi-grid label.wide { grid-column: 1 / -1; }
.xi-grid input, .xi-grid select { font: inherit; color: var(--text-primary); background: var(--surface); border: var(--bw-hair) solid var(--border-control);
                                  border-radius: var(--radius-sm); padding: 5px var(--sp-2); }
.xi-table { width: 100%; border-collapse: collapse; font-size: var(--fs-xs); margin-top: var(--sp-3); }
.xi-table th, .xi-table td { text-align: left; padding: 4px var(--sp-2); border-bottom: var(--bw-hair) solid var(--border-subtle); vertical-align: top; }
.xi-table th { color: var(--text-muted); font-weight: var(--fw-semibold); background: var(--surface-sunken); }
.xi-table td.skip { color: var(--text-muted); }
.xi-table td.ok { color: var(--success-fg); font-weight: var(--fw-semibold); }
.xi-mail { font-size: var(--fs-xs); color: var(--text-secondary); margin: 0; }
@media (max-width: 640px) { .xi-table th:nth-child(3), .xi-table td:nth-child(3) { display: none; } }

/* 收发中心（9-30 晚）：标签、营销群发 */
.xi-tabs { display: flex; gap: 2px; border-bottom: var(--bw-hair) solid var(--border); margin: 0 0 var(--sp-3); overflow-x: auto; }
.xi-tabs button { border: 0; background: none; font: inherit; font-size: var(--fs-sm); color: var(--text-secondary); padding: var(--sp-2) var(--sp-3);
                  border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; white-space: nowrap; }
.xi-tabs button.on { color: var(--text-primary); border-bottom-color: var(--accent); font-weight: var(--fw-semibold); }
/* 2026-10-01 往下翻 60 天的询盘卡片，三个标签和「按状态看」滚出去就找不到了：标签吸顶，状态小按钮贴在它下面，合起来一条。
   贴多低、卡片 / 群发详情跳过去停多低，由 xm.js 量标签条的实际高度写进去（窄屏折行也对），这里的 top:0 只是没量到时的底 */
.xi-tabs { position: sticky; top: 0; z-index: 6; background: var(--surface-sunken); }
#xi-filter { position: sticky; top: 0; z-index: 5; background: var(--surface-sunken); margin: 0 0 var(--sp-2); padding: var(--sp-1) 0 var(--sp-2);
             border-bottom: var(--bw-hair) solid var(--border-subtle); }
.xc-head .xc-close { margin-left: auto; }
.xi-h2 { font-size: var(--fs-sm); margin: var(--sp-2) 0 4px; display: flex; gap: var(--sp-2); align-items: baseline; flex-wrap: wrap; }
.xi-h3 { font-size: var(--fs-xs); color: var(--text-secondary); margin: var(--sp-4) 0 var(--sp-2); }
.xi-box .xi-h2:first-child { margin-top: 0; }
a.xi-btn { text-decoration: none; display: inline-block; }
.xi-note.bad, .xi-note .bad { color: var(--danger-fg); }
.xi-status { margin: 0 0 var(--sp-3); display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-3); align-items: center; font-size: var(--fs-xs); }
.xi-gap { margin-bottom: var(--sp-2); }
.xc-list { display: flex; flex-direction: column; gap: 4px; margin-bottom: var(--sp-3); }
.xc-item { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); text-align: left; font: inherit; font-size: var(--fs-xs);
           background: var(--surface); border: var(--bw-hair) solid var(--border); border-radius: var(--radius-sm);
           padding: var(--sp-2) var(--sp-3); cursor: pointer; color: var(--text-primary); }
.xc-item:hover { background: var(--surface-hover); }
.xc-item.on { border-color: var(--accent); }
.xc-head { margin-bottom: var(--sp-2); }
.xc-ai { margin-bottom: var(--sp-2); }
.xc-ai textarea { margin: 4px 0; }
.xc-rows { max-height: 360px; overflow: auto; }
.xi-row > input[type="email"], .xi-row > select { font: inherit; color: var(--text-primary); background: var(--surface);
  border: var(--bw-hair) solid var(--border-control); border-radius: var(--radius-sm); padding: 5px var(--sp-2); }
.xi-row > input[type="email"] { flex: 1; min-width: 200px; }
#xc-sup .xi-row textarea { flex: 1; min-width: 200px; }

/* 看懂（10-01 老板：「要翻译成中文，说明讲的是什么产品、可能是哪个 SKU……或者提供产品图片」）：
   询盘卡片顶上一条 + 邮箱设置「最近收到」表格 + 右侧详情 */
.xi-dg { display: flex; gap: var(--sp-3); align-items: flex-start; background: var(--surface-sunken);
         border-radius: var(--radius-sm); padding: var(--sp-2) var(--sp-3); }
.xi-dg-txt { min-width: 0; flex: 1; }
.xi-dg-zh { margin: 0; font-size: var(--fs-sm); line-height: var(--lh-prose); }
.xi-dg-meta { margin: 2px 0 0; font-size: var(--fs-xs); color: var(--text-secondary); }
.xi-dg-meta a, .xi-panel a:not(.xi-btn) { color: var(--accent); }
.xi-dg-prod { display: inline-block; max-width: 42ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.xi-dot { margin: 0 6px; color: var(--text-muted); }
.xi-pic { width: 52px; height: 52px; object-fit: contain; background: var(--surface); border: var(--bw-hair) solid var(--border);
          border-radius: var(--radius-sm); flex: none; }
.xi-pic.guess { border-style: dashed; border-color: var(--border-strong); }
.xi-pic.big { width: 132px; height: 132px; }
.xi-card.flash { outline: 2px solid var(--accent); outline-offset: 2px; }

.xi-mails { table-layout: fixed; }
.xi-mails col.c-at { width: 96px; } .xi-mails col.c-pic { width: 52px; } .xi-mails col.c-sku { width: 128px; }
.xi-mails col.c-from { width: 150px; } .xi-mails col.c-res { width: 150px; } .xi-mails col.c-own { width: 64px; }
.xi-mails th { position: sticky; top: 0; z-index: 1; }
.xi-mails td { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; height: 44px; }
/* 中文意思是这张表最要紧的：最多两行，再长的悬停看全文 */
.xi-mails td.zh { white-space: normal; }
.xi-mails td.zh > span.clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.45; }
.xi-mail-chips { margin: var(--sp-2) 0 0; }
.xi-mails td.pic { padding: 2px 4px; }
.xi-mails td.pic .xi-pic { width: 40px; height: 40px; display: block; }
.xi-mails tbody tr { cursor: pointer; }
.xi-mails tbody tr:hover td { background: var(--surface-hover); }
.xi-mails tbody tr.on td { background: var(--surface-selected); }
.xi-mails tbody tr.dim td { color: var(--text-muted); }
.xi-mails td.ok { font-weight: var(--fw-regular); }
/* 手机：只留「收到 · 图 · 讲了什么」，其余点开右边看 */
@media (max-width: 640px) {
  .xi-mails { table-layout: auto; }
  .xi-mails col { width: auto !important; }
  .xi-mails th:nth-child(n+4), .xi-mails td:nth-child(n+4) { display: none; }
  .xi-mails th:nth-child(3), .xi-mails td:nth-child(3) { display: table-cell; width: 100%; }
  .xi-mails td:first-child { white-space: normal; width: 44px; }
}

.xi-panel { position: fixed; top: 0; right: 0; bottom: 0; width: min(460px, 100vw); z-index: 30; background: var(--surface);
            border-left: var(--bw-hair) solid var(--border-strong); box-shadow: var(--shadow-3); overflow-y: auto; }
.xi-panel-top { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: flex-start; gap: var(--sp-2);
                padding: var(--sp-3) var(--sp-4); background: var(--surface); border-bottom: var(--bw-hair) solid var(--border); }
.xi-panel-top b { font-size: var(--fs-md); }
.xi-x { border: 0; background: none; font-size: 22px; line-height: 1; color: var(--text-muted); cursor: pointer; padding: 0 4px; }
.xi-x:hover { color: var(--text-primary); }
.xi-panel-body { padding: var(--sp-2) var(--sp-4) var(--sp-6); font-size: var(--fs-sm); line-height: var(--lh-prose); }
.xi-panel-body h3 { margin: var(--sp-4) 0 4px; font-size: var(--fs-xs); color: var(--text-secondary); font-weight: var(--fw-semibold); }
.xi-panel-body p { margin: 0 0 4px; }
.xi-zh { font-size: var(--fs-md); }
.xi-prod { display: flex; gap: var(--sp-3); align-items: flex-start; }
.xi-skus { display: flex; flex-direction: column; gap: var(--sp-2); }
.xi-sku { display: flex; gap: var(--sp-2); align-items: flex-start; border: var(--bw-hair) solid var(--border-subtle);
          border-radius: var(--radius-sm); padding: var(--sp-2); }
.xi-sku img, .xi-noimg { width: 64px; height: 64px; object-fit: contain; flex: none; border-radius: var(--radius-sm); background: var(--surface-sunken); }
.xi-noimg { display: flex; align-items: center; justify-content: center; font-size: var(--fs-xs); color: var(--text-muted); }
.xi-links { display: flex; gap: var(--sp-3); margin-top: 2px; font-size: var(--fs-xs); }
.xi-tag { font-size: var(--fs-xs); background: var(--accent-soft-bg); color: var(--accent-soft-fg); border-radius: var(--radius-full); padding: 0 6px; }

/* 询盘卡片的「基本信息」+「下一步」（10-01 老板第二次：「看下来能知道下一步怎么处理，或者了解基本信息」） */
.xi-brief { display: flex; gap: var(--sp-3); align-items: flex-start; background: var(--surface-sunken);
            border-radius: var(--radius-sm); padding: var(--sp-2) var(--sp-3); }
.xi-brief .xi-pic { width: 84px; height: 84px; display: block; }
.xi-pic-a { flex: none; }
.xi-nopic { display: flex; align-items: center; justify-content: center; text-align: center; font-size: var(--fs-xs);
            color: var(--text-muted); border-style: dashed; padding: 4px; box-sizing: border-box; }
.xi-brief-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.xi-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 2px var(--sp-4); font-size: var(--fs-xs); }
.xi-fact { display: flex; gap: var(--sp-2); align-items: baseline; min-width: 0; }
.xi-fact.wide { grid-column: 1 / -1; }
.xi-fact .k { color: var(--text-muted); white-space: nowrap; flex: none; min-width: 3.5em; }
.xi-fact .v { min-width: 0; display: flex; align-items: baseline; gap: 4px; color: var(--text-primary); }
.xi-fact .t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xi-fact .v a { color: var(--accent); }
.xi-en { color: var(--text-secondary); margin-left: var(--sp-2); }
.xi-mono { font-family: var(--font-mono); letter-spacing: .02em; }
.xi-copy { border: var(--bw-hair) solid var(--border-strong); background: var(--surface); color: var(--text-secondary); border-radius: var(--radius-sm);
           font: inherit; font-size: var(--fs-xs); line-height: 1.3; padding: 0 6px; cursor: pointer; white-space: nowrap; flex: none; }
.xi-copy:hover { background: var(--surface-hover); color: var(--text-primary); }
.xi-next { margin: 0; padding: var(--sp-2) var(--sp-3); border-left: 3px solid var(--accent); background: var(--accent-soft-bg);
           border-radius: 0 var(--radius-sm) var(--radius-sm) 0; font-size: var(--fs-sm); line-height: var(--lh-prose); }
.xi-next b { color: var(--accent-soft-fg); margin-right: var(--sp-2); white-space: nowrap; }
.xi-ask[open] { border: var(--bw-hair) solid var(--border-subtle); border-radius: var(--radius-sm); padding: var(--sp-2); }
.xi-ask[open] > summary { margin-bottom: var(--sp-2); }
.xi-ask > .xi-actions { margin: var(--sp-2) 0; }
.xi-orig .xi-mail { margin: 4px 0; }
@media (max-width: 640px) {
  .xi-brief { flex-direction: column; }
  .xi-fact .t { white-space: normal; }
}

/* TM 每日提醒（10-01）：右侧详情里列昨天在 TM 上发消息的买家 */
.xi-tm { display: flex; flex-direction: column; gap: var(--sp-2); margin-bottom: var(--sp-2); }
.xi-tm-b { border: var(--bw-hair) solid var(--border-subtle); border-radius: var(--radius-sm); padding: var(--sp-2) var(--sp-3); }
.xi-tm-b .xi-btn { padding: 0 6px; }

/* 回客户参考（10-01 老板：「询盘点完之后，右手边能不能把一些答案给他弄出来」）：点询盘卡片右边出来 */
.xi-ref { width: min(500px, 100vw); }
@media (min-width: 1100px) { :root.xi-ref-on .xi-app { margin-left: var(--sp-4); margin-right: 516px; } }
.xi-card.on { outline: 2px solid var(--accent); outline-offset: 1px; }
.xi-card textarea, .xi-card input { cursor: auto; }
.xi-card summary, .xi-card .xi-pic-a { cursor: pointer; }
.xi-ref-btn { margin-left: auto; white-space: nowrap; }
.xi-code { border: 0; background: none; padding: 0; font: inherit; color: var(--accent); text-decoration: underline; cursor: pointer; }
.xr-jump { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.xr-jump button { border: var(--bw-hair) solid var(--border); background: var(--surface); color: var(--text-secondary); border-radius: var(--radius-full);
                  font: inherit; font-size: var(--fs-xs); padding: 1px var(--sp-2); cursor: pointer; white-space: nowrap; }
.xr-jump button:hover { background: var(--surface-hover); color: var(--text-primary); }
.xr-sec { scroll-margin-top: 104px; border-top: var(--bw-hair) solid var(--border-subtle); margin-top: var(--sp-3); }
.xr-wait { margin-top: var(--sp-3); }
.xr-prod { display: flex; gap: var(--sp-3); align-items: flex-start; margin-top: var(--sp-3); }
.xr-prod img, .xr-prod .xi-noimg { width: 88px; height: 88px; object-fit: contain; border-radius: var(--radius-sm); background: var(--surface-sunken); flex: none; display: flex; }
.xr-prod-t { min-width: 0; }
.xi-tag.warn { background: var(--warning-bg); color: var(--warning-fg); }
.xi-tag.good { background: var(--success-bg); color: var(--success-fg); }
.xi-near { white-space: nowrap; flex-shrink: 0; margin-left: 6px; }
.xr-pick { white-space: nowrap; margin-left: 6px; padding: 0 8px; }
.xi-tag.now { background: var(--accent-soft-bg); color: var(--accent-soft-fg); font-weight: var(--fw-semibold); }
.xr-cands { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: var(--sp-2); }
.xr-cand { display: inline-flex; align-items: center; gap: 4px; border: var(--bw-hair) solid var(--border-strong); background: var(--surface);
           color: var(--text-primary); border-radius: var(--radius-sm); padding: 2px 6px; font: inherit; font-size: var(--fs-xs); cursor: pointer; white-space: nowrap; }
.xr-cand:hover { background: var(--surface-hover); }
.xr-cand img, .xr-cand .xi-noimg { width: 26px; height: 26px; object-fit: contain; }
.xr-find { display: flex; gap: 6px; margin-top: var(--sp-2); }
.xr-find input { flex: 1; min-width: 0; font: inherit; color: var(--text-primary); background: var(--surface);
                 border: var(--bw-hair) solid var(--border-control); border-radius: var(--radius-sm); padding: 4px var(--sp-2); }
.xr-found { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; max-height: 280px; overflow: auto;
            border: var(--bw-hair) solid var(--border-subtle); border-radius: var(--radius-sm); padding: 4px; }
.xr-hit { display: flex; gap: var(--sp-2); align-items: center; text-align: left; border: 0; background: none; font: inherit; font-size: var(--fs-xs);
          color: var(--text-primary); padding: 4px; border-radius: var(--radius-sm); cursor: pointer; }
.xr-hit:hover { background: var(--surface-hover); }
.xr-hit img, .xr-hit .xi-noimg { width: 40px; height: 40px; object-fit: contain; flex: none; }
.xr-hit small { display: block; }
.xr-chips { margin: 4px 0 var(--sp-2); }
.xr-qas { display: flex; flex-direction: column; gap: var(--sp-2); }
.xr-qa { border: var(--bw-hair) solid var(--border-subtle); border-radius: var(--radius-sm); padding: var(--sp-2) var(--sp-3); }
.xr-qa.now { border-left: 3px solid var(--accent); }
.xr-qa .q { margin: 0; font-weight: var(--fw-semibold); white-space: pre-wrap; overflow-wrap: anywhere; }
.xr-qa .a { margin: 2px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--text-secondary); cursor: pointer;
            display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.xr-qa .a.open { display: block; overflow: visible; }
.xr-qa .m { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; font-size: var(--fs-xs); color: var(--text-muted); }
.xr-qa .d.hot { color: var(--success-fg); font-weight: var(--fw-semibold); }
.xr-qa .d.warm { color: var(--info-fg); }
.xr-qa .d.old { color: var(--text-disabled); }
.xr-more { margin-top: 4px; }
.xr-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px var(--sp-3); font-size: var(--fs-xs); margin-top: var(--sp-2); }
.xr-facts > div { min-width: 0; overflow-wrap: anywhere; }
.xr-facts .k, .xr-line .k, .xr-en .k, .xr-c .kn .k { color: var(--text-muted); margin-right: 6px; white-space: nowrap; }
.xr-line { font-size: var(--fs-xs); margin: 4px 0 0; }
.xr-en { margin-top: var(--sp-2); font-size: var(--fs-xs); }
.xr-en-h { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.xr-en pre { white-space: pre-wrap; font: inherit; margin: 4px 0 0; background: var(--surface-sunken); padding: var(--sp-2);
             border-radius: var(--radius-sm); max-height: 200px; overflow: auto; }
.xr-notes { margin-top: var(--sp-2); }
.xr-notes ul { margin: 4px 0 0; padding-left: 1.2em; font-size: var(--fs-xs); color: var(--text-secondary); }
.xr-where { list-style: none; padding: 0; margin: var(--sp-3) 0 0; display: flex; flex-direction: column; gap: 6px; }
.xr-where li { display: flex; flex-direction: column; font-size: var(--fs-xs); }
.xr-where a { font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--accent); text-decoration: none; }
.xr-where a:hover { text-decoration: underline; }
.xr-common { display: flex; flex-direction: column; gap: var(--sp-2); margin-top: var(--sp-2); }
.xr-c { border: var(--bw-hair) solid var(--border-subtle); border-radius: var(--radius-sm); padding: var(--sp-2) var(--sp-3); }
.xr-c.now { border-color: var(--accent-soft-border); background: var(--accent-soft-bg); }
.xr-c .h { display: flex; gap: var(--sp-2); align-items: baseline; flex-wrap: wrap; }
.xr-c .n { color: var(--text-muted); font-size: var(--fs-xs); white-space: nowrap; }
.xr-c .ex { margin: 2px 0 0; color: var(--text-secondary); font-size: var(--fs-xs); overflow-wrap: anywhere; }
.xr-c .kn { margin: 2px 0 0; font-size: var(--fs-xs); }
.xr-link { border: 0; background: none; padding: 0; font: inherit; color: var(--accent); cursor: pointer; white-space: nowrap; }
.xr-link:hover { text-decoration: underline; }
.xr-fresh { margin-top: var(--sp-4); }
@media (max-width: 640px) { .xr-find input { font-size: 16px; } .xr-facts { grid-template-columns: minmax(0, 1fr); } }
.xr-badges { margin-top: var(--sp-2); }
.xr-badges a { display: inline-flex; flex-wrap: wrap; gap: 4px; text-decoration: none; }
.xr-badge { font-size: var(--fs-xs); border: var(--bw-hair) solid var(--border-strong); border-radius: var(--radius-sm); padding: 0 6px;
            color: var(--text-secondary); background: var(--surface); white-space: nowrap; }
.xr-badge.best { color: var(--danger-fg); border-color: var(--danger-border); background: var(--danger-bg); font-weight: var(--fw-semibold); }
.xr-warn { margin: var(--sp-2) 0 0; padding: 4px var(--sp-2); font-size: var(--fs-xs); color: var(--warning-fg); background: var(--warning-bg);
           border: var(--bw-hair) solid var(--warning-border); border-radius: var(--radius-sm); }
.xr-hot { margin-top: var(--sp-2); padding: var(--sp-2) var(--sp-3); background: var(--surface-sunken); border-radius: var(--radius-sm);
          display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.xr-hot .xr-line { margin: 0; }
.xr-tagbtn { border: 0; font: inherit; font-size: var(--fs-xs); cursor: pointer; }
.xr-tagbtn:hover { text-decoration: underline; }
.xr-follow { margin: 2px 0 0; font-size: var(--fs-xs); color: var(--text-muted); }
.xr-follow summary { cursor: pointer; }
.xr-follow p { margin: 2px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }

/* 2026-10-01 各邮箱（点选归谁、贴发信密码）+ 汇总邮箱密码来源提醒 + 发给客户之前的核对（工厂信息拦、承诺标黄要勾） */
.xi-pwnote { font-size: var(--fs-xs); color: var(--text-muted); margin: 0 0 var(--sp-2); }
.xi-pwnote.warn { color: var(--warning-fg); background: var(--warning-bg); border: var(--bw-hair) solid var(--warning-border);
                  border-radius: var(--radius-sm); padding: var(--sp-2) var(--sp-3); }
.xi-pwnote ol { margin: 4px 0 0; padding-left: 1.4em; }
.xi-boxes th { position: sticky; top: 0; z-index: 1; white-space: nowrap; }
.xi-boxes td { vertical-align: middle; }
.xi-boxes td.addr { white-space: nowrap; font-weight: var(--fw-semibold); }
.xi-boxes td.ok, .xi-boxes span.ok { color: var(--success-fg); font-weight: var(--fw-semibold); white-space: nowrap; }
.xi-boxes td.pw, .xi-boxes td.num { white-space: nowrap; }
.xi-boxes select { width: 120px; }
.xi-boxes select, .xi-boxes input { font: inherit; color: var(--text-primary); background: var(--surface); border: var(--bw-hair) solid var(--border-control);
                                     border-radius: var(--radius-sm); padding: 3px 6px; max-width: 220px; }
.xi-boxes input[data-box-pw] { width: 130px; }
.xi-precheck { margin-top: var(--sp-2); padding: var(--sp-2) var(--sp-3); border-radius: var(--radius-sm); font-size: var(--fs-xs);
               background: var(--warning-bg); border: var(--bw-hair) solid var(--warning-border); color: var(--text-primary); }
.xi-precheck.bad { background: var(--danger-bg); border-color: var(--danger-border); }
.xi-precheck ul { margin: 4px 0 var(--sp-2); padding-left: 1.2em; }
.xi-precheck li { margin: 2px 0; line-height: 1.5; }
.xi-precheck mark.hl-warn { background: linear-gradient(transparent 30%, var(--a-200) 30%); color: var(--text-primary); }
.xi-precheck mark.hl-bad { background: linear-gradient(transparent 30%, var(--r-200) 30%); color: var(--r-800); }
.xi-ack { display: flex; align-items: center; gap: 6px; margin: 0 0 var(--sp-2); font-weight: var(--fw-semibold); cursor: pointer; }
/* 手机宽：各邮箱一行排成一块（邮箱名一行，数字一行，归谁、发信密码各一行），不把页面撑出横向滚动；输入框 16px 免得 iPhone 一点就放大 */
@media (max-width: 640px) {
  .xi-boxes thead { display: none; }
  .xi-boxes, .xi-boxes tbody, .xi-boxes tr { display: block; width: auto; }
  .xi-boxes tr { padding: var(--sp-2) 0; border-bottom: var(--bw-hair) solid var(--border-subtle); }
  .xi-boxes td { display: block; border: 0; padding: 2px 0; }
  .xi-boxes td.num { display: inline-block; margin-right: var(--sp-3); }
  .xi-boxes td.pw { white-space: normal; }
  .xi-boxes select, .xi-boxes input { font-size: 16px; }
  .xi-boxes select { width: 100%; max-width: none; }
}

/* 老板 10-04：可视化——「说明」折叠、顶上一排数字卡、群发的「今天发了几封」进度条（零件在 shared/viz.css） */
.xi-howto { margin: -4px 0 var(--sp-3); font-size: var(--fs-xs); color: var(--text-muted); max-width: 80ch; }
.xi-howto summary { cursor: pointer; color: var(--accent); width: max-content; }
.xi-howto p { margin: 4px 0 0; }
.xi-kpis .sqv-kpis { margin: 0 0 var(--sp-3); }
.xc-meter { display: inline-block; width: 200px; max-width: 100%; }
.xi-top .sqv-pill, .xc-item .sqv-pill { flex: none; }
@media (max-width: 640px) {
  .xi-kpis .sqv-kpi { padding: 8px 10px; }
}
