/* ============================================================================
   theme-liquid.css — 米贴「液态玻璃」主题层（v1.2.769）
   ----------------------------------------------------------------------------
   【独立层设计】全部规则以 body.liquid 为前缀，不改动 style.20260722.css 一行。
   摘掉 index.html 里的这一条 <link> 即完全恢复，无需 git 回滚。

   【与经典/新拟态的关系】三套主题并列，互斥：
     经典(classic) = 壁纸 + 半透明卡片   新拟态(body.neo) = 纯色底板 + 同色软 UI
     液态玻璃(body.liquid) = 保留壁纸 + 表面弯折壁纸(折射) + 镜面高光
   ❗液态玻璃必须保留壁纸 —— 折射要有东西可弯；故本层**不隐藏 #bg**（与新拟态相反）。

   【分级护栏】WWDC：材质越大越厚，但大面积折射在 4K 必掉帧 →
     · 小/中面积（lgfx 的 LENS_SEL）：真折射（透镜）+ 镜面高光
     · 大面积（#wzPanel / 各小工具浮层 / 文件夹弹层 / 设置 / Dock）：只做毛玻璃
   折射引擎见 lgfx.js；本层只负责「毛玻璃基座 + 材质妆面 + 降级」。

   【参数单一数据源】--lg-spec 高光强度 / --lg-tint-a 不透明度 / --lg-blur 模糊 / --lg-sat 饱和度
     由 app.js 的 applyLiquidVars() 按设置写入 body 的 inline 变量；这里只给默认值。
   ========================================================================== */

body.liquid {
  --lg-spec:   .55;                  /* 高光强度：顶部镜面亮线 + 边缘 */
  --lg-tint-a: .11;                  /* 玻璃不透明度 */
  --lg-blur:   1.2px;                /* 内部模糊（配角：Liquid Glass 以弯折为主） */
  --lg-sat:    1.35;
  --lg-frost:  18px;                 /* 大面积毛玻璃的模糊半径 */
  --lg-panel-a: .14;                 /* 大面积面板的不透明度 */
  --lg-panel-rgb: 255, 255, 255;     /* 玻璃底色：亮壁纸时会被 lgfx 翻转成深色 */
  --lg-line:   rgba(255,255,255,.20);
  --lg-edge:   rgba(255,255,255,var(--lg-spec));
  --lg-shadow: 0 18px 46px rgba(0,0,0,.40);
  --lg-drop:   drop-shadow(0 1px 2px rgba(0,0,0,.35));   /* 让玻璃上的文字在任何壁纸上都可读 */
  /* ❗圆角必须在这里显式给：经典主题下不少表面的圆角本来就写着（.tile-img 等），
     但 .clock-wrap / 各浮层面板的圆角**只在新拟态层里给过** → liquid 下不补就是方形，
     而 .lg 的 overflow:hidden 会按方角裁剪，把壁纸副本切成方块。 */
  --lg-r-sm:   11px;                 /* 小件：按钮 / 图标 */
  --lg-r:      14px;                 /* 中件：卡片 / 面板 */
  --lg-r-lg:   22px;                 /* 大件：弹层 / 时钟 / 设置面板 */
  /* ❗瓦片悬停底：经典下 `.tile:hover{background:var(--tile-hover)}` 而 --tile-hover 是**纯白**，
     半透明主题里就变成一块不透明白砖（用户报「鼠标经过文件夹不好看」）。改半透明玻璃。 */
  --tile-hover: rgba(255,255,255,.16);
  --tile-border: rgba(255,255,255,.20);
}

/* ===== v1.2.790 液态玻璃×浅色主题：表面恒为深玻璃 → 令牌回落深色档 =====
   style.css 里 body.light 的深字/浅底覆盖（经典浅玻璃专用）已统一 :not(.liquid) 排除；
   这里把 --text 等 .light 翻转过的令牌翻回深色档（与 :root 深色一致），并补齐浅色弹层令牌，
   否则便签撤销条等 var(--ovl-panel) 白底 + #fff 白字、正文深字落深玻璃（CR 1.x 看不清）。 */
body.liquid.light {
  --text: #f2f5fa; --text-dim: rgba(255,255,255,.72); --text-muted: rgba(255,255,255,.6);
  --tile-bg: rgba(255,255,255,.14); --tile-border: rgba(255,255,255,.22); --tile-hover: rgba(255,255,255,.28);
  --panel-bg: rgba(255,255,255,.14); --panel-border: rgba(255,255,255,.25);
  --overlay-bg: rgba(14,18,25,.82); --overlay-text: #ffffff; --overlay-dim: rgba(255,255,255,.6);
  --search-bg: rgba(255,255,255,.18); --search-border: rgba(255,255,255,.3); --search-text: #ffffff;
  --ovl-mask: rgba(0,0,0,.42); --ovl-panel: rgba(26,32,46,.88); --ovl-border: rgba(255,255,255,.16);
  --icfx-glass: rgba(20,24,34,.58); --icfx-glass-line: rgba(255,255,255,.14);
  --tool-sep: rgba(255,255,255,.16); --tool-hover: rgba(255,255,255,.08); --tool-hover-strong: rgba(255,255,255,.16);
  --tool-active-bg: rgba(94,201,92,.18); --tool-active-text: #7ee07a;
  --input-bg: rgba(0,0,0,.22); --input-border: rgba(255,255,255,.16);
  --chip-bg: rgba(255,255,255,.05); --chip-border: rgba(255,255,255,.12);
}
/* 浅色主题下 UA 默认链接蓝(#0000EE)落在深玻璃上 CR≈2 → 给浅色可读蓝 */
body.liquid.light .sub-body a { color: #8ecafc; }
body.liquid.light .sub-body a:visited { color: #b9a8f5; }

/* ---------------------------------------------------------------- 底板：保留壁纸 */
body.liquid { color: var(--text-content); } /* v1.2.845 统一规则：根文本色走令牌，随深浅翻转 */
body.liquid #gridFade,
body.liquid .grid-fade {
  /* 滚动边缘效果（WWDC soft）：内容滚到悬浮元素下方时淡出 + 轻微模糊，取代硬分隔线 */
  background: linear-gradient(to bottom, rgba(6,10,18,.34), rgba(6,10,18,0) 78%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  -webkit-mask-image: linear-gradient(to bottom, #000, transparent);
  mask-image: linear-gradient(to bottom, #000, transparent);
}

/* ================================================================ 透镜层（lgfx 注入）
   lgfx 会往表面里插 .lg-refract / .lg-tint / .lg-shine 三层，并把原内容提到 z-index:3。
   refract 是「壁纸副本」—— 用 filter:url() 让它边缘弯折（Chromium 增强档下改为 backdrop 折射）。 */
body.liquid .lg {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: transparent;                       /* 表面观感交给注入的层，避免与旧底色打架 */
  border-color: transparent;
  box-shadow: var(--lg-shadow);
}
body.liquid .lg > .lg-refract {
  position: absolute; z-index: 0; border-radius: inherit; pointer-events: none;
}
body.liquid .lg > .lg-tint {
  position: absolute; inset: 0; z-index: 1; border-radius: inherit; pointer-events: none;
  /* v1.2.783 方案 A：底色走可翻转的 --lg-panel-rgb —— 亮壁纸时 lgfx 把它切成深色，
     白字/白图标立刻有对比（暗壁纸时维持浅 tint，保留通透感）。 */
  background: linear-gradient(180deg,
    rgba(var(--lg-panel-rgb, 255,255,255), var(--lg-tint-a)),
    rgba(var(--lg-panel-rgb, 255,255,255), calc(var(--lg-tint-a) * .35)));
}
body.liquid .lg > .lg-shine {
  position: absolute; inset: 0; z-index: 2; border-radius: inherit; pointer-events: none;
  box-shadow: inset 0 1px 0 var(--lg-edge),
              inset 0 -1px 0 rgba(255,255,255,calc(var(--lg-spec) * .22)),
              inset 0 0 0 1px rgba(255,255,255,calc(var(--lg-spec) * .30));
}
/* 原内容提到玻璃之上（不重排 DOM，避免破坏既有布局） */
body.liquid .lg > *:not(.lg-refract):not(.lg-tint):not(.lg-shine) {
  position: relative; z-index: 3;
}

/* 搜索框：**单独走「轻雾玻璃」**，不要跟大面积面板共用 blur(18px) ——
   重模糊会把亮壁纸糊成"一块有色块"，看着完全没有透明感（用户报「搜索框没有透明效果」）。
   轻模糊 + 顶部镜面高光 + 极淡底色，才是"透"的观感。 */
body.liquid .search input {
  background: rgba(255, 255, 255, .10) !important;
  border: 1px solid rgba(255, 255, 255, .28) !important;
  backdrop-filter: blur(4px) saturate(1.3);
  -webkit-backdrop-filter: blur(4px) saturate(1.3);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, calc(var(--lg-spec) * .55)),
              inset 0 0 0 1px rgba(255, 255, 255, calc(var(--lg-spec) * .18)),
              0 8px 22px rgba(0, 0, 0, .18);
  color: var(--text-content); /* v1.2.845 令牌化 */
}
body.liquid .search input::placeholder { color: var(--text-muted); }
body.liquid .search input:focus {
  border-color: rgba(255, 255, 255, .45) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, calc(var(--lg-spec) * .70)),
              0 0 0 3px color-mix(in srgb, var(--accent, #22c55e) 30%, transparent),
              0 8px 22px rgba(0, 0, 0, .20);
}

/* ================================================================ 圆角（补齐经典/新拟态里由各自主题给的半径） */
/* v1.2.862：液态下 .clock-wrap 不再作为玻璃透镜卡（已从 lgfx.js LENS_SEL 移除 .clock-wrap），
   故不再补 padding/圆角，回归纯文字 —— 与经典主题一致。玻璃透镜只保留瓦片/挂件等真实表面。 */
body.liquid .wcard,
body.liquid .wz-clock,
body.liquid .wz-fold,
body.liquid .wz-folder { border-radius: var(--lg-r); }
body.liquid .tile-icon { border-radius: calc(var(--tile-size, 96px) * 0.22); }
body.liquid .folder-pop-panel,
body.liquid .wz-fpop-panel,
body.liquid .settings-card,
body.liquid .settings-view { border-radius: var(--lg-r-lg); }
body.liquid #wzPanel,
body.liquid .tb-panel,
body.liquid .tb-right,
body.liquid .tb-user-menu,
body.liquid .engine-dropdown,
body.liquid .modal > *:not(button):not(.mascot-float) { border-radius: var(--lg-r); }
body.liquid .wz-fpop-btn,
body.liquid .tb-btn,
body.liquid .tb-toggle,
body.liquid .ls-trigger,
body.liquid .overlay-close,
body.liquid .dialog-close,
body.liquid .dock-icon,
body.liquid .engine-btn,
body.liquid .cmd-trigger { border-radius: var(--lg-r-sm); }
body.liquid .search input { border-radius: var(--radius-pill); }
body.liquid .wz-dock-wrap,
body.liquid .wz-dock,
body.liquid .wz-dock-trigger,
body.liquid .toast,
body.liquid #toast { border-radius: var(--lg-r); }

/* ================================================================ 毛玻璃基座（大面积 + 基础表面）
   这些表面不进 lgfx（面积大 / 数量多），只做 backdrop-filter 毛玻璃 —— 三引擎都支持。 */
body.liquid .engine-btn,
body.liquid .cmd-trigger,
body.liquid .engine-dropdown,
body.liquid .tb-toggle, body.liquid .tb-panel, body.liquid .tb-right, body.liquid .tb-btn,
body.liquid .ls-trigger, body.liquid .overlay-close, body.liquid .dialog-close,
body.liquid .wz-dock-wrap, body.liquid .wz-dock-trigger, body.liquid .dock-icon,
body.liquid .folder-pop-panel, body.liquid .wz-fpop-panel, body.liquid .wz-fpop-btn,
body.liquid #wzPanel,
body.liquid .settings-card, body.liquid .settings-view,
body.liquid .toast, body.liquid #toast,
body.liquid .modal > *:not(button):not(.mascot-float):not(.ft-confirm-backdrop):not(.ft-addhome-backdrop):not(backdrop) {
  /* v1.2.785 性能：全屏级面板封顶 12px（面积 × 半径 是成本主因）
     v1.2.845 统一规则：面板文本一律 var(--text) —— 深色液态=白字，lg-light 自动翻深字。
     ❗禁止在这里写死颜色：写死白字就是「浅色变体文本不换色」连环 bug 的根源。 */
  background: rgba(var(--lg-panel-rgb, 255,255,255), var(--lg-panel-a)) !important;
  border: 1px solid var(--lg-line) !important;
  backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  -webkit-backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  box-shadow: var(--lg-shadow);
  color: var(--text-content);
}
/* ================================================================ 承「图标/文字」的 chrome 一律用「深玻璃」
   v1.2.782 修「背景颜色相近导致看不清」（用户三张截图）：
   这类小件里是**白色图标/白字**，底色若用浅 tint，一旦壁纸偏浅（浅绿/米黄）就变成
   「白图标压浅底」= 完全看不清（图 3 那排设置/主题/分享/用户最明显）。
   改深玻璃后白图标在任何壁纸上都有足够对比，也与已修好的 TAB / 弹层风格统一。
   （只改「承图标」的小件；不承文字的大面积面板仍走浅玻璃。） */
body.liquid .engine-btn, body.liquid .cmd-trigger, body.liquid .tb-btn, body.liquid .tb-toggle,
body.liquid .ls-trigger, body.liquid .overlay-close, body.liquid .dialog-close,
body.liquid .wz-fpop-btn, body.liquid .dock-icon, body.liquid .wz-dock-trigger {
  background: rgba(10, 16, 28, .34) !important;
  border-color: rgba(255, 255, 255, .22) !important;
  color: #fff !important;
  /* ❗v1.2.785 性能：这类小件底下**没有需要透出的内容**（本就是深色底+白图标），
     上一版从大分组规则继承了 `blur(18px)` —— 纯浪费，4K 上就是白烧 GPU。这里直接关掉。 */
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .45)),
              inset 0 0 0 1px rgba(255,255,255,calc(var(--lg-spec) * .14)),
              0 8px 22px rgba(0,0,0,.22);
}
/* 图标兜底：无论落在什么背景上，加一层投影保证轮廓清晰。文字有 text-shadow，图标吃不到，
   所以图标必须单独给 drop-shadow —— 白色线性图标在浅背景上全靠这个。 */
body.liquid .uic,
body.liquid .tb-ico,
body.liquid .tb-toggle-bars i,
body.liquid .engine-icon,
body.liquid .dock-icon svg,
body.liquid .wz-dock-trigger svg,
body.liquid button > svg,
body.liquid a > svg {
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .55));
}
/* 纯文字小键（工具栏「收起」等）也补足对比 */
body.liquid .tb-btn, body.liquid .overlay-close { text-shadow: 0 1px 2px rgba(0,0,0,.5); }
body.liquid .search input::placeholder { color: var(--text-muted); } /* v1.2.845 令牌化 */
body.liquid .search input:focus,
body.liquid .engine-btn:hover,
body.liquid .tb-btn:hover,
body.liquid .tb-toggle:hover {
  box-shadow: inset 0 1px 0 var(--lg-edge), inset 0 0 0 1px rgba(255,255,255,calc(var(--lg-spec) * .45)), var(--lg-shadow);
}

/* ================================================================ 小工具面板 + 各工具浮层（用户点名必须做）
   这些浮层原本消费 --ovl-* 玻璃变量（style.20260722.css）→ 这里整体重指向「玻璃」语义，
   内部所有卡面/输入/芯片自动变玻璃；再给面板本体补 backdrop-filter 毛玻璃。
   ❗只改 body.liquid 作用域内的变量，不触碰 style.20260722.css。 */
body.liquid .ft-modal,
body.liquid .ft-confirm-modal,
body.liquid .ft-rename-modal,
body.liquid .notes-modal,
body.liquid .td-modal,
body.liquid .nt-modal,
body.liquid .studio-modal,
body.liquid .hot-modal,
body.liquid .wx-modal,
body.liquid .sh-modal,
body.liquid .td-hist-detail {
  --ovl-mask: rgba(4,8,16,.34);
  --ovl-panel: rgba(var(--lg-panel-rgb, 255,255,255), var(--lg-panel-a));
  --ovl-border: var(--lg-line);
  --ovl-shadow: var(--lg-shadow);
  --text: #f2f5fa;
  --text-dim: rgba(242,245,250,.78);
  --text-muted: rgba(242,245,250,.58);
  --tool-sep: rgba(255,255,255,.14);
  --tool-hover: rgba(255,255,255,.12);
  --tool-hover-strong: rgba(255,255,255,.18);
  --tool-active-bg: color-mix(in srgb, var(--accent, #22c55e) 22%, transparent);
  --tool-active-text: #ffffff;
  --input-bg: rgba(255,255,255,.10);
  --input-border: rgba(255,255,255,.18);
  --chip-bg: rgba(255,255,255,.10);
  --chip-border: rgba(255,255,255,.18);
  --panel-border: rgba(255,255,255,.16);
}
/* 面板本体：毛玻璃（大面积不做透镜） */
body.liquid :is(.ft-modal,.notes-modal,.td-modal,.nt-modal,.studio-modal,.hot-modal,.wx-modal,.sh-modal) [class*="panel"],
body.liquid :is(.ft-modal,.notes-modal,.td-modal,.nt-modal,.studio-modal,.hot-modal,.wx-modal,.sh-modal) [class*="card"],
body.liquid :is(.ft-modal,.notes-modal,.td-modal,.nt-modal,.studio-modal,.hot-modal,.wx-modal,.sh-modal) [class*="sheet"] {
  backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  -webkit-backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  border: 1px solid var(--lg-line);
  box-shadow: var(--lg-shadow);
}
/* 内部输入/小卡片：更轻的一层雾，避免「玻璃叠玻璃」（WWDC 明确反对）→ 用填充色 + 透明度 */
body.liquid :is(.ft-modal,.notes-modal,.td-modal,.nt-modal,.studio-modal,.hot-modal,.wx-modal) input,
body.liquid :is(.ft-modal,.notes-modal,.td-modal,.nt-modal,.studio-modal,.hot-modal,.wx-modal) textarea {
  background: var(--input-bg) !important;
  border: 1px solid var(--input-border) !important;
  color: var(--text-content); /* v1.2.845 令牌化 */
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
/* 小工具面板 #wzPanel 内部同样「填充色 + 透明度」，不再叠玻璃 */
body.liquid #wzPanel [class*="card"],
body.liquid #wzPanel [class*="item"] {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* ================================================================ 挂件卡 / 桌面小组件（.wcard 表层）
   约定：新挂件只要沿用 .wcard 就自动跟随本主题。 */
body.liquid {
  --icfx-wz-bg: rgba(var(--lg-panel-rgb, 255,255,255), var(--lg-panel-a));
  --icfx-wz-line: var(--lg-line);
  --icfx-wz-shadow: var(--lg-shadow);
}
/* v1.2.845 统一规则：挂件卡文本色由基础层 .wcard 的 var(--text) 提供（深=白/浅=深自动翻转），
   此处**不得**再写死白字 —— 上一版写死 #f2f5fa 导致浅色变体下热搜/待办/电台等全部泛白（用户截图）。 */
/* 未挂透镜的挂件（超出 LENS_CAP）走毛玻璃，保证观感一致 */
body.liquid .wcard:not(.lg),
body.liquid .wz-clock:not(.lg),
body.liquid .wz-fold:not(.lg),
body.liquid .wz-folder:not(.lg) {
  backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  -webkit-backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
}

/* ================================================================ 文件夹弹层 / 预览一致性
   ❗两处割裂（用户报「文件夹预览效果应该遵循文件夹内容」+「文件夹里的网站名称文字颜色不协调」）：
     ① 弹层漏了 remap --text（只给工具浮层 remap 过）→ 弹层内 .tile-title 仍吃 body.light 的
        **深色** --text，与主题别处的浅色文字不一致；
     ② 预览小格还是经典那张 rgba(255,255,255,.95) 白纸片，与弹层内「玻璃瓦片」观感割裂。
   修：弹层与主题统一为「深色磨砂玻璃 + 浅色文字」；预览小格改用同一套玻璃材质。 */
body.liquid .folder-pop,
body.liquid .wz-fpop {
  --text: #f2f5fa;
  --text-dim: rgba(242,245,250,.78);
  --text-muted: rgba(242,245,250,.58);
}
body.liquid .folder-pop-panel,
body.liquid .wz-fpop-panel {
  /* v1.2.808：弹层透明度 = 底色 alpha(--icfx-fpop-a) + 模糊半径(--icfx-fpop-blur) 两独立变量，
     由「图标外观→文件夹弹层透明度」滑块同时写。默认 22px/.36 = 现状。拖小→更透更清晰；拖大→更磨砂。 */
  background: rgba(10,16,28,var(--icfx-fpop-a, .36)) !important;
  border-color: rgba(255,255,255,.20) !important;
  /* v1.2.845 成对规则：此弹层**恒深底**（不随 lg-light 翻浅）→ 白字必须跟深底写在同一条规则里 */
  color: #f2f5fa !important;
  backdrop-filter: blur(var(--icfx-fpop-blur, 22px)) saturate(1.4);
  -webkit-backdrop-filter: blur(var(--icfx-fpop-blur, 22px)) saturate(1.4);
}
body.liquid .folder-pop .tile-title,
body.liquid .wz-fpop .tile-title {
  color: var(--text-name);   /* v1.2.870 接网站名称管理 */
  text-shadow: 0 1px 3px rgba(0,0,0,.55);
}
body.liquid .cat-folder i,
body.liquid .wz-fold i,
body.liquid .wz-fpop-ic {
  background: rgba(255,255,255,.22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
}
body.liquid .cat-folder i.icon-failed,
body.liquid .wz-fold i.icon-failed { background: rgba(0,0,0,.34); }

/* ================================================================ 弹层 / 设置 / 遮罩 */
body.liquid .modal {
  background: rgba(4,8,16,.34);
}
body.liquid .folder-pop,
body.liquid .wz-fpop { background: transparent; }
body.liquid .folder-pop-bg,
body.liquid .wz-fpop-bg { background: rgba(4,8,16,.34); }
/* WWDC：不玻璃叠玻璃 → 文件夹弹层里的小格子用「填充色 + 透明度」，不再做第二层玻璃 */
body.liquid .wz-fpop-panel .wz-fpop-ic {
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
/* v1.2.845 统一规则：folder-pop 恒深底(312-317/322)→白字保留；set-* 在玻璃面板内→走令牌翻深浅 */
body.liquid .folder-pop-title,
body.liquid .folder-pop-name { color: #f2f5fa; }
body.liquid .set-row-label,
body.liquid .set-section-title { color: var(--text-content); } /* v1.2.848 统一文本令牌 */
body.liquid .set-row-desc,
body.liquid .theme-tabs-hint { color: var(--text-muted); } /* v1.2.845 令牌化 */
body.liquid .set-row { border-bottom-color: rgba(255,255,255,.12); }
body.liquid .set-select,
body.liquid .settings-nav {
  background-color: rgba(255,255,255,.10);   /* v1.2.797：同 neo，用 background-color 保住下拉箭头图 */
  border-color: rgba(255,255,255,.16);
  color: var(--text-content); /* v1.2.845 令牌化 */
  box-shadow: none;
}
body.liquid .set-switch {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.22);
}
body.liquid .set-switch:checked { background: var(--accent, #22c55e); }
body.liquid .set-switch::after { background: #fff; }

/* 主题 TAB（设置面板内）在玻璃下也统一 */
/* ❗TAB 用「深色半透明底 + 白字」：原来写浅底 + 近白字，白底白字看不清。
   --tt-backdrop 是 v1.2.763 的吸顶垫底变量，必须一起指过去，否则吸顶时露出一条浅色带。 */
/* ❗v1.2.770a：改成「磨砂玻璃槽 + 玻璃胶囊选中态」——上次为修白字白底做成了近黑实底(.46)，
   用户反馈「黑色底不好看」。现在保留足够暗度（.24 + blur 采样壁纸）让白字在任何壁纸上都读得清，
   但槽本身就是一块玻璃，不再是死黑板。 */
body.liquid .theme-tabs {
  background: rgba(10,16,28,.24);
  border: 1px solid var(--lg-line);
  border-radius: var(--lg-r);
  backdrop-filter: blur(20px) saturate(1.4);
  -webkit-backdrop-filter: blur(20px) saturate(1.4);
  box-shadow: inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .35)), var(--lg-shadow);
}
body.liquid #panel-theme .theme-tabs { --tt-backdrop: rgba(10,16,28,.30); }
/* ❗吸顶垫底 ::before 是往四周外扩（inset:-6px -12px -8px -6px）的**方角**矩形 →
   看着像一条方角黑板（用户报「这 TAB 没圆角效果」）。给它同样的圆角即可。 */
body.liquid #panel-theme .theme-tabs::before { border-radius: var(--lg-r); }
body.liquid .theme-tab { color: var(--text-title); text-shadow: 0 1px 3px rgba(0,0,0,.35); } /* v1.2.845 令牌化 */
body.liquid .theme-tab.on {
  background: rgba(255,255,255,.22);
  color: var(--text-content); font-weight: 600; /* v1.2.845 令牌化 */
  border-radius: calc(var(--lg-r) - 4px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.50), inset 0 0 0 1px rgba(255,255,255,.18), 0 3px 10px rgba(0,0,0,.25);
}
body.liquid .theme-warn {
  background: rgba(255,255,255,.10); border: 1px solid var(--lg-line); color: var(--text-muted); /* v1.2.845 令牌化 */
}

/* ================================================================ 同心圆角（WWDC Concentricity）
   内层元素圆角 = 外层圆角 − 内边距，避免「嵌套圆角看着不对」。 */
body.liquid .tile-img,
body.liquid .tile-ticon { border-radius: calc(var(--tile-size, 96px) * 0.13); }
body.liquid .wz-fpop-ic img,
body.liquid .wz-fpop-ic b { border-radius: 16%; }
/* ❗文件夹瓦片单独处理：
   ① 不做透镜（lgfx 已排除 .cat-icon）；② 经典下它本来就有两层白板 ——
      `.cat-icon.has-kids`（rgba(255,255,255,.5)）+ 每个小格 `.cat-folder i`（.95）。
      再叠玻璃 tint + 白描边 = 三层白糊成一坨（用户报「鼠标经过文件夹不好看」）。
      故外层白板降到 .30、并去掉玻璃那圈白边，只留经典的小格白底保证文字图标可读。 */
/* 文件夹底盘用「磨砂玻璃」而不是经典那层实心白板：
   白板在半透明主题里只会读成一块灰；改成低不透明度 + 采样壁纸的毛玻璃，
   与顶栏/面板同一套材质语言。小格仍保留经典的白底以保证文字图标可读。 */
/* v1.2.804: folder tiles now use lgfx lens (liquid); no separate flat glass底盘 (avoids double glass). */
body.liquid .tile-cat.lg,
body.liquid .tile-cat .lg { box-shadow: none; }
/* v1.2.804: keep folder tile lg glass layers visible (lgfx refracts them now). */
/* 普通瓦片的白色高光环也收一档：原来 --lg-spec*.30 在浅色壁纸上像描了一圈死白的边 */
body.liquid .tile.lg > .lg-shine {
  box-shadow: inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .70)),
              inset 0 0 0 1px rgba(255,255,255,calc(var(--lg-spec) * .16));
}
body.liquid .tile-add {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.30);
  color: var(--text-title); /* v1.2.845 令牌化 */
}
/* ❗「添加」空槽不做玻璃（同新拟态的处理）：它是虚线空位，里面只有一个 40px 图标位。
   只清图标位、保留虚线与文字色，否则会出现「虚线框里一坨椭圆白块」（用户报「添加按钮一直这样」）。 */
body.liquid .tile-add .tile-icon { background: transparent; box-shadow: none; color: inherit; }
body.liquid .tile-add .lg-refract,
body.liquid .tile-add .lg-tint,
body.liquid .tile-add .lg-shine { display: none; }

/* ================================================================ 便签小工具（note-deck 族）
   ❗用户报「标签没有效果」= 这一族完全没跟随液态玻璃主题。
   注意：竖标签 .note-tab 的底色是 JS 按「每张便签自己的颜色」内联写死的（语义色，不能动），
   所以主题只能给它加「玻璃件」：毛玻璃 + 顶部镜面高光 + 玻璃投影，
   让它从「一片彩纸」变成「一块彩色玻璃」。 */
/* ❗竖标签的底色是 JS 内联写死的实色纸色 → 实色底上 backdrop-filter 什么也看不见（用户问
   「便签不能做液态玻璃效果吗」就是这个原因）。正解：让 JS 同时暴露 --paper，再用 color-mix
   把它调成半透明 → 既保留「每张便签一个色相」的语义区分，又真的能透出并模糊壁纸。
   （!important 是必须的：内联 style 只有 !important 能压过去。） */
body.liquid .note-tab {
  background: color-mix(in srgb, var(--paper, #f6e58d) 30%, transparent) !important;
  backdrop-filter: blur(14px) saturate(1.35);
  -webkit-backdrop-filter: blur(14px) saturate(1.35);
  box-shadow: -3px 2px 12px rgba(0,0,0,.32),
              inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .65)),
              inset 0 0 0 1px rgba(255,255,255,.22);
}
body.liquid .note-tab.hover,
body.liquid .note-tab.open {
  box-shadow: -8px 6px 24px rgba(0,0,0,.45),
              inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .75)),
              inset 0 0 0 1px rgba(255,255,255,.28);
}
/* 标签上的玻璃光泽（斜向高光）。标签文字要抬到高光之上，否则被盖。 */
body.liquid .note-tab::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.30), rgba(255,255,255,.02) 42%, rgba(255,255,255,.12));
}
body.liquid .note-tab-label { z-index: 1; }

/* 收起态 pill / 新增 + / 「+N」更多：同样换玻璃，否则右边缘一处彩纸一处玻璃很割裂 */
body.liquid .note-pill {
  background: rgba(16,22,34,.46) !important;
  backdrop-filter: blur(12px) saturate(1.35);
  -webkit-backdrop-filter: blur(12px) saturate(1.35);
  box-shadow: -2px 1px 8px rgba(0,0,0,.30), inset 0 0 0 1px rgba(255,255,255,.20);
}
body.liquid .note-plus {
  background: rgba(255,255,255,.16);
  backdrop-filter: blur(10px) saturate(1.3);
  -webkit-backdrop-filter: blur(10px) saturate(1.3);
  box-shadow: -2px 2px 8px rgba(0,0,0,.30),
              inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .6)),
              inset 0 0 0 1px rgba(255,255,255,.20);
}
body.liquid .note-plus:hover { background: rgba(255,255,255,.26); }
body.liquid .note-more-wrap .note-tab {
  background: rgba(16,22,34,.46) !important;
  border-color: rgba(255,255,255,.42);
}
/* 展开的便签纸：也做成彩色玻璃（含字的表面要留足亮度 → 纸色比例给到 ~58%，否则深色 --ink 在
   深色壁纸上读不出来）。--paper 本来就已经是 CSS 变量（app.js 12010 行），纯 CSS 即可覆盖。 */
body.liquid .note-editor,
body.liquid .note-editor-sheet {
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--paper, #f6e58d) 58%, transparent) 0%,
    color-mix(in srgb, var(--paper, #f6e58d) 44%, transparent) 100%) !important;
  backdrop-filter: blur(20px) saturate(1.3);
  -webkit-backdrop-filter: blur(20px) saturate(1.3);
  box-shadow: var(--lg-shadow),
              inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .6)),
              inset 0 0 0 1px rgba(255,255,255,.22);
}
body.liquid .note-editor-sheet { background: transparent !important; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; }

/* ================================================================ 日历/待办的「黄历浮层卡」(#tdHl)
   ❗用户报「日历这里不协调」：那张卡**一片灰、字几乎看不见**。
   根因：基础 CSS 明确要求 `.td-hl` **必须完全不透明**（密集文字要可读），底色是浅色；
   而我在 `.td-modal` 作用域里把 `--text` 重指向了浅色（`#f2f5fa`）→ **浅字落在浅卡上**。
   修：卡内把文字变量改回与底色匹配，卡面做成玻璃（浅模式=浅玻璃+深字；深模式=深玻璃+浅字，
   深模式直接沿用主题的浅色 --text）。 */
body.liquid.light .td-hl {
  --text: #16202c;
  --text-dim: rgba(22,32,44,.72);
  --text-muted: rgba(22,32,44,.55);
  background: color-mix(in srgb, #ffffff 78%, transparent) !important;
  border: 1px solid rgba(255,255,255,.60) !important;
  color: #16202c;
  backdrop-filter: blur(20px) saturate(1.35);
  -webkit-backdrop-filter: blur(20px) saturate(1.35);
  box-shadow: var(--lg-shadow);
}
body.liquid.light .td-hl .hl-bar.off,
body.liquid.light .td-hl .hl-bar.work { color: #16202c; }
body.liquid.light .td-hl .hl-yj .j { color: #c93b3b; }
body.liquid.light .td-hl .hl-yj .y { color: #167c3f; }
body.liquid.dark .td-hl {
  background: rgba(10, 16, 28, .62) !important;
  border: 1px solid var(--lg-line) !important;
  backdrop-filter: blur(20px) saturate(1.35);
  -webkit-backdrop-filter: blur(20px) saturate(1.35);
  box-shadow: var(--lg-shadow);
}
/* 移动端的「某日面板」(#tdDay/.td-day) 同理：基础是 rgba(255,255,255,.99) 的实心浅卡 */
body.liquid.light .td-day {
  --text: #16202c;
  --text-dim: rgba(22,32,44,.72);
  --text-muted: rgba(22,32,44,.55);
  background: color-mix(in srgb, #ffffff 84%, transparent) !important;
  color: #16202c;
  backdrop-filter: blur(20px) saturate(1.35);
  -webkit-backdrop-filter: blur(20px) saturate(1.35);
}
body.liquid.dark .td-day { background: rgba(10, 16, 28, .66) !important; }

/* ================================================================ 方案 A：自适应 scrim（v1.2.783）
   lgfx 采样「当前可见壁纸」的平均亮度 → 给 body 打 lg-on-light / lg-on-dark。
   · 壁纸偏**亮**（浅绿/米黄/雪景…）→ 玻璃改用**暗垫底**：白字、白图标、白色线性图标才有对比
     （这正是用户三张截图里"看不清"的场景）。
   · 壁纸偏**暗** → 维持浅 tint（白字在暗底本来就好读，浅 tint 也保留通透感）。 */
body.liquid.lg-on-light {
  --lg-panel-rgb: 8, 14, 26;     /* 底色翻成深色 */
  --lg-panel-a: .26;             /* 不透明度提一档，保证 ≥4.5:1 */
  --lg-tint-a: .20;
  --lg-line: rgba(255, 255, 255, .24);
}
body.liquid.lg-on-light .search input {
  background: rgba(8, 14, 26, .28) !important;
  border-color: rgba(255, 255, 255, .34) !important;
}
body.liquid.lg-on-light .folder-pop-panel,
body.liquid.lg-on-light .wz-fpop-panel { background: rgba(8, 14, 26, .52) !important; }
/* 便签纸是「浅色纸 + 深字」，翻深色会毁掉它的语义色 → 亮壁纸下只加一层暗垫底压住对比 */
body.liquid.lg-on-light .note-tab { backdrop-filter: blur(14px) saturate(1.35) brightness(.94); }

/* v1.2.860 补：lg-on-dark（暗壁纸）原本未定义 --lg-panel-rgb，面板落默认白(255,255,255)+白字→隐形。
   统一翻成深底，保证白字在任何壁纸极性下都可见（与 lg-on-light 对称，杜绝白底白字陷阱）。 */
body.liquid.lg-on-dark {
  --lg-panel-rgb: 8, 14, 26;
  --lg-panel-a: .26;
  --lg-tint-a: .20;
  --lg-line: rgba(255, 255, 255, .24);
}

/* ================================================================ 帧率兜底：低端/省电
   4K + 大面积毛玻璃是主要开销；用户可在设置里关「毛玻璃」，这里只留极轻的一层。 */
/* v1.2.785 P2「性能模式」：关折射（lgfx.disable 会摘掉注入层）+ 大面积模糊降到 8px。
   ❗不要把 .lg-tint 也隐藏 —— 没底的话白字会失读。 */
body.liquid.lg-lite { --lg-frost: 8px; --lg-panel-a: .20; }
body.liquid.lg-lite #gridFade,
body.liquid.lg-lite .grid-fade { backdrop-filter: none; -webkit-backdrop-filter: none; }

/* ================================================================ 移动端：收窄模糊，避免小屏发糊 */
@media (max-width: 720px) {
  body.liquid { --lg-frost: 12px; --lg-panel-a: .12; }
  body.liquid .lg { box-shadow: 0 10px 26px rgba(0,0,0,.34); }
}

/* ================================================================ 无障碍：系统级开关必须响应（WWDC）
   降低透明度 → 更不透明 + 去掉模糊与位移；增强对比度 → 近实色 + 明确描边；减弱动效 → 去过渡。 */
@media (prefers-reduced-transparency: reduce) {
  body.liquid { --lg-panel-a: .92; --lg-tint-a: .55; --lg-frost: 0px; }
  body.liquid .lg-refract { display: none !important; }
  body.liquid .lg { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
  body.liquid .lg > .lg-tint { background: rgba(18,24,38,.90); }
  body.liquid #gridFade,
  body.liquid .grid-fade { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(6,10,18,.5); }
  body.liquid :is(.search input,.engine-btn,.cmd-trigger,.tb-btn,.tb-toggle,.ls-trigger,.overlay-close,
    .dialog-close,.wz-dock-trigger,.dock-icon,.folder-pop-panel,.wz-fpop-panel,
    #wzPanel,.settings-card,.settings-view,.toast,#toast) {
    background: rgba(18,24,38,.94) !important;
    backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  }
}
@media (prefers-contrast: more) {
  body.liquid { --lg-line: rgba(255,255,255,.65); --lg-panel-a: .30; }
  body.liquid .lg > .lg-shine { box-shadow: inset 0 0 0 2px rgba(255,255,255,.85); }
  body.liquid :is(.search input,.folder-pop-panel,.wz-fpop-panel,#wzPanel,.settings-card,.settings-view) {
    background: rgba(10,14,24,.92) !important;
    border-color: rgba(255,255,255,.7) !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.liquid .tile,
  body.liquid .lg,
  body.liquid .tile-icon { transition: none !important; }
}

/* ==========================================================================
   v1.2.769b 覆盖审计补齐（对照 theme-neumorph.css 的覆盖清单逐项过）
   --------------------------------------------------------------------------
   审计方法：新拟态层 body.neo 是已验证的全覆盖主题层 → 它覆盖的选择器/变量即"应覆盖清单"。
   结论：**token 层已全覆盖**（未重指的 11 个全是 --neo-*，与液态玻璃无关）。
        **选择器层有缺口** → 本段补齐：引导页 / 提词器 / 颜色选择器 / 反馈表单 / 书签管理 /
        快捷设置 / 壁纸面板 / 挂件区图标按钮 / 若干小项。
   故意**不**改（与 neo 同判断）：
     · `.salary-fab/.salary-heart`（薪跳，品牌色语义，同色化会抹掉可识别性）
     · `#dynamicBg`/`#dynWall`（经典专属功能，液态玻璃保留壁纸、不禁用它们）
     · `.tile.drag-*`/`.snap-*`（拖拽/吸附中间态，不产生常驻表面）
     · `:where(html.mt-boot-bg) #bg`（首帧壁纸工具类）、`.ntsw`（新拟态色块 UI）
   ========================================================================== */

/* ---------------------------------------------------------------- 模块兜底（新增模块自动跟随）
   判定：类名里同时含「模块前缀」和「表面名词」→ 视为玻璃面。
   今后新模块只要沿用 *_panel/_card/_sheet/_pop/_menu/_dropdown/_bar/_box 命名，就自动跟随主题，
   不必再回来改这个文件。 */
body.liquid :is([class*="tp-"],[class*="cp-"],[class*="fb-"],[class*="bm-"],[class*="quick-"],
                [class*="guide-"],[class*="onboard-"],[class*="wzi-"],[class*="wzp-"],
                [class*="bing-"],[class*="wp-"],[class*="feature-"]):is(
                [class*="panel"],[class*="card"],[class*="sheet"],[class*="pop"],
                [class*="menu"],[class*="dropdown"],[class*="bar"],[class*="box"],[class*="form"]) {
  background: rgba(var(--lg-panel-rgb, 255,255,255), var(--lg-panel-a)) !important;
  border: 1px solid var(--lg-line) !important;
  backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  -webkit-backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  box-shadow: var(--lg-shadow);
  color: var(--text-content); /* v1.2.845 令牌化：随深浅翻转 */
}
/* 这些模块内部的文字色统一（否则多数是 body.light 的深色字，落在玻璃上会糊） */
body.liquid :is([class*="tp-"],[class*="cp-"],[class*="fb-"],[class*="bm-"],[class*="quick-"],
                [class*="guide-"],[class*="onboard-"],[class*="wzi-"],[class*="wzp-"],
                [class*="bing-"],[class*="wp-"],[class*="feature-"]) :is(h1,h2,h3,h4,label,p,span,li,small,strong) {
  text-shadow: none;
}
body.liquid :is(.guide-body,.guide-tagline,.onboard-desc,.onboard-sub,.onboard-tip,
                .onboard-name,.feature-card,.step-text,.fb-label,.wzp-sub) { color: var(--text-content); } /* v1.2.845 令牌化 */
/* ❗修 v1.2.787：.wp-menu-item 是「壁纸偏好」左侧菜单**按钮** —— 类名同时含 wp- 和 menu，
   被上面的「模块兜底」误判成玻璃面板：1px 描边 + 深底 + 大阴影（全 !important），
   小尺寸下观感成「直角描边卡片」（用户截图报「缺少圆角」）。按钮不是面板 → 还原基础菜单样式。 */
body.liquid .wp-menu-item.wp-menu-item {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.liquid .wp-menu-item.wp-menu-item:hover { background: rgba(255,255,255,.08) !important; }
body.liquid .wp-menu-item.wp-menu-item.active { background: rgba(255,255,255,.15) !important; }
/* ❗修 v1.2.832：.wp-menu 左栏**容器**同样含 wp-+menu 被上面兜底命中成玻璃面板，但兜底规则不带圆角
   → 直角玻璃框（用户截图报「没有圆角效果」）。容器保留玻璃观感、补液态中件圆角 token。 */
body.liquid .wp-menu { border-radius: var(--lg-r); }
body.liquid :is(.onboard-card,.guide-card,.feature-card,.fb-form,.cp-header,.tp-content) h2 { color: var(--text-content); } /* v1.2.845 令牌化 */

/* ---------------------------------------------------------------- 引导页：选项卡 / 预览块 / 开始按钮 */
body.liquid .onboard-opt {
  background: rgba(255,255,255,.12); border: 1px solid var(--lg-line); color: var(--text-content); /* v1.2.845 令牌化 */
  box-shadow: var(--lg-shadow), inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .5));
}
body.liquid .onboard-opt:hover { border-color: rgba(255,255,255,.34); transform: translateY(-2px); }
body.liquid .onboard-opt.on { background: rgba(255,255,255,.20); box-shadow: inset 0 0 0 2px var(--accent, #22c55e), var(--lg-shadow); }
body.liquid .onboard-pv-neo,
body.liquid .onboard-pv { background: rgba(255,255,255,.12); }
body.liquid .onboard-start {
  box-shadow: var(--lg-shadow), inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .7)), inset 0 0 0 1px rgba(255,255,255,.22);
}

/* ---------------------------------------------------------------- 提词器覆层（#teleprompter）*/
body.liquid #teleprompter { background: rgba(6,10,18,.42); backdrop-filter: blur(14px) saturate(1.3); -webkit-backdrop-filter: blur(14px) saturate(1.3); }
body.liquid #teleprompter .tp-content { background: rgba(10,16,28,.34) !important; color: #f2f5fa; }

/* ---------------------------------------------------------------- 颜色选择器 / 色板（.cp-* / .swatch-*）*/
body.liquid .cp-header { border-bottom-color: rgba(255,255,255,.14); }
body.liquid .cp-close { background: rgba(255,255,255,.12); color: var(--text-content); border-radius: var(--lg-r-sm); } /* v1.2.845 令牌化 */
body.liquid .swatch-none,
body.liquid .swatch-custom { border-color: rgba(255,255,255,.30); background: rgba(255,255,255,.10); }

/* ---------------------------------------------------------------- 挂件区图标按钮 / 挂件面板（.wzs / .wzp / .wzi / .wzd）*/
body.liquid [class^="wzs-"],
body.liquid [class*=" wzs-"] {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.20);
  backdrop-filter: blur(10px) saturate(1.3);
  -webkit-backdrop-filter: blur(10px) saturate(1.3);
  box-shadow: inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .5)), var(--lg-shadow);
  color: var(--text-content); /* v1.2.845 令牌化 */
}
body.liquid .wz-dock .wzd-sep { background: rgba(255,255,255,.18); }
body.liquid .wz-dock .wzd-collapse {
  background: rgba(255,255,255,.14); color: var(--text-content); border-radius: 50%; /* v1.2.845 令牌化 */
  box-shadow: inset 0 1px 0 rgba(255,255,255,calc(var(--lg-spec) * .5));
}
body.liquid .wzi-pick,
body.liquid .wzi-opt { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.18); color: var(--text-content); } /* v1.2.848 统一文本令牌 */
body.liquid .wzi-opt:hover { background: rgba(255,255,255,.18); }

/* ---------------------------------------------------------------- 小项补漏（审计里"neo 覆盖但我没覆盖"的根）*/
/* 右上角工具栏：图标态 / 汉堡条 / 用户项 */
body.liquid .tb-ico { color: var(--text-content); } /* v1.2.848 统一文本令牌 */
/* ❗v1.2.773 修：「三横菜单」观感别扭的根因 —— 上一版照抄新拟态时把 .tb-toggle-bars 的
   background 写成了实色，而 neo 写的是 **transparent**。.tb-toggle-bars 只是个 20×14 的
   定位盒（三根横线是里面的 <i>），给盒子刷实色就变成「白块 + 黑线」。
   正确做法：盒子保持透明，横线用 currentColor 跟随按钮文字色。 */
body.liquid .tb-toggle { color: var(--text-content); } /* v1.2.848 统一文本令牌 */
body.liquid .tb-toggle-bars,
body.liquid .tb-toggle-bars::before,
body.liquid .tb-toggle-bars::after { background: transparent; }
body.liquid .tb-toggle-bars i { background: currentColor; }
body.liquid .tb-user-item { color: var(--text-content); } /* v1.2.848 统一文本令牌 */
body.liquid .tb-user-item:hover { background: rgba(255,255,255,.14); color: var(--text-content); } /* v1.2.848 统一文本令牌 */
/* 搜索引擎下拉列表项 */
body.liquid .engine-list button:hover { background: rgba(255,255,255,.14); }
/* 改名弹层的遮罩（它不一定落在 .ft-rename-modal 作用域内，单独指） */
body.liquid .ft-rename-backdrop { background: rgba(6,10,18,.42); }
/* 这几处内容自带底色，同样不需要模糊 */
body.liquid .toast, body.liquid #toast, body.liquid .engine-dropdown {
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}

/* 图标底色一体弹窗 */
body.liquid #icoBgcPop {
  background: rgba(var(--lg-panel-rgb, 255,255,255), var(--lg-panel-a));
  border-color: var(--lg-line);
  backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  -webkit-backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  box-shadow: var(--lg-shadow);
}
/* 时钟 / 日期 / 农历 / 备案条 / 滚动提示：白色 + 阴影（v1.2.862 撤销 v1.2.851 令牌化，回归用户约定：固定白色+阴影适配任何壁纸） */
body.liquid #clock { color: #ffffff; text-shadow: 0 2px 12px rgba(0,0,0,.42); }
body.liquid #date,
body.liquid .date-lun,
body.liquid #lunarFest { color: rgba(255,255,255,.90); text-shadow: 0 1px 6px rgba(0,0,0,.40); }
body.liquid #tip,
body.liquid #tip .tip-text,
body.liquid #tip .tip-icp { color: var(--text-content); text-shadow: 0 1px 4px rgba(0,0,0,.45); }
body.liquid #tip a { color: var(--text-content); border-bottom-color: rgba(255,255,255,.28); }
body.liquid .scroll-hint { color: var(--text-muted); text-shadow: 0 1px 4px rgba(0,0,0,.45); }
/* 桌面小组件：时钟卡内文字 + 挂件文件夹弹层的头/条目 */
body.liquid .wz-clock-time { color: var(--text-content); text-shadow: 0 2px 10px rgba(0,0,0,.40); } /* v1.2.845 令牌化 */
body.liquid .wz-clock-date,
body.liquid .wz-clock-lun { color: var(--text-title); text-shadow: 0 1px 5px rgba(0,0,0,.38); } /* v1.2.845 令牌化 */
body.liquid .wz-fpop-head { border-bottom-color: rgba(255,255,255,.14); }
body.liquid .wz-fpop-c:hover,
body.liquid .wz-fpop-c:active { background: rgba(255,255,255,.10); }
/* 普通瓦片标题：与弹层统一为白字 + 阴影（原为纯白 + 三重黑描边，在玻璃上过重） */
body.liquid .tile-title { color: var(--text-name); text-shadow: 0 1px 5px rgba(0,0,0,.45); } /* v1.2.866 接网站名称管理 */

/* ================================================================ v1.2.823 液态玻璃·浅色变体（lg-light）
   触发：纯液态玻璃 + 深色开关=关/系统浅 → body 挂 lg-light（由 applyLiquidTheme 切换，neoglass 不会挂）。
   设计：把玻璃从「深navy+白字」翻成「浅磨砂+深字」，像 iOS 浅色模式玻璃。
   ❗壁纸自适应（lg-on-light/lg-on-dark）会按壁纸亮度把 --lg-panel-rgb 翻深 —— 浅色变体要强制浅玻璃，
   故关键玻璃变量用 !important 压过（lg-on-light 那几条本就没 !important）；同时 !important 白字块也要翻深字。 */
body.liquid.lg-light {
  --lg-panel-rgb: 240, 243, 247 !important;   /* 玻璃底色翻浅（压过 lg-on-light 的 8,14,26）—— 只钉色相，不钉透明度 */
  /* v1.2.855：panel-a / tint-a 去掉 !important —— 样式表 !important 会压过滑块写的 inline 值，
     导致浅色变体下「透明度」滑块完全失效（实测两端都是 .50）。下面两值仅作滑块缺省兜底。 */
  --lg-panel-a: .50;
  --lg-tint-a: .55;
  --lg-line: rgba(255,255,255,.55) !important;
  --lg-shadow: 0 18px 46px rgba(20,30,55,.22);
  --text: #16202c; --text-dim: rgba(22,32,44,.72); --text-muted: rgba(22,32,44,.55);
  --text-title: var(--text); --text-content: var(--text); /* v1.2.859 修 :root var(--text) 冻结白字（lg-light 浅玻璃须深字） */
  --text-name: #16202c; /* v1.2.866 浅玻璃下网站名称默认深字；用户自定义经 applyTextColors 注 body inline 会盖过本声明 */
  --tile-bg: rgba(255,255,255,.50); --tile-border: rgba(255,255,255,.55); --tile-hover: rgba(255,255,255,.62);
  --panel-bg: rgba(255,255,255,.50); --panel-border: rgba(255,255,255,.55);
  --overlay-bg: rgba(255,255,255,.86); --overlay-text: #16202c; --overlay-dim: rgba(22,32,44,.6);
  --search-bg: rgba(255,255,255,.55); --search-border: rgba(255,255,255,.6); --search-text: #16202c;
  --ovl-mask: rgba(20,30,50,.22); --ovl-panel: rgba(240,243,247,.50); --ovl-border: rgba(255,255,255,.5);
  --icfx-glass: rgba(255,255,255,.62); --icfx-glass-line: rgba(255,255,255,.5);
  --tool-sep: rgba(22,32,44,.14); --tool-hover: rgba(22,32,44,.06); --tool-hover-strong: rgba(22,32,44,.10);
  --tool-active-bg: color-mix(in srgb, var(--accent,#22c55e) 18%, transparent); --tool-active-text: #0a7a30;
  --input-bg: rgba(0,0,0,.05); --input-border: rgba(0,0,0,.12);
  --chip-bg: rgba(255,255,255,.50); --chip-border: rgba(255,255,255,.55);
  color: #16202c;
}
/* 压过 176-186 的 white-text !important 块：浅玻璃 + 深字 */
body.liquid.lg-light .modal > *:not(button):not(.mascot-float):not(.ft-confirm-backdrop):not(.ft-addhome-backdrop):not(backdrop) {
  background: rgba(240,243,247,.58) !important;
  border: 1px solid rgba(255,255,255,.55) !important;
  color: #16202c !important;
  box-shadow: 0 18px 46px rgba(20,30,55,.24) !important;
}
/* 搜索框压过 114 的 !important */
body.liquid.lg-light .search input {
  background: rgba(255,255,255,.58) !important;
  border: 1px solid rgba(255,255,255,.6) !important;
  color: #16202c !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 8px 22px rgba(20,30,55,.16) !important;
}
body.liquid.lg-light .search input::placeholder { color: rgba(22,32,44,.55) !important; }
/* 白字小件翻深字 */
body.liquid.lg-light .dialog-close { color: rgba(22,32,44,.6) !important; }
body.liquid.lg-light .set-row-label,
body.liquid.lg-light .set-section-title,
body.liquid.lg-light .theme-tabs-hint { color: #16202c !important; }
body.liquid.lg-light .set-row-desc { color: rgba(22,32,44,.6) !important; }
body.liquid.lg-light .tile-title { color: var(--text-name) !important; text-shadow: none !important; } /* v1.2.866 接网站名称管理 */
body.liquid.lg-light .wz-clock-time { color: #16202c !important; text-shadow: none !important; }
body.liquid.lg-light .wz-clock-date,
body.liquid.lg-light .wz-clock-lun { color: rgba(22,32,44,.78) !important; text-shadow: none !important; }
body.liquid.lg-light .sub-body a { color: #1769c9 !important; }
body.liquid.lg-light .sub-body a:visited { color: #6b4fc9 !important; }
/* v1.2.826：补 lg-light 块漏项 —— 设置面板右侧导航 + 语言选择 + 子面板标题在浅玻璃下翻深字，
   否则与左侧浅玻璃面板各自为政（白字/白底 撞色）。base 的浅色修正被 body.light:not(.liquid) 排除液态，
   故这里用 body.liquid.lg-light 前缀 + !important 直接压过 base 与 body.liquid 白字块。 */
body.liquid.lg-light .settings-nav {
  background-color: rgba(255,255,255,.55) !important;
  border-color: rgba(255,255,255,.6) !important;
  color: var(--text-content) !important;
}
body.liquid.lg-light .set-item { color: var(--text-content) !important; }
body.liquid.lg-light .set-item:hover { background: rgba(22,32,44,.06) !important; }

/* ================================================================ v1.2.845 文本色统一令牌化（取代 v1.2.844 补丁）
   规则（全部主题永久生效，新主题也照此办理）：
   ① 表面文本一律 var(--text)/var(--text-dim)/var(--text-muted) —— 深色态令牌=白字、lg-light 令牌=深字，自动翻转；
   ② 写死白字只允许「背景+文本写在同一条规则」的成对深底小件（如 folder 弹层/提词器/深玻璃按钮）；
   ③ 纯定位容器不进玻璃组（防幽灵壳，见下方 .wz-dock-wrap）。
   由此 v1.2.844 的「lg-light 面板翻字补丁」整体作废删除 —— 令牌翻转天然覆盖，不再需要逐面板打补丁。 */
/* ③ 「幽灵按钮」：.wz-dock-wrap 只是定位容器，却被 166-186 大面积玻璃组误染了一层自己的
   40x40 玻璃底 —— 弹出 Dock 时 trigger 已 opacity:0 隐藏，但 wrap 本体的玻璃壳还画在原处，
   透过半透明 Dock 就成了那颗「淡色按钮」（Playwright 实测复现+截图确认，隐藏 trigger 没用因为
   玻璃底长在 wrap 上而不是 trigger 上）。显式清掉 wrap 本体的玻璃面，玻璃只留给真面板。 */
body.liquid .wz-dock-wrap {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.liquid.lg-light .set-item:active { background: rgba(22,32,44,.10) !important; }
body.liquid.lg-light .set-item.active { background: rgba(22,32,44,.08) !important; color: var(--text-title) !important; }
body.liquid.lg-light .set-divider { background: rgba(22,32,44,.10) !important; }
body.liquid.lg-light .settings-card h2 { color: var(--text-title) !important; }
body.liquid.lg-light .settings-card h3 { color: var(--text-title) !important; }
body.liquid.lg-light #settingsMenu .lang-menu-box { color: var(--text-content) !important; }
body.liquid.lg-light #settingsMenu .lang-menu-box .set-select,
body.liquid.lg-light .settings-card .set-select {
  background: rgba(255,255,255,.85) !important;
  border-color: rgba(0,0,0,.16) !important;
  color: var(--text-content) !important;
}
body.liquid.lg-light .set-select option { background: #f2f5f3; color: #16202c; }
body.liquid.lg-light .sub-back { color: rgba(22,32,44,.5) !important; }
body.liquid.lg-light .sub-back:hover { color: #16202c !important; }
/* ❗修 v1.2.833：壁纸偏好左栏 .wp-menu-item 文字继承 base 白系（rgba(255,255,255,.62)/选中 #fff），
   lg-light 浅玻璃上白字看不清（用户截图报）。深字 + 深色微染 hover/选中（压过 v1.2.787 的白系底 !important）。 */
body.liquid.lg-light .wp-menu-item { color: rgba(22,32,44,.62) !important; }
body.liquid.lg-light .wp-menu-item:hover { background: rgba(22,32,44,.06) !important; color: rgba(22,32,44,.92) !important; }
body.liquid.lg-light .wp-menu-item.active { background: rgba(22,32,44,.10) !important; color: #16202c !important; }

/* ❗v1.2.833 浅色对比度补全：把 body.liquid 白字块 / 模块兜底压到浅玻璃上的白字翻深字，
   并提升过淡深字的透明度，确保「浅玻璃 + 深字」统一可读（用户报 wp-menu-item 白字 + 全站对比度审计）。 */
body.liquid.lg-light .panel-text,
body.liquid.lg-light .sub-hint,
body.liquid.lg-light .set-section-desc,
body.liquid.lg-light .ico-val,
body.liquid.lg-light .ico-reset,
body.liquid.lg-light .set-btn-reset,
body.liquid.lg-light .settings-card h4,
body.liquid.lg-light .SUMMARY,
body.liquid.lg-light .guide-tagline,
body.liquid.lg-light .settings-card .theme-tab,
body.liquid.lg-light .settings-card .theme-tab.on,
body.liquid.lg-light .wp-thumb { color: #16202c !important; }
/* 过淡深字提一档（原 .55/.6 在亮壁纸透出时偏糊） */
body.liquid.lg-light .guide-version,
body.liquid.lg-light .set-row-desc { color: rgba(22,32,44,.78) !important; }
/* 绿色代码（chrome://... 提示）降为深绿保证可读 */
body.liquid.lg-light .settings-card CODE { color: #0a7a30 !important; }
/* 分段控件标签（Dark 等）在浅玻璃下原为 rgba(60,60,67,.6) 太淡 */
body.liquid.lg-light .seg-btn { color: var(--text-muted) !important; }

/* v1.2.833 refine（置于末尾，source-order 最高）：补齐 guide/onboard/step 描述白字翻深、
   关闭按钮浅色实底、提一档描述/菜单字；深色模式 step-num 近黑字翻白字 */
body.liquid.lg-light .guide-body,
body.liquid.lg-light .onboard-desc,
body.liquid.lg-light .onboard-name,
body.liquid.lg-light .feature-card,
body.liquid.lg-light .step-text,
body.liquid.lg-light .fb-label,
body.liquid.lg-light .wzp-sub,
body.liquid.lg-light .settings-card summary,
body.liquid.lg-light .settings-card p,
body.liquid.lg-light .settings-card b,
body.liquid.lg-light .settings-card .step-text h4,
body.liquid.lg-light .settings-card .step-text p { color: #16202c !important; }
body.liquid.lg-light .settings-card .dialog-close { background: rgba(255,255,255,.72) !important; color: rgba(22,32,44,.72) !important; }
body.liquid.lg-light .wp-menu-item { color: rgba(22,32,44,.72) !important; }
body.liquid.lg-light .set-row-desc { color: rgba(22,32,44,.88) !important; }
body.liquid:not(.lg-light) .step-num { color: #fff !important; }

/* v1.2.833 refine2：feature-card 内 .feature-text 的 b/span 各有白字规则(line 3060/3061)，须逐一翻深 */
body.liquid.lg-light .feature-text,
body.liquid.lg-light .feature-text b,
body.liquid.lg-light .feature-text span { color: #16202c !important; }
body.liquid.lg-light .guide-version { color: rgba(22,32,44,.9) !important; }
body.liquid.lg-light .settings-card CODE { color: #064d1f !important; }
/* v1.2.833 refine3：seg-btn 标签提至 .95 确保浅玻璃上 >3.5 */
body.liquid.lg-light .seg-btn { color: var(--text-title) !important; }
/* ❗修 v1.2.834：液态浅色(lg-light)下主题 TAB 条仍是深玻璃槽（rgba(10,16,28,.24/.30)，
   用户截图报「背景色不协调」）——深槽落浅面板 + 深字落深槽双重违和。
   整条翻浅玻璃槽 + 白胶囊选中态（与 neoglass 浅色 rgba(240,243,247,.5) 同款观感）。 */
body.liquid.lg-light .theme-tabs {
  background: rgba(240,243,247,.55) !important;
  border: 1px solid rgba(255,255,255,.6) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 8px 22px rgba(20,30,55,.14) !important;
}
body.liquid.lg-light #panel-theme .theme-tabs { --tt-backdrop: rgba(240,243,247,.55) !important; }
body.liquid.lg-light .theme-tab { color: rgba(22,32,44,.78) !important; text-shadow: none !important; }
body.liquid.lg-light .theme-tab.on {
  background: rgba(255,255,255,.92) !important;
  color: #16202c !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08), 0 2px 8px rgba(20,30,55,.12) !important;
}

/* ❗v1.2.835：添加/编辑小组件弹层(#wzSheet)在液态玻璃下「窗口不协调」修复
   根因：上方 body.liquid [class^="wzs-"] 兜底把弹层内**每个** .wzs-* 元素
   （标题/标签/字段行/页脚/分段/输入/按钮）都刷成「半透白底 + 白字 + blur」，
   而弹层外壳 #wzSheet 本身只走 var(--ovl-panel)（无 blur）。结果：
   · 深色液态：深玻璃外壳里塞满半透白条 → 内外材质打架（用户报「太不协调」）；
   · 浅色液态(lg-light)：浅玻璃外壳 + 半透白条 + 白字 → 白字白底看不见。
   .wzs-* 类名仅用于 #wzSheet（弹层内），故此处安全地把兜底对弹层的作用还原成
   style.20260722.css 的令牌样式（--text/--chip-bg/--input-bg…，深浅已分别配好），
   外壳改用与其它液态模块同一套玻璃（blur + lg-line + lg-shadow + var(--ovl-panel) 可翻转底色）。 */
body.liquid #wzSheet {
  background: var(--ovl-panel) !important;
  border: 1px solid var(--lg-line) !important;
  backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat)) !important;
  -webkit-backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat)) !important;
  box-shadow: var(--lg-shadow) !important;
  color: var(--text-content) !important;
}
/* 容器/标签类元素：还原透明底 + 去 blur + 去白字，文字走令牌 */
body.liquid #wzSheet .wzs-h,
body.liquid #wzSheet .wzs-body,
body.liquid #wzSheet .wzs-f,
body.liquid #wzSheet .wzs-ft,
body.liquid #wzSheet .wzs-pv,
body.liquid #wzSheet .wzs-pv-in,
body.liquid #wzSheet .wzs-sw,
body.liquid #wzSheet .wzs-seg,
body.liquid #wzSheet .wzs-tt,
body.liquid #wzSheet .wzs-ss,
body.liquid #wzSheet .wzs-fl {
  background: transparent !important;
  border: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}
body.liquid #wzSheet .wzs-f { border-top: 1px solid var(--tool-sep) !important; }
body.liquid #wzSheet .wzs-tt { color: var(--text-content) !important; }
body.liquid #wzSheet .wzs-ss { color: var(--text-muted) !important; }
body.liquid #wzSheet .wzs-fl { color: var(--text-title) !important; }
body.liquid #wzSheet .wzs-fl b { color: var(--text-muted) !important; }
/* 交互面（分段/输入/下拉/按钮/图标/预览）：还原令牌，不再被兜底误刷 */
body.liquid #wzSheet .wzs-seg button {
  background: var(--chip-bg) !important; border: 1px solid var(--chip-border) !important; color: var(--text-title) !important;
}
body.liquid #wzSheet .wzs-seg button:hover { background: var(--tool-hover) !important; color: var(--text-content) !important; }
body.liquid #wzSheet .wzs-seg button.on {
  background: var(--tool-active-bg) !important; border-color: var(--accent) !important; color: var(--tool-active-text) !important;
}
body.liquid #wzSheet .wzs-in,
body.liquid #wzSheet .wzs-sel {
  background: var(--input-bg) !important; border: 1px solid var(--input-border) !important; color: var(--text-content) !important;
}
body.liquid #wzSheet .wzs-btn {
  background: var(--chip-bg) !important; border: 1px solid var(--chip-border) !important; color: var(--text-content) !important;
}
body.liquid #wzSheet .wzs-btn:hover { background: var(--tool-hover) !important; }
body.liquid #wzSheet .wzs-btn.primary {
  background: var(--accent) !important; border-color: var(--accent) !important; color: #0f2f0e !important;
}
body.liquid #wzSheet .wzs-btn.danger {
  color: #ff8a80 !important; border-color: rgba(255,120,110,.42) !important; background: rgba(255,90,80,.08) !important;
}
body.liquid #wzSheet .wzs-btn.danger:hover { background: rgba(255,90,80,.18) !important; border-color: rgba(255,120,110,.6) !important; }
body.liquid #wzSheet .wzs-ico {
  background: var(--chip-bg) !important; border: 1px solid var(--chip-border) !important;
}
body.liquid #wzSheet .wzs-pv {
  background: var(--chip-bg) !important; border: 1px solid var(--chip-border) !important;
}
/* 自定义挂件图标选择器(.wzi-*) 同在弹层内，还原令牌，避免 lg-light 白字白底 */
body.liquid #wzSheet .wzi-pick,
body.liquid #wzSheet .wzi-opt {
  background: var(--tool-hover) !important; border-color: var(--tool-sep) !important; color: var(--text-content) !important;
}
body.liquid #wzSheet .wzi-opt:hover { background: var(--tool-hover-strong, rgba(255,255,255,.16)) !important; }
body.liquid #wzSheet .wzi-opt.on { border-color: var(--accent) !important; background: color-mix(in srgb, var(--accent) 12%, transparent) !important; }
body.liquid #wzSheet .wzi-box { background: var(--tool-hover) !important; color: var(--text-title) !important; }
body.liquid #wzSheet .wzi-lab { color: var(--text-title) !important; }
body.liquid #wzSheet .wzi-sub .wzs-in { background: var(--input-bg) !important; border: 1px solid var(--input-border) !important; color: var(--text-content) !important; }

/* ---------- v1.2.838：热榜「管理订阅」浮层(.hot-manage)液态下透底叠字修复 ----------
   .hot-manage 是 absolute;inset:0 盖在 .hot-panel 上的内层浮层，底色 var(--ovl-panel)
   在液态是半透明玻璃色；但类名不含 panel/card/sheet，吃不到上方 263 行的 blur 规则，
   下层订阅列表/标题整个透上来叠字（深浅主题都中）。补与 #wzSheet 同一套磨砂配方。 */
body.liquid .hot-manage {
  backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
  -webkit-backdrop-filter: blur(var(--lg-frost)) saturate(var(--lg-sat));
}
/* lg-light：热榜弹层整套令牌翻深。240-261 的白字令牌作用域（2 类）压过 body 级
   lg-light 翻深 —— 诊断实测面板内 31 个白字元素 vs 4 个深字（仅无显式 color 者靠
   .modal > * 的 !important 深字继承）。同作用域翻深后 text/tool/input/chip 一次到位。 */
body.liquid.lg-light .hot-modal {
  --text: #16202c;
  --text-dim: rgba(22,32,44,.78);
  --text-muted: rgba(22,32,44,.55);
  --tool-sep: rgba(22,32,44,.14);
  --tool-hover: rgba(22,32,44,.06);
  --tool-hover-strong: rgba(22,32,44,.10);
  --tool-active-bg: color-mix(in srgb, var(--accent, #22c55e) 18%, transparent);
  --tool-active-text: #0a7a30;
  --input-bg: rgba(0,0,0,.05);
  --input-border: rgba(0,0,0,.12);
  --chip-bg: rgba(255,255,255,.55);
  --chip-border: rgba(255,255,255,.6);
  --panel-border: rgba(255,255,255,.55);
  --ovl-panel: rgba(240,243,247,.50);
  color: #16202c;
}
/* 272-278 的弹层输入框白字（该处无 !important，此处特异性更高直接压过） */
body.liquid.lg-light .hot-modal input,
body.liquid.lg-light .hot-modal textarea { color: #16202c; }
/* 主按钮绿底深字（与 v1.2.835 #wzSheet 同规）；.hot-dot 平台色圆点白字保留 */
body.liquid.lg-light .hot-modal .hot-btn.primary { color: #0f2f0e; }
