/* ========================================
   v951：手机端微信式骨架 + 灰阶单色
   - 三端（管理端 / 设计师端 / 施工端）共用 .wx- 骨架
   - 颜色只允许：灰阶 + 主色 #0f766e + 警示红 #c94a3f
   - 本文件只作用于手机端容器，PC 端 class 与样式一律不动
   ======================================== */

/* ===== 1. 固定标题栏（44px） ===== */
#designer-app .wx-nav,
#worker-app .wx-nav {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(44px + env(safe-area-inset-top));
  padding: env(safe-area-inset-top) 72px 0;
  margin: 0;
  background: #f5f9f8;
  border: 0;
  border-bottom: 1px solid #e0e0e0;
  color: #191919;
  box-sizing: border-box;
  flex: 0 0 auto;
}
#designer-app .wx-nav .dm-head-title,
#worker-app .wx-nav .wm-head-title,
#designer-app .wx-nav-title,
#worker-app .wx-nav-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.2;
  color: #191919;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#designer-app .wx-nav .dm-head-sub,
#worker-app .wx-nav .wm-head-sub,
#designer-app .wx-nav .wm-head-date { display: none; }

/* 返回键：贴左，正方形，无底色 */
#designer-app .wx-nav .dm-back,
#worker-app .wx-nav .wm-back-btn {
  position: absolute;
  left: 6px;
  top: calc(env(safe-area-inset-top) + 4px);
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #191919;
  font-size: 24px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 右侧：头像 + 姓名 + 切换胶囊（v950 结构，灰阶化） */
#designer-app .wx-nav .mv-user,
#worker-app .wx-nav .mv-user {
  position: absolute;
  right: 10px;
  top: calc(env(safe-area-inset-top) + 10px);
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: 46%;
  z-index: 2;
}
#designer-app .wx-nav .dm-head-row,
#worker-app .wx-nav .dm-head-row {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 0;
}

/* 旧头部（非导航页）统一压成灰白块，不再有彩色渐变 */
#designer-app .dm-head {
  position: relative;
  padding: 10px 14px;
  background: #f5f9f8;
  color: #152724;
  border-bottom: 1px solid #eff4f3;
  border-radius: 0;
}
#designer-app .dm-head.light { background: #f5f9f8; color: #152724; }
#designer-app .dm-overlap { margin-top: 0; padding: 0 9px; }
#worker-app .wm-head {
  padding: 14px;
  background: #f5f9f8;
  color: #152724;
  border-bottom: 1px solid #eff4f3;
  border-radius: 0;
}
#worker-app .wm-head-blue,
#worker-app .wm-head-orange,
#worker-app .wm-head-pink,
#worker-app .wm-head-sky { background: #f5f9f8; }
#worker-app .wm-overlap { margin-top: 0; padding: 0 9px; }

/* ===== 2. 无分隔线高行（60px） ===== */
.wx-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 60px;
  min-height: 60px;
  padding: 0 14px;
  background: #fff;
  border: 0;
  border-bottom: 1px solid #f4f9f7;
  box-sizing: border-box;
  text-align: left;
}
.wx-row:last-child { border-bottom: 1px solid #f4f9f7; }
.wx-row:active { background: #f6f8f7; }
.wx-row .dm-card,
.wx-row .dm-card-title { display: none; }

/* 左侧 40×40 方块头像（4px 圆角） */
.wx-avatar {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 4px;
  background: #0f766e;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.wx-avatar.gray { background: #8a9a97; }
.wx-avatar svg { width: 18px; height: 18px; stroke: #fff; fill: none; stroke-width: 2; }

/* 中间：名称 13/600，次要 10.5 */
.wx-main { flex: 1; min-width: 0; }
.wx-name {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  color: #152724;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wx-sub {
  margin-top: 3px;
  font-size: 10.5px;
  line-height: 1.35;
  color: #8a9a97;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 右侧：时间 10px + 红点数字 */
.wx-right {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
  margin-left: 8px;
}
.wx-time { font-size: 10px; line-height: 1.2; color: #8a9a97; }
.wx-badge {
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  background: #c94a3f;
  color: #fff;
  font-size: 10px;
  line-height: 16px;
  font-weight: 600;
  text-align: center;
  box-sizing: border-box;
}
.wx-badge.zero { display: none; }

/* 分组标题：10px 浅灰 */
.wx-group {
  padding: 10px 14px 6px;
  background: #eff3f2;
  font-size: 10px;
  line-height: 1.4;
  color: #a3b1ad;
}

/* 列表容器：无圆角、无阴影、无底色 */
.wx-list {
  background: #fff;
  border-radius: 0;
  box-shadow: none;
  border: 0;
  border-top: 1px solid #eff4f3;
}

/* ===== 3. 底部 tab（49px） ===== */
.wx-tabbar {
  display: flex;
  flex: 0 0 auto;
  align-items: stretch;
  height: calc(49px + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  background: #fff;
  border-top: 1px solid #eff4f3;
  box-sizing: border-box;
}
.wx-tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #a3b1ad;
  font-size: 8px;
  line-height: 1.2;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.wx-tab.active { color: #152724; font-weight: 600; }
.wx-tab-ico {
  width: 11px;
  height: 11px;
  border-radius: 3px;
  background: currentColor;
  opacity: 0.45;
  display: block;
}
.wx-tab.active .wx-tab-ico { opacity: 1; }
.wx-tab-ico svg { display: none; }

/* ===== 4. 颜色收敛（设计师端 / 施工端） ===== */
#designer-app, #worker-app { background: #eff3f2; color: #152724; }

/* 卡片：白底 12px 圆角浮起，靠明度差与灰底分开 */
#designer-app .dm-card,
#worker-app .wm-card {
  margin: 0 0 8px;
  padding: 11px 13px;
  background: #fff;
  border: 0;
  border-radius: 12px;
  box-shadow: none;
  overflow: hidden;
}
#designer-app .dm-card-title,
#worker-app .wm-card-title { font-size: 13px; font-weight: 600; color: #3d504c; }
#designer-app .dm-card-n,
#worker-app .wm-card-n {
  font-size: 11px;
  font-weight: 600;
  color: #0f766e;
  background: #eef7f5;
  border-radius: 8px;
  padding: 1px 6px;
  margin-left: 6px;
}
#designer-app .dm-card-title .dm-muted,
#worker-app .wm-card-title .wm-more { color: #8a9a97; font-weight: 400; }

/* 状态标签：一律灰底灰字 */
#designer-app .dm-tag,
#worker-app .wm-tag,
#designer-app .dm-tag.gray,
#designer-app .dm-tag.amber,
#designer-app .dm-tag.red,
#designer-app .dm-tag.green,
#designer-app .dm-tag.blue,
#worker-app .wm-tag.green,
#worker-app .wm-tag.gray,
#worker-app .wm-tag.red,
#worker-app .wm-tag.blue {
  background: #f3f6f5;
  color: #3d5450;
  border: 0;
  border-radius: 0;
  font-weight: 500;
}

/* 彩色数字/文字统一改灰或主色 */
#designer-app .dm-stat-num,
#designer-app .dm-stat-num.warn,
#worker-app .wm-stat-value { color: #152724; }
#designer-app .dm-more,
#worker-app .wm-more { color: #0f766e; }
#designer-app .dm-alert { color: #3d5450; }
#designer-app .dm-alert svg { stroke: #8a9a97; }

/* 提示条：去掉橙黄 */
#designer-app .dm-banner.amber,
#designer-app .dm-banner.gray,
#worker-app .wm-banner { background: #f3f6f5; color: #3d5450; border-color: #eff4f3; }

/* 按钮：主按钮唯一主色，其余灰阶 */
#designer-app .dm-btn,
#worker-app .wm-submit-btn {
  border-radius: 6px;
  border: 1px solid #e0e0e0;
  background: #fff;
  color: #3d5450;
  box-shadow: none;
}
#designer-app .dm-btn.primary,
#worker-app .wm-submit-btn.green,
#worker-app .wm-submit-btn { background: #0f766e; border-color: #0f766e; color: #fff; }
#designer-app .dm-btn.ghost { background: #fff; border-color: #e0e0e0; color: #3d5450; }
#designer-app .dm-btn.danger { background: #fff; border-color: #e6c9c5; color: #c94a3f; }

/* 胶囊/分段：去掉青绿大面积 */
#designer-app .dm-chip { background: #fff; border-color: #e0e0e0; color: #3d5450; border-radius: 6px; }
#designer-app .dm-chip.on { background: #f6fbf9; border-color: #0f766e; color: #0f766e; }
#designer-app .dm-tab.active,
#worker-app .wm-tab.active { color: #152724; }

/* 统计卡：白底无圆角，数字深灰 */
#designer-app .dm-stat { background: #fff; border: 0; border-bottom: 1px solid #eff4f3; border-radius: 0; }
#designer-app .dm-stat-label,
#worker-app .wm-stat-label { color: #8a9a97; }
#designer-app .dm-muted,
#worker-app .wm-row-sub,
#worker-app .wm-head-date,
#worker-app .wm-head-sub,
#worker-app .wm-profile-sub { color: #8a9a97; }
#designer-app .dm-row-sub { color: #8a9a97; }
#designer-app .dm-row-title,
#worker-app .wm-row-title { font-size: 13px; font-weight: 600; color: #152724; }
#worker-app .wm-row { height: 60px; min-height: 60px; padding: 0 14px; border-bottom: 1px solid #f4f9f7; border-radius: 0; background: transparent; }
#worker-app .wm-row-title { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
#worker-app .wm-row-sub { font-size: 10.5px; margin-top: 3px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
#worker-app .wm-row-avatar { width: 40px; height: 40px; border-radius: 4px; background: #0f766e; color: #fff; font-size: 16px; font-weight: 600; }
#worker-app .wm-row-avatar svg { width: 18px; height: 18px; }
#worker-app .wm-arrow { color: #a3b1ad; }

/* 设计师端旧行：与 wx-row 对齐 */
#designer-app .dm-row { height: 60px; min-height: 60px; padding: 0 14px; border-bottom: 1px solid #f4f9f7; }
#designer-app .dm-row:last-child { border-bottom: 1px solid #f4f9f7; }

/* 滚动区顶部不再被大标题挤压 */
#designer-app .dm-body,
#worker-app .wm-body { background: #eff3f2; }

/* ===== v952：我的活四类事件 / 三组 / 两行 60px 行 ===== */
#designer-app .wx-home { padding: 0; background: #eff3f2; }
#designer-app .wx-stats {
  display: flex;
  align-items: stretch;
  height: 46px;
  background: #fff;
  border-bottom: 1px solid #eff4f3;
}
#designer-app .wx-stat {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
}
#designer-app .wx-stat-num { font-size: 13px; font-weight: 600; line-height: 1; color: #3d5450; }
#designer-app .wx-stat-num.main { color: #0f766e; }
#designer-app .wx-stat-label { font-size: 10px; line-height: 1; color: #a3b1ad; }

#designer-app #dm-task-rows { background: #fff; }
#designer-app .wx-group {
  padding: 8px 14px 5px;
  background: #eff3f2;
  border-top: 1px solid #eff4f3;
  font-size: 10px;
  line-height: 1.4;
  color: #a3b1ad;
}
#designer-app #dm-task-rows > .wx-group:first-child { border-top: 0; }

/* 行：左侧时间 33px + 两行文字 + 右侧灰标签 */
#designer-app .wx-task { gap: 0; padding: 0 12px; }
#designer-app .wx-time-l {
  flex: 0 0 33px;
  width: 33px;
  font-size: 10px;
  line-height: 1.2;
  color: #8a9a97;
  white-space: nowrap;
}
#designer-app .wx-task .wx-main { padding-left: 10px; min-width: 0; }
#designer-app .wx-task .wx-name {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  color: #152724;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
}
#designer-app .wx-task .wx-name.fade {
  -webkit-mask-image: linear-gradient(90deg, #000 76%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 76%, transparent 100%);
}
#designer-app .wx-task .wx-sub {
  margin-top: 3px;
  font-size: 10.5px;
  line-height: 1.35;
  color: #8a9a97;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#designer-app .wx-tag {
  flex: 0 0 auto;
  margin-left: 8px;
  height: 18px;
  padding: 0 6px;
  line-height: 18px;
  font-size: 10px;
  color: #3d5450;
  background: #f3f6f5;
  border-radius: 0;
}

/* 空态：一条细线，不留大白块 */
#designer-app .wx-empty-line {
  padding: 9px 14px;
  background: #fff;
  border-bottom: 1px solid #f4f9f7;
  font-size: 10.5px;
  line-height: 1.4;
  color: #a3b1ad;
}

/* 今天已打卡：置顶细行 */
#designer-app .wx-checkin {
  display: flex;
  align-items: center;
  height: 34px;
  padding: 0 12px;
  background: #eff3f2;
  border-bottom: 1px solid #f4f9f7;
}
#designer-app .wx-checkin .wx-time-l { color: #8a9a97; }
#designer-app .wx-checkin-t { padding-left: 10px; font-size: 10.5px; color: #8a9a97; }

/* 左滑四动作：与行等高，灰阶为主，仅「标记完成」用主色 */
#designer-app .dm-swipe { margin: 0; border-radius: 0; touch-action: pan-y; }
#designer-app .dm-swipe-inner { background: #fff; }
#designer-app .dm-swipe-acts { width: 240px; }
#designer-app .dm-swipe-btn {
  width: 60px;
  height: 60px;
  padding: 0;
  border: 0;
  border-left: 1px solid #fff;
  background: #f3f6f5;
  color: #3d5450;
  font-size: 11px;
  font-weight: 500;
}
#designer-app .dm-swipe-btn:nth-child(2) { background: #eff4f3; }
#designer-app .dm-swipe-btn:nth-child(3) { background: #e9efed; }
#designer-app .dm-swipe-btn.ok { background: #0f766e; color: #fff; }

/* v954：11 步进度条（纯展示，不响应点击） */
#designer-app .dm-pbar { display: flex; align-items: flex-start; margin-top: 10px; pointer-events: none; }
#designer-app .dm-pbar-step { flex: 1 1 0; min-width: 0; position: relative; text-align: center; }
#designer-app .dm-pbar-step::before,
#designer-app .dm-pbar-step::after { content: ''; position: absolute; top: 5px; height: 1px; background: #dfe8e7; }
#designer-app .dm-pbar-step::before { left: 0; right: 50%; }
#designer-app .dm-pbar-step::after { left: 50%; right: 0; }
#designer-app .dm-pbar-step:first-child::before,
#designer-app .dm-pbar-step:last-child::after { display: none; }
#designer-app .dm-pbar-step.done::before,
#designer-app .dm-pbar-step.done::after { background: #0f766e; }
#designer-app .dm-pbar-dot { position: relative; z-index: 1; width: 11px; height: 11px; margin: 0 auto; border-radius: 50%; background: #eff4f3; border: 1px solid #e2ebe9; box-sizing: border-box; }
#designer-app .dm-pbar-step.done .dm-pbar-dot { background: #0f766e; border-color: #0f766e; }
#designer-app .dm-pbar-step.cur .dm-pbar-dot { background: #fff; border: 2px solid #0f766e; }
#designer-app .dm-pbar-label { margin-top: 5px; font-size: 8px; line-height: 1.15; color: #8a9a97; white-space: nowrap; }
#designer-app .dm-pbar-step.done .dm-pbar-label,
#designer-app .dm-pbar-step.cur .dm-pbar-label { color: #3d5450; }

/* v954：验收页 */
#designer-app .dm-acc-state { font-size: 11px; color: #8a9a97; }
#designer-app .dm-acc-item { display: flex; align-items: center; gap: 9px; padding: 10px 0; border-bottom: 1px solid #eef2f1; font-size: 13px; color: #263a37; }
#designer-app .dm-acc-item:last-child { border-bottom: 0; }
#designer-app .dm-acc-item input { width: 17px; height: 17px; accent-color: #0f766e; flex: none; }
#designer-app .dm-acc-sign { display: block; width: 100%; height: 110px; margin-top: 4px; border: 1px dashed #cfdad8; border-radius: 6px; background: #eff3f2; touch-action: none; }

/* v954：老板收款三段（只读） */
#designer-app .dm-pay3 { display: flex; gap: 8px; }
#designer-app .dm-pay3-cell { flex: 1 1 0; min-width: 0; padding: 10px 8px; border-radius: 6px; background: #f6f9f8; cursor: pointer; }
#designer-app .dm-pay3-name { font-size: 11px; color: #5c6e6b; }
#designer-app .dm-pay3-val { margin-top: 4px; font-size: 16px; font-weight: 600; color: #263a37; }
#designer-app .dm-pay3-sub { margin-top: 2px; font-size: 10px; color: #8a9a97; white-space: nowrap; }
#designer-app .dm-pay-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #eef2f1; font-size: 13px; color: #263a37; }
#designer-app .dm-pay-row:last-child { border-bottom: 0; }

/* v953：客户列表「下一步」短语（10.5px 灰，不用彩色） */
#designer-app .wx-next {
  font-size: 10.5px;
  color: #8a9a97;
  line-height: 1.2;
  white-space: nowrap;
  text-align: right;
}

/* v953：约量尺保存后的轻提示（带「去看看」动作） */
#designer-app .dm-act-toast {
  position: fixed;
  left: 50%;
  bottom: calc(70px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  z-index: 950;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 88%;
  padding: 10px 14px;
  background: #152724;
  color: #fff;
  font-size: 11px;
  border-radius: 6px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}
#designer-app .dm-act-toast button {
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  text-decoration: underline;
  white-space: nowrap;
}


/* ===== 5. 管理端手机壳（仅 ≤768px，PC 不动） ===== */
@media (max-width: 768px) {
  #main-app .page-header.wx-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: center;
    height: calc(44px + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 76px 0;
    margin: 0;
    background: #ededed;
    border-bottom: 1px solid #e0e0e0;
    box-sizing: border-box;
  }
  #main-app .page-header.wx-nav .ph-nav,
  #main-app .page-header.wx-nav .page-subtitle,
  #main-app .page-header.wx-nav .gs-wrap { display: none !important; }
  #main-app .page-header.wx-nav .ph-main { justify-content: center; width: 100%; min-width: 0; }
  #main-app .page-header.wx-nav .ph-titles { text-align: center; min-width: 0; }
  #main-app .page-header.wx-nav .page-title {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.2;
    color: #191919;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #main-app .page-header.wx-nav .ph-actions {
    position: absolute;
    right: 8px;
    top: calc(env(safe-area-inset-top) + 6px);
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
  }
  #main-app .page-header.wx-nav .mv-user .mv-name { display: none; }
  #main-app .content-area { padding-top: calc(44px + env(safe-area-inset-top)); }
  #main-app .bottom-nav.wx-tabbar {
    height: calc(49px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    background: #fff;
    border-top: 1px solid #eff4f3;
  }
  #main-app .bottom-nav.wx-tabbar .nav-item {
    font-size: 8px;
    gap: 2px;
    color: #a3b1ad;
    padding: 0;
  }
  #main-app .bottom-nav.wx-tabbar .nav-item.active { color: #152724; font-weight: 600; }
  #main-app .bottom-nav.wx-tabbar .icon-svg { width: 15px; height: 15px; border-radius: 3px; }

  /* 管理端列表：无卡无底色，只留极淡分隔线 */
  #main-app .data-table.mobile-list tbody tr {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #f4f9f7;
    border-radius: 0;
    padding: 9px 14px;
    margin: 0;
  }
  #main-app .data-table.mobile-list tbody tr:active { background: #f6f8f7; }
  #main-app .data-table.mobile-list tbody tr.mob-expanded { background: #eff3f2; }
  #main-app .data-table.mobile-list tbody td:first-child {
    font-size: 13px;
    font-weight: 600;
    color: #152724;
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 3px !important;
  }
  #main-app .data-table.mobile-list tbody td { font-size: 10.5px; color: #8a9a97; }
  #main-app .data-table.mobile-list tbody td[data-label]::before { font-size: 10px; color: #a3b1ad; }
  #main-app .data-table.mobile-list tbody td:last-child { border-top: 0; }
  #main-app .data-table.mobile-list tbody td[colspan] { font-size: 12px; color: #a3b1ad; }
  #main-app .data-table.mob-cards tbody tr {
    background: transparent;
    border-radius: 0;
    border-bottom: 1px solid #f4f9f7;
    padding: 9px 14px;
    margin: 0;
  }
  /* 管理端页内卡片：去圆角去阴影 */
  #main-app .card { border-radius: 0; box-shadow: none; }
  /* 状态徽标统一灰底灰字 */
  #main-app .badge,
  #main-app .status-badge,
  #main-app .tag {
    background: #f3f6f5 !important;
    color: #3d5450 !important;
    border-color: #eff4f3 !important;
    border-radius: 0 !important;
  }
  #main-app .badge::before,
  #main-app .status-badge::before { background: #8a9a97 !important; }
}

/* ===== 6. 导航页强制覆盖（旧 .dm-head / .wm-head 规则在后，这里提高优先级） ===== */
#designer-app .dm-head.wx-nav,
#worker-app .wm-head.wx-nav {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(44px + env(safe-area-inset-top)) !important;
  padding: env(safe-area-inset-top) 72px 0 !important;
  margin: 0;
  background: #f5f9f8 !important;
  border: 0 !important;
  border-bottom: 1px solid #e0e0e0 !important;
  border-radius: 0;
  color: #191919;
  box-sizing: border-box;
  flex: 0 0 auto;
}
#designer-app .wx-nav .mv-mine-switch,
#worker-app .wx-nav .mv-mine-switch {
  position: absolute;
  right: 10px;
  top: calc(env(safe-area-inset-top) + 14px);
  font-size: 10px;
  color: #0f766e;
  background: transparent;
  border: 0;
  padding: 0;
}
/* 施工端首页日期/打卡区（导航下方） */
#worker-app .wm-home-top {
  padding: 14px;
  background: #eff3f2;
  border-bottom: 1px solid #eff4f3;
}
#worker-app .wm-home-top .wm-head-date-big { font-size: 22px; font-weight: 600; color: #152724; }
#worker-app .wm-home-top .wm-head-week { font-size: 13px; font-weight: 400; color: #8a9a97; margin-left: 8px; }
#worker-app .wm-home-top .wm-sign-hint { color: #8a9a97; font-size: 10.5px; }
#worker-app .wm-home-top .wm-sign-btn,
#worker-app .wm-home-top .wm-sign-btn * { color: #fff; }
#worker-app .wm-home-top .wm-quick-btn { background: #f3f6f5; color: #3d5450; border-radius: 0; }

/* ===== 7. 旧彩色变量与硬编码色收敛 ===== */
@media (max-width: 768px) {
  #main-app {
    --primary: #0f766e;
    --primary-light: #f3f6f5;
    --primary-dark: #0f766e;
    --primary-glow: rgba(15, 118, 110, 0.18);
    --success: #3d5450;
    --success-light: #f3f6f5;
    --warning: #3d5450;
    --warning-light: #f3f6f5;
    --danger: #c94a3f;
    --danger-light: #f3f6f5;
    --text-primary: #152724;
    --text-secondary: #3d5450;
    --text-tertiary: #8a9a97;
  }
  #main-app .btn-primary,
  #main-app .btn-primary:hover,
  #main-app .btn-danger { background: #0f766e; border-color: #0f766e; color: #fff; }
  #main-app .text-primary,
  #main-app .link { color: #0f766e; }
  /* 管理端列表折叠态：60px 只显示名称 + 客户，点行展开详情 */
  #main-app .data-table.mobile-list tbody tr[data-mob-row="1"]:not(.mob-expanded) {
    display: flex;
    align-items: center;
    height: 60px;
    min-height: 60px;
    padding: 0 14px;
    overflow: hidden;
  }
  #main-app .data-table.mobile-list tbody tr[data-mob-row="1"]:not(.mob-expanded) td { display: none; }
  #main-app .data-table.mobile-list tbody tr[data-mob-row="1"]:not(.mob-expanded) td[data-wx-main] {
    display: block;
    flex: 1;
    min-width: 0;
    margin: 0;
    padding: 0 !important;
    border: 0 !important;
    font-size: 13px;
    font-weight: 600;
    color: #152724 !important;
    text-align: left !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #main-app .data-table.mobile-list tbody tr[data-mob-row="1"]:not(.mob-expanded) td[data-wx-main]::before { display: none; }
  #main-app .data-table.mobile-list tbody tr[data-mob-row="1"]:not(.mob-expanded) td[data-wx-sub] {
    display: block;
    flex: 0 1 auto;
    max-width: 42%;
    margin: 0;
    padding: 0 !important;
    border: 0 !important;
    font-size: 10.5px;
    color: #8a9a97 !important;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #main-app .data-table.mobile-list tbody tr[data-mob-row="1"]:not(.mob-expanded) td[data-wx-sub]::before { display: none; }
  /* 管理端首页/列表：灰阶收敛（文字与分隔线），再单独恢复标题层级与主按钮 */
  #main-app * { color: #3d5450 !important; border-color: #eff4f3 !important; }
  #main-app .page-title,
  #main-app .greet-title,
  #main-app .card-header,
  #main-app .stat-hero-value,
  #main-app .stat-sub-value,
  #main-app .flow-kpi b,
  #main-app .todo-item-title,
  #main-app .quick-action-btn,
  #main-app .footer-stat-value { color: #152724 !important; }
  #main-app .bottom-nav.wx-tabbar .nav-item { color: #a3b1ad !important; }
  #main-app .bottom-nav.wx-tabbar .nav-item.active { color: #152724 !important; }
  #main-app .btn-primary,
  #main-app .ptf-preset.btn-primary { background: #0f766e !important; border-color: #0f766e !important; color: #fff !important; }
  #main-app .stat-hero {
    background: #eff3f2 !important;
    background-image: none !important;
    border: 1px solid #eff4f3 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  #main-app .stat-sub,
  #main-app .todo-item,
  #main-app .quick-action-item,
  #main-app .flow-row,
  #main-app .flow-kpi {
    background: #fff !important;
    background-image: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
    border-bottom: 1px solid #f4f9f7 !important;
  }
  #main-app .flow-progress { background: #eff4f3 !important; }
  #main-app .flow-progress .progress-bar-fill { background: #152724 !important; }
  #main-app .badge,
  #main-app .status-badge,
  #main-app .todo-item-icon { background: #f3f6f5 !important; color: #3d5450 !important; }
  #main-app .stat-hero-label,
  #main-app .stat-hero-unit,
  #main-app .stat-sub-label,
  #main-app .greet-sub,
  #main-app .ptf-current,
  #main-app .ptf-current b,
  #main-app .todo-item-desc,
  #main-app .footer-stat-label { color: #8a9a97 !important; }
  /* 红点数字保留警示红 */
  #main-app .todo-count,
  #main-app .todo-item-count,
  #main-app .badge.red { background: #c94a3f !important; color: #fff !important; }
  #main-app div[style*="220, 38, 38"],
  #main-app div[style*="220,38,38"] { background: #f3f6f5 !important; }
  #main-app .page-header.wx-nav { border-bottom: 1px solid #e0e0e0 !important; }
  #main-app .greet-section {
    padding: 14px !important;
    background: #eff3f2 !important;
    background-image: none !important;
    border: 0 !important;
    border-bottom: 1px solid #eff4f3 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}

/* 施工端硬编码彩色 → 灰阶 / 主色 */
#worker-app .wm-card-title .wm-more,
#worker-app .wm-quick-btn span,
#worker-app .wm-tab.active,
#worker-app .wm-seg-item.on,
#worker-app .wm-chat-send,
#worker-app .wm-proj-opt-check { color: #0f766e !important; }
#worker-app .wm-stat-value.green,
#worker-app .wm-stat-value.blue,
#worker-app .wm-row-amount.in { color: #152724 !important; }
#worker-app .wm-row-sub,
#worker-app .wm-empty,
#worker-app .wm-head-date,
#worker-app .wm-head-sub,
#worker-app .wm-stat-value small,
#worker-app .wm-field-label,
#worker-app .wm-seg-item,
#worker-app .wm-cal-wd,
#worker-app .wm-more { color: #8a9a97 !important; }
#worker-app .wm-stat-ico,
#worker-app .wm-tab-ico,
#worker-app .wm-cal-cell.today,
#worker-app .wm-input:focus { border-color: #0f766e !important; color: #0f766e !important; }
#worker-app .wm-day-item.today,
#worker-app .wm-sign-btn,
#worker-app .wm-submit-btn,
#worker-app .wm-chat-send { background: #0f766e !important; border-color: #0f766e !important; color: #fff !important; }
#worker-app .wm-sign-btn.green,
#worker-app .wm-sign-btn.blue,
#worker-app .wm-sign-btn.red,
#worker-app .wm-sign-btn.disabled { background: #8a9a97 !important; border-color: #8a9a97 !important; }
#worker-app .wm-stat-card,
#worker-app .wm-status-grid,
#worker-app .wm-day-item,
#worker-app .wm-seg,
#worker-app .wm-chip-pick.on,
#worker-app .wm-proj-opt.on { background: #f3f6f5 !important; border-color: #eff4f3 !important; }
#worker-app .wm-stat-ico,
#worker-app .wm-stat-card .wm-stat-ico { background: #f3f6f5 !important; color: #3d5450 !important; }
#worker-app .wm-chip-pick.on,
#worker-app .wm-proj-opt.on { color: #3d5450 !important; }
#worker-app .wm-dot.green,
#worker-app .wm-dot.amber,
#worker-app .wm-dot.red { background: #8a9a97 !important; }
#worker-app .wm-tag.green,
#worker-app .wm-tag.red,
#worker-app .wm-tag.blue,
#worker-app .wm-tag.gray { background: #f3f6f5 !important; color: #3d5450 !important; border-color: #eff4f3 !important; }
#worker-app .wm-head-blue,
#worker-app .wm-head-orange,
#worker-app .wm-head-pink,
#worker-app .wm-head-sky { background: #f5f9f8 !important; }
#worker-app .wm-sign-btn,
#worker-app .wm-submit-btn,
#worker-app .wm-head-blue,
#worker-app .wm-head-orange,
#worker-app .wm-head-pink { background-image: none !important; }

/* 设计师端硬编码彩色 → 灰阶 */
#designer-app .dm-card[style*="rgba(0,181,165"] { border-color: #eff4f3 !important; }
#designer-app .dm-muted[style*="#b45309"] { color: #3d5450 !important; }
#designer-app .dm-btn.primary,
#designer-app .dm-tab.active { color: #fff; background: #0f766e; border-color: #0f766e; }
#designer-app .dm-tag,
#designer-app .dm-tag.green,
#designer-app .dm-tag.amber,
#designer-app .dm-tag.red,
#designer-app .dm-tag.blue { background: #f3f6f5 !important; color: #3d5450 !important; }
#designer-app .dm-stat-num,
#designer-app .dm-stat-num.warn { color: #152724 !important; }
#designer-app .dm-banner,
#designer-app .dm-banner.amber { background: #f3f6f5 !important; color: #3d5450 !important; border-color: #eff4f3 !important; }

/* ===== v955：全屏应用（PWA）===== */
/* 动态视口：地址栏收起/展开时不跳动；老浏览器用 100vh 兜底 */
#app, #designer-app, #worker-app { height: 100vh; height: 100dvh; }
/* 顶部安全区：只补没有 .wx-nav 的次级头部，避免与 .wx-nav 重复叠加 */
#designer-app .dm-head:not(.wx-nav) { padding: calc(10px + env(safe-area-inset-top)) 14px 10px; }
#worker-app .wm-head:not(.wx-nav) { padding: calc(14px + env(safe-area-inset-top)) 14px 14px; }
/* 组合头部：恢复 .wx-nav 的安全区上内边距（原先被 .dm-head/.wm-head 的 padding 覆盖） */
#designer-app .dm-head.wx-nav,
#worker-app .wm-head.wx-nav { padding: env(safe-area-inset-top) 72px 0; }
/* 首次访问「添加到桌面」提示条：浅灰、10.5px、不遮挡底部 tab */
#td-pwa-hint {
  position: fixed;
  left: 8px;
  right: 8px;
  bottom: calc(56px + env(safe-area-inset-bottom) + 8px);
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 40px;
  padding: 0 10px;
  background: #eff4f3;
  color: #4b5f5b;
  font-size: 10.5px;
  line-height: 1;
  border: 1px solid #e2eae7;
}
#td-pwa-hint button {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #8a9a97;
  font-size: 16px;
  line-height: 1;
}

/* ===== v956：PC 宽屏隐藏管理端底部 tab =====
   .wx-tabbar 的 display:flex 未包 @media，会覆盖 .bottom-nav 的 display:none，
   导致 PC 下该 nav 成为 .app-shell 的横向第三列，把内容区挤到右侧。
   只隐藏管理端这一处，手机端与设计师端/施工端 tab 不受影响。 */
@media (min-width: 769px) {
  #main-app .bottom-nav,
  #main-app .bottom-nav.wx-tabbar { display: none !important; }
}

/* ===== v961：设计师端首页重构（日期行 + 进度轴 + 卡片） ===== */
/* 头部：标题左对齐，日期行（公历 / 竖线 / 农历）显示在标题下方 */
#designer-app .dm-head.wx-nav.dm-head-home {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  height: calc(66px + env(safe-area-inset-top)) !important;
  padding: env(safe-area-inset-top) 96px 0 14px !important;
}
#designer-app .dm-head-home .dm-head-row { width: 100%; justify-content: flex-start; }
#designer-app .dm-head-home .dm-head-title {
  justify-content: flex-start;
  width: auto;
  text-align: left;
}
#designer-app .dm-head-home .dm-head-sub.dm-hd-sub {
  display: flex !important;
  align-items: center;
  margin-top: 2px;
  padding: 0;
  font-size: 13px;
  line-height: 1.2;
  opacity: 1;
  white-space: nowrap;
}
#designer-app .dm-head-home .dm-hd-solar { font-size: 13px; color: #3d504c; }
#designer-app .dm-head-home .dm-hd-sep {
  display: inline-block;
  width: 1px;
  height: 9px;
  margin: 0 8px;
  background: #d5e1de;
}
#designer-app .dm-head-home .dm-hd-lunar { font-size: 12px; color: #9aaba8; }

/* 卡片区：左右留白 9px；卡片样式与两端通用层一致，这里只保留留白 */
#designer-app .wx-home { padding: 8px 9px 0; background: #eff3f2; }
#designer-app .wx-home .dm-banner { margin: 0 0 8px; }
#designer-app .wx-home .dm-quick { margin: 0 0 8px; }
#designer-app .dm-btn-outline { background: #fff; border: 1px solid #cfe2de; color: #0f766e; }
#designer-app .dm-btn-outline:active { background: #f3f8f6; }

/* 卡头右侧「全部 ›」 */
#designer-app .dm-card-more { font-size: 11px; font-weight: 400; color: #a9b7b4; }
#designer-app .dm-card-more-line { display: block; margin-top: 6px; padding: 4px 0; text-align: center; }

/* 进度轴：每行自己画竖线，24px 图标底座盖住线头 */
#designer-app .dm-ax { position: relative; padding-left: 0; }
#designer-app .dm-ax-row {
  position: relative;
  display: flex;
  align-items: flex-start;
  height: auto;
  min-height: 0;
  padding: 9px 0;
  border-bottom: 1px solid #f2f7f5;
}
#designer-app .dm-ax-row:last-child { border-bottom: 0; }
/* 每条待办被 .dm-swipe 包着，首末行按 .dm-ax 的直接子元素判断 */
#designer-app .dm-ax-row::before {
  content: '';
  position: absolute;
  left: 11px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: #d3e0dc;
}
#designer-app .dm-ax > :first-child .dm-ax-row::before,
#designer-app .dm-ax > .dm-ax-row:first-child::before { top: 21px; }
#designer-app .dm-ax > :last-child .dm-ax-row::before,
#designer-app .dm-ax > .dm-ax-row:last-child::before { bottom: auto; height: 21px; }
#designer-app .dm-ax > :first-child:last-child .dm-ax-row::before,
#designer-app .dm-ax > .dm-ax-row:first-child:last-child::before { display: none; }
#designer-app .dm-ax-ico {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}
#designer-app .dm-ax-ico .ic { stroke: #0f766e; }
/* 打卡行：仍是灰圆点，位置对齐竖线 */
#designer-app .dm-ax > .dm-ax-row.dm-ax-plain:first-child::before { top: 15px; }
#designer-app .dm-ax > .dm-ax-row.dm-ax-plain:last-child::before { display: none; }
#designer-app .dm-ax-plain .dm-ax-dot {
  position: absolute;
  left: 8px;
  top: 12px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  z-index: 3;
}
#designer-app .dm-ax-plain .dm-ax-main { padding-left: 34px; }
#designer-app .dm-ax-row .wx-main { padding-left: 0; }
#designer-app .dm-ax-t { display: flex; align-items: baseline; gap: 6px; }
#designer-app .dm-ax-time { font-size: 10.5px; color: #8a9a97; }
#designer-app .dm-ax-kind { font-size: 10.5px; color: #0f766e; font-weight: 600; }
#designer-app .dm-ax-name {
  margin-top: 2px;
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.4;
  color: #123b36;
  white-space: normal;
  overflow: visible;
  word-break: break-all;
}
#designer-app .dm-ax-sub { margin-top: 2px; font-size: 10.5px; line-height: 1.4; color: #a9b7b4; white-space: normal; }
#designer-app .dm-ax-empty { padding: 4px 0 6px; font-size: 11px; color: #a3b1ad; }
#designer-app .wx-home .dm-swipe { margin: 0; border-radius: 0; }

/* 近期项目：两列小方块 */
#designer-app .dm-pj-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
#designer-app .dm-pj {
  padding: 8px 9px;
  border: 1px solid #eef4f2;
  border-radius: 8px;
  background: #eff3f2;
  cursor: pointer;
}
#designer-app .dm-pj-name { font-size: 13px; font-weight: 600; line-height: 1.35; color: #152724; white-space: normal; word-break: break-all; }
#designer-app .dm-pj-sub { margin-top: 3px; font-size: 11px; line-height: 1.4; color: #8a9a97; white-space: normal; word-break: break-all; }
#designer-app .dm-pj-foot { margin-top: 5px; font-size: 11px; color: #0f766e; }

/* 消息卡：5px 红点 + 一条最新消息 */
#designer-app .dm-msg { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; }
#designer-app .dm-msg-dot { flex: 0 0 5px; width: 5px; height: 5px; margin-top: 6px; border-radius: 50%; background: #d9534f; }
#designer-app .dm-msg-body { min-width: 0; }
#designer-app .dm-msg-text { font-size: 13px; line-height: 1.45; color: #152724; white-space: normal; word-break: break-all; }
#designer-app .dm-msg-sub { margin-top: 3px; font-size: 11px; color: #8a9a97; }

/* 任务列表页（只领取 / 只接受） */
#designer-app .dm-tk-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid #f2f7f5; }
#designer-app .dm-tk-row:last-child { border-bottom: 0; }
#designer-app .dm-tk-main { flex: 1; min-width: 0; }
#designer-app .dm-tk-title { font-size: 13px; font-weight: 600; line-height: 1.4; color: #152724; white-space: normal; word-break: break-all; }
#designer-app .dm-tk-meta { margin-top: 3px; font-size: 11px; line-height: 1.5; color: #8a9a97; white-space: normal; word-break: break-all; }
#designer-app .dm-tk-act { flex: 0 0 auto; }
#designer-app .dm-tk-btn {
  min-height: 30px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: #f1f6f4;
  color: #0f766e;
  font-size: 12px;
  font-weight: 600;
}
#designer-app .dm-tk-btn.primary { background: #0f766e; color: #fff; }
#designer-app .dm-tk-btn[disabled] { opacity: 0.5; }
#designer-app .dm-tk-state { font-size: 12px; color: #8a9a97; }

/* ===== v964：内层统一（两端共用同一套尺寸，与首页同一视觉体系） ===== */
/* 1. 按钮：主按钮深青实心，次按钮白底细描边，统一 40px 高 / 10px 圆角 */
#designer-app .dm-btn,
#worker-app .wm-submit-btn {
  min-height: 40px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid #e2eae8;
  border-radius: 10px;
  background: #fff;
  color: #3d504c;
  font-size: 14px;
  font-weight: 600;
  box-shadow: none;
}
#designer-app .dm-btn.primary,
#worker-app .wm-submit-btn,
#worker-app .wm-submit-btn.green {
  border-color: #0f766e;
  background: #0f766e;
  color: #fff;
}
#designer-app .dm-btn.ghost { background: #fff; border-color: #e2eae8; color: #3d504c; }
#designer-app .dm-btn.danger { background: #fff; border-color: #e6c9c5; color: #c94a3f; }
#designer-app .dm-btn.sm,
#designer-app .dm-btn.small { min-height: 32px; height: 32px; padding: 0 10px; font-size: 12.5px; border-radius: 8px; }

/* 2. 分段 / 胶囊：小一号，8px 圆角 */
#designer-app .dm-seg { gap: 4px; padding: 3px; border-radius: 10px; background: #eef2f1; }
#designer-app .dm-seg-item { min-height: 34px; border-radius: 8px; font-size: 13px; color: #6b7c78; }
#designer-app .dm-seg-item.on { background: #fff; color: #0f766e; box-shadow: 0 1px 3px rgba(15, 60, 55, 0.08); }
#designer-app .dm-chip,
#worker-app .wm-chip-pick {
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid #e2eae8;
  border-radius: 8px;
  background: #fff;
  color: #3d504c;
  font-size: 12.5px;
}
#designer-app .dm-chip.on,
#worker-app .wm-chip-pick.on { border-color: #0f766e; background: #eef7f5; color: #0f766e; font-weight: 600; }
#designer-app .dm-chip.sm { min-height: 30px; padding: 0 10px; font-size: 12.5px; }

/* 3. 列表行：名称 14px/600 深墨绿，副行 10.5px 灰 */
#designer-app .dm-row-title,
#worker-app .wm-row-title,
#designer-app .wx-name { font-size: 14px; font-weight: 600; color: #123b36; line-height: 1.4; }
#designer-app .dm-row-sub,
#worker-app .wm-row-sub,
#designer-app .wx-sub { margin-top: 3px; font-size: 10.5px; color: #8a9a97; line-height: 1.4; }
#designer-app .dm-tk-title { font-size: 14px; color: #123b36; }
#designer-app .dm-tk-meta { font-size: 10.5px; }
#designer-app .dm-muted { font-size: 11px; line-height: 1.5; }
#designer-app .dm-msg-text { font-size: 13px; color: #123b36; }
#designer-app .dm-msg-sub { font-size: 10.5px; }
#designer-app .wx-avatar,
#worker-app .wm-row-avatar { border-radius: 12px; }

/* 4. 标签：6px 圆角 + 10.5px */
#designer-app .dm-tag,
#worker-app .wm-tag,
#worker-app .wm-tag.gray,
#worker-app .wm-tag.green,
#worker-app .wm-tag.red,
#worker-app .wm-tag.blue,
#worker-app .wm-tag.amber {
  padding: 2px 7px;
  border-radius: 6px;
  font-size: 10.5px;
  font-weight: 500;
  background: #f3f6f5;
  color: #5f706c;
}

/* 5. 内嵌小卡（近期项目那种）：10px 圆角，名称/副行与行一致 */
#designer-app .dm-pj { padding: 9px 10px; border-radius: 10px; background: #eff3f2; border-color: #e7eeec; }
#designer-app .dm-pj-name { font-size: 13px; color: #123b36; }
#designer-app .dm-pj-sub { margin-top: 2px; font-size: 10.5px; }
#designer-app .dm-pj-foot { margin-top: 4px; font-size: 10.5px; color: #6b7c78; }
#designer-app .dm-card-more { font-size: 10.5px; }

/* 6. 输入框：40px 高 / 10px 圆角（新建项目页保持 v959 的 34px 紧凑规格） */
#designer-app .dm-input,
#worker-app .wm-input { height: 40px; border-radius: 10px; border-color: #e2eae8; }
/* 新建项目页 v959 定的 34px 紧凑规格优先，不被上面的 40px 覆盖 */
#designer-app #dm-np-form .dm-input { height: 34px; border-radius: 8px; }
#designer-app .dm-textarea,
#worker-app .wm-textarea { border-radius: 10px; border-color: #e2eae8; }
#designer-app .dm-input:focus,
#designer-app .dm-textarea:focus,
#worker-app .wm-input:focus { border-color: #0f766e; }

/* 7. 工人端内层对齐：卡片头/行距/统计与设计师端同一套 */
#worker-app .wm-card-title { font-size: 13px; font-weight: 600; color: #3d504c; }
#worker-app .wm-row { padding: 0 14px; }
#worker-app .wm-head { padding: 10px 14px; }
#worker-app .wm-head-title { font-size: 17px; font-weight: 600; }
#worker-app .wm-head-date,
#worker-app .wm-head-sub { margin-top: 3px; font-size: 10.5px; color: #8a9a97; opacity: 1; }
#worker-app .wm-head .wm-back-btn { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 0; background: transparent; color: #152724; font-size: 22px; }
#worker-app .wm-stat-value { font-size: 14px; font-weight: 600; }
#worker-app .wm-stat-label { font-size: 10.5px; }

/* 8. 列表页白卡化：项目/分组等平铺列表包一层 12px 圆角白卡，和首页同一套「浮起白卡」语言 */
#designer-app .wx-block,
#worker-app .wx-block {
  margin: 0 0 8px;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
}
#designer-app .wx-block-title {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 14px 8px;
  font-size: 13px;
  font-weight: 600;
  color: #3d504c;
}
#designer-app .wx-block .wx-row,
#worker-app .wx-block .wx-row { background: transparent; border-bottom: 1px solid #f2f7f5; }
#designer-app .wx-block .wx-row:active,
#worker-app .wx-block .wx-row:active { background: #f6f8f7; }
#designer-app .wx-block .wx-row:last-child,
#worker-app .wx-block .wx-row:last-child { border-bottom: 0; }

/* 9. 量尺/复尺里的柜体小卡：去掉描边，改用首页「近期项目」那套浅底小卡 */
#designer-app .dm-cab {
  padding: 10px 11px;
  border: 0;
  border-radius: 10px;
  background: #eff3f2;
  margin-bottom: 8px;
}
#designer-app .dm-cab.done { border: 0; background: #eef7f5; }

/* 10. 行分隔线：虚线一律改浅实线，和列表行同一套 */
#designer-app .dm-step,
#designer-app .dm-log,
#designer-app .dm-alert { border-bottom: 1px solid #f2f7f5; }

