/* 商家控制台 · 薄门户（复用 demo-merchant 基类） *//* ── 统一字体与字号（电脑 / 手机；覆盖 style.css 默认 16px 继承） ── *//* ── 入口页（对标淘宝开放平台登录 / 入驻） ── */#view-login.hidden,
#view-register.hidden {
  display: none !important;
}.mc-console-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}.mc-console-header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}.mc-console-header-actions button {
  margin: 0;
}#auth-screen.hidden,
#console-screen.hidden {
  display: none;
}.mc-dev-only.hidden {
  display: none;
}/* ---- 短剧向导（M2-07 · panel-drama） ---- *//* ---- 分集列表 / 任务中心（M2-08a/c） ---- *//* 代表图网格：3:4 全身像比例 · 固定两行可视高度，超出纵向滚动 *//* ---- 分销管理台风格布局（侧边菜单树常驻 + 顶栏 · FIT-1 墨绿调） ---- */.mc-app {
  display: grid;
  grid-template-columns: 232px 1fr;
  min-height: 100vh;
  align-items: start;
}.mc-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  background: #f7f5f2;
  border-right: 1px solid #e8e4dc;
  padding: 12px 10px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}.mc-brand {
  font-weight: 700;
  font-size: var(--mc-text-base, 0.875rem);
  padding: 10px 12px 14px;
  letter-spacing: 0.02em;
  color: var(--accent);
  border-bottom: 1px solid #e8e4dc;
  margin-bottom: 4px;
}.mc-sidebar .mc-admin-fold {
  font-size: 0.78rem;
  color: var(--muted);
  padding: 0 2px;
}/* 菜单树：分组可折叠，默认全展开（每个页面随时可见） *//* 顶栏 + 内容列 */.mc-maincol {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100vh;
}.mc-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  height: 56px;
  background: #fff;
  border-bottom: 1px solid #e8e4dc;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  gap: 10px;
}.mc-topbar-title {
  font-weight: 700;
  font-size: var(--mc-text-md, 1rem);
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
  flex: 1;
}.mc-topbar-sub {
  font-size: var(--mc-text-xs, 0.75rem);
  font-weight: 400;
  color: var(--muted);
}.mc-topbar .mc-console-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex-shrink: 0;
}.mc-session-meta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 999px;
  background: #f7f5f2;
  color: var(--muted, #6b7280);
  cursor: default;
}.mc-session-meta:hover,
.mc-session-meta:focus-visible {
  color: var(--accent);
  border-color: #9bc4b4;
  background: #eef6f2;
  outline: none;
}.mc-session-meta.hidden {
  display: none !important;
}.mc-session-meta-icon {
  display: block;
}.mc-maincol .mc-main {
  flex: 1;
  padding: 10px 12px 14px;
  gap: 0.65rem;
  /* grid 默认 align-content:stretch 会把剩余高度均分到各行，
     个人中心等同屏多卡会被撑开；靠上堆叠即可 */
  align-content: start;
}/* 控制台卡片 / 文案：整体收紧内外边距 */.mc-app .card.mc-panel {
  padding: 0.75rem 0.9rem;
}.mc-app .card h3 {
  margin: 0.5rem 0 0.35rem;
}.mc-app .mc-desc {
  margin-bottom: 0.55rem;
}.mc-app .mc-topbar {
  padding: 0 14px;
  height: 52px;
}.mc-app .mc-sidebar {
  padding: 8px 8px 12px;
}.mc-app .mc-brand {
  padding: 8px 10px 10px;
  margin-bottom: 2px;
}.mc-maincol .footer {
  margin: 0;
  padding: 8px 14px;
  border-top: 1px solid #e8e4dc;
}@media (max-width: 900px) {
  .mc-app {
    grid-template-columns: 1fr;
  }

  .mc-topbar {
    position: static;
  }
}/* 短剧相关路由：默认折叠「最近 API 响应」，可手动展开 */.mc-response-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}.mc-response.mc-response-hidden {
  padding-bottom: 12px;
}.mc-response.mc-response-hidden .mc-response-head {
  margin-bottom: 0;
}/* 外链嵌入面板（#ext= 路由）：右侧子页面内打开，左侧菜单树常驻 */#panel-ext {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}/* flex 仅可见时生效；勿写进 #panel-ext 本体，否则会盖过 .mcp-panel.hidden */#panel-ext:not(.hidden) {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}.mc-maincol .mc-main.mc-main--ext {
  padding: 6px 10px 10px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}/* 角色库内嵌面板 */#panel-actors {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: transparent;
  border: none;
  box-shadow: none;
}#panel-actors.hidden {
  display: none !important;
}/* ---- 窄屏抽屉（照抄分销 admin：CSS 抽屉 + body.mc-nav-open + 遮罩，免 resize/orientation 监听） ---- */.mc-btn-menu {
  display: none;
  padding: 6px 12px;
  border: 1px solid #d8d2c8;
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  font-size: 13px;
  cursor: pointer;
}.mc-nav-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  z-index: 40;
}@media (max-width: 900px) {
  .mc-btn-menu {
    display: inline-flex;
    align-items: center;
  }

  /* 竖屏：侧栏默认隐藏（抽屉），不再整块堆在内容上方；点「菜单」或 body.mc-nav-open 才滑出 */
  .mc-sidebar {
    display: none;
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: min(280px, 86vw);
    height: 100vh;
    z-index: 50;
    box-shadow: 8px 0 24px rgba(0, 0, 0, 0.2);
  }

  body.mc-nav-open .mc-sidebar {
    display: flex;
  }

  body.mc-nav-open .mc-nav-backdrop {
    display: block;
  }
}/* ── 概览页：中文状态卡、清单与悬停提示 ── */.mc-quick-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  border: 1px solid var(--border, #e8e4dc);
  background: #fff;
  color: var(--text);
  text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}.mc-quick-card:hover {
  border-color: #9bc4b4;
  box-shadow: 0 6px 18px rgba(45, 106, 79, 0.1);
  transform: translateY(-2px);
  color: var(--accent, #2d6a4f);
}.mc-quick-card-title {
  font-size: 0.92rem;
  font-weight: 650;
}.mc-quick-card-desc {
  font-size: 0.78rem;
  color: var(--muted);
}[data-hint] {
  cursor: help;
}/* ── 商家状态类拒绝（待审核 / 已驳回 / 已停用）：全屏说明原因，替代逐面板「加载失败」 ── */#mc-state-block[hidden] {
  display: none !important;
}.mc-state-block {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.5);
}.mc-state-card {
  width: min(440px, 100%);
  background: #fff;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 12px;
  padding: 22px 22px 18px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.28);
}.mc-state-title {
  margin: 0 0 8px;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent, #2d6a4f);
}.mc-state-desc {
  margin: 0 0 16px;
  font-size: 0.86rem;
  line-height: 1.65;
  color: var(--muted);
}.mc-state-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}.mc-state-btn {
  padding: 7px 14px;
  border: 1px solid #d8d2c8;
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  font-size: 0.84rem;
  cursor: pointer;
}.mc-state-btn.primary {
  border-color: var(--accent, #2d6a4f);
  background: var(--accent, #2d6a4f);
  color: #fff;
}

.mc-app,
.mc-gate {
  --mc-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
    "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --mc-text-xs: 0.75rem;    /* 12px */
  --mc-text-sm: 0.8125rem;  /* 13px · 标签 / 表单 / 按钮 */
  --mc-text-base: 0.875rem; /* 14px · 正文 */
  --mc-text-md: 1rem;       /* 16px · 小标题 */
  --mc-text-lg: 1.125rem;   /* 18px · 页眉标题 */
  font-family: var(--mc-font);
  font-size: var(--mc-text-base);
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  color: var(--text);
}.mc-app label,
.mc-gate label,
.mc-app .mc-panel label,
.mc-gate .mc-panel label,
.mc-app .mc-auth label,
.mc-gate .mc-auth label {
  font-size: var(--mc-text-sm);
  gap: 0.3rem;
  margin-bottom: 0.65rem;
}.mc-app input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.mc-app select,
.mc-app textarea,
.mc-gate input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.mc-gate select,
.mc-gate textarea {
  font-family: var(--mc-font);
  font-size: var(--mc-text-sm);
  line-height: 1.4;
  padding: 0.38rem 0.55rem;
  min-height: 2rem;
  border-radius: 8px;
}.mc-app select,
.mc-gate select {
  font-size: var(--mc-text-sm);
  padding-right: 1.75rem;
  max-width: 100%;
}.mc-app button,
.mc-gate button {
  font-family: var(--mc-font);
  font-size: var(--mc-text-sm);
  line-height: 1.35;
  padding: 0.4rem 0.75rem;
  min-height: 2rem;
  border-radius: 8px;
}.mc-app .mc-desc,
.mc-gate .mc-desc,
.mc-app .mc-hint,
.mc-gate .mc-hint {
  font-size: var(--mc-text-sm);
  line-height: 1.45;
}.mc-app .card h2,
.mc-gate .card h2,
.mc-app .mc-panel h2,
.mc-gate .mc-panel h2 {
  font-size: var(--mc-text-md);
}.mc-app .card h3,
.mc-gate .card h3,
.mc-app .mc-panel h3,
.mc-gate .mc-panel h3 {
  font-size: var(--mc-text-base);
}@media (max-width: 720px) {
  .mc-app,
  .mc-gate {
    font-size: var(--mc-text-base);
  }

  .mc-app input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
  .mc-app select,
  .mc-app textarea,
  .mc-gate input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
  .mc-gate select,
  .mc-gate textarea {
    font-size: max(var(--mc-text-sm), 16px);
    min-height: 2.25rem;
  }

  .mc-app select,
  .mc-gate select {
    font-size: max(var(--mc-text-sm), 16px);
  }
}.mc-gate {
  min-height: calc(100vh - 2rem);
  display: grid;
  grid-template-columns: 1fr minmax(300px, 400px);
  gap: 2rem;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
}.mc-gate-hero h1 {
  margin: 0 0 0.5rem;
  font-size: 1.75rem;
}.mc-gate-features {
  margin: 1.25rem 0 0;
  padding-left: 1.1rem;
  color: var(--muted);
  font-size: var(--mc-text-sm, 0.8125rem);
  line-height: 1.7;
}.mc-gate-card {
  padding: 1.5rem;
}.mc-gate-card h2 {
  margin-top: 0;
  font-size: var(--mc-text-md, 1rem);
}.mc-auth-tabs {
  display: flex;
  gap: 0.35rem;
  margin-bottom: 1rem;
}.mc-auth-tabs .mc-tab {
  margin-top: 0;
  font-size: var(--mc-text-sm, 0.8125rem);
  padding: 0.4rem 0.7rem;
  background: #fff;
  color: var(--text);
  border: 1px solid var(--border);
}.mc-auth-tabs .mc-tab.active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}.mc-auth-pane.hidden {
  display: none;
}.mc-qr-provider-switch {
  display: flex;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}.mc-qr-provider-switch button {
  margin: 0;
  flex: 1;
  font-size: 0.85rem;
  padding: 0.4rem 0.5rem;
  background: #fff;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
}.mc-qr-provider-switch button.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  font-weight: 600;
}.mc-qr-provider-switch button:not(.active):hover {
  background: #f5f3ef;
  color: var(--text);
}.mc-qr-frame {
  text-align: center;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #faf9f7;
}.mc-qr-frame img {
  display: block;
  margin: 0 auto;
  border-radius: 6px;
}.mc-qr-hint {
  margin: 0.65rem 0 0;
  font-size: 0.85rem;
  color: var(--muted);
}.mc-qr-status {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  color: var(--accent);
}.mc-qr-status.err {
  color: #b42318;
}.mc-qr-frame.is-loading img {
  opacity: 0.35;
}.mc-qr-frame.is-loading::after {
  content: "加载中…";
  display: block;
  margin-top: 0.35rem;
  font-size: 0.82rem;
  color: var(--muted);
}.mc-qr-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}.mc-qr-actions button {
  margin: 0;
  font-size: 0.82rem;
}/* 短信登录：验证码 + 发码按钮同一行 */
.mc-sms-code-row {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
  width: 100%;
}.mc-sms-code-row input {
  flex: 1 1 auto;
  min-width: 0;
}.mc-sms-code-row button {
  flex: 0 0 auto;
  margin: 0;
  white-space: nowrap;
}/* 一人多组织：扫码登录后选择要进入的商家（2026-09-13） */
.mc-choose-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.75rem;
  max-height: 16rem;
  overflow-y: auto;
}.mc-choose-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  width: 100%;
  margin: 0;
  padding: 0.6rem 0.75rem;
  text-align: left;
  cursor: pointer;
}.mc-choose-item strong {
  font-size: 0.92rem;
  font-weight: 600;
}.mc-choose-item .mc-desc {
  margin: 0;
  font-size: 0.76rem;
}.mc-gate-footer {
  margin: 1.25rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  text-align: center;
}.mc-link-btn {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  color: var(--accent);
  font-size: inherit;
  cursor: pointer;
  text-decoration: underline;
  display: inline;
}.mc-register-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1rem;
  font-size: 0.78rem;
}.mc-register-steps span {
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  background: #f5f3ef;
  color: var(--muted);
}.mc-register-steps span.done {
  background: var(--accent-light);
  color: var(--accent);
}.mc-register-steps span.current {
  background: var(--accent);
  color: #fff;
}.mc-auth-body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}.mc-auth-confirm {
  max-width: 360px;
  padding: 1.5rem;
  text-align: center;
}.mc-auth-confirm h1 {
  margin-top: 0;
  font-size: 1.2rem;
}@media (max-width: 900px) {
  .mc-gate {
    grid-template-columns: 1fr;
  }
}

.os-store-row { cursor: pointer; }
.os-store-row:hover { background: var(--row-hover, #f7f5f0); }
.os-store-row-active { background: var(--row-sel-bg, #dce8e2); }
.os-store-meta { margin: 8px 0; }
.os-store-count {
  font-size: 0.85em;
  font-weight: normal;
  color: var(--muted, #8a8580);
}
.os-store-list-wrap { margin: 8px 0 16px; }
.os-store-empty {
  margin: 0;
  padding: 14px 12px;
  font-size: 13px;
  color: var(--muted, #8a8580);
  background: var(--row-hover, #f7f5f0);
  border: 1px dashed var(--line, #e8e4dc);
  border-radius: 8px;
}
.os-store-table-scroll {
  overflow: auto;
  max-height: min(260px, 42vh);
  border: 1px solid var(--line, #e8e4dc);
  border-radius: 8px;
}
.os-store-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.os-store-table th,
.os-store-table td {
  padding: 9px 12px;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid var(--line-soft, #f0ece6);
}
.os-store-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted, #8a8580);
  background: #faf8f5;
  white-space: nowrap;
}
.os-store-table tbody tr:last-child td { border-bottom: none; }
.os-store-row:hover td { background: var(--row-hover, #f7f5f0); }
.os-store-row-active td { background: var(--row-sel-bg, #dce8e2); }
.os-store-row-active td:first-child { box-shadow: inset 3px 0 0 var(--accent, #2f5d50); }
.os-store-col-name { font-weight: 600; min-width: 88px; }
.os-store-col-contact { white-space: nowrap; }
.os-store-col-city { white-space: nowrap; min-width: 72px; }
.os-store-col-addr {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted, #8a8580);
}
.os-store-col-code code.os-store-code {
  font-size: 12px;
  color: var(--muted, #8a8580);
}
.os-store-status {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1.4;
  white-space: nowrap;
}
.os-store-status--pending {
  color: #8a6d3b;
  background: #f5f0e6;
}
.os-store-status--active {
  color: #2f5d50;
  background: #e8f0ec;
}
.os-store-status--disabled {
  color: #8a8580;
  background: #f0ece6;
}
.os-geo-summary { margin: 8px 0 12px; }
.os-geo-card {
  border: 1px solid var(--line, #e8e4dc);
  border-radius: 8px;
  padding: 10px 12px;
  background: var(--row-hover, #f7f5f0);
}
#os-store-map.leaflet-container {
  z-index: 1;
}
.os-app-card {
  border: 1px solid var(--line, #e8e4dc);
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 10px;
}

.brand-panel-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.brand-panel-head h2 {
  margin: 0 0 0.25rem;
}

.brand-panel-actions {
  flex-shrink: 0;
}

.brand-table-wrap {
  overflow-x: auto;
}

.brand-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.86rem;
}

.brand-table th,
.brand-table td {
  border-bottom: 1px solid var(--line, #e8e4dc);
  padding: 0.55rem 0.45rem;
  text-align: left;
  vertical-align: middle;
}

.brand-table tbody tr.brand-row {
  cursor: pointer;
}

.brand-table tbody tr.brand-row:hover {
  background: var(--row-hover, #f7f5f0);
}

.brand-tag {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.75rem;
  background: #eef2f7;
  color: #4a5568;
}

.brand-tag.ok {
  background: #e8f5ee;
  color: #1f6b45;
}

.brand-tag.warn {
  background: #fff4e5;
  color: #9a5b00;
}
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: var(--muted);
}.mcp-nav {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-top: 0.75rem;
}.mcp-nav a,
.mcp-nav button.mcp-nav-item {
  display: block;
  text-align: left;
  margin: 0;
  padding: 0.45rem 0.65rem;
  font-size: 0.88rem;
  background: #fff;
  color: var(--text);
  border: 1px solid transparent;
  border-radius: 8px;
  text-decoration: none;
  cursor: pointer;
}.mcp-nav a:hover,
.mcp-nav button.mcp-nav-item:hover {
  background: #f5f3ef;
}.mcp-nav a.active,
.mcp-nav button.mcp-nav-item.active {
  background: var(--accent-light);
  border-color: #9bc4b4;
  color: var(--accent);
  font-weight: 600;
}.mcp-nav-group {
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--border, #e8e4dc);
}.mcp-nav-group-label {
  margin: 0 0 0.35rem 0.65rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}.mcp-nav-sub {
  padding-left: 0.35rem;
}.mcp-nav-sub a {
  font-size: 0.84rem;
}.mcp-nav-sub a::before {
  content: "· ";
  color: var(--muted);
}.mcp-quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 1rem 0 0.5rem;
}.mcp-quick-links a,
.mcp-quick-links button {
  margin: 0;
  text-decoration: none;
}.mcp-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.85rem;
}.mcp-badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  background: #f0eeea;
  color: var(--text);
  border: 1px solid var(--border);
}.mcp-badge.live {
  background: #e8f5ee;
  border-color: #9bc4b4;
  color: var(--accent);
}.mcp-badge.warn {
  background: #fff8e6;
  border-color: #e6c96a;
  color: #6b5200;
}.mcp-badge.bad {
  background: #f8e8e8;
  border-color: #e0b4b4;
  color: var(--bad);
}.mcp-progress {
  margin: 0.5rem 0 1rem;
}.mcp-progress-bar {
  height: 8px;
  background: #eceae6;
  border-radius: 4px;
  overflow: hidden;
}.mcp-progress-bar > span {
  display: block;
  height: 100%;
  background: var(--accent);
  border-radius: 4px;
  transition: width 0.25s ease;
}.mcp-progress-label {
  font-size: 0.8rem;
  color: var(--muted);
  margin-top: 0.35rem;
}.mcp-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}.mc-mall-share {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border, #e5e7eb);
}.mc-mall-catalog {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border, #e5e7eb);
}.mc-mall-catalog h4,
.mc-mall-share h4,
.mc-subheading {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
}.mc-subheading {
  margin-top: 1rem;
}.mc-catalog-pic-preview img {
  display: block;
  margin-top: 0.5rem;
  border-radius: 8px;
  border: 1px solid var(--border, #e5e7eb);
  object-fit: cover;
}.mc-catalog-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}.mc-catalog-table th,
.mc-catalog-table td {
  padding: 0.45rem 0.5rem;
  border-bottom: 1px solid var(--border, #e5e7eb);
  text-align: left;
  vertical-align: middle;
}.mc-catalog-actions button {
  font-size: 0.78rem;
}.mc-catalog-bind-cell {
  min-width: 12rem;
}.mc-catalog-bind-cell select {
  max-width: 11rem;
  margin-right: 0.35rem;
  font-size: 0.78rem;
}.mc-catalog-bind-save {
  font-size: 0.78rem;
  white-space: nowrap;
}.mc-catalog-chart-missing {
  color: #b45309;
  font-size: 0.82rem;
}.mc-catalog-chart-id {
  font-size: 0.78rem;
  word-break: break-all;
}.mc-btn-link {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.75rem;
  text-decoration: none;
  border-radius: 6px;
}.mcp-panel.hidden {
  display: none;
}.mcp-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1rem;
}.mcp-step {
  font-size: 0.78rem;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  background: #f5f3ef;
  color: var(--muted);
}.mcp-step.done {
  background: var(--accent-light);
  color: var(--accent);
}.mcp-step.current {
  background: var(--accent);
  color: #fff;
}.mcp-doc-links {
  display: grid;
  gap: 0.5rem;
}.mcp-doc-links a {
  color: var(--accent);
}.mcp-env-switch {
  display: flex;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}.mcp-env-switch button {
  margin: 0;
  font-size: var(--mc-text-sm, 0.8125rem);
  padding: 0.35rem 0.6rem;
  min-height: 1.85rem;
  background: #fff;
  color: var(--text);
  border: 1px solid var(--border);
}.mcp-env-switch button.active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}.mcp-delivery-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  margin-top: 0.75rem;
}.mcp-delivery-table th,
.mcp-delivery-table td {
  border: 1px solid var(--border);
  padding: 0.4rem 0.5rem;
  text-align: left;
  vertical-align: top;
}.mcp-delivery-table th {
  background: #f5f3ef;
  font-weight: 600;
}.mcp-delivery-table tr.delivered td {
  color: var(--accent);
}.mcp-delivery-table tr.failed td,
.mcp-delivery-table tr.pending td.status {
  color: var(--bad);
}.mcp-delivery-actions button {
  margin: 0;
  font-size: 0.78rem;
  padding: 0.25rem 0.45rem;
}.mcp-summary-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}.mcp-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: end;
  margin-bottom: 0.5rem;
}.mcp-filter-row label {
  margin-bottom: 0;
  min-width: 140px;
  font-size: var(--mc-text-sm, 0.8125rem);
}.mcp-filter-row button {
  margin-top: 0;
}@media (max-width: 900px) {
  .mcp-grid-2 {
    grid-template-columns: 1fr;
  }
}.mc-plugin-smoke {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px dashed var(--border, #e8e4dc);
}.mc-sidebar .mcp-env-switch {
  margin: 4px 2px;
}.mcp-tree {
  margin-top: 0.35rem;
  gap: 0;
}.mcp-tree-group {
  border-bottom: 1px solid #e8e4dc;
}.mcp-tree-group:last-child {
  border-bottom: none;
}.mcp-tree-head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border: none;
  background: transparent;
  color: var(--accent);
  font-size: var(--mc-text-sm, 0.8125rem);
  font-weight: 600;
  padding: 9px 10px;
  margin: 0;
  cursor: pointer;
  text-align: left;
  border-radius: 6px;
}.mcp-tree-head:hover {
  background: #f0ede7;
}.mcp-tree-group.open .mcp-tree-head {
  background: var(--accent-light);
}.mcp-tree-head .chev {
  flex-shrink: 0;
  width: 16px;
  text-align: center;
  font-size: 11px;
  color: #9aa39d;
  transition: transform 0.15s ease;
  transform: rotate(-90deg);
}.mcp-tree-group.open .mcp-tree-head .chev {
  transform: rotate(0deg);
}.mcp-tree-body {
  display: none;
  padding: 2px 4px 8px;
  background: #fff;
  border-radius: 6px;
}.mcp-tree-group.open .mcp-tree-body {
  display: block;
}.mcp-tree-body a {
  display: block;
  color: #33413b;
  padding: 6px 10px 6px 22px;
  border-radius: 6px;
  font-size: var(--mc-text-sm, 0.8125rem);
  margin: 1px 0;
  background: transparent;
  border: none;
}.mcp-tree-body a:hover {
  background: #f5f3ef;
  color: var(--accent);
}.mcp-tree-body a.active {
  background: var(--accent-light);
  color: var(--accent);
  font-weight: 600;
  box-shadow: inset 3px 0 0 var(--accent);
}.mcp-tree-body a.mcp-nav-external {
  color: var(--muted);
}.mcp-tree-subgroup {
  margin: 2px 0 4px;
}.mcp-tree-subhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 5px 10px 5px 18px;
  border: none;
  background: transparent;
  color: #55655c;
  font-size: var(--mc-text-xs, 0.75rem);
  font-weight: 600;
  cursor: pointer;
  border-radius: 6px;
}.mcp-tree-subhead:hover {
  background: #f5f3ef;
}.mcp-tree-subhead .chev {
  font-size: 10px;
  opacity: 0.6;
  transition: transform 0.15s ease;
}.mcp-tree-subgroup.open .mcp-tree-subhead .chev {
  transform: rotate(180deg);
}.mcp-tree-subbody {
  display: none;
  padding-left: 6px;
}.mcp-tree-subgroup.open .mcp-tree-subbody {
  display: block;
}.mcp-tree-subbody a {
  padding-left: 28px;
  font-size: var(--mc-text-xs, 0.75rem);
}.mcp-ext-frame {
  width: 100%;
  border: 0;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  background: #fff;
  border-radius: 4px;
  display: block;
}/* 子页顶部说明条（跨域嵌入「尺码组」的失败态）。`flex: none` 是必须的：
  `#panel-ext` 是列向 flex，不加会被 iframe 挤扁成一条线，等于没提示。 */
.mc-ext-notice {
  flex: none;
  margin: 0 0 8px;
  padding: 8px 12px;
  border-radius: 4px;
  background: #fff7e6;
  border: 1px solid #ffd591;
  color: #874d00;
  font-size: var(--mc-text-sm, 0.85rem);
  line-height: 1.5;
}
/* 账户组窄页：与「我的小程序」同宽（720px），避免全宽拉伸；三卡靠上紧挨 */
#panel-overview,
#panel-account,
#panel-account-entity,
#panel-account-roles,
#panel-cap-open {
  max-width: 720px;
  width: 100%;
  align-self: start;
  height: auto;
  flex: none;
  margin: 0;
}
.mc-overview-panel {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}.mc-overview-hero {
  margin-bottom: 0.15rem;
}.mc-overview-hero h2 {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
  letter-spacing: 0.02em;
}.mc-overview-lead {
  margin: 0;
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.55;
}.mc-overview-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  gap: 0.75rem;
}.mc-stat-card {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.65rem 0.8rem;
  border-radius: 12px;
  border: 1px solid var(--border, #e8e4dc);
  background: linear-gradient(165deg, #fff 0%, #faf8f5 100%);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}.mc-stat-card:hover {
  border-color: #c8ddd4;
  box-shadow: 0 4px 14px rgba(45, 106, 79, 0.08);
  transform: translateY(-1px);
}.mc-stat-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: none;
  color: var(--muted);
}.mc-stat-value {
  font-size: 1.05rem;
  font-weight: 650;
  color: var(--text);
  line-height: 1.3;
}.mc-stat-card--live .mc-stat-value {
  color: var(--accent, #2d6a4f);
}.mc-stat-card--warn {
  border-color: #e8d4a8;
  background: linear-gradient(165deg, #fffbf3 0%, #fff8eb 100%);
}.mc-stat-card--warn .mc-stat-value {
  color: #9a6700;
}.mc-stat-card--bad {
  border-color: #e8c4c4;
  background: linear-gradient(165deg, #fff8f8 0%, #fff0f0 100%);
}.mc-stat-card--bad .mc-stat-value {
  color: var(--bad, #b42318);
}.mc-overview-section {
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  border: 1px solid var(--border, #e8e4dc);
  background: #fdfcfa;
}.mc-overview-section-title {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--text);
}.mc-overview-progress {
  margin-bottom: 0.85rem;
}.mc-overview-progress .mcp-progress-bar {
  height: 10px;
  background: #eceae6;
  border-radius: 999px;
}.mc-overview-progress .mcp-progress-bar > span {
  background: linear-gradient(90deg, var(--accent, #2d6a4f), #52b788);
  border-radius: 999px;
}.mc-overview-progress .mcp-progress-label {
  margin-top: 0.45rem;
  font-size: 0.84rem;
}.mc-overview-checklist {
  margin-top: 0.15rem;
}.mc-checklist-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.55rem;
}.mc-checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  border: 1px solid transparent;
  background: #fff;
  font-size: 0.86rem;
  line-height: 1.45;
  transition: background 0.15s ease, border-color 0.15s ease;
}.mc-checklist-item:hover {
  border-color: #ddd8cf;
  background: #fff;
}.mc-checklist-item.done {
  border-color: #d4eadf;
  background: #f4fbf7;
}.mc-checklist-item.todo {
  border-color: #eceae6;
  color: var(--muted);
}.mc-checklist-mark {
  flex-shrink: 0;
  width: 1.15rem;
  text-align: center;
  font-weight: 700;
  color: var(--accent, #2d6a4f);
}.mc-checklist-item.todo .mc-checklist-mark {
  color: #b0a99a;
}.mc-checklist-text {
  flex: 1;
}.mc-overview-empty {
  margin: 0;
  padding: 0.75rem 0;
  font-size: 0.88rem;
  color: var(--muted);
}.mc-overview-quick {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.65rem;
}.mc-overview-actions {
  padding-top: 0.25rem;
  border-top: 1px dashed var(--border, #e8e4dc);
}.mcp-hint-tooltip {
  position: fixed;
  z-index: 9999;
  max-width: min(320px, calc(100vw - 24px));
  padding: 0.55rem 0.75rem;
  border-radius: 10px;
  font-size: 0.82rem;
  line-height: 1.5;
  color: #f8fafc;
  background: rgba(15, 23, 42, 0.92);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  pointer-events: none;
}.mcp-hint-tooltip.hidden {
  display: none !important;
}@media (max-width: 560px) {
  .mc-overview-stats {
    grid-template-columns: 1fr 1fr;
  }

  .mc-checklist-grid {
    grid-template-columns: 1fr;
  }

  .mc-overview-quick {
    grid-template-columns: 1fr 1fr;
  }
}

.mc-map {
  width: 100%;
  height: 280px;
  margin: 12px 0;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 8px;
}

.mc-checkgrid {
  display: grid;
  gap: 6px;
  max-height: 240px;
  overflow-y: auto;
}

.mc-checkline {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}

/* 概览「开通分销系统 / 添加分销系统管理」二维码弹窗（.mcw-modal 壳内） */
.mc-dist-open-card {
  max-width: 360px;
}

/* ── 个人中心（#panel-account 三卡：用户 / 主体 / 角色）：版式对齐分销管理台的账户页 ──
   一主题一张卡；每项一行「标签列 + 取值列」；标识类取值 code 芯片、角色/权限码 tag 药丸。
   三片共用 data-route="account"，显隐由 router 对 .mcp-panel 的遍历统一处理。 */
.mcp-acct-row {
  display: flex;
  gap: 12px;
  padding: 5px 0;
  border-bottom: 1px solid var(--border, #e8e4dc);
}

.mcp-acct-row:last-child {
  border-bottom: none;
}

.mcp-acct-label {
  flex: 0 0 132px;
  font-size: 0.82rem;
  line-height: 1.6;
  color: var(--muted, #6b6b6b);
}

.mcp-acct-val {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.8rem;
  line-height: 1.6;
  word-break: break-all;
}

.mcp-acct-code {
  padding: 1px 6px;
  border-radius: 4px;
  background: var(--accent-light, #e8f2ee);
  font-size: 0.75rem;
  word-break: break-all;
}

.mcp-acct-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 4px 0 10px;
}

.mcp-acct-tags:last-child {
  padding-bottom: 0;
}

.mcp-acct-tag {
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--accent-light, #e8f2ee);
  color: var(--accent, #2f5d50);
  font-size: 0.75rem;
}

.mcp-acct-empty {
  font-size: 0.8rem;
  color: var(--muted, #6b6b6b);
}

/* 窄屏：标签列定宽（132px）会把取值挤成窄条，改为上下堆叠 */
@media (max-width: 560px) {
  .mcp-acct-row {
    flex-direction: column;
    gap: 2px;
  }

  .mcp-acct-label {
    flex: 0 0 auto;
  }
}

/* build-bump-20260924: fix drama chunk pruning orphan cleanup */

.pcat-meta {
  margin: 0.35rem 0 0.75rem;
}
.pcat-toolbar {
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0.65rem;
}
.pcat-toolbar label {
  margin: 0;
  font-size: 0.82rem;
}
.pcat-buckets {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.35rem 0 0.75rem;
}
.pcat-bucket {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  min-width: 7.5rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  cursor: pointer;
  text-align: left;
}
.pcat-bucket.is-active {
  border-color: var(--accent, #2f5d50);
  background: var(--accent-light, #e8f2ee);
}
.pcat-bucket code {
  font-size: 0.78rem;
}
.pcat-table tbody tr {
  cursor: pointer;
}
.pcat-row-active td {
  background: #f5f3ef;
}

/* 团队（BS-05 子账号）：成员名册 + 邀请码。2026-10-13 主人授权落地。
   弹窗复用 drama.css 的 .mcw-modal 壳（全站同一套），状态药丸复用 .mcp-badge。 */
.mc-team-tabs {
  display: flex;
  gap: 6px;
  margin: 12px 0 14px;
  border-bottom: 1px solid var(--border);
}
.mc-team-tab {
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 0.4rem 0.9rem;
  cursor: pointer;
  color: var(--text);
  font-size: 0.92rem;
}
.mc-team-tab.active {
  border-bottom-color: var(--accent);
  color: var(--accent);
  font-weight: 600;
}
/* 邀请页顶部的「开授权」提示（2026-10-14）：说明要显眼，但别抢「生成邀请码」的位 */
.mc-team-invite-tip {
  margin: 0 0 14px;
  padding: 10px 12px;
  background: #fff8e6;
  border-left: 3px solid #ffb65d;
  border-radius: 0 4px 4px 0;
}
.mc-team-invite-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.mc-team-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.mc-team-cell {
  min-width: 0;
}
/* 头像 + 名字列（2026-10-14 主人令：员工列表要显示头像和昵称）。
   头像挂在**原有的名字格里面**，不新增顶层 `.mc-team-cell` —— 顶层多一格会改
   整行 flex 配比（1:1:2:auto）。 */
.mc-team-name {
  flex: 1 1 200px;
  display: flex;
  align-items: center;
  gap: 10px;
}
/* 右侧文字列：`min-width:0` 是让长 person_id 能正常省略/折行的前提 */
.mc-team-namecol {
  min-width: 0;
}
.mc-team-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
  background: var(--border);
}
/* 首字占位：没有头像时的脸 —— 与真头像同一尺寸，换行时行高不跳 */
.mc-team-avatar-ph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  font-weight: 600;
  color: #666;
}
/* 名册行第三行：加入时间（「扫码加入 …」/「开通 …」）——比 person_id 再弱一档 */
.mc-team-joined {
  margin-top: 2px;
  font-size: 0.82rem;
}
.mc-team-roles {
  flex: 2 1 280px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
}
.mc-team-role-opt {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.88rem;
  white-space: nowrap;
}
.mc-team-ops {
  display: flex;
  gap: 8px;
  flex: 0 0 auto;
}
#team-qr-body {
  text-align: center;
}
#team-qr-body img {
  display: block;
  margin: 0 auto 10px;
}

.mc-tab-row {
  flex-wrap: wrap;
  gap: 8px;
}

.mc-tab-row .active {
  font-weight: 600;
}

/* ── 商城订单（分销风：冷灰底区块 + 描边表 + 右侧详情卡）── */
.mc-mo-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.mc-mo-head h2 {
  margin-top: 0;
}

.mc-mo-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 14px;
  align-items: start;
}

@media (max-width: 960px) {
  .mc-mo-layout {
    grid-template-columns: 1fr;
  }
}

.mc-mo-main {
  min-width: 0;
  background: #f0f3f8;
  border: 1px solid #dde3ec;
  border-radius: 10px;
  padding: 10px 12px 12px;
}

.mc-mo-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.mc-mo-tabs button {
  margin: 0;
  padding: 5px 14px;
  font-size: 0.8125rem;
  border-radius: 999px;
  border: 1px solid #c8d0dc;
  background: #fff;
  color: #475569;
  cursor: pointer;
}

.mc-mo-tabs button:hover {
  border-color: #94a3b8;
  background: #f8fafc;
}

.mc-mo-tabs button.active {
  font-weight: 600;
  color: #0f766e;
  border-color: #5eead4;
  background: #ecfdf5;
}

.mc-mo-list {
  min-height: 120px;
}

.mc-mo-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  margin-top: 10px;
  font-size: 0.8125rem;
}

.mc-mo-table-wrap {
  overflow-x: auto;
  background: #fff;
  border: 1px solid #dde3ec;
  border-radius: 8px;
}

.mc-mo-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}

.mc-mo-table th,
.mc-mo-table td {
  padding: 10px 12px;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid #edf1f7;
}

.mc-mo-table th {
  font-weight: 600;
  color: #64748b;
  background: #f8fafc;
  white-space: nowrap;
}

.mc-mo-table td.muted {
  color: #94a3b8;
  font-size: 0.75rem;
}

.mc-mo-table tbody tr:last-child td {
  border-bottom: none;
}

.mc-mo-row {
  cursor: pointer;
  transition: background 0.12s ease;
}

.mc-mo-row:hover {
  background: #f1f5f9;
}

.mc-mo-row-selected {
  background: #e8f0f8 !important;
  box-shadow: inset 3px 0 0 #2563a8;
}

.mc-mo-oid {
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size: 0.75rem;
  color: #334155;
  word-break: break-all;
}

.mc-mo-contact {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  color: #334155;
}

.mc-mo-address {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: #1e293b;
}

.mc-mo-goods {
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #1e293b;
}

.mc-mo-badge {
  display: inline-block;
  padding: 2px 8px;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 6px;
  line-height: 1.35;
  background: #edf1f7;
  color: #64748b;
}

.mc-mo-badge--pending_pay {
  background: #ecfdf5;
  color: #0f766e;
}

.mc-mo-badge--paid,
.mc-mo-badge--shipped {
  background: #e8f0f8;
  color: #2563a8;
}

.mc-mo-badge--completed {
  background: #e4efeb;
  color: #2f5d50;
}

.mc-mo-badge--cancelled,
.mc-mo-badge--refunded {
  background: #f1f5f9;
  color: #94a3b8;
}

.mc-mo-aside {
  min-width: 0;
}

.mc-mo-detail-card {
  background: #fff;
  border: 1px solid #dde3ec;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
  min-height: 200px;
  max-height: min(72vh, 680px);
  display: flex;
  flex-direction: column;
}

.mc-mo-detail-body {
  padding: 14px 16px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  font-size: 0.875rem;
  color: #334155;
}

.mc-mo-detail-body h3 {
  margin: 0 0 8px;
  font-size: 0.95rem;
  color: #1e293b;
}

.mc-mo-detail-body h4 {
  margin: 14px 0 6px;
  font-size: 0.85rem;
  color: #64748b;
}

.mc-mo-detail-body ul {
  margin: 0;
  padding-left: 1.1rem;
}

.mc-mo-meta {
  display: grid;
  gap: 6px;
  margin: 10px 0;
  font-size: 0.8125rem;
}

.mc-mo-meta dt {
  color: #94a3b8;
  font-weight: 500;
}

.mc-mo-meta dd {
  margin: 0 0 4px;
  color: #1e293b;
}

.mc-mo-empty {
  margin: 0;
  padding: 24px 8px;
  text-align: center;
  color: #94a3b8;
  font-size: 0.875rem;
}

.mc-mo-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 12px 16px 14px;
  border-top: 1px solid #edf1f7;
  margin-top: auto;
  flex-shrink: 0;
  background: #fff;
  position: sticky;
  bottom: 0;
  z-index: 2;
}

.mc-mo-actions:empty {
  display: none;
  border: none;
  padding: 0;
}

.mc-mo-actions button.mc-mo-btn-refund,
.mc-mo-actions button.warn {
  color: #fff;
  background: #dc2626;
  border-color: #b91c1c;
}

.mc-mo-actions button.mc-mo-btn-refund:hover,
.mc-mo-actions button.warn:hover {
  background: #b91c1c;
}

.mc-mo-action-hint {
  flex: 1 1 100%;
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: #64748b;
  line-height: 1.4;
}

.mc-mo-callout {
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #fed7aa;
  background: #fff7ed;
  font-size: 0.8125rem;
  color: #9a3412;
}

.mc-mo-callout strong {
  color: #c2410c;
}

.mc-badge.warn,
.mc-mo-after-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 0 6px;
  font-size: 11px;
  font-weight: 600;
  color: #b45309;
  background: #fff7ed;
  border-radius: 4px;
  vertical-align: middle;
}

.mcw-works-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.15rem;
  position: sticky;
  top: 52px;
  z-index: 18;
  background: #fff;
  padding: 0.35rem 0 0.5rem;
  box-shadow: 0 1px 0 #e8e4dc;
}.mcw-works-head h2 {
  margin: 0;
}.mcw-works-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}.mcw-works-toolbar #mcw-new-work,
.mcw-works-toolbar #mcw-back-works {
  margin: 0;
  height: 2rem;
  min-height: 2rem;
  padding: 0 0.85rem;
  font-size: 0.82rem;
  line-height: 1.2;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}.mcw-works-toolbar .mcw-toolbar-check {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  cursor: pointer;
}.mcw-works-toolbar .mcw-toolbar-check input {
  width: auto;
  margin: 0;
}.mcw-works-toolbar .mcw-list-only.hidden,
.mcw-works-toolbar .mcw-edit-only.hidden,
.mcw-works-toolbar #mcw-back-works.hidden {
  display: none;
}.mcw-list-tools {
  display: inline-flex;
  align-items: stretch;
  gap: 0.4rem;
}.mcw-list-tools #mcw-refresh-episodes {
  margin: 0;
  height: 2rem;
  min-height: 2rem;
  padding: 0.35rem 0.85rem;
  font-size: 0.82rem;
  line-height: 1.2;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}.mcw-view-toggle {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 8px;
  overflow: hidden;
  height: 2rem;
  box-sizing: border-box;
}.mcw-view-toggle button {
  margin: 0;
  min-width: 3.25rem;
  padding: 0 0.75rem;
  font-size: 0.82rem;
  line-height: 1.2;
  border: none;
  border-radius: 0;
  border-right: 1px solid var(--border, #e8e4dc);
  background: #fff;
  color: var(--text);
  cursor: pointer;
  box-sizing: border-box;
}.mcw-view-toggle button:last-child {
  border-right: none;
}.mcw-view-toggle button.active {
  background: var(--accent-light, #e8f5ef);
  color: var(--accent, #2d6a4f);
  font-weight: 600;
}.mcw-works-host {
  min-height: 2rem;
}/* 分页出口（core.js setWorksMore）：一页满 WORKS_PAGE_SIZE 条才显「加载更多」 */
.mcw-works-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  margin-top: 0.7rem;
}.mcw-works-more.hidden {
  display: none;
}.mcw-works-more-done {
  text-align: center;
  width: 100%;
}
/* 作品列表查询（状态分档 + 时间）：条件随 GET /episodes 上去、在服务端筛（分页后
   前端只有一页，就地筛会让页码与总数失真），见 core.js worksDateRange/loadEpisodes。
   分档与时间都复用 .mcw-view-toggle 的段控样式，不另造一套。 */
.mcw-works-filters {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4rem;
  margin-top: 0.55rem;
}.mcw-works-filters.hidden {
  display: none;
}.mcw-works-filter-line {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}.mcw-date-range {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}.mcw-date-range.hidden {
  display: none;
}.mcw-date-range input {
  width: auto;
  margin: 0;
}.mcw-works-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.65rem;
}.mcw-works-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}.mcw-works-card:hover {
  border-color: #c8ddd4;
  box-shadow: 0 4px 12px rgba(45, 106, 79, 0.08);
}.mcw-works-card-cover {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: #f3f4f6;
  display: block;
}.mcw-works-card-cover--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.82rem;
  color: var(--muted);
  background: linear-gradient(135deg, #f5f3ef 0%, #eceae6 100%);
}.mcw-works-card-cover-wrap {
  position: relative;
}.mcw-works-card-cover-wrap .mcw-works-card-cover {
  width: 100%;
}.mcw-works-cover-preview {
  position: absolute;
  right: 0.5rem;
  bottom: 0.5rem;
  margin: 0;
  padding: 0.22rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.2;
  white-space: nowrap;
  min-width: max-content;
  z-index: 1;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}.mcw-works-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.65rem 0.75rem 0.75rem;
  flex: 1;
}.mcw-works-card-head {
  display: block;
}.mcw-works-card-title {
  display: block;
  font-size: 0.92rem;
  line-height: 1.35;
  word-break: break-word;
}.mcw-works-card-meta {
  margin: 0 !important;
  font-size: 0.78rem;
}.mcw-works-card-life,
.mcw-works-card-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  min-height: 1.25rem;
  font-size: 0.78rem;
}.mcw-works-card-life .mcp-badge,
.mcw-works-card-status .mcp-badge {
  white-space: nowrap;
}.mcw-works-td-status {
  white-space: nowrap;
}.mcw-works-td-status .mcp-badge {
  white-space: nowrap;
}.mcw-works-card-actions {
  margin-top: auto;
  padding-top: 0.35rem;
  flex-wrap: nowrap;
}.mcw-works-card-actions button {
  white-space: nowrap;
  flex: 1 1 auto;
  padding-left: 0.45rem;
  padding-right: 0.45rem;
}.mcw-works-table-scroll {
  overflow-x: auto;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 10px;
  background: #fff;
}.mcw-works-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.86rem;
}.mcw-works-table th,
.mcw-works-table td {
  padding: 0.5rem 0.65rem;
  text-align: left;
  border-bottom: 1px solid #eee;
  vertical-align: middle;
}.mcw-works-table th {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
  background: #faf8f5;
  white-space: nowrap;
}.mcw-works-table tbody tr:last-child td {
  border-bottom: none;
}.mcw-works-table tbody tr:hover {
  background: #fafafa;
}.mcw-works-td-title {
  min-width: 8rem;
  max-width: 16rem;
}.mcw-works-td-actions {
  white-space: nowrap;
}.mcw-works-td-actions .mcw-ep-actions {
  flex-wrap: nowrap;
}#mcw-wizard-view {
  max-width: none;
  position: relative;
}.mcw-wiz-context {
  margin: 0 0 0.45rem;
  padding: 0.35rem 0.55rem;
  border-radius: 6px;
  background: #f0f9ff;
  color: #0c4a6e;
  font-size: 0.86rem;
}.mcw-wiz-lead {
  margin: 0 0 0.55rem;
}.mcw-wiz-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}/* showStep 靠 .hidden 切步；style.css 的 `.hidden{display:none}` 与本文件的
   `.mcw-wiz-body{display:flex}` 同优先级、本文件后加载 ⇒ 隐藏曾经空转，四个步
   面板同时摊在页面上、样片卡片被顶到最下面（2026-09-22 实测）。显式压过。 */.mcw-wiz-body.hidden {
  display: none !important;
}#mcw-gen-hint {
  white-space: pre-line;
}/* 样片页头行改多行（诚实状态 + 缺前置镜时的补建指引），而 setStatus 走
   textContent ⇒ 只能靠 pre-line 把 \n 当断行；元素是那个 .mc-banner 的 div
   （2026-09-22）。 */#mcw-wizard-view .mcw-cl-card > h3 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}#mcw-wizard-view .mcw-cl-card > h4 {
  margin: 0.85rem 0 0.35rem;
  font-size: 0.95rem;
}#mcw-wizard-view .mcw-cl-card > h4:first-child {
  margin-top: 0;
}#mcw-wizard-view .mcw-pick-card {
  background: #fff;
}.mcw-wiz-gate-card {
  padding-bottom: 0.85rem;
}.mcw-wiz-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  background: linear-gradient(transparent, #faf9f7 18%);
  padding: 0.75rem 0 0.5rem;
  margin-top: 0.25rem;
}.mcw-wiz-actions button {
  margin-top: 0;
}#panel-drama:has(#mcw-wizard-view:not(.hidden)) .mcw-works-head,
#panel-drama:has(#mcw-smart-view:not(.hidden)) .mcw-works-head {
  background: #faf9f7;
}.mcw-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 0.75rem;
  padding: 0.35rem 0;
  font-size: 0.82rem;
  position: sticky;
  top: 96px;
  z-index: 17;
  background: #faf9f7;
  box-shadow: 0 1px 0 #e8e4dc;
}.mcw-steps span {
  padding: 0.35rem 0.75rem;
  border-radius: 8px;
  border: 1px solid #e8e4dc;
  background: #f5f3ef;
  color: #55655c;
}.mcw-steps span.done {
  background: var(--accent-light, #e8f5ef);
  border-color: var(--accent, #2d6a4f);
  color: var(--accent, #2d6a4f);
}.mcw-steps span.current {
  background: #fff;
  border-color: var(--accent, #2d6a4f);
  color: var(--accent, #2d6a4f);
  font-weight: 600;
}.mcw-garments {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}.mcw-garment {
  text-align: left;
  margin-top: 0;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  padding: 0.5rem 0.7rem;
  cursor: pointer;
}.mcw-garment.active {
  border-color: var(--accent);
  background: var(--accent-light);
}.mcw-actor-thumb {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
  display: block;
  margin-bottom: 4px;
  background: #f3f4f6;
}.mcw-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 60;
  overscroll-behavior: contain;
}.mcw-modal.hidden {
  display: none;
}.mcw-modal-card {
  background: #fff;
  border-radius: 10px;
  padding: 1rem 1.25rem;
  max-width: 760px;
  width: min(92vw, 760px);
  max-height: 80vh;
  overflow: auto;
}.mcw-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
}.mcw-gates-frame {
  width: 100%;
  min-height: 640px;
  border: 1px solid #e5e2dc;
  border-radius: 10px;
  background: #faf9f7;
  margin-top: 0.55rem;
}.mcw-task-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid #eee;
  font-size: 0.9rem;
}.mcw-task-row:last-child {
  border-bottom: none;
}.mcw-episodes {
  margin-bottom: 0.5rem;
}.mcw-ep-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem 1rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid #eee;
  font-size: 0.9rem;
}.mcw-ep-row:last-child {
  border-bottom: none;
}.mcw-ep-actions {
  display: flex;
  gap: 0.4rem;
}.mcw-ep-actions button {
  margin-top: 0;
  padding: 0.3rem 0.7rem;
  font-size: 0.82rem;
}.mcw-quota {
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  margin-bottom: 0.6rem;
  background: #fafafa;
}.mcw-mode-card {
  max-width: 520px;
  width: calc(100% - 2rem);
}.mcw-mode-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0;
}.mcw-mode-actions button {
  flex: 1 1 140px;
}.mcw-mode-hint {
  font-size: 0.82rem;
  margin-top: 0.5rem;
}.mcw-smart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
  position: sticky;
  top: 0;
  z-index: 2;
  background: #faf9f7;
  padding: 0.35rem 0;
}#mcw-smart-view {
  max-width: none;
  position: relative;
}#mcw-smart-view.is-blocking .mcw-smart-card,
#mcw-smart-view.is-blocking .mcw-smart-feedback,
#mcw-smart-view.is-blocking .mcw-smart-actions,
#mcw-smart-view.is-blocking .mcw-smart-head button {
  pointer-events: none;
}/* 消息条被 scrollIntoView 贴到视口顶端时，正好落在 56px 高的 .mc-topbar（sticky,
   z-index 20）底下 ⇒ 整条看不见，看着像「点了没反应」。
   2026-09-27 实测：校验未过那条约 43px 高的提示，viewY=0、完整压在顶栏后面。
   scroll-margin-top 让 scrollIntoView 停在顶栏下面。 */
.mc-banner {
  scroll-margin-top: 4.5rem;
}

/* 2026-09-27：遮罩从 #mcw-smart-view 内提到短剧面板根、并改贴视口。
   ① 第 1 步点「智能生成」跑链时 #mcw-smart-view 还是隐藏的，原来那套罩不出来，
      点了只看得到按钮转圈 ⇒ 像是没反应；② 原来 position:absolute 只罩得住面板那一块。
   z-index 100：压过粘性步骤条(40~80)与 .mc-topbar(20)，罩住整个界面。
   padding-top 5rem > 顶栏 56px，卡片不跟顶栏叠在一起。 */
.mcw-smart-blocking {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: flex-start;
  padding-top: 5rem;
  justify-content: center;
  background: rgba(250, 249, 247, 0.82);
  backdrop-filter: blur(2px);
}.mcw-smart-blocking.hidden {
  display: none !important;
}
/* 校验未过：不是「进行中」，别转圈骗人，只把话摆在他眼前 */
.mcw-smart-blocking.is-error .mcw-smart-blocking-spinner {
  display: none;
}.mcw-smart-blocking.is-error .mcw-smart-blocking-card {
  border-color: #e7b4b4;
}.mcw-smart-blocking-card {
  text-align: center;
  padding: 1.5rem 1.25rem;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e8e4df;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
  max-width: 18rem;
}.mcw-smart-blocking-spinner {
  width: 2.25rem;
  height: 2.25rem;
  margin: 0 auto 0.75rem;
  border: 3px solid #0ea5e9;
  border-right-color: transparent;
  border-radius: 50%;
  animation: mcw-spin 0.75s linear infinite;
}#mcw-smart-blocking-text {
  font-weight: 600;
  margin: 0 0 0.35rem;
}
/* ===== 生成进度遮罩（点生成类按钮时弹的那层，复用监控长轮询） =====
   布局：视口居中、高度封顶，事件流自己滚；别让整层跟着事件条数往下长。 */
.mcw-gen-progress {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3.5rem 1rem 1.5rem;
  background: rgba(250, 249, 247, 0.82);
  backdrop-filter: blur(2px);
}.mcw-gen-progress.hidden {
  display: none !important;
}
.mcw-gp-card {
  display: flex;
  flex-direction: column;
  width: min(46rem, 100%);
  max-height: 100%;
  padding: 1rem 1.1rem 0.85rem;
  border: 1px solid #e8e4df;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
.mcw-gen-progress.is-done .mcw-gp-card {
  border-color: #b7dfc4;
}
.mcw-gen-progress.is-bad .mcw-gp-card {
  border-color: #e7b4b4;
}
.mcw-gp-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  flex: 0 0 auto;
}
.mcw-gp-head h3 {
  margin: 0;
  font-size: 1rem;
}
.mcw-gp-min {
  flex: 0 0 auto;
  font-size: 0.78rem;
  padding: 0.2rem 0.6rem;
}
#mcw-gp-sub {
  flex: 0 0 auto;
  margin: 0.35rem 0 0;
}
/* 阶段条：跟生成监控面板同一套观感 */
.mcw-gp-stages {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.55rem 0 0;
  flex: 0 0 auto;
}
.mcw-gp-stage {
  padding: 0.12rem 0.5rem;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 999px;
  font-size: 0.76rem;
  color: #8a8177;
  background: #faf9f7;
}
.mcw-gp-stage.is-on {
  border-color: #0ea5e9;
  color: #0369a1;
  background: #eaf6fe;
  font-weight: 600;
}
.mcw-gp-stage.is-bad {
  border-color: #e7b4b4;
  color: var(--bad, #b23b3b);
  background: #fdf3f3;
}
.mcw-gp-sum {
  flex: 0 0 auto;
  margin: 0.55rem 0 0;
}
/* 当前事件：只留一行，超了省略 —— 要看全文去下面的事件流 */
.mcw-gp-now {
  display: flex;
  gap: 0.45rem;
  align-items: baseline;
  margin: 0.55rem 0 0;
  padding: 0.4rem 0.55rem;
  border-radius: 8px;
  background: #f7f9fb;
  font-size: 0.82rem;
  flex: 0 0 auto;
}
.mcw-gp-now-tag {
  flex: 0 0 auto;
  font-weight: 600;
  color: #0369a1;
}
.mcw-gp-feed {
  flex: 1 1 auto;
  min-height: 8rem;
  margin: 0.55rem 0 0;
  padding: 0.15rem 0.35rem 0.15rem 0;
  overflow-y: auto;
  font-size: 0.78rem;
  border-top: 1px dashed var(--border, #e8e4dc);
}
.mcw-gp-ev {
  display: flex;
  gap: 0.45rem;
  align-items: baseline;
  padding: 0.16rem 0;
  border-bottom: 1px dashed var(--border, #e8e4dc);
}
.mcw-gp-ev-time {
  flex: 0 0 auto;
  color: var(--muted, #6a6258);
  font-variant-numeric: tabular-nums;
}
.mcw-gp-ev-msg {
  flex: 1 1 auto;
  word-break: break-word;
}
.mcw-gp-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex: 0 0 auto;
  margin-top: 0.6rem;
}
.mcw-gp-state {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mcw-gp-foot-btns {
  display: flex;
  gap: 0.4rem;
  flex: 0 0 auto;
}
/* 收起后的小条：钉右下角，不挡操作 */
.mcw-gp-pill {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 100;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  max-width: min(28rem, calc(100vw - 2rem));
  padding: 0.45rem 0.6rem;
  border: 1px solid #e8e4df;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
  font-size: 0.8rem;
}.mcw-gp-pill.hidden {
  display: none !important;
}
.mcw-gp-pill-dot {
  flex: 0 0 auto;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #0ea5e9;
  animation: mcw-spin 1.4s linear infinite;
}
.mcw-gp-pill-dot.is-done {
  background: #22a06b;
  animation: none;
}
.mcw-gp-pill-dot.is-bad {
  background: #b23b3b;
  animation: none;
}
#mcw-gp-pill-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mcw-gp-pill button {
  flex: 0 0 auto;
  font-size: 0.76rem;
  padding: 0.15rem 0.5rem;
}
@media (max-width: 900px) {
  .mcw-gen-progress {
    padding: 1rem 0.6rem;
  }
  .mcw-gp-card {
    max-height: 100%;
  }
  .mcw-gp-feed {
    min-height: 5rem;
  }
}
.mcw-smart-rerun-hint {
  margin-top: 0.35rem;
  color: #64748b;
  font-size: 0.82rem;
}.mcw-smart-regen-shots-hint {
  margin-top: 0.4rem;
  color: #64748b;
  font-size: 0.8rem;
  line-height: 1.4;
}.mcw-smart-status {
  font-size: 0.86rem;
  margin: 0 0 0.5rem;
  padding: 0.35rem 0.55rem;
  border-radius: 6px;
  background: #f0f9ff;
  color: #0c4a6e;
}.mcw-smart-status.ok {
  background: #f0f9ff;
  color: #0c4a6e;
}.mcw-smart-status.bad {
  background: #fef2f2;
  color: #991b1b;
}.mcw-smart-status.loading::before {
  content: "";
  display: inline-block;
  width: 0.75rem;
  height: 0.75rem;
  margin-right: 0.35rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: mcw-spin 0.7s linear infinite;
  vertical-align: -0.1rem;
}@keyframes mcw-spin {
  to {
    transform: rotate(360deg);
  }
}.mcw-btn-loading {
  opacity: 0.75;
  pointer-events: none;
}.mcw-smart-head h3 {
  margin: 0;
}.mcw-smart-card {
  border: none;
  padding: 0;
  background: transparent;
  margin-bottom: 0.75rem;
}.mcw-smart-card h4 {
  margin: 0.75rem 0 0.35rem;
  font-size: 0.95rem;
}.mcw-smart-card h4:first-child {
  margin-top: 0;
}.mcw-cl-layout {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}.mcw-cl-eq {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  align-items: start;
}.mcw-cl-band {
  width: 100%;
}.mcw-cl-col {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}.mcw-cl-main {
  min-width: 0;
}.mcw-cl-card {
  border: 1px solid #e5e2dc;
  border-radius: 10px;
  padding: 1rem 1.1rem;
  background: #faf8f5;
  box-sizing: border-box;
}.mcw-cl-card h4:first-child {
  margin-top: 0;
}.mcw-cl-algo {
  min-width: 0;
  width: 100%;
}.mcw-cl-shot-block {
  width: 100%;
}.mcw-cl-shot-head h4 {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
}/* 单镜对照工具栏两个开关按钮：aria-pressed=true = 当前已「全选 / 全部展开」 */
.mcw-cl-shot-head .mcw-toggle-btn {
  margin-left: 0.35rem;
  white-space: nowrap;
}.mcw-cl-shot-head .mcw-toggle-btn[aria-pressed="true"] {
  color: var(--accent, #2d6a4f);
  background: var(--accent-light, #e8f5ef);
  border-color: var(--accent, #2d6a4f);
}.mcw-cl-shot-head .mcw-toggle-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}.mcw-cl-shot-pairs {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}.mcw-cl-shot-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  align-items: start;
}.mcw-cl-shot-row > .mcw-shot-card,
.mcw-cl-shot-row > .mcw-algo-sub {
  margin: 0;
  min-width: 0;
  height: 100%;
  box-sizing: border-box;
}.mcw-cl-shot-row > .mcw-shot-card {
  padding: 0;
  overflow: hidden;
}.mcw-cl-shot-row > .mcw-algo-sub {
  border: 1px solid #e5e2dc;
  border-radius: 10px;
  padding: 0;
  background: #faf8f5;
  overflow: hidden;
}.mcw-shot-card .mcw-shot-fold {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: hidden;
}.mcw-shot-fold-sum {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  padding: 0.5rem 0.7rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #4b5563;
  user-select: none;
}.mcw-shot-fold-sum::-webkit-details-marker {
  display: none;
}.mcw-shot-fold-sum::before {
  content: "▸";
  display: inline-block;
  width: 0.9rem;
  color: #9ca3af;
  transition: transform 0.15s ease;
}.mcw-shot-fold[open] > .mcw-shot-fold-sum::before {
  transform: rotate(90deg);
}.mcw-shot-fold[open] > .mcw-shot-fold-sum {
  border-bottom: 1px solid #ebe6df;
  background: #f5f2ec;
}.mcw-shot-fold-title {
  min-width: 0;
}.mcw-shot-fold-meta {
  margin-left: auto;
  font-weight: 500;
  font-size: 0.75rem;
  color: #9a9288;
}.mcw-shot-fold-body {
  padding: 0.65rem 0.85rem 0.85rem;
}.mcw-algo-sub.mcw-shot-fold > .mcw-shot-fold-body {
  background: #faf8f5;
}.mcw-shot-card .mcw-shot-customer {
  padding: 0;
}.mcw-cl-draft {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}.mcw-cl-draft-row {
  gap: 0.55rem;
}.mcw-cl-draft label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.86rem;
  font-weight: 500;
}.mcw-cl-draft input,
.mcw-cl-draft textarea,
.mcw-cl-draft select {
  width: 100%;
  box-sizing: border-box;
}.mcw-cl-assets-summary {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid #e8e4de;
  border-radius: 8px;
  background: #faf8f5;
}.mcw-cl-assets-row {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  font-size: 0.86rem;
}.mcw-cl-assets-row > span {
  flex: 0 0 5.5rem;
  color: #666;
}.mcw-cl-assets-row > b {
  flex: 1;
  font-weight: 600;
  word-break: break-word;
}.mcw-cl-assets-row-cast > div {
  flex: 1;
  min-width: 0;
}.mcw-cl-cast-groups {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}.mcw-cl-cast-group {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  max-width: 9.2rem;
}.mcw-cl-pair {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.28rem;
  background: #fff;
  border: 1px solid #e5e2dc;
  border-radius: 8px;
}.mcw-cl-pair-item {
  display: inline-flex;
  line-height: 0;
}.mcw-cl-pair img,
.mcw-cl-pair-ph {
  width: 2.85rem;
  height: calc(2.85rem * 4 / 3);
  object-fit: cover;
  border-radius: 5px;
  background: #f3f1ee;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  color: #888;
  flex: 0 0 auto;
}.mcw-cl-pair-plus {
  color: #9ca3af;
  font-size: 0.8rem;
  line-height: 1;
}.mcw-cl-pair-cap {
  font-size: 0.72rem;
  color: #555;
  line-height: 1.3;
  word-break: break-all;
}.mcw-cl-assets-card {
  max-width: 1080px;
  width: min(96vw, 1080px);
  max-height: 88vh;
}
#mcw-garment-modal {
  z-index: 80;
}.mcw-cl-routing-hint {
  margin: 0.35rem 0 0.6rem;
}.mcw-cl-plan-banner {
  margin: 0.35rem 0 0.15rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid #ece8e2;
  border-radius: 6px;
  background: #f6f4ef;
  font-size: 0.82rem;
  line-height: 1.5;
}.mcw-algo-prompt-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}.mcw-algo-sub {
  border: 1px solid #ece8e2;
  border-radius: 8px;
  padding: 0.7rem 0.8rem;
  background: #fff;
}.mcw-algo-sub h5 {
  margin: 0 0 0.4rem;
  font-size: 0.88rem;
}.mcw-algo-sub h6 {
  margin: 0.55rem 0 0.3rem;
  font-size: 0.78rem;
  color: #666;
  font-weight: 600;
}.mcw-algo-cats {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}.mcw-algo-cat {
  border-top: 1px dashed #ece8e2;
  padding-top: 0.45rem;
}.mcw-algo-cat:first-child {
  border-top: none;
  padding-top: 0;
}.mcw-algo-cat h6 {
  margin: 0 0 0.3rem;
}.mcw-algo-shot-meta {
  margin: 0 0 0.45rem;
}.mcw-shot-prompt--neg {
  background: #faf5f5;
  border: 1px solid #f0e0e0;
}.mcw-algo-params {
  margin-top: 0.55rem;
  border: 1px solid #ebe6df;
  border-radius: 8px;
  background: #fbfaf8;
  overflow: hidden;
}.mcw-algo-params > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.7rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #4b5563;
  user-select: none;
}.mcw-algo-params > summary::-webkit-details-marker {
  display: none;
}.mcw-algo-params > summary::before {
  content: "▸";
  display: inline-block;
  width: 0.9rem;
  color: #9ca3af;
  transition: transform 0.15s ease;
}.mcw-algo-params[open] > summary::before {
  transform: rotate(90deg);
}.mcw-algo-params[open] > summary {
  border-bottom: 1px solid #ebe6df;
  background: #f5f2ec;
}.mcw-algo-params-count {
  margin-left: auto;
  font-weight: 500;
  font-size: 0.75rem;
  color: #9a9288;
}.mcw-algo-params-hint {
  margin: 0;
  padding: 0.35rem 0.75rem 0;
}.mcw-algo-vendor {
  margin-top: 0.45rem;
}.mcw-algo-params-json {
  margin: 0;
  padding: 0.65rem 0.75rem;
  font-size: 0.75rem;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
  color: #374151;
  max-height: 22rem;
  overflow: auto;
  background: #fff;
}.mcw-algo-prompt-cats {
  margin-top: 0.15rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid #efeae3;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}.mcw-algo-prompt-row {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 0.45rem 0.65rem;
  align-items: start;
  padding: 0.4rem 0.55rem;
  border-top: 1px solid #f0ebe4;
  font-size: 0.78rem;
  line-height: 1.4;
}.mcw-algo-prompt-row:first-child {
  border-top: none;
}.mcw-algo-prompt-k {
  color: #78716c;
  font-weight: 600;
  padding-top: 0.05rem;
}.mcw-algo-prompt-v {
  color: #3f3a34;
  white-space: pre-wrap;
  word-break: break-word;
  min-width: 0;
}.mcw-algo-kv-list {
  margin: 0;
  display: grid;
  gap: 0.25rem 0.5rem;
}.mcw-algo-kv {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  gap: 0.35rem;
  font-size: 0.78rem;
  align-items: start;
}.mcw-algo-kv dt {
  margin: 0;
  color: #78716c;
}.mcw-algo-kv dd {
  margin: 0;
  word-break: break-word;
  white-space: pre-wrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.74rem;
}.mcw-mi-src {
  margin-bottom: 0.35rem;
}.mcw-mi-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.25rem 0 0.5rem;
}.mcw-mi-chip {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  background: #ede9e3;
  color: #44403c;
  font-size: 0.78rem;
}.mcw-mi-list {
  margin: 0.25rem 0 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.85rem;
  color: #57534e;
}.mcw-mi-list li {
  margin: 0.2rem 0;
}.mcw-mi-kind {
  display: inline-block;
  min-width: 2rem;
  font-weight: 600;
  color: #292524;
}.mcw-smart-checks label {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  margin: 0.35rem 0;
  font-weight: 400;
  font-size: 0.88rem;
}.mcw-smart-checks input {
  width: auto;
  margin-top: 0.15rem;
}.mcw-smart-grays {
  color: #92400e;
  font-size: 0.85rem;
}.mcw-bind-list {
  margin: 0.35rem 0 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.85rem;
  color: #444;
}.mcw-bind-list li {
  margin: 0.2rem 0;
}.mcw-bind-warn {
  color: #b45309;
}.mcw-quality-row,
.mcw-cap-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin: 0.35rem 0 0.5rem;
}.mcw-qt-opt,
.mcw-cap-opt {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.86rem;
  font-weight: 400;
  cursor: pointer;
}.mcw-qt-opt input,
.mcw-cap-opt input {
  width: auto;
  margin: 0;
}.mcw-gate-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.5rem 0;
  font-size: 0.85rem;
}.mcw-shot-routing {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  margin: 0;
}.mcw-shot-routing-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0.35rem 0 0.75rem;
}.mcw-shot-routing th,
.mcw-shot-routing td {
  border-bottom: 1px solid #ece8e2;
  padding: 0.35rem 0.45rem;
  text-align: left;
}.mcw-shot-routing th {
  color: #666;
  font-weight: 600;
}.mcw-shot-cards {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0.35rem 0 0.75rem;
}.mcw-shot-card {
  border: 1px solid #ece8e2;
  border-radius: 8px;
  padding: 0.65rem 0.8rem;
  background: #fff;
}.mcw-shot-card--off {
  opacity: 0.55;
}.mcw-shot-pick {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  color: #55655c;
  margin: 0 0 0.55rem;
}.mcw-shot-pick input {
  width: auto;
}.mcw-shot-warns,
.mcw-plan-warns {
  margin: 0.4rem 0 0;
  padding-left: 1.15rem;
  color: #b45309;
  font-size: 0.8rem;
}.mcw-warn--bad,
.mcw-shot-warns .mcw-warn--bad,
.mcw-plan-warns .mcw-warn--bad {
  color: #b91c1c;
  font-weight: 600;
}.mcw-shot-card--bad {
  border-color: #fca5a5;
  background: #fff5f5;
}.mcw-plan-warns {
  margin: 0.2rem 0 0.75rem;
}.mcw-shot-card h5 {
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
}.mcw-shot-card p {
  margin: 0.2rem 0;
}.mcw-shot-tester {
  margin-top: 0.5rem;
}.mcw-shot-tester summary {
  cursor: pointer;
  color: #666;
  font-size: 0.82rem;
}.mcw-shot-prompt {
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.78rem;
  background: #f7f5f1;
  padding: 0.5rem 0.65rem;
  border-radius: 6px;
  margin: 0.4rem 0 0;
}.mcw-smart-feedback {
  margin-top: 0.75rem;
}.mcw-fb-group {
  margin-top: 0.5rem;
}.mcw-fb-label {
  display: block;
  font-size: 0.82rem;
  color: #666;
  margin-bottom: 0.35rem;
}.mcw-fb-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}.mcw-fb-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.8rem;
  padding: 0.2rem 0.45rem;
  border: 1px solid #ddd;
  border-radius: 999px;
  background: #faf9f7;
  cursor: pointer;
  user-select: none;
}.mcw-fb-chip:has(input:checked) {
  border-color: #f10180;
  background: #fff0f6;
  color: #c4006a;
}.mcw-fb-chip input {
  margin: 0;
}.mcw-smart-feedback textarea {
  width: 100%;
  margin-top: 0.35rem;
  box-sizing: border-box;
}.mcw-ref-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.5rem;
}.mcw-ref-thumb {
  width: 96px;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  align-items: stretch;
}.mcw-ref-thumb img,
.mcw-ref-vid {
  width: 96px;
  height: 128px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #e5e2dc;
  background: #f5f3ef;
}.mcw-ref-vid {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  color: #666;
}.mcw-ref-name {
  font-size: 0.72rem;
  color: #666;
  line-height: 1.25;
  word-break: break-all;
}.mcw-ref-rm {
  margin: 0;
  padding: 0.15rem 0.35rem;
  font-size: 0.72rem;
  min-height: 0;
}.mcw-pick-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
  align-items: stretch;
}@media (max-width: 760px) {
  .mcw-pick-row {
    grid-template-columns: 1fr;
  }
}.mcw-pick-card {
  border: 1px solid #e5e2dc;
  border-radius: 10px;
  padding: 0.65rem 0.75rem 0.75rem;
  background: #fff;
  display: flex;
  flex-direction: column;
  min-height: 0;
}.mcw-pick-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  flex-wrap: wrap;
  flex-shrink: 0;
  margin-bottom: 0.45rem;
}.mcw-pick-head h4 {
  margin: 0;
  font-size: 0.92rem;
}.mcw-pick-head .mcw-pick-more {
  margin: 0;
  padding: 0.2rem 0.55rem;
  font-size: 0.78rem;
}.mcw-pick-filter {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
  min-width: 0;
}.mcw-pick-filter input[type="search"] {
  width: 9.5rem;
  min-width: 5.5rem;
  height: 1.8rem;
  padding: 0.15rem 0.4rem;
  font-size: 0.8rem;
  border: 1px solid #ddd;
  border-radius: 6px;
}.mcw-pick-filter button {
  margin: 0;
  padding: 0.2rem 0.55rem;
  font-size: 0.78rem;
  white-space: nowrap;
}.mcw-pick-scroll {
  flex: 0 0 auto;
  overflow-x: hidden;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, var(--mcw-tile-w));
  grid-auto-rows: var(--mcw-tile-h);
  gap: var(--mcw-tile-gap);
  align-content: start;
  justify-content: start;
  height: calc(var(--mcw-tile-h) * 2 + var(--mcw-tile-gap));
  --mcw-tile-w: 5rem;
  --mcw-tile-h: calc(var(--mcw-tile-w) * 4 / 3);
  --mcw-tile-gap: 0.45rem;
  padding: 1px;
}.mcw-pick-scroll-modal {
  height: auto;
  max-height: calc(var(--mcw-tile-h) * 4 + var(--mcw-tile-gap) * 3);
}.mcw-tile {
  position: relative;
  width: var(--mcw-tile-w);
  height: var(--mcw-tile-h);
  margin: 0;
  padding: 0;
  border: 2px solid #e5e2dc;
  border-radius: 8px;
  background: #f3f4f6;
  color: var(--text);
  cursor: pointer;
  overflow: visible;
  aspect-ratio: 3 / 4;
}.mcw-tile:hover {
  border-color: #c4bdb3;
  z-index: 5;
}.mcw-tile.active {
  border-color: var(--accent, #2d6a4f);
  box-shadow: 0 0 0 1px var(--accent, #2d6a4f);
}.mcw-tile-img-wrap {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 6px;
  overflow: hidden;
  background: #ece8e0;
}.mcw-tile-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}.mcw-tile-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 0.78rem;
  color: #9ca3af;
  user-select: none;
}.mcw-hover-card {
  display: none;
}.mcw-pick-tooltip {
  position: fixed;
  z-index: 10050;
  min-width: 10.5rem;
  max-width: 14rem;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  background: #1f2937;
  color: #f9fafb;
  font-size: 0.78rem;
  line-height: 1.45;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  pointer-events: none;
  text-align: left;
}.mcw-pick-tooltip b {
  display: block;
  font-size: 0.84rem;
  margin-bottom: 0.2rem;
  color: #fff;
}.mcw-pick-tooltip .mc-desc {
  color: #d1d5db;
  font-size: 0.76rem;
  margin: 0.12rem 0 0;
}.mcw-adv-bind-lines {
  margin: 0.35rem 0 0.75rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 8px;
  background: #faf9f7;
}
.mcw-adv-bind-line {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  padding: 0.28rem 0;
  font-size: 0.92rem;
}
.mcw-adv-bind-line + .mcw-adv-bind-line {
  border-top: 1px dashed #ece8e0;
}
.mcw-adv-bind-label {
  flex: 0 0 3rem;
  font-weight: 600;
  color: var(--text, #1a1a1a);
}
.mcw-adv-bind-val {
  flex: 1;
  color: var(--text, #1a1a1a);
}
.mcw-adv-bind-val.muted {
  color: var(--muted, #8a8178);
  font-weight: 400;
}
.mcw-bind-card {
  max-width: 920px;
  width: min(96vw, 920px);
}
.mcw-tile-cap {
  display: block;
  font-size: 0.72rem;
  line-height: 1.2;
  margin-top: 0.2rem;
  color: var(--muted, #5c6b63);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mcw-pick-scroll > .mc-desc {
  grid-column: 1 / -1;
  margin: 0;
}.mcw-cast-queue {
  border: 1px dashed #d4cfc6;
  border-radius: 10px;
  padding: 0.6rem 0.75rem;
  margin-bottom: 1rem;
  min-height: 2.5rem;
  background: #faf8f5;
}.mcw-cast-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid #ece8e0;
}.mcw-cast-row:last-child {
  border-bottom: none;
}.mcw-cast-row .mcw-cast-label b {
  font-size: 0.92rem;
}.mcw-gen-actions {
  margin-top: 0.75rem;
}.mcw-gen-actions .primary {
  min-width: 8rem;
}.da-embed {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}.da-embed-frame {
  width: 100%;
  border: 0;
  flex: 1 1 auto;
  min-height: calc(100vh - 140px);
  height: 100%;
  background: #fff;
  display: block;
}

/* —— 高级编排结构化 UI（CM-03 v1） —— */
/* 全局 style.css 的 button{color:#fff} 会让浅底 Tab/表单控件发白；本区禁止白字 */
#mcw-advanced-panel {
  color: var(--text, #1a1a1a);
}
#mcw-advanced-panel:not(.hidden) {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.85rem;
}
#mcw-advanced-panel.hidden {
  display: none !important;
}
#mcw-advanced-panel > .mcw-adv-toolbar,
#mcw-advanced-panel > #mcw-adv-status {
  flex: 1 1 100%;
  width: 100%;
  box-sizing: border-box;
}
#mcw-advanced-panel h3,
#mcw-advanced-panel h4,
#mcw-advanced-panel label,
#mcw-advanced-panel .mc-desc,
#mcw-advanced-panel #mcw-adv-status,
#mcw-advanced-panel #mcw-adv-ctx,
#mcw-advanced-panel #mcw-adv-summary {
  color: var(--text, #1a1a1a);
}
#mcw-advanced-panel .mc-desc {
  color: var(--muted, #5c6b63);
}
#mcw-advanced-panel input,
#mcw-advanced-panel textarea,
#mcw-advanced-panel select {
  color: var(--text, #1a1a1a);
  background: #fff;
}
#mcw-advanced-panel input[readonly] {
  color: var(--muted, #5c6b63);
  background: #f3f1ed;
}
#mcw-advanced-panel button {
  color: var(--text, #1a1a1a);
  background: #fff;
  border: 1px solid var(--border, #e8e4dc);
}
#mcw-advanced-panel button.primary,
#mcw-advanced-panel button.secondary {
  color: var(--accent, #2d6a4f);
  background: var(--accent-light, #e8f5ef);
  border: 1px solid var(--accent, #2d6a4f);
}
.mcw-adv-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0;
}
.mcw-adv-ep-display {
  margin: 0 0 0.15rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text, #1a1a1a);
  line-height: 1.35;
}
.mcw-adv-mode-label {
  margin: 0 0 0.2rem;
  font-size: 0.78rem;
  color: var(--muted, #666);
}
.mcw-adv-title {
  margin: 0 0 0.2rem;
  color: var(--text, #1a1a1a);
}
.mcw-adv-toolbar-actions {
  margin: 0;
  flex-wrap: wrap;
}
#mcw-adv-status:empty {
  display: none;
}
#mcw-adv-status.ok {
  color: var(--accent, #2d6a4f);
}
.mcw-adv-card {
  flex: 1 1 280px;
  min-width: min(100%, 260px);
  max-width: 100%;
  margin: 0;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 10px;
  background: #fafaf8;
  color: var(--text, #1a1a1a);
  box-sizing: border-box;
}
.mcw-adv-card[data-adv-card="shots"] {
  flex: 2 1 420px;
  min-width: min(100%, 320px);
}
.mcw-adv-card[data-adv-card="confirm"] {
  flex: 1 1 240px;
}
.mcw-adv-card h4 {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
  color: var(--text, #1a1a1a);
}
.mcw-adv-grid {
  gap: 0.55rem 0.85rem;
}
.mcw-adv-card label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.82rem;
  margin-bottom: 0.45rem;
  color: var(--text, #1a1a1a);
}
.mcw-adv-card input,
.mcw-adv-card textarea,
.mcw-adv-card select {
  width: 100%;
  box-sizing: border-box;
  color: var(--text, #1a1a1a);
  background: #fff;
}
.mcw-adv-beats {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.mcw-adv-beat-row {
  display: grid;
  grid-template-columns: minmax(3.5rem, 4.5rem) minmax(7.5rem, 10rem) 1fr auto;
  gap: 0.4rem;
  align-items: center;
}
.mcw-adv-beat-intent {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.82rem;
  margin: 0;
}
.mcw-adv-beat-intent select {
  width: 100%;
}
@media (max-width: 520px) {
  .mcw-adv-beat-row {
    grid-template-columns: 1fr 1fr;
  }
}
.mcw-adv-shot-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}
.mcw-adv-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.mcw-adv-tab {
  margin: 0;
  padding: 0.35rem 0.7rem;
  font-size: 0.82rem;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 8px;
  background: #fff;
  color: var(--text, #1a1a1a);
  cursor: pointer;
}
.mcw-adv-tab.active {
  background: var(--accent-light, #e8f5ef);
  border-color: var(--accent, #2d6a4f);
  color: var(--accent, #2d6a4f);
  font-weight: 600;
}
.mcw-adv-shot-ops {
  display: flex;
  gap: 0.35rem;
}
.mcw-adv-shot-form {
  padding-top: 0.25rem;
  color: var(--text, #1a1a1a);
}
.mcw-adv-shot-form .mcp-grid-2 {
  gap: 0.55rem 0.85rem;
}
.mcw-adv-check {
  flex-direction: row !important;
  align-items: center;
  gap: 0.4rem !important;
  font-weight: 400;
  color: var(--text, #1a1a1a);
}
.mcw-adv-check input {
  width: auto;
}

.mcw-smart-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  background: linear-gradient(transparent, #faf9f7 18%);
  padding: 0.75rem 0 0.5rem;
  margin-top: 0.5rem;
}

@media (max-width: 900px) {
  .mcw-works-head {
    top: 0;
  }
  .mcw-steps {
    top: 56px;
  }
  #mcw-smart-view {
    max-width: none;
  }
  .mcw-cl-layout {
    flex-direction: column;
  }
  .mcw-cl-eq,
  .mcw-cl-shot-row {
    grid-template-columns: 1fr;
  }
  .mcw-cl-main {
    width: 100%;
    max-width: none;
  }
  .mcw-cl-algo {
    width: 100%;
    min-width: 0;
  }
  .mcw-smart-actions button,
  .mcw-wiz-actions button {
    flex: 1 1 calc(50% - 0.25rem);
  }
  .mcw-smart-actions button.primary,
  .mcw-wiz-actions button.primary {
    flex-basis: 100%;
  }
}

/* TPL2-05 · G-C-A 三件套（智能模式 view §4.5） */
.mcw-flow-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  list-style: none;
  margin: 0.35rem 0 0.45rem;
  padding: 0;
  counter-reset: mcwflow;
}
.mcw-flow-steps li {
  counter-increment: mcwflow;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 5.6rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid #e5e2dc;
  border-radius: 8px;
  background: #fff;
  font-size: 0.78rem;
}
.mcw-flow-steps li::before {
  content: counter(mcwflow);
  color: #9ca3af;
  font-size: 0.68rem;
}
.mcw-flow-steps b {
  font-weight: 600;
  color: #1f2937;
}
.mcw-flow-steps span {
  color: #6b7280;
}
.mcw-flow-anchor {
  border-left: 3px solid #c4b8a8;
}
.mcw-gca-panel {
  border-left: 3px solid #6b5b95;
}
.mcw-gca-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0.35rem 0 0.5rem;
}
.mcw-gca-meta {
  font-size: 0.82rem;
  color: #5c574f;
}
.mcw-gca-run-id code {
  font-size: 0.78rem;
  word-break: break-all;
}
.mcw-gca-rounds {
  margin-top: 0.5rem;
}
.mcw-gca-round {
  margin: 0.5rem 0;
  padding: 0.35rem 0.5rem;
  border: 1px solid #e8e4dc;
  border-radius: 6px;
  background: #faf9f7;
}
.mcw-gca-round-summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.mcw-gca-round-summary::-webkit-details-marker {
  display: none;
}
.mcw-gca-verdict-badge {
  font-size: 0.72rem;
}
.mcw-gca-triad {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 0.65rem;
}
@media (max-width: 960px) {
  .mcw-gca-triad {
    grid-template-columns: 1fr;
  }
}
.mcw-gca-col {
  min-width: 0;
  padding: 0.35rem;
  background: #fff;
  border-radius: 4px;
  border: 1px solid #eee9e0;
}
.mcw-gca-col h6 {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #6b5b95;
}
.mcw-gca-logline {
  font-style: italic;
}
.mcw-gca-score-list {
  margin: 0.25rem 0 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.82rem;
}
.mcw-gca-corridor-fails {
  margin: 0 0 0.75rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--mc-border, #d8dee6);
  border-radius: 6px;
  background: var(--mc-surface-muted, #f6f8fa);
}
.mcw-gca-fail-list {
  margin: 0.35rem 0 0;
  padding-left: 1.25rem;
  font-size: 0.875rem;
}
.mcw-gca-fail-list code {
  font-size: 0.8125rem;
}
.mcw-gca-directives {
  margin: 0.35rem 0;
  padding-left: 1.1rem;
  font-size: 0.82rem;
}

/* plan_runs 档案抽检 */
.mcw-plan-runs-archive summary {
  cursor: pointer;
  list-style: none;
}
.mcw-plan-runs-archive summary::-webkit-details-marker {
  display: none;
}
.mcw-plan-runs-title {
  display: inline;
  margin: 0;
  font-size: 1rem;
}
.mcw-plan-runs-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0.5rem 0;
}
.mcw-plan-runs-toolbar select {
  margin-left: 0.35rem;
  max-width: 14rem;
}
.mcw-plan-runs-table-wrap {
  overflow-x: auto;
  max-height: 220px;
  overflow-y: auto;
  border: 1px solid #e8e4dc;
  border-radius: 6px;
}
.mcw-plan-runs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}
.mcw-plan-runs-table th,
.mcw-plan-runs-table td {
  padding: 0.35rem 0.45rem;
  border-bottom: 1px solid #eee9e0;
  text-align: left;
  vertical-align: top;
}
.mcw-plan-runs-table th {
  position: sticky;
  top: 0;
  background: #faf9f7;
  z-index: 1;
}
.mcw-plan-runs-row {
  cursor: pointer;
}
.mcw-plan-runs-row:hover,
.mcw-plan-runs-row.active {
  background: #f3f0ea;
}
.mcw-plan-runs-row-running {
  background: #fff8e6;
}
.mcw-plan-runs-row-running td:nth-child(5),
.mcw-plan-runs-row-running td:nth-child(6) {
  color: #b8860b;
  font-weight: 600;
}
.mcw-plan-run-id {
  font-size: 0.72rem;
  word-break: break-all;
}
.mcw-plan-runs-pager {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0.5rem 0;
}
.mcw-plan-run-detail {
  margin-top: 0.65rem;
  border-top: 1px dashed #e0dbd2;
  padding-top: 0.5rem;
}
.mcw-plan-runs-wrap {
  margin-bottom: 0.65rem;
}
.mcw-plan-runs-table-wrap.admin {
  max-height: 360px;
}
.mcw-plan-runs-toolbar input[type="text"] {
  margin-left: 0.35rem;
  max-width: 10rem;
  padding: 0.25rem 0.4rem;
  font-size: 0.82rem;
}

.mcw-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin: 0 0 0.6rem;
}
.mcw-section-head h4 {
  margin: 0;
}
/* TPL2-06 · 剧情提纲引用 */
.mcw-outline-ref-host {
  margin: 0.35rem 0 0.5rem;
}
.mcw-section-head .mcw-outline-ref-host {
  margin: 0;
}
.mcw-outline-ref-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.mcw-outline-dialog {
  border: 1px solid #d5dbe3;
  border-radius: 8px;
  padding: 0;
  max-width: min(640px, 92vw);
  width: 640px;
}
.mcw-outline-dialog::backdrop {
  background: rgba(20, 24, 28, 0.45);
}
.mcw-outline-modal-inner {
  padding: 14px 16px 16px;
}
.mcw-outline-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.mcw-outline-modal-head h4 {
  margin: 0;
  font-size: 1rem;
}
.mcw-outline-list {
  max-height: 360px;
  overflow-y: auto;
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.mcw-outline-card {
  border: 1px solid #e8e4dc;
  border-radius: 6px;
  padding: 10px 12px;
  background: #faf9f7;
}
.mcw-outline-card-meta {
  margin: 0 0 4px;
  font-size: 0.75rem;
  color: #6a6258;
}
.mcw-outline-card-log {
  margin: 0 0 6px;
  font-size: 0.86rem;
  line-height: 1.45;
}
.mcw-outline-card-tags {
  margin: 0 0 8px;
}

/* ===== 生成监控（商家控制台 · 只读 · 长轮询） ===== */
.mcmo-layout {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}
.mcmo-col {
  min-width: 0;
}
.mcmo-col--wall {
  max-height: 76vh;
  overflow-y: auto;
  padding-right: 4px;
}
.mcmo-col-title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
}
.mcmo-row {
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 8px;
  padding: 0.6rem 0.7rem;
  margin-bottom: 0.5rem;
  background: #fff;
  cursor: pointer;
}
.mcmo-row:hover {
  border-color: var(--accent, #4b7f6a);
}
.mcmo-row--on {
  border-color: var(--accent, #4b7f6a);
  background: #f6faf8;
}
.mcmo-row-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.mcmo-row-title {
  font-weight: 600;
  margin-right: auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mcmo-row .mcp-progress {
  margin: 0.45rem 0 0;
}
.mcmo-err {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--bad, #b23b3b);
  word-break: break-all;
}
.mcmo-detail-top {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.5rem;
}
.mcmo-back {
  display: none;
}
.mcmo-detail-head {
  border-bottom: 1px solid var(--border, #e8e4dc);
  padding-bottom: 0.5rem;
  margin-bottom: 0.6rem;
}
.mcmo-detail-name {
  margin: 0;
  font-size: 1.05rem;
}
.mcmo-stages {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.75rem;
}
.mcmo-stage {
  font-size: 0.74rem;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  background: #f0eeea;
  color: var(--muted, #6a6258);
  border: 1px solid var(--border, #e8e4dc);
}
.mcmo-stage--on {
  background: var(--accent, #4b7f6a);
  color: #fff;
  border-color: var(--accent, #4b7f6a);
}
.mcmo-stage--bad {
  border-style: dashed;
}
.mcmo-block {
  margin-bottom: 1rem;
}
.mcmo-block h4 {
  margin: 0 0 0.45rem;
  font-size: 0.88rem;
  color: var(--muted, #6a6258);
}.mcmo-tabs {
  margin-bottom: 0.5rem;
}.mcmo-tabpane {
  min-height: 1.5rem;
}
/* 逐镜 Tab 上有作业失败的镜：留个记号，不用逐个点开找 */
.mcmo-shot-tab--bad {
  border-color: #e0b4b4;
  color: var(--bad, #b23b3b);
}
.mcmo-kv {
  display: flex;
  gap: 0.6rem;
  font-size: 0.82rem;
  padding: 0.15rem 0;
}
.mcmo-k {
  flex: 0 0 68px;
  color: var(--muted, #6a6258);
}
.mcmo-v {
  flex: 1 1 auto;
  word-break: break-word;
  white-space: pre-wrap;
}
.mcmo-shot {
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 8px;
  padding: 0.6rem 0.7rem;
  margin-bottom: 0.6rem;
  background: #faf9f7;
}
.mcmo-shot-head {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 0.3rem;
}
.mcmo-shot-no {
  font-weight: 600;
}
.mcmo-shot-desc {
  margin: 0.2rem 0 0.5rem;
  font-size: 0.84rem;
  line-height: 1.45;
}
.mcmo-task {
  background: #fff;
  border: 1px solid var(--border, #e8e4dc);
  border-radius: 6px;
  padding: 0.35rem 0.5rem;
  margin-top: 0.4rem;
  font-size: 0.82rem;
}
.mcmo-task--bad {
  border-color: #e0b4b4;
}
.mcmo-task > summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  list-style: none;
}
.mcmo-task-label {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mcmo-parents,
.mcmo-other {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  font-size: 0.82rem;
  padding: 0.25rem 0;
  border-bottom: 1px dashed var(--border, #e8e4dc);
}
.mcmo-refs {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-top: 0.35rem;
}
.mcmo-refs img {
  width: 84px;
  height: 84px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid var(--border, #e8e4dc);
}
.mcmo-video video {
  width: 100%;
  max-width: 420px;
  border-radius: 6px;
  background: #000;
  margin-top: 0.35rem;
}
.mcmo-variants {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.82rem;
}
.mcmo-v-on {
  font-weight: 600;
}
.mcmo-events {
  max-height: 260px;
  overflow-y: auto;
  font-size: 0.78rem;
}
.mcmo-event {
  display: flex;
  gap: 0.4rem;
  align-items: baseline;
  padding: 0.15rem 0;
  border-bottom: 1px dashed var(--border, #e8e4dc);
}
.mcmo-ev-time {
  flex: 0 0 auto;
  color: var(--muted, #6a6258);
  font-variant-numeric: tabular-nums;
}
.mcmo-ev-msg {
  flex: 1 1 auto;
  word-break: break-word;
}
/* 宽屏：生成监控整页占满可视高度——顶栏 52 + 主区上下内边距 10/14 = 76
   （这个路由没有页脚元素）。两列各自在内部滚，页面本身不再往下长。
   窄屏（≤900px）另走单列铺开，见下面那条 media。 */
@media (min-width: 901px) {
  /* :not(.hidden) 是必须的：本文件按 id 写规则，会盖掉 style.css 的 `.hidden{display:none}` */
  #panel-drama-monitor:not(.hidden) {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 76px);
    min-height: 480px;
  }
  #panel-drama-monitor .mcmo-layout {
    flex: 1;
    min-height: 0;
    align-items: stretch;
    /* 显式定行高：默认 auto 行会跟着内容长，页面就又被撑出可视区 */
    grid-template-rows: minmax(0, 1fr);
  }
  #panel-drama-monitor .mcmo-col--wall {
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    padding-right: 4px;
  }
  /* 详情列自己不再整体滚：让「事件流 / 计费」那一块吃满剩余高度，
     滚动落进它内部的列表（列表长了在同一条 Tab 里滚，不影响别的块）。 */
  #panel-drama-monitor .mcmo-col--detail {
    min-height: 0;
    max-height: none;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-right: 4px;
  }
  #panel-drama-monitor .mcmo-detail-top {
    flex: 0 0 auto;
  }
  #panel-drama-monitor #mcmo-detail {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    /* 兜底：万一逐镜那块本身就比可视区高，仍然能整列滚 */
    overflow-y: auto;
  }
  /* 上面那块（逐镜明细 / 多版本产出）按内容自然高，别被压扁 */
  #panel-drama-monitor #mcmo-detail > .mcmo-block:not(.mcmo-block--events) {
    flex: 0 0 auto;
  }
  #panel-drama-monitor #mcmo-detail > .mcmo-block--events {
    flex: 1 1 auto;
    min-height: 12rem;
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
  }
  #panel-drama-monitor #mcmo-detail > .mcmo-block--events > h4,
  #panel-drama-monitor #mcmo-detail > .mcmo-block--events > .mcmo-tabs {
    flex: 0 0 auto;
  }
  /* 两个 Tab（事件流 / 计费）共用同一块高度：切换时高度不跳 */
  #panel-drama-monitor #mcmo-detail > .mcmo-block--events > .mcmo-tabpane {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
  }
  /* 高度交给外层容器定，这里不再自己封顶 */
  #panel-drama-monitor #mcmo-detail > .mcmo-block--events .mcmo-events {
    max-height: none;
    overflow-y: visible;
  }
}
@media (max-width: 900px) {
  .mcmo-layout {
    grid-template-columns: 1fr;
  }
  .mcmo-col--wall {
    max-height: none;
  }
  /* 窄屏：详情整屏覆盖，靠「← 返回」回到任务墙 */
  #panel-drama-monitor.mcmo-detail-open .mcmo-col--wall {
    display: none;
  }
  #panel-drama-monitor:not(.mcmo-detail-open) .mcmo-col--detail {
    display: none;
  }
  .mcmo-back {
    display: inline-block;
  }
}

/* 我的小程序面板 · 紧凑，手机可同屏操作 */
#panel-bminiapp {
  max-width: 720px;
  width: 100%;
  align-self: start;
  height: auto;
}
.bm-page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.45rem;
}
.bm-page-head h2 {
  margin: 0;
  white-space: nowrap;
}
.bm-page-head .mc-desc {
  margin: 0;
  flex: 0 1 auto;
}
.bm-section {
  margin: 0 0 0.55rem;
  padding: 0.55rem 0.65rem;
  background: #fafafa;
  border-radius: 6px;
}
.bm-section h3 {
  margin: 0 0 0.4rem;
  font-size: 0.82rem;
  font-weight: 650;
  color: #5a5348;
}
#panel-bminiapp .bm-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem 0.55rem;
}
#panel-bminiapp .bm-grid label {
  margin-bottom: 0;
  min-width: 0;
}
#panel-bminiapp .bm-grid label.bm-logo-field {
  grid-column: 1 / -1;
}
.bm-logo-preview {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.3rem;
  min-height: 36px;
}
.bm-logo-preview img {
  max-height: 36px;
  max-width: 120px;
  border-radius: 4px;
  border: 1px solid #eee6da;
  object-fit: contain;
  background: #fff;
}
.bm-logo-preview em {
  color: #aaa69d;
  font-size: 0.7rem;
  font-style: normal;
}
#panel-bminiapp .bm-grid input {
  width: 100%;
  box-sizing: border-box;
}
.bm-modules {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
}
.bm-module-row {
  display: flex;
  align-items: flex-start;
  margin: 0;
  padding: 0.35rem 0.45rem;
  border: 1px solid #eee6da;
  border-radius: 6px;
  background: #fff;
}
.bm-module-toggle {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  cursor: pointer;
  flex: 1;
  min-width: 0;
}
.bm-module-toggle input {
  width: 16px;
  height: 16px;
  margin: 0.15rem 0 0;
  flex-shrink: 0;
}
.bm-module-row.is-required {
  background: #f4f2ee;
  border-color: #e4ddd2;
}
.bm-module-row.is-required .bm-module-toggle {
  cursor: not-allowed;
}
.bm-module-name {
  font-weight: 650;
  font-size: 0.82rem;
  display: block;
}
.bm-module-badge {
  display: inline-block;
  margin-left: 0.3rem;
  padding: 0 0.28rem;
  border-radius: 3px;
  font-size: 0.65rem;
  font-weight: 650;
  color: #6b5200;
  background: #fff8e6;
  vertical-align: middle;
}
.bm-module-sub {
  display: block;
  color: #8a8276;
  font-size: 0.7rem;
  line-height: 1.3;
  margin: 0.1rem 0 0;
}
.bm-status {
  margin: 0;
  font-size: 0.78rem;
}
.bm-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.35rem 0 0.5rem;
}
.bm-jobs-title {
  margin: 0.35rem 0 0.3rem;
  font-size: 0.82rem;
}
.bm-jobs-host {
  margin-top: 0;
}
.bm-job-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.bm-job-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.25rem 0.55rem;
  align-items: baseline;
  padding: 0.4rem 0.5rem;
  background: #fafafa;
  border-radius: 6px;
  font-size: 0.78rem;
}
.bm-job-card .ver {
  font-weight: 650;
}
.bm-job-card .status {
  justify-self: start;
  padding: 0.05rem 0.35rem;
  border-radius: 4px;
  font-size: 0.72rem;
}
.bm-job-card .status.live {
  background: #e8f5ee;
  color: #1b6b45;
}
.bm-job-card .status.warn {
  background: #fff8e6;
  color: #6b5200;
}
.bm-job-card .status.bad {
  background: #f8e8e8;
  color: #a33;
}
.bm-job-card .meta {
  color: #8a8276;
  grid-column: 1 / -1;
}
.bm-job-card .bm-corp-confirm {
  grid-column: 1 / -1;
  justify-self: start;
}
@media (max-width: 560px) {
  .bm-page-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }
  #panel-bminiapp .bm-grid,
  .bm-modules {
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem;
  }
  .bm-module-sub {
    display: none;
  }
  .bm-actions {
    position: sticky;
    bottom: 0;
    z-index: 5;
    margin: 0.4rem -0.4rem 0;
    padding: 0.45rem 0.4rem 0.55rem;
    background: #fff;
    border-top: 1px solid #eee6da;
  }
  .bm-actions button {
    flex: 1 1 0;
    min-width: 0;
  }
  .bm-job-card {
    grid-template-columns: 1fr auto;
  }
}

/* 主题色卡选择器 */
.bm-color-picker {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.bm-color-picker input {
  width: 100%;
  box-sizing: border-box;
  margin-top: 0.15rem;
}
.bm-swatch-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.4rem;
}
.bm-swatch {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.35rem 0.1rem;
  border: 1px solid transparent;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  font-size: 0.7rem;
  color: #5a5348;
  line-height: 1.2;
}
.bm-swatch:hover {
  border-color: #d8d2c8;
}
.bm-swatch.selected {
  border-color: var(--accent, #c45c5c);
  box-shadow: 0 0 0 1px var(--accent, #c45c5c);
}
.bm-swatch:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.bm-swatch-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  flex: none;
  border: 1px solid rgba(0, 0, 0, 0.06);
}
.bm-swatch-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
  text-align: center;
}
.bm-swatch-custom .bm-swatch-dot {
  background: conic-gradient(from 45deg, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000);
}
@media (max-width: 560px) {
  .bm-swatch-list {
    grid-template-columns: repeat(5, 1fr);
  }
  .bm-swatch-dot {
    width: 20px;
    height: 20px;
  }
  .bm-swatch-name {
    font-size: 0.65rem;
  }
}

