:root{color-scheme:light;--bg: #f5f6f8;--surface: #ffffff;--surface-alt: #f0f2f5;--border: #dde1e7;--border-strong: #c3c9d2;--text: #1d232c;--text-muted: #6b7380;--accent: #3d63dd;--accent-strong: #2f52c4;--accent-soft: #e6ecfc;--on-accent: #ffffff;--computed: #7a4fd6;--computed-soft: #f1ebfc;--simulated: #0e8a7e;--simulated-soft: #e3f5f2;--danger: #c93a3a;--warning: #a86a00;--status-draft: #a3abd6;--status-defined: #9aa3af;--status-sourced: #e0a526;--status-available: #2f9e5b;--phase-condition: #c9a227;--phase-wait: #b9c0cb;--phase-container: #6b7a90;--phase-container-alt: #8b98ab;--phase-boot: #e08a2e;--phase-load: #f0b866;--phase-read: #3d7fdd;--phase-compute: #7a4fd6;--phase-write: #1a9a8a;--phase-convert: #d0568a;--syntax-keyword: #a626a4;--syntax-builtin: #0e7490;--syntax-function: #3d63dd;--syntax-string: #3f8a2f;--syntax-number: #b45309;--syntax-comment: #8a919c;--syntax-decorator: #c2410c;--edge: #a7afbb;--grid-dot: #dde1e7;--edit-bg: #f7f5fd;--backdrop: rgb(16 24 40 / 35%);--toast-bg: #2a1f1f;--node-shadow: 0 1px 2px rgb(16 24 40 / 8%);--radius: 8px;--shadow: 0 1px 2px rgb(16 24 40 / 6%), 0 4px 12px rgb(16 24 40 / 6%);--shadow-strong: 0 20px 50px rgb(16 24 40 / 25%);--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}:root[data-theme=dark]{color-scheme:dark;--bg: #12151b;--surface: #1b1f27;--surface-alt: #242a34;--border: #2e3540;--border-strong: #3d4552;--text: #e4e8ee;--text-muted: #8f98a6;--accent: #6b8cff;--accent-strong: #8aa4ff;--accent-soft: #232d4a;--on-accent: #0d1120;--computed: #a987f5;--computed-soft: #2a2340;--simulated: #3fc7b6;--simulated-soft: #17312e;--danger: #f06b6b;--warning: #e0a526;--status-draft: #59618f;--status-defined: #6c7583;--status-sourced: #d9a033;--status-available: #3fb873;--phase-condition: #d9b440;--phase-wait: #4a5260;--phase-container: #7d8aa0;--phase-container-alt: #a0abbd;--phase-boot: #e8913a;--phase-load: #f2c27a;--phase-read: #5f95f0;--phase-compute: #a987f5;--phase-write: #3fc7b6;--phase-convert: #e77aa8;--syntax-keyword: #d38cf0;--syntax-builtin: #56c7d8;--syntax-function: #7fa2ff;--syntax-string: #98c379;--syntax-number: #e5a55c;--syntax-comment: #6f7887;--syntax-decorator: #f08a5d;--edge: #4f5867;--grid-dot: #262c36;--edit-bg: #16141f;--backdrop: rgb(0 0 0 / 55%);--toast-bg: #3a2020;--node-shadow: 0 1px 3px rgb(0 0 0 / 45%);--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 4px 12px rgb(0 0 0 / 30%);--shadow-strong: 0 20px 50px rgb(0 0 0 / 55%)}body{background:var(--bg);color:var(--text)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:5px 8px;min-width:0}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}button{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:5px 12px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled){background:var(--surface-alt)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.primary:hover:not(:disabled){background:var(--accent-strong)}button.danger{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}button.danger-outline{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}button.link{border:none;background:none;padding:0;color:var(--accent);text-align:left}button.link:hover:not(:disabled){background:none;text-decoration:underline}.icon-button{border:none;background:none;font-size:18px;line-height:1;padding:2px 6px;color:var(--text-muted)}.mono,code,pre,kbd{font-family:var(--mono);font-size:.92em}kbd{border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;padding:0 4px}.muted{color:var(--text-muted)}.warning{color:var(--warning)}.spacer{flex:1}.app{height:100%;display:flex;flex-direction:column}.workspace{--detail-width: clamp(380px, var(--panel-width, 380px), 33.333vw);position:relative;flex:1;display:flex;min-height:0}.workspace-view{position:relative;flex:1 1 0;display:flex;min-width:0;min-height:0}.workspace.simulating>.sim-panel{flex:0 0 var(--sim-width, 50%)}.workspace.simulating.detail-open>.sim-panel{max-width:calc(100% - var(--detail-width))}.split-handle{position:relative;flex:0 0 7px;margin:0 -3px;z-index:5;cursor:col-resize;touch-action:none;outline:none}.split-handle:before{content:"";position:absolute;top:0;bottom:0;left:3px;width:1px;background:var(--border);transition:background .15s,box-shadow .15s}.split-handle:hover:before,.split-handle:focus-visible:before,.split-handle.dragging:before{background:var(--simulated);box-shadow:0 0 0 1px var(--simulated)}.split-handle.dragging{cursor:col-resize}.split-handle.panel-handle:hover:before,.split-handle.panel-handle:focus-visible:before,.split-handle.panel-handle.dragging:before{background:var(--accent);box-shadow:0 0 0 1px var(--accent)}@media(max-width:900px){.workspace.simulating{flex-direction:column}.workspace.simulating>.workspace-view,.workspace.simulating>.sim-panel{flex:1 1 50%}.workspace.simulating.detail-open>.sim-panel{max-width:none}.split-handle{display:none}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg) 80%,transparent);color:var(--text-muted);z-index:5}.toolbar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.brand{font-weight:700;font-size:18px;letter-spacing:-.02em;margin-right:8px}.brand-dot{color:var(--accent)}.search{width:220px}.checkbox{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox.inline{margin-left:12px;font-weight:400}.segmented{display:inline-flex}.segmented button{border-radius:0}.segmented button:first-child{border-radius:6px 0 0 6px}.segmented button:last-child{border-radius:0 6px 6px 0;margin-left:-1px}.segmented button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);position:relative}.user{display:flex;align-items:center;gap:8px;padding-left:10px;border-left:1px solid var(--border)}.user-name{color:var(--text-muted)}.user-account{font-size:12px}.role-badge{text-transform:capitalize;border-radius:999px;padding:2px 10px;background:var(--surface-alt)}.datatable{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--surface)}.mode-edit .datatable{background:var(--edit-bg)}.datatable-scroll{flex:1;min-height:0;overflow:auto}.datatable table{width:100%;border-collapse:separate;border-spacing:0}.datatable th{position:sticky;top:0;z-index:1;padding:0;background:var(--surface-alt);border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.datatable th button{width:100%;display:flex;align-items:center;gap:4px;padding:8px 12px;border:0;border-radius:0;background:transparent;font-size:12px;font-weight:600;color:var(--text-muted);text-align:left}.datatable th[aria-sort] button{color:var(--text)}.sort-indicator{font-size:9px;min-width:9px}.datatable td{padding:7px 12px;border-bottom:1px solid var(--border);vertical-align:top;white-space:nowrap}.datatable tbody tr{cursor:pointer}.datatable tbody tr:hover{background:var(--surface-alt)}.datatable tbody tr.selected{background:var(--accent-soft)}.datatable tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.datatable-label{display:block;font-weight:500}.datatable td .technical-name{font-size:12px}.datatable td .tag-values{flex-wrap:nowrap}.datatable-formula code{display:inline-block;max-width:360px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;font-size:12px}.datatable-empty{padding:24px;text-align:center}.datatable-footer{padding:6px 12px;border-top:1px solid var(--border);font-size:12px}.readiness{flex:1;min-width:0;overflow:auto;padding:16px;background:var(--bg)}.readiness-summary,.readiness-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.readiness-count,.readiness-strip-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left}.readiness-count-value{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}.readiness-count-label{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px}.readiness-marker{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}.readiness-marker.readiness-ready{background:var(--accent)}.readiness-marker.readiness-blocked{background:var(--warning)}.readiness-marker.readiness-incomplete{background:var(--danger)}.readiness-marker.readiness-available{background:var(--status-available)}.readiness-columns{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}.readiness-group{margin-bottom:16px}.readiness-group summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:4px 0 8px;font-weight:600;cursor:pointer}.readiness-hint{font-weight:400;font-size:12px}.readiness-list,.unblocker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.readiness-row{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(140px,1fr);gap:6px 16px;align-items:center;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer}.readiness-row:hover{border-color:var(--border-strong)}.readiness-row.selected,.unblocker.selected{border-color:var(--accent);background:var(--accent-soft)}.readiness-row:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.readiness-identity{min-width:0}.readiness-identity .technical-name{font-size:12px}.readiness-progress{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap}.meter{flex:1;height:6px;border-radius:3px;background:var(--accent-soft);overflow:hidden}.meter>span{display:block;height:100%;border-radius:3px;background:var(--accent)}.readiness-reason{font-size:12px;color:var(--danger)}.readiness-blockers{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px}.blocker-chip{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:999px;font-size:12px}.readiness-unblockers{position:sticky;top:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.readiness-unblockers h3,.dashboard-unblockers h3{margin:0 0 4px;font-size:13px}.unblocker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;width:100%;padding:6px 8px;text-align:left}.unblocker-name{display:flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}.unblocker-count{font-weight:600;font-variant-numeric:tabular-nums}.unblocker-bar{grid-column:1 / -1;height:4px;border-radius:2px;background:color-mix(in srgb,var(--warning) 15%,transparent)}.unblocker-bar>span{display:block;height:100%;border-radius:2px;background:var(--warning)}.readiness-empty{padding:24px;text-align:center}@media(max-width:1100px){.readiness-columns{grid-template-columns:minmax(0,1fr)}.readiness-unblockers{position:static;order:-1}}@media(max-width:640px){.readiness-summary,.readiness-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.readiness-row{grid-template-columns:minmax(0,1fr)}}.dashboard{flex:1;min-width:0;overflow:auto;background:var(--bg)}.dashboard-inner{max-width:1200px;margin:0 auto;padding:20px 16px 40px}.dashboard-title{margin:0 0 16px;font-size:20px}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}.stat-tile{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.stat-label{font-size:12px;color:var(--text-muted)}.stat-value{font-size:28px;font-weight:600;font-variant-numeric:tabular-nums}.stat-detail{font-size:12px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.dashboard-card{min-width:0;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.dashboard-card.wide{grid-column:1 / -1}.dashboard-card h2{margin:0 0 12px;font-size:14px}.graph-legend.dashboard-legend{position:static;margin-bottom:10px;padding:0;box-shadow:none;background:none}.status-bar-row{display:grid;grid-template-columns:90px minmax(0,1fr) 40px;align-items:center;gap:12px;margin-bottom:8px}.status-bar-label{font-size:13px}.status-bar-total{text-align:right;font-variant-numeric:tabular-nums}.status-bar{display:flex;gap:2px;height:16px;border-radius:4px;overflow:hidden}.status-segment{min-width:4px}.status-segment.status-draft{background:var(--status-draft)}.status-segment.status-defined{background:var(--status-defined)}.status-segment.status-sourced{background:var(--status-sourced)}.status-segment.status-available{background:var(--status-available)}.readiness-strip{margin-bottom:12px}.readiness-strip-item{background:var(--surface-alt);border-color:transparent}.dashboard-unblockers .link-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.bar-list li{display:grid;grid-template-columns:minmax(0,40%) minmax(0,1fr) 36px;align-items:center;gap:10px;font-size:13px}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:10px}.bar-fill{display:block;height:100%;min-width:2px;border-radius:0 4px 4px 0;background:var(--accent)}.bar-fill.none{background:var(--border-strong)}.bar-value{text-align:right;font-variant-numeric:tabular-nums}.quality-list,.quality-data{list-style:none;margin:0;padding:0}.quality-row{padding:8px 0;border-bottom:1px solid var(--border)}.quality-row:last-child{border-bottom:none}.quality-head{display:flex;align-items:center;gap:10px}.quality-icon{width:20px;height:20px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;font-weight:700}.quality-ok .quality-icon{background:color-mix(in srgb,var(--status-available) 18%,transparent);color:var(--status-available)}.quality-issue .quality-icon{background:color-mix(in srgb,var(--warning) 18%,transparent);color:var(--warning)}.quality-info .quality-icon{background:var(--accent-soft);color:var(--accent);font-style:italic;font-family:Georgia,serif}.quality-text{flex:1;display:flex;flex-direction:column;min-width:0}.quality-text .muted{font-size:12px}.quality-count{font-weight:600;font-variant-numeric:tabular-nums}.quality-ok .quality-count{color:var(--text-muted);font-weight:400}.quality-data{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0 30px}.graph{position:relative;flex:1;min-width:0;background-image:radial-gradient(var(--grid-dot) 1px,transparent 1px);background-size:22px 22px}.mode-edit .graph{background-color:var(--edit-bg)}.graph-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.graph-canvas:active{cursor:grabbing}.graph-controls{position:absolute;left:16px;bottom:16px;display:flex;flex-direction:column;box-shadow:var(--shadow);border-radius:6px}.graph-controls button{width:32px;height:32px;padding:0;border-radius:0;margin-top:-1px}.graph-controls button:first-child{border-radius:6px 6px 0 0}.graph-controls button:last-child{border-radius:0 0 6px 6px}.graph-autofit{display:inline-flex;align-items:center;justify-content:center}.graph-autofit svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.graph-controls .graph-autofit[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.graph-legend{position:absolute;right:16px;bottom:16px;display:flex;gap:12px;padding:6px 10px;background:var(--surface);border-radius:6px;box-shadow:var(--shadow);font-size:12px;color:var(--text-muted)}.legend-item{display:inline-flex;align-items:center;gap:5px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.status-draft{background:transparent;box-shadow:inset 0 0 0 1.5px var(--status-draft)}.status-dot.status-defined{background:var(--status-defined)}.status-dot.status-sourced{background:var(--status-sourced)}.status-dot.status-available{background:var(--status-available)}.graph-warning,.graph-empty{position:absolute;top:16px;left:50%;transform:translate(-50%);padding:6px 12px;border-radius:6px;background:var(--surface);box-shadow:var(--shadow)}.graph-warning{color:var(--danger)}.node{cursor:pointer;transition:opacity .15s}.node-box{fill:var(--surface);stroke:var(--border-strong);stroke-width:1;filter:drop-shadow(var(--node-shadow));transition:stroke .15s,stroke-width .15s}.node-computed .node-box{fill:var(--computed-soft);stroke:color-mix(in srgb,var(--computed) 45%,transparent)}.node-simulated .node-box{fill:var(--simulated-soft);stroke:color-mix(in srgb,var(--simulated) 45%,transparent)}.node-simulated .node-kind{fill:var(--simulated);font-style:normal}.node:hover .node-box{stroke:var(--accent)}.node-status.status-draft{fill:var(--status-draft)}.node-draft .node-box{stroke-dasharray:5 3}.node-status.status-defined{fill:var(--status-defined)}.node-status.status-sourced{fill:var(--status-sourced)}.node-status.status-available{fill:var(--status-available)}.node-label{font-weight:600;font-size:13px;fill:var(--text)}.node-meta{font-size:11px;fill:var(--text-muted)}.math-formula{margin-top:8px;padding:4px 0;overflow-x:auto;overflow-y:hidden;color:var(--text)}.math-formula .katex-display{width:max-content;margin:0 auto;text-align:left}.math-formula .katex-display>.katex{display:inline-block;text-align:left}.math-formula .katex{font-size:1em}.node-type{font-weight:700;fill:var(--accent)}.node-kind{font-style:italic;font-weight:700;fill:var(--computed)}.node-cyclic .node-box{stroke:var(--danger);stroke-dasharray:4 3}.node.emphasis-selected .node-box{stroke:var(--accent);stroke-width:2.5}.node.emphasis-linked .node-box{stroke:var(--accent);stroke-width:1.5}.node.emphasis-dimmed,.operator.emphasis-dimmed{opacity:.25}.node-add{opacity:0;transition:opacity .15s}.node:hover .node-add,.node.emphasis-selected .node-add{opacity:1}.node-add circle{fill:var(--accent);stroke:var(--surface);stroke-width:2}.node-add text{fill:var(--on-accent);font-weight:700;font-size:14px}.edge-line{fill:none;stroke:var(--edge);stroke-width:1.5;transition:stroke .15s,opacity .15s}.edge-hit{fill:none;stroke:transparent;stroke-width:12}.edge.emphasis-linked .edge-line{stroke:var(--accent);stroke-width:2.5}.edge.emphasis-lineage .edge-line{stroke:color-mix(in srgb,var(--accent) 55%,var(--edge));stroke-width:1.75}.edge.emphasis-dimmed .edge-line{opacity:.2}.edge-editable{cursor:pointer}.edge-editable:hover .edge-line{stroke:var(--computed);stroke-width:3}.operator{cursor:pointer;transition:opacity .15s}.operator rect{fill:var(--surface);stroke:var(--computed);stroke-width:1.5}.operator-symbol{font-size:13px;font-weight:700;fill:var(--computed)}.operator-port{font-size:12px;font-weight:700;paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round}.operator-port.port-direct{fill:var(--text-muted)}.operator-port.port-inverse{fill:var(--danger)}.operator-editable:hover rect{fill:var(--computed)}.operator-editable:hover .operator-symbol{fill:var(--on-accent)}.constant{transition:opacity .15s}.constant rect{fill:var(--surface-alt);stroke:var(--border-strong)}.constant text{font-family:var(--mono);font-size:11px;fill:var(--text-muted)}.constant.emphasis-dimmed{opacity:.25}.panel{width:var(--detail-width, 380px);flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--surface);border-left:1px solid var(--border)}.panel-header{display:flex;align-items:center;gap:6px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--border)}.panel-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.panel-form{flex:1;min-height:0;display:flex;flex-direction:column}.panel-body{padding:4px 16px 12px}.panel-section{display:flex;flex-direction:column;gap:10px;padding:14px 0 2px}.panel-section+.panel-section,.panel-identity+.panel-section{border-top:1px solid var(--border);margin-top:12px}.panel-section-title,.modal h3{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0}.modal h3{margin-bottom:8px}.panel-actions{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border);background:var(--surface)}.panel-actions .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-identity{padding-top:10px}.panel-title{margin:0 0 2px;font-size:19px;line-height:1.25;overflow-wrap:anywhere}.panel-title-row{display:flex;align-items:baseline;gap:10px}.panel-title-row>.panel-title{flex:1;min-width:0}.copy-link{flex:none;display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:none;border-radius:4px;background:none;color:var(--text-muted);font-size:12px;white-space:nowrap;cursor:pointer}.copy-link svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.copy-link:hover{color:var(--text);background:var(--surface-alt)}.copy-link.copied{color:var(--simulated)}.technical-name{color:var(--text-muted);overflow-wrap:anywhere}.description{margin:8px 0 0;line-height:1.45}.kind-chip{font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;background:var(--surface-alt);color:var(--text-muted)}.kind-chip.kind-computed{background:var(--computed-soft);color:var(--computed)}.kind-chip.kind-simulated{background:var(--simulated-soft);color:var(--simulated)}.prop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin:0}.prop-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.prop-grid dt{font-size:12px;color:var(--text-muted);margin-bottom:2px}.prop-grid dd{margin:0;font-weight:500;overflow-wrap:anywhere}.status-steps{display:flex;list-style:none;padding:0;margin:0;gap:4px}.status-steps li{flex:1;text-align:center;font-size:12px;padding:4px 0;border-radius:4px;background:var(--surface-alt);color:var(--text-muted)}.status-steps li.done{background:color-mix(in srgb,var(--status-available) 15%,var(--surface));color:var(--status-available)}.status-steps li.current{color:var(--on-accent);font-weight:600}.status-steps li.current.status-draft,.status-picker [aria-checked=true].status-draft{background:var(--status-draft)}.status-steps li.current.status-defined,.status-picker [aria-checked=true].status-defined{background:var(--status-defined)}.status-steps li.current.status-sourced,.status-picker [aria-checked=true].status-sourced{background:var(--status-sourced)}.status-steps li.current.status-available,.status-picker [aria-checked=true].status-available{background:var(--status-available)}.status-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.status-picker button{padding:5px 4px;font-size:12px;border-color:var(--border);background:var(--surface-alt);color:var(--text-muted)}.status-picker [aria-checked=true]{border-color:transparent;color:var(--on-accent);font-weight:600}.tag-row{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:baseline;gap:8px}.tag-family{font-size:12px;color:var(--text-muted)}.tag-values{display:flex;flex-wrap:wrap;gap:4px}.tag{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:1px 6px;font-family:var(--mono);font-size:12px}.tag small{font-family:system-ui,sans-serif;color:var(--text)}.chip-toggles{display:flex;flex-wrap:wrap;gap:6px}.chip-toggles button{border-radius:999px;padding:2px 10px;font-family:var(--mono);font-size:12px;border-color:var(--border);background:var(--surface-alt);color:var(--text-muted)}.chip-toggles button small{font-family:system-ui,sans-serif}.chip-toggles button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.formula{background:var(--surface-alt);border-radius:6px;padding:8px 10px;margin:0;white-space:pre-wrap;word-break:break-word}.formula .formula-ref{font:inherit;text-decoration:underline dotted;text-underline-offset:2px}.help-button{width:18px;height:18px;padding:0;border-radius:50%;font-size:11px;font-weight:600;line-height:1;color:var(--text-muted)}.help-button:hover{color:var(--accent);border-color:var(--accent)}.glossary-toolbar{position:sticky;top:-16px;z-index:1;margin:-16px -20px 0;padding:16px 20px 10px;background:var(--surface);border-bottom:1px solid var(--border)}.glossary-search{width:100%}.glossary-nav{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.glossary-nav .chip{font-family:inherit;font-size:12px;padding:2px 6px 2px 10px}.glossary-nav .chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong)}.glossary-nav .count{margin-left:2px;font-size:11px;background:var(--surface)}.glossary-section{scroll-margin-top:110px;padding-top:18px}.glossary-section+.glossary-section{margin-top:8px;border-top:1px solid var(--border)}.modal-body .glossary-section-title{margin:0 0 4px;padding-left:10px;border-left:3px solid var(--accent);font-size:15px;font-weight:650;text-transform:none;letter-spacing:0;color:var(--text)}.glossary-intro{margin:0 0 12px 13px;color:var(--text-muted);font-size:13px;line-height:1.5}.glossary-entries{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:10px}.glossary-entry{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.glossary-signature{font-size:14px;font-weight:600;color:var(--accent-strong)}.glossary-summary{margin:0;line-height:1.45}.glossary-examples{list-style:none;margin:auto 0 0;padding:8px 10px;display:flex;flex-direction:column;gap:5px;border-radius:6px;background:var(--surface-alt);font-size:12px}.glossary-examples li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.glossary-formula{word-break:break-word}.glossary-arrow{color:var(--text-muted)}.glossary-value{padding:0 6px;border-radius:4px;background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.glossary-note{color:var(--text-muted);font-style:italic}.panel-section>button{align-self:flex-start}.dependencies{border-top:1px solid var(--border)}.count{background:var(--surface-alt);border-radius:999px;padding:0 6px}.link-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.link-list .link{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form{display:flex;flex-direction:column;gap:10px}.field{display:flex;flex-direction:column;gap:4px;min-width:0;border:none;padding:0;margin:0}.field input,.field select,.field textarea{width:100%}.field textarea{resize:vertical}.field-label{font-size:12px;color:var(--text-muted);padding:0}.field-error input{border-color:var(--danger)}.field-message{font-size:12px;color:var(--danger)}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.input-row{display:flex;gap:6px}.input-row input{flex:1;min-width:0}.square-button{flex-shrink:0;width:32px;padding:0}.checkbox-list{display:flex;flex-wrap:wrap;gap:4px 14px}.form-actions{display:flex;gap:8px;margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:20}.modal{background:var(--surface);border-radius:12px;box-shadow:var(--shadow-strong);width:min(520px,100%);max-height:88vh;display:flex;flex-direction:column}.modal-wide{width:min(820px,100%)}.modal-header,.modal-footer{display:flex;align-items:center;gap:8px;padding:14px 20px}.modal-header{border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:17px;flex:1}.modal-footer{border-top:1px solid var(--border)}.modal-body{padding:16px 20px;overflow-y:auto}.modal-body h3{margin-top:18px}.steps{display:flex;gap:24px;list-style:none;padding:0;margin:0 0 16px;color:var(--text-muted)}.steps li{display:flex;align-items:center;gap:6px}.step-index{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--border-strong);font-size:12px}.steps li.current{color:var(--accent);font-weight:600}.steps li.current .step-index{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.steps li.done .step-index{background:var(--status-available);border-color:var(--status-available);color:var(--on-accent)}.formula-input{display:flex;gap:8px;align-items:flex-start}.formula-input textarea{flex:1;resize:vertical}.formula-target{display:block;margin-bottom:4px;color:var(--computed);font-weight:600}.palette-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}.palette-mode{width:84px;font-size:12px;color:var(--text-muted)}.palette-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;border:2px solid transparent;border-radius:10px;background:none}.palette-card:hover:not(:disabled){background:var(--surface-alt)}.palette-card[aria-checked=true]{border-color:var(--accent)}.palette-preview{position:relative;display:block;width:104px;height:58px;padding:8px;border:1px solid;border-radius:7px}.palette-surface{display:flex;align-items:center;gap:6px;height:100%;width:70%;padding:0 6px;border:1px solid;border-radius:5px}.palette-accent{flex-shrink:0;width:10px;height:10px;border-radius:50%}.palette-lines{display:flex;flex-direction:column;gap:4px;flex:1}.palette-lines span{height:3px;border-radius:2px}.palette-lines span+span{width:65%}.palette-chip{position:absolute;right:6px;bottom:6px;padding:0 4px;border-radius:4px;font-size:10px;font-weight:600}.palette-name{font-size:12px}.modal.formula-editor{width:min(1320px,100%)}.formula-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.formula-editor-main{min-width:0}.formula-textarea{display:block;width:100%;min-height:110px;resize:vertical;font-size:14px;line-height:1.5}.completions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:28px;padding:4px 0}.completions kbd{margin-right:2px;font-size:11px;color:var(--text-muted)}.completion{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:999px;border-color:var(--border);background:var(--surface-alt);font-family:var(--mono);font-size:12px}.completion.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.completion-icon{font-size:10px;color:var(--text-muted)}.completion-datum .completion-icon{color:var(--computed)}.formula-actions{display:flex;align-items:center;gap:10px}.review-block{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.modal-body .review-block h3{display:flex;align-items:center;gap:6px;margin:0 0 8px}.insert-panel{position:sticky;top:0;display:flex;flex-direction:column;max-height:calc(88vh - 140px);min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt);overflow:hidden}.insert-head{display:flex;flex-direction:column;gap:8px;padding:10px;border-bottom:1px solid var(--border);background:var(--surface)}.insert-head .segmented{display:flex}.insert-head .segmented button{flex:1}.insert-head input{width:100%}.insert-shapes{display:flex;gap:4px}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.insert-list{flex:1;min-height:0;overflow-y:auto;padding:6px}.insert-count{margin:2px 6px 6px;font-size:11px;color:var(--text-muted)}.insert-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:none;text-align:left;white-space:normal}.insert-row:hover:not(:disabled),.insert-row:focus-visible{border-color:var(--border);background:var(--surface);outline:none}.insert-main{display:flex;flex-direction:column;flex:1;min-width:0}.insert-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insert-name{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insert-meta{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:11px;color:var(--text-muted)}.insert-used{padding:0 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent-strong)}.insert-group h4{margin:8px 8px 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.insert-signature{font-size:12px;color:var(--accent-strong)}@media(max-width:900px){.formula-editor-grid{grid-template-columns:minmax(0,1fr)}.insert-panel{position:static;max-height:360px}}.combobox{position:relative}.combobox-list{position:absolute;top:calc(100% + 2px);left:0;z-index:10;min-width:max(100%,280px);max-height:260px;overflow-y:auto;margin:0;padding:4px;list-style:none;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);box-shadow:var(--shadow)}.combobox-list li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 8px;border-radius:4px;cursor:pointer;color:var(--text)}.combobox-list li code{font-size:11px;color:var(--text-muted)}.combobox-list li.active{background:var(--accent-soft)}.combobox-list li[aria-selected=true]{font-weight:600}.combobox-list .combobox-more{cursor:default;font-size:11px;color:var(--text-muted)}.hint{color:var(--text-muted);font-size:12px;margin:8px 0}.chip{font-family:var(--mono);font-size:11px;padding:1px 8px;border-radius:999px;background:var(--surface-alt);border-color:var(--border)}.review{margin-top:12px}.diagnostics{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.diagnostics li{padding:6px 10px;border-radius:6px}.diagnostic-error{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.diagnostic-warning{background:color-mix(in srgb,var(--warning) 10%,var(--surface));color:var(--warning)}.components{width:100%;border-collapse:collapse}.components th{text-align:left;font-weight:500;font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border);padding:4px 8px}.components td{padding:6px 8px;border-bottom:1px solid var(--surface-alt)}.components select{width:100%}.components tr.unbound td:first-child{color:var(--danger)}.tabs{display:flex;gap:4px;margin-bottom:16px}.tabs button{border-color:transparent}.tabs button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.settings-list{display:flex;flex-direction:column;gap:10px}.card{border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:10px}.card-row{display:flex;gap:8px;flex-direction:row;align-items:center;flex-wrap:wrap}.card-row .grow{flex:1}.card-actions{display:flex;gap:8px}.values{border-collapse:collapse;width:100%}.values td{padding:2px 4px 2px 0}.values td:nth-child(2) input{width:100%}.values td:first-child input{width:120px}.add-button{border-style:dashed;color:var(--text-muted)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:var(--toast-bg);color:#fff;padding:8px 8px 8px 14px;border-radius:8px;box-shadow:var(--shadow);z-index:30}.toast .icon-button{color:#fff}@media(max-width:900px){.panel{position:absolute;right:0;top:0;bottom:0;width:min(380px,100%);box-shadow:var(--shadow);z-index:4}}.space-title{font-weight:600;padding:2px 10px;border-left:1px solid var(--border);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-toggle{font-size:16px;width:30px}.role-badge.role-builder{background:var(--computed-soft);color:var(--computed)}.landing{min-height:100%;display:flex;flex-direction:column}.landing-main{width:min(1040px,100%);margin:0 auto;padding:32px 16px 48px}.landing-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.landing-heading h1{margin:0 0 4px;font-size:26px;letter-spacing:-.02em}.landing-heading p{margin:0}.landing-section{margin-top:40px}.landing-section h2{margin:0 0 4px;font-size:20px}.space-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.space-card{display:flex;flex-direction:column;gap:8px;height:100%;padding:16px 18px;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);color:inherit;text-decoration:none;transition:border-color .15s,transform .15s}.space-card:hover{border-color:var(--accent);transform:translateY(-1px)}.space-name{font-weight:600;font-size:16px}.space-description{color:var(--text-muted);line-height:1.4;flex:1}.space-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.empty-state{margin:48px auto;max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.empty-state h2{margin:0}.empty-state p{margin:0 0 8px}.empty-icon{font-size:40px;color:var(--accent)}.loading-screen{height:100%;display:grid;place-items:center;padding:16px}.loading-card{width:min(420px,100%);display:flex;flex-direction:column;gap:10px;padding:28px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.loading-title{font-size:18px;font-weight:600}.progress{position:relative;height:8px;margin-top:8px;border-radius:999px;background:var(--surface-alt);overflow:hidden}.progress-fill{position:relative;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--computed));transition:width .35s ease-out;overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgb(255 255 255 / 35%),transparent);transform:translate(-100%);animation:progress-sheen 1.1s ease-in-out infinite}@keyframes progress-sheen{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.progress-fill:after{animation:none}}.loading-step{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.login-form p{margin:0}.login-screen{width:min(360px,100% - 32px);margin:72px auto;display:flex;flex-direction:column;gap:8px}.login-screen h1{margin:0}.login-screen>p{margin:0 0 12px}.danger-zone{border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}.danger-zone p{margin:0}.import-target{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.import-terms input,.import-terms select{width:100%}.import-terms .unit-input{width:90px}.import-terms tr.term-new td:first-child{color:var(--status-sourced)}.import-terms tr.term-linked td{color:var(--text-muted)}.import-terms tr.term-linked td:first-child{color:var(--text)}.types-grid,.units-grid{display:grid;align-items:center;gap:8px}.types-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 90px 70px 150px}.units-grid{grid-template-columns:100px minmax(0,1.4fr) minmax(0,1fr) 70px 150px}.types-grid input,.types-grid select,.units-grid input{width:100%}.card.types-grid,.card.units-grid{flex-direction:row;padding:8px 10px}.catalog-head{padding:0 11px;border:1px solid transparent;font-size:12px;color:var(--text-muted)}.row-actions{display:flex;gap:6px;justify-content:flex-end}.settings-list>.hint{margin:0 0 4px}@media(max-width:700px){.types-grid,.units-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-head{display:none}}.toolbar-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:3px;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt)}.toolbar-options{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 6px 0 10px;border-left:1px solid var(--border-strong);font-size:13px}@media(max-width:640px){.toolbar-group{width:100%}.toolbar-group .search{flex:1;min-width:0}}.status-filter{display:inline-flex;gap:4px}.status-filter button{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border-color:var(--border);background:var(--surface);color:var(--text-muted);font-size:13px}.status-filter button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.status-filter .count{font-size:11px}.burger{width:34px;height:32px;padding:0;border-radius:6px;font-size:20px;color:var(--text)}.burger:hover{background:var(--surface-alt)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);opacity:0;pointer-events:none;transition:opacity .2s;z-index:25}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;bottom:0;left:0;width:min(300px,86vw);display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);box-shadow:var(--shadow-strong);transform:translate(-100%);visibility:hidden;transition:transform .22s ease,visibility .22s;z-index:26}.drawer.open{transform:none;visibility:visible}@media(prefers-reduced-motion:reduce){.drawer,.drawer-backdrop{transition:none}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 12px 18px;border-bottom:1px solid var(--border)}.drawer-body{flex:1;overflow-y:auto;padding:6px 10px}.drawer-section{display:flex;flex-direction:column;gap:2px;padding:10px 0}.drawer-section+.drawer-section{border-top:1px solid var(--border)}.drawer-title{margin:0 8px 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.drawer-space{display:flex;flex-direction:column;gap:2px;padding:4px 8px 8px}.drawer-space-name{font-weight:600;overflow-wrap:anywhere}.drawer-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:none;border-radius:6px;background:none;text-align:left}.drawer-item:hover:not(:disabled){background:var(--surface-alt)}.drawer-item[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.drawer-item[aria-current=page] .drawer-icon{color:var(--accent)}.drawer-icon{width:18px;text-align:center;color:var(--text-muted)}.switch{position:relative;margin-left:auto;width:32px;height:18px;border-radius:999px;background:var(--border-strong);transition:background .15s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface);transition:transform .15s}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(14px)}.drawer-footer{display:flex;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid var(--border)}.drawer-footer .grow{flex:1}.drawer-user{flex:1;min-width:0;display:flex;align-items:center;gap:10px}.drawer-user-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.drawer-user-text>span:first-child{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.avatar{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700}.landing-actions{display:flex;flex-wrap:wrap;gap:8px}.choice-list{display:flex;flex-direction:column;gap:8px}.choice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.choice>span{display:flex;flex-direction:column;gap:2px}.choice input{margin-top:3px}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.choice.disabled{cursor:not-allowed;opacity:.6}.drop-zone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;border:2px dashed var(--border-strong);border-radius:12px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.drop-zone:hover,.drop-zone.dragging{border-color:var(--accent);background:var(--accent-soft)}.drop-zone input{position:absolute;width:1px;height:1px;opacity:0}.drop-zone:focus-within{outline:2px solid var(--accent)}.drop-icon{font-size:26px;color:var(--accent)}.import-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin:0}.import-counts>div{padding:10px;border-radius:var(--radius);background:var(--surface-alt);text-align:center}.import-counts dd{margin:0;font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.import-counts dt{font-size:12px;color:var(--text-muted)}.ok-note{color:var(--status-available);margin:12px 0 0}.import-conflicts{color:var(--warning);font-weight:500}.import-plan{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px}.import-block{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.import-block.import-differs{border-color:color-mix(in srgb,var(--warning) 55%,var(--border));background:color-mix(in srgb,var(--warning) 6%,var(--surface))}.import-block-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.import-kind{font-size:12px;color:var(--text-muted);min-width:78px}.import-name{font-weight:600;overflow-wrap:anywhere}.import-match{font-size:11px;padding:1px 8px;border-radius:999px;background:var(--surface-alt);color:var(--text-muted)}.import-match-identical{color:var(--status-available);background:color-mix(in srgb,var(--status-available) 12%,var(--surface))}.import-match-differs{color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,var(--surface));font-weight:600}.import-outcome{font-size:12px;flex:1}.import-differences{margin:6px 0 0;padding-left:96px;font-family:var(--mono);font-size:12px;color:var(--text-muted)}.import-note{margin:4px 0 0 86px;font-size:12px}.import-admin{color:var(--danger)}.diagnostics code{margin-right:6px;opacity:.85}.filter-menu{position:relative}.filter-button{display:inline-flex;align-items:center;gap:6px}.filter-button.active{border-color:var(--accent);color:var(--accent)}.filter-count{min-width:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:700;text-align:center}.filter-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:15;display:flex;flex-direction:column;gap:12px;width:max-content;max-width:min(460px,90vw);padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-strong)}.filter-popover .status-filter{flex-wrap:wrap}.filter-popover .tag-filter{width:100%}.filter-popover-actions{display:flex;justify-content:flex-end}.space-title{max-width:220px}.bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--accent-soft)}.bulkbar select{max-width:180px}.bulk-tags{min-width:280px}.bulk-tags .checkbox-list{max-height:240px;overflow:auto}.bulk-tags-hint{margin:0;font-size:12px}.datatable .datatable-check{width:36px;padding:7px 4px 7px 12px;vertical-align:middle;cursor:default}.datatable th.datatable-check{padding:8px 4px 8px 12px}.node-group .node-box{fill:var(--surface-alt)}.node-group .node-stack{filter:none}.node-group .node-kind{font-style:normal;fill:var(--text-muted)}.group-code{fill:var(--accent)}.node-group-chip text{font-size:10px;font-weight:600;fill:var(--accent)}.node-group-chip:hover text{text-decoration:underline}.graph-groups{position:absolute;left:64px;bottom:16px;display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--surface);border-radius:6px;box-shadow:var(--shadow);font-size:12px}.node-test{font-family:var(--mono);fill:var(--text)}.node-test.test-missing{font-family:inherit;font-style:italic;fill:var(--text-muted)}.node-test.test-error{fill:var(--danger)}.test-value{margin:0;font-family:var(--mono)}.test-value.muted{font-family:inherit}.test-error{color:var(--danger)}.test-value.test-error{font-family:inherit}.datatable-test{font-family:var(--mono);font-size:12px}.shape-icon{font-family:var(--mono);font-weight:700;color:var(--accent)}.shape-hint{display:flex;gap:8px;align-items:flex-start;margin-top:6px;padding:6px 8px;border-radius:6px;background:var(--surface-alt);font-size:12px;line-height:1.4}.shape-hint .shape-icon{min-width:1.6em;text-align:center}.test-input-help{display:block;margin:4px 0 0;color:var(--text-muted);font-size:12px}.test-input-size{display:block;margin:2px 0 0;font-size:12px;color:var(--accent)}.test-result{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}.test-scalar{padding-right:28px;font-size:15px;font-weight:600}.test-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding-right:28px;font-size:12px}.test-size{color:var(--text);font-weight:600}.test-unit{color:var(--text-muted);font-weight:400}.test-stats{display:inline-flex;flex-wrap:wrap;gap:2px 6px;margin:0;font-family:var(--mono);font-variant-numeric:tabular-nums}.test-stats dt{color:var(--text-muted)}.test-stats dd{margin:0 6px 0 0}.test-sparkline{display:block;width:100%;height:32px;padding:2px 0;border-radius:4px;background:var(--surface-alt)}.test-sparkline path{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linejoin:round}.test-vector{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:3px;margin:0;padding:0;list-style:none;font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}.test-vector li{display:flex;justify-content:space-between;gap:6px;padding:2px 6px;border-radius:4px;background:var(--surface-alt);white-space:nowrap;overflow:hidden}.test-index{color:var(--text-muted);font-size:10px;align-self:center}.test-matrix{max-width:100%;max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:6px}.test-matrix.expanded{max-height:420px}.sim-image{display:flex;justify-content:center;padding:8px}.sim-image .test-tensor-image{max-height:100%;width:min(100%,480px)}.test-tensor-views{margin:4px 0 6px}.test-frames-controls{display:flex;align-items:center;gap:8px;margin:4px 0 6px}.test-frames-controls input[type=range]{flex:1;min-width:0}.test-tensor-image{display:block;max-width:100%;max-height:320px;min-width:64px;border:1px solid var(--border);border-radius:6px;image-rendering:pixelated;background:repeating-conic-gradient(var(--border) 0 25%,transparent 0 50%) 0 0 / 12px 12px}.test-matrix table{table-layout:fixed;width:100%;min-width:calc(var(--step-width) + var(--columns) * var(--column-min-width));--step-width: 44px;--column-min-width: 56px;border-collapse:separate;border-spacing:0;font-family:var(--mono);font-size:11px;font-variant-numeric:tabular-nums}.test-matrix col.test-matrix-step{width:var(--step-width)}.test-matrix th,.test-matrix td{padding:3px 8px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.test-matrix td{background:color-mix(in srgb,var(--accent) calc(var(--heat, 0) * 22%),transparent)}.test-matrix tbody tr:last-child>*{border-bottom:none}.test-matrix th{color:var(--text-muted);font-weight:500;background:var(--surface-alt)}.test-matrix thead th{position:sticky;top:0;z-index:1}.test-matrix th:first-child{position:sticky;left:0;border-right:1px solid var(--border)}.test-matrix thead th:first-child{z-index:2}.test-matrix tbody tr:hover>*{box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--text) 6%,transparent)}.test-show-all{align-self:flex-start;font-size:12px}.copy-button{position:absolute;top:-2px;right:0;display:inline-flex;padding:4px;border:none;border-radius:4px;background:none;color:var(--text-muted);opacity:0;transition:opacity .15s,color .15s}.copy-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.test-result:hover .copy-button,.copy-button:focus-visible,.copy-button.copied{opacity:1}.copy-button:hover:not(:disabled){color:var(--text);background:var(--surface-alt)}.copy-button.copied{color:var(--simulated)}@media(hover:none){.copy-button{opacity:.6}}.shape-legend{display:grid;gap:4px;margin:0 0 12px;font-size:12px}.shape-legend>div{display:grid;grid-template-columns:90px 1fr;gap:8px}.shape-legend dt{font-weight:600}.shape-legend dd{margin:0}.sim-toggle{display:inline-flex;align-items:center;gap:8px}.sim-toggle .switch{margin-left:0}.sim-toggle .switch.on{background:var(--simulated)}.sim-toggle[aria-checked=true]{border-color:color-mix(in srgb,var(--simulated) 50%,transparent);color:var(--simulated)}.sim-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--surface)}.sim-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 16px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.sim-bar-title{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.sim-clock{display:flex;flex:1;align-items:center;gap:6px;min-width:0}.sim-play{min-width:6.5em}.sim-time{display:inline-flex;align-items:center;gap:6px;margin-left:6px;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text)}.sim-clock.running .sim-time{color:var(--simulated);font-weight:600}.sim-dot{width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.sim-dot.live{background:var(--simulated);animation:sim-pulse 1.2s ease-in-out infinite}@keyframes sim-pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.sim-dot.live{animation:none}}.sim-interval{margin-left:auto;font-size:12px}.sim-header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 16px 0}.sim-title{display:flex;align-items:center;gap:8px;min-width:0}.sim-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sim-value{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}.sim-plot-options{display:flex;align-items:center;gap:8px;margin-left:auto}.sim-speed,.sim-window{width:auto}.sim-body{position:relative;flex:1;display:flex;flex-direction:column;min-height:0;padding:8px 16px 12px;overflow:auto}.sim-empty{margin:24px 0;text-align:center}.sim-hint{position:absolute;left:50%;bottom:24px;transform:translate(-50%);margin:0;padding:4px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-size:12px;pointer-events:none}.sim-panel>.hint{margin:0;padding:8px 16px 12px;border-top:1px solid var(--border)}.sim-plot{flex:1;display:flex;flex-direction:column;min-height:0;margin:0;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #4a3aa7;--series-8: #e34948}:root[data-theme=dark] .sim-plot{--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767}.sim-canvas{position:relative;flex:1;min-height:200px}.sim-canvas>svg,.sim-canvas>canvas{position:absolute;top:0;left:0;display:block}.sim-canvas>canvas{pointer-events:none}.sim-grid line{stroke:var(--border);stroke-width:1}.sim-grid line.sim-axis{stroke:var(--border-strong)}.sim-grid text{font-size:11px;fill:var(--text-muted);font-variant-numeric:tabular-nums}.sim-head{fill:var(--simulated);stroke:var(--surface);stroke-width:2}.sim-hit{fill:transparent;cursor:crosshair}.sim-crosshair{stroke:var(--text-muted);stroke-dasharray:3 3}.sim-tooltip rect{fill:var(--surface);stroke:var(--border-strong)}.sim-tooltip text{font-size:11px;fill:var(--text);font-variant-numeric:tabular-nums}.sim-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;list-style:none;font-size:12px;color:var(--text-muted)}.sim-legend li{display:inline-flex;align-items:center;gap:6px}.sim-legend .swatch{width:12px;height:3px;border-radius:2px;background:currentColor}.sim-legend .swatch.series-1{background:var(--series-1)}.sim-legend .swatch.series-2{background:var(--series-2)}.sim-legend .swatch.series-3{background:var(--series-3)}.sim-legend .swatch.series-4{background:var(--series-4)}.sim-legend .swatch.series-5{background:var(--series-5)}.sim-legend .swatch.series-6{background:var(--series-6)}.sim-legend .swatch.series-7{background:var(--series-7)}.sim-legend .swatch.series-8{background:var(--series-8)}.options-popover{gap:8px}.pipeline-page{height:100%;display:flex;flex-direction:column}a.brand{color:inherit;text-decoration:none}.pipeline-title{font-weight:600;font-size:16px;margin-right:8px}.pipeline-loading{padding:32px 16px}.graph-guide{position:absolute;top:16px;left:16px;z-index:2}.graph-guide-button{width:32px;height:32px;padding:0;border-radius:50%;box-shadow:var(--shadow);font-weight:600;color:var(--text-muted)}.graph-guide-button:hover,.graph-guide-button[aria-expanded=true]{color:var(--accent);border-color:var(--accent)}.graph-guide-popover{position:absolute;top:40px;left:0;width:min(520px,calc(100vw - 64px));max-height:calc(100vh - 200px);overflow:auto;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);font-size:13px;line-height:1.45}.graph-guide-popover .pipeline-description{margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--border);color:var(--text)}.graph-guide-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--text-muted)}.pipeline-workspace{--detail-width: clamp(380px, var(--panel-width, 380px), 33.333vw);position:relative;flex:1;display:flex;min-height:0}.pipeline-graph{flex:1;min-width:0;min-height:0}.pl-box,.pl-block{cursor:pointer}.pl-box,.pl-block,.pl-link,.pl-guard-link,.pl-port{transition:opacity .15s}.pl-has-selection .pl-box:not(.pl-selected,.pl-related),.pl-has-selection .pl-block:not(.pl-selected,.pl-related),.pl-has-selection .pl-link:not(.pl-related),.pl-has-selection .pl-guard-link:not(.pl-related),.pl-has-selection .pl-port:not(.pl-related){opacity:.3}.pl-has-selection .pl-related .pl-link-line{stroke-width:3}.pl-halo{fill:none;stroke:none}.pl-selected>.pl-halo{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4}.pl-port-hit{fill:transparent}.pl-block-port-editable{cursor:crosshair}.pl-block-port-editable:hover .pl-port-dot{stroke-width:3;r:8}.pl-panel-name{width:100%;margin-left:-5px;padding:1px 4px;border:1px solid transparent;border-radius:6px;background:transparent;color:inherit;font-family:inherit;font-weight:600}.pl-panel-name:hover,.pl-panel-name:focus{border-color:var(--border)}.pl-panel-name::placeholder{color:inherit}.pl-panel-label{width:100%;margin:2px 0 0 -5px;padding:1px 4px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-muted);font:inherit;font-size:13px}.pl-panel-label:hover,.pl-panel-label:focus{border-color:var(--border)}.pl-panel-open{display:inline-block;margin-top:8px;color:var(--accent);font-weight:500;text-decoration:none}.pl-panel-open:hover{text-decoration:underline}.pl-panel-ports{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.pl-panel-port{font-weight:500}.pl-panel-shape{color:var(--text-muted);font-family:var(--mono);font-size:11px;font-weight:400}.pl-panel-ports .link-list,.pl-panel-hint{margin:2px 0 0 12px}.pl-panel-warning{color:var(--warning);font-size:12px}.pl-params{margin-top:8px}.pl-param-badge{margin-left:6px;padding:0 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.pl-param-edit{display:flex;align-items:flex-start;gap:4px;margin:3px 0 0 12px}.pl-param-input{flex:1;min-width:0;padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-family:var(--mono);font-size:12px}.pl-param-input.matrix{resize:vertical}.pl-param.set .pl-param-input{border-color:var(--accent)}.pl-param-input::placeholder{color:var(--text-muted)}.pl-param-value{margin:2px 0 0 12px;font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}.pl-param-error{margin:2px 0 0 12px}.pl-box-frame{fill:var(--surface);stroke:var(--border-strong);filter:drop-shadow(var(--node-shadow))}.pl-box-head{cursor:pointer}.pl-box-head-bg{fill:var(--surface-alt)}.pl-box-head:hover .pl-box-name{fill:var(--accent)}.pl-box-name{font-weight:600;fill:var(--text)}.pl-box-remove{cursor:pointer}.pl-box-remove circle{fill:var(--surface);stroke:var(--border-strong)}.pl-box-remove text{fill:var(--text-muted);font-size:13px}.pl-box-remove:hover text{fill:var(--danger)}.pl-empty{fill:var(--text-muted);font-size:12px}.pl-port{cursor:default}.pl-port-row{fill:transparent}.pl-port-label{fill:var(--text);font-size:12px}.pl-port-shape,.pl-port-unit{fill:var(--text-muted);font-family:var(--mono);font-size:11px}.pl-port-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2}.pl-port-output .pl-port-dot{fill:var(--accent)}.pl-port-candidate,.pl-port-output{cursor:pointer}.pl-port:hover .pl-port-row,.pl-port-pending .pl-port-row{fill:var(--accent-soft)}.pl-port-candidate .pl-port-dot{stroke-width:3;r:8}.pl-port-incompatible{opacity:.35;cursor:not-allowed}.pl-link-line{fill:none;stroke:var(--accent);stroke-width:2}.pl-link-stack{fill:none;stroke:var(--accent);stroke-width:8;stroke-opacity:.22;stroke-linecap:round}.pl-collection-mark{fill:var(--accent);font-weight:600}.pl-params-mark.pl-sweep-mark text{fill:var(--computed);font-weight:600}.pl-link-warning .pl-link-line{stroke:var(--warning);stroke-dasharray:6 4}.pl-link-editable{cursor:pointer}.pl-link-editable:hover .pl-link-line{stroke:var(--danger);stroke-width:3}.pl-guard path{fill:var(--surface);stroke:var(--accent);stroke-width:2}.pl-guard-invalid path{stroke:var(--danger);fill:var(--danger)}.pl-guard-link{fill:none;stroke:var(--text-muted);stroke-width:1.5;stroke-dasharray:2 4;stroke-linecap:round}.pl-has-selection .pl-guard-link.pl-related{stroke:var(--accent)}.cond-badge{color:var(--accent);font-size:12px}.cond-text{margin:0 0 4px;padding:6px 8px;border-left:3px solid var(--accent);background:var(--bg);font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}.cond-text-invalid{border-left-color:var(--danger)}.cond-errors{margin:4px 0;padding-left:18px;color:var(--danger);font-size:12px}.cond-actions,.cond-tools,.cond-match,.cond-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.cond-actions{margin-top:8px}.cond-tools{justify-content:space-between;margin:6px 0}.cond-last-run{margin:6px 0 0;color:var(--text-muted);font-size:12px}.cond-editor{display:flex;flex-direction:column;gap:6px}.cond-match{font-size:13px}.cond-match button{padding:2px 10px}.cond-match button.active{border-color:var(--accent);color:var(--accent);font-weight:600}.cond-clause{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--border);border-radius:8px}.cond-joiner{align-self:flex-start;margin:-16px 0 0 8px;padding:0 6px;background:var(--surface);color:var(--text-muted);font-size:11px;text-transform:uppercase}.cond-end{flex:1;min-width:0}.cond-number{width:7em}.cond-op{width:4em}.cond-preview{margin:0;font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}.cond-opposite{max-width:60%}.node-port{fill:var(--surface);stroke:var(--accent);stroke-width:2}.node-port-output{fill:var(--accent)}.node-port-linked{stroke-width:3}.port-links{list-style:none;margin:4px 0 0;padding:0}.port-links .hint{margin:2px 0}.io-chip{font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--accent)}.home-account{display:flex;gap:8px}.home-account input{flex:1;min-width:0}.login-screen .home-login-title{margin-top:32px}.visibility-badge{font-size:12px;color:var(--text-muted)}.pl-block-frame{fill:var(--surface-alt);stroke:var(--border-strong);stroke-dasharray:5 3;filter:drop-shadow(var(--node-shadow))}.pl-block-source{cursor:pointer}.pl-block-source .pl-port-dot{fill:var(--accent)}.pl-block:hover .pl-block-frame,.pl-block.pl-port-pending .pl-block-frame{fill:var(--accent-soft)}.pl-block.pl-port-candidate{cursor:pointer}.pl-block.pl-port-candidate .pl-port-dot{stroke-width:3;r:8}.pl-block-name{font-weight:600;fill:var(--text)}.pl-block-kind{fill:var(--accent)}.pl-endpoint{fill:var(--text-muted);font-family:var(--mono);font-size:11px}.pl-endpoint-loose{fill:var(--warning);font-style:italic}.toolbar-end{display:flex;align-items:center;gap:10px;margin-left:auto}.pipeline-description{margin:8px 0 0}.catalog-readonly{min-height:40px}.visibility-icon{vertical-align:-2px;flex:none}.visibility-badge{display:inline-flex;color:var(--text-muted)}.visibility-badge .visibility-public{color:var(--accent)}.visibility-choice{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.visibility-choice .segmented button{display:inline-flex;align-items:center;gap:6px}.run-controls{display:flex;align-items:center;gap:8px;margin-right:8px}.run-stale{color:var(--warning);font-size:12px}.run-status{display:inline-flex;align-items:center;gap:6px;font-size:13px;white-space:nowrap}.run-dot{width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.run-succeeded .run-dot{background:var(--status-available)}.run-failed .run-dot,.run-unreachable .run-dot{background:var(--danger)}.run-partial .run-dot{background:var(--warning)}.run-deploying .run-dot,.run-pending .run-dot,.run-running .run-dot{background:var(--accent);animation:sim-pulse 1.2s ease-in-out infinite}.run-messages p{margin:8px 0}.run-failure{color:var(--danger)}.run-cancelled .run-dot,.run-skipped .run-dot{background:var(--text-muted)}.pl-run-succeeded>.pl-box-frame,.pl-run-succeeded>.pl-block-frame{stroke:var(--status-available);stroke-width:2}.pl-run-failed>.pl-box-frame,.pl-run-failed>.pl-block-frame{stroke:var(--danger);stroke-width:2}.pl-run-running>.pl-box-frame,.pl-run-running>.pl-block-frame{stroke:var(--accent);stroke-width:2;animation:sim-pulse 1.2s ease-in-out infinite}.pl-run-upstream_failed>.pl-box-frame,.pl-run-upstream_failed>.pl-block-frame{stroke-dasharray:4 3;opacity:.6}.pl-run-skipped>.pl-box-frame,.pl-run-skipped>.pl-block-frame{stroke-dasharray:6 4;opacity:.55}.pl-run-cancelled>.pl-box-frame,.pl-run-cancelled>.pl-block-frame{stroke-dasharray:2 3;opacity:.7}.pl-picked>.pl-box-frame,.pl-picked>.pl-block-frame{stroke:var(--accent);stroke-width:3}.codegen-choice{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.codegen-option{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.codegen-option input{margin-top:3px}.pipeline-page-name{font-weight:600;color:var(--text-muted)}.run-log-panel{display:flex;flex-direction:column;height:min(300px,40vh);border-top:1px solid var(--border);background:var(--surface)}.run-log-head{display:flex;align-items:center;gap:10px;padding:6px 16px;border-bottom:1px solid var(--border);font-size:13px}.run-log-tab{padding:2px 0;border:none;border-bottom:2px solid transparent;background:none;color:var(--text-muted);font:inherit;cursor:pointer}.run-log-tab[aria-selected=true]{border-bottom-color:var(--accent);color:inherit;font-weight:600}.run-log-count{margin-left:6px;padding:0 6px;border-radius:999px;background:var(--surface-alt);font-size:11px;font-weight:600}.run-log-count-failed{background:var(--danger);color:#fff}.run-log-messages{flex:1;min-height:0;padding:0 16px;overflow:auto;font-size:13px}.run-log-panel .run-log{flex:1;min-height:0}.run-log{display:flex;flex-direction:column;min-height:0}.run-log-status{display:flex;align-items:center;gap:6px;padding:4px 16px;font-size:12px;color:var(--text-muted)}.run-log-live .run-dot{background:var(--accent);animation:sim-pulse 1.2s ease-in-out infinite}.run-log-lost{color:var(--warning)}.run-log-lines{flex:1;min-height:0;overflow:auto;padding:4px 0;font-size:12px;line-height:1.55}.monitor .run-log-lines{position:relative;max-height:420px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.run-log-empty{padding:4px 16px}.run-log-line{display:grid;grid-template-columns:7.5em minmax(6em,14em) 1fr;gap:10px;padding:0 16px}.run-log-line:hover{background:var(--surface-alt)}.run-log-time{color:var(--text-muted)}.run-log-block{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding:0;border:none;background:none;font:inherit;color:var(--accent);cursor:pointer}.run-log-block.run-log-run{color:var(--text-muted);cursor:default}.run-log-message{white-space:pre-wrap;word-break:break-word}.run-log-task .run-log-message,.run-log-run .run-log-message{font-weight:600}.run-log-value .run-log-message{color:var(--text-muted)}.run-log-error .run-log-message{color:var(--danger)}.run-log-picked{background:var(--accent-soft)}.monitor{flex:1;min-height:0;overflow:auto;padding:12px 16px 32px}.monitor-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}.monitor-runs{display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:20px;align-items:start}.monitor-run-list,.monitor-timeline,.io-ports{width:100%;border-collapse:collapse;font-size:13px}.monitor-run-list th{text-align:left;font-weight:500;color:var(--text-muted);border-bottom:1px solid var(--border);padding:4px 6px}.monitor-run-list td,.monitor-timeline td,.io-ports td{padding:4px 6px;border-bottom:1px solid var(--border);vertical-align:top}.monitor-run-list tbody tr,.monitor-timeline tbody tr{cursor:pointer}.monitor-run-list tbody tr:hover,.monitor-timeline tbody tr:hover{background:var(--surface-alt)}.monitor-run-list tr.selected,.monitor-timeline tr.picked{background:var(--accent-soft)}.monitor-run-list .num,.monitor-timeline .num{text-align:right;white-space:nowrap}.monitor-task-name{width:30%}.monitor-task-status{white-space:nowrap}.monitor-task-bar{position:relative;width:40%}.monitor-bar{position:absolute;top:50%;height:8px;margin-top:-4px;border-radius:4px;background:var(--border-strong)}.monitor-bar-succeeded{background:var(--status-available)}.monitor-bar-failed{background:var(--danger)}.monitor-bar-running{background:var(--accent)}.monitor-bar:has(.monitor-phase){height:12px;margin-top:-6px;overflow:hidden}.monitor-phase{position:absolute;top:0;bottom:0;min-width:1px}.phase-condition{background:var(--phase-condition)}.phase-queue,.phase-pull,.phase-params{background:var(--phase-wait)}.phase-pull{background-image:repeating-linear-gradient(45deg,transparent 0 3px,rgb(255 255 255 / 35%) 3px 5px)}.phase-spawn,.phase-create,.phase-exit{background:var(--phase-container)}.phase-start,.phase-remove{background:var(--phase-container-alt)}.phase-boot{background:var(--phase-boot)}.phase-load{background:var(--phase-load)}.phase-read{background:var(--phase-read)}.phase-compute{background:var(--phase-compute)}.phase-publish,.phase-write{background:var(--phase-write)}.monitor-phase-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;padding:0;list-style:none;font-size:12px}.monitor-phase-legend li{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.monitor-phase-legend .swatch{width:10px;height:10px;border-radius:2px}.monitor.monitor-fill{display:flex;flex-direction:column;overflow:hidden;padding-bottom:12px}.monitor-fill>.monitor-runs{flex:1;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch}.monitor-fill .monitor-history,.monitor-fill .monitor-run{display:flex;flex-direction:column;min-height:0}.monitor-scroll{flex:1;min-height:0;overflow:auto}.monitor-run-detail{display:flex;flex-direction:column;flex:1;min-height:0}.monitor-split{display:flex;flex-direction:column;flex:1;min-height:0;margin-top:8px}.monitor-timeline-pane{flex:1 1 0;min-height:60px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.monitor-log-pane{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-height:60px}.monitor-log-pane .run-log{flex:1}.monitor-log-pane .run-log-lines{max-height:none}.split-handle-horizontal{flex:0 0 9px;margin:0;cursor:row-resize}.split-handle-horizontal:before{top:4px;bottom:auto;left:0;right:0;width:auto;height:1px}.split-handle-horizontal.dragging{cursor:row-resize}.monitor-timeline thead th{position:sticky;top:0;z-index:2;padding:5px 6px;border-bottom:1px solid var(--border);background:var(--surface-alt);color:var(--text-muted);font-size:12px;font-weight:500;text-align:left}.monitor-timeline thead th.num{text-align:right}.monitor-timeline td{padding:3px 6px;vertical-align:middle}.monitor-timeline th.monitor-axis{position:sticky;height:26px;overflow:hidden}.monitor-tick{position:absolute;top:6px;padding-left:3px;border-left:1px solid var(--border-strong);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.monitor-tick-end{transform:translate(-100%);padding:0 3px 0 0;border-left:none;border-right:1px solid var(--border-strong)}.monitor-gridline{position:absolute;top:0;bottom:0;border-left:1px dashed var(--border);pointer-events:none}.monitor-phase-ahead{opacity:.45;background-image:repeating-linear-gradient(-45deg,transparent 0 3px,rgb(255 255 255 / 45%) 3px 5px)}.phase-handoff{background:var(--phase-wait)}.phase-decode,.phase-encode{background:var(--phase-convert)}.phase-drain{background:var(--phase-container-alt)}@media(max-width:900px){.monitor.monitor-fill{overflow:auto}.monitor-fill>.monitor-runs{grid-template-rows:none}.monitor-fill .monitor-history{max-height:40vh}.monitor-fill .monitor-run{height:80vh}}.monitor-io-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.monitor-io-columns h3{margin:0 0 8px;font-size:14px}.io-card{margin-bottom:10px;gap:6px}.io-where{overflow-wrap:anywhere}.io-dir{font-size:11px;font-weight:600;color:var(--text-muted);white-space:nowrap}.io-input{color:var(--accent)}.moved-value{padding:0;text-align:left;font-size:13px}.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:8px 0 12px;padding:0;list-style:none}.batch-cell{display:flex;flex-direction:column;width:100%;padding:6px;gap:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:inherit;text-align:center;cursor:pointer}.batch-cell:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow)}.batch-cell-body{display:flex;align-items:center;justify-content:center;height:110px;overflow:hidden}.batch-cell-body .test-tensor-image,.batch-file{max-width:100%;max-height:110px;min-width:0;object-fit:contain;image-rendering:pixelated}.batch-cell-name{overflow:hidden;font-family:var(--mono);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.batch-number{font-family:var(--mono);font-size:18px}.batch-spark{width:100%;height:60px}.batch-spark polyline{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke}.batch-item-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:10px}.pl-batch-problem,.pl-batch-hint{margin:8px 16px 0}.pl-param-badge.sweep{background:var(--computed-soft);color:var(--computed)}.pl-param-sweep{margin-left:auto;font-size:12px}.pl-param-sweep.active{font-weight:600}.modal.value-viewer{width:min(1400px,96vw);max-height:92vh}.value-viewer .modal-body{overflow:auto}.test-result-roomy{gap:10px;font-size:14px}.test-result-roomy .test-summary{font-size:13px}.test-result-roomy .test-sparkline{height:96px}.test-result-roomy .test-vector{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));font-size:13px}.test-result-roomy .test-vector li{padding:4px 8px}.test-result-roomy .test-matrix,.test-result-roomy .test-matrix.expanded{max-height:64vh}.test-result-roomy .test-matrix table{--step-width: 56px;--column-min-width: 88px;font-size:13px}.test-result-roomy .test-matrix th,.test-result-roomy .test-matrix td{padding:5px 10px}.test-result-roomy .test-tensor-image{width:auto;height:min(64vh,720px);max-height:none;max-width:100%;object-fit:contain}.run-timeline{margin-bottom:14px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.run-timeline-line{display:flex;align-items:flex-end;gap:6px}.run-timeline-track{display:flex;flex:1;min-width:0;gap:2px;margin:0;padding:0 0 4px;overflow-x:auto;list-style:none;scrollbar-width:thin}.run-timeline-track li{position:relative;padding-top:18px}.run-timeline-newday:not(:first-child){margin-left:6px;padding-left:6px;border-left:1px solid var(--border)}.run-timeline-day{position:absolute;top:0;font-size:11px;font-weight:600;color:var(--text-muted);white-space:nowrap}.run-timeline-run{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:46px;padding:5px 6px;border:1px solid transparent;border-radius:6px;background:none;color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums;cursor:pointer}.run-timeline-run:hover{background:var(--surface-alt);color:var(--text)}.run-timeline-run[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--text);font-weight:600}.run-timeline-run .run-dot{width:10px;height:10px}.run-timeline-picked{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:6px;padding-top:8px;border-top:1px solid var(--border)}.run-timeline-count{margin-left:auto}.io-preview{margin-top:4px}.io-preview.batch-cell .batch-cell-body{height:150px}.io-preview.batch-cell .batch-cell-body .test-tensor-image,.io-preview.batch-cell .batch-file{max-height:150px}.io-preview.batch-cell{cursor:default}.io-preview-open{width:100%;padding:0;border:0;background:none;color:inherit;cursor:pointer}.io-preview-large{flex-direction:column;gap:6px}.io-preview-actions{display:flex;gap:12px}.io-preview-plain .moved-scalar{font-size:16px}.io-writes{display:flex;flex-direction:column;gap:4px;margin-top:4px;padding-top:8px;border-top:1px solid var(--border)}.io-writes-list{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.io-write{display:inline-flex;gap:6px;max-width:100%;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:12px;cursor:pointer}.io-write .mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.io-write:hover{border-color:var(--accent)}.io-write[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.io-write-time{color:var(--text-muted);white-space:nowrap}.value-viewer-runs{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.code-view{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.code-view-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--border);background:var(--surface-alt);border-radius:var(--radius) var(--radius) 0 0}.code-view ol{list-style:none;margin:0;padding:8px 0;max-height:520px;overflow:auto;font-size:12px;line-height:1.5}.code-view li{display:flex;gap:12px;padding:0 12px;white-space:pre}.code-view .line-number{min-width:2.5em;text-align:right;color:var(--text-muted);-webkit-user-select:none;user-select:none}.tok-keyword{color:var(--syntax-keyword)}.tok-builtin{color:var(--syntax-builtin)}.tok-function{color:var(--syntax-function)}.tok-string{color:var(--syntax-string)}.tok-number{color:var(--syntax-number)}.tok-comment{color:var(--syntax-comment);font-style:italic}.tok-decorator{color:var(--syntax-decorator)}.monitor-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;padding:10px 14px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:13px}.monitor-summary-item{display:flex;flex-direction:column;gap:2px}.monitor-summary-label{font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.monitor-tabs{margin-bottom:4px}.monitor-tab-help{margin:0 0 14px}.deploy-tag,.lang-badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.6;white-space:nowrap;border:1px solid var(--border);color:var(--text-muted);background:var(--surface-alt)}.deploy-tag-current{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.deploy-tag-ok{color:var(--status-available);border-color:var(--status-available);background:transparent}.lang-python{color:var(--accent)}.lang-go{color:var(--simulated)}.runtimes{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:20px;align-items:start}.runtimes-stale{grid-column:1 / -1;margin:0}.runtime-list{display:flex;flex-direction:column;gap:4px;position:sticky;top:0}.runtime-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;padding:8px 10px;text-align:left;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer}.runtime-item:hover{background:var(--surface-alt)}.runtime-item[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.runtime-item-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runtime-item-meta{grid-column:1 / -1}.runtime-view{display:flex;flex-direction:column;gap:14px;min-width:0}.runtime-view-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.runtime-view-head h3{margin:0;font-size:17px}.runtime-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.runtime-ports{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0}.runtime-ports h4,.runtime-file-group h4{margin:0 0 6px;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.runtime-ports ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13px}.runtime-ports p{margin:0 0 4px;overflow-wrap:anywhere}.shape-icon{display:inline-block;min-width:1.8em;color:var(--text-muted);font-family:var(--mono);font-size:11px}.runtime-files{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);gap:12px;align-items:start}.runtime-file-list{display:flex;flex-direction:column;gap:12px}.runtime-file-group{display:flex;flex-direction:column;gap:2px}.runtime-file-group button{padding:3px 8px;border:none;border-radius:6px;background:transparent;color:var(--text);text-align:left;font-family:var(--mono);font-size:12px;overflow-wrap:anywhere;cursor:pointer}.runtime-file-group button:hover{background:var(--surface-alt)}.runtime-file-group button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.runtime-technical summary{cursor:pointer;color:var(--text-muted)}.runtime-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin:8px 0 0}.runtime-facts dt{color:var(--text-muted)}.runtime-facts dd{margin:0;overflow-wrap:anywhere}.monitor-fill>.runtimes{flex:1;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch}.monitor-fill>.runtimes:has(>.runtimes-stale){grid-template-rows:auto minmax(0,1fr)}.monitor-fill .runtime-list,.monitor-fill .runtime-view{min-height:0;overflow:auto}.monitor-fill .runtime-files{flex:1 0 240px;min-height:240px;grid-template-rows:minmax(0,1fr);align-items:stretch}.monitor-fill .runtime-file-list{min-height:0;overflow:auto}.monitor-fill .runtime-files .code-view{display:flex;flex-direction:column;min-height:0}.monitor-fill .runtime-files .code-view ol{flex:1;min-height:0;max-height:none}.deployments{flex:1;min-height:0;overflow:auto;padding:16px 16px 40px;max-width:980px;width:100%;margin:0 auto;box-sizing:border-box}.deployments-intro h2{margin:0 0 4px;font-size:18px}.deployments-intro p{margin:0 0 16px}.deployment-list{list-style:none;margin:0;padding:0}.deployment{position:relative;padding:0 0 14px 26px}.deployment:before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;background:var(--border)}.deployment:first-child:before{top:18px}.deployment:last-child:before{bottom:calc(100% - 18px)}.deployment-marker{position:absolute;left:1px;top:13px;width:12px;height:12px;border-radius:50%;border:2px solid var(--border-strong);background:var(--bg);box-sizing:border-box}.deployment-current .deployment-marker{border-color:var(--accent);background:var(--accent)}.deployment-card{background:var(--surface);gap:8px}.deployment-current .deployment-card{border-color:var(--accent)}.deployment-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.deployment-title p,.deployment-card p{margin:0}.deployment-changes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.change{padding:2px 8px;border-radius:6px;font-size:12px;background:var(--surface-alt)}.change-added{color:var(--status-available)}.change-removed{color:var(--danger)}.change-program,.change-language{color:var(--accent)}.deployment-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}.deployment-blocks summary{cursor:pointer;color:var(--text-muted);font-size:13px}.deployment-blocks table{width:100%;margin-top:8px;border-collapse:collapse;font-size:13px}.deployment-blocks th{text-align:left;font-weight:500;color:var(--text-muted);border-bottom:1px solid var(--border);padding:4px 6px}.deployment-blocks td{padding:4px 6px;border-bottom:1px solid var(--border);vertical-align:top}.deployment-image code{overflow-wrap:anywhere;font-size:12px}@media(max-width:900px){.monitor-runs,.monitor-io-columns,.runtimes,.runtime-files,.runtime-summary{grid-template-columns:minmax(0,1fr)}.runtime-list{position:static}.run-log-line{grid-template-columns:minmax(5em,9em) 1fr}.run-log-time{display:none}}@media(prefers-reduced-motion:reduce){.run-log-live .run-dot,.run-deploying .run-dot,.run-pending .run-dot,.run-running .run-dot,.pl-run-running>.pl-box-frame,.pl-run-running>.pl-block-frame{animation:none}}@media(max-width:720px){.run-controls .run-status{display:none}}.pipeline-page>.toolbar{flex-wrap:nowrap}.pipeline-page>.toolbar>*{flex:none}.pipeline-page>.toolbar>.spacer{flex:1}.pipeline-page>.toolbar>.pipeline-title{flex:0 1 auto;min-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pipeline-page .user-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){.pipeline-page>.toolbar{flex-wrap:wrap}}.add-block{position:relative}.add-block-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:20;width:min(560px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.add-block-kinds{display:flex;flex-wrap:wrap;gap:4px}.add-block-kinds button{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:12px;border-radius:999px}.add-block-kinds button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.add-block-count{min-width:16px;padding:0 4px;border-radius:999px;background:var(--surface-alt);color:var(--text-muted);font-size:11px;font-weight:500;text-align:center;letter-spacing:0}.add-block-panel input[type=search]{width:100%;box-sizing:border-box}.add-block-help{margin:-2px 2px 0}.add-block-list{max-height:min(460px,60vh);overflow-y:auto;display:flex;flex-direction:column;gap:8px}.add-block-group h4{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:6px;margin:0;padding:4px 2px;background:var(--surface);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.add-block-group p{margin:2px 8px}.add-block-option{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer}.add-block-option.active{background:var(--accent-soft)}.add-block-icon{width:16px;flex:none;text-align:center;color:var(--text-muted);line-height:1.4}.add-block-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.add-block-head{display:flex;align-items:baseline;gap:8px;min-width:0}.add-block-label{min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-block-head code{margin-left:auto;flex:0 1 auto;min-width:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text-muted)}.add-block-description{font-size:12px;color:var(--text-muted);line-height:1.35;overflow-wrap:anywhere}.add-block-foot{margin:0;padding-top:6px;border-top:1px solid var(--border)}.add-block-create .add-block-icon,.add-block-create .add-block-label{color:var(--accent)}.field-hint{font-size:12px;color:var(--text-muted);line-height:1.4}p.field-hint{margin:0}.checkbox-field{display:flex;align-items:flex-start;gap:6px;font-size:13px;cursor:pointer}.checkbox-field input{margin-top:3px}.checkbox-field .field-hint{display:block}.checkbox-field.align-end{align-self:end;padding-bottom:6px}.endpoint-form .panel-section{display:flex;flex-direction:column;gap:10px}.endpoint-form .field-grid>.field{align-self:start}.endpoint-choice{display:flex;flex-wrap:wrap}.endpoint-choice button{flex:1;padding:4px 8px;font-size:12px}.endpoint-files{list-style:none;margin:-4px 0 0;padding:4px;border:1px solid var(--border);border-radius:6px;max-height:220px;overflow-y:auto}.endpoint-files li.muted{padding:4px 8px}.endpoint-files button{display:flex;width:100%;align-items:baseline;gap:8px;padding:3px 8px;border:none;border-radius:4px;background:none;text-align:left}.endpoint-files button .mono{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.endpoint-files button.active{background:var(--accent-soft);color:var(--accent)}.endpoint-query{min-height:84px}.endpoint-sql{margin:0;padding:6px 8px;border-radius:4px;background:var(--surface-alt);font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.endpoint-form-actions .grow{overflow:hidden;text-overflow:ellipsis}.endpoint-shared{margin:0 0 4px}.endpoint-copy-of{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.endpoint-test{margin-top:10px}.ep-test{display:flex;flex-direction:column;gap:8px}.ep-checks{list-style:none;margin:0;padding:0;font-size:12px}.ep-checks li{display:flex;gap:6px;padding:1px 0}.ep-check-mark{width:12px;flex:none;text-align:center;font-weight:600}.ep-checks .ok .ep-check-mark{color:var(--status-available)}.ep-checks .failed .ep-check-mark,.ep-checks .failed strong{color:var(--danger)}.ep-checks .skipped{color:var(--text-muted)}.ep-value{font-size:16px}.ep-value-scroll{max-height:200px;overflow:auto;border:1px solid var(--border);border-radius:4px}.ep-value-table{border-collapse:collapse;font-size:11px}.ep-value-table th,.ep-value-table td{padding:2px 6px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.ep-value-table th{color:var(--text-muted);font-weight:500}.ep-lines,.ep-file-lines ol{margin:0;max-height:200px;overflow:auto;font-size:11px}.ep-file-lines ol{list-style:none;padding:0}.ep-file-lines li{display:flex;gap:8px}.ep-file-lines li.faulty{background:color-mix(in srgb,var(--danger) 12%,transparent)}.ep-line-number{width:28px;flex:none;text-align:right;color:var(--text-muted)}.ep-line-text{white-space:pre}.ep-line-error{color:var(--danger);white-space:nowrap}.graph-empty.pipeline-empty{top:50%;transform:translate(-50%,-50%);padding:16px 20px;text-align:center;max-width:calc(100% - 32px)}.pipeline-empty p{margin:0 0 12px}.pipeline-empty p.small{margin:12px 0 0}.pipeline-empty-steps{display:grid;grid-template-columns:repeat(3,minmax(0,200px));gap:10px}.pipeline-empty-steps button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;height:auto;white-space:normal}.pipeline-empty-icon{font-size:22px;color:var(--accent)}@media(max-width:720px){.pipeline-empty-steps{grid-template-columns:1fr}}.pl-params-mark text{fill:var(--accent);font-size:12px;font-weight:600}.pl-block-transformer{cursor:pointer}.pl-block-transformer>.pl-block-frame{fill:var(--computed-soft);stroke:var(--computed);stroke-dasharray:none}.pl-block-transformer .pl-block-kind{fill:var(--computed)}.pl-block-transformer.pl-transformer-invalid>.pl-block-frame{stroke:var(--danger);stroke-dasharray:4 3}.pl-transformer-port .pl-port-dot{fill:var(--surface);stroke:var(--computed);stroke-width:2}.pl-transformer-port.pl-port-pending .pl-port-dot,.pl-transformer-port.pl-port-candidate .pl-port-dot{fill:var(--computed);stroke-width:3;r:8}.pl-transformer-port.pl-port-incompatible .pl-port-dot{opacity:.35}.tf-chain{display:flex;flex-direction:column;gap:8px}.tf-takes{display:flex;align-items:center;gap:8px}.tf-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.tf-step{border:1px solid var(--border);border-radius:8px;padding:6px 8px;background:var(--surface)}.tf-step-wrong{border-color:var(--danger)}.tf-step-after{opacity:.6}.tf-step-head{display:flex;align-items:center;gap:6px;min-width:0}.tf-step-n{font-family:var(--mono);font-size:11px;color:var(--text-muted)}.tf-step-gives{font-family:var(--mono);font-size:11px;color:var(--computed);margin-left:auto;white-space:nowrap}.tf-step-tools{display:flex;gap:2px}.tf-args{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:6px}.tf-arg{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-muted)}.tf-arg input{width:6.5em}.tf-add select{width:100%}.tf-save{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.file-preview{display:block;margin:8px 0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:repeating-conic-gradient(var(--surface-alt) 0% 25%,var(--surface) 0% 50%) 50% / 16px 16px}.file-preview img{display:block;max-width:100%;max-height:320px;margin:0 auto;image-rendering:pixelated}.store-run-pick{display:flex;align-items:center;gap:8px;margin:4px 0 8px}.store-run-pick select{min-width:0;flex:1}.store-files-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.store-files-grid .batch-cell-body{height:80px}.store-files-grid .batch-file{max-height:80px}.file-preview-text{margin:8px 0;padding:8px;max-height:260px;overflow:auto;font-size:11px;background:var(--surface-alt);border-radius:6px}.graph-movable{cursor:grab}.graph-dragging{cursor:grabbing;opacity:.85;filter:drop-shadow(0 6px 14px rgb(16 24 40 / 25%))}.drop-indicator{fill:var(--accent-soft);fill-opacity:.6;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4;pointer-events:none}.drop-indicator-column rect{fill:var(--accent-soft);stroke:var(--accent);stroke-dasharray:4 4;pointer-events:none}.drop-indicator-column text{fill:var(--accent);font-size:12px;pointer-events:none}.kbd{display:inline-block;min-width:1.6em;padding:0 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface);color:var(--text-muted);font-family:var(--mono);font-size:11px;line-height:1.5;text-align:center}.drawer-item .kbd{margin-left:auto}.shortcut-help{display:flex;flex-direction:column;gap:14px}.shortcut-help h3{margin:0 0 6px;font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.shortcut-help dl{margin:0;display:flex;flex-direction:column;gap:6px}.shortcut-row{display:grid;grid-template-columns:48px 1fr;align-items:center}.shortcut-row dd{margin:0}.account-tabs{display:flex;gap:4px;margin:-8px 0 20px;border-bottom:1px solid var(--border)}.account-tab{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-muted);text-decoration:none;white-space:nowrap}.account-tab:hover{color:var(--text)}.account-tab[aria-current=page]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.account-tab .kbd{opacity:.7}.list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.list-search{flex:1 1 220px;min-width:0}.list-toolbar .view-switch{margin-left:auto}.pager{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:16px}.pager-page{min-width:32px;padding:4px 8px}.pager-page[aria-current=page]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.pager-gap{padding:0 4px;color:var(--text-muted)}.pager .muted{margin-left:8px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}a.button{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:inherit;text-decoration:none;white-space:nowrap}a.button:hover{background:var(--surface-alt)}.item-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.item-card{display:flex;gap:14px;height:100%;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}.item-card:hover{border-color:var(--accent);transform:translateY(-1px)}.item-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.item-icon{flex:0 0 40px;height:40px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:18px}.item-pipeline .item-icon{background:var(--computed-soft);color:var(--computed)}.item-body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.item-name{display:flex;align-items:center;gap:6px;min-width:0}.item-title{overflow:hidden;font-weight:600;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.item-description{overflow:hidden;color:var(--text-muted);font-size:13px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.item-description.muted{font-style:italic;opacity:.7}.item-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.item-chip{padding:1px 8px;border-radius:999px;background:var(--surface-alt);color:var(--text-muted);font-size:12px}.item-chip code{font-size:11px}.studio-page{height:100%;display:flex;flex-direction:column}.studio-back{color:var(--text-muted);text-decoration:none;font-size:14px}.studio-back:hover{color:var(--accent)}.studio-title{font-weight:600}.studio{flex:1;display:grid;grid-template-columns:250px minmax(0,1fr) minmax(320px,400px);grid-template-rows:minmax(0,1fr);min-height:0}.studio-rail{display:flex;flex-direction:column;gap:8px;padding:12px;border-right:1px solid var(--border);background:var(--surface);overflow-y:auto}.studio-rail .list-toolbar.compact{flex-direction:column;align-items:stretch;gap:6px;margin:0}.list-toolbar.compact .list-search{flex:none}.studio-new{width:100%}.studio-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.studio-list-item{display:flex;flex-direction:column;gap:1px;padding:6px 8px;border-radius:6px;color:inherit;text-decoration:none}.studio-list-item:hover{background:var(--surface-alt)}.studio-list-item[aria-current=page]{background:var(--computed-soft);box-shadow:inset 3px 0 0 var(--computed)}.studio-list-name{overflow:hidden;font-weight:600;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.studio-sample-dot{margin-left:6px;color:var(--computed);font-size:8px;vertical-align:middle}.studio-list-meta{display:flex;justify-content:space-between;color:var(--text-muted);font-size:12px}.studio-stage{display:flex;flex-direction:column;justify-content:safe center;gap:10px;min-width:0;padding:28px 16px;background-color:var(--bg);background-image:radial-gradient(var(--grid-dot) 1px,transparent 1px);background-size:18px 18px;overflow:auto}.studio-note{max-width:760px;margin:0 auto;text-align:center}.studio-blank{grid-column:2 / 4;padding:48px 24px;text-align:center}.studio-scene{display:flex;align-items:center;justify-content:safe center;width:100%;margin:12px auto 8px}.studio-block{display:flex;flex-direction:column;border-radius:10px;background:var(--surface);box-shadow:var(--node-shadow);text-align:left}.studio-source,.studio-store{flex:0 1 190px;min-width:130px;border:1.5px dashed var(--border-strong);background:var(--surface-alt);cursor:pointer}.studio-source:hover,.studio-store:hover{border-color:var(--accent)}.studio-source.studio-drop-over{border-color:var(--accent);border-style:solid;background:var(--accent-soft)}.studio-block.active{outline:2px solid var(--accent);outline-offset:2px}.studio-block-head{display:flex;align-items:center;gap:6px;padding:8px 12px;border:none;background:none;font-weight:600;font-size:14px;text-align:left;cursor:pointer}.studio-block-kind{color:var(--accent)}.studio-test-badge{margin-left:auto;padding:0 6px;border:1px solid var(--border-strong);border-radius:999px;color:var(--text-muted);font-size:10px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.studio-block-body{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 12px 12px}.studio-thumb{display:grid;place-items:center;width:100%;height:120px;overflow:hidden;border-radius:6px;background:var(--surface)}.studio-thumb .test-tensor-image,.studio-thumb .batch-file,.studio-step-thumb .test-tensor-image,.studio-step-thumb .batch-file,.studio-tile-thumb .test-tensor-image,.studio-tile-thumb .batch-file{width:auto;height:100%;max-width:100%;object-fit:contain;image-rendering:pixelated}.studio-block-meta{max-width:100%;overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.studio-empty{display:grid;place-items:center;width:100%;height:120px;font-size:13px;text-align:center;color:var(--text-muted)}.studio-transformer{flex:1 1 340px;min-width:250px;max-width:380px;border:1.5px solid var(--computed);background:var(--computed-soft)}.studio-transformer .studio-block-kind{color:var(--computed)}.studio-transformer.invalid{border-color:var(--danger);border-style:dashed}.studio-running{width:8px;height:8px;margin-left:auto;border-radius:50%;background:var(--computed);animation:studio-pulse .9s ease-in-out infinite alternate}@keyframes studio-pulse{0%{opacity:.25}to{opacity:1}}.studio-steps{list-style:none;margin:0;padding:0 8px 8px;display:flex;flex-direction:column;gap:4px}.studio-step{display:grid;grid-template-columns:16px minmax(0,1fr) auto 40px;align-items:center;gap:8px;width:100%;padding:4px 6px;border:1px solid transparent;border-radius:6px;background:var(--surface);font-size:13px;text-align:left}.studio-step:hover{border-color:var(--computed)}.studio-step.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.studio-step.failed{border-color:var(--danger);color:var(--danger)}.studio-step.after{opacity:.45}.studio-step-n{color:var(--text-muted);font-family:var(--mono);font-size:11px}.studio-step-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-step-gives{font-family:var(--mono);font-size:11px}.studio-step-thumb{display:grid;place-items:center;height:32px;overflow:hidden}.studio-step-thumb .batch-number{font-size:11px}.studio-step-thumb .batch-spark{height:28px}.studio-no-step{margin:0;padding:0 12px 12px}.studio-error{margin:0;padding:0 12px 10px}.studio-arrow{flex:0 1 64px;min-width:44px;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--accent)}.studio-arrow svg{width:100%;height:12px}.studio-arrow line{stroke:currentColor;stroke-width:2}.studio-arrow path{fill:currentColor}.studio-arrow-label{color:var(--text-muted);font-family:var(--mono);font-size:11px;white-space:nowrap}.studio-arrow.invalid{color:var(--danger)}.studio-inspector{padding:14px 16px 32px;border-left:1px solid var(--border);background:var(--surface);overflow-y:auto}.studio-inspector>section{display:flex;flex-direction:column;gap:10px}.studio-inspector>section[hidden]{display:none}.studio-panel-head{display:flex;align-items:center;gap:8px}.studio-panel-head h2{margin:0;font-size:17px}.studio-name{flex:1;font-size:16px;font-weight:600}.studio-description{width:100%;resize:vertical}.studio-subhead{margin:6px 0 0;color:var(--text-muted);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.studio-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.studio-danger-zone{padding-top:10px;border-top:1px solid var(--border)}.studio-gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.studio-tile{display:flex;flex-direction:column;gap:4px;width:100%;padding:4px;border-radius:8px;white-space:normal}.studio-tile[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.studio-tile-thumb{display:grid;place-items:center;height:64px;overflow:hidden;border-radius:4px;background:var(--surface-alt)}.studio-tile-text{font-family:var(--mono);font-size:11px;color:var(--text-muted)}.studio-tile-label{font-size:12px}.studio-advanced summary{cursor:pointer;color:var(--text-muted);font-size:13px}.studio-advanced textarea{width:100%;margin:6px 0;font-size:12px}.studio-log{margin:0;padding:6px 8px;border-radius:6px;background:var(--surface-alt);font-size:12px;white-space:pre-wrap}@media(max-width:1200px){.studio{grid-template-columns:220px minmax(0,1fr)}.studio-inspector{grid-column:2;border-left:none;border-top:1px solid var(--border)}.studio-blank{grid-column:2}}@media(max-width:860px){.studio{grid-template-columns:minmax(0,1fr)}.studio-rail{max-height:260px;border-right:none;border-bottom:1px solid var(--border)}.studio-inspector,.studio-blank{grid-column:1}.studio-scene{flex-direction:column;align-items:stretch}.studio-source,.studio-store,.studio-transformer{flex:none;min-width:0}.studio-arrow{flex:none;margin:4px 0}.studio-arrow svg{display:none}.studio-arrow:after{content:"↓";font-size:18px;line-height:1}.studio-stage{padding:16px}}.studio-head-title{display:flex;align-items:center;gap:6px;min-width:0;padding:0;border:none;background:none;font-weight:600;text-align:left;overflow:hidden;text-overflow:ellipsis}.studio-head-title:hover:not(:disabled){background:none;color:var(--computed)}.studio-transformer .studio-block-head{cursor:default}.studio-transformer .studio-running{margin-left:auto}.studio-run{margin-left:auto;padding:2px 10px;font-size:12px}.studio-running+.studio-run{margin-left:0}.studio-stale{margin:0;padding:0 12px 8px;color:var(--warning)}.studio-transformer.stale .studio-step-thumb,.studio-store.stale .studio-thumb{opacity:.4}.studio-store{flex:0 1 auto;min-width:170px;max-width:540px}.studio-source{flex-shrink:4}.studio-scene .studio-transformer{flex-shrink:4;min-width:220px}.studio-scene .studio-arrow{flex-shrink:4;min-width:34px}.studio-thumb.studio-output{height:auto;min-height:120px;padding:6px}.studio-thumb.studio-output .test-tensor-image,.studio-thumb.studio-output .batch-file{width:auto;height:auto;min-height:120px;max-width:min(480px,100%);max-height:480px;object-fit:contain}.view-switch{display:inline-flex;padding:2px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface)}.view-switch button{display:grid;place-items:center;width:30px;height:26px;padding:0;border:none;border-radius:6px;background:none;color:var(--text-muted)}.view-switch button:hover:not(:disabled){background:var(--surface-alt);color:var(--text)}.view-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.view-switch svg{width:15px;height:15px;fill:currentColor}.item-list.view-list{display:block;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.item-list.view-list>li+li{border-top:1px solid var(--border)}.item-list.view-list .item-card{align-items:center;gap:12px;padding:9px 14px;border:none;border-radius:0;box-shadow:none}.item-list.view-list .item-card:hover{background:var(--surface-alt);transform:none}.item-list.view-list .item-icon{flex-basis:30px;height:30px;border-radius:8px;font-size:14px}.item-list.view-list .item-body{flex-direction:row;align-items:center;gap:14px}.item-list.view-list .item-name{flex:0 1 30%}.item-list.view-list .item-description{flex:1;min-width:0}.item-list.view-list .item-meta{flex:none;flex-wrap:nowrap;margin:0}@media(max-width:720px){.item-list.view-list .item-body{flex-wrap:wrap;row-gap:2px}.item-list.view-list .item-name{flex:1 1 100%}.item-list.view-list .item-meta{flex-wrap:wrap}}
