  .test-list {
    flex: 1; overflow-y: auto;
    padding: 6px 14px calc(20px + env(safe-area-inset-bottom));
    display: flex; flex-direction: column; gap: 10px;
  }
  .test-card {
    display: flex; flex-direction: column; gap: 4px;
    text-align: left;
    padding: 14px 16px;
    min-height: 62px;
    border-radius: 18px;
    border: 1.5px solid var(--line);
    background: var(--white);
    color: var(--ink);
    cursor: pointer;
  }
  .test-card:active { background: var(--surface-2); }
  .test-card .tc-name { font-size: 14px; font-weight: 600; }
  .test-card .tc-desc { font-size: 11px; line-height: 1.55; color: var(--ink-3); }
  .test-group { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 4px; }
  .test-mini {
    min-height: 44px; border-radius: 14px;
    border: 1.5px solid var(--line);
    background: var(--white);
    color: var(--ink);
    font-size: 12px; font-weight: 600;
    cursor: pointer;
  }
  .test-mini:active { background: var(--surface-2); }
  .test-mini.danger { color: #C0392B; border-color: rgba(192,57,43,.35); }
  .test-note { margin: 8px 4px 0; font-size: 11px; line-height: 1.6; color: var(--ink-3); }
  /* 快捷操作的结果写在页面上（全局 toast 已下线）：固定占位，避免出现时跳动 */
  .test-msg {
    margin: 8px 4px 0; min-height: 17px;
    font-size: 12px; line-height: 1.5; font-weight: 600;
    color: var(--ink-2); text-align: center;
  }
  /* 测试场景的悬浮重置：只在测试模式的星球 / 羊圈等场景里出现，
     放在 topbar 下方右上角，避开飞船、背包与收羊弹窗 */
  .test-float {
    position: absolute; right: 12px;
    top: calc(62px + env(safe-area-inset-top));
    z-index: 55;                        /* 高于场景 UI，低于收羊展示（60） */
    min-height: 44px;                   /* 触摸目标 ≥ 44px */
    padding: 0 14px;
    border-radius: 999px;
    border: 1.5px solid rgba(255,255,255,.7);
    background: rgba(27,22,48,.86);
    color: #FFF1DD;
    font-size: 12px; font-weight: 600;
    cursor: pointer;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
  }
  .test-float[hidden] { display: none; }
  .test-float:active { transform: translateY(1px); background: rgba(27,22,48,.96); }
  /* 查看羊的动效：走动开关排在重置下面，同一套悬浮按钮 */
  #test-float-walk { top: calc(112px + env(safe-area-inset-top)); }
  /* 受惊逃跑的「再来一次」排在第二格（与「走动」互斥出现） */
  #test-float-flee { top: calc(112px + env(safe-area-inset-top)); }

  /* 测试页的逃跑特效档位选择：默认 / A / B / C / D */
  .test-tiers {
    display: flex; flex-direction: column; gap: 6px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255,255,255,.5);
    border: 1.5px solid rgba(90,74,58,.12);
  }
  .tt-title { font-size: 11px; font-weight: 700; color: var(--ink); opacity: .75; }
  .tt-row { display: flex; gap: 6px; flex-wrap: wrap; }
  .test-tier {
    min-height: 34px; padding: 0 12px;
    border-radius: 999px;
    border: 1.5px solid rgba(90,74,58,.2);
    background: rgba(255,255,255,.8);
    color: var(--ink);
    font-size: 12px; font-weight: 700;
    cursor: pointer;
  }
  .test-tier.on {
    border-color: transparent;
    background: #3A2B22;
    color: #FFF1DD;
  }
  .tt-desc { font-size: 11px; line-height: 1.45; color: var(--ink); opacity: .68; }
  /* 320 档：档位按钮变 8 个，收窄内边距让它们排成两行不溢出 */
  @media (max-width: 340px) {
    .test-tier { min-height: 30px; padding: 0 9px; font-size: 11px; }
  }

  /* 羊的动效列表：覆盖在测试页之上，返回按钮回测试页 */
  .test-sheep-panel {
    position: absolute; inset: 0; z-index: 40;
    display: flex; flex-direction: column;
    background: var(--surface);
  }
  .test-sheep-panel[hidden] { display: none; }
  .tsp-head {
    display: flex; align-items: center; gap: 10px;
    padding: calc(8px + env(safe-area-inset-top)) 14px 6px;
  }
  .tsp-title { font-size: 15px; font-weight: 600; color: var(--ink); }
  .test-sheep-grid {
    flex: 1; overflow-y: auto;
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    padding: 6px 14px calc(20px + env(safe-area-inset-bottom));
    align-content: start;
  }
  /* 每只羊一项：立绘缩略 + 名字 + 编号，触摸目标 ≥44px */
  .test-sheep-item {
    display: flex; align-items: center; gap: 8px;
    min-height: 60px; padding: 6px 10px;
    border-radius: 14px;
    border: 1.5px solid var(--line);
    background: var(--white);
    color: var(--ink);
    font-size: 12px; font-weight: 600; text-align: left;
    cursor: pointer;
  }
  .test-sheep-item:active { background: var(--surface-2); }
  .test-sheep-item img { width: 40px; height: 40px; object-fit: contain; }
  .test-sheep-item .tsi-id { margin-left: auto; font-size: 10px; color: var(--ink-3); }

