/* ============================================================
   FX FUTURE THEME · 溪哥全域智能作战中心 / 数字办公室
   统一未来感视觉系统：深空层次 + 暗金氛围 + 凹凸立体 + 拟真状态灯
   引入方式：<link rel="stylesheet" href="fx-theme.css">（放在页面 <style> 之后）
   明暗双模：默认深色；<html class="fx-light"> 切换为暖色高端版
   ============================================================ */

/* ---------- 1. 设计令牌 ---------- */
:root{
  --fx-bg:#04070e; --fx-bg2:#080e1c; --fx-bg3:#0c1425;
  --fx-panel:linear-gradient(158deg,rgba(24,35,62,.88) 0%,rgba(13,20,38,.92) 55%,rgba(9,14,28,.94) 100%);
  --fx-panel2:linear-gradient(158deg,rgba(30,42,72,.62),rgba(12,19,36,.72));
  --fx-bd:rgba(122,162,255,.16);
  --fx-bd2:rgba(122,162,255,.30);

  --gold:#c9a227; --gold-lt:#f4e3a4; --gold-dk:#6b5210; --gold-soft:rgba(201,162,39,.55);
  --cyan:#39e6ff; --blue:#4f8cff; --violet:#a972ff;
  --green:#2fe6a0; --amber:#ffb454; --red:#ff5470;
  --txt:#e4edff; --dim:#8695be;

  /* 凸起（按钮 / 可点击） */
  --emboss:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -1px 0 rgba(0,0,0,.55),
    inset 0 0 0 1px rgba(255,255,255,.03),
    0 1px 0 rgba(0,0,0,.7),
    0 3px 0 #050a14,
    0 8px 18px rgba(0,0,0,.55);
  --emboss-hi:
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -1px 0 rgba(0,0,0,.5),
    0 1px 0 rgba(0,0,0,.7),
    0 5px 0 #050a14,
    0 14px 30px rgba(0,0,0,.6),
    0 0 22px rgba(79,140,255,.28);
  /* 按下（凹陷） */
  --emboss-press:
    inset 0 2px 7px rgba(0,0,0,.72),
    inset 0 -1px 0 rgba(255,255,255,.06),
    0 1px 0 rgba(255,255,255,.03);
  /* 凹槽（面板 / 数值槽 / 输入框） */
  --deboss:
    inset 0 2px 8px rgba(0,0,0,.62),
    inset 0 -1px 0 rgba(255,255,255,.055),
    0 1px 0 rgba(255,255,255,.045);
  /* 面板悬浮抬升 */
  --panel-lift:
    inset 0 1px 0 rgba(255,255,255,.09),
    0 2px 6px rgba(0,0,0,.45),
    0 26px 50px -24px rgba(0,0,0,.9);
  --panel-lift-hi:
    inset 0 1px 0 rgba(255,255,255,.13),
    0 4px 10px rgba(0,0,0,.5),
    0 34px 64px -26px rgba(0,0,0,.95),
    0 0 0 1px rgba(79,140,255,.28),
    0 0 34px rgba(79,140,255,.16);
}

/* ---------- 2. 深空环境层 ---------- */
html{
  background:
    radial-gradient(1100px 640px at 78% -12%, rgba(79,140,255,.16), transparent 62%),
    radial-gradient(900px 620px at -6% 112%, rgba(169,114,255,.13), transparent 58%),
    radial-gradient(700px 460px at 102% 88%, rgba(201,162,39,.09), transparent 60%),
    linear-gradient(180deg,var(--fx-bg),var(--fx-bg2) 60%,#060a14);
  background-attachment:fixed;
}
body{
  color:var(--txt);
  background-image:
    linear-gradient(rgba(122,162,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(122,162,255,.045) 1px,transparent 1px),
    radial-gradient(1200px 700px at 50% -20%, rgba(79,140,255,.10), transparent 65%);
  background-size:46px 46px,46px 46px,100% 100%;
  background-attachment:fixed,fixed,fixed;
  box-shadow:inset 0 0 320px 90px rgba(4,7,14,.85);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

/* ---------- 3. 滚动条 ---------- */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.03)}
::-webkit-scrollbar-thumb{
  border-radius:8px;
  background:linear-gradient(180deg,rgba(79,140,255,.55),rgba(122,162,255,.35));
  border:1px solid rgba(0,0,0,.35);
}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--cyan),var(--blue))}

/* ---------- 4. 通用选中 / 焦点 ---------- */
::selection{background:rgba(79,140,255,.32);color:#fff}
input:focus,textarea:focus,select:focus{outline:none}
/* ============================================================
   5. 拟真状态灯系统  FX LAMP
   统一接管：.led / .dot / .od / .ed / .svc .d / .status-dot / [data-lamp]
   结构：高光核 + 灯体渐变 + 金属灯圈 + 三层外溢光晕 + 呼吸动画
   亮度层级：.lv1 微亮 / .lv2 标准 / .lv3 高亮（默认 lv2）
   ============================================================ */
.led,.dot,.od,.ed,.svc .d,.status-dot,[data-lamp]{
  position:relative;
  width:12px;height:12px;flex:0 0 auto;
  border-radius:50%;
  border:1px solid rgba(0,0,0,.6);
  --lc:#c8ffe8;           /* 灯芯高光 */
  --lm:#2fe6a0;           /* 灯体主色 */
  --ld:#086b48;           /* 灯体暗部 */
  --lg:rgba(47,230,160,.55); /* 外溢光晕 */
  --li:1;                 /* 亮度倍率 */
  background:
    radial-gradient(circle at 33% 27%,rgba(255,255,255,.98) 0 7%,rgba(255,255,255,.25) 18%,rgba(255,255,255,0) 34%),
    radial-gradient(circle at 50% 46%,var(--lc) 0 26%,var(--lm) 58%,var(--ld) 100%);
  box-shadow:
    0 0 3px var(--lm),
    0 0 9px var(--lm),
    0 0 20px var(--lg),
    0 0 38px var(--lg),
    inset 0 -1px 2px rgba(0,0,0,.45),
    inset 0 1px 1px rgba(255,255,255,.5);
  filter:brightness(var(--li)) saturate(1.08);
  animation:fxLamp 2.6s ease-in-out infinite;
  transition:background .25s,box-shadow .25s,filter .25s;
}
/* 金属灯座外圈（凹凸质感） */
.led::before,.dot::before,.od::before,.ed::before,.svc .d::before,.status-dot::before,[data-lamp]::before{
  content:"";position:absolute;inset:-3px;border-radius:50%;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 0 5px rgba(0,0,0,.7),0 1px 0 rgba(255,255,255,.05);
  pointer-events:none;
}
/* 玻璃罩反光 */
.led::after,.dot::after,.od::after,.ed::after,.svc .d::after,.status-dot::after,[data-lamp]::after{
  content:"";position:absolute;left:22%;top:14%;width:34%;height:26%;
  border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,0));
  filter:blur(.6px);pointer-events:none;
}
@keyframes fxLamp{
  0%,100%{box-shadow:0 0 3px var(--lm),0 0 8px var(--lm),0 0 16px var(--lg),0 0 30px var(--lg),inset 0 -1px 2px rgba(0,0,0,.45),inset 0 1px 1px rgba(255,255,255,.5)}
  50%    {box-shadow:0 0 5px var(--lm),0 0 14px var(--lm),0 0 26px var(--lg),0 0 52px var(--lg),inset 0 -1px 2px rgba(0,0,0,.4), inset 0 1px 1px rgba(255,255,255,.6)}
}

/* 状态配色 */
.led.online,.led.on,.dot,.od.on,.ed.on,.svc .d{
  --lc:#c8ffe8;--lm:#2fe6a0;--ld:#086b48;--lg:rgba(47,230,160,.6);
}
.led.warn,.svc .d.warn{
  --lc:#ffe9c2;--lm:#ffb454;--ld:#7d4a06;--lg:rgba(255,180,84,.6);
}
.led.err,.led.off,.svc .d.err,.od.off,.ed.off{
  --lc:#ffd2da;--lm:#ff5470;--ld:#7a1024;--lg:rgba(255,84,112,.6);
}
.led.sleep{
  --lc:#cfe0ff;--lm:#4f8cff;--ld:#123a86;--lg:rgba(79,140,255,.55);
}
.led.call{
  --lc:#fff0d0;--lm:#ffc046;--ld:#8a5400;--lg:rgba(255,192,70,.75);
  animation:fxLampBlink .5s steps(1) infinite;
}
.led.fb{ --lc:#dcffe9;--lm:#8dffc4;--ld:#0d7a4f;--lg:rgba(141,255,196,.8); }
.led.gold{ --lc:#fff6d8;--lm:#f0cf62;--ld:#6b5210;--lg:rgba(201,162,39,.7); }

@keyframes fxLampBlink{0%{opacity:1;filter:brightness(1.5)}50%{opacity:.25;filter:brightness(.6)}100%{opacity:1;filter:brightness(1.5)}}

/* 亮度层级 */
.lv1{--li:.62}
.lv2{--li:1}
.lv3{--li:1.55}
.lv3.led::after,.lv3.dot::after{opacity:1}

/* ============================================================
   6. 顶栏：暗金跑马氛围灯 + 厚重立体
   ============================================================ */
.topbar{
  position:relative;overflow:hidden;
  height:66px;
  background:
    linear-gradient(90deg,rgba(8,13,26,.96) 0%,rgba(14,22,42,.9) 45%,rgba(10,16,32,.96) 100%);
  border-bottom:1px solid rgba(201,162,39,.24);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    inset 0 -18px 30px -24px rgba(201,162,39,.5),
    0 6px 26px rgba(0,0,0,.62);
  backdrop-filter:blur(10px) saturate(1.1);
}
/* 跑马氛围灯：一条暗金光带循环扫过 */
.topbar::after{
  content:"";position:absolute;left:-32%;bottom:0;width:32%;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(201,162,39,.15) 20%,var(--gold-lt) 50%,rgba(201,162,39,.15) 80%,transparent);
  box-shadow:0 0 14px var(--gold-soft),0 0 28px rgba(201,162,39,.35);
  animation:fxRail 7.5s linear infinite;
}
@keyframes fxRail{0%{left:-32%}100%{left:100%}}

.logo{
  border-radius:11px;
  box-shadow:
    0 0 26px rgba(79,140,255,.6),
    inset 0 1px 0 rgba(255,255,255,.45),
    0 3px 0 rgba(0,0,0,.5);
}
.brand h1{
  background:linear-gradient(90deg,#fff,var(--cyan) 45%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 26px rgba(79,140,255,.28);
  font-size:19px;letter-spacing:1.5px;
}
.brand .sub{color:var(--blue);opacity:.75;letter-spacing:3px;font-size:10px}

/* 顶栏 KPI：凹槽仪表 + 灯 */
.kpi{
  padding:7px 15px;border-radius:12px;
  background:var(--fx-panel2);
  border:1px solid rgba(255,255,255,.07);
  box-shadow:var(--deboss);
  font-size:12px;letter-spacing:.3px;
}
.kpi:hover{box-shadow:var(--deboss),0 0 0 1px rgba(79,140,255,.3)}
.kpi b{
  font-size:16px;color:#fff;
  text-shadow:0 0 12px rgba(57,230,255,.55),0 1px 0 rgba(0,0,0,.6);
}
.clock .t{
  font-size:22px;color:#fff;
  text-shadow:0 0 16px rgba(79,140,255,.45),0 1px 0 rgba(0,0,0,.7);
}

/* ============================================================
   7. 侧边导航：立体按键感
   ============================================================ */
.sidebar{
  background:linear-gradient(180deg,rgba(9,14,28,.92),rgba(6,10,20,.96));
  border-right:1px solid rgba(122,162,255,.13);
  box-shadow:inset -14px 0 28px -22px rgba(0,0,0,.9);
}
.nav-group{
  color:var(--blue);opacity:.62;letter-spacing:3px;font-size:9.5px;font-weight:700;
  margin:18px 10px 9px;padding-left:4px;
}
.nav{
  border-radius:12px;
  border:1px solid transparent;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 2px 0 rgba(0,0,0,.5),
    0 4px 10px rgba(0,0,0,.35);
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
  transition:.18s cubic-bezier(.2,.8,.3,1);
  font-weight:600;
}
.nav:hover{
  transform:translateX(3px) translateY(-1px);
  color:var(--txt);
  border-color:rgba(79,140,255,.34);
  background:linear-gradient(180deg,rgba(79,140,255,.14),rgba(255,255,255,.02));
  box-shadow:var(--emboss-hi);
}
.nav.active{
  color:#fff;
  border-color:rgba(79,140,255,.45);
  background:linear-gradient(90deg,rgba(79,140,255,.2),rgba(79,140,255,.10) 60%,transparent);
  box-shadow:
    inset 0 2px 8px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.10),
    0 0 20px rgba(79,140,255,.18);
  transform:translateX(2px);
}
.nav.active .ic{filter:none;transform:scale(1.06)}
.side-foot{border-top:1px solid rgba(79,140,255,.15);color:rgba(134,149,190,.75)}
/* ============================================================
   8. 面板层次：厚重玻璃 + 悬浮抬升 + 暗金描边
   ============================================================ */
.w,.panel,.mcard,.offgrp,.mod-bar,.xlr,.stat,.steps .s,.chip,.item,.report,.advice,.card{
  border-radius:16px;
  border:1px solid rgba(122,162,255,.15);
  background:var(--fx-panel);
  box-shadow:var(--panel-lift);
  transition:transform .22s cubic-bezier(.2,.8,.3,1),box-shadow .22s,border-color .22s;
  backdrop-filter:blur(8px);
}
.w:hover,.panel:hover,.mcard:hover,.offgrp:hover,.stat:hover{
  transform:translateY(-3px);
  border-color:rgba(79,140,255,.34);
  box-shadow:var(--panel-lift-hi);
}
/* 顶部暗金高光发丝线 */
.w::before,.panel::before,.mcard::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--cyan),rgba(79,140,255,.5) 22%,transparent 62%);
  opacity:.9;pointer-events:none;
}
.mcard::after{background:linear-gradient(90deg,var(--cyan),transparent);opacity:.85}
/* 面板标题 */
.wh{
  margin-bottom:15px;padding-bottom:11px;
  border-bottom:1px solid rgba(122,162,255,.13);
  box-shadow:0 1px 0 rgba(255,255,255,.04);
  font-size:13.5px;letter-spacing:.6px;
}
.wh .e{filter:drop-shadow(0 0 8px rgba(79,140,255,.45))}
.wh .meta{
  color:var(--blue);opacity:.8;font-size:10px;letter-spacing:1px;
  padding:2px 9px;border-radius:999px;
  background:rgba(79,140,255,.10);border:1px solid rgba(79,140,255,.22);
}
.view-head h2{
  font-size:24px;letter-spacing:1.5px;
  background:linear-gradient(90deg,#fff,var(--cyan) 55%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.view-head .tag{
  color:var(--cyan);border:1px solid rgba(79,140,255,.4);
  background:rgba(79,140,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 14px rgba(79,140,255,.2);
}

/* 数值统计：凹槽仪表 */
.stat{
  background:var(--fx-panel2);
  box-shadow:var(--deboss);
  border-color:rgba(255,255,255,.06);
}
.stat .v{
  font-size:29px;color:#fff;
  text-shadow:0 0 16px rgba(57,230,255,.6),0 0 34px rgba(57,230,255,.25),0 2px 0 rgba(0,0,0,.7);
}
.stat .l{color:var(--dim);letter-spacing:1px;font-size:10.5px}

/* 进度条：凹槽轨道 + 发光流体 */
.bar{
  border-radius:8px;
  background:rgba(0,0,0,.45);
  box-shadow:var(--deboss);
  padding:1.5px;
}
.bar > i{
  border-radius:7px;
  background:linear-gradient(90deg,var(--blue),var(--cyan) 60%,var(--cyan));
  box-shadow:0 0 12px rgba(57,230,255,.7),inset 0 1px 0 rgba(255,255,255,.55);
}

/* 系统态势行 */
.svc{border-bottom:1px dashed rgba(122,162,255,.13);padding:9px 0}
.svc .nm{color:var(--txt)}
.svc .pt{color:var(--dim)}

/* 安全态势 / 员工行 */
.sec{padding:9px 0;border-bottom:1px dashed rgba(122,162,255,.1)}
.sec .ok{
  color:var(--green);text-shadow:0 0 10px rgba(47,230,160,.6);
  padding:2px 10px;border-radius:999px;background:rgba(47,230,160,.10);border:1px solid rgba(47,230,160,.26);
}
.agent .top .st{
  background:rgba(47,230,160,.12);border:1px solid rgba(47,230,160,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 0 12px rgba(47,230,160,.18);
}

/* 活动流 */
.feed{
  background:rgba(0,0,0,.32);border-radius:12px;padding:12px 14px;
  box-shadow:var(--deboss);color:#8fa0c8;
}
.feed .ts{color:var(--blue)}
.feed .hl{color:var(--cyan);text-shadow:0 0 10px rgba(79,140,255,.5)}

/* ============================================================
   9. 按钮：真·凹凸立体（含按下凹陷）
   ============================================================ */
.btn,.pbtn,.steps .s,.tab,.xlr-send,.xlr-file,.back,
button:not([class]),.roster .btn,.emp{
  position:relative;
  border:1px solid rgba(255,255,255,.11);
  background:
    linear-gradient(180deg,rgba(140,180,255,.26) 0%,rgba(52,84,158,.20) 48%,rgba(10,17,34,.34) 100%);
  box-shadow:var(--emboss);
  color:#f2f7ff;font-weight:700;letter-spacing:.4px;
  transform:translateY(0);
  transition:transform .15s cubic-bezier(.2,.8,.3,1),box-shadow .15s,border-color .15s,filter .15s;
  text-shadow:0 1px 0 rgba(0,0,0,.55);
}
.btn:hover,.pbtn:hover,.steps .s:hover,.tab:hover,.xlr-send:hover,.back:hover{
  transform:translateY(-2px);
  border-color:rgba(79,140,255,.5);
  box-shadow:var(--emboss-hi);
  filter:brightness(1.08);
}
.btn:active,.pbtn:active,.steps .s:active,.tab:active,.xlr-send:active,.back:active{
  transform:translateY(3px);
  box-shadow:var(--emboss-press);
  filter:brightness(.94);
}
.btn.ghost,.pbtn.ghost{
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.02) 55%,rgba(0,0,0,.22));
  border-color:rgba(79,140,255,.28);
  color:var(--cyan);
}
.btn.ghost:hover,.pbtn.ghost:hover{
  border-color:rgba(79,140,255,.62);
  box-shadow:var(--emboss-hi);
  color:#fff;
}
.btn.sm,.btn.ghost.sm{padding:7px 14px;font-size:12px}
/* 主推按钮：暗金 */
.btn.primary,.pbtn.primary,.tab.on,.steps .s.on{
  border-color:rgba(255,235,180,.45);
  background:
    linear-gradient(180deg,#a8c8ff 0%,var(--blue) 45%,#12305f 100%);
  color:#241a02;text-shadow:0 1px 0 rgba(255,255,255,.45);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 -1px 0 rgba(0,0,0,.28),
    0 1px 0 rgba(0,0,0,.7),
    0 3px 0 #0a1c3a,
    0 10px 24px rgba(79,140,255,.35);
}
.btn.primary:hover,.pbtn.primary:hover,.tab.on:hover,.steps .s.on:hover{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.8),
    0 1px 0 rgba(0,0,0,.7),
    0 5px 0 #0a1c3a,
    0 16px 34px rgba(79,140,255,.5);
  filter:brightness(1.06);
}
.btn.primary:active,.pbtn.primary:active{transform:translateY(3px);box-shadow:var(--emboss-press)}

/* 步骤条 / 标签页 */
.steps .s{border-radius:999px;box-shadow:var(--emboss);padding:9px 4px}
.steps .s.done{
  background:linear-gradient(180deg,rgba(47,230,160,.26),rgba(47,230,160,.08));
  border-color:rgba(47,230,160,.4);color:#bfffe4;
}
.chip{
  background:rgba(122,162,255,.12);border:1px solid rgba(122,162,255,.24);
  border-radius:999px;color:#cddcff;font-size:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 6px rgba(0,0,0,.35);
}

/* ============================================================
   10. 表单控件：凹槽内嵌
   ============================================================ */
.field input,.field textarea,.field select,.xlr-input textarea,
input[type=text],input[type=password],input[type=number],input[type=search],textarea,select{
  background:rgba(4,8,16,.72);
  border:1px solid rgba(122,162,255,.22);
  box-shadow:var(--deboss);
  color:#e8f0ff;border-radius:12px;
  transition:.18s;
}
.field input:focus,.xlr-input textarea:focus,
input:focus,textarea:focus,select:focus{
  border-color:rgba(79,140,255,.6);
  box-shadow:var(--deboss),0 0 0 1px rgba(79,140,255,.35),0 0 18px rgba(79,140,255,.25);
}
input::placeholder,textarea::placeholder{color:rgba(134,149,190,.7)}

/* ============================================================
   11. 模块 iframe 容器
   ============================================================ */
.mod-bar{
  background:var(--fx-panel);box-shadow:var(--panel-lift);
  border-color:rgba(79,140,255,.22);
}
.mod-bar .mt{text-shadow:0 0 14px rgba(79,140,255,.35)}
.mod-frame{
  border:1px solid rgba(122,162,255,.18);border-radius:16px;
  box-shadow:var(--deboss),0 0 0 1px rgba(255,255,255,.03);
  background:#04070f;
}

/* ============================================================
   12. 大模型矩阵 / 员工卡片
   ============================================================ */
.mcard{background:var(--fx-panel2);box-shadow:var(--panel-lift)}
.mcard .mname{text-shadow:0 1px 0 rgba(0,0,0,.6)}
.mx-foot{color:var(--dim)}
.offgrp{background:linear-gradient(180deg,rgba(122,162,255,.07),rgba(255,255,255,.015));box-shadow:var(--panel-lift)}
.offhd .oc{background:rgba(79,140,255,.14);border:1px solid rgba(79,140,255,.3);color:var(--cyan)}
.emp{
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.09);
  box-shadow:var(--emboss);
}
.emp:hover{
  transform:translateY(-2px);
  border-color:rgba(79,140,255,.5);
  box-shadow:var(--emboss-hi);
}
.emp:active{transform:translateY(2px);box-shadow:var(--emboss-press)}

/* 对话终端 */
.xlr{border:1px solid rgba(122,162,255,.16);box-shadow:var(--panel-lift);background:rgba(8,13,26,.62)}
.xlr-side{background:linear-gradient(180deg,rgba(79,140,255,.10),transparent 70%);border-right:1px solid rgba(122,162,255,.14)}
.xlr-av{box-shadow:0 0 22px rgba(79,140,255,.55),inset 0 1px 0 rgba(255,255,255,.4),0 3px 0 rgba(0,0,0,.5)}
.xlr-msgs .b{background:#151f38;border:1px solid rgba(122,162,255,.16);box-shadow:0 4px 14px rgba(0,0,0,.4)}
.xlr-msgs .m.user .b{box-shadow:0 6px 18px rgba(58,108,255,.4),inset 0 1px 0 rgba(255,255,255,.25)}
.xlr-input{border-top:1px solid rgba(122,162,255,.14);background:rgba(8,13,26,.7)}

/* 提示条 */
/* 警告提示：琥珀是语义色（代表"注意"），不是装饰金边，保留暖色以示区别于普通信息 */
.advice{background:rgba(255,180,84,.10);border:1px solid rgba(255,180,84,.34);color:var(--amber);box-shadow:var(--deboss)}
.report{background:linear-gradient(135deg,rgba(47,230,160,.10),rgba(79,140,255,.05));border:1px solid rgba(47,230,160,.34);box-shadow:var(--panel-lift)}
.toast{
  background:linear-gradient(180deg,rgba(18,26,46,.97),rgba(8,13,26,.97));
  border:1px solid rgba(79,140,255,.4);
  box-shadow:0 10px 30px rgba(0,0,0,.6),0 0 22px rgba(79,140,255,.25);
}
.drop{border:2px dashed rgba(79,140,255,.4);background:rgba(79,140,255,.04);box-shadow:var(--deboss)}
.drop:hover{border-color:var(--cyan);background:rgba(79,140,255,.09);box-shadow:var(--deboss),0 0 26px rgba(79,140,255,.2)}
.rec-name{color:var(--cyan);text-shadow:0 0 20px rgba(79,140,255,.4)}
/* ============================================================
   13. 暖色高端版（生活管家 / 外卖省钱 / 图匹配 / 榜单）
   用法：<html class="fx-light">  保留原有暖色基调，仅升级质感
   ============================================================ */
html.fx-light{
  --txt:#3a2c22; --dim:#907a68;
  --gold:#b8860b; --gold-lt:#8a6410; --gold-dk:#f0d9a8; --gold-soft:rgba(184,134,11,.35);
  --cyan:#0f8ea8; --blue:#2f6fe0; --green:#16a06a; --amber:#e07800; --red:#d93b52;
  --fx-panel:linear-gradient(158deg,#ffffff 0%,#fffaf3 60%,#fdf4e8 100%);
  --fx-panel2:linear-gradient(158deg,#fffdf9,#fdf3e6);
  --fx-bd:rgba(184,134,11,.22);
  --fx-bd2:rgba(184,134,11,.34);
  --emboss:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 0 rgba(140,100,40,.22),
    0 1px 0 rgba(255,255,255,.9),
    0 3px 0 #e0c79a,
    0 8px 18px rgba(139,102,52,.22);
  --emboss-hi:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 1px 0 rgba(255,255,255,.9),
    0 5px 0 #dcc79a,
    0 16px 30px rgba(139,102,52,.3);
  --emboss-press:
    inset 0 2px 7px rgba(139,102,52,.35),
    inset 0 -1px 0 rgba(255,255,255,.8),
    0 1px 0 rgba(255,255,255,.8);
  --deboss:
    inset 0 2px 7px rgba(139,102,52,.18),
    inset 0 -1px 0 rgba(255,255,255,.85),
    0 1px 0 rgba(255,255,255,.7);
  --panel-lift:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 2px 6px rgba(139,102,52,.10),
    0 22px 44px -22px rgba(120,88,44,.35);
  --panel-lift-hi:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 6px 14px rgba(139,102,52,.16),
    0 32px 58px -24px rgba(120,88,44,.42),
    0 0 0 1px rgba(184,134,11,.3);
  background:
    radial-gradient(900px 520px at 12% -8%, rgba(255,196,120,.22), transparent 60%),
    radial-gradient(760px 480px at 96% 104%, rgba(184,134,11,.14), transparent 62%),
    linear-gradient(180deg,#fffaf2,#fbf1e2);
  background-attachment:fixed;
}
html.fx-light body{
  color:var(--txt);
  background-image:
    linear-gradient(rgba(184,134,11,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(184,134,11,.05) 1px,transparent 1px);
  background-size:46px 46px,46px 46px;
  background-attachment:fixed,fixed;
  box-shadow:inset 0 0 260px 70px rgba(255,250,242,.7);
}
html.fx-light .w,html.fx-light .panel,html.fx-light .mcard,html.fx-light .item,
html.fx-light .stat,html.fx-light .card,html.fx-light .offgrp{
  background:var(--fx-panel);
  border:1px solid rgba(184,134,11,.2);
  box-shadow:var(--panel-lift);
  color:var(--txt);
}
html.fx-light .btn,html.fx-light .pbtn,html.fx-light .tab,html.fx-light .steps .s,
html.fx-light .back,html.fx-light button:not([class]){
  background:linear-gradient(180deg,#ffffff 0%,#fff6e9 52%,#f6e6cf 100%);
  border:1px solid rgba(184,134,11,.3);
  color:#5a4224;
  text-shadow:0 1px 0 rgba(255,255,255,.9);
  box-shadow:var(--emboss);
}
html.fx-light .btn:hover,html.fx-light .pbtn:hover,html.fx-light .tab:hover{
  border-color:rgba(184,134,11,.6);box-shadow:var(--emboss-hi);filter:none;transform:translateY(-2px)
}
html.fx-light .tab.on,html.fx-light .steps .s.on,html.fx-light .btn.primary{
  background:linear-gradient(180deg,#ffb667 0%,#f08a24 48%,#c96a10 100%);
  color:#fff;text-shadow:0 1px 2px rgba(120,60,0,.4);border-color:rgba(160,90,10,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 1px 0 rgba(255,255,255,.6),0 3px 0 #a35c0c,0 10px 22px rgba(200,110,20,.35);
}
html.fx-light .chip{background:rgba(184,134,11,.10);border-color:rgba(184,134,11,.3);color:#6b5227}
html.fx-light .field input,html.fx-light textarea,html.fx-light input,html.fx-light select{
  background:#fffdf8;color:#3a2c22;border:1px solid rgba(184,134,11,.28);box-shadow:var(--deboss)
}
html.fx-light .field input:focus,html.fx-light textarea:focus{
  border-color:rgba(184,134,11,.65);box-shadow:var(--deboss),0 0 0 1px rgba(184,134,11,.3)
}
html.fx-light .led,html.fx-light .dot,html.fx-light .od,html.fx-light .ed,
html.fx-light .svc .d,html.fx-light .status-dot{
  border-color:rgba(120,88,44,.35);
  box-shadow:0 0 4px var(--lm),0 0 12px var(--lg),0 0 26px var(--lg),inset 0 -1px 2px rgba(0,0,0,.3),inset 0 1px 1px rgba(255,255,255,.6);
}
html.fx-light .led::before,html.fx-light .dot::before{
  border-color:rgba(120,88,44,.28);box-shadow:inset 0 0 4px rgba(120,88,44,.35),0 1px 0 rgba(255,255,255,.7)
}
html.fx-light .wh,html.fx-light h1,html.fx-light h2,html.fx-light h3,html.fx-light h4{color:#3a2c22}
html.fx-light .rank{background:linear-gradient(180deg,#fff3df,#f3dfbe);color:#8a5a20;box-shadow:var(--emboss)}
html.fx-light ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#d9a83f,#b8860b)}

/* ============================================================
   14. 动效节制 & 可访问性
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
@media (max-width:1280px){
  .kpis{gap:8px}
  .kpi{padding:6px 11px;font-size:11px}
}
@media (max-width:900px){
  .sidebar{width:78px;flex:0 0 78px;padding:12px 8px}
  .nav{justify-content:center;padding:12px 6px}
  .nav span:not(.ic){display:none}
  .nav-group{text-align:center;font-size:8px}
  .stage{padding:14px}
}

/* ============================================================
   15. 特异性补强 + 亮度层级 + 大厂级呼吸间距
   （页面内联用 .kpi .dot / .svc .d 双类选择器，需同等特异性才能接管）
   ============================================================ */
.kpi .dot,.svc .d,.emp .ed,.emp .od,.mcard .led,.status-dot,.led,.dot,.od,.ed{
  width:12px;height:12px;
}
/* 亮度层级：顶栏最亮 → 服务行标准 → 列表灯柔和 */
.kpi .dot{--li:1.5}
.svc .d{--li:1.2}
.emp .ed,.emp .od{--li:1}
.od{--li:1.25}

/* 大厂级留白：让界面"松"下来，不再挤成一团 */
.stage{padding:24px 28px 46px}
.grid{gap:18px}
.w,.panel{padding:18px 20px}
.sidebar{width:242px;flex:0 0 242px;padding:18px 13px}
.view-head{margin-bottom:22px;padding-bottom:14px;
  border-bottom:1px solid rgba(122,162,255,.13);
  box-shadow:0 1px 0 rgba(255,255,255,.03)}
.roster{gap:16px}
.mx{gap:14px}
.stats{gap:14px}
.hud-card + .hud-card{margin-left:0}

/* ============================================================
   16. 点睛细节：暗金指示条 / 品牌呼吸光 / 时钟辉光
   ============================================================ */
/* 面板标题前的指示条（大厂控制台标志性细节）—— 冷色，不与顶栏暗金抢戏 */
.wh::before{
  content:"";width:3px;height:15px;border-radius:2px;flex:0 0 auto;margin-right:-2px;
  background:linear-gradient(180deg,#dff3ff,var(--cyan) 55%,#12305f);
  box-shadow:0 0 10px rgba(79,140,255,.65),inset 0 1px 0 rgba(255,255,255,.5);
}
/* 品牌 Logo 呼吸光 */
@keyframes fxLogoBreath{
  0%,100%{box-shadow:0 0 20px rgba(79,140,255,.5),inset 0 1px 0 rgba(255,255,255,.45),0 3px 0 rgba(0,0,0,.5)}
  50%    {box-shadow:0 0 34px rgba(79,140,255,.6),inset 0 1px 0 rgba(255,255,255,.6),0 3px 0 rgba(0,0,0,.5)}
}
.logo{animation:fxLogoBreath 5s ease-in-out infinite}
/* 时钟：凹槽 + 辉光 */
.clock .t{
  padding:2px 10px;border-radius:10px;
  background:rgba(0,0,0,.34);
  box-shadow:var(--deboss);
}
/* 侧栏底部：系统铭牌 */
.side-foot{
  background:linear-gradient(180deg,transparent,rgba(79,140,255,.06));
  border-radius:10px;padding:12px 11px;
}

/* ============================================================
   17. 软白·炭黑版  FX SOFT
   用法：<html class="fx-soft">
   规范：软白 #f5f4ef 为底，炭黑 #0d0d0e 为字与边框，浅灰为辅
   必须放在文件末尾，以接管第 15/16 节的硬编码深色细节
   ============================================================ */
html.fx-soft{
  /* 底色层次 */
  --fx-bg:#f5f4ef; --fx-bg2:#ecebe5; --fx-bg3:#e2e1da;
  --fx-panel:linear-gradient(158deg,#ffffff 0%,#fbfaf6 62%,#f5f4ef 100%);
  --fx-panel2:linear-gradient(158deg,#ffffff,#f1f0ea);
  --fx-bd:rgba(13,13,14,.14);
  --fx-bd2:rgba(13,13,14,.26);

  /* 文字：炭黑为主，浅灰为辅 */
  --txt:#0d0d0e; --dim:#6e6e6a;
  --sub:#5a5a55;

  /* 品牌与功能色（压暗以适配浅底） */
  --gold:#0d0d0e; --gold-lt:#1a1d28; --gold-dk:#6e6e6a; --gold-soft:rgba(13,13,14,.18);
  --cyan:#0d6e7a; --blue:#1a4a8c; --violet:#5a3a8c;
  --green:#1a7a55; --amber:#8a5a14; --red:#a02828;

  /* 凹凸：浅色版——高光在上、浅灰投影在下 */
  --emboss:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 0 rgba(13,13,14,.10),
    0 1px 0 rgba(255,255,255,.9),
    0 3px 0 #dcd9d0,
    0 8px 18px rgba(13,13,14,.10);
  --emboss-hi:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 1px 0 rgba(255,255,255,.9),
    0 5px 0 #d6d3c9,
    0 16px 30px rgba(13,13,14,.13);
  --emboss-press:
    inset 0 2px 7px rgba(13,13,14,.16),
    inset 0 -1px 0 rgba(255,255,255,.9),
    0 1px 0 rgba(255,255,255,.8);
  --deboss:
    inset 0 2px 7px rgba(13,13,14,.07),
    inset 0 -1px 0 rgba(255,255,255,.9),
    0 1px 0 rgba(255,255,255,.8);
  --panel-lift:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 2px 6px rgba(13,13,14,.05),
    0 22px 44px -22px rgba(13,13,14,.16);
  --panel-lift-hi:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 6px 14px rgba(13,13,14,.08),
    0 32px 58px -24px rgba(13,13,14,.20),
    0 0 0 1px rgba(13,13,14,.16);

  --serif:"Songti SC","Noto Serif SC","Source Han Serif SC",Georgia,serif;

  background:var(--fx-bg);
  background-attachment:fixed;
}
html.fx-soft body{
  color:var(--txt);
  background-image:
    linear-gradient(rgba(13,13,14,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,13,14,.035) 1px,transparent 1px);
  background-size:46px 46px,46px 46px;
  background-attachment:fixed,fixed;
  box-shadow:none;
}

/* ---------- 滚动条 / 选中 ---------- */
html.fx-soft ::-webkit-scrollbar-track{background:rgba(13,13,14,.03)}
html.fx-soft ::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(13,13,14,.34),rgba(13,13,14,.20));
  border:1px solid rgba(255,255,255,.6);
}
html.fx-soft ::-webkit-scrollbar-thumb:hover{background:rgba(13,13,14,.45)}
html.fx-soft ::selection{background:rgba(13,13,14,.14);color:#0d0d0e}

/* ---------- 顶栏 ---------- */
html.fx-soft .topbar{
  background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(250,249,245,.92) 45%,rgba(255,255,255,.94) 100%);
  border-bottom:1px solid rgba(13,13,14,.16);
  box-shadow:0 1px 0 rgba(255,255,255,.9),0 6px 22px rgba(13,13,14,.07);
  backdrop-filter:blur(10px);
}
html.fx-soft .topbar::after{
  background:linear-gradient(90deg,transparent,rgba(13,13,14,.10) 20%,rgba(13,13,14,.38) 50%,rgba(13,13,14,.10) 80%,transparent);
  box-shadow:none;
}
html.fx-soft .logo{
  box-shadow:0 0 0 1px rgba(13,13,14,.10),inset 0 1px 0 rgba(255,255,255,.9),0 3px 0 #dcd9d0;
  animation:none;
}
html.fx-soft .brand h1{
  background:none;-webkit-background-clip:border-box;background-clip:border-box;
  color:var(--txt);text-shadow:none;
  font-family:var(--serif);letter-spacing:1.2px;
}
html.fx-soft .brand .sub{color:var(--sub);opacity:.85}
html.fx-soft .kpi{
  background:var(--fx-panel2);
  border:1px solid rgba(13,13,14,.12);
  box-shadow:var(--deboss);
}
html.fx-soft .kpi:hover{box-shadow:var(--deboss),0 0 0 1px rgba(13,13,14,.22)}
html.fx-soft .kpi b{color:var(--txt);text-shadow:none;font-family:var(--serif)}
html.fx-soft .clock .t{color:var(--txt);text-shadow:none;font-family:var(--serif)}

/* ---------- 侧栏 ---------- */
html.fx-soft .sidebar{
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(246,245,240,.96));
  border-right:1px solid rgba(13,13,14,.13);
  box-shadow:none;
}
html.fx-soft .nav-group{color:var(--sub);opacity:.9}
html.fx-soft .nav{
  border:1px solid rgba(13,13,14,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 2px 0 #e4e1d8,0 4px 10px rgba(13,13,14,.05);
  background:linear-gradient(180deg,#ffffff,rgba(246,245,240,.9));
  color:var(--sub);
}
html.fx-soft .nav:hover{
  color:var(--txt);
  border-color:rgba(13,13,14,.24);
  background:linear-gradient(180deg,#ffffff,rgba(232,230,222,.95));
  box-shadow:var(--emboss-hi);
}
html.fx-soft .nav.active{
  color:var(--txt);
  border-color:rgba(13,13,14,.28);
  background:linear-gradient(90deg,rgba(13,13,14,.09),rgba(13,13,14,.04) 60%,transparent);
  box-shadow:inset 0 2px 8px rgba(13,13,14,.08),inset 0 1px 0 rgba(255,255,255,.9);
}
html.fx-soft .side-foot{border-top:1px solid rgba(13,13,14,.12);color:var(--dim)}

/* ---------- 面板 ---------- */
html.fx-soft .w,html.fx-soft .panel,html.fx-soft .mcard,html.fx-soft .offgrp,
html.fx-soft .mod-bar,html.fx-soft .xlr,html.fx-soft .stat,html.fx-soft .steps .s,
html.fx-soft .chip,html.fx-soft .item,html.fx-soft .report,html.fx-soft .advice,
html.fx-soft .card{
  border:1px solid rgba(13,13,14,.14);
  background:var(--fx-panel);
  box-shadow:var(--panel-lift);
  color:var(--txt);
}
html.fx-soft .w:hover,html.fx-soft .panel:hover,html.fx-soft .mcard:hover,
html.fx-soft .offgrp:hover,html.fx-soft .stat:hover{
  border-color:rgba(13,13,14,.26);
  box-shadow:var(--panel-lift-hi);
}
/* 顶部高光发丝线改炭黑细线 */
html.fx-soft .w::before,html.fx-soft .panel::before,html.fx-soft .mcard::before{
  background:linear-gradient(90deg,rgba(13,13,14,.42),rgba(13,13,14,.10) 22%,transparent 62%);
  opacity:1;
}
html.fx-soft .mcard::after{background:linear-gradient(90deg,rgba(13,13,14,.30),transparent)}

html.fx-soft .wh{
  border-bottom:1px solid rgba(13,13,14,.12);
  box-shadow:0 1px 0 rgba(255,255,255,.9);
  color:var(--txt);
  font-family:var(--serif);
}
html.fx-soft .wh .e{filter:none}
html.fx-soft .wh .meta{
  color:var(--sub);opacity:1;
  background:rgba(13,13,14,.05);border:1px solid rgba(13,13,14,.16);
}
html.fx-soft .view-head h2,
html.fx-soft h1,html.fx-soft h2,html.fx-soft h3,html.fx-soft h4{
  background:none;-webkit-background-clip:border-box;background-clip:border-box;
  color:var(--txt);text-shadow:none;
  font-family:var(--serif);letter-spacing:.8px;
}
html.fx-soft .view-head{border-bottom:1px solid rgba(13,13,14,.12);box-shadow:0 1px 0 rgba(255,255,255,.9)}
html.fx-soft .view-head .tag{
  color:var(--sub);border:1px solid rgba(13,13,14,.18);
  background:rgba(13,13,14,.04);box-shadow:none;
}

/* ---------- 数值 / 进度 ---------- */
html.fx-soft .stat{background:var(--fx-panel2);border-color:rgba(13,13,14,.13);box-shadow:var(--deboss)}
html.fx-soft .stat .v{color:var(--txt);text-shadow:none;font-family:var(--serif)}
html.fx-soft .stat .l{color:var(--dim);opacity:1}
html.fx-soft .bar{background:rgba(13,13,14,.06);box-shadow:var(--deboss)}
html.fx-soft .bar > i{
  background:linear-gradient(90deg,#1a1d28,#2f3746 60%,#3a4457);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}

/* ---------- 列表行 ---------- */
html.fx-soft .svc{border-bottom:1px dashed rgba(13,13,14,.14)}
html.fx-soft .svc .nm{color:var(--txt)}
html.fx-soft .svc .pt{color:var(--dim);opacity:1}
html.fx-soft .sec{border-bottom:1px dashed rgba(13,13,14,.12)}
html.fx-soft .sec .ok{
  color:var(--green);text-shadow:none;
  background:rgba(26,122,85,.09);border:1px solid rgba(26,122,85,.28);
}
html.fx-soft .agent .top .st{
  background:rgba(26,122,85,.09);border:1px solid rgba(26,122,85,.28);box-shadow:none;
}
html.fx-soft .feed{background:rgba(13,13,14,.035);box-shadow:var(--deboss);color:var(--sub)}
html.fx-soft .feed .ts{color:var(--dim);opacity:1}
html.fx-soft .feed .hl{color:var(--txt);text-shadow:none;font-weight:600}

/* ---------- 按钮 ---------- */
html.fx-soft .btn,html.fx-soft .pbtn,html.fx-soft .steps .s,html.fx-soft .tab,
html.fx-soft .xlr-send,html.fx-soft .xlr-file,html.fx-soft .back,
html.fx-soft button:not([class]),html.fx-soft .roster .btn,html.fx-soft .emp{
  border:1px solid rgba(13,13,14,.18);
  background:linear-gradient(180deg,#ffffff 0%,#faf9f5 52%,#f0efe8 100%);
  box-shadow:var(--emboss);
  color:var(--txt);
  text-shadow:0 1px 0 rgba(255,255,255,.9);
}
html.fx-soft .btn:hover,html.fx-soft .pbtn:hover,html.fx-soft .steps .s:hover,
html.fx-soft .tab:hover,html.fx-soft .xlr-send:hover,html.fx-soft .back:hover{
  border-color:rgba(13,13,14,.32);box-shadow:var(--emboss-hi);filter:none;
}
html.fx-soft .btn.ghost,html.fx-soft .pbtn.ghost{
  background:linear-gradient(180deg,#ffffff,rgba(240,239,232,.8));
  border-color:rgba(13,13,14,.20);color:var(--sub);
}
html.fx-soft .btn.ghost:hover,html.fx-soft .pbtn.ghost:hover{color:var(--txt)}
html.fx-soft .btn.primary,html.fx-soft .pbtn.primary,
html.fx-soft .tab.on,html.fx-soft .steps .s.on{
  border-color:rgba(13,13,14,.55);
  background:linear-gradient(180deg,#2b2f3a 0%,#12151c 100%);
  color:#f5f4ef;text-shadow:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 1px 0 rgba(255,255,255,.7),0 3px 0 #000,0 10px 24px rgba(13,13,14,.22);
}
html.fx-soft .btn.primary:hover,html.fx-soft .pbtn.primary:hover,
html.fx-soft .tab.on:hover,html.fx-soft .steps .s.on:hover{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 1px 0 rgba(255,255,255,.7),0 5px 0 #000,0 16px 34px rgba(13,13,14,.28);
  filter:none;
}
html.fx-soft .steps .s.done{
  background:linear-gradient(180deg,rgba(26,122,85,.14),rgba(26,122,85,.05));
  border-color:var(--green);color:var(--green);
}
html.fx-soft .chip{
  background:rgba(13,13,14,.05);border:1px solid rgba(13,13,14,.18);
  color:var(--sub);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}

/* ---------- 表单 ---------- */
html.fx-soft .field input,html.fx-soft .field textarea,html.fx-soft .field select,
html.fx-soft .xlr-input textarea,
html.fx-soft input[type=text],html.fx-soft input[type=password],
html.fx-soft input[type=number],html.fx-soft input[type=search],
html.fx-soft textarea,html.fx-soft select{
  background:#ffffff;
  border:1px solid rgba(13,13,14,.20);
  box-shadow:var(--deboss);
  color:var(--txt);
}
html.fx-soft .field input:focus,html.fx-soft .xlr-input textarea:focus,
html.fx-soft input:focus,html.fx-soft textarea:focus,html.fx-soft select:focus{
  border-color:rgba(13,13,14,.55);
  box-shadow:var(--deboss),0 0 0 1px rgba(13,13,14,.18);
}
html.fx-soft input::placeholder,html.fx-soft textarea::placeholder{color:#8a8a86}

/* ---------- iframe 容器 ---------- */
html.fx-soft .mod-bar{background:var(--fx-panel);border-color:rgba(13,13,14,.16);box-shadow:var(--panel-lift)}
html.fx-soft .mod-bar .mt{text-shadow:none;color:var(--txt);font-family:var(--serif)}
html.fx-soft .mod-frame{border:1px solid rgba(13,13,14,.18);box-shadow:var(--deboss);background:#ffffff}

/* ---------- 模型矩阵 / 员工卡 ---------- */
html.fx-soft .mcard{background:var(--fx-panel2);box-shadow:var(--panel-lift)}
html.fx-soft .mcard .mname{text-shadow:none;color:var(--txt);font-family:var(--serif)}
html.fx-soft .mx-foot{color:var(--dim);opacity:1}
html.fx-soft .offgrp{background:linear-gradient(180deg,rgba(13,13,14,.03),rgba(255,255,255,.7));box-shadow:var(--panel-lift)}
html.fx-soft .offhd .oc{background:rgba(13,13,14,.06);border:1px solid rgba(13,13,14,.18);color:var(--txt)}
html.fx-soft .emp{
  background:linear-gradient(180deg,#ffffff,rgba(240,239,232,.85));
  border:1px solid rgba(13,13,14,.14);
  box-shadow:var(--emboss);
  color:var(--txt);text-shadow:none;
}
html.fx-soft .emp:hover{border-color:rgba(13,13,14,.30);box-shadow:var(--emboss-hi)}

/* ---------- 对话终端 ---------- */
html.fx-soft .xlr{border:1px solid rgba(13,13,14,.16);box-shadow:var(--panel-lift);background:rgba(255,255,255,.82)}
html.fx-soft .xlr-side{background:linear-gradient(180deg,rgba(13,13,14,.04),transparent 70%);border-right:1px solid rgba(13,13,14,.13)}
html.fx-soft .xlr-av{box-shadow:0 0 0 1px rgba(13,13,14,.12),inset 0 1px 0 rgba(255,255,255,.8),0 3px 0 #dcd9d0}
html.fx-soft .xlr-msgs .b{background:#ffffff;border:1px solid rgba(13,13,14,.14);box-shadow:0 4px 14px rgba(13,13,14,.07);color:var(--txt)}
html.fx-soft .xlr-msgs .m.user .b{box-shadow:0 6px 18px rgba(13,13,14,.12),inset 0 1px 0 rgba(255,255,255,.9)}
html.fx-soft .xlr-input{border-top:1px solid rgba(13,13,14,.13);background:rgba(250,249,245,.9)}

/* ---------- 提示条 ---------- */
html.fx-soft .advice{background:rgba(138,90,20,.07);border:1px solid rgba(138,90,20,.28);color:var(--amber);box-shadow:var(--deboss)}
html.fx-soft .report{background:linear-gradient(135deg,rgba(26,122,85,.07),rgba(13,13,14,.02));border:1px solid rgba(26,122,85,.28);box-shadow:var(--panel-lift);color:var(--txt)}
html.fx-soft .toast{
  background:linear-gradient(180deg,#ffffff,#f4f3ed);
  border:1px solid rgba(13,13,14,.28);color:var(--txt);
  box-shadow:0 10px 30px rgba(13,13,14,.16);
}

/* ---------- 状态灯：保留发光，去掉黑圈 ---------- */
html.fx-soft .led,html.fx-soft .dot,html.fx-soft .od,html.fx-soft .ed,
html.fx-soft .svc .d,html.fx-soft .status-dot{border-color:rgba(13,13,14,.35)}
html.fx-soft .led::before,html.fx-soft .dot::before,html.fx-soft .od::before,
html.fx-soft .ed::before,html.fx-soft .svc .d::before,html.fx-soft .status-dot::before{
  border-color:rgba(13,13,14,.22);
  box-shadow:inset 0 0 4px rgba(13,13,14,.18),0 1px 0 rgba(255,255,255,.9);
}
html.fx-soft .wh::before{
  content:"";width:3px;height:15px;border-radius:2px;flex:0 0 auto;margin-right:-2px;
  background:linear-gradient(180deg,#3a4457,#0d0d0e 60%,#2f3746);
  box-shadow:none;
}

/* ---------- 其它 ---------- */
html.fx-soft .drop{border:2px dashed rgba(13,13,14,.30);background:rgba(13,13,14,.03);box-shadow:var(--deboss)}
html.fx-soft .drop:hover{border-color:rgba(13,13,14,.55);background:rgba(13,13,14,.05);box-shadow:var(--deboss)}
html.fx-soft .rec-name{color:var(--txt);text-shadow:none}
html.fx-soft .rank{background:linear-gradient(180deg,#ffffff,#eeece3);color:var(--txt);box-shadow:var(--emboss)}
html.fx-soft .side-foot{background:linear-gradient(180deg,transparent,rgba(13,13,14,.04))}

/* ============================================================
   17. 软白·炭黑版  FX SOFT
   用法：<html class="fx-soft">
   规范：软白 #f5f4ef 为底，炭黑 #0d0d0e 为字与边框，浅灰为辅
   必须放在文件末尾，以接管第 15/16 节的硬编码深色细节
   ============================================================ */
html.fx-soft{
  /* 底色层次 */
  --fx-bg:#f5f4ef; --fx-bg2:#ecebe5; --fx-bg3:#e2e1da;
  --fx-panel:linear-gradient(158deg,#ffffff 0%,#fbfaf6 62%,#f5f4ef 100%);
  --fx-panel2:linear-gradient(158deg,#ffffff,#f1f0ea);
  --fx-bd:rgba(13,13,14,.14);
  --fx-bd2:rgba(13,13,14,.26);

  /* 文字：炭黑为主，浅灰为辅 */
  --txt:#0d0d0e; --dim:#6e6e6a;
  --sub:#5a5a55;

  /* 品牌与功能色（压暗以适配浅底） */
  --gold:#0d0d0e; --gold-lt:#1a1d28; --gold-dk:#6e6e6a; --gold-soft:rgba(13,13,14,.18);
  --cyan:#0d6e7a; --blue:#1a4a8c; --violet:#5a3a8c;
  --green:#1a7a55; --amber:#8a5a14; --red:#a02828;

  /* 凹凸：浅色版——高光在上、浅灰投影在下 */
  --emboss:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 0 rgba(13,13,14,.10),
    0 1px 0 rgba(255,255,255,.9),
    0 3px 0 #dcd9d0,
    0 8px 18px rgba(13,13,14,.10);
  --emboss-hi:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 1px 0 rgba(255,255,255,.9),
    0 5px 0 #d6d3c9,
    0 16px 30px rgba(13,13,14,.13);
  --emboss-press:
    inset 0 2px 7px rgba(13,13,14,.16),
    inset 0 -1px 0 rgba(255,255,255,.9),
    0 1px 0 rgba(255,255,255,.8);
  --deboss:
    inset 0 2px 7px rgba(13,13,14,.07),
    inset 0 -1px 0 rgba(255,255,255,.9),
    0 1px 0 rgba(255,255,255,.8);
  --panel-lift:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 2px 6px rgba(13,13,14,.05),
    0 22px 44px -22px rgba(13,13,14,.16);
  --panel-lift-hi:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 6px 14px rgba(13,13,14,.08),
    0 32px 58px -24px rgba(13,13,14,.20),
    0 0 0 1px rgba(13,13,14,.16);

  --serif:"Songti SC","Noto Serif SC","Source Han Serif SC",Georgia,serif;

  background:var(--fx-bg);
  background-attachment:fixed;
}
html.fx-soft body{
  color:var(--txt);
  background-image:
    linear-gradient(rgba(13,13,14,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,13,14,.035) 1px,transparent 1px);
  background-size:46px 46px,46px 46px;
  background-attachment:fixed,fixed;
  box-shadow:none;
}

/* ---------- 滚动条 / 选中 ---------- */
html.fx-soft ::-webkit-scrollbar-track{background:rgba(13,13,14,.03)}
html.fx-soft ::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(13,13,14,.34),rgba(13,13,14,.20));
  border:1px solid rgba(255,255,255,.6);
}
html.fx-soft ::-webkit-scrollbar-thumb:hover{background:rgba(13,13,14,.45)}
html.fx-soft ::selection{background:rgba(13,13,14,.14);color:#0d0d0e}

/* ---------- 顶栏 ---------- */
html.fx-soft .topbar{
  background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(250,249,245,.92) 45%,rgba(255,255,255,.94) 100%);
  border-bottom:1px solid rgba(13,13,14,.16);
  box-shadow:0 1px 0 rgba(255,255,255,.9),0 6px 22px rgba(13,13,14,.07);
  backdrop-filter:blur(10px);
}
html.fx-soft .topbar::after{
  background:linear-gradient(90deg,transparent,rgba(13,13,14,.10) 20%,rgba(13,13,14,.38) 50%,rgba(13,13,14,.10) 80%,transparent);
  box-shadow:none;
}
html.fx-soft .logo{
  box-shadow:0 0 0 1px rgba(13,13,14,.10),inset 0 1px 0 rgba(255,255,255,.9),0 3px 0 #dcd9d0;
  animation:none;
}
html.fx-soft .brand h1{
  background:none;-webkit-background-clip:border-box;background-clip:border-box;
  color:var(--txt);text-shadow:none;
  font-family:var(--serif);letter-spacing:1.2px;
}
html.fx-soft .brand .sub{color:var(--sub);opacity:.85}
html.fx-soft .kpi{
  background:var(--fx-panel2);
  border:1px solid rgba(13,13,14,.12);
  box-shadow:var(--deboss);
}
html.fx-soft .kpi:hover{box-shadow:var(--deboss),0 0 0 1px rgba(13,13,14,.22)}
html.fx-soft .kpi b{color:var(--txt);text-shadow:none;font-family:var(--serif)}
html.fx-soft .clock .t{color:var(--txt);text-shadow:none;font-family:var(--serif)}

/* ---------- 侧栏 ---------- */
html.fx-soft .sidebar{
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(246,245,240,.96));
  border-right:1px solid rgba(13,13,14,.13);
  box-shadow:none;
}
html.fx-soft .nav-group{color:var(--sub);opacity:.9}
html.fx-soft .nav{
  border:1px solid rgba(13,13,14,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 2px 0 #e4e1d8,0 4px 10px rgba(13,13,14,.05);
  background:linear-gradient(180deg,#ffffff,rgba(246,245,240,.9));
  color:var(--sub);
}
html.fx-soft .nav:hover{
  color:var(--txt);
  border-color:rgba(13,13,14,.24);
  background:linear-gradient(180deg,#ffffff,rgba(232,230,222,.95));
  box-shadow:var(--emboss-hi);
}
html.fx-soft .nav.active{
  color:var(--txt);
  border-color:rgba(13,13,14,.28);
  background:linear-gradient(90deg,rgba(13,13,14,.09),rgba(13,13,14,.04) 60%,transparent);
  box-shadow:inset 0 2px 8px rgba(13,13,14,.08),inset 0 1px 0 rgba(255,255,255,.9);
}
html.fx-soft .side-foot{border-top:1px solid rgba(13,13,14,.12);color:var(--dim)}

/* ---------- 面板 ---------- */
html.fx-soft .w,html.fx-soft .panel,html.fx-soft .mcard,html.fx-soft .offgrp,
html.fx-soft .mod-bar,html.fx-soft .xlr,html.fx-soft .stat,html.fx-soft .steps .s,
html.fx-soft .chip,html.fx-soft .item,html.fx-soft .report,html.fx-soft .advice,
html.fx-soft .card{
  border:1px solid rgba(13,13,14,.14);
  background:var(--fx-panel);
  box-shadow:var(--panel-lift);
  color:var(--txt);
}
html.fx-soft .w:hover,html.fx-soft .panel:hover,html.fx-soft .mcard:hover,
html.fx-soft .offgrp:hover,html.fx-soft .stat:hover{
  border-color:rgba(13,13,14,.26);
  box-shadow:var(--panel-lift-hi);
}
/* 顶部高光发丝线改炭黑细线 */
html.fx-soft .w::before,html.fx-soft .panel::before,html.fx-soft .mcard::before{
  background:linear-gradient(90deg,rgba(13,13,14,.42),rgba(13,13,14,.10) 22%,transparent 62%);
  opacity:1;
}
html.fx-soft .mcard::after{background:linear-gradient(90deg,rgba(13,13,14,.30),transparent)}

html.fx-soft .wh{
  border-bottom:1px solid rgba(13,13,14,.12);
  box-shadow:0 1px 0 rgba(255,255,255,.9);
  color:var(--txt);
  font-family:var(--serif);
}
html.fx-soft .wh .e{filter:none}
html.fx-soft .wh .meta{
  color:var(--sub);opacity:1;
  background:rgba(13,13,14,.05);border:1px solid rgba(13,13,14,.16);
}
html.fx-soft .view-head h2,
html.fx-soft h1,html.fx-soft h2,html.fx-soft h3,html.fx-soft h4{
  background:none;-webkit-background-clip:border-box;background-clip:border-box;
  color:var(--txt);text-shadow:none;
  font-family:var(--serif);letter-spacing:.8px;
}
html.fx-soft .view-head{border-bottom:1px solid rgba(13,13,14,.12);box-shadow:0 1px 0 rgba(255,255,255,.9)}
html.fx-soft .view-head .tag{
  color:var(--sub);border:1px solid rgba(13,13,14,.18);
  background:rgba(13,13,14,.04);box-shadow:none;
}

/* ---------- 数值 / 进度 ---------- */
html.fx-soft .stat{background:var(--fx-panel2);border-color:rgba(13,13,14,.13);box-shadow:var(--deboss)}
html.fx-soft .stat .v{color:var(--txt);text-shadow:none;font-family:var(--serif)}
html.fx-soft .stat .l{color:var(--dim);opacity:1}
html.fx-soft .bar{background:rgba(13,13,14,.06);box-shadow:var(--deboss)}
html.fx-soft .bar > i{
  background:linear-gradient(90deg,#1a1d28,#2f3746 60%,#3a4457);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}

/* ---------- 列表行 ---------- */
html.fx-soft .svc{border-bottom:1px dashed rgba(13,13,14,.14)}
html.fx-soft .svc .nm{color:var(--txt)}
html.fx-soft .svc .pt{color:var(--dim);opacity:1}
html.fx-soft .sec{border-bottom:1px dashed rgba(13,13,14,.12)}
html.fx-soft .sec .ok{
  color:var(--green);text-shadow:none;
  background:rgba(26,122,85,.09);border:1px solid rgba(26,122,85,.28);
}
html.fx-soft .agent .top .st{
  background:rgba(26,122,85,.09);border:1px solid rgba(26,122,85,.28);box-shadow:none;
}
html.fx-soft .feed{background:rgba(13,13,14,.035);box-shadow:var(--deboss);color:var(--sub)}
html.fx-soft .feed .ts{color:var(--dim);opacity:1}
html.fx-soft .feed .hl{color:var(--txt);text-shadow:none;font-weight:600}

/* ---------- 按钮 ---------- */
html.fx-soft .btn,html.fx-soft .pbtn,html.fx-soft .steps .s,html.fx-soft .tab,
html.fx-soft .xlr-send,html.fx-soft .xlr-file,html.fx-soft .back,
html.fx-soft button:not([class]),html.fx-soft .roster .btn,html.fx-soft .emp{
  border:1px solid rgba(13,13,14,.18);
  background:linear-gradient(180deg,#ffffff 0%,#faf9f5 52%,#f0efe8 100%);
  box-shadow:var(--emboss);
  color:var(--txt);
  text-shadow:0 1px 0 rgba(255,255,255,.9);
}
html.fx-soft .btn:hover,html.fx-soft .pbtn:hover,html.fx-soft .steps .s:hover,
html.fx-soft .tab:hover,html.fx-soft .xlr-send:hover,html.fx-soft .back:hover{
  border-color:rgba(13,13,14,.32);box-shadow:var(--emboss-hi);filter:none;
}
html.fx-soft .btn.ghost,html.fx-soft .pbtn.ghost{
  background:linear-gradient(180deg,#ffffff,rgba(240,239,232,.8));
  border-color:rgba(13,13,14,.20);color:var(--sub);
}
html.fx-soft .btn.ghost:hover,html.fx-soft .pbtn.ghost:hover{color:var(--txt)}
html.fx-soft .btn.primary,html.fx-soft .pbtn.primary,
html.fx-soft .tab.on,html.fx-soft .steps .s.on{
  border-color:rgba(13,13,14,.55);
  background:linear-gradient(180deg,#2b2f3a 0%,#12151c 100%);
  color:#f5f4ef;text-shadow:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 1px 0 rgba(255,255,255,.7),0 3px 0 #000,0 10px 24px rgba(13,13,14,.22);
}
html.fx-soft .btn.primary:hover,html.fx-soft .pbtn.primary:hover,
html.fx-soft .tab.on:hover,html.fx-soft .steps .s.on:hover{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 1px 0 rgba(255,255,255,.7),0 5px 0 #000,0 16px 34px rgba(13,13,14,.28);
  filter:none;
}
html.fx-soft .steps .s.done{
  background:linear-gradient(180deg,rgba(26,122,85,.14),rgba(26,122,85,.05));
  border-color:var(--green);color:var(--green);
}
html.fx-soft .chip{
  background:rgba(13,13,14,.05);border:1px solid rgba(13,13,14,.18);
  color:var(--sub);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}

/* ---------- 表单 ---------- */
html.fx-soft .field input,html.fx-soft .field textarea,html.fx-soft .field select,
html.fx-soft .xlr-input textarea,
html.fx-soft input[type=text],html.fx-soft input[type=password],
html.fx-soft input[type=number],html.fx-soft input[type=search],
html.fx-soft textarea,html.fx-soft select{
  background:#ffffff;
  border:1px solid rgba(13,13,14,.20);
  box-shadow:var(--deboss);
  color:var(--txt);
}
html.fx-soft .field input:focus,html.fx-soft .xlr-input textarea:focus,
html.fx-soft input:focus,html.fx-soft textarea:focus,html.fx-soft select:focus{
  border-color:rgba(13,13,14,.55);
  box-shadow:var(--deboss),0 0 0 1px rgba(13,13,14,.18);
}
html.fx-soft input::placeholder,html.fx-soft textarea::placeholder{color:#8a8a86}

/* ---------- iframe 容器 ---------- */
html.fx-soft .mod-bar{background:var(--fx-panel);border-color:rgba(13,13,14,.16);box-shadow:var(--panel-lift)}
html.fx-soft .mod-bar .mt{text-shadow:none;color:var(--txt);font-family:var(--serif)}
html.fx-soft .mod-frame{border:1px solid rgba(13,13,14,.18);box-shadow:var(--deboss);background:#ffffff}

/* ---------- 模型矩阵 / 员工卡 ---------- */
html.fx-soft .mcard{background:var(--fx-panel2);box-shadow:var(--panel-lift)}
html.fx-soft .mcard .mname{text-shadow:none;color:var(--txt);font-family:var(--serif)}
html.fx-soft .mx-foot{color:var(--dim);opacity:1}
html.fx-soft .offgrp{background:linear-gradient(180deg,rgba(13,13,14,.03),rgba(255,255,255,.7));box-shadow:var(--panel-lift)}
html.fx-soft .offhd .oc{background:rgba(13,13,14,.06);border:1px solid rgba(13,13,14,.18);color:var(--txt)}
html.fx-soft .emp{
  background:linear-gradient(180deg,#ffffff,rgba(240,239,232,.85));
  border:1px solid rgba(13,13,14,.14);
  box-shadow:var(--emboss);
  color:var(--txt);text-shadow:none;
}
html.fx-soft .emp:hover{border-color:rgba(13,13,14,.30);box-shadow:var(--emboss-hi)}

/* ---------- 对话终端 ---------- */
html.fx-soft .xlr{border:1px solid rgba(13,13,14,.16);box-shadow:var(--panel-lift);background:rgba(255,255,255,.82)}
html.fx-soft .xlr-side{background:linear-gradient(180deg,rgba(13,13,14,.04),transparent 70%);border-right:1px solid rgba(13,13,14,.13)}
html.fx-soft .xlr-av{box-shadow:0 0 0 1px rgba(13,13,14,.12),inset 0 1px 0 rgba(255,255,255,.8),0 3px 0 #dcd9d0}
html.fx-soft .xlr-msgs .b{background:#ffffff;border:1px solid rgba(13,13,14,.14);box-shadow:0 4px 14px rgba(13,13,14,.07);color:var(--txt)}
html.fx-soft .xlr-msgs .m.user .b{box-shadow:0 6px 18px rgba(13,13,14,.12),inset 0 1px 0 rgba(255,255,255,.9)}
html.fx-soft .xlr-input{border-top:1px solid rgba(13,13,14,.13);background:rgba(250,249,245,.9)}

/* ---------- 提示条 ---------- */
html.fx-soft .advice{background:rgba(138,90,20,.07);border:1px solid rgba(138,90,20,.28);color:var(--amber);box-shadow:var(--deboss)}
html.fx-soft .report{background:linear-gradient(135deg,rgba(26,122,85,.07),rgba(13,13,14,.02));border:1px solid rgba(26,122,85,.28);box-shadow:var(--panel-lift);color:var(--txt)}
html.fx-soft .toast{
  background:linear-gradient(180deg,#ffffff,#f4f3ed);
  border:1px solid rgba(13,13,14,.28);color:var(--txt);
  box-shadow:0 10px 30px rgba(13,13,14,.16);
}

/* ---------- 状态灯：保留发光，去掉黑圈 ---------- */
html.fx-soft .led,html.fx-soft .dot,html.fx-soft .od,html.fx-soft .ed,
html.fx-soft .svc .d,html.fx-soft .status-dot{border-color:rgba(13,13,14,.35)}
html.fx-soft .led::before,html.fx-soft .dot::before,html.fx-soft .od::before,
html.fx-soft .ed::before,html.fx-soft .svc .d::before,html.fx-soft .status-dot::before{
  border-color:rgba(13,13,14,.22);
  box-shadow:inset 0 0 4px rgba(13,13,14,.18),0 1px 0 rgba(255,255,255,.9);
}
html.fx-soft .wh::before{
  content:"";width:3px;height:15px;border-radius:2px;flex:0 0 auto;margin-right:-2px;
  background:linear-gradient(180deg,#3a4457,#0d0d0e 60%,#2f3746);
  box-shadow:none;
}

/* ---------- 其它 ---------- */
html.fx-soft .drop{border:2px dashed rgba(13,13,14,.30);background:rgba(13,13,14,.03);box-shadow:var(--deboss)}
html.fx-soft .drop:hover{border-color:rgba(13,13,14,.55);background:rgba(13,13,14,.05);box-shadow:var(--deboss)}
html.fx-soft .rec-name{color:var(--txt);text-shadow:none}
html.fx-soft .rank{background:linear-gradient(180deg,#ffffff,#eeece3);color:var(--txt);box-shadow:var(--emboss)}
html.fx-soft .side-foot{background:linear-gradient(180deg,transparent,rgba(13,13,14,.04))}
