software-defence-factory 0.18.0 → 0.18.3

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.
@@ -44,7 +44,9 @@ the existing issue/task record, not a second project registry.
44
44
  manager and authenticated SSH forwarding for remote access. Record boot/login
45
45
  prerequisites and test restart recovery without starting another native turn.
46
46
  Updating or stopping an active or unknown writer must not silently interrupt
47
- it. Native history and local references remain outside the package.
47
+ it. Native history and local references remain outside the package. Offer the
48
+ [optional OS release check](../../../docs/npm.md#optional-linux-release-check-timer)
49
+ only when selected; a metadata lookup does not install or activate a release.
48
50
  - **Proof:** start one bounded issue through the installed Inbox or CLI; inspect
49
51
  its native result, explicitly continue it, then run the project's checks and
50
52
  independent review against the exact candidate. Qualify only the authorized
@@ -13,6 +13,7 @@ import { connectBridge, registerBridge } from '../factory/native/bridge-client.m
13
13
  import { acquireProcessLock } from '../factory/native/process-lock.mjs';
14
14
  import { manageNativeService } from '../factory/native/service.mjs';
15
15
  import { issueProvider } from '../factory/issue-provider.mjs';
16
+ import { checkRelease } from '../factory/release-check.mjs';
16
17
 
17
18
  const root=fileURLToPath(new URL('../',import.meta.url));
18
19
  const version=JSON.parse(readFileSync(join(root,'package.json'),'utf8')).version;
@@ -36,6 +37,7 @@ Usage:
36
37
  factory continue ID --turn TURN_ID --feedback TEXT [--state PATH]
37
38
  factory interrupt ID --turn TURN_ID [--state PATH]
38
39
  factory service install|status|start|stop|restart|remove|cancel-maintenance [--state PATH] [--port PORT]
40
+ factory updates check --channel latest|next
39
41
  factory kit --output NEW_DIRECTORY
40
42
  factory foundation
41
43
  factory probe codex
@@ -185,6 +187,11 @@ async function command(args) {
185
187
  const {values,flags}=parse(rest,{positionals:1,allowed:['--state']});
186
188
  return online(stateFrom(flags),async bridge=>print(await bridge.request(`/api/v1/jobs/${jobID(values[0])}/resume`,{})));
187
189
  }
190
+ if(name==='updates') {
191
+ if(rest[0]!=='check')throw new Error('Use updates check --channel latest|next; release activation remains manual.');
192
+ const {flags}=parse(rest.slice(1),{allowed:['--channel']});
193
+ print(await checkRelease({version,channel:flags['--channel']}));return;
194
+ }
188
195
  if(name==='runtime') {
189
196
  const {flags}=parse(rest,{allowed:['--state']});
190
197
  const result={package:'software-defence-factory',version,entrypoint:root,source_checkout:existsSync(join(root,'.git')),native_state:'unknown'};
@@ -13,7 +13,7 @@ The native harness remains the execution engine.
13
13
  | Small bridge | Authenticate local requests, associate issues with native sessions, refuse ambiguous or duplicate operations |
14
14
  | Codex | Agent loop, context, tools, permissions, sessions and execution history |
15
15
  | GitHub | Repository issues, templates, PRs, checks and authorized publication |
16
- | OS service manager | Start the pinned bridge after login/boot and supervise its process |
16
+ | OS service manager | Start the pinned bridge after login/boot, supervise its process and optionally schedule metadata-only release checks |
17
17
 
18
18
  ## Small integration boundaries
19
19
 
@@ -38,6 +38,10 @@ These receipts prevent uncertain writes being replayed; they are not a queue or
38
38
  copy of native conversation history. There is one writer per project workspace.
39
39
  The repository's normal Git tools own commits and branches.
40
40
 
41
+ Operator release checks read public npm metadata independently of the bridge or
42
+ native harness. An optional OS timer only schedules that read; activation remains
43
+ manual and must preserve native work. See [packages and releases](npm.md).
44
+
41
45
  ## Deployment
42
46
 
43
47
  ![Deployment](diagrams/deployment.svg)
@@ -1,7 +1,8 @@
1
1
  # Interfaces and state
2
2
 
3
3
  The Inbox and operational CLI commands use one running loopback bridge. Setup,
4
- login, diagnostics, method export and OS-service management are operator commands.
4
+ login, diagnostics, method export, release checking and OS-service management
5
+ are operator commands.
5
6
  There is no second CLI execution engine.
6
7
 
7
8
  | Intent | CLI |
@@ -27,6 +28,8 @@ New issue loads repository templates, then creates through the repository
27
28
  provider. Creation is separate from Start. Existing repository issues enter the
28
29
  Inbox automatically when loaded; there is no redundant import-as-new-issue flow.
29
30
  GitHub browser login and the execution host's authenticated GitHub CLI are separate.
31
+ For the browser creation, receipt recovery and delivery walkthrough, see
32
+ [setup](setup.md#create-and-deliver-an-issue).
30
33
 
31
34
  The issue CLI uses the same JSON bodies as the dashboard's HTTP requests.
32
35
  `issues draft --file` takes `template` (the selected template ID), `sha`, `title` and `answers`; inspect
@@ -38,6 +41,10 @@ Never generate a fresh ID merely to retry. Inspect `issues submissions` and use
38
41
  `issues recover` to look for the existing upstream issue; recovery does not repeat
39
42
  creation or start an agent.
40
43
 
44
+ Release checking is an operator read: `factory updates check --channel next`
45
+ compares public npm metadata with the executing CLI package. It does not activate
46
+ the pinned service or invoke the harness. See [packages and releases](npm.md).
47
+
41
48
  ## State is observable, not invented
42
49
 
43
50
  - **Backlog**: a repository issue without execution; labels describe planning.
package/docs/migration.md CHANGED
@@ -39,5 +39,4 @@ history locations, service identity and tested/untested limits. Roll back only
39
39
  with a verified idle owner and explicit old-state selection; never point the old
40
40
  runtime at native state or let both write the same workspace.
41
41
 
42
- Native app-server sessions live in the dedicated Codex home. Factory does not
43
- promise that they appear in a separate personal Codex Desktop environment.
42
+ For native session visibility and context boundaries, see [setup](setup.md#native-codex-session-visibility).
package/docs/npm.md CHANGED
@@ -15,6 +15,93 @@ for occasional use. A long-running service pins an installed package and the
15
15
  chosen Node binary; it must not run from an editable source checkout or depend on
16
16
  an npx cache being retained.
17
17
 
18
+ ## Check a selected channel
19
+
20
+ ```sh
21
+ factory updates check --channel next
22
+ ```
23
+
24
+ Choose `next` or `latest` explicitly. The command reads public npm metadata and
25
+ compares it with **the CLI package executing the check**, not the pinned running
26
+ service. Use `factory service status --state PATH` to inspect that service's
27
+ version separately. A global npm upgrade does not activate a service release.
28
+
29
+ The JSON result distinguishes `newer`, `current` and `older`. An older channel is
30
+ never an upgrade: `latest` remains 0.17 while native 0.18 is on `next`. A different
31
+ 0.x minor line requires deliberate migration. A successful lookup exits zero,
32
+ including when a newer release exists; unavailable, oversized or invalid metadata
33
+ exits nonzero and means availability is unknown. Metadata is not package integrity,
34
+ provenance, review or compatibility proof.
35
+
36
+ Checking requires no Factory state, GitHub/Codex login or npm credentials. It does
37
+ not download, install or activate a release, touch native history, or call a model.
38
+
39
+ ## Optional Linux release-check timer
40
+
41
+ Use the OS for periodic checking. After selecting an installed release that
42
+ supports the command, create the following **new** files in your user systemd
43
+ directory (`$XDG_CONFIG_HOME/systemd/user`, normally `~/.config/systemd/user`).
44
+ Inspect existing files first; do not overwrite another operator's units.
45
+
46
+ `factory-release-check.service`:
47
+
48
+ ```ini
49
+ [Unit]
50
+ Description=Check the selected Factory release channel
51
+
52
+ [Service]
53
+ Type=oneshot
54
+ ExecStart="/absolute/node" "/absolute/installed/package/bin/software-defence-factory.mjs" updates check --channel next
55
+ TimeoutStartSec=30
56
+ UMask=0077
57
+ NoNewPrivileges=true
58
+ ```
59
+
60
+ Replace both executable paths with the selected Node and installed package paths;
61
+ `factory runtime` reports the package directory as `entrypoint`; append
62
+ `/bin/software-defence-factory.mjs` for the script path and confirm
63
+ `source_checkout` is false. A version-pinned package can be used instead of the
64
+ global installation. Keep the chosen channel explicit. This unit
65
+ only reads metadata; it never invokes `npm install` or `factory service restart`.
66
+
67
+ `factory-release-check.timer`:
68
+
69
+ ```ini
70
+ [Unit]
71
+ Description=Daily Factory release check
72
+
73
+ [Timer]
74
+ OnCalendar=daily
75
+ RandomizedDelaySec=15m
76
+ Persistent=true
77
+
78
+ [Install]
79
+ WantedBy=timers.target
80
+ ```
81
+
82
+ Validate both files, run one actual lookup, inspect its result, then opt in:
83
+
84
+ ```sh
85
+ systemd-analyze --user verify /absolute/path/factory-release-check.service /absolute/path/factory-release-check.timer
86
+ systemctl --user daemon-reload
87
+ systemctl --user start factory-release-check.service
88
+ journalctl --user -u factory-release-check.service -n 20 --no-pager
89
+ systemctl --user enable --now factory-release-check.timer
90
+ systemctl --user list-timers factory-release-check.timer
91
+ ```
92
+
93
+ The result and errors remain in the OS journal; this is not a dashboard alert or
94
+ an automatic updater. The user service manager must be running; boot without login
95
+ depends on the host's lingering and disk-unlock policy. `Persistent` catches up a
96
+ missed calendar check, subject to the configured random delay; it does not replay
97
+ agent work. See the [systemd timer reference](https://www.freedesktop.org/software/systemd/man/latest/systemd.timer.html).
98
+
99
+ To opt out, disable and stop `factory-release-check.timer`, then remove only the
100
+ two files you created and run `systemctl --user daemon-reload`. This does not stop
101
+ the separate Factory Inbox service or modify native credentials and history.
102
+ Other OS scheduling recipes require separate qualification. No Factory scheduler
103
+ or background loop is installed by the CLI.
104
+
18
105
  ## Update deliberately
19
106
 
20
107
  0.18 uses `next` so old auto-updaters following `latest` do not silently activate a
@@ -27,8 +114,8 @@ then perform the supported service replacement and verify readiness/history/UI.
27
114
  Keep access/profile changes explicit. An npm upgrade alone does not change a
28
115
  pinned running service. See [migration](migration.md) and [recovery](recovery.md).
29
116
 
30
- Automated release checking can belong to an OS service/timer, but unattended
31
- activation remains deferred until safe maintenance and rollback are qualified.
117
+ The optional timer above checks only. Unattended activation remains deferred
118
+ until safe maintenance and rollback are qualified.
32
119
  Do not describe a manual update procedure as an automatic updater.
33
120
 
34
121
  ## Repository delivery
package/docs/recovery.md CHANGED
@@ -18,6 +18,36 @@ bridge. Native Codex owns the full history. Another app-server may read persiste
18
18
  history without knowing a different process's live state; that read alone cannot
19
19
  authorize a competing writer or stopping the original process.
20
20
 
21
+ ## Native Codex login recovery
22
+
23
+ For an expired or revoked login, first inspect work and the selected service:
24
+
25
+ ```sh
26
+ factory status --state /absolute/private/factory-state
27
+ factory service status --state /absolute/private/factory-state
28
+ ```
29
+
30
+ Keep unknown outcomes unknown. Preserve work and reconcile ownership through the
31
+ existing [service operation](#service-operation) rules; do not kill work to
32
+ repair login. Once work is idle and ownership is reconciled, run:
33
+
34
+ ```sh
35
+ factory login --state /absolute/private/factory-state
36
+ factory doctor --state /absolute/private/factory-state
37
+ ```
38
+
39
+ Login is native to the selected Factory Codex home; it does not replace personal
40
+ Codex login. Doctor alone does not prove live inference or token refresh. Do not
41
+ fall back to personal context or duplicate work if authentication remains
42
+ unavailable. For session visibility and account boundaries, see [setup](setup.md#native-codex-session-visibility).
43
+
44
+ A usage-limit response is different from an expired login. A valid account and a
45
+ passing doctor do not establish remaining inference capacity. Preserve the
46
+ current result and wait until native capacity is available; logging in again
47
+ is not a remedy for exhausted usage. Continue a reconciled terminal thread
48
+ explicitly when appropriate, rather than creating a replacement job or switching
49
+ accounts/providers automatically.
50
+
21
51
  ## Service operation
22
52
 
23
53
  ```sh
package/docs/setup.md CHANGED
@@ -40,6 +40,33 @@ is not a real execution or sandbox proof. Model preferences belong in the native
40
40
  configuration; access changes require deliberate requalification. Factory refuses
41
41
  an unexplained change to its pinned configuration or skill catalog.
42
42
 
43
+ ## Native Codex session visibility
44
+
45
+ Codex stores configuration, authentication and history under `CODEX_HOME`
46
+ ([configuration and state locations](https://learn.chatgpt.com/docs/config-file/config-advanced#config-and-state-locations)).
47
+ Factory uses its dedicated Codex home, so the same ChatGPT account does not
48
+ combine local configuration or history. The supported Factory surface is the
49
+ project Inbox and these commands through its owning bridge:
50
+
51
+ ```sh
52
+ factory status --state /absolute/private/factory-state
53
+ factory result ID --state /absolute/private/factory-state
54
+ factory continue ID --turn TURN_ID --feedback TEXT --state /absolute/private/factory-state
55
+ ```
56
+
57
+ A separate personal Codex Desktop or remote connection must not be expected to
58
+ show Factory sessions. Desktop remote connections start their server in the
59
+ remote user's login shell ([remote connection documentation](https://learn.chatgpt.com/docs/remote-connections#connect-to-an-ssh-host)).
60
+ Do not copy or symlink authentication, session or database files, or enable
61
+ personal connections to expose Factory work. A persisted native read does not
62
+ authorize another writer. Desktop visibility or resume requires qualification
63
+ for that deployment and is not needed for Factory's current surface.
64
+
65
+ Local-home separation is not account or plan separation. API authentication and
66
+ subscription login are distinct; do not infer plan or quota behavior from local
67
+ state or promise automatic token refresh or indefinite coexistence. For expired
68
+ or revoked login, follow [native Codex login recovery](recovery.md#native-codex-login-recovery).
69
+
43
70
  ## Start and reach the Inbox
44
71
 
45
72
  ```sh
@@ -71,6 +98,41 @@ Login normally starts a user service; boot without login needs the host's user
71
98
  lingering policy. Record disk-unlock and network prerequisites. Do not claim a
72
99
  reboot was tested merely because a service is enabled.
73
100
 
101
+ ## Create and deliver an issue
102
+
103
+ In the Inbox, choose **New issue** and select a repository template or **Blank
104
+ issue**. Complete every required field. Review the compiled title and description,
105
+ then check the repository and acting GitHub identity shown before choosing **Create
106
+ issue**. The receipt confirms the GitHub issue; creation does not start Codex.
107
+ **Done** returns to the Inbox, which refreshes its issue list.
108
+
109
+ Once the UI shows **Issue #N created**, GitHub creation is confirmed, even if the
110
+ browser closes before **Done**. Do not create a replacement issue. If the POST
111
+ response disappears before confirmation, treat the upstream outcome as uncertain
112
+ until that same submission is reconciled. The composer checks its receipt after a
113
+ lost response; use **Check submission** when an uncertain receipt is listed. From
114
+ the CLI, inspect the submission and reconcile its existing ID:
115
+
116
+ ```sh
117
+ factory issues submissions --state PATH
118
+ factory issues recover REQUEST_ID --state PATH
119
+ ```
120
+
121
+ Keep the original request ID; do not submit the same content again with a new ID
122
+ while its outcome is uncertain. Reloading the browser is not a way to preserve an
123
+ unsent form. **Check submission** can recover an earlier issue without replacing
124
+ the draft currently in the composer; follow its recovered-issue link. When the
125
+ recovered submission matches the current content, the form confirms it as created
126
+ and prevents another submission.
127
+
128
+ After the issue appears in the Inbox, open it, review its current content and
129
+ readiness, then choose **Start work** deliberately. The result shows the native
130
+ Codex response and thread identity. A completed turn needs project checks and an
131
+ independent review of the exact candidate. Use **Continue** to send bounded
132
+ feedback to that same thread. Prepare a protected pull request through the
133
+ project's normal GitHub process, then wait for its required CI checks and review;
134
+ Factory does not treat a completed turn as acceptance or publish a PR for you.
135
+
74
136
  ## Qualify one bounded issue
75
137
 
76
138
  1. Inspect readiness and verify a permitted workspace write plus denial of a
@@ -0,0 +1,34 @@
1
+ const packageName='software-defence-factory';
2
+ const versionParts=value=>{
3
+ if(typeof value!=='string'||!/^0\.(0|[1-9]\d{0,5})\.(0|[1-9]\d{0,5})$/.test(value))
4
+ throw new Error('Release metadata has an unsupported Factory version; inspect the migration manually.');
5
+ return value.split('.').map(Number);
6
+ };
7
+
8
+ // Read public metadata only. npm credentials, lifecycle scripts and native
9
+ // accounts are not needed; neither the installed package nor service is changed.
10
+ export async function checkRelease({version,channel,request=fetch}) {
11
+ if(!['latest','next'].includes(channel))throw new Error('Choose the release channel explicitly: --channel latest or --channel next.');
12
+ const installed=versionParts(version);
13
+ const response=await request(`https://registry.npmjs.org/${packageName}/${channel}`,{
14
+ headers:{Accept:'application/json'},redirect:'error',signal:AbortSignal.timeout(10000),
15
+ });
16
+ if(!response.ok)throw new Error(`Release lookup failed (HTTP ${response.status}); availability is unknown.`);
17
+ let size=0;const chunks=[];
18
+ if(!response.body)throw new Error('Release lookup returned no metadata; availability is unknown.');
19
+ for await (const chunk of response.body) {
20
+ size+=chunk.byteLength;
21
+ if(size>256000)throw new Error('Release metadata exceeds 256 KB; availability is unknown.');
22
+ chunks.push(chunk);
23
+ }
24
+ let candidate;
25
+ try {candidate=JSON.parse(Buffer.concat(chunks).toString('utf8'));}
26
+ catch {throw new Error('Release metadata is not valid JSON; availability is unknown.');}
27
+ if(candidate?.name!==packageName)throw new Error('Release metadata has a different package identity; availability is unknown.');
28
+ const available=versionParts(candidate.version);
29
+ const difference=available.findIndex((part,index)=>part!==installed[index]);
30
+ const relation=difference<0?'current':available[difference]>installed[difference]?'newer':'older';
31
+ return {package:packageName,channel,checked_at:new Date().toISOString(),installed_version:version,
32
+ available_version:candidate.version,relation,update_available:relation==='newer',
33
+ same_version_line:available[1]===installed[1],verification:'public metadata only',activation:'manual'};
34
+ }
@@ -1 +1 @@
1
- @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}@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-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--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-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}}}@layer theme{:root,:host{--font-sans:"Geist Variable", Geist, ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist Variable", Geist, ui-sans-serif, system-ui, sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.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}.sticky{position:sticky}.top-0{top:0}.z-20{z-index:20}.mt-4{margin-top:calc(var(--spacing) * 4)}.-mb-px{margin-bottom:-1px}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.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-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.max-h-\[32rem\]{max-height:32rem}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-border,.border-border\/70{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/70{border-color:color-mix(in oklab, var(--border) 70%, transparent)}}.border-primary{border-color:var(--primary)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-primary{background-color:var(--primary)}.bg-sidebar{background-color:var(--sidebar)}.bg-surface{background-color:var(--surface)}.bg-transparent{background-color:#0000}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.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)}.py-0\.5{padding-block:calc(var(--spacing) * .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-8{padding-block:calc(var(--spacing) * 8)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.font-sans{font-family:Geist Variable,Geist,ui-sans-serif,system-ui,sans-serif}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:.875rem;line-height:var(--tw-leading,1.25rem)}.text-xs{font-size:.75rem;line-height:var(--tw-leading,1rem)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-danger{color:var(--danger)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.capitalize{text-transform:capitalize}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}}.focus-visible\:ring-2:focus-visible{--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)}.focus-visible\:ring-ring\/40:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 40%, transparent)}}.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-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:p-6{padding:calc(var(--spacing) * 6)}}@media (width>=48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-screen{height:100vh}.md\:w-\[203px\]{width:203px}.md\:flex-col{flex-direction:column}.md\:items-stretch{align-items:stretch}.md\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:py-5{padding-block:calc(var(--spacing) * 5)}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--foreground:#0a0a0a;--surface:#fff;--sidebar:#fff;--muted:#f4f4f5;--muted-foreground:#737373;--border:#e5e5e5;--primary:#0a0a0a;--primary-foreground:#fff;--success:#15803d;--warning:#a16207;--danger:#b91c1c;--ring:#525252}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#09090b;--foreground:#f5f5f5;--surface:#0f0f10;--sidebar:#09090b;--muted:#18181b;--muted-foreground:#a1a1aa;--border:#27272a;--primary:#f5f5f5;--primary-foreground:#09090b;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--ring:#a1a1aa}*{border-color:var(--border)}html{background:var(--background)}body{background:var(--background);min-width:320px;min-height:100vh;color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}button,input,textarea,select{font:inherit}button,a,summary,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}::selection{background:var(--foreground)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in srgb, var(--foreground) 16%, transparent)}}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.app-shell{min-height:100vh}.app-sidebar{background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;align-items:stretch;width:203px;height:100vh;padding:20px 14px 14px;display:flex;position:sticky;top:0}.brand-lockup{gap:9px;height:36px;padding:0 4px}.brand-wordmark{letter-spacing:-.025em;font-size:15px;font-weight:600}.desktop-nav{gap:2px;margin-top:30px;display:grid}.mobile-nav{display:none}.nav-item{height:36px;color:var(--muted-foreground);border-radius:6px;align-items:center;gap:10px;padding:0 10px;font-size:13px;line-height:20px;text-decoration:none;transition:background-color .15s,color .15s;display:flex;position:relative}.nav-item:hover{background:var(--muted);color:var(--foreground)}.nav-item-active{background:var(--muted);color:var(--foreground);font-weight:500}.nav-count{color:var(--muted-foreground);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.sidebar-bottom{border-top:1px solid var(--border);gap:4px;margin-top:auto;padding-top:12px;display:grid}.mobile-settings{border-top:1px solid var(--border);margin-top:5px;padding-top:5px}.theme-switch{text-align:left;background:0 0;border:0;width:100%}.mobile-theme{display:none}.workshop{background:var(--background);flex:1;min-width:0}.project-header{border-bottom:1px solid var(--border);background:var(--background);padding:36px 56px 22px}.project-heading{justify-content:space-between;align-items:flex-start;gap:24px;min-width:0;max-width:1500px;margin:0 auto;display:flex}.project-heading-copy{flex:1;min-width:0}.project-eyebrow{color:var(--muted-foreground);margin-bottom:5px;font-size:12px;line-height:16px;display:block}.project-header h1{overflow-wrap:anywhere;max-width:100%;color:var(--foreground);letter-spacing:-.035em;margin:0;font-size:36px;font-weight:600;line-height:40px}.project-freshness{color:var(--muted-foreground);margin-top:7px;font-size:11px;line-height:16px;display:block}.project-freshness.is-stale{color:var(--warning)}.project-new-task{flex:none;margin-top:17px;border-radius:7px!important;font-size:13px!important}.runs-page{gap:22px;max-width:1500px;margin:0 auto;padding:27px 56px 56px;display:grid}.tasks-toolbar{justify-content:space-between;align-items:flex-end;gap:24px;min-width:0;display:flex}.tasks-tools{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.task-search{border:1px solid var(--border);background:var(--surface);width:min(320px,34vw);min-width:180px;height:36px;color:var(--muted-foreground);border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.task-search:focus-within{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.task-search:focus-within{border-color:color-mix(in srgb, var(--foreground) 45%, var(--border))}}.task-search input{width:100%;min-width:0;height:100%;color:var(--foreground);background:0 0;border:0;outline:0;padding:0;font-size:13px}.task-search input::placeholder{color:var(--muted-foreground)}.task-search input::-webkit-search-cancel-button{display:none}.clear-search{width:22px;height:22px;color:var(--muted-foreground);background:0 0;border:0;border-radius:4px;flex:none;place-items:center;display:grid}.clear-search:hover{background:var(--muted);color:var(--foreground)}.view-toggle{border:1px solid var(--border);border-radius:8px;flex:none;align-items:center;gap:2px;height:36px;padding:3px;display:flex}.view-toggle button{border-radius:5px;height:28px;padding:0 9px;font-size:12px}.view-toggle .view-active{background:var(--muted);color:var(--foreground)}.run-workspace{grid-template-columns:212px minmax(0,1fr);align-items:start;gap:48px;min-width:0;display:grid}.task-filter-rail{gap:8px;min-width:0;display:grid}.task-filter-rail>h2{color:var(--muted-foreground);letter-spacing:.04em;text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:500;line-height:16px}.filter-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;overflow:hidden}.filter-card-main{width:100%;color:var(--foreground);text-align:left;background:0 0;border:0;padding:10px 11px 9px;display:block}.filter-card-main:hover,.filter-card-main[aria-pressed=true]{background:var(--muted)}.filter-card-main:disabled,.filter-substate:disabled{cursor:default;opacity:.7}.filter-card-heading{justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:500;line-height:18px;display:flex}.filter-card-count{color:var(--foreground);font-variant-numeric:tabular-nums;font-size:13px}.filter-card-description{color:var(--muted-foreground);margin-top:2px;font-size:11px;line-height:15px;display:block}.filter-card-children{border-top:1px solid var(--border);gap:1px;padding:4px 7px 6px;display:grid}.filter-substate{min-width:0;min-height:25px;color:var(--muted-foreground);text-align:left;background:0 0;border:0;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:3px 5px;font-size:11px;line-height:16px;display:flex}.filter-substate:hover,.filter-substate[aria-pressed=true]{background:var(--muted);color:var(--foreground)}.filter-substate span:first-child{overflow-wrap:anywhere;min-width:0}.filter-substate span:last-child{font-variant-numeric:tabular-nums;flex:none}.filter-substate.is-subset{border-left:1px solid var(--border);margin-left:4px;padding-left:8px}.task-results{min-width:0}.task-list{border-top:1px solid var(--border);min-width:0}.task-row{border-bottom:1px solid var(--border);min-width:0}.task-row-link{min-width:0;color:var(--foreground);border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:12px 4px 13px;text-decoration:none;display:grid}@supports (color:color-mix(in lab, red, red)){.task-row-link:hover{background:color-mix(in srgb, var(--muted) 68%, transparent)}}.task-row-content{min-width:0}.task-row-title{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:500;line-height:20px}.task-row-meta{min-width:0;color:var(--muted-foreground);flex-wrap:wrap;align-items:baseline;gap:2px 14px;margin-top:4px;font-size:11px;line-height:16px;display:flex}.task-row-meta>*{overflow-wrap:anywhere;min-width:0}.work-meta-part{align-items:baseline;display:inline-flex}.task-state{border-radius:5px;flex:none;padding:2px 8px;font-size:11px;font-weight:500;line-height:16px}.run-column{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;overflow:hidden}.run-card-link{min-width:0;color:var(--foreground);padding:12px;text-decoration:none;display:block}.run-card-link:hover{background:var(--muted)}.run-card-title{overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:500;line-height:19px}.run-card-meta{color:var(--muted-foreground);margin:6px 0 0;font-size:11px;line-height:16px}.run-card-status{flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px;display:flex}.run-card-status>span:last-child{color:var(--muted-foreground);font-size:11px}.empty-tasks,.task-message{border:1px dashed var(--border);text-align:center;border-radius:8px;align-content:center;justify-items:center;gap:7px;min-height:230px;padding:28px 18px;display:grid}.empty-tasks h3,.task-message h3{margin:0;font-size:14px;font-weight:600;line-height:20px}.empty-tasks p,.task-message p{max-width:32rem;color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}.empty-tasks button,.task-message button{margin-top:6px}.task-message-error{border-style:solid;border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.task-message-error{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}}.task-message-error h3{color:var(--danger)}.stale-banner{border:1px solid var(--warning);justify-content:space-between;align-items:center;gap:14px;padding:9px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.stale-banner{border:1px solid color-mix(in srgb, var(--warning) 32%, var(--border))}}.stale-banner{color:var(--muted-foreground);border-radius:7px;font-size:12px;line-height:18px}.stale-banner strong{color:var(--warning)}.stale-banner button{flex:none}.form-error{border:1px solid var(--danger);padding:9px 12px}@supports (color:color-mix(in lab, red, red)){.form-error{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border))}}.form-error{background:var(--danger);border-radius:7px}@supports (color:color-mix(in lab, red, red)){.form-error{background:color-mix(in srgb, var(--danger) 8%, var(--background))}}.form-error{color:var(--danger);font-size:13px}.field-label{color:var(--muted-foreground);margin-bottom:5px;font-size:12px;font-weight:500;line-height:17px;display:block}.field-control{border:1px solid var(--border);background:var(--background);width:100%;min-height:36px;color:var(--foreground);border-radius:7px;outline:none;padding:7px 10px;font-size:13px;line-height:20px;transition:border-color .15s,box-shadow .15s}.field-control::placeholder{color:var(--muted-foreground);opacity:.78}.field-control:focus{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.field-control:focus{border-color:color-mix(in srgb, var(--foreground) 50%, var(--border))}}.field-control:focus{box-shadow:0 0 0 2px var(--foreground)}@supports (color:color-mix(in lab, red, red)){.field-control:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--foreground) 12%, transparent)}}@media (width<=1199px) and (width>=961px){.project-header,.runs-page{padding-left:38px;padding-right:38px}.run-workspace{gap:24px}}@media (width<=960px){.task-filter-rail{display:none}.run-workspace{display:block}}@media (width<=767px){.app-shell{display:block}.app-sidebar{z-index:40;border-right:0;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:8px;width:100%;height:56px;padding:0 12px}.brand-lockup{gap:8px}.brand-wordmark{font-size:14px;display:inline}.desktop-nav,.sidebar-bottom{display:none}.mobile-nav{margin-left:auto;display:block;position:relative}.mobile-nav summary{border:1px solid var(--border);height:36px;color:var(--foreground);cursor:pointer;border-radius:7px;align-items:center;gap:7px;padding:0 9px;font-size:12px;list-style:none;display:flex}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{z-index:50;border:1px solid var(--border);background:var(--surface);border-radius:9px;gap:3px;width:min(260px,100vw - 24px);padding:8px;display:grid;position:absolute;top:42px;right:0;box-shadow:0 12px 30px #00000024}.mobile-nav nav .nav-item{width:100%}.mobile-theme{color:var(--muted-foreground);background:0 0;border:1px solid #0000;border-radius:7px;flex:none;place-items:center;display:grid}.mobile-theme:hover{border-color:var(--border);color:var(--foreground)}.project-header{padding:25px 20px 17px}.project-heading{flex-direction:column;align-items:stretch;gap:12px}.project-header h1{letter-spacing:-.03em;font-size:30px;line-height:34px}.project-new-task{align-self:flex-start;margin-top:0}.runs-page{gap:18px;padding:21px 20px 36px}.tasks-toolbar{align-items:start;gap:14px;display:grid}.tasks-tools{flex-wrap:wrap;justify-content:space-between;gap:8px;width:100%}.task-search{width:100%;min-width:0}.view-toggle{margin-left:auto}.task-row-link{flex-direction:column;align-items:flex-start;gap:7px;padding:12px 2px;display:flex}.task-row-content{width:100%}.task-row-title{font-size:14px;line-height:20px}.task-row-meta{margin-top:4px}.task-state{align-self:flex-start}.run-column{border-radius:7px}.stale-banner{flex-direction:column;align-items:flex-start}.stale-banner button{align-self:flex-start}}@media (width<=390px){.project-header{padding-left:16px;padding-right:16px}.project-heading{flex-wrap:wrap}.project-heading-copy{width:100%}.project-header h1{font-size:28px;line-height:32px}.project-new-task{margin-top:0}.runs-page{padding-left:16px;padding-right:16px}.tasks-tools{align-items:stretch}.view-toggle{margin-left:0}.filter-control{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{--border:#e7e7e7;--divider:#ededed;--primary:#0077ed;--primary-foreground:#fff;--surface-subtle:#fafafa}.dark{--background:#101012;--sidebar:#101012;--surface:#101012;--surface-subtle:#141416;--border:#27272b;--divider:#242427;--primary:#0787ff;--primary-foreground:#fff}body{font-size:14px}.app-sidebar{padding:18px 12px 14px}.brand-lockup{height:30px;padding:0 8px}.brand-wordmark{color:var(--foreground);letter-spacing:-.06em;font-size:19px;font-weight:650;text-decoration:none}.brand-period{color:var(--muted-foreground)}.desktop-nav{margin-top:18px}.nav-item{gap:9px;height:32px;padding:0 8px;font-size:14px}.nav-count{font-size:12px}.project-header{border-bottom:0;padding:38px 56px 22px}.project-heading{border-bottom:1px solid var(--border);align-items:center;padding-bottom:24px}.project-context-line{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.project-freshness{align-items:center;gap:5px;margin:0;font-size:11px;display:inline-flex}.freshness-dot{background:#10a880;border-radius:50%;width:5px;height:5px}.is-stale .freshness-dot{background:var(--warning)}.project-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.repo-action{border:1px solid var(--border);height:32px;color:var(--foreground);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:13px;text-decoration:none;display:inline-flex}.repo-action:hover{background:var(--muted)}.project-new-task{height:32px;margin:0;padding:0 11px;font-size:13px!important}.runs-page{gap:16px;padding-top:0}.tasks-toolbar{align-items:center;gap:18px}.task-facets{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.task-search{width:min(320px,28vw);min-width:150px}.tasks-tools{gap:12px}.view-toggle{border:0;gap:0;padding:0}.view-toggle button{width:28px;padding:0 5px}.active-filters{color:var(--muted-foreground);justify-content:space-between;align-items:baseline;gap:10px;font-size:12px;display:flex}.active-filters span{overflow-wrap:anywhere;min-width:0}.active-filters button{color:var(--foreground);flex:none;align-items:center;gap:4px;display:flex}.synthetic-note{color:var(--muted-foreground);margin:0;font-size:12px}.run-workspace{gap:48px}.task-filter-rail{gap:16px}.all-tasks-filter{text-align:left;width:100%;color:var(--muted-foreground);justify-content:space-between;padding:0 2px;font-size:12px;display:flex}.all-tasks-filter[aria-pressed=true]{color:var(--foreground)}.tone-violet{--tone:#6e63d8}.tone-cyan{--tone:#058299}.tone-pink{--tone:#b6417a}.tone-green{--tone:#058263}.tone-amber{--tone:#a66b18}.tone-neutral{--tone:#71717a}.dark .tone-violet{--tone:#9180f4}.dark .tone-cyan{--tone:#39b4c9}.dark .tone-pink{--tone:#d768a4}.dark .tone-green{--tone:#32b991}.dark .tone-amber{--tone:#d3a357}.dark .tone-neutral{--tone:#a1a1aa}.filter-card{border-color:var(--tone)}@supports (color:color-mix(in lab, red, red)){.filter-card{border-color:color-mix(in srgb, var(--tone) 16%, var(--border))}}.filter-card{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.filter-card{background:color-mix(in srgb, var(--background) 95%, var(--tone))}}.filter-card{box-shadow:0 5px 12px -7px var(--tone);border-radius:8px}@supports (color:color-mix(in lab, red, red)){.filter-card{box-shadow:0 5px 12px -7px color-mix(in srgb, var(--tone) 38%, transparent)}}.dark .filter-card{background:#0b0b0d}.filter-card-main{padding:12px 11px 10px}.filter-card-main[aria-pressed=true]{background:var(--tone)}@supports (color:color-mix(in lab, red, red)){.filter-card-main[aria-pressed=true]{background:color-mix(in srgb, var(--tone) 9%, transparent)}}.filter-card-heading{gap:6px;font-size:14px;font-weight:400}.filter-card-heading>svg{color:var(--tone);flex:none}.filter-card-heading>span:first-of-type{overflow-wrap:anywhere;flex:1;min-width:0}.filter-card-count{color:var(--tone);font-size:14px;font-weight:550}.filter-disclosure{width:100%;color:var(--muted-foreground);justify-content:space-between;align-items:center;padding:0 11px 8px;font-size:12px;display:flex}.filter-disclosure[aria-expanded=true]>svg{transform:rotate(180deg)}.filter-card-children{border:0;gap:5px;padding:0 9px 10px}.filter-card-children[hidden]{display:none}.filter-substate{border:1px solid var(--border);min-height:24px;padding:2px 5px;font-size:12px}.filter-substate[aria-pressed=true]{border-color:var(--tone)}.task-list{border:0}.task-row{border-bottom:1px solid var(--divider);grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;display:grid}.task-row:first-child{padding-top:9px}.task-row:hover{background:var(--muted)}@supports (color:color-mix(in lab, red, red)){.task-row:hover{background:color-mix(in srgb, var(--muted) 32%, transparent)}}.task-row-link{min-width:0;padding:0;display:block}.task-row-link:hover{background:0 0}.task-row-title{font-size:14px;font-weight:450;line-height:21px}.task-row-meta{flex-wrap:wrap;gap:2px 8px;margin-top:3px;font-size:12px;line-height:18px;display:flex}.task-row-meta>.work-meta-part+.work-meta-part:before{content:"·";color:var(--muted-foreground);margin-right:8px}.task-status-icon{background:var(--tone);border-radius:7px;flex:none;place-items:center;width:24px;height:24px;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.task-status-icon{background:color-mix(in srgb, var(--tone) 13%, transparent)}}.task-status-icon{color:var(--tone)}.task-state{white-space:nowrap;border:1px solid var(--tone);align-items:center;gap:5px;padding:2px 6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.task-state{border:1px solid color-mix(in srgb, var(--tone) 23%, var(--border))}}.task-state{background:var(--tone);border-radius:5px}@supports (color:color-mix(in lab, red, red)){.task-state{background:color-mix(in srgb, var(--tone) 5%, var(--background))}}.task-state{color:var(--foreground);font-size:11px;font-weight:400;line-height:16px}.state-dot{border:1px solid var(--tone);background:var(--tone);border-radius:50%;width:5px;height:5px}.row-badge-filter{text-align:left;background:0 0;border:0;padding:0}.row-badge-filter:hover .task-state{border-color:var(--tone)}.project-header-compact{padding:18px 30px 0}.project-header-compact .project-heading{padding-bottom:14px}.project-header-compact h1{letter-spacing:-.015em;font-size:15px;line-height:22px}.project-header-compact .project-context-line{gap:10px;margin-top:4px}.task-detail-layout{grid-template-columns:minmax(0,1fr) 288px;align-items:stretch;min-height:calc(100vh - 56px);display:grid}.task-detail-main{min-width:0;padding:24px 32px 56px}.detail-toolbar{color:var(--muted-foreground);justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.detail-position,.detail-toolbar-actions{align-items:center;gap:12px;font-size:12px;display:flex}.detail-position>div{gap:0;display:grid}.detail-position a,.detail-position span[aria-label]{display:flex}.detail-position span[aria-label]{opacity:.3}.detail-toolbar-actions a,.detail-toolbar-actions button{border-radius:4px;place-items:center;width:28px;height:28px;display:grid}.detail-toolbar-actions a:hover,.detail-toolbar-actions button:hover{background:var(--muted);color:var(--foreground)}.copy-status{font-size:11px}.task-detail-heading{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:26px;display:flex}.task-detail-heading h2{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:18px;font-weight:600;line-height:26px}.task-detail-heading>p{flex-basis:100%}.task-detail-main [role=tablist]{gap:22px;margin-bottom:24px}.task-detail-main [role=tab]{padding-top:8px;padding-bottom:10px;font-size:13px}.task-result{border:0;border-left:1px solid var(--border);box-shadow:none;background:0 0;border-radius:0;margin-left:11px;padding:0 0 0 20px}.task-detail-main [role=tabpanel]{overflow-wrap:anywhere;min-width:0}.task-detail-main [role=tabpanel] .break-words{overflow-wrap:anywhere}.task-result>h2{font-size:14px}.task-metadata{border-left:1px solid var(--border);background:var(--surface-subtle);min-width:0;padding:24px}.task-metadata h3{align-items:center;gap:8px;margin:0 0 24px;font-size:14px;font-weight:600;display:flex}.task-metadata dl{gap:22px;display:grid}.task-metadata dt{color:var(--muted-foreground);align-items:center;gap:5px;margin-bottom:7px;font-size:12px;display:flex}.task-metadata dd{overflow-wrap:anywhere;margin:0;font-size:13px}.source-revision-sha{overflow-wrap:anywhere;word-break:break-all;font-size:11px;line-height:17px;display:block}.task-metadata .metadata-hint{color:var(--muted-foreground);margin-top:5px;font-size:11px;line-height:17px}.metadata-link{border:1px solid var(--border);border-radius:5px;align-items:center;gap:6px;padding:3px 6px;text-decoration:none;display:inline-flex}.metadata-link:hover{background:var(--muted)}.task-metadata .task-state{color:var(--tone);background:var(--tone);border-radius:20px;padding:5px 9px}@supports (color:color-mix(in lab, red, red)){.task-metadata .task-state{background:color-mix(in srgb, var(--tone) 15%, transparent)}}.workshop>.secondary-page{max-width:1500px;padding:0 56px 56px}@media (width<=1200px){.project-header,.runs-page,.workshop>.secondary-page{padding-left:36px;padding-right:36px}.project-actions{max-width:250px}.tasks-toolbar{flex-wrap:wrap}.tasks-tools{flex:1}.task-search{width:min(320px,100%)}.task-detail-layout{grid-template-columns:minmax(0,1fr) 248px}.task-detail-main{padding-left:26px;padding-right:26px}.task-metadata{padding:24px 18px}}@media (width<=900px){.run-workspace{grid-template-columns:190px minmax(0,1fr);gap:24px}.task-row{grid-template-columns:24px minmax(0,1fr);gap:9px}.row-badge-filter{grid-column:2}.task-detail-layout{grid-template-columns:minmax(0,1fr)}.task-metadata{border-left:0;border-top:1px solid var(--border)}.task-metadata dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (width<=767px){.app-sidebar{width:100%;height:auto;padding:10px 16px}.brand-lockup{padding:0}.project-header{padding:24px 20px 18px}.project-heading{flex-direction:column;align-items:flex-start;gap:18px;padding-bottom:20px}.project-header h1{font-size:28px;line-height:34px}.project-actions{justify-content:flex-start;gap:6px;max-width:100%}.project-new-task{margin:0}.runs-page,.workshop>.secondary-page{padding:0 20px 32px}.tasks-toolbar{flex-direction:column;align-items:stretch;gap:12px}.task-facets{gap:6px}.tasks-tools{width:100%}.task-search{flex:1;width:auto;min-width:0}.run-workspace{display:block}.task-row-title{font-size:14px}.task-row-meta{font-size:12px}.project-header-compact{padding:14px 20px 0}.project-header-compact h1{font-size:14px;line-height:20px}.project-header-compact .project-heading{flex-direction:row;align-items:center;gap:10px;padding-bottom:12px}.project-header-compact .project-actions .repo-action{gap:0;padding:0 7px;font-size:0}.project-header-compact .project-actions .repo-action>svg:last-child{display:none}.task-detail-main{padding:16px 20px 32px}.detail-toolbar{margin-bottom:24px}.task-detail-heading{gap:8px}.task-detail-heading h2{font-size:17px;line-height:24px}.task-detail-main [role=tablist]{gap:18px}.task-metadata{padding:24px 20px}}.brand-wordmark{flex-direction:column;gap:3px;font-size:23px;line-height:24px;display:flex}.brand-descriptor{letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground);font-size:8px;font-weight:550;line-height:12px}.project-path{color:var(--muted-foreground);font-size:11px;position:relative}.project-path>button{cursor:help;align-items:center;gap:4px;display:flex}.project-path [role=tooltip]{z-index:60;border:1px solid var(--border);background:var(--surface);width:240px;max-width:calc(100vw - 48px);color:var(--foreground);overflow-wrap:anywhere;border-radius:7px;padding:12px;line-height:18px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 8px 24px #0002}.project-path [role=tooltip][hidden]{display:none}.project-path code{font-size:11px}.repo-action.new-issue-action{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.facet-container{min-width:0;position:relative}.task-facet{border:1px solid var(--border);background:0 0;border-radius:7px;align-items:center;gap:6px;height:36px;padding:0 10px;font-size:13px;display:flex}.task-facet>svg{color:var(--muted-foreground);flex:none}.task-facet.is-selected{border-color:var(--muted-foreground);background:var(--muted)}.task-facet:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.facet-count{background:var(--border);text-align:center;border-radius:4px;min-width:17px;padding:0 3px;font-size:10px}.facet-popover{z-index:50;border:1px solid var(--border);background:var(--surface);border-radius:9px;width:256px;max-width:calc(100vw - 40px);padding:6px;font-size:13px;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 10px 26px #0002}.facet-popover-heading{justify-content:space-between;align-items:center;padding:6px 8px 10px;font-size:12px;font-weight:550;display:flex}.facet-popover-heading button{color:var(--muted-foreground);font-weight:400}.facet-popover-heading button:disabled{opacity:.4}.facet-options{overscroll-behavior:contain;max-height:240px;overflow-y:auto}.facet-option{cursor:pointer;border-radius:4px;align-items:center;gap:9px;padding:8px;display:flex}.facet-option:hover,.facet-option:focus-within{background:var(--muted)}.facet-option span{overflow-wrap:anywhere}.facet-select-all{border-bottom:1px solid var(--border);border-radius:0;margin-bottom:4px}.facet-empty{color:var(--muted-foreground);padding:14px 8px}.active-filters{align-items:center;min-height:28px}.task-list-actions{align-items:center;gap:18px;display:flex}.task-list-actions button:disabled{opacity:.35;cursor:default}.run-workspace.is-board{display:block}.is-board .task-filter-rail{display:none}.kanban-scroll{overscroll-behavior-x:contain;scrollbar-width:auto;scrollbar-color:var(--muted-foreground) var(--muted);max-width:100%;padding-bottom:14px;overflow-x:scroll}.kanban-scroll::-webkit-scrollbar{height:11px}.kanban-scroll::-webkit-scrollbar-track{background:var(--muted);border-radius:8px}.kanban-scroll::-webkit-scrollbar-thumb{background:var(--muted-foreground);border:3px solid var(--muted);border-radius:8px}.kanban-board{grid-auto-columns:290px;grid-auto-flow:column;align-items:start;gap:16px;width:max-content;min-width:100%;display:grid}.kanban-board .run-column{min-height:360px}@media (width<=767px){.brand-wordmark{font-size:20px;line-height:22px}.brand-descriptor{font-size:7px}.task-facet{gap:4px;padding:0 7px;font-size:12px}.task-facet>svg:first-child{display:none}.facet-container:last-child .facet-popover{left:auto;right:0}.facet-container:nth-child(2) .facet-popover{left:50%;transform:translate(-50%)}.kanban-board{grid-auto-columns:min(290px,100vw - 60px)}.project-path [role=tooltip]{left:auto;right:0}}.work-dialog{color:var(--foreground);background:var(--surface);border:1px solid var(--border);border-radius:12px;width:min(660px,100vw - 32px);max-height:calc(100dvh - 40px);margin:auto;padding:0;overflow-y:auto;box-shadow:0 24px 80px #0005}.work-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0008}.work-dialog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:24px;display:flex}.work-dialog-header h2{font-size:20px;font-weight:600}.work-dialog-header p{color:var(--muted-foreground);overflow-wrap:anywhere;margin-top:6px;font-size:12px}.work-dialog-body{gap:20px;min-width:0;padding:24px;display:grid}.work-source{border-bottom:1px solid var(--border);gap:24px;display:flex}.work-source button{color:var(--muted-foreground);border-bottom:2px solid #0000;padding-bottom:10px;font-size:13px}.work-source button[aria-pressed=true]{color:var(--foreground);border-bottom-color:var(--foreground)}.work-brief{resize:vertical;min-height:180px;max-height:45vh}.issue-picker{gap:12px;min-width:0;display:grid}.issue-list{border:1px solid var(--border);border-radius:8px;max-height:310px;overflow-y:auto}.issue-list>p{padding:16px}.issue-choice{text-align:left;border-bottom:1px solid var(--border);align-items:center;gap:12px;width:100%;padding:14px;display:flex}.issue-choice:last-child{border-bottom:0}.issue-choice:hover,.issue-choice:focus-visible{background:var(--muted)}.issue-choice:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.issue-choice:disabled{opacity:.55}.issue-choice>svg,.issue-number{flex:none}.issue-number{color:var(--muted-foreground);font-size:12px}.issue-choice-copy{overflow-wrap:anywhere;flex:1;min-width:0}.issue-choice-copy strong{font-size:13px;font-weight:500;display:block}.issue-choice-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.issue-choice-meta .issue-number{margin-right:3px}.issue-open-icon{color:#3c925d;align-self:flex-start;margin-top:2px}.issue-label{border:1px solid var(--label-color);border-radius:20px;padding:1px 7px;font-size:10px;font-weight:500;line-height:17px}@supports (color:color-mix(in lab, red, red)){.issue-label{border:1px solid color-mix(in srgb, var(--label-color) 28%, transparent)}}.issue-label{color:var(--label-color);background:var(--label-color)}@supports (color:color-mix(in lab, red, red)){.issue-label{background:color-mix(in srgb, var(--label-color) 8%, var(--surface))}}.label-neutral{--label-color:#646b77}.label-red{--label-color:#af4048}.label-orange{--label-color:#9f5a2a}.label-yellow{--label-color:#846b12}.label-green{--label-color:#3d764d}.label-cyan{--label-color:#20757b}.label-blue{--label-color:#366faa}.label-purple{--label-color:#8254a8}.dark .label-neutral{--label-color:#acb2bc}.dark .label-red{--label-color:#eb969b}.dark .label-orange{--label-color:#ebb182}.dark .label-yellow{--label-color:#d7c678}.dark .label-green{--label-color:#8bc99d}.dark .label-cyan{--label-color:#80c8ce}.dark .label-blue{--label-color:#8bb4e5}.dark .label-purple{--label-color:#bea0df}.issue-search{border:1px solid var(--border);color:var(--muted-foreground);border-radius:7px;align-items:center;gap:9px;padding:10px 12px;display:flex}.issue-search:focus-within{outline:2px solid var(--ring);outline-offset:2px}.issue-search input{width:100%;min-width:0;color:var(--foreground);background:0 0;border:0;outline:0;font-size:12px}.issue-picker-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.work-recommendation{background:var(--muted);border:1px solid var(--border);border-radius:8px;gap:12px;padding:16px;display:grid}.work-recommendation h3{font-size:14px;font-weight:600}.work-help{color:var(--muted-foreground);font-size:12px;line-height:20px}.work-help a{text-decoration:underline}.work-options summary{cursor:pointer;color:var(--muted-foreground);font-size:12px}.work-options-fields{gap:14px;margin-top:16px;display:grid}.work-dialog-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;padding:18px 24px;display:flex}.work-dialog-footer p{color:var(--muted-foreground);max-width:320px;font-size:11px;line-height:17px}.work-dialog-footer button{flex:none}@media (width<=480px){.work-dialog-header,.work-dialog-body,.work-dialog-footer{padding:18px}.work-dialog-footer{flex-direction:column;align-items:flex-start;gap:12px}.work-dialog-footer button{align-self:flex-end}}.project-header:not(.project-header-compact),.runs-page,.inbox-page,.workshop>.secondary-page{width:calc(100% - 112px);max-width:1500px;margin-inline:auto;padding-left:0;padding-right:0}.facet-option{text-align:left;width:100%;color:inherit;font:inherit;background:0 0;border:0}.facet-option:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.facet-check{border:1px solid var(--border);border-radius:3px;flex:none;place-items:center;width:14px;height:14px;display:grid}.facet-option[aria-checked=true] .facet-check{color:var(--background);background:var(--foreground);border-color:var(--foreground)}.facet-popover-heading button[aria-disabled=true]{opacity:.4}.run-column{border:1px solid var(--border);background:var(--surface);border-radius:6px;overflow:hidden}.run-column>header{color:var(--tone);background:var(--tone)}@supports (color:color-mix(in lab, red, red)){.run-column>header{background:color-mix(in srgb, var(--tone) 7%, var(--background))}}.repo-action:disabled{opacity:.5;cursor:not-allowed}@media (width<=1150px){.project-header:not(.project-header-compact),.runs-page,.inbox-page{width:calc(100% - 72px)}}@media (width<=767px){.project-header:not(.project-header-compact),.runs-page,.inbox-page{width:calc(100% - 40px)}}@media (width<=359px){.project-header:not(.project-header-compact),.runs-page,.inbox-page{width:calc(100% - 32px)}}.template-chooser,.issue-form-fields{gap:14px;display:grid}.template-choice{border:1px solid var(--border);border-radius:8px;overflow:hidden}.template-choice>button{text-align:left;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:16px;display:flex}.template-choice>button:hover,.template-choice>button:focus-visible{background:var(--muted)}.template-choice>button>span{gap:5px;display:grid}.template-choice strong,.template-contact strong,.template-form-name{font-size:13px;font-weight:600}.template-choice span>span,.template-contact>span{color:var(--muted-foreground);font-size:12px;line-height:18px}.template-choice>strong,.template-choice>p,.template-choice>a{margin:12px 16px;display:block}.template-choice>a{font-size:12px;text-decoration:underline}.template-contact{gap:5px;padding:8px 0;display:grid}.template-note{white-space:pre-wrap;color:var(--muted-foreground);border:1px solid var(--border);border-radius:6px;padding:12px;font-size:12px;line-height:19px}.field-description{margin:4px 0 8px;display:block}.issue-form-textarea{resize:vertical;min-height:100px}.issue-form-options{gap:8px;display:grid}.issue-form-options>label{align-items:flex-start;gap:8px;font-size:12px;display:flex}.issue-form-options input{margin-top:3px}.issue-publish,.issue-created{padding:0 24px 20px}.issue-publish-actions{justify-content:flex-end;gap:12px;margin-top:16px;display:flex}.issue-receipt{border:1px solid var(--border);border-radius:8px;margin:12px 0;padding:12px}.issue-publish strong,.issue-created a{overflow-wrap:anywhere}@media (width<=480px){.issue-publish-actions{flex-direction:column}}.revision-error{overflow-wrap:anywhere}.inbox-page{min-width:0;padding-bottom:32px}.inbox-page>.runs-page{width:100%;margin-inline:0;padding-inline:0}.inbox-attempts{gap:10px;padding:10px 0;display:grid}.inbox-attempts a{font-size:13px;text-decoration:underline;display:grid}.inbox-attempts small{color:var(--muted-foreground);font-size:11px}.inbox-body{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:14px}.inbox-start{gap:16px;min-width:0;max-width:680px;display:grid}.inbox-start label{gap:6px;display:grid}.active-filters{gap:8px;position:relative}.active-filters>[role=status]{flex:1;line-height:16px}.active-filters .repository-trigger{text-align:left;border-radius:6px;justify-items:start;gap:0;min-height:44px;padding:3px 6px;display:grid}.repository-trigger:hover,.repository-trigger[aria-expanded=true]{background:var(--muted)}.repository-trigger>span:first-child{align-items:center;gap:4px;display:flex}.repository-scope{color:var(--muted-foreground);font-size:12px;line-height:16px}.repository-popover{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:12px;width:min(340px,100%);max-height:min(440px,65vh);padding:12px;display:grid;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.source-controls{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.source-controls label{align-items:center;gap:6px;display:flex}.source-controls select{background:var(--background);max-width:100%;min-height:36px;color:var(--foreground);border:1px solid var(--border);border-radius:6px;padding:4px}.repository-popover button{white-space:normal;height:auto;min-height:36px}.source-boundary{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:12px;line-height:18px}.task-row-link>.issue-choice-meta,.run-card-link>.issue-choice-meta{margin-top:5px}.facet-search{border:1px solid var(--border);background:var(--background);width:calc(100% - 16px);color:var(--foreground);border-radius:4px;margin:4px 8px;padding:6px}.issue-context{gap:16px;min-width:0;margin-bottom:24px;display:grid}.issue-context summary{cursor:pointer;margin-block:10px;font-size:14px;font-weight:500}.issue-context .form-error,.inbox-attempts a{overflow-wrap:anywhere}.issue-context .inbox-start{padding-block:12px}.issue-context .inbox-start details label{margin-top:12px}@media (width<=480px){.task-facets{position:relative}.facet-container{position:static}.task-facets .facet-container .facet-popover{left:0;right:auto;transform:none}}@property --tw-space-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-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-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}
1
+ @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}@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-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--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-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}}}@layer theme{:root,:host{--font-sans:"Geist Variable", Geist, ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist Variable", Geist, ui-sans-serif, system-ui, sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.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}.sticky{position:sticky}.top-0{top:0}.z-20{z-index:20}.mt-4{margin-top:calc(var(--spacing) * 4)}.-mb-px{margin-bottom:-1px}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.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-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.max-h-\[32rem\]{max-height:32rem}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-border,.border-border\/70{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/70{border-color:color-mix(in oklab, var(--border) 70%, transparent)}}.border-primary{border-color:var(--primary)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-primary{background-color:var(--primary)}.bg-sidebar{background-color:var(--sidebar)}.bg-surface{background-color:var(--surface)}.bg-transparent{background-color:#0000}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.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)}.py-0\.5{padding-block:calc(var(--spacing) * .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-8{padding-block:calc(var(--spacing) * 8)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.font-sans{font-family:Geist Variable,Geist,ui-sans-serif,system-ui,sans-serif}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:.875rem;line-height:var(--tw-leading,1.25rem)}.text-xs{font-size:.75rem;line-height:var(--tw-leading,1rem)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-danger{color:var(--danger)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.capitalize{text-transform:capitalize}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}}.focus-visible\:ring-2:focus-visible{--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)}.focus-visible\:ring-ring\/40:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 40%, transparent)}}.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-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:p-6{padding:calc(var(--spacing) * 6)}}@media (width>=48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-screen{height:100vh}.md\:w-\[203px\]{width:203px}.md\:flex-col{flex-direction:column}.md\:items-stretch{align-items:stretch}.md\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:py-5{padding-block:calc(var(--spacing) * 5)}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--foreground:#0a0a0a;--surface:#fff;--sidebar:#fff;--muted:#f4f4f5;--muted-foreground:#737373;--border:#e5e5e5;--primary:#0a0a0a;--primary-foreground:#fff;--success:#15803d;--warning:#a16207;--danger:#b91c1c;--ring:#525252}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#09090b;--foreground:#f5f5f5;--surface:#0f0f10;--sidebar:#09090b;--muted:#18181b;--muted-foreground:#a1a1aa;--border:#27272a;--primary:#f5f5f5;--primary-foreground:#09090b;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--ring:#a1a1aa}*{border-color:var(--border)}html{background:var(--background)}body{background:var(--background);min-width:320px;min-height:100vh;color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}button,input,textarea,select{font:inherit}button,a,summary,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}::selection{background:var(--foreground)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in srgb, var(--foreground) 16%, transparent)}}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.app-shell{min-height:100vh}.app-sidebar{background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;align-items:stretch;width:203px;height:100vh;padding:20px 14px 14px;display:flex;position:sticky;top:0}.brand-lockup{gap:9px;height:36px;padding:0 4px}.brand-wordmark{letter-spacing:-.025em;font-size:15px;font-weight:600}.desktop-nav{gap:2px;margin-top:30px;display:grid}.mobile-nav{display:none}.nav-item{height:36px;color:var(--muted-foreground);border-radius:6px;align-items:center;gap:10px;padding:0 10px;font-size:13px;line-height:20px;text-decoration:none;transition:background-color .15s,color .15s;display:flex;position:relative}.nav-item:hover{background:var(--muted);color:var(--foreground)}.nav-item-active{background:var(--muted);color:var(--foreground);font-weight:500}.nav-count{color:var(--muted-foreground);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.sidebar-bottom{border-top:1px solid var(--border);gap:4px;margin-top:auto;padding-top:12px;display:grid}.mobile-settings{border-top:1px solid var(--border);margin-top:5px;padding-top:5px}.theme-switch{text-align:left;background:0 0;border:0;width:100%}.mobile-theme{display:none}.workshop{background:var(--background);flex:1;min-width:0}.project-header{border-bottom:1px solid var(--border);background:var(--background);padding:36px 56px 22px}.project-heading{justify-content:space-between;align-items:flex-start;gap:24px;min-width:0;max-width:1500px;margin:0 auto;display:flex}.project-heading-copy{flex:1;min-width:0}.project-eyebrow{color:var(--muted-foreground);margin-bottom:5px;font-size:12px;line-height:16px;display:block}.project-header h1{overflow-wrap:anywhere;max-width:100%;color:var(--foreground);letter-spacing:-.035em;margin:0;font-size:36px;font-weight:600;line-height:40px}.project-freshness{color:var(--muted-foreground);margin-top:7px;font-size:11px;line-height:16px;display:block}.project-freshness.is-stale{color:var(--warning)}.project-new-task{flex:none;margin-top:17px;border-radius:7px!important;font-size:13px!important}.runs-page{gap:22px;max-width:1500px;margin:0 auto;padding:27px 56px 56px;display:grid}.tasks-toolbar{justify-content:space-between;align-items:flex-end;gap:24px;min-width:0;display:flex}.tasks-tools{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.task-search{border:1px solid var(--border);background:var(--surface);width:min(320px,34vw);min-width:180px;height:36px;color:var(--muted-foreground);border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.task-search:focus-within{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.task-search:focus-within{border-color:color-mix(in srgb, var(--foreground) 45%, var(--border))}}.task-search input{width:100%;min-width:0;height:100%;color:var(--foreground);background:0 0;border:0;outline:0;padding:0;font-size:13px}.task-search input::placeholder{color:var(--muted-foreground)}.task-search input::-webkit-search-cancel-button{display:none}.clear-search{width:22px;height:22px;color:var(--muted-foreground);background:0 0;border:0;border-radius:4px;flex:none;place-items:center;display:grid}.clear-search:hover{background:var(--muted);color:var(--foreground)}.view-toggle{border:1px solid var(--border);border-radius:8px;flex:none;align-items:center;gap:2px;height:36px;padding:3px;display:flex}.view-toggle button{border-radius:5px;height:28px;padding:0 9px;font-size:12px}.view-toggle .view-active{background:var(--muted);color:var(--foreground)}.run-workspace{grid-template-columns:212px minmax(0,1fr);align-items:start;gap:48px;min-width:0;display:grid}.task-filter-rail{gap:8px;min-width:0;display:grid}.task-filter-rail>h2{color:var(--muted-foreground);letter-spacing:.04em;text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:500;line-height:16px}.filter-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;overflow:hidden}.filter-card-main{width:100%;color:var(--foreground);text-align:left;background:0 0;border:0;padding:10px 11px 9px;display:block}.filter-card-main:hover,.filter-card-main[aria-pressed=true]{background:var(--muted)}.filter-card-main:disabled,.filter-substate:disabled{cursor:default;opacity:.7}.filter-card-heading{justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:500;line-height:18px;display:flex}.filter-card-count{color:var(--foreground);font-variant-numeric:tabular-nums;font-size:13px}.filter-card-description{color:var(--muted-foreground);margin-top:2px;font-size:11px;line-height:15px;display:block}.filter-card-children{border-top:1px solid var(--border);gap:1px;padding:4px 7px 6px;display:grid}.filter-substate{min-width:0;min-height:25px;color:var(--muted-foreground);text-align:left;background:0 0;border:0;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:3px 5px;font-size:11px;line-height:16px;display:flex}.filter-substate:hover,.filter-substate[aria-pressed=true]{background:var(--muted);color:var(--foreground)}.filter-substate span:first-child{overflow-wrap:anywhere;min-width:0}.filter-substate span:last-child{font-variant-numeric:tabular-nums;flex:none}.filter-substate.is-subset{border-left:1px solid var(--border);margin-left:4px;padding-left:8px}.task-results{min-width:0}.task-list{border-top:1px solid var(--border);min-width:0}.task-row{border-bottom:1px solid var(--border);min-width:0}.task-row-link{min-width:0;color:var(--foreground);border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:12px 4px 13px;text-decoration:none;display:grid}@supports (color:color-mix(in lab, red, red)){.task-row-link:hover{background:color-mix(in srgb, var(--muted) 68%, transparent)}}.task-row-content{min-width:0}.task-row-title{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:500;line-height:20px}.task-row-meta{min-width:0;color:var(--muted-foreground);flex-wrap:wrap;align-items:baseline;gap:2px 14px;margin-top:4px;font-size:11px;line-height:16px;display:flex}.task-row-meta>*{overflow-wrap:anywhere;min-width:0}.work-meta-part{align-items:baseline;display:inline-flex}.task-state{border-radius:5px;flex:none;padding:2px 8px;font-size:11px;font-weight:500;line-height:16px}.run-column{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;overflow:hidden}.run-card-link{min-width:0;color:var(--foreground);padding:12px;text-decoration:none;display:block}.run-card-link:hover{background:var(--muted)}.run-card-title{overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:500;line-height:19px}.run-card-meta{color:var(--muted-foreground);margin:6px 0 0;font-size:11px;line-height:16px}.run-card-status{flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px;display:flex}.run-card-status>span:last-child{color:var(--muted-foreground);font-size:11px}.empty-tasks,.task-message{border:1px dashed var(--border);text-align:center;border-radius:8px;align-content:center;justify-items:center;gap:7px;min-height:230px;padding:28px 18px;display:grid}.empty-tasks h3,.task-message h3{margin:0;font-size:14px;font-weight:600;line-height:20px}.empty-tasks p,.task-message p{max-width:32rem;color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}.empty-tasks button,.task-message button{margin-top:6px}.task-message-error{border-style:solid;border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.task-message-error{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}}.task-message-error h3{color:var(--danger)}.stale-banner{border:1px solid var(--warning);justify-content:space-between;align-items:center;gap:14px;padding:9px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.stale-banner{border:1px solid color-mix(in srgb, var(--warning) 32%, var(--border))}}.stale-banner{color:var(--muted-foreground);border-radius:7px;font-size:12px;line-height:18px}.stale-banner strong{color:var(--warning)}.stale-banner button{flex:none}.form-error{border:1px solid var(--danger);padding:9px 12px}@supports (color:color-mix(in lab, red, red)){.form-error{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border))}}.form-error{background:var(--danger);border-radius:7px}@supports (color:color-mix(in lab, red, red)){.form-error{background:color-mix(in srgb, var(--danger) 8%, var(--background))}}.form-error{color:var(--danger);font-size:13px}.field-label{color:var(--muted-foreground);margin-bottom:5px;font-size:12px;font-weight:500;line-height:17px;display:block}.field-control{border:1px solid var(--border);background:var(--background);width:100%;min-height:36px;color:var(--foreground);border-radius:7px;outline:none;padding:7px 10px;font-size:13px;line-height:20px;transition:border-color .15s,box-shadow .15s}.field-control::placeholder{color:var(--muted-foreground);opacity:.78}.field-control:focus{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.field-control:focus{border-color:color-mix(in srgb, var(--foreground) 50%, var(--border))}}.field-control:focus{box-shadow:0 0 0 2px var(--foreground)}@supports (color:color-mix(in lab, red, red)){.field-control:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--foreground) 12%, transparent)}}@media (width<=1199px) and (width>=961px){.project-header,.runs-page{padding-left:38px;padding-right:38px}.run-workspace{gap:24px}}@media (width<=960px){.task-filter-rail{display:none}.run-workspace{display:block}}@media (width<=767px){.app-shell{display:block}.app-sidebar{z-index:40;border-right:0;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:8px;width:100%;height:56px;padding:0 12px}.brand-lockup{gap:8px}.brand-wordmark{font-size:14px;display:inline}.desktop-nav,.sidebar-bottom{display:none}.mobile-nav{margin-left:auto;display:block;position:relative}.mobile-nav summary{border:1px solid var(--border);height:36px;color:var(--foreground);cursor:pointer;border-radius:7px;align-items:center;gap:7px;padding:0 9px;font-size:12px;list-style:none;display:flex}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{z-index:50;border:1px solid var(--border);background:var(--surface);border-radius:9px;gap:3px;width:min(260px,100vw - 24px);padding:8px;display:grid;position:absolute;top:42px;right:0;box-shadow:0 12px 30px #00000024}.mobile-nav nav .nav-item{width:100%}.mobile-theme{color:var(--muted-foreground);background:0 0;border:1px solid #0000;border-radius:7px;flex:none;place-items:center;display:grid}.mobile-theme:hover{border-color:var(--border);color:var(--foreground)}.project-header{padding:25px 20px 17px}.project-heading{flex-direction:column;align-items:stretch;gap:12px}.project-header h1{letter-spacing:-.03em;font-size:30px;line-height:34px}.project-new-task{align-self:flex-start;margin-top:0}.runs-page{gap:18px;padding:21px 20px 36px}.tasks-toolbar{align-items:start;gap:14px;display:grid}.tasks-tools{flex-wrap:wrap;justify-content:space-between;gap:8px;width:100%}.task-search{width:100%;min-width:0}.view-toggle{margin-left:auto}.task-row-link{flex-direction:column;align-items:flex-start;gap:7px;padding:12px 2px;display:flex}.task-row-content{width:100%}.task-row-title{font-size:14px;line-height:20px}.task-row-meta{margin-top:4px}.task-state{align-self:flex-start}.run-column{border-radius:7px}.stale-banner{flex-direction:column;align-items:flex-start}.stale-banner button{align-self:flex-start}}@media (width<=390px){.project-header{padding-left:16px;padding-right:16px}.project-heading{flex-wrap:wrap}.project-heading-copy{width:100%}.project-header h1{font-size:28px;line-height:32px}.project-new-task{margin-top:0}.runs-page{padding-left:16px;padding-right:16px}.tasks-tools{align-items:stretch}.view-toggle{margin-left:0}.filter-control{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{--border:#e7e7e7;--divider:#ededed;--primary:#0077ed;--primary-foreground:#fff;--surface-subtle:#fafafa}.dark{--background:#101012;--sidebar:#101012;--surface:#101012;--surface-subtle:#141416;--border:#27272b;--divider:#242427;--primary:#0787ff;--primary-foreground:#fff}body{font-size:14px}.app-sidebar{padding:18px 12px 14px}.brand-lockup{height:30px;padding:0 8px}.brand-wordmark{color:var(--foreground);letter-spacing:-.06em;font-size:19px;font-weight:650;text-decoration:none}.brand-period{color:var(--muted-foreground)}.desktop-nav{margin-top:18px}.nav-item{gap:9px;height:32px;padding:0 8px;font-size:14px}.nav-count{font-size:12px}.project-header{border-bottom:0;padding:38px 56px 22px}.project-heading{border-bottom:1px solid var(--border);align-items:center;padding-bottom:24px}.project-context-line{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.project-freshness{align-items:center;gap:5px;margin:0;font-size:11px;display:inline-flex}.freshness-dot{background:#10a880;border-radius:50%;width:5px;height:5px}.is-stale .freshness-dot{background:var(--warning)}.project-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.repo-action{border:1px solid var(--border);height:32px;color:var(--foreground);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:13px;text-decoration:none;display:inline-flex}.repo-action:hover{background:var(--muted)}.project-new-task{height:32px;margin:0;padding:0 11px;font-size:13px!important}.runs-page{gap:16px;padding-top:0}.tasks-toolbar{align-items:center;gap:18px}.task-facets{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.task-search{width:min(320px,28vw);min-width:150px}.tasks-tools{gap:12px}.view-toggle{border:0;gap:0;padding:0}.view-toggle button{width:28px;padding:0 5px}.active-filters{color:var(--muted-foreground);justify-content:space-between;align-items:baseline;gap:10px;font-size:12px;display:flex}.active-filters span{overflow-wrap:anywhere;min-width:0}.active-filters button{color:var(--foreground);flex:none;align-items:center;gap:4px;display:flex}.synthetic-note{color:var(--muted-foreground);margin:0;font-size:12px}.run-workspace{gap:48px}.task-filter-rail{gap:16px}.all-tasks-filter{text-align:left;width:100%;color:var(--muted-foreground);justify-content:space-between;padding:0 2px;font-size:12px;display:flex}.all-tasks-filter[aria-pressed=true]{color:var(--foreground)}.tone-violet{--tone:#6e63d8}.tone-cyan{--tone:#058299}.tone-pink{--tone:#b6417a}.tone-green{--tone:#058263}.tone-amber{--tone:#a66b18}.tone-neutral{--tone:#71717a}.dark .tone-violet{--tone:#9180f4}.dark .tone-cyan{--tone:#39b4c9}.dark .tone-pink{--tone:#d768a4}.dark .tone-green{--tone:#32b991}.dark .tone-amber{--tone:#d3a357}.dark .tone-neutral{--tone:#a1a1aa}.filter-card{border-color:var(--tone)}@supports (color:color-mix(in lab, red, red)){.filter-card{border-color:color-mix(in srgb, var(--tone) 16%, var(--border))}}.filter-card{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.filter-card{background:color-mix(in srgb, var(--background) 95%, var(--tone))}}.filter-card{box-shadow:0 5px 12px -7px var(--tone);border-radius:8px}@supports (color:color-mix(in lab, red, red)){.filter-card{box-shadow:0 5px 12px -7px color-mix(in srgb, var(--tone) 38%, transparent)}}.dark .filter-card{background:#0b0b0d}.filter-card-main{padding:12px 11px 10px}.filter-card-main[aria-pressed=true]{background:var(--tone)}@supports (color:color-mix(in lab, red, red)){.filter-card-main[aria-pressed=true]{background:color-mix(in srgb, var(--tone) 9%, transparent)}}.filter-card-heading{gap:6px;font-size:14px;font-weight:400}.filter-card-heading>svg{color:var(--tone);flex:none}.filter-card-heading>span:first-of-type{overflow-wrap:anywhere;flex:1;min-width:0}.filter-card-count{color:var(--tone);font-size:14px;font-weight:550}.filter-disclosure{width:100%;color:var(--muted-foreground);justify-content:space-between;align-items:center;padding:0 11px 8px;font-size:12px;display:flex}.filter-disclosure[aria-expanded=true]>svg{transform:rotate(180deg)}.filter-card-children{border:0;gap:5px;padding:0 9px 10px}.filter-card-children[hidden]{display:none}.filter-substate{border:1px solid var(--border);min-height:24px;padding:2px 5px;font-size:12px}.filter-substate[aria-pressed=true]{border-color:var(--tone)}.task-list{border:0}.task-row{border-bottom:1px solid var(--divider);grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;display:grid}.task-row:first-child{padding-top:9px}.task-row:hover{background:var(--muted)}@supports (color:color-mix(in lab, red, red)){.task-row:hover{background:color-mix(in srgb, var(--muted) 32%, transparent)}}.task-row-link{min-width:0;padding:0;display:block}.task-row-link:hover{background:0 0}.task-row-title{font-size:14px;font-weight:450;line-height:21px}.task-row-meta{flex-wrap:wrap;gap:2px 8px;margin-top:3px;font-size:12px;line-height:18px;display:flex}.task-row-meta>.work-meta-part+.work-meta-part:before{content:"·";color:var(--muted-foreground);margin-right:8px}.task-status-icon{background:var(--tone);border-radius:7px;flex:none;place-items:center;width:24px;height:24px;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.task-status-icon{background:color-mix(in srgb, var(--tone) 13%, transparent)}}.task-status-icon{color:var(--tone)}.task-state{white-space:nowrap;border:1px solid var(--tone);align-items:center;gap:5px;padding:2px 6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.task-state{border:1px solid color-mix(in srgb, var(--tone) 23%, var(--border))}}.task-state{background:var(--tone);border-radius:5px}@supports (color:color-mix(in lab, red, red)){.task-state{background:color-mix(in srgb, var(--tone) 5%, var(--background))}}.task-state{color:var(--foreground);font-size:11px;font-weight:400;line-height:16px}.state-dot{border:1px solid var(--tone);background:var(--tone);border-radius:50%;width:5px;height:5px}.row-badge-filter{text-align:left;background:0 0;border:0;padding:0}.row-badge-filter:hover .task-state{border-color:var(--tone)}.project-header-compact{padding:18px 30px 0}.project-header-compact .project-heading{padding-bottom:14px}.project-header-compact h1{letter-spacing:-.015em;font-size:15px;line-height:22px}.project-header-compact .project-context-line{gap:10px;margin-top:4px}.task-detail-layout{grid-template-columns:minmax(0,1fr) 288px;align-items:stretch;min-height:calc(100vh - 56px);display:grid}.task-detail-main{min-width:0;padding:24px 32px 56px}.detail-toolbar{color:var(--muted-foreground);justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.detail-position,.detail-toolbar-actions{align-items:center;gap:12px;font-size:12px;display:flex}.detail-position>div{gap:0;display:grid}.detail-position a,.detail-position span[aria-label]{display:flex}.detail-position span[aria-label]{opacity:.3}.detail-toolbar-actions a,.detail-toolbar-actions button{border-radius:4px;place-items:center;width:28px;height:28px;display:grid}.detail-toolbar-actions a:hover,.detail-toolbar-actions button:hover{background:var(--muted);color:var(--foreground)}.copy-status{font-size:11px}.task-detail-heading{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:26px;display:flex}.task-detail-heading h2{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:18px;font-weight:600;line-height:26px}.task-detail-heading>p{flex-basis:100%}.task-detail-main [role=tablist]{gap:22px;margin-bottom:24px}.task-detail-main [role=tab]{padding-top:8px;padding-bottom:10px;font-size:13px}.task-result{border:0;border-left:1px solid var(--border);box-shadow:none;background:0 0;border-radius:0;margin-left:11px;padding:0 0 0 20px}.task-detail-main [role=tabpanel]{overflow-wrap:anywhere;min-width:0}.task-detail-main [role=tabpanel] .break-words{overflow-wrap:anywhere}.task-result>h2{font-size:14px}.task-metadata{border-left:1px solid var(--border);background:var(--surface-subtle);min-width:0;padding:24px}.task-metadata h3{align-items:center;gap:8px;margin:0 0 24px;font-size:14px;font-weight:600;display:flex}.task-metadata dl{gap:22px;display:grid}.task-metadata dt{color:var(--muted-foreground);align-items:center;gap:5px;margin-bottom:7px;font-size:12px;display:flex}.task-metadata dd{overflow-wrap:anywhere;margin:0;font-size:13px}.source-revision-sha{overflow-wrap:anywhere;word-break:break-all;font-size:11px;line-height:17px;display:block}.task-metadata .metadata-hint{color:var(--muted-foreground);margin-top:5px;font-size:11px;line-height:17px}.metadata-link{border:1px solid var(--border);border-radius:5px;align-items:center;gap:6px;padding:3px 6px;text-decoration:none;display:inline-flex}.metadata-link:hover{background:var(--muted)}.task-metadata .task-state{white-space:normal;max-width:100%;color:var(--tone);background:var(--tone);border-radius:20px;padding:5px 9px}@supports (color:color-mix(in lab, red, red)){.task-metadata .task-state{background:color-mix(in srgb, var(--tone) 15%, transparent)}}.workshop>.secondary-page{max-width:1500px;padding:0 56px 56px}@media (width<=1200px){.project-header,.runs-page,.workshop>.secondary-page{padding-left:36px;padding-right:36px}.project-actions{max-width:250px}.tasks-toolbar{flex-wrap:wrap}.tasks-tools{flex:1}.task-search{width:min(320px,100%)}.task-detail-layout{grid-template-columns:minmax(0,1fr) 248px}.task-detail-main{padding-left:26px;padding-right:26px}.task-metadata{padding:24px 18px}}@media (width<=900px){.run-workspace{grid-template-columns:190px minmax(0,1fr);gap:24px}.task-row{grid-template-columns:24px minmax(0,1fr);gap:9px}.row-badge-filter{grid-column:2}.task-detail-layout{grid-template-columns:minmax(0,1fr)}.task-metadata{border-left:0;border-top:1px solid var(--border)}.task-metadata dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (width<=767px){.app-sidebar{width:100%;height:auto;padding:10px 16px}.brand-lockup{padding:0}.project-header{padding:24px 20px 18px}.project-heading{flex-direction:column;align-items:flex-start;gap:18px;padding-bottom:20px}.project-header h1{font-size:28px;line-height:34px}.project-actions{justify-content:flex-start;gap:6px;max-width:100%}.project-new-task{margin:0}.runs-page,.workshop>.secondary-page{padding:0 20px 32px}.tasks-toolbar{flex-direction:column;align-items:stretch;gap:12px}.task-facets{gap:6px}.tasks-tools{width:100%}.task-search{flex:1;width:auto;min-width:0}.run-workspace{display:block}.task-row-title{font-size:14px}.task-row-meta{font-size:12px}.project-header-compact{padding:14px 20px 0}.project-header-compact h1{font-size:14px;line-height:20px}.project-header-compact .project-heading{flex-direction:row;align-items:center;gap:10px;padding-bottom:12px}.project-header-compact .project-actions .repo-action{gap:0;padding:0 7px;font-size:0}.project-header-compact .project-actions .repo-action>svg:last-child{display:none}.task-detail-main{padding:16px 20px 32px}.detail-toolbar{margin-bottom:24px}.task-detail-heading{gap:8px}.task-detail-heading h2{font-size:17px;line-height:24px}.task-detail-main [role=tablist]{gap:18px}.task-metadata{padding:24px 20px}}.brand-wordmark{flex-direction:column;gap:3px;font-size:23px;line-height:24px;display:flex}.brand-descriptor{letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground);font-size:8px;font-weight:550;line-height:12px}.project-path{color:var(--muted-foreground);font-size:11px;position:relative}.project-path>button{cursor:help;align-items:center;gap:4px;display:flex}.project-path [role=tooltip]{z-index:60;border:1px solid var(--border);background:var(--surface);width:240px;max-width:calc(100vw - 48px);color:var(--foreground);overflow-wrap:anywhere;border-radius:7px;padding:12px;line-height:18px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 8px 24px #0002}.project-path [role=tooltip][hidden]{display:none}.project-path code{font-size:11px}.repo-action.new-issue-action{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.facet-container{min-width:0;position:relative}.task-facet{border:1px solid var(--border);background:0 0;border-radius:7px;align-items:center;gap:6px;height:36px;padding:0 10px;font-size:13px;display:flex}.task-facet>svg{color:var(--muted-foreground);flex:none}.task-facet.is-selected{border-color:var(--muted-foreground);background:var(--muted)}.task-facet:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.facet-count{background:var(--border);text-align:center;border-radius:4px;min-width:17px;padding:0 3px;font-size:10px}.facet-popover{z-index:50;border:1px solid var(--border);background:var(--surface);border-radius:9px;width:256px;max-width:calc(100vw - 40px);padding:6px;font-size:13px;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 10px 26px #0002}.facet-popover-heading{justify-content:space-between;align-items:center;padding:6px 8px 10px;font-size:12px;font-weight:550;display:flex}.facet-popover-heading button{color:var(--muted-foreground);font-weight:400}.facet-popover-heading button:disabled{opacity:.4}.facet-options{overscroll-behavior:contain;max-height:240px;overflow-y:auto}.facet-option{cursor:pointer;border-radius:4px;align-items:center;gap:9px;padding:8px;display:flex}.facet-option:hover,.facet-option:focus-within{background:var(--muted)}.facet-option span{overflow-wrap:anywhere}.facet-select-all{border-bottom:1px solid var(--border);border-radius:0;margin-bottom:4px}.facet-empty{color:var(--muted-foreground);padding:14px 8px}.active-filters{align-items:center;min-height:28px}.task-list-actions{align-items:center;gap:18px;display:flex}.task-list-actions button:disabled{opacity:.35;cursor:default}.run-workspace.is-board{display:block}.is-board .task-filter-rail{display:none}.kanban-scroll{overscroll-behavior-x:contain;scrollbar-width:auto;scrollbar-color:var(--muted-foreground) var(--muted);max-width:100%;padding-bottom:14px;overflow-x:scroll}.kanban-scroll::-webkit-scrollbar{height:11px}.kanban-scroll::-webkit-scrollbar-track{background:var(--muted);border-radius:8px}.kanban-scroll::-webkit-scrollbar-thumb{background:var(--muted-foreground);border:3px solid var(--muted);border-radius:8px}.kanban-board{grid-auto-columns:290px;grid-auto-flow:column;align-items:start;gap:16px;width:max-content;min-width:100%;display:grid}.kanban-board .run-column{min-height:360px}@media (width<=767px){.brand-wordmark{font-size:20px;line-height:22px}.brand-descriptor{font-size:7px}.task-facet{gap:4px;padding:0 7px;font-size:12px}.task-facet>svg:first-child{display:none}.facet-container:last-child .facet-popover{left:auto;right:0}.facet-container:nth-child(2) .facet-popover{left:50%;transform:translate(-50%)}.kanban-board{grid-auto-columns:min(290px,100vw - 60px)}.project-path [role=tooltip]{left:auto;right:0}}.work-dialog{color:var(--foreground);background:var(--surface);border:1px solid var(--border);border-radius:12px;width:min(660px,100vw - 32px);max-height:calc(100dvh - 40px);margin:auto;padding:0;overflow-y:auto;box-shadow:0 24px 80px #0005}.work-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0008}.work-dialog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:24px;display:flex}.work-dialog-header h2{font-size:20px;font-weight:600}.work-dialog-header p{color:var(--muted-foreground);overflow-wrap:anywhere;margin-top:6px;font-size:12px}.work-dialog-body{gap:20px;min-width:0;padding:24px;display:grid}.work-source{border-bottom:1px solid var(--border);gap:24px;display:flex}.work-source button{color:var(--muted-foreground);border-bottom:2px solid #0000;padding-bottom:10px;font-size:13px}.work-source button[aria-pressed=true]{color:var(--foreground);border-bottom-color:var(--foreground)}.work-brief{resize:vertical;min-height:180px;max-height:45vh}.issue-picker{gap:12px;min-width:0;display:grid}.issue-list{border:1px solid var(--border);border-radius:8px;max-height:310px;overflow-y:auto}.issue-list>p{padding:16px}.issue-choice{text-align:left;border-bottom:1px solid var(--border);align-items:center;gap:12px;width:100%;padding:14px;display:flex}.issue-choice:last-child{border-bottom:0}.issue-choice:hover,.issue-choice:focus-visible{background:var(--muted)}.issue-choice:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.issue-choice:disabled{opacity:.55}.issue-choice>svg,.issue-number{flex:none}.issue-number{color:var(--muted-foreground);font-size:12px}.issue-choice-copy{overflow-wrap:anywhere;flex:1;min-width:0}.issue-choice-copy strong{font-size:13px;font-weight:500;display:block}.issue-choice-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.issue-choice-meta .issue-number{margin-right:3px}.issue-open-icon{color:#3c925d;align-self:flex-start;margin-top:2px}.issue-label{border:1px solid var(--label-color);border-radius:20px;padding:1px 7px;font-size:10px;font-weight:500;line-height:17px}@supports (color:color-mix(in lab, red, red)){.issue-label{border:1px solid color-mix(in srgb, var(--label-color) 28%, transparent)}}.issue-label{color:var(--label-color);background:var(--label-color)}@supports (color:color-mix(in lab, red, red)){.issue-label{background:color-mix(in srgb, var(--label-color) 8%, var(--surface))}}.label-neutral{--label-color:#646b77}.label-red{--label-color:#af4048}.label-orange{--label-color:#9f5a2a}.label-yellow{--label-color:#846b12}.label-green{--label-color:#3d764d}.label-cyan{--label-color:#20757b}.label-blue{--label-color:#366faa}.label-purple{--label-color:#8254a8}.dark .label-neutral{--label-color:#acb2bc}.dark .label-red{--label-color:#eb969b}.dark .label-orange{--label-color:#ebb182}.dark .label-yellow{--label-color:#d7c678}.dark .label-green{--label-color:#8bc99d}.dark .label-cyan{--label-color:#80c8ce}.dark .label-blue{--label-color:#8bb4e5}.dark .label-purple{--label-color:#bea0df}.issue-search{border:1px solid var(--border);color:var(--muted-foreground);border-radius:7px;align-items:center;gap:9px;padding:10px 12px;display:flex}.issue-search:focus-within{outline:2px solid var(--ring);outline-offset:2px}.issue-search input{width:100%;min-width:0;color:var(--foreground);background:0 0;border:0;outline:0;font-size:12px}.issue-picker-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.work-recommendation{background:var(--muted);border:1px solid var(--border);border-radius:8px;gap:12px;padding:16px;display:grid}.work-recommendation h3{font-size:14px;font-weight:600}.work-help{color:var(--muted-foreground);font-size:12px;line-height:20px}.work-help a{text-decoration:underline}.work-options summary{cursor:pointer;color:var(--muted-foreground);font-size:12px}.work-options-fields{gap:14px;margin-top:16px;display:grid}.work-dialog-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;padding:18px 24px;display:flex}.work-dialog-footer p{color:var(--muted-foreground);max-width:320px;font-size:11px;line-height:17px}.work-dialog-footer button{flex:none}@media (width<=480px){.work-dialog-header,.work-dialog-body,.work-dialog-footer{padding:18px}.work-dialog-footer{flex-direction:column;align-items:flex-start;gap:12px}.work-dialog-footer button{align-self:flex-end}}.project-header:not(.project-header-compact),.runs-page,.inbox-page,.workshop>.secondary-page{width:calc(100% - 112px);max-width:1500px;margin-inline:auto;padding-left:0;padding-right:0}.facet-option{text-align:left;width:100%;color:inherit;font:inherit;background:0 0;border:0}.facet-option:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.facet-check{border:1px solid var(--border);border-radius:3px;flex:none;place-items:center;width:14px;height:14px;display:grid}.facet-option[aria-checked=true] .facet-check{color:var(--background);background:var(--foreground);border-color:var(--foreground)}.facet-popover-heading button[aria-disabled=true]{opacity:.4}.run-column{border:1px solid var(--border);background:var(--surface);border-radius:6px;overflow:hidden}.run-column>header{color:var(--tone);background:var(--tone)}@supports (color:color-mix(in lab, red, red)){.run-column>header{background:color-mix(in srgb, var(--tone) 7%, var(--background))}}.repo-action:disabled{opacity:.5;cursor:not-allowed}@media (width<=1150px){.project-header:not(.project-header-compact),.runs-page,.inbox-page{width:calc(100% - 72px)}}@media (width<=767px){.project-header:not(.project-header-compact),.runs-page,.inbox-page{width:calc(100% - 40px)}}@media (width<=359px){.project-header:not(.project-header-compact),.runs-page,.inbox-page{width:calc(100% - 32px)}}.template-chooser,.issue-form-fields{gap:14px;display:grid}.template-choice{border:1px solid var(--border);border-radius:8px;overflow:hidden}.template-choice>button{text-align:left;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:16px;display:flex}.template-choice>button:hover,.template-choice>button:focus-visible{background:var(--muted)}.template-choice>button>span{gap:5px;display:grid}.template-choice strong,.template-contact strong,.template-form-name{font-size:13px;font-weight:600}.template-choice span>span,.template-contact>span{color:var(--muted-foreground);font-size:12px;line-height:18px}.template-choice>strong,.template-choice>p,.template-choice>a{margin:12px 16px;display:block}.template-choice>a{font-size:12px;text-decoration:underline}.template-contact{gap:5px;padding:8px 0;display:grid}.template-note{white-space:pre-wrap;color:var(--muted-foreground);border:1px solid var(--border);border-radius:6px;padding:12px;font-size:12px;line-height:19px}.field-description{margin:4px 0 8px;display:block}.issue-form-textarea{resize:vertical;min-height:100px}.issue-form-options{gap:8px;display:grid}.issue-form-options>label{align-items:flex-start;gap:8px;font-size:12px;display:flex}.issue-form-options input{margin-top:3px}.issue-publish,.issue-created{padding:0 24px 20px}.issue-publish-actions{justify-content:flex-end;gap:12px;margin-top:16px;display:flex}.issue-receipt{border:1px solid var(--border);border-radius:8px;margin:12px 0;padding:12px}.issue-publish strong,.issue-created a{overflow-wrap:anywhere}@media (width<=480px){.issue-publish-actions{flex-direction:column}}.revision-error{overflow-wrap:anywhere}.inbox-page{min-width:0;padding-bottom:32px}.inbox-page>.runs-page{width:100%;margin-inline:0;padding-inline:0}.inbox-attempts{gap:10px;padding:10px 0;display:grid}.inbox-attempts a{font-size:13px;text-decoration:underline;display:grid}.inbox-attempts small{color:var(--muted-foreground);font-size:11px}.inbox-body{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:14px}.inbox-start{gap:16px;min-width:0;max-width:680px;display:grid}.inbox-start label{gap:6px;display:grid}.active-filters{gap:8px;position:relative}.active-filters>[role=status]{flex:1;line-height:16px}.active-filters .repository-trigger{text-align:left;border-radius:6px;justify-items:start;gap:0;min-height:44px;padding:3px 6px;display:grid}.repository-trigger:hover,.repository-trigger[aria-expanded=true]{background:var(--muted)}.repository-trigger>span:first-child{align-items:center;gap:4px;display:flex}.repository-scope{color:var(--muted-foreground);font-size:12px;line-height:16px}.repository-popover{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:12px;width:min(340px,100%);max-height:min(440px,65vh);padding:12px;display:grid;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.source-controls{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.source-controls label{align-items:center;gap:6px;display:flex}.source-controls select{background:var(--background);max-width:100%;min-height:36px;color:var(--foreground);border:1px solid var(--border);border-radius:6px;padding:4px}.repository-popover button{white-space:normal;height:auto;min-height:36px}.source-boundary{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:12px;line-height:18px}.task-row-link>.issue-choice-meta,.run-card-link>.issue-choice-meta{margin-top:5px}.facet-search{border:1px solid var(--border);background:var(--background);width:calc(100% - 16px);color:var(--foreground);border-radius:4px;margin:4px 8px;padding:6px}.issue-context{gap:16px;min-width:0;margin-bottom:24px;display:grid}.issue-context summary{cursor:pointer;margin-block:10px;font-size:14px;font-weight:500}.issue-context .form-error,.inbox-attempts a{overflow-wrap:anywhere}.issue-context .inbox-start{padding-block:12px}.issue-context .inbox-start details label{margin-top:12px}@media (width<=480px){.task-facets{position:relative}.facet-container{position:static}.task-facets .facet-container .facet-popover{left:0;right:auto;transform:none}}@property --tw-space-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-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-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}