/* OpenSCAD extends the existing three-pane studio; it does not introduce a
   second workspace or viewport. */
.scad-source-panel { display: none; min-height: 0; }
.scad-mode-option { border: 0; border-radius: 5px; background: transparent; color: var(--muted); padding: 7px 9px; cursor: pointer; font: inherit; }
.scad-mode-option.active { background: var(--panel); color: var(--text); }
.scad-mode-option:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.editor-shell.scad-mode .chat-panel,
.editor-shell.scad-mode .assumptions-panel,
.editor-shell.scad-mode .input-dock { display: none; }
.editor-shell.scad-mode .left-pane { grid-template-rows: minmax(0, 1fr); }
.editor-shell.scad-mode .scad-source-panel,
.scad-editor-dialog .scad-source-panel { display: flex; flex-direction: column; height: 100%; min-height: 0; gap: 10px; padding: 12px; overflow: auto; }
.scad-source-panel > * { flex-shrink: 0; min-width: 0; }
.scad-file-tabs { display: flex; gap: 6px; overflow-x: auto; }
.scad-file-tabs button { white-space: nowrap; border: 1px solid var(--hairline-strong); border-radius: var(--radius); background: transparent; color: var(--muted); padding: 6px 9px; font: inherit; font-size: 12px; cursor: pointer; }
.scad-file-tabs button.active { border-color: var(--primary); color: var(--text); background: rgba(210, 173, 101, .08); }
.scad-file-list input { min-width: 0; width: 100%; border: 1px solid var(--hairline-strong); border-radius: var(--radius); background: transparent; color: var(--text); padding: 7px 9px; font: inherit; }
.scad-file-tabs button:focus-visible, .scad-file-list input:focus-visible, .scad-upload:focus-within { outline: 2px solid var(--primary); outline-offset: 2px; }

.scad-source-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.scad-source-header > div { min-width: 0; }
.scad-source-header-actions { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: flex-end; gap: 8px; }
.scad-source-header h2,
.scad-inspector-section h2,
.scad-ai-edit h3 { margin: 0; color: var(--text); font-size: 14px; line-height: 1.25; }
.scad-source-header p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.scad-source-state { color: var(--cyan); font-size: 11px; font-weight: 700; line-height: 1.35; text-align: right; }
.scad-source-actions,
.scad-downloads { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.scad-source-actions .primary-button,
.scad-source-actions .secondary-button,
.scad-downloads .primary-button,
.scad-downloads .secondary-button { min-height: 34px; padding: 7px 10px; font-size: 11px; }
.scad-upload { display: inline-flex; align-items: center; min-height: 34px; border: 1px solid var(--hairline-strong); border-radius: var(--radius); padding: 0 10px; color: var(--subtle); font-size: 11px; font-weight: 700; cursor: pointer; }
.scad-upload:hover { border-color: rgba(210, 173, 101, .42); color: var(--text); }
.scad-upload input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.scad-source-hint { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.scad-code-editor { display: grid; grid-template-columns: 46px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); flex: 1 0 clamp(360px, 52vh, 680px); min-height: 360px; overflow: hidden; border: 1px solid var(--hairline); border-radius: var(--radius); background: rgba(4, 6, 9, .56); }
.scad-line-gutter { margin: 0; padding: 10px 8px 10px 0; overflow: hidden; list-style: none; color: var(--muted); font: 12px/20px ui-monospace, SFMono-Regular, Menlo, monospace; text-align: right; user-select: none; background: rgba(255, 255, 255, .025); }
.scad-code-editor textarea { min-width: 0; min-height: 0; height: 100%; resize: none; border: 0; border-radius: 0; padding: 10px 12px; background: transparent; color: var(--text); font: 12px/20px ui-monospace, SFMono-Regular, Menlo, monospace; line-height: 20px; tab-size: 2; }
.scad-code-editor textarea:focus { outline: 1px solid rgba(91, 196, 202, .64); outline-offset: -1px; }
.scad-editor-dialog { position: fixed; inset: 12px; margin: 0; width: calc(100vw - 24px); height: calc(100dvh - 24px); max-width: none; max-height: none; padding: 0; overflow: hidden; border: 1px solid var(--hairline-strong); border-radius: var(--radius); background: var(--surface-elevated); color: var(--text); }
.scad-editor-dialog::backdrop { background: rgba(0, 0, 0, .72); }
.scad-editor-dialog .scad-source-panel { overflow: hidden; }
.scad-editor-dialog .scad-code-editor { flex: 1 1 0; min-height: 0; }
.scad-editor-dialog .scad-file-list,
.scad-editor-dialog .scad-ai-edit { display: none; }
.scad-file-list { display: grid; gap: 6px; max-height: 88px; overflow: auto; border-top: 1px solid var(--hairline); padding-top: 9px; }
.scad-file-list strong { color: var(--subtle); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.scad-file-list div { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font: 11px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; }
.scad-file-list button { border: 0; background: transparent; color: var(--muted); font-size: 18px; cursor: pointer; }
.scad-file-list p { margin: 0; color: var(--muted); font-size: 11px; }
.scad-ai-edit { display: grid; gap: 8px; border-top: 1px solid var(--hairline); padding-top: 10px; }
.scad-ai-edit label { display: grid; gap: 5px; color: var(--subtle); font-size: 11px; font-weight: 700; }
.scad-ai-edit textarea { min-height: 54px; resize: vertical; }
.scad-ai-edit p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.scad-ai-edit .secondary-button { justify-self: start; min-height: 34px; padding: 7px 10px; font-size: 11px; }

.scad-inspector-section { display: grid; gap: 10px; }
.scad-inspector-section > p { margin: 0; }
.scad-param-row { min-height: 54px; }
.scad-param-row .param-value { grid-template-columns: minmax(0, 1fr) auto; }
.scad-param-row em { color: var(--muted); font-size: 11px; font-style: normal; }
.scad-param-error { color: #f0ac9a !important; font-size: 11px !important; }
.scad-region { gap: 7px; }
.scad-region > div { display: flex; gap: 8px; align-items: center; }
.scad-region .secondary-button { min-height: 30px; padding: 5px 8px; font-size: 11px; }
.scad-compile-status > strong { width: max-content; border-radius: 999px; padding: 4px 8px; background: rgba(91, 196, 202, .12); color: var(--cyan); font-size: 11px; }
.scad-compile-status .scad-status-failed { background: rgba(221, 119, 95, .14); color: #f0ac9a; }
.scad-stale { color: var(--amber); }
.scad-compile-status h3 { margin: 6px 0 0; color: var(--subtle); font-size: 12px; }
.scad-compile-status .secondary-button { justify-self: start; min-height: 34px; padding: 7px 10px; font-size: 11px; }
.scad-downloads { margin-top: 2px; }
.scad-version { min-width: 0; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto; overflow: hidden; font-size: 12px; line-height: 1.4; }
.scad-version > * { min-width: 0; max-width: 100%; }
.scad-version .version-head { flex-wrap: wrap; }
.scad-source-hash { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
.scad-version .version-actions { flex-direction: column; }
.scad-version .version-action { min-width: 0; max-width: 100%; min-height: 32px; white-space: normal; overflow-wrap: anywhere; }
.scad-version.current { border-color: rgba(91, 196, 202, .42); }

@media (min-width: 981px) {
  .editor-shell.scad-mode:not(.inspector-collapsed) { grid-template-columns: var(--editor-left-width, minmax(280px, 30%)) minmax(0, 1fr) minmax(260px, 300px); }
  .editor-shell.scad-mode > .right-pane { position: relative; top: auto; right: auto; bottom: auto; width: auto; grid-column: 3; grid-row: 1; box-shadow: none; }
  .editor-shell.scad-mode > .right-pane .inspector-close { display: none; }
  .editor-shell.scad-mode .toolbar-left { flex-wrap: wrap; flex-basis: 100%; }
  .editor-shell.scad-mode .viewer-status { flex-wrap: wrap; flex-basis: 100%; }
  .editor-shell.scad-mode .timeline-pane { grid-row: 2; }
}

@media (max-width: 1180px) {
  .editor-shell.scad-mode .left-pane { grid-template-rows: minmax(300px, 1fr); }
}

@media (max-width: 980px) {
  .editor-shell.scad-mode .left-pane { display: block; }
  .editor-shell.scad-mode .scad-source-panel { min-height: 540px; }
  .scad-source-header { align-items: stretch; flex-direction: column; }
  .scad-source-header-actions { justify-content: space-between; }
  .scad-source-state { max-width: none; text-align: left; }
  .scad-editor-dialog { inset: 8px; width: calc(100vw - 16px); height: calc(100dvh - 16px); }
}

.editor-shell.scad-mode .toolbar-left, .editor-shell.scad-mode .viewer-status { flex-wrap: wrap; }
