/**
 * 制作台 · 小说工坊正典/会话/分析（P-css-i：从 film-rel 切出）
 */

/* —— 小说工坊：正典 / 会话 / 分析 / 向导 —— */
.igs-ws-lib-actions,
.igs-ws-novel-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.5rem 0 0.75rem;
}
.igs-ws-bar {
  margin-top: 1rem;
  border: 1px solid var(--igs-line);
  border-radius: 0.65rem;
  background: linear-gradient(180deg, #f7faf8, #fff);
  padding: 0.55rem 0.65rem;
}
.igs-ws-bar__hd {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.4rem;
}
.igs-ws-bar__route {
  font-size: 0.68rem;
  color: #3d6bff;
  margin-right: auto;
}

/* 会话 · 专注模式：仅压缩本页 AI 会话区（.igs-ws-bar.is-zen / .igs-nv-ai-rail.is-zen-chat）
   顶栏流水线、标签导航、手机底栏始终可见，便于切到分集等其它页 */
.igs-ws-zen-btn.is-on {
  background: #2f6fed !important;
  color: #fff !important;
  border-color: transparent !important;
}
/* 专注模式仍显示当前位置 + 挂载条，避免改错章；藏线程/完整模型等次要控件。
   智能精简壳的「本机模型」compact 行常驻，不因 zen 隐藏。 */
.igs-ws-bar.is-zen .igs-ws-thread-row,
.igs-ws-bar.is-zen .igs-ws-model:not(.is-compact),
.igs-ws-bar.is-zen .igs-ws-memory,
.igs-ws-bar.is-zen .igs-ws-bar__hint,
.igs-ws-bar.is-zen .igs-ws-prompts,
.igs-ws-bar.is-zen .igs-ws-bar__hd-extra {
  display: none !important;
}
.igs-ws-bar.is-zen.is-smart-chrome .igs-ws-model.is-compact {
  display: block !important;
}
.igs-ws-bar.is-zen .igs-ws-locus {
  margin-bottom: 0.35rem;
}
.igs-ws-bar.is-zen .igs-ws-locus__hint,
.igs-ws-bar.is-zen .igs-ws-locus__layers {
  display: none;
}
.igs-ws-bar.is-zen .igs-ws-ctx-row {
  margin-bottom: 0.35rem;
}
.igs-ws-mention {
  position: absolute;
  left: 0.5rem;
  right: 0.5rem;
  bottom: calc(100% + 0.25rem);
  z-index: 40;
  max-height: 12rem;
  overflow: auto;
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  border-radius: 0.55rem;
  border: 1px solid rgba(47, 111, 237, 0.28);
  background: #fffef9;
  box-shadow: 0 8px 24px rgba(20, 40, 30, 0.12);
}
.igs-ws-mention li button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 0.4rem 0.5rem;
  border-radius: 0.4rem;
  cursor: pointer;
  font: inherit;
  color: #24352c;
}
.igs-ws-mention li button:hover,
.igs-ws-mention li.is-on button {
  background: rgba(47, 111, 237, 0.1);
}
.igs-ws-mention li small {
  color: #6a7d72;
  font-size: 0.68rem;
}
.igs-ws-bar__compose {
  position: relative;
}
.igs-ws-writer-debug {
  margin-left: 0.35rem;
}
.igs-ws-zen-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  margin: 0 0 0.45rem;
  padding: 0.35rem 0.5rem;
  border-radius: 0.5rem;
  background: linear-gradient(90deg, rgba(47, 111, 237, 0.1), rgba(47, 155, 106, 0.08));
  border: 1px solid rgba(47, 111, 237, 0.22);
  font-size: 0.7rem;
  color: #3a5248;
}
.igs-ws-zen-strip__place,
.igs-ws-zen-strip__thread,
.igs-ws-zen-strip__route {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 650;
}
.igs-ws-zen-strip__route { color: #2f6fed; margin-right: auto; }
.igs-ws-zen-strip__tip {
  color: #6a7c74;
  font-weight: 500;
  font-size: 0.66rem;
}
.igs-ws-bar.is-zen {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.igs-ws-bar.is-zen .igs-ws-bar__hd {
  margin-bottom: 0.3rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid rgba(47, 111, 237, 0.12);
}
.igs-ws-bar.is-zen .igs-ws-bar__log {
  flex: 1 1 auto;
  min-height: 16rem;
  max-height: none;
  border-color: rgba(47, 111, 237, 0.18);
  background: #fbfcfe;
}
.igs-ws-bar.is-zen.is-dock-side .igs-ws-bar__log,
.igs-ws-bar.is-zen.is-dock-rail .igs-ws-bar__log {
  min-height: 0;
  flex: 1 1 auto;
}
.igs-ws-bar.is-zen .igs-ws-bar__compose.is-zen {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.4rem 0.5rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(47, 111, 237, 0.12);
  background: linear-gradient(180deg, rgba(255,255,255,0.92), #fff);
}
.igs-ws-bar.is-zen .igs-ws-bar__compose.is-zen #igsWsChatInput,
.igs-ws-bar.is-zen .igs-ws-bar__compose.is-zen .igs-ws-chat-input {
  grid-column: 1 / 2;
  grid-row: 1;
  min-height: 6rem;
  border-color: rgba(47, 111, 237, 0.28);
  box-shadow: 0 0 0 2px rgba(47, 111, 237, 0.06);
}
.igs-ws-bar.is-zen .igs-ws-bar__compose.is-zen .igs-ws-compose-acts {
  grid-column: 2 / 3;
  grid-row: 1;
  align-self: end;
}
.igs-ws-bar.is-zen .igs-ws-bar__compose.is-zen .igs-ws-send {
  width: 100%;
  min-height: 2.4rem;
}
.igs-ws-bar.is-zen .igs-ws-compose-hint {
  grid-column: 1 / -1;
  margin: 0;
  opacity: 0.75;
}
.igs-nv-ai-rail__body > .igs-ws-bar.is-zen {
  min-height: 100%;
  height: 100%;
}
/* 小说侧栏专注：藏编辑部冗长标题，页签仍保留（否则找不到「候选」） */
.igs-nv-ai-rail.is-zen-chat .igs-nv-ai-rail__hd .igs-ws-kicker {
  display: none !important;
}
.igs-nv-ai-rail.is-zen-chat .igs-nv-ai-tabs {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.25rem;
  padding: 0.2rem 0.45rem 0.35rem;
  border-bottom: 1px solid rgba(47, 111, 237, 0.1);
}
.igs-nv-ai-rail.is-zen-chat .igs-nv-ai-tab {
  font-size: 0.78rem;
  padding: 0.28rem 0.45rem;
}
.igs-nv-ai-rail.is-zen-chat .igs-nv-ai-rail__hd {
  padding: 0.45rem 0.65rem;
  border-bottom: 1px solid rgba(47, 111, 237, 0.14);
}
.igs-nv-ai-rail.is-zen-chat .igs-nv-ai-rail__hd strong {
  font-size: 0.88rem;
}
.igs-nv-ai-rail.is-zen-chat .igs-nv-ai-rail__body {
  padding-top: 0.35rem;
}

/* 会话 · 模型自动/指定/对比 */
.igs-ws-model {
  margin: 0.35rem 0 0.45rem;
  padding: 0.48rem 0.55rem;
  border: 1px solid var(--igs-line, #d5e3da);
  border-radius: 0.55rem;
  background: linear-gradient(180deg, rgba(47, 155, 106, 0.06), #fff);
}
/* 智能精简壳：常驻一行本机/指定模型，不展开完整 Agent 设定 */
.igs-ws-model.is-compact {
  margin: 0.28rem 0 0.4rem;
  padding: 0.42rem 0.5rem;
  background: linear-gradient(180deg, rgba(47, 155, 106, 0.1), #fff);
}
.igs-ws-model.is-compare {
  border-color: rgba(196, 120, 28, 0.4);
  background: linear-gradient(180deg, rgba(196, 120, 28, 0.08), #fff);
}
.igs-ws-bar.is-smart-chrome .igs-ws-model.is-compact {
  flex-shrink: 0;
}
.igs-ws-model.is-compact .igs-ws-model__sel {
  flex: 1 1 8rem;
  min-width: 7rem;
}
.igs-ws-model.is-compact .igs-ws-model__hint {
  margin: 0.15rem 0 0;
  font-size: 0.68rem;
}
.igs-ws-model__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.igs-ws-model__row--agent {
  margin-bottom: 0.28rem;
}
.igs-ws-model__agent {
  flex: 1 1 10rem;
  min-width: 8rem;
  max-width: 100%;
  border: 1px solid #c9d9cf;
  border-radius: 0.4rem;
  padding: 0.28rem 0.45rem;
  font-size: 0.78rem;
  background: #fff;
  color: #24352c;
}
.igs-ws-model__agent:disabled {
  opacity: 0.65;
  background: #f3f7f4;
}
.igs-ws-collab {
  margin: 0 0 0.55rem;
  padding: 0.55rem 0.6rem 0.45rem;
  border: 1px solid #d5e3da;
  border-radius: 0.55rem;
  background: linear-gradient(180deg, rgba(47, 155, 106, 0.07), #fff);
}
.igs-ws-model__dual {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  margin-top: 0.35rem;
  padding-top: 0.3rem;
  border-top: 1px dashed #d5e3da;
}
.igs-ws-dual-btn.is-hot {
  border-color: #2f9b6a;
  color: #1b7a4e;
  background: #e8f6ef;
}
.igs-ws-kmap,
.igs-ws-runner {
  margin: 0 0 0.55rem;
  padding: 0.55rem 0.6rem 0.5rem;
  border: 1px solid #d5e3da;
  border-radius: 0.55rem;
  background: #fff;
}
.igs-ws-kmap {
  background: linear-gradient(180deg, rgba(36, 90, 140, 0.06), #fff);
}
.igs-ws-runner.is-on {
  background: linear-gradient(180deg, rgba(180, 110, 40, 0.08), #fff);
  border-color: #e0c39a;
}
.igs-ws-kmap__hd,
.igs-ws-runner__hd {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}
.igs-ws-kmap__hd strong,
.igs-ws-runner__hd strong {
  font-size: 0.82rem;
  color: #1f3329;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.igs-ws-kmap__hd span,
.igs-ws-runner__hd span {
  font-size: 0.72rem;
  color: #5a6b63;
  font-weight: 650;
}
.igs-ws-kmap__path {
  margin: 0 0 0.4rem;
  font-size: 0.74rem;
  color: #2a3d34;
  line-height: 1.4;
}
.igs-ws-kmap__subtabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.35rem 0 0.55rem;
}
.igs-ws-kmap__sub {
  font-size: 0.72rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--igs-accent) 28%, #c8d4cc);
  background: color-mix(in srgb, #f2eee4 88%, #e8f1ef);
  color: #2a4038;
  cursor: pointer;
}
.igs-ws-kmap__sub.is-on {
  background: color-mix(in srgb, var(--igs-accent) 18%, #f2eee4);
  border-color: color-mix(in srgb, var(--igs-accent) 55%, #c8d4cc);
  font-weight: 650;
}
.igs-ws-kmap__sub.is-dim {
  opacity: 0.55;
}
.igs-ws-kmap__role {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  margin: 0.35rem 0 0.25rem;
  padding: 0.35rem 0.5rem;
  border-radius: 10px;
  background: color-mix(in srgb, var(--igs-accent) 8%, #f7f4ec);
  border: 1px solid color-mix(in srgb, var(--igs-accent) 22%, #d5ddd6);
}
.igs-ws-kmap__role strong {
  font-size: 0.78rem;
  color: #1f332b;
}
.igs-ws-kmap__role-note {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
.igs-ws-kmap__lamps {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.igs-ws-kmap__lamp {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.68rem;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  border: 1px solid #c8d4cc;
  background: #f2eee4;
  color: #3a4a42;
  cursor: pointer;
  font-family: inherit;
  line-height: 1.2;
}
.igs-ws-kmap__lamp:hover {
  border-color: #9bb5a8;
  background: #ebe6da;
}
.igs-ws-kmap__lamp:focus-visible {
  outline: 2px solid #2f9e6a;
  outline-offset: 1px;
}
.igs-ws-kmap__lamp i {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #a8b5ae;
}
.igs-ws-kmap__lamp.is-on i {
  background: #2f9e6a;
}
.igs-ws-kmap__lamp.is-soft i {
  background: #d4a017;
}
.igs-ws-kmap__lamp.is-off i {
  background: #a8b5ae;
}
.igs-ws-kmap__lamp em {
  font-style: normal;
  opacity: 0.72;
  font-size: 0.62rem;
}
.igs-ws-kmap__sub em {
  font-style: normal;
  margin-left: 0.25rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  background: color-mix(in srgb, #c45c28 22%, transparent);
  color: #8a3a18;
  font-size: 0.66rem;
}
.igs-ws-kmap__pane {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.igs-ws-kmap-runtime {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.35rem 0.15rem 0.2rem;
}
.igs-ws-kmap-runtime__hd {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding: 0.35rem 0.5rem;
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--igs-line) 80%, #6b7c8a);
  background: color-mix(in srgb, #6b7c8a 8%, var(--igs-elev));
  font-size: 0.78rem;
}
.igs-ws-kmap-runtime__hd.is-ok {
  border-color: color-mix(in srgb, var(--igs-accent) 28%, var(--igs-line));
  background: color-mix(in srgb, var(--igs-accent) 8%, var(--igs-elev));
}
.igs-ws-kmap-runtime__hd.is-soft {
  border-color: color-mix(in srgb, #c9a227 40%, var(--igs-line));
  background: color-mix(in srgb, #c9a227 12%, var(--igs-elev));
}
.igs-ws-kmap-runtime__hd.is-hard {
  border-color: color-mix(in srgb, #c45c26 45%, var(--igs-line));
  background: color-mix(in srgb, #c45c26 12%, var(--igs-elev));
}
.igs-ws-kmap-runtime__now h5,
.igs-ws-kmap-runtime h5 {
  margin: 0.15rem 0;
  font-size: 0.72rem;
  font-weight: 650;
}
.igs-ws-kmap-runtime__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
}
.igs-ws-kmap-runtime__chips em {
  font-style: normal;
  padding: 0.12rem 0.4rem;
  border-radius: 6px;
  border: 1px solid color-mix(in srgb, var(--igs-accent) 30%, var(--igs-line));
  background: var(--igs-paper);
  font-size: 0.72rem;
}
.igs-ws-kmap-runtime__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}
@media (max-width: 720px) {
  .igs-ws-kmap-runtime__cols { grid-template-columns: 1fr; }
}
.igs-ws-kmap-runtime__timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  max-height: 14rem;
  overflow: auto;
}
.igs-ws-kmap-runtime__row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.1rem 0.4rem;
  padding: 0.32rem 0.45rem;
  border-radius: 7px;
  border: 1px solid var(--igs-line);
  background: var(--igs-paper);
  font-size: 0.72rem;
}
.igs-ws-kmap-runtime__row.is-hard {
  border-color: color-mix(in srgb, #c45c26 45%, var(--igs-line));
  background: color-mix(in srgb, #c45c26 10%, var(--igs-paper));
}
.igs-ws-kmap-runtime__row.is-soft {
  border-color: color-mix(in srgb, #c9a227 40%, var(--igs-line));
  background: color-mix(in srgb, #c9a227 10%, var(--igs-paper));
}
.igs-ws-kmap-runtime__row b { grid-row: 1 / span 2; align-self: center; }
.igs-ws-kmap-runtime__title { font-weight: 600; }
.igs-ws-kmap-runtime__badge {
  font-style: normal;
  justify-self: end;
  font-size: 0.66rem;
  opacity: 0.9;
}
.igs-ws-kmap-runtime__cast,
.igs-ws-kmap-runtime__ev {
  grid-column: 2 / span 2;
  color: color-mix(in srgb, var(--igs-ink) 72%, transparent);
}
.igs-ws-kmap-conflict {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--igs-line) 80%, #6b7c8a);
  background: color-mix(in srgb, #6b7c8a 6%, var(--igs-elev));
  font-size: 0.76rem;
  margin-bottom: 0.35rem;
}
.igs-ws-kmap-conflict.is-hard {
  border-color: color-mix(in srgb, #c45c26 45%, var(--igs-line));
  background: color-mix(in srgb, #c45c26 10%, var(--igs-elev));
}
.igs-ws-kmap-conflict.is-soft {
  border-color: color-mix(in srgb, #c9a227 40%, var(--igs-line));
  background: color-mix(in srgb, #c9a227 10%, var(--igs-elev));
}
.igs-ws-kmap-conflict.is-ok {
  border-color: color-mix(in srgb, var(--igs-accent) 28%, var(--igs-line));
  background: color-mix(in srgb, var(--igs-accent) 7%, var(--igs-elev));
}
.igs-ws-kmap-conflict__hd {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.igs-ws-kmap-conflict__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  max-height: 9rem;
  overflow: auto;
}
.igs-ws-kmap-conflict__list li {
  display: grid;
  gap: 0.1rem;
  padding: 0.28rem 0.35rem;
  border-radius: 6px;
  background: var(--igs-paper);
  border: 1px solid var(--igs-line);
}
.igs-ws-kmap-conflict__list li.is-hard {
  border-color: color-mix(in srgb, #c45c26 40%, var(--igs-line));
}
.igs-ws-kmap-conflict__list li em {
  font-style: normal;
  opacity: 0.75;
  font-size: 0.68rem;
}
.igs-ws-kmap-conflict__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.igs-ws-kmap-conflict__list .igs-ws-kmap-ask {
  justify-self: start;
  margin-top: 0.15rem;
  font-size: 0.7rem;
  padding: 0.1rem 0.4rem;
}
.igs-ws-kmap-patrol {
  margin: 0;
}
.igs-ws-kmap-pass1 {
  margin-top: 0.55rem;
  padding-top: 0.45rem;
  border-top: 1px dashed color-mix(in srgb, currentColor 22%, transparent);
  display: grid;
  gap: 0.28rem;
}
.igs-ws-kmap-pass1__hd {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
}
.igs-ws-kmap-pass1__bar {
  height: 0.28rem;
  border-radius: 999px;
  background: color-mix(in srgb, currentColor 12%, transparent);
  overflow: hidden;
}
.igs-ws-kmap-pass1__bar > i {
  display: block;
  height: 100%;
  background: color-mix(in srgb, #3d7a5c 70%, #c8e6d4);
}
.igs-ws-kmap-pass1__list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
.igs-ws-kmap-pass1.is-busy {
  opacity: 0.92;
}
.igs-ws-kmap-pass1.is-hard .igs-ws-kmap-pass1__bar > i {
  background: color-mix(in srgb, #a04545 75%, #f0c8c8);
}
.igs-ws-kmap-pass1.is-soft .igs-ws-kmap-pass1__bar > i {
  background: color-mix(in srgb, #9a7a2a 70%, #f5e6b8);
}
.igs-sync-nightly {
  margin: 0.75rem 0 0;
  padding: 0.65rem 0.75rem;
  border: 1px dashed color-mix(in srgb, currentColor 18%, transparent);
  border-radius: 0.5rem;
}
.igs-sync-nightly__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.65rem;
  align-items: flex-end;
  margin-top: 0.35rem;
}
.igs-sync-nightly__row .igs-field input[type='time'] {
  min-width: 7rem;
}
.igs-nv-ai-map-hint__crumb {
  margin: 0 0 0.25rem;
  font-size: 0.68rem;
  color: color-mix(in srgb, #f6f0e6 78%, #8aa89a);
  opacity: 0.92;
}
.igs-ws-kmap__learn {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  color: #3d5a4c;
  line-height: 1.35;
}
.igs-ws-kmap__learn b {
  font-weight: 650;
}
.igs-ws-kmap__learn-row {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  margin: 0 0 0.35rem;
}
.igs-ws-kmap__learn-row .igs-ws-kmap__learn {
  margin: 0;
  flex: 1;
  min-width: 0;
}
.igs-ws-kmap__learn-btn {
  flex-shrink: 0;
  font-size: 0.68rem;
  padding: 0.12rem 0.4rem;
}
.igs-ws-kmap__learn-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.igs-ws-kmap__block {
  margin: 0 0 0.4rem;
}
.igs-ws-kmap__block h5 {
  margin: 0 0 0.15rem;
  font-size: 0.72rem;
  color: #5a6b63;
  font-weight: 650;
}
.igs-ws-kmap__block p {
  margin: 0;
  font-size: 0.74rem;
  color: #24352c;
  line-height: 1.45;
}
.igs-ws-kmap__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.igs-ws-kmap__tag {
  font-size: 0.68rem;
  padding: 0.12rem 0.4rem;
  border-radius: 0.3rem;
  border: 1px solid #d5e3da;
  color: #5a6b63;
  background: #f7fbf8;
}
.igs-ws-kmap__tag.is-on {
  border-color: #2f9b6a;
  color: #1b7a4e;
  background: #e8f6ef;
}
.igs-ws-kmap__list {
  margin: 0.2rem 0 0;
  padding-left: 1.05rem;
  font-size: 0.72rem;
  color: #2a3d34;
  line-height: 1.4;
}
.igs-ws-kmap__acts,
.igs-ws-runner__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-top: 0.35rem;
}
.igs-ws-kmap__prop {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin: 0.25rem 0;
  padding: 0.35rem 0.4rem;
  border: 1px dashed #c9d9cf;
  border-radius: 0.35rem;
  background: #f6faf7;
}
.igs-ws-kmap__prop > span:first-of-type {
  font-size: 0.7rem;
  color: #4a5c53;
  line-height: 1.35;
}
.igs-ws-kmap__prop-acts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.igs-ws-runner__meta,
.igs-ws-runner__route {
  margin: 0 0 0.25rem;
  font-size: 0.7rem;
  color: #5a6b63;
  line-height: 1.4;
  word-break: break-all;
}
.igs-ws-runner__meta code {
  font-size: 0.68rem;
}
.igs-ws-runner__draft {
  margin: 0.25rem 0 0.4rem;
  padding: 0.4rem 0.5rem;
  border: 1px dashed #d5e3da;
  border-radius: 0.4rem;
  background: #f7fbf8;
}
.igs-ws-runner__draft b {
  font-size: 0.72rem;
  color: #1b7a4e;
}
.igs-ws-runner__draft p {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  color: #24352c;
  line-height: 1.4;
  white-space: pre-wrap;
}
.igs-ws-runner__lead,
.igs-ws-runner__hint {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  color: #5a6b63;
  line-height: 1.4;
}
.igs-ws-runner__now {
  margin: 0 0 0.2rem;
  font-size: 0.84rem;
  color: #1f3329;
}
.igs-ws-runner.is-paused {
  border-color: color-mix(in srgb, #c47b2c 45%, #d8e4dc);
  background: color-mix(in srgb, #c47b2c 9%, #f4f8f5);
}
.igs-ws-runner.is-paused .igs-ws-runner__hd span {
  color: #a05a12;
}
.igs-ws-runner__dual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.4rem;
  margin: 0.35rem 0;
}
.igs-ws-runner__dual-col {
  border: 1px solid #d0ddd4;
  border-radius: 8px;
  padding: 0.4rem 0.45rem;
  background: #f7faf8;
}
.igs-ws-runner__dual-col b {
  font-size: 0.72rem;
  color: #2a4034;
}
.igs-ws-runner__dual-col p {
  margin: 0.25rem 0 0.35rem;
  font-size: 0.72rem;
  line-height: 1.4;
  color: #3a4a42;
  max-height: 7.5em;
  overflow: auto;
  white-space: pre-wrap;
}
.igs-ws-runner__gate {
  margin: 0.35rem 0;
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  border: 1px solid #c5d4cb;
  background: #f3f7f4;
  font-size: 0.72rem;
}
.igs-ws-runner__gate.is-fail {
  border-color: #d9a0a0;
  background: #fbf2f2;
}
.igs-ws-runner__gate.is-warn {
  border-color: #e0c48a;
  background: #fbf7ee;
}
.igs-ws-runner__gate ul {
  margin: 0.25rem 0 0;
  padding-left: 1.1rem;
}
.igs-ws-runner__gate li.is-fail {
  color: #a12f2f;
}
.igs-ws-runner__gate li.is-warn {
  color: #8a5a10;
}
.igs-ws-runner__gate li.is-warn {
  color: #8a5a10;
}
.igs-ws-runner__media {
  margin: 0.35rem 0;
  padding: 0.45rem 0.5rem;
  border-radius: 8px;
  border: 1px solid #c5d4cb;
  background: #f5f9f6;
  font-size: 0.72rem;
}
.igs-ws-runner__media b {
  display: block;
  margin-bottom: 0.2rem;
  color: #24382c;
}
.igs-ws-runner__media p {
  margin: 0.15rem 0;
  color: #3a4a42;
  line-height: 1.4;
}
.igs-ws-runner__media-img {
  display: block;
  margin-top: 0.35rem;
}
.igs-ws-runner__media-img img {
  max-width: 100%;
  max-height: 160px;
  border-radius: 6px;
  border: 1px solid #d0ddd4;
  object-fit: cover;
}
@media (max-width: 720px) {
  .igs-ws-runner__dual {
    grid-template-columns: 1fr;
  }
}
.igs-ws-runner__start {
  width: 100%;
  margin-top: 0.15rem;
}
.igs-ws-runner__steps {
  list-style: none;
  margin: 0.45rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.igs-ws-runner__steps button {
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  font-size: 0.72rem;
  color: #5a6b63;
  padding: 0.15rem 0.2rem;
  cursor: pointer;
  border-radius: 0.3rem;
}
.igs-ws-runner__steps li.is-on button {
  color: #1b7a4e;
  font-weight: 700;
  background: #e8f6ef;
}
.igs-ws-runner__steps li.is-done button {
  color: #8a9a90;
  text-decoration: line-through;
}
.igs-ws-collab__hd {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.2rem;
}
.igs-ws-collab__hd strong {
  font-size: 0.82rem;
  color: #1f3329;
}
.igs-ws-collab__hd span {
  font-size: 0.72rem;
  color: #2f9b6a;
  font-weight: 650;
}
.igs-ws-collab__lead {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  color: #5a6b63;
  line-height: 1.4;
}
.igs-ws-collab__list {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}
.igs-ws-collab__row {
  display: flex;
  align-items: stretch;
  gap: 0.28rem;
}
.igs-ws-collab__check {
  flex: 0 0 1.7rem;
  width: 1.7rem;
  border: 1px solid #c9d9cf;
  border-radius: 0.4rem;
  background: #f7fbf8;
  color: #5a6b63;
  font-size: 0.78rem;
  cursor: pointer;
}
.igs-ws-collab__row.is-done .igs-ws-collab__check {
  border-color: #2f9b6a;
  background: #e8f6ef;
  color: #1b7a4e;
  font-weight: 700;
}
.igs-ws-collab__go {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.08rem;
  text-align: left;
  border: 1px solid #d5e3da;
  background: #fff;
  border-radius: 0.45rem;
  padding: 0.4rem 0.55rem;
  cursor: pointer;
}
.igs-ws-collab__go:hover {
  border-color: #2f9b6a;
  background: #f4fbf7;
}
.igs-ws-collab__go b {
  font-size: 0.8rem;
  color: #1f3329;
}
.igs-ws-collab__go span {
  font-size: 0.7rem;
  color: #5a6b63;
}
.igs-ws-collab__row.is-done .igs-ws-collab__go b {
  color: #1b7a4e;
}
.igs-ws-model__lab {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.72rem;
  font-weight: 650;
  color: #2a3d34;
  flex-shrink: 0;
}
.igs-ws-model__seg {
  display: inline-flex;
  gap: 0.12rem;
  padding: 0.14rem;
  border: 1px solid #d5e3da;
  border-radius: 0.45rem;
  background: #f3f7f4;
  flex-shrink: 0;
  min-height: 2.05rem;
  align-items: stretch;
}
.igs-ws-model__mode {
  border: 0;
  background: transparent;
  border-radius: 0.35rem;
  padding: 0.38rem 0.62rem;
  font-size: 0.76rem;
  line-height: 1.2;
  color: #3a5248;
  cursor: pointer;
  min-height: 1.75rem;
}
.igs-ws-model__mode:hover:not(:disabled) {
  background: rgba(47, 155, 106, 0.12);
}
.igs-ws-model__mode.is-on {
  background: #2f9b6a;
  color: #fff;
  font-weight: 650;
}
.igs-ws-model__mode:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.igs-ws-model__sel {
  flex: 1 1 10rem;
  min-width: 8rem;
  max-width: 100%;
  border: 1px solid #c9d9cf;
  border-radius: 0.45rem;
  padding: 0.42rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.25;
  min-height: 2.05rem;
  background: #fff;
  color: #1e2c26;
}
.igs-ws-model__sel:disabled {
  background: #f1f5f2;
  color: #5a6b63;
  cursor: default;
}
.igs-ws-model.is-auto .igs-ws-model__sel:disabled {
  opacity: 0.92;
  font-style: italic;
}
.igs-ws-model.is-loading {
  opacity: 0.85;
}
.igs-ws-model.is-manual {
  border-color: rgba(61, 107, 255, 0.35);
  background: linear-gradient(180deg, rgba(61, 107, 255, 0.06), #fff);
}
.igs-ws-model__refresh {
  padding: 0.38rem 0.55rem !important;
  min-height: 2.05rem;
  flex-shrink: 0;
}
.igs-ws-model__cmp-box {
  margin-top: 0.4rem;
  padding: 0.4rem 0.45rem;
  border: 1px solid rgba(196, 120, 28, 0.35);
  border-radius: 0.45rem;
  background: rgba(255, 252, 245, 0.95);
}
.igs-ws-model__cmp-hd {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.35rem;
}
.igs-ws-model__cmp-hd strong {
  font-size: 0.78rem;
  color: #5a3a12;
}
.igs-ws-model__cmp-hd span {
  font-size: 0.68rem;
  color: #7a6550;
}
.igs-ws-model__cmp-picks {
  display: flex;
  flex-direction: column;
  gap: 0.22rem;
  max-height: 11.5rem;
  overflow: auto;
  padding-right: 0.15rem;
}
.igs-ws-model__cmp-pick {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  border: 1px solid #e2d5c0;
  background: #fff;
  border-radius: 0.4rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.74rem;
  line-height: 1.35;
  color: #2a3d34;
  cursor: pointer;
  min-height: 1.85rem;
  margin: 0;
}
.igs-ws-model__cmp-pick input {
  margin: 0.15rem 0 0;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  accent-color: #c4781c;
  cursor: pointer;
}
.igs-ws-model__cmp-pick span {
  flex: 1;
  word-break: break-word;
}
.igs-ws-model__cmp-pick.is-on {
  border-color: #c4781c;
  background: rgba(196, 120, 28, 0.12);
  font-weight: 650;
}
.igs-ws-model__cmp-pick.is-full {
  opacity: 0.55;
  cursor: not-allowed;
}
.igs-ws-model__cmp-pick:has(input:disabled) {
  opacity: 0.55;
  cursor: not-allowed;
}
.igs-ws-cmp {
  margin: 0.55rem 0.35rem 0.75rem;
  padding: 0.55rem 0.6rem;
  border: 1px solid rgba(196, 120, 28, 0.35);
  border-radius: 0.55rem;
  background: linear-gradient(180deg, rgba(196, 120, 28, 0.06), #fff);
}
.igs-ws-cmp__hd {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  align-items: baseline;
  margin-bottom: 0.28rem;
}
.igs-ws-cmp__hd strong {
  font-size: 0.86rem;
  color: #5a3a12;
}
.igs-ws-cmp__hd span,
.igs-ws-cmp__note {
  font-size: 0.7rem;
  color: #5a6b63;
}
.igs-ws-cmp__note {
  margin: 0 0 0.45rem;
  line-height: 1.4;
}
.igs-ws-cmp__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
  gap: 0.45rem;
}
.igs-ws-cmp__lane {
  border: 1px solid #d5e3da;
  border-radius: 0.45rem;
  padding: 0.4rem 0.45rem;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-height: 8rem;
}
.igs-ws-cmp__lane.is-best {
  border-color: #2f9b6a;
  box-shadow: 0 0 0 1px rgba(47, 155, 106, 0.25);
}
.igs-ws-cmp__lane.is-picked {
  border-color: #3d6bff;
}
.igs-ws-cmp__lane-hd {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-items: center;
}
.igs-ws-cmp__lane-hd strong {
  font-size: 0.78rem;
  color: #1e2c26;
}
.igs-ws-cmp__badge {
  font-size: 0.62rem;
  font-style: normal;
  padding: 0.08rem 0.28rem;
  border-radius: 0.25rem;
  background: rgba(47, 155, 106, 0.15);
  color: #1b7a4e;
}
.igs-ws-cmp__badge.is-pick {
  background: rgba(61, 107, 255, 0.14);
  color: #2a4ec8;
}
.igs-ws-cmp__metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.igs-ws-cmp__metrics span {
  font-size: 0.66rem;
  padding: 0.12rem 0.28rem;
  border-radius: 0.25rem;
  background: #f3f7f4;
  color: #3a5248;
}
.igs-ws-cmp__preview {
  margin: 0;
  flex: 1;
  max-height: 7.5rem;
  overflow: auto;
  font-size: 0.7rem;
  line-height: 1.4;
  white-space: pre-wrap;
  word-break: break-word;
  color: #2a3d34;
  background: #f8faf8;
  border-radius: 0.3rem;
  padding: 0.28rem 0.35rem;
}
.igs-ws-cmp__err {
  font-size: 0.7rem;
  color: #b42318;
}
.igs-ws-cmp__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.igs-ws-cmp__footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.45rem;
}
.igs-ws-cmp__judge {
  margin-top: 0.45rem;
  padding-top: 0.35rem;
  border-top: 1px dashed #d5e3da;
}
.igs-ws-cmp__judge pre {
  margin: 0.25rem 0 0;
  font-size: 0.72rem;
  white-space: pre-wrap;
  max-height: 10rem;
  overflow: auto;
}

/* —— 多模型全文 · 全屏横向对比 —— */
html.igs-ws-cmp-fs-open,
html.igs-ws-cmp-fs-open body {
  overflow: hidden;
}
.igs-ws-cmp-fs {
  position: fixed;
  inset: 0;
  z-index: 14000;
  display: flex;
  flex-direction: column;
  background: #121a17;
  color: #e7eee9;
  font-family: inherit;
}
.igs-ws-cmp-fs__top {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  padding: 0.55rem 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: #18241f;
}
.igs-ws-cmp-fs__title {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  align-items: baseline;
  min-width: 0;
}
.igs-ws-cmp-fs__title strong {
  font-size: 0.95rem;
  color: #f2f7f3;
}
.igs-ws-cmp-fs__title span {
  font-size: 0.72rem;
  color: #9bb0a4;
  max-width: 28rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.igs-ws-cmp-fs__toggles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  flex: 1 1 auto;
  min-width: 0;
}
.igs-ws-cmp-fs__tools {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
  align-items: center;
}
.igs-ws-cmp-fs__tools .igs-btn-ghost,
.igs-ws-cmp-fs__pane-hd .igs-btn-ghost,
.igs-ws-cmp-fs__pane-hd .igs-btn {
  color: #d5e4db;
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
}
.igs-ws-cmp-fs__tools .igs-btn-ghost:hover,
.igs-ws-cmp-fs__pane-hd .igs-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.12);
}
.igs-ws-cmp-fs__pane-hd .igs-btn:not(:disabled) {
  background: rgba(61, 186, 122, 0.28);
  border-color: rgba(61, 186, 122, 0.45);
  color: #e8fff2;
}
.igs-ws-cmp-fs__tog {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.22rem 0.45rem;
  border-radius: 0.35rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.72rem;
  cursor: pointer;
  user-select: none;
  color: #d5e4db;
}
.igs-ws-cmp-fs__tog.is-off {
  opacity: 0.45;
}
.igs-ws-cmp-fs__tog.is-fail {
  border-color: rgba(255, 120, 100, 0.35);
}
.igs-ws-cmp-fs__tog input {
  margin: 0;
  accent-color: #3dba7a;
}
.igs-ws-cmp-fs__close {
  flex: 0 0 auto;
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  border-radius: 0.4rem;
  background: rgba(255, 255, 255, 0.08);
  color: #f2f7f3;
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
  margin-left: auto;
}
.igs-ws-cmp-fs__close:hover,
.igs-ws-cmp-fs__close:focus-visible {
  background: rgba(255, 80, 80, 0.35);
  outline: 2px solid rgba(255, 180, 160, 0.5);
  outline-offset: 1px;
}
.igs-ws-cmp-fs__row {
  flex: 1 1 auto;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0.45rem;
  min-height: 0;
  padding: 0.55rem 0.65rem 0.25rem;
  overflow: hidden;
}
.igs-ws-cmp-fs__row[data-visible-count="1"] .igs-ws-cmp-fs__pane {
  max-width: 52rem;
  margin-inline: auto;
}
.igs-ws-cmp-fs__pane {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.45rem;
  background: #1a2621;
  overflow: hidden;
}
.igs-ws-cmp-fs__pane[hidden],
.igs-ws-cmp-fs__pane.is-hidden {
  display: none !important;
}
.igs-ws-cmp-fs__pane.is-best {
  border-color: rgba(61, 186, 122, 0.55);
  box-shadow: 0 0 0 1px rgba(61, 186, 122, 0.2);
}
.igs-ws-cmp-fs__pane.is-focus {
  border-color: rgba(120, 170, 255, 0.55);
}
.igs-ws-cmp-fs__pane-hd {
  flex: 0 0 auto;
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.45rem;
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(18, 28, 24, 0.96);
}
.igs-ws-cmp-fs__pane-hd strong {
  font-size: 0.8rem;
  color: #f0f6f2;
}
.igs-ws-cmp-fs__meta {
  font-size: 0.66rem;
  color: #9bb0a4;
  margin-right: auto;
}
.igs-ws-cmp-fs__pane-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0.5rem 0.55rem 0.65rem;
  -webkit-overflow-scrolling: touch;
}
.igs-ws-cmp-fs__body-text {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
  color: #e4ece7;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.igs-ws-cmp-fs__err {
  margin: 0;
  color: #ff8f80;
  font-size: 0.8rem;
}
.igs-ws-cmp-fs__hint {
  flex: 0 0 auto;
  margin: 0;
  padding: 0.35rem 0.85rem 0.55rem;
  font-size: 0.68rem;
  color: #7f9589;
}

@media (max-width: 900px) {
  .igs-ws-cmp-fs__top {
    align-items: flex-start;
  }
  .igs-ws-cmp-fs__close {
    margin-left: 0;
  }
}
@media (max-width: 720px) {
  .igs-ws-cmp-fs__row {
    flex-direction: column;
    overflow: auto;
  }
  .igs-ws-cmp-fs__pane {
    flex: 0 0 auto;
    min-height: 40vh;
  }
  .igs-ws-cmp-fs__row[data-visible-count="1"] .igs-ws-cmp-fs__pane {
    max-width: none;
  }
}

.igs-ws-model__hint {
  margin: 0.28rem 0 0;
  font-size: 0.68rem;
  color: #5a6b63;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.igs-ws-model__recs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.28rem;
  margin-top: 0.32rem;
  padding-top: 0.28rem;
  border-top: 1px dashed #d5e3da;
}
.igs-ws-model__recs-lab {
  font-size: 0.66rem;
  font-weight: 700;
  color: #1a6b52;
  margin-right: 0.1rem;
}
.igs-ws-model__rec {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  margin: 0;
  padding: 0.18rem 0.42rem;
  border-radius: 999px;
  border: 1px solid #c9d9cf;
  background: #fff;
  color: #24352c;
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
}
.igs-ws-model__rec em {
  font-style: normal;
  font-size: 0.58rem;
  color: #1a6b52;
  opacity: 0.85;
}
.igs-ws-model__rec:hover:not(:disabled) {
  border-color: #2f9b6a;
  background: #eef8f2;
}
.igs-ws-model__rec.is-on {
  border-color: #2f9b6a;
  background: #e8f6ef;
  color: #1b7a4e;
}
.igs-ws-model__rec:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.igs-ws-compose-model {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.28rem;
  margin: 0 0 0.18rem;
  padding: 0.06rem 0.28rem;
  max-width: 100%;
  border-radius: 0.3rem;
  border: 1px solid rgba(47, 155, 106, 0.16);
  background: rgba(232, 246, 239, 0.45);
  font-size: 0.6rem;
  color: #5a6e64;
  line-height: 1.2;
}
.igs-ws-compose-model .igs-ws-ico {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  color: #1a6b52;
}
.igs-ws-compose-model__lab {
  display: inline-flex;
  align-items: center;
  gap: 0.18rem;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  color: #3d5248;
}
.igs-ws-compose-model b {
  font-weight: 700;
  color: #1b7a4e;
}
.igs-ws-compose-model em {
  flex: 0 0 auto;
  font-style: normal;
  font-size: 0.54rem;
  font-weight: 700;
  padding: 0.04rem 0.28rem;
  border-radius: 999px;
  background: rgba(26, 107, 82, 0.1);
  color: #1a6b52;
}
.igs-ws-model-pf {
  margin: 0.35rem 0 0.2rem;
  padding: 0.55rem 0.7rem 0.6rem;
  border-radius: 0.85rem;
  border: 1px solid rgba(180, 110, 40, 0.28);
  background:
    linear-gradient(165deg, rgba(255, 246, 232, 0.96), rgba(255, 255, 255, 0.94)),
    radial-gradient(120% 80% at 100% 0%, rgba(180, 110, 40, 0.1), transparent 55%);
  box-shadow: 0 1px 2px rgba(80, 50, 20, 0.06);
}
.igs-ws-model-pf__hd {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.28rem;
}
.igs-ws-model-pf__hd strong {
  font-size: 0.82rem;
  color: #7a4a12;
}
.igs-ws-model-pf__hd span {
  font-size: 0.68rem;
  color: #6a5a48;
}
.igs-ws-model-pf__cur {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  color: #3d3428;
  line-height: 1.4;
}
.igs-ws-model-pf__cur b {
  color: #8a4b0a;
}
.igs-ws-model-pf__mode {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.05rem 0.35rem;
  border-radius: 999px;
  background: rgba(180, 110, 40, 0.14);
  font-size: 0.62rem;
  font-weight: 700;
  color: #8a4b0a;
}
.igs-ws-model-pf__recs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.32rem;
  margin: 0 0 0.4rem;
}
.igs-ws-model-pf__chip {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.08rem;
  margin: 0;
  padding: 0.32rem 0.55rem;
  border-radius: 0.55rem;
  border: 1px solid #e0c39a;
  background: #fff;
  color: #3d3428;
  cursor: pointer;
  text-align: left;
  min-width: 5.5rem;
}
.igs-ws-model-pf__chip em {
  font-style: normal;
  font-size: 0.58rem;
  font-weight: 700;
  color: #a06520;
}
.igs-ws-model-pf__chip span {
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.2;
}
.igs-ws-model-pf__chip:hover:not(:disabled) {
  border-color: #c47a22;
  background: #fff8ee;
}
.igs-ws-model-pf__chip.is-on {
  border-color: #c47a22;
  background: #fff1de;
  box-shadow: inset 0 0 0 1px rgba(196, 122, 34, 0.25);
}
.igs-ws-model-pf__chip:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.igs-ws-model-pf__preview {
  margin: 0 0 0.4rem;
  font-size: 0.7rem;
  color: #6a5a48;
  line-height: 1.4;
  max-height: 2.8em;
  overflow: hidden;
}
.igs-ws-model-pf__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.28rem;
}
.igs-ws-model-pf__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  margin: 0;
  padding: 0.32rem 0.65rem;
  border-radius: 0.5rem;
  border: 1px solid #d5c4a8;
  background: #fff;
  color: #3d3428;
  font-size: 0.74rem;
  font-weight: 650;
  cursor: pointer;
}
.igs-ws-model-pf__btn.is-primary {
  border-color: #c47a22;
  background: linear-gradient(180deg, #f6b15a, #e8952e);
  color: #3a2208;
}
.igs-ws-model-pf__btn.is-ghost {
  background: transparent;
  border-color: transparent;
  color: #7a6a58;
}
.igs-ws-model-pf__btn:hover:not(:disabled) {
  filter: brightness(1.03);
}
.igs-ws-model-pf__btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.igs-ws-model-pf__hint {
  margin: 0;
  font-size: 0.64rem;
  color: #8a7a68;
  line-height: 1.35;
}
body.igs-chat-dock-side .igs-ws-model__hint,
.igs-ws-bar.is-dock-rail .igs-ws-model__hint {
  white-space: normal;
}
.igs-ws-dock-toggle {
  display: inline-flex;
  gap: 0.15rem;
  border: 1px solid #d5e3da;
  border-radius: 0.4rem;
  padding: 0.1rem;
  background: #f3f7f4;
}
.igs-ws-dock-toggle .igs-btn-ghost {
  padding: 0.2rem 0.45rem;
  font-size: 0.72rem;
}
.igs-ws-dock-toggle .igs-btn-ghost.is-on {
  background: #2f9b6a;
  color: #fff;
  border-color: transparent;
}
.igs-ws-ctx-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
  margin: 0 0 0.4rem;
}
.igs-ws-ctx-row.is-flash {
  outline: 2px solid rgba(26, 107, 82, 0.45);
  outline-offset: 2px;
  border-radius: 10px;
  background: rgba(238, 248, 242, 0.55);
}
.igs-ws-chip.is-muted {
  opacity: 0.72;
  border-style: dashed;
  color: #6a7c74;
  cursor: default;
}
.igs-ws-thread-row.is-always-on {
  margin: 0.15rem 0 0.45rem;
  padding: 0.35rem 0.4rem;
  border-radius: 10px;
  background: rgba(247, 251, 249, 0.9);
  border: 1px solid rgba(26, 107, 82, 0.12);
}
.igs-ws-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  border: 1px solid #d5e3da;
  background: #fff;
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.72rem;
  color: #2a3d34;
  cursor: default;
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.igs-ws-chip.is-lock {
  border-color: rgba(47, 155, 106, 0.45);
  background: #eef8f2;
  font-weight: 600;
}
.igs-ws-chip.is-soft {
  color: #5a6b63;
  background: #f7faf8;
}
.igs-ws-chip.is-canon-book {
  border-color: rgba(26, 107, 82, 0.35);
  background: #eef8f2;
  color: #1a6b52;
  font-weight: 650;
}
.igs-ws-chip.is-canon-unit {
  border-color: rgba(154, 107, 47, 0.4);
  background: #fff8ee;
  color: #8a5a18;
  font-weight: 650;
}
.igs-ws-meta-group,
.igs-ws-att-group {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.28rem;
  max-width: 100%;
}
.igs-ws-meta-group {
  padding: 0.12rem 0.28rem 0.12rem 0.2rem;
  border-radius: 0.55rem;
  background: rgba(247, 251, 249, 0.85);
  border: 1px dashed rgba(90, 110, 100, 0.28);
}
.igs-ws-att-group {
  padding: 0.12rem 0.28rem 0.12rem 0.2rem;
  border-radius: 0.55rem;
  background: rgba(238, 248, 242, 0.55);
  border: 1px solid rgba(26, 107, 82, 0.18);
}
.igs-ws-ctx-lab {
  flex: 0 0 auto;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #6a7c74;
  padding: 0 0.15rem;
  user-select: none;
}
.igs-ws-att-group .igs-ws-ctx-lab {
  color: #1a6b52;
}
.igs-ws-chip.is-meta {
  cursor: default;
}
.igs-ws-unit-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  flex: 0 0 auto;
  padding: 0.4rem 0.9rem;
  border-bottom: 1px solid rgba(47, 77, 184, 0.14);
  background: linear-gradient(180deg, #f5f7ff 0%, #fff 100%);
}
.igs-ws-unit-bar__cur {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  font-size: 0.78rem;
  color: #2f4db8;
}
.igs-ws-unit-bar__cur em {
  font-style: normal;
  font-size: 0.62rem;
  font-weight: 700;
  padding: 0.08rem 0.35rem;
  border-radius: 999px;
  background: #e8ecff;
  color: #3a4fb0;
}
.igs-ws-unit-bar__cur b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 14rem;
}
.igs-ws-unit-gate {
  padding: 1.25rem 1.1rem 1.6rem;
}
.igs-ws-unit-gate h3 {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
}
.igs-ws-unit-gate > p {
  margin: 0 0 0.85rem;
  color: #5a6b63;
  font-size: 0.82rem;
  line-height: 1.45;
}
.igs-ws-unit-picks {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.55rem;
}
.igs-ws-unit-pick {
  appearance: none;
  text-align: left;
  border: 1px solid rgba(47, 77, 184, 0.22);
  background: #fff;
  border-radius: 0.65rem;
  padding: 0.65rem 0.7rem;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}
.igs-ws-unit-pick:hover {
  border-color: rgba(47, 77, 184, 0.55);
  box-shadow: 0 4px 14px rgba(47, 77, 184, 0.12);
  transform: translateY(-1px);
}
.igs-ws-unit-pick b {
  font-size: 0.86rem;
  color: #1c2434;
}
.igs-ws-unit-pick small {
  color: #7a8796;
  font-size: 0.68rem;
}
.igs-ws-unit-badge {
  display: inline-block;
  margin-top: 0.2rem;
  align-self: flex-start;
  font-style: normal;
  font-size: 0.62rem;
  font-weight: 700;
  padding: 0.08rem 0.35rem;
  border-radius: 999px;
}
.igs-ws-unit-badge.is-ready {
  background: #e8f6ef;
  color: #1a6b52;
}
.igs-ws-unit-badge.is-partial {
  background: #fff4df;
  color: #8a4b0a;
}
.igs-ws-unit-badge.is-empty {
  background: #f1f3f7;
  color: #6a7380;
}
.igs-ws-locus__inject {
  margin: 0.25rem 0 0;
  font-size: 0.72rem;
  color: #5a6578;
  line-height: 1.4;
}
.igs-ws-locus__edit {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  color: #2f4db8;
  line-height: 1.4;
  font-weight: 600;
}
.igs-ws-kmap__inject {
  margin: 0 0.75rem 0.35rem;
  font-size: 0.72rem;
}
.igs-ws-kmap__edit {
  margin: 0 0.75rem 0.15rem;
  font-size: 0.72rem;
  color: #2f4db8;
  font-weight: 600;
}

.igs-ws-canon-twins {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.45rem;
  padding: 0.25rem 0.75rem 0.5rem;
  border-bottom: 1px solid rgba(40, 50, 70, 0.08);
  background: rgba(255, 248, 240, 0.65);
}
.igs-ws-canon-twin {
  border: 1px solid rgba(140, 90, 40, 0.22);
  background: #fff;
  color: #6a4a28;
  font-size: 0.74rem;
  font-weight: 650;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  cursor: pointer;
}
.igs-ws-canon-twin.is-on {
  border-color: rgba(180, 100, 30, 0.5);
  background: rgba(220, 130, 40, 0.12);
  color: #9a4a12;
}
.igs-ws-canon-twins__hint {
  font-size: 0.68rem;
  color: #7a6a58;
  margin-left: 0.1rem;
}
.igs-ws-canon-layers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding: 0.35rem 0.75rem 0.55rem;
  border-bottom: 1px solid rgba(40, 50, 70, 0.1);
  background: linear-gradient(180deg, rgba(247, 248, 255, 0.9), transparent);
}
.igs-ws-canon-legend {
  margin: 0.35rem 0.75rem 0.15rem;
  padding: 0.55rem 0.7rem;
  border-radius: 0.55rem;
  border: 1px solid rgba(26, 107, 82, 0.22);
  background: linear-gradient(180deg, #f3faf6, #e8f4ee);
  color: #1a4a38;
  font-size: 0.78rem;
  line-height: 1.45;
}
.igs-ws-canon-legend strong {
  display: block;
  margin-bottom: 0.28rem;
  font-size: 0.82rem;
}
.igs-ws-canon-legend ul {
  margin: 0;
  padding-left: 1.1rem;
}
.igs-ws-canon-legend li {
  margin: 0.12rem 0;
}
.igs-ws-canon-legend em {
  font-style: normal;
  color: #8a4524;
  font-weight: 650;
}
.igs-ws-canon-layers.is-dual {
  background: linear-gradient(180deg, rgba(26, 107, 82, 0.06), rgba(247, 248, 255, 0.65));
}
.igs-ws-canon-layers.is-triple {
  background: linear-gradient(180deg, rgba(26, 107, 82, 0.07), rgba(255, 248, 240, 0.75));
  flex-wrap: wrap;
}
.igs-ws-canon-layers.is-book-only {
  background: rgba(26, 107, 82, 0.04);
}
.igs-ws-canon-layers__pos {
  font-weight: 700;
  color: #1a6b52 !important;
}
.igs-ws-canon.is-layer-chapter .igs-ws-canon-layer[data-ws-canon-layer="chapter"].is-on,
.igs-ws-canon.is-layer-unit .igs-ws-canon-layer[data-ws-canon-layer="unit"].is-on {
  border-color: rgba(180, 90, 40, 0.45);
  background: rgba(180, 90, 40, 0.1);
  color: #9a4a1c;
}
.igs-ws-unit-six.is-cont-chapter .igs-ws-unit-six__eyebrow {
  color: #9a4a1c;
}
.igs-ws-canon-layer {
  border: 1px solid rgba(40, 50, 70, 0.16);
  background: #fff;
  color: #4a5568;
  font-size: 0.78rem;
  font-weight: 650;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  cursor: pointer;
}
.igs-ws-canon-layer.is-on {
  border-color: rgba(47, 77, 184, 0.45);
  background: rgba(47, 77, 184, 0.1);
  color: #2f4db8;
}
.igs-ws-canon.is-layer-book .igs-ws-canon-layer[data-ws-canon-layer="book"].is-on {
  border-color: rgba(26, 107, 82, 0.45);
  background: rgba(26, 107, 82, 0.1);
  color: #1a6b52;
}
.igs-ws-canon-layers__hint {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  font-size: 0.7rem;
  margin-left: 0.15rem;
  color: #5a6578;
  line-height: 1.35;
  max-width: 22rem;
}
.igs-ws-canon-layers__hint em {
  font-style: normal;
}
.igs-ws-canon-layers__hint em:first-child {
  color: #2f4db8;
  font-weight: 650;
}
.igs-ws-canon.is-unit-scope .igs-ws-canon__hd.is-desk-hd {
  background: linear-gradient(180deg, #f7f8ff 0%, rgba(255, 252, 247, 0.96) 100%);
}
.igs-nv-tag.is-unit {
  background: rgba(47, 77, 184, 0.12);
  color: #2f4db8;
  font-weight: 700;
}
.igs-nv-tag.is-book {
  background: rgba(26, 107, 82, 0.12);
  color: #1a6b52;
  font-weight: 650;
}
.igs-nv-tag.is-ab {
  background: rgba(140, 60, 90, 0.12);
  color: #8c3c5a;
  font-weight: 700;
}
.igs-nv-tag.is-ab-off {
  background: rgba(80, 90, 110, 0.08);
  color: #667085;
}
.igs-nv-tag.is-custom {
  background: rgba(120, 90, 40, 0.1);
  color: #6a4a1e;
}
.igs-nv-meta {
  margin: 0.45rem 0 0.65rem;
  border: 1px solid rgba(40, 50, 70, 0.12);
  border-radius: 8px;
  background: rgba(255, 252, 247, 0.7);
  padding: 0.2rem 0.55rem 0.35rem;
}
.igs-nv-meta > summary {
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 650;
  color: #4a5568;
  padding: 0.25rem 0;
  list-style: none;
}
.igs-nv-meta > summary::-webkit-details-marker { display: none; }
.igs-nv-meta > summary::before {
  content: '▸ ';
  color: #8a94a6;
}
.igs-nv-meta[open] > summary::before { content: '▾ '; }
.igs-nv-meta__body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.15rem 0 0.35rem;
}
.igs-nv-meta-check {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #2a241c;
}
.igs-nv-meta-genre {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #2a241c;
}
.igs-nv-meta-genre select {
  font: inherit;
  font-weight: 500;
  padding: 0.28rem 0.4rem;
  border-radius: 6px;
  border: 1px solid rgba(60, 48, 28, 0.18);
  background: #fffdf8;
  color: #2a241c;
}
.igs-nv-meta-qtags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
}
.igs-nv-meta-qtag {
  border: 1px dashed rgba(90, 70, 40, 0.35);
  background: transparent;
  color: #6a4a1e;
  font-size: 0.7rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  cursor: pointer;
}
.igs-nv-meta-qtag:hover {
  background: rgba(120, 90, 40, 0.1);
}
.igs-nv-tag.is-genre {
  background: rgba(40, 90, 70, 0.12);
  color: #2a5a48;
}
.igs-nv-meta-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  min-height: 1.4rem;
}
.igs-nv-meta-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.72rem;
  padding: 0.12rem 0.35rem;
  border-radius: 999px;
  background: rgba(120, 90, 40, 0.12);
  color: #6a4a1e;
}
.igs-nv-meta-chip-rm {
  border: 0;
  background: transparent;
  color: #8a6a4a;
  cursor: pointer;
  font-size: 0.9rem;
  line-height: 1;
  padding: 0 0.1rem;
}
.igs-nv-meta-add {
  display: flex;
  gap: 0.35rem;
  align-items: center;
}
.igs-nv-meta-add input {
  flex: 1;
  min-width: 0;
  font-size: 0.8rem;
  padding: 0.28rem 0.45rem;
  border: 1px solid rgba(40, 50, 70, 0.18);
  border-radius: 6px;
  background: #fff;
}
.igs-ws-wiz-attrs {
  margin: 0.75rem 0 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(40, 50, 70, 0.14);
  border-radius: 8px;
}
.igs-ws-wiz-attrs legend {
  font-size: 0.78rem;
  font-weight: 700;
  padding: 0 0.25rem;
}
.igs-ws-wiz-check {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  font-size: 0.84rem;
  margin: 0.35rem 0;
}
.igs-nv-ch-badge.is-canon-ready {
  background: rgba(26, 107, 82, 0.14);
  color: #1a6b52;
}
.igs-nv-ch-badge.is-canon-partial {
  background: rgba(180, 110, 20, 0.14);
  color: #8a4b0a;
}
.igs-nv-ch-badge.is-canon-empty {
  background: rgba(80, 90, 110, 0.1);
  color: #667085;
}
.igs-ws-scope-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.45rem;
  margin: 0.15rem 0 0.35rem;
  padding: 0.22rem 0.4rem;
  border-radius: 0.45rem;
  border: 1px dashed rgba(26, 107, 82, 0.22);
  background: rgba(255, 255, 255, 0.72);
  font-size: 0.64rem;
  color: #5a6b63;
  line-height: 1.35;
}
.igs-ws-scope-legend em {
  font-style: normal;
  font-weight: 750;
  padding: 0.05rem 0.32rem;
  border-radius: 999px;
}
.igs-ws-scope-legend em.is-book {
  background: #e8f6ef;
  color: #1a6b52;
}
.igs-ws-scope-legend em.is-ch {
  background: #eef2ff;
  color: #2f4db8;
}
.igs-ws-scope-legend em.is-cx {
  background: #fff6e8;
  color: #8a4b0a;
}
.igs-ws-chip.is-attach {
  cursor: default;
  border-color: rgba(61, 107, 255, 0.35);
  background: #f3f6ff;
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  padding: 0.12rem 0.2rem 0.12rem 0.35rem;
  max-width: min(100%, 14rem);
}
.igs-ws-chip.is-attach .igs-ws-chip__prev {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  padding: 0;
  margin: 0;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 11.5rem;
}
.igs-ws-chip.is-attach .igs-ws-chip__prev:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.igs-ws-chip.is-attach .igs-ws-chip__x {
  appearance: none;
  border: 0;
  background: transparent;
  color: #6a7a90;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  padding: 0 0.25rem;
  line-height: 1;
  border-radius: 0.25rem;
  flex: 0 0 auto;
}
.igs-ws-chip.is-attach .igs-ws-chip__x:hover {
  color: #c0392b;
  background: rgba(192, 57, 43, 0.08);
}
.igs-ws-chip.is-add {
  cursor: pointer;
  border-style: dashed;
  color: #2f9b6a;
}
.igs-ws-chip.is-add:hover {
  background: #eef8f2;
}
.igs-ws-twin-sel {
  font-size: 0.72rem;
  border: 1px solid #d5e3da;
  border-radius: 0.35rem;
  padding: 0.15rem 0.35rem;
  background: #fff;
}
.igs-ws-bar__log {
  max-height: min(52vh, 28rem);
  overflow: auto;
  scroll-behavior: smooth;
  border: 1px solid #e2ebe5;
  border-radius: 0.45rem;
  background: #fff;
  padding: 0.45rem 0.55rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.45rem;
}

/* 侧栏：贴右，对话区拉高 */
.igs-ws-bar.is-dock-side {
  position: fixed;
  top: 3.25rem;
  right: 0;
  bottom: 0;
  width: min(var(--igs-chat-side-w, 24rem), var(--igs-chat-max-w, 66.666vw));
  max-width: var(--igs-chat-max-w, 66.666vw);
  z-index: 55;
  margin: 0;
  border-radius: 0.75rem 0 0 0;
  border-right: none;
  box-shadow: -8px 0 28px rgba(20, 40, 32, 0.12);
  display: flex;
  flex-direction: column;
  padding: 0.65rem 0.7rem 0.75rem;
  background: linear-gradient(180deg, #f4f9f6 0%, #fff 18%);
}
.igs-ws-bar.is-dock-side .igs-ws-bar__log {
  flex: 1 1 auto;
  max-height: none;
  min-height: 12rem;
}
.igs-ws-bar.is-dock-side .igs-ws-prompts {
  flex-shrink: 0;
}
body.igs-chat-dock-side {
  padding-right: min(var(--igs-chat-side-w, 24rem), var(--igs-chat-max-w, 66.666vw));
}
/* 编剧 / 透析：即使残留 igs-chat-dock-side，也禁止再吃右侧空白（对齐小说进书） */
body.igs-on-planning,
body.igs-chat-embedded.igs-on-planning,
body.igs-on-planning.igs-chat-dock-side,
body.igs-on-dialysis,
body.igs-on-dialysis.igs-chat-dock-side {
  padding-right: 0 !important;
}
@media (max-width: 720px) {
  body.igs-chat-dock-side {
    padding-right: 0;
  }
  .igs-ws-bar.is-dock-side {
    width: 100vw;
    max-width: 100vw;
    top: 2.75rem;
  }
}
.igs-ws-chat-fab {
  position: fixed;
  right: 1rem;
  bottom: 1.25rem;
  z-index: 56;
  border: none;
  border-radius: 999px;
  padding: 0.7rem 1.1rem;
  font-size: 0.88rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #2f9b6a, #247a54);
  box-shadow: 0 8px 22px rgba(47, 155, 106, 0.35);
  cursor: pointer;
}
.igs-ws-chat-fab:hover {
  filter: brightness(1.05);
}
.igs-ws-ctx-pick .igs-ws-modal__card {
  width: min(28rem, 96vw);
}
.igs-ws-ctx-pick__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.5rem 0;
}
.igs-ws-ctx-pick__tabs button {
  border: 1px solid #d5e3da;
  background: #fff;
  border-radius: 0.4rem;
  padding: 0.3rem 0.55rem;
  font-size: 0.78rem;
  cursor: pointer;
}
.igs-ws-ctx-pick__tabs button.is-on {
  background: #2f9b6a;
  color: #fff;
  border-color: transparent;
}
.igs-ws-ctx-pick__list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 50vh;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.igs-ws-ctx-pick__list button {
  width: 100%;
  text-align: left;
  border: 1px solid #e2ebe5;
  background: #fff;
  border-radius: 0.4rem;
  padding: 0.45rem 0.55rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.igs-ws-ctx-pick__list button:hover:not(:disabled) {
  border-color: #2f9b6a;
  background: #f4fbf7;
}
.igs-ws-ctx-pick__list button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.igs-ws-ctx-snip {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: 0.55rem;
  font-size: 0.78rem;
}
.igs-ws-ctx-snip input,
.igs-ws-ctx-snip textarea {
  border: 1px solid var(--igs-line);
  border-radius: 0.4rem;
  padding: 0.4rem 0.5rem;
  font: inherit;
}
.igs-ws-msg {
  border-radius: 0.45rem;
  padding: 0.35rem 0.5rem;
  background: #fff;
  border: 1px solid #e6ece8;
  font-size: 0.78rem;
}
.igs-ws-msg.is-user { border-color: rgba(47, 155, 106, 0.35); background: #f4fbf7; }
.igs-ws-msg.is-assistant { border-color: rgba(61, 107, 255, 0.25); background: #f7f9ff; }
.igs-ws-msg b { display: block; font-size: 0.66rem; color: #5a6b63; margin-bottom: 0.15rem; }
.igs-ws-msg > p,
.igs-ws-msg__plain { margin: 0; white-space: pre-wrap; line-height: 1.45; }
.igs-ws-bar__compose {
  display: flex;
  gap: 0.35rem;
}
.igs-ws-bar__compose input {
  flex: 1;
  border: 1px solid var(--igs-line);
  border-radius: 0.4rem;
  padding: 0.4rem 0.5rem;
  font-size: 0.82rem;
}
.igs-ws-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(20, 32, 28, 0.45);
  display: grid;
  place-items: center;
  padding: 1rem;
}
/* display:grid 会盖过 UA [hidden]；关窗必须显式 none */
.igs-ws-modal[hidden] {
  display: none !important;
}
/* 本机空间诊断：须盖过个人中心（z-index 250），否则关不掉 */
.igs-ws-modal.igs-workspace-guide {
  z-index: 280;
}
.igs-ws-modal__card {
  width: min(32rem, 96vw);
  max-height: 90vh;
  overflow: auto;
  background: #fff;
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.igs-ws-modal__card header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.igs-ws-modal__card h3 { margin: 0; }
.igs-ws-modal__card label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.75rem;
  font-weight: 650;
  color: #5a6b63;
}
.igs-ws-modal__card input,
.igs-ws-modal__card textarea,
.igs-ws-modal__card select {
  border: 1px solid var(--igs-line);
  border-radius: 0.4rem;
  padding: 0.4rem 0.5rem;
  font-size: 0.85rem;
  font-weight: 400;
}

/* 新人项目上架向导 · studio_project_bringup */
.igs-bringup-modal .igs-bringup-card {
  width: min(48rem, 96vw);
}
.igs-bringup-map {
  margin: 0.5rem 0 0.35rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in srgb, var(--igs-line) 75%, transparent);
  background: color-mix(in srgb, var(--igs-elev) 88%, #fff);
}
.igs-bringup-map-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}
.igs-bringup-map-table th,
.igs-bringup-map-table td {
  text-align: left;
  padding: 0.28rem 0.35rem;
  border-bottom: 1px solid color-mix(in srgb, var(--igs-line) 55%, transparent);
  vertical-align: middle;
}
.igs-bringup-map-table tr.is-conflict td {
  background: color-mix(in srgb, #f5c26b 28%, transparent);
}
.igs-bringup-map-file {
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.igs-bringup-map-table input[type='text'] {
  width: 4.5rem;
  font-family: ui-monospace, monospace;
  font-size: 0.78rem;
  padding: 0.15rem 0.3rem;
}
.igs-bringup-runtime {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  font-size: 0.72rem;
  color: #5a6b63;
  padding: 0.35rem 0.5rem;
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--igs-elev) 92%, #fff);
  border: 1px solid color-mix(in srgb, var(--igs-line) 70%, transparent);
}
.igs-bringup-runtime b {
  font-weight: 700;
  color: #2d3a34;
}
.igs-bringup-steps i.is-cur {
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.igs-bringup-lead {
  margin: 0.25rem 0 0.65rem;
  font-size: 0.88rem;
  line-height: 1.45;
}
.igs-bringup-bound {
  margin: 0.35rem 0;
  font-size: 0.82rem;
  color: #2d5a45;
}
.igs-bringup-warn {
  margin: 0.35rem 0;
  font-size: 0.82rem;
  color: #8a4a12;
}
.igs-bringup-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.65rem;
}
.igs-bringup-books {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  gap: 0.4rem;
  max-height: 12rem;
  overflow: auto;
}
.igs-bringup-book {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.45rem;
  border: 1px solid var(--igs-line);
  background: #fff;
  cursor: pointer;
  text-align: left;
}
.igs-bringup-book.is-on {
  border-color: #2d7a55;
  background: color-mix(in srgb, #2d7a55 8%, #fff);
}
.igs-bringup-book b {
  font-size: 0.8rem;
}
.igs-bringup-book small {
  font-size: 0.68rem;
  color: #7a8a82;
}
.igs-bringup-file input[type='file'] {
  margin-top: 0.25rem;
  font-size: 0.78rem;
}
.igs-bringup-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin: 0.5rem 0 0.75rem;
}
.igs-bringup-meta label {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.85rem;
}
.igs-bringup-meta input[type='text'] {
  width: 5.5rem;
  padding: 0.25rem 0.4rem;
  font: inherit;
}
.igs-bringup-report {
  margin: 0.5rem 0 0;
  padding: 0.55rem 0.65rem;
  font-size: 0.72rem;
  line-height: 1.4;
  white-space: pre-wrap;
  border-radius: 0.4rem;
  background: #f4f7f5;
  border: 1px solid var(--igs-line);
  max-height: 8rem;
  overflow: auto;
}
.igs-bringup-foot {
  margin-top: 0.35rem;
}
.igs-nv-empty__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
  justify-content: center;
}
.igs-ws-modal__actions { display: flex; gap: 0.4rem; margin-top: 0.3rem; }
.igs-ws-guide {
  font-size: 0.72rem;
  color: #6a7a72;
  line-height: 1.4;
  margin: 0.2rem 0 0;
  padding: 0.4rem;
  background: #f3f7f4;
  border-radius: 0.4rem;
}
.igs-ws-canon,
.igs-ws-analysis,
.igs-ws-script {
  margin: 0.75rem 0;
  border: 1px solid var(--igs-line);
  border-radius: 0.65rem;
  padding: 0.65rem 0.75rem;
  background: #fcfdfc;
}
.igs-ws-canon__hd {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}
.igs-ws-canon__hd h3 { margin: 0; font-size: 1rem; }
.igs-ws-canon__hd p { margin: 0.2rem 0 0; font-size: 0.72rem; color: #6a7a72; }
.igs-ws-world {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.75rem;
  font-weight: 650;
  color: #5a6b63;
  margin-bottom: 0.55rem;
}
.igs-ws-world textarea {
  border: 1px solid var(--igs-line);
  border-radius: 0.4rem;
  padding: 0.4rem;
  font-size: 0.82rem;
  font-weight: 400;
}
.igs-ws-canon-sec {
  margin-bottom: 0.65rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px dashed #dde5e0;
}
.igs-ws-canon-sec header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.35rem;
}
.igs-ws-canon-sec h4 { margin: 0; font-size: 0.85rem; }
.igs-ws-item {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 0.3rem;
  margin-bottom: 0.35rem;
  padding: 0.35rem;
  background: #fff;
  border: 1px solid #e8eeea;
  border-radius: 0.4rem;
}
.igs-ws-item textarea { grid-column: 1 / -1; }
.igs-ws-item input,
.igs-ws-item textarea {
  border: 1px solid var(--igs-line);
  border-radius: 0.3rem;
  padding: 0.28rem 0.4rem;
  font-size: 0.78rem;
}
.igs-ws-checklist {
  font-size: 0.75rem;
  color: #3d4f46;
  background: #f0f7f3;
  border-radius: 0.45rem;
  padding: 0.5rem 0.65rem;
}
.igs-ws-checklist ol { margin: 0.25rem 0 0; padding-left: 1.2rem; }
.igs-ws-analysis__grid {
  display: grid;
  grid-template-columns: minmax(8rem, 12rem) 1fr;
  gap: 0.6rem;
}
.igs-ws-rep {
  display: block;
  width: 100%;
  text-align: left;
  border: 1px solid var(--igs-line);
  background: #fff;
  border-radius: 0.4rem;
  padding: 0.35rem 0.45rem;
  margin-bottom: 0.3rem;
  cursor: pointer;
  font: inherit;
}
.igs-ws-rep.is-on { border-color: #2f9b6a; background: #f4fbf7; }
.igs-ws-rep b { display: block; font-size: 0.74rem; }
.igs-ws-rep small { font-size: 0.64rem; color: #6a7a72; }
.igs-ws-md {
  white-space: pre-wrap;
  font-size: 0.86rem;
  line-height: 1.55;
  background: #fff;
  border: 1px solid #e8eeea;
  border-radius: 0.45rem;
  padding: 0.65rem 0.75rem;
  max-height: min(70vh, 42rem);
  overflow: auto;
  margin: 0;
  font-family: ui-sans-serif, system-ui, sans-serif;
}
.igs-ws-rep-view header {
  display: flex;
  justify-content: space-between;
  gap: 0.4rem;
  align-items: center;
  margin-bottom: 0.35rem;
}
.igs-ws-rep-view h4 { margin: 0; font-size: 0.9rem; }
.igs-ws-script__form {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 0.6rem;
}
.igs-ws-script__form label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.72rem;
  font-weight: 650;
  color: #5a6b63;
}
.igs-ws-script__form input,
.igs-ws-script__form textarea {
  border: 1px solid var(--igs-line);
  border-radius: 0.35rem;
  padding: 0.35rem 0.45rem;
  font-size: 0.82rem;
  font-weight: 400;
}
.igs-ws-draft {
  border: 1px solid var(--igs-line);
  border-radius: 0.5rem;
  padding: 0.45rem;
  margin-bottom: 0.45rem;
  background: #fff;
}
.igs-ws-draft header {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin-bottom: 0.35rem;
  font-size: 0.78rem;
}
.igs-ws-draft.adopted { box-shadow: inset 3px 0 0 #2f9b6a; }
.igs-ws-draft.discarded { opacity: 0.55; }
.igs-ws-pl-inject,
.igs-ws-dx-inject {
  margin: 0.75rem 1rem 1.25rem;
}
.igs-ws-sec-lab {
  font-size: 0.7rem;
  font-weight: 700;
  color: #5a6b63;
  margin: 0 0 0.35rem;
}
@media (max-width: 720px) {
  .igs-ws-analysis__grid { grid-template-columns: 1fr; }
  .igs-ws-item { grid-template-columns: 1fr; }
}

