/**
 * 制作台 · 创作工具箱 / Comfy / 透析 / 智能策划 / 色标（P-css-j：从 ops-mid）
 */

/* —— 创作工具箱（嵌入本机 8765 · 对齐制作台纸色） —— */
/* 高度由 body.igs-on-workspace 的 flex 铺满；此处只补面板内布局 */
body.igs-on-tools .igs-panel.active {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: none;
}
body.igs-on-tools #igsDock {
  display: none !important;
}
body.igs-on-tools .igs-tools-shell {
  border: none;
  border-radius: 0;
  box-shadow: none;
  min-height: calc(100dvh - var(--igs-shell-chrome-h, 3.25rem) - 0.5rem);
}
body.igs-on-tools .igs-tools-bar {
  flex-wrap: nowrap;
  gap: 0.5rem 0.65rem;
  padding: 0.4rem 0.7rem;
  align-items: center;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--igs-accent, #1f6b58) 6%, #fffef9), #fffef9 70%);
  border-bottom: 1px solid color-mix(in srgb, var(--igs-line) 85%, var(--igs-accent, #1f6b58) 15%);
}
body.igs-on-tools .igs-tools-bar-left strong {
  display: none;
}
body.igs-on-tools .igs-tools-bar-left {
  flex: 0 1 auto;
  max-width: min(28vw, 220px);
}
body.igs-on-tools .igs-tools-status {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.72rem;
  color: var(--igs-muted);
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--igs-card, #fff) 70%, var(--igs-line));
  border: 1px solid color-mix(in srgb, var(--igs-line) 70%, transparent);
}
body.igs-on-tools .igs-tools-bar-chips-wrap {
  flex: 1;
  min-width: 0;
  justify-content: center;
  overflow-x: auto;
  scrollbar-width: thin;
}
body.igs-on-tools .igs-tools-bar-chips {
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.28rem;
  padding: 0.15rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--igs-ink, #14201c) 4%, transparent);
  border: 1px solid color-mix(in srgb, var(--igs-line) 60%, transparent);
}
body.igs-on-tools .igs-tools-bar-right {
  flex: 0 0 auto;
  gap: 0.3rem;
  align-items: center;
}
body.igs-on-tools .igs-tools-bar-right .igs-link {
  font-size: 0.78rem;
}
body.igs-on-tools .igs-tools-frame {
  flex: 1;
  min-height: 0;
  border: 0;
}
.igs-tools-chip {
  appearance: none;
  border: 1px solid transparent;
  background: transparent;
  color: var(--igs-muted);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  padding: 0.32rem 0.72rem;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  letter-spacing: 0.01em;
  transition: color 0.14s, background 0.14s, border-color 0.14s, box-shadow 0.14s, transform 0.12s;
}
.igs-tools-chip__ico {
  font-size: 0.85rem;
  line-height: 1;
  opacity: 0.9;
}
.igs-tools-chip__lab {
  line-height: 1.1;
}
.igs-tools-chip:hover {
  color: var(--igs-ink);
  background: color-mix(in srgb, #fff 88%, var(--igs-accent, #1f6b58) 8%);
  border-color: color-mix(in srgb, var(--igs-accent) 35%, var(--igs-line));
  transform: translateY(-0.5px);
}
.igs-tools-chip.active {
  color: #f7fff9;
  background: linear-gradient(145deg, color-mix(in srgb, var(--igs-accent) 88%, #fff), var(--igs-accent));
  border-color: transparent;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--igs-accent) 28%, transparent);
}
.igs-tools-chip.is-render.active {
  background: linear-gradient(145deg, color-mix(in srgb, var(--igs-accent) 75%, #4f46e5), var(--igs-accent));
  border-color: transparent;
}
.igs-tools-cred {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border: 1px solid var(--igs-line);
  background: #fff;
  color: var(--igs-muted);
  white-space: nowrap;
}
.igs-tools-cred.is-ok {
  color: var(--igs-accent, #1f6b58);
  border-color: color-mix(in srgb, var(--igs-accent) 40%, var(--igs-line));
  background: color-mix(in srgb, var(--igs-accent) 10%, #fff);
}
.igs-tools-cred.is-bad {
  color: #a65c2e;
  border-color: color-mix(in srgb, #a65c2e 35%, var(--igs-line));
  background: color-mix(in srgb, #a65c2e 8%, #fff);
}
.igs-tools-ico-btn,
.igs-tools-ico-link {
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.45rem !important;
  display: inline-grid;
  place-items: center;
  border-radius: 10px !important;
  font-size: 0.95rem;
  text-decoration: none;
  color: var(--igs-muted);
}
.igs-tools-ico-btn:hover,
.igs-tools-ico-link:hover {
  color: var(--igs-ink);
  background: color-mix(in srgb, var(--igs-accent) 10%, #fff);
}
.igs-tools-shell {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--igs-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--igs-card);
  box-shadow: 0 10px 28px rgba(20, 32, 28, 0.06);
}
.igs-tools-bar {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  padding: 0.45rem 0.65rem;
  border-bottom: 1px solid var(--igs-line);
  background: rgba(255, 252, 246, 0.96);
  color: var(--igs-ink);
}
.igs-tools-bar-left {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  min-width: 0;
}
.igs-tools-bar-left strong {
  font-size: 0.92rem;
  font-weight: 650;
  font-family: var(--igs-serif);
  color: var(--igs-ink);
}
.igs-tools-bar-left .igs-muted-sm {
  color: var(--igs-muted);
}
.igs-tools-bar-chips-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  flex: 1;
  min-width: 0;
  justify-content: center;
}
.igs-tools-bar-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.75rem;
  flex: 1;
  min-width: 0;
  justify-content: center;
}
.igs-tools-chip-group {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.igs-tools-chip-group__lab {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--igs-muted);
  opacity: 0.85;
}
.igs-tools-chip-group__row {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.igs-tools-chip-group.is-render .igs-tools-chip-group__lab {
  color: var(--igs-accent, #2f7d62);
}
.igs-tools-shortcuts {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  align-items: center;
}
.igs-tools-shortcut {
  appearance: none;
  border: 1px dashed color-mix(in srgb, var(--igs-accent, #3d9a7a) 40%, var(--igs-line));
  background: color-mix(in srgb, var(--igs-accent, #3d9a7a) 8%, #fff);
  color: var(--igs-accent, #2f7d62);
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
}
.igs-tools-shortcut:hover {
  background: color-mix(in srgb, var(--igs-accent, #3d9a7a) 16%, #fff);
}
.igs-tools-chip {
  appearance: none;
  border: 1px solid var(--igs-line);
  background: #fff;
  color: var(--igs-muted);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
}
.igs-tools-chip:hover {
  color: var(--igs-ink);
  border-color: color-mix(in srgb, var(--igs-accent) 45%, var(--igs-line));
}
.igs-tools-chip.active {
  color: #f7fff9;
  background: var(--igs-accent);
  border-color: var(--igs-accent);
}
.igs-tools-chip.is-render {
  border-color: color-mix(in srgb, var(--igs-accent) 35%, var(--igs-line));
}
.igs-tools-chip.is-render.active {
  background: linear-gradient(135deg, color-mix(in srgb, var(--igs-accent) 70%, #4f46e5), var(--igs-accent));
  border-color: var(--igs-accent);
}
.igs-tools-chip-sep {
  width: 1px;
  align-self: stretch;
  margin: 0 0.15rem;
  background: color-mix(in srgb, var(--igs-line) 80%, transparent);
}
.igs-tools-ctx {
  padding: 0.35rem 0.65rem 0;
}
.igs-tools-ctx__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  padding: 0.4rem 0.55rem;
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--igs-accent) 8%, var(--igs-paper, #f5f3ee));
  border: 1px solid color-mix(in srgb, var(--igs-accent) 22%, transparent);
  font-size: 0.78rem;
}
.igs-tools-ctx__label {
  font-weight: 700;
  color: var(--igs-accent);
}
.igs-tools-ctx__path {
  color: var(--igs-ink);
  font-weight: 600;
}
.igs-tools-ctx__hint {
  flex: 1 1 12rem;
  color: var(--igs-muted);
  font-size: 0.74rem;
}
.igs-tools-ctx__pipe {
  flex: 0 1 auto;
  font-size: 0.72rem;
  color: var(--igs-accent, #3ecf8e);
  opacity: 0.92;
}
.igs-tools-ctx__cred {
  flex: 0 1 auto;
  font-size: 0.7rem;
  color: var(--igs-muted);
  max-width: 22rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.igs-tools-bar-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.igs-tools-bar-right input[type="url"] {
  width: min(240px, 42vw);
  border-radius: 8px;
  border: 1px solid var(--igs-line);
  background: #fff;
  color: var(--igs-ink);
  padding: 0.35rem 0.55rem;
  font: inherit;
  font-size: 0.8rem;
}
.igs-tools-bar-right .igs-btn-ghost {
  border-color: var(--igs-accent);
  color: var(--igs-accent);
  background: #fff;
}
.igs-tools-bar-right .igs-link {
  color: var(--igs-accent);
}
.igs-tools-adv {
  position: relative;
}
.igs-tools-adv > summary {
  list-style: none;
  cursor: pointer;
  border: 1px solid var(--igs-line);
  border-radius: 0.4rem;
  width: 1.75rem;
  height: 1.75rem;
  display: grid;
  place-items: center;
  background: #fff;
  font-weight: 700;
  color: var(--igs-muted);
}
.igs-tools-adv > summary::-webkit-details-marker { display: none; }
.igs-tools-adv-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.3rem);
  z-index: 40;
  width: min(280px, 70vw);
  padding: 0.55rem;
  border: 1px solid var(--igs-line);
  border-radius: 0.55rem;
  background: #fff;
  box-shadow: 0 10px 24px rgba(30, 24, 16, 0.12);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.igs-tools-adv-panel label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.72rem;
  color: var(--igs-muted);
}
.igs-tools-adv-panel input[type="url"] {
  width: 100%;
}
.igs-tools-frame {
  flex: 1;
  min-height: 0;
  width: 100%;
  border: 0;
  background: var(--igs-paper);
}

/* —— Comfy 学院 —— */
.igs-acad-layout {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: stretch;
}
@media (max-width: 980px) {
  .igs-acad-layout { grid-template-columns: 1fr; }
}
.igs-acad-nav {
  max-height: 78vh;
  overflow: auto;
  padding: 0.65rem 0.75rem;
}
.igs-acad-intro { margin: 0 0 0.75rem; line-height: 1.45; }
.igs-acad-chapter { margin-bottom: 0.55rem; }
.igs-acad-chapter.active .igs-acad-ch { border-color: var(--igs-accent); background: rgba(47,107,90,0.08); }
.igs-acad-chapter.special .igs-acad-ch {
  border-color: rgba(180, 110, 40, 0.35);
  background: rgba(180, 110, 40, 0.06);
}
.igs-acad-special { background: #b46e28 !important; }
.igs-acad-ch, .igs-acad-sec {
  display: block; width: 100%; text-align: left;
  border: 1px solid transparent; background: transparent;
  border-radius: 0.55rem; padding: 0.4rem 0.5rem; cursor: pointer;
  font: inherit; color: inherit;
}
.igs-acad-ch:hover, .igs-acad-sec:hover { background: rgba(31,42,36,0.04); }
.igs-acad-ch b { display: block; font-size: 0.92rem; }
.igs-acad-ch .when { display: block; font-size: 0.72rem; color: var(--igs-muted); margin-top: 0.15rem; }
.igs-acad-secs { padding: 0.15rem 0 0.25rem 0.55rem; }
.igs-acad-sec { font-size: 0.82rem; color: #3d453e; padding: 0.28rem 0.45rem; }
.igs-acad-sec.active { background: #1f2a24; color: #f4f0e6; }
.igs-acad-hint { margin: 0.75rem 0 0.25rem; line-height: 1.45; word-break: break-all; }
.igs-acad-main { display: flex; flex-direction: column; gap: 0.75rem; min-width: 0; }
.igs-acad-reader {
  max-height: 62vh; overflow: auto; padding: 1rem 1.2rem;
}
.igs-acad-inv {
  border: 1px solid var(--igs-line); border-radius: 0.85rem;
  background: #fffcf6; padding: 0.75rem 1rem; font-size: 0.85rem;
}
.igs-acad-inv--off { background: #fff4ec; border-color: #e8c4a8; }
.igs-acad-inv-head { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 0.35rem; }
.igs-acad-inv details { margin: 0.35rem 0; }
.igs-acad-inv summary { cursor: pointer; font-weight: 600; }
.igs-acad-codes { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.35rem; }
.igs-acad-codes code {
  font-size: 0.72rem; background: #efe8d8; padding: 0.12rem 0.35rem;
  border-radius: 0.3rem; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
}

/* ── 小说透析台 ── */
#panel-dialysis.active {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}
#panel-dialysis .igs-dx-page { width: 100%; height: 100%; }
body.igs-on-dialysis #panel-dialysis {
  padding: 0;
}
body.igs-on-dialysis .igs-dx-page {
  padding: 0.65rem 0.85rem 1rem;
  box-sizing: border-box;
  overflow: auto;
}
.igs-dx-page {
  display: flex; flex-direction: column; gap: 0.5rem;
  min-height: 0; height: 100%;
  flex: 1;
}
.igs-dx-page.igs-dx-view-list {
  /* 列表模式吃满视口，减少底部留白 */
  min-height: calc(100vh - 7.5rem);
}
.igs-dx-page.igs-dx-view-list .igs-dx-layout {
  flex: 1;
  min-height: calc(100vh - 14rem);
}
.igs-dx-page.igs-dx-view-list .igs-dx-stage {
  min-height: 0;
  flex: 1;
}
.igs-dx-page.igs-dx-view-list .igs-dx-canvas.is-list {
  flex: 1;
  min-height: calc(100vh - 16rem);
  align-items: stretch;
  justify-content: stretch;
  padding: 0;
  overflow: hidden;
}
.igs-dx-stats {
  display: flex; flex-wrap: wrap; gap: 0.35rem 0.45rem;
  font-size: 0.78rem; color: var(--igs-muted);
  align-items: center;
}
.igs-dx-stats b { color: #14201c; margin-right: 0.15rem; }
.igs-dx-stat {
  display: inline-flex; align-items: baseline; gap: 0.2rem;
  border: 1px solid var(--igs-line, #d8d0c0); border-radius: 999px;
  background: #fffdf8; padding: 0.22rem 0.55rem; cursor: pointer;
  font: inherit; font-size: 0.78rem; color: #3d453e;
  transition: border-color 0.12s, background 0.12s;
}
.igs-dx-stat.is-ro { cursor: default; background: transparent; border-color: transparent; padding-left: 0.15rem; padding-right: 0.35rem; }
.igs-dx-stat:not(.is-ro):hover { border-color: var(--igs-accent); background: #f4faf7; }
.igs-dx-stat.on { border-color: #c45c28; background: #fff5ee; box-shadow: 0 0 0 1px rgba(196,92,40,0.18); }
.igs-dx-stat.k-keep b, .igs-dx-stats .k-keep b { color: var(--igs-accent); }
.igs-dx-stat.k-compress b, .igs-dx-stats .k-compress b { color: #8a6b3d; }
.igs-dx-stat.k-diverge b, .igs-dx-stats .k-diverge b { color: #c45c28; }
.igs-dx-stat.k-shelf b, .igs-dx-stats .k-shelf b { color: #9a948a; }
.igs-dx-stat.is-clear { color: #c45c28; border-style: dashed; }
.igs-dx-stats .k-keep b { color: var(--igs-accent); }
.igs-dx-stats .k-compress b { color: #8a6b3d; }
.igs-dx-stats .k-diverge b { color: #c45c28; }
.igs-dx-stats .k-shelf b { color: #9a948a; }

.igs-dx-chrome {
  align-items: flex-start;
}
.igs-dx-chrome__acts {
  display: flex; flex-wrap: wrap; gap: 0.35rem 0.4rem; align-items: center; justify-content: flex-end;
}
.igs-dx-more {
  position: relative;
}
.igs-dx-more > summary {
  list-style: none; cursor: pointer;
  border: 1px solid var(--igs-line); border-radius: 0.45rem;
  padding: 0.28rem 0.55rem; background: #fffdf8; font-size: 0.8rem;
}
.igs-dx-more > summary::-webkit-details-marker { display: none; }
.igs-dx-more[open] > summary { border-color: var(--igs-accent); }
.igs-dx-more__menu {
  position: absolute; right: 0; top: calc(100% + 0.25rem); z-index: 20;
  display: flex; flex-direction: column; gap: 0.2rem; min-width: 8.5rem;
  padding: 0.4rem; border-radius: 0.55rem; border: 1px solid var(--igs-line);
  background: #fffcf6; box-shadow: 0 8px 24px rgba(20, 36, 30, 0.1);
}
.igs-dx-more__menu .igs-btn-ghost,
.igs-dx-more__menu a.igs-btn-ghost {
  justify-content: flex-start; text-align: left; width: 100%;
}

.igs-dx-crumb {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 0.35rem 0.75rem;
  padding: 0.35rem 0.55rem;
  border-radius: 0.55rem;
  background: color-mix(in srgb, var(--igs-accent) 5%, transparent);
  border: 1px solid color-mix(in srgb, var(--igs-line, #d8d0c0) 80%, var(--igs-accent));
}
.igs-dx-crumb__path {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.25rem;
  font-size: 0.8rem;
}
.igs-dx-crumb__bit {
  border: none; background: transparent; cursor: pointer; font: inherit;
  color: var(--igs-accent); font-weight: 600; padding: 0.1rem 0.3rem; border-radius: 0.3rem;
}
.igs-dx-crumb__bit:hover { background: color-mix(in srgb, var(--igs-accent) 10%, transparent); }
.igs-dx-crumb__bit.on { background: #1f2a24; color: #f4f0e6; }
.igs-dx-crumb__sep { color: #a39a8c; font-size: 0.75rem; }
.igs-dx-crumb__now {
  max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: #14201c; font-weight: 600;
}
.igs-dx-crumb__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem;
  font-size: 0.72rem; color: #6a736c;
}
.igs-dx-crumb__cast.is-all { opacity: 0.75; }
.igs-dx-crumb__filt {
  padding: 0.1rem 0.4rem; border-radius: 999px; background: #fff5ee; color: #c45c28;
}

.igs-dx-ai-strip {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.45rem;
  padding: 0.4rem 0.55rem; border-radius: 0.55rem;
  border: 1px dashed color-mix(in srgb, var(--igs-accent) 35%, var(--igs-line, #d8d0c0));
  background: linear-gradient(90deg, color-mix(in srgb, var(--igs-accent) 6%, transparent), rgba(196,92,40,0.04));
  font-size: 0.78rem; color: #3d453e;
}
.igs-dx-cast-all {
  border-style: dashed !important;
  margin-bottom: 0.15rem;
}
.igs-dx-hotkey-hint kbd {
  display: inline-block; min-width: 1.1rem; text-align: center;
  padding: 0.05rem 0.28rem; margin: 0 0.1rem;
  border: 1px solid var(--igs-line); border-radius: 0.25rem;
  background: #fff; font-size: 0.7rem; font-family: ui-monospace, monospace;
}
.igs-dx-side {
  position: sticky; top: 0.35rem; align-self: start;
  background: #fffcf6; border: 1px solid var(--igs-line); border-radius: 0.85rem;
  padding: 0.75rem 0.85rem; max-height: min(78vh, 42rem); overflow: auto;
}
.igs-dx-page.igs-dx-view-board .igs-dx-canvas.is-board,
.igs-dx-page.igs-dx-view-aiviz .igs-dx-canvas.is-board {
  min-height: min(52vh, 34rem);
}
.igs-dx-oneliner {
  margin: 0; padding: 0.55rem 0.75rem; border-radius: 0.65rem;
  background: linear-gradient(105deg, rgba(196,92,40,0.08), color-mix(in srgb, var(--igs-accent) 8%, transparent));
  border: 1px solid var(--igs-line); font-size: 0.88rem; line-height: 1.45;
}
.igs-dx-layout {
  display: grid;
  grid-template-columns: minmax(9.5rem, 12rem) minmax(0, 1fr) minmax(16rem, 22rem);
  gap: 0.75rem; align-items: stretch; min-height: 28rem;
  flex: 1; min-height: 0;
}
@media (max-width: 1100px) {
  .igs-dx-layout { grid-template-columns: 1fr; }
}
.igs-dx-cast, .igs-dx-side {
  display: flex; flex-direction: column; gap: 0.35rem; min-width: 0;
}
.igs-dx-cast h3, .igs-dx-side h3, .igs-dx-side h4 {
  margin: 0.2rem 0; font-size: 0.78rem; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--igs-muted);
}
.igs-dx-cast-btn {
  display: flex; flex-direction: column; align-items: flex-start; gap: 0.1rem;
  text-align: left; border: 1px solid var(--igs-line); background: #fffcf6;
  border-radius: 0.65rem; padding: 0.45rem 0.55rem; cursor: pointer; font: inherit;
  border-left: 3px solid var(--c, var(--igs-accent));
}
.igs-dx-cast-btn:hover { background: #f7f1e4; }
.igs-dx-cast-btn.active {
  background: #1f2a24; color: #f4f0e6; border-color: #1f2a24;
}
.igs-dx-cast-btn.active small, .igs-dx-cast-btn.active em { color: rgba(244,240,230,0.7); }
.igs-dx-cast-btn strong { font-size: 0.92rem; }
.igs-dx-cast-btn small { font-size: 0.72rem; color: var(--igs-muted); }
.igs-dx-cast-btn em { font-size: 0.7rem; font-style: normal; color: #6a645a; }
.igs-dx-factions { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.igs-dx-fac {
  font-size: 0.7rem; padding: 0.15rem 0.4rem; border-radius: 999px;
  background: color-mix(in srgb, var(--c) 18%, #fffcf6);
  color: #14201c; border: 1px solid color-mix(in srgb, var(--c) 40%, transparent);
}
.igs-dx-stage { min-width: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.igs-dx-toolbar {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; align-items: center;
}
.igs-dx-canvas {
  min-height: 22rem; display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(ellipse at 50% 45%, color-mix(in srgb, var(--igs-accent) 6%, transparent), transparent 55%),
    linear-gradient(180deg, #fffcf6, #f3eee3);
  overflow: hidden;
}
.igs-dx-canvas.is-board {
  align-items: stretch;
  justify-content: flex-start;
  overflow: auto;
  padding: 0.55rem 0.65rem 0.85rem;
}
.igs-dx-svg { width: 100%; height: auto; max-height: 34rem; }

/* —— 透析三层范围：全书 / 章节 / 小节 + AI 图 —— */
.igs-dx-scope {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.55rem;
  margin: 0 0 0.15rem; padding: 0.35rem 0.45rem;
  border: 1px solid color-mix(in srgb, var(--igs-line, #d8d0c0) 85%, var(--igs-accent));
  border-radius: 0.7rem;
  background: linear-gradient(135deg, color-mix(in srgb, var(--igs-accent) 6%, transparent), rgba(196,92,40,0.04));
}
.igs-dx-scope__btn {
  display: inline-flex; align-items: baseline; gap: 0.35rem;
  border: 1px solid var(--igs-line, #d8d0c0); border-radius: 999px;
  background: #fffdf8; color: #2a342e; cursor: pointer;
  font: inherit; font-size: 0.82rem; padding: 0.28rem 0.7rem;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}
.igs-dx-scope__btn b { font-weight: 700; }
.igs-dx-scope__btn em {
  font-style: normal; font-size: 0.72rem; font-weight: 700;
  color: var(--igs-accent); opacity: 0.85;
}
.igs-dx-scope__btn:hover { border-color: var(--igs-accent); background: #f4faf7; }
.igs-dx-scope__btn.on {
  border-color: #c45c28; background: #fff5ee;
  box-shadow: 0 0 0 1px rgba(196,92,40,0.22);
}
.igs-dx-scope__btn.on em { color: #c45c28; }
.igs-dx-scope__hint {
  flex: 1 1 10rem; font-size: 0.72rem; color: var(--igs-muted, #6a736c); line-height: 1.35;
}

.igs-dx-board {
  width: 100%; text-align: left; display: flex; flex-direction: column; gap: 0.55rem;
}
.igs-dx-board__hd {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 0.55rem;
}
.igs-dx-board__hd h3 {
  margin: 0; font-size: 1rem; color: #14201c; font-family: "Noto Serif SC", serif;
}
.igs-dx-board__hd p {
  margin: 0; flex: 1 1 12rem; font-size: 0.78rem; color: var(--igs-muted, #6a736c);
}

.igs-dx-ch-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.45rem;
}
.igs-dx-ch-card {
  display: flex; flex-direction: column; gap: 0.2rem;
  text-align: left; cursor: pointer; font: inherit;
  border: 1px solid var(--igs-line, #d8d0c0); border-radius: 0.75rem;
  background: #fffdf9; padding: 0.55rem 0.6rem 0.5rem;
  border-left: 3px solid var(--sc, var(--igs-accent));
  transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.igs-dx-ch-card:hover { border-color: #c4b8a4; background: #fffaf2; }
.igs-dx-ch-card.on {
  border-color: #c45c28; background: #fff8f2;
  box-shadow: 0 0 0 1px rgba(196,92,40,0.2);
}
.igs-dx-ch-card header {
  display: flex; justify-content: space-between; align-items: baseline; gap: 0.35rem;
}
.igs-dx-ch-card header b { font-size: 0.9rem; color: #14201c; }
.igs-dx-ch-card header code {
  font-size: 0.65rem; color: #8a8274; background: transparent; padding: 0;
}
.igs-dx-ch-card__score {
  font-size: 1.35rem; font-weight: 800; color: var(--sc, #c45c28); line-height: 1.1;
}
.igs-dx-ch-card p {
  margin: 0; font-size: 0.72rem; line-height: 1.35; color: #3d453e;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.igs-dx-ch-card footer {
  display: flex; justify-content: space-between; gap: 0.35rem;
  font-size: 0.68rem; color: #6a736c; margin-top: 0.15rem;
}
.igs-dx-ch-card footer em { font-style: normal; }
.igs-dx-ch-card.lv-hot { background: linear-gradient(180deg, #fff6f0, #fffdf9); }
.igs-dx-ch-card.lv-warm { background: linear-gradient(180deg, #fff9f2, #fffdf9); }

.igs-dx-sec-flow {
  display: flex; flex-direction: column; gap: 0.4rem;
}
.igs-dx-sec-card {
  display: grid;
  grid-template-columns: 2rem 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.1rem 0.55rem;
  align-items: start;
  text-align: left; cursor: pointer; font: inherit;
  border: 1px solid var(--igs-line, #d8d0c0); border-radius: 0.7rem;
  background: #fffdf9; padding: 0.5rem 0.65rem;
  border-left: 3px solid var(--sc, var(--igs-accent));
  transition: border-color 0.15s, background 0.15s;
}
.igs-dx-sec-card:hover { border-color: #c4b8a4; background: #fffaf2; }
.igs-dx-sec-card.on {
  border-color: var(--igs-accent); background: #f4faf7;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--igs-accent) 18%, transparent);
}
.igs-dx-sec-card > em {
  grid-row: 1 / span 2; align-self: center;
  font-style: normal; font-size: 0.72rem; font-weight: 800; color: var(--igs-accent);
}
.igs-dx-sec-card > strong {
  grid-column: 2; font-size: 0.88rem; color: #14201c; line-height: 1.3;
}
.igs-dx-sec-card > span {
  grid-column: 2; font-size: 0.7rem; color: #6a736c;
}
.igs-dx-sec-card > footer {
  grid-column: 3; grid-row: 1 / span 2; align-self: center;
  display: flex; flex-direction: column; align-items: flex-end; gap: 0.15rem;
  font-size: 0.7rem; color: #6a736c;
}
.igs-dx-sec-card > footer b { font-size: 1rem; color: var(--sc, #c45c28); }
.igs-dx-sec-card > footer i { font-style: normal; }
.igs-dx-sec-card > footer code {
  font-size: 0.62rem; padding: 0.05rem 0.25rem; border-radius: 0.25rem;
  background: color-mix(in srgb, var(--igs-accent) 10%, transparent); color: var(--igs-accent);
}

.igs-dx-aiviz {
  width: 100%; text-align: left; display: flex; flex-direction: column; gap: 0.55rem;
}
.igs-dx-aiviz__acts {
  display: flex; flex-wrap: wrap; gap: 0.4rem;
}
.igs-dx-aiviz-mosaic {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  gap: 0.4rem;
}
.igs-dx-aiviz-node {
  display: flex; flex-direction: column; gap: 0.15rem;
  border: 1px solid var(--igs-line, #d8d0c0); border-radius: 0.65rem;
  padding: 0.45rem 0.55rem; background: #fffdf9;
  border-top: 3px solid var(--sc, var(--igs-accent));
}
.igs-dx-aiviz-node em {
  font-style: normal; font-size: 0.65rem; font-weight: 700; color: #8a8274;
}
.igs-dx-aiviz-node strong { font-size: 0.82rem; color: #14201c; line-height: 1.3; }
.igs-dx-aiviz-node span { font-size: 0.68rem; color: #6a736c; }
.igs-dx-aiviz-node b { font-size: 0.95rem; color: var(--sc, #c45c28); }
.igs-dx-aiviz-node.lv-hot { background: linear-gradient(180deg, #fff6f0, #fffdf9); }
.igs-dx-aiviz-edges {
  margin: 0; padding: 0.4rem 0.55rem 0.4rem 1.35rem;
  font-size: 0.75rem; color: #3d453e;
  border: 1px dashed var(--igs-line, #d8d0c0); border-radius: 0.55rem;
  background: color-mix(in srgb, var(--igs-accent) 4%, transparent);
  max-height: 8rem; overflow: auto;
}
.igs-dx-aiviz-edges code { font-size: 0.7rem; }

@media (max-width: 720px) {
  .igs-dx-ch-grid { grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); }
  .igs-dx-sec-card {
    grid-template-columns: 1.8rem 1fr;
  }
  .igs-dx-sec-card > footer {
    grid-column: 2; grid-row: auto; flex-direction: row; align-items: center;
  }
}
.igs-dx-legend { margin: 0; }
.igs-dx-page.igs-dx-view-list .igs-dx-side,
.igs-dx-page.igs-dx-view-list .igs-dx-cast {
  max-height: none;
  overflow: auto;
  align-self: stretch;
  position: static;
}
.igs-dx-top { margin-top: 0.5rem; flex-shrink: 0; }
.igs-dx-empty h3 { text-transform: none; font-size: 1rem; color: #14201c; }
.igs-dx-insp-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem; }
.igs-dx-insp-h h3 { flex: 1; text-transform: none; font-size: 1.05rem; color: #14201c; margin: 0; }
.igs-dx-score { font-size: 1.4rem; font-weight: 800; }
.igs-dx-beat { margin: 0.4rem 0; line-height: 1.45; }
.igs-dx-nail {
  margin: 0 0 0.5rem; font-size: 0.82rem; color: #5c4d7a;
  padding: 0.35rem 0.5rem; border-radius: 0.45rem; background: rgba(92,77,122,0.08);
}
.igs-dx-dim {
  display: grid; grid-template-columns: 2.2rem 1fr 1.2rem; gap: 0.35rem; align-items: center;
  font-size: 0.75rem; margin: 0.2rem 0;
}
.igs-dx-dim i {
  display: block; height: 0.4rem; border-radius: 99px;
  background: linear-gradient(90deg, var(--igs-accent), #c45c28);
  min-width: 0.25rem;
}
.igs-dx-keep { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0.35rem 0 0.6rem; }
.igs-dx-sliders label {
  display: grid; grid-template-columns: 2.4rem 1fr 1.2rem; gap: 0.35rem; align-items: center;
  font-size: 0.78rem; margin: 0.25rem 0;
}
.igs-dx-hints { margin-top: 0.65rem; padding: 0.5rem 0.6rem; border-radius: 0.55rem; background: rgba(196,92,40,0.08); }
.igs-dx-hints ul { margin: 0.25rem 0 0; padding-left: 1.1rem; font-size: 0.82rem; }
.igs-dx-mini-list { display: flex; flex-direction: column; gap: 0.25rem; }
.igs-dx-mini-list button {
  text-align: left; border: 1px solid var(--igs-line); background: #fff; border-radius: 0.45rem;
  padding: 0.35rem 0.45rem; cursor: pointer; font: inherit; font-size: 0.8rem;
}
.igs-dx-heat-panel {
  width: 100%; height: 100%; min-height: 0; overflow: auto;
  padding: 0.65rem 0.75rem 1rem; text-align: left;
}
.igs-dx-heat-intro {
  margin-bottom: 0.75rem; padding: 0.65rem 0.75rem;
  border: 1px solid var(--igs-line); border-radius: 0.7rem;
  background: #fffaf2;
}
.igs-dx-heat-intro h3 {
  margin: 0 0 0.35rem; font-size: 1rem; color: #14201c;
}
.igs-dx-heat-intro p { margin: 0.25rem 0; font-size: 0.86rem; line-height: 1.45; color: #3d453e; }
.igs-dx-heat-legend {
  display: flex; flex-wrap: wrap; gap: 0.55rem 0.85rem; align-items: center;
  margin-top: 0.55rem; font-size: 0.75rem; color: #3d453e;
}
.igs-dx-heat-legend span { display: inline-flex; align-items: center; gap: 0.3rem; }
.igs-dx-heat-legend i {
  width: 0.85rem; height: 0.55rem; border-radius: 0.2rem; display: inline-block;
}
.igs-dx-heat-legend .lv-cool i { background: #d5d0c4; }
.igs-dx-heat-legend .lv-mid i { background: #c4a574; }
.igs-dx-heat-legend .lv-warm i { background: #d4783a; }
.igs-dx-heat-legend .lv-hot i { background: #c45c28; }
.igs-dx-heat-legend-note { color: var(--igs-muted); }
.igs-dx-heat-sec { margin-bottom: 0.85rem; }
.igs-dx-heat-sec-h {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 0.75rem;
  margin: 0.35rem 0 0.4rem; padding: 0 0.15rem;
}
.igs-dx-heat-sec-h h4 { margin: 0; font-size: 0.88rem; color: #14201c; }
.igs-dx-heat-sec-h span { font-size: 0.72rem; color: var(--igs-muted); }
.igs-dx-heat-rows { display: flex; flex-direction: column; gap: 0.35rem; }
.igs-dx-heat-row {
  display: grid;
  grid-template-columns: 4.6rem minmax(4rem, 1fr) 3.6rem minmax(8rem, 1.4fr);
  gap: 0.55rem 0.65rem; align-items: center;
  width: 100%; text-align: left; font: inherit; cursor: pointer;
  border: 1px solid var(--igs-line); border-radius: 0.6rem;
  background: #fffcf6; padding: 0.45rem 0.55rem;
}
.igs-dx-heat-row:hover { border-color: #c4b8a4; background: #fffdf8; }
.igs-dx-heat-row.active { border-color: #c45c28; box-shadow: 0 0 0 1px rgba(196,92,40,0.25); background: #fff8f2; }
.igs-dx-heat-ch b { display: block; font-size: 0.92rem; color: #14201c; }
.igs-dx-heat-ch code { font-size: 0.68rem; color: var(--igs-muted); }
.igs-dx-heat-bar-wrap {
  height: 0.55rem; border-radius: 99px; background: #e8e2d4; overflow: hidden;
}
.igs-dx-heat-bar-wrap i {
  display: block; height: 100%; width: var(--bar, 10%); border-radius: inherit;
  background: #c4a574;
}
.igs-dx-heat-row.lv-cool .igs-dx-heat-bar-wrap i { background: #b8b2a4; }
.igs-dx-heat-row.lv-mid .igs-dx-heat-bar-wrap i { background: #c4a574; }
.igs-dx-heat-row.lv-warm .igs-dx-heat-bar-wrap i { background: #d4783a; }
.igs-dx-heat-row.lv-hot .igs-dx-heat-bar-wrap i { background: #c45c28; }
.igs-dx-heat-score { text-align: center; }
.igs-dx-heat-score strong { display: block; font-size: 1.05rem; color: #14201c; line-height: 1.1; }
.igs-dx-heat-lv { font-size: 0.68rem; color: var(--igs-muted); }
.igs-dx-heat-row.lv-hot .igs-dx-heat-lv { color: #c45c28; font-weight: 700; }
.igs-dx-heat-meta { min-width: 0; font-size: 0.78rem; color: #3d453e; }
.igs-dx-heat-meta span { font-weight: 600; }
.igs-dx-heat-meta small {
  display: block; margin-top: 0.1rem; color: #5a554c;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.igs-dx-heat-meta em {
  display: block; margin-top: 0.1rem; font-style: normal; font-size: 0.7rem; color: var(--igs-muted);
}
@media (max-width: 900px) {
  .igs-dx-heat-row {
    grid-template-columns: 4.2rem 1fr 3.2rem;
  }
  .igs-dx-heat-meta { grid-column: 1 / -1; }
}
.igs-dx-page.igs-dx-view-heat .igs-dx-canvas {
  align-items: stretch; justify-content: stretch; padding: 0; overflow: hidden;
  min-height: calc(100vh - 16rem);
}
.igs-dx-page.igs-dx-view-heat .igs-dx-layout {
  min-height: calc(100vh - 14rem);
}
.igs-dx-page.igs-dx-view-heat .igs-dx-top { display: none; }
.igs-dx-list-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: 100%;
  height: 100%;
  min-height: 0;
  gap: 0;
}
.igs-dx-list-overview {
  flex-shrink: 0;
  padding: 0.75rem 0.9rem 0.65rem;
  border-bottom: 1px solid var(--igs-line);
  background: linear-gradient(180deg, #fffaf2, #fffcf6);
}
.igs-dx-list-overview.is-empty {
  color: var(--igs-muted);
  font-size: 0.88rem;
}
.igs-dx-list-overview.is-empty p { margin: 0; }
.igs-dx-list-overview-h {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 0.55rem; margin-bottom: 0.25rem;
}
.igs-dx-list-overview-h h3 {
  margin: 0; flex: 1; font-size: 1.1rem; color: #14201c; min-width: 8rem;
}
.igs-dx-overview-meta {
  display: grid; gap: 0.35rem; margin: 0.45rem 0 0.35rem; font-size: 0.82rem;
}
.igs-dx-overview-meta > div {
  display: grid; grid-template-columns: 2.4rem 1fr; gap: 0.4rem; align-items: start;
}
.igs-dx-overview-meta dt {
  margin: 0; color: var(--igs-muted); font-weight: 600;
}
.igs-dx-overview-meta dd {
  margin: 0; display: flex; flex-wrap: wrap; gap: 0.25rem; align-items: center;
}
.igs-dx-overview-actions { margin-top: 0.45rem; gap: 0.35rem; flex-wrap: wrap; }
.igs-dx-list {
  display: flex; flex-direction: column; gap: 0.3rem;
  width: 100%; min-height: 0; height: 100%;
  overflow: auto; padding: 0.45rem 0.55rem 0.75rem;
  background: #f7f2e8;
}
.igs-dx-list-count {
  font-size: 0.72rem; color: var(--igs-muted); padding: 0.1rem 0.15rem 0.2rem;
  position: sticky; top: 0; background: #f7f2e8; z-index: 1;
}
.igs-dx-list-row {
  display: grid; grid-template-columns: 0.35rem 1fr auto auto; gap: 0.55rem; align-items: center;
  text-align: left; border: 1px solid var(--igs-line); background: #fff; border-radius: 0.55rem;
  padding: 0.5rem 0.6rem; cursor: pointer; font: inherit; flex-shrink: 0;
}
.igs-dx-list-row:hover { border-color: #c4b8a4; background: #fffdf8; }
.igs-dx-list-row.active { border-color: #c45c28; background: #fff8f2; box-shadow: 0 0 0 1px rgba(196,92,40,0.2); }
.igs-dx-list-row i { width: 0.35rem; align-self: stretch; min-height: 2.4rem; border-radius: 99px; }
.igs-dx-list-row-body { min-width: 0; }
.igs-dx-list-row strong { display: block; font-size: 0.9rem; }
.igs-dx-list-row small {
  display: block; font-size: 0.74rem; color: #3d453e; margin-top: 0.12rem;
  line-height: 1.35; white-space: normal;
}
.igs-dx-list-row em {
  display: block; font-size: 0.68rem; font-style: normal; color: var(--igs-muted); margin-top: 0.15rem;
}
.igs-dx-keep-tag { font-size: 0.68rem; padding: 0.1rem 0.35rem; border-radius: 99px; background: #efe8d8; }
.igs-dx-keep-tag.k-keep { background: color-mix(in srgb, var(--igs-accent) 15%, transparent); color: var(--igs-accent); }
.igs-dx-keep-tag.k-diverge { background: rgba(196,92,40,0.15); color: #c45c28; }
.igs-dx-keep-tag.k-shelf { color: #9a948a; }
.igs-select, .igs-input {
  border: 1px solid var(--igs-line); border-radius: 0.45rem; padding: 0.35rem 0.5rem;
  font: inherit; background: #fff; color: #14201c;
}
/* 流水线 / 页内小说切换：覆盖通用 .igs-select，保持标签+下拉同行胶囊 */
.igs-pipe-project .igs-project-select,
.igs-novel-ctx-lead .igs-project-select {
  border: 0;
  background-color: transparent;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--igs-accent) 50%),
    linear-gradient(135deg, var(--igs-accent) 50%, transparent 50%);
  background-position:
    calc(100% - 0.78rem) 52%,
    calc(100% - 0.48rem) 52%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding: 0.22rem 1.55rem 0.22rem 0.2rem;
  box-shadow: none;
}
.igs-pipe-project .igs-project-select:hover,
.igs-pipe-project .igs-project-select:focus,
.igs-novel-ctx-lead .igs-project-select:hover,
.igs-novel-ctx-lead .igs-project-select:focus {
  background-color: rgba(255, 255, 255, 0.55);
  outline: none;
}

/* —— 智能策划 Tab —— */
.igs-pl-page {
  display: flex; flex-direction: column; height: 100%; min-height: 0;
  background: linear-gradient(165deg, #f3eee4 0%, #e8f0ec 48%, #f7f2e8 100%);
  color: #14201c; font-family: "Source Han Serif SC", "Noto Serif SC", "Songti SC", serif;
}
.igs-pl-top {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem;
  padding: 0.65rem 1rem; border-bottom: 1px solid rgba(20,32,28,0.1);
  background: rgba(255,252,246,0.92); backdrop-filter: blur(8px);
}
.igs-pl-brand { display: flex; flex-direction: column; gap: 0.1rem; min-width: 8rem; }
.igs-pl-brand strong { font-size: 1.15rem; letter-spacing: 0.04em; }
.igs-pl-brand span { font-size: 0.72rem; color: #5a635c; }
.igs-pl-season { font-size: 0.8rem; display: flex; align-items: center; gap: 0.35rem; }
.igs-pl-season select { font: inherit; border: 1px solid #c4b8a4; border-radius: 0.4rem; padding: 0.25rem 0.4rem; background: #fff; }
.igs-pl-lights { display: flex; flex-wrap: wrap; gap: 0.45rem 0.75rem; align-items: center; }
.igs-pl-light { display: flex; align-items: center; gap: 0.3rem; font-size: 0.78rem; }
.igs-pl-light--all b { font-size: 0.95rem; margin-left: 0.15rem; }
.igs-pl-dot {
  width: 0.65rem; height: 0.65rem; border-radius: 50%;
  background: var(--l, var(--igs-accent)); box-shadow: 0 0 0 2px rgba(255,255,255,0.7);
}
.igs-pl-top-actions { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-left: auto; }
.igs-pl-stats {
  display: flex; flex-wrap: wrap; gap: 0.55rem 1rem; padding: 0.4rem 1rem;
  font-size: 0.75rem; color: #3d453e; border-bottom: 1px solid rgba(20,32,28,0.06);
}
.igs-pl-stats .ok { color: var(--igs-accent); }
.igs-pl-stats .warn { color: #a67c1a; }
.igs-pl-stats .bad { color: #c45c28; }
.igs-pl-body {
  flex: 1; min-height: 0; display: grid;
  grid-template-columns: minmax(14rem, 18%) minmax(22rem, 1fr) minmax(16rem, 28%);
  gap: 0; overflow: hidden;
}
.igs-pl-col { min-height: 0; overflow: auto; padding: 0.75rem 0.85rem; }
.igs-pl-col--sl { border-right: 1px solid rgba(20,32,28,0.08); background: rgba(255,252,246,0.55); }
.igs-pl-col--slate { border-right: 1px solid rgba(20,32,28,0.08); }
.igs-pl-col h3 {
  margin: 0 0 0.55rem; font-size: 0.92rem; font-weight: 700;
  display: flex; align-items: baseline; gap: 0.4rem;
}
.igs-pl-col h3 small { font-weight: 400; font-size: 0.68rem; color: #7a746a; }
.igs-pl-sl-rail { display: flex; flex-direction: column; gap: 0.5rem; }
.igs-pl-sl-card {
  text-align: left; border: 1px solid rgba(20,32,28,0.1); border-left: 3px solid var(--sl, var(--igs-accent));
  border-radius: 0.55rem; padding: 0.55rem 0.65rem; background: #fffdf8; cursor: pointer;
  font: inherit; color: inherit;
}
.igs-pl-sl-card:hover { border-color: #c4b8a4; }
.igs-pl-sl-card.on { background: #fff8f2; box-shadow: 0 0 0 1px rgba(196,92,40,0.25); }
.igs-pl-sl-card header { display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.25rem; }
.igs-pl-sl-card header b { font-size: 0.88rem; }
.igs-pl-sl-card p {
  margin: 0; font-size: 0.72rem; line-height: 1.4; color: #3d453e;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.igs-pl-sl-card footer {
  margin-top: 0.35rem; display: flex; justify-content: space-between;
  font-size: 0.68rem; color: #7a746a;
}
.igs-pl-slate { display: flex; flex-direction: column; gap: 0.2rem; margin-bottom: 1rem; }
.igs-pl-slate-head, .igs-pl-slate-row {
  display: grid; grid-template-columns: 3.2rem 1fr 1.4fr 1fr 1.6rem 2.2rem;
  gap: 0.4rem; align-items: center; font-size: 0.72rem;
}
.igs-pl-slate-head { color: #7a746a; padding: 0.2rem 0.45rem; position: sticky; top: 0; background: #f3eee4; z-index: 1; }
.igs-pl-slate-row {
  text-align: left; border: 1px solid transparent; border-radius: 0.4rem;
  padding: 0.35rem 0.45rem; background: rgba(255,253,248,0.8); cursor: pointer; font: inherit; color: inherit;
}
.igs-pl-slate-row:hover { background: #fff; border-color: #d4cbb8; }
.igs-pl-slate-row.on { background: #fff8f2; border-color: rgba(196,92,40,0.35); }
.igs-pl-slate-row b { font-size: 0.78rem; }
.igs-pl-slate-row span {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #2a322e;
}
.igs-pl-slate-row em { font-style: normal; color: #7a746a; text-align: right; }
.igs-pl-suggest { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.igs-pl-suggest li {
  border-radius: 0.5rem; padding: 0.5rem 0.65rem; background: #fff; border: 1px solid #e0d6c4;
  display: flex; flex-direction: column; gap: 0.15rem; font-size: 0.78rem;
}
.igs-pl-suggest li.sev-red { border-color: rgba(196,92,40,0.45); background: #fff6f0; }
.igs-pl-suggest li.sev-yellow { border-color: rgba(201,162,39,0.45); background: #fffbeb; }
.igs-pl-suggest li span { color: #5a635c; font-size: 0.72rem; }
.igs-pl-deep-tabs { display: flex; gap: 0.35rem; margin-bottom: 0.55rem; }
.igs-pl-deep-tabs button {
  flex: 1; border: 1px solid #c4b8a4; background: #fff; border-radius: 0.4rem;
  padding: 0.35rem; font: inherit; font-size: 0.75rem; cursor: pointer;
}
.igs-pl-deep-tabs button.on { background: var(--igs-accent); color: #fff; border-color: var(--igs-accent); }
.igs-pl-deep header { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.55rem; }
.igs-pl-deep h3 { margin: 0; font-size: 1rem; }
.igs-pl-deep h3 small { font-weight: 400; color: #7a746a; font-size: 0.75rem; }
.igs-pl-deep h4 { margin: 0.6rem 0 0.3rem; font-size: 0.8rem; color: #3d453e; }
.igs-pl-promise { font-size: 0.82rem; line-height: 1.45; margin: 0 0 0.5rem; }
.igs-pl-sl-spine { font-size: 0.78rem; line-height: 1.4; margin: 0.2rem 0 0; color: #2a322c; font-weight: 600; }
.igs-pl-sl-trait { font-size: 0.72rem; line-height: 1.35; margin: 0.15rem 0 0; color: #6a645a; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.igs-pl-sl-quality { display: grid; gap: 0.4rem; margin: 0.4rem 0 0.65rem; }
.igs-pl-sl-quality section { padding: 0.4rem 0.5rem; background: #f7f4ee; border-radius: 6px; border-left: 3px solid var(--sl, var(--igs-accent)); }
.igs-pl-sl-quality h4 { margin: 0 0 0.2rem; font-size: 0.72rem; color: #5a554c; }
.igs-pl-sl-quality p { margin: 0; font-size: 0.8rem; line-height: 1.4; }
.igs-pl-event-spine { margin: 0.2rem 0 0.5rem; padding-left: 1.2rem; font-size: 0.78rem; }
.igs-pl-event-spine em { color: var(--igs-accent); font-style: normal; font-weight: 700; margin-right: 0.25rem; }
.igs-pl-cast-portrait { margin: 0.2rem 0 0.5rem; padding-left: 1.1rem; font-size: 0.78rem; line-height: 1.4; }
.igs-pl-cast-portrait .mute { color: #7a746a; font-size: 0.74rem; }
.igs-pl-deep dl { margin: 0; display: grid; grid-template-columns: 4.5rem 1fr; gap: 0.25rem 0.5rem; font-size: 0.78rem; }
.igs-pl-deep dt { color: #7a746a; }
.igs-pl-deep dd { margin: 0; }
.igs-pl-deep-grid { display: flex; flex-direction: column; gap: 0.35rem; }
.igs-pl-hard, .igs-pl-soft, .igs-pl-pulled { margin: 0; padding-left: 1.1rem; font-size: 0.75rem; line-height: 1.4; }
.igs-pl-hard { color: #c45c28; }
.igs-pl-soft { color: #8a6b1a; }
.igs-pl-pulled li i { color: #7a746a; font-style: normal; }
.igs-pl-pulled li b { color: #c45c28; }
.igs-pl-gate { margin: 0.25rem 0; font-size: 0.82rem; font-weight: 600; }
.igs-pl-gate.ok { color: var(--igs-accent); }
.igs-pl-gate.no { color: #c45c28; }
.igs-pl-deep-actions { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.55rem; }
.igs-pl-empty { font-size: 0.8rem; color: #7a746a; padding: 0.5rem 0; }
.igs-pl-soft .mute, .igs-pl-pulled .mute { color: #9a948a; list-style: none; margin-left: -1.1rem; }
.igs-pl-peak-section { margin-top: 0.15rem; }
.igs-pl-peak-concept {
  margin: 0 0 0.65rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: linear-gradient(135deg, #eef6f2 0%, #f7f1e4 100%);
  border: 1px solid #d4e5dc;
}
.igs-pl-peak-concept strong {
  display: block;
  font-size: 0.82rem;
  color: var(--igs-accent);
  margin-bottom: 0.25rem;
}
.igs-pl-peak-concept p {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: #2a3530;
}
.igs-pl-peak-concept ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.igs-pl-peak-concept li {
  font-size: 0.68rem;
  padding: 0.15rem 0.4rem;
  border-radius: 999px;
  background: #fff;
  color: var(--igs-accent);
  border: 1px solid #c5ddd2;
}
.igs-pl-peak-people {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.35rem 0 0.2rem;
}
.igs-pl-person {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.72rem;
  padding: 0.18rem 0.45rem;
  border-radius: 8px;
  background: #f4f0e6;
  color: #1e2a24;
  border: 1px solid #e0d8c8;
}
.igs-pl-person i {
  font-style: normal;
  font-size: 0.62rem;
  color: #6a645a;
}
.igs-pl-person.part-主属 {
  background: var(--igs-accent);
  color: #fff;
  border-color: var(--igs-accent);
}
.igs-pl-person.part-主属 i { color: rgba(255,255,255,0.75); }
.igs-pl-person.part-放大器 { background: #e8f0ec; border-color: #b8d4c8; }
.igs-pl-person.part-对象 { background: #f7ebe4; border-color: #e8c4b0; }
.igs-pl-peak-people-miss {
  margin: 0.35rem 0 0.15rem;
  font-size: 0.72rem;
  color: #c45c28;
}
.igs-pl-science-note {
  margin: 0 0 0.35rem !important;
  font-size: 0.72rem !important;
  color: #5a6a62 !important;
}
.igs-pl-lock {
  font-style: normal;
  font-size: 0.65rem;
  padding: 0.08rem 0.35rem;
  border-radius: 999px;
  background: #eef2ef;
  color: var(--igs-accent);
}
.igs-pl-evidence {
  margin: 0.35rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.igs-pl-evidence li {
  font-size: 0.65rem;
  padding: 0.12rem 0.35rem;
  border-radius: 6px;
  background: #f0f4f2;
  color: #3a4a44;
}
.igs-pl-suggest {
  margin: 0.4rem 0 0;
  font-size: 0.72rem;
  color: var(--igs-accent);
}
.igs-pl-suggest summary { cursor: pointer; font-weight: 600; }
.igs-pl-suggest pre {
  margin: 0.35rem 0 0;
  padding: 0.5rem;
  max-height: 220px;
  overflow: auto;
  font-size: 0.65rem;
  background: #1e2a24;
  color: #e8f0ec;
  border-radius: 8px;
}
.igs-pl-suggest-batch { margin-bottom: 0.65rem; }
.igs-pl-suggest-batch__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  margin: 0.45rem 0 0.55rem;
}
.igs-pl-suggest-batch__bar .mute {
  font-size: 0.72rem;
  color: #6a7c74;
}
.igs-pl-ai-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  margin: 0.35rem 0.65rem 0.15rem;
  padding: 0.45rem 0.65rem;
  border-radius: 12px;
  border: 1px solid rgba(26, 107, 82, 0.16);
  background: linear-gradient(135deg, rgba(255, 252, 247, 0.95), rgba(232, 245, 238, 0.55));
}
.igs-pl-ai-status__lab {
  flex: 0 0 auto;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #1a6b52;
  text-transform: uppercase;
}
.igs-pl-ai-status__main {
  flex: 1 1 8rem;
  min-width: 0;
}
.igs-pl-ai-status__main strong {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1c2e26;
}
.igs-pl-ai-status__main p,
.igs-pl-ai-status > p {
  margin: 0.1rem 0 0;
  font-size: 0.7rem;
  color: #5a6f66;
  line-height: 1.35;
}
.igs-pl-ai-status__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.igs-pl-ai-status__btn {
  border: 1px solid rgba(26, 107, 82, 0.22);
  background: #fff;
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.7rem;
  cursor: pointer;
  color: #1a6b52;
}
.igs-pl-ai-status__btn:hover:not(:disabled) {
  border-color: rgba(26, 107, 82, 0.4);
  background: #f3faf6;
}
.igs-pl-ai-status__btn.is-pri {
  background: #1a6b52;
  border-color: #1a6b52;
  color: #fff;
  font-weight: 600;
}
.igs-pl-ai-status__btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.igs-ws-smart-strip .igs-ws-smart-chip[data-ws-ai-intent="pl_sec_bridge"] {
  border-color: rgba(26, 107, 82, 0.22);
}
.igs-pl-peak-hard {
  margin: 0.3rem 0 0;
  padding-left: 1rem;
  font-size: 0.7rem;
  color: #c45c28;
}
.igs-dx-peak-sci {
  font-size: 0.62rem;
  padding: 0.06rem 0.28rem;
  border-radius: 999px;
  background: #e8f0ec;
  color: var(--igs-accent);
}
.igs-pl-prod-plan {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: #f7f9f7;
  border: 1px solid #d4e0d8;
}
.igs-pl-prod-plan > strong {
  display: block;
  font-size: 0.82rem;
  color: var(--igs-accent);
  margin-bottom: 0.25rem;
}
.igs-pl-prod-plan > p {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  color: #3a4a44;
  line-height: 1.4;
}
.igs-pl-prod-groups {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.75rem;
  color: #1e2a24;
}
.igs-pl-prod-groups ul {
  margin: 0.2rem 0 0.45rem;
  padding-left: 1rem;
  color: #5a6a62;
}
.igs-pl-prod-groups code, .igs-pl-prod-trans code {
  font-size: 0.68rem;
  background: #e8f0ec;
  padding: 0.05rem 0.25rem;
  border-radius: 4px;
}
.igs-pl-prod-trans {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.72rem;
  color: #6a645a;
}
.igs-pl-ring {
  font-style: normal;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 0.08rem 0.35rem;
  border-radius: 6px;
  background: var(--sl, var(--igs-accent));
  color: #fff;
  margin-right: 0.3rem;
}
.igs-pl-budget-card.fit-short { border-color: #c9a227; }
.igs-dx-cast-peaks, .igs-dx-ev-peaks {
  margin-top: 0.85rem;
  padding-top: 0.65rem;
  border-top: 1px dashed #e0d8c8;
}
.igs-dx-cast-peaks h4, .igs-dx-ev-peaks h4 {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  color: var(--igs-accent);
  text-transform: none;
}
.igs-dx-peak-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.igs-dx-peak-row {
  padding: 0.45rem 0.5rem;
  border-radius: 8px;
  background: #faf7f0;
  border-left: 3px solid var(--igs-accent);
}
.igs-dx-peak-row.light-yellow { border-left-color: #c9a227; }
.igs-dx-peak-row.light-red { border-left-color: #c45c28; }
.igs-dx-peak-row-h {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.igs-dx-peak-row-h b { font-size: 0.7rem; color: #6a645a; }
.igs-dx-peak-row-h em { font-style: normal; font-size: 0.72rem; font-weight: 700; color: var(--igs-accent); }
.igs-dx-peak-part {
  font-size: 0.62rem;
  padding: 0.08rem 0.3rem;
  border-radius: 999px;
  background: var(--igs-accent);
  color: #fff;
}
.igs-dx-peak-row strong {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.85rem;
  color: #14201c;
}
.igs-dx-peak-row p {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  color: #2a3530;
}
.igs-dx-peak-row small {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.68rem;
  color: #7a746a;
  line-height: 1.35;
}
.igs-dx-peak-people {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.68rem;
  color: var(--igs-accent);
}
.igs-pl-budget-card {
  margin: 0.35rem 0 0.7rem; padding: 0.7rem 0.8rem; border-radius: 12px;
  background: linear-gradient(145deg, #fbf7ef 0%, #f0ebe1 100%);
  border: 1px solid color-mix(in srgb, var(--igs-accent) 14%, transparent);
  box-shadow: 0 8px 24px rgba(40, 36, 28, 0.06);
}
.igs-pl-budget-card.fit-tight { border-color: rgba(201, 162, 39, 0.45); }
.igs-pl-budget-card.fit-overflow { border-color: rgba(196, 92, 40, 0.45); background: linear-gradient(145deg, #fbf3ec, #f3e4d8); }
.igs-pl-budget-top { display: flex; align-items: flex-start; gap: 0.5rem; }
.igs-pl-budget-top strong { display: block; font-size: 0.86rem; color: #243028; }
.igs-pl-budget-top span { display: block; font-size: 0.72rem; color: #6a645a; margin-top: 0.1rem; }
.igs-pl-fit-badge {
  margin-left: auto; font-style: normal; font-size: 0.72rem; font-weight: 700;
  padding: 0.2rem 0.55rem; border-radius: 999px; background: var(--igs-accent); color: #fff;
}
.fit-tight .igs-pl-fit-badge { background: #c9a227; color: #1a160c; }
.fit-overflow .igs-pl-fit-badge { background: #c45c28; }
.igs-pl-budget-meter {
  position: relative; margin: 0.65rem 0 0.4rem; height: 1.55rem; border-radius: 999px;
  background: rgba(255,255,255,0.7); overflow: hidden; border: 1px solid rgba(20,32,28,0.08);
}
.igs-pl-budget-fill {
  position: absolute; inset: 0 auto 0 0; width: var(--r, 50%);
  background: linear-gradient(90deg, #2a8f74, #c9a227 85%, #c45c28);
  opacity: 0.85; transition: width 0.35s ease;
}
.igs-pl-budget-meter span {
  position: relative; z-index: 1; display: flex; align-items: center; justify-content: center;
  height: 100%; font-size: 0.72rem; font-weight: 700; color: #1e2a24; text-shadow: 0 1px 0 rgba(255,255,255,0.5);
}
.igs-pl-budget-meta { display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 0; padding: 0; list-style: none; font-size: 0.72rem; color: #5a635c; }
.igs-pl-budget-rec { margin: 0.35rem 0 0; font-size: 0.76rem; line-height: 1.4; color: #3d453e; }
.igs-pl-peak-grid { display: grid; gap: 0.65rem; }
.igs-pl-peak-card {
  position: relative; padding: 0.75rem 0.8rem 0.65rem; border-radius: 14px;
  background: #fffcf7; border: 1px solid rgba(20,32,28,0.08);
  box-shadow: 0 10px 28px rgba(40, 36, 28, 0.05);
  overflow: hidden;
}
.igs-pl-peak-card::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--igs-accent);
}
.igs-pl-peak-card.light-yellow::before { background: #c9a227; }
.igs-pl-peak-card.light-red::before { background: #c45c28; }
.igs-pl-peak-card header { display: flex; align-items: flex-start; gap: 0.55rem; }
.igs-pl-peak-idx {
  flex: 0 0 1.7rem; height: 1.7rem; border-radius: 0.55rem;
  display: grid; place-items: center; font-weight: 800; font-size: 0.85rem;
  background: var(--igs-accent); color: #fff;
}
.light-yellow .igs-pl-peak-idx { background: #c9a227; color: #1a160c; }
.light-red .igs-pl-peak-idx { background: #c45c28; }
.igs-pl-peak-title { flex: 1; min-width: 0; }
.igs-pl-peak-title b { display: block; font-size: 0.95rem; color: #1e2a24; letter-spacing: 0.01em; }
.igs-pl-peak-title small { display: flex; align-items: center; gap: 0.3rem; flex-wrap: wrap; margin-top: 0.15rem; font-size: 0.72rem; color: #6a645a; }
.igs-pl-peak-title strong { color: var(--igs-accent); }
.igs-pl-peak-time { text-align: right; }
.igs-pl-peak-time em { display: block; font-style: normal; font-size: 1.15rem; font-weight: 800; color: var(--igs-accent); line-height: 1; }
.igs-pl-peak-time span { font-size: 0.68rem; color: #7a746a; }
.igs-pl-peak-narrative {
  display: grid; gap: 0.4rem; margin: 0.5rem 0 0.4rem;
}
.igs-pl-peak-narrative > div {
  padding: 0.4rem 0.55rem; border-radius: 8px;
  background: linear-gradient(135deg, #f7f3ea, #fffdf8);
  border: 1px solid rgba(20, 32, 28, 0.06);
}
.igs-pl-peak-narrative .k {
  display: inline-block; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.04em;
  color: var(--igs-accent); text-transform: none; margin-bottom: 0.15rem;
}
.igs-pl-peak-narrative p {
  margin: 0; font-size: 0.8rem; line-height: 1.45; color: #243028;
}
.igs-pl-peak-tags {
  display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0 0 0.4rem;
}
.igs-pl-tag {
  font-size: 0.66rem; font-weight: 600; padding: 0.12rem 0.45rem; border-radius: 999px;
  border: 1px solid transparent;
}
.igs-pl-tag.kind-function { background: var(--igs-accent); color: #fff; }
.igs-pl-tag.kind-mainline { background: rgba(201, 162, 39, 0.2); color: #6a5410; border-color: rgba(201, 162, 39, 0.35); }
.igs-pl-tag.kind-thrill { background: rgba(196, 92, 40, 0.12); color: #8a3b2a; border-color: rgba(196, 92, 40, 0.25); }
.igs-pl-tag.kind-cast { background: rgba(61, 90, 128, 0.12); color: #3d5a80; border-color: rgba(61, 90, 128, 0.25); }
.igs-pl-tag.kind-custom { background: #efe8d8; color: #4a524c; }
.igs-pl-peak-verdict { margin: 0.35rem 0; font-size: 0.78rem; line-height: 1.4; color: #3d453e; }
.igs-pl-must-beats {
  display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0 0 0.45rem; padding: 0; list-style: none;
}
.igs-pl-must-beats li {
  font-size: 0.68rem; padding: 0.15rem 0.45rem; border-radius: 999px;
  background: color-mix(in srgb, var(--igs-accent) 10%, transparent); color: var(--igs-accent); border: 1px solid color-mix(in srgb, var(--igs-accent) 18%, transparent);
}
.igs-pl-peak-share {
  display: grid; grid-template-columns: auto 1fr; gap: 0.4rem; align-items: center;
  font-size: 0.68rem; color: #6a645a; margin-bottom: 0.45rem;
}
.igs-pl-peak-share i {
  display: block; height: 0.35rem; border-radius: 999px; background: #e8e2d4; position: relative; overflow: hidden;
}
.igs-pl-peak-share i::after {
  content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w, 50%);
  background: linear-gradient(90deg, #2a8f74, #c9a227); border-radius: inherit;
}
.igs-pl-dim-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.28rem 0.55rem;
}
.igs-pl-dim {
  display: grid; grid-template-columns: 2rem 1fr 1.5rem; gap: 0.25rem; align-items: center;
  font-size: 0.66rem; color: #5a635c;
}
.igs-pl-dim i {
  display: block; height: 0.32rem; border-radius: 999px; background: #ebe4d6; position: relative; overflow: hidden;
}
.igs-pl-dim i::after {
  content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w, 40%);
  background: hsl(var(--h, 160) 42% 38%); border-radius: inherit;
}
.igs-pl-dim b { text-align: right; font-variant-numeric: tabular-nums; color: #2a322c; }
.igs-pl-peak-card footer {
  display: flex; flex-direction: column; gap: 0.1rem; margin-top: 0.5rem; padding-top: 0.4rem;
  border-top: 1px dashed rgba(20,32,28,0.1); font-size: 0.7rem; color: #4a524c;
}
.igs-pl-peak-soft { margin: 0.35rem 0 0; padding-left: 1rem; font-size: 0.7rem; color: #8a6b1a; }
.igs-pl-foot {
  display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center;
  padding: 0.4rem 1rem; border-top: 1px solid rgba(20,32,28,0.08);
  font-size: 0.7rem; color: #5a635c; background: rgba(255,252,246,0.85);
}
.igs-pl-foot code { font-size: 0.72rem; background: #efe8d8; padding: 0.1rem 0.35rem; border-radius: 0.3rem; }
@media (max-width: 1100px) {
  .igs-pl-body { grid-template-columns: 1fr; }
  .igs-pl-col--sl, .igs-pl-col--slate { border-right: 0; border-bottom: 1px solid rgba(20,32,28,0.08); max-height: 40vh; }
}
@media (min-width: 900px) {
  .igs-pl-peak-grid { grid-template-columns: 1fr; }
  .igs-pl-dim-grid { grid-template-columns: 1fr 1fr 1fr 1fr; }
}

/* —— 色标位（写实关键帧人物位置标注）—— */
.igs-pm {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  gap: 0.55rem;
  padding: 0.6rem 0.75rem 1rem;
  overflow: auto;
}
.igs-pm-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: flex-start;
}
.igs-pm-head h2 {
  margin: 0;
  font-family: 'Noto Serif SC', serif;
  font-size: 1.25rem;
}
.igs-pm-head-acts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.igs-pm-pick {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.55rem 0.75rem;
  margin: 0.15rem 0 0.55rem;
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  background: rgba(20, 28, 24, 0.55);
  border: 1px solid rgba(140, 180, 150, 0.18);
}
.igs-pm-pick label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.72rem;
  color: #9ab0a2;
}
.igs-pm-pick select {
  min-width: 7.5rem;
  max-width: 16rem;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  border: 1px solid rgba(160, 190, 170, 0.35);
  background: #121816;
  color: #e8f0ea;
  font-size: 0.85rem;
}
.igs-pm-pick-shot select {
  min-width: 14rem;
  max-width: 22rem;
}
.igs-pm-file-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  border: 1px dashed rgba(140, 190, 160, 0.45);
  background: rgba(60, 100, 80, 0.2);
  color: #cfe8d6;
  cursor: pointer;
  font-size: 0.82rem;
}
.igs-pm-file-btn:hover {
  border-color: #7fd0a0;
}
.igs-pm-legacy-hint {
  margin: 0 0 0.65rem;
}
.igs-pm-body {
  display: grid;
  grid-template-columns: minmax(220px, 280px) 1fr;
  gap: 0.75rem;
  min-height: 0;
  flex: 1 1 auto;
}
@media (max-width: 960px) {
  .igs-pm-body { grid-template-columns: 1fr; }
}
.igs-pm-side {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  min-width: 0;
}
.igs-pm-card {
  background: #f6f8f6;
  border: 1px solid #d5e0d8;
  border-radius: 10px;
  padding: 0.65rem 0.75rem;
}
.igs-pm-card h3 {
  margin: 0 0 0.35rem;
  font-size: 0.92rem;
}
.igs-pm-palette {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.igs-pm-chip {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid #c8d4cc;
  background: #fff;
  border-radius: 8px;
  padding: 0.4rem 0.55rem;
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.igs-pm-chip .igs-pm-dot,
.igs-pm-list .igs-pm-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--pm, #888);
  box-shadow: 0 0 0 2px #111 inset;
  flex: 0 0 auto;
}
.igs-pm-chip.on {
  border-color: var(--pm, #2a6);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--pm) 45%, transparent);
  font-weight: 600;
}
.igs-pm-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.igs-pm-list li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.28rem 0.35rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.85rem;
}
.igs-pm-list li.on { background: #e7f0ea; }
.igs-pm-x {
  margin-left: auto;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 1rem;
  color: #888;
  line-height: 1;
}
.igs-pm-side-acts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.45rem;
}
.igs-pm-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 0.65rem;
  min-height: 420px;
}
@media (max-width: 1100px) {
  .igs-pm-main { grid-template-columns: 1fr; }
}
.igs-pm-stage {
  position: relative;
  background: #141816;
  border-radius: 12px;
  min-height: 420px;
  overflow: hidden;
  outline: none;
}
.igs-pm-stage.empty { display: flex; align-items: stretch; }
.igs-pm-drop {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  color: #c8d4cc;
  cursor: pointer;
  border: 2px dashed #3a4a40;
  margin: 0.75rem;
  border-radius: 10px;
}
.igs-pm-drop.over { border-color: #7fd0a0; background: rgba(80, 160, 110, 0.12); }
.igs-pm-drop strong { color: #f2f6f3; font-size: 1.05rem; }
.igs-pm-drop span { font-size: 0.8rem; opacity: 0.8; }
.igs-pm-frame {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 420px;
}
.igs-pm-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  user-select: none;
  pointer-events: none;
}
.igs-pm-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.igs-pm-mark {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: auto;
  cursor: grab;
  z-index: 2;
}
.igs-pm-mark.on { z-index: 3; }
.igs-pm-ring {
  display: block;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 3px solid var(--pm, #fff);
  box-shadow: 0 0 0 2px #000, inset 0 0 0 2px #000;
  background: color-mix(in srgb, var(--pm) 35%, transparent);
}
.igs-pm-tag {
  position: absolute;
  left: 50%;
  top: -1.45rem;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--pm, #fff);
  background: #141414;
  border: 1px solid var(--pm, #fff);
  border-radius: 4px;
  padding: 0.05rem 0.3rem;
}
.igs-pm-preview {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.igs-pm-prev-card {
  background: #f6f8f6;
  border: 1px solid #d5e0d8;
  border-radius: 10px;
  padding: 0.45rem;
}
.igs-pm-prev-card h4 {
  margin: 0 0 0.3rem;
  font-size: 0.78rem;
  color: #4a5a52;
}
.igs-pm-prev-card canvas {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
  background: #222;
}
.igs-pm-legend-box {
  background: #f6f8f6;
  border: 1px solid #d5e0d8;
  border-radius: 10px;
  padding: 0.65rem 0.75rem;
}
.igs-pm-legend-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.igs-pm-legend-head h3 {
  margin: 0;
  font-size: 0.92rem;
}
.igs-pm-legend-box textarea {
  width: 100%;
  box-sizing: border-box;
  font: 0.82rem/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  border: 1px solid #c8d4cc;
  border-radius: 8px;
  padding: 0.55rem 0.65rem;
  resize: vertical;
  min-height: 8rem;
  background: #fff;
}

