  border-radius:5px;z-index:5;box-sizing:border-box;overflow:visible}
.zx-del svg{width:17px;height:17px;display:block;pointer-events:none;overflow:visible;
  stroke-width:1.9}
#tb tr:hover .zx-del{opacity:1;transform:translateX(0) translateY(-50%)}
.zx-del:hover{background:rgba(220,38,38,.12)}
.zx-del.busy{opacity:.4;pointer-events:none}
/* 确认条 */
#zxDelMask{position:fixed;inset:0;z-index:9998;background:rgba(15,23,42,.28);display:none;
  align-items:center;justify-content:center;backdrop-filter:blur(2px)}
#zxDelMask.on{display:flex}
#zxDelBox{background:#fff;border-radius:10px;padding:18px 20px;min-width:280px;max-width:86vw;
  box-shadow:0 20px 60px rgba(15,23,42,.28);border:1px solid var(--line-2,#e5e7eb)}
#zxDelBox .t{font-size:13.5px;font-weight:600;color:#111827;margin-bottom:6px}
#zxDelBox .d{font-size:12px;color:#6b7280;line-height:1.6;word-break:break-all}
#zxDelBox .a{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
#zxDelBox button{height:28px;padding:0 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;
  border:1px solid var(--line-2,#e5e7eb);background:#fff;color:#475569}
#zxDelBox button.pri{background:#dc2626;border-color:#dc2626;color:#fff}
#zxDelBox button[disabled]{opacity:.5;cursor:not-allowed}

/* CAROUSEL_SWITCH_BTN_V1：右下角切换按钮，鼠标移入才显示 */
.carousel{position:relative}
#carSwitch{
  position:absolute;right:8px;bottom:8px;width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.92);border:1px solid #e2e8f0;color:#35507a;
  font-size:15px;line-height:1;cursor:pointer;user-select:none;
  opacity:0;transform:translateY(3px);transition:opacity .18s ease,transform .18s ease;
  z-index:6;box-shadow:0 2px 6px rgba(15,23,42,.10)
}
.carousel:hover #carSwitch{opacity:1;transform:translateY(0)}
#carSwitch:hover{background:#fff;border-color:#cbd5e1;color:#0f172a}
#carSwitch:active{transform:scale(.94)}

/* VISIT_LOADER_CLEAN_V1：与进入面板的加载动画同一套居中方式，只显示图标 */
#tb1 td.zx-vcell{padding:34px 0 !important;text-align:center !important;vertical-align:middle !important}
#tb1 td.zx-vcell #zxVLoader{display:flex !important;align-items:center !important;justify-content:center !important;
  width:100%;height:44px}
#tb1 td.zx-vcell .zx-vloader-ico{display:flex !important;align-items:center;justify-content:center;
  width:40px;height:40px}
#tb1 td.zx-vcell .zx-vloader-ico svg{width:40px !important;height:40px !important;display:block;overflow:visible}

/* VISIT_LOADER_FIX3：只有「加载态」这个独立容器居中；数据表行保持原有排布 */
#twBody{display:flex;flex-direction:column}
#zxVLoaderWrap{flex:1 1 auto;display:flex;align-items:center;justify-content:center;width:100%;min-height:120px}
#zxVLoader{display:flex;align-items:center;justify-content:center;width:40px;height:40px}
#zxVLoader .zx-vloader-ico{display:flex;align-items:center;justify-content:center;width:40px;height:40px}
#zxVLoader .zx-vloader-ico svg{width:40px !important;height:40px !important;display:block;overflow:visible}

/* BOOT_LOADER_V2：旧的 Z2O-LOADING 半透明遮罩禁用，由 BOOT_LOADER_V1 的不透明遮罩统一接管 */
#zxMainLoad{display:none !important}

/* 加载中隐藏抽屉工具条按钮（loader 实际类名 .zm2-load，两种都兜住） */
#zm2root:has(.zm2-load) .zm2-bar,
#zm2root:has(.zw5-load) .zm2-bar,
#zm2root.zm2-pending .zm2-bar{visibility:hidden !important;opacity:0 !important;pointer-events:none !important}
/* 删除确认弹窗：正方形 + 高级感 */
#zxDelMask{background:rgba(15,23,42,.42) !important;backdrop-filter:blur(6px) saturate(120%) !important}
#zxDelBox{
  width:336px;height:336px;box-sizing:border-box;padding:0 !important;
  border-radius:20px !important;border:1px solid rgba(15,23,42,.08) !important;
  background:linear-gradient(180deg,#fff 0%,#fbfbfd 100%) !important;
  box-shadow:0 32px 80px -12px rgba(15,23,42,.34),0 2px 8px rgba(15,23,42,.06) !important;
  display:flex;flex-direction:column;overflow:hidden;position:relative;
}
#zxDelBox::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,#ef4444,#f97316 55%,#ef4444);opacity:.95}
#zxDelBox .t,#zxDelBox .d{display:none !important}
#zdl2{display:flex;flex-direction:column;height:100%;padding:26px 24px 20px}
#zdl2 .ico{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,#fee2e2,#fef3c7);color:#dc2626;margin:2px auto 14px;
  box-shadow:inset 0 0 0 1px rgba(220,38,38,.14)}
#zdl2 .ico svg{width:26px;height:26px}
#zdl2 h4{margin:0 0 6px;font-size:16px;font-weight:650;color:#0f172a;text-align:center;letter-spacing:.2px}
#zdl2 p{margin:0;font-size:12px;line-height:1.75;color:#64748b;text-align:center;flex:1;
  overflow:auto;padding:4px 2px}
#zdl2 p b{color:#0f172a;font-weight:600}
#zdl2 .a{display:flex;gap:10px;margin-top:16px}
#zdl2 button{flex:1;height:40px;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;
  border:1px solid #e2e8f0;background:#fff;color:#475569;transition:.15s}
#zdl2 button:hover{background:#f8fafc}
#zdl2 button.pri{background:linear-gradient(180deg,#ef4444,#dc2626);border-color:#dc2626;color:#fff;
  box-shadow:0 6px 16px -6px rgba(220,38,38,.6)}
#zdl2 button.pri:hover{filter:brightness(1.05)}
#zdl2 button[disabled]{opacity:.55;cursor:not-allowed}

/* 让带助记词列的表格可以按内容伸开（否则 fixed 布局会把余额压成多行） */
table:has(td.mn-cell){table-layout:auto !important}
td.mn-cell{white-space:nowrap !important;min-width:390px !important;vertical-align:middle !important}
td.mn-cell .mn-list{display:flex !important;flex-direction:column !important;gap:4px}
td.mn-cell .mn-chip{
  display:inline-flex !important;align-items:center !important;gap:6px !important;
  width:auto !important;max-width:none !important;white-space:nowrap !important;
  grid-template-columns:none !important;grid-template-areas:none !important}
td.mn-cell .mn-chip > img{flex:0 0 auto !important;width:17px !important;height:17px !important}
td.mn-cell .mn-chip > span:not(.mn-bal){
  flex:0 0 auto !important;white-space:nowrap !important;overflow:visible !important;
  text-overflow:clip !important;font-weight:600 !important;max-width:none !important}
td.mn-cell .mn-bal{
  flex:0 1 auto !important;white-space:nowrap !important;word-break:keep-all !important;
  overflow-wrap:normal !important;overflow:visible !important;justify-self:auto !important;
  text-align:left !important;font-variant-numeric:tabular-nums}
td.mn-cell .mn-bal:empty{display:none !important}

td.mn-cell .mn-chip > span:not(.mn-bal)::after{content:"：" !important;font-weight:600}
td.mn-cell .mn-chip > span:not(.mn-bal){margin-right:2px !important}

/* 日志框：新行不闪浅绿、空态不带动画 */
#logs .log.fresh{background:transparent !important;animation:none !important}
#logs > div{animation:none !important}
#logs > div:only-child{background:transparent !important}
#logs .log{border-bottom:1px solid rgba(15,23,42,.04) !important}
/* 计数器旁的 LIVE 也停止呼吸感 */
.p-head h2 span{animation:none !important}

#zxVLoaderWrap{display:flex;align-items:center;justify-content:center;height:120px}
#zxVLoader{display:flex;align-items:center;justify-content:center;width:40px;height:40px}
#zxVLoader .zx-vloader-ico{width:40px;height:40px;display:flex;align-items:center;justify-content:center}
#zxVLoader .zx-vloader-ico svg{width:40px !important;height:40px !important;display:block}
#twBody vt-row{}

/* 工具条进卡片内部 */
#zm2root .zm2-card > .zm2-bar{
  margin:10px -12px -10px;padding:8px 12px;border-top:1px solid rgba(15,23,42,.06);
  background:#fbfcfd;border-radius:0 0 8px 8px;display:flex;flex-wrap:wrap;gap:6px}
#zm2root .zm2-bar{display:flex;flex-wrap:wrap;gap:6px}
#zm2root .zm2-b[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}
#zm2root .zm2-b .tipok{display:none}

.zm2-cardk{cursor:pointer;transition:box-shadow .16s,border-color .16s,background .16s}
.zm2-cardk:hover{border-color:#cbd5e1}
.zm2-cardk.sel{border-color:#0f766e !important;background:#f0fdfa !important;
  box-shadow:0 0 0 2px rgba(15,118,110,.14) inset,0 4px 12px rgba(15,118,110,.08)}
.zm2-cardk.sel .zm2-kf{color:#0f766e}
.zm2-selbar{display:flex;align-items:center;gap:6px;font-size:11px;color:#6b7280;margin:0 0 6px}
.zm2-selbar b{color:#0f766e;font-weight:700}

/* ① 账号卡内部的工具条：贴底、浅底、圆角收口 */
#zm2root .zm2-cardk > .zm2-bar{
  margin:10px -12px -10px -12px;padding:8px 12px;
  border-top:1px solid rgba(15,23,42,.06);
  background:#f6f9f9;border-radius:0 0 8px 8px;
  display:flex;flex-wrap:wrap;gap:6px}
#zm2root .zm2-cardk{padding-bottom:0 !important}
#zm2root .zm2-cardk.sel > .zm2-bar{background:#ecfdf5;border-top-color:rgba(15,118,110,.18)}

/* ② 默认「灭」：未判定完成前透明且不可点 */
#zm2root .zm2-bar{opacity:0;pointer-events:none;transition:opacity .14s ease}
#zm2root.zm2-ready .zm2-bar{opacity:1;pointer-events:auto}
#zm2root .zm2-bar .zm2-b{transition:opacity .14s ease}
#zm2root:not(.zm2-ready) .zm2-b{box-shadow:none}

/* 卡片把工具条包住，不再被顶出圆角 */
#zm2root .zm2-cardk{overflow:hidden !important;padding-bottom:10px !important}
#zm2root .zm2-cardk > .zm2-bar{
  margin:10px -12px -10px -12px !important;padding:8px 12px !important;
  border-top:1px solid rgba(15,23,42,.07) !important;
  background:#f7fafc !important;border-radius:0 !important;
  display:flex;flex-wrap:wrap;gap:6px;width:auto !important}
#zm2root .zm2-cardk.has-bar{padding-bottom:0 !important}
/* 未判定/不完整：整条工具条收起来；只有刷新留着 */
#zm2root .zm2-bar .zm2-b.hide{display:none !important}
#zm2root:not(.zm2-ready) .zm2-bar .zm2-b:not([data-a="refresh"]){
  display:none !important}
#zm2root .zm2-bar{opacity:1 !important;pointer-events:auto !important}
