@atolis-hq/wake 0.4.44 → 0.4.46

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.
Files changed (29) hide show
  1. package/dist/src/bootstrap/persistence-composition.js +1 -5
  2. package/dist/src/bootstrap/version.js +1 -1
  3. package/dist/src/control-plane/application/activation-scheduler-ports.d.ts +2 -0
  4. package/dist/src/control-plane/application/activation-scheduler.js +59 -34
  5. package/dist/src/control-plane/application/advance-once-dispatch.d.ts +3 -0
  6. package/dist/src/control-plane/application/advance-once-dispatch.js +69 -39
  7. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/README.md +11 -15
  8. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/file-processor-state-store.d.ts +2 -2
  9. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/file-processor-state-store.d.ts.map +1 -1
  10. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/file-processor-state-store.js +15 -58
  11. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/file-projection-store.d.ts +1 -6
  12. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/file-projection-store.d.ts.map +1 -1
  13. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/file-projection-store.js +20 -68
  14. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/index.d.ts +1 -1
  15. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/index.d.ts.map +1 -1
  16. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/processor-state-paths.d.ts +0 -3
  17. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/processor-state-paths.d.ts.map +1 -1
  18. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/processor-state-paths.js +5 -20
  19. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/storage-name.d.ts +1 -1
  20. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/storage-name.d.ts.map +1 -1
  21. package/dist/src/node_modules/@atolis-hq/eventing-filesystem/dist/storage-name.js +5 -7
  22. package/dist/src/surfaces/api/contracts/transport-values.d.ts +2 -7
  23. package/dist/src/surfaces/api/contracts/transport-values.js +9 -2
  24. package/dist/src/surfaces/web-assets/assets/index-D1NjO4qa.css +1 -0
  25. package/dist/src/surfaces/web-assets/assets/index-aTndh5BE.js +1118 -0
  26. package/dist/src/surfaces/web-assets/index.html +2 -2
  27. package/package.json +1 -1
  28. package/dist/src/surfaces/web-assets/assets/index-D9xGa5tD.css +0 -1
  29. package/dist/src/surfaces/web-assets/assets/index-DkmZZW60.js +0 -1179
@@ -1,22 +1,17 @@
1
1
  import { readFile, readdir, rm, stat } from 'node:fs/promises';
2
- import { basename, dirname, join } from 'node:path';
2
+ import { dirname, join } from 'node:path';
3
3
  import { writeFileAtomically } from './atomic-write.js';
4
- import { processorStateDirectoryNames } from './processor-state-paths.js';
5
- import { encodeLegacyStorageName, encodeStorageName } from './storage-name.js';
4
+ import { projectionStorageAddress } from './storage-name.js';
6
5
  export class FileProjectionStore {
7
6
  root;
8
- protectedDirectories;
9
- constructor(root, options = {}) {
7
+ constructor(root) {
10
8
  this.root = root;
11
- this.protectedDirectories = new Set((options.protectedProcessorStateConsumers ?? []).flatMap(processorStateDirectoryNames));
12
9
  }
13
10
  listCache = new Map();
14
11
  async read(namespace, key) {
15
- for (const path of projectionPaths(this.root, namespace, key).candidates) {
16
- const projection = await readProjection(path);
17
- if (matchesProjection(projection, namespace, key))
18
- return projection;
19
- }
12
+ const projection = await readProjection(projectionPaths(this.root, namespace, key).current);
13
+ if (matchesProjection(projection, namespace, key))
14
+ return projection;
20
15
  return null;
21
16
  }
22
17
  // Patches the cached entry in place rather than invalidating the whole
@@ -92,57 +87,21 @@ export class FileProjectionStore {
92
87
  this.listCache.delete(namespace);
93
88
  }
94
89
  async clearProjectionNamespace(namespace) {
95
- const [currentDirectory, ...legacyDirectories] = projectionDirectories(this.root, namespace);
96
- // The versioned directory belongs exclusively to this namespace, unlike a
97
- // legacy directory that can collide with another namespace's spelling.
98
- await rm(currentDirectory, { recursive: true, force: true });
99
- await Promise.all(legacyDirectories.map(async (directory) => {
100
- if (this.protectedDirectories.has(directoryName(directory)))
101
- return;
102
- await clearProjectionDirectory(directory, namespace);
103
- }));
90
+ await rm(projectionDirectories(this.root, namespace)[0], { recursive: true, force: true });
104
91
  }
105
92
  async clearAllProjectionDirectories() {
106
- const root = join(this.root, 'projections');
107
- let namespaces;
108
- try {
109
- namespaces = await readdir(root);
110
- }
111
- catch (error) {
112
- if (error.code === 'ENOENT')
113
- return;
114
- throw error;
115
- }
116
- await Promise.all(namespaces.map(async (namespace) => {
117
- const directory = join(root, namespace);
118
- if (this.protectedDirectories.has(namespace))
119
- return;
120
- await rm(directory, { recursive: true, force: true });
121
- }));
93
+ await rm(join(this.root, 'projections', 'projection'), { recursive: true, force: true });
122
94
  }
123
95
  }
124
96
  function directoryRevision(info) {
125
97
  return `${info.mtimeMs}:${info.ctimeMs}`;
126
98
  }
127
99
  function projectionPaths(root, namespace, key) {
128
- const currentNamespace = encode(namespace);
129
- const currentKey = encode(key);
130
- const legacyNamespace = encodeLegacyStorageName(namespace);
131
- const legacyKey = encodeLegacyStorageName(key);
132
- const current = projectionPath(root, `%projection-${currentNamespace}`, `%projection-${currentKey}`);
133
- const legacy = projectionPath(root, legacyNamespace, legacyKey);
134
- return {
135
- current,
136
- legacy,
137
- candidates: uniquePaths([current, legacy]),
138
- };
100
+ const current = projectionPath(root, join('projection', projectionStorageAddress(namespace)), projectionStorageAddress(key));
101
+ return { current };
139
102
  }
140
103
  function projectionDirectories(root, namespace) {
141
- const currentNamespace = encode(namespace);
142
- return uniquePaths([
143
- join(root, 'projections', `%projection-${currentNamespace}`),
144
- join(root, 'projections', encodeLegacyStorageName(namespace)),
145
- ]);
104
+ return [join(root, 'projections', 'projection', projectionStorageAddress(namespace))];
146
105
  }
147
106
  function projectionPath(root, namespace, key) {
148
107
  return join(root, 'projections', namespace, `${key}.json`);
@@ -197,22 +156,15 @@ function sameDirectoryRevisions(left, right) {
197
156
  left.every((entry, index) => entry.directory === right[index].directory && entry.value === right[index].value));
198
157
  }
199
158
  function compareCachedProjectionFiles(left, right) {
200
- return left.path < right.path ? -1 : left.path > right.path ? 1 : 0;
201
- }
202
- async function clearProjectionDirectory(directory, namespace) {
203
- const entries = await readProjectionDirectory(directory);
204
- await Promise.all(entries
205
- .filter((entry) => matchesProjection(entry.value, namespace))
206
- .map((entry) => rm(entry.path, { force: true })));
207
- }
208
- function uniquePaths(paths) {
209
- return [...new Set(paths)];
210
- }
211
- function directoryName(path) {
212
- return basename(path);
213
- }
214
- export function encode(value) {
215
- return encodeStorageName(value);
159
+ return left.value.key < right.value.key
160
+ ? -1
161
+ : left.value.key > right.value.key
162
+ ? 1
163
+ : left.path < right.path
164
+ ? -1
165
+ : left.path > right.path
166
+ ? 1
167
+ : 0;
216
168
  }
217
169
  export async function atomicJson(path, value) {
218
170
  await writeFileAtomically(path, `${JSON.stringify(value)}\n`);
@@ -3,5 +3,5 @@ export { FileEventJournal, type FileEventJournalOptions, type FileEventJournalWa
3
3
  export { acquireFileLock, withFileLock, type FileLockMetadata, type FileLockOptions, type WithFileLockOptions, } from './file-lock.js';
4
4
  export { createFileProcessorRunSerialiser } from './file-processor-run-serialiser.js';
5
5
  export { FileProcessorStateStore } from './file-processor-state-store.js';
6
- export { FileProjectionStore, type FileProjectionStoreOptions } from './file-projection-store.js';
6
+ export { FileProjectionStore } from './file-projection-store.js';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,GACpC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,GACpC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -2,9 +2,6 @@ export interface ProcessorStatePaths {
2
2
  readonly key: string;
3
3
  readonly namespace: string;
4
4
  readonly current: string;
5
- readonly isolated: string;
6
- readonly legacy: string;
7
5
  }
8
6
  export declare function processorStatePaths(root: string, consumer: string, key: string): ProcessorStatePaths;
9
- export declare function processorStateDirectoryNames(consumer: string): readonly string[];
10
7
  //# sourceMappingURL=processor-state-paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processor-state-paths.d.ts","sourceRoot":"","sources":["../src/processor-state-paths.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,mBAAmB,CAmBrB;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAIhF"}
1
+ {"version":3,"file":"processor-state-paths.d.ts","sourceRoot":"","sources":["../src/processor-state-paths.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,mBAAmB,CAcrB"}
@@ -1,27 +1,12 @@
1
1
  import { join } from 'node:path';
2
- import { assertStorageName, encodeLegacyStorageName, encodeStorageName } from './storage-name.js';
2
+ import { assertStorageName, projectionStorageAddress } from './storage-name.js';
3
3
  const pendingNamespaceSuffix = ':pending';
4
4
  export function processorStatePaths(root, consumer, key) {
5
- const namespace = processorStateNamespace(consumer);
6
- const currentNamespace = encodeStorageName(namespace);
7
- const currentKey = encodeStorageName(key);
5
+ assertStorageName(consumer);
6
+ assertStorageName(key);
8
7
  return {
9
8
  key,
10
- namespace,
11
- current: processorStatePath(root, currentNamespace, currentKey),
12
- isolated: processorStatePath(root, `%processor-state-${currentNamespace}`, `%processor-state-${currentKey}`),
13
- legacy: processorStatePath(root, encodeLegacyStorageName(namespace), encodeLegacyStorageName(key)),
9
+ namespace: `${consumer}${pendingNamespaceSuffix}`,
10
+ current: join(root, 'projections', 'processor-state', projectionStorageAddress(consumer), `${projectionStorageAddress(key)}.json`),
14
11
  };
15
12
  }
16
- export function processorStateDirectoryNames(consumer) {
17
- const namespace = processorStateNamespace(consumer);
18
- const current = encodeStorageName(namespace);
19
- return [...new Set([current, `%processor-state-${current}`, encodeLegacyStorageName(namespace)])];
20
- }
21
- function processorStateNamespace(consumer) {
22
- assertStorageName(consumer);
23
- return `${consumer}${pendingNamespaceSuffix}`;
24
- }
25
- function processorStatePath(root, namespace, key) {
26
- return join(root, 'projections', namespace, `${key}.json`);
27
- }
@@ -1,6 +1,6 @@
1
1
  export declare function assertWellFormedUtf16(value: string, label: string): void;
2
2
  export declare function assertStorageName(value: string): void;
3
- export declare function encodeStorageName(value: string): string;
4
3
  export declare function encodeLegacyStorageName(value: string): string;
5
4
  export declare function encodeCheckpointStorageName(consumer: string): string;
5
+ export declare function projectionStorageAddress(value: string): string;
6
6
  //# sourceMappingURL=storage-name.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-name.d.ts","sourceRoot":"","sources":["../src/storage-name.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAYxE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpE"}
1
+ {"version":3,"file":"storage-name.d.ts","sourceRoot":"","sources":["../src/storage-name.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAYxE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9D"}
@@ -1,3 +1,4 @@
1
+ import { createHash } from 'node:crypto';
1
2
  export function assertWellFormedUtf16(value, label) {
2
3
  for (let index = 0; index < value.length; index += 1) {
3
4
  const codeUnit = value.charCodeAt(index);
@@ -17,13 +18,6 @@ export function assertStorageName(value) {
17
18
  if (value.length === 0 || /[\\/]/.test(value))
18
19
  throw new Error('Storage name must not contain path separators');
19
20
  }
20
- export function encodeStorageName(value) {
21
- assertStorageName(value);
22
- return encodeURIComponent(value)
23
- .replace(/~/g, '%7E')
24
- .replace(/%(?!7E)/g, '~')
25
- .replace(/\./g, '~2E');
26
- }
27
21
  export function encodeLegacyStorageName(value) {
28
22
  assertStorageName(value);
29
23
  return encodeURIComponent(value).replace(/%/g, '~').replace(/\./g, '~2E');
@@ -32,3 +26,7 @@ export function encodeCheckpointStorageName(consumer) {
32
26
  assertStorageName(consumer);
33
27
  return Buffer.from(consumer, 'utf8').toString('base64url');
34
28
  }
29
+ export function projectionStorageAddress(value) {
30
+ assertStorageName(value);
31
+ return createHash('sha256').update(value, 'utf8').digest('base64url');
32
+ }
@@ -1,3 +1,4 @@
1
+ import type { ActivityOutcomeKind } from '../../../activities/index.js';
1
2
  import type { RunStatus } from '../../../execution/index.js';
2
3
  import type { ApiCommandStatus } from './control-plane.js';
3
4
  export declare const AcceptedCommandStatusValue: {
@@ -22,13 +23,7 @@ export declare const BoardActiveRunPhaseValue: {
22
23
  readonly Starting: Extract<RunStatus, keyof typeof boardActiveRunPhaseShape>;
23
24
  readonly Started: Extract<RunStatus, keyof typeof boardActiveRunPhaseShape>;
24
25
  };
25
- export declare const ActivityOutcomeKindValue: {
26
- readonly Waiting: "waiting";
27
- readonly Done: "done";
28
- readonly Rejected: "rejected";
29
- readonly Blocked: "blocked";
30
- readonly Failed: "failed";
31
- };
26
+ export declare const ActivityOutcomeKindValue: typeof ActivityOutcomeKind;
32
27
  export declare const BoardConditionValue: {
33
28
  readonly Ready: string;
34
29
  readonly Active: string;
@@ -1,4 +1,4 @@
1
- import { ActivityOutcomeKind } from '../../../activities/index.js';
1
+ import { defineClosedVocabulary } from '../../../kernel/index.js';
2
2
  const commandStatusShape = { accepted: true, completed: true };
3
3
  const commandStatuses = Object.keys(commandStatusShape);
4
4
  export const AcceptedCommandStatusValue = {
@@ -21,7 +21,14 @@ export const BoardActiveRunPhaseValue = {
21
21
  Starting: boardActiveRunPhases[0],
22
22
  Started: boardActiveRunPhases[1],
23
23
  };
24
- export const ActivityOutcomeKindValue = ActivityOutcomeKind;
24
+ // Keep the browser transport independent of the activity implementation graph.
25
+ export const ActivityOutcomeKindValue = defineClosedVocabulary({
26
+ Waiting: 'waiting',
27
+ Done: 'done',
28
+ Rejected: 'rejected',
29
+ Blocked: 'blocked',
30
+ Failed: 'failed',
31
+ });
25
32
  const boardConditionShape = {
26
33
  ready: true,
27
34
  active: true,
@@ -0,0 +1 @@
1
+ ._shell_17x9p_1{grid-template:var(--header-height) minmax(0, 1fr) / var(--sidebar-width) minmax(0, 1fr);background:var(--surface);height:100dvh;display:grid}._header_17x9p_7{align-items:center;gap:var(--space-3);padding:0 var(--space-4);border-bottom:1px solid var(--border);background:var(--header-background);color:var(--header-ink);z-index:30;grid-column:1/-1;display:flex}._brand_17x9p_18{align-items:center;gap:var(--space-2);color:var(--ink);font-size:var(--text-lg);font-weight:700;display:flex}._brand_17x9p_18:hover{text-decoration:none}._brand_17x9p_18 img{width:1.65rem;height:1.65rem}._version_17x9p_33{color:var(--ink-muted);font-size:var(--text-xs)}._dispatch_17x9p_37{font-size:var(--text-sm);min-width:0;margin-left:auto}._iconButton_17x9p_42{color:var(--ink-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;min-width:2rem;min-height:2rem}._iconButton_17x9p_42:hover{background:var(--surface-inset);color:var(--ink)}._sidebar_17x9p_55{background:var(--surface-panel);border-right:1px solid var(--border);flex-direction:column;grid-area:2/1;min-height:0;display:flex;position:relative}._primary_17x9p_65{gap:var(--space-1);padding:var(--space-3);border-bottom:1px solid var(--border);display:grid}._primary_17x9p_65 a{gap:var(--space-3);padding:var(--space-2) var(--space-3);color:var(--ink-muted);font-size:var(--text-sm);border-radius:var(--radius-sm);align-items:center;display:flex}._primary_17x9p_65 svg{width:1rem}._primary_17x9p_65 a:hover,._workLink_17x9p_84:hover,._footer_17x9p_85 a:hover{background:var(--surface-card);color:var(--ink);text-decoration:none}._primary_17x9p_65 a[aria-current],._workLink_17x9p_84[aria-current]{background:var(--selection-bg);color:var(--accent-light);box-shadow:inset 2px 0 var(--accent)}._listHeading_17x9p_96{align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-3) var(--space-2);display:flex}._listHeading_17x9p_96 h2{font-size:var(--text-sm);margin:0 auto 0 0}._sort_17x9p_106{color:var(--ink-muted);font-size:var(--text-xs);align-items:center;display:flex}._sort_17x9p_106 select{color:var(--ink-muted);background:var(--surface-panel);max-width:4.5rem;padding:var(--space-1);border:0}._filter_17x9p_119{margin:0 var(--space-3) var(--space-2);background:var(--surface);min-width:0;color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2);font-size:var(--text-sm)}._workList_17x9p_129{overscroll-behavior:contain;min-height:0;padding:0 var(--space-2) var(--space-3);scrollbar-width:thin;scrollbar-color:transparent transparent;flex:1;overflow-y:auto}._workList_17x9p_129[data-scrolling=true]{scrollbar-color:var(--border-strong) transparent}._workList_17x9p_129 p{padding:var(--space-2);color:var(--ink-muted);font-size:var(--text-sm)}._group_17x9p_146{margin-bottom:var(--space-2)}._group_17x9p_146 summary{align-items:center;gap:var(--space-2);padding:var(--space-2);color:var(--ink-muted);cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-control);list-style:none;display:flex}._group_17x9p_146 summary::-webkit-details-marker{display:none}._chevron_17x9p_163{flex:none;width:.55rem}._group_17x9p_146[open] ._chevron_17x9p_163{transform:rotate(90deg)}._count_17x9p_170{font-variant-numeric:tabular-nums;margin-left:auto}._workLink_17x9p_84{gap:var(--space-1);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1);background:var(--surface-card);border:1px solid var(--border);border-left:3px solid var(--border-strong);color:var(--ink);font-size:var(--text-sm);border-radius:var(--radius-sm);overflow-wrap:anywhere;line-height:1.4;display:grid}._workLink_17x9p_84>span:last-child{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}._workLink_17x9p_84:hover{border-color:var(--accent);border-left-color:var(--accent)}._ref_17x9p_198{font-size:var(--text-xs);color:var(--ink-muted);font-family:var(--font-mono)}._footer_17x9p_85{border-top:1px solid var(--border);padding:var(--space-3) var(--space-2);gap:var(--space-1);flex-wrap:wrap;display:flex}._footer_17x9p_85 a{color:var(--ink-muted);font-size:var(--text-xs);padding:var(--space-1);border-radius:var(--radius-sm)}._footer_17x9p_85 a[aria-current]{color:var(--accent-light)}._resize_17x9p_219{cursor:col-resize;touch-action:none;z-index:5;width:6px;position:absolute;top:0;bottom:0;right:-3px}._resize_17x9p_219:hover,._resize_17x9p_219:focus-visible{background:var(--accent)}._main_17x9p_233{overflow-wrap:anywhere;--main-padding:var(--space-5);min-width:0;padding:var(--main-padding);scrollbar-width:thin;scrollbar-color:var(--border) transparent;grid-area:2/2;overflow:auto}._shell_17x9p_1[data-collapsed=true]{grid-template-columns:0 minmax(0,1fr)}._shell_17x9p_1[data-collapsed=true] ._sidebar_17x9p_55{display:none}._skip_17x9p_250{top:-5rem;left:var(--space-4);z-index:50;background:var(--surface-card);padding:var(--space-2);position:fixed}._skip_17x9p_250:focus{top:var(--space-2)}._offline_17x9p_261{bottom:var(--space-4);right:var(--space-4);background:var(--surface-card);padding:var(--space-3);z-index:40;position:fixed}._backdrop_17x9p_269{display:none}@media (width<=48rem){._shell_17x9p_1,._shell_17x9p_1[data-collapsed=true]{grid-template-columns:minmax(0,1fr)}._header_17x9p_7{gap:var(--space-2);padding:0 var(--space-2)}._version_17x9p_33{display:none}._brand_17x9p_18{font-size:var(--text-base);gap:var(--space-1)}._brand_17x9p_18 img{width:1.3rem;height:1.3rem}._sidebar_17x9p_55,._shell_17x9p_1[data-collapsed=true] ._sidebar_17x9p_55{display:none}._shell_17x9p_1[data-mobile-open=true] ._sidebar_17x9p_55{top:var(--header-height);z-index:25;width:min(85vw,20rem);box-shadow:var(--shadow);display:flex;position:fixed;bottom:0;left:0}._backdrop_17x9p_269{inset:var(--header-height) 0 0;z-index:20;background:var(--scrim);border:0;display:block;position:fixed}._resize_17x9p_219{display:none}._main_17x9p_233{--main-padding:var(--space-3);padding:var(--main-padding);grid-column:1}}._header_17x9p_7 ._brand_17x9p_18,._header_17x9p_7 ._iconButton_17x9p_42,._header_17x9p_7 ._version_17x9p_33,._dispatch_17x9p_37 summary{color:var(--header-ink)}._main_17x9p_233 :where(section,article,aside,form,fieldset){min-width:0}._main_17x9p_233 :where(input,select,textarea,img,video,pre){max-width:100%}._main_17x9p_233 fieldset{min-inline-size:0}@media (width<=48rem){._main_17x9p_233 :where(pre,code){overflow-wrap:anywhere}._main_17x9p_233 pre{white-space:pre-wrap}}._pageHeader_evm5w_1{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}._pageHeader_evm5w_1 h1{margin:0}._panel_evm5w_11{overflow-wrap:anywhere;background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:var(--space-4);box-shadow:var(--shadow)}._badge_evm5w_20{font-size:.85rem;font-weight:var(--weight-control);background:var(--surface-card);color:var(--ink);border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .55rem;display:inline-flex}._badge_evm5w_20:before{content:"";background:currentColor;border-radius:50%;flex:none;width:.55rem;height:.55rem}._badge_evm5w_20>span{align-items:center;gap:.3rem;display:inline-flex}._good_evm5w_44{color:var(--good)}._warning_evm5w_47{color:var(--warning)}._bad_evm5w_20{color:var(--bad)}._cold_evm5w_53{color:#7dd3fc;background:#0e74902e;box-shadow:inset 0 0 0 1px #7dd3fc59}._info_evm5w_58{color:var(--accent-light)}._button_evm5w_61{appearance:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--ink);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-control);cursor:pointer;padding:.22rem .55rem}._button_evm5w_61:hover:not(:disabled){border-color:var(--accent-light);color:var(--accent-light)}._button_evm5w_61:disabled{opacity:.62;cursor:wait}._secondary_evm5w_81{background:0 0}._tableWrap_evm5w_84{min-width:0;max-width:100%;overflow-x:auto}._table_evm5w_84{border-collapse:collapse;width:100%;font-size:var(--text-sm)}._table_evm5w_84 caption{text-align:left;font-weight:700;font-size:var(--text-sm);padding-bottom:.5rem}._table_evm5w_84 th,._table_evm5w_84 td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.25rem .45rem;line-height:1.3}._table_evm5w_84 th{color:var(--ink-muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em}._state_evm5w_115{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-5);color:var(--ink-muted)}._error_evm5w_121{border-color:var(--bad);color:var(--bad)}._stale_evm5w_125{color:var(--warning);font-size:.85rem}._statusActions_evm5w_129{align-items:center;gap:.6rem;display:flex}._pauseControl_evm5w_134{border:1px solid var(--border);background:var(--surface-inset);color:var(--ink-muted);border-radius:var(--radius-sm);padding:var(--space-2);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:.4rem;display:flex}._pauseControl_evm5w_134 button{appearance:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--ink);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-control);cursor:pointer;padding:.2rem .45rem}._pauseControl_evm5w_134 button:hover:not(:disabled){border-color:var(--ink-muted);background:var(--surface-panel)}._pauseControl_evm5w_134 button:disabled{opacity:.62;cursor:wait}._pagination_evm5w_166{justify-content:flex-end;gap:.6rem;margin-block:1rem;display:flex}._live_evm5w_172{min-height:1.4rem}._header_evm5w_175 ._live_evm5w_172{color:var(--warning)}._json_evm5w_178{background:var(--surface-inset);color:var(--ink);padding:var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.75rem;overflow:auto}._chip_evm5w_187{font-weight:var(--weight-control);background:var(--border);color:var(--ink);border-radius:var(--radius-sm);font-size:var(--text-xs);align-items:center;gap:.25rem;margin-right:.2rem;padding:.05rem .35rem;display:inline-flex}._chipOutline_evm5w_199{border:1px solid var(--border-strong);color:var(--ink-muted);background:0 0}._chipOutline_evm5w_199._good_evm5w_44{color:var(--good)}._chipOutline_evm5w_199._warning_evm5w_47{color:var(--warning)}._chipOutline_evm5w_199._bad_evm5w_20{color:var(--bad)}._chipOutline_evm5w_199._cold_evm5w_53{color:#7dd3fc}._chipOutline_evm5w_199._info_evm5w_58{color:var(--accent-light)}._tile_evm5w_219{background:var(--surface-panel);border-radius:var(--radius);min-width:120px;padding:.6rem .9rem}._tileValue_evm5w_225{font-size:1.3rem;font-weight:700}._tileLabel_evm5w_229{color:var(--ink-muted);font-size:var(--text-xs);text-transform:uppercase}@media (width<=42rem){._header_evm5w_175{padding-inline:var(--space-3)}._nav_evm5w_238{padding-inline:var(--space-2)}._main_evm5w_241{width:100%;padding:var(--space-4) var(--space-2) 0}._pageHeader_evm5w_1{flex-direction:column;align-items:start}}._dispatchMenu_evm5w_251{font-size:var(--text-xs);position:relative}._dispatchMenu_evm5w_251 summary{align-items:center;gap:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);cursor:pointer;min-height:2rem;color:var(--ink);font-weight:var(--weight-control);white-space:nowrap;padding:.22rem .55rem;list-style:none;display:inline-flex}._dispatchMenu_evm5w_251 summary::-webkit-details-marker{display:none}._dispatchMenu_evm5w_251 summary svg{width:.65rem;transition:transform var(--motion-fast) ease}._dispatchMenu_evm5w_251[open] summary svg{transform:rotate(180deg)}._dispatchMenu_evm5w_251 summary:hover{border-color:var(--accent-light);color:var(--accent-light)}._dispatchPopover_evm5w_284{right:0;top:calc(100% + var(--space-3));z-index:40;gap:var(--space-2);width:min(20rem,90vw);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-panel);box-shadow:var(--shadow);display:grid;position:absolute}._statusActions_evm5w_129{gap:var(--space-2);flex-wrap:wrap}@media (width<=48rem){._statusActions_evm5w_129{gap:var(--space-1)}._statusActions_evm5w_129 ._badge_evm5w_20,._statusActions_evm5w_129 ._button_evm5w_61{font-size:var(--text-xs);padding:var(--space-1)}._statusActions_evm5w_129 ._badge_evm5w_20:before{width:.35rem;height:.35rem}._dispatchMenu_evm5w_251 summary{font-size:var(--text-xs)}._desktopLabel_evm5w_324{display:none}._table_evm5w_84,._table_evm5w_84 caption,._table_evm5w_84 tbody{width:100%;display:block}._table_evm5w_84 thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}._table_evm5w_84 tbody{gap:var(--space-3);display:grid}._table_evm5w_84 tr{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2);display:block}._table_evm5w_84 td{gap:var(--space-2);padding:var(--space-2);overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr) minmax(0,2fr);display:grid}._table_evm5w_84 td:before{content:attr(data-label);color:var(--ink-muted);font-size:var(--text-xs)}._table_evm5w_84 td>div{min-width:0}._table_evm5w_84 td:last-child{border-bottom:0}._json_evm5w_178{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}._tile_evm5w_219{overflow-wrap:anywhere;min-width:0;max-width:100%}}._boardControls_3ctda_1{justify-content:flex-end;margin-bottom:.75rem;display:flex}._boardControls_3ctda_1 label{color:var(--ink-muted);font-size:var(--text-sm);font-weight:var(--weight-control);align-items:center;gap:.4rem;display:flex}._boardControls_3ctda_1 select{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:2.1rem;color:var(--ink);font:inherit;padding-inline:.5rem}._boardControls_3ctda_1 select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2dd4bf26}._swimlanes_3ctda_28{gap:1rem;display:grid}._swimlaneHeader_3ctda_32{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin:0 0 .4rem;font-weight:700}._swimlaneToggle_3ctda_40{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0;display:flex}._swimlaneToggle_3ctda_40:hover,._swimlaneToggle_3ctda_40:focus-visible{color:var(--accent-light)}._swimlaneToggle_3ctda_40:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}._board_3ctda_1{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:.6rem;display:grid;overflow-x:auto}@media (width>=42.0625rem){._boardWithCollapsedColumn_3ctda_70{grid-template-columns:repeat(4,minmax(0,1fr)) 2.65rem}._columnCollapsed_3ctda_73{align-items:center;min-height:0;padding:.5rem 0}._columnCollapsed_3ctda_73 ._columnHeader_3ctda_78{margin:0}._columnCollapsed_3ctda_73 h2{display:none}._columnCollapsed_3ctda_73 ._columnToggle_3ctda_84{display:inline-flex}}._column_3ctda_73{background:var(--surface-panel);border-radius:var(--radius);flex-direction:column;min-height:200px;padding:.5rem;display:flex}._columnHeader_3ctda_78{justify-content:space-between;align-items:center;gap:var(--space-2);margin:.2rem .4rem .5rem;display:flex}._column_3ctda_73 h2{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin:0}._cards_3ctda_110{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}._card_3ctda_110{background:var(--surface-card);border:1px solid var(--border);border-left:3px solid var(--border-strong);font-size:var(--text-sm);border-radius:.5rem;overflow:hidden}._card_3ctda_110:hover,._card_3ctda_110:focus-within{border-color:var(--accent)}._cardLink_3ctda_129{min-height:100%;color:var(--ink);transition:background var(--motion-fast) ease;padding:.5rem;text-decoration:none;display:block}._cardLink_3ctda_129:hover{background:var(--surface-inset);text-decoration:none}._cardLink_3ctda_129:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}._cardRef_3ctda_145{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);margin-bottom:.15rem;display:block}._cardTitle_3ctda_152{color:var(--ink);margin-bottom:.25rem;font-weight:600;display:block}._cardMeta_3ctda_158{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.2rem;display:flex}._metaIcon_3ctda_165{flex:none;width:.75rem;height:.75rem}._cardStats_3ctda_170{color:var(--ink-muted);margin-top:.3rem;font-size:.7rem}._childRun_3ctda_175{border-radius:var(--radius-sm);background:var(--surface-inset);border:1px solid var(--border);color:var(--ink-muted);font-size:var(--text-xs);grid-template-columns:auto 1fr;align-items:center;gap:.25rem .45rem;margin-top:.45rem;padding:.4rem;display:grid}._childRunDot_3ctda_188{background:var(--accent);border-radius:50%;width:.48rem;height:.48rem;box-shadow:0 0 0 3px #2dd4bf24}._childRunDot_3ctda_188[data-active-run=true]{animation:1.5s ease-out infinite _active-run-pulse_3ctda_1;box-shadow:0 0 #86efac99}@keyframes _active-run-pulse_3ctda_1{70%{box-shadow:0 0 0 .38rem #86efac00}to{box-shadow:0 0 #86efac00}}._childRunTitle_3ctda_207{color:var(--ink);font-weight:650}._childRunMeta_3ctda_211{color:var(--ink-muted)}._columnToggle_3ctda_84{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:1.4rem;height:1.4rem;color:var(--ink-muted);cursor:pointer;font-size:var(--text-sm);background:0 0;flex:none;justify-content:center;align-items:center;line-height:1;display:none}._finishedColumnToggle_3ctda_229{display:inline-flex}._columnToggle_3ctda_84:hover{border-color:var(--accent);color:var(--accent-light)}._filters_3ctda_236{flex-wrap:wrap;align-items:end;gap:.6rem;margin-bottom:1rem;display:flex}._filters_3ctda_236 label{color:var(--ink-muted);font-weight:600;font-size:var(--text-sm);gap:.25rem;display:grid}._filters_3ctda_236 input,._filters_3ctda_236 select{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:2.35rem;color:var(--ink);font:inherit;padding-inline:.55rem}._filters_3ctda_236 input:focus,._filters_3ctda_236 select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2dd4bf26}._detail_3ctda_266{gap:var(--space-3);display:grid}._detail_3ctda_266>h2{margin:0}._summary_3ctda_273{font-size:var(--text-sm);grid-template-columns:max-content 1fr;align-items:baseline;gap:.35rem .7rem;margin:0;display:grid}._summary_3ctda_273 dt{color:var(--ink-muted);margin:0}._summary_3ctda_273 dd{overflow-wrap:anywhere;min-width:0;margin:0}._overviewLayout_3ctda_290{gap:var(--space-5);grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;display:grid}._overviewSidebar_3ctda_296{gap:var(--space-3);grid-column:2;min-width:0;display:grid}._overviewMain_3ctda_302{grid-area:1/1;min-width:0}._detailChat_3ctda_307{grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0}._conversationPanel_3ctda_312{gap:var(--space-3);min-width:0;min-height:0;margin-inline:calc(-1 * var(--main-padding,var(--space-5)));grid-template-rows:minmax(0,1fr) auto;display:grid}._conversationViewport_3ctda_320{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;min-height:0;padding:var(--space-3) var(--main-padding,var(--space-5));overflow-y:auto}._conversationTimeline_3ctda_328{justify-content:flex-end;gap:var(--space-5);margin-inline:auto;flex-direction:column;max-width:56rem;min-height:100%;margin:0 auto;padding:0;list-style:none;display:flex}._conversationTimeline_3ctda_328>li{min-width:0}._conversationEntry_3ctda_343{column-gap:var(--space-3);padding-block:var(--space-2);overflow-wrap:anywhere;grid-template-columns:2.25rem minmax(0,1fr);display:grid}._conversationAvatar_3ctda_350{border-radius:var(--radius-sm);width:2.25rem;height:2.25rem;color:var(--accent-light);background:var(--surface-card);font-size:var(--text-xs);grid-area:1/1/span 3;place-items:center;font-weight:500;display:grid;overflow:hidden}._conversationAvatar_3ctda_350 img{object-fit:cover;width:100%;height:100%}._conversationEntry_3ctda_343>:not(._conversationAvatar_3ctda_350){grid-column:2;min-width:0}._conversationSource_3ctda_373{border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-1);color:var(--ink);background:var(--surface-panel)}._conversationFooter_3ctda_380{padding-inline:var(--main-padding,var(--space-5))}._conversationFooter_3ctda_380>form{max-width:56rem;margin-inline:auto}._conversationProgress_3ctda_387{justify-content:center;align-items:center;gap:var(--space-2);width:fit-content;max-width:calc(100% - var(--space-4));padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-inset);margin:0 auto var(--space-2);color:var(--ink-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}._conversationProgressTitle_3ctda_403{color:var(--ink);font-weight:var(--weight-control)}._conversationProgressMeta_3ctda_407{color:var(--ink-muted)}._conversationProgressDot_3ctda_410{background:var(--accent);border-radius:50%;flex:none;width:.48rem;height:.48rem;box-shadow:0 0 0 3px #2dd4bf24}._conversationProgressDot_3ctda_410[data-active-run=true]{animation:1.5s ease-out infinite _active-run-pulse_3ctda_1;box-shadow:0 0 #86efac99}._conversationWaitingIcon_3ctda_422{color:var(--warning)}._conversationEntryHead_3ctda_425{align-items:baseline;gap:var(--space-2);color:var(--ink-muted);font-size:var(--text-xs);margin-bottom:var(--space-1);flex-wrap:wrap;display:flex}._conversationEntryHead_3ctda_425 strong{color:var(--ink);font-size:var(--text-sm);font-weight:500}._conversationBody_3ctda_439{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-sans);font-size:var(--text-sm);margin:0;line-height:1.75}._conversationRepresentations_3ctda_447{gap:var(--space-2);margin-top:var(--space-3);color:var(--ink-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}._conversationComposer_3ctda_455{align-items:start;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-panel);grid-template-columns:minmax(0,1fr) auto;display:grid}._conversationComposer_3ctda_455 textarea{width:100%;min-height:2.25rem;max-height:12rem;color:var(--ink);border-radius:var(--radius-sm);padding:.4rem var(--space-2);font:inherit;font-size:var(--text-sm);resize:none;background:0 0;border:0;line-height:1.45;overflow-y:auto}._conversationComposer_3ctda_455 textarea:focus,._conversationComposer_3ctda_455 textarea:focus-visible{box-shadow:none;outline:none}._conversationComposerActions_3ctda_485{justify-content:flex-end;align-items:flex-start;gap:var(--space-3);grid-area:1/2;display:flex}._conversationSend_3ctda_493{place-items:center;width:2.25rem;min-width:2.25rem;min-height:2.25rem;padding:0;display:inline-grid}._conversationLatest_3ctda_501{margin:0 auto var(--space-2);display:block}@media (width<=48rem){._conversationViewport_3ctda_320{padding-block:var(--space-1)}._conversationEntry_3ctda_343{column-gap:var(--space-2)}}._sidebarSectionTitle_3ctda_513{font-size:var(--text-sm)}._resourceList_3ctda_516{margin:0 0 var(--space-4);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}._resourceCard_3ctda_524{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:inherit;flex-direction:column;gap:.35rem;text-decoration:none;display:flex}a._resourceCard_3ctda_524:hover{border-color:var(--accent);text-decoration:none}._resourceCardTop_3ctda_539{align-items:center;gap:var(--space-2);display:flex}._resourceCardIcon_3ctda_544{color:var(--ink-muted);flex:none}._resourceCardTitle_3ctda_548{min-width:0;font-weight:600;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}._resourceCardExt_3ctda_557{color:var(--ink-muted);opacity:0;flex:none}._resourceCard_3ctda_524:hover ._resourceCardExt_3ctda_557{opacity:1}._resourceCardMeta_3ctda_565{font-size:var(--text-sm);padding-left:calc(18px + var(--space-2));flex-wrap:wrap;align-items:baseline;gap:.4rem;display:flex}._resourceId_3ctda_573{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere}._eventList_3ctda_579{flex-direction:column;gap:.45rem;margin:1rem 0;padding:0;list-style:none;display:flex}._event_3ctda_579{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:2.25rem;overflow:hidden}._event_3ctda_579:hover{border-color:var(--border-strong)}._event_3ctda_579 time{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs)}._eventType_3ctda_602{font-weight:650;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._eventId_3ctda_610{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._toolbar_3ctda_619{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}._tiles_3ctda_626{margin-bottom:var(--space-4);flex-wrap:wrap;gap:.6rem;display:flex}@media (width<=42rem){._overviewLayout_3ctda_290{grid-template-columns:minmax(0,1fr)}._overviewSidebar_3ctda_296,._overviewMain_3ctda_302{grid-area:auto/1}._resourceList_3ctda_516>li,._resourceCard_3ctda_524,._resourceCardTop_3ctda_539{min-width:0}._resourceCardTitle_3ctda_548{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;overflow:visible}._resourceCardExt_3ctda_557{opacity:1}._board_3ctda_1{display:block;overflow:visible}._column_3ctda_73{min-height:unset;margin-bottom:.75rem}._columnToggle_3ctda_84{display:inline-flex}._eventId_3ctda_610{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}._transcript_3ctda_677{margin:var(--space-3) 0 0;padding:0;list-style:none}._transcriptEntry_3ctda_682{background:var(--surface-inset);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.75rem;overflow:hidden}._transcriptHead_3ctda_689{gap:var(--space-3);color:var(--ink-muted);background:var(--surface-panel);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--text-xs);padding:.45rem .6rem;display:flex}._transcriptText_3ctda_699{white-space:pre-wrap;font-family:var(--font-mono);background:0 0;margin:0;padding:.6rem;font-size:.76rem;overflow-x:auto}._transcriptLayout_3ctda_708{gap:var(--space-4);margin-top:var(--space-3);grid-template-columns:minmax(15rem,22rem) minmax(0,1fr);display:grid}._transcriptGroups_3ctda_714{align-content:start;align-self:start;gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}._transcriptGroup_3ctda_714{width:100%;padding:var(--space-2);color:var(--ink);text-align:left;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:var(--text-xs);overflow-wrap:anywhere;gap:.2rem;display:grid}._transcriptGroup_3ctda_714:hover,._transcriptGroup_3ctda_714[aria-pressed=true]{border-color:var(--accent);background:var(--surface-inset)}._transcriptConversation_3ctda_743{min-width:0}._transcriptFilters_3ctda_746{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}._transcriptFilters_3ctda_746 label{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:var(--text-sm);display:flex}._transcriptFilters_3ctda_746 select{color:var(--ink);background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit}._transcriptInput_3ctda_766,._transcriptAgent_3ctda_767{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}._transcriptInput_3ctda_766{background:var(--surface-inset);border-left:3px solid var(--accent);margin-left:12%}._transcriptAgent_3ctda_767{background:var(--surface-card);border-left:3px solid var(--border-strong);margin-right:12%}._transcriptRunSeparator_3ctda_782{align-items:center;gap:var(--space-2);margin:var(--space-3) 0;color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);display:flex}._transcriptRunSeparator_3ctda_782:before,._transcriptRunSeparator_3ctda_782:after{content:"";background:var(--border);flex:1;height:1px}._eventButton_3ctda_799{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(11rem,14rem) minmax(0,1fr) minmax(8rem,18rem) 2.4rem;align-items:center;gap:.65rem;padding:.45rem .65rem;display:grid}._eventType_3ctda_602{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;overflow:visible}@media (width<=42rem){._transcriptLayout_3ctda_708{grid-template-columns:minmax(0,1fr)}._transcriptInput_3ctda_766,._transcriptAgent_3ctda_767{margin-inline:0}._eventButton_3ctda_799{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 2.2rem}._eventType_3ctda_602{text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;grid-area:2/1/auto/-1;overflow:hidden}}._eventChevron_3ctda_839{color:var(--ink-muted);justify-self:end}._eventPayload_3ctda_843{border-top:1px solid var(--border);overflow-x:auto}._eventPayload_3ctda_843 pre{padding:var(--space-3);white-space:pre;margin:0}._tabs_3ctda_852{margin:calc(-1 * var(--main-padding,var(--space-5))) calc(-1 * var(--main-padding,var(--space-5))) 0;background:var(--surface-panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:stretch;padding:0;display:flex}._tabs_3ctda_852 button{padding:var(--space-3) var(--space-4);color:var(--ink-muted);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-control);cursor:pointer;border:0;border-right:1px solid var(--border);background:0 0;box-shadow:inset 0 -2px #0000}._tabs_3ctda_852 button:hover{color:var(--ink);background:var(--surface-card)}._tabs_3ctda_852 button[aria-selected=true]{color:var(--accent-light);background:var(--surface);box-shadow:inset 0 -2px var(--accent)}@media (width<=48rem){._tabs_3ctda_852 button{padding:var(--space-3) var(--space-2);font-size:var(--text-xs);flex:auto}}._actionBar_3ctda_891{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}._dangerButton_3ctda_897{border-color:var(--bad);color:var(--bad)}._workTitle_3ctda_902{gap:var(--space-1);font-size:var(--text-lg);overflow-wrap:anywhere;margin:0;line-height:1.45;display:grid}._workTitle_3ctda_902>span{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--ink-muted);font-weight:400}._workSummary_3ctda_916{margin-bottom:var(--space-4);align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius);display:flex}._workSummary_3ctda_916>section{min-width:0;box-shadow:none;border:0;flex:1;padding:0}._workSummary_3ctda_916 dl{gap:var(--space-2);flex-wrap:wrap;display:flex}._workSummary_3ctda_916 dl>div{gap:var(--space-1);min-width:0;margin-right:var(--space-4);display:grid}._workSummary_3ctda_916 dt{font-size:var(--text-xs)}._workSummary_3ctda_916 ._actionBar_3ctda_891{flex-shrink:0;margin-left:auto}._overviewWorkflow_3ctda_951{grid-column:1/-1;min-width:0}._overviewMain_3ctda_302{grid-row:2}._activityTimeline_3ctda_958{gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}._activityTimelineItem_3ctda_965{align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2) 0;border-bottom:1px solid var(--border);color:var(--ink-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}._activityTimelineMarker_3ctda_976{background:var(--accent);border-radius:50%;width:.45rem;height:.45rem}._activityTimelineMarker_3ctda_976[data-kind=run]{background:var(--good)}._activityTimelineKind_3ctda_985,._activityTimelineOutcome_3ctda_986{border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-1);color:var(--ink);background:var(--surface-card);white-space:nowrap}._activityTimelineKind_3ctda_985[data-kind=run]{border-color:var(--good);color:var(--good)}._activityTimelineKind_3ctda_985[data-kind=event]{border-color:var(--accent);color:var(--accent-light)}._activityTimelineDetail_3ctda_1002{white-space:nowrap;color:var(--ink-muted)}._activityTimelineOutcome_3ctda_986{color:var(--ink-muted);border-color:var(--border-strong);background:0 0}@media (width<=48rem){._activityTimelineDetail_3ctda_1002{white-space:normal}}._overviewSidebar_3ctda_296{grid-row:2}@media (width<=60rem){._workSummary_3ctda_916{flex-direction:column;align-items:start}._workSummary_3ctda_916 ._actionBar_3ctda_891{margin-left:0}}@media (width<=48rem){._overviewLayout_3ctda_290{grid-template-columns:minmax(0,1fr)}._overviewSidebar_3ctda_296{grid-area:1/1}._overviewWorkflow_3ctda_951{grid-row:2}._overviewMain_3ctda_302{grid-area:3/1}}._tabPanel_3ctda_1045{min-width:0;padding-top:var(--space-5)}._healthOverview_3ctda_1049{gap:var(--space-4);display:grid}._healthSummary_3ctda_1053,._healthChecksHeader_3ctda_1054{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}._healthEyebrow_3ctda_1060{margin:0 0 var(--space-2);color:var(--ink-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}._healthMeta_3ctda_1067{gap:var(--space-4);flex-wrap:wrap;margin:0;display:flex}._healthMeta_3ctda_1067>div{gap:var(--space-1);display:grid}._healthMeta_3ctda_1067 dt{color:var(--ink-muted);font-size:var(--text-xs)}._healthMeta_3ctda_1067 dd{font-family:var(--font-mono);font-size:var(--text-sm);margin:0}._healthChecksHeader_3ctda_1054 h2{font-size:var(--text-base);margin:0}._healthCounts_3ctda_1090{gap:var(--space-2);color:var(--ink-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}._healthCounts_3ctda_1090 span{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);background:var(--surface-inset)}._healthCheckList_3ctda_1103{gap:var(--space-1);margin:var(--space-4) 0 0;padding:0;list-style:none;display:grid}._healthCheckList_3ctda_1103 li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-inset);display:flex}._healthCheckList_3ctda_1103 li>div{gap:var(--space-1);min-width:0;display:grid}._healthCheckList_3ctda_1103 strong{font-size:var(--text-sm);font-weight:var(--weight-control)}._healthCheckList_3ctda_1103 li>div>span{color:var(--ink-muted);font-size:var(--text-sm);overflow-wrap:anywhere}._adapterHealthTable_3ctda_1134{table-layout:fixed;min-width:58rem}._adapterHealthTable_3ctda_1134 th:first-child,._adapterHealthTable_3ctda_1134 td:first-child{width:14%}._adapterHealthTable_3ctda_1134 th:nth-child(2),._adapterHealthTable_3ctda_1134 td:nth-child(2){width:18%}._adapterHealthTable_3ctda_1134 th:nth-child(3),._adapterHealthTable_3ctda_1134 td:nth-child(3){width:9%}._adapterHealthTable_3ctda_1134 th:nth-child(4),._adapterHealthTable_3ctda_1134 td:nth-child(4){width:11%}._adapterHealthTable_3ctda_1134 th:nth-child(5),._adapterHealthTable_3ctda_1134 td:nth-child(5),._adapterHealthTable_3ctda_1134 th:nth-child(6),._adapterHealthTable_3ctda_1134 td:nth-child(6){width:8%}._adapterHealthTable_3ctda_1134 th:nth-child(7),._adapterHealthTable_3ctda_1134 td:nth-child(7){overflow-wrap:anywhere;width:32%}._detail_3ctda_266,._overviewLayout_3ctda_290,._transcriptLayout_3ctda_708,._transcriptGroups_3ctda_714{min-width:0}._transcriptHead_3ctda_689{overflow-wrap:anywhere;flex-wrap:wrap}._transcriptFilters_3ctda_746 label,._filters_3ctda_236 label{flex-wrap:wrap;min-width:0;max-width:100%}._transcriptFilters_3ctda_746 select{min-width:0;max-width:100%}@media (width<=48rem){._adapterHealthTable_3ctda_1134{table-layout:auto;min-width:0}._healthSummary_3ctda_1053,._healthChecksHeader_3ctda_1054,._healthCheckList_3ctda_1103 li{flex-direction:column;align-items:flex-start}._summary_3ctda_273{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}._transcriptLayout_3ctda_708{grid-template-columns:minmax(0,1fr)}._eventButton_3ctda_799{grid-template-columns:minmax(0,1fr) 2.2rem}._eventType_3ctda_602{white-space:normal;grid-column:1/-1}._eventPayload_3ctda_843 pre{white-space:pre-wrap;overflow-wrap:anywhere}._transcriptInput_3ctda_766,._transcriptAgent_3ctda_767{margin-inline:0}}._diagram_1akxc_1{box-sizing:border-box;scrollbar-color:transparent transparent;scrollbar-width:thin;inline-size:100%;min-inline-size:0;max-inline-size:100%;overflow:auto visible}._diagram_1akxc_1::-webkit-scrollbar{height:.35rem}._diagram_1akxc_1::-webkit-scrollbar-button{width:0;height:0;display:none}._diagram_1akxc_1::-webkit-scrollbar-thumb{background:padding-box padding-box;border:2px solid #0000;border-radius:999px}._diagram_1akxc_1:hover,._diagram_1akxc_1:focus-within{scrollbar-color:var(--border-strong) transparent}._diagram_1akxc_1:hover::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box}._diagram_1akxc_1:focus-within::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box}._diagram_1akxc_1[data-direction=RIGHT]{cursor:grab;touch-action:pan-y}._dragging_1akxc_45{-webkit-user-select:none;user-select:none;cursor:grabbing!important}._canvas_1akxc_50{min-width:var(--graph-width);min-height:var(--graph-height);position:relative}._canvasLoading_1akxc_56{visibility:hidden}._edges_1akxc_60{width:var(--graph-width);height:var(--graph-height);pointer-events:none;z-index:0;position:absolute;inset:0;overflow:visible}._edges_1akxc_60 path{fill:none;stroke:var(--border-strong,#64748b);stroke-width:1.5px}._edges_1akxc_60 marker path{fill:context-stroke}._edgeActive_1akxc_80 path{stroke:var(--accent);stroke-width:2px}._edgeLabel_1akxc_85{z-index:2;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--ink-muted);font-size:var(--text-xs);pointer-events:none;opacity:0;transition:opacity var(--motion-fast) ease;padding:.1rem .35rem;line-height:1.2;position:absolute;transform:translate(-50%,-50%)}._edgeLabelActive_1akxc_101{opacity:1}._stage_1akxc_105{z-index:1;position:absolute}._stage_1akxc_105:hover,._stage_1akxc_105:focus-within{border-color:var(--border);border-left-color:var(--border-strong)}._stageCard_1akxc_116{grid-template-columns:1fr auto;gap:.2rem;padding:.5rem;display:grid}._stageCard_1akxc_116:hover{background:var(--surface-card)}._stageTitleRow_1akxc_127{align-items:center;gap:.4rem;display:flex}._stageCard_1akxc_116 button{align-self:start}._chips_1akxc_137,._metrics_1akxc_138,._stageTotals_1akxc_139{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}._stageTotals_1akxc_139{color:var(--ink-muted);grid-column:1/-1;font-size:.7rem}._children_1akxc_152{gap:.3rem;padding:.4rem;display:grid}._childCard_1akxc_158{align-items:start;gap:.2rem .35rem;margin-top:0;padding:.35rem}._childCardWithoutStatus_1akxc_165{grid-template-columns:1fr}._childCard_1akxc_158:hover,._childCard_1akxc_158:focus-within{border-color:var(--accent)}._childStatusDot_1akxc_174{align-self:start;margin-top:.22rem}._collapsedStatusDot_1akxc_179{justify-self:end}._collapsedStatusDots_1akxc_183{justify-self:end;gap:.35rem;display:flex}._childTitle_1akxc_189{align-items:center;gap:.35rem;display:flex}._childKindIcon_1akxc_195{width:.72rem;color:var(--ink-muted)}._metrics_1akxc_138,._childCard_1akxc_158 ._metrics_1akxc_138{color:var(--ink-muted);font-size:var(--text-xs);margin-top:.2rem}._childStatusDot_1akxc_174[data-status=pending]{background:var(--border-strong);box-shadow:none}._childStatusDot_1akxc_174[data-status=active]{background:var(--good)}._childStatusDot_1akxc_174[data-status=completed],._childStatusDot_1akxc_174[data-status=waiting],._childStatusDot_1akxc_174[data-status=blocked],._childStatusDot_1akxc_174[data-status=failed],._childStatusDot_1akxc_174[data-status=needs-clarification]{box-sizing:border-box;box-shadow:none;background:0 0}._childStatusDot_1akxc_174[data-status=completed]{border:2px solid var(--good)}._childStatusDot_1akxc_174[data-status=waiting],._childStatusDot_1akxc_174[data-status=blocked]{border:2px solid var(--warning)}._childStatusDot_1akxc_174[data-status=failed]{border:2px solid var(--bad)}._childStatusDot_1akxc_174[data-status=needs-clarification]{border:2px solid var(--accent-light)}._childStatusDot_1akxc_174[data-active-run=true]{animation:1.5s ease-out infinite _active-run-pulse_1akxc_1;box-shadow:0 0 #86efac99}@keyframes _active-run-pulse_1akxc_1{70%{box-shadow:0 0 0 .38rem #86efac00}to{box-shadow:0 0 #86efac00}}._srOnly_1akxc_258{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}._canvas_1akxc_50[data-direction=DOWN]{grid-template-columns:minmax(0,1fr);align-items:start;gap:.5rem;width:100%;min-width:0;min-height:0;display:grid}._canvas_1akxc_50[data-direction=DOWN] ._edges_1akxc_60,._canvas_1akxc_50[data-direction=DOWN] ._edgeLabel_1akxc_85{display:none}._canvas_1akxc_50[data-direction=DOWN] ._stage_1akxc_105{width:100%;position:static}._canvas_1akxc_50[data-direction=DOWN] ._stageCard_1akxc_116{cursor:pointer;min-height:0}._canvas_1akxc_50[data-direction=DOWN] ._stageCard_1akxc_116 button{display:none}._canvas_1akxc_50[data-direction=DOWN] ._childCard_1akxc_158:hover,._canvas_1akxc_50[data-direction=DOWN] ._childCard_1akxc_158:focus-within{border-color:var(--border)}:root{--wake-ink-950:#14161a;--wake-ink-900:#1a1d23;--wake-ink-850:#22262e;--wake-ink-800:#101216;--wake-ink-700:#2c313a;--wake-ink-600:#3a4150;--wake-grey-300:#cbd5e1;--wake-grey-400:#9aa2ad;--wake-grey-100:#e8e8e8;--wake-white:#fff;--wake-teal-700:#103a37;--wake-teal-650:#134e4a;--wake-teal-600:#0f766e;--wake-mint-400:#2dd4bf;--wake-mint-300:#5eead4;--wake-green-300:#7fe3a3;--wake-green-900:#1f3d2c;--wake-blue-300:#7fb3ff;--wake-blue-900:#1f3350;--wake-purple-300:#c79bff;--wake-purple-900:#2d1f50;--wake-amber-300:#ffcf7f;--wake-amber-900:#4a3510;--wake-red-300:#ff8f7f;--wake-red-900:#3d1f1f;--wake-slate-400:#9aa2ad;--wake-slate-900:#252830;--surface:var(--wake-ink-950);--surface-panel:var(--wake-ink-900);--surface-card:var(--wake-ink-850);--surface-inset:var(--wake-ink-800);--border:var(--wake-ink-700);--border-strong:var(--wake-ink-600);--ink:var(--wake-grey-100);--ink-muted:var(--wake-grey-400);--ink-inverse:var(--wake-white);--brand:var(--wake-teal-600);--brand-dark:var(--wake-teal-650);--brand-darker:var(--wake-teal-700);--nav-ink-idle:var(--wake-grey-300);--accent:var(--wake-mint-400);--accent-light:var(--wake-mint-300);--good:var(--wake-green-300);--warning:var(--wake-amber-300);--bad:var(--wake-red-300);--cond-ready-fg:var(--wake-green-300);--cond-ready-bg:var(--wake-green-900);--cond-scheduled-fg:var(--wake-blue-300);--cond-scheduled-bg:var(--wake-blue-900);--cond-active-fg:var(--wake-purple-300);--cond-active-bg:var(--wake-purple-900);--cond-needs-input-fg:var(--wake-amber-300);--cond-needs-input-bg:var(--wake-amber-900);--cond-error-fg:var(--wake-red-300);--cond-error-bg:var(--wake-red-900);--cond-finished-fg:var(--wake-slate-400);--cond-finished-bg:var(--wake-slate-900);--header-background:var(--brand);--header-ink:var(--ink-inverse);--chat-message-background:var(--surface-panel);--chat-operator-background:var(--selection-bg);--header-height:3.5rem;--selection-bg:color-mix(in srgb, var(--accent) 10%, var(--surface-panel));--scrim:#0009;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius:.65rem;--radius-sm:.4rem;--shadow:0 1px 3px #00000059;--focus-ring:var(--wake-mint-300);--weight-control:400;--font-sans:Inter, ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Consolas, monospace;--text-xs:.72rem;--text-sm:.8rem;--text-base:1rem;--text-lg:1.15rem;--content-width:76rem;--motion-fast:.12s}*{box-sizing:border-box}html{color:var(--ink);background:var(--surface);font-family:var(--font-sans);line-height:1.5}body{margin:0}a{color:var(--accent-light);text-underline-offset:.18em;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.wake-login{min-height:100vh;padding:var(--space-5);background:var(--surface);place-items:center;display:grid}.wake-login-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card);width:min(100%,54rem);box-shadow:var(--shadow);grid-template-columns:minmax(12rem,14rem) minmax(22rem,1fr);display:grid;overflow:hidden}.wake-login-brand{background:var(--brand);color:var(--ink-inverse);padding:clamp(var(--space-6), 6vw, 5rem);border-right:1px solid #0000002e;justify-content:center;align-items:center;display:flex}.wake-login-logo{flex:none;width:7rem;height:7rem}.wake-login-card{padding:clamp(var(--space-5), 5vw, 3rem);align-self:center}.wake-login-card h1{margin:0 0 var(--space-2);font-size:var(--text-lg)}.wake-login-card p{color:var(--ink-muted);line-height:1.5}.wake-login-card form{gap:var(--space-3);margin-top:var(--space-5);display:grid}.wake-login-card input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-inset);color:var(--ink)}.wake-login-submit{margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--brand);color:var(--ink-inverse);cursor:pointer;border:0;font-weight:700}.wake-login-submit:hover{background:var(--brand-dark)}@media (width<=42rem){.wake-login{place-items:start center}.wake-login-panel{grid-template-columns:1fr}.wake-login-brand{padding:var(--space-5);border-bottom:1px solid #0000002e;border-right:0}.wake-login-card{padding:var(--space-5)}}