/* 视觉映射：06 文本输出卡、07A/07B 节点编辑器、05A 添加菜单。复用共享语义与控件尺寸。 */
.director-node-output {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  height: max(380px, var(--preview-height));
  background: var(--color-surface-overlay-inner);
  color: var(--color-text-primary);
  font-size: var(--font-body-size);
  line-height: var(--font-body-line);
}
.director-agent-heading {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-border-subtle);
  font-size: var(--font-control-size);
  color: var(--color-text-secondary);
}
.director-agent-heading > span { margin-left: auto; color: var(--color-text-muted); }
.director-agent-heading > strong { min-width: 0; overflow-wrap: anywhere; }
.director-node-document {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: var(--space-4);
  overflow-wrap: anywhere;
}
.director-node-document table { min-width: 720px; }
.director-node-empty {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  color: var(--color-text-secondary);
}
.director-node-empty p { margin: 0; }
.director-node-empty ol { padding-left: var(--space-5); font-size: var(--font-control-size); }
.director-node-output button:not(.text-preview-expand),
.director-brief select,
.director-brief input,
.director-episode-chip {
  min-width: 0;
  min-height: var(--control-height-sm);
  padding: var(--space-1) var(--space-2);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-sm);
  background: var(--color-control-bg);
  color: var(--color-text-secondary);
  font-size: var(--font-control-size);
  line-height: var(--font-control-line);
}
.director-node-output button,
.director-episode-chip { cursor: pointer; }
.director-node-output button:hover,
.director-episode-chip:hover {
  background: var(--color-control-hover);
  color: var(--color-text-primary);
}
.director-node-output button[aria-pressed="true"],
.director-episode-chip[aria-pressed="true"] { background: var(--color-surface-active); color: var(--color-text-primary); }
.director-brief select option { background: var(--color-surface-popover); color: var(--color-text-secondary); }
.director-node-output button:focus-visible,
.director-node-editor select:focus-visible,
.director-node-editor input:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}
.director-node-output button:disabled,
.director-node-editor select:disabled,
.director-node-editor input:disabled { cursor: default; color: var(--color-text-faint); }
.director-node-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-top: 1px solid var(--color-border-subtle);
  font-size: var(--font-caption-size);
  line-height: var(--font-caption-line);
  color: var(--color-text-muted);
}
.director-node-footer > span { flex: 1 1 100%; }
.director-output-actions { display: flex; gap: var(--space-2); margin-left: auto; }
.director-directions { display: grid; gap: var(--space-2); margin-bottom: var(--space-4); }
.director-directions button { text-align: left; }
.director-directions p { color: var(--color-text-muted); font-size: var(--font-control-size); }
.director-source-warning { color: var(--color-warning-text); }
.director-review { border-top: 1px solid var(--color-border-subtle); padding-top: var(--space-3); margin-top: var(--space-4); }
.director-review summary { cursor: pointer; color: var(--color-text-secondary); }
.director-picker-head {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--font-body-size);
}
.director-picker-note { grid-column: 1 / -1; margin: 0; color: var(--color-text-muted); font-size: var(--font-control-size); line-height: var(--font-control-line); }
.director-node-editor { grid-template-rows: auto minmax(0, 1fr) auto auto; }
.director-brief { min-width: 0; display: grid; gap: var(--space-2); }
.director-brief-title { display: flex; gap: var(--space-3); align-items: center; padding-right: var(--control-height-lg); font-size: var(--font-control-size); color: var(--color-text-secondary); }
.director-brief-title span { color: var(--color-text-muted); font-size: var(--font-caption-size); }
.director-brief-fields { display: grid; grid-template-columns: minmax(100px, 160px) minmax(80px, 108px) repeat(2, minmax(100px, 160px)); gap: var(--space-2); }
.director-brief-fields label { display: grid; min-width: 0; gap: var(--space-1); color: var(--color-text-muted); font-size: var(--font-caption-size); }
.director-brief input,
.director-brief select { width: 100%; }
.director-episode-settings { display: grid; grid-template-columns: minmax(100px, 160px) repeat(2, minmax(80px, 108px)); gap: var(--space-2); }
.director-episode-settings label { display: grid; min-width: 0; gap: var(--space-1); color: var(--color-text-muted); font-size: var(--font-caption-size); }
.director-episode-settings p { grid-column: 1 / -1; margin: 0; color: var(--color-text-muted); font-size: var(--font-caption-size); line-height: var(--font-caption-line); }
.director-written-episodes { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--space-1); max-height: 80px; overflow: auto; }
.director-episode-chip { display: inline-flex; align-items: center; gap: var(--space-2); }
.director-episode-chip small { font-size: var(--font-caption-size); color: var(--color-text-muted); }
.director-control-options { display: grid; gap: var(--space-1); align-content: start; overflow: auto; }
.director-control-options .editor-choice { min-height: var(--control-height-sm); padding: var(--space-2); font-size: var(--font-control-size); border-radius: var(--radius-sm); }
.director-control-options .editor-choice:hover { background: var(--color-surface-active); }
.director-node-editor .editor-model-control { min-width: 0; flex: 0 1 auto; max-width: 280px; }
.director-node-editor .editor-model-control strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.director-operation,
.director-version { min-width: 0; max-width: 130px; flex: 0 0 auto; }
.composer.is-prompt-expanded .director-node-editor { grid-template-rows: auto auto minmax(0, 1fr) auto auto; }
@media (max-width: 760px) {
  .director-brief-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .director-node-editor .composer-controls { flex-wrap: wrap; }
  .director-node-editor .editor-model-control { max-width: none; flex-basis: 120px; }
  .director-operation,
  .director-version { max-width: 100px; }
}
