.code-director-panel {
  display: flex;
  min-height: 0;
  height: 100%;
  flex-direction: column;
  gap: 8px;
  color: #f4f4f5;
}

.code-director-hero {
  padding: 10px;
  border: 1px solid rgba(0, 242, 254, .2);
  border-radius: 9px;
  background:
    radial-gradient(circle at 100% 0, rgba(79, 172, 254, .14), transparent 45%),
    linear-gradient(145deg, rgba(0, 242, 254, .055), rgba(124, 92, 255, .075));
}

.code-director-hero strong {
  display: block;
  margin-bottom: 3px;
  font-size: 11px;
}

.code-director-hero span {
  display: block;
  color: #9292a2;
  font-size: 8px;
  line-height: 1.45;
}

.code-director-toolbar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.code-director-toolbar button,
.code-director-build-row button {
  min-width: 0;
  padding: 6px 5px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 6px;
  background: rgba(255, 255, 255, .055);
  color: #d9d9e2;
  cursor: pointer;
  font: 700 8px/1.2 Inter, sans-serif;
}

.code-director-toolbar button:hover,
.code-director-build-row button:hover {
  border-color: rgba(0, 242, 254, .45);
  color: #fff;
}

.code-director-toolbar button:disabled,
.code-director-build-row button:disabled {
  cursor: not-allowed;
  opacity: .42;
}

.code-director-editor-shell {
  position: relative;
  min-height: 220px;
  flex: 1 1 260px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 8px;
  background: #090a0f;
}

.code-director-editor-label {
  position: absolute;
  z-index: 2;
  top: 7px;
  right: 8px;
  padding: 2px 5px;
  border: 1px solid rgba(0, 242, 254, .18);
  border-radius: 4px;
  background: rgba(0, 0, 0, .55);
  color: #67e8f9;
  font: 800 7px/1 Inter, sans-serif;
  letter-spacing: .08em;
}

#code-director-editor {
  width: 100%;
  height: 100%;
  min-height: 220px;
  resize: none;
  border: 0;
  outline: 0;
  padding: 12px 11px 16px;
  background: transparent;
  color: #d8e2f0;
  caret-color: #00f2fe;
  font: 10px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  tab-size: 2;
  user-select: text;
  white-space: pre;
}

.code-director-build-row {
  display: grid;
  grid-template-columns: 1fr 1.45fr .72fr;
  gap: 5px;
}

.code-director-build-row .primary {
  border-color: rgba(0, 242, 254, .65);
  background: linear-gradient(135deg, #00f2fe, #4facfe);
  color: #05070a;
}

.code-director-build-row .stop {
  border-color: rgba(255, 92, 115, .35);
  color: #ff8b9b;
}

.code-director-progress {
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .07);
}

.code-director-progress > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #00f2fe, #7c5cff);
  transition: width .16s ease;
}

.code-director-status {
  min-height: 26px;
  padding: 7px 8px;
  border: 1px solid rgba(255, 255, 255, .075);
  border-radius: 7px;
  background: rgba(255, 255, 255, .025);
  color: #a4a4b3;
  font-size: 8px;
  line-height: 1.4;
}

.code-director-status.success {
  border-color: rgba(52, 211, 153, .28);
  color: #7ce6bc;
}

.code-director-status.error {
  border-color: rgba(255, 92, 115, .35);
  color: #ff9aa8;
}

.code-director-section {
  min-height: 0;
  border: 1px solid rgba(255, 255, 255, .075);
  border-radius: 8px;
  background: rgba(255, 255, 255, .022);
}

.code-director-section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 8px;
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  color: #dadbe3;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

#code-director-diagnostics,
#code-director-assets,
#code-director-compositions,
#code-director-transitions,
#code-director-logs {
  max-height: 130px;
  overflow: auto;
  padding: 6px;
}

/* Runtime output can be long; give it its own, taller scroll box. */
#code-director-logs {
  max-height: 170px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.code-director-empty {
  padding: 7px;
  color: #737381;
  font-size: 8px;
  line-height: 1.45;
}

.code-director-diagnostic {
  margin-bottom: 5px;
  padding: 6px;
  border-left: 2px solid #ff6075;
  border-radius: 4px;
  background: rgba(255, 96, 117, .07);
  font-size: 8px;
  line-height: 1.4;
}

.code-director-diagnostic.warning {
  border-left-color: #fbbf24;
  background: rgba(251, 191, 36, .06);
}

.code-director-diagnostic b {
  color: #fff;
}

.code-director-diagnostic code {
  display: block;
  overflow: hidden;
  margin-top: 2px;
  color: #8edff0;
  font-size: 7px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.code-director-asset {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
  padding: 5px 6px;
  border: 1px solid rgba(255, 255, 255, .06);
  border-radius: 5px;
  background: rgba(0, 0, 0, .18);
  font-size: 8px;
}

.code-director-asset i,
.code-director-asset svg {
  width: 14px;
  height: 14px;
  color: #00f2fe;
}

.code-director-asset span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.code-director-asset small {
  color: #737381;
  font-size: 7px;
}

@media (max-height: 760px) {
  .code-director-editor-shell,
  #code-director-editor {
    min-height: 150px;
  }

  #code-director-diagnostics,
  #code-director-assets,
  #code-director-compositions,
  #code-director-transitions,
  #code-director-logs {
    max-height: 85px;
  }
}

/* Example picker: one dropdown instead of a wall of demo buttons. */
.code-director-example-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 8px;
}

.code-director-example-row select {
  width: 100%;
  padding: 6px 8px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, .14);
  background: rgba(255, 255, 255, .05);
  color: #dadbe3;
  font-size: 9px;
  font-weight: 700;
  cursor: pointer;
}

.code-director-example-row small {
  color: #737381;
  font-size: 8px;
  line-height: 1.4;
}

/* Shown when a source is too large to keep in the DOM. */
.code-director-source-notice {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 7px;
  margin-bottom: 4px;
  border-radius: 5px;
  background: rgba(124, 140, 255, .12);
  border: 1px solid rgba(124, 140, 255, .3);
  color: #b9c2ff;
  font-size: 8px;
  line-height: 1.4;
}

.code-director-source-notice button {
  margin-left: auto;
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .07);
  color: #fff;
  font-size: 8px;
  font-weight: 700;
  cursor: pointer;
}
