runcastle 1.5.9 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/runcastle.js CHANGED
@@ -1096,6 +1096,8 @@ function foldThread(log) {
1096
1096
  const view = { ...EMPTY_THREAD_VIEW, items, plan: [], tasks: [], commands: [] };
1097
1097
  view.cursor = log.length ? log[log.length - 1].i : -1;
1098
1098
  let turn = null;
1099
+ const shownSubagents = new Set;
1100
+ const shownCalls = new Set;
1099
1101
  let workIndex = -1;
1100
1102
  let answerIndex = -1;
1101
1103
  let ask;
@@ -1121,9 +1123,8 @@ function foldThread(log) {
1121
1123
  case "thought":
1122
1124
  return { kind: "thought", id: s.id, text: s.text, seconds: Math.max(1, Math.round((s.to - s.from) / 1000)) };
1123
1125
  case "tools":
1124
- return { kind: "tools", id: s.id, calls: s.calls.map((c) => ({ ...c })) };
1125
1126
  case "subagent":
1126
- return { kind: "subagent", id: s.id, title: s.title, status: s.status, calls: s.calls.map((c) => ({ ...c })) };
1127
+ return s;
1127
1128
  case "answered":
1128
1129
  return null;
1129
1130
  }
@@ -1196,13 +1197,12 @@ function foldThread(log) {
1196
1197
  turn.id = String(e.i);
1197
1198
  turn.startedAt = e.at;
1198
1199
  turn.segments = [];
1199
- turn.subagents = new Map;
1200
- turn.calls = new Map;
1201
1200
  workIndex = -1;
1202
1201
  answerIndex = -1;
1203
1202
  };
1204
1203
  const addCall = (t, e, call, parentId) => {
1205
1204
  t.calls.set(call.id, call);
1205
+ shownCalls.add(call.id);
1206
1206
  const parent = parentId ? t.subagents.get(parentId) : undefined;
1207
1207
  if (parent)
1208
1208
  parent.calls.push(call);
@@ -1298,6 +1298,8 @@ function foldThread(log) {
1298
1298
  break;
1299
1299
  }
1300
1300
  case "tool": {
1301
+ if (!e.call.title && shownCalls.has(e.call.id) && !turn?.calls.has(e.call.id))
1302
+ break;
1301
1303
  const t = openTurn(e);
1302
1304
  const known = t.calls.get(e.call.id);
1303
1305
  if (known) {
@@ -1312,15 +1314,19 @@ function foldThread(log) {
1312
1314
  break;
1313
1315
  }
1314
1316
  case "subagent": {
1315
- const t = openTurn(e);
1316
- const known = t.subagents.get(e.id);
1317
+ const known = turn?.subagents.get(e.id);
1317
1318
  if (known) {
1318
1319
  if (e.title !== undefined)
1319
1320
  known.title = e.title;
1320
1321
  if (e.status !== undefined)
1321
1322
  known.status = e.status;
1322
1323
  } else {
1324
+ const running = e.status === "in_progress" || e.status === "pending";
1325
+ if (!running && (shownSubagents.has(e.id) || !e.title))
1326
+ break;
1327
+ const t = openTurn(e);
1323
1328
  const seg = { kind: "subagent", id: e.id, title: e.title ?? "Subagent", status: e.status ?? "in_progress", calls: [] };
1329
+ shownSubagents.add(e.id);
1324
1330
  t.subagents.set(e.id, seg);
1325
1331
  t.segments.push(seg);
1326
1332
  }
@@ -66094,6 +66100,19 @@ function hostSaysHeader(ctx, row, opts) {
66094
66100
  return opts.spawn !== false && !!row.ccSessionId && !agentHost(ctx).isRunning(row.id);
66095
66101
  }
66096
66102
  async function launchSession(ctx, input, opts = {}) {
66103
+ const before = launches.get(input.featureId);
66104
+ const launch3 = (before ?? Promise.resolve()).catch(() => {
66105
+ return;
66106
+ }).then(() => openMainChat(ctx, input, opts));
66107
+ launches.set(input.featureId, launch3);
66108
+ try {
66109
+ return await launch3;
66110
+ } finally {
66111
+ if (launches.get(input.featureId) === launch3)
66112
+ launches.delete(input.featureId);
66113
+ }
66114
+ }
66115
+ async function openMainChat(ctx, input, opts) {
66097
66116
  if (input.kind === "drive-fix") {
66098
66117
  throw new GateError('a drive-fix session is opened by "Fix drive" on the failed drive itself, not as a talk ' + "session \u2014 it needs the failure in hand and the developer's own checkout to repair.");
66099
66118
  }
@@ -66429,7 +66448,7 @@ function probePrepareHost(repoPath) {
66429
66448
  ...lock ? { packageManager: lock[1] } : {}
66430
66449
  };
66431
66450
  }
66432
- var HELD_OPENING_END = "The human's message follows.", COMPOSE_FILES;
66451
+ var HELD_OPENING_END = "The human's message follows.", launches, COMPOSE_FILES;
66433
66452
  var init_launcher = __esm(() => {
66434
66453
  init_paths();
66435
66454
  init_src();
@@ -66456,6 +66475,7 @@ var init_launcher = __esm(() => {
66456
66475
  init_lockfiles();
66457
66476
  init_sessions();
66458
66477
  init_end_session();
66478
+ launches = new Map;
66459
66479
  COMPOSE_FILES = [
66460
66480
  "docker-compose.yml",
66461
66481
  "docker-compose.yaml",
package/index.js CHANGED
@@ -1095,6 +1095,8 @@ function foldThread(log) {
1095
1095
  const view = { ...EMPTY_THREAD_VIEW, items, plan: [], tasks: [], commands: [] };
1096
1096
  view.cursor = log.length ? log[log.length - 1].i : -1;
1097
1097
  let turn = null;
1098
+ const shownSubagents = new Set;
1099
+ const shownCalls = new Set;
1098
1100
  let workIndex = -1;
1099
1101
  let answerIndex = -1;
1100
1102
  let ask;
@@ -1120,9 +1122,8 @@ function foldThread(log) {
1120
1122
  case "thought":
1121
1123
  return { kind: "thought", id: s.id, text: s.text, seconds: Math.max(1, Math.round((s.to - s.from) / 1000)) };
1122
1124
  case "tools":
1123
- return { kind: "tools", id: s.id, calls: s.calls.map((c) => ({ ...c })) };
1124
1125
  case "subagent":
1125
- return { kind: "subagent", id: s.id, title: s.title, status: s.status, calls: s.calls.map((c) => ({ ...c })) };
1126
+ return s;
1126
1127
  case "answered":
1127
1128
  return null;
1128
1129
  }
@@ -1195,13 +1196,12 @@ function foldThread(log) {
1195
1196
  turn.id = String(e.i);
1196
1197
  turn.startedAt = e.at;
1197
1198
  turn.segments = [];
1198
- turn.subagents = new Map;
1199
- turn.calls = new Map;
1200
1199
  workIndex = -1;
1201
1200
  answerIndex = -1;
1202
1201
  };
1203
1202
  const addCall = (t, e, call, parentId) => {
1204
1203
  t.calls.set(call.id, call);
1204
+ shownCalls.add(call.id);
1205
1205
  const parent = parentId ? t.subagents.get(parentId) : undefined;
1206
1206
  if (parent)
1207
1207
  parent.calls.push(call);
@@ -1297,6 +1297,8 @@ function foldThread(log) {
1297
1297
  break;
1298
1298
  }
1299
1299
  case "tool": {
1300
+ if (!e.call.title && shownCalls.has(e.call.id) && !turn?.calls.has(e.call.id))
1301
+ break;
1300
1302
  const t = openTurn(e);
1301
1303
  const known = t.calls.get(e.call.id);
1302
1304
  if (known) {
@@ -1311,15 +1313,19 @@ function foldThread(log) {
1311
1313
  break;
1312
1314
  }
1313
1315
  case "subagent": {
1314
- const t = openTurn(e);
1315
- const known = t.subagents.get(e.id);
1316
+ const known = turn?.subagents.get(e.id);
1316
1317
  if (known) {
1317
1318
  if (e.title !== undefined)
1318
1319
  known.title = e.title;
1319
1320
  if (e.status !== undefined)
1320
1321
  known.status = e.status;
1321
1322
  } else {
1323
+ const running = e.status === "in_progress" || e.status === "pending";
1324
+ if (!running && (shownSubagents.has(e.id) || !e.title))
1325
+ break;
1326
+ const t = openTurn(e);
1322
1327
  const seg = { kind: "subagent", id: e.id, title: e.title ?? "Subagent", status: e.status ?? "in_progress", calls: [] };
1328
+ shownSubagents.add(e.id);
1323
1329
  t.subagents.set(e.id, seg);
1324
1330
  t.segments.push(seg);
1325
1331
  }
@@ -66093,6 +66099,19 @@ function hostSaysHeader(ctx, row, opts) {
66093
66099
  return opts.spawn !== false && !!row.ccSessionId && !agentHost(ctx).isRunning(row.id);
66094
66100
  }
66095
66101
  async function launchSession(ctx, input, opts = {}) {
66102
+ const before = launches.get(input.featureId);
66103
+ const launch3 = (before ?? Promise.resolve()).catch(() => {
66104
+ return;
66105
+ }).then(() => openMainChat(ctx, input, opts));
66106
+ launches.set(input.featureId, launch3);
66107
+ try {
66108
+ return await launch3;
66109
+ } finally {
66110
+ if (launches.get(input.featureId) === launch3)
66111
+ launches.delete(input.featureId);
66112
+ }
66113
+ }
66114
+ async function openMainChat(ctx, input, opts) {
66096
66115
  if (input.kind === "drive-fix") {
66097
66116
  throw new GateError('a drive-fix session is opened by "Fix drive" on the failed drive itself, not as a talk ' + "session \u2014 it needs the failure in hand and the developer's own checkout to repair.");
66098
66117
  }
@@ -66428,7 +66447,7 @@ function probePrepareHost(repoPath) {
66428
66447
  ...lock ? { packageManager: lock[1] } : {}
66429
66448
  };
66430
66449
  }
66431
- var HELD_OPENING_END = "The human's message follows.", COMPOSE_FILES;
66450
+ var HELD_OPENING_END = "The human's message follows.", launches, COMPOSE_FILES;
66432
66451
  var init_launcher = __esm(() => {
66433
66452
  init_paths();
66434
66453
  init_src();
@@ -66455,6 +66474,7 @@ var init_launcher = __esm(() => {
66455
66474
  init_lockfiles();
66456
66475
  init_sessions();
66457
66476
  init_end_session();
66477
+ launches = new Map;
66458
66478
  COMPOSE_FILES = [
66459
66479
  "docker-compose.yml",
66460
66480
  "docker-compose.yaml",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runcastle",
3
- "version": "1.5.9",
3
+ "version": "1.6.0",
4
4
  "description": "Burn tickets into shipped features with Claude Code.",
5
5
  "license": "FSL-1.1-ALv2",
6
6
  "type": "module",
@@ -8,7 +8,7 @@ Scope-specific skills, each namespaced `/runcastle:<skill>`:
8
8
 
9
9
  | Skill | Invoked | Does |
10
10
  |---|---|---|
11
- | `/runcastle:feature` | entry for `kind=chat` | the feature's lead from its first message to merge: grills when the intent is unclear, records decisions, writes the spec, builds itself or writes tickets and runs rounds, reviews when it is worth it, hands over the drive; grilling, spec, tickets, rounds, planning alone, the preview and design live in its `references/` |
11
+ | `/runcastle:feature` | entry for `kind=chat` | the feature's lead from its first message to merge: grills on what the brief did not settle, records decisions, writes the spec, builds itself or writes tickets and runs rounds, reviews when it is worth it, hands over the drive; grilling, spec, tickets, rounds, planning alone, the preview and design live in its `references/` |
12
12
  | `/runcastle:qa` | entry for `kind=qa` | read-only Q&A over an existing feature; never changes it |
13
13
  | `/runcastle:project` | entry for `kind=project` | project scope, not feature scope: consults the portfolio, advises on how a lump of intent should be cut into N features and creates them, routes, answers portfolio questions, curates advisory-only, and owns `CONTEXT.md` |
14
14
  | `/runcastle:prepare` | entry for `kind=prepare` | *original* — establishes the project's prepared settings and drive machinery with the human |
@@ -17,7 +17,7 @@ Call `mcp__runcastle__get_feature_context` first, and again whenever you are uns
17
17
 
18
18
  ## Understand before you build
19
19
 
20
- When the intent is unclear, grill: one question at a time, each with your recommended answer and why. Look facts up in the code rather than asking; ask the human only for decisions. Record each settled decision in `docs/features/<slug>/decisions.md` the moment it settles. When something surfaces that is plainly its own feature, offer to park it as a backlog feature with `create_feature({ title, oneLiner, brief, draft: true })` and get back to this one. When the brief is already concrete, skip the grilling. How: `./references/grilling.md`.
20
+ Grill before you settle anything the brief did not: one question at a time, each with your recommended answer and why. Look facts up in the code rather than asking; ask the human only for decisions. A concrete brief narrows the grill and does not cancel it: before you write the spec, name the decisions the brief did not settle and put them to the human one at a time. Skip the grill only when none remain, and say so in chat. The "Proceed with your task" line you were launched with tells you to open this skill; it is no go-ahead to skip this. (A run with no human present has nobody to ask, and `./references/planning-alone.md` governs it.) Record each settled decision in `docs/features/<slug>/decisions.md` the moment it settles. When something surfaces that is plainly its own feature, offer to park it as a backlog feature with `create_feature({ title, oneLiner, brief, draft: true })` and get back to this one. How: `./references/grilling.md`.
21
21
 
22
22
  Write `spec.md` once what the feature does is settled, whether you build it yourself or hand it to workers: it is the record of what the feature is. How: `./references/spec.md`.
23
23
 
@@ -1,7 +1,7 @@
1
1
  # Grilling, and recording what was decided
2
2
 
3
- Load this when the human's intent is unclear and you are about to interview
4
- them, or when you are about to write or change `decisions.md`.
3
+ Load this when you are about to interview the human on anything the brief did
4
+ not settle, or when you are about to write or change `decisions.md`.
5
5
 
6
6
  ## Context hygiene is the whole game
7
7
 
@@ -11,8 +11,9 @@ pressure, you grilled too wide: narrow, don't compact.
11
11
 
12
12
  ## Grill relentlessly
13
13
 
14
- Interview the human about every aspect of the feature until you reach a
15
- genuinely shared understanding. Walk each branch of the design tree, resolving
14
+ A concrete brief narrows the grill and does not cancel it: start from the
15
+ decisions the brief did not settle. Interview the human about every aspect of
16
+ the feature until you reach a genuinely shared understanding. Walk each branch of the design tree, resolving
16
17
  dependencies between decisions one at a time.
17
18
 
18
19
  - **One question at a time.** Wait for the answer before the next. Asking
@@ -11,7 +11,7 @@ You belong to the **project**, not to any feature. You have no feature state of
11
11
 
12
12
  Your defining job is the one no other surface in runcastle can do: **intake and decomposition terminating in feature creation**. Every other door into the pipeline demands a title and a one-liner up front, which means it demands the human has already cut their thought into a feature. You are where they don't have to — and, because you are the only session that can see the *whole portfolio*, you are the only one that can tell them their thought is really two features, or one they already shipped.
13
13
 
14
- You are a **shape griller, not a design griller.** You grill across the whole lump of intent — breadth-first, only what could change the cut — so the cut is sized on real information. The deep design interrogation belongs to the feature's own session (`/runcastle:feature`); yours is the conversation one level up, about what should exist and how it should be cut.
14
+ You are a **shape griller, not a design griller.** You grill across the whole lump of intent — breadth-first, on what could change the cut or what the human gets — so the cut is sized on real information and nothing surprises them later. The deep design interrogation belongs to the feature's own session (`/runcastle:feature`); yours is the conversation one level up, about what should exist and how it should be cut.
15
15
 
16
16
  Everything else you do — portfolio Q&A, routing, curation, the charter — is support for that job or a consequence of being the one session at project scope.
17
17
 
@@ -67,6 +67,8 @@ Lazy is about *timing*, not about skipping — the moment a feature idea arrives
67
67
 
68
68
  If it turns out there is **no charter**, note it and read on — see §5. Do not scaffold one.
69
69
 
70
+ **The line you were launched with is no go-ahead.** "Proceed with your task" tells you to open this skill, and it can reach you right ahead of the human's first message. It never means skip the grill: what follows it still goes through §1.
71
+
70
72
  ## 1. Intake — consult the portfolio, advise, then create
71
73
 
72
74
  A feature idea has landed. The order is fixed, and it is the whole point of this session: **look first, advise second, create last.**
@@ -88,14 +90,15 @@ Size the read to the idea — but **do not skip it**. "I did not check" is not a
88
90
  Now talk. In this order, and all of it before any `create_feature`:
89
91
 
90
92
  - **Report what you found, with addresses.** "We shipped `notes-inbox` in June; its digest says the promote path was left undone — that is most of what you are asking for." Adjacency, overlap and outright duplication are the findings the human cannot get anywhere else. **"We already built this" and "an ADR already settles this" are successful outcomes**, not failures to create something.
91
- - **Shape-grill before you propose the cut.** One question at a time, each with your recommended answer attached, and wait for the answer before the next. Work **breadth-first across the main ideas** — touch every piece of the lump before you go any deeper into one, and never go deep into any. Ask only what could change the cut:
93
+ - **Shape-grill before you propose the cut.** One question at a time, each with your recommended answer attached, and wait for the answer before the next. Work **breadth-first across the main ideas** — touch every piece of the lump before you go any deeper into one, and never go deep into any. Ask what could change the cut, or what the human gets:
92
94
  - **the pieces** — what separate things are in this lump;
93
95
  - **the core** — which piece is the one the rest exists for;
94
96
  - **the uncertainty** — where the human is unsure, and what they would want to test-drive first;
95
97
  - **the width** — roughly how wide each piece is, including whether it needs research or a prototype before its design can lock.
96
98
 
97
- If you cannot say which way an answer would swing the cut, you do not need to ask it. The grill **stops at the cut**: it locks no decisions and writes no feature docs.
98
- - **Recommend, don't interrogate.** Put your proposed cut to them and say why it is the cut. They correct or confirm. Never ask a bare question with no recommendation attached.
99
+ If you cannot say how an answer would swing the cut or change what the human gets, you do not need to ask it. The grill **stops at the cut**: it locks no decisions and writes no feature docs.
100
+ - **A short or confident request is not a settled one.** Propose no cut and create nothing until the human has answered at least one question from you in this conversation, unless they said in words to skip it ("just do it", "you decide"). The working-agreement question does not count. Ask about anything that changes what they get or what it does for them, so that nothing about the work surprises them later. This is a shape question still: UX detail, edge cases and implementation choices go in the brief under **open**, as questions for the feature's own grill.
101
+ - **Recommend with every question, and propose after the grill.** Never ask a bare question with no recommendation attached. Once the grill has run, put your proposed cut to them and say why it is the cut. They correct or confirm.
99
102
  - **Suggest how to split the work.** This is the advice they came for: is this one feature or three? What lands first, and what is it that later work needs from it? What should be built first, if the obvious version is too big to be worth doing whole? Say which order you would take and why.
100
103
  - **Cut until every feature fits one ideation window.** Each feature you propose must be thinkable in a single `/runcastle:feature` session. A piece that is not gets cut further, or its later parts are parked as drafts. Big intent never reaches ideation as one feature — you are the size gate.
101
104
  - **Push on the cut, not the design.** For each candidate: *what must this feature NOT swallow?* A boundary nobody can state is not a boundary.
@@ -139,7 +142,7 @@ It is written into `brief.md` verbatim and it is what the feature's agent (and e
139
142
  Anything that arrives (from the human, or from a sweep in §6) goes to exactly one of:
140
143
 
141
144
  1. **A new feature** — it has real design questions, which its *own* grill session will work. `create_feature` with a brief.
142
- 2. **A small, concrete change** — work too small to deserve a conversation ("make this darker"; "expected X, got Y, repro like this"). Still `create_feature({ title, oneLiner, brief })`, with a brief concrete enough that nothing is left to grill: what to change, and the repro or the expected/got for a bug. Its own agent reads the brief and the code, does a small change itself or writes tickets, and asks the human for the yes in its chat. **One feature per change, not per fix:** several small fixes that belong to the same change go in that one brief; creating one each would give you a feature each. **During notes triage that rule widens to one batched feature per triage session** — every small theme of the pass goes into that single brief (**Notes triage**).
145
+ 2. **A small, concrete change** — work too small for a design conversation ("make this darker"; "expected X, got Y, repro like this"), though §1b's floor still applies. Still `create_feature({ title, oneLiner, brief })`, with a brief concrete enough that nothing is left to grill: what to change, and the repro or the expected/got for a bug. Its own agent reads the brief and the code, does a small change itself or writes tickets, and asks the human for the yes in its chat. **One feature per change, not per fix:** several small fixes that belong to the same change go in that one brief; creating one each would give you a feature each. **During notes triage that rule widens to one batched feature per triage session** — every small theme of the pass goes into that single brief (**Notes triage**).
143
146
  3. **An existing feature's change** — it belongs to a feature already in flight. Once the human agrees that is where it goes, **send it to that feature's agent** with `send_to_feature`, carrying the reasoning, not a pointer to this chat. When the feature is busy (**Orchestrating**), wait, or give the human the line to say in its chat themselves.
144
147
  4. **More rounds** — the feature is ready and the drive taught them it is not right yet. Send what is wrong to its agent with `send_to_feature`, or the human says so in that feature's chat or with **Send to agent** from the drive; its agent runs more rounds.
145
148
  5. **Nothing** — it is already decided, already built, or not worth doing. Say so plainly, with the ADR or the shipped feature that settles it.
@@ -256,7 +259,7 @@ Watch for what no feature's agent can see: **conflicts or contradictions between
256
259
 
257
260
  **Grill as this session always does** (§1): portfolio first, a shape grill one question at a time, the cut agreed before anything is created. Shape-grill only: the design grill is each feature's own agent's. **Write the human's intent into each brief**: the brief is how your judgement survives a compaction, and how a plan is judged later. When the human tells you more about a feature after it exists, record it with `add_to_brief`.
258
261
 
259
- **Have a feature plan itself** with `plan_feature` when the human asked for it, or the agreement calls for it and you judge the feature ready. Start a backlog feature with `start_feature`, stating its base branch as §1c says; up-next features start themselves when what they wait on merges, so you only watch for them. A backlog feature waits for the human's word or the agreement's, including when a feature you merge was what it waited on.
262
+ **Have a feature plan itself** with `plan_feature` when the human asked for it, or the agreement calls for it and you judge the feature ready. A feature that plans itself has no human to grill, so your questions are the only ones the human gets before its plan: ask there anything that would surprise them about what the feature does, and put the answers in its brief. That is still no design grill. Start a backlog feature with `start_feature`, stating its base branch as §1c says; up-next features start themselves when what they wait on merges, so you only watch for them. A backlog feature waits for the human's word or the agreement's, including when a feature you merge was what it waited on.
260
263
 
261
264
  ### Talking to a feature's agent
262
265
 
@@ -325,7 +328,7 @@ A session that edits without committing leaves a dirty tree, and a dirty tree is
325
328
 
326
329
  ## Do NOT
327
330
 
328
- - **Never create a feature before you have consulted the portfolio and agreed the cut.** §1's order — look, advise, create — is the session.
331
+ - **Never create a feature before you have consulted the portfolio, heard an answer from the human and agreed the cut.** §1's order — look, advise, create — is the session.
329
332
  - **Never run a design grilling.** Shape-grill for the cut, and stop there. You resolve *what should exist and how it is cut*; the feature's own `/runcastle:feature` session resolves *what it should be*. Design questions — data shapes, UX detail, edge cases, locking decisions — get handed on, not worked here.
330
333
  - **Never act on a feature beyond what the human asked, or what a cut's working agreement covers.** See **Orchestrating**, *What you act on*.
331
334
  - **Never touch another feature's docs.** `docs/features/<slug>/` belongs to that feature's sessions; you read it, you do not edit it. `add_to_brief` is the one write you have, and it only appends.
@@ -0,0 +1 @@
1
+ .xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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-outline-style:solid;--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-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--orbit-angle:0deg}}}@layer theme{:root,:host{--font-sans:"Geist Variable", "Segoe UI Variable", system-ui, -apple-system, sans-serif;--font-mono:"Geist Mono Variable", "Cascadia Code", ui-monospace, Consolas, monospace;--spacing:.25rem;--container-sm:24rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-snug:1.375;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin .8s linear infinite;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-canvas:#0a0c11;--color-surface:#10131a;--color-surface-raised:#161a24;--color-surface-hover:#eceef409}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-surface-hover:color-mix(in oklab, var(--color-text) 3.5%, transparent)}}:root,:host{--color-surface-selected:#eceef40f}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-surface-selected:color-mix(in oklab, var(--color-text) 6%, transparent)}}:root,:host{--color-fill-card:#eceef406}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-fill-card:color-mix(in oklab, var(--color-text) 2.5%, transparent)}}:root,:host{--color-fill-well:#eceef40f}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-fill-well:color-mix(in oklab, var(--color-text) 6%, transparent)}}:root,:host{--color-surface-inset:#0c0e14;--color-border:#222837;--color-border-subtle:#c8d7ff0f;--color-border-strong:#333a4d;--color-text:#eceef4;--color-text-secondary:#a2a8b9;--color-text-tertiary:#8a91a5;--color-text-disabled:#4b5163;--color-icon:#8990a4;--color-primary:#eceef4;--color-primary-hover:#fff;--color-on-primary:#0a0c11;--color-accent:#4f8ef7;--color-accent-text:#7aaafa;--color-accent-fill:var(--color-accent);--color-accent-subtle:#16213a;--color-success:#46b67a;--color-success-text:#46b67a;--color-warning:#e2a53b;--color-warning-text:#e2a53b;--color-danger:#f06363;--color-danger-text:#f06363;--color-danger-subtle:#2a1515;--color-phase-draft:var(--color-text-disabled);--color-phase-ideation:#ec7cb5;--color-phase-ideation-text:#ec7cb5;--color-phase-spec:#35c2b8;--color-phase-spec-text:#35c2b8;--color-phase-planning:var(--color-phase-spec);--color-phase-planning-text:var(--color-phase-spec-text);--color-phase-tickets:var(--color-warning);--color-phase-tickets-text:var(--color-warning-text);--color-phase-implementation:#f08a4b;--color-phase-implementation-text:#f08a4b;--color-phase-building:var(--color-phase-implementation);--color-phase-building-text:var(--color-phase-implementation-text);--color-phase-review:var(--color-accent);--color-phase-review-text:var(--color-accent);--color-phase-shipped:var(--color-success);--color-phase-shipped-text:var(--color-success-text);--color-focus-ring:var(--color-accent);--color-scrim:#0009;--text-xs:12px;--text-xs--line-height:16px;--text-sm:13px;--text-sm--line-height:20px;--text-md:14px;--text-md--line-height:20px;--text-base:14px;--text-base--line-height:22px;--text-lg:16px;--text-lg--line-height:24px;--text-lg--letter-spacing:-.01em;--text-xl:22px;--text-xl--line-height:28px;--text-xl--letter-spacing:-.02em;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--shadow-popover:var(--elevation-popover);--shadow-dialog:var(--elevation-dialog);--ease-app:cubic-bezier(.22, .61, .24, 1);--ease-out-app:cubic-bezier(.16, 1, .3, 1);--animate-rise-in:riseIn var(--dur-3) var(--ease-out-app) both;--animate-fade-in:fadeIn var(--dur-2) var(--ease-out-app) both;--animate-dialog-in:dialogIn var(--dur-3) var(--ease-out-app) both;--animate-backdrop-in:backdropIn var(--dur-2) var(--ease-out-app) both;--animate-slide-in-right:slideInRight var(--dur-3) var(--ease-out-app) both;--animate-toast-in:toastIn var(--dur-3) var(--ease-out-app) both;--animate-breathe:breathe 2s ease-in-out infinite;--animate-overlay-in:cmdkIn var(--dur-2) var(--ease-out-app);--animate-dot-glow:dotGlow 2.2s var(--ease-app) infinite;--control-sm:24px;--control-h:32px;--control-lg:36px;--row-h:36px;--list-row-h:44px;--menu-item-h:32px;--menu-max-h:360px;--topbar-h:44px;--sidebar-w:248px;--inspector-w:320px;--aside-w:380px;--content-max:760px;--content-wide:1040px;--artifact-w:380px;--chat-panel-w:400px;--notes-rail-w:360px;--dur-1:.12s;--dur-2:.18s;--dur-3:.24s;--ring:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-focus-ring)}}@layer base{button{appearance:none;color:inherit;background:0 0;border:0;padding:0;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}:is(input,textarea,select):focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-1px}details[data-disclosure]::details-content{overflow-clip-margin:4px;block-size:0;transition:block-size var(--dur-2) var(--ease-app), content-visibility var(--dur-2) allow-discrete;overflow:clip}details[data-disclosure][open]::details-content{block-size:auto}}@layer components;@layer utilities{.\@container\/panel{container:panel/inline-size}.\@container{container-type:inline-size}.orbit-light:before{content:"";border-radius:inherit;pointer-events:none;background:conic-gradient(from var(--orbit-angle), transparent 0 64%, #4f8ef7bf 84%, transparent 98%);padding:1px;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.orbit-light:before{background:conic-gradient(from var(--orbit-angle), transparent 0 64%, color-mix(in oklab, var(--color-accent) 75%, transparent) 84%, transparent 98%)}}.orbit-light:before{-webkit-mask-composite:xor,source-over;-webkit-mask-composite:xor,source-over;animation:4s linear infinite orbit;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.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}.sticky{position:sticky}.inset-0{inset:0}.inset-3{inset:calc(var(--spacing) * 3)}.inset-x-0{inset-inline:0}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.inset-y-0{inset-block:0}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-5{top:calc(var(--spacing) * -5)}.-top-6{top:calc(var(--spacing) * -6)}.-top-11{top:calc(var(--spacing) * -11)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.top-7{top:calc(var(--spacing) * 7)}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.-right-\[3px\]{right:-3px}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-7{right:calc(var(--spacing) * 7)}.right-8{right:calc(var(--spacing) * 8)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1\.5{bottom:calc(var(--spacing) * 1.5)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-1\.5{left:calc(var(--spacing) * -1.5)}.-left-\[3px\]{left:-3px}.left-0{left:0}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.-z-10{z-index:calc(10 * -1)}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-\[200\]{z-index:200}.z-\[300\]{z-index:300}.z-\[400\]{z-index:400}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.m-4{margin:calc(var(--spacing) * 4)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-2\.5{margin-inline:calc(var(--spacing) * -2.5)}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-0{margin-inline:0}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-2\.5{margin-inline:calc(var(--spacing) * 2.5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.-my-0\.5{margin-block:calc(var(--spacing) * -.5)}.my-1{margin-block:var(--spacing)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-5{margin-block:calc(var(--spacing) * 5)}.-mt-3\.5{margin-top:calc(var(--spacing) * -3.5)}.mt-0{margin-top:0}.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-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-px{margin-top:1px}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\.5{margin-right:calc(var(--spacing) * 2.5)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.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-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-1\.5{margin-left:calc(var(--spacing) * -1.5)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-9{margin-left:calc(var(--spacing) * 9)}.ml-\[34px\]{margin-left:34px}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!hidden{display:none!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.size-\(--control-h\){width:var(--control-h);height:var(--control-h)}.size-\(--control-lg\){width:var(--control-lg);height:var(--control-lg)}.size-\(--control-sm\){width:var(--control-sm);height:var(--control-sm)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-\[9px\]{width:9px;height:9px}.size-\[23px\]{width:23px;height:23px}.size-full{width:100%;height:100%}.h-\(--control-h\){height:var(--control-h)}.h-\(--control-lg\){height:var(--control-lg)}.h-\(--control-sm\){height:var(--control-sm)}.h-\(--row-h\){height:var(--row-h)}.h-\(--topbar-h\){height:var(--topbar-h)}.h-0\.75{height:calc(var(--spacing) * .75)}.h-1{height:var(--spacing)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.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-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-13{height:calc(var(--spacing) * 13)}.h-60{height:calc(var(--spacing) * 60)}.h-64{height:calc(var(--spacing) * 64)}.h-70{height:calc(var(--spacing) * 70)}.h-\[26px\]{height:26px}.h-\[54px\]{height:54px}.h-\[86vh\]{height:86vh}.h-\[132px\]{height:132px}.h-\[min\(620px\,76vh\)\]{height:min(620px,76vh)}.h-\[min\(720px\,84vh\)\]{height:min(720px,84vh)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--menu-max-h\){max-height:var(--menu-max-h)}.max-h-\(--radix-popover-content-available-height\){max-height:var(--radix-popover-content-available-height)}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-55{max-height:calc(var(--spacing) * 55)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-120{max-height:calc(var(--spacing) * 120)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[82vh\]{max-height:82vh}.max-h-\[260px\]{max-height:260px}.max-h-\[calc\(100vh-320px\)\]{max-height:calc(100vh - 320px)}.max-h-\[clamp\(300px\,calc\(100dvh-340px\)\,1200px\)\]{max-height:clamp(300px,100dvh - 340px,1200px)}.max-h-\[min\(520px\,76vh\)\]{max-height:min(520px,76vh)}.max-h-\[min\(var\(--radix-dropdown-menu-content-available-height\)\,var\(--menu-max-h\)\)\]{max-height:min(var(--radix-dropdown-menu-content-available-height), var(--menu-max-h))}.max-h-\[min\(var\(--radix-select-content-available-height\)\,var\(--menu-max-h\)\)\]{max-height:min(var(--radix-select-content-available-height), var(--menu-max-h))}.min-h-\(--control-h\){min-height:var(--control-h)}.min-h-\(--list-row-h\){min-height:var(--list-row-h)}.min-h-\(--menu-item-h\){min-height:var(--menu-item-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-65{min-height:calc(var(--spacing) * 65)}.min-h-\[30px\]{min-height:30px}.min-h-full{min-height:100%}.w-\(--aside-w\){width:var(--aside-w)}.w-\(--sidebar-w\){width:var(--sidebar-w)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\/3{width:66.6667%}.w-2\/5{width:40%}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-5\/6{width:83.3333%}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-50{width:calc(var(--spacing) * 50)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-105{width:calc(var(--spacing) * 105)}.w-\[264px\]{width:264px}.w-\[392px\]{width:392px}.w-\[640px\]{width:640px}.w-full{width:100%}.w-px{width:1px}.max-w-\(--content-max\){max-width:var(--content-max)}.max-w-\(--content-wide\){max-width:var(--content-wide)}.max-w-\(--radix-popover-content-available-width\){max-width:var(--radix-popover-content-available-width)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-80{max-width:calc(var(--spacing) * 80)}.max-w-95{max-width:calc(var(--spacing) * 95)}.max-w-96{max-width:calc(var(--spacing) * 96)}.max-w-160{max-width:calc(var(--spacing) * 160)}.max-w-\[44ch\]{max-width:44ch}.max-w-\[60\%\]{max-width:60%}.max-w-\[64ch\]{max-width:64ch}.max-w-\[85\%\]{max-width:85%}.max-w-\[460px\]{max-width:460px}.max-w-\[560px\]{max-width:560px}.max-w-\[620px\]{max-width:620px}.max-w-\[680px\]{max-width:680px}.max-w-\[780px\]{max-width:780px}.max-w-\[860px\]{max-width:860px}.max-w-\[940px\]{max-width:940px}.max-w-\[min\(1400px\,96vw\)\]{max-width:min(1400px,96vw)}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.min-w-\(--radix-select-trigger-width\){min-width:var(--radix-select-trigger-width)}.min-w-0{min-width:0}.min-w-3\.5{min-width:calc(var(--spacing) * 3.5)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-4\.5{min-width:calc(var(--spacing) * 4.5)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.shrink-\[2\]{flex-shrink:2}.shrink-\[3\]{flex-shrink:3}.shrink-\[100\]{flex-shrink:100}.grow{flex-grow:1}.basis-0{flex-basis:0}.basis-80{flex-basis:calc(var(--spacing) * 80)}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.animate-pop-in{animation:popIn var(--dur-2) var(--ease-out-app) both;transform-origin:var(--radix-popper-transform-origin,top)}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-\[120\%\]{--tw-translate-x:calc(120% * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-3{--tw-translate-x:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-px{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.text-shimmer{background-image:linear-gradient(90deg, var(--color-text-tertiary) 0%, var(--color-text-tertiary) 35%, var(--color-text) 50%, var(--color-text-tertiary) 65%, var(--color-text-tertiary) 100%);color:#0000;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;animation:2.4s linear infinite shimmer}.orchestrator-beat [data-node]{opacity:.55}.orchestrator-beat:hover [data-node]{animation:nodeBeat 1.2s var(--ease-app) infinite}.orchestrator-beat:hover [data-node]:nth-of-type(2){animation-delay:.15s}.orchestrator-beat:hover [data-node]:nth-of-type(3){animation-delay:.3s}.orchestrator-beat:hover [data-sheen]{animation:sheen 1.1s var(--ease-app) 1}.animate-backdrop-in{animation:var(--animate-backdrop-in)}.animate-breathe{animation:var(--animate-breathe)}.animate-dialog-in{animation:var(--animate-dialog-in)}.animate-fade-in{animation:var(--animate-fade-in)}.animate-none{animation:none}.animate-rise-in{animation:var(--animate-rise-in)}.animate-slide-in-right{animation:var(--animate-slide-in-right)}.animate-spin{animation:var(--animate-spin)}.animate-toast-in{animation:var(--animate-toast-in)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.cursor-zoom-in{cursor:zoom-in}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.\[scrollbar-width\:thin\]{scrollbar-width:thin}.\[scrollbar-color\:var\(--color-border\)_transparent\]{scrollbar-color:var(--color-border) transparent}.\[scrollbar-color\:var\(--color-border-strong\)_transparent\]{scrollbar-color:var(--color-border-strong) transparent}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[16px_96px_minmax\(0\,1fr\)\]{grid-template-columns:16px 96px minmax(0,1fr)}.grid-cols-\[28px_minmax\(0\,1fr\)_auto\]{grid-template-columns:28px minmax(0,1fr) auto}.grid-cols-\[150px_repeat\(4\,minmax\(176px\,1fr\)\)\]{grid-template-columns:150px repeat(4,minmax(176px,1fr))}.grid-cols-\[176px_minmax\(0\,1fr\)\]{grid-template-columns:176px minmax(0,1fr)}.grid-cols-\[208px_minmax\(0\,1fr\)\]{grid-template-columns:208px minmax(0,1fr)}.grid-cols-\[210px_1fr\]{grid-template-columns:210px 1fr}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[max-content_minmax\(0\,1fr\)\]{grid-template-columns:max-content minmax(0,1fr)}.grid-cols-\[minmax\(0\,1\.5fr\)_minmax\(0\,1\.3fr\)_minmax\(0\,0\.8fr\)_88px_24px\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1.3fr) minmax(0,.8fr) 88px 24px}.grid-cols-\[minmax\(0\,1fr\)_132px_minmax\(0\,1\.2fr\)_auto\]{grid-template-columns:minmax(0,1fr) 132px minmax(0,1.2fr) auto}.grid-cols-\[minmax\(0\,1fr\)_260px_24px\]{grid-template-columns:minmax(0,1fr) 260px 24px}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,300px\)\]{grid-template-columns:minmax(0,1fr) minmax(0,300px)}.grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.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-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-px{gap:1px}.gap-x-0\.5{column-gap:calc(var(--spacing) * .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-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.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)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}: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-border-subtle>:not(:last-child)){border-color:var(--color-border-subtle)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded-\[5px\]{border-radius:5px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-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-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[color-mix\(in_oklab\,var\(--color-accent\)_22\%\,transparent\)\]{border-color:#4f8ef738}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_oklab\,var\(--color-accent\)_22\%\,transparent\)\]{border-color:color-mix(in oklab,var(--color-accent) 22%,transparent)}}.border-accent{border-color:var(--color-accent)}.border-border{border-color:var(--color-border)}.border-border-strong{border-color:var(--color-border-strong)}.border-border-subtle{border-color:var(--color-border-subtle)}.border-current{border-color:currentColor}.border-danger{border-color:var(--color-danger)}.border-primary{border-color:var(--color-primary)}.border-success{border-color:var(--color-success)}.border-text-tertiary{border-color:var(--color-text-tertiary)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.card{background-color:var(--color-fill-card);box-shadow:inset 0 0 0 1px var(--color-border-subtle)}.bg-\[color-mix\(in_oklab\,var\(--color-accent\)_8\%\,transparent\)\]{background-color:#4f8ef714}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--color-accent\)_8\%\,transparent\)\]{background-color:color-mix(in oklab,var(--color-accent) 8%,transparent)}}.bg-\[color-mix\(in_oklab\,var\(--color-accent\)_14\%\,transparent\)\]{background-color:#4f8ef724}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--color-accent\)_14\%\,transparent\)\]{background-color:color-mix(in oklab,var(--color-accent) 14%,transparent)}}.bg-\[color-mix\(in_oklab\,var\(--color-accent\)_18\%\,transparent\)\]{background-color:#4f8ef72e}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--color-accent\)_18\%\,transparent\)\]{background-color:color-mix(in oklab,var(--color-accent) 18%,transparent)}}.bg-\[color-mix\(in_oklab\,var\(--color-danger\)_12\%\,transparent\)\]{background-color:#f063631f}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--color-danger\)_12\%\,transparent\)\]{background-color:color-mix(in oklab,var(--color-danger) 12%,transparent)}}.bg-\[color-mix\(in_oklab\,var\(--color-success\)_12\%\,transparent\)\]{background-color:#46b67a1f}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--color-success\)_12\%\,transparent\)\]{background-color:color-mix(in oklab,var(--color-success) 12%,transparent)}}.bg-\[color-mix\(in_oklab\,var\(--color-text\)_6\%\,transparent\)\]{background-color:#eceef40f}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--color-text\)_6\%\,transparent\)\]{background-color:color-mix(in oklab,var(--color-text) 6%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-danger\)_16\%\,var\(--color-surface\)\)\]{background-color:#342026}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--color-danger\)_16\%\,var\(--color-surface\)\)\]{background-color:color-mix(in srgb,var(--color-danger) 16%,var(--color-surface))}}.bg-\[color-mix\(in_srgb\,var\(--color-icon\)_16\%\,var\(--color-surface\)\)\]{background-color:#232730}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--color-icon\)_16\%\,var\(--color-surface\)\)\]{background-color:color-mix(in srgb,var(--color-icon) 16%,var(--color-surface))}}.bg-\[color-mix\(in_srgb\,var\(--color-success\)_16\%\,var\(--color-surface\)\)\]{background-color:#192d29}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--color-success\)_16\%\,var\(--color-surface\)\)\]{background-color:color-mix(in srgb,var(--color-success) 16%,var(--color-surface))}}.bg-\[color-mix\(in_srgb\,var\(--color-warning\)_16\%\,var\(--color-surface\)\)\]{background-color:#322a1f}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--color-warning\)_16\%\,var\(--color-surface\)\)\]{background-color:color-mix(in srgb,var(--color-warning) 16%,var(--color-surface))}}.bg-accent{background-color:var(--color-accent)}.bg-accent-fill{background-color:var(--color-accent-fill)}.bg-accent-subtle{background-color:var(--color-accent-subtle)}.bg-accent-subtle\/40{background-color:#16213a66}@supports (color:color-mix(in lab, red, red)){.bg-accent-subtle\/40{background-color:color-mix(in oklab, var(--color-accent-subtle) 40%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-border-subtle{background-color:var(--color-border-subtle)}.bg-canvas{background-color:var(--color-canvas)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-subtle{background-color:var(--color-danger-subtle)}.bg-fill-well{background-color:var(--color-fill-well)}.bg-icon{background-color:var(--color-icon)}.bg-inherit{background-color:inherit}.bg-on-primary{background-color:var(--color-on-primary)}.bg-primary{background-color:var(--color-primary)}.bg-scrim{background-color:var(--color-scrim)}.bg-scrim\/20{background-color:#0000001f}@supports (color:color-mix(in lab, red, red)){.bg-scrim\/20{background-color:color-mix(in oklab, var(--color-scrim) 20%, transparent)}}.bg-scrim\/40{background-color:#0000003d}@supports (color:color-mix(in lab, red, red)){.bg-scrim\/40{background-color:color-mix(in oklab, var(--color-scrim) 40%, transparent)}}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-hover{background-color:var(--color-surface-hover)}.bg-surface-inset{background-color:var(--color-surface-inset)}.bg-surface-inset\/70{background-color:#0c0e14b3}@supports (color:color-mix(in lab, red, red)){.bg-surface-inset\/70{background-color:color-mix(in oklab, var(--color-surface-inset) 70%, transparent)}}.bg-surface-raised{background-color:var(--color-surface-raised)}.bg-surface-selected{background-color:var(--color-surface-selected)}.bg-text-disabled{background-color:var(--color-text-disabled)}.bg-text-secondary{background-color:var(--color-text-secondary)}.bg-text-tertiary{background-color:var(--color-text-tertiary)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.\[background-image\:linear-gradient\(to_right\,color-mix\(in_oklab\,var\(--color-accent\)_14\%\,transparent\)_1px\,transparent_1px\)\,linear-gradient\(to_bottom\,color-mix\(in_oklab\,var\(--color-accent\)_14\%\,transparent\)_1px\,transparent_1px\)\]{background-image:linear-gradient(90deg,#4f8ef724 1px,#0000 1px),linear-gradient(#4f8ef724 1px,#0000 1px)}@supports (color:color-mix(in lab, red, red)){.\[background-image\:linear-gradient\(to_right\,color-mix\(in_oklab\,var\(--color-accent\)_14\%\,transparent\)_1px\,transparent_1px\)\,linear-gradient\(to_bottom\,color-mix\(in_oklab\,var\(--color-accent\)_14\%\,transparent\)_1px\,transparent_1px\)\]{background-image:linear-gradient(to right,color-mix(in oklab,var(--color-accent) 14%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in oklab,var(--color-accent) 14%,transparent) 1px,transparent 1px)}}.bg-\[linear-gradient\(100deg\,color-mix\(in_oklab\,var\(--color-accent\)_16\%\,var\(--color-canvas\)\)\,color-mix\(in_oklab\,var\(--color-accent\)_5\%\,var\(--color-canvas\)\)_70\%\)\]{background-image:linear-gradient(100deg,#152136,#0d131d 70%)}@supports (color:color-mix(in lab, red, red)){.bg-\[linear-gradient\(100deg\,color-mix\(in_oklab\,var\(--color-accent\)_16\%\,var\(--color-canvas\)\)\,color-mix\(in_oklab\,var\(--color-accent\)_5\%\,var\(--color-canvas\)\)_70\%\)\]{background-image:linear-gradient(100deg,color-mix(in oklab,var(--color-accent) 16%,var(--color-canvas)),color-mix(in oklab,var(--color-accent) 5%,var(--color-canvas)) 70%)}}.bg-\[linear-gradient\(100deg\,transparent\,color-mix\(in_oklab\,var\(--color-text\)_7\%\,transparent\)\,transparent\)\]{background-image:linear-gradient(100deg,#0000,#eceef412,#0000)}@supports (color:color-mix(in lab, red, red)){.bg-\[linear-gradient\(100deg\,transparent\,color-mix\(in_oklab\,var\(--color-text\)_7\%\,transparent\)\,transparent\)\]{background-image:linear-gradient(100deg,transparent,color-mix(in oklab,var(--color-text) 7%,transparent),transparent)}}.bg-\[linear-gradient\(to_bottom\,transparent\,var\(--color-surface\)_24px\)\]{background-image:linear-gradient(to bottom,transparent,var(--color-surface) 24px)}.bg-\[linear-gradient\(to_bottom\,var\(--color-surface\)\,transparent\)\]{background-image:linear-gradient(to bottom,var(--color-surface),transparent)}.\[mask-image\:linear-gradient\(to_left\,black\,transparent\)\]{-webkit-mask-image:linear-gradient(270deg,#000,#0000);mask-image:linear-gradient(270deg,#000,#0000)}.\[background-size\:12px_12px\]{background-size:12px 12px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-px{padding:1px}.px-0{padding-inline:0}.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-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0{padding-block:0}.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-3\.75{padding-block:calc(var(--spacing) * 3.75)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pt-\[8vh\]{padding-top:8vh}.pt-\[12vh\]{padding-top:12vh}.pt-\[14vh\]{padding-top:14vh}.pt-px{padding-top:1px}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-0{padding-left:0}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-4\.5{padding-left:calc(var(--spacing) * 4.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-5\.5{padding-left:calc(var(--spacing) * 5.5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-8\.5{padding-left:calc(var(--spacing) * 8.5)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-10\.5{padding-left:calc(var(--spacing) * 10.5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-\[-1px\]{vertical-align:-1px}.align-\[-2px\]{vertical-align:-2px}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));letter-spacing:var(--tw-tracking,var(--text-lg--letter-spacing))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));letter-spacing:var(--tw-tracking,var(--text-xl--letter-spacing))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-md{font-size:var(--text-md);line-height:var(--tw-leading,var(--text-md--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.88em\]{font-size:.88em}.text-\[0\.93em\]{font-size:.93em}.text-\[1\.3em\]{font-size:1.3em}.text-\[1\.12em\]{font-size:1.12em}.text-\[1em\]{font-size:1em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-\[20px\]{--tw-leading:20px;line-height:20px}.leading-\[22px\]{--tw-leading:22px;line-height:22px}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.wrap-anywhere{overflow-wrap:anywhere}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[color-mix\(in_oklab\,var\(--color-accent-text\)_70\%\,var\(--color-text-tertiary\)\)\]{color:#7fa3e1}@supports (color:color-mix(in lab, red, red)){.text-\[color-mix\(in_oklab\,var\(--color-accent-text\)_70\%\,var\(--color-text-tertiary\)\)\]{color:color-mix(in oklab,var(--color-accent-text) 70%,var(--color-text-tertiary))}}.text-accent{color:var(--color-accent)}.text-accent-text{color:var(--color-accent-text)}.text-danger{color:var(--color-danger)}.text-danger-text{color:var(--color-danger-text)}.text-icon{color:var(--color-icon)}.text-inherit{color:inherit}.text-on-primary{color:var(--color-on-primary)}.text-phase-building{color:var(--color-phase-building)}.text-phase-draft{color:var(--color-phase-draft)}.text-phase-ideation{color:var(--color-phase-ideation)}.text-phase-implementation{color:var(--color-phase-implementation)}.text-phase-implementation-text{color:var(--color-phase-implementation-text)}.text-phase-planning{color:var(--color-phase-planning)}.text-phase-review{color:var(--color-phase-review)}.text-phase-review-text{color:var(--color-phase-review-text)}.text-phase-shipped{color:var(--color-phase-shipped)}.text-phase-spec{color:var(--color-phase-spec)}.text-phase-tickets{color:var(--color-phase-tickets)}.text-phase-tickets-text{color:var(--color-phase-tickets-text)}.text-success{color:var(--color-success)}.text-success-text{color:var(--color-success-text)}.text-surface{color:var(--color-surface)}.text-text{color:var(--color-text)}.text-text\!{color:var(--color-text)!important}.text-text-disabled{color:var(--color-text-disabled)}.text-text-secondary{color:var(--color-text-secondary)}.text-text-tertiary{color:var(--color-text-tertiary)}.text-warning{color:var(--color-warning)}.text-warning-text{color:var(--color-warning-text)}.lowercase{text-transform:lowercase}.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,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-accent-text\/50{text-decoration-color:#7aaafa80}@supports (color:color-mix(in lab, red, red)){.decoration-accent-text\/50{-webkit-text-decoration-color:color-mix(in oklab, var(--color-accent-text) 50%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-accent-text) 50%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-accent-text) 50%, transparent);text-decoration-color:color-mix(in oklab, var(--color-accent-text) 50%, transparent)}}.decoration-border-strong{-webkit-text-decoration-color:var(--color-border-strong);-webkit-text-decoration-color:var(--color-border-strong);-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong)}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-accent{accent-color:var(--color-accent)}.accent-text{accent-color:var(--color-text)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-85{opacity:.85}.opacity-100{opacity:1}.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-danger\)_45\%\,transparent\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#f0636373)}@supports (color:color-mix(in lab, red, red)){.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-danger\)_45\%\,transparent\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,color-mix(in srgb,var(--color-danger) 45%,transparent))}}.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-danger\)_45\%\,transparent\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-icon\)_45\%\,transparent\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#8990a473)}@supports (color:color-mix(in lab, red, red)){.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-icon\)_45\%\,transparent\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,color-mix(in srgb,var(--color-icon) 45%,transparent))}}.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-icon\)_45\%\,transparent\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-success\)_45\%\,transparent\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#46b67a73)}@supports (color:color-mix(in lab, red, red)){.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-success\)_45\%\,transparent\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,color-mix(in srgb,var(--color-success) 45%,transparent))}}.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-success\)_45\%\,transparent\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-warning\)_45\%\,transparent\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#e2a53b73)}@supports (color:color-mix(in lab, red, red)){.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-warning\)_45\%\,transparent\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,color-mix(in srgb,var(--color-warning) 45%,transparent))}}.shadow-\[0_0_0_1px_color-mix\(in_srgb\,var\(--color-warning\)_45\%\,transparent\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_3px_var\(--color-accent-subtle\)\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,var(--color-accent-subtle));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_5\%\,transparent\)\,inset_0_0_0_1px_var\(--color-border-subtle\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#eceef40d), inset 0 0 0 1px var(--tw-shadow-color,var(--color-border-subtle))}@supports (color:color-mix(in lab, red, red)){.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_5\%\,transparent\)\,inset_0_0_0_1px_var\(--color-border-subtle\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,color-mix(in oklab,var(--color-text) 5%,transparent)), inset 0 0 0 1px var(--tw-shadow-color,var(--color-border-subtle))}}.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_5\%\,transparent\)\,inset_0_0_0_1px_var\(--color-border-subtle\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_7\%\,transparent\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#eceef412)}@supports (color:color-mix(in lab, red, red)){.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_7\%\,transparent\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,color-mix(in oklab,var(--color-text) 7%,transparent))}}.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_7\%\,transparent\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_12\%\,transparent\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#eceef41f)}@supports (color:color-mix(in lab, red, red)){.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_12\%\,transparent\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,color-mix(in oklab,var(--color-text) 12%,transparent))}}.shadow-\[inset_0_1px_0_color-mix\(in_oklab\,var\(--color-text\)_12\%\,transparent\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-dialog{--tw-shadow:var(--elevation-dialog);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-popover{--tw-shadow:var(--elevation-popover);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--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)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + 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)}.ring-\[color-mix\(in_oklab\,var\(--color-accent\)_28\%\,transparent\)\]{--tw-ring-color:#4f8ef747}@supports (color:color-mix(in lab, red, red)){.ring-\[color-mix\(in_oklab\,var\(--color-accent\)_28\%\,transparent\)\]{--tw-ring-color:color-mix(in oklab,var(--color-accent) 28%,transparent)}}.ring-\[color-mix\(in_oklab\,var\(--color-accent\)_35\%\,transparent\)\]{--tw-ring-color:#4f8ef759}@supports (color:color-mix(in lab, red, red)){.ring-\[color-mix\(in_oklab\,var\(--color-accent\)_35\%\,transparent\)\]{--tw-ring-color:color-mix(in oklab,var(--color-accent) 35%,transparent)}}.ring-\[color-mix\(in_oklab\,var\(--color-accent\)_55\%\,transparent\)\]{--tw-ring-color:#4f8ef78c}@supports (color:color-mix(in lab, red, red)){.ring-\[color-mix\(in_oklab\,var\(--color-accent\)_55\%\,transparent\)\]{--tw-ring-color:color-mix(in oklab,var(--color-accent) 55%,transparent)}}.ring-border-subtle{--tw-ring-color:var(--color-border-subtle)}.ring-surface{--tw-ring-color:var(--color-surface)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-offset-4{outline-offset:4px}.outline-accent{outline-color:var(--color-accent)}.sepia{--tw-sepia:sepia(100%);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{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\]{transition-property:border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,border-color\,transform\]{transition-property:color,background-color,border-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[outline-color\]{transition-property:outline-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-\(--dur-1\){--tw-duration:var(--dur-1);transition-duration:var(--dur-1)}.duration-\(--dur-2\){--tw-duration:var(--dur-2);transition-duration:var(--dur-2)}.duration-\(--dur-3\){--tw-duration:var(--dur-3);transition-duration:var(--dur-3)}.ease-app{--tw-ease:var(--ease-app);transition-timing-function:var(--ease-app)}.ease-out-app{--tw-ease:var(--ease-out-app);transition-timing-function:var(--ease-out-app)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\[animation-delay\:300ms\]{animation-delay:.3s}.\[animation-delay\:calc\(var\(--i\)\*20ms\)\]{animation-delay:calc(var(--i) * 20ms)}.\[animation-delay\:calc\(var\(--i\)\*40ms\)\]{animation-delay:calc(var(--i) * 40ms)}.\[animation-fill-mode\:both\]{animation-fill-mode:both}.\[counter-increment\:checklist\]{counter-increment:checklist}.\[counter-reset\:checklist\]{counter-reset:checklist}.\[direction\:rtl\]{direction:rtl}.ring-inset{--tw-ring-inset:inset}.group-open\/disclosure\:rotate-90:is(:where(.group\/disclosure):is([open],:popover-open,:open) *){rotate:90deg}.group-focus-within\:opacity-100:is(:where(.group):focus-within *),.group-focus-within\/msg\:opacity-100:is(:where(.group\/msg):focus-within *){opacity:1}.group-focus-within\/nav\:opacity-0:is(:where(.group\/nav):focus-within *){opacity:0}.group-focus-within\/nav\:opacity-100:is(:where(.group\/nav):focus-within *),.group-focus-within\/note\:opacity-100:is(:where(.group\/note):focus-within *){opacity:1}.group-focus-within\/row\:opacity-0:is(:where(.group\/row):focus-within *){opacity:0}.group-focus-within\/row\:opacity-100:is(:where(.group\/row):focus-within *){opacity:1}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/call\:opacity-100:is(:where(.group\/call):hover *){opacity:1}.group-hover\/choice\:text-text-secondary:is(:where(.group\/choice):hover *){color:var(--color-text-secondary)}.group-hover\/fold\:opacity-100:is(:where(.group\/fold):hover *){opacity:1}.group-hover\/head\:text-text:is(:where(.group\/head):hover *){color:var(--color-text)}.group-hover\/msg\:opacity-100:is(:where(.group\/msg):hover *){opacity:1}.group-hover\/nav\:text-text:is(:where(.group\/nav):hover *){color:var(--color-text)}.group-hover\/nav\:opacity-0:is(:where(.group\/nav):hover *){opacity:0}.group-hover\/nav\:opacity-100:is(:where(.group\/nav):hover *),.group-hover\/note\:opacity-100:is(:where(.group\/note):hover *){opacity:1}.group-hover\/row\:text-text:is(:where(.group\/row):hover *){color:var(--color-text)}.group-hover\/row\:opacity-0:is(:where(.group\/row):hover *){opacity:0}.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *),.group-hover\/sum\:opacity-100:is(:where(.group\/sum):hover *){opacity:1}.group-hover\/thread\:opacity-0:is(:where(.group\/thread):hover *){opacity:0}.group-hover\/thread\:opacity-100:is(:where(.group\/thread):hover *){opacity:1}}.group-has-\[\:focus-visible\]\/nav\:opacity-0:is(:where(.group\/nav):has(:focus-visible) *){opacity:0}.group-has-\[\:focus-visible\]\/nav\:opacity-100:is(:where(.group\/nav):has(:focus-visible) *){opacity:1}.group-has-\[\:focus-visible\]\/thread\:opacity-0:is(:where(.group\/thread):has(:focus-visible) *){opacity:0}.group-has-\[\:focus-visible\]\/thread\:opacity-100:is(:where(.group\/thread):has(:focus-visible) *){opacity:1}.group-has-\[\[aria-expanded\=true\]\]\/nav\:opacity-0:is(:where(.group\/nav):has([aria-expanded=true]) *){opacity:0}.group-aria-expanded\:rotate-180:is(:where(.group)[aria-expanded=true] *){rotate:180deg}.peer-checked\:opacity-100:is(:where(.peer):checked~*){opacity:1}.first-letter\:uppercase:first-letter{text-transform:uppercase}.marker\:text-text-tertiary ::marker{color:var(--color-text-tertiary)}.marker\:text-text-tertiary::marker{color:var(--color-text-tertiary)}.marker\:text-text-tertiary ::-webkit-details-marker{color:var(--color-text-tertiary)}.marker\:text-text-tertiary::-webkit-details-marker{color:var(--color-text-tertiary)}.placeholder\:text-text-disabled::placeholder{color:var(--color-text-disabled)}.placeholder\:text-text-tertiary::placeholder{color:var(--color-text-tertiary)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-4:before{content:var(--tw-content);top:calc(var(--spacing) * 4)}.before\:bottom-5:before{content:var(--tw-content);bottom:calc(var(--spacing) * 5)}.before\:left-\[11px\]:before{content:var(--tw-content);left:11px}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:bg-border-strong:before{content:var(--tw-content);background-color:var(--color-border-strong)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.before\:content-\[counter\(checklist\)\]:before{--tw-content:counter(checklist);content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first\:pl-0:first-child{padding-left:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\:border-primary:checked{border-color:var(--color-primary)}.checked\:bg-primary:checked{background-color:var(--color-primary)}.empty\:hidden:empty{display:none}.focus-within\:border-accent:focus-within{border-color:var(--color-accent)}.focus-within\:bg-surface-hover:focus-within{background-color:var(--color-surface-hover)}.focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.focus-within\:-outline-offset-1:focus-within{outline-offset:calc(1px * -1)}.focus-within\:outline-focus-ring:focus-within{outline-color:var(--color-focus-ring)}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-border:hover{border-color:var(--color-border)}.hover\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\:border-text-tertiary:hover{border-color:var(--color-text-tertiary)}.hover\:bg-border-strong:hover{background-color:var(--color-border-strong)}.hover\:bg-danger-subtle:hover{background-color:var(--color-danger-subtle)}.hover\:bg-surface-hover:hover{background-color:var(--color-surface-hover)}.hover\:bg-surface-hover\/50:hover{background-color:color-mix(in srgb, color-mix(in oklab, var(--color-text) 3.5%, transparent) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-hover\/50:hover{background-color:color-mix(in oklab, var(--color-surface-hover) 50%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-text:hover{color:var(--color-accent-text)}.hover\:text-text:hover{color:var(--color-text)}.hover\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-accent-text:hover{-webkit-text-decoration-color:var(--color-accent-text);-webkit-text-decoration-color:var(--color-accent-text);-webkit-text-decoration-color:var(--color-accent-text);text-decoration-color:var(--color-accent-text)}.checked\:hover\:bg-primary-hover:checked:hover{background-color:var(--color-primary-hover)}}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:bg-surface-inset:focus{background-color:var(--color-surface-inset)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-focus-ring:focus-visible{outline-color:var(--color-focus-ring)}@media (hover:hover){.enabled\:hover\:border-border-strong:enabled:hover{border-color:var(--color-border-strong)}.enabled\:hover\:border-danger-subtle:enabled:hover{border-color:var(--color-danger-subtle)}.enabled\:hover\:border-text-tertiary:enabled:hover{border-color:var(--color-text-tertiary)}.enabled\:hover\:bg-danger-subtle:enabled:hover{background-color:var(--color-danger-subtle)}.enabled\:hover\:bg-primary-hover:enabled:hover{background-color:var(--color-primary-hover)}.enabled\:hover\:bg-surface-hover:enabled:hover{background-color:var(--color-surface-hover)}.enabled\:hover\:text-danger:enabled:hover{color:var(--color-danger)}.enabled\:hover\:text-text:enabled:hover{color:var(--color-text)}.enabled\:hover\:text-text-secondary:enabled:hover{color:var(--color-text-secondary)}}.enabled\:active\:translate-y-px:enabled:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-border:disabled{border-color:var(--color-border)}.disabled\:border-border-subtle:disabled{border-color:var(--color-border-subtle)}.disabled\:bg-surface-selected:disabled{background-color:var(--color-surface-selected)}.disabled\:text-text-disabled:disabled{color:var(--color-text-disabled)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:checked\:bg-text-disabled:disabled:checked{background-color:var(--color-text-disabled)}.has-\[\[aria-expanded\=true\]\]\:opacity-100:has([aria-expanded=true]){opacity:1}.has-\[input\:disabled\]\:cursor-not-allowed:has(:is(input:disabled)){cursor:not-allowed}.has-\[input\[aria-invalid\=true\]\]\:border-danger:has(:is(input[aria-invalid=true])){border-color:var(--color-danger)}.aria-expanded\:border-accent[aria-expanded=true]{border-color:var(--color-accent)}.aria-expanded\:bg-danger-subtle[aria-expanded=true]{background-color:var(--color-danger-subtle)}.aria-expanded\:bg-surface-selected[aria-expanded=true]{background-color:var(--color-surface-selected)}.aria-expanded\:text-danger[aria-expanded=true]{color:var(--color-danger)}.aria-expanded\:text-text[aria-expanded=true]{color:var(--color-text)}.aria-invalid\:border-danger[aria-invalid=true]{border-color:var(--color-danger)}.aria-pressed\:bg-surface-selected[aria-pressed=true]{background-color:var(--color-surface-selected)}.aria-pressed\:text-text[aria-pressed=true]{color:var(--color-text)}.aria-\[current\=true\]\:font-medium[aria-current=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-highlighted\:bg-danger-subtle[data-highlighted]{background-color:var(--color-danger-subtle)}.data-highlighted\:bg-surface-hover[data-highlighted]{background-color:var(--color-surface-hover)}.data-placeholder\:text-text-tertiary[data-placeholder]{color:var(--color-text-tertiary)}.data-\[disabled\=\'\'\]\:cursor-not-allowed[data-disabled=""]{cursor:not-allowed}.data-\[disabled\=\'\'\]\:opacity-50[data-disabled=""]{opacity:.5}.data-\[disabled\=true\]\:cursor-not-allowed[data-disabled=true]{cursor:not-allowed}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[selected\=true\]\:bg-surface-hover[data-selected=true]{background-color:var(--color-surface-hover)}.data-\[state\=checked\]\:font-medium[data-state=checked]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[state\=open\]\:border-accent[data-state=open]{border-color:var(--color-accent)}.data-\[state\=open\]\:bg-surface-hover[data-state=open]{background-color:var(--color-surface-hover)}.data-\[state\=open\]\:bg-surface-selected[data-state=open]{background-color:var(--color-surface-selected)}.data-\[state\=open\]\:text-text[data-state=open]{color:var(--color-text)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (width>=48rem){.md\:w-60{width:calc(var(--spacing) * 60)}.md\:flex-row{flex-direction:row}.md\:overflow-auto{overflow:auto}.md\:overflow-hidden{overflow:hidden}}@container not (width>=1100px){.\@max-\[1100px\]\:absolute{position:absolute}.\@max-\[1100px\]\:inset-y-0{inset-block:0}.\@max-\[1100px\]\:right-0{right:0}.\@max-\[1100px\]\:z-20{z-index:20}.\@max-\[1100px\]\:shadow-dialog{--tw-shadow:var(--elevation-dialog);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@container panel not (width>=520px){.\@max-\[520px\]\/panel\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@container not (width>=56rem){.\@max-4xl\:absolute{position:absolute}.\@max-4xl\:inset-y-0{inset-block:0}.\@max-4xl\:top-\(--topbar-h\){top:var(--topbar-h)}.\@max-4xl\:right-0{right:0}.\@max-4xl\:z-20{z-index:20}.\@max-4xl\:h-auto{height:auto}.\@max-4xl\:shadow-dialog{--tw-shadow:var(--elevation-dialog);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@container (width>=1000px){.\@min-\[1000px\]\:sticky{position:sticky}.\@min-\[1000px\]\:top-4{top:calc(var(--spacing) * 4)}.\@min-\[1000px\]\:-ml-30{margin-left:calc(var(--spacing) * -30)}.\@min-\[1000px\]\:grid-cols-\[120px_minmax\(0\,1fr\)\]{grid-template-columns:120px minmax(0,1fr)}.\@min-\[1000px\]\:gap-0{gap:0}.\@min-\[1000px\]\:px-0{padding-inline:0}.\@min-\[1000px\]\:leading-10{--tw-leading:calc(var(--spacing) * 10);line-height:calc(var(--spacing) * 10)}}.\[\&_\.xterm-viewport\]\:bg-transparent\! .xterm-viewport{background-color:#0000!important}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:text-danger svg{color:var(--color-danger)}.\[\&_svg\]\:text-icon svg{color:var(--color-icon)}.disabled\:\[\&_svg\]\:text-text-disabled:disabled svg{color:var(--color-text-disabled)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\>\*\]\:min-h-0>*{min-height:0}.\[\&\>\*\]\:flex-1>*{flex:1}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:0}.\[\&\>\[data-list-row\]\]\:rounded-none>[data-list-row]{border-radius:0}.\[\&\>\[data-list-row\]\]\:border-b>[data-list-row]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&\>\[data-list-row\]\]\:border-border-subtle>[data-list-row]{border-color:var(--color-border-subtle)}.\[\&\>\[data-list-row\]\:last-child\]\:border-b-0>[data-list-row]:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\>code\]\:border-0>code{border-style:var(--tw-border-style);border-width:0}.\[\&\>code\]\:bg-transparent>code{background-color:#0000}.\[\&\>code\]\:p-0>code{padding:0}.\[\&\>code\]\:text-\[1em\]>code{font-size:1em}.\[\&\>code\]\:text-text-secondary>code{color:var(--color-text-secondary)}.\[\&\>details\:last-child\]\:border-b>details:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&\>details\:last-child\]\:border-border-subtle>details:last-child{border-color:var(--color-border-subtle)}.\[\&\>li\]\:relative>li{position:relative}.\[\&\>li\]\:pl-6>li{padding-left:calc(var(--spacing) * 6)}.\[\&\>ol\]\:mt-1>ol{margin-top:var(--spacing)}.\[\&\>ol\]\:mb-0>ol{margin-bottom:0}.\[\&\>p\]\:mb-1>p{margin-bottom:var(--spacing)}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:mt-0\.5>svg{margin-top:calc(var(--spacing) * .5)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-5>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.\[\&\>ul\]\:mt-1>ul{margin-top:var(--spacing)}.\[\&\>ul\]\:mb-0>ul{margin-bottom:0}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--elevation-popover:0 0 0 1px #ffffff0f, 0 8px 24px -6px #0009, inset 0 1px 0 #eceef40f}@supports (color:color-mix(in lab, red, red)){:root{--elevation-popover:0 0 0 1px #ffffff0f, 0 8px 24px -6px #0009, inset 0 1px 0 color-mix(in oklab, var(--color-text) 6%, transparent)}}:root{--elevation-dialog:0 0 0 1px #ffffff12, 0 24px 64px -12px #000000bf, inset 0 1px 0 #eceef40f}@supports (color:color-mix(in lab, red, red)){:root{--elevation-dialog:0 0 0 1px #ffffff12, 0 24px 64px -12px #000000bf, inset 0 1px 0 color-mix(in oklab, var(--color-text) 6%, transparent)}}:root{interpolate-size:allow-keywords}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-canvas:#f4f6f9;--color-surface:#fff;--color-surface-raised:#fff;--color-surface-hover:#eceef40a}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light]{--color-surface-hover:color-mix(in oklab, var(--color-text) 4%, transparent)}}:root[data-theme=light]{--color-surface-selected:#eceef412}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light]{--color-surface-selected:color-mix(in oklab, var(--color-text) 7%, transparent)}}:root[data-theme=light]{--color-fill-card:#eceef408}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light]{--color-fill-card:color-mix(in oklab, var(--color-text) 3%, transparent)}}:root[data-theme=light]{--color-fill-well:#eceef412}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light]{--color-fill-well:color-mix(in oklab, var(--color-text) 7%, transparent)}}:root[data-theme=light]{--color-surface-inset:#f4f6f9;--color-border:#dfe3ec;--color-border-subtle:#161e3212;--color-border-strong:#cdd2de;--color-text:#161a24;--color-text-secondary:#596075;--color-text-tertiary:#676e82;--color-text-disabled:#a4aab9;--color-icon:#7a8195;--color-primary:#161a24;--color-primary-hover:#2a3040;--color-on-primary:#fff;--color-accent:#3a7ef0;--color-accent-text:#2361d4;--color-accent-subtle:#ecf2fe;--color-accent-fill:var(--color-accent-text);--color-phase-review-text:var(--color-accent-text);--color-success:#23955a;--color-success-text:#137745;--color-warning:#c06e00;--color-warning-text:#9c5600;--color-danger:#df5050;--color-danger-text:#c42828;--color-danger-subtle:#fdeeee;--color-phase-ideation:#d4529a;--color-phase-ideation-text:#ba3176;--color-phase-spec:#10928a;--color-phase-spec-text:#087570;--color-phase-implementation:#d4621a;--color-phase-implementation-text:#ac4b0a;--color-scrim:#161a2447;--elevation-popover:0 0 0 1px #0000000f, 0 8px 24px -8px #00000029, inset 0 1px 0 #eceef40f}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light]{--elevation-popover:0 0 0 1px #0000000f, 0 8px 24px -8px #00000029, inset 0 1px 0 color-mix(in oklab, var(--color-text) 6%, transparent)}}:root[data-theme=light]{--elevation-dialog:0 0 0 1px #0000000f, 0 24px 64px -16px #00000038, inset 0 1px 0 #eceef40f}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light]{--elevation-dialog:0 0 0 1px #0000000f, 0 24px 64px -16px #00000038, inset 0 1px 0 color-mix(in oklab, var(--color-text) 6%, transparent)}}:root[data-theme-switching] *,:root[data-theme-switching] :before,:root[data-theme-switching] :after{transition:none!important}@property --orbit-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.4}}@keyframes dotGlow{0%,to{box-shadow:0 0 0 3px color-mix(in oklab, var(--color-accent) 22%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in oklab, var(--color-accent) 8%, transparent)}}@keyframes riseIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes bodyIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes detailIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@keyframes dialogIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes cmdkIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes orbit{to{--orbit-angle:360deg}}@keyframes nodeBeat{0%,to{opacity:.45}30%{opacity:1}}@keyframes sheen{0%{transform:translate(-120%)}to{transform:translate(220%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-progress]{animation:2s ease-in-out infinite pulse!important}.text-shimmer{color:var(--color-text-secondary);background:0 0}.orbit-light:before{background:#4f8ef759}@supports (color:color-mix(in lab, red, red)){.orbit-light:before{background:color-mix(in oklab, var(--color-accent) 35%, transparent)}}details[data-disclosure]::details-content{transition-duration:.001ms!important}}@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-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--text-sm--line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow:hidden}html{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}:focus-visible:not(input,textarea,select){outline:2px solid var(--color-focus-ring);outline-offset:2px}:is([tabindex="-1"],[role=menuitem],[role=menuitemradio],[role=menuitemcheckbox],[role=option],[cmdk-item]):focus-visible{outline:none}