/* =============================================================
   员工端工作台专属皮肤 v2：昭棠代岗 · 暖调未来感（Aurora Glass）
   作用域全部收在 body.zt-theme 下，不影响查看/BOSS端/后台页面。
   设计语言（对应设计规范 v1.0 视觉升级）：
   - 背景：暖色渐变 + 多团光晕（aurora）+ 细微星点
   - 实心色块 → 渐变 + 半透明描边（玻璃感）
   - 顶部色条 → 渐变 + 发光
   - 组件 → iOS 玻璃拟态（blur + saturate + 内高光）
   - 重点标注带发光；按钮带高光反射与悬浮交互
   铁律：只换 VI，不动功能、不动布局结构、话术正文保持高对比可读。
   ============================================================= */

/* ---- 阿里妈妈数黑体家族（PuHuiTi）本地自托管子集，缺失字形自动回退系统黑体 ----
   ⚠️ 2026-10-12 实测：这里原来的 3 个 @font-face 全部指向
   puhuiti.oss-cn-hangzhou.aliyuncs.com 的 ttf，而该 bucket 已被 referer 策略锁死，
   三个 URL 一律 403（"You are denied by bucket referer policy"）。
   也就是说本页的 'PuHuiTi' 字族**一直是整族不可用**的，员工端实际渲染的是字体栈里
   下一个（PingFang SC / 微软雅黑）。现改为本地子集，员工端才真正用上普惠体；
   粗体字重仍靠浏览器合成（与改动前一致，不引回归）。
   ⚠️ 不要把 500/700 指向同一个 400 文件，否则浏览器不再合成加粗、粗体反而变细。 */
@font-face {
  font-family: 'PuHuiTi';
  src: url('../vendor/fonts/AlibabaPuHuiTi-3-55-Regular.subset.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}

/* ============ 根：VI 变量 + 极简排版基调 ============ */
body.zt-theme {
  --primary: #C8102E;
  --primary-hover: #A80D26;
  --primary-active: #8F0B20;
  --primary-soft: rgba(200, 16, 46, 0.08);
  --primary-border: rgba(200, 16, 46, 0.28);

  --secondary: #8A7266;
  --secondary-soft: rgba(255, 122, 27, 0.08);

  --text: #2B1F1A;
  --text-sub: #5C4638;
  --text-muted: #A98F7E;

  --bg: #FDF2E4;
  --card: rgba(255, 255, 255, 0.68);
  --border: rgba(255, 255, 255, 0.85);
  --border-strong: rgba(226, 190, 150, 0.6);

  --success: #2FBF67;
  --success-soft: rgba(47, 191, 103, 0.12);
  --warning: #FF7A1B;
  --warning-soft: rgba(255, 122, 27, 0.12);

  --shadow-sm: 0 2px 10px rgba(200, 80, 30, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.85);
  --shadow: 0 10px 32px rgba(200, 80, 30, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  --shadow-lg: 0 18px 48px rgba(200, 80, 30, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);

  background: var(--bg);
  color: var(--text);
  font-family: 'PuHuiTi', 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;
  letter-spacing: 0.2px;
  line-height: 1.65;
}

/* ---- 背景：暖色渐变 + 三团光晕 + 星点（星际氛围，低干扰） ---- */
body.zt-theme {
  background:
    radial-gradient(820px 480px at 88% -8%, rgba(255, 122, 27, 0.13), transparent 62%),
    radial-gradient(680px 460px at -8% 104%, rgba(200, 16, 46, 0.09), transparent 62%),
    radial-gradient(560px 380px at 106% 78%, rgba(255, 176, 88, 0.1), transparent 64%),
    radial-gradient(1.6px 1.6px at 12% 22%, rgba(200, 16, 46, 0.4) 45%, transparent 55%),
    radial-gradient(1.2px 1.2px at 78% 14%, rgba(255, 122, 27, 0.5) 45%, transparent 55%),
    radial-gradient(1.4px 1.4px at 34% 78%, rgba(200, 16, 46, 0.28) 45%, transparent 55%),
    radial-gradient(1.1px 1.1px at 62% 52%, rgba(255, 140, 60, 0.35) 45%, transparent 55%),
    radial-gradient(1.3px 1.3px at 90% 46%, rgba(200, 16, 46, 0.24) 45%, transparent 55%),
    radial-gradient(1px 1px at 22% 58%, rgba(255, 122, 27, 0.32) 45%, transparent 55%),
    radial-gradient(1.2px 1.2px at 46% 8%, rgba(200, 16, 46, 0.26) 45%, transparent 55%),
    radial-gradient(1px 1px at 70% 88%, rgba(255, 140, 60, 0.3) 45%, transparent 55%),
    radial-gradient(1.1px 1.1px at 6% 42%, rgba(200, 16, 46, 0.22) 45%, transparent 55%),
    linear-gradient(168deg, #FFF6E8 0%, #FDF2E4 46%, #FBE9D4 100%);
  background-attachment: fixed;
}

/* ============ 玻璃卡片（全局） ============ */
body.zt-theme .card {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.78), rgba(255, 250, 242, 0.62));
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 16px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px) saturate(1.5);
  -webkit-backdrop-filter: blur(18px) saturate(1.5);
}
body.zt-theme .card-title .dot {
  background: linear-gradient(135deg, #C8102E, #FF7A1B);
  box-shadow: 0 0 10px rgba(200, 16, 46, 0.55), 0 0 16px rgba(255, 122, 27, 0.3);
}
body.zt-theme .card-title { color: var(--text); letter-spacing: 0.3px; }

/* ============ 顶栏：玻璃 + 渐变品牌章 ============ */
body.zt-theme .topbar {
  background: rgba(255, 250, 242, 0.72);
  border-bottom: 1px solid rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
}
body.zt-theme .brand-logo-placeholder {
  background: linear-gradient(135deg, rgba(200, 16, 46, 0.92), rgba(255, 122, 27, 0.88));
  border: 1px solid rgba(255, 255, 255, 0.45);
  color: #FFF6EA;
  text-shadow: 0 1px 3px rgba(120, 10, 25, 0.4);
  box-shadow: 0 4px 14px rgba(200, 16, 46, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
body.zt-theme .topbar-title { color: var(--text); }
body.zt-theme .topbar-title .muted { color: var(--text-muted); }

/* ============ 按钮体系：渐变 + 高光反射 + 悬浮交互 ============ */
body.zt-theme .btn {
  border-radius: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease, border-color 0.16s ease;
}
body.zt-theme .btn-primary {
  background: linear-gradient(135deg, #C8102E 0%, #E04818 60%, #FF7A1B 120%);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  text-shadow: 0 1px 2px rgba(120, 10, 25, 0.35);
  box-shadow: 0 6px 18px rgba(200, 16, 46, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
body.zt-theme .btn-primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(200, 16, 46, 0.42), 0 0 22px rgba(255, 122, 27, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
body.zt-theme .btn-primary:active:not(:disabled) { transform: translateY(0); }
body.zt-theme .btn-outline {
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(226, 190, 150, 0.65);
  color: var(--text-sub);
}
body.zt-theme .btn-outline:hover:not(:disabled) {
  border-color: rgba(200, 16, 46, 0.5);
  color: var(--primary);
  box-shadow: 0 0 14px rgba(200, 16, 46, 0.15);
}
body.zt-theme .btn-ghost { color: var(--text-muted); }
body.zt-theme .btn-ghost:hover:not(:disabled) { color: var(--primary); }

/* ============ 工作台首页：渐变左光条 + 悬浮交互 ============ */
body.zt-theme #homeContent > .card { position: relative; overflow: hidden; }
body.zt-theme #homeContent > .card::before {
  content: '';
  position: absolute;
  left: 0; top: 14px; bottom: 14px;
  width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, #C8102E, rgba(255, 122, 27, 0.6));
  box-shadow: 0 0 12px rgba(200, 16, 46, 0.45);
}
body.zt-theme #homeContent > .card:last-child::before {
  background: linear-gradient(180deg, #FF7A1B, rgba(200, 16, 46, 0.5));
  box-shadow: 0 0 12px rgba(255, 122, 27, 0.4);
}
body.zt-theme #homeContent > .card:hover {
  border-color: rgba(200, 16, 46, 0.32);
  box-shadow: 0 14px 40px rgba(200, 80, 30, 0.16), 0 0 24px rgba(200, 16, 46, 0.1);
}

/* ---- 排班：渐变时间字 + 玻璃条目 ---- */
body.zt-theme .schedule-grid > div:first-child .schedule-day-title { color: var(--primary); }
body.zt-theme .schedule-grid > div:last-child .schedule-day-title { color: var(--text-muted); }
body.zt-theme .schedule-item {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 12px;
}
body.zt-theme .schedule-time {
  background: linear-gradient(90deg, #C8102E, #FF7A1B);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: none;
  filter: drop-shadow(0 0 10px rgba(255, 122, 27, 0.3));
}
body.zt-theme .schedule-empty {
  color: var(--text-muted);
  border: 1px dashed rgba(226, 190, 150, 0.8);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.35);
}

/* ---- 房间卡：玻璃 + 渐变描边悬浮 + 状态发光点 ---- */
body.zt-theme .room-item {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.82), rgba(255, 248, 238, 0.68));
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 14px;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}
body.zt-theme .room-item:hover {
  border-color: rgba(200, 16, 46, 0.38);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(200, 80, 30, 0.16), 0 0 20px rgba(200, 16, 46, 0.1);
}
body.zt-theme .room-douyin.is-ok { color: var(--success); }
body.zt-theme .room-douyin.is-ok::before {
  background: #2FBF67;
  box-shadow: 0 0 8px rgba(47, 191, 103, 0.85);
}
body.zt-theme .room-douyin.is-warn { color: var(--warning); }
body.zt-theme .room-douyin.is-warn::before {
  background: #FF7A1B;
  box-shadow: 0 0 8px rgba(255, 122, 27, 0.75);
}
body.zt-theme .room-item .btn-primary {
  box-shadow: 0 6px 18px rgba(200, 16, 46, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* ============ 表单：玻璃输入框 + 发光聚焦环 ============ */
body.zt-theme .input,
body.zt-theme select.input,
body.zt-theme textarea.input {
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid rgba(226, 190, 150, 0.6);
  color: var(--text);
  border-radius: 11px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.zt-theme .input::placeholder { color: var(--text-muted); }
body.zt-theme .input:focus {
  border-color: rgba(200, 16, 46, 0.6);
  box-shadow: 0 0 0 3px rgba(200, 16, 46, 0.12), 0 0 16px rgba(255, 122, 27, 0.15);
  outline: none;
}
body.zt-theme .field-label { color: var(--text-muted); letter-spacing: 0.4px; }
body.zt-theme select.input option { background: #FFF9F0; color: var(--text); }

body.zt-theme .alert-danger {
  background: rgba(200, 16, 46, 0.08);
  border: 1px solid rgba(200, 16, 46, 0.35);
  color: #A80D26;
  border-radius: 12px;
}

/* ---- 话术卡：白底衬垫保持正文高对比（员工端照着念不能糊） ---- */
body.zt-theme .script-card {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.96), rgba(255, 252, 246, 0.94));
  border: 1px solid rgba(255, 255, 255, 0.95);
}
body.zt-theme .script-card .script-text { color: #2B1F1A; }

body.zt-theme .topbar .status {
  background: rgba(255, 255, 255, 0.55);
  border-color: rgba(226, 190, 150, 0.6);
  color: var(--text-muted);
}
body.zt-theme .topbar .status.is-live {
  color: var(--primary);
  background: rgba(200, 16, 46, 0.08);
  border-color: rgba(200, 16, 46, 0.4);
  text-shadow: 0 0 10px rgba(200, 16, 46, 0.3);
}
body.zt-theme .topbar .status.is-ok {
  color: var(--success);
  background: var(--success-soft);
  border-color: rgba(47, 191, 103, 0.4);
}

body.zt-theme .script-editbar,
body.zt-theme .scroll-speed-ctl,
body.zt-theme .font-ctl {
  background: rgba(255, 250, 242, 0.78);
  border: 1px solid rgba(226, 190, 150, 0.6);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 12px;
}

body.zt-theme #fxQuickBar {
  background: rgba(255, 250, 242, 0.75);
  border: 1px solid rgba(226, 190, 150, 0.6);
  backdrop-filter: blur(12px) saturate(1.3);
  -webkit-backdrop-filter: blur(12px) saturate(1.3);
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(200, 80, 30, 0.14);
}

body.zt-theme .seg-btn,
body.zt-theme .chip {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(226, 190, 150, 0.6);
  color: var(--text-sub);
  border-radius: 999px;
  transition: all 0.15s ease;
}
body.zt-theme .seg-btn:hover,
body.zt-theme .chip:hover {
  border-color: rgba(200, 16, 46, 0.45);
  color: var(--primary);
}
body.zt-theme .seg-btn.is-active,
body.zt-theme .chip.is-active {
  background: linear-gradient(135deg, #C8102E, #FF7A1B);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(200, 16, 46, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35);
  text-shadow: 0 1px 2px rgba(120, 10, 25, 0.3);
}

/* ---- 滚动条：渐变细条 ---- */
body.zt-theme ::-webkit-scrollbar { width: 8px; height: 8px; }
body.zt-theme ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(200, 16, 46, 0.4), rgba(255, 122, 27, 0.35));
  border-radius: 4px;
}
body.zt-theme ::-webkit-scrollbar-track { background: transparent; }

/* ---- 移动端：光晕收敛、玻璃降模糊保性能 ---- */
@media (max-width: 720px) {
  body.zt-theme .card { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
  body.zt-theme #homeContent > .card::before { top: 10px; bottom: 10px; }
}

/* =============================================================
   v2.1 交互设计修正层（按交互设计师指标逐条落地）
   M1 主操作唯一性 / M3 色彩纪律 / M5 规格统一 / M7 信息分组
   ============================================================= */

/* ---- M3 色彩纪律：特效 chip 去蓝化（旧主题硬编码 #2563eb 残留） ---- */
body.zt-theme .fx-quick-bar button {
  height: 28px;
  padding: 0 12px;
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #5C4638;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(226, 190, 150, 0.6);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: all 0.15s ease;
}
/* 与查看页同一套细线条 SVG 图标（14px、随文字变色） */
body.zt-theme .fx-quick-bar button svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
}
body.zt-theme .fx-quick-bar button:hover {
  border-color: rgba(200, 16, 46, 0.45);
  color: #C8102E;
  box-shadow: 0 3px 10px rgba(200, 16, 46, 0.15);
}
body.zt-theme .fx-quick-bar button.is-on {
  background: linear-gradient(135deg, #C8102E, #FF7A1B);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(200, 16, 46, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35);
  text-shadow: 0 1px 2px rgba(120, 10, 25, 0.3);
}

/* ---- M3：画布选择按钮去蓝化 + 选中渐变 ---- */
body.zt-theme .cv-ratio-btn {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(226, 190, 150, 0.55);
  border-radius: 12px;
  transition: all 0.15s ease;
}
body.zt-theme .cv-ratio-btn:hover {
  border-color: rgba(200, 16, 46, 0.4);
  color: #C8102E;
}
body.zt-theme .cv-ratio-btn.is-active {
  border-color: rgba(200, 16, 46, 0.55);
  color: #C8102E;
  background: linear-gradient(160deg, rgba(200, 16, 46, 0.08), rgba(255, 122, 27, 0.10));
  box-shadow: inset 0 0 0 1px rgba(200, 16, 46, 0.45), 0 3px 10px rgba(200, 16, 46, 0.12);
}
body.zt-theme .cv-ratio-btn.is-active .cv-shape {
  background: linear-gradient(135deg, #C8102E, #FF7A1B);
  box-shadow: 0 0 8px rgba(255, 122, 27, 0.5);
}
body.zt-theme .cv-shape { background: #D9BE9F; }

/* ---- M1/M3 按钮墙主次重构：主 1.5 : 次 1，停止=危险描边而非灰块 ---- */
body.zt-theme .pin-actions {
  grid-template-columns: 1.5fr 1fr;
  gap: 10px;
  padding: 12px;
  background: transparent;
  border-top: 1px solid rgba(226, 190, 150, 0.45);
}
body.zt-theme .pin-actions #btnStop:not(:disabled) {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(220, 60, 60, 0.45);
  color: #C0392B;
  font-weight: 600;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
body.zt-theme .pin-actions #btnStop:not(:disabled):hover {
  background: rgba(200, 16, 46, 0.08);
  box-shadow: 0 4px 12px rgba(200, 16, 46, 0.2);
}
body.zt-theme .pin-actions .btn:disabled {
  opacity: 0.45;
  box-shadow: none;
}
body.zt-theme .pin-actions #btnLive:not(:disabled) {
  box-shadow: 0 8px 22px rgba(200, 16, 46, 0.4), 0 0 20px rgba(255, 122, 27, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* ---- M3 数据≠操作：上行带宽去品牌红（红色只留给操作和告警） ---- */
body.zt-theme .vq-band-val {
  color: #1FA45B;
  text-shadow: 0 0 10px rgba(47, 191, 103, 0.25);
}

/* ---- M5 规格统一：画质档位 pill 化，radio 品牌色 ---- */
body.zt-theme .vq-presets { gap: 6px; }
body.zt-theme .vq-preset {
  padding: 4px 11px;
  border-radius: 999px;
  border: 1px solid rgba(226, 190, 150, 0.6);
  background: rgba(255, 255, 255, 0.62);
  transition: all 0.15s ease;
}
body.zt-theme .vq-preset:hover { border-color: rgba(200, 16, 46, 0.4); }
body.zt-theme .vq-preset:has(input:checked) {
  background: linear-gradient(135deg, rgba(200, 16, 46, 0.10), rgba(255, 122, 27, 0.12));
  border-color: rgba(200, 16, 46, 0.5);
  box-shadow: 0 3px 10px rgba(200, 16, 46, 0.12);
}
body.zt-theme .vq-preset input { accent-color: #C8102E; }
body.zt-theme .vq-preset:has(input:checked) span { color: #C8102E; font-weight: 700; }
body.zt-theme .vq-hint { color: #A98F7E; font-size: 11.5px; }

/* ---- M5 表单节奏统一：标签弱化、控件同规格 8px 栅格 ---- */
body.zt-theme .fx-dev-grid { gap: 10px; }
body.zt-theme .fx-dev-label {
  font-size: 11px;
  color: #A98F7E;
  letter-spacing: 0.4px;
  margin-bottom: 4px;
}
body.zt-theme .fx-dev-item .select,
body.zt-theme .cv-block .select {
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(226, 190, 150, 0.55);
  border-radius: 9px;
}
body.zt-theme .fx-dev-item .select:focus,
body.zt-theme .cv-block .select:focus {
  border-color: rgba(200, 16, 46, 0.6);
  box-shadow: 0 0 0 3px rgba(200, 16, 46, 0.12);
}
body.zt-theme .fx-name { letter-spacing: 0.4px; }
body.zt-theme .cv-label {
  color: #8A7266;
  font-weight: 600;
  font-size: 12px;
}
body.zt-theme .cv-label-sub { color: #B99F8C; font-weight: 400; }
body.zt-theme .fx-stack { gap: 10px; }

/* ---- M4 预览浮层降噪：死黑提示 → 暖深玻璃，压画面感降低 ---- */
body.zt-theme .video-overlay.posture .overlay-panel {
  background: rgba(43, 31, 26, 0.62);
  border: 1px solid rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(10px) saturate(1.3);
  -webkit-backdrop-filter: blur(10px) saturate(1.3);
  box-shadow: 0 10px 30px rgba(30, 15, 5, 0.35);
  border-radius: 14px;
}
body.zt-theme .video-overlay.posture .overlay-panel,
body.zt-theme .video-overlay.posture .overlay-panel .text-sm.muted {
  color: #FFF6EA;
}
/* 预览内 HUD/工具条/时钟/镜像钮：统一暖深玻璃 */
body.zt-theme .video-hud .hud-line,
body.zt-theme .video-mirror-btn,
body.zt-theme .video-tool-btn {
  background: rgba(43, 31, 26, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #FFF6EA;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 9px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
body.zt-theme .video-tool-btn:hover,
body.zt-theme .video-mirror-btn:hover {
  border-color: rgba(255, 180, 100, 0.65);
  box-shadow: 0 0 12px rgba(255, 160, 60, 0.35);
}
body.zt-theme .video-clock {
  background: rgba(43, 31, 26, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 12px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #FFF6EA;
}
body.zt-theme .video-clock .vc-time {
  text-shadow: 0 0 14px rgba(255, 190, 110, 0.55);
}

/* ---- M4 补充：HUD 移到右上（镜像钮下方），避开中央引导浮层 ---- */
body.zt-theme .video-hud {
  left: auto;
  right: 10px;
  bottom: 56px;
  align-items: flex-end;
}
body.zt-theme .video-hud .hud-line {
  font-size: 11px;
  padding: 2px 8px;
  opacity: 0.92;
}

/* =============================================================
   v2.2 员工端操作条（长音频条 + 麦克风/调音/试麦/伴奏/录音）
   ============================================================= */
body.zt-theme .host-op-bar {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.72), rgba(255, 244, 230, 0.5));
  border: 1px solid rgba(226, 190, 150, 0.55);
  backdrop-filter: blur(12px) saturate(1.4);
  -webkit-backdrop-filter: blur(12px) saturate(1.4);
  box-shadow: 0 4px 14px rgba(120, 60, 20, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
body.zt-theme .op-meter {
  background: rgba(43, 31, 26, 0.08);
  box-shadow: inset 0 1px 3px rgba(120, 60, 20, 0.12);
}
body.zt-theme .op-meter-grad {
  background: linear-gradient(90deg, #1fa45b 0%, #4ade80 55%, #f59e0b 78%, #dc2626 94%);
}
body.zt-theme .op-meter-mask { background: rgba(255, 247, 237, 0.75); }
body.zt-theme .op-meter.is-mute .op-meter-mask { background: rgba(43, 31, 26, 0.4); }
body.zt-theme .op-meter-val { color: #8a7266; }
body.zt-theme .op-btn {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(226, 190, 150, 0.6);
  color: #5c4638;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}
body.zt-theme .op-btn:hover:not(:disabled) {
  border-color: rgba(200, 16, 46, 0.45);
  color: #c8102e;
  box-shadow: 0 3px 10px rgba(200, 16, 46, 0.15);
}
body.zt-theme .op-btn:disabled { opacity: 0.45; box-shadow: none; }
body.zt-theme .op-btn.is-on {
  background: linear-gradient(135deg, #c8102e, #ff7a1b);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
  box-shadow: 0 4px 12px rgba(200, 16, 46, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35);
  text-shadow: 0 1px 2px rgba(120, 10, 25, 0.3);
}
body.zt-theme .op-btn.is-danger {
  background: linear-gradient(135deg, #dc2626, #ef4444);
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
body.zt-theme .fx-box.op-mixer-flash { animation: ztMixerFlash 0.9s ease-in-out 2; }
@keyframes ztMixerFlash {
  0%, 100% { box-shadow: 0 0 0 0 rgba(200, 16, 46, 0); }
  50% { box-shadow: 0 0 0 4px rgba(200, 16, 46, 0.35); }
}

/* ---- v2.3 建议引擎配套：警示文字色 + 渐变分段对齐新阈值 ---- */
body.zt-theme .op-meter-grad {
  background: linear-gradient(90deg, #1fa45b 0%, #4ade80 50%, #f59e0b 70%, #dc2626 88%);
}
body.zt-theme .op-meter-val.is-warn { color: #c8102e; font-weight: 600; }
body.zt-theme .op-meter-val { white-space: nowrap; }

/* =============================================================
   v2.4 房间卡信息扩充：接播前一眼看全
   班次/总时长/上岗安排/订单编号/工作间号/话术状态/链接解析与在线人数/
   上一班员工端战绩/房间备注（违规点）
   ============================================================= */
body.zt-theme .ri-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
body.zt-theme .ri-name {
  font-weight: 700;
  font-size: 15px;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.zt-theme .ri-boss {
  margin-left: auto;
  flex: 0 0 auto;
  font-size: 11.5px;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(226, 190, 150, 0.5);
  padding: 1px 9px;
  border-radius: 999px;
}
body.zt-theme .ri-info {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 10px;
}
body.zt-theme .ri-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 12.5px;
  line-height: 1.55;
}
body.zt-theme .ri-k {
  flex: 0 0 62px;
  color: var(--text-muted);
  font-size: 11.5px;
  letter-spacing: 0.4px;
}
body.zt-theme .ri-v { color: var(--text-sub); word-break: break-all; min-width: 0; }
body.zt-theme .ri-v.is-strong { color: var(--text); font-weight: 700; }
body.zt-theme .ri-v.is-ok { color: var(--success); }
body.zt-theme .ri-v.is-warn { color: var(--warning); }
body.zt-theme .ri-v.is-live-now { color: #1FA45B; font-weight: 700; }
body.zt-theme .ri-v.is-idle,
body.zt-theme .ri-v.is-muted { color: var(--text-muted); }
body.zt-theme .ri-v.is-mono {
  font-family: var(--font-code, Consolas, monospace);
  letter-spacing: 0.3px;
}
body.zt-theme .ri-v.is-note {
  color: #A80D26;
  background: rgba(200, 16, 46, 0.06);
  border: 1px solid rgba(200, 16, 46, 0.22);
  padding: 2px 8px;
  border-radius: 8px;
}
body.zt-theme .ri-foot { display: flex; }
body.zt-theme .ri-foot .btn { flex: 1; }

/* =============================================================
   v2.5 上岗页布局降噪：话术卡头部两行分区
   第一行 = 标题 + 话术信息 + 主入口（外部平台/历史）
   第二行 = 阅读工具（顶部/滚屏/速率/字号）右对齐，不再与标题堆叠
   ============================================================= */
body.zt-theme .script-card .card-head {
  flex-wrap: wrap;
  row-gap: 8px;
}
body.zt-theme .script-head-tools {
  flex: 1 1 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px dashed rgba(226, 190, 150, 0.55);
}
body.zt-theme .script-head-tools .btn { flex: 0 0 auto; }

/* =============================================================
   v2.5b 1号链接重要信息条（外部平台咨询区卡顶部）
   运费险 / 7天无理由 / 尺码表：三项状态一眼可读
   ============================================================= */
body.zt-theme .link-info {
  margin: 0 14px;
  padding: 8px 12px 10px;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(226, 190, 150, 0.55);
  border-radius: 12px;
}
body.zt-theme .link-info-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
body.zt-theme .li-title {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.3px;
}
body.zt-theme .li-state {
  font-size: 11px;
  padding: 1px 8px;
  border-radius: 999px;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(226, 190, 150, 0.5);
}
body.zt-theme .li-state.is-ok { color: var(--success); border-color: rgba(47, 191, 103, 0.45); }
body.zt-theme .li-state.is-busy { color: var(--warning); }
body.zt-theme .li-state.is-fail,
body.zt-theme .li-state.is-idle { color: var(--text-muted); }
body.zt-theme .link-info-grid {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
body.zt-theme .li-item {
  flex: 1 1 0;
  min-width: 90px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(226, 190, 150, 0.45);
}
body.zt-theme .li-item .li-k { font-size: 11px; color: var(--text-muted); letter-spacing: 0.4px; }
body.zt-theme .li-item .li-v { font-size: 13px; font-weight: 700; color: var(--text-muted); }
body.zt-theme .li-item.is-yes { border-color: rgba(47, 191, 103, 0.55); background: var(--success-soft); }
body.zt-theme .li-item.is-yes .li-v { color: #1FA45B; }
body.zt-theme .li-item.is-no .li-v { color: var(--text-muted); font-weight: 500; }
body.zt-theme .li-tip { margin-top: 6px; font-size: 11px; color: var(--text-muted); }
/* ---------- 小黄车折叠态（默认收成一行，客户消息区让出全部高度） ---------- */
body.zt-theme .link-info-head { cursor: pointer; -webkit-user-select: none; user-select: none; }
body.zt-theme .link-info.collapsed { padding: 5px 12px; }
body.zt-theme .link-info.collapsed .link-info-head { margin-bottom: 0; }
body.zt-theme .link-info.collapsed .link-info-grid,
body.zt-theme .link-info.collapsed .li-name,
body.zt-theme .link-info.collapsed .li-ev,
body.zt-theme .link-info.collapsed .li-tip,
body.zt-theme .link-info.collapsed .li-state { display: none; }
body.zt-theme .li-caret {
  flex: 0 0 auto; width: 12px; text-align: center;
  font-size: 11px; color: var(--text-muted);
  transition: transform 0.15s ease;
}
body.zt-theme .link-info:not(.collapsed) .li-caret { transform: rotate(90deg); }
/* 折叠行里的迷你摘要：运费险 有 · 7天无理由 有 · 尺码表 未露出 */
body.zt-theme .li-mini {
  flex: 1 1 auto; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 11.5px; color: var(--text-muted);
}
body.zt-theme .li-mini .ok { color: #1FA45B; font-weight: 700; }
body.zt-theme .li-mini .no { font-weight: 500; }
/* 1 号链接商品名（采集器登录态抓到才显示） */
body.zt-theme .li-name {
  margin-top: 6px;
  padding: 5px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(226, 190, 150, 0.55);
  word-break: break-all;
}
body.zt-theme .li-name.hidden { display: none; }
/* 外部平台弹窗：链接行（链接直接可见可复制） */
body.zt-theme .douyin-url-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  margin-bottom: 10px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(226, 190, 150, 0.55);
}
body.zt-theme .douyin-url-label { flex: 0 0 auto; font-size: 12px; font-weight: 600; color: var(--text-muted); }
body.zt-theme .douyin-url-text {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12.5px;
  color: var(--text);
  word-break: break-all;
  line-height: 1.4;
}

/* ---- v2.5c 预览浮层降噪：遮罩显示期间隐藏 HUD，避免文字相互叠压 ---- */
body.zt-theme .video-frame:has(.video-overlay:not(.hidden)) .video-hud { display: none; }
body.zt-theme .video-overlay.posture .overlay-panel { padding: 14px 20px; }
body.zt-theme .video-overlay.posture .posture-hint { font-size: 12px; opacity: 0.85; }

/* ============================================================
   v2.7 咨询区滚屏 + 小黄车免登录 + 通知三件套
   ============================================================ */

/* ---- 咨询区卡顶部小字通知（抓取状态/问题，不弹窗不闪烁） ---- */
body.zt-theme .dychat-notice {
  margin: 0 14px 8px;
  padding: 6px 10px;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.55);
  border: 1px dashed rgba(226, 190, 150, 0.7);
  border-radius: 8px;
}
body.zt-theme .dychat-notice.is-warn {
  color: #b45309;
  background: #fef3c7;
  border-color: rgba(217, 119, 6, 0.35);
}

/* ---- 咨询区消息：时间戳 + 新消息淡入高亮 ---- */
body.zt-theme .dychat-item { display: flex; align-items: baseline; gap: 6px; }
body.zt-theme .dychat-item .time {
  flex: 0 0 auto;
  font-size: 10.5px;
  color: #b0a08e;
  font-variant-numeric: tabular-nums;
}
body.zt-theme .dychat-item.fresh { animation: dychatIn 1.6s ease-out; }
@keyframes dychatIn {
  0% { background: rgba(37, 99, 235, 0.16); }
  100% { background: transparent; }
}

/* ---- 「↓ 最新」回到底部按钮（上翻阅读时出现） ---- */
body.zt-theme .dychat-body { position: relative; }
body.zt-theme .dychat-gotobottom {
  position: absolute;
  right: 14px;
  bottom: 12px;
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, #e8862f, #d96716);
  border: none;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(217, 103, 22, 0.35);
}
body.zt-theme .dychat-gotobottom:hover { filter: brightness(1.08); }
body.zt-theme .dychat-gotobottom.hidden { display: none; }

/* ---- 小黄车面板：1-5号链接下拉 + 最近刷新时间 + 口播证据行 ---- */
body.zt-theme .li-sel {
  height: 24px;
  padding: 0 6px;
  font-size: 12px;
  color: #5C4638;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(226, 190, 150, 0.7);
  border-radius: 6px;
  cursor: pointer;
}
body.zt-theme .li-sel.hidden { display: none; }
body.zt-theme .li-checked {
  font-size: 11px;
  color: #b0a08e;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
body.zt-theme .li-ev {
  margin-top: 6px;
  padding: 6px 10px;
  font-size: 11.5px;
  line-height: 1.7;
  color: #8a6d3b;
  background: rgba(255, 244, 224, 0.7);
  border-radius: 8px;
}
body.zt-theme .li-ev.hidden { display: none; }

/* ---- BOSS端调整通知横幅（话术卡顶部） ---- */
body.zt-theme .boss-update-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 14px 8px;
  padding: 8px 12px;
  font-size: 13px;
  color: #92400e;
  background: linear-gradient(90deg, #fef3c7, #fdebd2);
  border: 1px solid rgba(217, 119, 6, 0.4);
  border-radius: 10px;
}
body.zt-theme .boss-update-bar.hidden { display: none; }
body.zt-theme .boss-update-bar .bu-icon { flex: 0 0 auto; }
body.zt-theme .boss-update-bar .bu-text { flex: 1; line-height: 1.5; }
body.zt-theme .boss-update-bar .bu-ok {
  flex: 0 0 auto;
  padding: 3px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, #e8862f, #d96716);
  border: none;
  border-radius: 999px;
  cursor: pointer;
}

/* ============================ PWA 安装引导条 ============================ */
.pwa-banner {
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: #1e293b;
  color: #f8fafc;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .35);
  transform: translateY(140%);
  transition: transform .3s ease;
  font-size: 13px;
}
.pwa-banner.is-in { transform: translateY(0); }
.pwa-banner-ico img { width: 34px; height: 34px; border-radius: 8px; display: block; }
.pwa-banner-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.pwa-banner-txt b { font-size: 13px; }
.pwa-banner-txt span { color: #94a3b8; font-size: 12px; }
.pwa-banner-guide .pwa-banner-txt span { color: #fbbf24; }
.pwa-banner-btn {
  flex: none;
  padding: 7px 16px;
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, #e8862f, #d96716);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.pwa-banner-x {
  flex: none;
  width: 26px;
  height: 26px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, .1);
  color: #cbd5e1;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
}

/* =============================================================
   场控助手后半段（台账 #117）：BOSS 回传的建议回复浮层
   右下角浮层 + 一键复制；60 秒无操作自动收起。
   ============================================================= */
body.zt-theme .boss-reply-card {
  position: fixed;
  right: 18px;
  bottom: 18px;
  right: calc(18px + var(--sar));
  bottom: calc(18px + var(--sab));
  z-index: 90;
  width: min(340px, calc(100vw - 36px));
  background: #fff;
  border: 1px solid var(--primary-border, rgba(200, 16, 46, 0.28));
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(43, 31, 26, 0.18);
  padding: 12px 14px;
  animation: bossReplyIn 0.22s ease-out;
}
body.zt-theme .boss-reply-head {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--primary, #C8102E);
  margin-bottom: 6px;
}
body.zt-theme .boss-reply-text {
  font-size: 14px;
  line-height: 1.6;
  color: var(--text, #2B1F1A);
  margin-bottom: 10px;
  white-space: pre-wrap;
  word-break: break-all;
}
body.zt-theme .boss-reply-foot {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
@keyframes bossReplyIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
