.focus-section { padding: 34px 0 88px; }
.focus-section.frame-wrap { margin-inline:max(calc(var(--frame-x) + 8px),calc(var(--wrap-x) - 36px)); }
.focus-heading-row { max-width:680px; margin:0 auto 36px; text-align:center; }
.focus-heading-row h2 { margin:0; font-size:clamp(32px,4.4vw,54px); line-height:1.05; letter-spacing:-.04em; font-weight:600; }
.focus-heading-row p { max-width:540px; margin:18px auto 0; font-size:16px; line-height:1.6; color:var(--ink-soft); }
.focus-morph-words > span { display:inline-block; white-space:nowrap; }
.focus-morph-slot { display:inline-block; position:relative; vertical-align:baseline; }
.focus-morph-slot::before { content:attr(data-letter); visibility:hidden; }
.focus-morph-slot > span { position:absolute; top:0; left:50%; width:1.2em; margin-left:-.6em; text-align:center; transform-origin:center; }
.focus-morph-slot > .focus-morph-symbol { opacity:0; top:.12em; height:.8em; }
.focus-heading-icon { display:block; width:.8em; height:.8em; margin:auto; background:currentColor; mask:var(--heading-symbol) center / contain no-repeat; -webkit-mask:var(--heading-symbol) center / contain no-repeat; }
.services-split { white-space:nowrap; }
.services-half { display:inline-block; }
.services-handshake-anchor { display:inline-block; width:0; position:relative; vertical-align:baseline; }
.services-handshake { position:absolute; width:.8em; height:.8em; left:-.4em; bottom:-.05em; opacity:0; transform:scale(.7); transform-origin:center; }
.focus-carousel-nav { display:flex; justify-content:center; margin-top:24px; }
.focus-arrows { display:flex; align-items:center; gap:8px; }
.focus-arrows span { min-width:48px; text-align:center; font-size:12px; color:var(--ink-soft); }
.focus-arrows button { width:32px; height:32px; border:1px solid var(--rule-strong); border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; }
.focus-workspace { --fp:var(--paper); --fm:color-mix(in srgb,var(--paper) 95%,var(--ink)); --fl:color-mix(in srgb,var(--ink) 16%,transparent); position:relative; border:1px solid var(--fl); border-radius:20px; background:var(--fp); box-shadow:0 18px 40px -28px color-mix(in srgb,var(--ink) 40%,transparent); overflow:hidden; color:var(--ink); }
.focus-workspace button { font-family:inherit; cursor:pointer; color:inherit; }
.focus-workspace { max-width:1200px; height:660px; margin-inline:auto; display:flex; flex-direction:column; }
.focus-window-bar { flex-shrink:0; }
.focus-section button:focus-visible { outline:2px solid var(--accent-ink,var(--mustard)); outline-offset:3px; }
.focus-window-bar { display:flex; align-items:center; justify-content:space-between; padding:17px 24px; background:var(--fm); border-bottom:1px solid var(--fl); font-size:13px; }
.focus-window-name { display:flex; gap:10px; align-items:center; font-weight:600; }
.focus-window-name > i { font-size:20px; }
.focus-split { display:grid; grid-template-columns:1fr 1fr; flex:1; min-height:0; overflow:auto; }
.focus-data,.focus-models { padding:26px; min-width:0; }
.focus-models { border-left:1px solid var(--fl); }
.focus-pane-title { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:23px; }
.focus-pane-title h3 { margin:0; font-size:19px; font-weight:600; letter-spacing:-.03em; }
.focus-pane-title > span { font-size:11px; color:var(--ink-soft); }
.focus-source-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.focus-source-list button { display:flex; position:relative; flex-direction:column; align-items:flex-start; gap:10px; padding:14px 11px; border:1px dashed var(--fl); border-radius:10px; background:transparent; text-align:left; opacity:.5; transition:opacity .2s,border-color .2s; }
.focus-source-list button.is-connected { opacity:1; background:var(--fm); border:1px solid var(--fl); }
.focus-source-icon { font-size:25px; }
.focus-source-list b { display:block; font-size:13px; font-weight:500; }
.focus-source-list small { display:block; font-size:10px; color:var(--ink-soft); margin-top:3px; }
.focus-check { position:absolute; right:8px; top:9px; font-size:12px; }
.focus-flow { display:flex; position:relative; height:43px; margin:0 16.5%; border-bottom:1px solid var(--fl); border-radius:0 0 10px 10px; }
.focus-flow span { width:50%; border-left:1px solid var(--fl); }
.focus-flow span:last-of-type { width:0; }
.focus-flow i { position:absolute; top:33px; left:calc(50% - 9px); width:18px; background:var(--fp); text-align:center; font-style:normal; }
.focus-transform { display:flex; align-items:center; justify-content:center; gap:12px; margin:20px 0; font-size:12px; }
.focus-transform > i { color:var(--ink-soft); font-style:normal; }
.focus-transform > i:first-child { color:var(--accent-ink); font-size:17px; }
.focus-dataset { border:1px solid var(--fl); border-radius:10px; overflow:hidden; }
.focus-dataset-top { display:flex; gap:8px; justify-content:space-between; align-items:center; padding:13px 12px; border-bottom:1px solid var(--fl); background:var(--fm); font-size:11px; }
.focus-dataset-top b { font-size:10px; font-weight:500; white-space:nowrap; }
.focus-records > div { display:grid; grid-template-columns:24px 1fr 48px; gap:8px; padding:8px 12px; font-size:10px; border-top:1px solid color-mix(in srgb,var(--fl) 40%,transparent); }
.focus-records > div:first-child { color:var(--ink-soft); border:0; }
.focus-records > div > span:nth-child(2) { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.focus-vector { color:var(--accent-ink); letter-spacing:0; font-size:8px; overflow:hidden; }
.focus-empty { padding:16px; font-size:12px; color:var(--ink-soft); }
.focus-model-view { display:flex; align-items:center; justify-content:center; gap:24px; min-height:230px; }
.focus-image-frame { width:clamp(110px,14vw,172px); aspect-ratio:1; position:relative; flex:none; border-radius:8px; overflow:hidden; background:var(--fm); border:1px solid var(--fl); }
.focus-image-frame img { width:100%; height:100%; object-fit:cover; }
.focus-pixels { width:100%; height:100%; padding:10px; color:var(--accent-ink); }
.focus-detection { position:absolute; inset:14% 12% 22%; border:1px solid var(--mustard); border-radius:2px; }
.focus-layer-caption { display:flex; flex-direction:column; gap:9px; max-width:160px; }
.focus-layer-caption small { font-size:10px; color:var(--ink-soft); }
.focus-layer-caption strong { font-weight:500; font-size:21px; letter-spacing:-.03em; }
.focus-layer-caption > span { font-size:11px; line-height:1.5; color:var(--ink-soft); }
.focus-layer-buttons { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:20px; }
.focus-layer-buttons button { display:flex; flex-direction:column; align-items:center; gap:16px; background:transparent; border:1px solid transparent; border-radius:9px; padding:14px 4px 11px; font-size:11px; }
.focus-layer-buttons button[aria-pressed=true] { border-color:var(--fl); background:var(--fm); }
.focus-layer-stack { position:relative; width:30px; height:28px; display:block; }
.focus-layer-stack i { position:absolute; width:24px; height:24px; border:1px solid var(--ink-soft); border-radius:3px; background:var(--fp); transform:rotate(-12deg); }
.focus-layer-stack i:nth-child(2) { left:4px; top:-3px; }
.focus-layer-stack i:nth-child(3) { left:8px; top:-6px; background:var(--fm); }
.focus-layer-buttons button[aria-pressed=true] .focus-layer-stack i:last-child { background:var(--mustard); border-color:var(--mustard); }
.focus-model-footer { display:flex; justify-content:space-between; padding-top:24px; color:var(--ink-soft); font-size:11px; }
.focus-ops { flex:1; min-height:0; display:flex; flex-direction:column; }
.focus-ops-tabs { flex-shrink:0; }
.focus-ops-tabs { display:flex; gap:24px; padding:0 26px; border-bottom:1px solid var(--fl); }
.focus-ops-tabs button { padding:15px 0; border:0; border-bottom:2px solid transparent; background:transparent; font-size:12px; opacity:.55; }
.focus-ops-tabs button i { margin-right:8px; }
.focus-ops-tabs button[aria-pressed=true] { opacity:1; border-bottom-color:var(--accent-ink); }
.focus-registry,.focus-traces { display:grid; grid-template-columns:1fr 1.15fr; flex:1; min-height:0; overflow:auto; }
.focus-version-list,.focus-trace-list { padding:26px; border-right:1px solid var(--fl); }
.focus-version-list > button,.focus-trace-list > button { width:100%; display:flex; align-items:center; gap:12px; margin-bottom:8px; padding:16px 12px; text-align:left; background:transparent; border:1px solid transparent; border-radius:9px; }
.focus-version-list > button[aria-pressed=true],.focus-trace-list > button[aria-pressed=true] { background:var(--fm); border-color:var(--fl); }
.focus-version-list > button > i { font-size:22px; }
.focus-version-list b,.focus-trace-list b { display:block; font-size:12px; font-weight:500; }
.focus-version-list b em { font-size:10px; font-style:normal; color:var(--ink-soft); margin-left:5px; }
.focus-version-list small,.focus-trace-list small { display:block; margin-top:6px; font-size:10px; color:var(--ink-soft); }
.focus-badge { margin-left:auto; font-size:9px; border:1px solid var(--fl); padding:4px 6px; border-radius:4px; }
.focus-badge.is-production { background:var(--mustard); border-color:var(--mustard); color:#231c0d; }
.focus-version-detail,.focus-trace-detail { padding:26px; min-width:0; }
.focus-lineage { display:flex; align-items:center; gap:12px; font-size:12px; margin:24px 0; }
.focus-lineage > span { padding:10px; background:var(--fm); border-radius:6px; }
.focus-lineage b { margin-left:5px; font-weight:500; }
.focus-lineage > i { font-style:normal; color:var(--ink-soft); }
.focus-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:0 0 23px; }
.focus-metrics small { display:block; color:var(--ink-soft); font-size:10px; margin-bottom:6px; }
.focus-metrics b { font-size:clamp(19px,2.3vw,30px); letter-spacing:-.04em; font-weight:500; }
.focus-metrics b em { font-size:10px; font-style:normal; letter-spacing:0; }
.focus-artifacts { display:flex; flex-direction:column; gap:13px; font-size:11px; padding:18px 0; border-top:1px solid var(--fl); }
.focus-artifacts span { display:flex; align-items:center; gap:8px; }
.focus-artifacts span i:last-child { margin-left:auto; opacity:.5; }
.focus-promote { width:100%; display:flex; justify-content:space-between; align-items:center; padding:11px 14px; border:1px solid var(--fl); border-radius:6px; font-size:12px; background:var(--ink); color:var(--paper)!important; }
.focus-promote:disabled { opacity:.5; cursor:default; background:var(--fm); color:var(--ink)!important; }
.focus-production-status { display:block; font-size:10px; color:var(--ink-soft); margin-top:10px; }
.focus-trace-dot { width:6px; height:6px; flex:none; border-radius:50%; background:var(--accent-ink); }
.focus-trace-list > button em { margin-left:auto; font-size:10px; font-style:normal; white-space:nowrap; }
.focus-waterfall { padding:15px 0; border-top:1px solid var(--fl); border-bottom:1px solid var(--fl); }
.focus-waterfall button { width:100%; display:grid; grid-template-columns:52px 1fr 48px; gap:10px; align-items:center; padding:10px 6px; border:0; border-radius:4px; background:transparent; font-size:10px; text-align:left; }
.focus-waterfall button[aria-pressed=true] { background:var(--fm); }
.focus-time-track { display:block; height:16px; position:relative; background:repeating-linear-gradient(to right,var(--fl) 0 1px,transparent 1px 25%); }
.focus-time-track i { position:absolute; height:12px; top:2px; min-width:3px; background:var(--ink-soft); border-radius:2px; }
.focus-waterfall button[aria-pressed=true] .focus-time-track i { background:var(--mustard); }
.focus-waterfall small { text-align:right; font-size:9px; color:var(--ink-soft); }
.focus-span-detail { display:flex; justify-content:space-between; padding:15px 0; font-size:11px; gap:10px; }
.focus-span-detail b { font-weight:500; white-space:nowrap; }
.focus-output { padding:13px; border:1px solid var(--fl); border-radius:6px; font-size:12px; }
.focus-output small { display:block; font-size:9px; color:var(--ink-soft); margin-bottom:8px; }
.focus-output span { display:flex; gap:8px; align-items:center; }
.focus-demo-cursor { position:absolute; z-index:10; pointer-events:none; transition:top .45s ease,left .45s ease; filter:drop-shadow(0 2px 2px #0003); }
@media (max-width:850px) { .focus-source-list { gap:6px; } .focus-data,.focus-models,.focus-version-list,.focus-trace-list,.focus-version-detail,.focus-trace-detail { padding:20px; } .focus-model-view { gap:14px; } .focus-badge { font-size:8px; padding:3px; } }
@media (max-width:700px) {
  .focus-heading-row { margin-bottom:24px; }
  .focus-split,.focus-registry,.focus-traces { grid-template-columns:1fr; }
  .focus-models { border-left:0; border-top:1px solid var(--fl); }
  .focus-version-list,.focus-trace-list { border-right:0; border-bottom:1px solid var(--fl); }
  .focus-model-view { min-height:185px; } .focus-image-frame { width:145px; }
  .focus-layer-buttons { margin-top:15px; } .focus-workspace { border-radius:14px; height:820px; }
  .focus-window-bar { padding:16px; } .focus-metrics b { font-size:25px; }
}
@media (prefers-reduced-motion:reduce) { .focus-demo-cursor,.focus-source-list button { transition:none; } }

/* Pipeline workspace: movable cards on a quiet drafting surface. */
.focus-split { overflow:hidden; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.focus-data,.focus-models { display:flex; flex-direction:column; min-height:0; padding:0; }
.focus-data[hidden],.focus-models[hidden] { display:none; }
.focus-data > .focus-pane-title,.focus-models > .focus-pane-title { flex-shrink:0; padding:18px 22px; margin:0; border-bottom:1px solid var(--fl); }
.focus-models { min-height:0; overflow:auto; }
.focus-pane-actions { display:flex; gap:8px; }
.focus-pane-actions button,.focus-expand { display:grid; place-items:center; width:28px; height:28px; padding:0; border:1px solid var(--fl); border-radius:5px; background:var(--fp); font-size:15px; }
.focus-pane-actions button:hover,.focus-expand:hover { background:var(--fm); }
.focus-layout-data { grid-template-columns:minmax(0,1fr) 46px; }
.focus-layout-models { grid-template-columns:46px minmax(0,1fr); }
.focus-pane-rail { display:flex; align-items:center; flex-direction:column; justify-content:center; gap:22px; padding:12px 0; border:0; background:var(--fm); }
.focus-pane-rail > span { writing-mode:vertical-rl; font-size:13px; letter-spacing:.04em; }
.focus-pane-rail:hover { background:color-mix(in srgb,var(--mustard) 12%,var(--fp)); }
.focus-layout-data .focus-pane-rail { border-left:1px solid var(--fl); }
.pipeline-canvas { flex:1; min-height:0; position:relative; overflow:auto; isolation:isolate; background-color:var(--fp); background-image:radial-gradient(circle,color-mix(in srgb,var(--ink) 23%,transparent) .8px,transparent 1px); background-size:9px 9px; }
.pipeline-space { position:relative; min-width:100%; min-height:100%; }
.pipeline-scene { position:absolute; left:50%; top:50%; width:800px; height:540px; transform-origin:center; }
.pipeline-row-label { position:absolute; left:18px; font-size:13px; font-weight:500; color:var(--ink-soft); }
.pipeline-feature-group { position:absolute; left:18px; top:281px; width:764px; height:113px; border:1px solid var(--fl); border-radius:18px; background:var(--fm); }
.pipeline-feature-group > span { position:absolute; left:0; top:9px; width:100%; text-align:center; font-size:12px; color:var(--ink-soft); }
.focus-pane-name { border:0; background:transparent; padding:0; font:inherit; display:flex; gap:7px; align-items:center; }
.focus-pane-name > i { font-size:12px; opacity:.55; }
.focus-pane-actions button:disabled { opacity:.3; cursor:default; }
.pipeline-connections { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.pipeline-connections path { fill:none; stroke:var(--ink-soft); stroke-width:1.5; vector-effect:non-scaling-stroke; opacity:.5; transition:stroke .25s ease,opacity .25s ease; }
.pipeline-connections path.is-active { stroke:var(--accent-ink); opacity:1; }
.pipeline-node { position:absolute; width:164px; height:62px; transform:translate(-50%,-50%); padding:9px 10px; text-align:left; border:1px solid var(--rule-strong); border-radius:8px; background:var(--fm); box-shadow:0 5px 14px #0002; cursor:grab!important; touch-action:none; user-select:none; }
.pipeline-node.node-ingestion { background:color-mix(in srgb,#7060bc 24%,var(--fp)); border-color:color-mix(in srgb,#8d7adb 55%,var(--fp)); }
.pipeline-node.node-feature,.pipeline-node.node-store { background:color-mix(in srgb,#149078 22%,var(--fp)); border-color:color-mix(in srgb,#40b09d 48%,var(--fp)); }
.pipeline-node.node-vector { background:color-mix(in srgb,#c95a32 25%,var(--fp)); border-color:color-mix(in srgb,#d7835e 60%,var(--fp)); }
.pipeline-node:active { cursor:grabbing!important; z-index:3; }
.pipeline-node { transition:border-color .25s ease,box-shadow .25s ease; }
.pipeline-node.is-selected { border-color:var(--accent-ink); box-shadow:0 0 0 1px color-mix(in srgb,var(--mustard) 35%,transparent),0 5px 14px #0002; z-index:2; }
.pipeline-node-top { display:flex; align-items:center; gap:10px; }
.pipeline-node-top img { width:23px; height:23px; object-fit:contain; pointer-events:none; }
.pipeline-node-top > i { font-size:22px; width:23px; }
.pipeline-node-top img.logo-mono { filter:contrast(0) brightness(1.6); }
.pipeline-node-top small { display:block; color:var(--ink-soft); font-size:9px; letter-spacing:.06em; text-transform:uppercase; line-height:1.2; }
.pipeline-node-top b { display:block; font-size:13px; line-height:1.5; font-weight:500; }
.pipeline-node-summary { display:block; margin-top:5px; font-size:10px; color:var(--ink-soft); white-space:nowrap; }
.pipeline-port { position:absolute; left:calc(50% - 3px); width:6px; height:6px; border:1px solid var(--ink-soft); background:var(--fp); border-radius:50%; }
.port-in { top:-4px; } .port-out { bottom:-4px; }
@media (max-width:700px) {
  .focus-split { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(380px,1fr) minmax(380px,1fr); overflow:auto; }
  .focus-layout-data { grid-template-columns:minmax(0,1fr) 40px; grid-template-rows:minmax(0,1fr); overflow:hidden; }
  .focus-layout-models { grid-template-columns:40px minmax(0,1fr); grid-template-rows:minmax(0,1fr); overflow:hidden; }
  .focus-layout-models .focus-models { border-top:0; }
  .focus-data > .focus-pane-title,.focus-models > .focus-pane-title { padding:12px 16px; }
}
@media (prefers-reduced-motion:reduce) { .pipeline-node,.pipeline-connections path { transition:none; } }

.focus-canvas-wrap { position:relative; flex:1; min-height:0; display:flex; }
.focus-canvas-wrap > .focus-pane-actions { position:absolute; bottom:14px; right:14px; z-index:4; padding:5px; gap:4px; border:1px solid var(--fl); border-radius:8px; background:var(--fp); box-shadow:0 3px 12px #0002; }
.focus-canvas-wrap > .focus-pane-actions button { width:30px; height:30px; border:0; }
.pipeline-shared-link { stroke:var(--ink-soft); stroke-width:1; stroke-dasharray:5 4; opacity:.65; }
.pipeline-weight-label { position:absolute; transform:translateX(-50%); font-size:12px; color:var(--ink-soft); background:var(--fp); padding:2px 5px; white-space:nowrap; }
.model-canvas .pipeline-node { text-align:center; }
.model-canvas .pipeline-node-top { justify-content:center; }
.model-canvas .pipeline-node-top b { font-size:16px; }
.model-canvas .pipeline-node-summary { font-size:12px; }

/* Distinct pane boundary, including the stacked mobile layout. */
.focus-layout-split .focus-models { border-left:3px solid color-mix(in srgb,var(--ink) 40%,var(--paper)); }
.focus-model-tabs { display:flex; gap:20px; padding:0 20px; flex-shrink:0; border-bottom:1px solid var(--fl); background:var(--fm); }
.focus-model-tabs button { background:transparent; border:0; border-bottom:2px solid transparent; padding:12px 0; color:var(--ink-soft); font-size:12px; }
.focus-model-tabs button[aria-selected=true] { color:var(--ink); border-bottom-color:var(--accent-ink); }
.focus-code-panel { flex:1; min-height:0; overflow:auto; background:var(--fp); }
.focus-code-panel[hidden],.focus-canvas-wrap[hidden] { display:none; }
.focus-code { margin:0; padding:20px; font:12px/1.75 Consolas,'Courier New',monospace; color:var(--ink); min-height:100%; width:max-content; min-width:100%; tab-size:4; }
.focus-code code { font:inherit; }
.py-keyword { color:light-dark(#7134a4,#c5a3ed); }
.py-module { color:light-dark(#9a4624,#e9a183); }
.py-number { color:light-dark(#176b79,#82c7d0); }
.py-call { color:light-dark(#235d91,#8ebde3); }
.py-comment { color:var(--ink-soft); font-style:italic; }
@media(max-width:700px) { .focus-layout-split .focus-models { border-left:0; border-top:3px solid color-mix(in srgb,var(--ink) 40%,var(--paper)); } }

.focus-code { color-scheme:light; }
:root[data-theme="dark"] .focus-code { color-scheme:dark; }
@media(prefers-color-scheme:dark) { :root:not([data-theme="light"]) .focus-code { color-scheme:dark; } }

.focus-canvas-wrap { flex-direction:column; }
.focus-preview-notes { display:grid; grid-template-columns:1fr 1fr; gap:8px; flex-shrink:0; padding:10px 12px; border-top:1px solid var(--fl); background:var(--fm); }
.focus-note { padding:9px 10px; border-left:2px solid var(--note-color); border-radius:3px; background:color-mix(in srgb,var(--note-color) 10%,var(--fp)); font-size:10px; line-height:1.5; }
.focus-note b { display:block; font-weight:600; margin-bottom:4px; color:var(--ink); }
.focus-note > span { color:var(--ink-soft); }
.note-amber { --note-color:#dba344; }
.note-mint { --note-color:#48a98e; }
.note-violet { --note-color:#ad87d6; }
.note-blue { --note-color:#66a4d8; }
.focus-canvas-wrap > .focus-pane-actions { bottom:120px; }
.focus-code .code-note { color:color-mix(in srgb,var(--note-color) 65%,var(--ink)); background:color-mix(in srgb,var(--note-color) 9%,var(--fp)); font-style:normal; }
.focus-demo-cursor { color:var(--mustard); display:flex; align-items:flex-start; gap:2px; }
.focus-cursor-label { margin-top:15px; padding:3px 6px; border-radius:0 4px 4px; background:var(--mustard); color:#16150f; font-size:10px; line-height:1.2; white-space:nowrap; }
.focus-visitor-cursor { color:#8dbceb; transition:none; z-index:11; }
.focus-visitor-cursor .focus-cursor-label { background:#8dbceb; }
.cursor-flip .focus-cursor-label { position:absolute; right:16px; }
@media(hover:hover) and (pointer:fine) { .has-visitor-cursor .pipeline-canvas,.has-visitor-cursor .pipeline-canvas * { cursor:none!important; } }

.focus-canvas-wrap { display:grid; grid-template-rows:minmax(0,1fr) auto; }
.focus-canvas-wrap > .pipeline-canvas { grid-area:1 / 1; }
.focus-canvas-wrap > .focus-preview-notes { grid-area:2 / 1; }
.focus-canvas-wrap > .focus-pane-actions { position:relative; grid-area:1 / 1; bottom:auto; right:auto; align-self:end; justify-self:end; margin:14px; }

/* Sticky notes share the diagram's dotted surface, pan and zoom. */
.pipeline-board { position:absolute; left:50%; top:50%; width:1040px; height:560px; transform-origin:center; }
.pipeline-board > .pipeline-scene { position:relative; left:0; top:0; }
.pipeline-board > .focus-preview-notes { position:absolute; inset:0; display:block; padding:0; border:0; background:none; pointer-events:none; }
.pipeline-board .focus-note { position:absolute; right:14px; top:90px; width:214px; pointer-events:auto; padding:20px 17px 22px; min-height:140px; border:0; border-radius:2px 2px 16px 2px; background:var(--sticky-paper); color:#25231f; box-shadow:3px 7px 10px #0003; font-size:13px; line-height:1.55; transform:rotate(2deg); }
.pipeline-board .focus-note:nth-child(2) { left:35px; right:auto; top:443px; width:280px; min-height:0; padding:12px 16px; transform:rotate(-3deg); }
.model-canvas .pipeline-board .focus-note:nth-child(2) { top:390px; left:30px; width:225px; }
.pipeline-board .focus-note::before { content:''; position:absolute; width:58px; height:16px; left:calc(50% - 29px); top:-8px; background:#ffffff55; transform:rotate(-4deg); }
.pipeline-board .focus-note b { color:#25231f; font-size:14px; margin-bottom:9px; }
.pipeline-board .focus-note > span { color:#38372f; }
.pipeline-board .note-amber { --sticky-paper:#f2d887; }
.pipeline-board .note-mint { --sticky-paper:#b6ddbc; }
.pipeline-board .note-violet { --sticky-paper:#d6c3ed; }
.pipeline-board .note-blue { --sticky-paper:#bddbec; }
.focus-canvas-wrap { grid-template-rows:minmax(0,1fr); }

/* Operations: version lineage, conversation traces, and an agent workspace. */
.ops-canvas-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 22px; border-bottom:1px solid var(--fl); }
.ops-canvas-heading h3 { margin:0; font-size:17px; font-weight:600; }
.ops-canvas-heading > span { color:var(--ink-soft); font-size:11px; }
.ops-canvas { min-height:0; }
.ops-release-detail { display:grid; grid-template-columns:1.4fr .7fr 1fr; align-items:center; gap:10px 24px; padding:15px 22px; border-top:1px solid var(--fl); background:var(--fm); }
.ops-release-detail small,.ops-release-detail b,.ops-release-detail div > span { display:block; }
.ops-release-detail small { font-size:10px; color:var(--ink-soft); margin-bottom:5px; }
.ops-release-detail b { font-size:15px; font-weight:500; }
.ops-release-detail div > span { font-size:11px; color:var(--ink-soft); margin-top:4px; }
.ops-release-detail > span { grid-column:3; font-size:10px; color:var(--ink-soft); }
.ops-agent-detail { display:flex; gap:14px; align-items:center; padding:17px 22px; border-top:1px solid var(--fl); background:var(--fm); }
.ops-agent-detail > i { font-size:24px; color:var(--accent-ink); }
.ops-agent-detail b,.ops-agent-detail div span { display:block; font-size:13px; }
.ops-agent-detail div span { color:var(--ink-soft); margin-top:4px; font-size:11px; }
.ops-agent-detail > span { margin-left:auto; color:var(--ink-soft); font-size:11px; }
.ops-trace-workspace { display:flex; flex-direction:column; flex:1; min-height:0; }
.ops-conversation { display:flex; gap:10px; align-items:center; padding:12px 18px; border-bottom:1px solid var(--fl); background:var(--fm); }
.ops-conversation > span { font-size:11px; color:var(--ink-soft); white-space:nowrap; }
.ops-conversation button { flex:1; padding:9px 12px; text-align:left; border:1px solid var(--fl); border-radius:7px; background:var(--fp); font-size:11px; line-height:1.5; }
.ops-conversation small { display:block; color:var(--ink-soft); font-size:10px; }
.ops-conversation button[aria-pressed=true] { border-color:var(--accent-ink); }
.ops-trace-columns { display:grid; grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr); flex:1; min-height:0; }
.ops-trace-tree { padding:16px 10px; overflow:auto; border-right:3px solid color-mix(in srgb,var(--ink) 40%,var(--paper)); background:radial-gradient(circle,var(--fl) .8px,transparent 1px) 0 0/9px 9px; }
.ops-trace-tree button { display:flex; align-items:center; gap:8px; width:100%; padding:10px 8px; border:1px solid transparent; border-radius:6px; text-align:left; background:var(--fp); font-size:12px; }
.ops-trace-tree button > i { color:var(--ink-soft); }
.ops-trace-tree button small { margin-left:auto; font-size:9px; color:var(--ink-soft); white-space:nowrap; }
.ops-trace-tree button[aria-pressed=true] { background:var(--fm); border-color:var(--accent-ink); }
.ops-trace-note { margin:22px 10px 0; padding:14px; color:#283a47; background:#bddbec; font-size:11px; transform:rotate(-2deg); box-shadow:2px 4px 8px #0002; }
.ops-observation { padding:20px; overflow:auto; min-width:0; }
.ops-observation-heading { display:flex; gap:12px; align-items:center; justify-content:space-between; }
.ops-observation-heading h3 { margin:0; font-size:18px; }
.ops-observation-heading > span { border-radius:4px; padding:4px 7px; background:color-mix(in srgb,#ad87d6 18%,var(--fp)); font-size:10px; }
.ops-trace-metrics { display:flex; flex-wrap:wrap; gap:12px; margin:14px 0 22px; color:var(--ink-soft); font-size:10px; }
.ops-observation h4 { margin:0 0 8px; font-size:11px; font-weight:500; color:var(--ink-soft); }
.ops-observation pre { margin:0 0 18px; padding:14px; border:1px solid var(--fl); border-left:2px solid #ad87d6; background:var(--fm); border-radius:5px; font:11px/1.65 Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
.ops-observation section+section pre { border-left-color:#48a98e; }
.ops-history { font-size:11px; color:var(--ink-soft); }
.ops-history summary { cursor:pointer; padding:8px 0; }
.ops-history p { line-height:1.6; }
.ops-history b { display:block; color:var(--ink); }
@media(max-width:700px) {
 .ops-canvas-heading { padding:12px 16px; } .ops-canvas-heading > span { display:none; }
 .ops-conversation { flex-wrap:wrap; padding:10px; } .ops-conversation > span { width:100%; }
 .ops-trace-columns { grid-template-columns:1fr; grid-template-rows:240px minmax(0,1fr); }
 .ops-trace-tree { border-right:0; border-bottom:3px solid var(--rule-strong); }
 .ops-release-detail { padding:12px; gap:8px; grid-template-columns:1fr 1fr; }
 .ops-release-detail > span { grid-column:auto; } .ops-agent-detail > span { display:none; }
}

.agent-back { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--fl); border-radius:5px; background:var(--fm); font-size:11px; }
.ops-agent-detail > .agent-back { margin-left:auto; }
.agent-loop-details { flex-shrink:0; padding:14px 22px; border-top:1px solid var(--fl); background:var(--fm); max-height:210px; overflow:auto; }
.agent-loop-details h4 { margin:0 0 10px; font-size:13px; font-weight:500; }
.agent-loop-details ol { display:grid; grid-template-columns:1fr 1fr; gap:8px 32px; margin:0; padding-left:18px; color:var(--ink-soft); font-size:11px; line-height:1.5; }
.pipeline-node[data-opens-loop=true] { border-style:dashed; }
@media(max-width:700px) { .agent-loop-details ol { grid-template-columns:1fr; } .agent-loop-details { padding:12px 16px; max-height:220px; } }

/* Pane-based operations and a persistent harness with a loop inspector. */
.ops-split .ops-llm-pane { overflow:hidden; }
.ops-split.focus-layout-split .ops-trace-columns { grid-template-columns:1fr; grid-template-rows:190px minmax(0,1fr); }
.ops-split.focus-layout-split .ops-trace-tree { border-right:0; border-bottom:2px solid var(--rule-strong); }
.ops-split.focus-layout-split .ops-conversation { flex-wrap:wrap; }
.ops-split.focus-layout-split .ops-conversation > span { width:100%; }
.ops-split.focus-layout-split .ops-release-detail { grid-template-columns:1fr 1fr; padding:12px; gap:10px; }
.ops-split.focus-layout-split .ops-release-detail > span { grid-column:auto; }
.harness-workspace { flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1fr); }
.harness-workspace.is-loop-open { grid-template-columns:minmax(0,1fr) minmax(300px,.85fr); }
.harness-main,.harness-loop-panel { display:flex; flex-direction:column; min-width:0; min-height:0; }
.harness-loop-panel { border-left:3px solid var(--rule-strong); }
.harness-controls { padding:10px 18px; display:flex; flex-wrap:wrap; gap:8px 18px; border-top:1px solid var(--fl); color:var(--ink-soft); font-size:10px; background:var(--fm); }
.harness-workspace.is-loop-open .harness-main .ops-canvas-heading > span { display:none; }
.harness-workspace.is-loop-open .ops-agent-detail { flex-wrap:wrap; padding:12px; }
.loop-circle-canvas { display:flex; align-items:center; justify-content:center; min-height:230px; }
.loop-circle { position:relative; width:min(100%,360px); aspect-ratio:1; flex-shrink:0; }
.loop-circle svg { display:block; width:100%; height:100%; }
.loop-circle button { position:absolute; transform:translate(-50%,-50%); display:flex; align-items:center; gap:6px; padding:10px; border:1px solid var(--rule-strong); border-radius:8px; background:var(--fm); font-size:11px; }
.loop-circle button[aria-pressed=true] { border-color:var(--accent-ink); box-shadow:0 0 0 1px var(--accent-ink); }
.loop-circle-center { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; white-space:nowrap; display:flex; flex-direction:column; gap:6px; }
.loop-circle-center > i { font-size:25px; color:var(--accent-ink); }
.loop-circle-center b { font-size:11px; font-weight:500; } .loop-circle-center small { color:var(--ink-soft); font-size:9px; }
.harness-loop-panel .agent-loop-details ol { grid-template-columns:1fr; }
.harness-loop-panel .agent-loop-details { max-height:220px; }
@media(max-width:700px) {
 .harness-workspace.is-loop-open { grid-template-columns:minmax(0,1fr) minmax(260px,1fr); overflow:auto; }
 .harness-workspace.is-loop-open .harness-main { min-width:250px; }
 .harness-workspace.is-loop-open { grid-template-columns:250px minmax(270px,1fr); }
 .harness-loop-panel .ops-canvas-heading { padding:10px; }
 .harness-loop-panel .agent-loop-details { padding:12px; }
}

.ml-stage-details { border-top:1px solid var(--fl); background:var(--fp); flex-shrink:0; }
.ml-stage-details > summary { padding:11px 20px; cursor:pointer; font-size:11px; }
.ml-stage-details > summary span { margin-left:12px; color:var(--ink-soft); }
.ml-stage-copy { padding:4px 20px 12px; height:120px; overflow:auto; }
.ml-stage-details h4 { margin:0 0 6px; font-size:13px; font-weight:500; }
.ml-stage-details ul { margin:0; padding-left:16px; font-size:11px; line-height:1.6; color:var(--ink-soft); }
.ml-run-select { display:flex; flex-direction:column; gap:5px; font-size:10px; color:var(--ink-soft); }
.ml-run-select select { font:inherit; font-size:13px; color:var(--ink); border:1px solid var(--fl); background:var(--fp); border-radius:4px; padding:5px; max-width:100%; }
