/* ============================================================
   仓驭WMS · Pages 业务页面层
   ------------------------------------------------------------
   到货内联 / 区域库位 / 库存盘点 / 对讲条 / 权限矩阵等
   来源：v320~v339 中的页面特定样式
   ============================================================ */

/* ============================================================
   到货管理：内联展开编辑
   ============================================================ */
.arr-filter{
  display:flex; align-items:center; gap:var(--space-2); padding:var(--space-2h) var(--space-3h);
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-lg); margin-bottom:var(--space-3h); flex-wrap:wrap;
}
.arr-main-row{ cursor:pointer; }
.arr-main-row:hover td{ background:color-mix(in srgb,var(--blue) 6%,transparent); }
.arr-main-row.arr-jump-hi > td{ animation:arrJumpHi 2.4s ease 1; }
.arr-main-row.arr-jump-hi td:first-child{ box-shadow:inset 3px 0 0 var(--brand,#0D9488); }
@keyframes arrJumpHi{
  0%{ background:color-mix(in srgb,var(--brand,#0D9488) 30%,transparent); }
  18%{ background:color-mix(in srgb,var(--brand,#0D9488) 22%,transparent); }
  100%{ background:transparent; }
}
.arr-expand-row td{
  background:var(--surface-2); padding:var(--space-3h);
}
.arr-detail{
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-md); padding:var(--space-3h);
}
.arr-detail-head{ display:flex; align-items:center; gap:var(--space-2h); flex-wrap:wrap; margin-bottom:var(--space-2h); }
.arr-edit-table{ width:100%; border-collapse:collapse; }
.arr-edit-table th{ text-align:left; padding:var(--space-1h) var(--space-2); font-size:var(--font-size-xs); color:var(--text-3); border-bottom:1px solid var(--divider); }
.arr-edit-table td{ padding:var(--space-1) var(--space-2); border-bottom:1px solid var(--divider); }
.arr-edit-table input,.arr-edit-table select{
  height:32px; min-height:32px; border-radius:var(--radius-md); border:1px solid var(--input-border);
  background:var(--input-bg); color:var(--text); padding:0 var(--space-2); font-size:var(--font-size-xs); font-family:inherit; width:100%;
}
.arr-edit-table input:focus,.arr-edit-table select:focus{
  outline:none; border-color:var(--blue); box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 16%,transparent);
}
.arr-edit-table td input[type=number]{ width:84px; }
.arr-edit-row.changed{ background:color-mix(in srgb,#FFD60A 10%,transparent); }
.arr-edit-foot{ display:flex; align-items:center; gap:var(--space-2h); padding:var(--space-2h) var(--space-1) var(--space-0h); }
.arr-photo-cell{ display:flex; flex-wrap:wrap; gap:var(--space-1); align-items:center; }
.arr-photo-add{
  width:34px; height:34px; border-radius:var(--radius-md); border:1px dashed var(--input-border);
  background:var(--input-bg); cursor:pointer; font-size:var(--font-size-lg); color:var(--text-2);
  display:flex; align-items:center; justify-content:center;
}
.arr-photo-add:hover{ border-color:var(--blue); color:var(--blue); }
.arr-mini-thumb{ position:relative; width:40px; height:40px; border-radius:var(--radius-md); overflow:hidden; }
.arr-mini-thumb img{ width:100%; height:100%; object-fit:cover; }
.arr-mini-thumb i{
  position:absolute; top:1px; right:1px; width:16px; height:16px; border-radius:50%;
  border:none; background:rgba(0,0,0,.55); color:#fff; font-size:9px; font-style:normal;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.arr-head-tip{ font-size:var(--font-size-xs); color:var(--text-3); margin-left:var(--space-2h); }
.arr-paper-edit{ display:inline-flex; align-items:center; gap:var(--space-1h); font-size:var(--font-size-xs); color:var(--text-3); margin-left:var(--space-2h); }
.arr-paper-now{ position:relative; display:inline-flex; border-radius:var(--radius-md); overflow:hidden; }
.arr-paper-now img{
  width:46px; height:46px; object-fit:cover; display:block; border-radius:var(--radius-md);
  border:1px solid var(--input-border); cursor:zoom-in;
}
.arr-paper-del{
  position:absolute; top:1px; right:1px; width:17px; height:17px; border-radius:50%;
  background:rgba(0,0,0,.6); color:#fff; font-style:normal; font-size:10px;
  display:flex; align-items:center; justify-content:center; cursor:pointer; line-height:1;
}
.arr-paper-del:hover{ background:#e5484d; }
.arr-paper-edit .btn{ padding:var(--space-0h) var(--space-2h); height:26px; font-size:var(--font-size-xs); }

/* ============================================================
   区域 / 库位可视化
   ============================================================ */
.zone-viewport{
  position:relative; width:100%; height:70vh; min-height:400px;
  border-radius:var(--radius-lg); overflow:hidden;
  background-color:var(--surface-2);
  background-image:
    linear-gradient(color-mix(in srgb,var(--text) 8%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text) 8%,transparent) 1px,transparent 1px);
  background-size:32px 32px,32px 32px;
}
.zone-viewport.mode-3d{
  background-image:
    linear-gradient(color-mix(in srgb,var(--brand) 14%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--brand) 14%,transparent) 1px,transparent 1px),
    linear-gradient(color-mix(in srgb,var(--text) 7%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text) 7%,transparent) 1px,transparent 1px);
  background-size:160px 160px,160px 160px,32px 32px,32px 32px;
}
.zone-world{
  position:absolute; inset:0; transform-origin:0 0;
}
.zone-box{
  position:absolute; border-radius:var(--radius-xl); padding:0; cursor:grab;
  overflow:hidden; container-type:inline-size; touch-action:none;
  will-change:transform; user-select:none;
  color:var(--text); display:flex; flex-direction:column;
  background:linear-gradient(165deg,
    color-mix(in srgb,var(--zc,#0D9488) 13%,var(--surface)),
    color-mix(in srgb,var(--zc,#0D9488) 4%,var(--surface)));
  border:1px solid color-mix(in srgb,var(--zc,#0D9488) 26%,var(--input-border));
  box-shadow:0 4px 14px rgba(15,30,60,.08),0 1px 2px rgba(15,30,60,.05);
  transition:box-shadow .18s,border-color .18s,transform .12s;
}
.zone-box::before{
  content:''; position:absolute; left:0; right:0; top:0; height:4px; z-index:1;
  background:linear-gradient(90deg,var(--zc,#0D9488),color-mix(in srgb,var(--zc,#0D9488) 55%,#fff));
}
.zone-box:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--zc,#0D9488) 52%,var(--input-border));
  box-shadow:0 10px 26px color-mix(in srgb,var(--zc,#0D9488) 20%,transparent),0 2px 6px rgba(15,30,60,.06);
}
.zone-box .zb-inner{
  position:relative; z-index:2; display:flex; flex-direction:column;
  gap:1.6cqw; padding:4.6cqw 3.4cqw 3.4cqw; flex:1; min-height:0;
}
.zb-head{ display:flex; align-items:center; gap:1.6cqw; flex-wrap:wrap; min-width:0; }
.zb-name{
  font-weight:800; letter-spacing:.1px; font-size:6.2cqw; line-height:1.15;
  color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%;
}
.zb-type{
  font-size:3.1cqw; font-weight:700; padding:.6cqw 2cqw; border-radius:var(--radius-3xl); flex-shrink:0;
  background:color-mix(in srgb,var(--zc,#0D9488) 16%,transparent); color:var(--zc,#0D9488);
}
.zb-lock-ico{ font-size:3.3cqw; }
.zb-sub{ font-size:3.4cqw; color:var(--text-2); white-space:normal; line-height:1.4; }
.zb-arr{ color:var(--success,#16a34a); font-weight:700; white-space:nowrap; }
body[data-theme="dark"] .zb-arr{ color:#34d399; }
.zb-pc{ color:var(--zc,#0D9488); font-weight:700; }
.zb-shelf{ display:grid; gap:1.6cqw; margin:.8cqw 0; }
.zb-shelf .zl{
  aspect-ratio:1.25; border-radius:1.6cqw;
  background:color-mix(in srgb,var(--zc,#0D9488) 10%,var(--input-bg));
  border:1px solid color-mix(in srgb,var(--zc,#0D9488) 22%,transparent);
}
.zone-box:hover .zb-shelf .zl{ background:color-mix(in srgb,var(--zc,#0D9488) 17%,var(--input-bg)); }
.mslot{
  position:relative; overflow:hidden; border-radius:1.6cqw; min-height:4.4cqw;
  display:flex; align-items:flex-end; justify-content:center;
  background:color-mix(in srgb,var(--zc,#0D9488) 10%,var(--input-bg));
  border:1px solid color-mix(in srgb,var(--zc,#0D9488) 22%,transparent);
}
.ms-water{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(180deg,color-mix(in srgb,var(--zc,#0D9488) 72%,#fff),var(--zc,#0D9488));
  transition:height .3s ease;
}
.ms-pct{ position:relative; font-size:2.6cqw; font-weight:800; color:var(--text); }
.ms-lock{ background:color-mix(in srgb,var(--danger,#EF4444) 14%,transparent); border-color:color-mix(in srgb,var(--danger,#EF4444) 32%,transparent); }
.ms-lock .ms-pct{ color:var(--danger,#EF4444); }
.zb-level{ font-size:3cqw; color:var(--text-2); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zb-cap{ margin-top:auto; flex-shrink:0; }
.zb-bar{ height:6px; border-radius:var(--radius-sm); background:var(--track,rgba(0,0,0,.08)); overflow:hidden; margin-bottom:.9cqw; }
.zb-bar i{
  display:block; height:100%; border-radius:var(--radius-sm);
  background:linear-gradient(90deg,var(--zc,#0D9488),color-mix(in srgb,var(--zc,#0D9488) 60%,#fff)); transition:width .3s ease;
}
.zb-cap-txt{ font-size:3cqw; font-weight:600; color:var(--text-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zb-acts{ position:absolute; top:2cqw; right:2cqw; display:flex; gap:1.2cqw; z-index:4; }
.zb-act{
  width:5.6cqw; height:5.6cqw; min-width:22px; min-height:22px; border-radius:50%;
  background:var(--surface); border:1px solid var(--input-border);
  color:var(--text-2); cursor:pointer; font-size:3.4cqw; display:grid; place-items:center;
  transition:.14s; box-shadow:0 2px 6px rgba(0,0,0,.08);
}
.zb-act:hover{ background:var(--zc,#0D9488); color:#fff; border-color:var(--zc,#0D9488); transform:scale(1.08); }
.zb-del{
  position:absolute; top:2cqw; left:2cqw; width:5.6cqw; height:5.6cqw; min-width:22px; min-height:22px;
  border-radius:50%; background:var(--surface); border:1px solid var(--input-border);
  color:var(--danger,#EF4444); cursor:pointer; font-size:3.3cqw; z-index:4; opacity:0;
  transition:.18s; display:grid; place-items:center; box-shadow:0 2px 6px rgba(0,0,0,.08);
}
.zone-box:hover .zb-del,.zone-box.dragging .zb-del{ opacity:1; }
.zb-del:hover{ background:var(--danger,#EF4444); color:#fff; }
.zone-edge{ position:absolute; z-index:21; background:rgba(13,148,136,.08); transition:background .12s; }
.zone-edge[data-side="n"]{ top:0; left:6%; right:6%; height:16px; cursor:ns-resize; }
.zone-edge[data-side="s"]{ bottom:0; left:6%; right:6%; height:16px; cursor:ns-resize; }
.zone-edge[data-side="w"]{ left:0; top:6%; bottom:6%; width:16px; cursor:ew-resize; }
.zone-edge[data-side="e"]{ right:0; top:6%; bottom:6%; width:16px; cursor:ew-resize; }
.zone-edge::after{
  content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  background:rgba(13,148,136,.7); border-radius:var(--radius-xs); pointer-events:none;
}
.zone-edge[data-side="n"]::after,.zone-edge[data-side="s"]::after{ width:44px; height:6px; }
.zone-edge[data-side="w"]::after,.zone-edge[data-side="e"]::after{ width:6px; height:44px; }
.zone-edge:hover{ background:color-mix(in srgb,var(--zc,#0D9488) 42%,transparent); }
.zone-edge:hover::after{ background:var(--zc,#0D9488); }
.zone-box.is-locked{ cursor:default; }
.zone-box.is-locked::after{
  content:''; position:absolute; inset:0; border-radius:inherit; z-index:3; pointer-events:none;
  border:2px dashed color-mix(in srgb,var(--zc,#0D9488) 45%,transparent);
}
.zone-box.is-full .zb-bar i{ background:linear-gradient(90deg,var(--warning,#F59E0B),#FFD60A); }
.zone-box.dragging{ box-shadow:0 18px 40px rgba(15,30,60,.20),0 0 0 2px var(--zc,#0D9488); }
.zone-world.mode-3d .zone-box{
  transform-style:preserve-3d;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--zc,#0D9488) 30%,transparent),0 18px 40px rgba(15,30,60,.16);
}

/* 缩放控件 */
.zoom-ctl{
  position:absolute; right:12px; bottom:12px; z-index:10;
  display:flex; flex-direction:column; gap:var(--space-1);
}
.zoom-ctl button{
  width:36px; height:36px; border-radius:var(--radius-sm);
  background:var(--surface); border:1px solid var(--line);
  display:grid; place-items:center; cursor:pointer; font-size:var(--font-size-lg);
}

/* 区域商品弹窗列 */
.zp-arr{ color:var(--text-2); white-space:nowrap; font-variant-numeric:tabular-nums; }
.zp-qty{ white-space:nowrap; }
.zp-qty b{ color:var(--text); font-variant-numeric:tabular-nums; }
.zp-name{ max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.zp-cspec{ max-width:96px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-3); }
.zp-cnt{ font-size:var(--font-size-2xs); color:var(--brand,#0D9488); margin-right:var(--space-1); font-weight:700; }
.zp-toggle{
  display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px;
  margin-right:var(--space-1); border-radius:var(--radius-xs); background:var(--brand-soft,rgba(13,148,136,.14));
  color:var(--brand,#0D9488); font-style:normal; font-size:10px; line-height:1;
  cursor:pointer; vertical-align:middle; user-select:none;
}
.zp-detail-in{ margin:var(--space-1) var(--space-2) var(--space-2h) var(--space-10); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:auto; }
.zp-detail-in table{ width:100%; border-collapse:collapse; }
.zp-detail-in th{ text-align:left; font-size:var(--font-size-2xs); color:var(--text-3); font-weight:600; background:var(--surface-2); }
.zp-detail-in th,.zp-detail-in td{ padding:var(--space-1h) var(--space-2h); font-size:var(--font-size-xs); white-space:nowrap; border-bottom:1px solid var(--divider); }
.zp-detail-in tbody tr:last-child td{ border-bottom:none; }
.zp-detail-in tfoot td{ background:var(--surface-2); border-top:2px solid var(--line); font-size:var(--font-size-xs); padding:var(--space-1h) var(--space-2); color:var(--text-2); }
.zp-detail-in tfoot b{ color:var(--brand,#0D9488); font-variant-numeric:tabular-nums; }
.zp-single{
  display:inline-block; font-size:var(--font-size-2xs); font-weight:600; line-height:1.5;
  color:var(--text-3); background:var(--surface-3); border-radius:var(--radius-sm); padding:1px var(--space-1h); white-space:nowrap;
}
.zp-mul{ color:var(--brand,#0D9488); font-weight:700; font-variant-numeric:tabular-nums; }
.zp-jump{
  color:var(--brand,#0D9488); font-weight:600; cursor:pointer; text-decoration:none;
  white-space:nowrap; border-bottom:1px dashed color-mix(in srgb,var(--brand,#0D9488) 45%,transparent);
}
.zp-jump:hover{ color:color-mix(in srgb,var(--brand,#0D9488) 72%,#000); border-bottom-style:solid; }

/* ============================================================
   库存盘点
   ============================================================ */
.mini-chip{
  display:inline-block; padding:1px var(--space-2); border-radius:var(--radius-lg); font-size:var(--font-size-xs); margin-right:var(--space-1);
  background:color-mix(in srgb,var(--accent,#0D9488) 14%,transparent);
  color:var(--text); border:1px solid color-mix(in srgb,var(--accent,#0D9488) 30%,transparent);
}
.ck-kw{
  width:100%; padding:var(--space-2) var(--space-3); border-radius:var(--radius-lg); border:1px solid var(--line);
  background:transparent; color:var(--text); margin-bottom:var(--space-1h);
}
.ck-prod-list{ max-height:34vh; overflow:auto; border:1px dashed var(--line); border-radius:var(--radius-lg); padding:var(--space-1); }
.ck-prow{ display:flex; align-items:center; gap:var(--space-2); padding:var(--space-1) var(--space-1h); border-radius:var(--radius-md); cursor:pointer; }
.ck-prow:hover{ background:color-mix(in srgb,var(--accent,#0D9488) 8%,transparent); }
.ck-prow.on{ background:color-mix(in srgb,var(--accent,#0D9488) 14%,transparent); }
.ck-prow input{ accent-color:var(--accent,#0D9488); }
.ck-pimg{ width:34px; height:34px; border-radius:var(--radius-sm); object-fit:cover; flex-shrink:0; }
.ck-noimg{
  width:34px; height:34px; border-radius:var(--radius-sm); display:inline-flex; align-items:center; justify-content:center;
  background:color-mix(in srgb,var(--accent,#0D9488) 10%,transparent); flex-shrink:0;
}
.ck-prow b{ flex-shrink:0; font-size:var(--font-size-sm); min-width:84px; }
.ck-pname{ font-size:var(--font-size-xs); color:var(--text-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ck-detail{ display:flex; flex-direction:column; gap:var(--space-3); }
.ck-meta{ font-size:var(--font-size-sm); color:var(--text-2); }
.ck-meta-line{ margin:var(--space-0h) 0; word-break:break-all; }
.ck-meta-line b{ color:var(--text); }
.ck-scan input{
  width:100%; padding:var(--space-2h) var(--space-3h); border-radius:var(--radius-xl); border:1px solid var(--line);
  background:transparent; color:var(--text); font-size:var(--font-size-md); letter-spacing:.5px;
}
.ck-scan-tip{ font-size:var(--font-size-xs); color:var(--text-3); margin-top:var(--space-1); }
.ck-mreal,.ck-preal{
  width:88px; padding:var(--space-1) var(--space-2); border-radius:var(--radius-md); border:1px solid var(--line);
  background:transparent; color:var(--text);
}
.ck-minfo{ display:flex; flex-direction:column; line-height:1.35; }
.ck-minfo b{ font-size:var(--font-size-sm); }
.ck-minfo span{ font-size:var(--font-size-xs); color:var(--text-3); }
.ck-mrow{ cursor:pointer; }
.ck-mrow:hover td{ background:color-mix(in srgb,var(--accent,#0D9488) 6%,transparent); }
.ck-arrow{ font-style:normal; color:var(--text-3); }
.ck-parts{ display:flex; flex-direction:column; gap:var(--space-1); }
.ck-part{ display:flex; align-items:center; gap:var(--space-2); flex-wrap:wrap; font-size:var(--font-size-sm); padding:var(--space-0h) 0; }
.ck-ptime{ font-size:var(--font-size-xs); color:var(--text-3); }
.ck-actions{ display:flex; gap:var(--space-2); justify-content:flex-end; flex-wrap:wrap; }

/* 摄像头扫码 */
.cam-mask{
  position:fixed; inset:0; z-index:3000; background:rgba(5,8,18,.5);
  display:flex; align-items:center; justify-content:center; padding:var(--space-4h);
}
.cam-box{
  width:min(560px,100%); border-radius:var(--radius-2xl); padding:var(--space-3h);
  display:flex; flex-direction:column; gap:var(--space-2h);
  background:var(--surface);
}
.cam-head{ display:flex; align-items:center; justify-content:space-between; font-weight:600; font-size:var(--font-size-md); }
.cam-box video{ width:100%; border-radius:var(--radius-xl); background:#000; aspect-ratio:4/3; object-fit:cover; }
.cam-scanline{
  height:2px; background:linear-gradient(90deg,transparent,#0D9488,transparent);
  position:relative; margin-top:-2px; border-radius:var(--radius-xs);
}
.cam-tip{ font-size:var(--font-size-xs); color:var(--text-3); text-align:center; }

/* ============================================================
   对讲全局悬浮条
   ============================================================ */
.voice-float{
  position:fixed; right:20px; bottom:calc(80px + env(safe-area-inset-bottom));
  z-index:var(--z-toast,1080);
  display:flex; align-items:center; gap:var(--space-2h);
  padding:var(--space-2) var(--space-4); border-radius:var(--radius-full);
  background:var(--surface); border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
}
.vf-btn{
  width:36px; height:36px; border-radius:50%;
  display:grid; place-items:center; cursor:pointer;
  background:var(--brand,#0D9488); color:#fff; font-size:var(--font-size-lg);
}
.vf-status{ font-size:var(--font-size-sm); font-weight:500; }

/* ============================================================
   壁纸系统
   ============================================================ */
body[data-wallpaper="w01"]{ --wallpaper-img:url('/wallpapers/wallpaper-01.jpg'); }
body[data-wallpaper="w02"]{ --wallpaper-img:url('/wallpapers/wallpaper-02.jpg'); }
body[data-wallpaper="w03"]{ --wallpaper-img:url('/wallpapers/wallpaper-03.jpg'); }
body[data-wallpaper="w04"]{ --wallpaper-img:url('/wallpapers/wallpaper-04.jpg'); }
body[data-wallpaper="w05"]{ --wallpaper-img:url('/wallpapers/wallpaper-05.jpg'); }
body[data-wallpaper="w06"]{ --wallpaper-img:url('/wallpapers/wallpaper-06.jpg'); }
body[data-wallpaper="w07"]{ --wallpaper-img:url('/wallpapers/wallpaper-07.jpg'); }
body[data-wallpaper="w08"]{ --wallpaper-img:url('/wallpapers/wallpaper-08.jpg'); }
body[data-wallpaper="w09"]{ --wallpaper-img:url('/wallpapers/wallpaper-09.jpg'); }
body[data-wallpaper="w10"]{ --wallpaper-img:url('/wallpapers/wallpaper-10.jpg'); }
body[data-wallpaper="w11"]{ --wallpaper-img:url('/wallpapers/wallpaper-11.jpg'); }
body[data-wallpaper]:not([data-wallpaper=""]){
  background-image:var(--wallpaper-img) !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
body[data-wallpaper]:not([data-wallpaper=""]) .bg-orbs{ display:none !important; }
body[data-theme="light"][data-wallpaper]:not([data-wallpaper=""])::before{
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:rgba(255,255,255,.26);
}
body[data-theme="dark"][data-wallpaper]:not([data-wallpaper=""])::before{
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:rgba(0,0,0,.34);
}
.wall-swatch{ background-size:cover !important; background-position:center !important; }

/* ============================================================
   分页
   ============================================================ */
.pager{ display:flex; align-items:center; gap:var(--space-1); margin-top:var(--space-3h); }
.pager button{
  width:32px; height:32px; border-radius:var(--radius-sm);
  display:grid; place-items:center; cursor:pointer;
  border:1px solid var(--line); background:var(--surface); color:var(--text-2);
  font-size:var(--font-size-sm);
}
.pager button:hover{ background:var(--hover); }
.pager button.on{ background:var(--brand,#0D9488); color:#fff; border-color:var(--brand,#0D9488); }

/* ============================================================
   商品卡片网格
   ============================================================ */
.product-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:var(--space-3h);
}
.product-card{
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:var(--space-3h); cursor:pointer;
  transition:box-shadow .2s;
}
.product-card:hover{ box-shadow:var(--shadow-md); }
.product-img{
  width:100%; height:140px; border-radius:var(--radius-md);
  object-fit:cover; margin-bottom:var(--space-2h); background:var(--surface-2);
}
.product-name{ font-weight:600; margin-bottom:var(--space-1); }
.product-spec{ font-size:var(--font-size-xs); color:var(--text-3); }

/* ============================================================
   文件消息图标
   ============================================================ */
.fi-pdf{background:linear-gradient(135deg,#ff6b5e,#d63031)}
.fi-word{background:linear-gradient(135deg,#4d9fff,#1c6fd6)}
.fi-excel{background:linear-gradient(135deg,#42d683,#12994b)}
.fi-ppt{background:linear-gradient(135deg,#ff9f43,#e67e22)}
.fi-zip{background:linear-gradient(135deg,#b197fc,#7048e8)}
.fi-img{background:linear-gradient(135deg,#38bdf8,#0284c7)}
.fi-video{background:linear-gradient(135deg,#f783ac,#d6336c)}
.fi-audio{background:linear-gradient(135deg,#63e6be,#0ca678)}
.fi-txt{background:linear-gradient(135deg,#868e96,#495057)}
.fi-other{background:linear-gradient(135deg,#adb5bd,#6c757d)}

/* ============================================================
   待发附件（聊天输入框）
   ============================================================ */
.chat-pending{ display:flex; flex-wrap:wrap; gap:var(--space-2); }
.chat-pending:empty{ display:none; }
.cpend{
  position:relative; width:62px; height:62px; border-radius:var(--radius-xl); overflow:hidden;
  border:1px solid var(--input-border); background:var(--input-bg);
  animation:cpendIn .22s cubic-bezier(.2,1.2,.3,1);
}
.cpend img{ width:100%; height:100%; object-fit:cover; display:block; }
.cpend .cpend-x{
  position:absolute; top:2px; right:2px; width:18px; height:18px; border-radius:50%;
  border:none; background:rgba(0,0,0,.55); color:#fff; font-size:var(--font-size-2xs); line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.cpend .cpend-name{
  position:absolute; left:0; right:0; bottom:0; font-size:9px;
  background:rgba(0,0,0,.5); color:#fff; padding:var(--space-0h) var(--space-0h);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
@keyframes cpendIn{ from{opacity:0;transform:scale(.8)} to{opacity:1;transform:none} }

/* ============================================================
   成员对讲面板
   ============================================================ */
.voice-panel{
  position:absolute; right:16px; bottom:70px; width:300px;
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-lg);
  z-index:var(--z-popover,1060); overflow:hidden;
}
.voice-panel-head{
  padding:var(--space-3) var(--space-3h); border-bottom:1px solid var(--divider); font-weight:600;
  display:flex; align-items:center; justify-content:space-between;
}
.voice-panel-body{ max-height:300px; overflow-y:auto; }
.voice-member{
  display:flex; align-items:center; gap:var(--space-2h); padding:var(--space-2) var(--space-3h); cursor:pointer;
}
.voice-member:hover{ background:var(--hover); }
.voice-member .vm-status{ margin-left:auto; font-size:var(--font-size-2xs); }
.voice-member.speaking .vm-ava{ box-shadow:0 0 0 2px var(--brand,#0D9488); }

/* ============================================================
   仪表盘 · 库容总览（环形占比 + 水位条）—— 归并补遗
   ============================================================ */
.cap-overview{ margin-bottom:var(--space-4); }
.cap-ov-title{ display:flex;align-items:baseline;gap:var(--space-2h);font-weight:800;font-size:var(--font-size-md);margin-bottom:var(--space-3h); }
.cap-ov-title small{ font-weight:400;font-size:var(--font-size-xs);color:var(--text-3); }
.cap-ov-body{ display:flex;align-items:center;gap:var(--space-7);flex-wrap:wrap; }
.cap-ring{ position:relative;width:96px;height:96px;flex-shrink:0; }
.cap-ring-svg{ width:96px;height:96px;transform:rotate(-90deg); }
.cap-ring-svg .cr-bg{ fill:none;stroke:var(--input-border);stroke-width:3.2; }
.cap-ring-svg .cr-fg{ fill:none;stroke:var(--color-primary,#0D9488);stroke-width:3.2;stroke-linecap:round;transition:stroke-dasharray .6s var(--ease-out); }
.cap-ring-txt{ position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center; }
.cap-ring-txt b{ font-size:var(--font-size-2xl);font-weight:800;line-height:1;font-variant-numeric:tabular-nums; }
.cap-ring-txt span{ font-size:var(--font-size-2xs);color:var(--text-3);margin-top:var(--space-0h); }
.cap-bars{ flex:1;min-width:240px;display:flex;flex-direction:column;gap:var(--space-3); }
.cap-line label{ display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm);margin-bottom:var(--space-1h);gap:var(--space-2h); }
.cap-line label b{ color:var(--text-2);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap; }
.hwater{ position:relative;height:16px;border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--input-border);overflow:hidden; }
.hwater i{ position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-dark));border-radius:var(--radius-lg);transition:width .6s var(--ease-out); }
.hwater i::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.38),transparent 65%);border-radius:inherit;animation:slotWave 3s ease-in-out infinite alternate; }
.hwater.hw-green i{ background:linear-gradient(90deg,var(--color-success),var(--color-success-dark)); }
.hwater span{ position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:var(--font-size-2xs);font-weight:800;z-index:2;color:var(--text);text-shadow:0 0 4px var(--surface,#fff),0 0 4px var(--surface,#fff);font-variant-numeric:tabular-nums; }
@keyframes slotWave{ from{transform:translateX(-6%)} to{transform:translateX(6%)} }
@media (max-width:640px){ .cap-ov-body{ gap:16px; } .cap-ring,.cap-ring-svg{ width:78px;height:78px; } }

/* ============================================================
   Excel 式自定义表格网格（.sheet / .sheet-cell / 公式栏）—— 归并补遗
   ============================================================ */
.sheet-fxbar{
  display:flex;align-items:center;gap:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border-light);
  border-radius:var(--radius-md);padding:var(--space-1h) var(--space-2h);margin-bottom:var(--space-2);position:sticky;top:0;z-index:5;
}
.sheet-addr{
  flex:0 0 auto;min-width:56px;text-align:center;font-weight:700;font-size:var(--font-size-sm);color:var(--color-primary);
  background:var(--color-primary-bg);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-variant-numeric:tabular-nums;
}
.sheet-fx{color:var(--color-text-muted);font-style:italic;font-weight:700;}
.sheet-fxbar input{flex:1 1 auto;min-width:0;border:none!important;background:transparent!important;box-shadow:none!important;min-height:32px!important;padding:var(--space-1) var(--space-1h)!important;}
.sheet-fxbar input:focus{box-shadow:none!important;}
.sheet-quick{flex:0 0 auto;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:700;font-variant-numeric:tabular-nums;}
.sheet-scroll{
  overflow:auto;max-height:calc(100vh - 230px);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);
}
table.sheet{border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm);}
table.sheet thead th{
  position:sticky;top:0;z-index:4;padding:0;background:var(--color-surface-3);border-right:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);font-weight:600;color:var(--color-text-secondary);height:30px;vertical-align:middle;
}
.sheet-corner{position:sticky;left:0;z-index:6;min-width:42px;width:42px;background:var(--color-surface-3)!important;}
.sheet-colh{min-width:118px;cursor:pointer;user-select:none;text-align:center!important;}
.sheet-colh .col-letter{display:inline-block;font-weight:800;color:var(--color-primary);margin-right:var(--space-1);font-variant-numeric:tabular-nums;}
.sheet-colh .col-name{color:var(--color-text-secondary);font-weight:600;}
.sheet-colh:hover{background:var(--color-surface-hover)!important;}
.sheet-rowh{
  position:sticky;left:0;z-index:3;background:var(--color-surface-3);color:var(--color-text-muted);text-align:center;
  width:42px;min-width:42px;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;cursor:pointer;user-select:none;
  border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border-light);padding:0!important;
}
.sheet-rowh.rowh-active{background:var(--color-primary-bg)!important;color:var(--color-primary);font-weight:700;}
.sheet-cell{
  min-width:118px;height:32px;padding:0 var(--space-2)!important;border-right:1px solid var(--color-border-light);
  border-bottom:1px solid var(--color-border-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  cursor:cell;user-select:none;vertical-align:middle;font-variant-numeric:tabular-nums;background:var(--color-surface);position:relative;
}
.sheet-cell.in-sel{background:var(--color-selected)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-primary) 25%,transparent);}
.sheet-fill{position:absolute;right:-4px;bottom:-4px;width:9px;height:9px;background:var(--color-primary);border:1.5px solid var(--color-surface,#fff);border-radius:1px;cursor:crosshair;z-index:2;box-sizing:border-box;transition:transform .08s ease;}
.sheet-cell.active .sheet-fill:hover{transform:scale(1.3);background:var(--color-primary-strong,#0b7d73);}
.sheet-ctx{position:fixed;z-index:3000;min-width:204px;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 12px 32px rgba(15,23,42,.18);padding:var(--space-1);animation:sheetCtxIn .12s ease;}
@keyframes sheetCtxIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.sheet-ctx-item{padding:var(--space-2) var(--space-2h);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;color:var(--color-text-primary);white-space:nowrap;user-select:none;}
.sheet-ctx-item:hover{background:var(--color-primary-bg);color:var(--color-primary);}
.sheet-cell.active{
  background:var(--color-primary-bg-strong)!important;
  box-shadow:inset 0 0 0 2px var(--color-primary)!important;z-index:1;font-weight:600;
}
.sheet-cell.is-formula{color:var(--color-primary);}
.sheet-cell.is-formula::before{content:"";position:absolute;left:0;top:0;width:0;height:0;border-top:5px solid var(--color-primary);border-right:5px solid transparent;opacity:.55;}
.sheet-cell.cell-err{color:var(--color-danger);font-style:italic;}
.sheet-cell.kw-hit{background:var(--color-highlight)!important;}
.sheet-cell.editing{padding:0!important;overflow:visible;box-shadow:inset 0 0 0 2px var(--color-primary)!important;background:var(--color-surface)!important;}
.sheet-editor{
  width:100%;height:100%;min-height:30px!important;border:none!important;border-radius:0!important;background:var(--color-surface)!important;
  padding:0 var(--space-2)!important;font-size:var(--font-size-sm);box-shadow:none!important;
}
.sheet-editor:focus{box-shadow:none!important;}
.sheet-imgtag{color:var(--color-secondary);font-size:var(--font-size-xs);}
.sheet-status{
  margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary);display:flex;gap:var(--space-3h);flex-wrap:wrap;
}
.sheet-status b{color:var(--color-primary);font-variant-numeric:tabular-nums;}

/* ==== v8 CSS 归并补遗：缺失类迁移（自动提取+去重+令牌映射） ==== */
.mini-photos { display:flex; gap:var(--space-1h); flex-wrap:wrap }
.login-sub { margin:0 0 var(--space-5h); text-align:center; font-size:var(--font-size-sm); color:var(--color-text-muted) }
.login-err { margin-top:var(--space-3); min-height:20px; font-size:var(--font-size-sm); color:var(--color-danger); text-align:center; font-weight:500 }
.prow-check { margin:0 }
.p-noimg { display:grid; place-items:center; background:var(--input-bg); font-size:var(--font-size-xl); opacity:.55 }
.prod-img-edit { display:flex; gap:var(--space-4); align-items:center; margin-bottom:var(--space-4) }
.prod-img-ops { flex:1 }
.prod-img-ops .hint { color:var(--text-3); font-size:var(--font-size-xs); margin:var(--space-2) 0 0; line-height:1.6 }
.zone-world.panning .zone-box { pointer-events:none }
.task-detail { color:var(--text-2); font-size:var(--font-size-sm); margin-bottom:var(--space-1h) }
.task-mini { padding:var(--space-4) var(--space-4h); max-height:340px; overflow:auto }
.task-mini-item { display:flex; align-items:center; gap:var(--space-2h); padding:var(--space-2) 0; border-bottom:1px solid var(--color-border-light); font-size:var(--font-size-sm) }
.task-mini-item:last-child { border-bottom:none }
.task-mini-title { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--color-text-primary) }
.task-mini-item small { color:var(--text-3); white-space:nowrap }
.stat-go { margin-left:auto; color:var(--color-text-muted); font-size:var(--font-size-xl); transition:transform .15s,color .15s }
.ar-prod-img { width:38px; height:38px; border-radius:var(--radius-lg); object-fit:cover; border:1px solid var(--input-border) }
.ar-prod-ph { width:38px; height:38px; border-radius:var(--radius-lg); background:var(--hover); display:grid; place-items:center; font-size:var(--font-size-lg); opacity:.6 }
.perm-head { display:flex; align-items:baseline; gap:var(--space-2h); margin-bottom:var(--space-2h) }
.perm-head span { font-size:var(--font-size-xs); color:var(--text-3) }
.task-assign { color:var(--blue); font-weight:600 }
.task-assign.mine { background:rgba(13,148,136,.14); padding:var(--space-0h) var(--space-2); border-radius:var(--radius-3xl) }
.task-creator { color:var(--text-3) }
.zone-viewport.zone-fs { position:fixed !important; inset:0; z-index:1200; height:100vh !important; border-radius:0 }
body.zone-fs-on { overflow:hidden }
.photo-cell { display:inline-flex; align-items:center; gap:var(--space-1h) }
.set-row { gap:var(--space-3) }
.set-row .seg { display:flex; align-items:center; gap:var(--space-2) }
.slot-wrap { display:flex; flex-wrap:wrap; gap:var(--space-1h); max-height:180px; overflow:auto; padding:var(--space-1) var(--space-0h); border:1px solid var(--input-border); border-radius:var(--radius-xl); padding:var(--space-2h); background:var(--input-bg) }
.slot-wrap.manage { border:1px dashed var(--color-warning) }
.zp-toolbar { display:flex; align-items:center; gap:var(--space-2); flex-wrap:wrap; margin-bottom:var(--space-1) }
.img-previews,.task-imgs,.cell-imgs { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-2) }
.up-x { position:absolute; top:-6px; right:-6px; width:20px; height:20px; border-radius:50%; border:none; cursor:pointer; background:linear-gradient(135deg,#FF453A,#FF3B30); color:#fff; font-size:var(--font-size-2xs); font-style:normal; display:grid; place-items:center; box-shadow:0 3px 8px rgba(255,69,58,.45) }
.member-avatar { width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:var(--font-size-2xl); flex-shrink:0 }
.member-info { flex:1; min-width:0 }
.member-name { font-weight:700; font-size:var(--font-size-md); display:flex; align-items:center; gap:var(--space-1h); flex-wrap:wrap }
.member-sub { font-size:var(--font-size-xs); color:var(--text-3); margin:var(--space-0h) 0 }
.member-status { font-size:var(--font-size-xs); display:flex; align-items:center; gap:var(--space-1h) }
.member-acts { flex-shrink:0 }
.member-status-sel { height:34px; padding:0 var(--space-2h); font-size:var(--font-size-xs); border-radius:var(--radius-md) }
.conv-none { padding:var(--space-6) var(--space-4); color:var(--text-3); font-size:var(--font-size-sm); line-height:1.7 }
.conv-ava .online-dot { position:absolute; right:-1px; bottom:-1px; box-shadow:0 0 0 2px var(--card,#fff) }
.conv-mid { flex:1; min-width:0 }
.conv-unread { box-shadow:0 2px 8px rgba(255,69,58,.4); animation:badgePop .3s cubic-bezier(.2,1.4,.4,1) }
.chat-pane { min-height:0 !important }
.chat-back { display:none }
.msg-sender { font-size:var(--font-size-xs); color:var(--text-3); margin:0 var(--space-1h) var(--space-0h); font-weight:500 }
.msg-img { max-width:260px; max-height:280px; border-radius:var(--radius-2xl) }
.msg-product { width:auto; min-width:240px; max-width:280px; padding:var(--space-3); gap:var(--space-3); border-radius:var(--radius-2xl); align-items:flex-start }
.msg-product:hover { transform:translateY(-1px); box-shadow:0 6px 18px rgba(13,148,136,.18) }
.msg-product img { width:56px; height:56px; border-radius:var(--radius-xl); object-fit:cover; flex-shrink:0 }
.mp-noimg { background: transparent !important; color: var(--blue) !important }
.mp-code { font-weight:700; font-size:var(--font-size-sm); color:var(--text-1); word-break:break-all }
.mp-name { font-size:var(--font-size-sm); margin:0; color:var(--text-1); font-weight:600; line-height:1.4; word-break:break-word }
.mp-spec { font-size:var(--font-size-xs); color:var(--text-2); line-height:1.4; word-break:break-word }
.mp-hint { font-size:var(--font-size-2xs); color:var(--blue); margin-top:var(--space-0h); font-weight:500 }
.cg-members { display:flex; flex-direction:column; gap:var(--space-1h); max-height:46vh; overflow:auto; border:1px solid var(--input-border); border-radius:var(--radius-xl); padding:var(--space-2h) }
.cg-opt { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-1); cursor:pointer; font-size:var(--font-size-base) }
.fp-mod { margin-bottom:var(--space-2h); border:1px solid var(--input-border); border-radius:var(--radius-xl); overflow:hidden }
.fp-mod-head { padding:var(--space-2h) var(--space-3h); font-weight:700; font-size:var(--font-size-base); cursor:pointer; background:color-mix(in srgb,var(--blue) 6%,transparent); user-select:none; transition:.15s }
.fp-mod-head:hover { background:color-mix(in srgb,var(--blue) 12%,transparent) }
.fp-mod-body { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:var(--space-1h) var(--space-3h); padding:var(--space-2h) var(--space-3h) }
.slot-st-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:var(--space-1); background:var(--color-text-muted); flex-shrink:0 }
.slot-st-dot.st-partial { background:var(--color-primary); box-shadow:0 0 0 2px var(--color-primary-bg) }
.slot-st-dot.st-full { background:var(--color-success); box-shadow:0 0 0 2px var(--color-success-bg) }
.slot-st-dot.st-locked { background:var(--color-danger); box-shadow:0 0 0 2px var(--color-danger-bg) }
.chat-top-info { display:flex; flex-direction:column; gap:1px; min-width:0 }
.chat-top-info b { font-size:var(--font-size-md) }
.chat-peer-status { font-size:var(--font-size-xs) }
.emoji-item { border:none; background:transparent; font-size:var(--font-size-2xl); height:37px; border-radius:var(--radius-lg); cursor:pointer; transition:transform .1s,background .12s; line-height:1 }
.emoji-item:hover { background:color-mix(in srgb,var(--blue) 16%,transparent); transform:scale(1.22) }
.typing-hint { height:0; overflow:visible; padding:0 var(--space-4h); opacity:0; transition:opacity .2s; font-size:var(--font-size-xs); color:var(--text-3); display:flex; align-items:center; gap:var(--space-1h) }
.typing-hint.show { opacity:1; height:20px; padding-bottom:var(--space-1) }
.typing-dots { display:inline-flex; gap:var(--space-0h) }
.typing-dots i { width:6px; height:6px; border-radius:50%; background:var(--blue); animation:typingBlink 1.2s infinite }
.msg-products { min-width:240px; max-width:300px; border-radius:var(--radius-2xl); overflow:hidden }
.msg-products:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(13,148,136,.2) }
.mps-head { padding:var(--space-2h) var(--space-3); font-size:var(--font-size-sm); font-weight:600 }
.mps-head span { font-weight:400; font-size:10.5px; color:var(--blue) }
.mps-item { padding:var(--space-2) var(--space-3); gap:var(--space-2h); align-items:center }
.mps-item img { width:40px; height:40px; border-radius:var(--radius-lg); object-fit:cover; flex-shrink:0 }
.mps-item .mp-noimg { width:40px; height:40px; border-radius:var(--radius-md); font-size:var(--font-size-xl); flex-shrink:0 }
.mps-mid { flex:1; min-width:0 }
.mps-name { font-size:var(--font-size-sm); font-weight:600; line-height:1.4; word-break:break-word }
.mps-sub { font-size:var(--font-size-2xs); color:var(--text-2); margin-top:1px; word-break:break-all }
.mps-more { padding:var(--space-2) var(--space-3); font-size:var(--font-size-xs); color:var(--blue); font-weight:500; text-align:center }
.slot-water { position:absolute; left:0; right:0; bottom:0; z-index:0; background:linear-gradient(180deg,rgba(13,148,136,.40),rgba(13,148,136,.18)); transition:height .28s var(--ease-out,cubic-bezier(.22,1,.36,1)); pointer-events:none }
.slot-water::before { content:''; position:absolute; left:0; right:0; top:-5px; height:6px; background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.15)); border-radius:50%; animation:slotWave 2.8s ease-in-out infinite alternate }
.slot-hint { color:var(--color-warning); font-size:var(--font-size-xs) }
.cell-img { width:38px; height:38px; object-fit:cover; border-radius:var(--radius-sm); cursor:pointer; transition:transform .15s,box-shadow .2s; border:1px solid var(--input-border) }
.cell-edit { min-height:26px; outline:none; padding:var(--space-1) var(--space-2); border:1.5px dashed var(--blue); border-radius:var(--radius-md); background:var(--input-bg); font-size:var(--font-size-sm); line-height:1.5; min-width:80px }
.cell-edit:focus { box-shadow:0 0 0 3px rgba(13,148,136,.15) }
.cell-edit img { max-width:90px; max-height:68px; border-radius:var(--radius-md); display:block; margin:var(--space-0h) 0; border:1px solid var(--input-border) }
.task-view-seg .seg-badge { display:inline-block; min-width:16px; height:16px; line-height:16px; text-align:center; background:var(--red); color:#fff; border-radius:var(--radius-md); font-size:var(--font-size-2xs); font-style:normal; padding:0 var(--space-1); margin-left:var(--space-0h) }
.task-item.task-unread { border-left:3px solid var(--red) }
.tpt { color: var(--blue) !important }
.tpt.has-x i { font-style:normal; cursor:pointer; color:var(--red); margin-left:var(--space-0h); font-weight:700; width:18px; height:18px; border-radius:50%; display:inline-grid; place-items:center }
.task-receipt-mini { color: var(--text-2) !important }
.receipt-view .rv-block { margin:var(--space-2h) 0 }
.receipt-view .rv-text { white-space:pre-wrap; background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:var(--radius-lg); padding:var(--space-2h) var(--space-3); margin-top:var(--space-1h); line-height:1.7; color:var(--text-1) }
.receipt-view .rv-imgs { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-1h) }
.pp-list { max-height:46vh; overflow:auto; display:flex; flex-direction:column; gap:var(--space-1); padding:var(--space-1h); border-radius:var(--radius-xl); border:1px solid var(--input-border); background:var(--input-bg) }
.pp-opt { display:flex; align-items:center; gap:var(--space-2h); padding:var(--space-2) var(--space-2h); border-radius:var(--radius-lg); cursor:pointer; font-size:var(--font-size-sm); transition:.14s }
.pp-opt:hover { background:var(--hover) }
.pp-opt.on { background:var(--active) }
.pp-opt b { color:var(--blue); min-width:90px; font-size:var(--font-size-sm) }
.pp-opt span { color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.fp-row { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; padding:var(--space-2) var(--space-2h); border-radius:var(--radius-md); background:var(--glass-bg); border:1px solid var(--glass-border) }
.fp-name { min-width:84px; font-weight:600; font-size:var(--font-size-sm); color:var(--text-1) }
.fp-seg2 { display:inline-flex; border:1px solid var(--glass-border); border-radius:var(--radius-md); overflow:hidden }
.fp-seg2 i { display:block; font-style:normal; font-size:var(--font-size-xs); padding:var(--space-1) var(--space-2h); border-right:1px solid var(--glass-border); transition:.18s; color:var(--text-1) }
.fp-users { flex-wrap:wrap; gap:var(--space-1h) }
.fpu { position:relative; cursor:pointer }
.fpu i { font-style:normal; font-size:var(--font-size-xs); padding:var(--space-1) var(--space-2h); border-radius:var(--radius-3xl); border:1px solid var(--glass-border); background:var(--glass-bg); transition:.18s; color:var(--text-1) }
.mtg-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:var(--space-3); margin-bottom:var(--space-4h) }
.mtg-top { display:flex; justify-content:space-between; align-items:center; gap:var(--space-2); margin-bottom:var(--space-1h) }
.mtg-content { font-size:var(--font-size-sm); color:var(--text-2); line-height:1.6; margin:var(--space-1) 0 var(--space-2); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
.mtg-meta { display:flex; flex-wrap:wrap; gap:var(--space-2h); font-size:var(--font-size-xs); color:var(--text-3) }
.mtg-owner { color:var(--blue); font-weight:600 }
.mtg-detail { max-height:74vh; overflow:auto; padding-right:var(--space-1) }
.mtg-d-head { display:flex; justify-content:space-between; gap:var(--space-2h); align-items:flex-start; margin-bottom:var(--space-2) }
.mtg-d-acts { display:flex; gap:var(--space-1h); flex-wrap:wrap; flex-shrink:0 }
.sc-idx { font-size:var(--font-size-sm); color:var(--text-3); letter-spacing:2px }
.sc-title { font-size:var(--font-size-4xl); font-weight:800; margin:var(--space-2h) 0 var(--space-1); background:linear-gradient(120deg,var(--blue),var(--cyan)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent }
.sc-speaker { font-size:var(--font-size-md); color:var(--text-2); margin-bottom:var(--space-4h) }
.sc-text { font-size:var(--font-size-2xl); line-height:1.9; white-space:pre-wrap; margin:0 auto var(--space-5); max-width:720px; color:var(--text-1) }
.sc-imgs { display:flex; flex-wrap:wrap; gap:var(--space-3); justify-content:center; margin-bottom:var(--space-6) }
.sc-imgs img { max-width:300px; max-height:340px; border-radius:var(--radius-xl); box-shadow:0 10px 30px rgba(0,0,0,.3); animation:scImg .5s ease }
.sc-ctrl { display:flex; gap:var(--space-3); justify-content:center }
body[data-perf="1"] .set-sub,
body[data-perf="1"] .set-hint { color:var(--text-3) }
body[data-perf="1"] .set-row { color:var(--text-1) }
body[data-perf="1"] .login-sub { color:var(--text-3); letter-spacing:.06em }
body[data-perf="1"] .login-err { color:#dc2626 }
body[data-perf="1"] .set-tabs { background:var(--surface) !important; border:1px solid var(--line) !important; box-shadow:var(--sh-sm) !important; border-radius:var(--r-card) }
.arr-main-row.expanded { background:color-mix(in srgb,var(--blue) 5%,transparent) }
.arr-main-row.expanded:hover { background:var(--color-primary-bg-strong) }
.arr-date-cell { font-size:var(--font-size-xs); color:var(--text-2); white-space:nowrap }
.dash-head-row { margin-bottom:var(--space-3) }
.dash-full { grid-column:1/-1 }
.cap-overview,.task-mini { display:flex; flex-direction:column }
.arr-filter.glass { border-radius:var(--radius-2xl) }
.pp-opt img { width:34px; height:34px; border-radius:var(--radius-md); object-fit:cover; flex-shrink:0; border:1px solid var(--input-border) }
.pp-opt .pp-noimg { width:34px; height:34px; border-radius:var(--radius-md); display:grid; place-items:center; background:var(--hover); flex-shrink:0; font-size:var(--font-size-lg) }
.item-grid { display:grid; grid-template-columns:38px 1.15fr 1fr 1fr .8fr .8fr 34px; gap:var(--space-2); align-items:center }
.item-zone { margin-top:var(--space-2); display:grid; grid-template-columns:1fr auto auto; gap:var(--space-2); align-items:center }
.item-photos { margin-top:var(--space-2); display:flex; align-items:center; gap:var(--space-2); flex-wrap:wrap }
.up-x:hover { transform:scale(1.12) }
.tpt img { width:24px; height:24px; border-radius:var(--radius-sm); object-fit:cover }
.tpt .tpt-noimg { width:24px; height:24px; border-radius:var(--radius-sm); background:var(--blue); color:#fff; display:grid; place-items:center; font-size:var(--font-size-xs) }
.tpt b { color:var(--blue); font-weight:700 }
.tpt.has-x i:hover { background:rgba(255,69,58,.15) }
.dash-grid .task-mini { margin:0 }
.sc-setbar { display:flex; align-items:center; gap:var(--space-3h); justify-content:center; flex-wrap:wrap; margin-bottom:var(--space-5h); font-size:var(--font-size-sm); color:var(--text-2) }
.sc-text.typing .type-caret { display:inline-block; width:2px; height:1.05em; background:var(--blue); margin-left:var(--space-0h); vertical-align:-2px; animation:caretBlink .8s steps(1) infinite }
.sc-hint { position:absolute; top:14px; left:50%; transform:translateX(-50%); font-size:var(--font-size-xs); color:var(--text-3); background:var(--input-bg); padding:var(--space-1) var(--space-3); border-radius:var(--radius-3xl); border:1px solid var(--input-border); opacity:0; transition:.3s; pointer-events:none }
.sc-progress { display:flex; gap:var(--space-1); justify-content:center; margin:0 0 var(--space-5) }
.sc-progress i { width:22px; height:4px; border-radius:var(--radius-xs); background:var(--track); transition:.3s }
.sc-progress i.on { background:linear-gradient(90deg,var(--blue),var(--cyan)) }
.conv-kw-clear { position:absolute; right:20px; top:50%; transform:translateY(-6px); width:20px; height:20px; border-radius:50%; border:none; background:var(--track); color:var(--text-2); cursor:pointer; font-size:10px; line-height:1; display:flex; align-items:center; justify-content:center }
.conv-kw-clear:hover { background:var(--blue); color:#fff }
.conv-name-row { display:flex; align-items:center; gap:var(--space-1h) }
.conv-name-row .conv-name { flex:1; min-width:0 }
.conv-time { font-size:var(--font-size-2xs) }
.conv-last-row { display:flex; align-items:center; gap:var(--space-2); margin-top:var(--space-0h) }
.conv-last-row .conv-last { flex:1; min-width:0 }
.msg-row.msg-hit .msg-bubble { box-shadow:0 0 0 2px color-mix(in srgb,#FFD60A 55%,transparent) }
.msg-row.msg-hit-cur .msg-bubble { box-shadow:0 0 0 2px #FFD60A,0 4px 16px rgba(255,214,10,.35) }
.emoji-head { padding:var(--space-2h) var(--space-2h) var(--space-1h) }
.emoji-tabs { display:flex; gap:var(--space-1); padding:0 var(--space-2h) var(--space-2); overflow-x:auto }
.emoji-grid { scrollbar-width:thin }
.emoji-item:active { transform:scale(.9) }
.emoji-modes { display:flex; gap:var(--space-1); padding:var(--space-2h) var(--space-2h) var(--space-1) }
.emoji-mode { flex:1; border:1px solid var(--input-border); background:var(--input-bg); color:var(--text-2); border-radius:var(--radius-lg); padding:var(--space-1h) 0; font-size:var(--font-size-xs); cursor:pointer; transition:.16s; font-family:inherit; white-space:nowrap }
.emoji-mode:hover { color:var(--text-1); border-color:var(--blue) }
.emoji-mode.on { background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark)); color:#fff; border-color:transparent; font-weight:700; box-shadow:0 3px 10px rgba(13,148,136,.32) }
.emoji-grid.qq { grid-template-columns:repeat(8,1fr) }
.qq-sticker { position:relative; border:none; background:transparent; border-radius:var(--radius-md); padding:var(--space-0h); cursor:pointer; transition:transform .12s,background .12s; display:flex; align-items:center; justify-content:center }
.qq-sticker img { width:100%; height:auto; display:block }
.qq-sticker:hover { background:color-mix(in srgb,var(--blue) 15%,transparent); transform:scale(1.14); z-index:2 }
.qq-sticker:active { transform:scale(.9) }
.msg-sticker { width:100px; height:100px }
.ce-emoji { width:1.32em; height:1.32em; object-fit:contain; vertical-align:-0.3em; margin:0 1px }
.inline-emoji { width:1.28em; height:1.28em; object-fit:contain; vertical-align:-0.28em; margin:0 1px; display:inline-block }
.emoji-recent { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-1h) var(--space-2h) var(--space-1h); border-bottom:1px solid var(--input-border); margin:0 var(--space-0h) var(--space-1); flex:none }
.msg-bubble-wrap { max-width:100%; gap:var(--space-2) }
.msg-row.mine .msg-bubble-wrap { flex-direction:row-reverse }
.msg-bubble-wrap .msg-bubble { max-width:100% }
.msg-recalled { font-size:var(--font-size-xs); padding:var(--space-1) var(--space-4); border-radius:var(--radius-xl); font-style:italic; color:var(--text-3) }
.arr-detail-row { animation:arrSlide .28s cubic-bezier(.22,1,.36,1) }
.arr-detail-loading { padding:var(--space-4h); text-align:center; color:var(--text-3); font-size:var(--font-size-sm) }
.cell-imgs { display:flex; gap:var(--space-0h); align-items:center; flex-wrap:wrap }
.cell-img:hover { transform:scale(1.12); box-shadow:0 4px 12px rgba(0,0,0,.25); z-index:2; position:relative }
.cell-more { font-size:var(--font-size-2xs); color:var(--text-2); background:var(--input-bg); padding:var(--space-0h) var(--space-1h); border-radius:var(--radius-sm); font-weight:600 }
.arr-detail .mini-photos { gap:var(--space-0h) }
.col-mgr-tip { font-size:var(--font-size-xs); color:var(--text-3); line-height:1.6; margin:0 0 var(--space-3); padding:var(--space-2) var(--space-3); background:var(--input-bg); border-radius:var(--radius-md); border-left:3px solid var(--blue) }
.col-mgr-list { display:flex; flex-direction:column; gap:var(--space-2); max-height:46vh; overflow-y:auto; padding:var(--space-0h); margin-bottom:var(--space-3) }
.col-mgr-row { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-1h) var(--space-2); border-radius:var(--radius-lg); background:var(--card); border:1px solid var(--input-border); transition:border-color .18s,box-shadow .18s,background .18s }
.col-mgr-row:hover { border-color:color-mix(in srgb,var(--blue) 40%,var(--input-border)) }
.col-mgr-row.dragging-col { opacity:.45; border-style:dashed }
.col-mgr-row.over-col { border-color:var(--blue); box-shadow:0 0 0 3px rgba(13,148,136,.15); background:color-mix(in srgb,var(--blue) 6%,var(--card)) }
.col-drag { cursor:grab; color:var(--text-3); font-size:var(--font-size-md); user-select:none; padding:0 var(--space-0h); line-height:1 }
.col-drag:active { cursor:grabbing }
.col-mgr-row .col-title { flex:1; min-width:0 }
.col-mgr-row .col-type { width:104px; flex-shrink:0; cursor:pointer }
.col-mgr-row .col-rm { flex-shrink:0; width:30px; height:30px; padding:0; display:flex; align-items:center; justify-content:center; font-size:var(--font-size-sm) }
.row-img-preview { display:block; width:88px; height:88px; object-fit:cover; border-radius:var(--radius-lg); margin-top:var(--space-2); cursor:zoom-in; border:1px solid var(--input-border) }
.cell-num { font-variant-numeric:tabular-nums; font-weight:600 }
.slot-x { cursor:pointer; opacity:.55; font-size:var(--font-size-2xs); padding:1px var(--space-1); border-radius:var(--radius-xs); line-height:1 }
.slot-x:hover { opacity:1; background:rgba(255,59,48,.18); color:var(--red) }
.perm-matrix { margin:var(--space-1) 0 var(--space-3h) }
.perm-head b { font-size:var(--font-size-base) }
.pm-head-row,.pm-row { display:grid; grid-template-columns:130px repeat(6,1fr); align-items:center }
.pm-head-row { background:var(--hover); font-weight:600; font-size:var(--font-size-xs); color:var(--text-2); border-bottom:1px solid var(--divider) }
.pm-row { border-bottom:1px solid var(--divider); min-height:40px; transition:background .15s }
.pm-row:last-child { border-bottom:none }
.pm-row:hover { background:color-mix(in srgb,var(--blue) 4%,transparent) }
.pm-mod { padding:0 var(--space-3); font-size:var(--font-size-sm); font-weight:600; color:var(--text-1); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.pm-act { display:flex; align-items:center; justify-content:center; padding:var(--space-1h) var(--space-1) }
.pm-head-row .pm-act { font-size:var(--font-size-xs) }
.pm-na { color:var(--text-3); font-size:var(--font-size-base) }
.pm-cb { cursor:pointer; display:flex; align-items:center; justify-content:center; width:22px; height:22px }
.pm-quick { display:flex; gap:var(--space-2); margin-top:var(--space-2h) }
.msg-row.mine .msg-read { font-size:var(--font-size-2xs); margin-top:var(--space-0h); text-align:right; line-height:1; color:var(--text-3); user-select:none }
.msg-row.mine .msg-read.read { color:var(--blue); font-weight:600 }
.msg-row.mine .msg-read .rd-dot { display:inline-block; width:6px; height:6px; border-radius:50%; margin-right:var(--space-0h); vertical-align:middle }
.msg-row.mine .msg-read.read .rd-dot { background:var(--blue) }
.msg-row.mine .msg-read:not(.read) .rd-dot { background:var(--text-3) }
.arr-filter .af-date { width:140px }
.arr-filter .af-kw { width:200px; height:36px; min-height:36px }
.arr-filter .af-reset { height:36px; padding:0 var(--space-3h) }
.urgent-ico { width:64px; height:64px; border-radius:50%; margin:0 auto var(--space-3h); display:grid; place-items:center; font-size:var(--font-size-4xl); background:linear-gradient(135deg,#FF9500,#FF3B30); color:#fff; animation:urgPulse 1s ease-in-out infinite }
body[data-perf="1"] .urgent-ico { animation:none }
.urgent-title { font-size:var(--font-size-xl); font-weight:800; margin-bottom:var(--space-1h) }
.urgent-body { font-size:var(--font-size-base); color:var(--text-2); line-height:1.7; margin-bottom:var(--space-4h); word-break:break-word }
.urgent-actions { display:flex; gap:var(--space-2h) }
.msg-read { font-size:10.5px; margin:0; display:inline-flex; align-items:center; gap:var(--space-1); line-height:1; font-weight:500 }
.msg-read .rd-dot { width:6px; height:6px; border-radius:50%; display:inline-block }
.msg-read.read { color:var(--blue); font-weight:600 }
.msg-read:not(.read) { color:var(--text-3) }
.msg-product .mp-mid { flex:1; min-width:0; display:flex; flex-direction:column; gap:var(--space-0h) }
.arr-filter #afApply,.arr-filter .af-reset { height:36px; min-height:36px; padding:0 var(--space-4); font-size:var(--font-size-sm) }
.task-filter-group { flex-wrap:wrap; gap:var(--space-0h) }
.zone-hint { color:var(--text-2); font-size:var(--font-size-xs); line-height:1.5 }
.zone-viewport.glass { background-color:color-mix(in srgb,var(--bg-1) 38%,transparent)!important; background-image:
    linear-gradient(color-mix(in srgb,var(--blue) 14%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--blue) 14%,transparent) 1px,transparent 1px),
    linear-gradient(color-mix(in srgb,var(--text-1) 6%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text-1) 6%,transparent) 1px,transparent 1px)!important; background-size:160px 160px,160px 160px,32px 32px,32px 32px!important; -webkit-backdrop-filter:blur(10px) saturate(140%); backdrop-filter:blur(10px) saturate(140%) }
.zone-viewport.glass.mode-3d { background-color:var(--bg-1); background-image:
    linear-gradient(color-mix(in srgb,var(--blue) 18%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--blue) 18%,transparent) 1px,transparent 1px),
    linear-gradient(color-mix(in srgb,var(--text-1) 8%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text-1) 8%,transparent) 1px,transparent 1px); background-size:160px 160px,160px 160px,32px 32px,32px 32px }
body[data-perf="1"] .zone-viewport.glass { background-color:var(--bg-1); background-image:
    linear-gradient(color-mix(in srgb,var(--text-1) 9%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text-1) 9%,transparent) 1px,transparent 1px); background-size:32px 32px,32px 32px; box-shadow:none }
.set-tabs { display:flex; gap:var(--space-1h); padding:var(--space-1h); border-radius:var(--radius-2xl); margin-bottom:var(--space-4); overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; position:sticky; top:8px; z-index:20 }
.set-tabs::-webkit-scrollbar { display:none }
.set-panels { min-height:300px }
.set-panel { display:none }
.set-panel.on { display:grid; gap:var(--space-4); animation:setFade .28s cubic-bezier(.2,.8,.2,1) }
.set-sub { font-size:var(--font-size-sm); font-weight:600; margin:var(--space-3h) 0 var(--space-2); color:var(--text-1) }
.set-hint { font-size:var(--font-size-xs); color:var(--text-3); line-height:1.7; margin:0 0 var(--space-3) }
.set-line { font-size:var(--font-size-sm); color:var(--text-2); margin:0 0 var(--space-3) }
.zone-viewport.glass::after { display:none }
.task-rpt-cnt { color: var(--mod-tasks) !important }
.mtg-pn { font-style:normal; font-size:var(--font-size-xs); color:var(--text-3); margin-left:var(--space-2h) }
.mtg-part-list { display:flex; flex-wrap:wrap; gap:var(--space-1h) }
.set-tabs.glass::after,.set-tabs.glass::before,.mtg-tabs.glass::after,.mtg-tabs.glass::before { display:none!important }
body[data-bf="0"] .zone-viewport.glass{ background-color:var(--input-bg)!important; background-image:
    linear-gradient(color-mix(in srgb,var(--text-1) 8%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text-1) 8%,transparent) 1px,transparent 1px)!important; background-size:32px 32px,32px 32px!important; -webkit-backdrop-filter:none!important; backdrop-filter:none!important }
.zone-viewport.glass::before,.zone-viewport.glass::after { display:none!important }
.user-menu.glass::after { z-index:3 }
.msg-line { gap:var(--space-2) }
.msg-row.mine .msg-line { flex-direction:row!important }
.msg-col .msg-bubble-wrap { max-width:100% }
.msg-file .mf-mid { min-width:0 }
.msg-line .msg-ava { flex:0 0 auto }
.chat-layout,.chat-pane { min-height:0 }
.msg-bubble, .msg-file, .msg-product, .msg-products { background: transparent !important; background-image: none !important; background-color: transparent !important; -webkit-backdrop-filter: saturate(160%) !important; backdrop-filter: saturate(160%) !important; border: 1px solid var(--input-border) !important; box-shadow: inset 0 1px 1px rgba(255,255,255,.4) !important }
img.member-avatar { background:transparent !important; border-radius:50% !important }
div.member-avatar { border-radius:50% !important }
body[data-perf="1"] .msg-bubble,
body[data-perf="1"] .msg-file,
body[data-perf="1"] .msg-product,
body[data-perf="1"] .msg-products { background:var(--surface-2) !important; border:1px solid var(--line) !important; box-shadow:0 1px 2px rgba(0,0,0,.05) !important; color:var(--text-1) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important }
body[data-perf="1"] .zone-viewport.glass,
body[data-perf="1"] .zone-viewport { background-color:var(--surface-2) !important; background-image:
    linear-gradient(color-mix(in srgb,var(--text-1) 8%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text-1) 8%,transparent) 1px,transparent 1px) !important; background-size:32px 32px,32px 32px !important }
body[data-perf="1"] .zone-viewport.glass.mode-3d,
body[data-perf="1"] .zone-viewport.mode-3d { background-color:var(--surface-2) !important; background-image:
    linear-gradient(color-mix(in srgb,var(--brand) 14%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--brand) 14%,transparent) 1px,transparent 1px),
    linear-gradient(color-mix(in srgb,var(--text-1) 7%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text-1) 7%,transparent) 1px,transparent 1px) !important; background-size:160px 160px,160px 160px,32px 32px,32px 32px !important }
body[data-perf="1"] .chat-layout.glass { padding:0 }
body[data-perf="1"] .set-hint { color:var(--text-3); font-size:var(--font-size-xs) }
body[data-perf="1"] .stat-go { margin-left:auto; color:var(--text-3) }
body[data-perf="1"] .dash-full { grid-column:1 / -1 }
body[data-perf="1"] .task-mini-item { display:flex; align-items:center; gap:var(--space-2h); padding:var(--space-2h) var(--space-1); border-bottom:1px solid var(--line) }
body[data-perf="1"] .task-mini-item:last-child { border-bottom:none }
body[data-perf="1"] .task-mini-title { color:var(--text-1); flex:1; font-size:var(--font-size-base) }
body[data-perf="1"] .task-detail { color:var(--text-2) }
.task-unread { border-color:var(--accent-line) !important }
body[data-perf="1"] .tpt { background:var(--surface-2); border:1px solid var(--line); border-radius:var(--radius-md); color:var(--text-2) }
body[data-perf="1"] .member-name { color:var(--text-1); font-weight:700 }
body[data-perf="1"] .member-sub { color:var(--text-3); font-size:var(--font-size-xs) }
body[data-perf="1"] .mtg-content { color:var(--text-2) }
body[data-perf="1"] .mtg-meta { color:var(--text-3); font-size:var(--font-size-xs) }
body[data-perf="1"] .conv-time { color:var(--text-3); font-size:var(--font-size-2xs) }
body[data-perf="1"] .conv-unread { background:var(--accent); color:var(--on-accent); border-radius:var(--radius-full) }
body[data-perf="1"] .chat-top-info b { color:var(--text-1) }
body[data-perf="1"] .msg-sender { color:var(--text-3); font-size:var(--font-size-xs) }
body[data-perf="1"] .msg-read { color:var(--text-3) }
body[data-perf="1"] .msg-read .rd-dot { background:var(--text-3) }
body[data-perf="1"] .msg-read.read .rd-dot { background:var(--accent) }
body[data-perf="1"] .emoji-mode.on,body[data-perf="1"] .emoji-tab.on { color:var(--accent) !important; background:var(--accent-soft) !important }
body[data-perf="1"] .emoji-item:hover,body[data-perf="1"] .qq-sticker:hover { background:var(--surface-2) }
body[data-perf="1"] .typing-hint { color:var(--text-3) }
body[data-perf="1"] .set-sub { color:var(--text-1); font-weight:600 }
body[data-perf="1"] .perm-matrix { border:1px solid var(--line); border-radius:var(--r-card); background:var(--surface-2) }
body[data-perf="1"] .perm-head b { color:var(--text-1) }
body[data-perf="1"] .perm-head span { color:var(--text-3); font-size:var(--font-size-xs) }
body[data-perf="1"] .pm-head-row { background:var(--surface-3); color:var(--text-2) }
body[data-perf="1"] .pm-mod { color:var(--text-1); font-weight:600 }
body[data-perf="1"] .p-noimg { display:grid; place-items:center; background:var(--surface-2); color:var(--text-3); border:1px solid var(--line); border-radius:var(--radius-md) }
body[data-perf="1"] .up-x { background:var(--color-danger); color:#fff }
body[data-perf="1"] .urgent-title { color:var(--text-1); font-weight:800 }
body[data-perf="1"] .urgent-body { color:var(--text-2) }

/* ============================================================
   阶段C · PC 登录页（左右分屏，石青品牌区 + 白底表单区）
   ============================================================ */
.auth-shell{ position:fixed; inset:0; z-index:2000; display:flex; background:var(--bg); }
/* 左侧品牌区 */
.auth-brand{
  position:relative; flex:1 1 50%; min-width:0; overflow:hidden;
  display:flex; align-items:stretch;
  background:
    radial-gradient(120% 100% at 15% 0%, color-mix(in srgb,var(--color-primary) 55%,transparent), transparent 55%),
    radial-gradient(120% 100% at 100% 100%, color-mix(in srgb,var(--color-info) 40%,transparent), transparent 55%),
    linear-gradient(150deg,var(--color-primary-darker) 0%,var(--color-primary) 55%,color-mix(in srgb,var(--color-primary) 82%,#000) 100%);
}
.auth-grid{
  position:absolute; inset:0; opacity:.18;
  background-image:
    linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(120% 120% at 30% 20%,#000 30%,transparent 75%);
}
.auth-orb{ position:absolute; border-radius:50%; filter:blur(40px); opacity:.5; }
.auth-orb.ab1{ width:340px; height:340px; background:rgba(255,255,255,.25); top:-80px; right:-60px; animation:authFloat 9s ease-in-out infinite; }
.auth-orb.ab2{ width:260px; height:260px; background:color-mix(in srgb,var(--color-info) 50%,transparent); bottom:-60px; left:-40px; animation:authFloat 11s ease-in-out infinite reverse; }
.auth-orb.ab3{ width:180px; height:180px; background:rgba(255,255,255,.18); top:45%; left:40%; animation:authFloat 13s ease-in-out infinite; }
@keyframes authFloat{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-26px) } }
.auth-brand-inner{
  position:relative; z-index:2; display:flex; flex-direction:column; justify-content:space-between;
  padding:var(--space-12) var(--space-16); color:#fff; width:100%;
}
.auth-brand-top{ display:flex; align-items:center; gap:var(--space-3h); }
.auth-logo{
  width:48px; height:48px; border-radius:var(--radius-xl); flex:0 0 auto;
  background:linear-gradient(150deg,rgba(255,255,255,.28),rgba(255,255,255,.08));
  border:1px solid rgba(255,255,255,.35);
  display:flex; align-items:center; justify-content:center;
  font-size:var(--font-size-3xl); font-weight:800; color:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.35);
}
.auth-brand-name b{ display:block; font-size:var(--font-size-2xl); font-weight:800; letter-spacing:1px; line-height:1.1; }
.auth-brand-name small{ display:block; font-size:var(--font-size-xs); opacity:.85; margin-top:var(--space-0h); letter-spacing:.5px; }
.auth-brand-mid{ margin-top:var(--space-2); }
.auth-brand-mid h1{ font-size:var(--font-size-6xl); line-height:1.25; font-weight:800; letter-spacing:1px; margin:0 0 var(--space-3h); text-shadow:0 2px 12px rgba(0,0,0,.12); }
.auth-slogan{ font-size:var(--font-size-md); opacity:.92; margin:0 0 var(--space-7); line-height:1.6; }
.auth-feats{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--space-4); max-width:440px; }
.auth-feats li{ display:flex; align-items:center; gap:var(--space-3); }
.auth-feats .af-ic{
  width:40px; height:40px; border-radius:var(--radius-lg); flex:0 0 auto;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.25);
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.auth-feats .af-ic svg{ width:20px; height:20px; }
.auth-feats b{ display:block; font-size:var(--font-size-base); font-weight:700; }
.auth-feats small{ display:block; font-size:var(--font-size-xs); opacity:.85; margin-top:var(--space-0h); }
.auth-brand-foot{ font-size:var(--font-size-xs); opacity:.8; letter-spacing:.3px; }

/* 右侧表单区 */
.auth-panel{ flex:1 1 50%; min-width:0; display:flex; align-items:center; justify-content:center; padding:var(--space-10); background:var(--surface); }
.auth-form-wrap{ width:100%; max-width:400px; animation:authFade .28s cubic-bezier(.2,.8,.2,1); }
@keyframes authFade{ from{ opacity:0; transform:translateY(10px) } to{ opacity:1; transform:none } }
.auth-form-logo{
  width:46px; height:46px; border-radius:var(--radius-xl); margin-bottom:var(--space-4h);
  background:linear-gradient(150deg,#14B8A6,var(--color-primary));
  color:#fff; font-size:var(--font-size-3xl); font-weight:800;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 18px color-mix(in srgb,var(--color-primary) 35%,transparent);
}
.auth-form-wrap h2{ font-size:var(--font-size-3xl); font-weight:800; letter-spacing:.5px; margin:0; color:var(--text); }
.auth-form-sub{ font-size:var(--font-size-base); color:var(--text-3); margin:var(--space-1h) 0 var(--space-6); }
.af-field{ display:flex; flex-direction:column; gap:var(--space-1h); margin-bottom:var(--space-3h); }
.af-field>span{ font-size:var(--font-size-sm); font-weight:600; color:var(--text-2); }
.af-input{ position:relative; display:flex; align-items:center; }
.af-input>svg{ position:absolute; left:14px; width:18px; height:18px; color:var(--text-3); pointer-events:none; }
.af-input input{
  width:100%; height:44px; border-radius:var(--radius-lg); padding:0 var(--space-10) 0 var(--space-10);
  border:1.5px solid var(--line); background:var(--input-bg); font-size:var(--font-size-md); color:var(--text);
  transition:border-color .15s,box-shadow .15s;
}
.af-input input:focus{ border-color:var(--color-primary); box-shadow:0 0 0 4px var(--color-primary-bg); }
.af-input:focus-within>svg{ color:var(--color-primary); }
.af-pwdtoggle{
  position:absolute; right:10px; width:28px; height:28px; border:none; background:transparent; cursor:pointer;
}
.af-pwdtoggle::after{ content:'显示'; font-size:var(--font-size-xs); color:var(--color-primary); }
.af-pwdtoggle.show::after{ content:'隐藏'; }
.auth-row{ display:flex; align-items:center; justify-content:space-between; margin:var(--space-1) 0 var(--space-4); }
.af-remember{ display:flex; align-items:center; gap:var(--space-1h); font-size:var(--font-size-sm); color:var(--text-2); cursor:pointer; }
.af-remember input{ width:16px; height:16px; accent-color:var(--color-primary); }
.af-link{ font-size:var(--font-size-sm); color:var(--color-primary); text-decoration:none; font-weight:500; }
.af-link:hover{ text-decoration:underline; }
.af-submit{
  width:100%; height:46px; border:none; border-radius:var(--radius-lg); margin-top:var(--space-0h);
  background:linear-gradient(135deg,#14B8A6,var(--color-primary))!important;
  color:#fff!important; font-size:var(--font-size-md); font-weight:700; letter-spacing:3px; cursor:pointer;
  box-shadow:0 8px 20px color-mix(in srgb,var(--color-primary) 32%,transparent);
  transition:filter .15s,transform .1s,box-shadow .15s;
}
.af-submit:hover{ filter:brightness(1.05); }
.af-submit:active{ transform:translateY(1px); }
body[data-perf="1"] .af-submit{
  background:linear-gradient(135deg,#14B8A6,var(--color-primary))!important;
  color:#fff!important; border:none!important; box-shadow:0 8px 20px color-mix(in srgb,var(--color-primary) 32%,transparent)!important;
}
body[data-perf="1"] .af-submit:hover{ filter:brightness(1.06); color:#fff!important; }
.login-err{ color:var(--color-danger); font-size:var(--font-size-sm); margin-top:var(--space-2h); min-height:18px; }
.af-input.invalid input{ border-color:var(--color-danger); box-shadow:0 0 0 4px var(--color-danger-bg); }
.auth-secure{ display:flex; align-items:center; gap:var(--space-1h); justify-content:center; margin-top:var(--space-4); font-size:var(--font-size-xs); color:var(--text-3); }
.auth-secure .af-ic-sm{ color:var(--color-primary); display:inline-flex; }
.auth-alt{ text-align:center; font-size:var(--font-size-sm); color:var(--text-3); margin-top:var(--space-5h); }
.auth-foot{ text-align:center; font-size:var(--font-size-xs); color:var(--text-3); margin-top:var(--space-3h); }
.auth-foot .af-link{ font-weight:400; }

/* 响应式：<960 收成居中单卡 */
@media (max-width:959px){
  .auth-brand{ display:none; }
  .auth-panel{
    background:
      radial-gradient(120% 90% at 20% 0%,color-mix(in srgb,var(--color-primary) 30%,transparent),transparent 60%),
      linear-gradient(160deg,color-mix(in srgb,var(--color-primary) 14%,var(--surface)),var(--surface));
    padding:var(--space-8) var(--space-5);
  }
  .auth-form-wrap{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-3xl); padding:var(--space-8) var(--space-7); box-shadow:var(--shadow-card-hover); }
}
/* 深色：品牌区保持渐变，表单区自动走 surface */
body[data-theme="dark"] .auth-brand{
  background:
    radial-gradient(120% 100% at 15% 0%,color-mix(in srgb,var(--color-primary) 45%,transparent),transparent 55%),
    radial-gradient(120% 100% at 100% 100%,color-mix(in srgb,var(--color-info) 30%,transparent),transparent 55%),
    linear-gradient(150deg,#0B4F4A 0%,var(--color-primary-darker) 55%,#072E2B 100%);
}

/* ============================================================
   阶段C · 财务模块 + 通用页头
   ============================================================ */
.nav-group{ padding:var(--space-4) var(--space-4h) var(--space-1h); font-size:var(--font-size-2xs); font-weight:700; letter-spacing:1.5px; color:var(--text-3); text-transform:uppercase; }
.page-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-4); flex-wrap:wrap; margin-bottom:var(--space-3h); }
.page-head h2{ margin:0; font-size:var(--font-size-2xl); font-weight:800; color:var(--text); }
.page-sub{ margin:var(--space-1) 0 0; font-size:var(--font-size-sm); color:var(--text-3); }
.ph-acts{ display:flex; gap:var(--space-2); flex-wrap:wrap; }
.card-h{ padding:var(--space-3h) var(--space-4) var(--space-1h); font-size:var(--font-size-base); font-weight:700; color:var(--text); }
.fin-wip{ display:flex; align-items:center; gap:var(--space-2); font-size:var(--font-size-xs); color:var(--text-2); background:var(--color-primary-bg); border:1px solid color-mix(in srgb,var(--color-primary) 18%,transparent); border-radius:var(--radius-lg); padding:var(--space-2) var(--space-3); margin-bottom:var(--space-3h); }
.fin-wip svg{ width:16px; height:16px; color:var(--color-primary); flex:0 0 auto; }
.fin-grid{ margin-bottom:var(--space-3h); }
.fin-accts{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:var(--space-3h); }
.fin-acct{ padding:var(--space-4h); transition:transform .18s,box-shadow .18s; }
.fin-acct:hover{ transform:translateY(-2px); box-shadow:var(--shadow-card-hover); }
.fa-top{ display:flex; align-items:center; gap:var(--space-3); }
.fa-ico{ width:44px; height:44px; border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; background:var(--color-primary-bg); color:var(--color-primary); flex:0 0 auto; }
.fa-top b{ font-size:var(--font-size-base); display:block; }
.fa-top small{ font-size:var(--font-size-xs); color:var(--text-3); }
.fa-balance{ margin-top:var(--space-3h); font-size:var(--font-size-3xl); font-weight:800; font-variant-numeric:tabular-nums; color:var(--text); }
.fin-tabs{ padding:var(--space-3) var(--space-3h) 0; gap:var(--space-1); }
.fin-set-cols{ display:grid; grid-template-columns:1.2fr 1fr; gap:var(--space-3h); }
@media(max-width:900px){ .fin-set-cols{ grid-template-columns:1fr } }
.close-steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:var(--space-3h); padding:var(--space-4h); }
.cs{ display:flex; gap:var(--space-3); align-items:flex-start; }
.cs-n{ width:30px; height:30px; border-radius:50%; background:var(--color-primary-bg); color:var(--color-primary); font-weight:800; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.cs b{ display:block; font-size:var(--font-size-base); }
.cs small{ color:var(--text-3); font-size:var(--font-size-xs); }

/* ============================================================
   阶段C · Ctrl/⌘+K 命令面板
   ============================================================ */
.cmd-mask{ position:fixed; inset:0; z-index:2600; display:flex; align-items:flex-start; justify-content:center; padding-top:12vh; background:rgba(15,23,42,.42); -webkit-backdrop-filter:blur(3px) saturate(140%); backdrop-filter:blur(3px) saturate(140%); opacity:0; pointer-events:none; transition:opacity .18s; }
.cmd-mask.show{ opacity:1; pointer-events:auto; }
.cmd-panel{ width:min(620px,92vw); background:#ffffff; border:1px solid var(--border,var(--line)); border-radius:var(--radius-2xl); box-shadow:0 24px 60px rgba(0,0,0,.28),0 4px 14px rgba(0,0,0,.12); overflow:hidden; transform:translateY(-8px); transition:transform .18s; }
.cmd-mask.show .cmd-panel{ transform:none; }
.cmd-box{ display:flex; align-items:center; gap:var(--space-2h); padding:var(--space-3h) var(--space-4); border-bottom:1px solid var(--divider); color:var(--text-3); background:#ffffff; }
.cmd-box svg{ width:19px; height:19px; flex:0 0 auto; }
.cmd-box input{ flex:1; border:none; outline:none; background:#ffffff; font-size:var(--font-size-lg); color:var(--text); }
.cmd-list{ background:#ffffff; }
body[data-theme="dark"] .cmd-list{ background:#1e293b; }
body[data-theme="dark"] .cmd-panel, body[data-theme="dark"] .cmd-box{ background:#1e293b; }
body[data-theme="dark"] .cmd-box input{ background:#1e293b; color:#f1f5f9; }
body[data-perf="1"] .cmd-mask{ background:rgba(15,23,42,.55) !important; -webkit-backdrop-filter:blur(3px) !important; backdrop-filter:blur(3px) !important; }
body[data-perf="1"] .cmd-panel{ background:#ffffff !important; border:1px solid var(--line) !important; box-shadow:0 24px 60px rgba(0,0,0,.3) !important; }
body[data-perf="1"] .cmd-box{ background:#ffffff !important; color:var(--text-3); }
body[data-perf="1"] .cmd-box input{ background:#ffffff !important; }
body[data-perf="1"][data-theme="dark"] .cmd-panel, body[data-perf="1"][data-theme="dark"] .cmd-box{ background:#1e293b !important; }
body[data-perf="1"][data-theme="dark"] .cmd-box input{ background:#1e293b !important; color:#f1f5f9 !important; }
.cmd-list{ max-height:46vh; overflow:auto; padding:var(--space-2); }
.cmd-g{ font-size:var(--font-size-2xs); font-weight:700; letter-spacing:1px; color:var(--text-3); padding:var(--space-2) var(--space-2h) var(--space-1); }
.cmd-i{ display:flex; align-items:center; gap:var(--space-2h); padding:var(--space-2) var(--space-2h); border-radius:var(--radius-lg); cursor:pointer; }
.cmd-i.on{ background:var(--color-primary-bg); }
.cmd-ic{ width:30px; height:30px; border-radius:var(--radius-md); background:var(--hover); color:var(--text-2); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.cmd-i.on .cmd-ic{ background:var(--color-primary); color:#fff; }
.cmd-lb{ flex:1; font-size:var(--font-size-base); color:var(--text); }
.cmd-hint{ font-size:var(--font-size-xs); color:var(--text-3); }
.cmd-empty{ padding:var(--space-8); text-align:center; color:var(--text-3); font-size:var(--font-size-sm); display:flex; flex-direction:column; align-items:center; gap:var(--space-2h); }
.cmd-foot{ padding:var(--space-2) var(--space-4); border-top:1px solid var(--divider); font-size:var(--font-size-xs); color:var(--text-3); }
body[data-perf="1"] .cmd-mask{ background:rgba(15,23,42,.45); }
body[data-perf="1"] .cmd-panel{ background:var(--card); }
.fin-badge{ display:inline-block; padding:var(--space-0h) var(--space-2h); border-radius:var(--radius-full); font-size:var(--font-size-xs); font-weight:600; }
.fin-vsub td{ background:var(--hover) !important; }
.fin-ents{ padding:var(--space-1h) var(--space-1); }
.fin-ents-h{ font-size:var(--font-size-xs); font-weight:700; color:var(--text-2); margin-bottom:var(--space-1h); }
.fin-ent-tb{ width:100%; border-collapse:collapse; }
.fin-ent-tb th,.fin-ent-tb td{ padding:var(--space-1h) var(--space-2h); border-bottom:1px solid var(--divider); font-size:var(--font-size-sm); text-align:left; }
.fin-ent-tb th{ color:var(--text-3); font-weight:600; background:var(--hover); }
.fin-ent-tb .ta-r,.fin-ent-tb td:last-child,.fin-ent-tb th:last-child{ text-align:right; }
.insight-body{ display:flex; gap:var(--space-3h); flex-wrap:wrap; align-items:center; }
.insight-i{ display:flex; align-items:center; gap:var(--space-2h); padding:var(--space-2h) var(--space-4) var(--space-2h) var(--space-3); border:1px solid var(--divider); border-radius:var(--radius-xl); cursor:pointer; min-width:150px; transition:transform .16s,box-shadow .16s; }
.insight-i:hover{ transform:translateY(-2px); box-shadow:var(--shadow-card); }
.insight-ic{ width:38px; height:38px; border-radius:var(--radius-lg); background:var(--hover); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.insight-i b{ font-size:var(--font-size-2xl); font-weight:800; font-variant-numeric:tabular-nums; display:block; line-height:1.1; }
.insight-i small{ font-size:var(--font-size-xs); color:var(--text-3); }
.prod-form-wrap{ display:flex; flex-direction:column; gap:var(--space-3h); }
.prod-grp{ border:1px solid var(--divider); border-radius:var(--radius-xl); overflow:hidden; }
.prod-grp-t{ padding:var(--space-2h) var(--space-4); font-size:var(--font-size-sm); font-weight:700; color:var(--text); background:var(--hover); border-bottom:1px solid var(--divider); }
.prod-grp-b{ padding:var(--space-3h) var(--space-4); display:flex; flex-direction:column; gap:var(--space-3); }
.pc-colopt{ display:flex; align-items:center; gap:var(--space-2); padding:var(--space-1h) var(--space-1); font-size:var(--font-size-base); cursor:pointer; }
.pc-colopt input{ width:16px; height:16px; accent-color:var(--color-primary); }
.pc-colgrp{ margin-bottom:var(--space-3); }
.pc-colgrp-t{ font-size:var(--font-size-xs); font-weight:700; color:var(--text-3); letter-spacing:.04em; margin:var(--space-1) 0 var(--space-1h); }
.pc-colgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-0h) var(--space-3h); }
.num-r,th.num-r{ text-align:right; font-variant-numeric:tabular-nums; }
.fv-head{ display:flex; gap:var(--space-3); align-items:flex-end; margin-bottom:var(--space-3); }
.fv-tbl{ width:100%; border-collapse:collapse; margin-bottom:var(--space-2h); }
.fv-tbl th{ padding:var(--space-2) var(--space-2h); background:var(--hover); font-size:var(--font-size-xs); color:var(--text-3); text-align:left; border-bottom:1px solid var(--divider); }
.fv-tbl td{ padding:var(--space-1h) var(--space-2); border-bottom:1px solid var(--divider); }
.fv-tbl select,.fv-tbl input{ width:100%; height:34px; border:1px solid var(--line); border-radius:var(--radius-md); padding:0 var(--space-2h); background:var(--input-bg); color:var(--text); }
.fv-tbl input.num-r{ text-align:right; font-variant-numeric:tabular-nums; }
.fv-foot{ display:flex; align-items:center; gap:var(--space-3h); margin-top:var(--space-2h); }
.fv-bal{ flex:1; font-size:var(--font-size-sm); color:var(--red,#FF3B30); font-weight:600; }
.fv-bal.ok{ color:var(--color-success); }
.fv-foot b{ font-variant-numeric:tabular-nums; }
/* v9 浮层实体化兜底：不允许后页文字透出 */
body[data-bf="0"] .pop-panel, body[data-bf="0"] .sheet-ctx, body[data-bf="0"] .gl-box, body[data-bf="0"] .ic-panel, body[data-bf="0"] .date-pop{
  background:#ffffff !important; border:1px solid var(--line) !important; box-shadow:0 16px 40px rgba(15,23,42,.18) !important; }
body[data-theme="dark"][data-bf="0"] .pop-panel, body[data-theme="dark"][data-bf="0"] .sheet-ctx, body[data-theme="dark"][data-bf="0"] .gl-box, body[data-theme="dark"][data-bf="0"] .ic-panel, body[data-theme="dark"][data-bf="0"] .date-pop{
  background:#1e293b !important; border-color:var(--line) !important; }
/* v9.5 到货照片固定缩略图，不撑行/撑列 */
.arr-prod-thumb{ width:48px; height:48px; object-fit:cover; border-radius:var(--radius-lg); display:block; }
.arr-prod-thumb-empty{ width:48px; height:48px; border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; background:var(--hover); color:var(--text-3); }
.ar-prod-img{ width:48px; height:48px; object-fit:cover; border-radius:var(--radius-lg); display:block; }
.ar-prod-ph{ width:48px; height:48px; border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; background:var(--hover); color:var(--text-3); }
.mini-photos{ display:flex; flex-wrap:wrap; gap:var(--space-1h); max-width:220px; }
.mini-photos .up-thumb, .arr-mini-thumb{ width:44px; height:44px; }
.mini-photos img, .arr-mini-thumb img{ width:44px; height:44px; object-fit:cover; border-radius:var(--radius-md); }
.arr-row td{ vertical-align:middle; }
/* 浮层统一圆角阴影 */
.user-menu,.pop-panel,.gl-box,.ic-panel,.date-pop,.sheet-ctx{ border-radius:var(--radius-xl) !important; box-shadow:0 16px 40px rgba(15,23,42,.18) !important; }



