/* ============================================================
   Reeve — IM layer. A messaging surface over the editorial/glass base.
   Each thread = a 1:1 conversation with Reeve. Reeve = left bubbles + relayed
   email cards + draft proposals; you = right accent bubbles. Long-press to
   approve lives inside a draft bubble; quick chips sit above the composer.
   ============================================================ */

/* ---------- conversation list (home) ---------- */
.im-lead{padding:2px 20px 12px;font-family:var(--serif);font-weight:300;font-size:19px;letter-spacing:-.02em;color:var(--ink-2);line-height:1.35;flex-shrink:0}
.im-lead b{font-family:var(--serif);color:var(--ink);font-weight:400}
.im-list{flex:1;overflow-y:auto;padding:0 0 8px;display:flex;flex-direction:column}
.im-list::-webkit-scrollbar{width:0}

/* flat WhatsApp-style identity header + search */
.im-id{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 18px 8px}
.im-id.flat{padding:12px 18px 6px}
.im-id-btn{display:flex;align-items:center;gap:12px;background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;min-width:0}
.im-id .avatar{width:38px;height:38px;font-size:15px;flex-shrink:0}
.im-id-name{font-family:var(--ui);font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.025em;line-height:1.15}
.im-id-act{width:38px;height:38px;border-radius:999px;border:none;background:none;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;flex-shrink:0;padding:0}
.im-id-act:active{background:var(--paper-2)}
.im-search-wrap{flex-shrink:0;padding:2px 12px 8px}
.im-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:11px;background:var(--paper-2);color:var(--ink-4);overflow:hidden}
.im-search>svg{flex-shrink:0}
.im-search-ph{font-family:var(--ui);font-size:14px;letter-spacing:-.006em;color:var(--ink-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im-sec{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);padding:14px 8px 4px}
.im-sec::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.im-sec.watch{color:var(--accent-b)}
.im-sec.watch::before{background:var(--accent-b)}

.im-row{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:9px 16px;border:none;background:none;cursor:pointer;font-family:inherit;transition:background .12s;-webkit-tap-highlight-color:transparent;position:relative}
.im-row::after{content:"";position:absolute;left:78px;right:0;bottom:0;height:1px;background:var(--rule)}
.im-row:last-of-type::after{display:none}
.im-row:hover{background:var(--paper-2)}
.im-row:active{background:var(--paper-3)}
.im-av-wrap{position:relative;flex-shrink:0}
.im-av{position:relative;width:52px;height:52px;border-radius:16px;flex-shrink:0;display:grid;place-items:center;
  font-family:var(--ui);font-size:19px;font-weight:600;color:#fff;background:var(--accent);box-shadow:inset 0 0 0 .5px oklch(0% 0 0/.04),inset 0 1px 0 oklch(100% 0 0/.18)}
.im-row.watch .im-av{background:var(--ink-3)}
/* Reeve-following badge — signals this is a work thread the agent is on */
.im-av-reeve{position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  background:#fff;color:var(--accent);border:2px solid var(--screen-bg,#fff);
  box-shadow:0 2px 5px -1px oklch(40% .05 var(--n-hue)/.34)}
.im-av-reeve .embermark{width:13px;height:13px}
.im-av-reeve.watch{color:var(--ink-3)}
.im-row-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.im-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.im-row-name{font-family:var(--ui);font-size:16.5px;font-weight:600;color:var(--ink);letter-spacing:-.018em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-row-time{font-family:var(--ui);font-size:12px;letter-spacing:-.01em;color:var(--ink-4);flex-shrink:0;font-variant-numeric:tabular-nums}
.im-row.unread .im-row-time{color:var(--accent);font-weight:600}
.im-row-prev{display:flex;align-items:center;gap:10px;min-width:0}
.im-row-prev .pv{flex:1;min-width:0;font-size:14px;color:var(--ink-3);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.008em}
.im-row.unread .im-row-prev .pv{color:var(--ink-2)}
/* minimal urgency summary — read thread heat at a glance */
.im-row-sum{display:flex;align-items:center;gap:7px;min-width:0;margin-top:1px}
.im-sum-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--ink-4)}
.im-sum-tx{font-family:var(--ui);font-size:11px;letter-spacing:-.003em;color:var(--ink-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-row-sum[data-lv="now"] .im-sum-dot{background:#ff6f5e;box-shadow:0 0 0 3px color-mix(in oklab,#ff6f5e 20%,transparent)}
.im-row-sum[data-lv="now"] .im-sum-tx{color:#e0483a;font-weight:600}
.im-row-sum[data-lv="soon"] .im-sum-dot{background:#e0913a}
.im-row-sum[data-lv="soon"] .im-sum-tx{color:#b0701f;font-weight:500}
.im-row-sum[data-lv="calm"] .im-sum-dot{background:var(--accent-b)}
.im-row-sum[data-lv="calm"] .im-sum-tx{color:var(--ink-4)}
.im-badge{flex-shrink:0;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-family:var(--ui);font-size:11.5px;font-weight:700;display:grid;place-items:center;box-shadow:0 1px 4px -1px color-mix(in oklab,var(--accent) 60%,transparent)}
.im-list-src{font-family:var(--ui);font-size:10px;color:var(--ink-4);letter-spacing:-.003em;padding:16px 18px 4px}

/* ---------- conversation header ---------- */
.im-cnav{flex-shrink:0;display:flex;align-items:center;gap:11px;padding:8px 14px 9px;position:relative;z-index:5}
.im-back{width:32px;height:32px;border-radius:999px;border:none;display:grid;place-items:center;cursor:pointer;flex-shrink:0;
  color:var(--accent-2);font-size:20px;line-height:1;background:oklch(100% 0 0/.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-family:inherit;padding:0}
.im-cnav-av{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--ui);font-size:15px;font-weight:600;color:#fff;background:var(--accent)}
.im-cnav.watch .im-cnav-av{background:var(--ink-3)}
.im-cnav-tx{flex:1;min-width:0}
.im-cnav-name{font-family:var(--ui);font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.012em;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-cnav-sub{display:flex;align-items:center;gap:6px;margin-top:2px;font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-cnav-sub i{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;position:relative}
.im-cnav.watch .im-cnav-sub i{background:var(--accent-b)}
.im-cnav-sub i::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:1.5px solid currentColor;color:var(--accent);opacity:.5;animation:thinkRing 1.9s ease-out infinite}
.im-cnav.watch .im-cnav-sub i::after{color:var(--accent-b)}
.im-cnav-info{width:32px;height:32px;border-radius:999px;border:none;display:grid;place-items:center;cursor:pointer;flex-shrink:0;
  color:var(--ink-3);background:oklch(100% 0 0/.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-family:var(--mono);font-size:11px;padding:0}

/* ---------- message thread ---------- */
.im-thread{flex:1;overflow-y:auto;padding:6px 15px 14px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.im-thread::-webkit-scrollbar{width:0}

/* date / system dividers */
.im-sysline{align-self:center;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);
  background:color-mix(in oklab,var(--paper-2) 80%,transparent);border:1px solid var(--rule);border-radius:999px;padding:4px 12px;margin:4px 0}
.im-sysline.sent{display:flex;align-items:center;gap:7px;color:var(--accent-2);background:var(--accent-soft);border-color:var(--accent-line);text-transform:none;letter-spacing:.02em;font-size:9.5px}
.im-sysline.sent .tick{width:14px;height:14px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:8px;font-weight:700}

/* a message line: reeve (left) / me (right) */
.im-msg{display:flex;gap:8px;max-width:90%;align-items:flex-end}
.im-msg.reeve{align-self:flex-start}
.im-msg.me{align-self:flex-end;flex-direction:row-reverse}
.im-msg-av{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;color:var(--accent);
  background:var(--screen-bg,#fff);border:1px solid var(--rule);box-shadow:0 1px 4px -1px oklch(40% .05 var(--n-hue)/.25)}
.im-msg.reeve.cont .im-msg-av{visibility:hidden}

.im-bubble{position:relative;border-radius:18px;padding:10px 14px;font-size:13.5px;line-height:1.5;letter-spacing:-.006em}
.im-msg.reeve .im-bubble{background:var(--paper);border:1px solid var(--rule);color:var(--ink);border-bottom-left-radius:6px}
.im-msg.me .im-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:6px;box-shadow:0 4px 12px -6px color-mix(in oklab,var(--accent) 70%,transparent)}
.im-msg.me .im-bubble .t-time{background:oklch(100% 0 0/.22);color:#fff}
.im-msg.reeve.auto .im-bubble{background:var(--paper-2);border-style:dashed}
.im-msg.reeve.auto .im-bubble::before{content:"Reeve 自动";display:block;font-family:var(--mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);margin-bottom:5px}
.im-voicetag{display:inline-flex;align-items:center;gap:5px;margin-bottom:5px;font-family:var(--mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;opacity:.8}
.im-voicetag i{display:flex;align-items:center;gap:1.5px}
.im-voicetag i b{width:2px;border-radius:2px;background:currentColor;display:block}
.im-voicetag i b:nth-child(1){height:5px}.im-voicetag i b:nth-child(2){height:9px}.im-voicetag i b:nth-child(3){height:6px}

/* relayed counterparty email (Reeve forwards it in) */
.im-email{align-self:flex-start;max-width:92%;display:flex;gap:8px;align-items:flex-end}
.im-email-av{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--serif);font-size:12px;color:#fff;background:linear-gradient(150deg,var(--accent-b),var(--accent));align-self:flex-end}
.im-email-card{flex:1;min-width:0;background:var(--paper);border:1px solid var(--rule);border-left:2.5px solid var(--accent-b);border-radius:6px 16px 16px 6px;padding:10px 13px;box-shadow:0 2px 10px -6px oklch(40% .05 var(--n-hue)/.2)}
.im-email-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.im-email-from{display:flex;align-items:center;gap:7px;font-family:var(--serif);font-size:13px;font-weight:400;color:var(--ink);min-width:0}
.im-email-from .em-ic{font-family:var(--mono);font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-b);border:1px solid var(--accent-b-soft);background:var(--accent-b-soft);border-radius:5px;padding:2px 5px;flex-shrink:0}
.im-email-time{font-family:var(--mono);font-size:9px;color:var(--ink-4);flex-shrink:0}
.im-email-subj{font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:var(--ink-3);margin-top:6px}
.im-email-body{margin-top:7px;font-family:var(--serif);font-weight:300;font-size:13px;line-height:1.58;color:var(--ink-2);letter-spacing:-.006em}

/* Reeve's draft proposal — a bubble that carries a draft + hold-to-approve */
.im-draftmsg{align-self:flex-start;max-width:93%;display:flex;gap:8px;align-items:flex-end}
.im-draftmsg-av{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;color:var(--accent);
  background:var(--screen-bg,#fff);border:1px solid var(--rule);box-shadow:0 1px 4px -1px oklch(40% .05 var(--n-hue)/.25);align-self:flex-end}
.im-draftmsg.cont .im-draftmsg-av{visibility:hidden}
.im-draft{flex:1;min-width:0;background:var(--paper);border:1px solid var(--accent-line);border-radius:18px;border-bottom-left-radius:6px;padding:12px 13px;
  box-shadow:0 6px 20px -10px color-mix(in oklab,var(--accent) 40%,transparent)}
.im-draft.done{border-color:var(--rule);box-shadow:none;opacity:.92}
.im-draft-head{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:14.5px;font-weight:400;color:var(--ink);letter-spacing:-.012em;margin-bottom:9px}
.im-draft-head .embermark{color:var(--accent);flex-shrink:0}
.im-draft-why{margin:0 0 10px;padding:0;list-style:none;display:grid;gap:6px}
.im-draft-why li{position:relative;padding-left:15px;font-size:11.5px;line-height:1.5;color:var(--ink-2);letter-spacing:-.003em}
.im-draft-why li::before{content:"";position:absolute;left:3px;top:7px;width:4px;height:4px;border-radius:50%;background:var(--accent)}
.im-draft-card{background:color-mix(in oklab,#fff 70%,transparent);border:1px solid var(--rule);border-radius:12px;padding:11px 12px;
  font-family:var(--serif);font-weight:300;font-size:12.5px;line-height:1.6;color:var(--ink);letter-spacing:-.008em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.im-draft-tag{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);margin-bottom:8px;font-weight:500}
.im-draft-tag .edit{color:var(--ink-3);border:1px solid var(--rule);border-radius:6px;padding:2px 7px;background:none;font-family:inherit;font-size:8px;letter-spacing:.06em;cursor:pointer}
.im-draft .hold{margin-top:11px;height:46px}
.im-draft-done{display:flex;align-items:center;gap:9px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--rule);font-size:11.5px;color:var(--ink-3);letter-spacing:-.003em}
.im-draft-done .tick{width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:9px;font-weight:700;flex-shrink:0}

/* typing indicator */
.im-typing{align-self:flex-start;display:flex;gap:8px;align-items:flex-end}
.im-typing-av{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;color:var(--accent);background:var(--screen-bg,#fff);border:1px solid var(--rule)}
.im-typing-dots{background:var(--paper);border:1px solid var(--rule);border-radius:18px;border-bottom-left-radius:6px;padding:12px 14px;display:flex;gap:4px}
.im-typing-dots i{width:6px;height:6px;border-radius:50%;background:var(--ink-4);animation:imType 1.3s ease-in-out infinite}
.im-typing-dots i:nth-child(2){animation-delay:.16s}
.im-typing-dots i:nth-child(3){animation-delay:.32s}
@keyframes imType{0%,100%{opacity:.3;transform:translateY(1.5px)}45%{opacity:1;transform:translateY(-2px)}}

.im-enter{animation:imEnter .34s cubic-bezier(.22,1,.36,1) both}
@keyframes imEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- composer (quick chips + input) ---------- */
.im-foot{flex-shrink:0;padding:0 0 14px}
.im-chips{display:flex;gap:7px;overflow-x:auto;padding:8px 15px 9px;scrollbar-width:none}
.im-chips::-webkit-scrollbar{height:0}
.im-chip{flex-shrink:0;white-space:nowrap;font-family:var(--ui);font-size:11.5px;font-weight:500;letter-spacing:-.005em;color:var(--accent-2);
  background:oklch(100% 0 0/.6);border:1px solid var(--accent-line);border-radius:999px;padding:7px 13px;cursor:pointer;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .15s,transform .1s}
.im-chip:hover{background:var(--accent-soft)}
.im-chip:active{transform:scale(.95)}
.im-composer{margin:0 14px 4px;display:flex;align-items:center;gap:9px;padding:7px 7px 7px 16px;border-radius:999px;position:relative;overflow:hidden;
  background:linear-gradient(180deg,oklch(100% 0 0/.64),oklch(100% 0 0/.4));backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);
  border:1px solid oklch(100% 0 0/.72);box-shadow:inset 0 1.5px 0 oklch(100% 0 0/.92),0 10px 26px -12px oklch(40% .05 var(--n-hue)/.4)}
.im-composer::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(125deg,oklch(100% 0 0/.5),transparent 42%)}
.im-input{flex:1;border:none;background:none;outline:none;font-family:var(--ui);font-size:13px;color:var(--ink);letter-spacing:-.004em;min-width:0;position:relative;z-index:1}
.im-input::placeholder{color:var(--ink-3)}
.im-mic{position:relative;z-index:1;display:flex;align-items:center;gap:2px;height:18px;padding:0 2px;cursor:pointer}
.im-mic i{width:2px;height:8px;background:var(--ink-3);border-radius:2px}
.im-mic i:nth-child(2){height:13px}.im-mic i:nth-child(3){height:6px}
.im-send{position:relative;z-index:1;width:34px;height:34px;border-radius:999px;border:none;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:16px;font-weight:700;flex-shrink:0;cursor:pointer;transition:transform .1s,opacity .15s}
.im-send:active{transform:scale(.92)}
.im-send.dim{opacity:.4}

/* ---------- hero (the big interactive phone on the canvas) ---------- */
.im-hero{align-items:flex-start;padding-top:8px}
.im-hero .cs-caption{padding-top:30px}
.im-hero-phone{width:344px}
.im-hero-phone .phone{max-width:344px}
.im-hero-phone .phone-screen{height:712px}

/* push-over (detail slides in over list) reuses base .push-base/.push-over.
   Conversation screens get the same liquid-glass wash behind bubbles. */
.style-glass .im-row,.style-glass .im-email-card,.style-glass .im-msg.reeve .im-bubble,.style-glass .im-draft{backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);background-color:color-mix(in oklab,#fff 78%,transparent)}
.style-glass .im-msg.reeve .im-bubble{background:color-mix(in oklab,#fff 80%,transparent)}
.style-glass .im-row.act{background:color-mix(in oklab,var(--accent-soft) 60%,#fff)}

/* ===== fused decision card (Feishu-style: email + reasoning + draft + decide here) ===== */
.im-cardmsg{align-self:stretch;width:100%;display:flex;gap:8px;align-items:flex-end}
.im-cardmsg-av{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;color:var(--accent);
  background:var(--screen-bg,#fff);border:1px solid var(--rule);box-shadow:0 1px 4px -1px oklch(40% .05 var(--n-hue)/.25);align-self:flex-end}
.im-cardmsg.cont .im-cardmsg-av{visibility:hidden}
.im-card{position:relative;flex:1;min-width:0;background:var(--paper);border:1px solid var(--rule-2);border-radius:17px;border-bottom-left-radius:7px;
  padding:13px 15px;overflow:hidden;box-shadow:inset 0 1px 0 oklch(100% 0 0/.5),0 10px 28px -16px oklch(40% .05 var(--n-hue)/.34)}
.im-card.done{border-color:var(--rule);box-shadow:none;background:var(--paper-2)}
.im-card.replaced{opacity:.7}
.im-card-head{display:flex;flex-direction:column;gap:6px;margin-bottom:11px}
.im-card-kicker{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent-2);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:999px;padding:3px 9px}
.im-card.done .im-card-kicker{color:var(--ink-3);background:var(--paper);border-color:var(--rule)}
.im-card-kicker .embermark{color:var(--accent)}
.im-card.done .im-card-kicker .embermark{color:var(--ink-3)}
.im-card-title{font-family:var(--ui);font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.014em;line-height:1.34}
.im-card.done .im-card-title{color:var(--ink-2)}
.im-c-inc{display:flex;gap:9px;background:color-mix(in oklab,var(--paper-2) 70%,transparent);border:1px solid var(--rule);
  border-radius:12px;padding:9px 11px;margin-bottom:11px}
.im-c-inc.dim{opacity:.6;background:var(--paper)}
.im-c-inc-av{width:24px;height:24px;border-radius:7px;flex-shrink:0;display:grid;place-items:center;font-family:var(--serif);font-size:12px;color:#fff;background:linear-gradient(150deg,var(--accent-b),var(--accent))}
.im-c-inc-tx{flex:1;min-width:0}
.im-c-inc-h{display:flex;align-items:center;gap:7px;font-family:var(--serif);font-size:12.5px;color:var(--ink)}
.im-c-inc-h b{font-weight:400}
.im-c-inc-h .em-ic{font-family:var(--mono);font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-b);border:1px solid var(--accent-b-soft);background:var(--accent-b-soft);border-radius:5px;padding:2px 5px;flex-shrink:0}
.im-c-inc-h .tm{margin-left:auto;font-family:var(--mono);font-size:8.5px;color:var(--ink-4);flex-shrink:0}
.im-c-inc-subj{font-family:var(--mono);font-size:8.5px;letter-spacing:.03em;color:var(--ink-3);margin-top:5px}
.im-c-inc-body{margin-top:6px;font-family:var(--serif);font-weight:300;font-size:12.5px;line-height:1.55;color:var(--ink-2);letter-spacing:-.006em}

/* an email shown in the thread (prior chase emails, etc.) — a real mail block */
.im-mailmsg{display:flex;padding:0 2px}
.im-mail{flex:1;min-width:0;background:var(--paper);border:1px solid var(--rule);border-radius:13px;padding:11px 13px;
  box-shadow:0 4px 14px -10px oklch(40% .05 var(--n-hue)/.3)}
.im-mail.out{border-left:2.5px solid var(--accent-line)}
.im-mail-h{display:flex;align-items:center;gap:7px;min-width:0}
.im-mail-dir{font-family:var(--mono);font-size:7.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);
  background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:5px;padding:2px 6px;flex-shrink:0}
.im-mail-ppl{font-family:var(--serif);font-size:12.5px;font-weight:400;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-mail-h .tm{margin-left:auto;font-family:var(--mono);font-size:8.5px;color:var(--ink-4);flex-shrink:0}
.im-mail-subj{font-family:var(--mono);font-size:8.5px;letter-spacing:.02em;color:var(--ink-3);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-mail-body{margin-top:6px;font-family:var(--serif);font-weight:300;font-size:12.5px;line-height:1.55;color:var(--ink-2);letter-spacing:-.006em}
.im-mail-noreply{display:flex;align-items:center;gap:6px;margin-top:9px;padding-top:8px;border-top:1px dashed var(--rule);
  font-family:var(--ui);font-size:10.5px;font-weight:500;letter-spacing:-.004em;color:#b0701f}
.im-mail-noreply .nr-dot{width:5px;height:5px;border-radius:50%;background:#e0913a;flex-shrink:0}
.im-card-why{margin:0 0 11px;padding:0;list-style:none;display:grid;gap:6px}
.im-card-why li{position:relative;padding-left:15px;font-size:11.5px;line-height:1.5;color:var(--ink-2);letter-spacing:-.003em}
.im-card-why li::before{content:"";position:absolute;left:3px;top:7px;width:4px;height:4px;border-radius:50%;background:var(--accent)}
.im-card-draft{background:color-mix(in oklab,#fff 72%,transparent);border:1px solid var(--rule);border-radius:12px;padding:11px 12px;
  font-family:var(--serif);font-weight:300;font-size:12.5px;line-height:1.62;color:var(--ink);letter-spacing:-.008em}
.im-card-draft.dim{opacity:.66;font-size:11.5px}
.im-card-draft-tag{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);margin-bottom:8px;font-weight:500}
.im-card-draft.dim .im-card-draft-tag{color:var(--ink-3)}
.im-card-draft-tag .edit{color:var(--ink-3);border:1px solid var(--rule);border-radius:6px;padding:2px 8px;background:none;font-family:inherit;font-size:8.5px;letter-spacing:.06em;cursor:pointer;transition:border-color .15s,color .15s}
.im-card-draft-tag .edit:hover{border-color:var(--accent-line);color:var(--accent-2)}
.im-card-act{margin-top:12px}
.im-card-act .hold{height:48px}

/* ===== slide-to-approve — calm Liquid Glass ===== */
.slide{position:relative;height:52px;border-radius:999px;overflow:hidden;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;
  background:color-mix(in oklab,var(--accent-soft) 72%,var(--paper-2));
  border:1px solid var(--accent-line);
  box-shadow:inset 0 1px 0 oklch(100% 0 0/.5)}
.slide:active{cursor:grabbing}
.slide.done{cursor:default}

/* accent fill grows from the left as you slide */
.slide-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;min-width:44px;
  background:linear-gradient(180deg,color-mix(in oklab,var(--accent) 88%,#fff),var(--accent));
  transition:width .4s cubic-bezier(.22,1,.36,1)}
.slide.dragging .slide-fill{transition:none}

/* concise label, centered in the lane to the RIGHT of the thumb — never under it */
.slide-label{position:absolute;left:54px;right:18px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--ui);font-size:13.5px;font-weight:600;letter-spacing:.01em;color:var(--accent-2);
  white-space:nowrap;pointer-events:none;transition:opacity .2s}

.slide-donetx{position:absolute;left:54px;right:18px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--ui);font-size:13.5px;font-weight:600;letter-spacing:.01em;color:#fff;pointer-events:none;transition:opacity .25s ease}

/* the thumb — accent disc with a white arrow */
.slide-thumb{position:absolute;left:4px;top:4px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;z-index:2;
  background:linear-gradient(165deg,color-mix(in oklab,var(--accent) 80%,#fff),var(--accent));
  box-shadow:0 4px 12px -4px color-mix(in oklab,var(--accent) 62%,transparent),inset 0 1px 0 oklch(100% 0 0/.45);
  will-change:transform;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.slide.dragging .slide-thumb{transition:none}
.slide-thumb-ic{font-size:19px;font-weight:600;line-height:1;color:#fff}
.slide-thumb.ok{background:#fff;box-shadow:0 4px 14px -4px color-mix(in oklab,var(--accent) 55%,transparent)}
.slide-thumb.ok .slide-thumb-ic{color:var(--accent)}
.im-card-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.im-card-chip{flex:0 0 auto;font-family:var(--ui);font-size:11px;font-weight:500;letter-spacing:-.005em;color:var(--accent-2);
  background:oklch(100% 0 0/.6);border:1px solid var(--accent-line);border-radius:999px;padding:6px 12px;cursor:pointer;transition:background .15s,transform .1s}
.im-card-chip:hover{background:var(--accent-soft)}
.im-card-chip:active{transform:scale(.95)}
.im-card-foot{display:flex;align-items:center;gap:8px;margin-top:11px;padding-top:11px;border-top:1px dashed var(--rule);font-size:11.5px;color:var(--ink-3);letter-spacing:-.003em;flex-wrap:wrap}
.im-card-foot.sent{color:var(--accent-2)}
.im-card-foot .tick{width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:9px;font-weight:700;flex-shrink:0}
.im-card-foot .note{color:var(--ink-3)}
.im-card-foot.rep{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
.im-more-hint{align-self:center;margin:4px 0 2px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--ink-4);
  background:color-mix(in oklab,var(--paper-2) 80%,transparent);border:1px dashed var(--rule);border-radius:999px;padding:5px 13px}
.style-glass .im-card{backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);background-color:color-mix(in oklab,#fff 80%,transparent)}

/* ===== conversation management: swipe-to-reveal + confirm + toast ===== */
.im-swipe{position:relative;overflow:hidden;background:transparent}
.im-swipe-action{position:absolute;top:7px;right:7px;bottom:7px;width:78px;border:none;border-radius:14px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;background:#e0483a;color:#fff;
  font-family:var(--ui);font-size:13.5px;font-weight:600;letter-spacing:-.006em}
.im-swipe-action:active{background:#c93d30}
.im-swipe .im-row{position:relative;z-index:1;background:var(--screen-bg,#fff);touch-action:pan-y;transition:transform .26s cubic-bezier(.22,1,.36,1)}
.im-swipe .im-row.dragging{transition:none}
.style-glass .im-swipe{background:transparent}
.style-glass .im-swipe .im-row{background:var(--screen-bg,#fff)}

.im-mask{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 26px;
  background:oklch(20% .02 var(--n-hue)/.34);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:imFade .18s ease both}
@keyframes imFade{from{opacity:0}to{opacity:1}}

.im-confirm{width:100%;max-width:300px;border-radius:18px;overflow:hidden;background:var(--paper);padding:20px 20px 16px;
  box-shadow:0 20px 50px -14px oklch(40% .05 var(--n-hue)/.5);animation:imPop .24s cubic-bezier(.34,1.4,.64,1) both}
@keyframes imPop{from{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}
.im-confirm-t{font-family:var(--ui);font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.014em;text-align:center;line-height:1.35}
.im-confirm-b{font-size:12.5px;line-height:1.55;color:var(--ink-3);letter-spacing:-.004em;text-align:center;margin:9px 0 16px}
.im-confirm-acts{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.im-confirm-btn{height:42px;border-radius:12px;border:none;cursor:pointer;font-family:var(--ui);font-size:14px;font-weight:600;letter-spacing:-.008em}
.im-confirm-btn.cancel{background:var(--paper-2);color:var(--ink)}
.im-confirm-btn.cancel:active{opacity:.7}
.im-confirm-btn.danger{background:#e0483a;color:#fff}
.im-confirm-btn.danger:active{opacity:.85}

/* ===== 新建会话 · 暗色悬浮 composer (文本 ⇄ 语音 + 图片/拍照/文件) =====
   A temporary dark control surface that rises over the (dimmed) app. Accent
   follows the existing Tweaks 配色方案 via body[data-scheme]. Resting state is
   the visible end-state so it survives reduced-motion / paused-timeline. */
.nt-mask{position:absolute;inset:0;z-index:40;background:oklch(13% .02 264/.6);
  backdrop-filter:blur(5px) saturate(.9);-webkit-backdrop-filter:blur(5px) saturate(.9)}

.nt-dark{
  --nh:252;
  --d-surface:oklch(26% .022 var(--nh));
  --d-ink:oklch(96% .006 var(--nh));
  --d-ink-2:oklch(81% .013 var(--nh));
  --d-ink-3:oklch(65% .014 var(--nh));
  --d-ink-4:oklch(52% .014 var(--nh));
  --d-line:oklch(100% 0 0/.10);
  --d-line-2:oklch(100% 0 0/.16);
  --d-glass:linear-gradient(180deg,oklch(100% 0 0/.10),oklch(100% 0 0/.035));
  --nt-accent:oklch(66% .15 250);--nt-accent-2:oklch(82% .12 248);--nt-accent-b:oklch(70% .14 220);
  --nt-soft:color-mix(in oklab,var(--nt-accent) 22%,transparent);
}
body[data-scheme="daybreak"] .nt-dark{--nh:252;--nt-accent:oklch(66% .15 250);--nt-accent-2:oklch(82% .12 248);--nt-accent-b:oklch(70% .14 218)}
body[data-scheme="tide"]     .nt-dark{--nh:195;--nt-accent:oklch(72% .12 196);--nt-accent-2:oklch(84% .11 190);--nt-accent-b:oklch(72% .12 162)}
body[data-scheme="dusk"]     .nt-dark{--nh:290;--nt-accent:oklch(67% .15 292);--nt-accent-2:oklch(82% .12 294);--nt-accent-b:oklch(70% .15 308)}
body[data-scheme="iris"]     .nt-dark{--nh:285;--nt-accent:oklch(67% .15 286);--nt-accent-2:oklch(82% .12 286);--nt-accent-b:oklch(70% .14 244)}
body[data-scheme="grove"]    .nt-dark{--nh:158;--nt-accent:oklch(69% .13 160);--nt-accent-2:oklch(83% .12 162);--nt-accent-b:oklch(71% .12 178)}
body[data-scheme="amber"]    .nt-dark{--nh:62 ;--nt-accent:oklch(75% .13 70) ;--nt-accent-2:oklch(86% .12 78) ;--nt-accent-b:oklch(72% .14 46)}

.nt-comp{position:absolute;z-index:1;left:11px;right:11px;bottom:13px;border-radius:26px;padding:13px 13px 12px;
  background:var(--d-glass);
  backdrop-filter:blur(38px) saturate(180%);-webkit-backdrop-filter:blur(38px) saturate(180%);
  border:1px solid var(--d-line-2);
  box-shadow:inset 0 1px 0 oklch(100% 0 0/.14),0 28px 64px -22px oklch(6% .02 var(--nh)/.92),0 6px 18px -10px oklch(6% .02 var(--nh)/.7)}
.nt-comp::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,oklch(100% 0 0/.10),transparent 46%)}
.nt-comp>*{position:relative;z-index:1}
@media (prefers-reduced-motion: no-preference){.nt-comp{animation:ntRise .32s cubic-bezier(.22,1,.36,1) both}}
@keyframes ntRise{from{transform:translateY(20px)}to{transform:none}}

.nt-comp-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 11px}
.nt-comp-ttl{display:flex;align-items:center;gap:8px;white-space:nowrap;font-family:var(--ui);font-size:12.5px;font-weight:600;letter-spacing:-.006em;color:var(--d-ink-2)}
.nt-comp-ttl .embermark{color:var(--nt-accent-2);display:inline-flex}
.nt-x{width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;color:var(--d-ink-3);
  background:oklch(100% 0 0/.06);font-size:13px;transition:background .15s,color .15s}
.nt-x:hover{background:oklch(100% 0 0/.12);color:var(--d-ink)}

.nt-atts{display:flex;gap:9px;flex-wrap:wrap;margin:0 2px 11px}
.nt-att{position:relative;width:60px;height:60px;border-radius:14px;overflow:hidden;border:1px solid var(--d-line-2);
  background-color:var(--d-surface);background-image:repeating-linear-gradient(135deg,oklch(100% 0 0/.05) 0 7px,transparent 7px 14px)}
.nt-att-tag{position:absolute;left:0;right:0;bottom:0;font-family:var(--mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;
  text-align:center;padding:3px 0;color:var(--d-ink-2);background:oklch(10% .02 var(--nh)/.66)}
.nt-att-x{position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;
  color:#fff;background:oklch(10% .02 var(--nh)/.62);font-size:10px;line-height:1}
.nt-att-x:hover{background:oklch(10% .02 var(--nh)/.85)}

.nt-field{display:block;width:100%;box-sizing:border-box;min-height:30px;max-height:132px;resize:none;border:none;outline:none;background:none;
  padding:2px 4px 6px;color:var(--d-ink);font-family:var(--serif);font-weight:300;font-size:15.5px;line-height:1.55;letter-spacing:-.006em}
.nt-field::placeholder{color:var(--d-ink-4)}

.nt-bar{display:flex;align-items:center;justify-content:space-between;margin-top:6px}
.nt-tools{display:flex;align-items:center;gap:4px}
.nt-tool{width:38px;height:38px;border-radius:12px;border:none;cursor:pointer;display:grid;place-items:center;color:var(--d-ink-2);
  background:transparent;transition:background .15s,color .15s,transform .1s}
.nt-tool:hover{background:oklch(100% 0 0/.07);color:var(--d-ink)}
.nt-tool:active{transform:scale(.92)}
.nt-actions{display:flex;align-items:center;gap:8px}
.nt-mic{width:40px;height:40px;border-radius:50%;border:1px solid var(--d-line-2);cursor:pointer;display:grid;place-items:center;color:var(--nt-accent-2);
  background:var(--nt-soft);transition:transform .12s,background .15s}
.nt-mic:hover{background:color-mix(in oklab,var(--nt-accent) 30%,transparent)}
.nt-mic:active{transform:scale(.92)}
.nt-send{width:42px;height:42px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;color:oklch(18% .02 var(--nh));
  background:linear-gradient(150deg,var(--nt-accent),var(--nt-accent-b));
  box-shadow:0 8px 20px -8px color-mix(in oklab,var(--nt-accent) 80%,transparent),inset 0 1px 0 oklch(100% 0 0/.4);transition:transform .12s,opacity .15s}
.nt-send:active{transform:scale(.92)}
.nt-send.dim{opacity:.32;box-shadow:none;cursor:default}

.nt-voice{display:flex;align-items:center;gap:11px;padding:4px 2px 2px}
.nt-kb{width:42px;height:42px;flex-shrink:0;border-radius:13px;border:none;cursor:pointer;display:grid;place-items:center;color:var(--d-ink-2);
  background:oklch(100% 0 0/.07);transition:background .15s,transform .1s}
.nt-kb:hover{background:oklch(100% 0 0/.12);color:var(--d-ink)}
.nt-kb:active{transform:scale(.92)}
.nt-wavewrap{flex:1;min-width:0;height:42px;border-radius:13px;display:flex;align-items:center;gap:10px;padding:0 14px;
  background:var(--nt-soft);border:1px solid color-mix(in oklab,var(--nt-accent) 30%,transparent)}
.nt-rec{width:9px;height:9px;border-radius:50%;background:var(--nt-accent);flex-shrink:0;animation:ntRec 1.3s ease-in-out infinite}
@keyframes ntRec{0%,100%{opacity:1}50%{opacity:.3}}
.nt-wave{flex:1;min-width:0;display:flex;align-items:center;gap:2.5px;height:22px;overflow:hidden}
.nt-wave i{flex:1;min-width:2px;max-width:4px;border-radius:2px;background:var(--nt-accent-2);opacity:.92;height:30%;animation:ntWave 1s ease-in-out infinite}
@media (prefers-reduced-motion: no-preference){.nt-wave i{height:18%}}
@keyframes ntWave{0%,100%{height:18%}50%{height:96%}}
.nt-vtime{flex-shrink:0;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--nt-accent-2);letter-spacing:.02em}
.nt-vsend{width:42px;height:42px;flex-shrink:0;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;color:oklch(18% .02 var(--nh));
  background:linear-gradient(150deg,var(--nt-accent),var(--nt-accent-b));box-shadow:0 8px 20px -8px color-mix(in oklab,var(--nt-accent) 80%,transparent);transition:transform .12s}
.nt-vsend:active{transform:scale(.92)}
.nt-voice-hint{text-align:center;font-family:var(--ui);font-size:10.5px;color:var(--d-ink-3);margin-top:9px;letter-spacing:-.002em}

.im-toast{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);z-index:42;white-space:nowrap;
  font-family:var(--ui);font-size:12.5px;font-weight:500;letter-spacing:-.006em;color:#fff;
  background:oklch(28% .02 var(--n-hue)/.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-radius:999px;padding:10px 18px;box-shadow:0 8px 24px -8px oklch(0% 0 0/.4);animation:imToast .3s ease both}
@keyframes imToast{from{transform:translate(-50%,8px);opacity:0}to{transform:translate(-50%,0);opacity:1}}

/* ===== tab shell: identity header + bottom tabbar ===== */
.im-app{display:flex;flex-direction:column;height:100%;min-height:0}
.im-tabscreen{flex:1;min-height:0;display:flex;flex-direction:column}

/* bottom tabbar — flat, professional */
.im-tabbar{flex-shrink:0;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 6px 8px;position:relative;z-index:6;
  background:var(--paper);border-top:1px solid var(--rule)}
.im-tab{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;cursor:pointer;padding:5px 0 2px;font-family:var(--ui);position:relative;-webkit-tap-highlight-color:transparent}
.im-tab-ic{width:24px;height:24px;display:grid;place-items:center;color:var(--ink-3);transition:color .15s}
.im-tab-lb{font-size:10px;letter-spacing:-.01em;color:var(--ink-3);transition:color .15s}
.im-tab.on .im-tab-ic{color:var(--accent)}
.im-tab.on .im-tab-lb{color:var(--accent);font-weight:600}
.im-tab:active{opacity:.6}
/* center proactive action — raised accent button */
.im-tab-new{gap:4px;justify-content:flex-start}
.im-tab-newbtn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:linear-gradient(155deg,color-mix(in oklab,var(--accent) 84%,#fff),var(--accent));
  box-shadow:0 5px 13px -5px color-mix(in oklab,var(--accent) 64%,transparent),inset 0 1px 0 oklch(100% 0 0/.4);
  transition:transform .14s cubic-bezier(.34,1.56,.64,1)}
.im-tab-new .im-tab-lb{color:var(--accent-2);font-weight:600}
.im-tab-new:active{opacity:1}
.im-tab-new:active .im-tab-newbtn{transform:scale(.88)}
.im-tab-dot{position:absolute;top:1px;right:calc(50% - 18px);min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:#fff;
  font-family:var(--ui);font-size:10px;font-weight:600;display:grid;place-items:center;box-shadow:0 0 0 2px var(--paper)}

/* ===== 邮箱 — Gmail-like inbox for re-checking Reeve missed nothing ===== */
.mb-audit{flex-shrink:0;display:flex;align-items:center;gap:9px;margin:2px 14px 10px;padding:9px 12px;border-radius:10px;background:var(--accent-soft)}
.mb-audit-ic{width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;flex-shrink:0}
.mb-audit-tx{font-size:11.5px;line-height:1.4;color:var(--ink-2);letter-spacing:-.004em}
.mb-audit-tx b{color:var(--accent-2);font-weight:600}
.mb-seg{flex-shrink:0;display:flex;gap:7px;padding:0 14px 8px}
.mb-segbtn{font-family:var(--ui);font-size:12px;font-weight:500;letter-spacing:-.006em;color:var(--ink-3);border:none;background:var(--paper-2);border-radius:999px;padding:6px 13px;cursor:pointer}
.mb-segbtn.on{color:#fff;background:var(--accent)}
.mb-list{flex:1;min-height:0;overflow-y:auto;padding:0 0 14px;display:flex;flex-direction:column}
.mb-list::-webkit-scrollbar{width:0}
.mb-row{display:flex;gap:13px;align-items:flex-start;width:100%;text-align:left;padding:12px 16px;border:none;background:none;cursor:pointer;font-family:inherit;transition:background .12s;position:relative}
.mb-row::after{content:"";position:absolute;left:69px;right:0;bottom:0;height:1px;background:var(--rule)}
.mb-row:last-child::after{display:none}
.mb-row:hover{background:var(--paper-2)}
.mb-av{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--ui);font-size:17px;font-weight:600;color:#fff;background:var(--accent)}
.mb-av.muted{background:var(--ink-4)}
.mb-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.mb-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.mb-from{font-family:var(--ui);font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.012em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mb-row.ignored .mb-from{font-weight:500;color:var(--ink-2)}
.mb-time{font-family:var(--ui);font-size:11px;color:var(--ink-4);flex-shrink:0}
.mb-subj{font-family:var(--ui);font-size:13px;font-weight:500;color:var(--ink);letter-spacing:-.006em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mb-row.ignored .mb-subj{font-weight:400;color:var(--ink-2)}
.mb-prev{font-size:12px;color:var(--ink-3);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.004em}
.mb-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;padding-top:2px}
.mb-dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}
.mb-status{display:inline-flex;align-items:center;gap:4px;font-family:var(--ui);font-size:10px;font-weight:500;letter-spacing:-.004em;border-radius:6px;padding:3px 7px;white-space:nowrap}
.mb-status.act{color:var(--accent-2);background:var(--accent-soft)}
.mb-status.act .embermark{color:var(--accent)}
.mb-status.ignored{color:var(--ink-4);background:var(--paper-2)}

/* mail detail (raw thread, flat) */
.mb-d{flex:1;min-height:0;display:flex;flex-direction:column}
.mb-d-scroll{flex:1;min-height:0;overflow-y:auto;padding:4px 18px 18px}
.mb-d-scroll::-webkit-scrollbar{width:0}
.mb-d-subj{font-family:var(--ui);font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.018em;line-height:1.3;margin:6px 0 4px}
.mb-d-src{font-family:var(--ui);font-size:11px;color:var(--ink-4);margin-bottom:14px}
.mb-msg{border-bottom:1px solid var(--rule);padding:4px 0 14px;margin-bottom:12px}
.mb-msg:last-child{border-bottom:none}
.mb-msg-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:7px}
.mb-msg-from{font-family:var(--ui);font-size:13.5px;color:var(--ink);font-weight:400}
.mb-msg-from b{font-weight:600}
.mb-msg.mine .mb-msg-from b{color:var(--accent-2)}
.mb-msg-meta{font-size:11px;color:var(--ink-4)}
.mb-msg-date{font-family:var(--ui);font-size:11px;color:var(--ink-4);flex-shrink:0}
.mb-msg-body{font-size:13.5px;line-height:1.6;color:var(--ink-2);letter-spacing:-.004em}
.mb-msg-body mark{background:var(--accent-soft);color:var(--accent-2);padding:0 2px;border-radius:3px}
.mb-reeve{display:flex;gap:9px;align-items:flex-start;margin:2px 0 16px;padding:11px 13px;border-radius:10px;background:var(--accent-soft)}
.mb-reeve .embermark{color:var(--accent);flex-shrink:0;margin-top:1px}
.mb-reeve-tx{font-size:12px;line-height:1.55;color:var(--ink-2);letter-spacing:-.004em}
.mb-reeve-tx b{color:var(--accent-2);font-weight:600}
.mb-openchat{margin:0 16px 12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:12px;border:none;cursor:pointer;
  font-family:var(--ui);font-size:14px;font-weight:600;color:#fff;background:var(--accent)}
.mb-openchat:active{opacity:.85}

/* mail reply composer (Reeve's draft copied in here, editable) */
.mb-reply{flex-shrink:0;padding:10px 14px 12px;border-top:1px solid var(--rule);background:var(--paper)}
.mb-reply-tag{display:flex;align-items:center;gap:6px;font-family:var(--ui);font-size:11px;font-weight:500;color:var(--accent-2);margin-bottom:8px;letter-spacing:-.004em}
.mb-reply-tag .embermark{color:var(--accent);flex-shrink:0}
.mb-reply-row{display:flex;align-items:flex-end;gap:9px}
.mb-reply-input{flex:1;min-width:0;resize:none;border:1px solid var(--rule-2,var(--rule));border-radius:13px;padding:10px 13px;
  font-family:var(--serif);font-weight:300;font-size:13px;line-height:1.55;color:var(--ink);letter-spacing:-.006em;background:var(--paper-2);outline:none}
.mb-reply-input:focus{border-color:var(--accent-line);background:var(--paper)}
.mb-reply-send{flex-shrink:0;width:38px;height:38px;border-radius:999px;border:none;background:var(--accent);color:#fff;font-size:17px;font-weight:700;cursor:pointer;display:grid;place-items:center;transition:opacity .15s}
.mb-reply-send.dim{opacity:.4}
.mb-reply-tochat{margin-top:9px;display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:2px 0;
  font-family:var(--ui);font-size:11.5px;font-weight:500;color:var(--ink-3);letter-spacing:-.004em}
.mb-reply-tochat .embermark{color:var(--accent)}
.mb-reply-tochat:active{opacity:.6}

/* ===== professional mail: folders, rich rows, detail, compose ===== */
.mb-folders{flex-shrink:0;display:flex;gap:7px;padding:0 14px 8px;overflow-x:auto;scrollbar-width:none}
.mb-folders::-webkit-scrollbar{height:0}
.mb-folder{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;font-family:var(--ui);font-size:12.5px;font-weight:500;letter-spacing:-.006em;color:var(--ink-3);border:none;background:var(--paper-2);border-radius:999px;padding:7px 13px;cursor:pointer;white-space:nowrap}
.mb-folder.on{color:#fff;background:var(--accent)}
.mb-folder-n{font-family:var(--ui);font-size:10.5px;font-weight:600;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:oklch(100% 0 0/.25)}
.mb-folder:not(.on) .mb-folder-n{background:var(--rule-2,#d8dbe0);color:var(--ink-2)}
.mb-subjrow{display:flex;align-items:center;gap:6px;min-width:0}
.mb-clip{flex-shrink:0;color:var(--ink-4);display:inline-flex}
.mb-labels{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.mb-label{font-family:var(--ui);font-size:9.5px;font-weight:600;letter-spacing:.01em;color:var(--accent-2);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:5px;padding:2px 7px}
.mb-label.sm{font-size:9px;padding:1px 6px}
.mb-star{flex-shrink:0;color:var(--ink-4);cursor:pointer;display:inline-flex;padding:2px}
.mb-star.on{color:#e0a23a}
.mb-empty{text-align:center;font-family:var(--ui);font-size:12.5px;color:var(--ink-4);padding:48px 16px}

/* detail nav + sender */
.mb-d-nav{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:8px 12px 6px}
.mb-d-nav-act{display:flex;align-items:center;gap:2px}
.mb-icbtn{width:34px;height:34px;border-radius:999px;border:none;background:none;display:grid;place-items:center;color:var(--ink-3);cursor:pointer;font-size:14px}
.mb-icbtn:active{background:var(--paper-2)}
.mb-icbtn.on{color:#e0a23a}
.mb-d-labels{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.mb-d-sender{display:flex;align-items:center;gap:11px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--rule)}
.mb-d-av{width:42px;height:42px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--ui);font-size:17px;font-weight:600;color:#fff}
.mb-d-sender-tx{flex:1;min-width:0}
.mb-d-sender-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.mb-d-from{font-family:var(--ui);font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:-.014em}
.mb-d-time{font-family:var(--ui);font-size:11px;color:var(--ink-4);flex-shrink:0;font-variant-numeric:tabular-nums}
.mb-d-to{font-family:var(--ui);font-size:11.5px;color:var(--ink-3);margin-top:2px;letter-spacing:-.004em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mb-reeve{width:100%;text-align:left;border:none;font-family:inherit}
.mb-reeve.link{cursor:pointer}
.mb-reeve-go{display:inline-block;margin-top:5px;font-family:var(--ui);font-size:11px;font-weight:600;color:var(--accent-2)}

/* attachments */
.mb-atts{margin-top:16px;border-top:1px solid var(--rule);padding-top:14px}
.mb-atts-h{display:flex;align-items:center;gap:6px;font-family:var(--ui);font-size:11px;font-weight:600;color:var(--ink-3);margin-bottom:9px;letter-spacing:-.004em}
.mb-atts-row{display:flex;flex-wrap:wrap;gap:8px}
.mb-att{display:inline-flex;align-items:center;gap:7px;max-width:100%;border:1px solid var(--rule);border-radius:10px;padding:7px 11px 7px 7px;background:var(--paper)}
.mb-att .fl-ic{width:26px;height:26px;border-radius:6px;font-size:7px}
.mb-att-name{font-family:var(--ui);font-size:12px;font-weight:500;color:var(--ink);letter-spacing:-.006em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* action bar */
.mb-actionbar{flex-shrink:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 14px 12px;border-top:1px solid var(--rule);background:var(--paper)}
.mb-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:42px;border-radius:12px;border:1px solid var(--rule);background:var(--paper);cursor:pointer;
  font-family:var(--ui);font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.008em}
.mb-action:active{background:var(--paper-2)}
.mb-reply-tag.plain{color:var(--ink-3)}

/* compose FAB + sheet */
.mb-fab{position:absolute;right:16px;bottom:84px;z-index:9;width:54px;height:54px;border-radius:18px;border:none;cursor:pointer;
  display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,var(--accent),var(--accent-b));
  box-shadow:0 10px 26px -8px color-mix(in oklab,var(--accent) 70%,transparent),inset 0 1px 0 oklch(100% 0 0/.3)}
.mb-fab:active{transform:scale(.94)}
.style-glass .mb-fab{bottom:100px}
.mb-compose{position:absolute;inset:0;z-index:32;display:flex;flex-direction:column;background:var(--screen-bg,#fff);animation:kbViewIn .22s ease both}
.mb-compose-top{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:54px 6px 8px 6px;border-bottom:1px solid var(--rule)}
.mb-compose-x{width:42px;height:42px;flex-shrink:0;border:none;background:none;display:grid;place-items:center;color:var(--ink);cursor:pointer;border-radius:50%}
.mb-compose-x:active{background:var(--paper-2)}
.mb-compose-actions{display:flex;align-items:center;gap:2px}
.mb-compose-ic{width:42px;height:42px;border:none;background:none;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;border-radius:50%}
.mb-compose-ic:active{background:var(--paper-2)}
.mb-compose-send{width:42px;height:42px;border:none;background:none;display:grid;place-items:center;color:var(--accent);cursor:pointer;border-radius:50%}
.mb-compose-send:active{background:var(--accent-soft)}
.mb-compose-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:0 0 34px}
.mb-cfield{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--rule)}
.mb-cf-k{flex-shrink:0;font-family:var(--ui);font-size:13.5px;font-weight:400;color:var(--ink-3);width:44px;letter-spacing:-.006em}
.mb-cf-from{flex:1;min-width:0;font-family:var(--ui);font-size:14px;color:var(--ink-2);letter-spacing:-.006em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mb-cf-cc{flex-shrink:0;font-size:15px;color:var(--ink-4);line-height:1;padding:0 4px}
.mb-cf-in{flex:1;min-width:0;border:none;outline:none;background:none;font-family:var(--ui);font-size:14px;color:var(--ink);letter-spacing:-.006em}
.mb-cf-body{width:100%;flex:1;min-height:200px;border:none;outline:none;resize:none;padding:16px 18px;font-family:var(--ui);font-weight:400;font-size:14.5px;line-height:1.6;color:var(--ink);background:none;letter-spacing:-.004em}

/* ===== 文档库 — document library Reeve references ===== */
/* ===== 文档库 — structured knowledge base ===== */
.kb-scroll{flex:1;min-height:0;overflow-y:auto;padding:2px 16px 16px}
.kb-scroll::-webkit-scrollbar{width:0}
.fl-ic{width:34px;height:34px;border-radius:8px;flex-shrink:0;display:grid;place-items:center;font-family:var(--ui);font-size:8.5px;font-weight:700;letter-spacing:.02em;color:#fff}
.fl-ic.ext-pdf{background:#d9544e}
.fl-ic.ext-doc{background:#2f6fd0}
.fl-ic.ext-img{background:#2f9e6f}
.fl-ic.ext-note{background:var(--ink-3)}

/* internal nav header */
.kb-top{flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;padding:10px 14px 8px;min-height:30px}
.kb-back{position:absolute;left:12px;display:flex;align-items:center;gap:1px;background:none;border:none;cursor:pointer;padding:4px 6px 4px 2px;
  font-family:var(--ui);font-size:14px;font-weight:500;color:var(--accent);letter-spacing:-.01em;-webkit-tap-highlight-color:transparent}
.kb-back:active{opacity:.6}
.kb-chev-l{font-size:21px;line-height:1;font-weight:400;margin-right:1px}
.kb-top-t{font-family:var(--ui);font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.014em}

/* level-1 category cards */
.kb-cats{display:flex;flex-direction:column;gap:11px;padding-top:2px}
.kb-cat{display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:15px 15px;border-radius:18px;border:1px solid var(--rule);
  background:var(--paper);cursor:pointer;font-family:inherit;transition:border-color .15s,transform .12s,box-shadow .15s;-webkit-tap-highlight-color:transparent}
.kb-cat:hover{border-color:var(--accent-line);box-shadow:0 6px 20px -14px color-mix(in oklab,var(--accent) 60%,transparent)}
.kb-cat:active{transform:scale(.99)}
.kb-cat-ic{width:46px;height:46px;border-radius:14px;flex-shrink:0;display:grid;place-items:center;color:var(--accent-2);
  background:var(--accent-soft);border:1px solid var(--accent-line)}
.kb-cat-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.kb-cat-t{font-family:var(--ui);font-size:16.5px;font-weight:700;color:var(--ink);letter-spacing:-.018em}
.kb-cat-sub{font-size:12px;line-height:1.4;color:var(--ink-3);letter-spacing:-.005em}
.kb-cat-meta{flex-shrink:0;display:flex;align-items:center;gap:4px;font-family:var(--ui);font-size:11.5px;color:var(--ink-4);align-self:flex-start;padding-top:3px;white-space:nowrap}
.kb-cat-meta b{font-weight:600;color:var(--ink-3)}
.kb-chev{font-size:18px;line-height:1;color:var(--ink-4);font-weight:300}

/* level-2 lists */
.kb-list{display:flex;flex-direction:column;gap:10px;padding-top:2px}
.kb-client{display:flex;gap:13px;align-items:flex-start;width:100%;text-align:left;padding:14px;border-radius:16px;border:1px solid var(--rule);
  background:var(--paper);cursor:pointer;font-family:inherit;transition:border-color .15s,transform .12s;-webkit-tap-highlight-color:transparent}
.kb-client:hover{border-color:var(--accent-line)}
.kb-client:active{transform:scale(.99)}
.kb-c-av{width:46px;height:46px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--ui);font-size:18px;font-weight:600;color:#fff}
.kb-c-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.kb-c-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kb-c-name{font-family:var(--ui);font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.016em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-c-read{font-size:12.5px;line-height:1.5;color:var(--ink-3);letter-spacing:-.005em;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.kb-status{flex-shrink:0;font-family:var(--ui);font-size:10px;font-weight:600;letter-spacing:-.002em;border-radius:6px;padding:3px 8px;white-space:nowrap}
.kb-status.act{color:var(--accent-2);background:var(--accent-soft)}
.kb-status.warn{color:oklch(52% .15 35);background:oklch(94% .04 40)}
.kb-status.ok{color:var(--ink-3);background:var(--paper-2)}

.kb-doc-card{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;padding:13px 14px;border-radius:16px;border:1px solid var(--rule);
  background:var(--paper);cursor:pointer;font-family:inherit;transition:border-color .15s,transform .12s;-webkit-tap-highlight-color:transparent}
.kb-doc-card:hover{border-color:var(--accent-line)}
.kb-doc-card:active{transform:scale(.99)}
.kb-dc-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.kb-dc-top{display:flex;align-items:center;gap:8px}
.kb-dc-name{font-family:var(--ui);font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.012em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-dc-kind{flex-shrink:0;font-family:var(--ui);font-size:9.5px;font-weight:600;letter-spacing:.02em;color:var(--ink-4);background:var(--paper-2);border:1px solid var(--rule);border-radius:5px;padding:2px 6px}
.kb-dc-sum{font-size:12px;line-height:1.5;color:var(--ink-3);letter-spacing:-.005em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* dossier / doc detail */
.kb-dossier-head{display:flex;align-items:center;gap:13px;padding:4px 2px 16px}
.kb-d-av{width:54px;height:54px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--ui);font-size:21px;font-weight:600;color:#fff}
.kb-d-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.kb-d-name{font-family:var(--ui);font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.022em}
.kb-d-kind{font-size:12px;color:var(--ink-3);letter-spacing:-.004em}

.kb-doc-head{display:flex;align-items:center;gap:13px;padding:4px 2px 16px}
.kb-doc-head .fl-ic{width:48px;height:48px;border-radius:12px;font-size:11px}
.kb-doc-hid{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.kb-doc-name{font-family:var(--ui);font-size:17px;font-weight:700;color:var(--ink);letter-spacing:-.016em;line-height:1.25}
.kb-doc-kind{font-family:var(--ui);font-size:11px;color:var(--ink-4);letter-spacing:.01em}

/* the AI "read" / summary insight card */
.kb-insight{position:relative;border-radius:15px;padding:13px 14px;margin-bottom:18px;overflow:hidden;
  background:linear-gradient(150deg,color-mix(in oklab,var(--accent-soft) 70%,#fff),color-mix(in oklab,var(--accent-b-soft) 36%,#fff));
  border:1px solid var(--accent-line)}
.kb-insight-h{display:inline-flex;align-items:center;gap:6px;font-family:var(--ui);font-size:11px;font-weight:700;letter-spacing:-.004em;color:var(--accent-2);margin-bottom:7px}
.kb-insight-h .embermark{color:var(--accent)}
.kb-insight-tx{margin:0;font-family:var(--serif);font-weight:300;font-size:13.5px;line-height:1.62;color:var(--ink);letter-spacing:-.006em}

.kb-sec-h{font-family:var(--ui);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);margin:0 2px 9px}

/* follow-up mini timeline */
.kb-timeline{position:relative;padding-left:6px;margin-bottom:20px}
.kb-tl-item{position:relative;display:flex;gap:13px;padding:0 0 14px 16px}
.kb-tl-item:last-child{padding-bottom:0}
.kb-tl-item::before{content:"";position:absolute;left:3px;top:13px;bottom:-1px;width:1.5px;background:var(--rule)}
.kb-tl-item:last-child::before{display:none}
.kb-tl-dot{position:absolute;left:0;top:4px;width:8px;height:8px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink-4)}
.kb-tl-item.done .kb-tl-dot{background:var(--accent);border-color:var(--accent)}
.kb-tl-item.done::before{background:var(--accent-line)}
.kb-tl-item.now .kb-tl-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.kb-tl-item.now .kb-tl-dot::after{content:"";position:absolute;inset:-1.5px;border-radius:50%;border:1.5px solid var(--accent);animation:thinkRing 1.9s ease-out infinite}
.kb-tl-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;margin-top:-2px}
.kb-tl-t{font-family:var(--ui);font-size:13px;color:var(--ink-2);letter-spacing:-.006em;line-height:1.4}
.kb-tl-item.now .kb-tl-t{color:var(--ink);font-weight:600}
.kb-tl-item:not(.done):not(.now) .kb-tl-t{color:var(--ink-3)}
.kb-tl-d{font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:var(--ink-4)}

/* key facts grid */
.kb-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}
.kb-fact{border:1px solid var(--rule);border-radius:12px;padding:10px 12px;background:var(--paper);display:flex;flex-direction:column;gap:3px}
.kb-fact-k{font-family:var(--ui);font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4)}
.kb-fact-v{font-family:var(--ui);font-size:13px;font-weight:500;color:var(--ink);letter-spacing:-.008em;line-height:1.35}

/* related docs rows */
.kb-doclist{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:var(--paper);margin-bottom:4px}
.kb-docrow{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:11px 12px;border:none;border-bottom:1px solid var(--rule);background:none;cursor:pointer;font-family:inherit}
.kb-docrow:last-child{border-bottom:none}
.kb-docrow:hover{background:var(--paper-2)}
.kb-docrow-name{flex:1;min-width:0;font-family:var(--ui);font-size:13.5px;font-weight:500;color:var(--ink);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-docrow.static{cursor:default}
.kb-docrow.static:hover{background:none}
.kb-docrow-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kb-docrow-tx .kb-docrow-name{flex:none}
.kb-docrow-meta{font-family:var(--ui);font-size:10.5px;color:var(--ink-4);letter-spacing:-.003em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.kb-used{display:inline-flex;align-items:center;gap:7px;font-family:var(--ui);font-size:12.5px;font-weight:500;color:var(--accent-2);
  background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:10px;padding:9px 13px;letter-spacing:-.005em}
.kb-used .embermark{color:var(--accent);flex-shrink:0}

.style-glass .kb-insight{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

/* ===== knowledge-base: doc list rows, manage toggle, content ===== */
.kb-doclist.big{gap:0}
.kb-docrow.lg{align-items:flex-start;gap:12px;padding:13px 12px}
.kb-docrow.lg .fl-ic{margin-top:1px}
.kb-docrow-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.kb-docrow.lg .kb-docrow-name{font-size:14.5px;font-weight:600;white-space:normal}
.kb-docrow-meta{font-family:var(--ui);font-size:11px;color:var(--ink-4);letter-spacing:-.003em;line-height:1.35}
.kb-docrow-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.kb-retr{display:inline-flex;align-items:center;gap:4px;font-family:var(--ui);font-size:10px;font-weight:600;letter-spacing:-.002em;border-radius:6px;padding:3px 7px;white-space:nowrap}
.kb-retr.on{color:var(--accent-2);background:var(--accent-soft)}
.kb-retr.on .embermark{color:var(--accent)}
.kb-retr.off{color:var(--ink-4);background:var(--paper-2);border:1px solid var(--rule)}
.kb-docrow.lg .kb-chev{align-self:center}

/* manage (user-controlled retrieve switch) */
.kb-manage{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--rule);background:var(--paper);margin-bottom:10px}
.kb-manage-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.kb-manage-t{display:inline-flex;align-items:center;gap:6px;font-family:var(--ui);font-size:13.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.kb-manage-t .embermark{color:var(--accent)}
.kb-manage-sub{font-size:11px;color:var(--ink-3);letter-spacing:-.004em}
.kb-sw{flex-shrink:0;width:46px;height:28px;border-radius:999px;border:none;background:var(--rule-2,#d8dbe0);cursor:pointer;position:relative;padding:0;transition:background .2s}
.kb-sw.on{background:var(--accent)}
.kb-sw-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px oklch(40% .05 var(--n-hue)/.35);transition:transform .2s cubic-bezier(.34,1.4,.64,1)}
.kb-sw.on .kb-sw-knob{transform:translateX(18px)}
.kb-retr-log{display:flex;align-items:center;gap:7px;font-family:var(--ui);font-size:11.5px;color:var(--ink-3);letter-spacing:-.004em;padding:0 4px 16px}
.kb-retr-log .embermark{color:var(--accent);flex-shrink:0}

/* document content */
.kb-doc-body{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:var(--paper);margin-bottom:4px}
.kb-docsec{padding:12px 14px;border-bottom:1px solid var(--rule)}
.kb-docsec:last-child{border-bottom:none}
.kb-docsec-h{display:block;font-family:var(--ui);font-size:12.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em;margin-bottom:4px}
.kb-docsec-b{margin:0;font-family:var(--serif);font-weight:300;font-size:13px;line-height:1.6;color:var(--ink-2);letter-spacing:-.006em}

/* glossary */
.kb-gloss{display:flex;flex-direction:column;gap:10px;margin-bottom:4px}
.kb-gloss-item{border:1px solid var(--rule);border-radius:12px;padding:11px 13px;background:var(--paper)}
.kb-gloss-t{display:block;font-family:var(--ui);font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.01em;margin-bottom:4px}
.kb-gloss-d{font-family:var(--serif);font-weight:300;font-size:12.5px;line-height:1.55;color:var(--ink-2);letter-spacing:-.005em}

/* ===== PDF / image preview ===== */
.kb-pdf-thumb{position:relative;display:block;width:100%;padding:0;border:1px solid var(--rule);border-radius:14px;overflow:hidden;cursor:pointer;
  background:var(--paper-2);max-height:300px;-webkit-tap-highlight-color:transparent;margin-bottom:4px}
.kb-pdf-thumb:active{transform:scale(.995)}
.kb-pdf-fade{position:absolute;left:0;right:0;bottom:0;height:88px;background:linear-gradient(180deg,transparent,color-mix(in oklab,var(--paper-2) 92%,transparent));pointer-events:none}
.kb-pdf-open{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ui);font-size:11.5px;font-weight:600;letter-spacing:-.006em;color:#fff;background:var(--accent);border-radius:999px;padding:7px 14px;box-shadow:0 4px 12px -4px color-mix(in oklab,var(--accent) 70%,transparent)}

/* the rendered page (paper) */
.kb-pdf-page{background:#fff;color:#1a1d24;padding:22px 22px 16px;text-align:left;
  box-shadow:inset 0 0 0 1px oklch(0% 0 0/.04)}
.kb-pdf-band{display:inline-flex;align-items:center;gap:7px;font-family:var(--ui);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);margin-bottom:14px}
.kb-pdf-dot{width:18px;height:18px;border-radius:5px;background:linear-gradient(150deg,var(--accent),var(--accent-b));flex-shrink:0}
.kb-pdf-title{font-family:var(--serif);font-size:19px;font-weight:400;color:#14171d;letter-spacing:-.01em;line-height:1.25}
.kb-pdf-sub{font-family:var(--mono);font-size:9.5px;color:#8a909c;margin-top:6px;letter-spacing:.02em}
.kb-pdf-rule{height:1px;background:#e7e9ee;margin:14px 0 4px}
.kb-pdf-sec{margin-top:13px}
.kb-pdf-h{font-family:var(--ui);font-size:11px;font-weight:700;color:#14171d;letter-spacing:.02em;text-transform:uppercase;margin-bottom:5px}
.kb-pdf-b{font-family:var(--serif);font-weight:300;font-size:13px;line-height:1.65;color:#3a3f4a;letter-spacing:-.004em}
.kb-pdf-foot{margin-top:20px;padding-top:10px;border-top:1px solid #eceef2;font-family:var(--mono);font-size:8.5px;color:#aab0bb;letter-spacing:.04em}

/* image preview placeholder */
.kb-imgprev{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding:30px 16px;border:1px dashed var(--rule-2,var(--rule));border-radius:14px;
  background:var(--paper-2);cursor:pointer;margin-bottom:4px;-webkit-tap-highlight-color:transparent}
.kb-imgprev:active{transform:scale(.995)}
.kb-imgprev-ic{color:var(--ink-3)}
.kb-imgprev-tx{font-family:var(--ui);font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.kb-imgprev-sub{font-family:var(--ui);font-size:11px;color:var(--ink-4)}

/* fullscreen viewer (within phone screen) */
.kb-viewer{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;background:oklch(28% .02 var(--n-hue));animation:kbViewIn .22s ease both}
@keyframes kbViewIn{from{opacity:0}to{opacity:1}}
.kb-viewer-top{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:12px 14px;color:#fff;
  background:oklch(24% .02 var(--n-hue));border-bottom:1px solid oklch(100% 0 0/.1)}
.kb-viewer-name{flex:1;min-width:0;font-family:var(--ui);font-size:13.5px;font-weight:600;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-viewer-x{flex-shrink:0;width:30px;height:30px;border-radius:999px;border:none;background:oklch(100% 0 0/.14);color:#fff;font-size:14px;cursor:pointer;display:grid;place-items:center}
.kb-viewer-scroll{flex:1;min-height:0;overflow-y:auto;padding:16px}
.kb-viewer-scroll::-webkit-scrollbar{width:0}
.kb-viewer-scroll .kb-pdf-page{border-radius:6px;box-shadow:0 12px 40px -12px oklch(0% 0 0/.5)}
.kb-viewer-img{background:#fff;border-radius:6px;padding:54px 22px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 12px 40px -12px oklch(0% 0 0/.5)}
.kb-viewer-img .kb-imgprev-ic{color:#aab0bb}
.kb-viewer-img .kb-imgprev-sub{color:#8a909c}

/* ============================================================
   Liquid Glass — refined CONTROL layer for the IM surface.
   Glass only on chrome (header, search, tabbar, conversation nav,
   composer, approve); content rows/cards stay solid & flat.
   ============================================================ */

/* floating frosted identity / title bar */
.style-glass .im-id{margin:4px 11px 8px;padding:7px 9px 7px 14px;border-radius:21px;position:relative;overflow:hidden;
  background:linear-gradient(180deg,oklch(100% 0 0/.6),oklch(100% 0 0/.3));
  backdrop-filter:blur(30px) saturate(200%);-webkit-backdrop-filter:blur(30px) saturate(200%);
  border:1px solid oklch(100% 0 0/.7);
  box-shadow:inset 0 1.5px 0 oklch(100% 0 0/.95),inset 0 -8px 14px oklch(100% 0 0/.16),0 8px 22px -12px oklch(40% .05 var(--n-hue)/.4)}
.style-glass .im-id.flat{margin:8px 11px 8px}
.style-glass .im-id::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(125deg,oklch(100% 0 0/.5),transparent 46%)}
.style-glass .im-id-name,.style-glass .im-id-btn,.style-glass .im-id-act{position:relative;z-index:1}
.style-glass .im-id-act{background:oklch(100% 0 0/.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 oklch(100% 0 0/.7)}

/* frosted search field */
.style-glass .im-search{background:linear-gradient(180deg,oklch(100% 0 0/.52),oklch(100% 0 0/.26));
  backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);
  border:1px solid oklch(100% 0 0/.6);box-shadow:inset 0 1px 0 oklch(100% 0 0/.8),0 4px 14px -9px oklch(40% .05 var(--n-hue)/.34)}

/* floating frosted tabbar (iOS-style) — a delicate lifted pill, content scrolls beneath */
.style-glass .im-tabbar{position:absolute;left:14px;right:14px;bottom:16px;z-index:8;border:none;
  display:grid;grid-template-columns:repeat(5,1fr);padding:7px 8px 6px;border-radius:27px;overflow:visible;
  background:linear-gradient(180deg,oklch(100% 0 0/.58),oklch(100% 0 0/.34));
  backdrop-filter:blur(40px) saturate(190%);-webkit-backdrop-filter:blur(40px) saturate(190%);
  border:1px solid oklch(100% 0 0/.62);
  box-shadow:inset 0 1.5px 0 oklch(100% 0 0/.9),inset 0 -10px 18px oklch(100% 0 0/.14),0 18px 40px -14px oklch(40% .05 var(--n-hue)/.44),0 4px 12px -4px oklch(40% .05 var(--n-hue)/.22)}
.style-glass .im-tabbar::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(125deg,oklch(100% 0 0/.45),transparent 44%)}
.style-glass .im-tab{position:relative;z-index:1}
.style-glass .im-tab.on:not(.im-tab-new)::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:48px;height:28px;border-radius:11px;z-index:-1;
  background:color-mix(in oklab,var(--accent) 13%,transparent)}
.style-glass .im-tab-newbtn{box-shadow:0 6px 15px -5px color-mix(in oklab,var(--accent) 70%,transparent),inset 0 1px 0 oklch(100% 0 0/.45)}

/* the floating tabbar overlays content → give scroll regions clearance */
.style-glass .im-list.has-tabbar{padding-bottom:92px}
.style-glass .mb-list{padding-bottom:92px}
.style-glass .kb-scroll{padding-bottom:92px}
.style-glass .im-app .im-tabscreen .screen-pad{padding-bottom:96px}
.style-glass .mb-reply{padding-bottom:84px}

/* frosted conversation nav bar */
.style-glass .im-cnav{margin:4px 11px 6px;padding:7px 10px 7px 8px;border-radius:21px;position:relative;overflow:hidden;
  background:linear-gradient(180deg,oklch(100% 0 0/.58),oklch(100% 0 0/.3));
  backdrop-filter:blur(28px) saturate(195%);-webkit-backdrop-filter:blur(28px) saturate(195%);
  border:1px solid oklch(100% 0 0/.68);
  box-shadow:inset 0 1.5px 0 oklch(100% 0 0/.94),0 7px 20px -12px oklch(40% .05 var(--n-hue)/.38)}
.style-glass .im-cnav::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(125deg,oklch(100% 0 0/.46),transparent 48%)}
.style-glass .im-cnav>*{position:relative;z-index:1}
.style-glass .im-back,.style-glass .im-cnav-info{background:oklch(100% 0 0/.55);box-shadow:inset 0 1px 0 oklch(100% 0 0/.7)}

/* composer already frosted in flow — strengthen highlight */
.im-composer{box-shadow:inset 0 1.5px 0 oklch(100% 0 0/.92),0 12px 30px -14px oklch(40% .05 var(--n-hue)/.46)!important}

/* approve / hold gets the specular sheen via the existing .style-glass .hold::after */

/* ===== typography polish ===== */
.mb-time,.mb-msg-date,.mb-d-src,.im-c-inc-h .tm{font-variant-numeric:tabular-nums}
.mb-from{letter-spacing:-.016em}
.mb-subj{letter-spacing:-.01em}
.mb-prev{letter-spacing:-.008em}
.mb-audit-tx{letter-spacing:-.006em}
.im-cnav-name{letter-spacing:-.018em}
.im-id.flat .im-id-name{font-size:19px;letter-spacing:-.024em}
.im-search-ph{letter-spacing:-.008em}

/* ============================================================
   深色模式 · 仅作用于 hero 交互机 (.dark-im 由 Tweaks「深色模式」切换)
   只覆写 token + 玻璃控件层；内容卡片靠语义 token 自动变暗。
   accent 仍来自 data-scheme，accent-2/soft/line 在暗色上重新派生。
   ============================================================ */
.dark-im .im-hero-phone .style-glass{
  --screen-bg:oklch(19% .022 var(--n-hue));--screen-ink:var(--ink);
  --paper:oklch(24.5% .024 var(--n-hue));
  --paper-2:oklch(29% .026 var(--n-hue));
  --paper-3:oklch(34% .028 var(--n-hue));
  --rule:oklch(100% 0 0/.10);--rule-2:oklch(100% 0 0/.17);
  --ink:oklch(95% .012 var(--n-hue));--ink-2:oklch(80% .016 var(--n-hue));
  --ink-3:oklch(65% .016 var(--n-hue));--ink-4:oklch(51% .016 var(--n-hue));
  --accent-2:color-mix(in oklab,var(--accent) 48%,white);
  --accent-soft:color-mix(in oklab,var(--accent) 22%,transparent);
  --accent-line:color-mix(in oklab,var(--accent) 36%,transparent);
  --accent-b-soft:color-mix(in oklab,var(--accent-b) 22%,transparent);
  --dglass:linear-gradient(180deg,oklch(100% 0 0/.10),oklch(100% 0 0/.035));
  --dglass-brd:oklch(100% 0 0/.14);
}
/* dark wallpaper + richer breathing mesh */
.dark-im .im-hero-phone .phone-screen{
  background:linear-gradient(168deg,oklch(22% .03 var(--n-hue)) 0%,oklch(17% .028 calc(var(--n-hue) - 22)) 55%,oklch(20% .032 calc(var(--n-hue) + 30)) 100%)}
.dark-im .im-hero-phone .screen-mesh{opacity:.5}
/* frosted DARK glass chrome */
.dark-im .im-hero-phone .im-id,
.dark-im .im-hero-phone .im-search,
.dark-im .im-hero-phone .im-tabbar,
.dark-im .im-hero-phone .im-cnav,
.dark-im .im-hero-phone .im-composer,
.dark-im .im-hero-phone .slide{
  background:var(--dglass);border:1px solid var(--dglass-brd);
  box-shadow:inset 0 1px 0 oklch(100% 0 0/.12),0 14px 34px -18px oklch(6% .02 var(--n-hue)/.85)}
.dark-im .im-hero-phone .im-id-act,
.dark-im .im-hero-phone .im-back,
.dark-im .im-hero-phone .im-cnav-info{background:oklch(100% 0 0/.09);box-shadow:inset 0 1px 0 oklch(100% 0 0/.14)}
.dark-im .im-hero-phone .im-chip{background:oklch(100% 0 0/.07);border-color:var(--accent-line)}
.dark-im .im-hero-phone .style-glass .im-card{background-color:color-mix(in oklab,var(--paper) 88%,transparent)}
.dark-im .im-hero-phone .im-c-inc{background:color-mix(in oklab,var(--accent-b) 15%,var(--paper))}
/* keep the glossy approve thumb light; tint its rim to the dark glass */
.dark-im .im-hero-phone .slide-thumb{border-color:oklch(100% 0 0/.7)}
/* the new-thread composer already dark — soften its scrim over a dark app */
.dark-im .nt-mask{background:oklch(7% .02 264/.46)}
/* conversation detail panel + inner glass blocks go dark too */
.dark-im .im-hero-phone .push-over{background:linear-gradient(168deg,oklch(22% .03 var(--n-hue)) 0%,oklch(17% .028 calc(var(--n-hue) - 22)) 55%,oklch(20% .032 calc(var(--n-hue) + 30)) 100%)}
.dark-im .im-hero-phone .im-card-draft{background:oklch(100% 0 0/.05);border-color:var(--rule)}
.dark-im .im-hero-phone .im-card-chip{background:oklch(100% 0 0/.07)}
/* the liquid-glass white wash on bubbles/rows/drafts must go dark too */
.dark-im .im-hero-phone .style-glass .im-msg.reeve .im-bubble,
.dark-im .im-hero-phone .style-glass .im-email-card,
.dark-im .im-hero-phone .style-glass .im-draft{background:color-mix(in oklab,var(--paper) 82%,transparent)}
.dark-im .im-hero-phone .style-glass .im-row.act{background:color-mix(in oklab,var(--accent) 15%,var(--paper))}
