castle-web-cli 0.4.76 → 0.4.78

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.
@@ -1 +1 @@
1
- export declare const COMMON_INSTRUCTIONS = "## Touch controls (every deck)\n\n- **Playable on a touchscreen, with only the controls the game actually needs.** Castle decks are played on phones, so whatever input a game does use must work by touch \u2014 direct tap/drag on the game itself wherever possible, and on-screen buttons only where the mechanics genuinely call for them. Do NOT add controls a game doesn't need: never drop in a generic d-pad or movement overlay by default. Prefer touching the game directly over an overlay that just mirrors keyboard keys. Keyboard input is fine to support on top for desktop play. Match the controls to the actual mechanics \u2014 a game with no directional movement should have no movement controls at all.\n\n## Fit the card (every deck)\n\n- **The deck plays inside a fixed 5:7 portrait card, not the full window.** The card is sized to fit the screen (at most about 450x630px), clips overflow, and does not scroll. Design the whole layout to fit inside that portrait box: size UI relative to the card with percentages, flex/grid, `min()`, `clamp()`, or viewport-relative units instead of fixed tall panels. Let playfields scale down on smaller cards rather than overflowing; anything outside the card edges is cut off. The SDK exports `CARD_RATIO` (= 5 / 7) if you need the exact ratio.\n";
1
+ export declare const COMMON_INSTRUCTIONS = "## Assets (every deck)\n\n- **Load static assets (drawings, audio, etc.) through the bundler \u2014 never runtime-`fetch` a loose file path.** Use a static `import`, `import.meta.glob('./drawings/*.svg', { eager: true, import: 'default' })`, or inline the asset directly. The dev serve happens to serve loose files over HTTP, so `fetch('drawings/qb.svg')` looks like it works locally \u2014 but `save-deck` bundles the whole deck into a single file, loose files are no longer served, and the fetch silently fails on every platform. Kit decks: use the kit's own drawing/asset-loading APIs instead of a raw `fetch`.\n\n## Touch controls (every deck)\n\n- **Playable on a touchscreen, with only the controls the game actually needs.** Castle decks are played on phones, so whatever input a game does use must work by touch \u2014 direct tap/drag on the game itself wherever possible, and on-screen buttons only where the mechanics genuinely call for them. Do NOT add controls a game doesn't need: never drop in a generic d-pad or movement overlay by default. Prefer touching the game directly over an overlay that just mirrors keyboard keys. Keyboard input is fine to support on top for desktop play. Match the controls to the actual mechanics \u2014 a game with no directional movement should have no movement controls at all.\n\n## Fit the card (every deck)\n\n- **The deck plays inside a fixed 5:7 portrait card, not the full window.** The card is sized to fit the screen (at most about 450x630px), clips overflow, and does not scroll. Design the whole layout to fit inside that portrait box: size UI relative to the card with percentages, flex/grid, `min()`, `clamp()`, or viewport-relative units instead of fixed tall panels. Let playfields scale down on smaller cards rather than overflowing; anything outside the card edges is cut off. The SDK exports `CARD_RATIO` (= 5 / 7) if you need the exact ratio.\n- **Hand-rolled `<canvas>` elements must account for devicePixelRatio, or the game looks blurry on phones.** Size the backing store to the CSS layout size times `devicePixelRatio` (e.g. `canvas.width = rect.width * dpr`), keep the CSS width/height as the layout size, and scale the 2D context (`ctx.scale(dpr, dpr)`) so drawing code stays in CSS units \u2014 re-apply on resize. Kit decks don't need to do this by hand; the kit's engine already configures its canvas for DPR.\n - Exception: deliberate pixel art wants a fixed low-resolution backing store with `image-rendering: pixelated` CSS instead \u2014 don't DPR-scale that; the crisp chunky look is the point.\n";
@@ -2,11 +2,17 @@
2
2
  // deck's CLAUDE.md, regardless of kit (or no kit). Single source of truth —
3
3
  // edit here, not in the kits. Keep it truly kit-agnostic; kit-specific rules
4
4
  // (e.g. Space being reserved for play/stop) live in each kit's own CLAUDE.md.
5
- export const COMMON_INSTRUCTIONS = `## Touch controls (every deck)
5
+ export const COMMON_INSTRUCTIONS = `## Assets (every deck)
6
+
7
+ - **Load static assets (drawings, audio, etc.) through the bundler — never runtime-\`fetch\` a loose file path.** Use a static \`import\`, \`import.meta.glob('./drawings/*.svg', { eager: true, import: 'default' })\`, or inline the asset directly. The dev serve happens to serve loose files over HTTP, so \`fetch('drawings/qb.svg')\` looks like it works locally — but \`save-deck\` bundles the whole deck into a single file, loose files are no longer served, and the fetch silently fails on every platform. Kit decks: use the kit's own drawing/asset-loading APIs instead of a raw \`fetch\`.
8
+
9
+ ## Touch controls (every deck)
6
10
 
7
11
  - **Playable on a touchscreen, with only the controls the game actually needs.** Castle decks are played on phones, so whatever input a game does use must work by touch — direct tap/drag on the game itself wherever possible, and on-screen buttons only where the mechanics genuinely call for them. Do NOT add controls a game doesn't need: never drop in a generic d-pad or movement overlay by default. Prefer touching the game directly over an overlay that just mirrors keyboard keys. Keyboard input is fine to support on top for desktop play. Match the controls to the actual mechanics — a game with no directional movement should have no movement controls at all.
8
12
 
9
13
  ## Fit the card (every deck)
10
14
 
11
15
  - **The deck plays inside a fixed 5:7 portrait card, not the full window.** The card is sized to fit the screen (at most about 450x630px), clips overflow, and does not scroll. Design the whole layout to fit inside that portrait box: size UI relative to the card with percentages, flex/grid, \`min()\`, \`clamp()\`, or viewport-relative units instead of fixed tall panels. Let playfields scale down on smaller cards rather than overflowing; anything outside the card edges is cut off. The SDK exports \`CARD_RATIO\` (= 5 / 7) if you need the exact ratio.
16
+ - **Hand-rolled \`<canvas>\` elements must account for devicePixelRatio, or the game looks blurry on phones.** Size the backing store to the CSS layout size times \`devicePixelRatio\` (e.g. \`canvas.width = rect.width * dpr\`), keep the CSS width/height as the layout size, and scale the 2D context (\`ctx.scale(dpr, dpr)\`) so drawing code stays in CSS units — re-apply on resize. Kit decks don't need to do this by hand; the kit's engine already configures its canvas for DPR.
17
+ - Exception: deliberate pixel art wants a fixed low-resolution backing store with \`image-rendering: pixelated\` CSS instead — don't DPR-scale that; the crisp chunky look is the point.
12
18
  `;
@@ -0,0 +1,25 @@
1
+ import type { ViteDevServer } from 'vite';
2
+ export interface FileChangeEntry {
3
+ /** Deck-relative POSIX path. */
4
+ path: string;
5
+ event: 'add' | 'change' | 'delete';
6
+ /**
7
+ * Deck-relative paths of modules affected via the Vite import graph: the
8
+ * changed file itself (when it's part of the module graph) plus every
9
+ * transitive importer. Empty when the file isn't imported by anything.
10
+ */
11
+ affected: string[];
12
+ }
13
+ export interface FilesChangedMessage {
14
+ type: 'files_changed';
15
+ changes: FileChangeEntry[];
16
+ /** Union of every change's path + affected set, deduped. */
17
+ affected: string[];
18
+ }
19
+ export declare function installFilesChangedWatcher(opts: {
20
+ vite: ViteDevServer;
21
+ projectDir: string;
22
+ broadcast: (msg: FilesChangedMessage) => void;
23
+ /** Drop Vite transform caches (so `import.meta.glob` rescans new files). */
24
+ invalidate: () => void;
25
+ }): void;
@@ -0,0 +1,140 @@
1
+ // Serve-side files-changed broadcast. Watches the deck dir through Vite's own
2
+ // chokidar watcher (one watcher for everything), coalesces bursts of fs events
3
+ // into a single `files_changed` message, and folds in the Vite module graph:
4
+ // each change carries the transitive importer closure of the changed file, so
5
+ // consumers can tell "code my bundle depends on changed" apart from "a loose
6
+ // file changed". Vite's own HMR stays fully OFF (`server.hmr: false` in
7
+ // serve.ts) — reload decisions belong to consumers (the kit engine, editors,
8
+ // the shell), not to Vite.
9
+ import * as path from 'path';
10
+ const IGNORED_SEGMENTS = new Set(['node_modules', '.castle', '.git']);
11
+ // Coalescing: a burst of writes (agent editing several files, an editor's
12
+ // debounced saves landing together) becomes one message. DEBOUNCE resets per
13
+ // event; MAX bounds total latency under a sustained stream.
14
+ const DEBOUNCE_MS = 100;
15
+ const MAX_WAIT_MS = 500;
16
+ export function installFilesChangedWatcher(opts) {
17
+ const { vite, projectDir, broadcast, invalidate } = opts;
18
+ const pending = new Map();
19
+ let debounceTimer = null;
20
+ let maxTimer = null;
21
+ const flush = () => {
22
+ if (debounceTimer)
23
+ clearTimeout(debounceTimer);
24
+ if (maxTimer)
25
+ clearTimeout(maxTimer);
26
+ debounceTimer = null;
27
+ maxTimer = null;
28
+ if (pending.size === 0)
29
+ return;
30
+ const changes = [...pending.entries()]
31
+ .map(([relPath, change]) => ({
32
+ path: relPath,
33
+ event: change.event,
34
+ affected: [...change.affected].sort(),
35
+ }))
36
+ .sort((a, b) => a.path.localeCompare(b.path));
37
+ pending.clear();
38
+ // New/deleted files can be picked up by `import.meta.glob` importers whose
39
+ // cached transforms wouldn't rescan; drop caches like `restart` does.
40
+ if (changes.some((c) => c.event !== 'change'))
41
+ invalidate();
42
+ const affected = new Set();
43
+ for (const change of changes) {
44
+ affected.add(change.path);
45
+ for (const p of change.affected)
46
+ affected.add(p);
47
+ }
48
+ broadcast({ type: 'files_changed', changes, affected: [...affected].sort() });
49
+ };
50
+ const schedule = () => {
51
+ if (debounceTimer)
52
+ clearTimeout(debounceTimer);
53
+ debounceTimer = setTimeout(flush, DEBOUNCE_MS);
54
+ if (!maxTimer)
55
+ maxTimer = setTimeout(flush, MAX_WAIT_MS);
56
+ };
57
+ vite.watcher.on('all', (watchEvent, absFile) => {
58
+ const event = watchEvent === 'add' || watchEvent === 'change'
59
+ ? watchEvent
60
+ : watchEvent === 'unlink'
61
+ ? 'delete'
62
+ : null;
63
+ if (!event)
64
+ return; // addDir / unlinkDir
65
+ const relPath = deckRelative(projectDir, absFile);
66
+ if (!relPath)
67
+ return;
68
+ // Compute the importer closure at event time: for deletes, Vite prunes the
69
+ // file's graph entry shortly after the event, so waiting until flush would
70
+ // lose the edges.
71
+ const affected = importerClosure(vite, projectDir, absFile);
72
+ const existing = pending.get(relPath);
73
+ if (existing) {
74
+ // Merge events: a file created then edited within the window is still an
75
+ // 'add' for consumers; otherwise the newest event wins.
76
+ if (!(existing.event === 'add' && event === 'change'))
77
+ existing.event = event;
78
+ for (const p of affected)
79
+ existing.affected.add(p);
80
+ }
81
+ else {
82
+ pending.set(relPath, { event, affected: new Set(affected) });
83
+ }
84
+ schedule();
85
+ });
86
+ }
87
+ // Deck-relative POSIX path, or null when the file is outside the deck or under
88
+ // an ignored directory.
89
+ function deckRelative(projectDir, absFile) {
90
+ const rel = path.relative(projectDir, absFile);
91
+ if (!rel || rel.startsWith('..') || path.isAbsolute(rel))
92
+ return null;
93
+ const posix = rel.split(path.sep).join('/');
94
+ if (posix.split('/').some((segment) => IGNORED_SEGMENTS.has(segment)))
95
+ return null;
96
+ return posix;
97
+ }
98
+ function clientModuleGraph(vite) {
99
+ try {
100
+ const graph = vite
101
+ .environments?.client?.moduleGraph ?? vite.moduleGraph;
102
+ return graph ?? null;
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ }
108
+ // Deck-relative paths of the changed file's modules plus all transitive
109
+ // importers. Empty when the file isn't part of the module graph.
110
+ function importerClosure(vite, projectDir, absFile) {
111
+ const graph = clientModuleGraph(vite);
112
+ if (!graph)
113
+ return [];
114
+ let start;
115
+ try {
116
+ start = graph.getModulesByFile(absFile);
117
+ }
118
+ catch {
119
+ return [];
120
+ }
121
+ if (!start || start.size === 0)
122
+ return [];
123
+ const seen = new Set();
124
+ const files = new Set();
125
+ const queue = [...start];
126
+ while (queue.length > 0) {
127
+ const mod = queue.pop();
128
+ if (seen.has(mod))
129
+ continue;
130
+ seen.add(mod);
131
+ if (mod.file) {
132
+ const rel = deckRelative(projectDir, mod.file);
133
+ if (rel)
134
+ files.add(rel);
135
+ }
136
+ for (const importer of mod.importers ?? [])
137
+ queue.push(importer);
138
+ }
139
+ return [...files];
140
+ }
package/dist/ide.js CHANGED
@@ -276,6 +276,8 @@ function handleFilesApi(deckDir, req, res, reqPath) {
276
276
  if (action === "info") {
277
277
  const config = readEditorConfig(deckDir);
278
278
  sendJson(res, 200, {
279
+ // Stable per-deck id for client-side layout persistence (localStorage key).
280
+ deckId: path.resolve(deckDir),
279
281
  kitEditorExtensions: kitEditorExtensions(deckDir),
280
282
  initialPanels: config.initialPanels ?? null,
281
283
  hiddenPaths: config.hiddenPaths ?? [],
package/dist/init.js CHANGED
@@ -35,7 +35,7 @@ const DEFAULT_KIT = "basic-2d";
35
35
  // Registry version of castle-web-sdk to inject when scaffolding from a
36
36
  // globally-installed castle-web (not from inside the workspace). Bumped
37
37
  // alongside cli/sdk version bumps.
38
- const PUBLISHED_SDK_VERSION = "0.4.8";
38
+ const PUBLISHED_SDK_VERSION = "0.4.9";
39
39
  // Never copied into a fresh deck: build/dependency junk. castle.json IS copied
40
40
  // (the kit ships a config-only one with the editor layout / file filters), but
41
41
  // `scaffoldFromKit` strips any identity fields off it first -- a fresh deck has
package/dist/serve.js CHANGED
@@ -7,6 +7,7 @@ import { WebSocketServer, WebSocket } from 'ws';
7
7
  import { createIdeServer } from './ide.js';
8
8
  import { createAgentServer } from './agent.js';
9
9
  import { sceneFilesPlugin } from './vitePlugins.js';
10
+ import { installFilesChangedWatcher } from './filesChanged.js';
10
11
  import * as config from './config.js';
11
12
  import { graphql as castleGraphql } from './api.js';
12
13
  import { executeCommand } from './castle-host/host.js';
@@ -240,7 +241,7 @@ export async function serve(dir, options = {}) {
240
241
  // The WS server forwards `restart` to the browser, but it also needs the
241
242
  // Vite instance so it can drop transform caches first (see invalidateModuleCaches).
242
243
  const viteHolder = { vite: null };
243
- startWSServer(wsPort, projectDir, logFile, screenshotsDir, viteHolder);
244
+ const { broadcast } = startWSServer(wsPort, projectDir, logFile, screenshotsDir, viteHolder);
244
245
  // The deck root `/` serves a split-view shell: the deck in an iframe plus a
245
246
  // toggle button for an xterm.js terminal. The terminal's PTY is lazy -- it
246
247
  // spawns only when a browser first opens the PTY WebSocket.
@@ -279,6 +280,14 @@ export async function serve(dir, options = {}) {
279
280
  logLevel: 'info',
280
281
  });
281
282
  viteHolder.vite = vite;
283
+ // File changes from ANY source (editors, agents, terminal) become one
284
+ // coalesced `files_changed` broadcast; consumers decide what to reload.
285
+ installFilesChangedWatcher({
286
+ vite,
287
+ projectDir,
288
+ broadcast,
289
+ invalidate: () => invalidateModuleCaches(vite),
290
+ });
282
291
  await vite.listen();
283
292
  // The PTY WebSocket upgrade is handled directly on Vite's HTTP server rather
284
293
  // than through Vite's proxy (Vite's ws proxy didn't forward this path).
@@ -374,6 +383,13 @@ async function serveDetached(projectDir, options) {
374
383
  function startWSServer(port, projectDir, logFile, screenshotsDir, viteHolder) {
375
384
  const wss = new WebSocketServer({ port });
376
385
  const clients = new Set();
386
+ const broadcast = (msg) => {
387
+ const data = JSON.stringify(msg);
388
+ for (const c of clients) {
389
+ if (c.readyState === WebSocket.OPEN)
390
+ c.send(data);
391
+ }
392
+ };
377
393
  // For round-trip requests (e.g. screenshot), remember which socket issued a
378
394
  // given requestId so the matching response is routed back to just that
379
395
  // client instead of broadcast to every tab/CLI. Mirrors how `write_file`
@@ -491,7 +507,7 @@ function startWSServer(port, projectDir, logFile, screenshotsDir, viteHolder) {
491
507
  }
492
508
  });
493
509
  });
494
- return wss;
510
+ return { wss, broadcast };
495
511
  }
496
512
  function writeProjectFile(projectDir, requestedPath, contents) {
497
513
  if (typeof requestedPath !== 'string' || requestedPath.trim() === '') {
@@ -1 +1 @@
1
- .dv-scrollable{position:relative;overflow:hidden}.dv-scrollable .dv-scrollbar-horizontal{will-change:background-color, transform;backface-visibility:hidden;background-color:#0000;border-radius:2px;height:4px;transition:background-color 1s ease-in-out;position:absolute;bottom:0;left:0;transform:translate(0,0)}.dv-scrollable:hover .dv-scrollbar-horizontal,.dv-scrollable.dv-scrollable-resizing .dv-scrollbar-horizontal,.dv-scrollable.dv-scrollable-scrolling .dv-scrollbar-horizontal{background-color:var(--dv-scrollbar-background-color,#ffffff40)}.dv-svg{fill:currentColor;stroke:currentColor;stroke-width:0;line-height:1;display:inline-block}.dockview-theme-dark{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#1e1e1e;--dv-tabs-and-actions-container-background-color:#252526;--dv-activegroup-visiblepanel-tab-background-color:#1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color:#1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-tab-divider-color:#1e1e1e;--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:#969696;--dv-inactivegroup-visiblepanel-tab-color:#8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color:#626262;--dv-separator-border:#444;--dv-paneview-header-border-color:#ccc3}.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-light{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:white;--dv-tabs-and-actions-container-background-color:#f3f3f3;--dv-activegroup-visiblepanel-tab-background-color:white;--dv-activegroup-hiddenpanel-tab-background-color:#ececec;--dv-inactivegroup-visiblepanel-tab-background-color:white;--dv-inactivegroup-hiddenpanel-tab-background-color:#ececec;--dv-tab-divider-color:white;--dv-activegroup-visiblepanel-tab-color:#333;--dv-activegroup-hiddenpanel-tab-color:#333333b3;--dv-inactivegroup-visiblepanel-tab-color:#333333b3;--dv-inactivegroup-hiddenpanel-tab-color:#33333359;--dv-separator-border:#80808059;--dv-paneview-header-border-color:#333;--dv-scrollbar-background-color:#00000040}.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:11px;--dv-tabs-and-actions-container-height:20px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#1e1e1e;--dv-tabs-and-actions-container-background-color:#2d2d30;--dv-activegroup-visiblepanel-tab-background-color:#007acc;--dv-activegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color:#3f3f46;--dv-inactivegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-tab-divider-color:#1e1e1e;--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:white;--dv-inactivegroup-visiblepanel-tab-color:white;--dv-inactivegroup-hiddenpanel-tab-color:white;--dv-separator-border:#444;--dv-paneview-header-border-color:#ccc3}.dockview-theme-vs .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-activegroup-hiddenpanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color)}.dockview-theme-abyss{--dv-paneview-active-outline-color:#596f99;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-color-abyss-dark:#000c18;--dv-color-abyss:#10192c;--dv-color-abyss-light:#1c1c2a;--dv-color-abyss-lighter:#2b2b4a;--dv-color-abyss-accent:#5b1ecf;--dv-color-abyss-primary-text:white;--dv-color-abyss-secondary-text:#9497a9;--dv-group-view-background-color:var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color:var(--dv-color-abyss-light);--dv-activegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-dark);--dv-activegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss);--dv-inactivegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-dark);--dv-inactivegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss);--dv-tab-divider-color:var(--dv-color-abyss-lighter);--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:#ffffff80;--dv-inactivegroup-visiblepanel-tab-color:#ffffff80;--dv-inactivegroup-hiddenpanel-tab-color:#ffffff40;--dv-separator-border:var(--dv-color-abyss-lighter);--dv-paneview-header-border-color:var(--dv-color-abyss-lighter)}.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula{--dv-paneview-active-outline-color:#6272a4;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#282a36;--dv-tabs-and-actions-container-background-color:#191a21;--dv-activegroup-visiblepanel-tab-background-color:#282a36;--dv-activegroup-hiddenpanel-tab-background-color:#21222c;--dv-inactivegroup-visiblepanel-tab-background-color:#282a36;--dv-inactivegroup-hiddenpanel-tab-background-color:#21222c;--dv-tab-divider-color:#191a21;--dv-activegroup-visiblepanel-tab-color:#f8f8f2;--dv-activegroup-hiddenpanel-tab-color:#6272a4;--dv-inactivegroup-visiblepanel-tab-color:#f8f8f280;--dv-inactivegroup-hiddenpanel-tab-color:#6272a480;--dv-separator-border:#bd93f9;--dv-paneview-header-border-color:#bd93f9}.dockview-theme-dracula .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{content:"";z-index:999;background-color:#94527e;width:100%;height:1px;position:absolute;top:0;left:0}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{content:"";z-index:999;background-color:#5e3d5a;width:100%;height:1px;position:absolute;bottom:0;left:0}.dockview-theme-replit{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:#cfd1d3;--dv-active-sash-color:#babbbb;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;box-sizing:border-box;--dv-group-view-background-color:#ebeced;--dv-tabs-and-actions-container-background-color:#fcfcfc;--dv-activegroup-visiblepanel-tab-background-color:#f0f1f2;--dv-activegroup-hiddenpanel-tab-background-color:#fcfcfc;--dv-inactivegroup-visiblepanel-tab-background-color:#f0f1f2;--dv-inactivegroup-hiddenpanel-tab-background-color:#fcfcfc;--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:#333;--dv-activegroup-hiddenpanel-tab-color:#333;--dv-inactivegroup-visiblepanel-tab-color:#333;--dv-inactivegroup-hiddenpanel-tab-color:#333;--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;background-color:#ebeced;padding:10px}.dockview-theme-replit .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-replit .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-replit .dv-resize-container{border:none;border-radius:10px!important}.dockview-theme-replit .dv-groupview{border-radius:10px;overflow:hidden}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container{border-bottom:1px solid #80808059}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab{border-radius:8px;margin:4px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover{background-color:#e4e5e6!important}.dockview-theme-replit .dv-groupview .dv-content-container{background-color:#fcfcfc}.dockview-theme-replit .dv-groupview.dv-active-group{border:1px solid #80808059}.dockview-theme-replit .dv-groupview.dv-inactive-group{border:1px solid #0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash{background-color:#0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):after{content:"";background-color:var(--dv-sash-color);border-radius:2px;width:40px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:#0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash{background-color:#0000}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):after{content:"";background-color:var(--dv-sash-color);border-radius:2px;width:4px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:#0000}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-abyss-spaced{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:44px;--dv-drag-over-background-color:"";--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #00000080;--dv-overlay-z-index:999;--dv-tab-font-size:12px;--dv-border-radius:20px;--dv-tab-margin:.5rem .25rem;--dv-sash-color:transparent;--dv-active-sash-color:var(--dv-color-abyss-accent);--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;box-sizing:border-box;--dv-color-abyss-dark:#0b0611;--dv-color-abyss:#16121f;--dv-color-abyss-light:#201d2b;--dv-color-abyss-lighter:#2a2837;--dv-color-abyss-accent:#5b1ecf;--dv-color-abyss-primary-text:white;--dv-color-abyss-secondary-text:#9497a9;--dv-drag-over-border:2px solid var(--dv-color-abyss-accent);--dv-group-view-background-color:var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color:var(--dv-color-abyss);--dv-activegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-lighter);--dv-activegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss-light);--dv-inactivegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-lighter);--dv-inactivegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss-light);--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:var(--dv-color-abyss-primary-text);--dv-activegroup-hiddenpanel-tab-color:var(--dv-color-abyss-secondary-text);--dv-inactivegroup-visiblepanel-tab-color:var(--dv-color-abyss-primary-text);--dv-inactivegroup-hiddenpanel-tab-color:var(--dv-color-abyss-secondary-text);--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;background-color:var(--dv-color-abyss-dark);padding:10px}.dockview-theme-abyss-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-abyss-spaced .dv-sash{border-radius:4px}.dockview-theme-abyss-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-resize-container{border:none;border-radius:var(--dv-border-radius)!important}.dockview-theme-abyss-spaced .dv-tabs-overflow-container,.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-abyss-spaced .dv-tab{border-radius:8px}.dockview-theme-abyss-spaced .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-abyss-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-abyss-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview{border:2px solid var(--dv-color-abyss-dark)}.dockview-theme-light-spaced{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:44px;--dv-drag-over-background-color:"";--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #0000001a;--dv-overlay-z-index:999;--dv-tab-font-size:12px;--dv-border-radius:20px;--dv-tab-margin:.5rem .25rem;--dv-sash-color:transparent;--dv-active-sash-color:#5b1ecf;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;box-sizing:border-box;--dv-drag-over-border:2px solid #5b1ecf;--dv-group-view-background-color:#f6f5f9;--dv-tabs-and-actions-container-background-color:white;--dv-activegroup-visiblepanel-tab-background-color:#ededf0;--dv-activegroup-hiddenpanel-tab-background-color:#f9f9fa;--dv-inactivegroup-visiblepanel-tab-background-color:#ededf0;--dv-inactivegroup-hiddenpanel-tab-background-color:#f9f9fa;--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:#686b82;--dv-activegroup-hiddenpanel-tab-color:#9497a9;--dv-inactivegroup-visiblepanel-tab-color:#686b82;--dv-inactivegroup-hiddenpanel-tab-color:#9497a9;--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;--dv-scrollbar-background-color:#00000040;background-color:#f6f5f9;padding:10px}.dockview-theme-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-light-spaced .dv-sash{border-radius:4px}.dockview-theme-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-resize-container{border:none;border-radius:var(--dv-border-radius)!important}.dockview-theme-light-spaced .dv-tabs-overflow-container,.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-light-spaced .dv-tab{border-radius:8px}.dockview-theme-light-spaced .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-light-spaced .dv-resize-container .dv-groupview{border:2px solid #ffffff1a}.dv-drop-target-container{z-index:9999;pointer-events:none;--dv-transition-duration:.3s;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.dv-drop-target-container .dv-drop-target-anchor{border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);opacity:1;will-change:transform, opacity;backface-visibility:hidden;contain:layout paint;transition:opacity var(--dv-transition-duration) ease-in, transform var(--dv-transition-duration) ease-out;position:relative;transform:translate(0,0)}.dv-drop-target{--dv-transition-duration:70ms;position:relative}.dv-drop-target>.dv-drop-target-dropzone{z-index:1000;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection{box-sizing:border-box;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);width:100%;height:100%;transition:top var(--dv-transition-duration) ease-out, left var(--dv-transition-duration) ease-out, width var(--dv-transition-duration) ease-out, height var(--dv-transition-duration) ease-out, opacity var(--dv-transition-duration) ease-out;will-change:transform;pointer-events:none;position:relative}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical{border-top:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical{border-bottom:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal{border-left:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal{border-right:1px solid var(--dv-drag-over-border-color)}.dv-dockview{background-color:var(--dv-group-view-background-color);contain:layout;position:relative}.dv-dockview .dv-watermark-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.dv-dockview .dv-overlay-render-container{position:relative}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-inactivegroup-visiblepanel-tab-background-color);color:var(--dv-inactivegroup-visiblepanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-inactivegroup-hiddenpanel-tab-background-color);color:var(--dv-inactivegroup-hiddenpanel-tab-color)}.dv-tab.dv-tab-dragging{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview{background-color:var(--dv-group-view-background-color);flex-direction:column;height:100%;display:flex;overflow:hidden}.dv-groupview:focus{outline:none}.dv-groupview>.dv-content-container{outline:none;flex-grow:1;min-height:0}.dv-root-wrapper,.dv-grid-view,.dv-branch-node{width:100%;height:100%}.dv-debug .dv-resize-container .dv-resize-handle-top{background-color:red}.dv-debug .dv-resize-container .dv-resize-handle-bottom{background-color:green}.dv-debug .dv-resize-container .dv-resize-handle-left{background-color:#ff0}.dv-debug .dv-resize-container .dv-resize-handle-right{background-color:#00f}.dv-debug .dv-resize-container .dv-resize-handle-topleft,.dv-debug .dv-resize-container .dv-resize-handle-topright,.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,.dv-debug .dv-resize-container .dv-resize-handle-bottomright{background-color:#0ff}.dv-resize-container{--dv-overlay-z-index:var(--dv-overlay-z-index,999);z-index:calc(var(--dv-overlay-z-index) - 2);border:1px solid var(--dv-tab-divider-color);box-shadow:var(--dv-floating-box-shadow);will-change:transform, opacity;backface-visibility:hidden;position:absolute;transform:translate(0,0)}.dv-resize-container.dv-hidden{display:none}.dv-resize-container.dv-resize-container-dragging{opacity:.5;will-change:transform, opacity}.dv-resize-container .dv-resize-handle-top{width:calc(100% - 8px);height:4px;z-index:var(--dv-overlay-z-index);cursor:ns-resize;position:absolute;top:-2px;left:4px}.dv-resize-container .dv-resize-handle-bottom{width:calc(100% - 8px);height:4px;z-index:var(--dv-overlay-z-index);cursor:ns-resize;position:absolute;bottom:-2px;left:4px}.dv-resize-container .dv-resize-handle-left{width:4px;height:calc(100% - 8px);z-index:var(--dv-overlay-z-index);cursor:ew-resize;position:absolute;top:4px;left:-2px}.dv-resize-container .dv-resize-handle-right{width:4px;height:calc(100% - 8px);z-index:var(--dv-overlay-z-index);cursor:ew-resize;position:absolute;top:4px;right:-2px}.dv-resize-container .dv-resize-handle-topleft{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:nw-resize;position:absolute;top:-2px;left:-2px}.dv-resize-container .dv-resize-handle-topright{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:ne-resize;position:absolute;top:-2px;right:-2px}.dv-resize-container .dv-resize-handle-bottomleft{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:sw-resize;position:absolute;bottom:-2px;left:-2px}.dv-resize-container .dv-resize-handle-bottomright{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:se-resize;position:absolute;bottom:-2px;right:-2px}.dv-render-overlay{--dv-overlay-z-index:var(--dv-overlay-z-index,999);z-index:1;contain:layout paint;isolation:isolate;will-change:transform;backface-visibility:hidden;width:100%;height:100%;position:absolute;transform:translate(0,0)}.dv-render-overlay.dv-render-overlay-float{z-index:calc(var(--dv-overlay-z-index) - 1)}.dv-debug .dv-render-overlay{outline-offset:-1;outline:1px solid red}.dv-pane-container{width:100%;height:100%}.dv-pane-container.dv-animated .dv-view{will-change:transform;backface-visibility:hidden;transition:transform .15s ease-out;transform:translate(0,0)}.dv-pane-container .dv-view{flex-direction:column;display:flex;overflow:hidden;padding:0!important}.dv-pane-container .dv-view:not(:first-child):before{background-color:#0000!important}.dv-pane-container .dv-view:not(:first-child) .dv-pane>.dv-pane-header{border-top:1px solid var(--dv-paneview-header-border-color)}.dv-pane-container .dv-view .dv-default-header{background-color:var(--dv-group-view-background-color);color:var(--dv-activegroup-visiblepanel-tab-color);cursor:pointer;padding:0 8px;display:flex}.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon{justify-content:center;align-items:center;display:flex}.dv-pane-container .dv-view .dv-default-header>span{flex-grow:1;padding-left:8px}.dv-pane-container:first-of-type>.dv-pane>.dv-pane-header{border-top:none!important}.dv-pane-container .dv-pane{flex-direction:column;height:100%;display:flex;overflow:hidden}.dv-pane-container .dv-pane .dv-pane-header{box-sizing:border-box;-webkit-user-select:none;user-select:none;outline:none;position:relative}.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable{cursor:pointer}.dv-pane-container .dv-pane .dv-pane-header:focus:before,.dv-pane-container .dv-pane .dv-pane-header:focus-within:before{z-index:5;content:"";pointer-events:none;outline-offset:-1px;outline:-1px solid;outline-color:var(--dv-paneview-active-outline-color);width:100%;height:100%;position:absolute;top:0;left:0}.dv-pane-container .dv-pane .dv-pane-body{outline:none;flex-grow:1;position:relative;overflow:hidden auto}.dv-pane-container .dv-pane .dv-pane-body:focus:before,.dv-pane-container .dv-pane .dv-pane-body:focus-within:before{z-index:5;content:"";pointer-events:none;outline-offset:-1px;outline:-1px solid;outline-color:var(--dv-paneview-active-outline-color);width:100%;height:100%;position:absolute;top:0;left:0}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled{background-color:#000}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled{background-color:orange}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum{background-color:green}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum{background-color:red}.dv-split-view-container{width:100%;height:100%;position:relative;overflow:hidden}.dv-split-view-container.dv-splitview-disabled>.dv-sash-container>.dv-sash{pointer-events:none}.dv-split-view-container.dv-animation .dv-view,.dv-split-view-container.dv-animation .dv-sash{will-change:transform;backface-visibility:hidden;transition:transform .15s ease-out;transform:translate(0,0)}.dv-split-view-container.dv-horizontal{height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{width:4px;height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled{cursor:ew-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-maximum{cursor:w-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-minimum{cursor:e-resize}.dv-split-view-container.dv-horizontal>.dv-view-container>.dv-view:not(:first-child):before{width:1px;height:100%}.dv-split-view-container.dv-vertical{width:100%}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{width:100%;height:4px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled{cursor:ns-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-maximum{cursor:n-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-minimum{cursor:s-resize}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view{width:100%}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view:not(:first-child):before{width:100%;height:1px}.dv-split-view-container .dv-sash-container{width:100%;height:100%;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash{z-index:99;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--dv-sash-color,transparent);outline:none;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active,.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover{background-color:var(--dv-active-sash-color,transparent);transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:var(--dv-active-sash-transition-duration,.1s);transition-delay:var(--dv-active-sash-transition-delay,.5s)}.dv-split-view-container .dv-view-container{width:100%;height:100%;position:relative}.dv-split-view-container .dv-view-container .dv-view{box-sizing:border-box;height:100%;position:absolute;overflow:auto}.dv-split-view-container.dv-separator-border .dv-view:not(:first-child):before{content:" ";z-index:5;pointer-events:none;background-color:var(--dv-separator-border);position:absolute;top:0;left:0}.dv-dragged{transform:translate(0,0)}.dv-tab{flex-shrink:0}.dv-tab:focus-within,.dv-tab:focus{position:relative}.dv-tab:focus-within:after,.dv-tab:focus:after{content:"";pointer-events:none;outline-offset:-1px;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0;outline:1px solid var(--dv-tab-divider-color)!important}.dv-tab.dv-tab-dragging .dv-default-tab-action{background-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action{visibility:visible}.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:hidden}.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action{visibility:visible}.dv-tab .dv-default-tab{white-space:nowrap;text-overflow:ellipsis;align-items:center;height:100%;display:flex;position:relative}.dv-tab .dv-default-tab .dv-default-tab-content{flex-grow:1;margin-right:4px}.dv-tab .dv-default-tab .dv-default-tab-action{box-sizing:border-box;justify-content:center;align-items:center;padding:4px;display:flex}.dv-tab .dv-default-tab .dv-default-tab-action:hover{background-color:var(--dv-icon-hover-background-color);border-radius:2px}.dv-tabs-overflow-dropdown-default{height:100%;color:var(--dv-activegroup-hiddenpanel-tab-color);margin:var(--dv-tab-margin);cursor:pointer;flex-shrink:0;align-items:center;padding:.25rem .5rem;display:flex}.dv-tabs-overflow-dropdown-default>span{padding-left:.25rem}.dv-tabs-overflow-dropdown-default>svg{transform:rotate(90deg)}.dv-tabs-container{scrollbar-width:thin;will-change:scroll-position;height:100%;display:flex;overflow:auto;transform:translate(0,0)}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{content:" ";z-index:5;pointer-events:none;background-color:var(--dv-tab-divider-color);width:1px;height:100%;position:absolute;top:0;left:0}.dv-tabs-container::-webkit-scrollbar{height:3px}.dv-tabs-container::-webkit-scrollbar-track{background:0 0}.dv-tabs-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color)}.dv-scrollable>.dv-tabs-container{overflow:hidden}.dv-tab{-webkit-user-drag:element;cursor:pointer;box-sizing:border-box;font-size:var(--dv-tab-font-size);margin:var(--dv-tab-margin);outline:none;padding:.25rem .5rem;position:relative}.dv-tabs-overflow-container{height:unset;border:1px solid var(--dv-tab-divider-color);background-color:var(--dv-group-view-background-color);flex-direction:column}.dv-tabs-overflow-container .dv-tab:not(:last-child){border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tabs-overflow-container .dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-tabs-and-actions-container{background-color:var(--dv-tabs-and-actions-container-background-color);box-sizing:border-box;height:var(--dv-tabs-and-actions-container-height);font-size:var(--dv-tabs-and-actions-container-font-size);flex-shrink:0;display:flex}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable,.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container{flex-grow:1}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{flex-grow:1;padding:0}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container{flex-grow:0}.dv-tabs-and-actions-container .dv-void-container{flex-grow:1;display:flex}.dv-tabs-and-actions-container .dv-void-container.dv-draggable{cursor:grab}.dv-tabs-and-actions-container .dv-right-actions-container{display:flex}.dv-watermark{height:100%;display:flex}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.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{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;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;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.castle-file-panel,.castle-code-panel{--castle-font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--castle-black:#111;--castle-panel-raised:#101010;--castle-border:#444;--castle-text:#fff;--castle-text-dim:#888;--castle-inspector-bg:#0d0d0d;--castle-inspector-text:#e6e6e6;--castle-inspector-muted:#888;--castle-inspector-border:#2a2a2a;--castle-inspector-divider:#2a2a2a;--castle-inspector-input-bg:#161616;--castle-workspace-bg:#0a0a0a;--castle-sheet-bg:#0d0d0d;--castle-radius:4px}.castle-file-panel{background:var(--castle-sheet-bg);height:100%;overflow:auto;transform:translateZ(0)}.fileBrowserBare{flex-direction:column;min-width:0;height:100%;display:flex}.fileTree{flex:1 1 0;min-height:0;padding-top:5px;overflow-y:auto}.fileBranch{min-width:0}.fileRow,.fileDirRow{border-radius:var(--castle-radius);color:#a8a8a8;width:100%;padding:5px 9px 5px calc(9px + var(--file-depth,0) * 20px);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:6px;font-size:14px;display:flex}.fileDirRow{color:#777}.fileRow:hover,.fileDirRow:hover{background:var(--castle-sheet-bg);color:var(--castle-inspector-text)}.fileRow.fileRowSelected,.fileRow.fileRowSelected:hover{background:var(--castle-panel-raised);color:var(--castle-inspector-text)}.fileIcon.fileDisclosure{color:#666}.fileDirRow:hover .fileIcon.fileDisclosure{color:inherit}.fileDisclosure svg{width:10px;height:10px}.fileLabel{flex:auto;align-items:center;gap:6px;min-width:0;display:inline-flex}.fileIcon{width:14px;color:var(--castle-inspector-muted);flex:0 0 14px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.castle-code-panel{width:100%;height:100%;position:relative}.mainEditor{background:var(--castle-sheet-bg);flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex}.editorBody{flex:1;min-height:0;display:flex;overflow:hidden;container:editor/inline-size}.codeEditor{background:var(--castle-workspace-bg);flex:1;grid-template-columns:1fr;min-width:0;min-height:0;display:grid}.codeMirrorHost{min-width:0;height:100%;min-height:0}.castle-code-overlay{color:var(--castle-inspector-muted);pointer-events:none;font-size:12px;position:absolute;top:10px;left:12px}.castle-code-overlay.castle-code-error{color:#e86a73}.castle-code-savebar{color:#e86a73;background:#2a1414;padding:4px 10px;font-size:11px;position:absolute;bottom:0;left:0;right:0}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:#e6e6e6;background:#0d0d0d;font-family:baltomobile,Balto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.shell-dockview{box-sizing:border-box;--panel-gutter:10px;--panel-chrome-radius:8px;--dv-tab-font-size:14px;--dv-tabs-and-actions-container-font-size:14px;--dv-tabs-and-actions-container-height:30px;--dv-group-view-background-color:#0d0d0d;--dv-tabs-and-actions-container-background-color:#000;--dv-activegroup-visiblepanel-tab-background-color:#0d0d0d;--dv-activegroup-visiblepanel-tab-color:#e6e6e6;--dv-activegroup-hiddenpanel-tab-background-color:#000;--dv-activegroup-hiddenpanel-tab-color:#525252;--dv-inactivegroup-visiblepanel-tab-background-color:#0d0d0d;--dv-inactivegroup-visiblepanel-tab-color:#e6e6e6;--dv-inactivegroup-hiddenpanel-tab-background-color:#000;--dv-inactivegroup-hiddenpanel-tab-color:#525252;--dv-tab-divider-color:#2a2a2a;--dv-separator-border:transparent;--dv-sash-color:transparent;--dv-active-sash-color:#525252;height:100%;padding:var(--panel-gutter) var(--panel-gutter) var(--panel-gutter) 0;background-color:#000;font-family:baltomobile,Balto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.shell-dockview.dv-dockview{background-color:#000}.shell-dockview .dv-default-tab-content{font-family:inherit}.shell-dockview .dv-split-view-container .dv-view:has(>.dv-groupview){border-radius:var(--panel-chrome-radius);box-sizing:border-box;overflow:hidden}.shell-dockview .dv-split-view-container .dv-view:has(>.dv-groupview):after{content:"";z-index:10;pointer-events:none;border-radius:inherit;box-sizing:border-box;border:1px solid #2a2a2a;position:absolute;inset:0}.shell-dockview .dv-view>.dv-groupview{border:none;border-radius:0;width:100%;height:100%}.shell-dockview .dv-resize-container:has(>.dv-groupview){border-radius:var(--panel-chrome-radius);box-sizing:border-box;overflow:hidden}.shell-dockview .dv-resize-container:has(>.dv-groupview):after{content:"";z-index:10;pointer-events:none;border-radius:inherit;box-sizing:border-box;border:1px solid #2a2a2a;position:absolute;inset:0}.shell-dockview .dv-resize-container .dv-groupview{border:none;border-radius:0;width:100%;height:100%}.shell-dockview .dv-tabs-container.dv-horizontal{align-items:stretch;display:flex}.shell-dockview .dv-tab{border:none;border-right:1px solid var(--dv-tab-divider-color);border-radius:0;align-self:stretch;height:100%;padding:0 5px 0 10px}.shell-dockview .dv-tab:not(:first-child){margin-left:0}.shell-dockview .dv-tab.dv-inactive-tab{border-bottom:1px solid var(--dv-tab-divider-color)}.shell-dockview .dv-tab.dv-active-tab{border-bottom:none}.shell-dockview .dv-tabs-and-actions-container .dv-void-container{border-bottom:1px solid var(--dv-tab-divider-color)}.shell-dockview .dv-tabs-and-actions-container .dv-right-actions-container{border-left:1px solid var(--dv-tab-divider-color);border-bottom:1px solid var(--dv-tab-divider-color);align-items:stretch}.shell-dockview .dv-tab .dv-default-tab-content{margin-right:6px}.shell-dockview .dv-tab .dv-default-tab-action{padding:2px}.shell-dockview .dv-tab .dv-default-tab-action .dv-svg{width:8px;height:8px;transform:translateY(1px)}.shell-dockview .dv-tab.dv-inactive-tab .dv-default-tab-action{color:#424242}.shell-dockview .dv-tab.dv-active-tab .dv-default-tab-action{color:#5a5a5a}.shell-dockview .dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{display:none}.shell-dockview .dv-tab:focus:after,.shell-dockview .dv-tab:focus-within:after{display:none!important}.shell-dockview .dv-tabs-overflow-container{border:1px solid var(--dv-tab-divider-color);border-radius:var(--panel-chrome-radius);background:#0d0d0d;gap:2px;min-width:180px;padding:4px;overflow:hidden;box-shadow:0 10px 24px -10px #000000e6}.shell-dockview .dv-tabs-overflow-container .dv-tab{border-bottom:none;border-right:none;border-radius:6px;width:100%;padding:4px 8px 4px 10px}.shell-dockview .dv-tabs-overflow-container .dv-tab:hover{background:#1d1d1d}.shell-dockview .dv-tabs-overflow-container .dv-tab.dv-active-tab{background:#161616}.shell-dockview .dv-add-panel{align-items:center;height:100%;padding:0 3px;display:flex}.shell-dockview .dv-add-panel-btn{color:#6e7781;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:flex}.shell-dockview .dv-add-panel-btn:hover{color:#e6e6e6;background:#ffffff0f}.shell-dockview .dv-add-panel-btn svg{display:block}.dv-add-panel-menu{z-index:2147483000;background:#0d0d0d;border:1px solid #2a2a2a;border-radius:8px;min-width:180px;padding:4px;font-family:baltomobile,Balto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;transform:translate(-100%);box-shadow:0 10px 24px -10px #000000e6}.dv-add-panel-item{color:#e6e6e6;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex}.dv-add-panel-item:hover{color:#fff;background:#885696}.dv-add-panel-item-icon{color:#888;flex:0 0 16px;justify-content:center;align-items:center;display:flex}.dv-add-panel-item:hover .dv-add-panel-item-icon{color:#fff}.dv-add-panel-item-label{white-space:nowrap;flex:1}.empty-dock-state{z-index:20;padding:var(--panel-gutter);pointer-events:auto;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.shell-root.docked .empty-dock-state{left:var(--conductor-col,500px)}.shell-root.floating .empty-dock-state{left:60px}.empty-dock-card{border-radius:var(--panel-chrome-radius);background:#0d0d0d;border:1px solid #2a2a2a;width:210px;padding:6px;box-shadow:0 10px 24px -10px #000000e6}.empty-dock-title{color:#888;padding:7px 10px 8px;font-size:12px}.empty-dock-actions{flex-direction:column;gap:2px;display:flex}.empty-dock-item{color:#e6e6e6;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.empty-dock-item:hover{color:#fff;background:#885696}.empty-dock-item:hover .dv-add-panel-item-icon{color:#fff}.panel-error{color:#888;flex-direction:column;align-items:flex-start;gap:8px;height:100%;padding:14px 16px;font-size:13px;display:flex;overflow:auto}.panel-error-title{color:#e6e6e6}.panel-error-msg{white-space:pre-wrap;word-break:break-word;color:#888;max-width:100%;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.panel-error-retry{font:inherit;color:#e6e6e6;cursor:pointer;background:#161616;border:1px solid #2a2a2a;border-radius:4px;padding:3px 10px;font-size:12px}.panel-error-retry:hover{background:#1d1d1d}.deck-panel{background:#0d0d0d;width:100%;height:100%}.deck-frame{border:0;width:100%;height:100%;display:block}.play-panel{background:#0d0d0d;flex-direction:column;width:100%;height:100%;display:flex}.play-stage{flex:auto;justify-content:center;align-items:center;min-height:0;padding:20px;display:flex;container-type:size}.play-frame-shell{aspect-ratio:5/7;border-radius:4%/2.85714%;width:min(100cqw,71.4286cqh);height:min(100cqh,140cqw);overflow:hidden}.play-frame-shell .deck-frame{width:100%;height:100%}.play-logs{color:#cfcfcf;background:#0a0a0a;border-top:1px solid #1f1f1f;flex:none;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.play-logs-header{justify-content:space-between;align-items:center;height:28px;padding:0 8px;display:flex}.play-logs-toggle{color:#9a9a9a;cursor:pointer;font:inherit;text-transform:uppercase;letter-spacing:.04em;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:11px;display:inline-flex}.play-logs-caret{color:#6b6b6b;width:10px;display:inline-block}.play-logs-count{color:#6b6b6b}.play-logs-actions{align-items:center;gap:6px;display:flex}.play-logs-clear{color:#6b6b6b;cursor:pointer;font:inherit;background:0 0;border:0;padding:2px 4px;font-size:11px}.play-logs-clear:hover{color:#cfcfcf}.play-logs-btn{color:#cfcfcf;cursor:pointer;background:0 0;border:1px solid #ffffff24;border-radius:6px;justify-content:center;align-items:center;width:26px;height:22px;padding:0;display:inline-flex}.play-logs-btn:hover{color:#fff;background:#ffffff14}.play-logs-body{border-top:1px solid #161616;max-height:200px;padding:4px 10px 8px;overflow-y:auto}.play-logs-line{white-space:pre-wrap;word-break:break-word}.play-logs-warn{color:#e2c08d}.play-logs-error{color:#e08c8c}.play-logs-empty{color:#5a5a5a}.term-panel{width:100%;height:100%;position:relative}.term-host{overscroll-behavior:contain;padding:6px;position:absolute;inset:0}.shell-root{--v2-border:#2a2a2a;--v2-fg:#e6e6e6;--v2-head:#e8e8e8;--v2-muted:#888;--v2-accent:#885696;--v2-running:#6c9ce0;--v2-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--conductor-pad:10px;--composer-reserve:88px;--panel-gutter:10px;--panel-chrome-radius:8px;background:#000;height:100%;position:relative}.shell-root .shell-dockview{height:100%;transition:margin-left .18s,width .18s}body.conductor-resizing .shell-root .shell-dockview{transition:none}.shell-root.docked .shell-dockview{margin-left:var(--conductor-col,500px);width:calc(100% - var(--conductor-col,500px))!important}.shell-root.floating .shell-dockview{margin-left:60px;width:calc(100% - 60px)!important}#chat-host{width:var(--conductor-col,500px);color:var(--v2-fg);z-index:10;background:#000;flex-direction:column;font-family:Balto,system-ui,-apple-system,sans-serif;transition:background-color .18s;display:flex;position:absolute;top:0;bottom:0;left:0}body.conductor-resizing #chat-host{transition:none}.shell-root.floating #chat-host{pointer-events:none;z-index:2147482500;background:0 0;width:380px;max-width:86vw}.conductor-resize{top:0;bottom:0;left:var(--conductor-col,500px);cursor:col-resize;z-index:30;width:8px;margin-left:-4px;position:absolute}body.conductor-resizing,body.conductor-resizing *{cursor:col-resize;-webkit-user-select:none!important;user-select:none!important}body.shell-sash-resizing,body.shell-sash-resizing *{-webkit-user-select:none!important;user-select:none!important}.shell-root.floating #chat-messages{pointer-events:none;justify-content:flex-end;padding:0 0 0 60px;position:absolute;inset:0 0 88px}.shell-root.floating #chat-messages .chat-bubbles{pointer-events:auto;flex-direction:column;gap:4px;display:flex}.shell-root.floating #chat-pending,.shell-root.floating .chat-input .ta,.shell-root.floating .chat-input .chat-queue{pointer-events:auto}.shell-root.floating .chat-input{z-index:6;pointer-events:none;margin-top:auto;padding-left:60px;padding-right:0;position:relative}.shell-root.floating #chat-host .chat-input.collapsed{pointer-events:none;padding-bottom:13px}.shell-root.floating #chat-host .chat-input.collapsed.revealed{pointer-events:auto}.shell-root.floating #chat-host .chat-input.collapsed .ta{cursor:pointer;opacity:0;pointer-events:none;border-radius:19px;justify-content:center;align-items:center;gap:0;width:38px;height:38px;min-height:0;padding:5px;transform:translateY(6px)}.shell-root.floating #chat-host .chat-input.collapsed.revealed .ta{opacity:1;pointer-events:auto;transform:none}.shell-root.floating #chat-host .chat-input.collapsed .ta-text,.shell-root.floating #chat-host .chat-input.collapsed .ta-bottom,.shell-root.floating #chat-host .chat-input.collapsed .chat-queue,.shell-root.floating #chat-host:not(.chat-expanded) #chat-pending,#chat-host .chat-input .collapse-icon{display:none}.shell-root.floating #chat-host .chat-input.collapsed .collapse-icon{width:28px;height:28px;color:var(--v2-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}#chat-host .chat-input .collapse-icon svg{width:20px;height:20px;display:block}.shell-root.floating #chat-host .chat-input.collapsed .ta:hover .collapse-icon{color:var(--v2-fg)}.shell-root.floating #chat-host .msg,.shell-root.floating #chat-host .assistant-turn{transition:opacity .55s}.shell-root.floating #chat-host .msg.fading,.shell-root.floating #chat-host .assistant-turn.fading{opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.shell-root.floating #chat-host .msg,.shell-root.floating #chat-host .assistant-turn{transition:none}}.shell-root.floating #chat-host.rail-engaged #chat-messages{opacity:0;pointer-events:none;transition:opacity .14s}.conductor-avatar{width:36px;height:36px;color:var(--v2-fg,#e6e6e6);border:2px solid var(--v2-border,#2a2a2a);cursor:pointer;pointer-events:auto;z-index:80;background:#161616;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;bottom:14px;left:12px;box-shadow:0 10px 24px -10px #000000e6}.conductor-avatar:hover{border-color:var(--v2-accent,#f5f5f5)}.conductor-avatar svg{display:block}.conductor-avatar.active{border-color:var(--v2-running,#6c9ce0);box-shadow:0 0 0 3px #6c9ce040,0 10px 24px -10px #000000e6}.conductor-gutter{pointer-events:auto;z-index:5;width:60px;max-height:calc(100% - 56px);position:absolute;top:0;left:0;overflow:visible}#chat-host .conductor-gutter .task-stack{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;width:100%;max-height:100%;display:flex;overflow-y:auto}.shell-root.floating #chat-host.rail-engaged .conductor-gutter .task-stack{overflow:visible}#chat-host .conductor-gutter .task-stack::-webkit-scrollbar{width:0;height:0}#chat-host .conductor-gutter .task-row{padding:5px 14px}#chat-host .conductor-gutter .task:hover,#chat-host .conductor-gutter .task.open{width:344px;box-shadow:inset 0 0 0 1px var(--v2-border), 0 10px 24px -10px #000000e6;z-index:30;background:#141414eb;transform:translate(8px)}#chat-host .conductor-gutter .task:hover .task-row,#chat-host .conductor-gutter .task.open .task-row{gap:10px;padding:5px 6px}#chat-host .conductor-gutter .task-meta{opacity:0;pointer-events:none;transition:opacity .14s}#chat-host .conductor-gutter .task:hover .task-meta,#chat-host .conductor-gutter .task.open .task-meta{opacity:1;pointer-events:auto}#chat-host .conductor-gutter .task-name,#chat-host .conductor-gutter .task-sub,#chat-host .conductor-gutter .task-body{text-shadow:0 1px 3px #000000f2,0 0 2px #000000d9}#chat-host .settings-popover{z-index:2147483000;color:#e6e6e6;background:#0d0d0d;border:1px solid #2a2a2a;border-radius:8px;width:300px;padding:10px 12px;font-size:13px;position:fixed;bottom:70px;left:12px;box-shadow:0 10px 24px -10px #000000e6}#chat-host .settings-row{justify-content:space-between;align-items:center;gap:10px;display:flex}#chat-host .settings-row+.settings-row{margin-top:8px}#chat-host .settings-label{white-space:nowrap}#chat-host .settings-seg{border:1px solid #2a2a2a;border-radius:4px;display:flex;overflow:hidden}#chat-host .settings-opt{font:inherit;color:#888;cursor:pointer;background:#0d0d0d;border:0;padding:5px 12px;font-size:14px}#chat-host .settings-opt+.settings-opt{border-left:1px solid #2a2a2a}#chat-host .settings-opt:hover{color:#e6e6e6}#chat-host .settings-opt.active{color:#fff;background:#885696}#chat-messages{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1 1 0;min-height:0;padding:0;font-size:14px;line-height:1.5;display:flex;overflow-y:auto}.shell-root.docked #chat-messages{padding:0 0 var(--composer-reserve,88px);-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - var(--composer-reserve,88px)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - var(--composer-reserve,88px)), transparent 100%);mask-image:linear-gradient(to bottom, #000 calc(100% - var(--composer-reserve,88px)), transparent 100%);justify-content:flex-end}.shell-root.docked #chat-messages>:first-child{margin-top:auto}#chat-messages::-webkit-scrollbar{width:0;height:0}#chat-empty{color:var(--v2-muted)}#chat-host .msg{margin:5px 0}#chat-host .msg.user{text-align:right}#chat-host .msg.user span{color:#111;text-align:left;white-space:pre-wrap;word-break:break-word;background:#fff;border-radius:17px;max-width:85%;padding:7px 14px;display:inline-block}#chat-host .msg-image{border:1px solid #333;border-radius:8px;max-width:220px;max-height:150px;margin:0 0 6px auto;display:block}#chat-host .assistant-turn{flex-direction:column;align-items:flex-start;gap:4px;margin:5px 0;display:flex}#chat-host .msg.assistant{color:#fff;word-break:break-word;background:#885696;border-radius:17px;width:fit-content;max-width:85%;margin:0;padding:7px 14px}#chat-host .msg.assistant.errbubble{background:#5a2b2b}#chat-host .msg.assistant.streaming:after{content:"▌";opacity:.6;animation:1s step-end infinite chat-blink}@keyframes chat-blink{50%{opacity:0}}#chat-host .msg.toolline{color:var(--v2-muted);font-size:12px;font-family:var(--v2-mono);word-break:break-word;margin:4px 0}#chat-host .msg-activity{color:var(--v2-muted);font-size:12px;animation:1.4s ease-in-out infinite chat-pulse}@keyframes chat-pulse{50%{opacity:.35}}#chat-host .msg-interrupted{color:var(--v2-muted);font-size:12px}#chat-host .msg-thinking{color:var(--v2-muted);align-items:center;gap:8px;font-size:12px;display:flex}#chat-host .msg-thinking .thinking-dots{gap:4px;display:inline-flex}#chat-host .msg-thinking .thinking-dots i{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite thinking-bounce}#chat-host .msg-thinking .thinking-dots i:nth-child(2){animation-delay:.18s}#chat-host .msg-thinking .thinking-dots i:nth-child(3){animation-delay:.36s}#chat-host .msg-thinking .thinking-label{animation:1.4s ease-in-out infinite chat-pulse}@keyframes thinking-bounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){#chat-host .msg-thinking .thinking-dots i,#chat-host .msg-thinking .thinking-label{animation:none}#chat-host .msg-thinking .thinking-dots i{opacity:.6}}#chat-host .msg.md>:first-child,#chat-host .task-notes>:first-child{margin-top:0}#chat-host .msg.md>:last-child,#chat-host .task-notes>:last-child{margin-bottom:0}#chat-host .msg.md p:empty{display:none}#chat-host .msg.md p,#chat-host .task-notes p{margin:.4em 0}#chat-host .msg.md ul,#chat-host .msg.md ol,#chat-host .task-notes ul,#chat-host .task-notes ol{margin:.4em 0;padding-left:1.3em}#chat-host .msg.md li{margin:.1em 0}#chat-host .msg.md h1,#chat-host .msg.md h2,#chat-host .msg.md h3{margin:.5em 0 .3em;font-weight:700;line-height:1.25}#chat-host .msg.md h1{font-size:1.2em}#chat-host .msg.md h2{font-size:1.12em}#chat-host .msg.md h3{font-size:1.05em}#chat-host .msg.md a{color:#fff;text-underline-offset:2px;text-decoration:underline}#chat-host .msg.md code,#chat-host .task-notes code{font-family:var(--v2-mono);background:#00000038;border-radius:4px;padding:.1em .35em;font-size:.9em}#chat-host .msg.md pre{white-space:pre-wrap;word-break:break-word;font-family:var(--v2-mono);background:#00000047;border-radius:8px;margin:.5em 0;padding:8px 10px;font-size:.9em;line-height:1.4;overflow-x:auto}#chat-host .msg.md pre code{background:0 0;border-radius:0;padding:0}#chat-host .msg.md blockquote{color:#ffffffd9;border-left:3px solid #fff6;margin:.5em 0;padding-left:.8em}.shell-root.docked #chat-host .conductor-inset{min-height:0;padding:0 var(--conductor-pad);flex-direction:column;flex:1 1 0;display:flex}.shell-root.docked #chat-host .chat-divider{background:var(--v2-border);flex:0 0 1px}.task-stack{gap:5px;padding-top:10px}#task-board{flex-direction:column;flex:none;padding-bottom:12px;display:flex}#chat-host .task{cursor:pointer;border-radius:8px;transition:background .12s,box-shadow .12s}#chat-host .task:hover,#chat-host .task.open{box-shadow:inset 0 0 0 1px var(--v2-border);background:#141414eb}#chat-host .task-row{align-items:center;gap:10px;padding:5px 6px 5px 4px;display:flex;position:relative}#chat-host .task.open .task-row{align-items:flex-start}#chat-host .pie{border-radius:50%;flex:0 0 32px;width:32px;height:32px;padding:2px;display:flex;position:relative}#chat-host .pie .avatar{color:#000;background:#222;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}#chat-host .pie .avatar .avatar-icon-wrap{justify-content:center;align-items:center;width:16px;height:16px;display:flex}#chat-host .pie .avatar .avatar-icon-wrap svg{width:16px;height:16px;display:block}#chat-host .task-meta{flex:1;min-width:0}#chat-host .task-head{align-items:center;gap:8px;display:flex}#chat-host .task.open .task-head{min-height:32px}#chat-host .task-text{flex:1;min-width:0}#chat-host .task-name{color:var(--v2-fg);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:400;overflow:hidden}#chat-host .task-name .tn{color:var(--v2-head);font-weight:600}#chat-host .task-sub{color:var(--v2-muted);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;margin-top:2px;font-size:10px;overflow:hidden}#chat-host .task-dismiss{border:1px solid var(--v2-border);color:var(--v2-muted);font:inherit;cursor:pointer;visibility:hidden;background:0 0;border-radius:6px;flex-shrink:0;padding:3px 10px;font-size:12px}#chat-host .task-dismiss:hover{color:var(--v2-fg);background:#1d1d1d}#chat-host .task:hover .task-dismiss{visibility:visible}#chat-host .task-body{color:var(--v2-fg);padding:0 0 4px;font-size:12px;display:none}#chat-host .task.open .task-body{display:block}#chat-host .task-notes{color:#b3b3b3;word-break:break-word;margin-top:6px;font-size:12px}#chat-host .task-notes code{font-size:12px}#chat-host .task-feed{scrollbar-width:none;-ms-overflow-style:none;color:#b3b3b3;cursor:default;word-break:break-word;max-height:96px;margin-top:6px;font-size:12px;line-height:1.5;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 5px 100%);mask-image:linear-gradient(#0000,#000 5px 100%)}#chat-host .task-feed::-webkit-scrollbar{width:0;height:0}#chat-host .task-feed-tool{color:var(--v2-muted);font-family:var(--v2-mono);white-space:pre-wrap;padding-left:14px;font-size:12px}#chat-host .task-feed-msg{margin:0}#chat-host .task-feed-msg>:first-child{margin-top:0}#chat-host .task-feed-msg>:last-child{margin-bottom:0}#chat-host .task-feed-msg p{margin:0}#chat-host .task-feed-msg code{font-family:var(--v2-mono);background:#7878784d;border-radius:3px;padding:0 3px;font-size:12px}.chat-input{flex:none;padding:10px 10px 10px 60px}.shell-root.docked .chat-input{padding:0 var(--conductor-pad) 10px 60px;pointer-events:none;z-index:6;position:absolute;bottom:0;left:0;right:0}.shell-root.docked .chat-input .ta,.shell-root.docked .chat-input .chat-queue{pointer-events:auto}.shell-root.docked #chat-pending{left:60px;right:var(--conductor-pad);bottom:var(--composer-reserve,88px);z-index:6;pointer-events:auto;padding:0;position:absolute}#chat-host .chat-input .ta{border:1px solid var(--v2-border);border-radius:var(--panel-chrome-radius);background:#0d0d0d;flex-direction:column;gap:6px;width:100%;min-height:60px;padding:8px 10px;transition:width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),border-radius .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1),opacity .18s,transform .18s;display:flex;overflow:hidden}#chat-input{width:100%;min-height:21px;color:var(--v2-fg);font:inherit;resize:none;scrollbar-width:none;-ms-overflow-style:none;background:0 0;border:none;outline:none;max-height:120px;padding:0;font-size:14px;line-height:1.5;display:block;overflow-y:auto}#chat-input::-webkit-scrollbar{width:0;height:0}#chat-input::placeholder{color:var(--v2-muted)}#chat-host .chat-input .ta-bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}#chat-host .composer-pill{height:26px;color:var(--v2-muted);border:1px solid var(--v2-border);font:inherit;cursor:pointer;background:0 0;border-radius:13px;align-items:center;gap:5px;padding:0 10px;font-size:12px;display:inline-flex}#chat-host .composer-pill:hover{color:var(--v2-fg);background:#1d1d1d}#chat-host .composer-pill svg{display:block}#chat-host .composer-pill .mode-caret{opacity:.7}#chat-send{width:26px;height:26px;color:var(--v2-muted);border:1px solid var(--v2-border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}#chat-send:hover{color:var(--v2-fg);background:#1d1d1d}#chat-send svg{display:block}#chat-pending{flex:none;gap:6px;padding:10px 10px 0;display:flex}#chat-pending img{cursor:pointer;border:1px solid #333;border-radius:6px;height:44px}#chat-host .chat-input .chat-queue{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}#chat-host .chat-input .queue-row{border:1px dashed var(--v2-border);color:var(--v2-muted);background:#000;border-radius:8px;align-items:center;gap:8px;padding:5px 6px 5px 12px;font-size:12px;display:flex}#chat-host .chat-input .queue-snippet{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}#chat-host .chat-input .queue-send-now{border:1px solid var(--v2-border);color:var(--v2-muted);font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:11px}#chat-host .chat-input .queue-send-now:hover{color:var(--v2-fg);background:#1d1d1d}#chat-host .chat-input .queue-remove{width:20px;height:20px;color:var(--v2-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:11px;display:flex}#chat-host .chat-input .queue-remove:hover{color:var(--v2-fg);background:#1d1d1d}#chat-send.stop{color:var(--v2-fg);border-color:var(--v2-fg)}#chat-send.stop:hover{color:#111;background:var(--v2-fg)}#chat-send:disabled{opacity:.45;cursor:default}#chat-send:disabled:hover{color:var(--v2-muted);background:0 0}#chat-host .picker{border:1px dashed var(--v2-border);background:#0d0d0d;border-radius:12px;flex-direction:column;align-self:flex-start;gap:12px;width:100%;max-width:100%;margin:4px 0;padding:12px;display:flex}#chat-host .picker-locked{opacity:.72}#chat-host .picker-q{border:none;min-width:0;margin:0;padding:0}#chat-host .picker-q-label{color:var(--v2-head);margin:0 0 6px;padding:0;font-size:13px;font-weight:600}#chat-host .picker-options{flex-wrap:wrap;gap:6px;display:flex}#chat-host .picker-option{border:1px solid var(--v2-border);color:var(--v2-fg);cursor:pointer;background:#000;border-radius:12px 12px 4px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;line-height:1.3;display:inline-flex}#chat-host .picker:not(.picker-locked) .picker-option:hover{border-color:#885696}#chat-host .picker-option.is-checked{color:#fff;background:#885696;border-color:#885696}#chat-host .picker-option input{accent-color:#885696;cursor:inherit;margin:0}#chat-host .picker-locked .picker-option{cursor:default}#chat-host .picker-actions{justify-content:flex-end;display:flex}#chat-host .picker-submit{font:inherit;color:#fff;cursor:pointer;background:#885696;border:1px solid #885696;border-radius:8px;padding:6px 16px;font-size:13px}#chat-host .picker-submit:hover{background:#976ba3}#chat-host .picker-skeleton{pointer-events:none}#chat-host .picker-skeleton-hint{color:var(--v2-muted);letter-spacing:.01em;font-size:12px}#chat-host .picker-skeleton-line,#chat-host .picker-skeleton-chip{background:linear-gradient(90deg, var(--v2-border) 0%, #333 50%, var(--v2-border) 100%);background-size:200% 100%;border-radius:6px;animation:1.3s ease-in-out infinite picker-shimmer;display:block}#chat-host .picker-skeleton-label{width:60%;height:11px;margin-bottom:8px}#chat-host .picker-skeleton-chip{border-radius:12px 12px 4px;height:26px}@keyframes picker-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){#chat-host .picker-skeleton-line,#chat-host .picker-skeleton-chip{animation:none}}.xterm,.xterm-viewport,.xterm-screen,.xterm-helpers{background-color:#0000!important}.xterm{overscroll-behavior:contain}.xterm-viewport{overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.xterm-viewport::-webkit-scrollbar{width:0;height:0}.xterm .xterm-scrollable-element>.scrollbar,.xterm .xterm-scrollable-element>.scrollbar.visible,.xterm .xterm-scrollable-element>.visible.scrollbar,.xterm .xterm-scrollable-element>.invisible.scrollbar,.xterm .xterm-scrollable-element>.xterm-scrollbar{opacity:0!important;pointer-events:none!important;width:0!important;min-width:0!important;height:0!important;min-height:0!important;display:none!important}.xterm .xterm-scrollable-element>.scrollbar>.slider,.xterm .xterm-scrollable-element>.scrollbar>.scra,.xterm .xterm-scrollable-element>.xterm-scrollbar>.xterm-slider{width:0!important;height:0!important;display:none!important}.xterm .xterm-scrollable-element>.shadow{display:none!important}
1
+ .dv-scrollable{position:relative;overflow:hidden}.dv-scrollable .dv-scrollbar-horizontal{will-change:background-color, transform;backface-visibility:hidden;background-color:#0000;border-radius:2px;height:4px;transition:background-color 1s ease-in-out;position:absolute;bottom:0;left:0;transform:translate(0,0)}.dv-scrollable:hover .dv-scrollbar-horizontal,.dv-scrollable.dv-scrollable-resizing .dv-scrollbar-horizontal,.dv-scrollable.dv-scrollable-scrolling .dv-scrollbar-horizontal{background-color:var(--dv-scrollbar-background-color,#ffffff40)}.dv-svg{fill:currentColor;stroke:currentColor;stroke-width:0;line-height:1;display:inline-block}.dockview-theme-dark{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#1e1e1e;--dv-tabs-and-actions-container-background-color:#252526;--dv-activegroup-visiblepanel-tab-background-color:#1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color:#1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-tab-divider-color:#1e1e1e;--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:#969696;--dv-inactivegroup-visiblepanel-tab-color:#8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color:#626262;--dv-separator-border:#444;--dv-paneview-header-border-color:#ccc3}.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-light{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:white;--dv-tabs-and-actions-container-background-color:#f3f3f3;--dv-activegroup-visiblepanel-tab-background-color:white;--dv-activegroup-hiddenpanel-tab-background-color:#ececec;--dv-inactivegroup-visiblepanel-tab-background-color:white;--dv-inactivegroup-hiddenpanel-tab-background-color:#ececec;--dv-tab-divider-color:white;--dv-activegroup-visiblepanel-tab-color:#333;--dv-activegroup-hiddenpanel-tab-color:#333333b3;--dv-inactivegroup-visiblepanel-tab-color:#333333b3;--dv-inactivegroup-hiddenpanel-tab-color:#33333359;--dv-separator-border:#80808059;--dv-paneview-header-border-color:#333;--dv-scrollbar-background-color:#00000040}.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:11px;--dv-tabs-and-actions-container-height:20px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#1e1e1e;--dv-tabs-and-actions-container-background-color:#2d2d30;--dv-activegroup-visiblepanel-tab-background-color:#007acc;--dv-activegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color:#3f3f46;--dv-inactivegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-tab-divider-color:#1e1e1e;--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:white;--dv-inactivegroup-visiblepanel-tab-color:white;--dv-inactivegroup-hiddenpanel-tab-color:white;--dv-separator-border:#444;--dv-paneview-header-border-color:#ccc3}.dockview-theme-vs .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-activegroup-hiddenpanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color)}.dockview-theme-abyss{--dv-paneview-active-outline-color:#596f99;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-color-abyss-dark:#000c18;--dv-color-abyss:#10192c;--dv-color-abyss-light:#1c1c2a;--dv-color-abyss-lighter:#2b2b4a;--dv-color-abyss-accent:#5b1ecf;--dv-color-abyss-primary-text:white;--dv-color-abyss-secondary-text:#9497a9;--dv-group-view-background-color:var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color:var(--dv-color-abyss-light);--dv-activegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-dark);--dv-activegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss);--dv-inactivegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-dark);--dv-inactivegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss);--dv-tab-divider-color:var(--dv-color-abyss-lighter);--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:#ffffff80;--dv-inactivegroup-visiblepanel-tab-color:#ffffff80;--dv-inactivegroup-hiddenpanel-tab-color:#ffffff40;--dv-separator-border:var(--dv-color-abyss-lighter);--dv-paneview-header-border-color:var(--dv-color-abyss-lighter)}.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula{--dv-paneview-active-outline-color:#6272a4;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#282a36;--dv-tabs-and-actions-container-background-color:#191a21;--dv-activegroup-visiblepanel-tab-background-color:#282a36;--dv-activegroup-hiddenpanel-tab-background-color:#21222c;--dv-inactivegroup-visiblepanel-tab-background-color:#282a36;--dv-inactivegroup-hiddenpanel-tab-background-color:#21222c;--dv-tab-divider-color:#191a21;--dv-activegroup-visiblepanel-tab-color:#f8f8f2;--dv-activegroup-hiddenpanel-tab-color:#6272a4;--dv-inactivegroup-visiblepanel-tab-color:#f8f8f280;--dv-inactivegroup-hiddenpanel-tab-color:#6272a480;--dv-separator-border:#bd93f9;--dv-paneview-header-border-color:#bd93f9}.dockview-theme-dracula .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{content:"";z-index:999;background-color:#94527e;width:100%;height:1px;position:absolute;top:0;left:0}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{content:"";z-index:999;background-color:#5e3d5a;width:100%;height:1px;position:absolute;bottom:0;left:0}.dockview-theme-replit{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:#cfd1d3;--dv-active-sash-color:#babbbb;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;box-sizing:border-box;--dv-group-view-background-color:#ebeced;--dv-tabs-and-actions-container-background-color:#fcfcfc;--dv-activegroup-visiblepanel-tab-background-color:#f0f1f2;--dv-activegroup-hiddenpanel-tab-background-color:#fcfcfc;--dv-inactivegroup-visiblepanel-tab-background-color:#f0f1f2;--dv-inactivegroup-hiddenpanel-tab-background-color:#fcfcfc;--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:#333;--dv-activegroup-hiddenpanel-tab-color:#333;--dv-inactivegroup-visiblepanel-tab-color:#333;--dv-inactivegroup-hiddenpanel-tab-color:#333;--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;background-color:#ebeced;padding:10px}.dockview-theme-replit .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-replit .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-replit .dv-resize-container{border:none;border-radius:10px!important}.dockview-theme-replit .dv-groupview{border-radius:10px;overflow:hidden}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container{border-bottom:1px solid #80808059}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab{border-radius:8px;margin:4px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover{background-color:#e4e5e6!important}.dockview-theme-replit .dv-groupview .dv-content-container{background-color:#fcfcfc}.dockview-theme-replit .dv-groupview.dv-active-group{border:1px solid #80808059}.dockview-theme-replit .dv-groupview.dv-inactive-group{border:1px solid #0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash{background-color:#0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):after{content:"";background-color:var(--dv-sash-color);border-radius:2px;width:40px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:#0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash{background-color:#0000}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):after{content:"";background-color:var(--dv-sash-color);border-radius:2px;width:4px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:#0000}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-abyss-spaced{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:44px;--dv-drag-over-background-color:"";--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #00000080;--dv-overlay-z-index:999;--dv-tab-font-size:12px;--dv-border-radius:20px;--dv-tab-margin:.5rem .25rem;--dv-sash-color:transparent;--dv-active-sash-color:var(--dv-color-abyss-accent);--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;box-sizing:border-box;--dv-color-abyss-dark:#0b0611;--dv-color-abyss:#16121f;--dv-color-abyss-light:#201d2b;--dv-color-abyss-lighter:#2a2837;--dv-color-abyss-accent:#5b1ecf;--dv-color-abyss-primary-text:white;--dv-color-abyss-secondary-text:#9497a9;--dv-drag-over-border:2px solid var(--dv-color-abyss-accent);--dv-group-view-background-color:var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color:var(--dv-color-abyss);--dv-activegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-lighter);--dv-activegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss-light);--dv-inactivegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-lighter);--dv-inactivegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss-light);--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:var(--dv-color-abyss-primary-text);--dv-activegroup-hiddenpanel-tab-color:var(--dv-color-abyss-secondary-text);--dv-inactivegroup-visiblepanel-tab-color:var(--dv-color-abyss-primary-text);--dv-inactivegroup-hiddenpanel-tab-color:var(--dv-color-abyss-secondary-text);--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;background-color:var(--dv-color-abyss-dark);padding:10px}.dockview-theme-abyss-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-abyss-spaced .dv-sash{border-radius:4px}.dockview-theme-abyss-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-resize-container{border:none;border-radius:var(--dv-border-radius)!important}.dockview-theme-abyss-spaced .dv-tabs-overflow-container,.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-abyss-spaced .dv-tab{border-radius:8px}.dockview-theme-abyss-spaced .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-abyss-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-abyss-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview{border:2px solid var(--dv-color-abyss-dark)}.dockview-theme-light-spaced{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:44px;--dv-drag-over-background-color:"";--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #0000001a;--dv-overlay-z-index:999;--dv-tab-font-size:12px;--dv-border-radius:20px;--dv-tab-margin:.5rem .25rem;--dv-sash-color:transparent;--dv-active-sash-color:#5b1ecf;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;box-sizing:border-box;--dv-drag-over-border:2px solid #5b1ecf;--dv-group-view-background-color:#f6f5f9;--dv-tabs-and-actions-container-background-color:white;--dv-activegroup-visiblepanel-tab-background-color:#ededf0;--dv-activegroup-hiddenpanel-tab-background-color:#f9f9fa;--dv-inactivegroup-visiblepanel-tab-background-color:#ededf0;--dv-inactivegroup-hiddenpanel-tab-background-color:#f9f9fa;--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:#686b82;--dv-activegroup-hiddenpanel-tab-color:#9497a9;--dv-inactivegroup-visiblepanel-tab-color:#686b82;--dv-inactivegroup-hiddenpanel-tab-color:#9497a9;--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;--dv-scrollbar-background-color:#00000040;background-color:#f6f5f9;padding:10px}.dockview-theme-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-light-spaced .dv-sash{border-radius:4px}.dockview-theme-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-resize-container{border:none;border-radius:var(--dv-border-radius)!important}.dockview-theme-light-spaced .dv-tabs-overflow-container,.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-light-spaced .dv-tab{border-radius:8px}.dockview-theme-light-spaced .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-light-spaced .dv-resize-container .dv-groupview{border:2px solid #ffffff1a}.dv-drop-target-container{z-index:9999;pointer-events:none;--dv-transition-duration:.3s;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.dv-drop-target-container .dv-drop-target-anchor{border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);opacity:1;will-change:transform, opacity;backface-visibility:hidden;contain:layout paint;transition:opacity var(--dv-transition-duration) ease-in, transform var(--dv-transition-duration) ease-out;position:relative;transform:translate(0,0)}.dv-drop-target{--dv-transition-duration:70ms;position:relative}.dv-drop-target>.dv-drop-target-dropzone{z-index:1000;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection{box-sizing:border-box;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);width:100%;height:100%;transition:top var(--dv-transition-duration) ease-out, left var(--dv-transition-duration) ease-out, width var(--dv-transition-duration) ease-out, height var(--dv-transition-duration) ease-out, opacity var(--dv-transition-duration) ease-out;will-change:transform;pointer-events:none;position:relative}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical{border-top:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical{border-bottom:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal{border-left:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal{border-right:1px solid var(--dv-drag-over-border-color)}.dv-dockview{background-color:var(--dv-group-view-background-color);contain:layout;position:relative}.dv-dockview .dv-watermark-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.dv-dockview .dv-overlay-render-container{position:relative}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-inactivegroup-visiblepanel-tab-background-color);color:var(--dv-inactivegroup-visiblepanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-inactivegroup-hiddenpanel-tab-background-color);color:var(--dv-inactivegroup-hiddenpanel-tab-color)}.dv-tab.dv-tab-dragging{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview{background-color:var(--dv-group-view-background-color);flex-direction:column;height:100%;display:flex;overflow:hidden}.dv-groupview:focus{outline:none}.dv-groupview>.dv-content-container{outline:none;flex-grow:1;min-height:0}.dv-root-wrapper,.dv-grid-view,.dv-branch-node{width:100%;height:100%}.dv-debug .dv-resize-container .dv-resize-handle-top{background-color:red}.dv-debug .dv-resize-container .dv-resize-handle-bottom{background-color:green}.dv-debug .dv-resize-container .dv-resize-handle-left{background-color:#ff0}.dv-debug .dv-resize-container .dv-resize-handle-right{background-color:#00f}.dv-debug .dv-resize-container .dv-resize-handle-topleft,.dv-debug .dv-resize-container .dv-resize-handle-topright,.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,.dv-debug .dv-resize-container .dv-resize-handle-bottomright{background-color:#0ff}.dv-resize-container{--dv-overlay-z-index:var(--dv-overlay-z-index,999);z-index:calc(var(--dv-overlay-z-index) - 2);border:1px solid var(--dv-tab-divider-color);box-shadow:var(--dv-floating-box-shadow);will-change:transform, opacity;backface-visibility:hidden;position:absolute;transform:translate(0,0)}.dv-resize-container.dv-hidden{display:none}.dv-resize-container.dv-resize-container-dragging{opacity:.5;will-change:transform, opacity}.dv-resize-container .dv-resize-handle-top{width:calc(100% - 8px);height:4px;z-index:var(--dv-overlay-z-index);cursor:ns-resize;position:absolute;top:-2px;left:4px}.dv-resize-container .dv-resize-handle-bottom{width:calc(100% - 8px);height:4px;z-index:var(--dv-overlay-z-index);cursor:ns-resize;position:absolute;bottom:-2px;left:4px}.dv-resize-container .dv-resize-handle-left{width:4px;height:calc(100% - 8px);z-index:var(--dv-overlay-z-index);cursor:ew-resize;position:absolute;top:4px;left:-2px}.dv-resize-container .dv-resize-handle-right{width:4px;height:calc(100% - 8px);z-index:var(--dv-overlay-z-index);cursor:ew-resize;position:absolute;top:4px;right:-2px}.dv-resize-container .dv-resize-handle-topleft{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:nw-resize;position:absolute;top:-2px;left:-2px}.dv-resize-container .dv-resize-handle-topright{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:ne-resize;position:absolute;top:-2px;right:-2px}.dv-resize-container .dv-resize-handle-bottomleft{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:sw-resize;position:absolute;bottom:-2px;left:-2px}.dv-resize-container .dv-resize-handle-bottomright{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:se-resize;position:absolute;bottom:-2px;right:-2px}.dv-render-overlay{--dv-overlay-z-index:var(--dv-overlay-z-index,999);z-index:1;contain:layout paint;isolation:isolate;will-change:transform;backface-visibility:hidden;width:100%;height:100%;position:absolute;transform:translate(0,0)}.dv-render-overlay.dv-render-overlay-float{z-index:calc(var(--dv-overlay-z-index) - 1)}.dv-debug .dv-render-overlay{outline-offset:-1;outline:1px solid red}.dv-pane-container{width:100%;height:100%}.dv-pane-container.dv-animated .dv-view{will-change:transform;backface-visibility:hidden;transition:transform .15s ease-out;transform:translate(0,0)}.dv-pane-container .dv-view{flex-direction:column;display:flex;overflow:hidden;padding:0!important}.dv-pane-container .dv-view:not(:first-child):before{background-color:#0000!important}.dv-pane-container .dv-view:not(:first-child) .dv-pane>.dv-pane-header{border-top:1px solid var(--dv-paneview-header-border-color)}.dv-pane-container .dv-view .dv-default-header{background-color:var(--dv-group-view-background-color);color:var(--dv-activegroup-visiblepanel-tab-color);cursor:pointer;padding:0 8px;display:flex}.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon{justify-content:center;align-items:center;display:flex}.dv-pane-container .dv-view .dv-default-header>span{flex-grow:1;padding-left:8px}.dv-pane-container:first-of-type>.dv-pane>.dv-pane-header{border-top:none!important}.dv-pane-container .dv-pane{flex-direction:column;height:100%;display:flex;overflow:hidden}.dv-pane-container .dv-pane .dv-pane-header{box-sizing:border-box;-webkit-user-select:none;user-select:none;outline:none;position:relative}.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable{cursor:pointer}.dv-pane-container .dv-pane .dv-pane-header:focus:before,.dv-pane-container .dv-pane .dv-pane-header:focus-within:before{z-index:5;content:"";pointer-events:none;outline-offset:-1px;outline:-1px solid;outline-color:var(--dv-paneview-active-outline-color);width:100%;height:100%;position:absolute;top:0;left:0}.dv-pane-container .dv-pane .dv-pane-body{outline:none;flex-grow:1;position:relative;overflow:hidden auto}.dv-pane-container .dv-pane .dv-pane-body:focus:before,.dv-pane-container .dv-pane .dv-pane-body:focus-within:before{z-index:5;content:"";pointer-events:none;outline-offset:-1px;outline:-1px solid;outline-color:var(--dv-paneview-active-outline-color);width:100%;height:100%;position:absolute;top:0;left:0}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled{background-color:#000}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled{background-color:orange}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum{background-color:green}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum{background-color:red}.dv-split-view-container{width:100%;height:100%;position:relative;overflow:hidden}.dv-split-view-container.dv-splitview-disabled>.dv-sash-container>.dv-sash{pointer-events:none}.dv-split-view-container.dv-animation .dv-view,.dv-split-view-container.dv-animation .dv-sash{will-change:transform;backface-visibility:hidden;transition:transform .15s ease-out;transform:translate(0,0)}.dv-split-view-container.dv-horizontal{height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{width:4px;height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled{cursor:ew-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-maximum{cursor:w-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-minimum{cursor:e-resize}.dv-split-view-container.dv-horizontal>.dv-view-container>.dv-view:not(:first-child):before{width:1px;height:100%}.dv-split-view-container.dv-vertical{width:100%}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{width:100%;height:4px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled{cursor:ns-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-maximum{cursor:n-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-minimum{cursor:s-resize}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view{width:100%}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view:not(:first-child):before{width:100%;height:1px}.dv-split-view-container .dv-sash-container{width:100%;height:100%;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash{z-index:99;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--dv-sash-color,transparent);outline:none;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active,.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover{background-color:var(--dv-active-sash-color,transparent);transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:var(--dv-active-sash-transition-duration,.1s);transition-delay:var(--dv-active-sash-transition-delay,.5s)}.dv-split-view-container .dv-view-container{width:100%;height:100%;position:relative}.dv-split-view-container .dv-view-container .dv-view{box-sizing:border-box;height:100%;position:absolute;overflow:auto}.dv-split-view-container.dv-separator-border .dv-view:not(:first-child):before{content:" ";z-index:5;pointer-events:none;background-color:var(--dv-separator-border);position:absolute;top:0;left:0}.dv-dragged{transform:translate(0,0)}.dv-tab{flex-shrink:0}.dv-tab:focus-within,.dv-tab:focus{position:relative}.dv-tab:focus-within:after,.dv-tab:focus:after{content:"";pointer-events:none;outline-offset:-1px;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0;outline:1px solid var(--dv-tab-divider-color)!important}.dv-tab.dv-tab-dragging .dv-default-tab-action{background-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action{visibility:visible}.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:hidden}.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action{visibility:visible}.dv-tab .dv-default-tab{white-space:nowrap;text-overflow:ellipsis;align-items:center;height:100%;display:flex;position:relative}.dv-tab .dv-default-tab .dv-default-tab-content{flex-grow:1;margin-right:4px}.dv-tab .dv-default-tab .dv-default-tab-action{box-sizing:border-box;justify-content:center;align-items:center;padding:4px;display:flex}.dv-tab .dv-default-tab .dv-default-tab-action:hover{background-color:var(--dv-icon-hover-background-color);border-radius:2px}.dv-tabs-overflow-dropdown-default{height:100%;color:var(--dv-activegroup-hiddenpanel-tab-color);margin:var(--dv-tab-margin);cursor:pointer;flex-shrink:0;align-items:center;padding:.25rem .5rem;display:flex}.dv-tabs-overflow-dropdown-default>span{padding-left:.25rem}.dv-tabs-overflow-dropdown-default>svg{transform:rotate(90deg)}.dv-tabs-container{scrollbar-width:thin;will-change:scroll-position;height:100%;display:flex;overflow:auto;transform:translate(0,0)}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{content:" ";z-index:5;pointer-events:none;background-color:var(--dv-tab-divider-color);width:1px;height:100%;position:absolute;top:0;left:0}.dv-tabs-container::-webkit-scrollbar{height:3px}.dv-tabs-container::-webkit-scrollbar-track{background:0 0}.dv-tabs-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color)}.dv-scrollable>.dv-tabs-container{overflow:hidden}.dv-tab{-webkit-user-drag:element;cursor:pointer;box-sizing:border-box;font-size:var(--dv-tab-font-size);margin:var(--dv-tab-margin);outline:none;padding:.25rem .5rem;position:relative}.dv-tabs-overflow-container{height:unset;border:1px solid var(--dv-tab-divider-color);background-color:var(--dv-group-view-background-color);flex-direction:column}.dv-tabs-overflow-container .dv-tab:not(:last-child){border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tabs-overflow-container .dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-tabs-and-actions-container{background-color:var(--dv-tabs-and-actions-container-background-color);box-sizing:border-box;height:var(--dv-tabs-and-actions-container-height);font-size:var(--dv-tabs-and-actions-container-font-size);flex-shrink:0;display:flex}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable,.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container{flex-grow:1}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{flex-grow:1;padding:0}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container{flex-grow:0}.dv-tabs-and-actions-container .dv-void-container{flex-grow:1;display:flex}.dv-tabs-and-actions-container .dv-void-container.dv-draggable{cursor:grab}.dv-tabs-and-actions-container .dv-right-actions-container{display:flex}.dv-watermark{height:100%;display:flex}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.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{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;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;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.castle-file-panel,.castle-code-panel{--castle-font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--castle-black:#111;--castle-panel-raised:#101010;--castle-border:#444;--castle-text:#fff;--castle-text-dim:#888;--castle-inspector-bg:#0d0d0d;--castle-inspector-text:#e6e6e6;--castle-inspector-muted:#888;--castle-inspector-border:#2a2a2a;--castle-inspector-divider:#2a2a2a;--castle-inspector-input-bg:#161616;--castle-workspace-bg:#0a0a0a;--castle-sheet-bg:#0d0d0d;--castle-radius:4px}.castle-file-panel{background:var(--castle-sheet-bg);height:100%;overflow:auto;transform:translateZ(0)}.fileBrowserBare{flex-direction:column;min-width:0;height:100%;display:flex}.fileTree{flex:1 1 0;min-height:0;padding-top:5px;overflow-y:auto}.fileBranch{min-width:0}.fileRow,.fileDirRow{border-radius:var(--castle-radius);color:#a8a8a8;width:100%;padding:5px 9px 5px calc(9px + var(--file-depth,0) * 20px);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:6px;font-size:14px;display:flex}.fileDirRow{color:#777}.fileRow:hover,.fileDirRow:hover{background:var(--castle-sheet-bg);color:var(--castle-inspector-text)}.fileRow.fileRowSelected,.fileRow.fileRowSelected:hover{background:var(--castle-panel-raised);color:var(--castle-inspector-text)}.fileIcon.fileDisclosure{color:#666}.fileDirRow:hover .fileIcon.fileDisclosure{color:inherit}.fileDisclosure svg{width:10px;height:10px}.fileLabel{flex:auto;align-items:center;gap:6px;min-width:0;display:inline-flex}.fileIcon{width:14px;color:var(--castle-inspector-muted);flex:0 0 14px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.castle-code-panel{width:100%;height:100%;position:relative}.mainEditor{background:var(--castle-sheet-bg);flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex}.editorBody{flex:1;min-height:0;display:flex;overflow:hidden;container:editor/inline-size}.codeEditor{background:var(--castle-workspace-bg);flex:1;grid-template-columns:1fr;min-width:0;min-height:0;display:grid}.codeMirrorHost{min-width:0;height:100%;min-height:0}.castle-code-overlay{color:var(--castle-inspector-muted);pointer-events:none;font-size:12px;position:absolute;top:10px;left:12px}.castle-code-overlay.castle-code-error{color:#e86a73}.castle-code-savebar{color:#e86a73;background:#2a1414;padding:4px 10px;font-size:11px;position:absolute;bottom:0;left:0;right:0}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:#e6e6e6;background:#0d0d0d;font-family:baltomobile,Balto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.shell-dockview{box-sizing:border-box;--panel-gutter:10px;--panel-chrome-radius:8px;--dv-tab-font-size:14px;--dv-tabs-and-actions-container-font-size:14px;--dv-tabs-and-actions-container-height:30px;--dv-group-view-background-color:#0d0d0d;--dv-tabs-and-actions-container-background-color:#000;--dv-activegroup-visiblepanel-tab-background-color:#0d0d0d;--dv-activegroup-visiblepanel-tab-color:#e6e6e6;--dv-activegroup-hiddenpanel-tab-background-color:#000;--dv-activegroup-hiddenpanel-tab-color:#525252;--dv-inactivegroup-visiblepanel-tab-background-color:#0d0d0d;--dv-inactivegroup-visiblepanel-tab-color:#e6e6e6;--dv-inactivegroup-hiddenpanel-tab-background-color:#000;--dv-inactivegroup-hiddenpanel-tab-color:#525252;--dv-tab-divider-color:#2a2a2a;--dv-separator-border:transparent;--dv-sash-color:transparent;--dv-active-sash-color:#525252;height:100%;padding:var(--panel-gutter) var(--panel-gutter) var(--panel-gutter) 0;background-color:#000;font-family:baltomobile,Balto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.shell-dockview.dv-dockview{background-color:#000}.shell-dockview .dv-default-tab-content{font-family:inherit}.shell-dockview .dv-split-view-container .dv-view:has(>.dv-groupview){border-radius:var(--panel-chrome-radius);box-sizing:border-box;overflow:hidden}.shell-dockview .dv-split-view-container .dv-view:has(>.dv-groupview):after{content:"";z-index:10;pointer-events:none;border-radius:inherit;box-sizing:border-box;border:1px solid #2a2a2a;position:absolute;inset:0}.shell-dockview .dv-view>.dv-groupview{border:none;border-radius:0;width:100%;height:100%}.shell-dockview .dv-resize-container:has(>.dv-groupview){border-radius:var(--panel-chrome-radius);box-sizing:border-box;overflow:hidden}.shell-dockview .dv-resize-container:has(>.dv-groupview):after{content:"";z-index:10;pointer-events:none;border-radius:inherit;box-sizing:border-box;border:1px solid #2a2a2a;position:absolute;inset:0}.shell-dockview .dv-resize-container .dv-groupview{border:none;border-radius:0;width:100%;height:100%}.shell-dockview .dv-tabs-container.dv-horizontal{align-items:stretch;display:flex}.shell-dockview .dv-tab{border:none;border-right:1px solid var(--dv-tab-divider-color);border-radius:0;align-self:stretch;height:100%;padding:0 5px 0 10px}.shell-dockview .dv-tab:not(:first-child){margin-left:0}.shell-dockview .dv-tab.dv-inactive-tab{border-bottom:1px solid var(--dv-tab-divider-color)}.shell-dockview .dv-tab.dv-active-tab{border-bottom:none}.shell-dockview .dv-tabs-and-actions-container .dv-void-container{border-bottom:1px solid var(--dv-tab-divider-color)}.shell-dockview .dv-tabs-and-actions-container .dv-right-actions-container{border-left:1px solid var(--dv-tab-divider-color);border-bottom:1px solid var(--dv-tab-divider-color);align-items:stretch}.shell-dockview .dv-tab .dv-default-tab-content{margin-right:6px}.shell-dockview .dv-tab .dv-default-tab-action{padding:2px}.shell-dockview .dv-tab .dv-default-tab-action .dv-svg{width:8px;height:8px;transform:translateY(1px)}.shell-dockview .dv-tab.dv-inactive-tab .dv-default-tab-action{color:#424242}.shell-dockview .dv-tab.dv-active-tab .dv-default-tab-action{color:#5a5a5a}.shell-dockview .dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{display:none}.shell-dockview .dv-tab:focus:after,.shell-dockview .dv-tab:focus-within:after{display:none!important}.shell-dockview .dv-tabs-overflow-container{border:1px solid var(--dv-tab-divider-color);border-radius:var(--panel-chrome-radius);background:#0d0d0d;gap:2px;min-width:180px;padding:4px;overflow:hidden;box-shadow:0 10px 24px -10px #000000e6}.shell-dockview .dv-tabs-overflow-container .dv-tab{border-bottom:none;border-right:none;border-radius:6px;width:100%;padding:4px 8px 4px 10px}.shell-dockview .dv-tabs-overflow-container .dv-tab:hover{background:#1d1d1d}.shell-dockview .dv-tabs-overflow-container .dv-tab.dv-active-tab{background:#161616}.shell-dockview .dv-add-panel{align-items:center;height:100%;padding:0 3px;display:flex}.shell-dockview .dv-add-panel-btn{color:#6e7781;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:flex}.shell-dockview .dv-add-panel-btn:hover{color:#e6e6e6;background:#ffffff0f}.shell-dockview .dv-add-panel-btn svg{display:block}.dv-add-panel-menu{z-index:2147483000;background:#0d0d0d;border:1px solid #2a2a2a;border-radius:8px;min-width:180px;padding:4px;font-family:baltomobile,Balto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;transform:translate(-100%);box-shadow:0 10px 24px -10px #000000e6}.dv-add-panel-item{color:#e6e6e6;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex}.dv-add-panel-item:hover{color:#fff;background:#885696}.dv-add-panel-item-icon{color:#888;flex:0 0 16px;justify-content:center;align-items:center;display:flex}.dv-add-panel-item:hover .dv-add-panel-item-icon{color:#fff}.dv-add-panel-item-label{white-space:nowrap;flex:1}.empty-dock-state{z-index:20;padding:var(--panel-gutter);pointer-events:auto;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.shell-root.docked .empty-dock-state{left:var(--conductor-col,500px)}.shell-root.floating .empty-dock-state{left:60px}.empty-dock-card{border-radius:var(--panel-chrome-radius);background:#0d0d0d;border:1px solid #2a2a2a;width:210px;padding:6px;box-shadow:0 10px 24px -10px #000000e6}.empty-dock-title{color:#888;padding:7px 10px 8px;font-size:12px}.empty-dock-actions{flex-direction:column;gap:2px;display:flex}.empty-dock-item{color:#e6e6e6;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.empty-dock-item:hover{color:#fff;background:#885696}.empty-dock-item:hover .dv-add-panel-item-icon{color:#fff}.panel-error{color:#888;flex-direction:column;align-items:flex-start;gap:8px;height:100%;padding:14px 16px;font-size:13px;display:flex;overflow:auto}.panel-error-title{color:#e6e6e6}.panel-error-msg{white-space:pre-wrap;word-break:break-word;color:#888;max-width:100%;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.panel-error-retry{font:inherit;color:#e6e6e6;cursor:pointer;background:#161616;border:1px solid #2a2a2a;border-radius:4px;padding:3px 10px;font-size:12px}.panel-error-retry:hover{background:#1d1d1d}.deck-panel{background:#0d0d0d;width:100%;height:100%}.deck-frame{border:0;width:100%;height:100%;display:block}.play-panel{background:#0d0d0d;flex-direction:column;width:100%;height:100%;display:flex}.play-stage{flex:auto;justify-content:center;align-items:center;min-height:0;padding:20px;display:flex;container-type:size}.play-frame-shell{aspect-ratio:5/7;border-radius:4%/2.85714%;width:min(100cqw,71.4286cqh);height:min(100cqh,140cqw);overflow:hidden}.play-frame-shell .deck-frame{width:100%;height:100%}.play-logs{color:#cfcfcf;background:#0a0a0a;border-top:1px solid #1f1f1f;flex:none;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.play-logs-header{justify-content:space-between;align-items:center;height:28px;padding:0 8px;display:flex}.play-logs-toggle{color:#9a9a9a;cursor:pointer;font:inherit;text-transform:uppercase;letter-spacing:.04em;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:11px;display:inline-flex}.play-logs-caret{color:#6b6b6b;width:10px;display:inline-block}.play-logs-count{color:#6b6b6b}.play-logs-actions{align-items:center;gap:6px;display:flex}.play-logs-clear{color:#6b6b6b;cursor:pointer;font:inherit;background:0 0;border:0;padding:2px 4px;font-size:11px}.play-logs-clear:hover{color:#cfcfcf}.play-logs-btn{color:#cfcfcf;cursor:pointer;background:0 0;border:1px solid #ffffff24;border-radius:6px;justify-content:center;align-items:center;width:26px;height:22px;padding:0;display:inline-flex}.play-logs-btn:hover{color:#fff;background:#ffffff14}.play-logs-body{border-top:1px solid #161616;max-height:200px;padding:4px 10px 8px;overflow-y:auto}.play-logs-line{white-space:pre-wrap;word-break:break-word}.play-logs-warn{color:#e2c08d}.play-logs-error{color:#e08c8c}.play-logs-empty{color:#5a5a5a}.term-panel{width:100%;height:100%;position:relative}.term-host{overscroll-behavior:contain;padding:6px;position:absolute;inset:0}.shell-root{--v2-border:#2a2a2a;--v2-fg:#e6e6e6;--v2-head:#e8e8e8;--v2-muted:#888;--v2-accent:#885696;--v2-running:#6c9ce0;--v2-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--conductor-pad:10px;--composer-reserve:88px;--panel-gutter:10px;--panel-chrome-radius:8px;background:#000;height:100%;position:relative}.shell-root .shell-dockview{height:100%;transition:margin-left .18s,width .18s,opacity .12s}body.conductor-resizing .shell-root .shell-dockview{transition:none}.shell-root.dock-hidden .shell-dockview{opacity:0}.shell-root:not(.anim-ready) .shell-dockview,.shell-root:not(.anim-ready) #chat-host{transition:none}.shell-root.docked .shell-dockview{margin-left:var(--conductor-col,500px);width:calc(100% - var(--conductor-col,500px))!important}.shell-root.floating .shell-dockview{margin-left:60px;width:calc(100% - 60px)!important}#chat-host{width:var(--conductor-col,500px);color:var(--v2-fg);z-index:10;background:#000;flex-direction:column;font-family:Balto,system-ui,-apple-system,sans-serif;transition:background-color .18s;display:flex;position:absolute;top:0;bottom:0;left:0}body.conductor-resizing #chat-host{transition:none}.shell-root.floating #chat-host{pointer-events:none;z-index:2147482500;background:0 0;width:380px;max-width:86vw}.conductor-resize{top:0;bottom:0;left:var(--conductor-col,500px);cursor:col-resize;z-index:30;width:8px;margin-left:-4px;position:absolute}body.conductor-resizing,body.conductor-resizing *{cursor:col-resize;-webkit-user-select:none!important;user-select:none!important}body.shell-sash-resizing,body.shell-sash-resizing *{-webkit-user-select:none!important;user-select:none!important}.shell-root.floating #chat-messages{pointer-events:none;justify-content:flex-end;padding:0 0 0 60px;position:absolute;inset:0 0 88px}.shell-root.floating #chat-messages .chat-bubbles{pointer-events:auto;flex-direction:column;gap:4px;display:flex}.shell-root.floating #chat-pending,.shell-root.floating .chat-input .ta,.shell-root.floating .chat-input .chat-queue{pointer-events:auto}.shell-root.floating .chat-input{z-index:6;pointer-events:none;margin-top:auto;padding-left:60px;padding-right:0;position:relative}.shell-root.floating #chat-host .chat-input.collapsed{pointer-events:none;padding-bottom:13px}.shell-root.floating #chat-host .chat-input.collapsed.revealed{pointer-events:auto}.shell-root.floating #chat-host .chat-input.collapsed .ta{cursor:pointer;opacity:0;pointer-events:none;border-radius:19px;justify-content:center;align-items:center;gap:0;width:38px;height:38px;min-height:0;padding:5px;transform:translateY(6px)}.shell-root.floating #chat-host .chat-input.collapsed.revealed .ta{opacity:1;pointer-events:auto;transform:none}.shell-root.floating #chat-host .chat-input.collapsed .ta-text,.shell-root.floating #chat-host .chat-input.collapsed .ta-bottom,.shell-root.floating #chat-host .chat-input.collapsed .chat-queue,.shell-root.floating #chat-host:not(.chat-expanded) #chat-pending,#chat-host .chat-input .collapse-icon{display:none}.shell-root.floating #chat-host .chat-input.collapsed .collapse-icon{width:28px;height:28px;color:var(--v2-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}#chat-host .chat-input .collapse-icon svg{width:20px;height:20px;display:block}.shell-root.floating #chat-host .chat-input.collapsed .ta:hover .collapse-icon{color:var(--v2-fg)}.shell-root.floating #chat-host .msg,.shell-root.floating #chat-host .assistant-turn{transition:opacity .55s}.shell-root.floating #chat-host .msg.fading,.shell-root.floating #chat-host .assistant-turn.fading{opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.shell-root.floating #chat-host .msg,.shell-root.floating #chat-host .assistant-turn{transition:none}}.shell-root.floating #chat-host.rail-engaged #chat-messages{opacity:0;pointer-events:none;transition:opacity .14s}.conductor-avatar{width:36px;height:36px;color:var(--v2-fg,#e6e6e6);border:2px solid var(--v2-border,#2a2a2a);cursor:pointer;pointer-events:auto;z-index:80;background:#161616;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;bottom:14px;left:12px;box-shadow:0 10px 24px -10px #000000e6}.conductor-avatar:hover{border-color:var(--v2-accent,#f5f5f5)}.conductor-avatar svg{display:block}.conductor-avatar.active{border-color:var(--v2-running,#6c9ce0);box-shadow:0 0 0 3px #6c9ce040,0 10px 24px -10px #000000e6}.conductor-gutter{pointer-events:auto;z-index:5;width:60px;max-height:calc(100% - 56px);position:absolute;top:0;left:0;overflow:visible}#chat-host .conductor-gutter .task-stack{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;width:100%;max-height:100%;display:flex;overflow-y:auto}.shell-root.floating #chat-host.rail-engaged .conductor-gutter .task-stack{overflow:visible}#chat-host .conductor-gutter .task-stack::-webkit-scrollbar{width:0;height:0}#chat-host .conductor-gutter .task-row{padding:5px 14px}#chat-host .conductor-gutter .task:hover,#chat-host .conductor-gutter .task.open{width:344px;box-shadow:inset 0 0 0 1px var(--v2-border), 0 10px 24px -10px #000000e6;z-index:30;background:#141414eb;transform:translate(8px)}#chat-host .conductor-gutter .task:hover .task-row,#chat-host .conductor-gutter .task.open .task-row{gap:10px;padding:5px 6px}#chat-host .conductor-gutter .task-meta{opacity:0;pointer-events:none;transition:opacity .14s}#chat-host .conductor-gutter .task:hover .task-meta,#chat-host .conductor-gutter .task.open .task-meta{opacity:1;pointer-events:auto}#chat-host .conductor-gutter .task-name,#chat-host .conductor-gutter .task-sub,#chat-host .conductor-gutter .task-body{text-shadow:0 1px 3px #000000f2,0 0 2px #000000d9}#chat-host .settings-popover{z-index:2147483000;color:#e6e6e6;background:#0d0d0d;border:1px solid #2a2a2a;border-radius:8px;width:300px;padding:10px 12px;font-size:13px;position:fixed;bottom:70px;left:12px;box-shadow:0 10px 24px -10px #000000e6}#chat-host .settings-row{justify-content:space-between;align-items:center;gap:10px;display:flex}#chat-host .settings-row+.settings-row{margin-top:8px}#chat-host .settings-label{white-space:nowrap}#chat-host .settings-seg{border:1px solid #2a2a2a;border-radius:4px;display:flex;overflow:hidden}#chat-host .settings-opt{font:inherit;color:#888;cursor:pointer;background:#0d0d0d;border:0;padding:5px 12px;font-size:14px}#chat-host .settings-opt+.settings-opt{border-left:1px solid #2a2a2a}#chat-host .settings-opt:hover{color:#e6e6e6}#chat-host .settings-opt.active{color:#fff;background:#885696}#chat-messages{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1 1 0;min-height:0;padding:0;font-size:14px;line-height:1.5;display:flex;overflow-y:auto}#chat-messages .chat-thread{opacity:0;flex-direction:column;transition:opacity .12s;display:flex}#chat-messages .chat-thread.ready{opacity:1}.shell-root.docked #chat-messages{-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - var(--composer-reserve,88px)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - var(--composer-reserve,88px)), transparent 100%);mask-image:linear-gradient(to bottom, #000 calc(100% - var(--composer-reserve,88px)), transparent 100%);padding:0}.shell-root.docked #chat-messages .chat-thread{padding-bottom:var(--composer-reserve,88px)}.shell-root.docked #chat-messages>:first-child{margin-top:auto}#chat-messages::-webkit-scrollbar{width:0;height:0}#chat-empty{color:var(--v2-muted)}#chat-host .msg{margin:5px 0}#chat-host .msg.user{text-align:right}#chat-host .msg.user span{color:#111;text-align:left;white-space:pre-wrap;word-break:break-word;background:#fff;border-radius:17px;max-width:85%;padding:7px 14px;display:inline-block}#chat-host .msg-image{border:1px solid #333;border-radius:8px;max-width:220px;max-height:150px;margin:0 0 6px auto;display:block}#chat-host .assistant-turn{flex-direction:column;align-items:flex-start;gap:4px;margin:5px 0;display:flex}#chat-host .msg.assistant{color:#fff;word-break:break-word;background:#885696;border-radius:17px;width:fit-content;max-width:85%;margin:0;padding:7px 14px}#chat-host .msg.assistant.errbubble{background:#5a2b2b}#chat-host .msg.assistant.streaming:after{content:"▌";opacity:.6;animation:1s step-end infinite chat-blink}@keyframes chat-blink{50%{opacity:0}}#chat-host .msg.toolline{color:var(--v2-muted);font-size:12px;font-family:var(--v2-mono);word-break:break-word;margin:4px 0}#chat-host .msg-activity{color:var(--v2-muted);font-size:12px;animation:1.4s ease-in-out infinite chat-pulse}@keyframes chat-pulse{50%{opacity:.35}}#chat-host .msg-interrupted,#chat-host .msg-error-detail{color:var(--v2-muted);font-size:12px}#chat-host .msg-error-detail summary{cursor:pointer;-webkit-user-select:none;user-select:none}#chat-host .msg-error-detail pre{white-space:pre-wrap;word-break:break-word;background:#00000059;border-radius:6px;max-height:160px;margin:4px 0 0;padding:6px 8px;font-size:11px;overflow-y:auto}#chat-host .msg-thinking{color:var(--v2-muted);align-items:center;gap:8px;font-size:12px;display:flex}#chat-host .msg-thinking .thinking-dots{gap:4px;display:inline-flex}#chat-host .msg-thinking .thinking-dots i{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite thinking-bounce}#chat-host .msg-thinking .thinking-dots i:nth-child(2){animation-delay:.18s}#chat-host .msg-thinking .thinking-dots i:nth-child(3){animation-delay:.36s}#chat-host .msg-thinking .thinking-label{animation:1.4s ease-in-out infinite chat-pulse}@keyframes thinking-bounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){#chat-host .msg-thinking .thinking-dots i,#chat-host .msg-thinking .thinking-label{animation:none}#chat-host .msg-thinking .thinking-dots i{opacity:.6}}#chat-host .msg.md>:first-child,#chat-host .task-notes>:first-child{margin-top:0}#chat-host .msg.md>:last-child,#chat-host .task-notes>:last-child{margin-bottom:0}#chat-host .msg.md p:empty{display:none}#chat-host .msg.md p,#chat-host .task-notes p{margin:.4em 0}#chat-host .msg.md ul,#chat-host .msg.md ol,#chat-host .task-notes ul,#chat-host .task-notes ol{margin:.4em 0;padding-left:1.3em}#chat-host .msg.md li{margin:.1em 0}#chat-host .msg.md h1,#chat-host .msg.md h2,#chat-host .msg.md h3{margin:.5em 0 .3em;font-weight:700;line-height:1.25}#chat-host .msg.md h1{font-size:1.2em}#chat-host .msg.md h2{font-size:1.12em}#chat-host .msg.md h3{font-size:1.05em}#chat-host .msg.md a{color:#fff;text-underline-offset:2px;text-decoration:underline}#chat-host .msg.md code,#chat-host .task-notes code{font-family:var(--v2-mono);background:#00000038;border-radius:4px;padding:.1em .35em;font-size:.9em}#chat-host .msg.md pre{white-space:pre-wrap;word-break:break-word;font-family:var(--v2-mono);background:#00000047;border-radius:8px;margin:.5em 0;padding:8px 10px;font-size:.9em;line-height:1.4;overflow-x:auto}#chat-host .msg.md pre code{background:0 0;border-radius:0;padding:0}#chat-host .msg.md blockquote{color:#ffffffd9;border-left:3px solid #fff6;margin:.5em 0;padding-left:.8em}.shell-root.docked #chat-host .conductor-inset{min-height:0;padding:0 var(--conductor-pad);flex-direction:column;flex:1 1 0;display:flex}.shell-root.docked #chat-host .chat-divider{background:var(--v2-border);flex:0 0 1px}.task-stack{gap:5px;padding-top:10px}#task-board{flex-direction:column;flex:none;padding-bottom:12px;display:flex}#chat-host .task{cursor:pointer;border-radius:8px;transition:background .12s,box-shadow .12s}#chat-host .task:hover,#chat-host .task.open{box-shadow:inset 0 0 0 1px var(--v2-border);background:#141414eb}#chat-host .task-row{align-items:center;gap:10px;padding:5px 6px 5px 4px;display:flex;position:relative}#chat-host .task.open .task-row{align-items:flex-start}#chat-host .pie{border-radius:50%;flex:0 0 32px;width:32px;height:32px;padding:2px;display:flex;position:relative}#chat-host .pie .avatar{color:#000;background:#222;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}#chat-host .pie .avatar .avatar-icon-wrap{justify-content:center;align-items:center;width:16px;height:16px;display:flex}#chat-host .pie .avatar .avatar-icon-wrap svg{width:16px;height:16px;display:block}#chat-host .task-meta{flex:1;min-width:0}#chat-host .task-head{align-items:center;gap:8px;display:flex}#chat-host .task.open .task-head{min-height:32px}#chat-host .task-text{flex:1;min-width:0}#chat-host .task-name{color:var(--v2-fg);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:400;overflow:hidden}#chat-host .task-name .tn{color:var(--v2-head);font-weight:600}#chat-host .task-sub{color:var(--v2-muted);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;margin-top:2px;font-size:10px;overflow:hidden}#chat-host .task-dismiss{border:1px solid var(--v2-border);color:var(--v2-muted);font:inherit;cursor:pointer;visibility:hidden;background:0 0;border-radius:6px;flex-shrink:0;padding:3px 10px;font-size:12px}#chat-host .task-dismiss:hover{color:var(--v2-fg);background:#1d1d1d}#chat-host .task:hover .task-dismiss{visibility:visible}#chat-host .task-body{color:var(--v2-fg);padding:0 0 4px;font-size:12px;display:none}#chat-host .task.open .task-body{display:block}#chat-host .task-notes{color:#b3b3b3;word-break:break-word;margin-top:6px;font-size:12px}#chat-host .task-notes code{font-size:12px}#chat-host .task-feed{scrollbar-width:none;-ms-overflow-style:none;color:#b3b3b3;cursor:default;word-break:break-word;max-height:96px;margin-top:6px;font-size:12px;line-height:1.5;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 5px 100%);mask-image:linear-gradient(#0000,#000 5px 100%)}#chat-host .task-feed::-webkit-scrollbar{width:0;height:0}#chat-host .task-feed-tool{color:var(--v2-muted);font-family:var(--v2-mono);white-space:pre-wrap;padding-left:14px;font-size:12px}#chat-host .task-feed-msg{margin:0}#chat-host .task-feed-msg>:first-child{margin-top:0}#chat-host .task-feed-msg>:last-child{margin-bottom:0}#chat-host .task-feed-msg p{margin:0}#chat-host .task-feed-msg code{font-family:var(--v2-mono);background:#7878784d;border-radius:3px;padding:0 3px;font-size:12px}.chat-input{flex:none;padding:10px 10px 10px 60px}.shell-root.docked .chat-input{padding:0 var(--conductor-pad) 10px 60px;pointer-events:none;z-index:6;position:absolute;bottom:0;left:0;right:0}.shell-root.docked .chat-input .ta,.shell-root.docked .chat-input .chat-queue{pointer-events:auto}.shell-root.docked #chat-pending{left:60px;right:var(--conductor-pad);bottom:var(--composer-reserve,88px);z-index:6;pointer-events:auto;padding:0;position:absolute}#chat-host .chat-input .ta{border:1px solid var(--v2-border);border-radius:var(--panel-chrome-radius);background:#0d0d0d;flex-direction:column;gap:6px;width:100%;min-height:60px;padding:8px 10px;transition:width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),border-radius .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1),opacity .18s,transform .18s;display:flex;overflow:hidden}#chat-input{width:100%;min-height:21px;color:var(--v2-fg);font:inherit;resize:none;scrollbar-width:none;-ms-overflow-style:none;background:0 0;border:none;outline:none;max-height:120px;padding:0;font-size:14px;line-height:1.5;display:block;overflow-y:auto}#chat-input::-webkit-scrollbar{width:0;height:0}#chat-input::placeholder{color:var(--v2-muted)}#chat-host .chat-input .ta-bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}#chat-host .composer-pill{height:26px;color:var(--v2-muted);border:1px solid var(--v2-border);font:inherit;cursor:pointer;background:0 0;border-radius:13px;align-items:center;gap:5px;padding:0 10px;font-size:12px;display:inline-flex}#chat-host .composer-pill:hover{color:var(--v2-fg);background:#1d1d1d}#chat-host .composer-pill svg{display:block}#chat-host .composer-pill .mode-caret{opacity:.7}#chat-send{width:26px;height:26px;color:var(--v2-muted);border:1px solid var(--v2-border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}#chat-send:hover{color:var(--v2-fg);background:#1d1d1d}#chat-send svg{display:block}#chat-pending{flex:none;gap:6px;padding:10px 10px 0;display:flex}#chat-pending img{cursor:pointer;border:1px solid #333;border-radius:6px;height:44px}#chat-host .chat-input .chat-queue{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}#chat-host .chat-input .queue-row{border:1px dashed var(--v2-border);color:var(--v2-muted);background:#000;border-radius:8px;align-items:center;gap:8px;padding:5px 6px 5px 12px;font-size:12px;display:flex}#chat-host .chat-input .queue-snippet{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}#chat-host .chat-input .queue-send-now{border:1px solid var(--v2-border);color:var(--v2-muted);font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:11px}#chat-host .chat-input .queue-send-now:hover{color:var(--v2-fg);background:#1d1d1d}#chat-host .chat-input .queue-remove{width:20px;height:20px;color:var(--v2-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:11px;display:flex}#chat-host .chat-input .queue-remove:hover{color:var(--v2-fg);background:#1d1d1d}#chat-send.stop{color:var(--v2-fg);border-color:var(--v2-fg)}#chat-send.stop:hover{color:#111;background:var(--v2-fg)}#chat-send:disabled{opacity:.45;cursor:default}#chat-send:disabled:hover{color:var(--v2-muted);background:0 0}#chat-host .picker{border:1px dashed var(--v2-border);background:#0d0d0d;border-radius:12px;flex-direction:column;align-self:flex-start;gap:12px;width:100%;max-width:100%;margin:4px 0;padding:12px;display:flex}#chat-host .picker-locked{opacity:.72}#chat-host .picker-q{border:none;min-width:0;margin:0;padding:0}#chat-host .picker-q-label{color:var(--v2-head);margin:0 0 6px;padding:0;font-size:13px;font-weight:600}#chat-host .picker-options{flex-wrap:wrap;gap:6px;display:flex}#chat-host .picker-option{border:1px solid var(--v2-border);color:var(--v2-fg);cursor:pointer;background:#000;border-radius:12px 12px 4px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;line-height:1.3;display:inline-flex}#chat-host .picker:not(.picker-locked) .picker-option:hover{border-color:#885696}#chat-host .picker-option.is-checked{color:#fff;background:#885696;border-color:#885696}#chat-host .picker-option input{accent-color:#885696;cursor:inherit;margin:0}#chat-host .picker-locked .picker-option{cursor:default}#chat-host .picker-actions{justify-content:flex-end;display:flex}#chat-host .picker-submit{font:inherit;color:#fff;cursor:pointer;background:#885696;border:1px solid #885696;border-radius:8px;padding:6px 16px;font-size:13px}#chat-host .picker-submit:hover{background:#976ba3}#chat-host .picker-skeleton{pointer-events:none}#chat-host .picker-skeleton-hint{color:var(--v2-muted);letter-spacing:.01em;font-size:12px}#chat-host .picker-skeleton-line,#chat-host .picker-skeleton-chip{background:linear-gradient(90deg, var(--v2-border) 0%, #333 50%, var(--v2-border) 100%);background-size:200% 100%;border-radius:6px;animation:1.3s ease-in-out infinite picker-shimmer;display:block}#chat-host .picker-skeleton-label{width:60%;height:11px;margin-bottom:8px}#chat-host .picker-skeleton-chip{border-radius:12px 12px 4px;height:26px}@keyframes picker-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){#chat-host .picker-skeleton-line,#chat-host .picker-skeleton-chip{animation:none}}.xterm,.xterm-viewport,.xterm-screen,.xterm-helpers{background-color:#0000!important}.xterm{overscroll-behavior:contain}.xterm-viewport{overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.xterm-viewport::-webkit-scrollbar{width:0;height:0}.xterm .xterm-scrollable-element>.scrollbar,.xterm .xterm-scrollable-element>.scrollbar.visible,.xterm .xterm-scrollable-element>.visible.scrollbar,.xterm .xterm-scrollable-element>.invisible.scrollbar,.xterm .xterm-scrollable-element>.xterm-scrollbar{opacity:0!important;pointer-events:none!important;width:0!important;min-width:0!important;height:0!important;min-height:0!important;display:none!important}.xterm .xterm-scrollable-element>.scrollbar>.slider,.xterm .xterm-scrollable-element>.scrollbar>.scra,.xterm .xterm-scrollable-element>.xterm-scrollbar>.xterm-slider{width:0!important;height:0!important;display:none!important}.xterm .xterm-scrollable-element>.shadow{display:none!important}