.lab-workspace { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); min-height: 540px; border: 1px solid var(--line); background: var(--surface); }
.lab-controls { padding: clamp(18px,3vw,30px); border-right: 1px solid var(--line); }
.lab-preview { padding: clamp(18px,3vw,34px); background: var(--bg-elevated); }
.lab-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.lab-section { padding: 18px 0; border-top: 1px solid var(--line); }
.lab-section:first-child { border-top: 0; padding-top: 0; }
.code-surface { font-family: var(--font-mono); font-size: 13px; line-height: 1.6; padding: 16px; border: 1px solid var(--line); background: var(--surface-2); white-space: pre-wrap; overflow-wrap: anywhere; }
.lab-page-inner { display: grid; gap: 20px; }
.lab-toolbar > div:first-child { max-width: 760px; }
.lab-toolbar h1 { margin: 10px 0 8px; font-size: var(--fs-5); }
.lab-toolbar p { margin: 0; }
.lab-control-stack { display: grid; gap: 18px; }
.lab-field small { color: var(--text-3); font-size: 11px; }
.lab-prompt-output { min-height: 260px; margin: 14px 0 26px; }
.lab-preview h2 { margin: 26px 0 12px; font-size: var(--fs-3); }
.lab-issues { display: grid; gap: 8px; }
.lab-issue { padding: 13px 14px; border-left: 2px solid var(--line-strong); background: var(--surface); }
.lab-issue--high { border-color: var(--danger); }
.lab-issue--medium { border-color: var(--accent); }
.lab-issue--ok { border-color: var(--signal); }
.lab-issue strong { font-size: 12px; text-transform: capitalize; }
.lab-issue p { margin: 5px 0 0; font-size: 12px; }
.provider-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.bridge-textarea { font-family: var(--font-mono); font-size: 12px; }
.workflow-canvas { display: grid; gap: 0; margin: 16px 0 26px; }
.workflow-node { min-height: 64px; display: grid; grid-template-columns: 46px 1fr; align-items: center; gap: 12px; border-top: 1px solid var(--line); }
.workflow-node > span { color: var(--accent); font: 700 10px/1 var(--font-mono); }
.workflow-node div { display: grid; gap: 4px; }
.workflow-node small, .workflow-fallback small { color: var(--text-3); font-size: 10px; }
.workflow-fallback { margin-top: 18px; padding: 14px; border: 1px dashed var(--accent); display: grid; gap: 6px; }
.character-scene-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 14px 0 20px; }
.image-reference-preview { min-height: 250px; display: grid; place-items: center; margin: 14px 0 22px; border: 1px solid var(--line); background-image: linear-gradient(45deg,var(--surface-2) 25%,transparent 25%),linear-gradient(-45deg,var(--surface-2) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--surface-2) 75%),linear-gradient(-45deg,transparent 75%,var(--surface-2) 75%); background-size: 24px 24px; background-position: 0 0,0 12px,12px -12px,-12px 0; overflow: hidden; }
.image-reference-preview img { width: 100%; max-height: 420px; object-fit: contain; }
.image-reference-preview > small { display: block; width: 100%; padding: 8px 12px; background: var(--surface); color: var(--text-3); }
.image-placeholder { max-width: 280px; text-align: center; display: grid; gap: 8px; padding: 24px; }
.image-placeholder span { color: var(--accent); font: 700 10px/1 var(--font-mono); }
.image-placeholder small { color: var(--text-3); }
.video-timeline { display: grid; grid-template-columns: 1fr 24px 1fr 24px 1fr; align-items: center; gap: 8px; margin: 16px 0 28px; }
.video-timeline > div { min-height: 120px; padding: 14px; border: 1px solid var(--line); background: var(--surface); display: grid; align-content: space-between; gap: 14px; }
.video-timeline small { color: var(--text-3); font: 700 9px/1 var(--font-mono); }
.video-timeline strong { font-size: 12px; }
.video-timeline > i { height: 1px; background: var(--accent); }
.labs-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--line); }
.lab-card { min-height: 280px; display: grid; grid-template-columns: 74px 1fr; gap: 24px; padding: clamp(24px,4vw,42px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lab-card:nth-child(even) { border-right: 0; }
.lab-card:hover { background: var(--surface-2); }
.lab-card__glyph { width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid var(--line); font: 700 20px/1 var(--font-mono); color: var(--accent); }
.lab-card--learned .lab-card__glyph { background: var(--accent); color: #171816; border-color: var(--accent); }
.lab-card h2 { margin: 12px 0 8px; font-size: var(--fs-4); }
