/* ============================================================
   V3.29  iOS 26 "Liquid Glass" 透镜重构层 · 第三版
   作为最终覆盖层，最后加载（优先级最高，位于 v328 之后）
   本版修复四类问题：
   A. 动画回归：删除第二版 .glass/.glass-btn 的全局 transition
      覆盖（它压掉了 .card/.stat-card 的 transform 过渡），
      本文件不再声明任何元素级/全局 * 的 transition/animation
      覆盖，原有悬浮抬升、弹窗出入场、光斑漂浮全部保持原样；
   B. 弹窗对齐：与 v328 弹窗规则逐项同特异性 + !important
      显式对抗，.modal/.pop-sheet/.urgent-box/.gl-box 呈现
      与主面板同一套透镜语言（边缘光环 + 顶弧高光）；
   C. 圆角回退：撤销 --radius 全局改写与布局件大圆角，
      仅卡片类适度 20px，其余恢复原始形态；
   D. 玻璃辨识度：页面底铺鲜艳渐变（有内容可折射）、
      边缘光环加宽至 2px 强度翻倍、顶弧提亮、模糊饱和微调。
   ============================================================ */

/* ---------- 设计变量：通透着色 + 厚度 + 悬浮投影 ---------- */
body[data-theme="light"]{
  --glass-bg:linear-gradient(155deg,rgba(255,255,255,.22),rgba(255,255,255,.12));
  --glass-border:rgba(255,255,255,.12);
  --glass-edge:
    inset 0 1px 1px rgba(255,255,255,.35),
    inset 0 -1px 1px rgba(255,255,255,.08);
  --glass-shadow:0 1px 2px rgba(15,23,42,.07),0 16px 40px rgba(15,23,42,.10);
  --sheen-arc:rgba(255,255,255,.45);
  --sheen-dot:rgba(255,255,255,.34);
  --ring-strong:rgba(255,255,255,.95);
  --ring-fade:rgba(255,255,255,.18);
  --ring-dark:rgba(15,23,42,.10);
  --sheet-tint-a:rgba(255,255,255,.62);
  --sheet-tint-b:rgba(248,249,252,.55);
}
body[data-theme="dark"]{
  --glass-bg:linear-gradient(155deg,rgba(255,255,255,.12),rgba(255,255,255,.06));
  --glass-border:rgba(255,255,255,.10);
  --glass-edge:
    inset 0 1px 1px rgba(255,255,255,.14),
    inset 0 -1px 1px rgba(255,255,255,.05);
  --glass-shadow:0 1px 2px rgba(0,0,0,.50),0 18px 44px rgba(0,0,0,.55);
  --sheen-arc:rgba(255,255,255,.20);
  --sheen-dot:rgba(255,255,255,.14);
  --ring-strong:rgba(255,255,255,.75);
  --ring-fade:rgba(255,255,255,.10);
  --ring-dark:rgba(0,0,0,.55);
  --sheet-tint-a:rgba(34,35,41,.62);
  --sheet-tint-b:rgba(20,21,26,.55);
}

/* ---------- D1 折射内容做强：页面底铺鲜艳渐变 ----------
   玻璃显假的根因是背后无色可折。此层为极低饱和底上叠
   蓝→紫→粉柔光，被玻璃 12px 模糊取样后呈现真实折射感。
   性能模式下由 v325 的 body 纯色 !important 覆盖，自动降级。 */
body[data-theme="light"]{
  background:
    radial-gradient(120% 110% at 10% -8%,rgba(10,132,255,.16),transparent 55%),
    radial-gradient(110% 100% at 92% 24%,rgba(191,90,242,.13),transparent 55%),
    radial-gradient(130% 120% at 62% 108%,rgba(255,45,85,.12),transparent 58%),
    linear-gradient(160deg,#f2f6ff,#fdf3f8);
}
body[data-theme="dark"]{
  background:
    radial-gradient(120% 110% at 10% -8%,rgba(10,132,255,.14),transparent 55%),
    radial-gradient(110% 100% at 92% 24%,rgba(191,90,242,.12),transparent 55%),
    radial-gradient(130% 120% at 62% 108%,rgba(255,45,85,.10),transparent 58%),
    linear-gradient(160deg,#05070f,#0b0712);
}

/* ---------- C 圆角回退：仅卡片类适度 20px，其余不碰 ----------
   （撤销第二版 :root --radius 全局改写与布局件大圆角；
   .sidebar/.topbar/.modal/.table-wrap 圆角全部回到
   style.css / v315 原始值） */
.card,.stat-card{ border-radius:20px; }

/* ---------- 玻璃本体：克制模糊，内容轮廓可辨 ---------- */
.glass{
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(12px) saturate(170%);
  backdrop-filter:blur(12px) saturate(170%);
  border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow),var(--glass-edge);
}
/* 小件玻璃控件：更薄、更通透 */
.glass-btn{
  -webkit-backdrop-filter:blur(8px) saturate(160%);
  backdrop-filter:blur(8px) saturate(160%);
}

/* ---------- D1 折射源强化：实芯、饱和、边界清晰 ----------
   只增强既有 .o1/.o2/.o3 的浓度，.orb 的 float 动画与
   transform 完全不动；新增光斑走 .bg-orbs 伪元素。 */
.o1,.o2,.o3{ opacity:.62; }
body[data-theme="dark"] .o1,body[data-theme="dark"] .o2,body[data-theme="dark"] .o3{ opacity:.42; }
.bg-orbs::before,.bg-orbs::after{
  content:''; position:absolute; border-radius:50%; pointer-events:none;
}
.bg-orbs::before{
  width:300px; height:300px; right:14%; top:9%;
  background:radial-gradient(circle at 42% 38%,#FF9F0A 0%,#FF9F0A 14%,transparent 50%);
  filter:blur(22px); opacity:.55;
  animation:float 15s ease-in-out -3s infinite reverse;
}
.bg-orbs::after{
  width:260px; height:260px; left:15%; top:40%;
  background:radial-gradient(circle at 58% 42%,#FF2D55 0%,#FF2D55 12%,transparent 48%);
  filter:blur(20px); opacity:.48;
  animation:float 21s ease-in-out -9s infinite;
}
body[data-theme="dark"] .bg-orbs::before{ opacity:.36; }
body[data-theme="dark"] .bg-orbs::after{ opacity:.32; }

/* ---------- D3 顶部弧形镜面反光 + 小而锐的鼠标反射点 ----------
   ::before 承接高光层：顶弧为玻璃上表面反光（提亮至 .45）；
   鼠标点 ~220px，中心亮、边缘快速衰减。缓动只作用于本
   伪元素的 background（v315 同样只在此层声明过过渡），
   不影响任何组件动画。 */
.glass::before{
  content:''; position:absolute; inset:0; border-radius:inherit;
  z-index:0; pointer-events:none; mix-blend-mode:normal;
  background:
    radial-gradient(220px circle at var(--mx,30%) var(--my,-12%),var(--sheen-dot),transparent 58%),
    radial-gradient(120% 55% at 50% -12%,var(--sheen-arc),transparent 60%);
  transition:background .5s cubic-bezier(.2,.8,.2,1);
}
/* ---------- D2 边缘镜面高光环（强度翻倍 · 环宽 2px） ----------
   左上最亮 .95 → 沿边缘向右下衰减至透明 → 底部一线暗光；
   2px 透明边框 + mask padding-box/border-box xor/exclude
   裁出光环；普通 border 已降至近透明，高光全靠此环。 */
.glass::after{
  content:''; position:absolute; inset:0; border-radius:inherit;
  z-index:2; pointer-events:none;
  border:2px solid transparent;
  background:linear-gradient(135deg,
      var(--ring-strong) 0%,
      var(--ring-fade) 36%,
      transparent 64%,
      var(--ring-dark) 100%) border-box;
  -webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0) border-box;
  mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite:xor;
  mask-composite:exclude;
}
/* 区域视口被 v328 显式夺回背景并去掉模糊，这里不再回加光环 */
.zone-viewport.glass::after{ display:none; }

/* ---------- B 弹窗对齐：与 v328 弹窗规则逐项对抗 ----------
   DOM 核实（index.html / app.js）：#modal 为 "modal glass"
   （app.js 中 className='modal glass'+wide），pop-sheet、
   urgent-box、gl-box 均真实携带 .glass。
   v328 的 backdrop-filter:none / --sheet-bg / --sheet-border /
   --sheet-shadow+--sheet-edge / ::before --sheet-sheen 逐项
   以同特异性 + !important + 后加载覆盖。
   遮罩层（.modal-mask/.pop-mask）模糊保留不动。 */
.modal.glass,
.pop-sheet.glass,
.urgent-box.glass,
.gl-box.glass,
#globalLoading .gl-box.glass,
.global-loader .gl-box.glass{
  -webkit-backdrop-filter:blur(12px) saturate(160%) !important;
  backdrop-filter:blur(12px) saturate(160%) !important;
  background:linear-gradient(162deg,var(--sheet-tint-a),var(--sheet-tint-b)) !important;
  border-color:var(--glass-border) !important;
  box-shadow:var(--sheet-shadow),var(--glass-edge) !important;
}
/* 浮层顶弧高光：覆盖 v328 的 --sheet-sheen，与主玻璃同一套 */
.modal.glass::before,
.pop-sheet.glass::before,
.urgent-box.glass::before,
.gl-box.glass::before,
#globalLoading .gl-box.glass::before{
  opacity:1 !important;
  mix-blend-mode:normal !important;
  background:
    radial-gradient(220px circle at var(--mx,50%) var(--my,-20%),var(--sheen-dot),transparent 58%),
    radial-gradient(120% 55% at 50% -12%,var(--sheen-arc),transparent 60%) !important;
}
/* 浮层文字锐利度（可读性靠遮罩模糊 + 半透明实底保证） */
.modal,.pop-sheet,.urgent-box,.gl-box{ -webkit-font-smoothing:antialiased; }
.modal-head h3,.pop-head h3,.urgent-title{ letter-spacing:.2px; }
.modal-body,.pop-body{ text-rendering:optimizeLegibility; }

/* ---------- 结构面板阴影微调：侧栏/顶栏更贴合底 ---------- */
.sidebar.glass{ box-shadow:0 1px 2px rgba(15,23,42,.06),0 10px 28px rgba(15,23,42,.07),var(--glass-edge); }
.topbar.glass{ box-shadow:0 1px 2px rgba(15,23,42,.05),0 8px 24px rgba(15,23,42,.05),var(--glass-edge); }
body[data-theme="dark"] .sidebar.glass{ box-shadow:0 1px 2px rgba(0,0,0,.45),0 12px 32px rgba(0,0,0,.5),var(--glass-edge); }
body[data-theme="dark"] .topbar.glass{ box-shadow:0 1px 2px rgba(0,0,0,.4),0 10px 26px rgba(0,0,0,.45),var(--glass-edge); }

/* ---------- 性能模式降级（覆盖 v325 的完全关闭） ----------
   保留 6px 轻模糊；高光与光环伪元素整体关闭；
   ::after 关闭即去掉 mask 渐变边框。不触碰任何动画规则。 */
body[data-perf="1"] .glass{
  -webkit-backdrop-filter:blur(6px) saturate(140%) !important;
  backdrop-filter:blur(6px) saturate(140%) !important;
}
body[data-perf="1"] .glass-btn{
  -webkit-backdrop-filter:blur(6px) saturate(140%) !important;
  backdrop-filter:blur(6px) saturate(140%) !important;
}
body[data-perf="1"] .glass::before,
body[data-perf="1"] .glass::after,
body[data-perf="1"] .bg-orbs::before,
body[data-perf="1"] .bg-orbs::after{ display:none !important; }

/* ---------- 减弱动态偏好：只关装饰性光斑漂浮 ----------
   明确不动任何 transition 与交互反馈（入场/悬浮/按钮等
   动画由原样式表负责，本层不干预）。 */
@media (prefers-reduced-motion:reduce){
  .orb,.bg-orbs::before,.bg-orbs::after{ animation:none !important; }
}

/* ---------- 移动端：光斑收缩，避免小屏过曝 ---------- */
@media(max-width:860px){
  .bg-orbs::before{ width:220px; height:220px; right:8%; top:6%; }
  .bg-orbs::after{ width:190px; height:190px; left:6%; top:46%; }
}

/* ============================================================
   V3.29 收尾自查（第三版）：
   · 全文件零元素级/全局 * transition/animation 覆盖；
     唯一 transition 声明在 .glass::before 伪元素（高光缓动）；
   · .orb 的 float 动画未被本文件任何规则触碰；
   · 弹窗选择器与线上 DOM（app.js L15/L259/L2850、
     index.html pop-sheet）逐一核对一致；
   · 无 --radius 全局改写；仅 .card/.stat-card 20px；
   · backdrop-filter / mask / mask-composite 均带 -webkit- 双套。
   ============================================================ */
