/* Buildable studio shell.
   Language kept from the 2026-10-16 direction: a dark workshop, cyan for engineering structure the engine
   computed, amber for you (your selection, your actions). Type is set for reading, not for decoration. */
:root{
  color-scheme:dark;
  --font:"SF Pro Text",-apple-system,BlinkMacSystemFont,Inter,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --display:"SF Pro Display",-apple-system,BlinkMacSystemFont,Inter,"Segoe UI",sans-serif;
  --mono:"SF Mono",ui-monospace,Menlo,Consolas,"Liberation Mono",monospace;
  --ink:#0a0f15;--bg:#0b1117;--panel:#10171f;--raised:#161f29;--raised-2:#1c2733;
  --line:#212c38;--line-strong:#2d3b4a;
  --text:#e6edf2;--text-2:#b4c1cc;--muted:#8291a0;--faint:#5f6e7c;
  --cyan:#6fd6e8;--cyan-ink:#06222a;--cyan-wash:#6fd6e81a;
  --amber:#f2a65a;--amber-ink:#22140a;--amber-wash:#f2a65a1f;
  --ok:#7fd1b9;--warn:#e9b56c;--bad:#f08c7e;
  --radius:10px;--radius-sm:7px;
  font-family:var(--font);font-size:14px;line-height:1.5;font-synthesis:none;-webkit-font-smoothing:antialiased;
  color:var(--text);background:var(--bg);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg)}
button,textarea,select,input{font:inherit;color:inherit}
button,a,summary,select{-webkit-tap-highlight-color:transparent}
button,summary,select{cursor:pointer}
button{border:0;background:none}
button:disabled{cursor:default;opacity:.4}
a{color:inherit}
:is(button,a,textarea,summary,select,canvas,input):focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes breathe{50%{opacity:.45}}

/* ---------- top bar ---------- */
.topbar{height:52px;display:flex;align-items:center;gap:6px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--ink);position:relative;z-index:20}
.wordmark{font:650 20px/1 var(--display);letter-spacing:-.03em;color:var(--text);text-decoration:none;margin-right:14px}
.wordmark .beta-tag{display:inline-block;margin-left:7px;padding:2px 6px 1px;border:1px solid var(--line-strong);border-radius:5px;font:600 9.5px/1.3 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);vertical-align:3px}
.topbar-button,.topbar-link{display:inline-flex;align-items:center;height:32px;padding:0 11px;border-radius:var(--radius-sm);color:var(--text-2);font-size:14px;text-decoration:none}
.topbar-button:hover,.topbar-link:hover{background:var(--raised);color:var(--text)}
.topbar-button[aria-expanded=true]{background:var(--raised);color:var(--text)}
.topbar-link{color:var(--muted)}
.provider{margin-left:auto;display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}
.status-dot,.local-indicator{height:7px;width:7px;border-radius:50%;display:inline-block;background:var(--faint);flex-shrink:0}
.provider.available .status-dot,.local-indicator{background:var(--ok)}
.provider.unavailable .status-dot{background:var(--warn)}
body[data-study=off] #usability-mount{display:none}

/* ---------- layout ---------- */
.workspace{display:grid;grid-template-columns:360px minmax(0,1fr);height:calc(100dvh - 52px);min-height:600px}
.sidebar{display:flex;flex-direction:column;min-height:0;background:var(--panel);border-right:1px solid var(--line)}
.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;padding:20px 18px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}

/* Sidebar states: nothing open → the creation prompt; a design open or building → conversation, parts, composer. */
.workspace:not([data-project]) .panel-switch,.workspace[data-project=none] .panel-switch,
.workspace:not([data-project]) .thread,.workspace[data-project=none] .thread,
.workspace:not([data-project]) .parts-section,.workspace[data-project=none] .parts-section,
.workspace:not([data-project]) .composer,.workspace[data-project=none] .composer{display:none}
.workspace[data-project=saved] .create-section,.workspace[data-project=draft] .create-section,.workspace[data-project=building] .create-section{display:none}
[data-panel-hidden=true]{display:none!important}

/* ---------- creation prompt (studio, no project) ---------- */
.home-only,.home-project-link{display:none}
.create-section h1{font:600 26px/1.2 var(--display);letter-spacing:-.02em;margin:8px 0 10px;color:var(--text)}
.intro{font-size:14px;color:var(--text-2);margin:0 0 18px;max-width:42ch}
textarea{width:100%;display:block;border:0;background:transparent;resize:none;padding:14px 14px 6px;font-size:15px;line-height:1.55;color:var(--text)}
textarea::placeholder{color:var(--faint)}
textarea:focus-visible{outline:0}
#create-form,#edit-form{border:1px solid var(--line-strong);background:var(--raised);border-radius:var(--radius);overflow:hidden;transition:border-color .15s,box-shadow .15s}
#create-form:focus-within,#edit-form:focus-within{border-color:#f2a65a80;box-shadow:0 0 0 3px var(--amber-wash)}
#prompt{min-height:150px}
.prompt-footer,.edit-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:8px 10px 10px 14px}
.edit-footer>span{flex:1;font-size:12px;color:var(--muted);line-height:1.35}
.primary{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:var(--radius-sm);background:var(--amber);color:var(--amber-ink);font-weight:600;font-size:14px;white-space:nowrap;transition:filter .15s}
.primary:hover:not(:disabled){filter:brightness(1.08)}
.primary span{font-weight:400}
.compact{height:32px;padding:0 13px;font-size:13px}
.text-button{font-size:13px;color:var(--muted);padding:4px 2px}
.text-button:hover{color:var(--text)}

/* ---------- sidebar panels ---------- */
.panel-switch{display:flex;gap:4px;padding:3px;margin:-4px 0 16px;background:var(--ink);border:1px solid var(--line);border-radius:var(--radius)}
.panel-switch button{flex:1;height:32px;border-radius:var(--radius-sm);color:var(--muted);font-size:13px;font-weight:500}
.panel-switch button[aria-selected=true]{background:var(--raised-2);color:var(--text)}
.panel-switch #part-count{color:var(--faint);font-weight:400;margin-left:4px}

.thread-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.thread-item{display:flex;flex-direction:column;gap:4px}
.thread-role{font-size:12px;font-weight:600;color:var(--muted)}
.thread-item.you .thread-role{color:var(--amber)}
.thread-text{margin:0;font-size:14px;line-height:1.55;color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere}
.thread-item.you .thread-text{color:var(--text);background:var(--raised);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}
.thread-meta{font-size:12px;color:var(--faint)}
.thread-item.live .thread-text::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--cyan);animation:breathe 1.4s ease-in-out infinite;vertical-align:1px}

.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.section-heading h2{font-size:13px;font-weight:600;margin:0;color:var(--text-2)}
.section-heading>span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.progress-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.progress{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted)}
.progress li{display:flex;gap:9px;align-items:flex-start;line-height:1.45}
.progress li::before{content:"";width:6px;height:6px;margin:6px 2px 0;border-radius:50%;background:var(--faint);flex-shrink:0}
.progress li.active{color:var(--text)}
.progress li.active::before{width:10px;height:10px;margin:4px 0 0;background:none;border:1.5px solid var(--line-strong);border-top-color:var(--cyan);animation:spin 1s linear infinite}
.progress li.error{color:var(--bad)}.progress li.error::before{background:var(--bad)}

.parts-list{display:flex;flex-direction:column;gap:2px}
.part-button{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:7px 10px;border-radius:var(--radius-sm);text-align:left;font-size:14px;color:var(--text-2);border:1px solid transparent}
.part-button:hover{background:var(--raised)}
.part-button.selected{background:var(--amber-wash);border-color:#f2a65a55;color:var(--text)}
.part-button.pending{color:var(--faint)}
.part-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;box-shadow:inset 0 0 0 1px #ffffff26}
.part-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.part-tag{font-size:12px;color:var(--muted);white-space:nowrap}
.hint{font-size:12px;color:var(--muted);margin:10px 2px 0}

/* ---------- composer ---------- */
.composer{border-top:1px solid var(--line);padding:12px 14px 14px;background:var(--panel)}
.edit-section{margin-bottom:10px;padding:10px 12px;border-radius:var(--radius);background:var(--amber-wash);border:1px solid #f2a65a40;max-height:38vh;overflow:auto}
.selection-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.selection-head h2{margin:0;font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selection-detail{font-size:13px;color:var(--text-2);line-height:1.5;margin-top:4px}
.selection-detail p{margin:0 0 4px}
.selection-detail .part-role{color:var(--text)}
.selection-detail .unresolved,.connection-missing{color:var(--warn)}
.selection-detail .connection-note{border-left:2px solid var(--line-strong);padding-left:8px;color:var(--muted)}
.connection-missing{display:block;font-size:12px;margin-top:2px}
.edit-section .hint{margin-top:6px}
#edit-prompt{min-height:56px;max-height:160px;resize:vertical}

/* ---------- projects ---------- */
.workspace:not(.home-active) .projects-popover{display:none;position:fixed;top:56px;left:96px;z-index:30;width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);overflow:auto;padding:14px;background:var(--raised);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 18px 50px #000a}
.workspace:not(.home-active) .projects-popover.open{display:block}
.projects-list{display:flex;flex-direction:column;gap:2px}
.project-button{width:100%;display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 10px;border-radius:var(--radius-sm);text-align:left;font-size:14px;color:var(--text-2)}
.project-button:hover{background:var(--raised-2);color:var(--text)}
.project-button.active{background:var(--amber-wash);color:var(--text)}
.project-button .project-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-button>span:last-child{color:var(--faint)}
.projects-note{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:12px 2px 0}
.small{font-size:13px}.muted{color:var(--muted)}

/* ---------- studio ---------- */
.studio{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}
.studio-toolbar{display:flex;align-items:center;gap:14px;min-height:60px;padding:10px 20px;border-bottom:1px solid var(--line);flex-shrink:0}
.project-heading{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.project-heading h2{margin:0;font:600 18px/1.25 var(--display);letter-spacing:-.01em;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
#versions{flex-shrink:0;height:30px;padding:0 8px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--raised);color:var(--text-2);font-size:13px}
.status-chip{display:inline-flex;align-items:center;gap:8px;max-width:420px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--raised);color:var(--text-2);font-size:13px;white-space:nowrap}
.status-chip:hover,.status-chip[aria-expanded=true]{border-color:var(--muted);color:var(--text)}
.status-chip #footer-status{overflow:hidden;text-overflow:ellipsis}
.status-chip-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);flex-shrink:0}
.status-chip.attention .status-chip-dot{background:var(--warn)}
.status-chip-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--warn);color:var(--amber-ink);font-size:12px;font-weight:600;display:grid;place-items:center}
.toolbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.toolbar-button,#downloads summary{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--raised);color:var(--text-2);font-size:13px;white-space:nowrap}
.toolbar-button:hover,#downloads summary:hover{color:var(--text);border-color:var(--muted)}
#resume-design{height:32px}
#downloads{position:relative}
#downloads summary{list-style:none}
#downloads summary::-webkit-details-marker{display:none}
.download-menu{position:absolute;right:0;top:40px;z-index:25;width:300px;max-height:60vh;overflow:auto;padding:8px;background:var(--raised);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 18px 50px #000a}
.download-menu a{display:block;padding:8px 10px;border-radius:var(--radius-sm);text-decoration:none;font-size:13px;color:var(--text-2)}
.download-menu a:hover{background:var(--raised-2);color:var(--text)}
.download-menu .bundle-link{font-weight:600;color:var(--text);background:var(--raised-2);margin-bottom:6px}
.download-row{display:flex;align-items:center;gap:4px;padding:4px 10px;border-top:1px solid var(--line);font-size:13px}
.download-row>span{flex:1;min-width:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.download-row a{padding:4px 6px;font-family:var(--mono);font-size:12px}

.workspace-modes{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 20px;border-bottom:1px solid var(--line);flex-shrink:0}
.workspace-tabs{display:flex;gap:4px;align-self:stretch}
.workspace-tabs button{position:relative;padding:0 12px;font-size:14px;font-weight:500;color:var(--muted)}
.workspace-tabs button:hover:not(:disabled){color:var(--text)}
.workspace-tabs button[aria-selected=true]{color:var(--text)}
.workspace-tabs button[aria-selected=true]::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--amber)}
.workspace-tabs #mode-function{color:var(--faint);font-weight:400}
.workspace-tabs #mode-function[aria-selected=true]{color:var(--text)}
.mode-actions{display:flex;align-items:center;gap:8px}
.render-mode,.explode-toggle{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--raised);color:var(--text-2);font-size:13px;white-space:nowrap}
.render-mode:hover,.explode-toggle:hover:not(:disabled){color:var(--text);border-color:var(--muted)}
.render-mode[aria-pressed=true]{color:var(--cyan);border-color:#6fd6e866}
.explode-toggle[aria-pressed=true]{color:var(--amber);border-color:#f2a65a80;background:var(--amber-wash)}
.explode-toggle span{font-size:15px;line-height:1}

/* ---------- 3D viewer ---------- */
.viewer{flex:1;position:relative;min-height:360px;overflow:hidden;isolation:isolate;background:radial-gradient(120% 90% at 50% 38%,#16212c 0,var(--bg) 62%)}
#canvas{display:block;width:100%;height:100%;touch-action:none}
.empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px 60px;pointer-events:none}
.empty-state h2{font:500 26px/1.25 var(--display);letter-spacing:-.02em;color:var(--text-2);margin:0 0 8px}
.empty-state p{margin:0;color:var(--muted);font-size:14px}
.canvas-top{position:absolute;top:14px;left:20px;right:20px;display:flex;justify-content:flex-end;pointer-events:none;z-index:2}
.view-badge{display:none}
.save-status{font-size:12px;color:var(--muted)}
.step-overlay{position:absolute;top:16px;left:20px;max-width:min(60%,520px);pointer-events:none;z-index:2;padding:10px 14px;border-radius:var(--radius);background:#0b1117cc;border:1px solid var(--line);backdrop-filter:blur(8px)}
.step-kicker{display:block;font-size:12px;font-weight:600;color:var(--cyan)}
.step-kicker:empty{display:none}
.step-overlay h3{margin:2px 0 0;font-size:15px;font-weight:500;line-height:1.4;color:var(--text)}
.step-overlay h3:empty,.step-evidence:empty{display:none}
.step-evidence{display:block;margin-top:4px;font-size:12px;color:var(--muted)}
.step-evidence.clear{color:var(--ok)}.step-evidence.collision{color:var(--warn)}
.live-status{position:absolute;left:20px;top:16px;z-index:4;width:min(360px,calc(100% - 40px));padding:12px 14px;border-radius:var(--radius);background:#0b1117e6;border:1px solid var(--line-strong);backdrop-filter:blur(8px);pointer-events:none}
.live-status-heading{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--text)}
.live-indicator{width:8px;height:8px;border-radius:50%;background:var(--cyan);animation:breathe 1.4s ease-in-out infinite;flex-shrink:0}
.live-status:not(.is-live) .live-indicator{animation:none;background:var(--muted)}
#live-elapsed{margin-left:auto;font:12px var(--mono);color:var(--muted)}
.live-status-body{display:flex;flex-direction:column;gap:2px;margin-top:6px}
#live-count{font-size:13px;font-weight:500;color:var(--text-2)}
#live-detail{font-size:13px;color:var(--muted)}
.viewer:has(.live-status:not([hidden])) .step-overlay{display:none}
.view-tools{position:absolute;right:16px;bottom:16px;z-index:3;display:flex;align-items:center;gap:2px;padding:4px;border-radius:var(--radius);background:#0b1117e6;border:1px solid var(--line-strong);backdrop-filter:blur(8px)}
.view-tools button{height:30px;padding:0 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-2)}
.view-tools button:hover:not(:disabled){background:var(--raised-2);color:var(--text)}
.view-tools button[aria-pressed=true]{background:var(--amber-wash);color:var(--amber)}
.explode-label{display:flex;align-items:center;gap:8px;padding:0 8px 0 10px;margin-left:4px;border-left:1px solid var(--line-strong);font-size:13px;color:var(--text-2)}
.explode-label input{width:90px;accent-color:var(--amber)}
.explode-label output{font:12px var(--mono);color:var(--muted);min-width:34px}
.canvas-controls{position:absolute;left:16px;bottom:16px;z-index:3;display:flex;gap:6px}
.canvas-controls button{height:32px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:#0b1117e6;color:var(--text-2);font-size:13px}
.canvas-controls button:hover{color:var(--text)}
.canvas-controls button[aria-pressed=false]{color:var(--faint)}
.dimensions{position:absolute;left:20px;bottom:58px;z-index:2;font:12px var(--mono);color:var(--muted);pointer-events:none}
.part-labels{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.part-labels svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.viewport-label{position:absolute;padding:6px 9px;border-radius:var(--radius-sm);background:#0b1117d9;border:1px solid var(--line);font-size:12px;line-height:1.4;color:var(--text-2);white-space:nowrap}
.viewport-label.selected{border-color:#f2a65a80}
.part-callout-id{display:none}
.viewport-label .part-callout-name{display:block;font-size:13px;font-weight:600;color:var(--text);max-width:150px;overflow:hidden;text-overflow:ellipsis}
.part-callout-meta{display:block;font:12px var(--mono);color:var(--muted);margin-top:1px}
.technical-leader{stroke:#6fd6e8;stroke-width:1;fill:none;opacity:.45}
.technical-leader.selected{stroke:var(--amber);opacity:.8}
.part-labels circle{fill:var(--cyan)}

/* ---------- assembly ---------- */
.assembly-player{flex-shrink:0;border-top:1px solid var(--line);background:var(--panel)}
.assembly-summary{display:flex;align-items:center;gap:12px;padding:10px 20px;list-style:none;font-size:13px;font-weight:600;color:var(--text-2);user-select:none}
.assembly-summary::-webkit-details-marker{display:none}
.assembly-summary::before{content:"▸";color:var(--muted);transition:transform .15s}
.assembly-player[open] .assembly-summary::before{transform:rotate(90deg)}
.summary-hint{font:12px var(--mono);color:var(--muted);font-weight:400}
.assembly-content{padding:0 20px 14px;max-height:280px;overflow:auto}
.playback-row{display:flex;align-items:center;gap:12px}
.transport{display:flex;align-items:center;gap:4px}
.transport button{height:32px;min-width:32px;padding:0 8px;border-radius:var(--radius-sm);font-size:16px;color:var(--text-2)}
.transport button:hover{background:var(--raised)}
.transport .play-button{display:inline-flex;align-items:center;gap:7px;padding:0 12px;font-size:13px;background:var(--raised-2);color:var(--text)}
.timeline{flex:1;accent-color:var(--amber)}
#playback-speed{height:30px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--raised);font-size:12px}
.step-list{display:flex;gap:6px;overflow-x:auto;margin-top:12px;padding-bottom:6px}
.step-card{flex:0 0 200px;display:grid;grid-template-columns:24px 1fr;gap:3px 8px;padding:10px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--raised);text-align:left;color:var(--text-2)}
.step-card:hover{border-color:var(--line-strong)}
.step-card.active{border-color:#f2a65a80;background:var(--amber-wash)}
.step-number{grid-row:1/3;font:12px var(--mono);color:var(--muted)}
.step-card.complete .step-number{color:var(--ok)}
.step-card-action{font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.step-card-evidence{font-size:12px;color:var(--muted)}
.step-card-evidence.clear{color:var(--ok)}.step-card-evidence.collision{color:var(--warn)}
.step-description{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;margin-top:8px}
.step-description p{margin:0;font-size:13px;color:var(--muted)}
.step-description p:empty{display:none}
.step-description #step-unresolved{color:var(--warn)}
.step-description #path-disclaimer{grid-column:1/-1;font-size:12px;color:var(--faint)}
.refinement-panel,.collision-inspector{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0;padding:10px 12px;border-radius:var(--radius);border:1px solid #e9b56c55;background:#e9b56c12;color:var(--warn);font-size:13px}
.collision-inspector{display:block}
.refinement-panel p{margin:2px 0 0;color:var(--text-2)}
.refinement-panel button{flex-shrink:0;height:32px;padding:0 12px;border-radius:var(--radius-sm);background:var(--warn);color:var(--amber-ink);font-weight:600}
.collision-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}
.collision-heading button,.collision-part-names button{color:var(--warn);text-decoration:underline;text-underline-offset:3px}
.collision-pair{display:flex;align-items:center;gap:10px;padding:4px 0}
.collision-part-names{flex:1;min-width:0}
.collision-volume{font:12px var(--mono)}
.inspect-collision{height:28px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid #e9b56c55;color:var(--warn)}
#collision-pairs{max-height:120px;overflow:auto}

/* ---------- evidence drawer ---------- */
.evidence{position:absolute;top:60px;right:0;bottom:0;z-index:15;width:min(460px,100%);overflow:auto;padding:18px 20px 28px;background:var(--panel);border-left:1px solid var(--line-strong);box-shadow:-20px 0 50px #0008;font-size:14px;color:var(--text-2)}
.evidence-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.evidence-head h3{margin:0;font:600 17px/1.3 var(--display);color:var(--text)}
.evidence-lede{font-size:13px;color:var(--muted);margin:8px 0 16px}
.evidence h3{font-size:14px;font-weight:600;color:var(--text);margin:0 0 6px}
.evidence section+section,#review-items>section{margin-top:16px}
.evidence ul,.evidence ol{margin:0;padding-left:18px}.evidence li+li{margin-top:4px}
.evidence p{margin:0 0 6px}
.design-findings{display:flex;flex-direction:column;gap:12px;padding:12px 14px;border-radius:var(--radius);background:var(--raised);border:1px solid var(--line)}
.design-findings [data-form-findings]{color:var(--warn)}
.design-findings details summary{color:var(--muted);font-size:13px}

/* ---------- notices ---------- */
.notice{position:absolute;top:118px;left:20px;right:20px;z-index:16;display:flex;gap:14px;padding:12px 14px;border-radius:var(--radius);border:1px solid #e9b56c55;background:#1c1810f2;color:#f3d9b0;font-size:14px;line-height:1.5;box-shadow:0 10px 30px #0007}
.notice.error{border-color:#f08c7e66;background:#1f1312f2;color:#f8c4bb}
.notice span{flex:1}
.notice button{font-size:20px;line-height:1;align-self:flex-start;color:inherit;opacity:.8}

/* ---------- phone AR dialog ---------- */
.ar-dialog{border:1px solid var(--line-strong);border-radius:16px;padding:0;background:var(--raised);color:var(--text);width:min(420px,calc(100vw - 32px));box-shadow:0 30px 80px #000c}
.ar-dialog::backdrop{background:#0008;backdrop-filter:blur(3px)}
.ar-dialog-body{padding:22px}
.ar-dialog h2{margin:0 0 6px;font:600 20px/1.25 var(--display)}
.ar-dialog p{margin:0 0 12px;color:var(--text-2);font-size:14px}
.ar-qr{width:220px;margin:6px auto 12px;border-radius:12px;overflow:hidden}
.ar-qr svg{display:block;width:100%;height:auto}
.ar-url{text-align:center;font:12px var(--mono);overflow-wrap:anywhere}
.ar-url a{color:var(--cyan)}
.ar-dialog .ar-scope{font-size:12px;color:var(--muted)}
.ar-actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px}

/* ---------- panels shared by every tab ---------- */
.electronics-host{flex:1;min-height:360px;min-width:0;overflow:auto;background:var(--bg)}
.studio.electronics-active #viewer,.studio.electronics-active #assembly-player,.studio.electronics-active #render-mode{display:none!important}
.studio.electronics-active .explode-toggle{visibility:hidden}

/* ---------- small screens ---------- */
@media (max-width:1100px){.workspace{grid-template-columns:300px minmax(0,1fr)}.status-chip{max-width:260px}}
@media (max-width:820px){
  .workspace{display:flex;flex-direction:column;height:auto;min-height:calc(100dvh - 52px)}
  .studio{order:1;min-height:560px}.sidebar{order:2;border-right:0;border-top:1px solid var(--line)}
  .sidebar-scroll{overflow:visible}
  .studio-toolbar{flex-wrap:wrap;padding:10px 16px}.status-chip{order:3;max-width:100%}
  .workspace-modes{padding:0 10px;overflow-x:auto}.workspace-tabs button{padding:0 9px}
  .mode-actions .render-mode{display:none}
  .view-tools .explode-label{display:none}
  .step-description{grid-template-columns:1fr}
  .evidence{top:0;width:100%}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Engineering evidence stays separate from the visual model and frozen exports. */
.readiness-host{flex:1;min-height:0;overflow:auto;padding:25px;background:#07131c;scrollbar-color:#315263 transparent}
.readiness-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #284351;padding-bottom:20px}
.readiness-heading h2{font-size:22px;font-weight:500;margin:10px 0 0}.readiness-heading .primary{white-space:nowrap}
.readiness-message{font-size:12px;color:#9bb8c4;line-height:1.7;margin:18px 0}
.readiness-summary{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:18px;background:#18241f;border:1px solid #5f6043;border-radius:4px;font-size:12px;color:#d7d1b7}.readiness-summary a{margin-left:auto;text-decoration:none}
.readiness-section{margin-top:28px}.readiness-section h3{font-size:15px;color:#c3eaf4;font-weight:500}.readiness-subtitle{font-size:11px;color:#819fab;line-height:1.7}
.readiness-finding{padding:15px 17px;margin:8px 0;background:#0c1b27;border:1px solid #243e4d;border-radius:4px}.readiness-finding-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}.readiness-status{font-size:10px;padding:4px 7px;border:1px solid #746141;color:#e2c797;border-radius:2px}.readiness-status.failed{color:#ffb19e;border-color:#a85b4a}.readiness-finding p{font-size:12px;line-height:1.75;color:#a5bec9;overflow-wrap:anywhere;margin:10px 0}.readiness-parts{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.readiness-parts button{padding:6px 9px;background:#173747;color:#b2ebf6;border:1px solid #315c6f;border-radius:3px;font-size:11px}.readiness-finding details,.readiness-raw{font-size:11px;color:#7194a4;margin-top:12px}.readiness-finding summary,.readiness-raw summary{cursor:pointer}.readiness-finding pre,.readiness-raw pre{font:10px/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;max-height:330px;overflow:auto;color:#8eaeba}
.studio.readiness-active #viewer,.studio.readiness-active #assembly-player,.studio.readiness-active #render-mode{display:none!important}.studio.readiness-active .explode-toggle{visibility:hidden}
@media(max-width:720px){.readiness-host{min-height:440px;padding:18px}.readiness-heading h2{font-size:18px}.readiness-summary a{margin:0}.workspace-tabs{gap:12px}.workspace-modes{gap:8px}.workspace-tabs button{font-size:10px}.explode-toggle{padding:7px;font-size:9px}.readiness-heading{align-items:flex-start}}

.readiness-observations{margin-top:14px}.readiness-observations>summary{cursor:pointer;padding:12px;color:#8cb5c6;font-size:12px;border:1px solid #243e4d;border-radius:3px}

.readiness-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.readiness-metrics>div{display:flex;flex-direction:column;gap:10px;padding:16px;background:#0c202c;border:1px solid #28414e;border-radius:3px}.readiness-metrics span{font-size:11px;color:#829fad}.readiness-metrics strong{font-size:18px;font-weight:500;color:#b9dce8}.readiness-metrics small{font-size:10px;color:#75909e}
@media(max-width:720px){.readiness-metrics{grid-template-columns:1fr}.readiness-metrics strong{font-size:16px}}
.simulation-section{margin:24px 0}.simulation-experiment{padding:20px;margin:14px 0;border:1px solid #30515f;background:linear-gradient(135deg,#102936,#0a1925);border-radius:5px}.simulation-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.simulation-experiment h4{font-size:18px;font-weight:500;color:#d4eff4;margin:18px 0 8px}.simulation-cases{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 10px}.simulation-cases button{border:1px solid #315464;background:#10232e;color:#a1baca;font-size:11px;padding:8px 10px;border-radius:3px}.simulation-cases button[aria-pressed=true]{background:#184a58;border-color:#67bcca;color:#d6f7fc}.simulation-case-summary{font-size:12px;color:#afc9d1;line-height:1.7}.simulation-metrics{display:flex;gap:24px;flex-wrap:wrap;padding:14px 0}.simulation-metrics>div{display:flex;gap:7px;flex-direction:column}.simulation-metrics span,.simulation-metrics small{font-size:10px;color:#85a7b6}.simulation-metrics strong{font:19px var(--mono);color:#adf1ec}.simulation-trace{margin:12px 0;background:#071722;border:1px solid #1c3848;padding:8px;border-radius:4px}.simulation-trace svg{width:100%;display:block}.simulation-trace figcaption{display:flex;gap:14px;flex-wrap:wrap;font-size:10px;color:#8faebc;padding:0 10px 8px}.simulation-experiment audio{width:100%;height:36px;max-width:480px}

.readiness-handoff{margin:20px 0;padding:20px;border:1px solid #31515a;border-radius:12px;background:#0e1d25}
.readiness-handoff h3{margin-top:0}.readiness-handoff p{line-height:1.65;color:#b8cbd0}
.readiness-handoff a:not([hidden]){display:block;margin-top:16px;color:#9bebdc;text-decoration:underline;text-underline-offset:4px}

.virtual-preparation{padding:24px 26px;border-bottom:1px solid #254451;color:#a6c9cf;background:linear-gradient(130deg,#102b36,#081721)}
.virtual-preparation h2{font-size:19px;font-weight:500;margin:0 0 12px}.virtual-preparation p{font-size:12px;line-height:1.8;max-width:85ch;margin:0;color:#85a6b1}
.virtual-preparation button{margin-top:14px;padding:9px 13px;background:#112f3b;color:#a9dfdb;border:1px solid #385d6b;border-radius:5px;cursor:pointer}

.studio.use-circuit #viewer{display:block!important;margin:0 min(530px,49%) 0 0!important;min-height:320px;flex:1}
.studio.use-circuit #use-view{position:absolute;inset:115px 0 31px auto;width:min(530px,49%);overflow:auto;pointer-events:auto;background:#081721;border-left:1px solid #25424e}
.studio.use-circuit #use-view>:not(.use-physics-host){display:none!important}
.studio.use-circuit .function-root{padding:18px}.studio.use-circuit .function-root header{flex-direction:column;align-items:start}.studio.use-circuit .function-root h2{font-size:19px}.studio.use-circuit .function-metrics{grid-template-columns:1fr}.studio.use-circuit .function-columns{grid-template-columns:1fr}
@media(max-width:820px){.studio.use-circuit{min-height:1100px}.studio.use-circuit #viewer{margin:0!important;min-height:310px;flex:0 0 310px}.studio.use-circuit #use-view{position:relative;inset:auto;width:100%;box-sizing:border-box;min-height:520px;flex:1;border-left:0;border-top:1px solid #25424e}}
.virtual-preparation.is-ready{padding:12px 26px;display:flex;align-items:baseline;gap:20px;flex-wrap:wrap}.virtual-preparation.is-ready h2{font-size:13px;margin:0}.virtual-preparation.is-ready details{flex:1;min-width:150px;font-size:11px}.virtual-preparation.is-ready summary{cursor:pointer;color:#85a6b1}.virtual-preparation.is-ready p{margin-top:10px}

/* Shell overrides of older panel styles that load after this file. */
.evidence .design-findings{margin:0 0 4px;max-height:none;border:1px solid var(--line);background:var(--raised);font-size:13px;color:var(--text-2)}
.evidence .design-findings h3{color:var(--text);font-size:14px}
.evidence .design-findings [data-form-findings] h3,.evidence .design-findings [data-form-findings] li{color:var(--warn)}
.part-labels .viewport-label{width:auto!important;max-width:220px!important}

/* Home legibility (the carousel itself is unchanged) */
.home-active .home-demo,.home-active .home-phase{font-size:11px!important;letter-spacing:.4px!important;color:#8fb0c6!important}
.home-active .home-pointer-hint{font-size:11px!important;color:#7fa2bb!important}
.home-active .home-shortcut{font-size:10px!important}
.home-active .home-suggestions>span{font-size:12px!important}
.home-active .home-suggestions button{font-size:13px!important}
.home-active .project-button{font-size:14px!important}
@media (max-width:600px){#provider-text{display:none}.topbar{gap:2px;padding:0 10px}.wordmark{margin-right:6px}}
@media (max-width:820px){.part-labels .viewport-label{max-width:150px!important}.viewport-label .part-callout-meta{display:none}}
/* Study timing panels are for consented local studies only (?study=1). */
body[data-study=off] #creation-timings{display:none}
.ar-qr-none{padding:18px;background:var(--panel-2,#16202a);color:var(--muted,#9fb0bf);font-size:13px;line-height:1.5;text-align:center}

/* Where your design stands (web/outcome.js) */
.outcome{margin-top:18px;padding:16px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--raised);display:flex;flex-direction:column;gap:12px}
.outcome-head h2{margin:4px 0 6px;font-size:17px;font-family:var(--display)}
.outcome[data-state=works] .outcome-head h2{color:var(--ok)}
.outcome[data-state=needs_change] .outcome-head h2{color:var(--bad)}
.outcome[data-state=not_checked] .outcome-head h2,.outcome[data-state=partly_checked] .outcome-head h2,.outcome[data-state=design_only] .outcome-head h2,.outcome[data-state=draft] .outcome-head h2{color:var(--warn)}
.outcome-sub{margin:0;font-size:13px;line-height:1.5;color:var(--text-2)}
.outcome-meta{margin:0;font-size:12px;color:var(--muted)}
.outcome-reqs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.outcome-req{padding:10px 12px;border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--line)}
.outcome-req-top{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45}
.outcome-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--raised-2);color:var(--muted)}
.outcome-badge.works{background:#7fd1b922;color:var(--ok)}.outcome-badge.does_not_work{background:#f08c7e22;color:var(--bad)}.outcome-badge.not_checked{background:#e9b56c22;color:var(--warn)}
.outcome-req-text{color:var(--text);min-width:0;overflow-wrap:anywhere}
.outcome-reason{margin:6px 0 0;font-size:12px;color:var(--muted);line-height:1.45}
.outcome-who{display:inline-block;margin-left:2px;font-size:11px;padding:0 6px;border-radius:999px;border:1px solid var(--line-strong);color:var(--text-2)}
.outcome-who.design{border-color:var(--bad);color:var(--bad)}
.outcome details{margin-top:6px;font-size:12px;color:var(--muted)}
.outcome details p{margin:6px 0 0;line-height:1.45;overflow-wrap:anywhere}
.outcome-actions{display:flex;flex-wrap:wrap;gap:8px}
.outcome-actions .secondary{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);color:var(--text);font-size:13px}
.outcome-actions .primary.compact{height:32px;font-size:13px}
.outcome-scope{margin:0;font-size:11px;color:var(--faint)}

/* Real parts the engine is reading before any geometry exists (web/early-parts.js) */
.early-parts-host{margin-top:18px}
.early-parts-heading{margin:0 0 8px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.early-parts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:520px}
.early-parts li{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--line-strong);background:var(--raised);color:var(--text-2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:early-in .4s ease-out}
@keyframes early-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.early-parts li{animation:none}}
.beta-chip{display:inline-block;margin-left:6px;padding:1px 5px;border:1px solid var(--line-strong);border-radius:4px;font:600 9px/1.4 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--amber);vertical-align:2px}
.dock-button .beta-chip{margin-left:4px}
.unit-switch{position:absolute;left:20px;top:16px;z-index:4;display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:#0b1117d9;backdrop-filter:blur(10px);max-width:calc(100% - 40px);overflow-x:auto}
.unit-switch button{padding:5px 12px;border-radius:999px;font-size:12.5px;color:var(--text-2);white-space:nowrap}
.unit-switch button[aria-pressed="true"]{background:var(--raised-2);color:var(--text)}
.viewer:has(.live-status:not([hidden])) .unit-switch{display:none}
.studio.use-active .unit-switch{display:none}
.build-confirm{max-width:440px;padding:22px 24px;border:1px solid var(--line-strong);border-radius:14px;background:var(--panel);color:var(--text-2)}.build-confirm::backdrop{background:#000a}.build-confirm h2{margin:0 0 10px;font:500 20px/1.3 var(--display);color:var(--text)}.build-confirm p{margin:0 0 10px;line-height:1.55}.build-confirm strong{color:var(--text)}.build-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.build-confirm-actions button{padding:8px 16px;border-radius:var(--radius-sm)}.build-confirm-actions .secondary{border:1px solid var(--line-strong)}
.wordmark{white-space:nowrap}
.part-tag.source-estimated{color:var(--warn)}
.part-tag.source-jlc_smt{color:var(--ok);font-family:var(--mono);font-size:11px}
.part-source{font:12px/1.45 var(--mono);color:var(--muted)}
.part-source.source-estimated{color:var(--warn)}
.make-buy{margin-top:18px}
.make-buy h3{font-size:14px;margin:0 0 8px}
.make-buy-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px}
.make-buy-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;padding:9px 12px;font-size:13px;border-top:1px solid var(--line)}
.make-buy-list li:first-child{border-top:0}
.make-buy-list .part-source{font-size:12px}
.make-buy-note{margin:8px 0 0;font-size:12px;color:var(--faint)}
