agent-dealer 1.3.2 → 1.3.4

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 (38) hide show
  1. package/bundle/server/dist/adapters/agent-health.test.js +52 -0
  2. package/bundle/server/dist/capacity/service.js +66 -6
  3. package/bundle/server/dist/capacity/service.test.js +220 -0
  4. package/bundle/server/dist/coordinator/commands.js +79 -1
  5. package/bundle/server/dist/coordinator/commands.test.js +2 -0
  6. package/bundle/server/dist/coordinator/developer-effect.test.js +2 -0
  7. package/bundle/server/dist/coordinator/repair-cycle.integration.test.js +2 -0
  8. package/bundle/server/dist/coordinator/reviewer-effect.test.js +2 -0
  9. package/bundle/server/dist/coordinator/worker-loop.test.js +2 -0
  10. package/bundle/server/dist/db/auto-merge-default-migration.test.js +52 -0
  11. package/bundle/server/dist/db/index.js +12 -2
  12. package/bundle/server/dist/db/schema.sql +6 -2
  13. package/bundle/server/dist/dev-review-cli-happy-path.integration.test.js +2 -0
  14. package/bundle/server/dist/repository/runtime-availability.js +29 -11
  15. package/bundle/server/dist/routes/auto-merge-policy.test.js +378 -0
  16. package/bundle/server/dist/routes/human-actions.test.js +4 -4
  17. package/bundle/server/dist/routes/issues-execution-contract.test.js +4 -3
  18. package/bundle/server/dist/routes/issues.js +32 -2
  19. package/bundle/server/dist/routes/issues.test.js +25 -2
  20. package/bundle/server/dist/runners/usage-cap.js +66 -15
  21. package/bundle/server/dist/runners/usage-cap.test.js +96 -2
  22. package/bundle/server/package.json +2 -2
  23. package/bundle/server/static-ui/assets/index-CHCiztRI.css +1 -0
  24. package/bundle/server/static-ui/assets/index-CrLQFFpw.js +64 -0
  25. package/bundle/server/static-ui/index.html +2 -2
  26. package/bundle/shared/dist/issues.d.ts +8 -5
  27. package/bundle/shared/dist/issues.js +7 -4
  28. package/bundle/shared/dist/issues.test.js +11 -1
  29. package/bundle/shared/dist/runtime-capacity.d.ts +85 -0
  30. package/bundle/shared/dist/runtime-capacity.js +19 -0
  31. package/bundle/shared/package.json +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/issue.d.ts +1 -0
  34. package/dist/issue.js +3 -2
  35. package/dist/issue.test.js +37 -0
  36. package/package.json +1 -1
  37. package/bundle/server/static-ui/assets/index-DL8mEXzN.css +0 -1
  38. package/bundle/server/static-ui/assets/index-DQ5ivcyg.js +0 -64
@@ -8,8 +8,8 @@
8
8
  <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
9
9
  <meta name="theme-color" content="#0a0e14" />
10
10
  <link rel="preload" href="/fonts/Monaco.ttf" as="font" type="font/ttf" crossorigin />
11
- <script type="module" crossorigin src="/assets/index-DQ5ivcyg.js"></script>
12
- <link rel="stylesheet" crossorigin href="/assets/index-DL8mEXzN.css">
11
+ <script type="module" crossorigin src="/assets/index-CrLQFFpw.js"></script>
12
+ <link rel="stylesheet" crossorigin href="/assets/index-CHCiztRI.css">
13
13
  </head>
14
14
  <body>
15
15
  <div id="root"></div>
@@ -96,8 +96,8 @@ export declare const Issue: z.ZodObject<{
96
96
  prUrl: z.ZodNullable<z.ZodString>;
97
97
  /**
98
98
  * When true, reviewer `approved` merges the PR and marks the issue done (skips
99
- * `final_review`). Kick UI defaults this on; API/CLI omit → false so existing
100
- * callers keep the human final-review path.
99
+ * `final_review`). NOT-489: every create surface (web, API, CLI, agents) defaults
100
+ * this on; `false` is the explicit opt-in to final human review.
101
101
  */
102
102
  autoMerge: z.ZodBoolean;
103
103
  createdAt: z.ZodString;
@@ -197,7 +197,10 @@ export declare const CreateIssueInput: z.ZodObject<{
197
197
  reviewerAgentId: z.ZodString;
198
198
  maxReviewRounds: z.ZodDefault<z.ZodNumber>;
199
199
  maxInfraAttempts: z.ZodDefault<z.ZodNumber>;
200
- /** Kick UI sends true; omit/false preserves final_review after approve. */
200
+ /**
201
+ * NOT-489: omitted means auto-merge (reviewer approval enters the guarded merge path);
202
+ * only an explicit `false` parks the approved PR at final human review.
203
+ */
201
204
  autoMerge: z.ZodDefault<z.ZodBoolean>;
202
205
  source: z.ZodDefault<z.ZodEnum<["manual", "linear", "agent"]>>;
203
206
  externalId: z.ZodOptional<z.ZodString>;
@@ -438,8 +441,8 @@ export declare const CreateIssueResult: z.ZodObject<{
438
441
  prUrl: z.ZodNullable<z.ZodString>;
439
442
  /**
440
443
  * When true, reviewer `approved` merges the PR and marks the issue done (skips
441
- * `final_review`). Kick UI defaults this on; API/CLI omit → false so existing
442
- * callers keep the human final-review path.
444
+ * `final_review`). NOT-489: every create surface (web, API, CLI, agents) defaults
445
+ * this on; `false` is the explicit opt-in to final human review.
443
446
  */
444
447
  autoMerge: z.ZodBoolean;
445
448
  createdAt: z.ZodString;
@@ -69,8 +69,8 @@ export const Issue = z.object({
69
69
  prUrl: z.string().nullable(),
70
70
  /**
71
71
  * When true, reviewer `approved` merges the PR and marks the issue done (skips
72
- * `final_review`). Kick UI defaults this on; API/CLI omit → false so existing
73
- * callers keep the human final-review path.
72
+ * `final_review`). NOT-489: every create surface (web, API, CLI, agents) defaults
73
+ * this on; `false` is the explicit opt-in to final human review.
74
74
  */
75
75
  autoMerge: z.boolean(),
76
76
  createdAt: z.string(),
@@ -87,8 +87,11 @@ export const CreateIssueInput = z.object({
87
87
  reviewerAgentId: z.string().uuid(),
88
88
  maxReviewRounds: z.number().int().min(1).default(3),
89
89
  maxInfraAttempts: z.number().int().min(0).default(3),
90
- /** Kick UI sends true; omit/false preserves final_review after approve. */
91
- autoMerge: z.boolean().default(false),
90
+ /**
91
+ * NOT-489: omitted means auto-merge (reviewer approval enters the guarded merge path);
92
+ * only an explicit `false` parks the approved PR at final human review.
93
+ */
94
+ autoMerge: z.boolean().default(true),
92
95
  source: IssueSource.default("manual"),
93
96
  externalId: z.string().optional(),
94
97
  externalLabel: z.string().optional(),
@@ -62,9 +62,19 @@ test("CreateIssueInput defaults baseBranch to main and maxReviewRounds to 3", ()
62
62
  assert.equal(parsed.baseBranch, "main");
63
63
  assert.equal(parsed.maxReviewRounds, 3);
64
64
  assert.equal(parsed.source, "manual");
65
- assert.equal(parsed.autoMerge, false);
66
65
  assert.equal(parsed.repo, "github.com/acme/app");
67
66
  });
67
+ test("NOT-489: CreateIssueInput defaults an omitted autoMerge to true and preserves an explicit false", () => {
68
+ const base = {
69
+ title: "Fix login bug",
70
+ repo: "acme/app",
71
+ developerAgentId: "22222222-2222-2222-2222-222222222222",
72
+ reviewerAgentId: "33333333-3333-3333-3333-333333333333"
73
+ };
74
+ assert.equal(CreateIssueInput.parse(base).autoMerge, true);
75
+ assert.equal(CreateIssueInput.parse({ ...base, autoMerge: false }).autoMerge, false);
76
+ assert.equal(CreateIssueInput.parse({ ...base, autoMerge: true }).autoMerge, true);
77
+ });
68
78
  test("CreateIssueInput rejects local filesystem paths (NOT-149)", () => {
69
79
  assert.throws(() => CreateIssueInput.parse({
70
80
  title: "Local",
@@ -135,6 +135,33 @@ export declare const CapacityWindowSnapshot: z.ZodObject<{
135
135
  } | null | undefined;
136
136
  }>;
137
137
  export type CapacityWindowSnapshot = z.infer<typeof CapacityWindowSnapshot>;
138
+ /**
139
+ * NOT-440: compact window an active hard cap exhausts — the tagged 5H/1W
140
+ * critical pair, or Cursor's `billing_cycle` window.
141
+ */
142
+ export declare const CapacityCapWindowRole: z.ZodEnum<["five_hour", "weekly", "billing_cycle"]>;
143
+ export type CapacityCapWindowRole = z.infer<typeof CapacityCapWindowRole>;
144
+ /**
145
+ * NOT-440: the runtime's active hard cap (the same `runtime_availability` row
146
+ * that blocks admission and marks agent health). Stored snapshots stay raw
147
+ * provider observations; compact surfaces overlay this state on top of them.
148
+ * `windowRole` is null when no compact window can be proven from structured
149
+ * cap metadata or a reset match — the runtime then reads as capped outright.
150
+ */
151
+ export declare const RuntimeCapacityActiveCap: z.ZodObject<{
152
+ unavailableUntil: z.ZodString;
153
+ reason: z.ZodString;
154
+ windowRole: z.ZodNullable<z.ZodEnum<["five_hour", "weekly", "billing_cycle"]>>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ reason: string;
157
+ unavailableUntil: string;
158
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
159
+ }, {
160
+ reason: string;
161
+ unavailableUntil: string;
162
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
163
+ }>;
164
+ export type RuntimeCapacityActiveCap = z.infer<typeof RuntimeCapacityActiveCap>;
138
165
  export declare const RuntimeCapacityEntry: z.ZodObject<{
139
166
  runtime: z.ZodEnum<["claude_code", "cursor_local", "codex_local", "muse_code"]>;
140
167
  /** All windows the provider reports for this runtime account. */
@@ -225,6 +252,20 @@ export declare const RuntimeCapacityEntry: z.ZodObject<{
225
252
  }>, "many">;
226
253
  /** Whole-entry fallback reason when no window carries a current value. */
227
254
  unavailableReason: z.ZodNullable<z.ZodEnum<["unsupported", "missing", "expired", "unparsable", "stale"]>>;
255
+ /** NOT-440: active hard cap, or null/absent when the runtime is not capped. */
256
+ activeCap: z.ZodOptional<z.ZodNullable<z.ZodObject<{
257
+ unavailableUntil: z.ZodString;
258
+ reason: z.ZodString;
259
+ windowRole: z.ZodNullable<z.ZodEnum<["five_hour", "weekly", "billing_cycle"]>>;
260
+ }, "strip", z.ZodTypeAny, {
261
+ reason: string;
262
+ unavailableUntil: string;
263
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
264
+ }, {
265
+ reason: string;
266
+ unavailableUntil: string;
267
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
268
+ }>>>;
228
269
  }, "strip", z.ZodTypeAny, {
229
270
  runtime: "claude_code" | "cursor_local" | "codex_local" | "muse_code";
230
271
  unavailableReason: "unsupported" | "missing" | "expired" | "unparsable" | "stale" | null;
@@ -250,6 +291,11 @@ export declare const RuntimeCapacityEntry: z.ZodObject<{
250
291
  lastFailureAt: string;
251
292
  } | null | undefined;
252
293
  }[];
294
+ activeCap?: {
295
+ reason: string;
296
+ unavailableUntil: string;
297
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
298
+ } | null | undefined;
253
299
  }, {
254
300
  runtime: "claude_code" | "cursor_local" | "codex_local" | "muse_code";
255
301
  unavailableReason: "unsupported" | "missing" | "expired" | "unparsable" | "stale" | null;
@@ -275,6 +321,11 @@ export declare const RuntimeCapacityEntry: z.ZodObject<{
275
321
  lastFailureAt: string;
276
322
  } | null | undefined;
277
323
  }[];
324
+ activeCap?: {
325
+ reason: string;
326
+ unavailableUntil: string;
327
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
328
+ } | null | undefined;
278
329
  }>;
279
330
  export type RuntimeCapacityEntry = z.infer<typeof RuntimeCapacityEntry>;
280
331
  export declare const RuntimeCapacityResponse: z.ZodObject<{
@@ -368,6 +419,20 @@ export declare const RuntimeCapacityResponse: z.ZodObject<{
368
419
  }>, "many">;
369
420
  /** Whole-entry fallback reason when no window carries a current value. */
370
421
  unavailableReason: z.ZodNullable<z.ZodEnum<["unsupported", "missing", "expired", "unparsable", "stale"]>>;
422
+ /** NOT-440: active hard cap, or null/absent when the runtime is not capped. */
423
+ activeCap: z.ZodOptional<z.ZodNullable<z.ZodObject<{
424
+ unavailableUntil: z.ZodString;
425
+ reason: z.ZodString;
426
+ windowRole: z.ZodNullable<z.ZodEnum<["five_hour", "weekly", "billing_cycle"]>>;
427
+ }, "strip", z.ZodTypeAny, {
428
+ reason: string;
429
+ unavailableUntil: string;
430
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
431
+ }, {
432
+ reason: string;
433
+ unavailableUntil: string;
434
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
435
+ }>>>;
371
436
  }, "strip", z.ZodTypeAny, {
372
437
  runtime: "claude_code" | "cursor_local" | "codex_local" | "muse_code";
373
438
  unavailableReason: "unsupported" | "missing" | "expired" | "unparsable" | "stale" | null;
@@ -393,6 +458,11 @@ export declare const RuntimeCapacityResponse: z.ZodObject<{
393
458
  lastFailureAt: string;
394
459
  } | null | undefined;
395
460
  }[];
461
+ activeCap?: {
462
+ reason: string;
463
+ unavailableUntil: string;
464
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
465
+ } | null | undefined;
396
466
  }, {
397
467
  runtime: "claude_code" | "cursor_local" | "codex_local" | "muse_code";
398
468
  unavailableReason: "unsupported" | "missing" | "expired" | "unparsable" | "stale" | null;
@@ -418,6 +488,11 @@ export declare const RuntimeCapacityResponse: z.ZodObject<{
418
488
  lastFailureAt: string;
419
489
  } | null | undefined;
420
490
  }[];
491
+ activeCap?: {
492
+ reason: string;
493
+ unavailableUntil: string;
494
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
495
+ } | null | undefined;
421
496
  }>, "many">;
422
497
  generatedAt: z.ZodString;
423
498
  }, "strip", z.ZodTypeAny, {
@@ -447,6 +522,11 @@ export declare const RuntimeCapacityResponse: z.ZodObject<{
447
522
  lastFailureAt: string;
448
523
  } | null | undefined;
449
524
  }[];
525
+ activeCap?: {
526
+ reason: string;
527
+ unavailableUntil: string;
528
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
529
+ } | null | undefined;
450
530
  }[];
451
531
  }, {
452
532
  generatedAt: string;
@@ -475,6 +555,11 @@ export declare const RuntimeCapacityResponse: z.ZodObject<{
475
555
  lastFailureAt: string;
476
556
  } | null | undefined;
477
557
  }[];
558
+ activeCap?: {
559
+ reason: string;
560
+ unavailableUntil: string;
561
+ windowRole: "five_hour" | "weekly" | "billing_cycle" | null;
562
+ } | null | undefined;
478
563
  }[];
479
564
  }>;
480
565
  export type RuntimeCapacityResponse = z.infer<typeof RuntimeCapacityResponse>;
@@ -85,12 +85,31 @@ export const CapacityWindowSnapshot = z.object({
85
85
  unavailableDetail: CapacityUnavailableDetail.nullable().optional(),
86
86
  criticalRole: CapacityCriticalRole.nullable(),
87
87
  });
88
+ /**
89
+ * NOT-440: compact window an active hard cap exhausts — the tagged 5H/1W
90
+ * critical pair, or Cursor's `billing_cycle` window.
91
+ */
92
+ export const CapacityCapWindowRole = z.enum(["five_hour", "weekly", "billing_cycle"]);
93
+ /**
94
+ * NOT-440: the runtime's active hard cap (the same `runtime_availability` row
95
+ * that blocks admission and marks agent health). Stored snapshots stay raw
96
+ * provider observations; compact surfaces overlay this state on top of them.
97
+ * `windowRole` is null when no compact window can be proven from structured
98
+ * cap metadata or a reset match — the runtime then reads as capped outright.
99
+ */
100
+ export const RuntimeCapacityActiveCap = z.object({
101
+ unavailableUntil: z.string(),
102
+ reason: z.string(),
103
+ windowRole: CapacityCapWindowRole.nullable(),
104
+ });
88
105
  export const RuntimeCapacityEntry = z.object({
89
106
  runtime: Runtime,
90
107
  /** All windows the provider reports for this runtime account. */
91
108
  windows: z.array(CapacityWindowSnapshot),
92
109
  /** Whole-entry fallback reason when no window carries a current value. */
93
110
  unavailableReason: CapacityUnavailableReason.nullable(),
111
+ /** NOT-440: active hard cap, or null/absent when the runtime is not capped. */
112
+ activeCap: RuntimeCapacityActiveCap.nullable().optional(),
94
113
  });
95
114
  export const RuntimeCapacityResponse = z.object({
96
115
  runtimes: z.array(RuntimeCapacityEntry),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-dealer/shared",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ function printUsage() {
17
17
  agent-dealer install [--to VERSION] [--migrate-cli] [--purge-global]
18
18
  agent-dealer upgrade [--to VERSION] [--yes] [--check]
19
19
  agent-dealer agent list
20
- agent-dealer issue create --title T --repo owner/repo --developer-agent ID --reviewer-agent ID [--description D] [--acceptance-criteria A] [--base-branch B] [--no-enqueue]
20
+ agent-dealer issue create --title T --repo owner/repo --developer-agent ID --reviewer-agent ID [--description D] [--acceptance-criteria A] [--base-branch B] [--no-enqueue] [--no-auto-merge]
21
21
  agent-dealer issue import --external-id ID --title T --repo owner/repo --developer-agent ID --reviewer-agent ID [--external-label L]
22
22
  agent-dealer issue list [--status S1,S2]
23
23
  agent-dealer issue show <id> [--include evidence]
package/dist/issue.d.ts CHANGED
@@ -8,6 +8,7 @@ export type ParsedIssueArgs = {
8
8
  acceptanceCriteria?: string;
9
9
  baseBranch?: string;
10
10
  enqueue: boolean;
11
+ autoMerge: boolean;
11
12
  } | {
12
13
  subcommand: "import";
13
14
  externalId: string;
package/dist/issue.js CHANGED
@@ -48,7 +48,8 @@ export function parseIssueArgs(args) {
48
48
  return { subcommand: "import", externalId, externalLabel: flag(rest, "--external-label"), title, repo, developerAgentId, reviewerAgentId };
49
49
  }
50
50
  // NOT-118: create enqueues for admission by default; --no-enqueue leaves a draft out.
51
- return { subcommand: "create", title, repo, developerAgentId, reviewerAgentId, description: flag(rest, "--description"), acceptanceCriteria: flag(rest, "--acceptance-criteria"), baseBranch: flag(rest, "--base-branch"), enqueue: !rest.includes("--no-enqueue") };
51
+ // NOT-489: auto-merge by default; --no-auto-merge opts into final human review.
52
+ return { subcommand: "create", title, repo, developerAgentId, reviewerAgentId, description: flag(rest, "--description"), acceptanceCriteria: flag(rest, "--acceptance-criteria"), baseBranch: flag(rest, "--base-branch"), enqueue: !rest.includes("--no-enqueue"), autoMerge: !rest.includes("--no-auto-merge") };
52
53
  }
53
54
  case "list": {
54
55
  return { subcommand: "list", status: flag(rest, "--status") };
@@ -111,7 +112,7 @@ export async function runIssueCommand(args) {
111
112
  try {
112
113
  switch (parsed.subcommand) {
113
114
  case "create": {
114
- const result = (await apiFetch("/api/issues", { method: "POST", body: { title: parsed.title, repo: parsed.repo, developerAgentId: parsed.developerAgentId, reviewerAgentId: parsed.reviewerAgentId, description: parsed.description, acceptanceCriteria: parsed.acceptanceCriteria, baseBranch: parsed.baseBranch, source: "agent", enqueue: parsed.enqueue } }));
115
+ const result = (await apiFetch("/api/issues", { method: "POST", body: { title: parsed.title, repo: parsed.repo, developerAgentId: parsed.developerAgentId, reviewerAgentId: parsed.reviewerAgentId, description: parsed.description, acceptanceCriteria: parsed.acceptanceCriteria, baseBranch: parsed.baseBranch, source: "agent", enqueue: parsed.enqueue, autoMerge: parsed.autoMerge } }));
115
116
  console.log(JSON.stringify(result, null, 2));
116
117
  // stdout stays pure JSON for agents that pipe it — the hint goes to stderr.
117
118
  console.error(createOutcomeHint(result));
@@ -84,6 +84,43 @@ test("issue create sends enqueue:true by default and enqueue:false with --no-enq
84
84
  draft.restore();
85
85
  }
86
86
  });
87
+ test("NOT-489: issue create sends autoMerge:true by default and autoMerge:false only with --no-auto-merge", async () => {
88
+ const args = ["create", "--title", "T", "--repo", "owner/repo", "--developer-agent", "a1", "--reviewer-agent", "a2"];
89
+ assert.equal(parseIssueArgs(args).autoMerge, true);
90
+ assert.equal(parseIssueArgs([...args, "--no-auto-merge"]).autoMerge, false);
91
+ const byDefault = stubFetch("/api/issues", "POST", { id: "i1", status: "ready", created: true, queue: "enqueued", priorPasses: 0 });
92
+ try {
93
+ assert.equal(await runIssueCommand(args), 0);
94
+ assert.deepEqual(byDefault.assertCalled(), {
95
+ title: "T",
96
+ repo: "owner/repo",
97
+ developerAgentId: "a1",
98
+ reviewerAgentId: "a2",
99
+ source: "agent",
100
+ enqueue: true,
101
+ autoMerge: true,
102
+ });
103
+ }
104
+ finally {
105
+ byDefault.restore();
106
+ }
107
+ const optedOut = stubFetch("/api/issues", "POST", { id: "i2", status: "ready", created: true, queue: "enqueued", priorPasses: 0 });
108
+ try {
109
+ assert.equal(await runIssueCommand([...args, "--no-auto-merge"]), 0);
110
+ assert.deepEqual(optedOut.assertCalled(), {
111
+ title: "T",
112
+ repo: "owner/repo",
113
+ developerAgentId: "a1",
114
+ reviewerAgentId: "a2",
115
+ source: "agent",
116
+ enqueue: true,
117
+ autoMerge: false,
118
+ });
119
+ }
120
+ finally {
121
+ optedOut.restore();
122
+ }
123
+ });
87
124
  /** Runs the command with stderr captured — the hints go to stderr, stdout stays JSON. */
88
125
  async function captureStderr(args) {
89
126
  const errs = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-dealer",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "Human control plane for agent execution — queue, plan approval, audit",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- @import"https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@300;400;600;700;800&display=swap";/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:Monaco, "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:Monaco, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-950:oklch(25.8% .092 26.042);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-teal-200:oklch(91% .096 180.426);--color-cyan-500:oklch(71.5% .143 215.221);--color-blue-500:oklch(62.3% .214 259.815);--color-pink-500:oklch(65.6% .241 354.308);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-ui-display:"Avenir Next", Avenir, "Helvetica Neue", system-ui, sans-serif;--color-cyber-gold:#c4b643;--color-cyber-teal:#92e4dd;--color-cyber-violet:#a78bfa;--color-cyber-violet-light:#d4bcff;--color-panel-elevated:#161612;--glass-blur:14px;--glass-bg:#ffffff07;--glass-border:#ffffff13;--glass-highlight:#ffffff0a}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{top:0;right:0;bottom:0;left:0}.top-1\/2{top:50%}.top-16{top:calc(var(--spacing) * 16)}.right-12{right:calc(var(--spacing) * 12)}.bottom-20{bottom:calc(var(--spacing) * 20)}.left-1\/2{left:50%}.left-12{left:calc(var(--spacing) * 12)}.z-0{z-index:0}.z-10{z-index:10}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-\[22rem\]{height:22rem}.h-\[26rem\]{height:26rem}.h-\[70\%\]{height:70%}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-\[22rem\]{width:22rem}.w-\[26rem\]{width:26rem}.w-\[70\%\]{width:70%}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[10rem\]{max-width:10rem}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[560px\]{min-width:560px}.min-w-\[1440px\]{min-width:1440px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-white\/5>:not(:last-child)){border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){:where(.divide-white\/5>:not(:last-child)){border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[\#92E4DD\]\/25{border-color:#92e4dd40}.border-\[\#C4B643\]\/40{border-color:#c4b64366}.border-\[\#C4B643\]\/50{border-color:#c4b64380}.border-amber-300\/30{border-color:#ffd2364d}@supports (color:color-mix(in lab,red,red)){.border-amber-300\/30{border-color:color-mix(in oklab,var(--color-amber-300) 30%,transparent)}}.border-amber-400\/20{border-color:#fcbb0033}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/20{border-color:color-mix(in oklab,var(--color-amber-400) 20%,transparent)}}.border-amber-400\/25{border-color:#fcbb0040}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/25{border-color:color-mix(in oklab,var(--color-amber-400) 25%,transparent)}}.border-amber-400\/30{border-color:#fcbb004d}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/30{border-color:color-mix(in oklab,var(--color-amber-400) 30%,transparent)}}.border-amber-400\/40{border-color:#fcbb0066}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/40{border-color:color-mix(in oklab,var(--color-amber-400) 40%,transparent)}}.border-cyber-gold\/40{border-color:#c4b64366}@supports (color:color-mix(in lab,red,red)){.border-cyber-gold\/40{border-color:color-mix(in oklab,var(--color-cyber-gold) 40%,transparent)}}.border-cyber-teal\/20{border-color:#92e4dd33}@supports (color:color-mix(in lab,red,red)){.border-cyber-teal\/20{border-color:color-mix(in oklab,var(--color-cyber-teal) 20%,transparent)}}.border-cyber-teal\/25{border-color:#92e4dd40}@supports (color:color-mix(in lab,red,red)){.border-cyber-teal\/25{border-color:color-mix(in oklab,var(--color-cyber-teal) 25%,transparent)}}.border-cyber-teal\/30{border-color:#92e4dd4d}@supports (color:color-mix(in lab,red,red)){.border-cyber-teal\/30{border-color:color-mix(in oklab,var(--color-cyber-teal) 30%,transparent)}}.border-cyber-teal\/35{border-color:#92e4dd59}@supports (color:color-mix(in lab,red,red)){.border-cyber-teal\/35{border-color:color-mix(in oklab,var(--color-cyber-teal) 35%,transparent)}}.border-cyber-teal\/40{border-color:#92e4dd66}@supports (color:color-mix(in lab,red,red)){.border-cyber-teal\/40{border-color:color-mix(in oklab,var(--color-cyber-teal) 40%,transparent)}}.border-cyber-violet\/40{border-color:#a78bfa66}@supports (color:color-mix(in lab,red,red)){.border-cyber-violet\/40{border-color:color-mix(in oklab,var(--color-cyber-violet) 40%,transparent)}}.border-cyber-violet\/50{border-color:#a78bfa80}@supports (color:color-mix(in lab,red,red)){.border-cyber-violet\/50{border-color:color-mix(in oklab,var(--color-cyber-violet) 50%,transparent)}}.border-red-300\/40{border-color:#ffa3a366}@supports (color:color-mix(in lab,red,red)){.border-red-300\/40{border-color:color-mix(in oklab,var(--color-red-300) 40%,transparent)}}.border-red-400\/20{border-color:#ff656833}@supports (color:color-mix(in lab,red,red)){.border-red-400\/20{border-color:color-mix(in oklab,var(--color-red-400) 20%,transparent)}}.border-red-400\/30{border-color:#ff65684d}@supports (color:color-mix(in lab,red,red)){.border-red-400\/30{border-color:color-mix(in oklab,var(--color-red-400) 30%,transparent)}}.border-red-400\/40{border-color:#ff656866}@supports (color:color-mix(in lab,red,red)){.border-red-400\/40{border-color:color-mix(in oklab,var(--color-red-400) 40%,transparent)}}.border-red-400\/50{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.border-red-400\/50{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.border-white\/15{border-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.border-white\/15{border-color:color-mix(in oklab,var(--color-white) 15%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-\[\#92E4DD\]\/10{background-color:#92e4dd1a}.bg-\[\#C4B643\]\/5{background-color:#c4b6430d}.bg-\[\#C4B643\]\/25{background-color:#c4b64340}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/5{background-color:#fcbb000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-400\/5{background-color:color-mix(in oklab,var(--color-amber-400) 5%,transparent)}}.bg-amber-400\/10{background-color:#fcbb001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-400\/10{background-color:color-mix(in oklab,var(--color-amber-400) 10%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\/20{background-color:color-mix(in oklab,var(--color-black) 20%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-blue-500\/\[0\.07\]{background-color:#3080ff12}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/\[0\.07\]{background-color:color-mix(in oklab,var(--color-blue-500) 7%,transparent)}}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500) 10%,transparent)}}.bg-cyber-gold\/20{background-color:#c4b64333}@supports (color:color-mix(in lab,red,red)){.bg-cyber-gold\/20{background-color:color-mix(in oklab,var(--color-cyber-gold) 20%,transparent)}}.bg-cyber-teal{background-color:var(--color-cyber-teal)}.bg-cyber-teal\/5{background-color:#92e4dd0d}@supports (color:color-mix(in lab,red,red)){.bg-cyber-teal\/5{background-color:color-mix(in oklab,var(--color-cyber-teal) 5%,transparent)}}.bg-cyber-teal\/10{background-color:#92e4dd1a}@supports (color:color-mix(in lab,red,red)){.bg-cyber-teal\/10{background-color:color-mix(in oklab,var(--color-cyber-teal) 10%,transparent)}}.bg-cyber-teal\/15{background-color:#92e4dd26}@supports (color:color-mix(in lab,red,red)){.bg-cyber-teal\/15{background-color:color-mix(in oklab,var(--color-cyber-teal) 15%,transparent)}}.bg-cyber-teal\/20{background-color:#92e4dd33}@supports (color:color-mix(in lab,red,red)){.bg-cyber-teal\/20{background-color:color-mix(in oklab,var(--color-cyber-teal) 20%,transparent)}}.bg-cyber-violet\/10{background-color:#a78bfa1a}@supports (color:color-mix(in lab,red,red)){.bg-cyber-violet\/10{background-color:color-mix(in oklab,var(--color-cyber-violet) 10%,transparent)}}.bg-cyber-violet\/20{background-color:#a78bfa33}@supports (color:color-mix(in lab,red,red)){.bg-cyber-violet\/20{background-color:color-mix(in oklab,var(--color-cyber-violet) 20%,transparent)}}.bg-cyber-violet\/25{background-color:#a78bfa40}@supports (color:color-mix(in lab,red,red)){.bg-cyber-violet\/25{background-color:color-mix(in oklab,var(--color-cyber-violet) 25%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-panel-elevated\/40{background-color:#16161266}@supports (color:color-mix(in lab,red,red)){.bg-panel-elevated\/40{background-color:color-mix(in oklab,var(--color-panel-elevated) 40%,transparent)}}.bg-panel-elevated\/60{background-color:#16161299}@supports (color:color-mix(in lab,red,red)){.bg-panel-elevated\/60{background-color:color-mix(in oklab,var(--color-panel-elevated) 60%,transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500) 10%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-transparent{background-color:#0000}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/\[0\.02\]{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.02\]{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.object-contain{object-fit:contain}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-ui-display{font-family:var(--font-ui-display)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#92E4DD\]{color:#92e4dd}.text-\[\#92E4DD\]\/80{color:#92e4ddcc}.text-\[\#A8C4C0\]{color:#a8c4c0}.text-\[\#C4B643\]{color:#c4b643}.text-\[\#E8DC7A\]{color:#e8dc7a}.text-\[\#E8F6F4\]{color:#e8f6f4}.text-amber-100{color:var(--color-amber-100)}.text-amber-100\/70{color:#fef3c6b3}@supports (color:color-mix(in lab,red,red)){.text-amber-100\/70{color:color-mix(in oklab,var(--color-amber-100) 70%,transparent)}}.text-amber-100\/80{color:#fef3c6cc}@supports (color:color-mix(in lab,red,red)){.text-amber-100\/80{color:color-mix(in oklab,var(--color-amber-100) 80%,transparent)}}.text-amber-100\/90{color:#fef3c6e6}@supports (color:color-mix(in lab,red,red)){.text-amber-100\/90{color:color-mix(in oklab,var(--color-amber-100) 90%,transparent)}}.text-amber-200\/80{color:#fee685cc}@supports (color:color-mix(in lab,red,red)){.text-amber-200\/80{color:color-mix(in oklab,var(--color-amber-200) 80%,transparent)}}.text-amber-200\/90{color:#fee685e6}@supports (color:color-mix(in lab,red,red)){.text-amber-200\/90{color:color-mix(in oklab,var(--color-amber-200) 90%,transparent)}}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/80{color:#ffd236cc}@supports (color:color-mix(in lab,red,red)){.text-amber-300\/80{color:color-mix(in oklab,var(--color-amber-300) 80%,transparent)}}.text-amber-300\/90{color:#ffd236e6}@supports (color:color-mix(in lab,red,red)){.text-amber-300\/90{color:color-mix(in oklab,var(--color-amber-300) 90%,transparent)}}.text-cyber-teal{color:var(--color-cyber-teal)}.text-cyber-violet-light{color:var(--color-cyber-violet-light)}.text-emerald-200\/90{color:#a4f4cfe6}@supports (color:color-mix(in lab,red,red)){.text-emerald-200\/90{color:color-mix(in oklab,var(--color-emerald-200) 90%,transparent)}}.text-red-100{color:var(--color-red-100)}.text-red-200{color:var(--color-red-200)}.text-red-300{color:var(--color-red-300)}.text-red-300\/80{color:#ffa3a3cc}@supports (color:color-mix(in lab,red,red)){.text-red-300\/80{color:color-mix(in oklab,var(--color-red-300) 80%,transparent)}}.text-red-300\/90{color:#ffa3a3e6}@supports (color:color-mix(in lab,red,red)){.text-red-300\/90{color:color-mix(in oklab,var(--color-red-300) 90%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-teal-200\/80{color:#96f7e4cc}@supports (color:color-mix(in lab,red,red)){.text-teal-200\/80{color:color-mix(in oklab,var(--color-teal-200) 80%,transparent)}}.text-white{color:var(--color-white)}.text-white\/25{color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.text-white\/25{color:color-mix(in oklab,var(--color-white) 25%,transparent)}}.text-white\/30{color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.text-white\/30{color:color-mix(in oklab,var(--color-white) 30%,transparent)}}.text-white\/35{color:#ffffff59}@supports (color:color-mix(in lab,red,red)){.text-white\/35{color:color-mix(in oklab,var(--color-white) 35%,transparent)}}.text-white\/40{color:#fff6}@supports (color:color-mix(in lab,red,red)){.text-white\/40{color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.text-white\/45{color:#ffffff73}@supports (color:color-mix(in lab,red,red)){.text-white\/45{color:color-mix(in oklab,var(--color-white) 45%,transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\/50{color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.text-white\/55{color:#ffffff8c}@supports (color:color-mix(in lab,red,red)){.text-white\/55{color:color-mix(in oklab,var(--color-white) 55%,transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.text-white\/75{color:#ffffffbf}@supports (color:color-mix(in lab,red,red)){.text-white\/75{color:color-mix(in oklab,var(--color-white) 75%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.text-white\/85{color:color-mix(in oklab,var(--color-white) 85%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-\[\#C4B643\]{accent-color:#c4b643}.opacity-80{opacity:.8}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.placeholder\:text-white\/30::placeholder{color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-white\/30::placeholder{color:color-mix(in oklab,var(--color-white) 30%,transparent)}}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media(hover:hover){.hover\:border-cyber-teal\/50:hover{border-color:#92e4dd80}@supports (color:color-mix(in lab,red,red)){.hover\:border-cyber-teal\/50:hover{border-color:color-mix(in oklab,var(--color-cyber-teal) 50%,transparent)}}.hover\:bg-cyber-teal\/10:hover{background-color:#92e4dd1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-cyber-teal\/10:hover{background-color:color-mix(in oklab,var(--color-cyber-teal) 10%,transparent)}}.hover\:bg-panel-elevated\/70:hover{background-color:#161612b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-panel-elevated\/70:hover{background-color:color-mix(in oklab,var(--color-panel-elevated) 70%,transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.hover\:text-amber-50:hover{color:var(--color-amber-50)}.hover\:text-cyber-teal:hover{color:var(--color-cyber-teal)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-white\/70:hover{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.hover\:text-white\/70:hover{color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.hover\:text-white\/80:hover{color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\:text-white\/80:hover{color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-cyber-teal\/45:focus-visible{outline-color:#92e4dd73}@supports (color:color-mix(in lab,red,red)){.focus-visible\:outline-cyber-teal\/45:focus-visible{outline-color:color-mix(in oklab,var(--color-cyber-teal) 45%,transparent)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media(min-width:64rem){.lg\:col-span-4{grid-column:span 4/span 4}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}@font-face{font-family:Monaco;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/Monaco.ttf)format("truetype")}html{font-size:17px}html,body{font-family:var(--font-sans)}body{color:#92e4dd;-webkit-font-smoothing:antialiased;background-color:#0a0a07;min-height:100vh;margin:0;font-size:1rem;line-height:1.5}@keyframes ambient-drift-a{0%,to{opacity:1;transform:translate(0)scale(1)}50%{opacity:.72;transform:translate(28px,-22px)scale(1.06)}}@keyframes ambient-drift-b{0%,to{opacity:1;transform:translate(0)scale(1)}50%{opacity:.75;transform:translate(-24px,18px)scale(1.05)}}@keyframes ambient-drift-c{0%,to{opacity:1;transform:translate(0)scale(1)}50%{opacity:.68;transform:translate(16px,20px)scale(.96)}}.ambient-orb{will-change:transform,opacity}.ambient-orb-a{animation:14s ease-in-out infinite ambient-drift-a}.ambient-orb-b{animation:17s ease-in-out -6s infinite ambient-drift-b}.ambient-orb-c{animation:20s ease-in-out -11s infinite ambient-drift-c}.glass-header{-webkit-backdrop-filter:blur(12px);background:#0a0a07b8}.field{border-style:var(--tw-border-style);border-width:1px;border-color:#ffffff1a;border-radius:.25rem;width:100%}@supports (color:color-mix(in lab,red,red)){.field{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.field{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.field{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.field{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));color:#e8f6f4;--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);font-family:var(--font-mono)}input,select,textarea{font-family:var(--font-mono)}button{font-family:var(--font-ui-display)}.panel{border-radius:var(--radius-2xl);padding:calc(var(--spacing) * 4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-highlight)}.btn-gold{padding-block:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:#0a0a07;font-family:var(--font-ui-display);background:#c4b643;border-radius:.25rem}.btn-gold:hover{background:#d4c760}.btn-ghost{border-style:var(--tw-border-style);border-width:1px;border-color:#fff3;border-radius:.25rem}@supports (color:color-mix(in lab,red,red)){.btn-ghost{border-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.btn-ghost{padding-block:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));color:#e8f6f4;font-family:var(--font-ui-display)}.btn-ghost-danger{border-style:var(--tw-border-style);border-width:1px;border-color:#fb2c36bf;border-radius:.25rem}@supports (color:color-mix(in lab,red,red)){.btn-ghost-danger{border-color:color-mix(in oklab,var(--color-red-500) 75%,transparent)}}.btn-ghost-danger{background-color:#46080933}@supports (color:color-mix(in lab,red,red)){.btn-ghost-danger{background-color:color-mix(in oklab,var(--color-red-950) 20%,transparent)}}.btn-ghost-danger{padding-block:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-red-400);font-family:var(--font-ui-display)}.btn-ghost-danger:hover:not(:disabled){border-color:var(--color-red-400);background-color:#46080966}@supports (color:color-mix(in lab,red,red)){.btn-ghost-danger:hover:not(:disabled){background-color:color-mix(in oklab,var(--color-red-950) 40%,transparent)}}.btn-ghost-danger:hover:not(:disabled){color:var(--color-red-300)}.heading-page{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:#c4b643;font-family:var(--font-ui-display)}.heading-panel{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:#92e4dd;font-family:var(--font-ui-display)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff1a;border-radius:10px}::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#ffffff80}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}