/* 全主题可读性护栏：正文至少按 4.5:1 目标配色，避免透明层叠后前景与背景趋同。 */
body[data-appearance="ocean"]{--primary:#075675;--deep:#06455f;--on-primary:#fff;--surface-safe:#f7fdff;--surface-soft:#eaf5f9;--ink-safe:#103747;--muted-safe:#315866;--sidebar-safe:#073e5b;--sidebar-muted:#d5e8ef}
body[data-appearance="minimal"]{--primary:#33483f;--deep:#263a32;--on-primary:#fff;--surface-safe:#fafcfb;--surface-soft:#edf2ef;--ink-safe:#172820;--muted-safe:#4b5c54;--sidebar-safe:#17382f;--sidebar-muted:#d5e4df}
body[data-appearance="grass"]{--primary:#245536;--deep:#193f28;--on-primary:#fff;--surface-safe:#fbfff7;--surface-soft:#edf7e8;--ink-safe:#183924;--muted-safe:#41624a;--sidebar-safe:#174428;--sidebar-muted:#d8ead9}
body[data-appearance="star"]{--primary:#4b579e;--deep:#303a78;--on-primary:#fff;--surface-safe:#262b3d;--surface-soft:#30364b;--ink-safe:#f4f6ff;--muted-safe:#cbd3e3;--sidebar-safe:#090d1a;--sidebar-muted:#cbd3e3}
body[data-appearance="tech"]{--primary:#274f69;--deep:#1f4258;--on-primary:#fff;--surface-safe:#fafdff;--surface-soft:#eaf3f8;--ink-safe:#1d2e39;--muted-safe:#526773;--sidebar-safe:#294c61;--sidebar-muted:#d9e7ee}
body[data-appearance="pink"]{--primary:#713052;--deep:#57213f;--on-primary:#fff;--surface-safe:#fff9fc;--surface-soft:#f9eaf2;--ink-safe:#4e263e;--muted-safe:#765068;--sidebar-safe:#5c2849;--sidebar-muted:#f1dce7}

/* 侧栏一律使用亮字；显式覆盖标题/strong/small 的全局主题规则。 */
body[data-appearance] #app>aside{background-color:var(--sidebar-safe)!important;color:#fff!important}
body[data-appearance] #app>aside .brand,
body[data-appearance] #app>aside .brand b,
body[data-appearance] #app>aside .brand strong,
body[data-appearance] #app>aside .brand-avatar,
body[data-appearance] #app>aside nav button,
body[data-appearance] #app>aside nav button .nav-menu-label,
body[data-appearance] #app>aside nav button .nav-label,
body[data-appearance] #app>aside #identity,
body[data-appearance] #app>aside footer{color:#fff!important}
body[data-appearance] #app>aside .brand small,
body[data-appearance] #app>aside #brandDisplayName{color:var(--sidebar-muted)!important;opacity:1!important}
body[data-appearance] #app>aside .brand-avatar{border-color:rgba(255,255,255,.62)!important}

/* 顶部标题与常规说明文字。 */
body[data-appearance]:not([data-appearance="star"]) .workspace>header h2,
body[data-appearance]:not([data-appearance="star"]) .workspace>header h3{color:var(--ink-safe)!important}
body[data-appearance]:not([data-appearance="star"]) .workspace>header p{color:var(--muted-safe)!important}
body[data-appearance="star"] .workspace>header h2,
body[data-appearance="star"] .workspace>header h3{color:#f6f8ff!important}
body[data-appearance="star"] .workspace>header p{color:#cbd3e3!important}
body[data-appearance]:not([data-appearance="star"]) .workspace>header,
body[data-appearance]:not([data-appearance="star"]) #dashboard .section-title{
  padding:10px 14px;
  border:1px solid color-mix(in srgb,var(--primary) 22%,#fff);
  border-radius:14px;
  background:var(--surface-safe)!important;
}
body[data-appearance="star"] .workspace>header,
body[data-appearance="star"] #dashboard .section-title{
  padding:10px 14px;
  border:1px solid #707b9b;
  border-radius:14px;
  background:#262b3d!important;
}

/* 浅色主题表面：固定浅底深字，降低背景图与半透明层叠的不确定性。 */
body[data-appearance]:not([data-appearance="star"]) .panel,
body[data-appearance]:not([data-appearance="star"]) .placeholder,
body[data-appearance]:not([data-appearance="star"]) .balance,
body[data-appearance]:not([data-appearance="star"]) .tool-v2>aside,
body[data-appearance]:not([data-appearance="star"]) .tool-v2>main,
body[data-appearance]:not([data-appearance="star"]) .settings-menu,
body[data-appearance]:not([data-appearance="star"]) .settings-top,
body[data-appearance]:not([data-appearance="star"]) .profile-card,
body[data-appearance]:not([data-appearance="star"]) .feedback-card{
  background:var(--surface-safe)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 25%,#fff)!important;
}
body[data-appearance]:not([data-appearance="star"]) .panel h1,
body[data-appearance]:not([data-appearance="star"]) .panel h2,
body[data-appearance]:not([data-appearance="star"]) .panel h3,
body[data-appearance]:not([data-appearance="star"]) .panel h4,
body[data-appearance]:not([data-appearance="star"]) .panel b,
body[data-appearance]:not([data-appearance="star"]) .panel strong{color:var(--ink-safe)!important}
body[data-appearance]:not([data-appearance="star"]) .panel label,
body[data-appearance]:not([data-appearance="star"]) .panel p,
body[data-appearance]:not([data-appearance="star"]) .panel small{color:var(--muted-safe)!important}

/* 星空黑所有工作表面必须保持深底亮字。 */
body[data-appearance="star"] .panel,
body[data-appearance="star"] .placeholder,
body[data-appearance="star"] .balance,
body[data-appearance="star"] .tool-v2>aside,
body[data-appearance="star"] .tool-v2>main,
body[data-appearance="star"] .settings-menu,
body[data-appearance="star"] .settings-top,
body[data-appearance="star"] .profile-card,
body[data-appearance="star"] .feedback-card{
  background:rgba(38,43,61,.94)!important;
  color:var(--ink-safe)!important;
  border-color:#707b9b!important;
}
body[data-appearance="star"] #dashboard .panel,
body[data-appearance="star"] #create .panel,
body[data-appearance="star"] #tools .panel,
body[data-appearance="star"] #materials .panel,
body[data-appearance="star"] #works .panel,
body[data-appearance="star"] #shared .panel,
body[data-appearance="star"] #stats .panel,
body[data-appearance="star"] #settings .panel,
body[data-appearance="star"] #admin .panel{background:#262b3d!important;color:#f4f6ff!important;border-color:#707b9b!important}
body[data-appearance="star"] .panel h1,
body[data-appearance="star"] .panel h2,
body[data-appearance="star"] .panel h3,
body[data-appearance="star"] .panel h4,
body[data-appearance="star"] .panel b,
body[data-appearance="star"] .panel strong{color:#f6f8ff!important}
body[data-appearance="star"] .panel label,
body[data-appearance="star"] .panel p,
body[data-appearance="star"] .panel small{color:#cbd3e3!important}

/* 上传区、空状态与结果区跟随主题表面，禁止浅底白字。 */
body[data-appearance]:not([data-appearance="star"]) .upload,
body[data-appearance]:not([data-appearance="star"]) .mini-upload,
body[data-appearance]:not([data-appearance="star"]) .tool-previews,
body[data-appearance]:not([data-appearance="star"]) .tool-results,
body[data-appearance]:not([data-appearance="star"]) .empty,
body[data-appearance]:not([data-appearance="star"]) .empty-mini{
  background:var(--surface-soft)!important;
  color:var(--muted-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 34%,#fff)!important;
}
body[data-appearance]:not([data-appearance="star"]) .upload b,
body[data-appearance]:not([data-appearance="star"]) .mini-upload b{color:var(--ink-safe)!important}
body[data-appearance="star"] .upload,
body[data-appearance="star"] .mini-upload,
body[data-appearance="star"] .tool-previews,
body[data-appearance="star"] .tool-results,
body[data-appearance="star"] .empty,
body[data-appearance="star"] .empty-mini{
  background:#30364b!important;
  color:#d7deed!important;
  border-color:#7884a6!important;
}
body[data-appearance="star"] .upload b,
body[data-appearance="star"] .upload span,
body[data-appearance="star"] .mini-upload b,
body[data-appearance="star"] .mini-upload span{color:#f2f5ff!important}

/* 表单控件与非活动按钮。 */
body[data-appearance]:not([data-appearance="star"]) input,
body[data-appearance]:not([data-appearance="star"]) select,
body[data-appearance]:not([data-appearance="star"]) textarea{
  background:#fff!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 45%,#fff)!important;
}
body[data-appearance]:not([data-appearance="star"]) input::placeholder,
body[data-appearance]:not([data-appearance="star"]) textarea::placeholder{color:var(--muted-safe)!important;opacity:1!important}
body[data-appearance="star"] input,
body[data-appearance="star"] select,
body[data-appearance="star"] textarea,
body[data-appearance="star"] #dashboard .hero-search input{
  background:#181e2e!important;
  color:#f7f9ff!important;
  border-color:#7f8baa!important;
}
body[data-appearance="star"] input::placeholder,
body[data-appearance="star"] textarea::placeholder{color:#bfc8dc!important;opacity:1!important}

body[data-appearance] .tabs button,
body[data-appearance] .tool-v2-tab,
body[data-appearance] .settings-menu button{
  background:var(--surface-soft)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 42%,var(--surface-safe))!important;
}
body[data-appearance="star"] .tabs button,
body[data-appearance="star"] .tool-v2-tab,
body[data-appearance="star"] .settings-menu button{background:#30364b!important;color:#f4f6ff!important;border-color:#7884a6!important}
body[data-appearance] .tabs button.active,
body[data-appearance] .tool-v2-tab.active,
body[data-appearance] .settings-menu button.active,
body[data-appearance] .primary,
body[data-appearance] .tool-v2-run:not(:disabled){background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}

/* 首页卡片。 */
body[data-appearance]:not([data-appearance="star"]) #dashboard .quick-card{
  background:var(--surface-safe)!important;
  color:var(--ink-safe)!important;
}
body[data-appearance]:not([data-appearance="star"]) #dashboard .quick-card b,
body[data-appearance]:not([data-appearance="star"]) #dashboard .section-title b{color:var(--ink-safe)!important}
body[data-appearance]:not([data-appearance="star"]) #dashboard .quick-card span,
body[data-appearance]:not([data-appearance="star"]) #dashboard .section-title span{color:var(--muted-safe)!important}
body[data-appearance="star"] #dashboard .quick-card{background:#1f2538!important;color:#f7f8ff!important}
body[data-appearance="star"] #dashboard .quick-card b{color:#fff!important}
body[data-appearance="star"] #dashboard .quick-card span{color:#cdd3e3!important}

/* 首页横幅：雪景是浅底深字，其余主题均为深底亮字。 */
body[data-appearance="tech"] #dashboard .hero,
body[data-appearance="tech"] #dashboard .hero h1,
body[data-appearance="tech"] #dashboard .hero h2,
body[data-appearance="tech"] #dashboard .hero h3,
body[data-appearance="tech"] #dashboard .hero p,
body[data-appearance="tech"] #dashboard .hero .eyebrow{color:#1b2d39!important}
body[data-appearance]:not([data-appearance="tech"]) #dashboard .hero,
body[data-appearance]:not([data-appearance="tech"]) #dashboard .hero h1,
body[data-appearance]:not([data-appearance="tech"]) #dashboard .hero h2,
body[data-appearance]:not([data-appearance="tech"]) #dashboard .hero h3{color:#fff!important}
body[data-appearance]:not([data-appearance="tech"]) #dashboard .hero p,
body[data-appearance]:not([data-appearance="tech"]) #dashboard .hero .eyebrow{color:#fff!important}
body[data-appearance="star"] #dashboard .hero-search{background:#242a3c!important;border-color:#7884a6!important}
body[data-appearance]:not([data-appearance="tech"]) #dashboard .hero>div:first-child{
  padding:18px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:16px;
  background:var(--deep)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
}
body[data-appearance="tech"] #dashboard .hero>div:first-child{
  padding:18px;
  border:1px solid rgba(72,104,122,.24);
  border-radius:16px;
  background:rgba(255,255,255,.7)!important;
}

/* 日历使用经过校验的主题色，避免周末、今天、空状态被高亮色冲淡。 */
body[data-appearance] .todo-panel{
  --todo-accent:var(--primary)!important;
  --todo-ink:var(--ink-safe)!important;
  --todo-muted:var(--muted-safe)!important;
  --todo-surface:color-mix(in srgb,var(--surface-safe) 94%,transparent)!important;
  --todo-surface-strong:var(--surface-soft)!important;
  --todo-line:color-mix(in srgb,var(--primary) 34%,transparent)!important;
}

/* 作品页图标必须有实色底，避免渐变背景被禁用或未加载时出现白字白底。 */
body[data-appearance] .works-toolbar-heading>span{
  background:var(--primary)!important;
  color:#fff!important;
}
body[data-appearance] #works .works-sticky-toolbar{
  background:var(--surface-safe)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 28%,var(--surface-safe))!important;
}
body[data-appearance]:not([data-appearance="star"]) .works-toolbar-heading b{color:var(--ink-safe)!important}
body[data-appearance]:not([data-appearance="star"]) .works-toolbar-heading small{color:var(--muted-safe)!important}
body[data-appearance="star"] .works-toolbar-heading b{color:#f6f8ff!important}
body[data-appearance="star"] .works-toolbar-heading small{color:#cbd3e3!important}
body[data-appearance] #works .works-toolbar-group,
body[data-appearance] #works .works-source-filter{
  background:var(--surface-soft)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 30%,var(--surface-safe))!important;
}
body[data-appearance] #works .works-toolbar-group strong,
body[data-appearance] #works .works-source-filter strong{color:var(--ink-safe)!important}

/* 星空首页图标改为实色浅底深字，不依赖渐变图层提供对比。 */
body[data-appearance="star"] #dashboard .quick-card i{background:#eaf2ff!important;color:#18324a!important;border-color:#fff!important}

/* 内容选项编辑器原本写死了浅色卡片；在星空黑下改为深底亮字。 */
body[data-appearance] #settings .option-category,
body[data-appearance] #settings .option-category [data-option-list]>article,
body[data-appearance] #settings .scene-category-card article{
  background:var(--surface-soft)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 35%,var(--surface-safe))!important;
}
body[data-appearance] #settings .option-category b,
body[data-appearance] #settings .scene-category-card article b{color:var(--ink-safe)!important}
body[data-appearance] #settings .option-category [data-option-list] span,
body[data-appearance] #settings .scene-category-card article span,
body[data-appearance] #settings .option-group p,
body[data-appearance] #settings .option-group small{color:var(--muted-safe)!important}
body[data-appearance="star"] #settings .option-category,
body[data-appearance="star"] #settings .option-category [data-option-list]>article,
body[data-appearance="star"] #settings .scene-category-card article{background:#30364b!important;border-color:#7884a6!important}

/* 顶部积分和素材空间不能沿用海洋蓝写死色。 */
body[data-appearance] .workspace>header .balance strong{color:var(--ink-safe)!important}
body[data-appearance] .material-top-actions .material-storage{
  background:var(--surface-safe)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 34%,var(--surface-safe))!important;
}
body[data-appearance] .material-top-actions .material-storage b,
body[data-appearance] .material-top-actions .material-storage span{color:var(--ink-safe)!important}

/* 修图舞台原本固定浅灰；星空黑时必须改为深色结果底。 */
body[data-appearance] .tool-v2-stage,
body[data-appearance] .tool-v2-results{
  background:var(--surface-soft)!important;
  color:var(--muted-safe)!important;
}
body[data-appearance="star"] .tool-v2-stage,
body[data-appearance="star"] .tool-v2-results{background:#181e2e!important;color:#d7deed!important}

/* “多图”角标用深字配橙底；白字在该橙色上不达标。 */
body[data-appearance] .tool-v2-tab .multi{background:#e8a83e!important;color:#362300!important;font-weight:850!important}

/* 星空高亮色用于按钮底，作为深底文字时另用亮色。 */
body[data-appearance="star"] .todo-panel #todoToday,
body[data-appearance="star"] .todo-panel #todoCount,
body[data-appearance="star"] .todo-panel .todo-week span:nth-last-child(-n+2),
body[data-appearance="star"] .todo-panel .todo-day.has-todo:not(.is-selected) .todo-day-number{color:#cbd4ff!important}

/* 侧栏图标块保持深底，避免半透明白底把白色符号冲淡。 */
body[data-appearance] #app>aside nav button .nav-menu-icon,
body[data-appearance] #app>aside nav button .nav-icon{background:rgba(0,0,0,.14)!important;border-color:rgba(255,255,255,.34)!important}
body[data-appearance] #app>aside nav button.active .nav-menu-icon,
body[data-appearance] #app>aside nav button.active .nav-icon{background:rgba(0,0,0,.22)!important;border-color:rgba(255,255,255,.5)!important}

/* 日志统计组件有独立的写死色值，逐项接入安全前景/表面色。 */
body[data-appearance] #stats .stats-toolbar,
body[data-appearance] #stats .stats-summary,
body[data-appearance] #stats .stats-table-panel{
  background:var(--surface-safe)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 28%,var(--surface-safe))!important;
}
body[data-appearance] #stats .stats-toolbar label,
body[data-appearance] #stats .stats-table-head span,
body[data-appearance] #stats .stats-metric span,
body[data-appearance] #stats .stats-detail,
body[data-appearance] #stats .stats-empty{color:var(--muted-safe)!important}
body[data-appearance] #stats .period-tabs{background:var(--surface-soft)!important}
body[data-appearance] #stats .period-tabs button,
body[data-appearance] #stats .stats-action,
body[data-appearance] #stats .stats-row-actions button{
  background:var(--surface-safe)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 42%,var(--surface-safe))!important;
}
body[data-appearance] #stats .period-tabs button.active,
body[data-appearance] #stats .stats-action.primary{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}
body[data-appearance] #stats .stats-metric{background:var(--surface-soft)!important;border-color:color-mix(in srgb,var(--primary) 25%,var(--surface-safe))!important}
body[data-appearance] #stats .stats-metric b{color:var(--ink-safe)!important}
body[data-appearance] #stats .stats-table th{background:var(--surface-soft)!important;color:var(--ink-safe)!important}
body[data-appearance] #stats .stats-table td{color:var(--ink-safe)!important;border-color:color-mix(in srgb,var(--primary) 22%,var(--surface-safe))!important}

/* 管理页标题条显式落到安全表面，避免透明混色造成亮字亮底。 */
body[data-appearance] #admin .admin-toolbar{
  background:var(--surface-safe)!important;
  color:var(--ink-safe)!important;
  border-color:color-mix(in srgb,var(--primary) 30%,var(--surface-safe))!important;
}
body[data-appearance] #admin .admin-toolbar h3{color:var(--ink-safe)!important}
body[data-appearance] #admin .admin-toolbar p{color:var(--muted-safe)!important}

/* 禁用态不用透明度稀释对比度。 */
body[data-appearance]:not([data-appearance="star"]) button:disabled{
  opacity:1!important;
  color:#506570!important;
  background:#dce7ec!important;
  border-color:#9eb4bf!important;
}
body[data-appearance="star"] button:disabled{
  opacity:1!important;
  color:#d7deed!important;
  background:#3c455d!important;
  border-color:#7e8bab!important;
}

/* 明确维持错误/危险文字的可读性。 */
body[data-appearance] .message,
body[data-appearance] .error,
body[data-appearance] [data-error]{color:#9f2925!important}
body[data-appearance="star"] .message,
body[data-appearance="star"] .error,
body[data-appearance="star"] [data-error]{color:#ffb9b4!important}
body[data-appearance] #toast.show.error{background:#852b28!important;color:#fff!important}
