/* 生成实盘第三步：策略列表仅从当前主题语义 token 派生颜色。 */
body.page-builder .strategies-panel-root {
  --st-primary: var(--color-accent);
  --st-primary-fg: var(--color-accent-fg);
  --st-accent: var(--color-accent-hover);
  --st-surface: var(--color-surface);
  --st-surface-raised: var(--color-surface-raised);
  --st-bg: var(--color-page);
  --st-text: var(--color-text);
  --st-muted: var(--color-text-muted);
  --st-border: var(--color-border);
  --st-hover: var(--color-hover);
  --st-success: var(--color-success);
  --st-warning: var(--color-warning);
  --st-danger: var(--color-danger);
  --st-danger-fg: var(--color-danger-fg);
  --st-elevated: color-mix(in srgb, var(--st-surface-raised) 84%, var(--st-surface));
  --st-code-bg: color-mix(in srgb, var(--st-bg) 58%, var(--st-surface-raised));
  --st-code-text: var(--st-text);
  --st-subtle-bg: color-mix(in srgb, var(--st-text) 5%, transparent);
  --st-subtle-border: color-mix(in srgb, var(--st-border) 82%, transparent);
  --st-primary-soft: color-mix(in srgb, var(--st-primary) 13%, var(--st-surface));
  --st-primary-border: color-mix(in srgb, var(--st-primary) 36%, var(--st-border));
  --st-success-soft: color-mix(in srgb, var(--st-success) 13%, var(--st-surface));
  --st-success-border: color-mix(in srgb, var(--st-success) 35%, var(--st-border));
  --st-danger-soft: color-mix(in srgb, var(--st-danger) 13%, var(--st-surface));
  --st-danger-border: color-mix(in srgb, var(--st-danger) 38%, var(--st-border));
  --st-shadow: color-mix(in srgb, var(--st-text) 20%, transparent);
}

body.page-builder .strategies-panel-root .strategies-side-nav,
body.page-builder .strategies-panel-root .strategy-card,
body.page-builder .strategies-panel-root .strategies-list .empty {
  background: var(--st-surface);
  border-color: var(--st-border);
  color: var(--st-text);
}

body.page-builder .strategies-panel-root .side-nav-item {
  color: var(--st-muted);
}

body.page-builder .strategies-panel-root .side-nav-item:hover,
body.page-builder .strategies-panel-root .side-nav-item.is-active,
body.page-builder .strategies-panel-root .strategy-accordion__trigger:hover .strategy-accordion__trigger-inner {
  background: var(--st-primary-soft);
  border-color: var(--st-primary-border);
  color: var(--st-text);
}

body.page-builder .strategies-panel-root .side-nav-item .nav-title,
body.page-builder .strategies-panel-root h2,
body.page-builder .strategies-panel-root .strategy-card__title-display,
body.page-builder .strategies-panel-root .strategy-card__local-title,
body.page-builder .strategies-panel-root .strategy-refined-label,
body.page-builder .strategies-panel-root .strategy-refined-md,
body.page-builder .strategies-panel-root .strategy-refined-md * {
  color: var(--st-text) !important;
}

body.page-builder .strategies-panel-root .side-nav-item .nav-title i,
body.page-builder .strategies-panel-root .strategy-accordion__chevron,
body.page-builder .strategies-panel-root .strategy-accordion__code-style,
body.page-builder .strategies-panel-root .strategy-refined-label {
  color: var(--st-accent) !important;
}

body.page-builder .strategies-panel-root .side-nav-desc,
body.page-builder .strategies-panel-root .summary,
body.page-builder .strategies-panel-root .sub,
body.page-builder .strategies-panel-root .empty,
body.page-builder .strategies-panel-root .strategy-card__hint,
body.page-builder .strategies-panel-root .strategy-card__local-meta,
body.page-builder .strategies-panel-root .strategy-card__local-preview,
body.page-builder .strategies-panel-root .strategy-accordion__time-row,
body.page-builder .strategies-panel-root .strategy-accordion__time-row time,
body.page-builder .strategies-panel-root .strategy-accordion__input-preview,
body.page-builder .strategies-panel-root .strategy-accordion__expand-hint,
body.page-builder .strategies-panel-root .strategies-inline-status {
  color: var(--st-muted) !important;
}

body.page-builder .strategies-panel-root .side-nav-count,
body.page-builder .strategies-panel-root .strategy-accordion__token-badge {
  color: var(--st-primary);
  background: var(--st-primary-soft);
  border-color: var(--st-primary-border);
}

body.page-builder .strategies-panel-root .side-nav-item.is-active .side-nav-count {
  color: var(--st-primary-fg);
  background: var(--st-primary);
}

body.page-builder .strategies-panel-root .strategies-toolbar-row,
body.page-builder .strategies-panel-root .strategy-accordion.is-expanded .strategy-accordion__panel-inner,
body.page-builder .strategies-panel-root .strategy-accordion.is-expanded .strategy-accordion__preview-foot.strategy-card__foot {
  border-color: var(--st-subtle-border) !important;
}

body.page-builder .strategies-panel-root .strategy-card__title-wrap.is-editable .strategy-card__title-display:hover {
  color: var(--st-text);
  background: var(--st-primary-soft);
}

body.page-builder .strategies-panel-root .strategy-card__title-input {
  color: var(--st-text);
  background: var(--st-surface-raised);
  border-color: var(--st-primary-border);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--st-primary) 14%, transparent);
}

body.page-builder .strategies-panel-root .strategy-accordion__panel,
body.page-builder .strategies-panel-root .strategy-accordion__preview-foot.strategy-card__foot {
  background: var(--st-elevated);
  border-color: var(--st-subtle-border);
}

body.page-builder .strategies-panel-root .strategy-refined-md,
body.page-builder .strategies-panel-root .strategy-refined-md pre,
body.page-builder .strategies-panel-root .strategy-refined-md code {
  background: var(--st-code-bg);
  border-color: var(--st-border);
}

body.page-builder .strategies-panel-root .strategy-refined-md h1,
body.page-builder .strategies-panel-root .strategy-refined-md h2,
body.page-builder .strategies-panel-root .strategy-refined-md h3,
body.page-builder .strategies-panel-root .strategy-refined-md h4,
body.page-builder .strategies-panel-root .strategy-refined-md th,
body.page-builder .strategies-panel-root .strategy-refined-md td {
  color: var(--st-text);
  border-color: var(--st-border);
}

body.page-builder .strategies-panel-root .strategy-refined-md th,
body.page-builder .strategies-panel-root .strategy-refined-md tr:nth-child(even) td {
  background: var(--st-subtle-bg);
}

body.page-builder .strategies-panel-root .strategy-refined-md hr {
  background: var(--st-border);
}

body.page-builder .strategies-panel-root .strategy-accordion:hover:not(.is-generating),
body.page-builder .strategies-panel-root .strategy-accordion.is-expanded {
  border-color: var(--st-primary-border) !important;
  box-shadow: 0 0.875rem 2.25rem var(--st-shadow);
}

body.page-builder .strategies-panel-root .strategy-card.is-generating {
  animation-name: st-theme-gen-pulse;
}

body.page-builder .strategies-panel-root .strategy-card.is-generating::before {
  background: linear-gradient(
    110deg,
    transparent 0%,
    color-mix(in srgb, var(--st-primary) 6%, transparent) 45%,
    color-mix(in srgb, var(--st-primary) 16%, transparent) 50%,
    color-mix(in srgb, var(--st-primary) 6%, transparent) 55%,
    transparent 100%
  );
}

@keyframes st-theme-gen-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--st-primary) 10%, transparent);
    border-color: color-mix(in srgb, var(--st-primary) 30%, var(--st-border));
  }
  50% {
    box-shadow: 0 0 1.75rem 0.25rem color-mix(in srgb, var(--st-primary) 15%, transparent);
    border-color: color-mix(in srgb, var(--st-primary) 52%, var(--st-border));
  }
}

body.page-builder .strategies-panel-root .pill {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.12rem 0.5rem;
  border: 1px solid var(--st-border);
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
}

body.page-builder .strategies-panel-root .pill-draft,
body.page-builder .strategies-panel-root .pill-queued {
  color: var(--st-warning);
  background: color-mix(in srgb, var(--st-warning) 13%, var(--st-surface));
  border-color: color-mix(in srgb, var(--st-warning) 34%, var(--st-border));
}

body.page-builder .strategies-panel-root .pill-running {
  color: var(--st-primary);
  background: var(--st-primary-soft);
  border-color: var(--st-primary-border);
}

body.page-builder .strategies-panel-root .pill-completed {
  color: var(--st-success);
  background: var(--st-success-soft);
  border-color: var(--st-success-border);
}

body.page-builder .strategies-panel-root .pill-failed {
  color: var(--st-danger);
  background: var(--st-danger-soft);
  border-color: var(--st-danger-border);
}

body.page-builder .strategies-panel-root .btn.btn-primary,
body.page-builder .strategies-panel-root a.btn.btn-primary,
body.page-builder .strategies-panel-root button.btn.btn-primary,
body.page-builder #btn-strategies-new.btn.btn-primary,
body.page-builder .strategies-panel-root .btn.btn-accent-grad,
body.page-builder .strategies-panel-root button.btn.btn-accent-grad {
  background: color-mix(in srgb, var(--st-primary) 20%, var(--st-surface-raised)) !important;
  background-image: none !important;
  border: 1px solid var(--st-primary-border) !important;
  border-color: var(--st-primary-border) !important;
  color: var(--st-text) !important;
  -webkit-text-fill-color: var(--st-text) !important;
  box-shadow: none !important;
  font-weight: 650;
}

body.page-builder .strategies-panel-root .btn.btn-primary:hover:not(:disabled),
body.page-builder .strategies-panel-root a.btn.btn-primary:hover,
body.page-builder .strategies-panel-root button.btn.btn-primary:hover:not(:disabled),
body.page-builder #btn-strategies-new.btn.btn-primary:hover:not(:disabled),
body.page-builder .strategies-panel-root .btn.btn-accent-grad:hover:not(:disabled),
body.page-builder .strategies-panel-root button.btn.btn-accent-grad:hover:not(:disabled) {
  background: color-mix(in srgb, var(--st-primary) 30%, var(--st-surface-raised)) !important;
  background-image: none !important;
  border-color: var(--st-primary) !important;
  color: var(--st-text) !important;
  -webkit-text-fill-color: var(--st-text) !important;
  box-shadow: 0 0.35rem 1rem color-mix(in srgb, var(--st-primary) 22%, transparent) !important;
  filter: none;
  transform: none;
}

body.page-builder .strategies-panel-root .btn.btn-primary i,
body.page-builder .strategies-panel-root .btn.btn-accent-grad i,
body.page-builder #btn-strategies-new.btn.btn-primary i {
  color: var(--st-primary) !important;
  -webkit-text-fill-color: var(--st-primary) !important;
}

/* 霁光亮色主题：主按钮保持实心靛蓝 + 白字，对比足够且是页面主行动点 */
html.theme-palette-jiguang body.page-builder .strategies-panel-root .btn.btn-primary,
html.theme-palette-jiguang body.page-builder .strategies-panel-root a.btn.btn-primary,
html.theme-palette-jiguang body.page-builder .strategies-panel-root button.btn.btn-primary,
html.theme-palette-jiguang body.page-builder #btn-strategies-new.btn.btn-primary,
html.theme-palette-jiguang body.page-builder .strategies-panel-root .btn.btn-accent-grad,
html.theme-palette-jiguang body.page-builder .strategies-panel-root button.btn.btn-accent-grad {
  background: var(--st-primary) !important;
  background-image: none !important;
  border-color: transparent !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  box-shadow: 0 0.35rem 1rem color-mix(in srgb, var(--st-primary) 30%, transparent) !important;
}

html.theme-palette-jiguang body.page-builder .strategies-panel-root .btn.btn-primary:hover:not(:disabled),
html.theme-palette-jiguang body.page-builder #btn-strategies-new.btn.btn-primary:hover:not(:disabled),
html.theme-palette-jiguang body.page-builder .strategies-panel-root .btn.btn-accent-grad:hover:not(:disabled) {
  background: color-mix(in srgb, var(--st-primary) 88%, #000) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  filter: none;
}

html.theme-palette-jiguang body.page-builder .strategies-panel-root .btn.btn-primary i,
html.theme-palette-jiguang body.page-builder .strategies-panel-root .btn.btn-accent-grad i,
html.theme-palette-jiguang body.page-builder #btn-strategies-new.btn.btn-primary i {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

body.page-builder .strategies-panel-root .btn-ghost,
body.page-builder .strategies-panel-root .strategy-card__actions .btn:not(.btn-primary) {
  color: var(--st-text);
  border-color: var(--st-border);
  background: var(--st-surface-raised);
}

body.page-builder .strategies-panel-root .btn-ghost:hover,
body.page-builder .strategies-panel-root .strategy-card__actions .btn:not(.btn-primary):hover {
  color: var(--st-text);
  background: var(--st-hover);
  border-color: var(--st-primary-border);
}


body.page-builder .strategies-panel-root .strategy-card__actions .btn.btn-delete-trigger {
  color: var(--st-danger);
  border-color: var(--st-danger-border);
  background: var(--st-danger-soft);
}

body.page-builder .strategies-panel-root .strategy-card__actions .btn.btn-delete-trigger:hover:not(:disabled) {
  color: var(--st-danger);
  border-color: var(--st-danger);
  background: color-mix(in srgb, var(--st-danger) 22%, var(--st-surface-raised));
}

body.page-builder .strategies-panel-root .strategy-card__actions.is-delete-armed .btn.btn-delete-trigger {
  color: var(--st-danger);
  border-color: var(--st-danger);
  background: color-mix(in srgb, var(--st-danger) 16%, var(--st-surface-raised));
}

/* 确定删除：深色主题用柔和红底 + 危险色文字，避免整块高亮红底刺眼；
   亮色霁光主题见下方单独覆写为实心红底 + 白字，保证对比度。 */
body.page-builder .strategies-panel-root .strategy-btn-confirm-delete {
  color: var(--st-danger);
  background: color-mix(in srgb, var(--st-danger) 16%, var(--st-surface-raised));
  border: 1px solid var(--st-danger-border);
  font-weight: 700;
  -webkit-text-fill-color: var(--st-danger);
}

body.page-builder .strategies-panel-root .strategy-btn-confirm-delete:hover:not(:disabled) {
  color: var(--st-danger);
  -webkit-text-fill-color: var(--st-danger);
  background: color-mix(in srgb, var(--st-danger) 26%, var(--st-surface-raised));
  border-color: var(--st-danger);
  filter: none;
}

/* 霁光亮色主题：实心红底 + 白字，对比度足够且符合删除的警示语义 */
html.theme-palette-jiguang body.page-builder .strategies-panel-root .strategy-btn-confirm-delete {
  color: #fff;
  -webkit-text-fill-color: #fff;
  background: var(--st-danger);
  border-color: transparent;
}

html.theme-palette-jiguang body.page-builder .strategies-panel-root .strategy-btn-confirm-delete:hover:not(:disabled) {
  color: #fff;
  -webkit-text-fill-color: #fff;
  background: color-mix(in srgb, var(--st-danger) 88%, #000);
  border-color: transparent;
}

html.theme-palette-jiguang body.page-builder .strategies-panel-root .strategy-card__actions .btn.btn-delete-trigger {
  color: var(--st-danger);
  background: color-mix(in srgb, var(--st-danger) 8%, #fff);
}

html.theme-palette-jiguang body.page-builder .strategies-panel-root .strategy-btn-confirm-delete i,
html.theme-palette-jiguang body.page-builder .strategies-panel-root .strategy-card__actions .btn.btn-delete-trigger i {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

body.page-builder .strategies-panel-root .btn-copy-success {
  color: var(--st-success) !important;
  border-color: var(--st-success-border) !important;
  background: var(--st-success-soft) !important;
}

body.page-builder .strategies-panel-root .status.ok {
  color: var(--st-success);
}

body.page-builder .strategies-panel-root .status.error {
  color: var(--st-danger);
}

/* 亮色主题下柔色徽标文字加深，保证在浅底上可读 */
html.theme-palette-jiguang body.page-builder .strategies-panel-root .pill-draft,
html.theme-palette-jiguang body.page-builder .strategies-panel-root .pill-queued {
  color: color-mix(in srgb, var(--st-warning) 72%, #3a2a12);
}
html.theme-palette-jiguang body.page-builder .strategies-panel-root .pill-completed {
  color: color-mix(in srgb, var(--st-success) 80%, #0a1b33);
}
html.theme-palette-jiguang body.page-builder .strategies-panel-root .pill-failed {
  color: color-mix(in srgb, var(--st-danger) 82%, #4a1218);
}
html.theme-palette-jiguang body.page-builder .strategies-panel-root .strategy-accordion__token-badge,
html.theme-palette-jiguang body.page-builder .strategies-panel-root .side-nav-count {
  color: color-mix(in srgb, var(--st-primary) 82%, #1b2350);
}
