/* =============================================================
   界面版式 v2 —— 聊天页（Carnet 白色法式 · 依 Design/Soren 首页.dc.html）
   作用域全在 [data-style="v2"] 下，未激活零影响。配套 v2/chat.js。
   两种消息形态：html[data-v2-mode] = "bulles"(气泡，默认) / "lettre"(手札书笺卡)。
   顶栏 / 底部输入区 / 思考链展开弹窗 维持 v2 既有设计，不随图纸走。
   ============================================================= */

/* 英文 Noto Serif 斜体；Outfit 细体（300/400）给 placeholder 用；
   法文点缀用 chat.html 已载入的 Cormorant Garamond（非花体）。 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@1,400;1,500&family=Outfit:wght@300;400;500&display=swap');

/* ---------- Carnet 调色板（!important 盖过 skin/theme，统一外观）---------- */
:root[data-style="v2"]{
  --bg:#FAF8F4 !important;               /* 暖纸（Neve 调定 2026-08-14）*/
  --overlay:rgba(250,248,244,0.55) !important;
  --band:rgba(250,248,244,0.42) !important;
  --text:#3A332D !important;             /* 正文墨 */
  --text-mid:#8B8178 !important;
  --text-dim:#A39A90 !important;
  --accent:#9E4352 !important;           /* 干玫瑰 */
  --hdr-name:rgba(42,35,32,0.92) !important;
  --bbl-n-bg:#2A2320 !important;         /* 我的气泡：墨 */
  --bbl-n-border:transparent !important;
  --bbl-n-text:#F6F1EA !important;
  --bbl-n-ink:#F6F1EA !important;
  --think-text:#8B8178 !important;
  --think-bg:rgba(120,100,80,0.06) !important;
  --think-border:rgba(120,100,80,0.12) !important;
  --input-text:#2B2B29 !important;
  --chip-bg:rgba(255,255,255,0.82) !important;
  --chip-border:rgba(60,50,40,0.12) !important;
  --chip-text:#4A4438 !important;
  --card-bg:#FBFAF7 !important;
  --card-border:rgba(42,35,32,0.10) !important;
  --field-bg:rgba(255,255,255,0.6) !important;
  --field-border:rgba(60,50,40,0.12) !important;
  --section-text:#A39A90 !important;
  --bbl-shadow:0 6px 18px rgba(42,35,32,0.05) !important;
  --pblur:22px !important;
  /* logs 页同款数字字体（时间戳/词元/调色输入用） */
  --v2-mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;
  /* 思考链弹窗配字：v2 卡面固定浅色，字色也钉死，免得深色主题串进来白字白底 */
  --tm-text:#3a423b !important;
  --tm-title:#37413a !important;
  --tm-grip:rgba(0,0,0,0.16) !important;
  --tm-border:rgba(0,0,0,0.07) !important;
}

/* ---------- 与经典脱钩的兜底：壁纸/玻璃层不进 v2，body 底色钉在暖纸 ---------- */
:root[data-style="v2"] .wallpaper,
:root[data-style="v2"] .glass{display:none!important}
:root[data-style="v2"] body{background:var(--bg)!important}

/* ---------- 去头像 ---------- */
/* 可在临时面板实时调的边距 + 牛皮色（默认值；面板用内联 important 覆盖）*/
:root[data-style="v2"]{--v2-card-bg:#FFFFFE;--v2-input-bg:#FFFFFE;--v2-g1:8px;--v2-g2:16px;--v2-g3:16px;--v2-g4:6px;--v2-g5:36px;--v2-g6:17px;--v2-g7:8px;--v2-g8:18px;--v2-strip-color:#e2ddca}
[data-style="v2"] .hdr-avatar{display:none!important}

/* ---------- 气泡/手札 切换器（图纸的居中药丸，悬在顶栏下）---------- */
[data-style="v2"] .v2-modeswitch{
  position:fixed;left:50%;transform:translateX(-50%);top:calc(56px + env(safe-area-inset-top));z-index:5;
  display:flex;background:#FFFFFF;border:1px solid rgba(42,35,32,0.08);border-radius:999px;padding:3px;
  box-shadow:0 2px 8px rgba(42,35,32,0.04)}
[data-style="v2"] .v2-modeswitch button{
  border:none;background:transparent;color:#8B8178;font-size:12px;font-weight:600;padding:6px 15px;border-radius:999px;
  cursor:pointer;display:inline-flex;align-items:baseline;gap:6px;-webkit-tap-highlight-color:transparent;
  font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;transition:background .25s,color .25s}
[data-style="v2"] .v2-modeswitch button .fr{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:12.5px}
[data-style="v2"] .v2-modeswitch button.on{background:#2A2320;color:#FCFBF9}

/* ---------- 消息区公共（两种模式共享）---------- */
/* 顶部给切换器让位；左右收窄；!important 盖过经典的 .msgs 内边距 */
[data-style="v2"] .msgs{padding:calc(108px + env(safe-area-inset-top)) 20px calc(135px + env(safe-area-inset-bottom))!important;gap:12px!important}
/* 脚部长高（多行输入/附件条）补进底垫：--ftr-grow 由 chat.html 键盘 IIFE 维护 */
[data-style="v2"] .msgs{padding-bottom:calc(135px + env(safe-area-inset-bottom) + var(--ftr-grow,0px))!important}
[data-style="v2"][data-v2-mode="lettre"] .msgs{gap:22px!important}
/* 气泡↔手札切换：轻淡入淡出遮住重排（原地变换，由 v2/chat.js 驱动）*/
[data-style="v2"] .msgs{transition:opacity 0.16s ease}
[data-style="v2"] .msgs.v2-fading{opacity:0}

/* 日期分隔：细线 · MERCREDI · 02 JUILLET · 细线（文字由 v2/chat.js 转法文）*/
[data-style="v2"] .date-sep{
  display:flex;align-items:center;justify-content:center;gap:10px;
  font-family:'Outfit','Noto Sans SC',sans-serif;font-size:9.5px;font-weight:500;letter-spacing:0.2em;
  color:#A39A90;padding:14px 0 4px}
[data-style="v2"] .date-sep::before,
[data-style="v2"] .date-sep::after{content:'';width:36px;height:1px;background:rgba(42,35,32,0.14);flex-shrink:0}

/* 我（user）：墨色信笺气泡（图纸 2a），两种模式同款 */
/* 我的气泡间距：以气泡沿计——行内气泡下方还挂着 17px 的已读/时间行。
   Neve 定调：下方比上方宽 10px → 下边距抵扣 17-10=7px 再生效 */
/* 气泡圆角：四角同值，分条接缝也用同一个数——改这一处即可 */
[data-style="v2"]{--v2-bbl-r:20px}
/* 多行的角收 2px（.bbl-multi 由 chat.html 的 markMultiline 按高度打标） */
[data-style="v2"] .bbl.bbl-multi{--v2-bbl-r:18px}
[data-style="v2"] .row.n{max-width:78%;margin-right:0!important;
  margin-top:var(--bbl-gap-n,0px);margin-bottom:max(0px,calc(var(--bbl-gap-n,0px) - 7px))}
[data-style="v2"] .row.n .bbl.n{
  border-radius:var(--v2-bbl-r)!important;line-height:1.5;
  padding:var(--bbl-pad-y,12px) var(--bbl-pad-x,16px);
  background:var(--v2-userbbl,#2A2320)!important;border:none!important;color:#F6F1EA!important;
  box-shadow:0 6px 16px rgba(42,35,32,0.14)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
[data-style="v2"] .row.n .bbl.n::after{display:none!important}
/* 我发的图片/文件：卸掉墨色药丸壳，图片/文件裸露独立成块；文字(若有)自己缩回小气泡。
   纯 CSS :has() 卸壳，不动 DOM——发送后 img swap / 手札克隆 / 长按编辑全不受影响。 */
[data-style="v2"] .row.n .bbl.n:has(> img.bbl-img),
[data-style="v2"] .row.n .bbl.n:has(> .doc-chip){
  background:transparent!important;border:none!important;box-shadow:none!important;
  padding:0!important;border-radius:0!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  display:flex!important;flex-direction:column;align-items:flex-end;gap:7px}
[data-style="v2"] .row.n .bbl.n:has(> img.bbl-img) > img.bbl-img{max-width:100%;margin:0;border-radius:16px}
[data-style="v2"] .row.n .bbl.n:has(> img.bbl-img) > div[data-text],
[data-style="v2"] .row.n .bbl.n:has(> .doc-chip) > div[data-text]{
  background:var(--v2-userbbl,#2A2320);color:#F6F1EA;border-radius:var(--v2-bbl-r);
  padding:12px 16px;line-height:1.5;box-shadow:0 6px 16px rgba(42,35,32,0.14);
  max-width:100%;box-sizing:border-box;align-self:flex-end}
/* 已读行：mono 数字（已读 · 21:47），灰调；他真正收到（思考/落笔）前不亮，随后淡入 */
[data-style="v2"] .row.n .ts{font-family:var(--v2-mono),'Noto Sans SC',sans-serif;font-size:9.5px;font-weight:500;letter-spacing:0.1em;color:#A39A90;padding-right:6px;transition:opacity 0.35s ease}
[data-style="v2"] .row.n .ts.v2-unread{opacity:0;transition:none}   /* 隐去要瞬时，亮起才淡入 */
[data-style="v2"] .row.n .ts .ts-label{display:none}
[data-style="v2"] .row.n .ts::before{content:'已读 ·';font-weight:500}
/* ✓/✓✓ 与其占位间隙都不要（已读行代劳）*/
[data-style="v2"] .bbl-check{display:none!important}
[data-style="v2"] .bbl .p:last-of-type::after{content:none!important}

/* 英文斜体（由 v2/chat.js 用 .v2-lat 包裹拉丁段，中文保持正体）*/
[data-style="v2"] .v2-lat{font-family:'Noto Serif',serif;font-style:italic;font-synthesis:none}

/* ---------- 气泡模式（默认，无 data-v2-mode 或 ="bulles"）---------- */
/* 他（assistant）：白纸信笺气泡，4/20 圆角 + 极浅描边 + 柔投影（图纸 2a）*/
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s{max-width:92%;align-self:flex-start;margin-left:0;gap:4px}
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s{
  background:#FFFDFB!important;border:1px solid rgba(42,35,32,0.08)!important;
  border-radius:var(--v2-bbl-r)!important;padding:13px 16px;
  box-shadow:0 6px 18px rgba(42,35,32,0.05)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  color:#3A332D;line-height:1.5;font-size:var(--bubble-size,14px)}
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s::after{display:none!important}
/* 分条接缝：原来首条收左下、中间左上左下都收；她要四角一律拉满，接缝也跟着同一个半径 */
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s.bbl-mid.bbl-first,
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s.bbl-mid:not(.bbl-first){border-radius:var(--v2-bbl-r)!important}
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl .p+.p{margin-top:0.6em}
/* 时间行常显：21:47 + 单条词元（词元文字由 v2/chat.js 改写）。logs 同款 mono、间距拉宽、深灰 */
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .ts{
  display:flex;font-family:var(--v2-mono),'Noto Sans SC',sans-serif;font-size:10px;font-weight:600;letter-spacing:0.14em;color:#55504A;padding-left:6px}
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .ts .ts-label{display:none}
[data-style="v2"] .ts .tok{display:inline-block!important;opacity:1!important;color:#8B8178;font-weight:500;font-family:inherit;letter-spacing:0.1em;margin-left:8px}
/* ✦ 与时间/token 行的对位是 Neve 调定的终值（基础规则带 top:-1.5px，此处覆写） */
[data-style="v2"] .ts-think{color:#A39A90;top:-0.5px}

/* ---------- 思考态两段式（发送 → 思考）---------- */
/* 阶段一：消息发出、回应未至。气泡壳收起，只剩一颗灰色呼吸圆点 */
[data-style="v2"] .row.s .bbl.s:has(> .typing){background:transparent!important;border:none!important;box-shadow:none!important;padding:8px 4px!important;min-width:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
[data-style="v2"] .typing{padding:0}
[data-style="v2"] .typing span{width:7px;height:7px;background:#A39A90;opacity:1;animation:v2breath 1.5s ease-in-out infinite}
[data-style="v2"] .typing span:nth-child(2),
[data-style="v2"] .typing span:nth-child(3){display:none}
@keyframes v2breath{0%,100%{opacity:0.3;transform:scale(0.8)}50%{opacity:0.9;transform:scale(1)}}
/* 阶段二：思考流开启。灰点退场，白底细描边药丸接棒：转动的思考针 + 依次轻跳的三点 */
[data-style="v2"] .row.s:has(> .think-trigger.streaming) .bbl.s:has(> .typing){display:none!important}
[data-style="v2"] .think-trigger.streaming{
  background:#FFFFFF;border:1px solid rgba(42,35,32,0.10);border-radius:999px;padding:6px 13px;margin:2px 0 1px;
  box-shadow:0 2px 8px rgba(42,35,32,0.05);color:#8B8178;opacity:1}
[data-style="v2"] .think-trigger.streaming .icon{animation:v2spin 2s linear infinite}
@keyframes v2spin{to{transform:rotate(360deg)}}
[data-style="v2"] .think-trigger.streaming .label{display:none}
[data-style="v2"] .think-trigger .v2-tdots{display:none}
[data-style="v2"] .think-trigger.streaming .v2-tdots{display:inline-flex;align-items:center;gap:4px}
[data-style="v2"] .v2-tdots span{width:4.5px;height:4.5px;border-radius:50%;background:#A39A90;animation:v2hop 1.5s ease-in-out infinite}
[data-style="v2"] .v2-tdots span:nth-child(2){animation-delay:0.16s}
[data-style="v2"] .v2-tdots span:nth-child(3){animation-delay:0.32s}
@keyframes v2hop{0%,24%,100%{transform:none}12%{transform:translateY(-3.5px)}}

/* ---------- 气泡模式：他的头像（每条气泡一枚、与气泡垂直居中，S 火漆或自定义头像）----------
   头像画在 .bbl.s 的 ::before 上（.bbl 自带 position:relative），分条时每条各得一枚；
   自定义头像由 v2/chat.js 写进 --v2-ava-img 并给 html 挂 .v2-hasava。旧的行级 .v2-ava 退役。 */
[data-style="v2"] .v2-ava{display:none!important}
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s{position:relative;padding-left:42px}
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s::before{
  content:'S';position:absolute;left:-42px;top:50%;transform:translateY(-50%);
  width:32px;height:32px;border-radius:999px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 35% 32%,#B85B69,#8E3B49 70%);
  background-size:cover;background-position:center;box-shadow:0 3px 8px rgba(142,59,73,0.3);
  color:#F6E8E4;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:600;font-size:15px;line-height:1}
html.v2-hasava[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s::before{
  content:'';background-image:var(--v2-ava-img)}
/* 等待/思考圆点阶段还没有话，先不落章 */
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s:has(> .typing)::before{display:none}

/* ---------- 手札模式：铺成正文长文（原 v2 长文骨架，卡片见下方书笺区）---------- */
[data-style="v2"][data-v2-mode="lettre"] .row.s{max-width:100%;align-self:stretch;margin-left:0;gap:6px}
[data-style="v2"][data-v2-mode="lettre"] .row.s .bbl.s{
  background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  border:none!important;box-shadow:none!important;border-radius:0!important;
  padding:2px 2px 0;color:var(--text);line-height:1.62;font-size:var(--bubble-size,15px)}
[data-style="v2"][data-v2-mode="lettre"] .row.s .bbl.s::after{display:none!important}
[data-style="v2"][data-v2-mode="lettre"] .row.s .bbl .p+.p{margin-top:0.9em}
/* 手札里流式中的临时时间行，同气泡模式的低调样式 */
[data-style="v2"][data-v2-mode="lettre"] .row.s .ts{
  display:flex;align-items:center;gap:10px;opacity:1;color:var(--text-mid);padding-left:2px;
  font-family:'Outfit','Noto Sans SC',sans-serif;font-size:10px;font-weight:500}

/* ---------- 宋体行距：宋体字面收敛、视觉行距偏密，气泡字体=宋体时在基准上放宽一档 ---------- */
html[data-bfont="serif"][data-style="v2"] .row.n .bbl.n{line-height:1.65}
html[data-bfont="serif"][data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s{line-height:1.65}
html[data-bfont="serif"][data-style="v2"][data-v2-mode="lettre"] .row.s .bbl.s{line-height:1.78}
html[data-bfont="serif"][data-style="v2"] .v2-card-body{line-height:1.78}

/* ---------- Markdown（assistant 正文，两种模式通用）---------- */
[data-style="v2"] .row.s .bbl.s h1,[data-style="v2"] .row.s .bbl.s h2,[data-style="v2"] .row.s .bbl.s h3{font-weight:600;line-height:1.4;margin:0.9em 0 0.45em}
[data-style="v2"] .row.s .bbl.s h1{font-size:1.32em}
[data-style="v2"] .row.s .bbl.s h2{font-size:1.2em}
[data-style="v2"] .row.s .bbl.s h3{font-size:1.08em}
[data-style="v2"] .row.s .bbl.s strong{font-weight:700}
[data-style="v2"] .row.s .bbl.s em{font-style:italic}
[data-style="v2"] .row.s .bbl.s ul,[data-style="v2"] .row.s .bbl.s ol{margin:0.5em 0;padding-left:1.4em}
[data-style="v2"] .row.s .bbl.s li{margin:0.25em 0;line-height:1.55}
[data-style="v2"] .row.s .bbl.s blockquote{margin:0.7em 0;padding:0.2em 0 0.2em 0.9em;border-left:2px solid color-mix(in srgb,var(--accent) 55%,transparent);opacity:0.92;font-style:italic}
[data-style="v2"] .row.s .bbl.s code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:0.88em;background:color-mix(in srgb,var(--text) 8%,transparent);padding:0.1em 0.4em;border-radius:6px}
[data-style="v2"] .row.s .bbl.s pre{margin:0.7em 0;padding:0.8em 1em;border-radius:12px;overflow-x:auto;background:color-mix(in srgb,var(--text) 7%,transparent)}
[data-style="v2"] .row.s .bbl.s pre code{background:none;padding:0}
[data-style="v2"] .row.s .bbl.s a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
[data-style="v2"] .row.s .bbl.s hr{border:none;border-top:1px solid color-mix(in srgb,var(--text) 14%,transparent);margin:1em 0}

/* ---------- 作品（artifacts）：白底细描边卡 + 玫瑰文件章（图纸 3c）---------- */
:root[data-style="v2"] .choose-btn{background:#FFFFFF;border:1px solid rgba(42,35,32,0.12);color:#4A4438;
  box-shadow:0 2px 8px rgba(42,35,32,0.05);font-weight:600}
:root[data-style="v2"] .choose-row.picked .choose-btn.sel{background:#9E4352;color:#FFFFFF;border-color:transparent}

/* 她发的文档小片：白底细描边，mono 字数（与作品卡同语言） */
:root[data-style="v2"] .doc-chip{background:#FFFFFF;border:1px solid rgba(42,35,32,0.10);border-radius:12px;
  color:#2A2320;box-shadow:0 3px 10px rgba(42,35,32,0.05);padding:9px 13px}
:root[data-style="v2"] .doc-chip svg{color:#9E4352}
:root[data-style="v2"] .doc-chip .dc-m{color:#A39A90;opacity:1}
:root[data-style="v2"] .doc-staged-card{background:#FFFFFF;border-color:rgba(42,35,32,0.12);color:#2A2320}
:root[data-style="v2"] .doc-staged-card .x{background:rgba(42,35,32,0.5)}

:root[data-style="v2"] .afile{background:#FFFDFB;border:0.5px solid rgba(42,35,32,0.10);border-radius:16px;
  box-shadow:0 6px 18px rgba(42,35,32,0.05);padding:11px 13px;gap:11px;width:100%;max-width:100%;box-sizing:border-box}
/* 只装作品的气泡卸掉外壳：卡片独立成行、与气泡等宽（分条后作品天然独段）*/
[data-style="v2"] .row.s .bbl.s:has(> .afile):not(:has(> .p)){
  background:transparent!important;border:none!important;box-shadow:none!important;
  padding:0!important;border-radius:0!important;min-width:0!important;align-self:stretch;width:100%;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
[data-style="v2"] .row.s .bbl.s:has(> .afile):not(:has(> .p)) .afile{margin:2px 0}
/* 作品卡图标＝微微倾斜的三面框（上左右、底开口），左右两侧下探被卡片底边裁切＝与底边相交；
   去掉底色，中间放大字形（文档波浪线 / 代码 </>，由 v2/chat.js 按类型注入）*/
:root[data-style="v2"] .afile{position:relative;overflow:hidden}
:root[data-style="v2"] .afile .aic{position:relative;width:52px;height:48px;border-radius:0;background:none;color:#2A2320;
  flex:none;display:flex;align-items:center;justify-content:center}
/* 框：浅灰细线。几何是 Neve 用临时面板亲手调定的终值（2026-07-20），
   框位/宽已折进 left/right/top，字形位移已合并（框X+图标X 等）。 */
:root[data-style="v2"] .afile .aic::before{content:'';position:absolute;top:12.5px;bottom:-60px;
  left:18px;right:-19px;
  border:1.2px solid #CFC8BE;border-bottom:none;border-radius:7px 7px 0 0;
  transform:rotate(-8deg);transform-origin:50% 100%}
:root[data-style="v2"] .afile .aic svg{position:relative;z-index:1;
  width:30px;height:30px;transform:translate(10px,13.5px)}
:root[data-style="v2"] .afile .ainfo{padding-left:18px}
:root[data-style="v2"] .afile .atitle{color:#2A2320;font-weight:700;font-size:12.5px;line-height:1.35}
:root[data-style="v2"] .afile .ameta{color:#A39A90;opacity:1;font-size:10px;margin-top:0}
/* 查看器改从底部弹出（仿官端）：暖白圆角顶、内容区实时预览 */
:root[data-style="v2"] .artview{background:rgba(42,35,32,0.25);flex-direction:row;align-items:flex-end;justify-content:center}
:root[data-style="v2"] .artview .avcard{flex:none;width:100%;max-width:640px;height:88vh;margin:0;
  border-radius:22px 22px 0 0;background:#FCFBF9;box-shadow:0 -12px 44px rgba(42,35,32,0.22);
  animation:v2boxIn 0.28s cubic-bezier(.22,.8,.22,1)}
:root[data-style="v2"] .artview .avhead{border-bottom:1px solid rgba(42,35,32,0.08);color:#2A2320;padding:13px 16px;
  font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif}
:root[data-style="v2"] .artview .avbtn{border:1px solid rgba(42,35,32,0.14);border-radius:999px;background:#FFFFFF;
  color:#574F47;font-weight:600;padding:6px 14px}
:root[data-style="v2"] .artview .avdoc{color:#3A332D}

/* ---------- 文件合集：顶栏文件钮（有作品才现身）+ 底部弹窗 + 下载全部 ---------- */
[data-style="v2"] #v2FilesBtn{
  width:38px;height:38px;border:none;background:none;box-shadow:none;border-radius:50%;padding:0;
  display:none;align-items:center;justify-content:center;color:#555555;cursor:pointer;
  -webkit-tap-highlight-color:transparent;transition:transform .12s;flex-shrink:0;margin-right:2px}
[data-style="v2"] #v2FilesBtn.has{display:flex}
[data-style="v2"] #v2FilesBtn:active{transform:scale(0.9)}
[data-style="v2"] #v2FilesBtn svg{width:20px;height:20px;display:block}
[data-style="v2"] .v2-files{position:fixed;inset:0;z-index:71;display:none;align-items:flex-end;justify-content:center;background:rgba(42,35,32,0.22)}
[data-style="v2"] .v2-files.open{display:flex}
[data-style="v2"] .v2-files-card{width:100%;max-width:440px;background:#FCFBF9;border-radius:22px 22px 0 0;
  padding:10px 20px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(42,35,32,0.2);
  font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;animation:v2boxIn 0.25s cubic-bezier(.22,.8,.22,1);
  display:flex;flex-direction:column;max-height:72vh}
[data-style="v2"] .v2-files-grip{width:36px;height:4px;border-radius:99px;background:rgba(42,35,32,0.16);margin:2px auto 12px;cursor:pointer;flex-shrink:0}
[data-style="v2"] .v2-files-title{display:flex;align-items:baseline;gap:8px;font-size:15px;font-weight:800;color:#2A2320;flex-shrink:0}
[data-style="v2"] .v2-files-title .fr{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:12.5px;color:#B9A97F}
[data-style="v2"] .v2-files-sub{font-size:10.5px;color:#A39A90;margin:3px 0 6px;flex-shrink:0}
[data-style="v2"] .v2-files-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}
[data-style="v2"] .v2-file{display:flex;align-items:center;gap:11px;padding:11px 2px;border-top:1px solid rgba(42,35,32,0.06);cursor:pointer;-webkit-tap-highlight-color:transparent}
[data-style="v2"] .v2-file:active{opacity:0.7}
[data-style="v2"] .v2-file .fic{width:36px;height:36px;border-radius:12px;background:#F6EDE9;color:#9E4352;display:flex;align-items:center;justify-content:center;flex-shrink:0}
[data-style="v2"] .v2-file .fic svg{width:17px;height:17px;display:block}
[data-style="v2"] .v2-file .ft{flex:1;min-width:0}
[data-style="v2"] .v2-file .ft .t1{display:block;font-size:13.5px;font-weight:700;color:#2A2320;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-style="v2"] .v2-file .ft .t2{display:block;font-size:10.5px;color:#A39A90;margin-top:2px}
[data-style="v2"] .v2-file .go{color:#C9BEB0;flex-shrink:0}
[data-style="v2"] .v2-files-dl{width:100%;margin-top:12px;padding:13px;border:none;border-radius:999px;background:#2A2320;color:#FCFBF9;
  font-size:13.5px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0}
[data-style="v2"] .v2-files-dl svg{width:15px;height:15px}

/* ---------- 语音卡：独立卡壳 + 满宽真波形（圆角拉到最大）---------- */
[data-style="v2"] .vbar{
  background:#FFFDFB;border:1px solid rgba(42,35,32,0.07);border-radius:28px;
  padding:11px 15px 12px;margin:0;box-shadow:0 5px 16px rgba(42,35,32,0.045)}
/* 气泡里只有语音、没有正文时，卸掉气泡壳，让语音卡自己当那只气泡 */
[data-style="v2"] .row.s .bbl.s:has(> .vbar):not(:has(> .p)){
  background:transparent!important;border:none!important;box-shadow:none!important;
  padding:0!important;border-radius:0!important}
[data-style="v2"] .vbar .vc{gap:12px}
[data-style="v2"] .vbar .vc-play{
  width:44px;height:44px;background:#9E4352;border:none;color:#FFFFFF;
  box-shadow:0 5px 14px rgba(158,67,82,0.30)}
[data-style="v2"] .vbar .vc-play.on{background:#8E3B49}
[data-style="v2"] .vbar .vc-ico{width:21px;height:21px}
[data-style="v2"] .vbar .bars{gap:2.5px;height:28px}
[data-style="v2"] .vbar .bar{border-radius:99px;background:#E3CDD2}
[data-style="v2"] .vbar .bar.done{background:#9E4352}
[data-style="v2"] .vbar .vtx{font-size:12px;color:#6B6259;opacity:1;margin-top:10px;line-height:1.62}
[data-style="v2"] .vbar .vtx .v2-lat,[data-style="v2"] .vbar .v2-lat{font-style:normal}
[data-style="v2"] .vbar .vtr{color:#A39A90;font-style:normal}

/* ---------- assistant 常驻 复制/展开 + 详情卡 ---------- */
[data-style="v2"] .v2-actions{display:inline-flex;align-items:center;gap:6px;margin-left:2px}
[data-style="v2"] .v2-actbtn{width:26px;height:26px;border:none;background:transparent;color:var(--text-mid);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:8px;-webkit-tap-highlight-color:transparent;transition:background .12s,color .12s;padding:0}
[data-style="v2"] .v2-actbtn:active{background:color-mix(in srgb,var(--accent) 16%,transparent)}
[data-style="v2"] .v2-actbtn svg{width:15px;height:15px;display:block}
[data-style="v2"] .v2-actbtn.copied{color:var(--accent)}
[data-style="v2"] .v2-detail{overflow:hidden;max-height:0;opacity:0;transform:translateX(14px);transition:max-height .28s ease,opacity .22s ease,transform .28s ease;margin-left:2px;font-family:'Outfit','Noto Sans SC',sans-serif;font-size:11.5px;color:var(--text-mid)}
[data-style="v2"] .v2-detail.open{max-height:60px;opacity:0.95;transform:translateX(0);margin-top:4px}
[data-style="v2"] .v2-detail .pill{display:inline-flex;gap:5px;align-items:center;padding:3px 9px;border-radius:999px;margin-right:7px;background:color-mix(in srgb,var(--accent) 12%,transparent)}
[data-style="v2"] .v2-detail .pill b{font-weight:700;color:var(--text)}

/* ---------- 输入区 ---------- */
/* .ftr 改竖排：占位按钮行在上、药丸在下；发送/语音由 JS 移进药丸 */
/* .ftr 竖排 + 整体上移（底部留白更大）*/
[data-style="v2"] .ftr{flex-direction:column;align-items:stretch;gap:7px;padding:0 18px calc(22px + env(safe-area-inset-bottom));background:transparent}
/* 键盘在场（html[data-kb]，chat.html 视口适配落的标）：输入区铺纯色纸底 + 脚下垂一段裙边，
   把「输入区↔键盘」之间因预估差/动画期产生的缝完全盖死（v2 背景是纯色，视觉无缝） */
html[data-kb][data-style="v2"] .ftr{background:var(--bg)}
html[data-kb][data-style="v2"] .ftr::after{content:'';position:absolute;top:100%;left:0;right:0;height:300px;background:var(--bg)}
/* 底部透对话：沿用经典 .pblur-bottom（保持不动），footer 透明，消息从其后透出磨砂 */

/* 上方三个占位按钮：靠左对齐、调小、圆角拉满 + 毛玻璃 */
[data-style="v2"] .v2-quick{display:flex;gap:7px;justify-content:flex-start;flex-wrap:wrap;position:relative;z-index:1;padding-left:6px}
[data-style="v2"] .v2-quick button{
  border:1px solid rgba(255,255,255,0.6);border-radius:999px;padding:2px 14px;font-size:12px;font-weight:400;line-height:1.25;
  font-family:"Heiti SC","Microsoft YaHei","Noto Sans SC",sans-serif;letter-spacing:0;cursor:pointer;color:var(--text);
  background:color-mix(in srgb,#ffffff 42%,transparent);
  backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);
  box-shadow:0 3px 12px rgba(60,50,40,0.06);-webkit-tap-highlight-color:transparent;transition:transform .12s}
[data-style="v2"] .v2-quick button:active{transform:scale(0.95)}

/* 药丸输入框：收窄居中 + 可调底色（默认 F6F6F4）+ 纯白极细边框 + 柔和投影 */
[data-style="v2"] .ftr-wrap{
  width:100%;max-width:600px;margin:0 auto;
  background:var(--v2-input-bg,#F6F6F4)!important;border:1px solid #ffffff!important;border-radius:24px!important;
  box-shadow:0 3px 12px rgba(60,50,40,0.06),0 1px 3px rgba(60,50,40,0.04)!important;
  padding:7px 8px!important;gap:2px}
[data-style="v2"] .ftr-wrap textarea{order:1;color:#2b2b29;padding:9px 8px}
/* placeholder：Outfit 细体 */
[data-style="v2"] .ftr-wrap textarea::placeholder{font-family:'Outfit',sans-serif;font-weight:300;letter-spacing:0.3px;color:#a7a39a;opacity:1}

/* 框内按钮统一形态 */
[data-style="v2"] .ftr-wrap .v2-inbtn,
[data-style="v2"] .ftr-wrap .ftr-attach,
[data-style="v2"] .ftr-wrap .ftr-send{
  width:34px;height:34px;min-width:34px;border-radius:50%;flex-shrink:0;align-self:center;padding:0;
  display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;
  color:#515151;-webkit-tap-highlight-color:transparent;transition:transform .12s}
[data-style="v2"] .ftr-wrap .v2-inbtn:active,
[data-style="v2"] .ftr-wrap .ftr-attach:active,
[data-style="v2"] .ftr-wrap .ftr-send:active{transform:scale(0.9)}
[data-style="v2"] .ftr-wrap .v2-inbtn svg,
[data-style="v2"] .ftr-wrap .ftr-attach svg,
[data-style="v2"] .ftr-wrap .ftr-send svg{width:21px;height:21px;display:block;fill:currentColor;stroke:none}
/* 位置：附件在左，语音·发送在右 + 配色/大小 */
[data-style="v2"] .ftr-wrap #attachBtn{order:0;color:#c4c0b7}          /* 附件：更浅 */
[data-style="v2"] .ftr-wrap #attachBtn svg{width:18px;height:18px}
[data-style="v2"] .ftr-wrap .v2-voicebtn{order:2;color:#c4c0b7}       /* 语音：更浅 */
[data-style="v2"] .ftr-wrap .ftr-send{order:3;color:#000000}          /* 发送：黑 */
/* 经典把 .ftr-send svg path 写死成 var(--accent)——这里盖成黑 */
[data-style="v2"] .ftr-wrap .ftr-send svg path{fill:#000000!important;stroke:none!important}

/* 隐藏经典里多余脚部元素（回声、图片模式切换）*/
[data-style="v2"] .ftr>.ftr-echo,[data-style="v2"] .ftr-wrap #imgModeBtn{display:none!important}

/* ---------- 快速滚动箭头 ---------- */
/* 小号、右下角、上下两枚；默认隐藏，滚动时由 JS 显示、停手 1s 后隐藏 */
[data-style="v2"] .v2-scroll{position:fixed;right:14px;z-index:40;width:32px;height:32px;border-radius:50%;opacity:0;pointer-events:none;display:flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid rgba(255,255,255,0.6);background:color-mix(in srgb,#ffffff 55%,transparent);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);box-shadow:0 4px 14px rgba(60,50,40,0.14);color:var(--text-mid);-webkit-tap-highlight-color:transparent;transition:opacity .25s,transform .12s}
[data-style="v2"] .v2-scroll.show{opacity:0.92;pointer-events:auto}
[data-style="v2"] .v2-scroll:active{transform:scale(0.9)}
[data-style="v2"] .v2-scroll svg{width:16px;height:16px}
[data-style="v2"] .v2-scroll.up{bottom:calc(200px + env(safe-area-inset-bottom))}
[data-style="v2"] .v2-scroll.down{bottom:calc(160px + env(safe-area-inset-bottom))}

/* ---------- 顶栏：调扁、去名称；左=列表按钮+模型名+箭头，右=信匣+设置 ---------- */
/* 实色暖纸背景（不透下滑的消息）+ 细底线；关掉顶部磨砂 */
[data-style="v2"] .hdr{padding:5px 12px;padding-top:max(6px,env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid rgba(60,50,40,0.07)}
[data-style="v2"] .hdr .pblur-top{display:none!important}
/* 去掉名称/签名/阅读开关/顶部回声 */
[data-style="v2"] .hdr-name,[data-style="v2"] .hdr-handle,[data-style="v2"] .read-toggle,[data-style="v2"] #hdrEcho{display:none!important}
/* 列表 & 设置按钮：无边框、深灰、调小 */
[data-style="v2"] #drawerBtn,[data-style="v2"] #menuBtn{
  background:none!important;border:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  box-shadow:none!important;color:#555555!important;width:38px;height:38px}
[data-style="v2"] #drawerBtn svg{width:22px;height:22px}
[data-style="v2"] #menuBtn .icon-default{display:none!important}
[data-style="v2"] #menuBtn .icon-solid{display:block!important;width:26px;height:26px}
/* 信匣入口（信封，v2/chat.js 注入，位置同图纸右上）*/
[data-style="v2"] #v2BoxBtn{
  width:38px;height:38px;border:none;background:none;box-shadow:none;border-radius:50%;padding:0;
  display:flex;align-items:center;justify-content:center;color:#555555;cursor:pointer;
  -webkit-tap-highlight-color:transparent;transition:transform .12s;flex-shrink:0;margin-right:2px}
[data-style="v2"] #v2BoxBtn:active{transform:scale(0.9)}
[data-style="v2"] #v2BoxBtn svg{width:21px;height:21px;display:block}
/* 模型名：紧挨列表按钮、Outfit 常规、深灰、后接 › 箭头 */
[data-style="v2"] .hdr-model{
  display:inline-flex!important;align-items:center;gap:6px;font-family:'Outfit',sans-serif;font-weight:400;
  font-size:14px;color:#555555;letter-spacing:0.3px;opacity:1;padding:0 2px;margin:0 0 0 8px}
[data-style="v2"] .hdr-model .dot{display:none!important}
[data-style="v2"] .hdr-model > span:last-child{display:none!important}   /* 原 ▾ */
[data-style="v2"] .hdr-model::after{content:'›';color:#555555;font-size:16px;line-height:1;opacity:0.85;margin-left:6px}

/* ---------- v2 聊天抽屉里隐藏「壁纸 / 版式 / 皮肤 / 阅读模式」（外观独立一套）---------- */
[data-style="v2"] #sBg{display:none!important}                               /* 壁纸 URL */
[data-style="v2"] .stg-row:has(#segLayout){display:none!important}          /* 版式（明信/标准）*/
[data-style="v2"] .stg-row:has(#segReading){display:none!important}         /* 阅读模式（v2 有自己的手札）*/
[data-style="v2"] .stg-row:has(#segSplit){display:none!important}           /* 分条/整段（气泡=分条、手札=整段，模式已代劳）*/
[data-style="v2"] .stg-sec:has(#skinSwatches){display:none!important}       /* 皮肤 */
/* 设置弹窗在 v2 下固定浅色卡 + 玫瑰强调（不随经典深浅主题）*/
:root[data-style="v2"] .stg{
  --sp-accent:#9E4352;--sp-bg:rgba(255,255,255,var(--sp-alpha));--sp-field:rgba(246,243,239,0.8);
  --sp-field-border:rgba(42,35,32,0.10);--sp-border:rgba(255,255,255,0.5);--sp-text:#2A2320;
  --sp-text-mid:#6B6259;--sp-text-dim:#A39A90;--sp-seg-active:rgba(255,255,255,0.9);
  --sp-seg-shadow:0 1px 4px rgba(42,35,32,0.10);--sp-on-accent:#fff}

/* ====================================================================
   书笺卡片（手札模式的 assistant 消息整体）—— 保留 v2 原设计
   ==================================================================== */
[data-style="v2"] .v2-card{
  width:100%;border:0.5px solid rgba(60,50,40,0.15);border-radius:0;overflow:hidden;
  background:var(--v2-card-bg,#F0EFEB);box-shadow:0 2px 12px rgba(60,50,40,0.07);
  font-family:'Noto Serif SC',serif}
/* 顶部极细全宽横线（离卡片顶 --v2-g1，与整卡同宽）*/
[data-style="v2"] .v2-card::before{content:'';display:block;height:0.8px;background:rgba(60,50,40,0.16);margin-top:var(--v2-g1,4px)}
/* 做旧长条：与正文同宽（18px）、毛边滤镜；上下间距走变量 */
[data-style="v2"] .v2-card-strip{
  height:7px;margin-left:18px;margin-right:18px;border-radius:0;background-color:var(--v2-strip-color,#D1C1A0);background-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='8'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  box-shadow:inset 0 0 3px rgba(120,95,55,0.3);filter:url(#v2rough)}
[data-style="v2"] .v2-strip-top{margin-top:var(--v2-g5,28px);margin-bottom:var(--v2-g6,10px)}
/* 底部牛皮条已撤（Neve 点名去掉），卡片以脚部/详情收尾；底缘呼吸感看下方 .v2-card-foot 的 26px */
/* 思考链标题收进卡片（非阅读模式经典会隐藏它，这里在卡片内显示）*/
[data-style="v2"] .v2-card .think-trigger{display:inline-flex!important;align-items:center;gap:7px;margin:2px 18px var(--v2-g7,8px);padding:0;font-size:11px;color:var(--text-mid);opacity:0.8}
[data-style="v2"] .v2-card .think-trigger .icon{width:19px;height:19px}
/* 头：Soren： ……  / 于…日 / */
[data-style="v2"] .v2-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 18px 2px}
[data-style="v2"] .v2-card-name{font-weight:600;font-size:15px;color:var(--text)}
[data-style="v2"] .v2-card-date{font-size:11px;color:var(--text-mid);letter-spacing:1px;white-space:nowrap}
/* Neve · TU M'AS DIT —— 她的消息融进信笺（图纸 2b 的设计点）。
   玫瑰竖线对齐正文开头的双引号（18px），右缘时间的位置不动。 */
[data-style="v2"] .v2-card-quote{margin:10px 18px 0;border-left:2px solid rgba(158,67,82,0.45);padding:2px 0 2px 13px}
[data-style="v2"] .v2-card-quote .q-label{display:flex;justify-content:space-between;align-items:baseline;gap:8px;
  font-family:'Outfit','Noto Sans SC',sans-serif;font-size:9.5px;font-weight:600;letter-spacing:0.16em;color:#B9A97F}
[data-style="v2"] .v2-card-quote .q-label .fr{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:600;letter-spacing:0.16em}
[data-style="v2"] .v2-card-quote .q-label .q-time{font-weight:500;letter-spacing:0.5px;color:#A39A90}
[data-style="v2"] .v2-card-quote .q-text{font-size:13px;line-height:1.8;color:#6B6259;margin-top:3px;white-space:pre-wrap;word-break:break-word}
[data-style="v2"] .v2-card-quote .q-text+.q-text{margin-top:7px}
[data-style="v2"] .v2-card-quote .q-text .bbl-img{display:block;max-width:132px;max-height:110px;border-radius:8px;margin:4px 0}
/* 融进卡里的用户行本体隐藏（长按引用条仍可编辑/重新生成）*/
[data-style="v2"] .row.n[data-v2merged="1"]{display:none!important}
/* 正文（带引号）*/
[data-style="v2"] .v2-card-body{position:relative;padding:6px 18px var(--v2-g3,16px);color:var(--text);font-size:var(--bubble-size,15px);line-height:1.62}
[data-style="v2"] .v2-card-body::before{content:'“';display:block;font-size:20px;line-height:0.1;color:var(--text-mid);opacity:0.5;margin:var(--v2-g2,10px) 0 8px}
[data-style="v2"] .v2-card-body::after{content:'”';display:block;text-align:right;font-size:20px;line-height:0;color:var(--text-mid);opacity:0.5;margin-top:16px}
[data-style="v2"] .v2-card-body .bbl.s{padding:0!important;font-size:inherit!important}
[data-style="v2"] .v2-card-body .bbl.s+.bbl.s{margin-top:0.9em}   /* 分条来的多气泡在信里保持段距 */
/* 分隔细线 */
[data-style="v2"] .v2-card-div{height:1px;background:rgba(60,50,40,0.14);margin:2px 18px 0}
/* 脚：/ 时间   词元   按钮（底距放宽，脚行离信纸底缘有呼吸）*/
[data-style="v2"] .v2-card-foot{display:flex;align-items:center;gap:12px;padding:var(--v2-g8,9px) 18px 26px;font-size:11px;color:var(--text-mid);letter-spacing:0.5px}
[data-style="v2"] .v2-card-time{white-space:nowrap}
[data-style="v2"] .v2-card-tok{color:var(--text)}
[data-style="v2"] .v2-card-foot .v2-actions{margin-left:auto;display:inline-flex;gap:6px}
/* 详情卡（缓存命中/花费）在脚下方 */
[data-style="v2"] .v2-card .v2-detail{padding:0 16px;margin:0}
[data-style="v2"] .v2-card .v2-detail.open{padding:0 16px 12px}

/* ====================================================================
   信匣 —— 窗口列表整页（图纸 3b）
   ==================================================================== */
[data-style="v2"] .v2-box{position:fixed;inset:0;z-index:66;background:#FAF8F4;display:none;flex-direction:column;overflow:hidden;
  font-family:-apple-system,'PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif}
[data-style="v2"] .v2-box.open{display:flex;animation:v2boxIn .28s cubic-bezier(.22,.8,.22,1)}
@keyframes v2boxIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
[data-style="v2"] .v2-box-head{padding:calc(16px + env(safe-area-inset-top)) 24px 0;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-shrink:0}
[data-style="v2"] .v2-box-title{display:flex;align-items:baseline;gap:10px;font-size:28px;font-weight:800;color:#2A2320;letter-spacing:0.01em}
[data-style="v2"] .v2-box-title .fr{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:17px;color:#B9A97F}
[data-style="v2"] .v2-box-sub{font-size:12px;color:#8B8178;margin-top:4px}
[data-style="v2"] .v2-box-close{width:38px;height:38px;border-radius:999px;background:#FFFFFF;border:1px solid rgba(42,35,32,0.09);
  box-shadow:0 2px 8px rgba(42,35,32,0.05);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#574F47;
  -webkit-tap-highlight-color:transparent;transition:transform .12s;flex-shrink:0;padding:0}
[data-style="v2"] .v2-box-close:active{transform:scale(0.92)}
[data-style="v2"] .v2-box-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px 24px calc(30px + env(safe-area-inset-bottom))}
/* 开一封新的话题（虚线卡）*/
[data-style="v2"] .v2-box-new{border:1.5px dashed rgba(158,67,82,0.45);border-radius:22px;background:rgba(255,255,255,0.6);
  padding:16px 18px;display:flex;align-items:center;gap:13px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s}
[data-style="v2"] .v2-box-new:active{transform:scale(0.99)}
[data-style="v2"] .v2-box-new .plus{width:42px;height:42px;border-radius:999px;background:#9E4352;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(158,67,82,0.28);flex-shrink:0;color:#fff}
[data-style="v2"] .v2-box-new .t1{font-size:14.5px;font-weight:700;color:#2A2320}
[data-style="v2"] .v2-box-new .t2{font-size:11.5px;color:#A39A90;margin-top:2px}
[data-style="v2"] .v2-box-new .t2 .fr{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12.5px}
/* 分组标题：一行小字 + 细线 */
[data-style="v2"] .v2-box-sec{display:flex;align-items:center;gap:10px;margin:18px 2px 10px;
  font-family:'Outfit','Noto Sans SC',sans-serif;font-size:9.5px;font-weight:600;letter-spacing:0.2em;color:#A39A90}
[data-style="v2"] .v2-box-sec::after{content:'';flex:1;height:1px;background:rgba(42,35,32,0.1)}
/* 一叠信（窗口卡）*/
[data-style="v2"] .v2-box-item{background:#FFFFFF;border:1px solid rgba(42,35,32,0.08);border-radius:20px;padding:13px 15px;
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;
  display:flex;align-items:center;gap:13px;box-shadow:0 6px 18px rgba(42,35,32,0.05);cursor:pointer;margin-bottom:10px;
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;transition:transform .12s}
[data-style="v2"] .v2-box-item:active{transform:scale(0.99)}
[data-style="v2"] .v2-box-item .tile{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
[data-style="v2"] .v2-box-item .tile svg{display:block}
[data-style="v2"] .v2-box-item.k-love .tile{background:#F6EDE9;border:1px solid rgba(158,67,82,0.16);transform:rotate(-2deg)}
[data-style="v2"] .v2-box-item.k-fav .tile{background:#F1EBE1;border:1px solid rgba(185,169,127,0.3);transform:rotate(1.5deg)}
[data-style="v2"] .v2-box-item.k-plain .tile{background:#EFEAE2;border:1px solid rgba(42,35,32,0.06);transform:rotate(1deg)}
[data-style="v2"] .v2-box-item .mid{flex:1;min-width:0}
[data-style="v2"] .v2-box-item .t{display:flex;align-items:center;gap:6px;min-width:0}
[data-style="v2"] .v2-box-item .t .tt{font-size:14.5px;font-weight:700;color:#2A2320;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-style="v2"] .v2-box-item .t .dot{width:6px;height:6px;border-radius:99px;background:#9E4352;flex-shrink:0}
[data-style="v2"] .v2-box-item .p{font-size:11.5px;color:#8B8178;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-style="v2"] .v2-box-item .r{text-align:right;flex-shrink:0}
[data-style="v2"] .v2-box-item .r .tm{font-size:10px;color:#A39A90}
[data-style="v2"] .v2-box-item .r .ct{font-size:10px;font-weight:600;color:#B9A97F;margin-top:3px}
[data-style="v2"] .v2-box-hint{text-align:center;font-size:10.5px;color:#A39A90;margin-top:14px}
[data-style="v2"] .v2-box-empty{padding:34px 0;text-align:center;font-size:12px;color:#A39A90;font-style:italic}
/* 消息搜索：胶囊搜索框（头部下方）+ 按窗口聚组的命中行 */
[data-style="v2"] .v2-box-search{position:relative;margin:14px 24px 0;flex-shrink:0}
[data-style="v2"] .v2-box-search .si{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#A39A90;pointer-events:none}
[data-style="v2"] .v2-box-search input{width:100%;padding:11px 38px;border-radius:999px;background:#FFFFFF;border:1px solid rgba(42,35,32,0.09);
  box-shadow:0 2px 8px rgba(42,35,32,0.04);font-size:13px;color:#2A2320;outline:none;font-family:inherit;-webkit-appearance:none;box-sizing:border-box}
[data-style="v2"] .v2-box-search input::placeholder{color:#B5ACA2}
[data-style="v2"] .v2-box-search input::-webkit-search-cancel-button,
[data-style="v2"] .v2-box-search input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
[data-style="v2"] .v2-box-search input:focus{border-color:rgba(158,67,82,0.4)}
[data-style="v2"] .v2-box-search .sx{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:none;border-radius:50%;
  background:rgba(42,35,32,0.06);color:#8B8178;display:none;align-items:center;justify-content:center;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}
[data-style="v2"] .v2-box-search .sx.show{display:flex}
[data-style="v2"] .v2-box-res-win{background:#FFFFFF;border:1px solid rgba(42,35,32,0.08);border-radius:18px;padding:12px 15px 4px;
  box-shadow:0 6px 18px rgba(42,35,32,0.05);margin-bottom:10px}
[data-style="v2"] .v2-box-res-win .rw-t{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:14px;font-weight:700;color:#2A2320;padding-bottom:8px}
[data-style="v2"] .v2-box-res-win .rw-t .tt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-style="v2"] .v2-box-res-win .rw-t .rw-c{font-size:10px;font-weight:600;color:#B9A97F;flex-shrink:0}
[data-style="v2"] .v2-box-res-line{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-top:1px solid rgba(42,35,32,0.06);cursor:pointer;-webkit-tap-highlight-color:transparent}
[data-style="v2"] .v2-box-res-line:active{opacity:0.65}
[data-style="v2"] .v2-box-res-line .dot{width:4px;height:4px;border-radius:99px;background:#C9BEB0;margin-top:8px;flex-shrink:0}
[data-style="v2"] .v2-box-res-line .tx{flex:1;min-width:0;font-size:12.5px;line-height:1.65;color:#6B6259;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-style="v2"] .v2-box-res-line .tx .hl{color:#9E4352;font-weight:700}
[data-style="v2"] .v2-box-res-more{padding:7px 0 9px;border-top:1px solid rgba(42,35,32,0.06);font-size:10.5px;color:#A39A90}
/* 从搜索跳回那句话：落点轻轻亮一下 */
[data-style="v2"] .v2-flash{animation:v2flash 1.5s ease}
@keyframes v2flash{0%{background:rgba(158,67,82,0.16);border-radius:14px}100%{background:transparent}}

/* ====================================================================
   临时调色弹窗 —— 聊天背景 / 手札信纸 / 输入框底色（即调即存）
   ==================================================================== */
[data-style="v2"] #v2TuneOpen{width:100%;margin:2px 0 9px;padding:10px;border:1px dashed rgba(158,67,82,0.4);border-radius:12px;
  background:rgba(158,67,82,0.05);color:#9E4352;font-size:12.5px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit}
[data-style="v2"] .v2-tune{position:fixed;inset:0;z-index:72;display:none;align-items:flex-end;justify-content:center;background:rgba(42,35,32,0.22)}
[data-style="v2"] .v2-tune.open{display:flex}
[data-style="v2"] .v2-tune-card{width:100%;max-width:440px;background:#FCFBF9;border-radius:22px 22px 0 0;
  padding:10px 22px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(42,35,32,0.2);
  font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;animation:v2boxIn 0.25s cubic-bezier(.22,.8,.22,1)}
[data-style="v2"] .v2-tune-grip{width:36px;height:4px;border-radius:99px;background:rgba(42,35,32,0.16);margin:2px auto 12px;cursor:pointer}
[data-style="v2"] .v2-tune-title{display:flex;align-items:baseline;gap:8px;font-size:15px;font-weight:800;color:#2A2320;margin-bottom:3px}
[data-style="v2"] .v2-tune-title .fr{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:12.5px;color:#B9A97F}
[data-style="v2"] .v2-tune-sub{font-size:10.5px;color:#A39A90;margin-bottom:10px}
[data-style="v2"] .v2-tune-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid rgba(42,35,32,0.06)}
[data-style="v2"] .v2-tune-row .lb{flex:1;font-size:13px;font-weight:600;color:#2A2320}
[data-style="v2"] .v2-tune-row input[type="color"]{width:34px;height:34px;min-width:34px;border:1px solid rgba(42,35,32,0.12);border-radius:10px;background:#fff;padding:2px;cursor:pointer;-webkit-appearance:none;appearance:none}
[data-style="v2"] .v2-tune-row input[type="color"]::-webkit-color-swatch-wrapper{padding:2px}
[data-style="v2"] .v2-tune-row input[type="color"]::-webkit-color-swatch{border:none;border-radius:7px}
[data-style="v2"] .v2-tune-row input[type="text"]{width:94px;padding:7px 10px;border:1px solid rgba(42,35,32,0.12);border-radius:10px;background:#fff;
  font-family:var(--v2-mono);font-size:12px;letter-spacing:0.05em;color:#2A2320;outline:none;text-transform:uppercase}
[data-style="v2"] .v2-tune-row input[type="text"]:focus{border-color:#9E4352}
[data-style="v2"] .v2-tune-row .rst{border:none;background:none;color:#A39A90;font-size:11px;cursor:pointer;padding:6px 2px;-webkit-tap-highlight-color:transparent;font-family:inherit;flex-shrink:0}
[data-style="v2"] .v2-tune-done{width:100%;margin-top:12px;padding:12px;border:none;border-radius:999px;background:#2A2320;color:#FCFBF9;
  font-size:13.5px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit}

/* ====================================================================
   细节微调（弹窗 / PWA / 系统行）
   ==================================================================== */
/* 思考链展开弹窗（v2 既有设计，保持）：纯色底、正文苹方、标题 Outfit 粗体 */
[data-style="v2"] .think-modal-card{background:#F4F8F2!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
[data-style="v2"] .think-modal-grip{background:rgba(0,0,0,0.16)}
[data-style="v2"] .think-modal-title{font-family:'Outfit',sans-serif!important;font-weight:700!important;letter-spacing:1px;color:#37413a;border-bottom-color:rgba(0,0,0,0.08)}
[data-style="v2"] .think-modal-body{font-family:'PingFang SC','Noto Sans SC',sans-serif!important;font-style:normal!important;color:#3a423b;font-size:14.5px}
/* 标题↔分割线、分割线↔正文两段间距拉开；卡片最高高度上探 */
[data-style="v2"] .think-modal-title{padding-bottom:20px;margin-bottom:20px}
[data-style="v2"] .think-modal-card{max-height:84vh}

/* 设置弹窗整页居中（v2）*/
[data-style="v2"] .stg{align-items:center}

/* 仅 PWA（独立模式）：底部间距收紧一点 */
@media (display-mode: standalone){
  [data-style="v2"] .ftr{padding-bottom:calc(6px + env(safe-area-inset-bottom))}
  [data-style="v2"] .msgs{padding-bottom:calc(120px + env(safe-area-inset-bottom))!important}
}

/* 快捷按钮触发的「系统行」：——Neve按下了X的按钮—— 苹方斜体居中 */
[data-style="v2"] .row.v2-btnline{align-self:center!important;max-width:100%;margin:0!important}
[data-style="v2"] .row.v2-btnline .bbl.n{background:none!important;border:none!important;box-shadow:none!important;border-radius:0!important;padding:0!important}
[data-style="v2"] .row.v2-btnline .bbl.n::after{display:none!important}
[data-style="v2"] .row.v2-btnline .ts{display:none!important}
[data-style="v2"] .v2-btnline-text{font-family:'PingFang SC','Noto Sans SC',sans-serif;font-style:italic;font-weight:300;color:var(--text-mid);font-size:12.5px;text-align:center;letter-spacing:0.3px}

/* ====================================================================
   蒸馏 · 召回调试面板 —— 雪花按钮 + 底部弹窗（回显探针/实体/召回记忆）
   ==================================================================== */
/* 雪花按钮：手札卡片脚 acts 里跟在复制旁；气泡模式落在时间行紧挨思考 ✦ */
/* 顶栏图标集的丹墨点（文件钮等） */
[data-style="v2"] .hdr .ink{fill:#9E4352;stroke:none}
[data-style="v2"] #v2FilesBtn svg{transform:translate(3px,1px)}
/* 手札模式：不再单独染色，跟 acts 行邻座按钮（复制等）同色同态 */
[data-style="v2"] .v2-snow-ts{display:inline-flex;width:14px;height:16px;border-radius:5px;margin-left:6px;
  vertical-align:middle;position:relative;top:1.5px;color:#A39A90}
[data-style="v2"] .v2-snow-ts svg{flex:none;width:10.5px;height:10.5px}
[data-style="v2"] .v2-snow-ts:active{color:#9E4352}

/* 底部弹窗：整体上滑 + 遮罩淡入（不生硬）*/
[data-style="v2"] .v2-dz{position:fixed;inset:0;z-index:73;display:none;align-items:flex-end;justify-content:center;background:rgba(42,35,32,0.28);animation:v2dzFade 0.22s ease}
[data-style="v2"] .v2-dz.open{display:flex}
[data-style="v2"] .v2-dz-card{width:100%;max-width:460px;max-height:78vh;display:flex;flex-direction:column;
  background:#FCFBF9;border-radius:22px 22px 0 0;padding:10px 0 calc(16px + env(safe-area-inset-bottom));
  box-shadow:0 -12px 44px rgba(42,35,32,0.24);font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;
  animation:v2dzUp 0.36s cubic-bezier(.22,.92,.28,1)}
[data-style="v2"] .v2-dz-grip{width:36px;height:4px;border-radius:99px;background:rgba(42,35,32,0.16);margin:2px auto 11px;cursor:pointer;flex-shrink:0}
[data-style="v2"] .v2-dz-title{display:flex;align-items:baseline;gap:8px;font-size:16px;font-weight:800;color:#2A2320;padding:0 22px;flex-shrink:0}
[data-style="v2"] .v2-dz-title .fr{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:12.5px;color:#B9A97F}
[data-style="v2"] .v2-dz-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 22px 0;flex-shrink:0}
[data-style="v2"] .v2-dz-dec{font-size:12px;font-weight:600;color:#8B8178;font-family:var(--v2-mono),inherit;letter-spacing:0.02em}
[data-style="v2"] .v2-dz-w{font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:99px;background:#EFEAE2;color:#8B8178}
[data-style="v2"] .v2-dz-w.w-轻{background:#EEF1EC;color:#6E7A68}
[data-style="v2"] .v2-dz-w.w-中{background:#F1EBE1;color:#9C8646}
[data-style="v2"] .v2-dz-w.w-重{background:#F6EDE9;color:#9E4352}
[data-style="v2"] .v2-dz-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 22px 2px;margin-top:8px}
[data-style="v2"] .v2-dz-sec{padding:11px 0;border-top:1px solid rgba(42,35,32,0.07)}
[data-style="v2"] .v2-dz-sec:first-child{border-top:none}
[data-style="v2"] .v2-dz-h{display:flex;align-items:baseline;gap:7px;font-size:12px;font-weight:800;color:#2A2320;margin-bottom:9px}
[data-style="v2"] .v2-dz-h .fr{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:11px;color:#B9A97F;text-transform:none}
[data-style="v2"] .v2-dz-empty{font-size:14px;color:#C2B8AC;font-weight:700;letter-spacing:0.1em}
/* 探针行：类型徽 + 探针文本 */
[data-style="v2"] .v2-dz-probes{display:flex;flex-direction:column;gap:7px}
[data-style="v2"] .v2-dz-probe{display:flex;align-items:flex-start;gap:9px}
[data-style="v2"] .v2-dz-kind{flex-shrink:0;font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;margin-top:1px;background:#EFEAE2;color:#8B8178;letter-spacing:0.02em}
[data-style="v2"] .v2-dz-kind.k-keyword{background:#F1EBE1;color:#9C8646}
[data-style="v2"] .v2-dz-kind.k-semantic{background:#F6EDE9;color:#9E4352}
[data-style="v2"] .v2-dz-kind.k-hyde{background:#EEEAF2;color:#6E5E8C}
[data-style="v2"] .v2-dz-kind.k-trigger{background:#EAF1EC;color:#4F7A5E}
[data-style="v2"] .v2-dz-q{flex:1;min-width:0;font-size:13px;line-height:1.6;color:#4A423B;word-break:break-word}
/* 实体 / 意象 chips */
[data-style="v2"] .v2-dz-ents{display:flex;flex-wrap:wrap;gap:6px}
[data-style="v2"] .v2-dz-chip{font-size:12px;font-weight:600;padding:3px 11px;border-radius:99px;background:#F1EBE1;color:#7C6F4E;border:1px solid rgba(185,169,127,0.28)}
/* 递给他的记忆：标签行 + 摘要 */
[data-style="v2"] .v2-dz-mems{display:flex;flex-direction:column;gap:9px}
[data-style="v2"] .v2-dz-mem{padding:9px 12px;border-radius:12px;background:#FFFFFF;border:1px solid rgba(42,35,32,0.08);box-shadow:0 3px 10px rgba(42,35,32,0.04)}
[data-style="v2"] .v2-dz-mtag{font-size:10px;font-weight:700;color:#B9A97F;letter-spacing:0.03em;margin-bottom:4px;font-family:var(--v2-mono),inherit}
[data-style="v2"] .v2-dz-msnip{font-size:12.5px;line-height:1.62;color:#5A524A;word-break:break-word}
[data-style="v2"] .v2-dz-none{padding:26px 0 20px;text-align:center;font-size:12.5px;color:#A39A90;font-style:italic}
@keyframes v2dzUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes v2dzFade{from{opacity:0}to{opacity:1}}

/* =============================================================
   墨夜 Encre —— 聊天页深色（html[data-v2-skin="encre"] 时点亮）
   底 #2E2B33 · 面 #38343E · 字 #EDE9F2 · 玫瑰 #C9A0AA
   我的气泡反转为象牙纸（#EDE9F2 底 · 墨字），呼应皮肤卡预览
   ============================================================= */
:root[data-style="v2"][data-v2-skin="encre"]{
  --bg:#1F1F1E !important;
  --overlay:rgba(46,43,51,0.55) !important;
  --band:rgba(46,43,51,0.42) !important;
  --text:#EDE9F2 !important;
  --text-mid:#A9A2B3 !important;
  --text-dim:#837D8C !important;
  --accent:#C9A0AA !important;
  --hdr-name:rgba(237,233,242,0.92) !important;
  --bbl-n-bg:#EDE9F2 !important;
  --bbl-n-text:#2E2B33 !important;
  --bbl-n-ink:#2E2B33 !important;
  --think-text:#A9A2B3 !important;
  --think-bg:rgba(237,233,242,0.05) !important;
  --think-border:rgba(237,233,242,0.10) !important;
  --input-text:#EDE9F2 !important;
  --chip-bg:rgba(56,52,62,0.85) !important;
  --chip-border:rgba(237,233,242,0.10) !important;
  --chip-text:#C9C4CF !important;
  --card-bg:#38343E !important;
  --card-border:rgba(237,233,242,0.10) !important;
  --field-bg:rgba(56,52,62,0.7) !important;
  --field-border:rgba(237,233,242,0.12) !important;
  --section-text:#837D8C !important;
  --bbl-shadow:0 6px 18px rgba(0,0,0,0.26) !important;
  --v2-userbbl:#EDE9F2;
  --v2-card-bg:#242424;
  --v2-input-bg:#242424;
  --v2-strip-color:#4A4452;
}
/* 顶栏 / 模式切换药丸 */
[data-v2-skin="encre"][data-style="v2"] .hdr{border-bottom-color:rgba(237,233,242,0.08)}
[data-v2-skin="encre"][data-style="v2"] .v2-modeswitch{background:#242424;border-color:rgba(237,233,242,0.10);box-shadow:0 2px 8px rgba(0,0,0,0.28)}
[data-v2-skin="encre"][data-style="v2"] .v2-modeswitch button{color:#A9A2B3}
[data-v2-skin="encre"][data-style="v2"] .v2-modeswitch button.on{background:#EDE9F2;color:#2E2B33}
/* 他的气泡（气泡模式）：墨面象牙字 */
[data-v2-skin="encre"][data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s{
  background:#242424!important;border-color:rgba(237,233,242,0.09)!important;
  color:#E6E1EC;box-shadow:0 6px 18px rgba(0,0,0,0.24)!important}
[data-v2-skin="encre"][data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .ts{color:#8F8798}
/* 我的气泡：象牙纸反转（含脱壳后的文字小气泡） */
[data-v2-skin="encre"][data-style="v2"] .row.n .bbl.n{color:#2E2B33!important}
[data-v2-skin="encre"][data-style="v2"] .row.n .bbl.n:has(> img.bbl-img) > div[data-text],
[data-v2-skin="encre"][data-style="v2"] .row.n .bbl.n:has(> .doc-chip) > div[data-text]{color:#2E2B33}
/* 快捷短语 / 输入药丸 / 上下箭头 */
[data-v2-skin="encre"][data-style="v2"] .v2-quick button{
  border-color:rgba(237,233,242,0.12);background:#242424;
  color:#C9C4CF;box-shadow:0 3px 12px rgba(0,0,0,0.20)}
[data-v2-skin="encre"][data-style="v2"] .ftr-wrap{border-color:rgba(237,233,242,0.12)!important;
  box-shadow:0 3px 12px rgba(0,0,0,0.22),0 1px 3px rgba(0,0,0,0.16)!important}
[data-v2-skin="encre"][data-style="v2"] .ftr-wrap textarea{color:#EDE9F2}
[data-v2-skin="encre"][data-style="v2"] .ftr-wrap textarea::placeholder{color:#6E6878}
[data-v2-skin="encre"][data-style="v2"] .v2-scroll{border-color:rgba(237,233,242,0.14);
  background:color-mix(in srgb,#38343E 70%,transparent);box-shadow:0 4px 14px rgba(0,0,0,0.30);color:#C9C4CF}
/* 作品卡 / 文档 chip */
[data-v2-skin="encre"][data-style="v2"] .afile{background:#38343E!important;border-color:rgba(237,233,242,0.10)!important;box-shadow:0 6px 18px rgba(0,0,0,0.24)!important}
[data-v2-skin="encre"][data-style="v2"] .afile .atitle{color:#EDE9F2}
[data-v2-skin="encre"][data-style="v2"] .afile .ameta{color:#837D8C}
[data-v2-skin="encre"][data-style="v2"] .afile .aic{color:#EDE9F2}
[data-v2-skin="encre"][data-style="v2"] .afile .aic::before{border-color:rgba(237,233,242,0.30)}
[data-v2-skin="encre"][data-style="v2"] .hdr .ink{fill:#C9707D}
[data-v2-skin="encre"][data-style="v2"] .doc-chip{background:#38343E;border-color:rgba(237,233,242,0.12);color:#E6E1EC}
[data-v2-skin="encre"][data-style="v2"] .doc-staged-card{background:#38343E;border-color:rgba(237,233,242,0.12);color:#E6E1EC}
/* 日期分隔 */
[data-v2-skin="encre"][data-style="v2"] .date-sep{color:#837D8C}
[data-v2-skin="encre"][data-style="v2"] .date-sep::before,
[data-v2-skin="encre"][data-style="v2"] .date-sep::after{background:rgba(237,233,242,0.14)}
/* 手札（信纸模式）：深纸象牙字 */
[data-v2-skin="encre"][data-style="v2"] .v2-card{border-color:rgba(237,233,242,0.16);color:#E6E1EC;box-shadow:0 2px 12px rgba(0,0,0,0.28)}
[data-v2-skin="encre"][data-style="v2"] .v2-card::before{background:rgba(237,233,242,0.14)}
[data-v2-skin="encre"][data-style="v2"] .v2-card-div{background:rgba(237,233,242,0.13)}
[data-v2-skin="encre"][data-style="v2"][data-v2-mode="lettre"] .row.s .bbl.s{color:#E6E1EC}
/* 信匣 */
[data-v2-skin="encre"][data-style="v2"] .v2-box{background:#2E2B33}
[data-v2-skin="encre"][data-style="v2"] .v2-box-title{color:#EDE9F2}
[data-v2-skin="encre"][data-style="v2"] .v2-box-sub{color:#837D8C}
[data-v2-skin="encre"][data-style="v2"] .v2-box-new{background:rgba(56,52,62,0.6);border-color:rgba(201,160,170,0.45)}
[data-v2-skin="encre"][data-style="v2"] .v2-box-new .plus{background:#C9A0AA;color:#2E2B33;box-shadow:0 6px 14px rgba(201,160,170,0.24)}
[data-v2-skin="encre"][data-style="v2"] .v2-box-new .t1{color:#EDE9F2}
[data-v2-skin="encre"][data-style="v2"] .v2-box-new .t2{color:#837D8C}
[data-v2-skin="encre"][data-style="v2"] .v2-box-item{background:#38343E;border-color:rgba(237,233,242,0.08)}
[data-v2-skin="encre"][data-style="v2"] .v2-box-item{color:#E6E1EC}
[data-v2-skin="encre"][data-style="v2"] .v2-box-item .t .tt{color:#EDE9F2}
[data-v2-skin="encre"][data-style="v2"] .v2-box-search input{background:#38343E;border-color:rgba(237,233,242,0.12);color:#EDE9F2}
[data-v2-skin="encre"][data-style="v2"] .v2-box-close{color:#C9C4CF}
/* 调色弹窗自身入夜 */
[data-v2-skin="encre"][data-style="v2"] .v2-tune-card{background:#34303A}
[data-v2-skin="encre"][data-style="v2"] .v2-tune-title{color:#EDE9F2}
[data-v2-skin="encre"][data-style="v2"] .v2-tune-row .lb{color:#E6E1EC}
[data-v2-skin="encre"][data-style="v2"] .v2-tune-row{border-top-color:rgba(237,233,242,0.08)}
[data-v2-skin="encre"][data-style="v2"] .v2-tune-done{background:#EDE9F2;color:#2E2B33}

/* =============================================================
   选择卡（[[choose:A|B|C]]）—— 列表式：A. B. C. 字母前缀 · 无填色 ·
   细线分隔 · 选中后字母位变小 ✓。字母用 CSS 计数器画，JS 零改动。
   气泡模式下只装选择卡的气泡卸壳（同作品卡 :has() 技法），卡片独立成行
   ============================================================= */
[data-style="v2"] .choose-row{
  counter-reset:chs;flex-direction:column;gap:0;margin:8px 0 3px;
  background:#FFFDFB;border:1px solid rgba(42,35,32,0.08);border-radius:20px;
  padding:5px 18px;box-shadow:0 6px 18px rgba(42,35,32,0.05)}
:root[data-style="v2"] .choose-btn{
  counter-increment:chs;width:100%;display:flex;align-items:baseline;gap:12px;
  background:none!important;border:none!important;border-radius:0;box-shadow:none;
  padding:14px 2px;text-align:left;font-size:13px;font-weight:400;line-height:1.55;color:#3A332D;
  font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;
  -webkit-tap-highlight-color:transparent}
[data-style="v2"] .choose-btn+.choose-btn{border-top:1px solid rgba(42,35,32,0.07)!important}
:root[data-style="v2"] .choose-btn::before{
  content:counter(chs,upper-alpha) ".";flex:none;width:22px;
  font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;font-style:normal;font-weight:500;
  font-size:13px;color:#9E4352;letter-spacing:0.02em}
/* 选中：字母位变 ✓，行色不动；未选项淡出 */
[data-style="v2"] .choose-row.picked .choose-btn{opacity:0.38}
:root[data-style="v2"] .choose-row.picked .choose-btn.sel{opacity:1;background:none!important;color:#3A332D;border-color:transparent}
:root[data-style="v2"] .choose-row.picked .choose-btn.sel::before{content:'\2713';font-style:normal;font-weight:700}
/* 气泡模式：只装选择卡的气泡卸壳，让卡片独立成行、与气泡区等宽 */
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s:has(> .choose-row):not(:has(> .p)){
  background:transparent!important;border:none!important;box-shadow:none!important;
  padding:0!important;border-radius:0!important;min-width:0!important;align-self:stretch;width:100%;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s:has(> .choose-row):not(:has(> .p)) .choose-row{margin:2px 0}
/* 手札模式：卡片落在信纸上 */
[data-style="v2"][data-v2-mode="lettre"] .choose-row{margin:10px 0 6px}
/* 墨夜 */
[data-v2-skin="encre"][data-style="v2"] .choose-row{background:#38343E;border-color:rgba(237,233,242,0.10);box-shadow:0 6px 18px rgba(0,0,0,0.24)}
[data-v2-skin="encre"][data-style="v2"] .choose-btn{color:#E6E1EC}
[data-v2-skin="encre"][data-style="v2"] .choose-btn+.choose-btn{border-top-color:rgba(237,233,242,0.09)!important}
[data-v2-skin="encre"][data-style="v2"] .choose-btn::before{color:#C9A0AA}
[data-v2-skin="encre"][data-style="v2"] .choose-row.picked .choose-btn.sel{color:#E6E1EC}

/* ====================================================================
   v2 设置弹层（右上齿轮）：底部升起卡，配色与 thinking 弹窗完全一致
   （奶油 #F4F8F2 实底无模糊 / 墨夜 #1F1F1E），全弹层苹方
   ==================================================================== */
[data-style="v2"] .v2-stg{position:fixed;inset:0;z-index:70;display:none;align-items:flex-end;justify-content:center;background:rgba(0,0,0,0.26)}
[data-style="v2"] .v2-stg.open{display:flex;animation:thinkFade .28s ease}
[data-style="v2"] .v2-stg-card{width:100%;max-width:560px;max-height:76vh;overflow-y:auto;-webkit-overflow-scrolling:touch;
  border-radius:22px 22px 0 0;padding:10px 0 max(20px,env(safe-area-inset-bottom));
  background:var(--sh-bg);border-top:1px solid var(--sh-border);box-shadow:0 -10px 44px rgba(0,0,0,0.24);
  font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;
  --sh-bg:#F4F8F2;--sh-border:rgba(0,0,0,0.07);--sh-text:#37413a;--sh-mid:#6d786f;
  --sh-dim:#98a29a;--sh-grip:rgba(0,0,0,0.16);--sh-accent:#9E4352;--sh-field:rgba(0,0,0,0.05)}
[data-v2-skin="encre"][data-style="v2"] .v2-stg-card{
  --sh-bg:#1F1F1E;--sh-border:rgba(255,255,255,0.09);--sh-text:#C9C4CF;--sh-mid:#B9B4C0;
  --sh-dim:#837D8C;--sh-grip:rgba(255,255,255,0.22);--sh-accent:#C9A0AA;--sh-field:rgba(255,255,255,0.07)}
[data-style="v2"] .v2-stg.open .v2-stg-card{animation:thinkSheetUp .4s cubic-bezier(.22,.92,.28,1)}
[data-style="v2"] .v2-stg-grip{width:38px;height:4px;border-radius:2px;background:var(--sh-grip);margin:6px auto 10px;cursor:pointer}
[data-style="v2"] .v2-stg-tabs{display:flex;gap:24px;padding:2px 26px 0;border-bottom:1px solid var(--sh-border)}
[data-style="v2"] .v2-stg-tabs button{background:none;border:none;font-family:inherit;
  font-size:13.5px;font-weight:600;color:var(--sh-mid);padding:8px 2px 11px;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}
[data-style="v2"] .v2-stg-tabs button.on{color:var(--sh-text)}
[data-style="v2"] .v2-stg-tabs button.on::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--sh-accent)}
/* User style：竖排行，无分割线靠间距呼吸，名称 + 小号浅色备注 + 行尾直线 ✓ */
[data-style="v2"] .v2-stg-styles{padding:10px 12px 2px}
[data-style="v2"] .v2-stg-srow{display:flex;align-items:baseline;gap:10px;width:100%;box-sizing:border-box;
  background:none;border:none;text-align:left;padding:15px 14px;cursor:pointer;color:var(--sh-text);
  font-family:inherit;-webkit-tap-highlight-color:transparent}
[data-style="v2"] .v2-stg-srow .nm{flex:none;font-size:14px;font-weight:600;max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-style="v2"] .v2-stg-srow .nt{flex:1;min-width:0;font-size:10.5px;color:var(--sh-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-style="v2"] .v2-stg-srow .ck{flex:none;color:var(--sh-accent);opacity:0;align-self:center}
[data-style="v2"] .v2-stg-srow .ck svg{width:15px;height:15px;display:block}
[data-style="v2"] .v2-stg-srow.on .ck{opacity:1}
/* 外观：无分割线，控件统一靠右 */
[data-style="v2"] .v2-stg-look{padding:12px 26px 2px}
[data-style="v2"] .v2-stg-prof{display:flex;align-items:center;gap:13px;padding:2px 0 14px}
[data-style="v2"] .v2-stg-prof .av{width:44px;height:44px;border-radius:50%;flex:none;background:var(--sh-field) center/cover no-repeat;
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sh-dim);font-size:18px;font-weight:600}
[data-style="v2"] .v2-stg-prof .av.has span{display:none}
[data-style="v2"] .v2-stg-prof .nm{flex:1;min-width:0;background:var(--sh-field);border:none;border-radius:12px;
  padding:11px 14px;font-family:inherit;font-size:14px;color:var(--sh-text);outline:none}
[data-style="v2"] .v2-stg-prof .nm::placeholder{color:var(--sh-dim)}
[data-style="v2"] .v2-stg-lrow{display:flex;align-items:center;gap:12px;padding:14px 0}
[data-style="v2"] .v2-stg-lrow .lb{flex:none;font-size:13.5px;color:var(--sh-text)}
/* 字体三选：小药丸段控 */
[data-style="v2"] .v2-stg-seg{margin-left:auto;display:inline-flex;gap:4px;background:var(--sh-field);border-radius:999px;padding:3px}
[data-style="v2"] .v2-stg-seg button{border:none;background:none;font-family:inherit;font-size:12px;color:var(--sh-mid);
  padding:5px 12px;border-radius:999px;cursor:pointer;-webkit-tap-highlight-color:transparent}
[data-style="v2"] .v2-stg-seg button.on{background:var(--sh-bg);color:var(--sh-text);box-shadow:0 1px 4px rgba(0,0,0,0.12)}
/* 步进器：− 值 ＋ */
[data-style="v2"] .v2-stg-step{margin-left:auto;display:inline-flex;align-items:center;gap:2px;background:var(--sh-field);border-radius:999px;padding:3px}
[data-style="v2"] .v2-stg-step button{width:30px;height:26px;border:none;background:none;border-radius:999px;color:var(--sh-mid);
  font-size:16px;line-height:1;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent}
[data-style="v2"] .v2-stg-step button:active{background:var(--sh-bg);color:var(--sh-text)}
[data-style="v2"] .v2-stg-step .val{min-width:34px;text-align:center;font-size:12.5px;font-weight:600;color:var(--sh-text)}
[data-style="v2"] .v2-stg-clear{display:block;margin:16px 26px 0;width:calc(100% - 52px);padding:12px;border-radius:999px;
  border:1px solid rgba(199,92,92,0.32);background:none;color:#c75c5c;font-size:12.5px;font-weight:600;cursor:pointer;
  font-family:inherit;-webkit-tap-highlight-color:transparent}
/* 他的气泡内边距吃调节变量（未调时与原值逐像素一致；卸壳类气泡的 0!important 仍然压得住） */
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s .bbl.s{padding:var(--bbl-pad-y,12px) var(--bbl-pad-x,18px)}
/* thinking 弹窗墨夜配色（Neve 定值 #1F1F1E；基础 v2 规则带 !important，需同级压过） */
[data-v2-skin="encre"][data-style="v2"] .think-modal-card{background:#1F1F1E!important}
[data-v2-skin="encre"][data-style="v2"] .think-modal-grip{background:rgba(255,255,255,0.22)}
[data-v2-skin="encre"][data-style="v2"] .think-modal-title{color:#C9C4CF;border-bottom-color:rgba(255,255,255,0.09)}
[data-v2-skin="encre"][data-style="v2"] .think-modal-body{color:#B9B4C0}

/* ---------- 墨夜细节（2026-07-25 Neve 点名）---------- */
/* 顶栏控件与模型名：提亮到与他的气泡字色一致 */
[data-v2-skin="encre"][data-style="v2"] #drawerBtn,
[data-v2-skin="encre"][data-style="v2"] #menuBtn{color:#E6E1EC!important}
[data-v2-skin="encre"][data-style="v2"] #v2BoxBtn,
[data-v2-skin="encre"][data-style="v2"] #v2FilesBtn{color:#E6E1EC}
[data-v2-skin="encre"][data-style="v2"] .hdr-model{color:#E6E1EC}
[data-v2-skin="encre"][data-style="v2"] .hdr-model::after{color:#E6E1EC}
/* 输入框内：发送与气泡字色一致，附件/语音浅得多 */
[data-v2-skin="encre"][data-style="v2"] .ftr-wrap .ftr-send{color:#E6E1EC}
[data-v2-skin="encre"][data-style="v2"] .ftr-wrap .ftr-send svg path{fill:#E6E1EC!important}
[data-v2-skin="encre"][data-style="v2"] .ftr-wrap #attachBtn,
[data-v2-skin="encre"][data-style="v2"] .ftr-wrap .v2-voicebtn{color:#59575D}

/* ---------- 电话落点 + 工具药丸（v2）---------- */
[data-style="v2"] .calltoast{background:rgba(42,35,32,0.05);color:#8B8178}
[data-style="v2"] .callcard{background:#FFFDFB;border-color:rgba(42,35,32,0.08);border-radius:18px;
  box-shadow:0 6px 18px rgba(42,35,32,0.05)}
[data-style="v2"] .callcard-t1{color:#2A2320}
[data-style="v2"] .replaypop-card{background:#FCFBF9}
[data-style="v2"] .replaypop-title{color:#2A2320}
/* 气泡里只剩一枚工具药丸时也卸壳，让它自己扁扁地待着 */
[data-style="v2"] .row.s .bbl.s:has(> .tchip):not(:has(> .p)){
  background:transparent!important;border:none!important;box-shadow:none!important;
  padding:0!important;border-radius:0!important}

/* 工具药丸独占一行时也撑到 92%，和最长气泡对齐 */
[data-style="v2"]:not([data-v2-mode="lettre"]) .row.s:has(.tchip){width:92%}
[data-style="v2"] .row.s .bbl.s:has(> .tchip):not(:has(> .p)){width:100%}

/* ==================== 针脚工程 · 第一批：手感 ==================== */
/* iOS 点击灰块：全灭。按下去的反馈由下面的回弹统一负责 */
[data-style="v2"] *{-webkit-tap-highlight-color:transparent}
/* 统一按压回弹：所有可点的小件走同一条弹性曲线 */
[data-style="v2"] button,[data-style="v2"] .ftr-echo,[data-style="v2"] .hdr-btn,
[data-style="v2"] .vc-play,[data-style="v2"] .think-trigger{
  transition:transform .13s cubic-bezier(.34,1.4,.64,1),opacity .13s ease}
[data-style="v2"] button:active,[data-style="v2"] .ftr-echo:active,
[data-style="v2"] .vc-play:active,[data-style="v2"] .think-trigger:active{transform:scale(.93)}
/* 列表型可点行：轻缩 + 微透，不跳 */
[data-style="v2"] .v2-box-res-line,[data-style="v2"] .v2-box-item{transition:transform .13s ease,opacity .13s ease}
[data-style="v2"] .v2-box-res-line:active,[data-style="v2"] .v2-box-item:active{transform:scale(.985);opacity:.82}
/* 发送键：按下沉得更果断 */
[data-style="v2"] .ftr-send:active{transform:scale(.86)}
/* 输入区聚焦微光：细环贴着丹墨色，轻轻亮起 */
[data-style="v2"] .ftr-wrap{transition:box-shadow .22s ease}
[data-style="v2"] .ftr-wrap:focus-within{box-shadow:0 0 0 1.5px rgba(158,67,82,.26),0 8px 22px rgba(42,35,32,.10)}
/* 快捷小抄统一制服：等高、同字号、同呼吸 */
[data-style="v2"] .v2-quick button{height:26px;display:inline-flex;align-items:center;font-size:11.5px;letter-spacing:.4px}
/* 消息区滚动条：细而安静的一根线 */
[data-style="v2"] .msgs::-webkit-scrollbar{width:3px}
[data-style="v2"] .msgs::-webkit-scrollbar-thumb{background:rgba(42,35,32,.16);border-radius:99px}
[data-style="v2"] .msgs::-webkit-scrollbar-track{background:transparent}

/* ==================== 针脚工程 · 第二批上篇：发送键与聚焦微光 ==================== */
/* 发送键：墨色实心圆。外框圆角24、内衬7px,同心法则内圆角=17=按钮半高,即正圆 */
[data-style="v2"] .ftr-wrap .ftr-send{
  background:#2A2320;color:#F6F1EA;border-radius:50%;
  box-shadow:0 2px 8px rgba(42,35,32,0.28)}
[data-style="v2"] .ftr-wrap .ftr-send svg{width:17px;height:17px}
[data-style="v2"] .ftr-wrap .ftr-send svg path{fill:#F6F1EA!important}
[data-style="v2"] .ftr-wrap .ftr-send:disabled{opacity:0.4}
/* 聚焦细环试装后撤下：验收员觉得视觉不佳（2026-08-14） */

/* ==================== 针脚工程 · 第二批下篇：进场轻抬 ==================== */
[data-style="v2"] .row.v2-enter{animation:v2enter .28s cubic-bezier(.22,.9,.36,1)}
@keyframes v2enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
