/* P2-①-2 第 1 批断点归并（2026-10-01）：原断点映射见下，规则体未改
     max-width 1000 → 1280
     max-width 1200 → 1280
     max-width 768 → （不变） */
/* ============================================================
   生产运营 · 指挥中心增强 (ops.css)
   工作域(工段)范围切换 + 运营指挥中心新组件
   与 app.css 的 .ov-* / .rp-* 命名保持一致，仅用变量做主题适配
   ============================================================ */

/* ---------- 工作域(工段) 范围切换条 ---------- */
.ov-scopebar{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  padding:12px 16px;margin:0 0 14px;
  background:var(--ui-bg-card);
  border:1px solid rgba(115,115,115, .12);border-radius:14px;
  box-shadow:0 2px 10px rgba(86,86,86, .05);
}
.ov-scope-tag{font-size:12px;font-weight:700;color:var(--ui-ink-700);letter-spacing:.5px;margin-right:4px}
.ov-scope-tag::before{content:"◈ ";color:var(--ui-brand-600)}
.ov-scope-btn{
  border:1px solid rgba(115,115,115, .18);background:var(--ui-bg-card);color:var(--ui-ink-500);
  font-size:12px;font-weight:600;padding:6px 14px;border-radius:999px;cursor:pointer;
  transition:.16s;
}
.ov-scope-btn:hover{border-color:var(--ui-brand-600);color:var(--ui-brand-600);transform:translateY(-1px)}
.ov-scope-btn.on{
  background:var(--ui-brand-600);color:#fff;border-color:transparent;
  box-shadow:0 4px 12px -2px rgba(115,115,115, .5);
}
.ov-scope-note{font-size:12px;color:var(--ui-ink-400);margin-left:auto;font-style:italic}

/* ---------- 第一优先级订单卡 ---------- */
.ov-priority-card{
  display:flex;align-items:center;gap:16px;padding:16px 18px;margin:0 0 14px;border-radius:14px;
  background:var(--ui-ink-700);
  color:#fff;overflow:hidden;position:relative;
  box-shadow:0 10px 30px -10px rgba(180,83,9,.6);
}
.ov-priority-card::after{content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.28),transparent 70%);pointer-events:none}
.ov-priority-ico{flex:none;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.18);font-size:20px}
.ov-priority-main{flex:1;min-width:0}
.ov-priority-label{font-size:12px;letter-spacing:1.5px;opacity:.9;text-transform:uppercase}
.ov-priority-code{font-size:20px;font-weight:900;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-priority-meta{font-size:12px;opacity:.92;margin-top:2px}
.ov-priority-side{flex:none;text-align:right}
.ov-priority-side b{display:block;font-size:24px;font-weight:900;line-height:1}
.ov-priority-side span{font-size:12px;opacity:.9}

/* ---------- Top 风险客户 ---------- */
.ov-riskcust{display:flex;flex-direction:column;gap:8px}
.ov-rc-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--ui-bg-card);border:1px solid var(--ui-line-100)}
.ov-rc-rank{flex:none;width:22px;height:22px;border-radius:6px;background:var(--brand-2,var(--ui-brand-600));color:#fff;
  font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.ov-rc-rank.hot{background:var(--ui-danger-solid)}
.ov-rc-name{flex:1;min-width:0;font-size:13px;font-weight:700;color:var(--ui-ink-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-rc-nums{display:flex;gap:12px;flex:none;font-size:12px;color:var(--ui-ink-400)}
.ov-rc-nums b{font-size:14px;margin-left:4px}
.ov-rc-nums .od{color:var(--ui-brand-700)}
.ov-rc-nums .ovr{color:var(--ui-danger-solid)}

/* ---------- 各工段负载(横向条形) ---------- */
.ov-loadbars{display:flex;flex-direction:column;gap:12px}
.ov-lb{display:flex;flex-direction:column;gap:6px}
.ov-lb-h{display:flex;align-items:center;justify-content:space-between;font-size:12px}
.ov-lb-h b{color:var(--ui-ink-700);font-weight:700}
.ov-lb-h span{color:var(--ui-ink-400)}
.ov-lb-track{height:12px;border-radius:999px;background:var(--ui-line-100);overflow:hidden;position:relative}
.ov-lb-fill{height:100%;border-radius:999px;transition:width .6s cubic-bezier(.2,.8,.25,1)}
.ov-lb-fill.hot{background:var(--ui-danger-solid)}
.ov-lb-fill.med{background:var(--ui-brand-600)}
.ov-lb-fill.ok{background:var(--ui-ok-solid)}

/* ---------- 运营指挥中心 状态条 ---------- */
.ov-oc-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;
  border-radius:12px;background:rgba(115,115,115, .08);
  border:1px solid rgba(115,115,115, .12);color:var(--ui-ink-700);font-size:12px}
.ov-oc-banner .dot{width:8px;height:8px;border-radius:50%;background:var(--ui-ok-solid);box-shadow:0 0 8px var(--ui-ok-solid)}

/* ---------- 账号安全（个人设置） ---------- */
.acc-info{display:flex;flex-direction:column;gap:10px}
.acc-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;
  background:var(--ui-brand-050);border:1px solid var(--ui-line-100);border-radius:10px}
.acc-row span{font-size:12px;color:var(--ui-ink-400)}
.acc-row b{font-size:13px;color:var(--ui-ink-700)}
.acc-row .mono{font-family:"SFMono-Regular",Consolas,Menlo,monospace}
.acc-form{display:flex;flex-direction:column;gap:12px}
.acc-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ui-ink-500);font-weight:600}
.acc-form input{padding:10px 12px;border:1px solid var(--ui-line-200);border-radius:8px;font-size:13px;
  color:var(--ui-ink-700);background:var(--ui-bg-card);outline:none;transition:.16s}
.acc-form input:focus{border-color:var(--ui-brand-600);box-shadow:0 0 0 3px rgba(115,115,115, .12)}
.acc-err{min-height:18px;font-size:12px;color:var(--ui-danger-solid);margin:8px 0 4px}
.acc-actions{display:flex;gap:10px;margin-top:6px;align-items:center}
.acc-actions .btn-ghost{padding:10px 20px;border-radius:8px;border:1px solid var(--ui-line-200);background:var(--ui-bg-card);
  color:var(--ui-ink-500);font-size:13px;font-weight:600;cursor:pointer}
.acc-actions .btn-ghost:hover{border-color:var(--ui-ink-300);color:var(--ui-ink-700)}

/* ---------- 报表中心 · 工作域(工段)切换条 ---------- */
.rp-scopebar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 16px;
  background:var(--ui-bg-card);border:1px solid rgba(115,115,115, .12);border-radius:14px;
  box-shadow:0 2px 10px rgba(86,86,86, .05)}
.rp-scope-tag{font-size:12px;font-weight:700;color:var(--ui-ink-700);letter-spacing:.5px;margin-right:4px}
.rp-scope-tag::before{content:"◈ ";color:var(--ui-brand-600)}
.rp-scope-btn{border:1px solid rgba(115,115,115, .18);background:var(--ui-bg-card);color:var(--ui-ink-500);
  font-size:12px;font-weight:600;padding:6px 14px;border-radius:999px;cursor:pointer;transition:.16s}
.rp-scope-btn:hover{border-color:var(--ui-brand-600);color:var(--ui-brand-600);transform:translateY(-1px)}
.rp-scope-btn.on{background:var(--ui-brand-600);color:#fff;border-color:transparent;
  box-shadow:0 4px 12px -2px rgba(115,115,115, .5)}
.rp-scope-note{font-size:12px;color:var(--ui-ink-400);margin-left:auto;font-style:italic}

/* ---------- 交期诊断 · 增强 ---------- */
.diag-tab tbody tr:nth-child(even){background:var(--ui-bg-card)}
.diag-board{color:var(--ui-ink-700)}
.diag-board-more{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:rgba(115,115,115, .12);color:var(--ui-brand-600);font-size:12px;font-weight:700;vertical-align:2px}
.diag-days{font-size:12px;color:var(--ui-ink-400);font-weight:700;white-space:nowrap}
.diag-days.is-late{color:var(--ui-danger-solid)}

/* ---------- 中间质检查询 · 引物筛选 ---------- */
.mq-filter{display:flex;align-items:center;gap:8px;background:var(--ui-bg-card);border:1px solid var(--line-strong);border-radius:8px;padding:6px 10px;width:250px;max-width:100%}
.mq-filter:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(115,115,115, .12)}
.mq-filter svg{color:var(--txt-3);flex-shrink:0}
.mq-filter input{flex:1;border:none;outline:none;background:transparent;font-size:12px;color:var(--txt)}
.mq-filter-clear{border:none;background:var(--ui-brand-100);color:var(--ui-ink-400);width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}
.mq-filter-clear:hover{background:var(--ui-brand-100);color:var(--ui-ink-700)}
.mq-filter-meta{display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:12px;color:var(--txt-3);border-bottom:1px solid var(--line);flex-wrap:wrap}
.mq-filter-meta b{color:var(--txt-2)}
.mq-filter-meta a{color:var(--brand-2);font-weight:700;text-decoration:none}
.mq-filter-meta .mq-fm-dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px rgba(115,115,115, .6)}


/* ---------- 统一数据查询 · 增强 ---------- */
.q-facet{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.q-facet-lb{font-size:12px;font-weight:700;color:var(--ui-ink-700);margin-right:2px}
.q-chip{border:1px solid rgba(115,115,115, .18);background:var(--ui-bg-card);color:var(--ui-ink-500);font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;cursor:pointer;transition:.15s}
.q-chip:hover{border-color:var(--ui-brand-600);color:var(--ui-brand-600)}
.q-chip.on{background:var(--ui-brand-600);color:#fff;border-color:transparent;box-shadow:0 4px 12px -2px rgba(115,115,115, .5)}
.q-hl{background:var(--ui-warn-line);color:var(--ui-ink-700);padding:0 2px;border-radius:4px;font-weight:700}
.q-board-more{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:rgba(115,115,115, .12);color:var(--ui-brand-600);font-size:12px;font-weight:700;vertical-align:2px}
.q-clear{border:none;background:var(--ui-brand-100);color:var(--ui-ink-400);width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:.15s}
.q-clear:hover{background:var(--ui-brand-100);color:var(--ui-ink-700)}
.q-tip{display:flex;align-items:center;gap:6px}
.q-export{margin-left:auto;border:1px solid rgba(115,115,115, .25);color:var(--ui-brand-600);background:var(--ui-bg-card);font-size:12px;font-weight:700;padding:4px 12px;border-radius:8px;cursor:pointer;transition:.15s}
.q-export:hover{background:var(--ui-brand-050);border-color:var(--ui-brand-600)}
.q-view{color:var(--ui-brand-600);font-weight:700;text-decoration:none;font-size:12px}
.q-view:hover{text-decoration:underline}

/* ---------- 中间质检查询 · 高端版式 (mqx) ---------- */
.mqx-wrap{display:flex;flex-direction:column;gap:16px;padding:2px 2px 26px}
.mqx-hero{position:relative;overflow:hidden;border-radius:20px;background:radial-gradient(120% 160% at 15% 12%,var(--ui-brand-900) 0%,var(--ui-brand-700) 46%,var(--ui-ink-900) 100%);box-shadow:0 30px 70px -30px rgba(68,68,68, .7);isolation:isolate;color:#fff}
.mqx-hero::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.12);pointer-events:none}
.mqx-hero-orb{position:absolute;border-radius:50%;filter:blur(4px);pointer-events:none;opacity:.85}
.mqx-hero-orb.o1{width:340px;height:340px;right:-90px;top:-130px;background:radial-gradient(circle at 30% 30%,rgba(190,227,235,.6),rgba(115,115,115, .2) 60%,transparent 72%);animation:mqxDrift 12s ease-in-out infinite alternate}
.mqx-hero-orb.o2{width:220px;height:220px;left:-70px;bottom:-100px;background:radial-gradient(circle at 60% 40%,rgba(12,154,184,.5),transparent 72%);animation-delay:-4s;animation:mqxDrift 12s ease-in-out infinite alternate}
.mqx-hero-grid{position:absolute;inset:0;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.16) 1px,transparent 1px);background-size:22px 22px;mask-image:#000}
@keyframes mqxDrift{from{transform:translate(0,0) scale(1)}to{transform:translate(-20px,16px) scale(1.08)}}
.mqx-hero-in{position:relative;z-index:2;padding:26px 28px;display:flex;flex-direction:column;gap:18px}
.mqx-brand{display:flex;align-items:center;gap:14px}
.mqx-logo{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px;background:rgba(255,255,255,.24);border:1px solid rgba(255,255,255,.34);box-shadow:0 12px 30px -10px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.4);backdrop-filter:blur(6px)}
.mqx-brand-txt h1{font-size:24px;font-weight:900;letter-spacing:.6px;text-shadow:0 2px 16px rgba(0,0,0,.3);margin:0}
.mqx-brand-txt p{font-size:12px;color:rgba(255,255,255,.8);margin:4px 0 8px;letter-spacing:1px}
.mqx-indexchip{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px);font-size:12px;font-weight:700;color:var(--ui-brand-050)}
.mqx-indexchip .dot{width:9px;height:9px;border-radius:50%;background:var(--ui-ok-solid);box-shadow:0 0 10px var(--ui-ok-solid)}
.mqx-indexchip.building .dot{background:var(--ui-warn-line);animation:mqPulse 1s infinite}
.mqx-search{display:flex;flex-direction:column;gap:8px}
.mqx-search-box{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.96);border-radius:16px;padding:8px 8px 8px 18px;box-shadow:0 18px 46px -18px rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.6)}
.mqx-search-box svg{color:var(--ui-ink-500);flex-shrink:0}
.mqx-search-box input{flex:1;border:none;outline:none;font-size:16px;color:var(--ui-ink-900);background:transparent;height:44px}
.mqx-search-box input::placeholder{color:var(--ui-ink-300)}
.mqx-searchbtn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 22px;border:none;border-radius:10px;background:var(--ui-brand-700);color:#fff;font-size:14px;font-weight:800;cursor:pointer;transition:.18s;box-shadow:0 10px 24px -8px rgba(86,86,86, .8)}
.mqx-searchbtn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.mqx-searchmeta{font-size:12px;color:rgba(255,255,255,.78)}
.mqx-modes{display:flex;gap:12px;flex-wrap:wrap}
.mqx-mode{display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 20px;cursor:pointer;transition:.2s;flex:1;min-width:240px;text-align:left;box-shadow:var(--shadow)}
.mqx-mode b{font-size:14px;color:var(--txt);font-weight:800;display:flex;align-items:center;gap:8px}
.mqx-mode i{font-size:12px;color:var(--txt-3);font-style:normal}
.mqx-mode:hover{border-color:var(--cyan);box-shadow:0 12px 26px -16px rgba(115,115,115, .45);transform:translateY(-2px)}
.mqx-mode.on{background:rgba(86,86,86, .12);border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan) inset,0 14px 34px -18px rgba(68,68,68, .5)}
.mqx-mode.on b{color:var(--brand-2)}
.mqx-filebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow)}
.mqx-results{display:flex;flex-direction:column;gap:16px}

/* 双栏查看器 */
.mqx-view{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:stretch}
.mqx-listpane{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.mqx-listhead{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);background:rgba(86,86,86, .05)}
.mqx-lh-t{font-size:14px;font-weight:800;color:var(--txt)}
.mqx-lh-count{font-size:12px;font-weight:800;color:var(--brand-2);background:rgba(86,86,86, .09);padding:4px 10px;border-radius:999px}
.mqx-listbody{overflow:auto;max-height:calc(100vh - 300px);padding:8px;display:flex;flex-direction:column;gap:6px}
.mqx-emptylist{color:var(--txt-3);font-size:12px;text-align:center;padding:26px 12px;line-height:1.7}
.mqx-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:.15s}
.mqx-row:hover{background:var(--ui-brand-050)}
.mqx-row.on{background:rgba(86,86,86, .12);border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan) inset}
.mqx-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.mqx-row-main b{font-size:14px;font-weight:800;color:var(--brand-2)}
.mqx-row-main span{font-size:12px;color:var(--txt-3)}
.mqx-badge{font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;white-space:nowrap;flex-shrink:0}
.mqx-badge.ok{background:rgba(10,112,67,.14);color:var(--ui-ok-solid)}
.mqx-badge.no{background:rgba(220,38,38,.1);color:var(--pl-pink-ink)}
.mqx-detailpane{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.mqx-detailbody{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column}
.mqx-dt-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.mqx-dt-id{display:flex;flex-direction:column;gap:4px}
.mqx-dt-prim{font-size:24px;font-weight:900;color:var(--brand-2);letter-spacing:.5px}
.mqx-dt-ord{font-size:13px;color:var(--txt-2);font-weight:700}
.mqx-dt-meta{font-size:12px;color:var(--txt-3);margin:12px 0}
.mqx-dt-meta b{color:var(--txt-2)}
.mqx-dt-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.mqx-fbtn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;padding:8px 16px;border-radius:10px;text-decoration:none;color:#fff;transition:.15s}
.mqx-fbtn.pdf{background:var(--ui-danger-solid)}
.mqx-fbtn.xlsx{background:var(--ui-ok-solid)}
.mqx-fbtn.ghost{background:var(--ui-bg-card);border:1px solid var(--line-strong);color:var(--ui-ink-500)}
.mqx-fbtn:hover{filter:brightness(1.08);transform:translateY(-1px)}
/* 直接全尺寸展示 MS 质谱图 */
.mqx-dt-images{display:flex;flex-direction:column;gap:16px}
.mqx-img{margin:0;background:var(--ui-ink-900);border-radius:14px;overflow:hidden;border:1px solid rgba(115,115,115, .18);box-shadow:0 18px 44px -22px rgba(28,28,28, .6);display:flex;flex-direction:column}
.mqx-img img{display:block;max-width:100%;max-height:74vh;margin:0 auto;object-fit:contain;background:var(--ui-ink-900)}
.mqx-img figcaption{font-size:12px;color:var(--ui-ink-300);text-align:center;padding:8px 12px;background:rgba(28,28,28, .9);border-top:1px solid rgba(255,255,255,.06)}
.mqx-noimg{text-align:center;padding:48px 20px;color:var(--txt-3);font-size:13px}
.mqx-noimg-ic{font-size:40px;margin-bottom:10px}
.mqx-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--txt-3);padding:70px 20px;gap:8px}
.mqx-placeholder .mqx-ph-ic{font-size:40px}
.mqx-placeholder .mqx-ph-t{font-size:16px;font-weight:800;color:var(--txt-2)}
.mqx-placeholder .mqx-ph-s{font-size:12px;max-width:420px;line-height:1.7}
@media (max-width:1280px){.mqx-view{grid-template-columns:1fr}.mqx-listbody{max-height:280px}}

.mqx-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:74px 20px;gap:16px;color:var(--txt-3);font-size:13px}
.mqx-spinner{width:46px;height:46px;border-radius:50%;border:3px solid rgba(86,86,86, .16);border-top-color:var(--brand-2);animation:mqxSpin .8s linear infinite}
@keyframes mqxSpin{to{transform:rotate(360deg)}}
.mqx-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:56px 20px;color:var(--txt-3)}
.mqx-empty .mqx-ei{font-size:40px;margin-bottom:14px}
.mqx-empty h3{color:var(--txt);font-size:16px;margin-bottom:6px;font-weight:800}
.mqx-empty p{font-size:13px;max-width:460px;line-height:1.7}

/* ===================== 中间质检查询 · 高端质感版式（覆盖暗色版式，置于文件末尾以生效） ===================== */
.mqx-wrap{display:flex;flex-direction:column;gap:20px}
/* 主色：靛蓝 → 青 渐变 */
.mqx-hero{background:radial-gradient(120% 160% at 88% 8%,rgba(12,154,184,.30),transparent 45%),var(--ui-ink-700);border:1px solid rgba(115,115,115, .4);box-shadow:0 30px 70px -30px rgba(62,62,62, .75);color:#fff}
.mqx-hero::after{background:radial-gradient(120% 130% at 88% 6%,rgba(255,255,255,.16),transparent 46%),radial-gradient(100% 120% at 6% 100%,rgba(12,154,184,.28),transparent 42%)}
.mqx-hero-orb.o1{background:radial-gradient(circle at 30% 30%,rgba(190,227,235,.55),rgba(115,115,115, .12) 60%,transparent 72%)}
.mqx-hero-orb.o2{background:radial-gradient(circle at 60% 40%,rgba(144,144,144, .42),transparent 72%)}
.mqx-hero-grid{background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px)}
.mqx-brand-txt h1{color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.mqx-brand-txt p{color:rgba(242,242,242, .85)}
.mqx-indexchip{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);color:var(--ui-brand-050);backdrop-filter:blur(6px)}
.mqx-indexchip .dot{background:var(--ui-ok-solid);box-shadow:0 0 8px var(--ui-ok-solid)}
.mqx-search-box{background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.55);box-shadow:0 18px 46px -20px rgba(0,0,0,.55)}
.mqx-searchbtn{background:var(--pl-cyan);box-shadow:0 12px 26px -10px rgba(115,115,115, .8)}
.mqx-searchmeta{color:rgba(242,242,242, .82)}
/* 模式卡：玻璃感 */
.mqx-mode{background:var(--ui-bg-card);box-shadow:0 10px 30px -20px rgba(62,62,62, .55)}
.mqx-mode b{color:var(--ui-ink-700)}
.mqx-mode i{color:var(--ui-ink-400)}
.mqx-mode:hover{border-color:var(--ui-brand-600);box-shadow:0 18px 36px -20px rgba(115,115,115, .6)}
.mqx-mode.on{background:rgba(115,115,115, .16);border-color:var(--ui-brand-600);box-shadow:0 0 0 1px var(--ui-brand-600) inset,0 20px 40px -22px rgba(115,115,115, .65)}
.mqx-mode.on b{color:var(--ui-brand-700)}
.mqx-filebar{background:var(--ui-bg-card);box-shadow:0 10px 30px -20px rgba(62,62,62, .55)}
.mqx-view{grid-template-columns:360px 1fr;gap:20px}
/* 列表/详情：白底 + 顶部渐变描边 + 层次阴影 */
.mqx-listpane{background:var(--ui-bg-card);border-top:3px solid transparent;border-image:var(--ui-brand-600) 1;box-shadow:0 18px 44px -28px rgba(62,62,62, .5)}
.mqx-listhead{background:rgba(115,115,115, .06);border-bottom:1px solid var(--ui-line-100)}
.mqx-lh-t{color:var(--ui-ink-700)}
.mqx-lh-count{color:var(--ui-brand-700);background:rgba(115,115,115, .12)}
.mqx-filters{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--ui-line-100);flex-wrap:wrap}
.mqx-f-chip{border:1px solid var(--ui-line-200);background:var(--ui-bg-card);color:var(--ui-ink-500);font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;cursor:pointer;transition:.15s}
.mqx-f-chip:hover{border-color:var(--ui-brand-600);color:var(--ui-brand-700)}
.mqx-f-chip.on{background:var(--ui-brand-600);color:#fff;border-color:transparent;box-shadow:0 6px 16px -8px rgba(115,115,115, .7)}
.mqx-emptylist{color:var(--ui-ink-400)}
.mqx-row-main b{color:var(--ui-brand-700)}
.mqx-row-main span{color:var(--ui-ink-400)}
.mqx-row.on{background:rgba(115,115,115, .14);border-color:var(--ui-brand-600);box-shadow:0 0 0 1px var(--ui-brand-600) inset}
.mqx-pager{display:flex;align-items:center;gap:6px;padding:10px 12px;border-top:1px solid var(--ui-line-100);flex-wrap:wrap}
.mqx-pg-btn{border:1px solid var(--ui-line-200);background:var(--ui-bg-card);color:var(--ui-ink-700);font-size:12px;font-weight:700;padding:6px 12px;border-radius:8px;cursor:pointer;transition:.15s}
.mqx-pg-btn:hover:not(:disabled){border-color:var(--ui-brand-600);color:var(--ui-brand-700)}
.mqx-pg-btn:disabled{opacity:.4;cursor:not-allowed}
.mqx-pg-info{font-size:12px;color:var(--ui-ink-400);margin-left:auto}
.mqx-pg-info b{color:var(--ui-ink-700)}
.mqx-fsearch{display:flex;align-items:center;gap:6px;background:var(--ui-bg-card);border:1px solid var(--ui-line-200);border-radius:8px;padding:6px 10px;flex:1;min-width:180px}
.mqx-fsearch:focus-within{border-color:var(--ui-brand-600);box-shadow:0 0 0 3px rgba(115,115,115, .14)}
.mqx-fsearch svg{color:var(--ui-ink-400);flex-shrink:0}
.mqx-fsearch input{flex:1;border:none;outline:none;background:transparent;font-size:12px;color:var(--ui-ink-900)}
.mqx-fsearch input::placeholder{color:var(--ui-ink-300)}
.mqx-metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin:16px 0}
.mqx-metric{background:var(--ui-bg-card);border:1px solid var(--ui-line-100);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;transition:.22s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}
.mqx-metric::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ui-brand-600);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.mqx-metric:hover{box-shadow:0 14px 32px -16px rgba(115,115,115, .55);transform:translateY(-2px)}
.mqx-metric:hover::before{transform:scaleX(1)}
.mqx-mt-l{font-size:12px;color:var(--ui-ink-400);font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.mqx-mt-v{font-size:18px;font-weight:800;color:var(--ui-ink-700);letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mqx-metric.wide{grid-column:span 2}
.mqx-metric-full{grid-column:1 / -1}
/* 自适应：混合碱基/中间修饰内容多时自动换行，不再锁死宽度导致溢出 */
.mqx-mt-v.wrap{font-size:14px;line-height:1.55;word-break:break-word;white-space:normal;letter-spacing:0;overflow:visible;text-overflow:initial}
.mqx-metric-full .mqx-mt-v.wrap{font-size:14px;line-height:1.6}
.mqx-warn{background:var(--ui-danger-bg);border:1px solid var(--ui-danger-line);color:var(--ui-danger-ink);font-size:12px;font-weight:600;padding:10px 12px;border-radius:10px;margin-bottom:12px}
.mqx-gallery{display:flex;align-items:center;gap:12px;justify-content:center;position:relative}
.mqx-gal-btn{border:1px solid var(--ui-line-200);background:var(--ui-bg-card);color:var(--ui-brand-700);width:42px;height:42px;border-radius:10px;font-size:20px;font-weight:800;line-height:1;cursor:pointer;flex-shrink:0;transition:.15s;box-shadow:0 4px 14px -6px rgba(62,62,62, .35)}
.mqx-gal-btn:hover:not(:disabled){border-color:var(--ui-brand-600);color:var(--ui-brand-700);transform:translateY(-1px)}
.mqx-gal-btn:disabled{opacity:.35;cursor:not-allowed}
.mqx-gal-stage{flex:1;min-width:0;max-width:900px}
.mqx-gal-stage .mqx-img{margin:0}
.mqx-gal-count{position:absolute;top:10px;right:14px;background:rgba(255,255,255,.92);border:1px solid var(--ui-line-100);color:var(--ui-ink-700);font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;box-shadow:0 4px 12px -6px rgba(62,62,62, .3)}
.mqx-detailpane{background:var(--ui-bg-card);border-top:3px solid transparent;border-image:var(--ui-brand-600) 1;box-shadow:0 18px 44px -28px rgba(62,62,62, .5)}
.mqx-dt-head{border-bottom:1px solid var(--ui-line-100)}
.mqx-dt-prim{color:var(--ui-brand-700)}
.mqx-dt-ord{color:var(--ui-ink-500)}
.mqx-dt-cust{font-size:12px;color:var(--ui-ok-solid);margin-top:4px;font-weight:700}
.mq-cust{font-size:12px;color:var(--ui-ok-solid);font-weight:700}
.mqx-dt-meta{color:var(--ui-ink-400)}
.mqx-dt-meta b{color:var(--ui-ink-700)}
.mqx-fbtn.ghost{background:var(--ui-bg-card);border:1px solid var(--ui-line-200);color:var(--ui-ink-700)}
.mqx-img{background:var(--ui-bg-card);border:1px solid var(--ui-line-100);box-shadow:0 10px 30px -22px rgba(62,62,62, .35)}
/* ★★ 2026-10-03（用户："我切换图片的时候页面会上下来回变动，这种太影响体验了"）：
   图谱区高度固定（.mqx-imgbox 原本就是 clamp 固定高），**但"没有图谱"的记录会换成
   .mqx-noimg 那块 ~130px 的短占位** ⇒ 一换记录右栏高度从 580px 掉到 130px，
   页面就"上下来回变动"。这里把无图占位撑到与图谱同高，并在下面把指标格也定高。 */
.mqx-imgbox{position:relative;height:clamp(320px,58vh,660px);display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--ui-bg-card)}
.mqx-noimg{min-height:clamp(320px,58vh,660px);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box}
/* 指标格：换记录时格数恒定（空值也占位，见 midqc.js 的 mt()/mtDiff()），
   再给网格一个最小高度兜底，避免不同记录之间行数微差把下面的图谱顶动 */
/* ★ 2026-10-08 修（用户：「把我的数据都挤压变形了」）：只有 min-height 兜底还不够 ——
   网格是 .mqx-detailbody（纵向 flex）的子项，页面一挤就靠 flex 收缩，网格高度被压到 min-height(132px)，
   于是**两行 auto 轨道被摊成 60/60**；格子里那行 18px 数值是 flex 子项且 overflow:hidden
   （自动最小尺寸=0）⇒ 被压成 9px 高、文字拦腰截断（实测「37470.0」只剩上半截）。
   加 grid-auto-rows:max-content，轨道按内容定高，值不再参与压缩。 */
.mqx-metric-grid{min-height:132px;align-content:start;grid-auto-rows:max-content;flex:0 0 auto}
.mqx-mt-v.is-empty{color:var(--ui-ink-300);font-weight:700}
.mqx-imgbox img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.mqx-img-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ui-ink-400);font-size:13px;background:var(--ui-bg-card)}
.mqx-img-sizer{display:none}
.mqx-img img{background:var(--ui-bg-card)}
.mqx-img figcaption{color:var(--ui-ink-400);background:var(--ui-bg-card);border-top:1px solid var(--ui-line-100)}
.mqx-placeholder,.mqx-noimg{color:var(--ui-ink-400)}
.mqx-placeholder .mqx-ph-t{color:var(--ui-ink-700)}

.mqx-spinner{border:3px solid rgba(115,115,115, .18);border-top-color:var(--pl-cyan)}
.mqx-loading{color:var(--ui-ink-400)}


/* ============ 中间质检 · 批次确认（mqx- 作用域） ============ */
.mqx-batchbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 2px}
.mqx-batchbar-hint{font-size:12px;color:var(--ui-ink-400);font-weight:600;margin-left:auto}
.mqx-batch{display:flex;flex-direction:column;gap:14px;animation:mqFade .3s ease both}
.mqx-batch-head{display:flex;align-items:center;gap:10px;padding:4px 2px;flex-wrap:wrap}
.mqx-batch-title{font-size:16px;font-weight:800;color:var(--ui-ink-700)}
.mqx-batch-note{font-size:12px;color:var(--ui-ink-400);font-weight:600}
.mqx-btools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}
.mqx-btabs{display:flex;gap:6px;flex-wrap:wrap}
.mqx-btab{border:1px solid var(--line-strong);background:var(--panel-solid);color:var(--txt-2);padding:8px 14px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.mqx-btab.on{background:var(--ui-brand-600);border-color:transparent;color:#fff;box-shadow:0 6px 14px -6px rgba(115,115,115, .55)}
.mqx-bcount{background:rgba(62,62,62, .1);border-radius:999px;padding:0 6px;font-size:12px;line-height:16px;min-width:16px;text-align:center;font-weight:800}
.mqx-btab.on .mqx-bcount{background:rgba(255,255,255,.25);color:#fff}
.mqx-bdates{display:flex;gap:6px}
.mqx-bdate{border:1px solid var(--line-strong);background:var(--panel-solid);color:var(--txt-2);padding:8px 12px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:.15s}
.mqx-bdate.on{background:var(--ui-ok-solid);border-color:transparent;color:#fff}
.mqx-btools-r{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mqx-bsearch{display:flex;align-items:center;gap:6px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;background:var(--panel-solid);color:var(--txt-3);height:36px}
.mqx-bsearch input{border:none;outline:none;background:transparent;color:var(--txt);width:170px;font-size:12px}
.mqx-blist{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}
.mqx-blist .mqx-brow{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);transition:.15s;flex-wrap:wrap}
.mqx-blist .mqx-brow:last-child{border-bottom:none}
.mqx-blist .mqx-brow:hover{background:rgba(115,115,115, .05)}
.mqx-brow-main{flex:1;min-width:0}
.mqx-brow-code{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:var(--ui-ink-700);flex-wrap:wrap}
.mqx-brow-sub{font-size:12px;color:var(--ui-ink-400);margin-top:4px;font-weight:600}
.mqx-brow-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mqx-brow-time{font-size:12px;color:var(--ui-ink-400);font-weight:600}
.mqx-brow-actions{display:flex;gap:6px;align-items:center}
.mqx-bempty{padding:56px 20px;text-align:center;color:var(--ui-ink-400);font-size:13px}
.mqx-state{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:800}
.mqx-state-warn{background:rgba(217,119,6,.14);color:var(--ui-warn-ink);border:1px solid rgba(217,119,6,.3)}
.mqx-state-info{background:rgba(115,115,115, .14);color:var(--pl-cyan);border:1px solid rgba(115,115,115, .3)}
.mqx-state-ok{background:rgba(10,112,67,.14);color:var(--ui-ok-solid);border:1px solid rgba(10,112,67,.3)}
.mqx-state-muted{background:rgba(118,118,118, .14);color:var(--sk-ink-3);border:1px solid rgba(118,118,118, .3)}

/* 4 步向导 */
.mqx-wizard{display:flex;flex-direction:column;gap:16px;animation:mqFade .3s ease both}
.mqx-wiz-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:4px 2px}
.mqx-wiz-title{font-size:16px;font-weight:800;color:var(--ui-ink-700);flex:1}
.mqx-wiz-progress{display:flex;gap:6px;flex-wrap:wrap}
.mqx-wiz-step{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line-strong);border-radius:999px;background:var(--panel-solid);color:var(--ui-ink-400);font-size:12px;font-weight:700;transition:.2s}
.mqx-wiz-step i{width:22px;height:22px;border-radius:50%;background:rgba(62,62,62, .12);color:var(--ui-brand-700);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:12px;font-weight:800}
.mqx-wiz-step.on{border-color:var(--ui-brand-600);background:rgba(115,115,115, .14);color:var(--ui-brand-700)}
.mqx-wiz-step.done i{background:var(--ui-ok-solid);color:#fff}
.mqx-wiz-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow);min-height:280px}
.mqx-wiz-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mqx-wiz-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.mqx-wiz-field>label{font-size:12px;font-weight:800;color:var(--ui-ink-700)}
.mqx-wiz-field select,.mqx-wiz-field input{height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel-solid);color:var(--txt);font-size:13px;outline:none;transition:.15s;width:100%;box-sizing:border-box}
.mqx-wiz-field textarea{height:auto;padding:10px 12px;resize:vertical;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel-solid);color:var(--txt);font-size:13px;outline:none;width:100%;box-sizing:border-box}
.mqx-wiz-field select:focus,.mqx-wiz-field input:focus,.mqx-wiz-field textarea:focus{border-color:var(--ui-brand-600);box-shadow:0 0 0 3px rgba(115,115,115, .14)}
.mqx-wiz-tip{font-size:12px;color:var(--ui-ink-400);font-weight:600}
.mqx-wiz-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}
.mqx-wiz-samplecount{font-size:14px;font-weight:800;color:var(--ui-ok-solid);padding:8px 12px;background:rgba(10,112,67,.1);border-radius:10px;display:inline-block}
.mqx-src-cards{display:flex;flex-direction:column;gap:8px}
.mqx-src-card{display:flex;align-items:center;gap:10px;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:var(--ui-brand-050)}
.mqx-src-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mqx-src-info b{font-size:13px;color:var(--ui-ink-700);font-weight:800}
.mqx-src-info span{font-size:12px;color:var(--ui-ink-400);font-weight:600}
.mqx-sel-list{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow:auto}
.mqx-sel-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;font-size:13px}
.mqx-sel-row b{flex:1;color:var(--ui-ink-700);font-weight:800}
.mqx-sel-row span{color:var(--ui-ink-400);font-size:12px}
.mqx-sel-row em{font-style:normal;color:var(--ui-brand-700);font-weight:700;font-size:12px}
.mqx-suffix-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mqx-suffix-row input{height:40px;min-width:180px;flex:1;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel-solid);color:var(--txt);font-size:13px;outline:none}
.mqx-suffix-preview{display:flex;flex-wrap:wrap;gap:8px}
.mqx-suffix-preview span{font-size:12px;color:var(--ui-ink-400);background:var(--ui-brand-050);border:1px solid var(--ui-line-200);border-radius:8px;padding:6px 10px;font-weight:600}
.mqx-suffix-preview b{color:var(--ui-brand-700)}

/* 图谱智能分析覆盖层 */
.mqx-ana-btn{position:absolute;top:8px;right:8px;z-index:6;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:800;cursor:pointer;background:rgba(255,255,255,.92);color:var(--ui-brand-700);border:1px solid var(--ui-line-200);box-shadow:0 4px 12px -6px rgba(62,62,62, .35);transition:.18s;font-family:inherit}
.mqx-ana-btn i{font-style:normal;font-size:11px;color:var(--ui-ink-400)}
.mqx-ana-btn:hover{border-color:var(--ui-brand-600);transform:translateY(-1px)}
.mqx-ana-btn.active{background:var(--ui-warn-solid);border-color:transparent;color:#fff;box-shadow:0 6px 16px -6px rgba(217,119,6,.6)}
.mqx-ana-btn.active i{color:rgba(255,255,255,.85)}
.mqx-ana-overlay{position:absolute;inset:0;z-index:4;pointer-events:none}
.mqx-ana-svg{width:100%;height:100%;display:block}
.mqx-ana-svg text{pointer-events:none;user-select:none}






/* ---------- 交期预警 · 顶栏提醒 ---------- */
.delivery-alert{border-color:rgba(220,38,38,.28);color:var(--ui-danger-ink);position:relative}
.delivery-alert.is-alert{background:var(--ui-danger-solid);color:#fff;border-color:transparent;
box-shadow:0 6px 18px -6px rgba(220,38,38,.55)}
/* ★ 2026-10-09 性能收口：原来直接动 box-shadow（非合成）。改成"静态投影 + 一层 ::after 辉光只动 opacity"。 */
.delivery-alert.is-alert::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:0 8px 28px -4px rgba(220,38,38,.85);opacity:0;will-change:opacity;animation:daPulse 2.2s ease-in-out infinite}
.da-badge{display:inline-block;min-width:18px;height:18px;padding:0 6px;margin-left:6px;border-radius:999px;
  background:rgba(220,38,38,.16);color:var(--ui-danger-ink);font-size:12px;font-weight:800;line-height:18px;text-align:center}
.delivery-alert.is-alert .da-badge{background:var(--ui-bg-card);color:var(--ui-danger-solid)}
@keyframes daPulse{0%,100%{opacity:0}50%{opacity:1}}



/* ---------- 全局轻量打磨（低风险，仅增强质感） ---------- */
::selection{background:rgba(115,115,115, .22)}
.panel{transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease}
.panel:hover{box-shadow:0 10px 30px -14px rgba(86,86,86, .16);transform:translateY(-1px)}
.ov-kpi{transition:transform .18s ease, box-shadow .18s ease}
.ov-kpi:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(0,0,0,.35)}
.btn-ghost,.tbtn,.auth-btn,.ov-scope-btn{transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, color .15s ease, background .15s ease}
button:focus-visible,a:focus-visible{outline:2px solid rgba(115,115,115, .5);outline-offset:2px}

/* ======== 2026-08-27 中间质检 · 全面 UI 升级（在原有样式后覆盖） ======== */
/* Hero：增加粉色光晕 + 三色渐变 */
.mqx-hero{background:radial-gradient(130% 180% at 88% 6%,rgba(12,154,184,.38),transparent 48%),radial-gradient(90% 130% at 8% 100%,rgba(217,119,6,.22),transparent 45%),var(--ui-ink-700) !important;border-radius:20px !important;border:1px solid rgba(115,115,115, .45) !important;box-shadow:0 34px 80px -30px rgba(62,62,62, .85) !important}
.mqx-hero-orb.o2{background:radial-gradient(circle at 60% 40%,rgba(179,179,179, .35),rgba(12,154,184,.44),transparent 72%) !important}
.mqx-hero-in{padding:28px 30px !important}
/* 模式切换：卡片化 + 过渡 */
.mqx-modes{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mqx-mode{border:1px solid var(--ui-line-200) !important;border-radius:16px !important;padding:16px 18px !important;transition:transform .22s cubic-bezier(.22,1,.36,1), box-shadow .22s ease, border-color .22s ease !important}
.mqx-mode:hover{transform:translateY(-3px) !important;box-shadow:0 22px 42px -22px rgba(115,115,115, .72) !important;border-color:var(--ui-brand-600) !important}
.mqx-mode b{font-size:14px !important;letter-spacing:.2px}
.mqx-mode i{font-size:12px !important}
/* 文件条 */
.mqx-filebar{border-radius:16px !important;border:1px solid var(--ui-line-200) !important;padding:16px 18px !important}
/* 双栏布局 */
.mqx-view{grid-template-columns:400px 1fr !important;gap:22px !important}
/* 列表/详情面板：圆角 + 边框 + 顶部渐变条 */
.mqx-listpane,.mqx-detailpane{border:1px solid var(--ui-line-100) !important;border-radius:16px !important;box-shadow:0 24px 54px -30px rgba(62,62,62, .58) !important;position:relative;overflow:hidden}
.mqx-listpane::before,.mqx-detailpane::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--ui-brand-600);pointer-events:none;z-index:2}
.mqx-listhead{padding:16px 18px !important}
.mqx-lh-t{font-size:14px !important;letter-spacing:.3px}
/* 列表行：加左边选中条 */
.mqx-row{padding:12px 16px !important;gap:6px !important;border-left:3px solid transparent;transition:background .2s ease,border-color .2s ease}
.mqx-row:hover{background:rgba(115,115,115, .055) !important}
.mqx-row.on{background:rgba(115,115,115, .16) !important;border-left-color:var(--ui-brand-600) !important;box-shadow:inset 0 0 0 1px rgba(115,115,115, .25) !important}
/* 搜索条和筛选芯片 */
.mqx-fsearch{padding:8px 14px !important;border-radius:12px !important}
.mqx-fsearch input{font-size:13px !important}
.mqx-f-chip{padding:8px 14px !important;border-radius:999px !important;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, color .18s ease, background .18s ease !important}
.mqx-f-chip:hover{transform:translateY(-1px) !important}
.mqx-f-chip.on{box-shadow:0 10px 20px -10px rgba(115,115,115, .78) !important}
/* 分页按钮 */
.mqx-pg-btn{padding:8px 16px !important;border-radius:10px !important;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, color .18s ease !important}
.mqx-pg-btn:hover:not(:disabled){transform:translateY(-1px) !important;box-shadow:0 8px 16px -10px rgba(115,115,115, .55) !important}
/* 详情面板：头图导航 */
.mqx-dt-head{padding:16px 20px !important;border-bottom:1px solid var(--ui-line-100) !important}
/* 画廊/图片按钮增强 */
.mqx-gal-btn{width:46px !important;height:46px !important;border-radius:12px !important;font-size:24px !important;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease !important}
.mqx-gal-btn:hover:not(:disabled){transform:translateY(-2px) !important;box-shadow:0 10px 22px -8px rgba(62,62,62, .45) !important}
/* 质谱图卡片 */
.mqx-img{border-radius:14px !important;overflow:hidden !important;box-shadow:0 14px 34px -22px rgba(62,62,62, .42) !important}
.mqx-img figcaption{padding:10px 14px !important;font-size:12px !important}
/* 警告条升级 */
.mqx-warn{border-radius:12px !important;padding:12px 14px !important;box-shadow:0 8px 20px -12px rgba(220,38,38,.4) !important}
/* 批次确认组件质感 */
.mqx-btools{border-radius:16px !important;padding:14px 16px !important}
.mqx-btab{padding:8px 16px !important;border-radius:999px !important;transition:transform .18s ease, box-shadow .18s ease !important}
.mqx-btab:hover{transform:translateY(-1px) !important}
.mqx-blist{border-radius:16px !important}
.mqx-blist .mqx-brow{padding:16px 18px !important}
/* 智能分析按钮升级 */
.mqx-ana-btn{padding:6px 14px !important;font-size:12px !important;border-radius:999px !important;transition:transform .2s ease, box-shadow .2s ease !important}
.mqx-ana-btn:hover{transform:translateY(-2px) !important;box-shadow:0 8px 18px -6px rgba(62,62,62, .45) !important}
.mqx-ana-btn.active{box-shadow:0 10px 22px -6px rgba(217,119,6,.7) !important}

/* 表格行混合碱基/中间修饰溢出修复 + 响应式表格 */
@media (max-width:1280px){
  .mqx-view{grid-template-columns:1fr !important}
}




/* ===== 移动端基础适配（2026-09-01）=====
   原则：只做防溢出与降级，不改动桌面样式（双栏降级已由 1000/1200px 断点处理） */
@media (max-width: 768px){
  .mqx-filters, .mqx-btools, .mqx-filebar, .mqx-btabs, .mqx-dt-actions { flex-wrap: wrap; row-gap: 8px; }
  .mqx-blist, .mqx-dt-images, .diag-board { overflow-x: auto; }
  .mqx-ana-svg { max-width: 100%; height: auto; }
  .mqx-detailpane { max-width: 100vw; }
  .mqx-bsearch, .mqx-fsearch { min-width: 0; }
}
