/* ============================================================
   V3.28  弹窗文字清晰化 · 区域网格 · 设置/角色排版 · 全局精修
   作为最终覆盖层，最后加载（优先级最高）
   核心原则：承载文字的浮层面板“不再对自身背后做背景模糊”，
   改为近不透明的液态玻璃实色底，保留边缘折射 / 顶部曲化高光 /
   圆角 / 投影；毛玻璃模糊只留在遮罩层（模糊的是弹窗外的页面，
   与弹窗内文字无关），从而彻底消除文字发虚、发灰、被“糊住”。
   ============================================================ */

/* ---------- 浮层面板专用：近不透明液态玻璃底 ---------- */
body[data-theme="light"]{
  --sheet-bg:linear-gradient(162deg,#ffffff 0%,#f6f7fb 100%);
  --sheet-border:rgba(15,23,42,.10);
  --sheet-edge:inset 0 1px 1px rgba(255,255,255,.98),inset 0 -1px 1px rgba(15,23,42,.05),inset 1px 0 1px rgba(255,255,255,.6),inset -1px 0 1px rgba(255,255,255,.3);
  --sheet-shadow:0 28px 76px rgba(15,23,42,.24),0 6px 20px rgba(15,23,42,.10);
  --sheet-sheen:linear-gradient(165deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,0) 38%);
  --sheet-inner:rgba(15,23,42,.035);
  --sheet-input:#ffffff;
}
body[data-theme="dark"]{
  --sheet-bg:linear-gradient(162deg,#26272e 0%,#16171c 100%);
  --sheet-border:rgba(255,255,255,.12);
  --sheet-edge:inset 0 1px 1px rgba(255,255,255,.16),inset 0 -1px 1px rgba(0,0,0,.55),inset 1px 0 1px rgba(255,255,255,.05);
  --sheet-shadow:0 30px 84px rgba(0,0,0,.78),0 6px 22px rgba(0,0,0,.55);
  --sheet-sheen:linear-gradient(165deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,0) 42%);
  --sheet-inner:rgba(255,255,255,.05);
  --sheet-input:#202127;
}

/* 主弹窗 / 二级浮层 / 强提醒 / 加载盒：去自身模糊，近不透明 */
.modal.glass,
.pop-sheet.glass,
.urgent-box.glass,
#globalLoading .gl-box.glass,
.global-loader .gl-box.glass{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  background:var(--sheet-bg) !important;
  border-color:var(--sheet-border) !important;
  box-shadow:var(--sheet-shadow),var(--sheet-edge) !important;
}
/* 曲化反射高光：去掉 soft-light/screen 混合（半透明上会发灰），
   保留干净的顶部斜面光泽，贴合圆角，浮于底色之上、文字之下 */
.modal.glass::before,
.pop-sheet.glass::before,
.urgent-box.glass::before,
#globalLoading .gl-box.glass::before{
  mix-blend-mode:normal !important;
  opacity:1 !important;
  background:var(--sheet-sheen) !important;
}
/* 浮层内部再嵌套的玻璃小块：同样去模糊，避免二次合成发虚 */
.modal .glass,
.pop-sheet .glass,
.urgent-box .glass{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  background:var(--sheet-inner) !important;
}
/* 浮层内输入控件用实心底，保证对比度与文字锐利 */
.modal input,.modal select,.modal textarea,
.pop-sheet input,.pop-sheet select,.pop-sheet textarea,
.urgent-box input,.urgent-box select{ background:var(--sheet-input) !important; }
body[data-theme="dark"] .modal input,body[data-theme="dark"] .modal select,body[data-theme="dark"] .modal textarea,
body[data-theme="dark"] .pop-sheet input,body[data-theme="dark"] .pop-sheet select,body[data-theme="dark"] .pop-sheet textarea{ background:#202127 !important; }
/* 浮层内半透明卡片统一提不透明，避免叠在面板上显灰 */
.modal .item-card,.pop-sheet .item-card,
.modal .perm-box,.pop-sheet .perm-box,
.modal .pp-list,.pop-sheet .pp-list{ background:var(--sheet-inner); }

/* 遮罩层：保留对“弹窗外页面”的毛玻璃模糊（不影响弹窗内文字） */
.modal-mask{ -webkit-backdrop-filter:blur(8px) saturate(120%); backdrop-filter:blur(8px) saturate(120%); background:rgba(10,12,20,.30); }
.pop-mask{ -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }

/* Toast：去自身模糊，文字更锐 */
.toast{ -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }

/* 弹窗标题/正文明确对比色，杜绝继承发灰 */
.modal-head h3,.pop-head h3,.urgent-title{ color:var(--text); }
.modal-body,.pop-body{ color:var(--text); }

/* ---------- 弹窗滚动丝滑、不与面板合成冲突 ---------- */
.modal-body,.pop-body{ -webkit-overflow-scrolling:touch; }
.modal-body *,.pop-body *{ -webkit-font-smoothing:antialiased; }

/* ============================================================
   区域管理：恢复并强化网格线（大小双格 + 更清晰颜色）
   注意：视口同时挂 .glass，其 background 简写会冲掉网格，故这里
   用 .zone-viewport.glass 同/更高特异性显式夺回背景，并去掉视口
   无意义的毛玻璃（其背后是纯色页面，模糊只耗性能）。
   ============================================================ */
.zone-viewport.glass{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  border:1px solid var(--input-border);
  background-color:color-mix(in srgb,var(--input-bg) 55%,var(--bg));
  background-image:
    linear-gradient(color-mix(in srgb,var(--blue) 16%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--blue) 16%,transparent) 1px,transparent 1px),
    linear-gradient(color-mix(in srgb,var(--text) 7%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text) 7%,transparent) 1px,transparent 1px);
  background-size:160px 160px,160px 160px,32px 32px,32px 32px;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue) 6%,transparent);
}
.zone-viewport.glass.mode-3d{
  background-color:var(--bg);
  background-image:
    linear-gradient(color-mix(in srgb,var(--blue) 18%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--blue) 18%,transparent) 1px,transparent 1px),
    linear-gradient(color-mix(in srgb,var(--text) 8%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text) 8%,transparent) 1px,transparent 1px);
  background-size:160px 160px,160px 160px,32px 32px,32px 32px;
}
/* 性能模式：单层网格、零混合开销，依旧清晰可见 */
body[data-perf="1"] .zone-viewport.glass{
  background-color:var(--bg);
  background-image:
    linear-gradient(color-mix(in srgb,var(--text) 9%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text) 9%,transparent) 1px,transparent 1px);
  background-size:32px 32px,32px 32px;
  box-shadow:none;
}

/* ===== V3.28 系统设置：分区 Tab + 卡片 ===== */
.set-tabs{display:flex;gap:6px;padding:6px;border-radius:16px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;position:sticky;top:8px;z-index:20}
.set-tabs::-webkit-scrollbar{display:none}
.set-tab{flex:0 0 auto;border:1px solid transparent;background:transparent;color:var(--text-2);padding:9px 16px;border-radius:11px;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .22s cubic-bezier(.2,.8,.2,1);white-space:nowrap}
.set-tab:hover{color:var(--text);background:var(--hover)}
.set-tab.on{color:#fff;background:linear-gradient(135deg,var(--blue),color-mix(in srgb,var(--blue) 70%,#8b9bff));box-shadow:0 6px 16px -6px var(--blue);border-color:transparent}
.set-panels{min-height:300px}
.set-panel{display:none}
.set-panel.on{display:grid;gap:16px;animation:setFade .28s cubic-bezier(.2,.8,.2,1)}
@keyframes setFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.set-card{padding:20px 22px}
.set-card-title{font-size:15px;font-weight:700;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.set-sub{font-size:13px;font-weight:600;margin:14px 0 8px;color:var(--text)}
.set-hint{font-size:12px;color:var(--text-3);line-height:1.7;margin:0 0 12px}
.set-line{font-size:13.5px;color:var(--text-2);margin:0 0 12px}
.set-card .set-row{margin-bottom:12px}
.set-card .fld{margin-bottom:12px}
.set-card .btn-ghost{margin-right:8px}
.set-card .table-wrap{margin-top:4px}
@media(max-width:720px){
 .set-tabs{border-radius:13px;padding:5px;top:6px}
 .set-tab{padding:8px 13px;font-size:13px;border-radius:10px}
 .set-card{padding:15px}
 .set-card-title{font-size:14.5px}
}
