@sapiom/harness 0.1.6 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +105 -0
- package/dist/cli/args.d.ts +16 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +80 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/bin.js +12 -65
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/settings.d.ts.map +1 -1
- package/dist/cli/settings.js +33 -1
- package/dist/cli/settings.js.map +1 -1
- package/dist/core/adapters/claude-code.d.ts +60 -2
- package/dist/core/adapters/claude-code.d.ts.map +1 -1
- package/dist/core/adapters/claude-code.js +119 -32
- package/dist/core/adapters/claude-code.js.map +1 -1
- package/dist/core/adapters/codex.d.ts +21 -2
- package/dist/core/adapters/codex.d.ts.map +1 -1
- package/dist/core/adapters/codex.js +53 -2
- package/dist/core/adapters/codex.js.map +1 -1
- package/dist/core/adapters/detect.d.ts +9 -0
- package/dist/core/adapters/detect.d.ts.map +1 -1
- package/dist/core/adapters/detect.js +9 -0
- package/dist/core/adapters/detect.js.map +1 -1
- package/dist/core/canvas-body.d.ts +28 -28
- package/dist/core/canvas-body.d.ts.map +1 -1
- package/dist/core/canvas-body.js +117 -55
- package/dist/core/canvas-body.js.map +1 -1
- package/dist/core/canvas-derive.d.ts +43 -0
- package/dist/core/canvas-derive.d.ts.map +1 -0
- package/dist/core/canvas-derive.js +95 -0
- package/dist/core/canvas-derive.js.map +1 -0
- package/dist/core/canvas-enrichment.d.ts +52 -127
- package/dist/core/canvas-enrichment.d.ts.map +1 -1
- package/dist/core/canvas-enrichment.js +17 -178
- package/dist/core/canvas-enrichment.js.map +1 -1
- package/dist/core/canvas-graph.d.ts +40 -1
- package/dist/core/canvas-graph.d.ts.map +1 -1
- package/dist/core/canvas-graph.js +71 -9
- package/dist/core/canvas-graph.js.map +1 -1
- package/dist/core/canvas-interconnections.d.ts +26 -8
- package/dist/core/canvas-interconnections.d.ts.map +1 -1
- package/dist/core/canvas-interconnections.js +132 -24
- package/dist/core/canvas-interconnections.js.map +1 -1
- package/dist/core/canvas-manifest-check.d.ts.map +1 -1
- package/dist/core/canvas-manifest-check.js +15 -2
- package/dist/core/canvas-manifest-check.js.map +1 -1
- package/dist/core/canvas-render.d.ts +8 -15
- package/dist/core/canvas-render.d.ts.map +1 -1
- package/dist/core/canvas-render.js +29 -41
- package/dist/core/canvas-render.js.map +1 -1
- package/dist/core/canvas-run-state.d.ts +41 -0
- package/dist/core/canvas-run-state.d.ts.map +1 -1
- package/dist/core/canvas-run-state.js +136 -0
- package/dist/core/canvas-run-state.js.map +1 -1
- package/dist/core/canvas-svg.d.ts +9 -4
- package/dist/core/canvas-svg.d.ts.map +1 -1
- package/dist/core/canvas-svg.js +84 -13
- package/dist/core/canvas-svg.js.map +1 -1
- package/dist/core/canvas-template.d.ts +9 -10
- package/dist/core/canvas-template.d.ts.map +1 -1
- package/dist/core/canvas-template.js +57 -20
- package/dist/core/canvas-template.js.map +1 -1
- package/dist/core/canvas-watcher.d.ts +22 -1
- package/dist/core/canvas-watcher.d.ts.map +1 -1
- package/dist/core/canvas-watcher.js +111 -30
- package/dist/core/canvas-watcher.js.map +1 -1
- package/dist/core/collector/normalizer.d.ts +8 -0
- package/dist/core/collector/normalizer.d.ts.map +1 -1
- package/dist/core/collector/normalizer.js +8 -0
- package/dist/core/collector/normalizer.js.map +1 -1
- package/dist/core/collector/store.d.ts +75 -1
- package/dist/core/collector/store.d.ts.map +1 -1
- package/dist/core/collector/store.js +334 -2
- package/dist/core/collector/store.js.map +1 -1
- package/dist/core/errors.d.ts +10 -4
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +11 -5
- package/dist/core/errors.js.map +1 -1
- package/dist/core/example-seed.d.ts +8 -0
- package/dist/core/example-seed.d.ts.map +1 -1
- package/dist/core/example-seed.js +47 -10
- package/dist/core/example-seed.js.map +1 -1
- package/dist/core/inject/system-prompt.d.ts +8 -0
- package/dist/core/inject/system-prompt.d.ts.map +1 -1
- package/dist/core/inject/system-prompt.js +3 -1
- package/dist/core/inject/system-prompt.js.map +1 -1
- package/dist/core/macros.d.ts.map +1 -1
- package/dist/core/macros.js +5 -6
- package/dist/core/macros.js.map +1 -1
- package/dist/core/paths.d.ts +1 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +1 -0
- package/dist/core/paths.js.map +1 -1
- package/dist/core/record-archive.d.ts +187 -0
- package/dist/core/record-archive.d.ts.map +1 -0
- package/dist/core/record-archive.js +465 -0
- package/dist/core/record-archive.js.map +1 -0
- package/dist/core/rehydration.d.ts +72 -0
- package/dist/core/rehydration.d.ts.map +1 -0
- package/dist/core/rehydration.js +72 -0
- package/dist/core/rehydration.js.map +1 -0
- package/dist/core/resume-brief.d.ts +130 -0
- package/dist/core/resume-brief.d.ts.map +1 -0
- package/dist/core/resume-brief.js +404 -0
- package/dist/core/resume-brief.js.map +1 -0
- package/dist/core/rolling-summary.d.ts +130 -0
- package/dist/core/rolling-summary.d.ts.map +1 -0
- package/dist/core/rolling-summary.js +227 -0
- package/dist/core/rolling-summary.js.map +1 -0
- package/dist/core/session-manager.d.ts +11 -3
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +56 -7
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-record.d.ts +165 -0
- package/dist/core/session-record.d.ts.map +1 -0
- package/dist/core/session-record.js +470 -0
- package/dist/core/session-record.js.map +1 -0
- package/dist/core/spawn-target.d.ts +12 -0
- package/dist/core/spawn-target.d.ts.map +1 -0
- package/dist/core/spawn-target.js +187 -0
- package/dist/core/spawn-target.js.map +1 -0
- package/dist/core/task-manager.d.ts.map +1 -1
- package/dist/core/task-manager.js +9 -1
- package/dist/core/task-manager.js.map +1 -1
- package/dist/core/template-catalog.d.ts +48 -0
- package/dist/core/template-catalog.d.ts.map +1 -0
- package/dist/core/template-catalog.js +338 -0
- package/dist/core/template-catalog.js.map +1 -0
- package/dist/core/workflow-registry.d.ts.map +1 -1
- package/dist/core/workflow-registry.js +2 -2
- package/dist/core/workflow-registry.js.map +1 -1
- package/dist/core/workspace-watcher.d.ts.map +1 -1
- package/dist/core/workspace-watcher.js +4 -3
- package/dist/core/workspace-watcher.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/profiles/default.d.ts.map +1 -1
- package/dist/profiles/default.js +9 -14
- package/dist/profiles/default.js.map +1 -1
- package/dist/server/canvas.d.ts.map +1 -1
- package/dist/server/canvas.js +7 -7
- package/dist/server/canvas.js.map +1 -1
- package/dist/server/fs.d.ts.map +1 -1
- package/dist/server/fs.js +17 -1
- package/dist/server/fs.js.map +1 -1
- package/dist/server/index.d.ts +12 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +321 -50
- package/dist/server/index.js.map +1 -1
- package/dist/server/ingest.d.ts +11 -0
- package/dist/server/ingest.d.ts.map +1 -1
- package/dist/server/ingest.js +1 -0
- package/dist/server/ingest.js.map +1 -1
- package/dist/server/macros.d.ts +4 -6
- package/dist/server/macros.d.ts.map +1 -1
- package/dist/server/macros.js.map +1 -1
- package/dist/server/rest.d.ts +18 -6
- package/dist/server/rest.d.ts.map +1 -1
- package/dist/server/rest.js +185 -48
- package/dist/server/rest.js.map +1 -1
- package/dist/server/templates.d.ts +24 -0
- package/dist/server/templates.d.ts.map +1 -0
- package/dist/server/templates.js +54 -0
- package/dist/server/templates.js.map +1 -0
- package/dist/shared/types.d.ts +477 -29
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +19 -11
- package/dist/shared/types.js.map +1 -1
- package/dist/web/assets/index-SYpugKQ1.css +32 -0
- package/dist/web/assets/index-vYYd44hZ.js +446 -0
- package/dist/web/index.html +2 -2
- package/package.json +5 -4
- package/dist/core/canvas-enrich.d.ts +0 -115
- package/dist/core/canvas-enrich.d.ts.map +0 -1
- package/dist/core/canvas-enrich.js +0 -186
- package/dist/core/canvas-enrich.js.map +0 -1
- package/dist/profiles/canvas-guidelines.d.ts +0 -20
- package/dist/profiles/canvas-guidelines.d.ts.map +0 -1
- package/dist/profiles/canvas-guidelines.js +0 -48
- package/dist/profiles/canvas-guidelines.js.map +0 -1
- package/dist/web/assets/index-DCtyI4VW.css +0 -32
- package/dist/web/assets/index-WSw5RvYR.js +0 -445
- package/dist/web/welcome-hero-dark.png +0 -0
- package/dist/web/welcome-hero-light.png +0 -0
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
|
|
3
|
-
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
|
4
|
-
* https://github.com/chjj/term.js
|
|
5
|
-
* @license MIT
|
|
6
|
-
*
|
|
7
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
9
|
-
* in the Software without restriction, including without limitation the rights
|
|
10
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
12
|
-
* furnished to do so, subject to the following conditions:
|
|
13
|
-
*
|
|
14
|
-
* The above copyright notice and this permission notice shall be included in
|
|
15
|
-
* all copies or substantial portions of the Software.
|
|
16
|
-
*
|
|
17
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
-
* THE SOFTWARE.
|
|
24
|
-
*
|
|
25
|
-
* Originally forked from (with the author's permission):
|
|
26
|
-
* Fabrice Bellard's javascript vt100 for jslinux:
|
|
27
|
-
* http://bellard.org/jslinux/
|
|
28
|
-
* Copyright (c) 2011 Fabrice Bellard
|
|
29
|
-
* The original design remains. The terminal itself
|
|
30
|
-
* has been extended to include xterm CSI codes, among
|
|
31
|
-
* other features.
|
|
32
|
-
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}:root,[data-theme=dark]{color-scheme:dark;--bg: #0c0c0e;--list: #0e0e11;--s1: #131316;--s2: #1a1a1e;--s3: #232327;--line: rgba(255, 255, 255, .08);--line-2: rgba(255, 255, 255, .14);--hl: rgba(255, 255, 255, .05);--hl-2: rgba(255, 255, 255, .1);--ink: #f3f3f5;--ink-muted: #a6a6ae;--ink-faint: #83838d;--btn: #f3f3f5;--btn-ink: #0c0c0e;--red: #e05a57;--red-text: #efa6a3;--amber: #d99a34;--amber-text: #e8c58a;--green: #3bb56f;--green-text: #8fdcac;--slate: #8a8a94;--shadow: 0 24px 64px -20px rgba(0, 0, 0, .6);--scrim-bg: rgba(4, 4, 6, .55)}[data-theme=light]{color-scheme:light;--bg: #fbfbfc;--list: #f3f3f5;--s1: #ffffff;--s2: #f2f2f4;--s3: #eaeaee;--line: rgba(18, 18, 22, .08);--line-2: rgba(18, 18, 22, .15);--hl: rgba(18, 18, 22, .04);--hl-2: rgba(18, 18, 22, .075);--ink: #16161a;--ink-muted: #55555f;--ink-faint: #6b6b75;--btn: #16161a;--btn-ink: #ffffff;--red: #cf3d39;--red-text: #ab2925;--amber: #b57a12;--amber-text: #855700;--green: #219d57;--green-text: #0f7740;--slate: #77777f;--shadow: 0 24px 64px -28px rgba(20, 20, 28, .28);--scrim-bg: rgba(24, 24, 30, .32)}:root,[data-theme=dark],[data-theme=light]{--background: var(--bg);--foreground: var(--ink);--card: var(--s1);--card-foreground: var(--ink);--popover: var(--s1);--popover-foreground: var(--ink);--muted: var(--s2);--muted-foreground: var(--ink-muted);--border-soft: var(--line);--border-strong: var(--line-2);--border: var(--border-soft);--input: var(--border-soft);--ring: var(--ink-muted);--primary: var(--btn);--primary-foreground: var(--btn-ink);--secondary: var(--s2);--secondary-foreground: var(--ink);--accent: var(--hl-2);--accent-foreground: var(--ink);--destructive: var(--red);--destructive-foreground: var(--btn-ink)}:root{--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--type-title: 1.5rem;--type-h2: 1rem;--type-metric: 1.5rem;--type-body: 14px;--type-ui: 13px;--type-label: 12px;--type-meta: 11px;--type-micro: 10px;--sp1: 4px;--sp2: 8px;--sp3: 12px;--sp4: 16px;--sp5: 24px;--sp6: 32px;--sp7: 48px;--sp8: 64px;--r-sm: 6px;--r: 10px;--r-lg: 14px;--r-xl: 16px;--radius: var(--r);--header-h: 56px;--pane-header-h: var(--header-h);--control-h: 40px;--control-h-sm: 36px;--control-h-xs: 32px;--row-h: 56px;--row-h-sm: 48px;--row-h-xs: 40px;--icon: 40px;--icon-sm: 32px;--icon-lg: 44px;--card-pad: clamp(20px, 2vw, 28px);--assistant-measure: 52rem;--assistant-measure-ide: 40.625rem;--assistant-textarea-min: 64px;--command-input-h: var(--row-h);--command-row-h: var(--row-h-sm);--overlay-radius: calc(var(--r-xl) + 12px);--ui-line: var(--border-soft);--ui-line-strong: var(--border-strong);--active-shade: color-mix(in srgb, var(--ink) 8%, transparent);--nested-shade: color-mix(in srgb, var(--ink) 11%, transparent);--surface-base: var(--bg);--surface-raised: var(--s1);--surface-inset: var(--s2);--surface-hover: var(--hl);--surface-selected: var(--active-shade);--flow-grid-dot: color-mix(in srgb, var(--ink) 22%, transparent);--table-indent: calc(var(--sp5) + 32px);--shadow-soft: 0 12px 32px -18px color-mix(in srgb, var(--ink) 28%, transparent);--ease: cubic-bezier(.16, 1, .3, 1);--fast: .13s;--base: .22s;--slow: .34s;--rail: 264px;--panel: 400px;--detail: min(520px, 40vw);--drawer: min(580px, 94vw)}:root,[data-theme=dark]{--brand: #6b7a90;--brand-hover: #869ab2;--brand-ink: #0c0f14;--brand-wash: color-mix(in srgb, var(--brand) 14%, transparent);--brand-line: color-mix(in srgb, var(--brand) 38%, transparent);--focus-ring: color-mix(in srgb, var(--brand) 54%, transparent);--focus: var(--focus-ring);--violet: #9b8fc4}[data-theme=light]{--brand: #566175;--brand-hover: #454e5f;--brand-ink: #ffffff;--brand-wash: color-mix(in srgb, var(--brand) 12%, transparent);--brand-line: color-mix(in srgb, var(--brand) 30%, transparent);--focus-ring: color-mix(in srgb, var(--brand) 38%, transparent);--focus: var(--focus-ring);--violet: #7a6ea6}:root{--radius: .5rem;--radius-sm: .5rem;--radius-md: .5rem;--radius-lg: .5rem;--radius-xl: .5rem;--radius-full: 9999px;--pane-pad-x: var(--sp4);--font-sans: var(--font);--font-mono: var(--mono);--type-micro: 11px;--type-ui: 14px;--type-label: 13px;--type-meta: 12px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: var(--shadow-soft);--shadow-lg: var(--shadow);--transition-fast: var(--fast) var(--ease);--chip-h: 28px}.status-tag{display:inline-flex;align-items:center;gap:var(--sp1);padding:0;border:0;background:none;color:var(--text-dim);font-size:var(--type-meta);font-weight:510;white-space:nowrap}.status-tag svg{flex:0 0 auto}.status-tag-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:currentColor;opacity:.75}.status-tag-action{min-height:var(--chip-h);padding:0 var(--sp2);border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;text-underline-offset:3px;transition:color var(--transition-fast)}.status-tag-action:hover{text-decoration:underline}.status-tag-action:active{color:var(--text)}.status-tag-action:focus-visible{outline:2px solid var(--focus);outline-offset:1px}@media(prefers-reduced-motion:reduce){.status-tag-action{transition:none}}:root,[data-theme=dark],[data-theme=light]{--bg-0: var(--bg);--bg-1: var(--s1);--bg-2: var(--s2);--bg-3: var(--s3);--bg-hover: var(--hl-2);--border: var(--line);--border-strong: var(--line-2);--text: var(--ink);--text-dim: var(--ink-muted);--text-faint: var(--ink-faint);--accent: var(--brand);--accent-hover: var(--brand-hover);--accent-dim: var(--brand-wash);--accent-border: var(--brand-line);--accent-foreground: var(--brand-ink);--toggle-knob-off: var(--s1);--toggle-knob-on: var(--brand-ink);--bg-warning: color-mix(in srgb, var(--amber) 12%, var(--bg));--border-warning: color-mix(in srgb, var(--amber) 38%, transparent);--text-warning: var(--amber-text)}:root,[data-theme=dark]{--brand: #6be195;--brand-hover: #8ceab0;--brand-ink: #062b16}[data-theme=light]{--brand: #167e3a;--brand-hover: #116930;--brand-ink: #ffffff}@keyframes pop-in{0%{opacity:.4;transform:scale(.96)}to{opacity:1;transform:scale(1)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--bg-0);color:var(--text);font:var(--type-ui)/1.45 var(--font-sans);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}input{font:inherit;color:inherit}.app-status{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim)}.app-status-error{color:var(--red)}.connectivity-screen{padding:var(--sp6)}.connectivity-screen-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp3);max-width:34rem}.connectivity-screen-icon{display:inline-flex;color:var(--text-dim)}.connectivity-screen[data-status=auth] .connectivity-screen-icon{color:var(--accent)}.connectivity-screen[data-status=error] .connectivity-screen-icon{color:var(--red)}.connectivity-screen-title{color:var(--text);font-size:var(--type-h2);font-weight:560}.connectivity-screen-body{color:var(--text-dim);font-size:var(--type-ui);line-height:1.55}.connectivity-screen-detail{color:var(--text-faint);font-size:var(--type-meta);font-family:var(--mono, monospace);word-break:break-word}.connectivity-screen-retry{margin-top:var(--sp2)}.connectivity-banner{display:flex;align-items:center;gap:var(--sp2);padding:var(--sp2) var(--sp4);background:var(--bg-1);border-bottom:1px solid var(--line);font-size:var(--type-label);color:var(--text-dim)}.connectivity-banner-icon{display:inline-flex;flex:0 0 auto;color:var(--text-dim)}.connectivity-banner-text{flex:1;min-width:0;line-height:1.5}.connectivity-banner-dismiss{flex-shrink:0;background:none;border:none;color:var(--text-faint);font-size:var(--type-h2);line-height:1;cursor:pointer;padding:0 2px;transition:color var(--transition-fast)}.connectivity-banner-dismiss:hover{color:var(--text)}.connectivity-banner-dismiss:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app-shell{position:relative;display:flex;height:100vh;overflow-x:auto}.workspace-main{flex:1;min-width:40rem;display:flex;flex-direction:column}.brand-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;height:var(--pane-header-h);padding:0 var(--pane-pad-x);background:var(--surface-raised);border-bottom:1px solid var(--ui-line)}.brand-lockup{display:flex;align-items:center;gap:8px}.brand-header-tools{display:flex;align-items:center;gap:var(--sp1)}.brand-mark{width:18px;height:18px}.brand-name{font-size:var(--type-ui);font-weight:600;color:var(--text);letter-spacing:-.01em}.brand-divider{width:1px;height:14px;background:var(--border-strong)}.brand-product{font-size:var(--type-ui);font-weight:500;color:var(--text-dim)}.rail-search{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp2);height:var(--pane-header-h);padding:0 var(--pane-pad-x);border-bottom:1px solid var(--ui-line)}.rail-search .palette-trigger{flex:1;min-width:0;width:auto}.palette-trigger{display:grid;grid-template-columns:1rem minmax(0,1fr) auto;align-items:center;gap:var(--sp2);width:100%;height:var(--control-h-xs);padding:0 var(--sp2) 0 var(--sp3);background:var(--surface-inset);border:1px solid var(--ui-line);border-radius:var(--radius);color:var(--text-dim);font-size:var(--type-label);text-align:left;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.palette-trigger:hover{border-color:var(--ui-line-strong);color:var(--text)}.palette-trigger:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.palette-trigger-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-trigger-hint{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--type-micro);padding:1px 5px;border:1px solid var(--ui-line);border-radius:var(--radius);background:var(--bg-0)}.theme-toggle{width:var(--control-h-xs);height:var(--control-h-xs);display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-dim);transition:background-color var(--transition-fast),color var(--transition-fast)}.theme-toggle:hover{background:var(--surface-hover);color:var(--text)}.theme-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.brand-identity{display:flex;align-items:center;gap:6px;font-size:var(--type-label);color:var(--text-dim)}.identity-dot{width:6px;height:6px;border-radius:50%;background:var(--text-faint)}.identity-dot[data-authenticated=true]{background:var(--green)}.telemetry-notice{display:flex;align-items:flex-start;gap:10px;padding:8px 14px;background:var(--accent-dim);border-bottom:1px solid var(--accent-border);font-size:var(--type-label);color:var(--text-dim)}.telemetry-notice-body{flex:1;min-width:0}.telemetry-notice-text{margin:0;line-height:1.5}.telemetry-notice-settings-link{background:none;border:none;padding:0;color:var(--accent);font-size:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.telemetry-notice-settings-link:hover{color:var(--accent-hover)}.telemetry-notice-dismiss{flex-shrink:0;background:none;border:none;color:var(--text-faint);font-size:var(--type-h2);line-height:1;cursor:pointer;padding:0 2px;transition:color var(--transition-fast)}.telemetry-notice-dismiss:hover{color:var(--text)}.telemetry-notice-dismiss:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app{position:relative;display:grid;grid-template-columns:minmax(20rem,1fr) minmax(20rem,1fr);flex:1;min-height:0;overflow-x:auto;overflow-y:hidden}.pane-resize-handle{position:absolute;top:0;bottom:0;width:7px;cursor:col-resize;z-index:20;touch-action:none}.pane-resize-handle:hover,.pane-resize-handle:active{background:var(--accent-dim)}.pane-resize-handle-rail{transform:translate(-50%)}.pane-resize-handle-canvas{transform:translate(50%)}.center-pane{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--border)}.rail{display:flex;flex-direction:column;background:var(--bg-1);min-width:0;min-height:0}.rail-workflows{flex:0 1 auto;height:100%;padding:0}.rail-header{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:var(--sp2);height:var(--pane-header-h);padding:0 var(--sp2) 0 var(--pane-pad-x);font-size:var(--type-label);font-weight:510;color:var(--text-faint)}.rail-header-actions{margin-left:auto;display:flex;align-items:center;gap:2px}.rail-header-btn{position:relative}.rail-header-btn:hover{border-color:var(--ui-line-strong);background:var(--surface-hover)}.session-dropdown-new{color:var(--text-dim)}.session-dropdown-new:hover{color:var(--text)}.rail-tree{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.connect-card{background:var(--surface-inset);border:1px solid var(--ui-line-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;z-index:30;animation:pop-in var(--transition-fast) ease-out}.connect-card-header{display:flex;align-items:center;gap:var(--sp2);height:var(--pane-header-h);padding:0 var(--sp2) 0 var(--sp3);border-bottom:1px solid var(--ui-line);font-size:var(--type-label);font-weight:510;color:var(--text-faint)}.connect-card-close{margin-left:auto}.connect-card-body{display:flex;flex-direction:column;gap:var(--sp2);padding:var(--sp3)}.history-card{width:min(320px,calc(100vw - var(--sp4)))}.history-card .connect-card-body{gap:var(--tree-row-gap);padding:6px;max-height:min(360px,60vh);overflow-y:auto}.rail-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--tree-row-gap);padding:var(--sp3) var(--sp2)}.rail-footer{flex:0 0 auto;border-top:1px solid var(--ui-line)}.rail-footer-row{display:flex;align-items:center;height:var(--pane-header-h);padding:0 var(--pane-pad-x)}.rail-footer-row+.rail-footer-row{border-top:1px solid var(--ui-line)}.rail-profile-wrap{position:relative}.rail-profile{display:flex;align-items:center;gap:var(--sp2);flex:1;min-width:0;height:100%;padding:0;border:0;background:transparent;color:var(--text-dim);text-align:left}.rail-profile:hover{color:var(--text)}.rail-profile:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.rail-profile-avatar{display:grid;place-items:center;flex:0 0 auto;width:var(--control-h-xs);height:var(--control-h-xs);border-radius:var(--radius);background:var(--surface-inset);border:1px solid var(--ui-line);color:var(--text);font-size:var(--type-ui);font-weight:590}.rail-profile-copy{display:grid;min-width:0;flex:1;gap:1px}.rail-profile-name{color:var(--text);font-size:var(--type-label);font-weight:510;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-profile-meta{color:var(--text-faint);font-size:var(--type-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-detail-menu,.canvas-run-menu,.composer-library,.profile-menu,.session-menu,.settings-popover{display:flex;flex-direction:column;gap:var(--tree-row-gap);padding:6px;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:30;animation:pop-in var(--transition-fast) ease-out}@media(prefers-reduced-motion:reduce){.canvas-detail-menu,.canvas-run-menu,.composer-library,.connect-card,.profile-menu,.session-menu,.settings-popover{animation:none}}.profile-menu-item{display:flex;align-items:center;gap:var(--sp2);width:100%;height:var(--tree-row-h);padding:0 var(--sp2);border:0;background:transparent;border-radius:var(--radius);color:var(--text-dim);font-size:var(--type-label);text-align:left;transition:background-color var(--fast) var(--ease),color var(--fast) var(--ease)}.profile-menu-item:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.profile-menu-item:active:not(:disabled){background:var(--active-shade)}.profile-menu-item:disabled{opacity:.42;cursor:default}.profile-menu-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.profile-menu-item.is-selected{background:var(--active-shade);color:var(--text)}.provider-item-check{display:flex;align-items:center;justify-content:center;width:13px;flex:0 0 auto;color:var(--brand)}.provider-item.is-unavailable{opacity:.42;cursor:default}.provider-item.is-unavailable:hover,.provider-item.is-unavailable:active{background:transparent;color:var(--text-dim)}@media(prefers-reduced-motion:reduce){.profile-menu-item{transition:none}}.session-steps{display:flex;align-items:center;gap:var(--sp2);flex:0 0 auto;height:var(--pane-header-h);padding:0 var(--pane-pad-x);border-bottom:1px solid var(--border);background:var(--surface-raised);overflow-x:auto;scrollbar-width:none;container-type:inline-size}.session-lifecycle-label,.session-preview-label{display:contents}@container (max-width: 427px){.session-step:not(.session-action-primary) .session-step-label{display:none}}@container (max-width: 347px){.session-lifecycle-label,.session-preview-label{display:none}}.session-lifecycle-chip{flex:0 0 auto}.session-lifecycle-chip[data-deployed=true]{color:var(--brand)}.session-lifecycle-chip[data-deploy-error]{color:var(--text-warning)}.session-actions{display:flex;align-items:center;gap:var(--sp1);margin-left:auto}.session-step{display:inline-flex;align-items:center;gap:var(--sp2);flex:0 0 auto;height:var(--control-h-xs);padding:0 var(--sp2);border:0;background:transparent;border-radius:var(--radius);color:var(--text-dim);font-size:var(--type-label);font-weight:510;transition:background-color var(--transition-fast),color var(--transition-fast)}.session-step:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.session-step:disabled{color:var(--text-faint);opacity:.6}.session-step:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.session-action-primary{color:var(--brand);background:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--accent-border)}.session-action-primary:hover:not(:disabled){color:var(--brand);background:var(--accent-dim)}.session-step[data-pending]{outline:1px dashed var(--accent-border);outline-offset:1px;animation:session-step-pending 1.6s ease-in-out infinite}@keyframes session-step-pending{0%,to{outline-color:var(--accent-border)}50%{outline-color:var(--accent)}}@media(prefers-reduced-motion:reduce){.session-step[data-pending]{animation:none}}.session-step svg{flex:0 0 auto}.app-tooltip{position:fixed;top:0;left:0;z-index:200;max-width:260px;width:max-content;padding:5px 9px;background:var(--bg-3);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);color:var(--text);font-size:var(--type-meta);line-height:1.45;white-space:normal;overflow-wrap:anywhere;pointer-events:none;opacity:0;transition:opacity var(--fast) var(--ease)}.app-tooltip[data-show=true]{opacity:1}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp1);padding:var(--sp5) var(--sp4);text-align:center}.empty-state-icon{display:grid;place-items:center;width:var(--control-h);height:var(--control-h);margin-bottom:var(--sp1);border-radius:var(--radius);border:1px dashed var(--ui-line-strong);color:var(--text-faint)}.empty-state-title{color:var(--text);font-family:var(--font-sans);font-size:var(--type-ui);font-weight:560}.empty-state-body{max-width:34ch;color:var(--text-faint);font-family:var(--font-sans);font-size:var(--type-label);line-height:1.6}.empty-state-eyebrow{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--type-meta)}.empty-state-cta{display:flex;justify-content:center;margin-top:var(--sp2)}.session-step:disabled{cursor:default}.rail-empty{color:var(--text-faint);padding:6px;font-size:var(--type-label)}:root{--tree-row-h: 30px;--tree-row-gap: 3px;--tree-pad-x: 6px;--tree-indent: calc(var(--tree-pad-x) + 13px + 6px)}.workspace-group{display:flex;flex-direction:column;gap:var(--tree-row-gap);margin-bottom:var(--sp3)}.workspace-group:last-child{margin-bottom:0}.workspace-row{position:relative;display:flex;align-items:center;height:var(--tree-row-h);border-radius:var(--radius)}.workspace-row:hover{background:var(--bg-hover)}.workspace-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:6px;height:100%;padding:0 var(--tree-pad-x);border:none;background:transparent;border-radius:var(--radius);font-size:var(--type-label);font-weight:560;color:var(--text-dim);text-align:left}.workspace-row-main:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.workspace-row-static{cursor:default}.workspace-row.is-selected,.workspace-row.is-selected:hover{background:var(--active-shade)}.workspace-row.is-selected .workspace-row-main{color:var(--text)}.workspace-row-trail{margin-right:var(--tree-pad-x)}.workspace-row.is-collapsed .workspace-row-action[aria-expanded]{opacity:1}.workspace-caret{display:flex;align-items:center;flex:0 0 auto;color:var(--text-faint);opacity:0;transition:opacity var(--transition-fast),transform var(--transition-fast)}.workspace-caret.is-open{transform:rotate(180deg)}.workspace-row:hover .workspace-caret,.workspace-row.is-collapsed .workspace-caret{opacity:1}.disclosure-caret{display:flex;align-items:center;transition:transform var(--transition-fast)}.disclosure-caret.is-open{transform:rotate(180deg)}@media(prefers-reduced-motion:reduce){.workspace-caret,.disclosure-caret,.canvas-step-caret{transition:none}}.workspace-row-action{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:22px;height:22px;border:none;background:transparent;border-radius:var(--radius);color:var(--text-faint);opacity:0;transition:opacity var(--transition-fast),background-color var(--transition-fast)}.workspace-row-action:last-child{margin-right:3px}.workspace-row:hover .workspace-row-action,.workspace-row-action:focus-visible{opacity:1}.workspace-row-action:hover{background:var(--surface-hover);color:var(--text)}.workspace-row-action:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.workspace-group-empty{height:var(--tree-row-h);display:flex;align-items:center;padding:0 var(--tree-pad-x) 0 var(--tree-indent);color:var(--text-faint);font-size:var(--type-meta)}.workspace-group{position:relative}.workspace-group:has(>.tree-row,>.workflow-item,>.workspace-group-empty):before{content:"";position:absolute;left:calc(var(--tree-pad-x) + 6px);top:calc(var(--tree-row-h) + var(--tree-row-gap));bottom:0;width:1px;background:var(--ui-line);pointer-events:none}.workspace-group>.tree-row,.workspace-group>.workflow-item,.workspace-group>.workspace-group-empty{position:relative}.workflow-row-actions{position:absolute;top:50%;right:calc(var(--tree-pad-x) + 32px);transform:translateY(-50%);display:flex;align-items:center;gap:2px;opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.workflow-item:hover .workflow-row-actions,.workflow-item:focus-within .workflow-row-actions{opacity:1;pointer-events:auto}.workflow-row-actions .workspace-row-action{opacity:1}.tree-row{display:flex;align-items:center;gap:6px;width:100%;height:var(--tree-row-h);padding:0 var(--tree-pad-x) 0 var(--tree-indent);border:none;background:transparent;border-radius:var(--radius);font-size:var(--type-label);color:var(--text-dim);text-align:left}.tree-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.tree-row-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-row>svg{flex:0 0 auto;color:var(--text-faint)}.session-tree-row:hover{background:var(--bg-hover);color:var(--text)}.session-row-time{flex:0 0 auto;color:var(--text-faint);font-family:var(--font-mono);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.session-tree-row.is-selected{background:var(--active-shade);color:var(--text)}.session-tree-row.is-current{color:var(--text)}.session-tree-row.is-current>svg:first-child{color:var(--brand)}.tree-trail{display:flex;align-items:center;justify-content:center;width:16px;flex:0 0 auto}.workflow-status{display:flex;align-items:center;justify-content:center;width:16px;flex:0 0 auto;color:var(--text-faint)}.workflow-status[data-deployed=true]{color:var(--green)}.workflow-item{position:relative;display:flex;align-items:center;border-radius:var(--radius);color:var(--text-dim)}.workflow-item:hover{background:var(--bg-hover);color:var(--text)}.workflow-item.is-focused{background:var(--active-shade);color:var(--text)}.workflow-item.is-focused .tree-row>svg:first-child{color:var(--brand)}.workflow-item-trigger{flex:1;min-width:0;color:inherit}.workflow-session-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:transparent;box-shadow:inset 0 0 0 1px var(--text-faint)}.workflow-session-dot[data-live=true]{background:var(--green);box-shadow:none}.workflow-item .workflow-expander{opacity:1}.workflow-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex:0 0 auto}.workflow-dot-pinned{position:relative}.workflow-deployed-tag{flex:0 0 auto;color:var(--green-text, var(--green))}.workflow-row-menu-wrap{position:relative;display:flex;align-items:center;flex:0 0 auto;margin-right:3px}.workflow-item:hover .workflow-row-menu-wrap .workspace-row-action,.workflow-row-menu-wrap .workspace-row-action:focus-visible,.workflow-row-menu-wrap .workspace-row-action[aria-expanded=true]{opacity:1}.workspace-row-action:active{background:var(--surface-inset)}.workflow-row-menu{min-width:170px}.workflow-row-menu-section{padding:6px 8px 2px;font-size:var(--type-micro);font-weight:700;letter-spacing:.01em;color:var(--text-faint)}.group-name-input{flex:1;min-width:0;height:24px;margin:0 var(--sp1);padding:0 var(--sp2);border:1px solid var(--focus);border-radius:var(--radius-sm);background:var(--surface-inset);color:var(--text);font-size:var(--type-label)}.session-rename-input{flex:1;min-width:0}.session-context-rename{max-width:260px}.group-name-input:focus-visible{outline:none}@media(prefers-reduced-motion:reduce){.workspace-row-action,.group-name-input{transition:none}}.connect-trigger{display:inline-flex;align-items:center;justify-content:center;text-align:center;width:100%;height:var(--control-h-xs);border:1px dashed var(--border-strong);background:transparent;color:var(--text-faint);border-radius:var(--radius);padding:0 var(--sp3);text-align:left;font-size:var(--type-label)}.connect-trigger:hover{color:var(--text-dim);border-color:var(--text-faint)}.macro-icon-btn{position:relative;width:var(--control-h-xs);height:var(--control-h-xs);display:flex;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid transparent;background:transparent;border-radius:var(--radius-md);color:var(--text-dim);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.macro-icon-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong);color:var(--text)}.macro-icon-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.macro-icon-btn:disabled{color:var(--text-faint);cursor:default;opacity:.5}.session-bar{display:flex;align-items:center;gap:var(--sp2);height:var(--pane-header-h);flex:0 0 auto;padding:0 var(--pane-pad-x);border-bottom:1px solid var(--border);background:var(--bg-1);position:relative}.session-context{display:flex;align-items:center;gap:var(--sp2);flex:1;min-width:0}.session-context-title{flex:0 0 auto;max-width:24ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-label);font-weight:510;color:var(--text)}.session-context-none{font-size:var(--type-label);color:var(--text-faint)}.session-status-tag{flex:0 0 auto}.session-status-tag[data-status=running]{color:var(--green-text)}.session-menu-wrap{position:relative;flex:0 0 auto}.session-menu{min-width:180px}.session-menu-danger:hover:not(:disabled){color:var(--red-text);background:color-mix(in srgb,var(--red) 12%,transparent)}.dir-picker-item.is-selected{background:var(--surface-hover);color:var(--text)}.session-busy{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:var(--accent);animation:session-tab-busy-pulse 1.2s ease-in-out infinite}@keyframes session-tab-busy-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.session-history-badge{position:absolute;top:-3px;right:-3px;min-width:14px;height:14px;padding:0 3px;border-radius:var(--radius-full);background:var(--accent);color:var(--accent-foreground);font-size:var(--type-micro);font-weight:700;line-height:14px;text-align:center}.session-workflow-chip{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 8px;border-radius:var(--radius-md);background:var(--accent-dim);border:1px solid var(--accent-border);color:var(--accent);font-size:var(--type-meta);font-weight:500}.session-context-status{margin-left:auto}.session-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:var(--text-faint)}.session-dot[data-status=running]{background:var(--green)}.session-dot[data-status=starting]{background:var(--amber)}.session-dot[data-status=exited]{background:var(--text-faint)}.session-tabs{display:flex;align-items:center;gap:var(--sp1);flex:0 0 auto;min-width:0;padding:var(--sp1) var(--pane-pad-x);border-bottom:1px solid var(--border);background:var(--bg-1);overflow-x:auto;scrollbar-width:none}.session-tabs::-webkit-scrollbar{display:none}.session-tab{display:inline-flex;align-items:center;flex:0 0 auto;max-width:220px;height:28px;border-radius:var(--radius-md);border:1px solid transparent;color:var(--text-dim);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.session-tab:hover{background:var(--bg-hover);color:var(--text)}.session-tab.is-active{background:var(--active-shade);border-color:var(--ui-line);color:var(--text)}.session-tab-main{display:inline-flex;align-items:center;gap:6px;min-width:0;height:100%;padding:0 var(--sp1) 0 var(--sp2);border:none;background:transparent;border-radius:var(--radius-md) 0 0 var(--radius-md);color:inherit;font-size:var(--type-label);text-align:left}.session-tab-main:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.session-tab-main>svg{flex:0 0 auto;color:var(--text-faint)}.session-tab.is-active .session-tab-main>svg{color:var(--brand)}.session-tab-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-tab-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:var(--text-faint)}.session-tab-dot[data-status=running]{background:var(--green)}.session-tab-dot[data-status=starting]{background:var(--amber)}.session-tab-busy{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:var(--accent);animation:session-tab-busy-pulse 1.2s ease-in-out infinite}.session-tab-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:20px;height:20px;margin-right:4px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-faint);opacity:0;transition:opacity var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.session-tab:hover .session-tab-close,.session-tab.is-active .session-tab-close,.session-tab-close:focus-visible{opacity:1}.session-tab-close:hover{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red-text)}.session-tab-close:active{background:color-mix(in srgb,var(--red) 22%,transparent)}.session-tab-close:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.session-tab-new{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:26px;height:26px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--text-faint);transition:background-color var(--transition-fast),color var(--transition-fast)}.session-tab-new:hover{background:var(--bg-hover);color:var(--text)}.session-tab-new:active{background:var(--surface-inset)}.session-tab-new:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}@media(prefers-reduced-motion:reduce){.session-tab,.session-tab-close,.session-tab-new{transition:none}.session-tab-busy{animation:none}}.session-dropdown-section{font-size:var(--type-micro);font-weight:700;letter-spacing:.01em;color:var(--text-faint);padding:4px 8px;margin-top:var(--sp2)}.session-dropdown-section:first-child{margin-top:0}.session-dropdown-empty{color:var(--text-faint);font-size:var(--type-label);padding:4px 6px 8px}.session-dropdown-item{display:flex;align-items:flex-start;gap:var(--sp2);width:100%;padding:6px 8px;border:none;background:transparent;border-radius:var(--radius-sm);text-align:left;transition:background-color var(--transition-fast)}.session-item-icon,.session-dropdown-item>.tree-trail{display:flex;align-items:center;justify-content:center;width:16px;flex:0 0 auto;height:18px;color:var(--text-faint)}.session-item-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.session-item-copy>.session-item-title,.session-item-copy>.session-item-cwd,.session-item-copy>.session-item-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-dropdown-item:hover,.session-dropdown-item.is-selected{background:var(--surface-hover)}.session-item-title{font-size:var(--type-label);color:var(--text)}.session-item-cwd,.session-item-meta{font-size:var(--type-meta);color:var(--text-faint)}.past-session-tag{flex:0 0 auto;align-self:flex-start;padding:1px 6px;border-radius:var(--radius-md);border:1px solid var(--ui-line);background:var(--surface-inset);color:var(--text-faint);font-size:var(--type-micro);font-weight:600}.past-session-tag[data-resumable=true]{color:var(--green-text);border-color:color-mix(in srgb,var(--green) 32%,transparent);background:color-mix(in srgb,var(--green) 10%,transparent)}.gear-btn{width:var(--control-h-xs);height:var(--control-h-xs);display:flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);background:var(--bg-2);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);color:var(--text-dim);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.gear-btn:hover{background:var(--surface-hover);border-color:var(--ui-line-strong);color:var(--text)}.gear-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.settings-popover{padding:var(--sp4)}.settings-identity{font-size:var(--type-label);font-weight:600;color:var(--text);padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--border)}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--type-label);color:var(--text-dim)}.toggle-switch{flex:0 0 auto;width:34px;height:20px;border-radius:var(--radius-full);background:var(--bg-3);border:1px solid var(--border-strong);position:relative;padding:0;transition:background-color var(--transition-fast)}.toggle-switch.is-on{background:var(--accent);border-color:var(--accent)}.toggle-switch:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.toggle-switch:disabled{opacity:.42;cursor:default}.toggle-knob{position:absolute;top:1px;left:1px;width:16px;height:16px;border-radius:50%;background:var(--toggle-knob-off);transition:transform var(--transition-fast)}.toggle-switch.is-on .toggle-knob{background:var(--toggle-knob-on);transform:translate(14px)}.settings-note{margin:10px 0 12px;font-size:var(--type-meta);line-height:1.5;color:var(--text-faint)}.settings-note code{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--type-meta)}.settings-env-note{color:var(--text-warning)}.terminal-slot{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg-0)}.terminal-slot>.harness-terminal{flex:1;min-height:0}.terminal-slot>.image-composer{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.image-composer-pane{flex:1;min-height:0;display:flex;flex-direction:column}.image-composer-dropzone{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp2);border:2px dashed var(--accent-border);border-radius:var(--radius-lg);background:var(--accent-dim);color:var(--accent);font-size:var(--type-ui);font-weight:500;pointer-events:none}.image-composer-bar{flex-shrink:0;display:flex;align-items:center;gap:var(--sp2);padding:var(--sp2) var(--pane-pad-x);border-top:1px solid var(--border);background:var(--bg-1)}.image-composer-thumbs{display:flex;align-items:center;gap:var(--sp2);margin:0;padding:0;list-style:none;overflow-x:auto;flex:1;min-width:0}.image-composer-thumb{position:relative;flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--border-strong);overflow:hidden}.image-composer-thumb img{width:100%;height:100%;object-fit:cover;display:block}.image-composer-thumb-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--bg-0);color:var(--text-dim);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.image-composer-thumb-remove:hover:not(:disabled){color:var(--text);background:var(--bg-2)}.image-composer-thumb-remove:active:not(:disabled){background:var(--bg-3)}.image-composer-thumb-remove:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.image-composer-thumb-remove:disabled{opacity:.42;cursor:default}.image-composer-send{flex-shrink:0;font-size:var(--type-label)}@media(prefers-reduced-motion:reduce){.image-composer-thumb-remove{transition:none}}.harness-terminal{display:flex;flex-direction:column;height:100%;width:100%;min-height:0;background:var(--bg-0);overflow:hidden}.terminal-statusbar{display:flex;align-items:center;gap:var(--sp2);flex-shrink:0;height:var(--pane-header-h);padding:0 var(--pane-pad-x);border-bottom:1px solid var(--ui-line);font-family:var(--font-mono);font-size:var(--type-meta);font-variant-numeric:tabular-nums;color:var(--text-dim)}.terminal-status-dot{width:7px;height:7px;border-radius:999px;flex:0 0 auto;background:var(--text-faint)}.terminal-statusbar[data-status=connected] .terminal-status-dot{background:var(--green)}.terminal-statusbar[data-status=connecting] .terminal-status-dot{background:var(--amber);animation:session-tab-busy-pulse 1.2s ease-in-out infinite}.terminal-statusbar[data-status=error] .terminal-status-dot{background:var(--red)}.terminal-statusbar[data-status=error] .terminal-status-label{color:var(--red-text)}.terminal-screen{flex:1;min-height:0;overflow:hidden}.terminal-screen .xterm{height:100%;width:100%;padding:var(--pane-pad-x)}@media(prefers-reduced-motion:reduce){.terminal-statusbar[data-status=connecting] .terminal-status-dot{animation:none}}.terminal-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-faint);font-family:var(--font-mono);font-size:var(--type-label)}.welcome-panel{height:100%;display:flex;align-items:center;justify-content:center;padding:var(--sp4);overflow-y:auto;container:welcome / inline-size}.welcome-card{display:flex;flex-direction:column;align-items:stretch;gap:12px;width:520px;max-width:100%;padding:28px;overflow:hidden;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.welcome-hero{margin:-28px -28px 0;height:200px;overflow:hidden;mask-image:linear-gradient(to bottom,black 60%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 60%,transparent 100%)}.welcome-hero img{display:block;width:100%;height:auto;object-fit:cover;object-position:82% 12%;transform:scale(1.25);transform-origin:82% 12%}.welcome-hero img.welcome-hero-light,[data-theme=light] .welcome-hero img.welcome-hero-dark{display:none}[data-theme=light] .welcome-hero img.welcome-hero-light{display:block}.welcome-copy{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.welcome-title{margin:0;font-size:var(--type-h2);font-weight:600;letter-spacing:-.01em;color:var(--text)}.welcome-intro{margin:0;font-size:var(--type-ui);line-height:1.6;color:var(--text-dim)}.welcome-footer{display:flex;align-items:center;gap:var(--sp2);align-self:stretch;margin:var(--sp2) -28px -28px;padding:var(--sp3) 28px;border-top:1px solid var(--border)}.welcome-docs{display:inline-flex;align-items:center;gap:var(--sp1);margin-right:auto;color:var(--text-faint);font-size:var(--type-meta);text-decoration:none;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.welcome-docs:hover{color:var(--text-dim);text-decoration:underline}.welcome-docs:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.welcome-action{padding:0 var(--sp4);font-size:var(--type-ui);white-space:nowrap}.welcome-error{font-size:var(--type-label);color:var(--red)}.welcome-hints{display:flex;flex-direction:column;align-items:center;gap:var(--sp2);margin-top:2px}.welcome-hint-chips{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--sp1) var(--sp3)}.welcome-hint-chip{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:var(--type-meta);font-weight:510;white-space:nowrap}.welcome-hints-kbd{display:block;text-align:center;font-size:var(--type-meta);color:var(--text-faint)}.welcome-hints-kbd kbd{font-family:var(--font-mono);font-size:var(--type-micro);color:var(--text-dim);padding:1px 5px;background:var(--bg-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs)}@container welcome (max-width: 420px){.welcome-title{font-size:clamp(14px,4.6cqi,16px)}.welcome-footer{flex-wrap:wrap}.welcome-docs{flex:1 0 100%;justify-content:center;margin-right:0}.welcome-action{flex:1 1 auto}}.dead-session-pane{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center}.dead-session-title{color:var(--text);font-size:var(--type-ui);font-weight:600}.dead-session-meta{color:var(--text-faint);font-size:var(--type-label);font-family:var(--font-mono);margin-bottom:6px}.dead-session-actions{display:flex;gap:8px}.dead-session-resume-reason{color:var(--text-faint);font-size:var(--type-meta);max-width:300px;line-height:1.4;margin-top:4px}.canvas-pane{display:flex;flex-direction:column;background:var(--bg-1);min-width:0}.workflow-actions-header{display:flex;align-items:center;gap:var(--sp2);flex:0 0 auto;height:var(--pane-header-h);padding:0 var(--pane-pad-x);border-bottom:1px solid var(--border);background:var(--surface-raised);container-type:inline-size}@container (max-width: 347px){.canvas-detail-ask .canvas-detail-ask-label{display:none}}.workflow-actions-name{flex:1;min-width:0;font-size:var(--type-label);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-refresh-btn{border-radius:var(--radius)}.canvas-frame-wrap{position:relative;flex:1;display:flex;flex-direction:column;min-height:0;overflow:clip}.canvas-visual{position:relative;flex:1;display:flex;min-height:0}.canvas-overview{position:relative;flex:0 0 auto;max-height:50%;display:flex;flex-direction:column;border-top:1px solid var(--ui-line);background:var(--surface-raised);overflow:hidden;transition:height var(--base) var(--ease)}.canvas-overview.is-resizing{transition:none}@media(prefers-reduced-motion:reduce){.canvas-overview{transition:none}}.canvas-overview-resize{position:absolute;top:-3px;left:0;right:0;height:6px;cursor:row-resize;z-index:4;touch-action:none}.canvas-overview-resize:before{content:"";position:absolute;inset:50% 0 auto 0;height:1px;transform:translateY(-50%);background:transparent;transition:height var(--fast) var(--ease),background-color var(--fast) var(--ease)}.canvas-overview-resize:hover:before,.canvas-overview-resize:active:before,.canvas-overview.is-resizing .canvas-overview-resize:before,.canvas-overview-resize:focus-visible:before{height:2px;background:var(--brand)}.canvas-overview-resize:focus-visible{outline:none}@media(prefers-reduced-motion:reduce){.canvas-overview-resize:before{transition:none}}.canvas-visual.is-offstage{display:none}.canvas-steps-surface{flex:1;min-height:0;overflow-y:auto;padding:var(--sp2) var(--pane-pad-x) var(--sp4);container-type:inline-size}@container (max-width: 420px){.canvas-step-meta{display:none}}.workflow-actions-count{font-family:var(--font-mono);font-size:var(--type-meta);color:var(--text-faint)}.canvas-slide-track{display:flex;width:200%;flex:1;min-height:0;transform:translate(0);transition:transform .26s var(--ease)}.canvas-frame-wrap[data-view=detail] .canvas-slide-track{transform:translate(-50%)}.canvas-slide-pane{width:50%;flex:0 0 50%;min-height:0;display:flex;flex-direction:column}@media(prefers-reduced-motion:reduce){.canvas-slide-track{transition:none}}.canvas-detail-ask{margin-left:auto;flex:0 0 auto}.canvas-detail-menu-wrap{position:relative;flex:0 0 auto}.canvas-detail-menu{min-width:200px}.canvas-step-item{border-radius:var(--radius)}.canvas-step-item.is-open{background:var(--surface-inset)}.canvas-step-caret{display:flex;align-items:center;flex:0 0 auto;color:var(--text-faint);transition:transform var(--transition-fast)}.canvas-step-caret.is-open{transform:rotate(180deg)}.canvas-step-expand{display:flex;flex-direction:column;gap:var(--sp2);padding:var(--sp1) var(--sp2) var(--sp3) calc(var(--sp2) + 7px + var(--sp2))}.canvas-step-desc{margin:0;font-size:var(--type-meta);line-height:1.55;color:var(--text-dim)}.canvas-step-transition{display:flex;align-items:center;gap:var(--sp2);font-size:var(--type-meta);color:var(--text-faint)}.canvas-step-transition-target{color:var(--text-dim)}.canvas-step-transition-cond{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-family:var(--font-mono);color:var(--brand)}.canvas-step-open{display:inline-flex;align-items:center;gap:var(--sp1);align-self:flex-start;padding:2px 0;border:0;background:transparent;font-size:var(--type-meta);font-weight:510;color:var(--text-dim);transition:color var(--transition-fast)}.canvas-step-open:hover{color:var(--text);text-decoration:underline}.canvas-step-open:active{color:var(--text-dim)}.canvas-steps-list{display:flex;flex-direction:column;gap:1px}.canvas-steps-label{display:flex;align-items:baseline;gap:var(--sp2);font-size:var(--type-micro);font-weight:700;letter-spacing:.01em;color:var(--text-faint);padding:var(--sp1) 0}.canvas-steps-run-note{margin-left:auto;font-family:var(--font-mono);font-weight:400;letter-spacing:0;color:var(--text-dim);white-space:nowrap}.canvas-step-band{position:relative;padding:0 0 var(--sp1);margin:var(--sp1) 0}.canvas-step-band:before{content:"";position:absolute;inset:0 calc(-1 * var(--sp1));border:1px dashed var(--ui-line-strong);background:var(--surface-raised);border-radius:var(--radius);pointer-events:none;z-index:-1}.canvas-step-group{font-family:var(--font-mono);font-size:var(--type-micro);letter-spacing:.04em;color:var(--text-faint);padding:var(--sp2) var(--sp2) var(--sp1)}.canvas-step-row{display:grid;grid-template-columns:20px 10px minmax(0,1fr) auto 16px;align-items:center;gap:var(--sp2);width:100%;min-height:44px;padding:var(--sp1) var(--sp2);border:0;background:transparent;border-radius:var(--radius);color:var(--text-dim);text-align:left;transition:background-color var(--transition-fast)}.canvas-step-row:hover{background:var(--surface-hover);color:var(--text)}.canvas-step-row:active{background:var(--surface-selected)}.canvas-step-row[aria-expanded=true]{background:var(--active-shade)}.canvas-step-row.is-static,.canvas-step-row.is-static:hover,.canvas-step-row.is-static:active{cursor:default;background:transparent;color:var(--text-dim)}.canvas-step-row.is-static:hover .canvas-step-name{color:inherit}.canvas-step-row:focus-visible,.canvas-step-open:focus-visible,.canvas-detail-edge:focus-visible{outline:1.5px solid var(--brand);outline-offset:1px}.canvas-step-index{font-family:var(--font-mono);font-size:var(--type-label);color:var(--text-faint)}.canvas-step-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.canvas-step-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.canvas-step-name{font-size:var(--type-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-step-row:hover .canvas-step-name,.canvas-step-row[aria-expanded=true] .canvas-step-name{color:var(--text)}.canvas-step-role{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--type-micro);color:var(--text-faint)}.canvas-step-meta{font-family:var(--font-mono);font-size:var(--type-label);color:var(--text-faint);white-space:nowrap;max-width:35cqw;overflow:hidden;text-overflow:ellipsis}.canvas-input-card,.canvas-detail-contract{display:flex;align-items:baseline;gap:var(--sp2)}.canvas-input-label{flex:0 0 auto;min-width:52px;font-size:var(--type-micro);font-weight:590;letter-spacing:.02em;color:var(--text-faint)}.canvas-input-fields{display:flex;flex-wrap:wrap;gap:var(--sp1);min-width:0}.canvas-input-field{display:inline-flex;align-items:baseline;gap:var(--sp1);padding:2px var(--sp2);border:1px solid var(--ui-line-strong);border-radius:var(--radius);background:var(--surface-inset);font-family:var(--font-mono);font-size:var(--type-micro);color:var(--text-dim)}.canvas-input-field.is-required{color:var(--text)}.canvas-input-type{color:var(--text-faint)}.canvas-detail-timeout{font-family:var(--font-mono);font-size:var(--type-meta);color:var(--text-dim)}.canvas-run-status{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:0 0 auto}.canvas-run-status.is-passed{color:var(--green)}.canvas-run-status.is-failed{color:var(--red, #e05a57)}.canvas-run-status.is-running{border:1.5px solid var(--brand);border-right-color:transparent;border-radius:50%;width:10px;height:10px;animation:canvas-run-spin .9s linear infinite}.canvas-run-status.is-pending{width:7px;height:7px;border:1px solid var(--text-faint);border-radius:50%}@keyframes canvas-run-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.canvas-run-status.is-running{animation:none;border-right-color:var(--brand);opacity:.6}}.canvas-run-text{display:inline-flex;align-items:center;gap:var(--sp1);font-family:var(--font-mono);font-size:var(--type-meta)}.canvas-run-text.is-passed{color:var(--green-text, var(--green))}.canvas-run-text.is-failed{color:var(--red-text, var(--red))}.canvas-run-text.is-running{color:var(--text-dim)}.canvas-run-text.is-pending{color:var(--text-faint)}.canvas-run-error{margin:0;padding:var(--sp2) var(--sp3);border:1px solid color-mix(in srgb,var(--red, #e05a57) 30%,var(--ui-line));border-radius:var(--radius);background:color-mix(in srgb,var(--red, #e05a57) 6%,transparent);font-family:var(--font-mono);font-size:var(--type-micro);color:var(--text-dim);white-space:pre-wrap;word-break:break-word}.canvas-run-logs summary{font-size:var(--type-micro);font-weight:590;color:var(--text-faint);cursor:pointer}.canvas-run-logs pre{margin:var(--sp1) 0 0;padding:var(--sp2) var(--sp3);border:1px solid var(--ui-line);border-radius:var(--radius);background:var(--surface-inset);font-size:var(--type-micro);max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word}.canvas-run-chip{font-family:var(--font-mono)}.canvas-run-chip.is-completed{color:var(--green-text, var(--green))}.canvas-run-chip.is-failed{color:var(--red-text, var(--red))}.canvas-run-picker-wrap{position:relative;flex:0 0 auto}.canvas-run-menu{min-width:260px}.canvas-run-menu .profile-menu-item{font-family:var(--font-mono);font-size:var(--type-micro)}.canvas-run-option-meta{margin-left:auto;padding-left:var(--sp3);color:var(--text-faint)}.session-preview-chip{color:var(--brand)}.session-preview-chip:active{color:var(--brand-hover)}.canvas-detail{display:flex;flex-direction:column;flex:1;min-height:0}.canvas-detail-groups{margin:0;font-size:var(--type-meta);color:var(--text-faint)}.canvas-detail-warnings{list-style:disc;margin:0;padding-left:18px;display:flex;flex-direction:column;gap:var(--sp1);font-size:var(--type-meta);color:var(--amber-text)}.canvas-run-stub-chip{flex:0 0 auto;padding:1px 6px;border-radius:var(--radius-md);border:1px solid var(--border-warning);background:var(--bg-warning);color:var(--amber-text);font-family:var(--font-mono);font-size:var(--type-micro);font-weight:590;letter-spacing:.01em;white-space:nowrap}.canvas-stub-notice+.canvas-stub-notice{margin-top:var(--sp2)}.canvas-stub-notice-hint{margin:2px 0 var(--sp1);font-size:var(--type-micro);color:var(--text-faint)}.canvas-links-list{display:flex;flex-direction:column;gap:var(--sp2)}.canvas-link-thumb-wrap{display:inline-flex;align-items:flex-start;border:1px solid var(--ui-line);border-radius:var(--radius-md);overflow:hidden;text-decoration:none;transition:border-color var(--transition-fast);max-width:200px}.canvas-link-thumb-wrap:hover{border-color:var(--ui-line-strong)}.canvas-link-thumb-wrap:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.canvas-link-thumb{display:block;max-width:200px;max-height:120px;object-fit:cover}.canvas-link-item{display:inline-flex;align-items:center;gap:var(--sp1);font-size:var(--type-meta);color:var(--text-dim);text-decoration:none;transition:color var(--transition-fast);max-width:100%}.canvas-link-item:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}.canvas-link-item:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.canvas-link-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.canvas-capability-calls{display:flex;flex-direction:column;gap:var(--sp2)}.canvas-capability-call{display:flex;flex-direction:column;gap:var(--sp1);padding:var(--sp2) var(--sp3);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--surface-raised)}.canvas-capability-call-head{display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap}.canvas-capability-call-result{margin-top:var(--sp1)}.canvas-detail-kind{flex:0 0 auto;padding:2px 8px;border-radius:var(--radius-md);border:1px solid var(--ui-line);background:var(--surface-inset);font-size:var(--type-meta);color:var(--text-dim)}.canvas-detail-kind.node--entry,.canvas-detail-kind.node--terminal-success{color:var(--brand);border-color:var(--accent-border);background:var(--accent-dim)}.canvas-detail-kind.node--terminal-warn{color:var(--amber);border-color:var(--border-warning);background:var(--bg-warning)}.canvas-detail-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp3) var(--pane-pad-x) var(--sp4);display:flex;flex-direction:column;gap:var(--sp3)}.canvas-detail-role{margin:0;font-family:var(--font-mono);font-size:var(--type-meta);color:var(--text-faint)}.canvas-detail-desc{margin:0;font-size:var(--type-label);line-height:1.55;color:var(--text-dim)}.canvas-detail-section h4{display:flex;align-items:center;gap:var(--sp2);margin:0 0 var(--sp2);font-size:var(--type-micro);font-weight:700;letter-spacing:.01em;color:var(--text-dim)}.canvas-detail-count{padding:0 6px;border-radius:var(--radius-full);background:var(--surface-inset);color:var(--text-dim);font-variant-numeric:tabular-nums}.canvas-detail-empty{margin:0;font-size:var(--type-meta);color:var(--text-faint)}.canvas-detail-edges{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--ui-line-strong);border-radius:var(--radius);background:var(--surface-raised);overflow:hidden}.canvas-detail-edges li+li{border-top:1px solid var(--ui-line)}.canvas-detail-edge{display:flex;align-items:center;gap:var(--sp2);width:100%;min-height:40px;padding:var(--sp1) var(--sp3);border:0;background:transparent;color:var(--text-dim);text-align:left;transition:background-color var(--transition-fast)}.canvas-detail-edge:hover{background:var(--surface-hover);color:var(--text)}.canvas-detail-edge:active{background:var(--surface-selected)}.canvas-detail-edge:focus-visible{outline-offset:-2px}.canvas-detail-edge>svg{flex:0 0 auto;color:var(--text-faint)}.canvas-detail-edge-target{flex:0 0 auto;font-size:var(--type-label)}.canvas-detail-edge-kind{flex:0 0 auto;padding:1px 6px;border-radius:var(--radius-full);border:1px solid var(--ui-line);background:var(--surface-inset);font-size:var(--type-micro);color:var(--text-faint)}.canvas-detail-edge:hover .canvas-detail-edge-target{text-decoration:underline}.canvas-detail-edge-cond{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-family:var(--font-mono);font-size:var(--type-meta);color:var(--brand)}.canvas-overview-head{display:flex;align-items:center;gap:var(--sp2);flex:0 0 auto;height:var(--pane-header-h);padding:0 var(--pane-pad-x);border-bottom:1px solid var(--ui-line);color:var(--text);font-size:var(--type-label);font-weight:510}.canvas-overview-head svg{color:var(--text-faint)}.canvas-overview-close{flex:0 0 auto;margin-left:var(--sp1)}.canvas-overview-stats{margin-left:auto;display:flex;align-items:baseline;gap:var(--sp2);font-size:var(--type-meta);font-weight:400;color:var(--text-faint)}.canvas-overview-stat strong{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.canvas-overview-stat+.canvas-overview-stat:before{content:"·";margin-right:var(--sp2);color:var(--text-faint)}.canvas-overview-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp4) var(--pane-pad-x);font-size:var(--type-label);line-height:1.55;color:var(--text-dim)}.canvas-overview-content{display:flex;flex-direction:column;gap:var(--sp3)}.canvas-overview-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-overview-head .canvas-step-dot{flex:0 0 auto}.canvas-inspector-open-steps{margin-left:auto;color:var(--text-faint)}.canvas-inspector-open-steps:hover,.canvas-inspector-open-steps:focus-visible{color:var(--text-dim)}.canvas-inspector{display:flex;flex-direction:column;gap:var(--sp2)}.canvas-inspector .canvas-detail-role{margin:0}.canvas-step-transition.is-link{border:0;background:none;padding:2px var(--sp1);text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.canvas-step-transition.is-link:hover,.canvas-step-transition.is-link:active{background:var(--active-shade)}.canvas-step-transition.is-link:hover .canvas-step-transition-target,.canvas-step-transition.is-link:active .canvas-step-transition-target{color:var(--text);text-decoration:underline;text-underline-offset:3px}.canvas-step-transition.is-link:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.canvas-inspector-run{display:flex;align-items:baseline;gap:var(--sp2);font-size:var(--type-meta)}.canvas-inspector-run-meta{color:var(--text-dim);font-variant-numeric:tabular-nums}.canvas-inspector-macros{display:flex;flex-direction:column;gap:var(--sp1);margin-top:var(--sp1);padding-top:var(--sp2);border-top:1px solid var(--ui-line)}.canvas-inspector-macro-btn{width:100%;text-align:left}.canvas-inspector-freeform{display:flex;flex-direction:column;gap:var(--sp1)}.canvas-inspector-freeform-input{width:100%;resize:vertical;padding:var(--sp1) var(--sp2);font:inherit;font-size:var(--type-label);color:var(--text);background:var(--surface-raised);border:1px solid var(--ui-line);border-radius:var(--radius-md)}.canvas-inspector-freeform-input:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--ui-line-strong)}.canvas-inspector-freeform-ask{align-self:flex-end}.canvas-overview-desc{margin:0;color:var(--text)}.canvas-overview-notes{margin:0;padding-left:var(--sp4);display:flex;flex-direction:column;gap:var(--sp1)}.canvas-legend-row{display:flex;align-items:center;gap:var(--sp3);color:var(--text-faint);font-size:var(--type-meta)}.canvas-legend-row .dot{display:inline-block;width:7px;height:7px;border-radius:999px;margin-right:5px}.dot--entry{background:var(--brand)}.dot--step{border:1px solid var(--text-faint)}.dot--terminal{background:var(--text-faint)}.dot--pause{border:1px dashed var(--text-faint)}.dot--terminal-success{background:var(--green)}.dot--terminal-warn{background:var(--amber)}.dot--launched-workflow{border:1px dashed var(--brand)}.canvas-overview-open{position:absolute;right:var(--sp3);bottom:var(--sp3);z-index:3;background:var(--surface-raised);border:1px solid var(--ui-line);box-shadow:var(--shadow-soft);font-weight:590}.canvas-frame-wrap.is-expanded{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--bg-0)}.canvas-view-controls{position:absolute;bottom:var(--sp3);left:var(--sp3);z-index:3;display:flex;align-items:center;gap:2px;padding:var(--sp1);background:var(--surface-raised);border:1px solid var(--ui-line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.canvas-view-controls .theme-toggle:disabled{opacity:.42;cursor:default}.canvas-zoom-reset{font-family:var(--font-mono);font-size:var(--type-micro);font-variant-numeric:tabular-nums}.canvas-iframe{flex:1;width:100%;border:none;background:#fff}.canvas-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-faint)}.canvas-loading--overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:var(--bg-1)}@keyframes canvas-refresh-spin{to{transform:rotate(360deg)}}.canvas-refresh-btn.is-refreshing svg{animation:canvas-refresh-spin .9s linear infinite}.canvas-skeleton{display:flex;flex-direction:column;gap:var(--sp3);padding:var(--sp5);opacity:1;transition:opacity .32s ease-out}.canvas-skeleton.is-fading{opacity:0;pointer-events:none}.canvas-skeleton-row{display:flex;gap:var(--sp3)}@keyframes canvas-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.canvas-skeleton-block{flex:1;height:44px;border-radius:var(--radius);background:linear-gradient(100deg,var(--surface-inset) 40%,var(--surface-hover) 50%,var(--surface-inset) 60%);background-size:200% 100%;animation:canvas-skeleton-shimmer 1.6s ease-in-out infinite}.canvas-skeleton-title{flex:0 0 auto;height:16px;max-width:40%}.canvas-skeleton-wide{flex:0 0 auto;height:24px}@media(prefers-reduced-motion:reduce){.canvas-refresh-btn.is-refreshing svg{animation:none;opacity:.6}.canvas-skeleton-block{animation:none}}.canvas-pan-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:grab;touch-action:none}.canvas-pan-layer.is-panning{cursor:grabbing}.canvas-pan-layer[data-over-node]{cursor:pointer}.canvas-expand-exit{position:absolute;top:var(--sp3);right:var(--sp3);z-index:4;background:var(--surface-raised);box-shadow:var(--shadow-sm)}.canvas-render-error{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp3);padding:var(--sp5);text-align:center}.canvas-error-icon{display:flex;color:var(--amber)}.canvas-error-summary{margin:0;max-width:44ch;font-size:var(--type-label);line-height:1.55;color:var(--text-dim);overflow-wrap:anywhere}.canvas-error-actions{display:flex;gap:var(--sp2)}.canvas-error-details{max-width:52ch;font-size:var(--type-meta);color:var(--text-faint)}.canvas-error-details summary{cursor:pointer}.canvas-error-details pre{margin:var(--sp2) 0 0;padding:var(--sp2) var(--sp3);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-mono);background:var(--surface-inset);border:1px solid var(--ui-line);border-radius:var(--radius)}.code-panel{flex:1;min-height:0;display:flex;flex-direction:column}.code-panel-empty{flex:1;min-height:0}.code-panel-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp2) var(--pane-pad-x) var(--sp4)}.code-panel-header .workflow-deployed-tag,.code-panel-draft-tag{flex:0 0 auto;margin-left:auto}.code-panel .snippet-panel{border:1px solid var(--ui-line);border-bottom:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--bg-1);padding-top:var(--sp1);padding-bottom:var(--sp1)}.code-panel .snippet-panel-header,.code-panel .snippet-slug-row,.code-panel .snippet-slug-inferred,.code-panel .snippet-tabs,.code-panel .snippet-hint{padding-left:var(--sp3);padding-right:var(--sp3)}.code-panel .snippet-code-wrap{margin-left:var(--sp3);margin-right:var(--sp3)}.code-panel .snippet-code{max-height:24rem}.snippet-panel{display:flex;flex-direction:column;flex:0 0 auto;border-bottom:1px solid var(--border);background:var(--surface-raised)}.snippet-panel-header{display:flex;align-items:center;padding:var(--sp2) var(--pane-pad-x) var(--sp1)}.snippet-panel-title{font-size:var(--type-micro);font-weight:700;letter-spacing:.01em;color:var(--text-faint)}.snippet-slug-row{display:flex;align-items:center;gap:var(--sp2);padding:0 var(--pane-pad-x) var(--sp1)}.snippet-slug-label{font-size:var(--type-micro);font-weight:600;color:var(--text-faint);white-space:nowrap;flex-shrink:0}.snippet-slug{flex:1;min-width:0;overflow-x:auto;background:var(--surface-inset);border:1px solid var(--ui-line);border-radius:var(--radius);padding:3px var(--sp2);color:var(--text);font-family:var(--font-mono);font-size:var(--type-meta);white-space:nowrap}.snippet-slug-inferred{margin:0;padding:0 var(--pane-pad-x) var(--sp1);font-size:var(--type-micro);line-height:1.4;color:var(--text-faint)}.snippet-tabs{display:flex;gap:2px;padding:0 var(--pane-pad-x) var(--sp1)}.snippet-tab{padding:3px var(--sp2);font-size:var(--type-meta);font-weight:510;color:var(--text-faint);background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.snippet-tab:hover{color:var(--text-dim);background:var(--bg-hover)}.snippet-tab:active{transform:translateY(.5px)}.snippet-tab.is-active{color:var(--text);background:var(--bg-1);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.snippet-tab:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.snippet-code-wrap{position:relative;margin:0 var(--pane-pad-x) var(--sp1)}.snippet-code{margin:0;padding:var(--sp2) var(--sp3);padding-right:56px;background:var(--surface-inset);border:1px solid var(--ui-line);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--type-meta);line-height:1.55;color:var(--text-dim);overflow-x:auto;white-space:pre;max-height:10rem;overflow-y:auto}.snippet-copy{position:absolute;top:var(--sp1);right:var(--sp1);padding:2px var(--sp2);font-size:var(--type-micro);font-weight:510;color:var(--text-faint);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-xs);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.snippet-copy:hover:not(.is-copied){color:var(--text);border-color:var(--accent-border)}.snippet-copy:active:not(.is-copied){transform:translateY(.5px)}.snippet-copy:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.snippet-copy.is-copied{color:var(--brand);border-color:var(--accent-border);background:var(--accent-dim);cursor:default}.snippet-hint{margin:0;padding:0 var(--pane-pad-x) var(--sp2);font-size:var(--type-micro);color:var(--text-faint);line-height:1.5}.snippet-hint code{font-family:var(--font-mono);font-size:var(--type-micro);color:var(--text-dim)}.snippet-link{color:var(--brand);text-decoration:none;font-weight:510}.snippet-link:hover{text-decoration:underline}.snippet-link:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-radius:2px}@media(prefers-reduced-motion:reduce){.snippet-tab,.snippet-copy{transition:none}.snippet-tab:active,.snippet-copy:active:not(.is-copied){transform:none}}.canvas-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:var(--sp5) var(--pane-pad-x);color:var(--text-faint);font-size:var(--type-label);line-height:1.6;background-image:radial-gradient(color-mix(in srgb,var(--text) 10%,transparent) 1px,transparent 1px);background-size:16px 16px}.canvas-empty code{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--type-meta)}.canvas-empty-hint{max-width:320px;color:var(--text-faint);font-size:var(--type-meta)}.canvas-visualize-cta{position:relative;display:flex;align-items:center;gap:6px;margin:4px 0}.canvas-task-activity,.canvas-task-failed{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp3);text-align:center;padding:var(--sp5);color:var(--text-dim);font-size:var(--type-label);line-height:1.6}.canvas-task-activity--overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:color-mix(in srgb,var(--bg-1) 88%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.canvas-task-activity--overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(color-mix(in srgb,var(--text) 10%,transparent) 1px,transparent 1px);background-size:16px 16px;animation:canvas-grid-shimmer 2.6s ease-in-out infinite;pointer-events:none}@keyframes canvas-grid-shimmer{0%,to{opacity:.45}50%{opacity:1}}.canvas-task-activity--overlay>*{position:relative}.canvas-task-icon{display:flex;align-items:center;justify-content:center;color:var(--brand);animation:canvas-task-breathe 2s ease-in-out infinite}@keyframes canvas-task-breathe{0%,to{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.canvas-task-activity--overlay:before,.canvas-task-icon{animation:none}}.canvas-task-title{display:flex;align-items:center;gap:var(--sp2);color:var(--text);font-size:var(--type-label);font-weight:510}.canvas-task-spinner{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--accent);animation:session-tab-busy-pulse 1.2s ease-in-out infinite}.canvas-task-lines{list-style:none;margin:0;padding:0;max-width:340px;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;font-family:var(--font-mono);font-size:var(--type-meta);text-align:left;color:var(--text-faint)}.canvas-task-lines li{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-task-lines li:last-child{color:var(--text-dim)}.canvas-task-error{max-width:340px;max-height:160px;width:100%;overflow:auto;margin:0;padding:var(--sp2) var(--sp3);text-align:left;font-family:var(--font-mono);font-size:var(--type-meta);line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--text-faint);background:var(--bg-inset, rgba(128, 128, 128, .08));border:1px solid var(--border);border-radius:var(--radius-md)}.canvas-task-actions{display:flex;align-items:center;gap:8px}.btn-ghost{background:transparent;border:1px solid var(--border-strong);color:var(--text-dim);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:5px 10px;font-size:var(--type-label);font-weight:500;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);border-color:var(--ui-line-strong);color:var(--text)}.btn-ghost:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn-primary{background:var(--accent);border:1px solid transparent;color:var(--accent-foreground);font-weight:500;border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:5px 10px;font-size:var(--type-label);transition:background-color var(--transition-fast)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn-ghost:disabled,.btn-primary:disabled{opacity:.42;cursor:default}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim-bg);display:flex;align-items:center;justify-content:center;z-index:100;animation:fade-in var(--transition-fast) ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:24px;width:380px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);animation:pop-in var(--transition-fast) ease-out}.command-palette{width:480px;padding:0;overflow:hidden}.command-palette-input{width:100%;height:var(--pane-header-h);padding:0 var(--pane-pad-x);border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font-size:var(--type-body);transition:border-color var(--transition-fast)}.command-palette-input:focus{outline:none;border-bottom-color:var(--accent)}.command-palette-list{max-height:320px;overflow-y:auto;padding:6px}.command-palette-empty{padding:12px 10px;color:var(--text-faint);font-size:var(--type-label)}.command-palette-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-dim);text-align:left;transition:background-color var(--transition-fast)}.command-palette-item.is-selected{background:var(--accent);color:var(--accent-foreground)}.command-palette-item-label{font-size:var(--type-ui);color:var(--text);flex:0 0 auto;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-palette-item-meta{font-size:var(--type-meta);color:var(--text-faint);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.command-palette-item.is-selected .command-palette-item-label,.command-palette-item.is-selected .command-palette-item-meta{color:var(--accent-foreground)}.modal-header{font-size:var(--type-ui);font-weight:600;padding-bottom:16px;margin-bottom:12px;border-bottom:1px solid var(--border)}.modal-input{width:100%;background:var(--bg-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);height:var(--control-h-xs);padding:0 var(--sp2);color:var(--text);font-size:var(--type-ui);transition:border-color var(--transition-fast)}.modal-input:focus{outline:2px solid var(--focus);outline-offset:2px}.modal-error{color:var(--red);font-size:var(--type-label);margin-top:8px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.recent-dirs{display:flex;align-items:center;flex-wrap:nowrap;gap:var(--sp1);height:var(--pane-header-h);margin-inline:calc(-1 * var(--modal-pad-x, var(--sp5)));padding-inline:var(--modal-pad-x, var(--sp5));border-bottom:1px solid var(--ui-line);overflow-x:auto;scrollbar-width:none}.recent-dirs::-webkit-scrollbar{display:none}.recent-dir-chip{display:inline-flex;align-items:center;flex:0 0 auto;height:var(--control-h-xs);background:var(--bg-3);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:var(--radius-md);padding:0 var(--sp3);font-size:var(--type-meta);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast)}.recent-dir-chip:hover{color:var(--text);border-color:var(--accent)}.recent-dir-chip:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.modal-new-session,.modal-add-workspace,.modal-confirm{--modal-pad-x: var(--pane-pad-x);width:440px;padding:0}.modal-confirm{width:400px}.modal-close{margin-left:auto}.modal-primary-cta{min-width:128px}.modal-confirm .modal-header{display:flex;align-items:center;min-height:var(--pane-header-h);padding:0 var(--modal-pad-x);margin-bottom:0}.modal-confirm .modal-body{padding:var(--sp4) var(--modal-pad-x)}.modal-copy{margin:0;color:var(--text-dim);font-size:var(--type-ui);line-height:1.55}.modal-confirm .modal-actions{margin-top:0;padding:var(--sp3) var(--modal-pad-x)}.btn-danger{display:inline-flex;align-items:center;justify-content:center;height:var(--control-h-xs);padding:0 var(--sp3);border:1px solid transparent;border-radius:var(--radius);background:var(--red);color:#fff;font-weight:510;font-size:var(--type-label);transition:background-color var(--transition-fast),transform var(--transition-fast)}.btn-danger:hover{transform:translateY(-1px)}.btn-danger:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.modal-new-session .modal-header,.modal-add-workspace .modal-header{display:flex;align-items:center;min-height:var(--pane-header-h);padding:0 var(--modal-pad-x);margin-bottom:0}.modal-body{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp4);padding:0 var(--modal-pad-x, var(--sp5))}.modal-field-hint{margin:0;padding-bottom:var(--sp2);font-size:var(--type-meta);color:var(--text-faint);line-height:1.5}.modal-section{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp1);min-width:0}.modal-new-session .modal-actions,.modal-add-workspace .modal-actions{margin-top:0;padding:var(--sp3) var(--modal-pad-x)}.harness-select{display:inline-flex;align-items:center;gap:var(--sp2);min-width:0;margin-right:auto;height:var(--control-h-xs);padding:0 var(--sp2);max-width:15rem;background:var(--surface-inset);border:1px solid var(--ui-line);border-radius:var(--radius);color:var(--text);font-size:var(--type-label);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.harness-select:hover:not(:disabled),.harness-select[aria-expanded=true]{background:var(--surface-hover)}.harness-select:active:not(:disabled){background:var(--active-shade)}.harness-select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.harness-select:disabled{opacity:.42;cursor:default}.harness-select-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(prefers-reduced-motion:reduce){.harness-select{transition:none}}.harness-select-menu{min-width:230px;z-index:140}.dir-picker-inputrow{display:flex;align-items:center;gap:var(--sp2);height:var(--pane-header-h);margin-inline:calc(-1 * var(--modal-pad-x, var(--sp5)));padding-inline:var(--modal-pad-x, var(--sp5));border-bottom:1px solid var(--ui-line)}.dir-picker-up{flex:0 0 auto;width:var(--control-h-xs);height:var(--control-h-xs);display:flex;align-items:center;justify-content:center;background:var(--bg-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);color:var(--text-dim);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.dir-picker-up:hover:not(:disabled){background:var(--surface-hover);border-color:var(--ui-line-strong);color:var(--text)}.dir-picker-up:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.dir-picker-up:disabled{opacity:.42;cursor:default}.dir-picker-input{flex:1;font-family:var(--font-mono)}.dir-picker-listing{margin:0 calc(-1 * var(--modal-pad-x, var(--sp5)));border-top:0;border-block:1px solid var(--ui-line);background:var(--surface-inset);max-height:180px;overflow-y:auto}.dir-picker-path{position:sticky;top:0;padding:var(--sp1) var(--modal-pad-x, var(--sp5));font-size:var(--type-micro);font-family:var(--font-mono);color:var(--text-faint);background:var(--bg-3);border-bottom:1px solid var(--border)}.dir-picker-newdir{padding:var(--sp2) var(--modal-pad-x, var(--sp5));font-size:var(--type-label);color:var(--brand)}.dir-picker-empty{padding:var(--sp2) var(--modal-pad-x, var(--sp5));font-size:var(--type-label);color:var(--text-faint)}.dir-picker-item{display:flex;align-items:center;gap:var(--sp2);width:100%;height:var(--control-h-xs);padding:0 var(--modal-pad-x, var(--sp5));border:none;background:transparent;border-radius:0;color:var(--text-dim);font-size:var(--type-ui);text-align:left;transition:background-color var(--transition-fast)}.dir-picker-item:hover{background:var(--surface-hover);color:var(--text)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:480px;padding:10px 14px;background:var(--bg-2);border:1px solid var(--border-strong);border-left:3px solid var(--red);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;animation:pop-in var(--transition-fast) ease-out}.toast-message{color:var(--text);font-size:var(--type-ui);line-height:1.4}.toast-dismiss{border:none;background:transparent;color:var(--text-faint);font-size:var(--type-h2);line-height:1;cursor:pointer;padding:0 2px;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.toast-dismiss:hover{color:var(--text)}.toast-dismiss:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.right-pane{display:flex;flex-direction:column;background:var(--bg-1);min-width:0;min-height:0;overflow:hidden;container:rightpane / inline-size}@container rightpane (max-width: 360px){.right-pane-tabs{gap:2px;padding:0 var(--sp2)}.right-pane-tab{padding:3px var(--sp2)}}.right-pane-tabs{display:flex;align-items:center;gap:var(--sp1);flex-shrink:0;height:var(--pane-header-h);padding:0 var(--pane-pad-x);border-bottom:1px solid var(--border);background:var(--surface-raised)}.right-pane-tab{padding:3px 10px;font-size:var(--type-label);font-weight:500;color:var(--text-faint);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.right-pane-tab:hover{color:var(--text-dim);background:var(--bg-hover)}.right-pane-tab.is-active{color:var(--text);background:var(--bg-1);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.right-pane-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.right-pane-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.right-pane-panel.is-hidden,.right-pane.is-collapsed{display:none}.right-pane-collapse{margin-left:auto}.right-pane-panel>.canvas-pane{flex:1;min-height:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#a1a1aabf;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#a1a1aae6}*{scrollbar-width:thin;scrollbar-color:rgba(161,161,170,.75) transparent}.agent-view{position:relative;flex:1;min-height:0}.agent-view-panel{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0}.shell-scrim{display:none}@media(max-width:768px){.workspace-main{min-width:0}.shell-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:79;background:var(--scrim-bg);animation:fade-in var(--transition-fast)}.rail-workflows{position:fixed;inset:0 auto 0 0;z-index:80;width:min(20rem,85vw)!important;min-width:0!important;border-right:1px solid var(--border-strong);box-shadow:var(--shadow-lg);animation:shell-drawer-in .3s var(--ease)}.right-pane{position:fixed;left:0;right:0;bottom:0;top:var(--pane-header-h);z-index:80;border-top:1px solid var(--border-strong);box-shadow:var(--shadow-lg);animation:shell-sheet-in .3s var(--ease)}}@keyframes shell-drawer-in{0%{transform:translate(-100%)}}@keyframes shell-sheet-in{0%{transform:translateY(100%)}}@media(prefers-reduced-motion:reduce){.rail-workflows,.right-pane,.shell-scrim{animation:none}}.command-palette-row{display:contents}.command-palette-section{font-size:var(--type-micro);font-weight:700;letter-spacing:.01em;color:var(--text-faint);padding:4px 10px;margin-top:var(--sp2)}.command-palette-row:first-child .command-palette-section{margin-top:0}.palette-match{font-weight:700;color:var(--text)}.command-palette-item-meta .palette-match{color:var(--text-dim)}.command-palette-item.is-selected .palette-match{color:var(--accent-foreground)}.command-palette-error{padding:12px 10px;color:var(--red);font-size:var(--type-label)}.modal-scaffold-cta{display:inline-flex;align-items:center;gap:var(--sp2);margin-bottom:var(--sp2)}.modal-scan-btn{display:inline-flex;align-items:center;gap:var(--sp2);margin-right:auto}.mcp-install{display:flex;flex-direction:column;gap:var(--sp2);margin:var(--sp2) 0 var(--sp3);padding:var(--sp3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-2)}.mcp-install-title{font-size:var(--type-label);font-weight:600;color:var(--text)}.mcp-install-hint{margin:0;font-size:var(--type-meta);color:var(--text-faint);line-height:1.5}.mcp-install-actions{display:flex;flex-wrap:wrap;gap:var(--sp2)}.mcp-install-copy{display:inline-flex;align-items:center;gap:var(--sp2)}.recent-dirs[data-fade=right]{-webkit-mask-image:linear-gradient(to right,black calc(100% - 32px),transparent);mask-image:linear-gradient(to right,black calc(100% - 32px),transparent)}.recent-dirs[data-fade=left]{-webkit-mask-image:linear-gradient(to right,transparent,black 32px);mask-image:linear-gradient(to right,transparent,black 32px)}.recent-dirs[data-fade=both]{-webkit-mask-image:linear-gradient(to right,transparent,black 32px,black calc(100% - 32px),transparent);mask-image:linear-gradient(to right,transparent,black 32px,black calc(100% - 32px),transparent)}.dir-picker-error{display:flex;align-items:center;gap:var(--sp2);padding:var(--sp2) var(--modal-pad-x, var(--sp5));font-size:var(--type-label);color:var(--red)}.dir-picker-error>span{flex:1;min-width:0}.dir-picker-retry{flex:0 0 auto}.dead-session-detail{display:flex;flex-direction:column;gap:var(--sp1);min-width:240px;max-width:360px;margin:var(--sp2) 0 var(--sp3);padding:var(--sp2) var(--sp3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-2);text-align:left}.dead-session-detail-row{display:flex;justify-content:space-between;gap:var(--sp4);font-size:var(--type-label)}.dead-session-detail-row dt{color:var(--text-faint);flex:0 0 auto}.dead-session-detail-row dd{margin:0;color:var(--text-dim);text-align:right;overflow-wrap:anywhere}.modal-templates{--modal-pad-x: var(--pane-pad-x);width:720px;max-width:calc(100vw - var(--sp6));max-height:min(600px,calc(100vh - var(--sp7)));padding:0;display:flex;flex-direction:column}.modal-templates .modal-header{display:flex;align-items:center;flex:0 0 auto;min-height:var(--pane-header-h);padding:0 var(--modal-pad-x);margin-bottom:0}.templates-layout{display:grid;grid-template-columns:232px minmax(0,1fr);flex:1;min-height:0}.templates-list{display:flex;flex-direction:column;gap:var(--sp1);padding:var(--sp2);border-right:1px solid var(--ui-line);overflow-y:auto}.templates-list-section{padding:var(--sp2) var(--sp2) 0;font-size:var(--type-micro);font-weight:700;letter-spacing:.01em;color:var(--text-faint)}.template-row{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp1);padding:var(--sp2);border:none;border-radius:var(--radius-sm);background:transparent;text-align:left;transition:background-color var(--transition-fast)}.template-row:hover{background:var(--surface-hover)}.template-row:active{background:var(--active-shade)}.template-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.template-row.is-selected{background:var(--accent)}.template-row-name{font-size:var(--type-ui);font-weight:550;color:var(--text)}.template-row-desc{font-size:var(--type-meta);color:var(--text-faint);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.template-row.is-selected .template-row-name,.template-row.is-selected .template-row-desc{color:var(--accent-foreground)}.template-detail{display:flex;flex-direction:column;gap:var(--sp3);padding:var(--sp4) var(--modal-pad-x);overflow-y:auto}.template-detail-head{display:flex;align-items:baseline;gap:var(--sp2);flex-wrap:wrap}.template-detail-name{margin:0;font-size:var(--type-body);font-weight:600;color:var(--text)}.template-tags{display:inline-flex;gap:var(--sp1)}.template-tag{padding:0 var(--sp1);border:1px solid var(--ui-line);border-radius:var(--radius-sm);font-size:var(--type-micro);color:var(--text-faint)}.template-byline{font-size:var(--type-meta);color:var(--text-faint)}.template-byline a{color:inherit}.template-byline a:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.template-lead{margin:0;font-size:var(--type-ui);color:var(--text-dim);line-height:1.55}.template-section{display:flex;flex-direction:column;gap:var(--sp2)}.template-section-title{margin:0;font-size:var(--type-micro);font-weight:700;letter-spacing:.01em;color:var(--text-faint)}.template-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp2)}.template-step{display:flex;align-items:baseline;gap:var(--sp2)}.template-step-index{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--type-meta);color:var(--text-faint)}.template-step-copy{display:flex;flex-direction:column;gap:0;min-width:0;flex:1}.template-step-name{display:inline-flex;align-items:baseline;gap:var(--sp2);font-family:var(--font-mono);font-size:var(--type-label);color:var(--text)}.template-step-exit{padding:0 var(--sp1);border:1px solid var(--ui-line);border-radius:var(--radius-sm);font-family:var(--font);font-size:var(--type-micro);color:var(--text-faint)}.template-step-desc{font-size:var(--type-meta);color:var(--text-faint);line-height:1.4}.template-graph{display:flex;flex-direction:column;gap:var(--sp2);padding:var(--sp3);border:1px solid var(--ui-line);border-radius:var(--radius);background:var(--surface-inset)}.template-graph-item{display:flex;flex-direction:column;gap:var(--sp1)}.template-graph-node{display:flex;align-items:center;gap:var(--sp2);font-size:var(--type-meta);color:var(--text)}.template-graph-name{font-weight:510}.template-graph-edge{padding-left:var(--sp4)}.template-caps{display:flex;flex-wrap:wrap;gap:var(--sp1)}.template-cap{flex:0 0 auto;padding:0 var(--sp1);border:1px solid var(--ui-line);border-radius:var(--radius-sm);background:var(--surface-inset);font-family:var(--font-mono);font-size:var(--type-micro);color:var(--text-dim)}.template-note{margin:0;font-size:var(--type-meta);color:var(--text-faint);line-height:1.5}.template-usecases{margin:0;padding-left:var(--sp4);display:flex;flex-direction:column;gap:var(--sp1);font-size:var(--type-meta);color:var(--text-dim);line-height:1.5}.template-example{border:1px solid var(--ui-line);border-radius:var(--radius-sm)}.template-example-summary{padding:var(--sp2);font-size:var(--type-meta);color:var(--text-dim);cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.template-example-summary:hover{background:var(--surface-hover)}.template-example-summary:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.template-example-body{display:flex;flex-direction:column;gap:var(--sp1);padding:var(--sp2);border-top:1px solid var(--ui-line)}.template-example-label{font-size:var(--type-micro);font-weight:700;color:var(--text-faint)}.template-example-json{margin:0;padding:var(--sp2);border-radius:var(--radius-sm);background:var(--surface-inset);font-family:var(--font-mono);font-size:var(--type-micro);color:var(--text-dim);white-space:pre-wrap;overflow-wrap:anywhere}.template-notes{font-size:var(--type-meta);color:var(--text-dim);line-height:1.5}.template-notes p{margin:0 0 var(--sp2)}.template-notes p:last-child{margin-bottom:0}.template-handoff{margin:0;padding-top:var(--sp2);border-top:1px solid var(--ui-line);font-size:var(--type-meta);color:var(--text-faint);line-height:1.5}.templates-actions{flex:0 0 auto;align-items:center;margin-top:0;padding:var(--sp3) var(--modal-pad-x)}.templates-dest{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp1)}.templates-dest .modal-input{font-family:var(--font-mono);font-size:var(--type-label)}.templates-dest-hint,.templates-dest-error{font-size:var(--type-micro);line-height:1.4}.templates-dest-hint{color:var(--text-faint)}.templates-dest-error{margin-top:0}.modal-templates-cta{display:inline-flex;align-items:center;gap:var(--sp2);margin-bottom:var(--sp2);align-self:start}@media(max-width:768px){.modal-templates{max-height:calc(100dvh - var(--sp6))}.templates-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.templates-list{max-height:176px;border-right:none;border-bottom:1px solid var(--ui-line)}.templates-actions{flex-wrap:wrap}.templates-dest{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){.template-row,.template-example-summary{transition:none}}body{font-size:var(--type-ui, 13px)}.session-item-meta,.session-item-cwd,.palette-trigger-hint,.session-history-badge{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.brand-name{font-size:var(--type-body);font-weight:590;letter-spacing:-.03em}.brand-product{font-weight:510;letter-spacing:-.01em}.brand-divider{height:16px;background:var(--ui-line-strong, var(--border-strong))}.theme-toggle{width:var(--control-h-xs);height:var(--control-h-xs);border-radius:var(--radius)}.theme-toggle:active{transform:scale(.96)}.brand-identity{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:-.01em}.rail{background:var(--surface-raised);border-right:1px solid var(--ui-line, var(--border))}.workflow-item{border-radius:var(--radius);border:1px solid transparent}.workflow-item:hover{background:var(--surface-hover, var(--bg-hover))}.pane-resize-handle{width:9px;background:transparent}.pane-resize-handle:before{content:"";position:absolute;inset:0 auto 0 50%;width:1px;transform:translate(-50%);background:var(--ui-line, var(--border));transition:width var(--fast, .13s) var(--ease),background-color var(--fast, .13s) var(--ease)}.pane-resize-handle:hover,.pane-resize-handle:active{background:transparent}.pane-resize-handle:hover:before,.pane-resize-handle:active:before,.pane-resize-handle:focus-visible:before{width:2px;background:var(--brand)}.pane-resize-handle:focus-visible{outline:none}.center-pane{border-right:1px solid var(--ui-line, var(--border));background:var(--surface-base, var(--bg-0))}.terminal-empty,.rail-empty{color:var(--text-faint)}.session-bar{background:var(--surface-raised);border-bottom:1px solid var(--ui-line, var(--border))}.session-workflow-chip{background:transparent;border:0;padding:0;color:var(--text-faint);font-size:var(--type-meta);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-ghost,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp1);border-radius:var(--radius);height:var(--control-h-xs);padding:0 var(--sp3);font-weight:510;transition:background-color var(--fast, .13s) var(--ease),border-color var(--fast, .13s) var(--ease),color var(--fast, .13s) var(--ease),transform var(--fast, .13s) var(--ease)}.btn-ghost{border-color:var(--ui-line, var(--border));box-shadow:none}.btn-ghost:hover:not(:disabled){transform:translateY(-1px)}.btn-primary{background:var(--btn);color:var(--btn-ink);border-color:transparent;box-shadow:none}.btn-primary:hover:not(:disabled){background:var(--btn);transform:translateY(-1px);box-shadow:var(--shadow-soft)}.right-pane{background:var(--surface-raised)}.right-pane-tabs{background:var(--surface-raised);border-bottom:1px solid var(--ui-line, var(--border))}.right-pane-tab{display:inline-flex;align-items:center;border-radius:var(--radius);height:var(--control-h-xs);padding:0 var(--sp3);font-weight:510}.right-pane-tab:hover{background:var(--surface-hover, var(--bg-hover))}.right-pane-tab.is-active{background:var(--active-shade);border-color:var(--ui-line, var(--border));box-shadow:none;color:var(--text)}.canvas-pane,.right-pane-panel{background:var(--surface-raised)}.canvas-empty,.canvas-empty-hint{color:var(--text-dim)}.canvas-empty-hint code{font-family:var(--font-mono);font-size:var(--type-meta);padding:1px 5px;border-radius:var(--radius);background:var(--surface-inset, var(--bg-2))}.canvas-frame-wrap{animation:refine-content-in var(--base, .22s) var(--ease) both}.modal-backdrop{background:var(--scrim-bg, rgba(3, 3, 5, .55));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal,.command-palette,.settings-popover{border:1px solid var(--ui-line-strong, var(--border-strong));border-radius:var(--radius);box-shadow:var(--shadow);animation:refine-dialog-in var(--base, .22s) var(--ease) both}.settings-popover{border-radius:var(--radius)}.rail-empty,.workspace-group-empty,.terminal-empty,.canvas-empty,.skills-empty,.skills-loading,.dir-picker-empty,.session-dropdown-empty,.command-palette-empty{color:var(--text-faint);font-size:var(--type-label, 12px);line-height:1.5}.skills-error,.modal-error,.welcome-error,.command-palette-error,.dir-picker-error{color:var(--red-text);font-size:var(--type-label, 12px);line-height:1.5}.command-palette-error,.dir-picker-error{padding:var(--sp2, 8px) var(--sp3, 12px);font-family:var(--font-mono);font-size:var(--type-meta, 11px)}.dir-picker-error{padding:var(--sp2, 8px) var(--sp5, 24px)}.workflow-dot,.session-dot{box-shadow:none}@keyframes refine-content-in{0%{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes refine-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.btn-ghost:hover:not(:disabled),.btn-primary:hover:not(:disabled){transform:none}.canvas-frame-wrap,.modal,.command-palette,.settings-popover{animation-duration:1ms}}
|