/* 云丹漫剧 · 全客户端深色 / 浅色 / 跟随系统主题 */

:root {
  --zm-accent: #e49a3a;
  --zm-accent-strong: #c9751f;
  --zm-focus: #d88728;
  --zm-danger: #d94747;
  --zm-radius: 14px;
}

html[data-theme="dark"] {
  --zm-page: #0b0d12;
  --zm-page-soft: #10131a;
  --zm-surface: #171a22;
  --zm-surface-2: #20242d;
  --zm-surface-3: #282d38;
  --zm-overlay: rgba(5, 7, 10, .72);
  --zm-text: #f5f6f8;
  --zm-text-2: #c0c5cf;
  --zm-text-3: #8e96a3;
  --zm-border: rgba(255, 255, 255, .12);
  --zm-border-strong: rgba(255, 255, 255, .22);
  --zm-control: rgba(255, 255, 255, .075);
  --zm-control-hover: rgba(255, 255, 255, .13);
  --zm-shadow: 0 24px 70px rgba(0, 0, 0, .48);
  --zm-theme-color: #0b0d12;
}

html[data-theme="light"] {
  --zm-page: #f4f6f8;
  --zm-page-soft: #edf0f4;
  --zm-surface: #ffffff;
  --zm-surface-2: #f6f7f9;
  --zm-surface-3: #eceff3;
  --zm-overlay: rgba(28, 35, 46, .32);
  --zm-text: #171b22;
  --zm-text-2: #48515f;
  --zm-text-3: #687485;
  --zm-border: rgba(23, 31, 43, .12);
  --zm-border-strong: rgba(23, 31, 43, .22);
  --zm-control: rgba(31, 42, 57, .065);
  --zm-control-hover: rgba(31, 42, 57, .115);
  --zm-shadow: 0 24px 70px rgba(31, 42, 57, .16);
  --zm-theme-color: #f4f6f8;
  --el-bg-color: #fff;
  --el-bg-color-page: #f4f6f8;
  --el-bg-color-overlay: #fff;
  --el-text-color-primary: #1f2937;
  --el-text-color-regular: #455064;
  --el-text-color-secondary: #667085;
  --el-text-color-placeholder: #8a94a3;
  --el-border-color: #d6dbe3;
  --el-border-color-light: #e2e6ec;
  --el-border-color-lighter: #eceff3;
  --el-fill-color: #f2f4f7;
  --el-fill-color-light: #f6f7f9;
  --el-fill-color-lighter: #fafbfc;
  --el-fill-color-blank: #fff;
  --el-mask-color: rgba(22, 28, 38, .42);
  --el-box-shadow-light: 0 0 12px rgba(31, 42, 57, .12);
}

/* 神经画布历史上使用过两套命名，统一给出完整别名，避免 var() 未定义后整条声明失效。 */
html[data-theme] {
  --s-bg: var(--zm-page);
  --s-surface: var(--zm-surface);
  --s-surface-2: var(--zm-surface-2);
  --s-surface-3: var(--zm-surface-3);
  --s-border: var(--zm-border);
  --s-text: var(--zm-text);
  --s-text-2: var(--zm-text-2);
  --s-text-3: var(--zm-text-3);
  --ui-canvas: var(--zm-page);
  --ui-surface: var(--zm-surface);
  --ui-surface-1: var(--zm-surface);
  --ui-surface-2: var(--zm-surface-2);
  --ui-surface-3: var(--zm-surface-3);
  --ui-surface-muted: var(--zm-surface-2);
  --ui-surface-strong: var(--zm-surface-3);
  --ui-border: var(--zm-border);
  --ui-border-subtle: var(--zm-border);
  --ui-border-strong: var(--zm-border-strong);
  --ui-text: var(--zm-text);
  --ui-text-1: var(--zm-text);
  --ui-text-2: var(--zm-text-2);
  --ui-text-3: var(--zm-text-3);
  --ui-text-muted: var(--zm-text-2);
  --ui-text-soft: var(--zm-text-3);
  --ui-text-disabled: color-mix(in srgb, var(--zm-text-3) 62%, transparent);
  --ui-hover: var(--zm-control-hover);
  --ui-selected: color-mix(in srgb, var(--zm-accent) 15%, transparent);
  --ui-focus: var(--zm-focus);
  --ui-accent: var(--zm-accent);
  --ui-accent-hover: var(--zm-accent-strong);
  --ui-accent-soft: color-mix(in srgb, var(--zm-accent) 12%, transparent);
  --ui-accent-border: color-mix(in srgb, var(--zm-accent) 35%, var(--zm-border));
  --ui-danger: #d94747;
  --ui-danger-soft: rgba(217, 71, 71, .12);
  --ui-success: #238b62;
  --ui-success-soft: rgba(35, 139, 98, .12);
  --ui-warning: #b56b16;
  --ui-warning-soft: rgba(181, 107, 22, .12);
  --ui-info: #3975b7;
  --ui-info-soft: rgba(57, 117, 183, .12);
  --ui-warm: var(--zm-accent);
  --ui-warm-soft: color-mix(in srgb, var(--zm-accent) 12%, transparent);
  --ui-shadow: 0 10px 30px rgba(31, 42, 57, .12);
  --ui-shadow-lg: var(--zm-shadow);
}

html,
body {
  background: var(--zm-page);
  color: var(--zm-text);
}

body,
button,
input,
textarea,
select {
  -webkit-font-smoothing: antialiased;
}

:where(button, a, input, textarea, [tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--zm-focus) 72%, transparent) !important;
  outline-offset: 2px;
}

::selection {
  background: color-mix(in srgb, var(--zm-accent) 28%, transparent);
  color: var(--zm-text);
}

/* ---------- 全站外观快捷控件：完全自绘，无原生下拉 ---------- */
.zm-theme-control {
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  /* 全屏工作台与模态的层级均高于本控件，避免破坏其焦点边界。 */
  z-index: 90;
  font: 400 13px/1.25 -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--zm-text);
  isolation: isolate;
}

.zm-theme-trigger {
  min-width: 154px;
  min-height: 48px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: 1px solid var(--zm-border-strong);
  border-radius: 15px;
  background: color-mix(in srgb, var(--zm-surface) 92%, transparent);
  color: var(--zm-text);
  box-shadow: var(--zm-shadow), inset 0 1px 0 rgba(255, 255, 255, .12);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform .16s ease, background .16s ease, border-color .16s ease;
}

.zm-theme-trigger-icon,
.zm-theme-option-icon {
  display: grid;
  place-items: center;
  color: var(--zm-accent-strong);
}

.zm-theme-trigger-icon svg { width: 22px; height: 22px; }
.zm-theme-trigger-copy { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.zm-theme-trigger-copy small { color: var(--zm-text-3); font-size: 10px; letter-spacing: .08em; }
.zm-theme-trigger-copy b { overflow: hidden; color: var(--zm-text); font-size: 12px; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.zm-theme-trigger-chevron { display: grid; place-items: center; color: var(--zm-text-3); transition: transform .16s ease; }
.zm-theme-trigger-chevron svg { width: 16px; height: 16px; }
.zm-theme-control.is-open .zm-theme-trigger-chevron { transform: rotate(180deg); }

.zm-theme-menu {
  position: absolute;
  right: 0;
  bottom: calc(100% + 9px);
  width: min(286px, calc(100vw - 24px));
  padding: 8px;
  border: 1px solid var(--zm-border);
  border-radius: 17px;
  background: var(--zm-surface);
  box-shadow: var(--zm-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(7px) scale(.985);
  transform-origin: right bottom;
  transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}

.zm-theme-control.is-open .zm-theme-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
  transition-delay: 0s;
}

.zm-theme-menu-head { padding: 8px 10px 9px; }
.zm-theme-menu-head b { display: block; color: var(--zm-text); font-size: 14px; }
.zm-theme-menu-head span { display: block; margin-top: 3px; color: var(--zm-text-3); font-size: 11px; }

.zm-theme-option {
  width: 100%;
  min-height: 56px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 22px;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--zm-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.zm-theme-option:focus-visible { background: var(--zm-control); }
.zm-theme-option.is-selected { background: color-mix(in srgb, var(--zm-accent) 14%, transparent); }
.zm-theme-option-icon { width: 34px; height: 34px; border-radius: 10px; background: var(--zm-control); }
.zm-theme-option-icon svg { width: 19px; height: 19px; }
.zm-theme-option > span:nth-child(2) { min-width: 0; }
.zm-theme-option b { display: block; color: var(--zm-text); font-size: 13px; font-weight: 720; }
.zm-theme-option small { display: block; margin-top: 3px; color: var(--zm-text-3); font-size: 11px; }
.zm-theme-option-check { width: 22px; height: 22px; display: grid; place-items: center; color: var(--zm-accent-strong); }
.zm-theme-option-check svg { width: 17px; height: 17px; }

/* 全屏工作台：一键成片仍可切换主题，但始终低于其模态；神经画布使用自身工具栏入口。 */
body:has(.zm-cp-mask) .zm-theme-control {
  z-index: 100001;
  top: max(10px, env(safe-area-inset-top));
  right: auto;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%);
}
body:has(.zm-cp-mask) .zm-theme-menu {
  top: calc(100% + 9px);
  right: auto;
  bottom: auto;
  left: 50%;
  margin-left: -143px;
  transform-origin: center top;
}
body:has(.zm-cp-mask .cp-modal) .zm-theme-control { visibility: hidden; pointer-events: none; }
/* NC 也必须就地可切换：控制器会被 JS 挂到右上工具组，不再遮挡画布或 minimap。 */
.zm-theme-control.is-nc-inline {
  position: relative;
  inset: auto;
  z-index: auto;
  flex: 0 0 auto;
  font: inherit;
}
.zm-theme-control.is-nc-inline .zm-theme-trigger {
  width: 32px;
  min-width: 32px;
  min-height: 32px;
  height: 32px;
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  padding: 0;
  border-color: transparent;
  border-radius: 9px;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.zm-theme-control.is-nc-inline .zm-theme-trigger-copy,
.zm-theme-control.is-nc-inline .zm-theme-trigger-chevron { display: none; }
.zm-theme-control.is-nc-inline .zm-theme-trigger-icon svg { width: 18px; height: 18px; }
.zm-theme-control.is-nc-inline .zm-theme-menu {
  top: calc(100% + 9px);
  right: 0;
  bottom: auto;
  transform-origin: right top;
}

/* ---------- 自建页面统一语义色 ---------- */
html[data-theme="light"] :is(.zm-home-root, .zm-cv, .zm-al-mask, .zm-pj-mask, .zm-tm-mask, .zm-st-mask) {
  --bg: #f4f6f8;
  --panel: #ffffff;
  --panel-2: #f0f2f5;
  --line: rgba(23, 31, 43, .12);
  --line-2: rgba(23, 31, 43, .22);
  --t1: #171b22;
  --t2: #48515f;
  --t3: #6c7787;
  --glass: rgba(255, 255, 255, .88);
  --glass-2: rgba(255, 255, 255, .95);
  --glass-hi: rgba(255, 255, 255, .72);
}

html[data-theme="light"] :is(.zm-home-root, .zm-cv, .zm-al-mask, .zm-pj-mask, .zm-tm-mask, .zm-st-mask) :is(input, textarea)::placeholder {
  color: #7b8593;
  opacity: 1;
}

/* 首页 / 创作台 */
html[data-theme="light"] .zm-home-root::after { opacity: .018; mix-blend-mode: multiply; }
html[data-theme="light"] .zm-nav.zm-stuck { background: rgba(250, 251, 252, .9); }
html[data-theme="light"] .zm-nav-note { color: #586273; }
html[data-theme="light"] .zm-nav-note b { color: #455064; }
html[data-theme="light"] .zm-nav-note i { color: #667085; }
html[data-theme="light"] .zm-navbar,
html[data-theme="light"] .zm-tip { background: rgba(31, 42, 57, .045); }
html[data-theme="light"] .zm-navbtn:hover,
html[data-theme="light"] .zm-menu-item:hover { background: rgba(31, 42, 57, .075); }
html[data-theme="light"] .zm-navbtn.zm-on { color: #7b3f08; background: rgba(228, 154, 58, .17); }
html[data-theme="light"] .zm-agent,
html[data-theme="light"] .zm-mine-card { background: #fff; box-shadow: 0 20px 52px -34px rgba(31, 42, 57, .34); }
html[data-theme="light"] .zm-msg.zm-ai { background: #f0f2f5; }
html[data-theme="light"] .zm-menu { background: rgba(255, 255, 255, .98); box-shadow: 0 22px 56px rgba(31, 42, 57, .18); }
html[data-theme="light"] .zm-mine-skel { background: linear-gradient(100deg, #edf0f4 30%, #fafbfc 50%, #edf0f4 70%); background-size: 200% 100%; }
html[data-theme="light"] .zm-search,
html[data-theme="light"] .zm-works-bar { background: rgba(255, 255, 255, .82); }
/* 轮播与液态创作横幅本身是暗色媒体舞台，浅色外壳下仍使用白字保证可读。 */
html[data-theme="light"] :is(.zm-slide-body, .zm-cta-inner) { color: #fff; }
html[data-theme="light"] :is(.zm-slide-sub, .zm-cta-sub, .zm-feat-desc) { color: rgba(255, 255, 255, .74); }
html[data-theme="light"] .zm-feat-title { color: #fff; }
html[data-theme="light"] .zm-card-title { color: #fff; text-shadow: 0 2px 10px rgba(0, 0, 0, .55); }
html[data-theme="light"] .zm-banner-arrow { color: rgba(255, 255, 255, .8); border-color: rgba(255, 255, 255, .2); }
html[data-theme="light"] .zm-post-card { background: #fff; border-color: var(--zm-border); color: var(--zm-text); box-shadow: 0 30px 80px rgba(31, 42, 57, .22); }
html[data-theme="light"] .zm-toast { background: #fff; color: var(--zm-text); border-color: var(--zm-border); box-shadow: 0 16px 44px rgba(31, 42, 57, .2); }
html[data-theme="light"] .zm-post-head button { color: var(--zm-text-3); }
html[data-theme="light"] .zm-post-head button:hover { color: var(--zm-text); background: var(--zm-control-hover); }
html[data-theme="light"] .zm-post-f :is(input, select) { background: var(--zm-surface-2); color: var(--zm-text); border-color: var(--zm-border); }
html[data-theme="light"] .zm-post-cancel:hover { color: var(--zm-text); border-color: var(--zm-border-strong); }

/* 无限画布与画布浮层 */
html[data-theme="light"] .zm-cv::before {
  background: radial-gradient(50rem 30rem at 18% 12%, rgba(255, 169, 77, .12), transparent 62%), radial-gradient(42rem 28rem at 82% 78%, rgba(94, 121, 229, .1), transparent 62%);
}
html[data-theme="light"] .zm-cv-grid { opacity: .34; }
html[data-theme="light"] :is(.zm-cv-top, .zm-cv-dock, .zm-cv-zoom, .zm-cv-menu, .zm-cv-cmd-box, .zm-cv-gen, .zm-cv-drawer-box, .zm-cv-map, .zm-cv-start, .zm-set-card, .zm-keys-card, .zm-cv-lib-box) {
  background-color: rgba(255, 255, 255, .96);
  border-color: var(--line);
  color: var(--t1);
  box-shadow: 0 18px 48px rgba(31, 42, 57, .15);
}
html[data-theme="light"] :is(.zm-cv-back, .zm-cv-btn, .zm-cv-tool, .zm-cv-mi, .zm-nd-tools button, .zm-set-head button, .zm-set-reset, .zm-set-seg button):hover {
  background: rgba(31, 42, 57, .075);
  color: var(--t1);
}
html[data-theme="light"] :is(.zm-cv-gen-pmt, .zm-cv-name, .zm-cv-cmd-in, .zm-set-in) { background: rgba(31, 42, 57, .055); color: var(--t1); }
html[data-theme="light"] :is(.zm-cv-settings, .zm-cv-gen-mask, .zm-cv-cmd, .zm-cv-drawer, .zm-cv-keys) { background: rgba(31, 42, 57, .28); }
html[data-theme="light"] .zm-nd { box-shadow: 0 16px 40px rgba(31, 42, 57, .14); }
html[data-theme="light"] .zm-nd-text { color: #354052; }
html[data-theme="light"] .zm-nd-note-txt { color: #5d4912; }
html[data-theme="light"] .zm-cv-start-t { color: var(--t1); }
html[data-theme="light"] .zm-cv-toast { background: #fff; color: var(--t1); border-color: var(--line); box-shadow: 0 16px 44px rgba(31, 42, 57, .18); }
html[data-theme="light"] .zm-cv-hint.zm-hint-over { background: rgba(255, 255, 255, .96); border-color: var(--line); box-shadow: 0 26px 68px rgba(31, 42, 57, .2); }
html[data-theme="light"] :is(.zm-keys-head button:hover, .zm-keys-reset:hover, .zm-keys-edit:hover) { background: var(--zm-control-hover) !important; color: var(--t1) !important; }
html[data-theme="light"] .zm-keys-row kbd { background: var(--zm-control); color: var(--t1); }
html[data-theme="light"] .zm-lib-bar { background: rgba(31, 42, 57, .035); }
html[data-theme="light"] .zm-lib-tab:hover { background: var(--zm-control); color: var(--t1); }
html[data-theme="light"] .zm-lib-tab.zm-on { color: #6e390a; background: color-mix(in srgb, var(--g1, #ff9538) 17%, transparent); }
html[data-theme="light"] .zm-stp.zm-ok { color: #27745c; }
html[data-theme="light"] .zm-cv-ref { color: var(--t2); }
/* 图片/视频比对属于暗色媒体岛，局部保留白字，避免浅色语义变量压到暗底。 */
html[data-theme="light"] .zm-cv-lightbox {
  --t1: #f5f7fb;
  --t2: rgba(240, 244, 251, .78);
  --t3: rgba(240, 244, 251, .56);
  --line: rgba(255, 255, 255, .14);
  --line-2: rgba(255, 255, 255, .24);
  color-scheme: dark;
  color: var(--t1);
}

/* 资产库 / 项目库 / 团队 / 设置 */
html[data-theme="light"] :is(.zm-al-box, .zm-pj-box, .zm-tm-box) {
  background: radial-gradient(980px 500px at 78% -12%, rgba(228, 154, 58, .1), transparent 62%), var(--bg);
}
html[data-theme="light"] :is(.zm-al-side, .zm-tm-side) { background: rgba(31, 42, 57, .035); }
html[data-theme="light"] :is(.zm-al-box .zm-cv-gen-x, .zm-pj-x, .zm-tm-x, .zm-st-x, .zm-tm-seat, .zm-tm-dept i) { background: rgba(31, 42, 57, .065); }
html[data-theme="light"] :is(.zm-al-box .zm-cv-gen-x, .zm-pj-x, .zm-tm-x, .zm-st-x):hover { background: rgba(31, 42, 57, .115); }
html[data-theme="light"] :is(.zm-al-proj, .zm-tm-dept):hover { background: rgba(31, 42, 57, .065); }
html[data-theme="light"] :is(.zm-al-proj.zm-on, .zm-tm-dept.zm-on, .zm-pj-seg button.zm-on) { color: #6f3907; }
html[data-theme="light"] :is(.zm-pj-search, .zm-tm-search, .zm-tm-dept-ops button, .zm-pj-seg button) { background: rgba(31, 42, 57, .045); }
html[data-theme="light"] :is(.zm-pj-cover, .zm-pj-cover-ph, .zm-pj-style-card, .zm-pj-style-card img, .zm-pj-style-ph) { background: #e9edf2; }
html[data-theme="light"] .zm-pj-style-card.zm-on { background: color-mix(in srgb, var(--zm-accent) 13%, #fff); }
html[data-theme="light"] .zm-pj-style-card.zm-on .zm-pj-style-nm { color: #70400f; }
html[data-theme="light"] :is(.zm-al-proj.zm-on i, .zm-tm-dept.zm-on i) { color: #5f350d; }
html[data-theme="light"] :is(.zm-pj-modal-mask, .zm-tm-modal-mask, .zm-st-mask) { background: rgba(31, 42, 57, .3); }
html[data-theme="light"] :is(.zm-pj-in, .zm-pj-ta, .zm-tm-in, .zm-st-in) { background: rgba(31, 42, 57, .055); }
html[data-theme="light"] .zm-st-modal { box-shadow: 0 34px 90px rgba(31, 42, 57, .22); }
html[data-theme="light"] .zm-st-foot { background: #f4f6f8; }
html[data-theme="light"] .zm-st-theme-choice { background: rgba(31, 42, 57, .04); }
html[data-theme="light"] .zm-st-theme-choice:hover { background: rgba(31, 42, 57, .075); }
html[data-theme="light"] .zm-st-theme-ic { background: rgba(31, 42, 57, .065); }
html[data-theme="light"] :is(.zm-pj-toast, .zm-tm-toast, .zm-st-toast, .zm-al-pop, .zm-al-confirm) { background: #fff; color: #202631; box-shadow: 0 14px 44px rgba(31, 42, 57, .2); }
html[data-theme="light"] .zm-al-lb {
  --t1: #f5f7fb;
  --t2: rgba(240, 244, 251, .78);
  --t3: rgba(240, 244, 251, .56);
  --line: rgba(255, 255, 255, .14);
  color-scheme: dark;
  color: var(--t1);
}

/* 登录 / 注册 */
html[data-theme="light"] .zm-auth-mask { background: rgba(31, 42, 57, .36); }
html[data-theme="light"] .zm-auth-card { background: #fff; border-color: var(--zm-border); color: var(--zm-text); box-shadow: 0 32px 90px rgba(31, 42, 57, .22); }
html[data-theme="light"] .zm-auth-show {
  --t1: #fff;
  --t2: rgba(255, 255, 255, .72);
  --t3: rgba(255, 255, 255, .5);
  color: #fff;
  color-scheme: dark;
  background: #0b0e10;
}
html[data-theme="light"] .zm-auth-close { color: #687485; }
html[data-theme="light"] .zm-auth-close:hover { color: #202631; background: rgba(31, 42, 57, .08); }
html[data-theme="light"] :is(.zm-auth-tab, .zm-auth-foot, .zm-auth-remember) { color: #5e6877; }
html[data-theme="light"] .zm-auth-tab:hover,
html[data-theme="light"] .zm-auth-tab.zm-active { color: #1c222b; }
html[data-theme="light"] .zm-auth-field { border-color: #d6dbe3; background: #f7f8fa; }
html[data-theme="light"] .zm-auth-field:focus-within { background: #fff; }
html[data-theme="light"] .zm-auth-field input { color: #1c222b; -webkit-text-fill-color: #1c222b; }
html[data-theme="light"] .zm-auth-field input::placeholder { color: #7e8998; }
html[data-theme="light"] .zm-auth-foot a { color: #5e6877; }
html[data-theme="light"] :is(.zm-auth-desc, .zm-auth-icp) { color: #697485; }
html[data-theme="light"] .zm-auth-icp a:hover { color: #27303c; }
html[data-theme="light"] .zm-auth-field input:-webkit-autofill,
html[data-theme="light"] .zm-auth-field input:-webkit-autofill:hover,
html[data-theme="light"] .zm-auth-field input:-webkit-autofill:focus {
  -webkit-text-fill-color: #1c222b;
  -webkit-box-shadow: 0 0 0 1000px #f7f8fa inset;
  caret-color: #1c222b;
}

/* 原厂 Vue 页面：Element Plus 已随 html.dark 切换，这里清掉少数写死的黑底/白字孤岛。 */
html[data-theme="light"] :is(.layout-body-admin, .project-details, .project-edit, .project-clip) { background: var(--el-bg-color-page) !important; }
html[data-theme="light"] .content-text-container-is-edit :is(textarea, input, .el-input__prefix-inner) { color: var(--el-text-color-primary) !important; }
html[data-theme="light"] .login-form {
  --el-border-color: var(--zm-border);
  --el-border-color-hover: var(--zm-border-strong);
  --el-fill-color-blank: rgba(255, 255, 255, .76);
  background: rgba(255, 255, 255, .88) !important;
  border-color: rgba(255, 255, 255, .72) !important;
  color: var(--zm-text) !important;
  box-shadow: 0 28px 68px rgba(31, 42, 57, .2), inset 0 1px 0 rgba(255, 255, 255, .9) !important;
}
html[data-theme="light"] .login-form .el-input__inner { color: var(--zm-text) !important; }
html[data-theme="light"] .login-form .el-input__wrapper { background: rgba(31, 42, 57, .055) !important; border-color: rgba(23, 31, 43, .12) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .76) !important; }
html[data-theme="light"] .login-form .el-input__wrapper:hover { background: rgba(31, 42, 57, .075) !important; border-color: rgba(23, 31, 43, .2) !important; }
html[data-theme="light"] .login-form .form-title,
html[data-theme="light"] .form-head .form-title { color: var(--zm-text) !important; }
html[data-theme="light"] .login-form .copy-text span { color: var(--zm-text-2) !important; }
html[data-theme="light"] :is(.project-edit, .project-clip) .card-panel-header { color: var(--el-text-color-primary) !important; border-color: var(--el-border-color-light) !important; }
html[data-theme="light"] .project-details .bottom-bar { background: var(--el-bg-color); }
html[data-theme="light"] :is(.ratio-item-active, .ratio-item:hover, .my-point:hover, .resource-card:hover, .resource-card-active, .virtual-character-card:hover, .news-card:hover, .news-card-active, .user-item:hover, .user-item-active, .resource-item:hover, .resource-item-checked) {
  background: var(--zm-control-hover) !important;
  color: var(--zm-text) !important;
}
html[data-theme="light"] :is(.resource-card:hover, .resource-card-active) :is(.title, .desc),
html[data-theme="light"] .virtual-character-card:hover :is(.title, .desc),
html[data-theme="light"] :is(.news-card:hover, .news-card-active) :is(.title, .desc),
html[data-theme="light"] :is(.user-item:hover, .user-item-active) :is(.name, .id-label),
html[data-theme="light"] :is(.resource-item:hover, .resource-item-checked) :is(.name, .num, .desc, .resource-name) {
  color: var(--zm-text) !important;
}
html[data-theme="light"] :is(.ai-item:hover, .folder-checked, .group-tab-item:hover, .choose-group-item:hover, .mention-item:hover, .motion-item-active, .card-tools-item:hover, .content-index-active) {
  background: var(--zm-control-hover) !important;
  color: var(--zm-text) !important;
}
html[data-theme="light"] .page-menu-item-popover .menu-item-btn:hover { color: var(--zm-text) !important; }
html[data-theme="light"] .ai-item:hover :is(.ai-title, .ai-desc, .right),
html[data-theme="light"] .folder-checked :is(.folder-title, .folder-count),
html[data-theme="light"] :is(.group-tab-item:hover, .choose-group-item:hover, .mention-item:hover, .motion-item-active, .card-tools-item:hover, .content-index-active) * {
  color: var(--zm-text) !important;
}

/* 原厂套餐 / 支付路由：此前是浅色页面底上写死白字，完整收成浅色玻璃面板。 */
html[data-theme="light"] :is(.combo-page, .pay-page) { color: var(--zm-text) !important; }
html[data-theme="light"] :is(.combo-page, .pay-page) .bg-grid { background-image: linear-gradient(rgba(31, 42, 57, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(31, 42, 57, .045) 1px, transparent 1px); }
html[data-theme="light"] :is(.combo-page, .pay-page) :is(.back-btn, .eyebrow, .combo-type-switch) { background: rgba(255, 255, 255, .78); border-color: var(--zm-border); color: var(--zm-text-2); }
html[data-theme="light"] .combo-page .combo-type-switch .combo-type-item { color: var(--zm-text-2); }
html[data-theme="light"] .combo-page .combo-type-switch .combo-type-item.active { color: #1a2207; }
html[data-theme="light"] :is(.combo-page, .pay-page) .back-btn:hover { background: #fff; border-color: var(--zm-border-strong); }
html[data-theme="light"] :is(.combo-page, .pay-page) :is(.combo-sub, .combo-footnote, .pay-subtitle, .pay-empty, .method-desc, .trust-item, .qr-subtitle, .qr-steps, .qr-polling, .error-desc, .order-subtitle, .order-line-note) { color: var(--zm-text-3); }
html[data-theme="light"] :is(.combo-page, .pay-page) :is(.plan-card, .pay-block, .order-card) { background: rgba(255, 255, 255, .9); border-color: var(--zm-border); box-shadow: inset 0 1px rgba(255, 255, 255, .9), 0 24px 60px -34px rgba(31, 42, 57, .3); }
html[data-theme="light"] .combo-page .plan-card:hover { background: #fff; }
html[data-theme="light"] .combo-page :is(.plan-name, .plan-price, .plan-features .feature-item) { color: var(--zm-text); }
html[data-theme="light"] .combo-page :is(.plan-subtitle, .plan-price .price-unit, .plan-features .feature-item.feature-off) { color: var(--zm-text-3); }
html[data-theme="light"] .pay-page :is(.block-title, .qr-title, .error-title, .order-line-name, .order-line-price) { color: var(--zm-text); }
html[data-theme="light"] .pay-page .method-item { background: rgba(31, 42, 57, .035); border-color: var(--zm-border); box-shadow: inset 0 1px rgba(255, 255, 255, .8); }
html[data-theme="light"] .pay-page .method-item:hover:not(.disabled) { background: rgba(255, 255, 255, .9); }
html[data-theme="light"] .pay-page .method-item.active { background: color-mix(in srgb, var(--zm-accent) 11%, #fff); border-color: color-mix(in srgb, var(--zm-accent) 48%, var(--zm-border)); }
html[data-theme="light"] .pay-page .method-item .method-logo { background: #fff; border-color: var(--zm-border); }
html[data-theme="light"] .pay-page .method-item .method-soon { background: var(--zm-control); color: var(--zm-text-2); }
html[data-theme="light"] .pay-page .method-item .method-check { border-color: var(--zm-border-strong); }
html[data-theme="light"] .pay-page :is(.order-features li, .order-line-price) { color: var(--zm-text-2); }
html[data-theme="light"] .pay-page .order-divider { background: linear-gradient(90deg, transparent, var(--zm-border-strong) 20% 80%, transparent); }
html[data-theme="light"] .pay-page .qr-actions .pay-btn.ghost { background: #fff; border-color: var(--zm-border-strong); color: var(--zm-text); }
html[data-theme="light"] .pay-page .order-total { border-color: var(--zm-border-strong); }
html[data-theme="light"] .pay-page .pay-agreement { color: var(--zm-text-3); }
html[data-theme="light"] .pay-page .done-card { background: rgba(255, 255, 255, .94); border-color: var(--zm-border); color: var(--zm-text); box-shadow: 0 24px 60px rgba(31, 42, 57, .14); }

/* 充值中心 */
html[data-theme="light"] .zm-rc-page {
  background: radial-gradient(70rem 34rem at 12% -8%, rgba(255, 149, 61, .15), transparent 60%), radial-gradient(56rem 30rem at 96% 4%, rgba(94, 121, 229, .1), transparent 62%), #f4f6f8;
  color: #1c222b;
}
html[data-theme="light"] .zm-rc-head { background: rgba(255, 255, 255, .9); border-color: rgba(23, 31, 43, .1); }
html[data-theme="light"] .zm-rc-bal span { color: #687485; }
html[data-theme="light"] :is(.zm-rc-back, .zm-rc-x, .zm-rc-eds, .zm-rc-pe, .zm-rc-preset, .zm-rc-cta) { background: rgba(31, 42, 57, .06); color: #495365; border-color: rgba(23, 31, 43, .14); }
html[data-theme="light"] :is(.zm-rc-back, .zm-rc-x):hover { background: rgba(31, 42, 57, .11); color: #1c222b; }
html[data-theme="light"] :is(.zm-rc-subtab, .zm-rc-load, .zm-rc-empty, .zm-rc-tagline, .zm-rc-points, .zm-rc-custom-h span, .zm-rc-foot, .zm-rc-sum, .zm-rc-inv-desc, .zm-rc-inv-form label, .zm-iv-row span) { color: #687485; }
html[data-theme="light"] .zm-rc-subtab:hover,
html[data-theme="light"] .zm-rc-subtab.zm-on { color: #1c222b; }
html[data-theme="light"] .zm-rc-ed { color: #596475; }
html[data-theme="light"] .zm-rc-ed.zm-on { color: #2b1406; }
html[data-theme="light"] .zm-rc-card { background: #fff; border-color: rgba(23, 31, 43, .11); box-shadow: 0 18px 46px rgba(31, 42, 57, .1); }
html[data-theme="light"] .zm-rc-card.zm-sel { background: radial-gradient(130% 90% at 50% -12%, rgba(255, 169, 77, .22), rgba(255, 255, 255, .98) 62%) padding-box, linear-gradient(135deg, #edb96d, #d67f27) border-box; box-shadow: 0 22px 54px -24px rgba(183, 101, 24, .46), 0 0 0 4px rgba(228, 154, 58, .1); }
html[data-theme="light"] .zm-rc-card.zm-sel :is(.zm-rc-name, .zm-rc-price) { color: #202631; }
html[data-theme="light"] .zm-rc-card.zm-sel .zm-rc-perk { color: #4f5a6a; }
html[data-theme="light"] .zm-rc-card:hover .zm-rc-cta { color: #74400d; border-color: rgba(202, 117, 28, .42); }
html[data-theme="light"] :is(.zm-rc-name, .zm-rc-price, .zm-rc-input input, .zm-rc-tbl td) { color: #1c222b; }
html[data-theme="light"] :is(.zm-rc-got, .zm-rc-tbl th) { color: #687485; }
html[data-theme="light"] .zm-rc-tag.zm-wait { background: rgba(31, 42, 57, .08); color: #566172; }
html[data-theme="light"] .zm-rc-perk { color: #4f5a6a; }
html[data-theme="light"] :is(.zm-rc-custom, .zm-rc-inv-form, .zm-rc-inv-list) { background: #fff; border-color: rgba(23, 31, 43, .11); }
html[data-theme="light"] :is(.zm-rc-input, .zm-rc-inv-form input, .zm-rc-inv-form select) { background: #f6f7f9; color: #1c222b; border-color: rgba(23, 31, 43, .16); }
html[data-theme="light"] .zm-rc-paymask { background: rgba(31, 42, 57, .34); }
html[data-theme="light"] .zm-rc-paycard { background: #fff; color: #1c222b; border-color: rgba(23, 31, 43, .12); box-shadow: 0 34px 90px rgba(31, 42, 57, .24); }
html[data-theme="light"] .zm-rc-payx { background: rgba(31, 42, 57, .06); color: #687485; }
html[data-theme="light"] :is(.zm-rc-payamt span, .zm-rc-paytip, .zm-rc-paystatus, .zm-rc-payopen) { color: #687485; }
html[data-theme="light"] .zm-rc-paystatus.zm-ok { color: #18734e; }
html[data-theme="light"] .zm-rc-payopen:hover { color: #a65e17; }

/* 平台更新弹层（其样式运行时注入，故这里使用更高特异性） */
html[data-theme="light"] body .zm-upd-mask { background: rgba(31, 42, 57, .34); }
html[data-theme="light"] body .zm-upd-panel { background: #fff; border-color: rgba(23, 31, 43, .12); box-shadow: 0 24px 70px rgba(31, 42, 57, .2); }
html[data-theme="light"] body .zm-upd-top { border-color: rgba(23, 31, 43, .1); }
html[data-theme="light"] body .zm-upd-top strong,
html[data-theme="light"] body .zm-upd-head strong { color: #202631; }
html[data-theme="light"] body .zm-upd-x { background: rgba(31, 42, 57, .06); color: #687485; }
html[data-theme="light"] body .zm-upd-x:hover { background: rgba(31, 42, 57, .11); color: #202631; }
html[data-theme="light"] body .zm-upd-item + .zm-upd-item { border-color: rgba(23, 31, 43, .08); }
html[data-theme="light"] body .zm-upd-ver { color: #667085; background: rgba(31, 42, 57, .06); }
html[data-theme="light"] body .zm-upd-head em,
html[data-theme="light"] body .zm-upd-empty { color: #778293; }
html[data-theme="light"] body .zm-upd-body { color: #4f5a6a; }

/* 神经画布 QuickAdd 的旧 scoped 构建曾丢失后代选择器；共享层直接兜住活动产物。 */
html[data-theme="light"] .nc-quick-add {
  --ui-surface: #fff;
  --ui-surface-muted: #f7f9fc;
  --ui-surface-strong: #eef3f8;
  border-color: var(--ui-border);
  background: rgba(255, 255, 255, .98);
  color: var(--ui-text);
  box-shadow: 0 18px 46px rgba(32, 49, 75, .16);
}
html[data-theme="light"] .nc-quick-add-layer { background: rgba(226, 232, 240, .42); }
html[data-theme="light"] :is(.nc-quick-mini-head strong, .nc-quick-brand strong, .nc-quick-add-grid b, .nc-quick-results b, .nc-quick-section-head span) { color: var(--ui-text); }
html[data-theme="light"] :is(.nc-quick-mini-head small, .nc-quick-brand small, .nc-quick-add-grid small, .nc-quick-results small, .nc-quick-mini-foot, .nc-quick-footnote, .nc-quick-results > p) { color: var(--ui-text-soft); }
html[data-theme="light"] :is(.nc-quick-mini-dir, .nc-quick-search > span, .nc-quick-command-grid i, .nc-quick-footnote b) { color: var(--ui-accent); }
html[data-theme="light"] .nc-quick-brand > i { border-color: var(--ui-accent-border); background: var(--ui-accent-soft); color: var(--ui-accent); }
html[data-theme="light"] .nc-quick-mini-item { color: var(--ui-text-muted); }
html[data-theme="light"] .nc-quick-mini-item.is-sep-before::after { background: var(--ui-border); }
html[data-theme="light"] :is(.nc-quick-mini-item.is-active, .nc-quick-mini-item:hover) { background: var(--ui-surface-strong); color: var(--ui-text); }
html[data-theme="light"] .nc-quick-mini-item.is-action { color: var(--ui-text-muted); }
html[data-theme="light"] .nc-qi { color: color-mix(in srgb, var(--quick-color, var(--ui-accent)) 76%, var(--ui-text-muted)); }
html[data-theme="light"] :is(.nc-quick-mini-item > kbd, .nc-quick-add header > kbd, .nc-quick-results kbd, .nc-quick-add-grid kbd, .nc-quick-command-grid kbd) { border-color: var(--ui-border); background: var(--ui-surface); color: var(--ui-text-soft); }
html[data-theme="light"] .nc-quick-search { border-color: var(--ui-border); background: var(--ui-surface-muted); }
html[data-theme="light"] .nc-quick-search:focus-within { border-color: var(--ui-accent-border); background: var(--ui-surface); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-accent) 14%, transparent); }
html[data-theme="light"] .nc-quick-search input { color: var(--ui-text); }
html[data-theme="light"] .nc-quick-search input::placeholder { color: var(--ui-text-soft); }
html[data-theme="light"] .nc-quick-search em { color: var(--ui-text-muted); }
html[data-theme="light"] .nc-quick-section-head em { color: var(--ui-text-soft); }
html[data-theme="light"] :is(.nc-quick-add-grid button, .nc-quick-results button, .nc-quick-command-grid button) { border-color: var(--ui-border); background: var(--ui-surface-muted); color: var(--ui-text-muted); box-shadow: none; }
html[data-theme="light"] :is(.nc-quick-add-grid button:hover, .nc-quick-add-grid button.is-active, .nc-quick-results button:hover, .nc-quick-results button.is-active, .nc-quick-command-grid button:hover, .nc-quick-command-grid button.is-active) { border-color: var(--ui-accent-border); background: var(--ui-accent-soft); color: var(--ui-text); }
html[data-theme="light"] :is(.nc-quick-add-grid button > i, .nc-quick-results button > i) { border-color: var(--ui-accent-border); background: var(--ui-accent-soft); color: var(--ui-accent); }
html[data-theme="light"] .nc-quick-command-grid span { color: var(--ui-text-muted); }
html[data-theme="light"] .nc-quick-results > p { border: 1px dashed var(--ui-border); border-radius: 10px; background: var(--ui-surface-muted); }
html[data-theme="light"] :is(.nc-quick-add button, .nc-quick-add input):focus-visible { outline: 2px solid color-mix(in srgb, var(--ui-accent) 68%, transparent); outline-offset: 2px; }
html[data-theme="light"] :is(.nc-quick-add button:disabled, .nc-quick-add .is-disabled) { border-color: var(--ui-border) !important; background: var(--ui-surface-muted) !important; color: var(--ui-text-soft) !important; opacity: .5; cursor: not-allowed; box-shadow: none !important; }
html[data-theme="light"] :is(.nc-quick-add[aria-busy="true"], .nc-quick-add .is-loading) { color: var(--ui-text-soft); }

/* 神经画布空态的节点类型按钮在旧产物里仍引用白色半透明值，浅色下显式收回语义色。 */
html[data-theme="light"] .nc-hero h2 {
  background: none;
  color: #1a2a3a;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  text-shadow: none;
}
html[data-theme="light"] .nc-hero-core button {
  border-color: color-mix(in srgb, var(--node-color) 34%, var(--ui-border));
  background: color-mix(in srgb, var(--node-color) 10%, #fff);
  color: color-mix(in srgb, var(--node-color) 72%, #263447);
  box-shadow: 0 10px 26px rgba(31, 42, 57, .12), inset 0 1px 0 rgba(255, 255, 255, .9);
}
html[data-theme="light"] .nc-hero-start-actions button { border-color: var(--ui-border); background: rgba(255, 255, 255, .82); color: var(--ui-text-2); }
html[data-theme="light"] .nc-hero-manual { color: var(--ui-text-3); }

/* 节点吸附面板 / 分享 / 协作是后加的三组弹层，子控件原先仍写死深色白字。 */
html[data-theme="light"] .nc-shell .nc-node-panel {
  border-color: color-mix(in srgb, var(--node-color, var(--ui-accent)) 28%, var(--ui-border));
  background: var(--ui-surface-1);
  color: var(--ui-text-1);
  box-shadow: var(--ui-shadow-lg);
}
html[data-theme="light"] .nc-shell :is(.nc-node-panel-tools button, .nc-node-panel-close, .nc-node-panel-more, .nc-node-panel-seg) {
  border-color: var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-2);
}
html[data-theme="light"] .nc-shell :is(.nc-node-panel-tools button, .nc-node-panel-close, .nc-node-panel-more, .nc-node-panel-seg):hover {
  background: var(--ui-hover);
  color: var(--ui-text-1);
}
html[data-theme="light"] .nc-shell .nc-node-panel-seg.is-active { border-color: var(--ui-accent-border); background: var(--ui-accent-soft); color: var(--ui-accent); }
html[data-theme="light"] .nc-shell .nc-node-panel textarea { border-color: var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-1); }
html[data-theme="light"] .nc-shell :is(.nc-node-panel-kind, .nc-node-panel-error strong) { color: var(--ui-text-1); }
html[data-theme="light"] .nc-shell :is(.nc-node-panel-mode, .nc-node-panel-refs em, .nc-node-panel-ai-tools span, .nc-node-panel-error span) { color: var(--ui-text-3); }
html[data-theme="light"] .nc-shell .nc-node-panel-cost { color: var(--ui-accent); }
html[data-theme="light"] .nc-shell .nc-node-panel-error { border-color: color-mix(in srgb, var(--ui-danger) 30%, var(--ui-border)); background: var(--ui-danger-soft); }
html[data-theme="light"] .nc-shell .nc-node-panel-error strong { color: var(--ui-danger); }

html[data-theme="light"] .nc-shell .nc-share-cover-row > span,
html[data-theme="light"] .nc-shell .nc-share-toggle small,
html[data-theme="light"] .nc-shell .nc-share-done p { color: var(--ui-text-3); }
html[data-theme="light"] .nc-shell .nc-share-cover-btn,
html[data-theme="light"] .nc-shell .nc-share-toggle { border-color: var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-2); }
html[data-theme="light"] .nc-shell .nc-share-cover-btn:hover { background: var(--ui-hover); color: var(--ui-text-1); }
html[data-theme="light"] .nc-shell :is(.nc-share-toggle strong, .nc-share-done strong) { color: var(--ui-text-1); }
html[data-theme="light"] .nc-shell .nc-share-cover-row img { border-color: var(--ui-border); }

html[data-theme="light"] .nc-shell :is(.nc-collab-invite, .nc-collab-member-row, .nc-collab-pick-row, .nc-collab-search) { border-color: var(--ui-border); background: var(--ui-surface-2); }
html[data-theme="light"] .nc-shell :is(.nc-collab-invite-head, .nc-collab-members-head, .nc-collab-member-info strong, .nc-collab-pick-row strong) { color: var(--ui-text-1); }
html[data-theme="light"] .nc-shell :is(.nc-collab-invite-hint, .nc-collab-members-head small, .nc-collab-member-info small, .nc-collab-empty-hint, .nc-collab-search > span) { color: var(--ui-text-3); }
html[data-theme="light"] .nc-shell :is(.nc-collab-invite-input, .nc-collab-invite-role, .nc-collab-role-select, .nc-collab-search input) { border-color: var(--ui-border); background: var(--ui-surface-1); color: var(--ui-text-1); }

/* ---------- 一键成片：深色增强 + 完整浅色 ---------- */
.zm-cp-mask .zm-cp-step.is-locked {
  opacity: 1 !important;
}
.zm-cp-mask .zm-cp-step {
  background: rgba(255, 255, 255, .065) !important;
  color: #e0e4eb !important;
}
.zm-cp-mask .zm-cp-step.is-locked .dot {
  background: rgba(255, 255, 255, .15);
  color: #e1e5eb;
}
.zm-cp-mask .zm-cp-step.is-locked .tx b { color: #e0e3e9; }
.zm-cp-mask .zm-cp-step .tx { gap: 3px !important; }
.zm-cp-mask .zm-cp-step .tx b { font-size: 13.5px !important; font-weight: 720 !important; }
.zm-cp-mask .zm-cp-step .tx i { display: block !important; color: #9da5b2; font-size: 9.5px !important; line-height: 1.35; }
.zm-cp-mask .zm-cp-step.is-cur { background: linear-gradient(135deg, rgba(235, 197, 132, .34), rgba(188, 128, 52, .24)) !important; box-shadow: 0 12px 28px rgba(0, 0, 0, .22) !important; }
.zm-cp-mask .zm-cp-step.is-cur .tx b { color: #f6dda9 !important; }
.zm-cp-mask .zm-cp-step.is-cur .tx i { color: #d4b981; }
.zm-cp-mask .zm-cp-step.is-done .tx b { color: #d0d4dc !important; }
.zm-cp-mask .zm-cp-step.is-done .tx i { color: #969eaa; }
.zm-cp-mask .zm-cp-btn:focus-visible,
.zm-cp-mask .cp-dropdown-trigger:focus-visible,
.zm-cp-mask .cp-dropdown-option:focus-visible { box-shadow: 0 0 0 3px rgba(231, 189, 119, .42) !important; }
.zm-cp-mask .zm-cp-btn:disabled,
.zm-cp-mask label.is-disabled { opacity: .68 !important; }
.zm-cp-mask .zm-cp-btn.primary:disabled { background: #725d3b !important; color: #ded4c1 !important; border-color: transparent !important; }

html[data-theme="light"] body .zm-cp-mask {
  --tx: #181c23;
  --tx2: #4c5666;
  --tx3: #6e7989;
  --gold: #b96b1c;
  --gold2: #d98b31;
  --goldDeep: #a95c12;
  --goldDim: rgba(185, 107, 28, .12);
  --glass: rgba(255, 255, 255, .92);
  --glass2: #ffffff;
  --line: rgba(23, 31, 43, .11);
  --line2: rgba(23, 31, 43, .2);
  background: linear-gradient(180deg, #f7f8fa 0%, #f1f3f6 45%, #eceff3 100%);
  color: var(--tx);
}
html[data-theme="light"] body .zm-cp-wrap {
  background: linear-gradient(180deg, #fbfcfd 0, #f6f7f9 158px, #edf0f4 390px) !important;
}
html[data-theme="light"] body .zm-cp-mask::before { opacity: 0; }
html[data-theme="light"] body .zm-cp-mask::after { background: radial-gradient(1100px 500px at 50% -180px, rgba(201, 122, 36, .09), transparent 72%); }
html[data-theme="light"] body .zm-cp-bar,
html[data-theme="light"] body .zm-cp-stepband { background: rgba(247, 248, 250, .94); color: var(--tx); }
html[data-theme="light"] body .zm-cp-brand .bt span,
html[data-theme="light"] body .zm-cp-p { color: var(--tx2); }
html[data-theme="light"] body .zm-cp-modes { background: rgba(31, 42, 57, .055); border-color: var(--line); }
html[data-theme="light"] body :is(.zm-cp-lib, .zm-cp-x) { background: rgba(31, 42, 57, .06); border-color: var(--line); color: var(--tx2); }
html[data-theme="light"] body .zm-cp-step { background: rgba(31, 42, 57, .045) !important; }
html[data-theme="light"] body .zm-cp-step:hover:not(:disabled) { background: rgba(31, 42, 57, .08) !important; }
html[data-theme="light"] body .zm-cp-step .dot { background: rgba(31, 42, 57, .075); color: #566172; }
html[data-theme="light"] body .zm-cp-step .tx b { color: #303744; }
html[data-theme="light"] body .zm-cp-step .tx i { color: #697486; }
html[data-theme="light"] body .zm-cp-step.is-locked .dot { background: rgba(31, 42, 57, .065); color: #647082; }
html[data-theme="light"] body .zm-cp-step.is-locked .tx b { color: #4f5968; }
html[data-theme="light"] body .zm-cp-step.is-cur { background: rgba(210, 132, 41, .16) !important; }
html[data-theme="light"] body .zm-cp-step.is-cur .dot { background: #c87a24; color: #fff; }
html[data-theme="light"] body .zm-cp-step.is-cur .tx b { color: #7b410d !important; }
html[data-theme="light"] body .zm-cp-step.is-cur .tx i { color: #93571e; }
html[data-theme="light"] body .zm-cp-step.is-done .dot { background: rgba(185, 107, 28, .16); color: #a85b13; }
html[data-theme="light"] body .zm-cp-step.is-done .tx b { color: #3f4856 !important; }
html[data-theme="light"] body .zm-cp-panel { background: rgba(255, 255, 255, .94); color: var(--tx); box-shadow: 0 18px 50px rgba(31, 42, 57, .08); }
html[data-theme="light"] body .cp-style-preset { background: #f5f6f8; color: var(--tx); }
html[data-theme="light"] body .cp-style-preset:hover:not(:disabled) { background: #eceff3; }
html[data-theme="light"] body .cp-style-preset.on { background: rgba(185, 107, 28, .13); }
html[data-theme="light"] body :is(.cp-field input, .cp-field textarea, .cp-edit-field input, .cp-edit-field textarea, .zm-cp-input, .zm-cp-ta, .cp-script, .cp-dropdown-trigger) {
  background: #f5f6f8;
  color: var(--tx);
  border-color: var(--line);
}
html[data-theme="light"] body :is(.cp-field input, .cp-field textarea, .cp-edit-field input, .cp-edit-field textarea, .zm-cp-input, .zm-cp-ta):focus { background: #fff; }
html[data-theme="light"] body .cp-dropdown-trigger:hover,
html[data-theme="light"] body .cp-dropdown.is-open > .cp-dropdown-trigger { background: #eceff3; }
html[data-theme="light"] body .cp-dropdown-menu { background: #fff; color: var(--tx); box-shadow: 0 20px 55px rgba(31, 42, 57, .2), 0 0 0 1px rgba(23, 31, 43, .08); }
html[data-theme="light"] body .cp-dropdown-option { color: #303744; }
html[data-theme="light"] body .cp-dropdown-option:hover,
html[data-theme="light"] body .cp-dropdown-option:focus-visible { background: #f0f2f5; }
html[data-theme="light"] body .cp-dropdown-option.is-selected { background: rgba(185, 107, 28, .12); color: #7b410d; }
html[data-theme="light"] body .cp-dropdown-search input { background: #f0f2f5; color: var(--tx); }
html[data-theme="light"] body :is(.zm-cp-btn, .cp-link, .cp-card-actions button) { background: rgba(31, 42, 57, .065); color: var(--tx); border-color: var(--line2); }
html[data-theme="light"] body .zm-cp-btn.primary { background: linear-gradient(180deg, #efbd72, #dc9138 54%, #c8741f); color: #2b1705; }
html[data-theme="light"] body .zm-cp-btn.ghost { color: var(--tx2); }
html[data-theme="light"] body :is(.cp-asset-card, .cp-shot-media, .zm-cp-card, .cp-ep-card, .cp-toolbar2) { background-color: #f7f8fa; border-color: var(--line); }
html[data-theme="light"] body .cp-modal { background: rgba(31, 42, 57, .32); }
html[data-theme="light"] body .cp-modal-card { background: #fff; color: var(--tx); border-color: var(--line); box-shadow: 0 30px 80px rgba(31, 42, 57, .24); }
html[data-theme="light"] body .zm-cp-toast { background: #fff; color: var(--tx); border-color: var(--line); box-shadow: 0 18px 48px rgba(31, 42, 57, .2); }

/* 法律文本页 */
html[data-theme="light"] body.legal-page {
  --bg: #f4f6f8;
  --line: rgba(23, 31, 43, .12);
  --t1: #171b22;
  --t2: #48515f;
  --t3: #6c7787;
}
html[data-theme="light"] body.legal-page,
html[data-theme="light"] body:has(> header.top + .wrap) { background: var(--zm-page); color: var(--zm-text-2); }
html[data-theme="light"] body.legal-page header.top { background: rgba(255, 255, 255, .9); }
html[data-theme="light"] body.legal-page header.top a.brand,
html[data-theme="light"] body.legal-page :is(h1, h2) { color: var(--zm-text); }
html[data-theme="light"] body.legal-page h3,
html[data-theme="light"] body.legal-page strong { color: #303744; }
html[data-theme="light"] body.legal-page .callout { color: #4c5666; }
html[data-theme="light"] body.legal-page th { background: #eceff3; color: #303744; }
html[data-theme="light"] body.legal-page .contact { background: #fff; }
html[data-theme="light"] body.legal-page .contact dd { color: #303744; }

/* 系统辅助偏好 */
@media (pointer: coarse) {
  .zm-theme-trigger,
  .zm-theme-option,
  :is(.zm-home-root, .zm-cv, .zm-al-mask, .zm-pj-mask, .zm-tm-mask, .zm-st-mask) button { min-height: 44px; touch-action: manipulation; }
  .zm-theme-trigger:hover { transform: none; }
  .zm-pj-del,
  .zm-pj-ren,
  .zm-al-proj-more { opacity: 1; display: grid; }
  .zm-theme-control.is-nc-inline .zm-theme-trigger { width: 44px; min-width: 44px; height: 44px; }
  html[data-theme="light"] body .cp-style-preset.on:hover { background: rgba(185, 107, 28, .13); }
}

@media (hover: hover) and (pointer: fine) {
  .zm-theme-trigger:hover {
    border-color: color-mix(in srgb, var(--zm-accent) 56%, var(--zm-border));
    background: var(--zm-surface);
    transform: translateY(-1px);
  }
  .zm-theme-option:hover { background: var(--zm-control); }
}

@media (max-width: 600px) {
  .zm-theme-control { right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); }
  .zm-theme-trigger { min-width: 48px; width: 48px; grid-template-columns: 1fr; justify-items: center; padding: 7px; }
  .zm-theme-trigger-copy,
  .zm-theme-trigger-chevron { display: none; }
}

@media (prefers-reduced-transparency: reduce) {
  .zm-theme-trigger { background: var(--zm-surface); backdrop-filter: none; -webkit-backdrop-filter: none; }
  html[data-theme="light"] body :is(.zm-cp-mask, .zm-cp-wrap) { background: #f4f6f8 !important; }
}

@media (prefers-reduced-motion: reduce) {
  .zm-theme-control *,
  html[data-theme] body { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media (forced-colors: active) {
  .zm-theme-trigger,
  .zm-theme-menu,
  .zm-theme-option,
  .zm-cp-mask .zm-cp-step { border: 1px solid ButtonText !important; forced-color-adjust: auto; }
  .zm-theme-option.is-selected,
  .zm-cp-mask .zm-cp-step.is-cur { outline: 3px solid Highlight !important; }
}

@media print {
  .zm-theme-control { display: none !important; }
}
