@tea-agent/loop-agent 0.40.0-next.11 → 0.40.0-next.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/build-stamp.json +3 -3
- package/dist/commands/client-recovery.js +8 -36
- package/dist/executors/pi-sdk-executor.js +33 -5
- package/dist/shared/pi-context-pressure/checkpoint.js +116 -0
- package/dist/shared/pi-context-pressure/compaction-policy.js +151 -0
- package/dist/shared/pi-context-pressure/env.js +58 -0
- package/dist/shared/pi-context-pressure/extension.js +100 -0
- package/dist/shared/pi-context-pressure/index.js +7 -0
- package/dist/shared/pi-context-pressure/overflow.js +252 -0
- package/dist/shared/pi-context-pressure/sift-bridge.js +386 -0
- package/dist/shared/pi-context-pressure/telemetry.js +51 -0
- package/dist/worker/console/chat/pi-runtime.js +146 -5
- package/dist/worker/console/chat/provider-error.js +2 -1
- package/dist/worker/console/chat/routes.js +3 -0
- package/dist/worker/console/chat/sift-bridge.js +1 -0
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-Bs-CDAXM.js → abnfDiagram-N423BO3Z-C_hkwt2J.js} +1 -1
- package/dist/worker/console/static/assets/{arc-CAkA3We3.js → arc-s2Q6r96B.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-DEmI_zqr.js → architectureDiagram-T3A2C74G-CtgsrwU1.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-uDHANebE.js → blockDiagram-VBNYF7ZC-DZ-A7EiJ.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-Bv97b4_B.js → c4Diagram-5PPSVZJV-D2qv0Nyo.js} +1 -1
- package/dist/worker/console/static/assets/channel-BluaMT3-.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-shmQKsFz.js → chunk-2GRJ4B5K-D-UYpSaW.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-BAraNvcN.js → chunk-2Q5K7J3B-DAS3jrrt.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-BirhxUop.js → chunk-5RXB4S5H-CSbuRcGB.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-C9LgUJpR.js → chunk-5VM5RSS4-BDH1ZO40.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-DrU-s-t7.js → chunk-6Q2QTUOP-Dc2cqQIb.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-Tx-H_FA2.js → chunk-GF5L2VYU-CkZuemIW.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-BjLtNFrR.js → chunk-JWPE2WC7-URwjQnte.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-UNLVwSsy.js → chunk-KBJHAD2P-04RHylJK.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-CBEUX8XD.js → chunk-RYQCIY6F-CvQX56Hh.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-WTL7IZOq.js → chunk-XXDRQBXY-dUF7qura.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-H-ZpSafr.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-H-ZpSafr.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-CkHG6W3s.js → cose-bilkent-JH36ORCC-COwbfxJE.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-BRzFqTaL.js → cynefin-VYW2F7L2-CaBEJekQ.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-2_CFp_i7.js → cynefinDiagram-MW4NZA55-COWUBdet.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-BJtsmdkE.js → dagre-VZM6K2ZE-BLxVqTn4.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-DNEFFo6w.js → diagram-7IWD3JNH-WL0yKfEQ.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-B_IWV7eo.js → diagram-B4RE2ZJO-DaVkKCle.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-DvvRx2dz.js → diagram-LBJQPF4R-DdTgnRGf.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-CsibsWLg.js → diagram-Q27KOJAE-PG2Axo6A.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-les_djBQ.js → diagram-UB23O5K3-6vuQzlzI.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-BEm2n7qJ.js → ebnfDiagram-BXEA7PRR-BpXeBz-g.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-BI7vHHVm.js → erDiagram-JOGREHBK-PxtUnaa1.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-CUFCERrB.js → flowDiagram-UKHOOZJN-B--Qgvs1.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-wxyLiGWt.js → ganttDiagram-PKOTCBZU-BIfQCgtx.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-Bt897K8Z.js → gitGraphDiagram-DS77QQ5N-BRaX_E4j.js} +1 -1
- package/dist/worker/console/static/assets/index-Crrgl8Mx.css +1 -0
- package/dist/worker/console/static/assets/{index-DqJbO3-p.js → index-vPsp-idE.js} +102 -72
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-DYNx_IPv.js → infoDiagram-6WML65LV-Cd93r4Ab.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-CzpLNEu6.js → ishikawaDiagram-WSZJBQD7-C4c80iHt.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-97f9owNU.js → journeyDiagram-NVQOT4AX-Ch5ajf3s.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-BxM9hyBn.js → kanban-definition-27J2QSJJ-DbpyW1Ut.js} +1 -1
- package/dist/worker/console/static/assets/{linear-ByuxcHvp.js → linear-BHVjBnTW.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-DwPGvpCv.js → mermaid.core-DO70kJ34.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-DCoqG9RT.js → mindmap-definition-FAOFIHXS-_P44Zpvs.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-BLSBmBMx.js → pegDiagram-VL7TDLO6-Bgi9FmEd.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-B0t_0oJW.js → pieDiagram-7S7Q4E2Y-C9InDfJn.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-sTzDk7Nt.js → quadrantDiagram-CIZ2JOQS-DtKrUouv.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-B3jRdATC.js → railroadDiagram-AXF67PYL-zgAD_6Yo.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-D-cTtXEN.js → requirementDiagram-LRYGKXZP-CQNO6kj4.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-B25igJRE.js → sankeyDiagram-W5VNT64P-knKu111P.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-jW_lM1_D.js → sequenceDiagram-SI44F4Z6-D6tshiQ6.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-CrzTgsHE.js → sizeCapture-X5ZJPWSS-BMIWJcir.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-B01MvlqE.js → stateDiagram-OKZ733FA-BP9wRDqc.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-ClEhytQG.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-YcF12FiU.js → swimlanes-SLNWSIFB-DEkM5Dhe.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-DPg5IMuu.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-ClnRcg2s.js → timeline-definition-Z64GVDOM-ByBKsL35.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-B6gr_z-q.js → vennDiagram-T6HMQDX7-waFbNCUy.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-CvSgguGH.js → wardleyDiagram-T6FBY63Y-1ljiY0eZ.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-23OtSZCb.js → xychartDiagram-ELKLHX3M-B4ZLHr_L.js} +1 -1
- package/dist/worker/console/static/index.html +2 -2
- package/dist/worker/observe/static/styles.css +9 -0
- package/dist/worker/observe/static/views/dag-inspector.js +40 -0
- package/dist/worker/observe/static/views/session-timeline.js +135 -0
- package/dist/workflows/dag/init-hybrid.js +1 -1
- package/docs/architecture/runtime-boundaries.md +2 -1
- package/docs/templates/backend-test-dag.json +1 -1
- package/package.json +3 -2
- package/dist/worker/console/static/assets/channel-amxUpk7o.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-bejwBVIz.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-bejwBVIz.js +0 -1
- package/dist/worker/console/static/assets/index-BHhUOTri.css +0 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BvFKEtm2.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-DIB2eVg-.js +0 -8
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
"validate-backend-test-environment-shell"
|
|
149
149
|
],
|
|
150
150
|
"complexity": "MED",
|
|
151
|
-
"subtask_prompt": "This is a required plan-generation node. Read only the strict read set and return the complete Markdown plan in the assistant response. The runtime persists the response as a run-owned Harness artifact named generate-backend-md-plan-pi/plan.md. Do not write testcase/md/README.md or any project file; module case cards are written by downstream sharded nodes.\n\nOutput budget protocol (hard, max output <=16K per turn): Never paste full Matrix, case bodies, or source text into assistant chat. README holds only Scope+Matrix+module index; never inline full case bodies. If a Completeness Gate / OUTPUT_LIMIT_RECOVERY retry is injected, continue only listed target paths.\n\nReturn the complete plan as plain Markdown. Do not emit JSON or code fences. The plan must contain the exact ## Coverage Scope, ## Coverage Matrix and ## Module Index sections required by the downstream manifest.\n\nRead the upstream environment report only through the strict read set. Generate the Markdown-first backend test plan; it will be persisted under the current DAG run's Harness artifacts, not under testcase/md/.\n\nWrite human-readable content in Simplified Chinese by default. Keep English only for machine-readable IDs and technical literals such as Case/AC/REQ/BR IDs, HTTP methods, paths, field names, enum values, commands, filenames, code symbols and exact source citations.\n\nCreate the concise plan entry page: test objective, target/environment, isolation/cleanup, module summary and a linked case index table with Case ID, Chinese case name, scenario type, endpoint and expected status/result. Avoid repeating every case body in the plan artifact.\n\nBefore the Coverage Matrix, write a mandatory machine-readable `## Coverage Scope` section in the plan artifact using exactly `| Field | Value |`, immediately followed by the separator row `|---|---|`, and these six unique rows: `Change Classification`, `Coverage Policy`, `Affected Operations`, `Affected Rule Keys`, `Regression Floor`, `Scope Evidence`. Always set `Change Classification` to `new-operation` and `Coverage Policy` to `full-contract`; do NOT reason about whether operations are new or existing. Cover all in-scope rules from the requirement document at full depth; treat the product requirement as the coverage baseline and use API contract evidence (fields/status/enum/boundary/format) to supplement scenario dimensions. Scope is limited to operations/rules the requirement document (or its referenced API contract) explicitly describes; do not expand to unrelated operations that the requirement does not mention. List affected operations exactly as `METHOD /path`, stable rule keys separated by semicolons, and precise source pointers as Scope Evidence.\n\nCoverage depth is full over the in-scope rules: fully cover every documented status, request/response field rule, requiredness, enum, boundary, format, auth and business state of each affected operation the requirement describes, but do not re-test unrelated operations the requirement does not mention. Inspect shared validator/helper/DTO/query builder evidence and expand Affected Operations when the same affected path can affect them; unresolved impact stays visible as GAP/CONFLICT.\n\nBefore writing cases, build the mandatory machine-readable Coverage Matrix inside the plan artifact itself. Its section heading line must be exactly `## Coverage Matrix` with no numeric prefix/suffix; never place the canonical Matrix only in a module file. Use this exact header: `| Rule Key | Priority | Source | Endpoint/Field | Dimension | Rule | Required Test Points | Case IDs | Status |`. Every data row must contain exactly 9 pipe-delimited cells and must never omit `Dimension`; use concise dimensions such as requirement, operation, response-status, requiredness, enum, boundary, format, business-state or error. Use only P0/P1/P2 and COVERED/PARTIAL/GAP/CONFLICT. Use stable `TP-<UPPERCASE-HYPHENATED-ID>` test points separated by semicolons.\n\nEach Rule Key must appear in exactly one Matrix row. Preserve each AC/REQ/BR Rule Key as one row; if one product rule spans multiple dimensions, use a concise composite Dimension in that single row instead of duplicating the key. Derive OpenAPI Rule Keys exactly as the deterministic analyzer does: operation token is `<HTTP-METHOD>-<PATH>` with braces removed and every non-alphanumeric run replaced by a hyphen, uppercase (for example POST `/api/resource-notes` → `POST-API-RESOURCE-NOTES`); response statuses use `API-<OPERATION>-RESPONSE-STATUS`; body/parameter fields use `API-<OPERATION>-<FIELD>-REQUIRED|ENUM|MIN-LENGTH|MAX-LENGTH|MINIMUM|MAXIMUM|PATTERN|FORMAT`. Do not invent aliases such as API-CREATE-FIELDS when a deterministic key applies.\n\nCoverage priority is strict inside the declared scope: P0 product requirements/task hard constraints always remain in scope; P1 exhaustively supplements documented operations, fields, business rules, statuses and errors only for Affected Operations; P2 adds bounded protocol robustness only when it is relevant to the change and does not invent product behavior. Coverage percentages describe the declared affected scope, never whole-API completeness unless every operation is explicitly listed. Conflicts or undefined expectations must stay visible as GAP/CONFLICT with precise source pointers, never guessed.\n\nFor uniqueness/lifecycle rules cover absent, active-existing, deleted-existing, create-delete-recreate, restore-then-recreate and documented scope/case-normalization states. For every enum cover every valid value plus bounded invalid equivalence classes (unknown, case variant, whitespace, empty, null/missing and wrong types as applicable). For every length/number rule cover min-1, min, nominal, max and max+1. For format rules cover each allowed class separately plus a valid mixed value, and representative forbidden classes including uppercase, internal/leading/trailing whitespace, tab/newline, unsupported punctuation, slash, emoji or control characters when the source contract supports that expectation.\n\nMandatory module index: include a `## Module Index` table in the plan artifact that lists every planned module as a canonical relative link of the exact form `[label](./<stem>.md)` plus a `testcase/md/<stem>.md` path cell, so a downstream deterministic manifest can parse the module list. Group by stable business resource/domain, not by CRUD operation: one resource's list/detail/create/update/delete cases belong in one module such as `resource_notes`; split only when a single module would exceed the per-child 16K output protocol, keep the total module count at the smallest safe value, and never exceed 8 modules. Name each module file with a stable lowercase business stem such as `health` or `resource_notes`. Pure hexadecimal/hash-like opaque stems such as `a401606` or `deadbeef` are forbidden. Do not use priority-only stems `p0`, `p1` or `p2`; Priority belongs only in the Coverage Matrix and never defines module files. Do not use Case-ID-like module filenames such as `BE-HEALTH.md` or `BE-NOTES.md`. The relative link target MUST equal the on-disk filename stem the sharded writer will create. For every automatable case, `自动化映射` must name exactly `testcase/test_<module>.py`, where <module> is that Markdown filename without `.md`, lowercased, with non-alphanumeric characters replaced by underscores. Example: `testcase/md/health.md` → `testcase/test_health.py`; `testcase/md/resource_notes.md` → `testcase/test_resource_notes.py`. Never invent a different pytest path in Markdown than the module stem implies.\n\nScenario Partitions (query/filter axes): for every affected GET/list operation, declare one row per enum or classification axis used for filtering (query/path parameters such as type/status/category). Add a mandatory machine-readable `## Scenario Partitions` section after the Coverage Matrix using exactly `| Partition ID | Operation | Axis | Domain | Required Slots | Expected by Slot | Bind Rule |` with the separator row. Partition ID is a stable `SP-<OPERATION>-<AXIS>` token; Domain must copy the legal values verbatim from the bound OpenAPI enum or requirement sentence (never guess), using bare semicolon-separated identifier values inside the single table cell (for example `ACTIVE; ARCHIVED`, with no Markdown backticks or prose); Required Slots writes `each-value` plus `omitted` only when the parameter is optional; Expected by Slot states the documented expectation per slot kind (`domain-value`, `default-behavior`, `empty-result`/`excluded-result` when documented, or `GAP` when the source does not document the complement expectation — never invent 空列表/400). POST/PUT body field-validation enums stay in the Coverage Matrix as `TP-<FIELD>-ENUM-*` and MUST NOT get a Scenario Partition row. Do not create partitions for axes without a documented legal-value domain. Only GET/list query or path parameters whose bound source documents a finite enum or classification set may become a Scenario Partition. Do not create partitions for free-form strings, primary keys, required-or-optional-only parameters, or boundary/format-only axes. If an axis has no finite legal-value domain, do not declare a Partition row and do not invent NOT-IN-SET cases. Cross-axis combinations stay as ONE nominal Case; never declare a cross-axis cartesian partition.\n\nBefore finalizing README, calculate the predicted collected-item count as `sum(max(1, number of variant Test Points in each Case))`. If the task declares an item budget, the prediction must not exceed it. Reduce excess only by removing duplicate execution and converting same-request checkpoints to assertions; never drop required rules, boundaries, enums, operation-specific inputs, or business states. Record the prediction in README. Use only environment-supported fixtures/targets/isolation, record evidence gaps in Chinese, and do not emit JSON, pytest, or execute commands.\n\n## Derived task contract: 需求.md\n\n# Backend test\n- AC-001 proof\n\n## Authoritative reference index\n\n[]\n\nFor each index entry, use `readPath` for Pi read-tool calls and copy `path` exactly into Markdown Source References. Bound files under .harness/tasks/<taskId>/source/** are read-only inputs: reading them is allowed even though writing .harness/** is forbidden. Never resolve `path` relative to the repository root, search for substitutes, or fall back to docs/** when a bound read fails.\n\nRead only precise indexed references needed for AC/API/field/rule evidence; references remain authoritative over derived text.",
|
|
151
|
+
"subtask_prompt": "This is a required plan-generation node. Read only the strict read set and return the complete Markdown plan in the assistant response. The runtime persists the response as a run-owned Harness artifact named generate-backend-md-plan-pi/plan.md. Do not write testcase/md/README.md or any project file; module case cards are written by downstream sharded nodes.\n\nOutput budget protocol (hard, max output <=16K per turn): Never paste full Matrix, case bodies, or source text into assistant chat. README holds only Scope+Matrix+module index; never inline full case bodies. If a Completeness Gate / OUTPUT_LIMIT_RECOVERY retry is injected, continue only listed target paths.\n\nReturn the complete plan as plain Markdown. Do not emit JSON or code fences. The plan must contain the exact ## Coverage Scope, ## Coverage Matrix and ## Module Index sections required by the downstream manifest.\n\nRead the upstream environment report only through the strict read set. Generate the Markdown-first backend test plan; it will be persisted under the current DAG run's Harness artifacts, not under testcase/md/.\n\nWrite human-readable content in Simplified Chinese by default. Keep English only for machine-readable IDs and technical literals such as Case/AC/REQ/BR IDs, HTTP methods, paths, field names, enum values, commands, filenames, code symbols and exact source citations.\n\nCreate the concise plan entry page: test objective, target/environment, isolation/cleanup, module summary and a linked case index table with Case ID, Chinese case name, scenario type, endpoint and expected status/result. Avoid repeating every case body in the plan artifact.\n\nBefore the Coverage Matrix, write a mandatory machine-readable `## Coverage Scope` section in the plan artifact using exactly `| Field | Value |`, immediately followed by the separator row `|---|---|`, and these six unique rows: `Change Classification`, `Coverage Policy`, `Affected Operations`, `Affected Rule Keys`, `Regression Floor`, `Scope Evidence`. Always set `Change Classification` to `new-operation` and `Coverage Policy` to `full-contract`; do NOT reason about whether operations are new or existing. Cover all in-scope rules from the requirement document at full depth; treat the product requirement as the coverage baseline and use API contract evidence (fields/status/enum/boundary/format) to supplement scenario dimensions. Scope is limited to operations/rules the requirement document (or its referenced API contract) explicitly describes; do not expand to unrelated operations that the requirement does not mention. List affected operations exactly as `METHOD /path`, stable rule keys separated by semicolons, and precise source pointers as Scope Evidence.\n\nCoverage depth is full over the in-scope rules: fully cover every documented status, request/response field rule, requiredness, enum, boundary, format, auth and business state of each affected operation the requirement describes, but do not re-test unrelated operations the requirement does not mention. Inspect shared validator/helper/DTO/query builder evidence and expand Affected Operations when the same affected path can affect them; unresolved impact stays visible as GAP/CONFLICT.\n\nBefore writing cases, build the mandatory machine-readable Coverage Matrix inside the plan artifact itself. Its section heading line must be exactly `## Coverage Matrix` with no numeric prefix/suffix; never place the canonical Matrix only in a module file. Use this exact header: `| Rule Key | Priority | Source | Endpoint/Field | Dimension | Rule | Required Test Points | Case IDs | Status |`. Every data row must contain exactly 9 pipe-delimited cells and must never omit `Dimension`; use concise dimensions such as requirement, operation, response-status, requiredness, enum, boundary, format, business-state or error. Use only P0/P1/P2 and COVERED/PARTIAL/GAP/CONFLICT. Use stable `TP-<UPPERCASE-HYPHENATED-ID>` test points separated by semicolons.\n\nEach Rule Key must appear in exactly one Matrix row. Preserve each AC/REQ/BR Rule Key as one row; if one product rule spans multiple dimensions, use a concise composite Dimension in that single row instead of duplicating the key. Derive OpenAPI Rule Keys exactly as the deterministic analyzer does: operation token is `<HTTP-METHOD>-<PATH>` with braces removed and every non-alphanumeric run replaced by a hyphen, uppercase (for example POST `/api/resource-notes` → `POST-API-RESOURCE-NOTES`); response statuses use `API-<OPERATION>-RESPONSE-STATUS`; body/parameter fields use `API-<OPERATION>-<FIELD>-REQUIRED|ENUM|MIN-LENGTH|MAX-LENGTH|MINIMUM|MAXIMUM|PATTERN|FORMAT`. Do not invent aliases such as API-CREATE-FIELDS when a deterministic key applies.\n\nCoverage priority is strict inside the declared scope: P0 product requirements/task hard constraints always remain in scope; P1 exhaustively supplements documented operations, fields, business rules, statuses and errors only for Affected Operations; P2 adds bounded protocol robustness only when it is relevant to the change and does not invent product behavior. Coverage percentages describe the declared affected scope, never whole-API completeness unless every operation is explicitly listed. Conflicts or undefined expectations must stay visible as GAP/CONFLICT with precise source pointers, never guessed.\n\nFor uniqueness/lifecycle rules cover absent, active-existing, deleted-existing, create-delete-recreate, restore-then-recreate and documented scope/case-normalization states. For every enum cover every valid value plus bounded invalid equivalence classes (unknown, case variant, whitespace, empty, null/missing and wrong types as applicable). For every length/number rule cover min-1, min, nominal, max and max+1. For format rules cover each allowed class separately plus a valid mixed value, and representative forbidden classes including uppercase, internal/leading/trailing whitespace, tab/newline, unsupported punctuation, slash, emoji or control characters when the source contract supports that expectation.\n\nMandatory module index: include a `## Module Index` table in the plan artifact that lists every planned module as a canonical relative link of the exact form `[label](./<stem>.md)` plus a `testcase/md/<stem>.md` path cell, so a downstream deterministic manifest can parse the module list. Group by stable business resource/domain, not by CRUD operation: one resource's list/detail/create/update/delete cases belong in one module such as `resource_notes`; split only when a single module would exceed the per-child 16K output protocol, keep the total module count at the smallest safe value, and never exceed 8 modules. Name each module file with a stable lowercase business stem such as `health` or `resource_notes`. Pure hexadecimal/hash-like opaque stems such as `a401606` or `deadbeef` are forbidden. Do not use priority-only stems `p0`, `p1` or `p2`; Priority belongs only in the Coverage Matrix and never defines module files. Do not use Case-ID-like module filenames such as `BE-HEALTH.md` or `BE-NOTES.md`. The relative link target MUST equal the on-disk filename stem the sharded writer will create. For every automatable case, `自动化映射` must name exactly `testcase/test_<module>.py`, where <module> is that Markdown filename without `.md`, lowercased, with non-alphanumeric characters replaced by underscores. Example: `testcase/md/health.md` → `testcase/test_health.py`; `testcase/md/resource_notes.md` → `testcase/test_resource_notes.py`. Never invent a different pytest path in Markdown than the module stem implies.\n\nScenario Partitions (query/filter axes): for every affected GET/list operation, declare one row per enum or classification axis used for filtering (query/path parameters such as type/status/category). Add a mandatory machine-readable `## Scenario Partitions` section after the Coverage Matrix using exactly `| Partition ID | Operation | Axis | Domain | Required Slots | Expected by Slot | Bind Rule |` with the separator row. Partition ID is a stable `SP-<OPERATION>-<AXIS>` token; Domain must copy the legal values verbatim from the bound OpenAPI enum or requirement sentence (never guess), using bare semicolon-separated identifier values inside the single table cell (for example `ACTIVE; ARCHIVED`, with no Markdown backticks or prose); Required Slots must contain `each-value` and exactly one `not-in-set`, plus `omitted` only when the parameter is optional; Expected by Slot states the documented expectation per slot kind (`domain-value`, `default-behavior`, `empty-result`/`excluded-result` when documented, or `GAP` when the source does not document the complement expectation — never invent 空列表/400). POST/PUT body field-validation enums stay in the Coverage Matrix as `TP-<FIELD>-ENUM-*` and MUST NOT get a Scenario Partition row. Do not create partitions for axes without a documented legal-value domain. Only GET/list query or path parameters whose bound source documents a finite enum or classification set may become a Scenario Partition. Do not create partitions for free-form strings, primary keys, required-or-optional-only parameters, or boundary/format-only axes. If an axis has no finite legal-value domain, do not declare a Partition row and do not invent NOT-IN-SET cases. Cross-axis combinations stay as ONE nominal Case; never declare a cross-axis cartesian partition.\n\nBefore finalizing README, calculate the predicted collected-item count as `sum(max(1, number of variant Test Points in each Case))`. If the task declares an item budget, the prediction must not exceed it. Reduce excess only by removing duplicate execution and converting same-request checkpoints to assertions; never drop required rules, boundaries, enums, operation-specific inputs, or business states. Record the prediction in README. Use only environment-supported fixtures/targets/isolation, record evidence gaps in Chinese, and do not emit JSON, pytest, or execute commands.\n\n## Derived task contract: 需求.md\n\n# Backend test\n- AC-001 proof\n\n## Authoritative reference index\n\n[]\n\nFor each index entry, use `readPath` for Pi read-tool calls and copy `path` exactly into Markdown Source References. Bound files under .harness/tasks/<taskId>/source/** are read-only inputs: reading them is allowed even though writing .harness/** is forbidden. Never resolve `path` relative to the repository root, search for substitutes, or fall back to docs/** when a bound read fails.\n\nRead only precise indexed references needed for AC/API/field/rule evidence; references remain authoritative over derived text.",
|
|
152
152
|
"executor": "pi",
|
|
153
153
|
"role": "planner",
|
|
154
154
|
"toolProfile": "read-only",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tea-agent/loop-agent",
|
|
3
|
-
"version": "0.40.0-next.
|
|
3
|
+
"version": "0.40.0-next.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"loop-agent": "bin/loop-agent.js",
|
|
@@ -87,7 +87,8 @@
|
|
|
87
87
|
"zod": "^3.25.76"
|
|
88
88
|
},
|
|
89
89
|
"optionalDependencies": {
|
|
90
|
-
"@cursor/sdk": "^1.0.7"
|
|
90
|
+
"@cursor/sdk": "^1.0.7",
|
|
91
|
+
"@agent-context/sift": "0.0.1-alpha.6"
|
|
91
92
|
},
|
|
92
93
|
"devDependencies": {
|
|
93
94
|
"@remixicon/react": "^4.9.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ag as o,ah as n}from"./mermaid.core-DwPGvpCv.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-Tx-H_FA2.js";import{_ as i}from"./mermaid.core-DwPGvpCv.js";import"./chunk-5VM5RSS4-C9LgUJpR.js";import"./chunk-XXDRQBXY-WTL7IZOq.js";import"./chunk-KBJHAD2P-UNLVwSsy.js";import"./chunk-2GRJ4B5K-shmQKsFz.js";import"./index-DqJbO3-p.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-Tx-H_FA2.js";import{_ as i}from"./mermaid.core-DwPGvpCv.js";import"./chunk-5VM5RSS4-C9LgUJpR.js";import"./chunk-XXDRQBXY-WTL7IZOq.js";import"./chunk-KBJHAD2P-UNLVwSsy.js";import"./chunk-2GRJ4B5K-shmQKsFz.js";import"./index-DqJbO3-p.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--canvas: #f4f2ee;--canvas-soft: #f7f5f1;--surface: #fbfaf7;--surface-muted: #eeeae3;--ink: #25231f;--body: #514d46;--muted: #777269;--muted-soft: #a39c90;--hairline: #e8e3dc;--hairline-strong: #d9d3ca;--muted-ink: #8a8f98;--orange: #f54e00;--orange-active: #d04200;--orange-soft: color-mix(in srgb, var(--orange) 12%, white);--blue: #3f6ea4;--green: #1f8a65;--amber: #a66a00;--red: #c72d53;--peach: #f1d8cb;--mint: #d8ead5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--transition-fast: .16s ease;--transition-base: .22s ease;--ease-out: cubic-bezier(.22, 1, .36, 1);--shadow-sm: 0 1px 2px rgb(38 37 30 / 5%);--shadow-panel: 0 1px 2px rgb(38 37 30 / 4%), 0 8px 24px rgb(38 37 30 / 3%);--shadow-soft: 0 10px 30px rgb(38 37 30 / 6%);--shadow-lg: 0 16px 44px rgb(38 37 30 / 10%);--shell-max: 1680px;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-base: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 26px;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Segoe UI Mono", monospace;--bg: var(--canvas);--border: var(--hairline);--accent: var(--orange);--accent-active: var(--orange-active);--danger: var(--red);--success: var(--green);--ok: var(--green);--warning: var(--amber);--info: var(--blue);--text-muted: var(--muted);--surface-raised: var(--surface);--surface-hover: var(--surface-muted);--surface-sunken: var(--canvas-soft);--oc-tree-guide: 14px;--oc-shortcut-palette-available-height: 62vh;--oc-session-share: 45%;--oc-repo-share: 55%;--oc-sidebar-width: 280px;--oc-details-width: 0px;--oc-file-tree-width: 240px;color-scheme:light;font-family:Segoe UI,PingFang SC,Hiragino Sans GB,Noto Sans SC,system-ui,-apple-system,sans-serif;line-height:1.5}*{box-sizing:border-box}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}html{background:var(--canvas);min-height:100%}body{margin:0;min-height:100vh;min-width:320px;background:transparent;color:var(--ink);font-size:14px}button,input,select,textarea{font:inherit}a{color:inherit}::selection{background:color-mix(in srgb,var(--orange) 18%,white)}.oc-messages,.oc-md-table-wrap,.oc-session-scroll,.oc-tree-scroll,.oc-process-timeline,.oc-tools-catalog-body,.oc-runtime-context-body,.inspect-split-panel{scrollbar-width:thin;scrollbar-color:var(--hairline-strong) transparent}.oc-messages::-webkit-scrollbar,.oc-md-table-wrap::-webkit-scrollbar,.oc-session-scroll::-webkit-scrollbar,.oc-tree-scroll::-webkit-scrollbar,.oc-process-timeline::-webkit-scrollbar,.oc-tools-catalog-body::-webkit-scrollbar,.oc-runtime-context-body::-webkit-scrollbar,.inspect-split-panel::-webkit-scrollbar{width:8px;height:8px}.oc-messages::-webkit-scrollbar-thumb,.oc-md-table-wrap::-webkit-scrollbar-thumb,.oc-session-scroll::-webkit-scrollbar-thumb,.oc-tree-scroll::-webkit-scrollbar-thumb,.oc-process-timeline::-webkit-scrollbar-thumb,.oc-tools-catalog-body::-webkit-scrollbar-thumb,.oc-runtime-context-body::-webkit-scrollbar-thumb,.inspect-split-panel::-webkit-scrollbar-thumb{background:var(--hairline-strong);border-radius:999px;border:2px solid transparent;background-clip:content-box}.oc-messages::-webkit-scrollbar-track,.oc-md-table-wrap::-webkit-scrollbar-track,.oc-session-scroll::-webkit-scrollbar-track,.oc-tree-scroll::-webkit-scrollbar-track,.oc-process-timeline::-webkit-scrollbar-track,.oc-tools-catalog-body::-webkit-scrollbar-track,.oc-runtime-context-body::-webkit-scrollbar-track,.inspect-split-panel::-webkit-scrollbar-track{background:transparent}code,.cmd,.kv dd code{font-family:var(--font-mono)}.console-app{display:flex;flex-direction:column;min-height:100dvh}.console-update-control{position:fixed;top:10px;right:16px;z-index:20;display:flex;align-items:center;gap:8px;font-size:12px}.console-update-badge{border-radius:999px;background:#fff3d6;color:#775315;padding:4px 8px}.console-update-channel-label{font-weight:600;color:#5b5143}.console-update-channel{border:1px solid #b79c72;border-radius:7px;background:#fff;color:#4e3b20;padding:5px 7px;font:inherit}.console-update-channel:focus-visible{outline:3px solid #1c73e8;outline-offset:2px}.console-update-channel:disabled{cursor:wait;opacity:.6}.console-update-button{border:1px solid #8f5f12;border-radius:7px;background:#fff;color:#604008;padding:6px 10px;font:inherit;cursor:pointer}.console-update-button:focus-visible{outline:3px solid #1c73e8;outline-offset:2px}.console-update-button:disabled{cursor:wait;opacity:.6}html:has(.console-app.is-chat-focus),body:has(.console-app.is-chat-focus){height:100%;overflow:hidden}.console-app.is-chat-focus{height:100dvh;max-height:100dvh;overflow:hidden}.console-shell{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;width:min(100% - 48px,var(--shell-max));margin:0 auto;padding:var(--space-5) 0 var(--space-12, 48px)}.flash{display:flex;gap:var(--space-3);align-items:flex-start;margin:0 0 var(--space-4);padding:12px 16px;border:1px solid var(--hairline);border-left:3px solid var(--hairline-strong);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-panel);animation:flash-in .22s var(--ease-out)}.flash-error{border-color:color-mix(in srgb,var(--red) 35%,var(--hairline));border-left-color:var(--red);background:color-mix(in srgb,var(--red) 6%,var(--surface));color:var(--red)}.flash-info{border-color:color-mix(in srgb,var(--blue) 30%,var(--hairline));border-left-color:var(--blue);background:color-mix(in srgb,var(--blue) 6%,var(--surface));color:var(--body)}.flash-label{flex:0 0 auto;min-width:3.5rem;font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding-top:1px}.flash-body{margin:0;overflow-wrap:anywhere;white-space:pre-line;font-size:var(--text-md);line-height:1.55}.muted{color:var(--muted)}.console-main{display:grid;gap:var(--space-4)}.workspace-pane{min-width:0;min-height:0;transition:opacity var(--transition-base) var(--ease-out),transform var(--transition-fast) var(--ease-out)}.workspace-pane[hidden]{display:none}.workspace-pane--chat{min-width:0;height:100%}.workspace-pane--inspect{min-height:0}.workspace-pane--operate:not([hidden]){position:relative;display:grid;grid-template:1fr / 1fr;min-height:0}.operate-subpane{grid-area:1 / 1;min-width:0;min-height:0;overflow:auto}.operate-subpane[hidden]{display:block!important;visibility:hidden;pointer-events:none}.inspect-workspace-root{min-height:0}.operator-chrome-fallback{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4)}.console-main--fill{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--space-3)}.console-shell.is-chat-focus{flex:1 1 auto;min-height:0;overflow:hidden;width:100%;margin:0;padding:0}.console-app.is-chat-focus{background:var(--canvas-soft)}.console-shell.is-chat-focus .console-main--fill{flex:1 1 auto;min-height:0;overflow:hidden}.panel--chat{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:var(--space-3);overflow:hidden}.panel--chat .oc-shell{flex:1 1 auto;min-height:0;height:auto;overflow:hidden}.console-shell.is-chat-focus .panel--chat{padding:0;border:0;border-radius:0;background:var(--canvas-soft);box-shadow:none}.console-shell.is-chat-focus .panel--chat .oc-shell{min-height:0;gap:0;overflow:hidden}.inspect-split-panel{position:fixed;z-index:50;top:16px;right:16px;bottom:16px;width:min(420px,calc(100vw - 32px));display:grid;align-content:start;gap:var(--space-4);padding:var(--space-5);overflow:auto;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.inspect-split-nodes{display:grid;gap:6px;margin:0;padding:0;list-style:none;max-height:220px;overflow:auto}.inspect-split-nodes li{display:grid;grid-template-columns:1fr auto;gap:var(--space-2);align-items:center;padding:6px 8px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--canvas-soft);font-size:12px}.inspect-split-nodes li.is-active{border-color:var(--orange);background:var(--orange-soft)}.inspect-split-nodes code{color:var(--muted);font-size:11px}.inspect-split-header{display:flex;align-items:start;justify-content:space-between;gap:var(--space-3)}.inspect-split-header h2,.inspect-split-panel h3{margin:0}.inspect-split-kicker,.inspect-split-id,.inspect-split-refresh{margin:0;color:var(--muted);font-size:12px}.inspect-split-refresh:before{content:"●";margin-right:6px;color:var(--green)}.inspect-split-refresh.is-terminal:before{color:var(--muted)}.inspect-split-facts{display:grid;gap:var(--space-2);margin:0}.inspect-split-facts div{display:grid;grid-template-columns:7rem 1fr;gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--hairline)}.inspect-split-facts dt{color:var(--muted)}.inspect-split-facts dd{margin:0;overflow-wrap:anywhere}.inspect-split-events{display:grid;gap:8px;margin:0;padding-left:18px;color:var(--body);font-size:12px}.panel{min-width:0;border:1px solid var(--hairline);background:color-mix(in srgb,var(--surface) 96%,transparent);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-panel)}.panel h2{margin:0 0 var(--space-2);color:var(--ink);font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.panel-lead{margin:0 0 var(--space-5);color:var(--muted);font-size:var(--text-md);line-height:1.55}.panel h3{margin:0 0 var(--space-3);color:var(--ink);font-size:15px;font-weight:700;letter-spacing:-.01em}.empty-state{border:1px dashed var(--hairline-strong);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);background:var(--canvas-soft);color:var(--body);text-align:center}.empty-state .cta-row{justify-content:center}.empty-title{margin:0 0 var(--space-2);color:var(--ink);font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em}.empty-state .muted{max-width:52ch;margin-left:auto;margin-right:auto}.checklist{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft);list-style:none;color:var(--body)}.checklist li{position:relative;padding:6px 0 6px 22px}.checklist li:before{content:"";position:absolute;left:0;top:12px;width:8px;height:8px;border-radius:50%;background:var(--orange);opacity:.75}.kv{display:grid;gap:var(--space-1);margin:0}.kv div{display:grid;grid-template-columns:9rem 1fr;gap:var(--space-3);padding:10px 0;border-bottom:1px solid var(--hairline)}.kv div:last-child{border-bottom:none}.kv dt{color:var(--muted);font-size:var(--text-sm);font-weight:600}.kv dd{margin:0;color:var(--ink);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}code{font-size:.85rem;color:var(--ink)}.cmd{display:block;width:100%;margin:0;padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft);color:var(--ink);font-size:var(--text-sm);line-height:1.55;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:280px}.run-progress{margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface)}.run-progress-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.run-progress-head b{font-size:var(--text-sm)}.run-progress-status{padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--hairline);color:var(--muted);font-size:var(--text-xs)}.run-progress-status.is-stalled{border-color:color-mix(in srgb,var(--orange) 45%,var(--hairline));color:var(--orange);background:color-mix(in srgb,var(--orange) 8%,var(--surface))}.run-progress-bar{margin:var(--space-2) 0;height:6px;border-radius:999px;background:var(--canvas-soft);overflow:hidden}.run-progress-bar>span{display:block;height:100%;border-radius:999px;background:var(--green);transition:width .3s ease}.run-progress-current,.run-progress-stall,.run-progress-failed{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--body)}.run-progress-stall{padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb,var(--orange) 45%,var(--hairline));border-radius:var(--radius-md);background:color-mix(in srgb,var(--orange) 6%,var(--surface));color:var(--orange)}.run-progress-failed{color:var(--red);overflow-wrap:anywhere}.run-sse-log{margin-top:var(--space-3)}.run-sse-log>summary{cursor:pointer;color:var(--muted);font-size:var(--text-sm);margin-bottom:var(--space-2)}.run-sse-log>summary:hover{color:var(--body)}.external-link{color:var(--orange);text-decoration:none;font-weight:600}.external-link:hover{text-decoration:underline}.error{color:var(--red)}.wizard-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-2);list-style:none;padding:0;margin:0 0 var(--space-5)}.wizard-steps li{position:relative;min-height:54px;display:grid;align-content:center;gap:3px;border:1px solid var(--hairline);border-radius:var(--radius-md);padding:9px 12px;background:var(--canvas-soft);color:var(--muted);font-size:var(--text-sm);font-weight:600;transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.wizard-steps li[data-done=true]{border-color:color-mix(in srgb,var(--green) 35%,var(--hairline));background:color-mix(in srgb,var(--mint) 45%,var(--surface));color:var(--green)}.wizard-steps li[data-active=true]{border-color:var(--orange);background:var(--surface);color:var(--ink);box-shadow:0 0 0 3px var(--orange-soft),var(--shadow-panel);transform:translateY(-1px)}.wizard-steps .step-index{font-size:10px;font-weight:700;letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--muted-soft)}.wizard-steps li[data-active=true] .step-index{color:var(--orange);opacity:1}.wizard-steps li[data-done=true] .step-index{color:inherit;opacity:.8}.wizard-steps .step-label{line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field{display:grid;gap:var(--space-1);margin:0 0 var(--space-4);width:min(100%,520px)}.field span{font-size:12px;font-weight:600;color:var(--muted)}.field input,.field textarea,.field select{width:100%;border:1px solid var(--hairline-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field input{min-height:40px;padding:0 var(--space-3)}.field select{min-height:40px;padding:0 var(--space-3);cursor:pointer}.field textarea{min-height:120px;padding:var(--space-3);resize:vertical}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.field input:disabled,.field textarea:disabled,.field select:disabled{background:var(--surface-muted);color:var(--muted);cursor:not-allowed}.workflow-hint{margin:calc(var(--space-1) * -1) 0 var(--space-3);color:var(--muted);font-size:12px}.prd-drop-zone{position:relative;width:min(100%,720px);margin:0 0 var(--space-3);padding:var(--space-3);border:1px dashed var(--hairline-strong);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.prd-drop-zone.is-dragover{border-color:var(--orange);background:var(--orange-soft);box-shadow:0 0 0 3px var(--orange-soft)}.prd-upload-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-3)}.prd-upload-btn{display:inline-flex;align-items:center;cursor:pointer;margin:0}.prd-upload-btn.is-disabled,.prd-upload-btn:has(input:disabled){opacity:.55;cursor:not-allowed;pointer-events:none}.prd-upload-btn:focus-within{outline:none;box-shadow:0 0 0 3px var(--orange-soft)}.prd-upload-hint{font-size:12px}.prd-file-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface-muted);font-size:12px;color:var(--ink)}.prd-file-list{list-style:none;margin:0 0 var(--space-3);padding:0;display:grid;gap:var(--space-2)}.prd-file-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface-muted);font-size:12px}.prd-file-list li.is-primary{border-color:color-mix(in srgb,var(--orange) 40%,var(--hairline-strong))}.prd-file-item-name{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);min-width:0}.prd-file-primary-tag{display:inline-flex;align-items:center;padding:0 6px;border-radius:999px;background:var(--orange-soft);color:var(--orange);font-size:11px;font-weight:700}.prd-file-item-actions{display:inline-flex;flex-wrap:wrap;gap:var(--space-1)}.prd-file-item-actions .btn,.prd-file-clear{min-height:28px;padding:0 var(--space-2);font-size:12px}.prd-drop-hint{margin:0 0 var(--space-3);font-size:13px;font-weight:600;color:var(--orange)}.prd-text-field{width:100%;margin-bottom:0}.prd-file-error{width:min(100%,720px);margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb,var(--orange) 45%,var(--hairline-strong));border-radius:var(--radius-md);background:var(--orange-soft);color:var(--ink);font-size:13px}.meta-row{display:grid;gap:6px;margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft);font-size:13px}.meta-row code{font-size:12px}.cta-row,.recovery-cta-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.cta-row{margin-top:var(--space-3)}.cta-row .cmd{flex:1 1 100%}.wizard-body{display:grid;gap:var(--space-3);justify-items:stretch;animation:panel-in .24s ease}.wizard-body>div{display:grid;gap:var(--space-3);justify-items:stretch}.wizard-body .field{width:100%;max-width:640px}.wizard-body .cta-row{margin-top:var(--space-1)}.interview-card{width:100%;padding:var(--space-5);border:1px solid var(--hairline);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--surface),var(--canvas-soft));box-shadow:var(--shadow-panel)}.interview-q{margin:0 0 var(--space-2);color:var(--ink)}.btn,button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 14px;border:1px solid var(--hairline-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font-size:var(--text-md);font-weight:600;letter-spacing:.01em;cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.btn:hover:not(:disabled),button:hover:not(:disabled){border-color:color-mix(in srgb,var(--ink) 18%,var(--hairline-strong));background:var(--canvas-soft);outline:none}.btn:focus-visible:not(:disabled),button:focus-visible:not(:disabled){outline:none;box-shadow:0 0 0 3px var(--orange-soft)}.btn:active:not(:disabled),button:active:not(:disabled){transform:translateY(1px)}.btn:disabled,button:disabled{opacity:.48;cursor:not-allowed;transform:none}.btn-primary,button.btn-primary{border-color:var(--orange);background:linear-gradient(180deg,var(--orange),var(--orange-active));color:#fff;font-weight:650;box-shadow:inset 0 1px #ffffff2e,0 6px 16px #f54e002e}.btn-primary:hover:not(:disabled),button.btn-primary:hover:not(:disabled){border-color:var(--orange-active);background:var(--orange-active);color:#fff;box-shadow:inset 0 1px #ffffff1f,0 8px 20px #f54e003d;transform:translateY(-1px)}.btn-primary:active:not(:disabled),button.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #f54e0033}.btn-secondary,button.btn-secondary{border-color:var(--hairline-strong);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled),button.btn-secondary:hover:not(:disabled){background:var(--canvas-soft)}.btn-ghost,button.btn-ghost{border-color:transparent;background:transparent;color:var(--body)}.btn-ghost:hover:not(:disabled),button.btn-ghost:hover:not(:disabled){background:var(--surface-muted);color:var(--ink)}.recovery-cta-row{margin-top:var(--space-3)}.recovery-confirm{margin-top:var(--space-3);padding:var(--space-4);border:1px solid color-mix(in srgb,var(--orange) 40%,var(--hairline));border-radius:var(--radius-md);background:color-mix(in srgb,var(--orange-soft) 55%,var(--surface))}.recovery-confirm h3{margin:0 0 var(--space-2);font-size:15px}.recovery-confirm .cta-row{margin-top:var(--space-3)}.recovery-reason-code{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-3);padding:0;border:0;min-inline-size:0;width:100%}.recovery-reason-code legend{padding:0;float:none;width:auto;font-size:12px;font-weight:600;color:var(--muted)}.recovery-reason-code-group{display:flex;flex-wrap:wrap;gap:8px}.recovery-reason-code-option{position:relative;display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border:1px solid var(--hairline-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--body);font-size:13px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast),color var(--transition-fast)}.recovery-reason-code-option:hover{border-color:var(--orange);color:var(--ink)}.recovery-reason-code-option.is-active{border-color:var(--orange);background:color-mix(in srgb,var(--orange-soft) 85%,var(--surface));color:var(--ink);font-weight:600}.recovery-reason-code-option:focus-within{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.recovery-reason-code:disabled .recovery-reason-code-option,.recovery-reason-code-option:has(input:disabled){opacity:.55;cursor:not-allowed}.recovery-reason-code-option input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.recovery-report{margin-top:var(--space-3);padding:var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface)}.recovery-report-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.recovery-report-header h3{margin:0;font-size:15px}.recovery-report-facts{display:grid;gap:var(--space-2);margin:0 0 var(--space-3)}.recovery-report-facts div{display:grid;grid-template-columns:5.5rem 1fr;gap:var(--space-2)}.recovery-report-facts dt{color:var(--muted);font-size:12px}.recovery-report-facts dd{margin:0;overflow-wrap:anywhere}.recovery-steps{margin:.5rem 0 .75rem 1.25rem;padding:0;line-height:1.5}.recovery-lane{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--hairline)}.recovery-lane h3{margin:0 0 .35rem;font-size:1rem}.recovery-cta-row button[disabled]{opacity:.4}@keyframes flash-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:800px){.console-shell{width:min(100% - 24px,var(--shell-max));padding-top:var(--space-5)}.inspect-split-panel{inset:auto 0 0;width:100%;max-height:min(76vh,680px);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.kv div{grid-template-columns:1fr}.wizard-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}.oc-shell{display:flex;flex-direction:column;height:100%;min-height:0;gap:var(--space-3);position:relative;overflow:hidden}.oc-workspace{display:grid;grid-template-columns:var(--oc-sidebar-width, 280px) minmax(0,1fr) var(--oc-details-width, 0px);flex:1 1 auto;min-height:0;gap:0;position:relative;overflow:hidden;background:var(--canvas-soft);transition:grid-template-columns .18s cubic-bezier(.4,0,.2,1)}.oc-workspace.is-column-dragging{transition:none;-webkit-user-select:none;user-select:none}.oc-workspace:not(:has(.oc-details-rail)){grid-template-columns:260px minmax(420px,1fr)}.oc-workspace[data-layout-mode=narrow]{grid-template-columns:minmax(0,1fr)}.oc-workspace[data-layout-mode=narrow] .oc-sidebar,.oc-workspace[data-layout-mode=narrow] .oc-details-rail{display:none}.oc-workspace[data-layout-mode=compact]{grid-template-columns:56px minmax(420px,1fr) 340px}.oc-workspace[data-layout-mode=compact]:has(.oc-details-rail.is-collapsed){grid-template-columns:56px minmax(420px,1fr) 46px}.oc-main{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;background:var(--surface)}.oc-column-resize-handle{position:absolute;top:0;bottom:0;z-index:12;width:8px;touch-action:none;cursor:col-resize}.oc-column-resize-handle[data-side=sidebar]{left:calc(var(--oc-sidebar-width) - 4px)}.oc-column-resize-handle[data-side=details]{right:calc(var(--oc-details-width) - 4px)}.oc-column-resize-handle[data-side=details-tree]{right:calc(var(--oc-file-tree-width, 240px) - 4px)}.oc-column-resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:3px;width:2px;background:transparent;transition:background .12s ease}.oc-column-resize-handle:hover:after,.oc-column-resize-handle[data-dragging=true]:after{background:color-mix(in srgb,var(--ink) 24%,transparent)}.oc-details-reopen{position:absolute;top:10px;right:10px;z-index:11;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}.oc-panel-icon{display:block;flex-shrink:0}.oc-panel-icon.is-right{transform:scaleX(-1)}.oc-details-reopen:hover{border-color:var(--hairline);background:var(--surface-muted);color:var(--ink)}.oc-main-topbar{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto;padding:6px 10px;border-bottom:1px solid var(--hairline);background:color-mix(in srgb,var(--surface) 92%,transparent)}.oc-main-topbar-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:36px;min-width:44px;padding:0 12px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.oc-main-topbar-btn:hover{border-color:color-mix(in srgb,var(--orange) 35%,var(--hairline));background:color-mix(in srgb,var(--orange) 8%,var(--surface))}.oc-main-topbar-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 45%,transparent);outline-offset:1px}.oc-main-topbar-btn:active{transform:translateY(1px)}.oc-sidebar{flex:0 0 auto;width:100%;min-width:0;display:flex;flex-direction:column;gap:var(--space-2);margin-right:0;padding:var(--space-2);overflow:hidden;border:0;border-right:1px solid var(--hairline);border-radius:0;background:var(--canvas-soft)}.oc-sidebar.is-collapsed{box-sizing:border-box;flex:0 0 100%;width:100%;padding:6px;overflow:visible;align-items:center}.oc-sidebar-rail{flex:0 0 44px;width:44px;min-width:44px;display:flex;flex-direction:column;align-items:center;gap:6px;margin-right:var(--space-2);padding:8px 4px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface)}.oc-sidebar-rail-btn{appearance:none;display:inline-grid;place-items:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.oc-sidebar-rail-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--orange) 8%,var(--surface));border-color:var(--hairline)}.oc-sidebar-rail-btn:active{transform:scale(.96)}.oc-sidebar-rail-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 45%,transparent);outline-offset:1px}.oc-overlay-backdrop{position:absolute;inset:0;z-index:6;border:0!important;padding:0!important;margin:0!important;min-height:0!important;min-width:0!important;border-radius:0!important;box-shadow:none!important;outline:none!important;background:color-mix(in srgb,var(--ink) 28%,transparent)!important;cursor:pointer;transform:none!important}.oc-overlay-backdrop:hover,.oc-overlay-backdrop:focus,.oc-overlay-backdrop:focus-visible,.oc-overlay-backdrop:active{border:0!important;padding:0!important;margin:0!important;min-height:0!important;border-radius:0!important;box-shadow:none!important;outline:none!important;background:color-mix(in srgb,var(--ink) 28%,transparent)!important;transform:none!important}.oc-overlay-backdrop.is-process:hover,.oc-overlay-backdrop.is-process:focus,.oc-overlay-backdrop.is-process:active,.oc-overlay-backdrop.is-runtime-context:hover,.oc-overlay-backdrop.is-runtime-context:focus,.oc-overlay-backdrop.is-runtime-context:active{background:transparent!important}.oc-overlay-backdrop.is-process{z-index:7;background:transparent!important}.oc-overlay-backdrop.is-runtime-context{background:transparent!important}.oc-sidebar-drawer{position:absolute;inset:0 auto 0 0;z-index:8;width:min(320px,calc(100% - 24px));margin-right:0;box-shadow:var(--shadow-soft)}.oc-process.is-process-overlay{position:absolute;top:0;right:0;bottom:0;z-index:9;animation:oc-drawer-slide-in .28s cubic-bezier(.32,.72,0,1);will-change:transform;width:min(380px,calc(100% - 24px));min-width:0;flex:none;margin-left:0;border-radius:var(--radius-md) 0 0 var(--radius-md);box-shadow:var(--shadow-soft)}.oc-sidebar-split{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:0}.oc-sidebar-split>.oc-sessions{flex:1 1 var(--oc-session-share, 45%);max-height:none;min-height:0}.oc-sidebar-split>.oc-sessions .oc-session-scroll{flex:1 1 auto;max-height:none;min-height:0}.oc-sidebar-split>.oc-explorer{flex:1 1 var(--oc-repo-share, 55%);min-height:0;border-top:0;padding-top:0;margin-top:0}.oc-sidebar-split>.oc-explorer .oc-tree-scroll{max-height:none;min-height:0}.oc-sidebar-separator{flex:0 0 8px;height:8px;margin:2px 0;border:0;border-radius:999px;background:color-mix(in srgb,var(--hairline) 80%,transparent);cursor:row-resize;touch-action:none}.oc-sidebar-separator:hover,.oc-sidebar-split[data-dragging=true] .oc-sidebar-separator{background:color-mix(in srgb,var(--orange) 45%,var(--hairline))}.oc-sidebar-separator:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 45%,transparent);outline-offset:1px;background:color-mix(in srgb,var(--orange) 35%,var(--hairline))}.oc-sidebar-header-actions{display:inline-flex;align-items:center;gap:2px}.oc-sidebar-primary-actions{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:6px;padding:2px 2px 6px}.oc-sidebar-new-session{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;height:38px;padding:8px 16px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #27251e0a;font:inherit;font-size:14px;font-weight:500;cursor:pointer}.oc-sidebar-new-session:hover,.oc-sidebar-new-session:focus-visible{border-color:color-mix(in srgb,var(--ink) 18%,var(--hairline));background:color-mix(in srgb,var(--surface) 78%,white)}.oc-sidebar-icon-action{appearance:none;display:inline-grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.oc-sidebar-icon-action:hover,.oc-sidebar-icon-action:focus-visible,.oc-sidebar-icon-action[aria-expanded=true]{background:var(--surface-muted);color:var(--ink)}.oc-sidebar-icon-action[aria-busy=true] svg{animation:oc-picker-spin .8s linear infinite}@keyframes oc-picker-spin{to{transform:rotate(360deg)}}.oc-session-search-wrap{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:4px;margin:0 6px 2px;padding:0 7px;border:1px solid var(--hairline);border-radius:7px;background:var(--surface);color:var(--muted)}.oc-session-search-wrap input{width:100%;height:30px;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:12px}.oc-sidebar-toggle{appearance:none;display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.oc-sidebar-toggle:hover{color:var(--ink);background:color-mix(in srgb,var(--orange) 8%,var(--surface));border-color:var(--hairline)}.oc-sidebar-toggle:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 45%,transparent);outline-offset:1px}.oc-sidebar-toggle.is-collapsed{width:100%;height:28px}.oc-sidebar-section{display:flex;flex-direction:column;gap:6px;min-height:0}.oc-sidebar-section>header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;flex-shrink:0}.oc-sessions{flex:0 1 auto;max-height:min(34vh,320px);display:flex;flex-direction:column;min-height:0}.oc-session-scroll{min-height:0;max-height:min(28vh,260px);overflow:auto;padding:4px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--canvas-soft) 70%,white),var(--canvas-soft))}.oc-session-group{display:flex;flex-direction:column;gap:2px}.oc-session-group>small{margin:4px 6px 2px;color:var(--muted-soft);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.oc-session-item{position:relative;display:block;height:32px;box-sizing:border-box;border-radius:8px;transition:background-color var(--transition-fast);animation:oc-sidebar-row-in .15s ease-in-out}.oc-session-item:hover,.oc-session-item.is-menu-open,.oc-session-item:has(.oc-session-main:focus-visible),.oc-session-item:has(.oc-session-menu:focus-visible){background:color-mix(in srgb,var(--ink) 5%,transparent)}.oc-session-item.is-active{background:color-mix(in srgb,var(--ink) 5%,transparent)}@keyframes oc-sidebar-row-in{0%{opacity:0}}.oc-session-main{display:flex;align-items:center;gap:6px;width:100%;height:32px;box-sizing:border-box;min-width:0;padding:0 8px;border:0;background:transparent;color:inherit;text-align:left;text-decoration:none;cursor:pointer}.oc-session-main[aria-disabled=true]{cursor:wait;pointer-events:none}.oc-session-main strong,.oc-session-main time{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-session-main strong{flex:1 1 auto;min-width:0;font-size:14px;font-weight:500;line-height:20px}.oc-session-running{position:absolute;top:8px;left:8px;right:auto;height:16px;display:inline-flex;align-items:center;justify-content:center;width:14px;color:var(--orange-active, var(--orange));pointer-events:none;z-index:1}.oc-session-item:has(.oc-session-running) .oc-session-main{padding-left:28px}.oc-session-running .oc-spinner{width:12px;height:12px;border-width:1.5px}.oc-session-queue-state{position:absolute;right:8px;bottom:5px;max-width:52px;overflow:hidden;color:var(--orange-active, var(--orange));font-size:10px;line-height:1;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}.oc-session-queue-state.is-failed{color:var(--danger)}.oc-spinner{display:inline-block;width:.85em;height:.85em;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:oc-spin .8s linear infinite;flex-shrink:0}.oc-spinner-inline{width:12px;height:12px;margin-right:2px;vertical-align:-1px}@media(prefers-reduced-motion:reduce){.oc-spinner{animation-duration:1.6s}.workspace-pane{transition:none}}@keyframes oc-spin{to{transform:rotate(360deg)}}.oc-session-main time{flex:0 0 auto;color:var(--muted-soft);font-size:12px;line-height:20px;font-variant-numeric:tabular-nums}.oc-session-actions{position:absolute;top:50%;right:4px;z-index:2;display:none;align-items:center;padding:0 8px;background:transparent;transform:translateY(-50%)}.oc-session-item:hover .oc-session-actions,.oc-session-item:has(.oc-session-main:focus-visible) .oc-session-actions,.oc-session-item:has(.oc-session-menu:focus-visible) .oc-session-actions,.oc-session-item.is-menu-open .oc-session-actions{display:inline-flex}.oc-session-item:hover .oc-session-main time,.oc-session-item:has(.oc-session-main:focus-visible) .oc-session-main time,.oc-session-item:has(.oc-session-menu:focus-visible) .oc-session-main time,.oc-session-item.is-menu-open .oc-session-main time{display:none}@media(hover:none),(pointer:coarse){.oc-session-item.is-active .oc-session-actions,.oc-session-item:has(.oc-session-main:focus-visible) .oc-session-actions{display:inline-flex}}@media(prefers-reduced-motion:reduce){.oc-session-actions{transition:none}}.oc-session-menu{display:inline-grid;place-items:center;width:16px;height:16px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;line-height:0}.oc-session-menu:hover,.oc-session-menu:focus-visible{color:var(--ink);background:transparent}.oc-session-delete{color:var(--muted)}.oc-session-delete:hover,.oc-session-delete:focus-visible{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.oc-session-actions.is-delete-confirm{gap:4px;padding-left:18px}.oc-session-delete-confirm,.oc-session-delete-cancel{min-height:26px;padding:3px 8px;border:1px solid var(--hairline);border-radius:6px;background:var(--surface);color:var(--body);cursor:pointer;font:inherit;font-size:11px;font-weight:650;line-height:1.2;white-space:nowrap}.oc-session-delete-confirm{border-color:color-mix(in srgb,var(--red) 45%,var(--hairline));color:var(--red);background:color-mix(in srgb,var(--red) 7%,var(--surface))}.oc-session-delete-confirm:hover,.oc-session-delete-confirm:focus-visible{border-color:var(--red);background:color-mix(in srgb,var(--red) 13%,var(--surface))}.oc-session-delete-cancel:hover,.oc-session-delete-cancel:focus-visible{border-color:var(--hairline-strong);color:var(--ink);background:var(--surface-muted)}.oc-session-delete-confirm:focus-visible,.oc-session-delete-cancel:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 42%,transparent);outline-offset:1px}.oc-session-delete-confirm:disabled,.oc-session-delete-cancel:disabled{cursor:wait;opacity:.65}.oc-sidebar-hover-card{position:fixed;z-index:100;display:flex;flex-direction:column;gap:8px;box-sizing:border-box;width:244px;padding:12px 16px;border-radius:12px;background:#2c2c2e;box-shadow:0 12px 32px #0000003d;color:#fff;font-size:12px;line-height:16px}.oc-sidebar-hover-card strong{font-size:14px;font-weight:500;line-height:20px;overflow-wrap:anywhere}.oc-sidebar-hover-card>span{color:#cfd3d6}.oc-sidebar-hover-path{word-break:break-all}.oc-sidebar-hover-status{display:flex;align-items:center;gap:8px;color:#adb2b8!important}.oc-sidebar-hover-status i{width:7px;height:7px;border-radius:50%;background:#6f747b}.oc-sidebar-hover-status i.is-running{background:var(--orange);box-shadow:0 0 0 3px #e07e4e2e}.oc-session-popover-menu{position:fixed;z-index:110;display:grid;width:176px;box-sizing:border-box;padding:5px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);box-shadow:0 10px 28px #2320182e}.oc-session-popover-menu>button{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:var(--ink);font:inherit;font-size:12px;text-align:left;cursor:pointer}.oc-session-popover-menu>button:hover,.oc-session-popover-menu>button:focus-visible{background:var(--surface-muted)}.oc-session-popover-menu>button.is-danger{color:var(--red)}.oc-session-menu-confirm{display:grid;gap:10px;padding:8px;font-size:12px}.oc-session-menu-confirm>div{display:flex;justify-content:flex-end;gap:6px}.oc-session-menu-confirm button{min-height:27px;padding:0 8px;border:1px solid var(--hairline);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:11px;cursor:pointer}.oc-session-menu-confirm button.is-danger{border-color:color-mix(in srgb,var(--red) 38%,var(--hairline));color:var(--red)}.oc-explorer{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--hairline);padding-top:var(--space-3);margin-top:2px}.oc-explorer-hint{margin:0 2px;color:var(--muted-soft);font-size:10.5px;letter-spacing:.01em}.oc-tree-scroll{flex:1 1 auto;min-height:120px;max-height:min(52vh,560px);overflow:auto;padding:4px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--canvas-soft) 70%,white),var(--canvas-soft))}.oc-tree,.oc-tree ul{list-style:none;padding:0;margin:0}.oc-tree-node{position:relative}.oc-tree-row{appearance:none;display:grid;grid-template-columns:12px 14px minmax(0,1fr) 18px;align-items:center;gap:6px;width:100%;min-height:28px;margin:0;padding:3px 8px;border:0;border-radius:6px;background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.oc-tree-at{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:auto;border-radius:4px;color:var(--muted-soft);font-size:12px;font-weight:700;line-height:1;opacity:0;transition:opacity var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.oc-tree-row:hover .oc-tree-at,.oc-tree-at:focus-visible{opacity:1}.oc-tree-at:hover{background:color-mix(in srgb,var(--orange) 16%,var(--surface));color:var(--orange)}.oc-tree-at:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 45%,transparent);outline-offset:1px}.oc-tree-row:hover{background:color-mix(in srgb,var(--orange) 8%,var(--surface))}.oc-tree-row:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 45%,transparent);outline-offset:1px}.oc-tree-chevron{color:var(--muted-soft);transition:transform var(--transition-fast);transform:rotate(0)}.oc-tree-chevron.is-open{transform:rotate(90deg)}.oc-tree-chevron-spacer{width:12px;height:12px}.oc-tree-glyph{flex-shrink:0;color:var(--amber)}.oc-tree-glyph.is-folder-open{color:color-mix(in srgb,var(--orange) 70%,var(--amber))}.oc-tree-glyph.is-file{color:var(--muted)}.oc-tree-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;line-height:1.25;font-variant-numeric:tabular-nums}.oc-tree-dir .oc-tree-label{font-weight:650;color:var(--ink)}.oc-tree-file .oc-tree-label{font-family:JetBrains Mono,SFMono-Regular,Consolas,Segoe UI Mono,monospace;font-size:11.5px;font-weight:500;color:var(--body)}.oc-tree-node.is-dot .oc-tree-label{color:var(--muted-soft);font-weight:500}.oc-tree-node.is-dot .oc-tree-glyph{opacity:.7}.oc-tree-children{position:relative;margin:0}.oc-tree-children:before{content:"";position:absolute;top:0;bottom:2px;left:var(--oc-tree-guide, 14px);width:1px;background:color-mix(in srgb,var(--hairline-strong) 55%,transparent);pointer-events:none}.oc-tree-empty,.oc-sidebar-error{margin:8px 6px;color:var(--muted);font-size:12px;line-height:1.45}.oc-sidebar-error{color:var(--red)}.oc-governance{margin-top:auto;border-top:1px solid var(--hairline);padding-top:8px}.oc-governance-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.oc-governance-links button{min-height:28px;padding:4px 6px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);cursor:pointer;font:inherit;font-size:11px;font-weight:600;text-align:center}.oc-governance-links button:hover{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 18%,var(--hairline))}.oc-governance-links button.is-active{color:var(--orange-active);border-color:color-mix(in srgb,var(--orange) 35%,var(--hairline))}.oc-resource-backdrop{--oc-chrome-offset: 0px;position:fixed;top:var(--oc-chrome-offset);right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#26251e52}.oc-resource-panel{width:min(880px,calc(100vw - 32px));max-height:min(calc(100% - 16px),760px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);color:var(--ink)}.oc-resource-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-shrink:0;padding:12px 14px;border-bottom:1px solid var(--hairline);background:var(--surface-raised)}.oc-resource-panel-head-copy{display:grid;gap:2px;min-width:0}.oc-resource-panel-head-actions{display:flex;align-items:flex-start;gap:8px;flex:none}.oc-resource-panel-head strong{font-size:14px}.oc-resource-panel-meta{color:var(--muted);font-size:11px;line-height:1.5}.oc-resource-panel-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:12px;padding:14px}.oc-resource-panel-body:has(.oc-models-config){overflow:auto}.oc-resource-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;flex-shrink:0;padding:10px 14px;border-top:1px solid var(--hairline);background:var(--surface-raised)}.oc-resource-panel-actions{display:flex;align-items:center;gap:6px}.oc-resource-error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--red) 35%,var(--hairline));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--red) 6%,var(--surface));color:var(--red);font-size:var(--text-sm)}.oc-resource-empty{margin:0;padding:14px 10px;border:1px dashed var(--hairline-strong);border-radius:var(--radius-md);color:var(--muted);font-size:var(--text-sm);text-align:center}.oc-resource-lists{display:flex;flex-direction:column;flex:1;min-height:0;gap:10px}.oc-resource-lists>.oc-resource-error,.oc-resource-lists>.oc-skill-partial-notice{flex:none}.oc-resource-group{display:grid;gap:6px}.oc-resource-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:4px;border-bottom:1px solid var(--hairline);font-size:var(--text-sm);text-transform:capitalize}.oc-resource-group-head span{color:var(--muted);font-size:11px}.oc-resource-sub-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.oc-skill-partial-notice{margin:0 0 8px;padding:8px 10px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--amber) 12%,var(--surface));color:var(--amber);font-size:12px}.oc-master-detail{display:grid;grid-template-columns:220px 1fr;flex:1;min-height:0;gap:0;border:1px solid var(--hairline);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.oc-master-list{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:8px 6px;border-right:1px solid var(--hairline);background:var(--surface-muted, var(--surface))}.oc-master-group{margin-bottom:6px}.oc-master-group-label{padding:4px 8px 3px;color:var(--muted);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.oc-master-item{display:flex;align-items:center;gap:7px;width:100%;padding:7px 8px;border:none;border-radius:var(--radius-sm);background:none;color:var(--ink);cursor:pointer;font-size:12px;text-align:left}.oc-master-item:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.oc-master-item.is-active{background:color-mix(in srgb,var(--accent, var(--ink)) 12%,transparent);font-weight:600}.oc-master-item.is-off .oc-master-name{color:var(--muted)}.oc-master-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono, monospace)}.oc-master-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent, var(--ink));box-shadow:0 0 4px var(--accent, var(--ink))}.oc-master-item.is-off .oc-master-dot,.oc-master-dot.is-disabled,.oc-master-dot.is-error{background:var(--muted);box-shadow:none}.oc-master-dot.is-error{background:var(--red)}.oc-master-dot.is-installed,.oc-master-dot.is-loaded{background:var(--green);box-shadow:0 0 4px var(--green)}.oc-master-dot.is-configured{background:var(--amber);box-shadow:none}.oc-package-status.is-loaded{background:color-mix(in srgb,var(--green) 12%,var(--surface));color:var(--green)}.oc-package-status.is-configured{background:color-mix(in srgb,var(--amber) 12%,var(--surface));color:var(--amber)}.oc-detail{display:flex;flex-direction:column;gap:18px;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:18px 20px}.oc-detail-empty{display:flex;align-items:center;justify-content:center;padding:40px 20px;color:var(--muted);font-size:13px}.oc-detail-head{display:flex;align-items:center;gap:8px;min-width:0}.oc-scope-badge{flex:none;padding:1px 6px;border-radius:4px;background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--muted);font-size:10px;text-transform:lowercase}.oc-detail-path{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.oc-detail-fields{display:grid;gap:14px}.oc-detail-field{display:grid;gap:4px}.oc-detail-label{color:var(--muted);font-size:11px;font-weight:500}.oc-detail-value{color:var(--ink);font-size:13px;line-height:1.55;overflow-wrap:anywhere}.oc-detail-value.oc-mono{font-family:var(--font-mono, monospace)}.oc-toggle{appearance:none;display:block;position:relative;flex:none;width:40px;height:22px;min-height:0;padding:0;border:none;border-radius:11px;background:color-mix(in srgb,var(--ink) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 12%,transparent);color:transparent;font-size:0;letter-spacing:normal;cursor:pointer;transition:background .18s}.oc-toggle:hover:not(:disabled){border-color:transparent;background:color-mix(in srgb,var(--ink) 28%,transparent)}.oc-toggle.is-on{background:var(--accent, var(--ink));box-shadow:none}.oc-toggle.is-on:hover:not(:disabled){background:var(--accent-active, var(--accent, var(--ink)))}.oc-toggle:focus-visible{outline:2px solid var(--accent, var(--ink));outline-offset:2px}.oc-toggle:disabled{cursor:wait;opacity:.55}.oc-toggle-knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 4px #00000038;transition:left .18s cubic-bezier(.4,0,.2,1)}.oc-toggle.is-on .oc-toggle-knob{left:21px}@media(max-width:640px){.oc-master-detail{grid-template-columns:1fr;grid-template-rows:minmax(160px,38%) minmax(0,1fr)}.oc-master-list{max-height:none;border-right:none;border-bottom:1px solid var(--hairline)}}.oc-resource-sub-list li{display:grid;gap:2px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--surface-muted)}.oc-resource-diagnostic{color:var(--amber);font-size:11px}.oc-package-status{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;line-height:1.7;text-transform:uppercase;background:var(--surface-muted);color:var(--muted);white-space:nowrap}.oc-package-status.is-installed{background:color-mix(in srgb,var(--green) 12%,var(--surface));color:var(--green)}.oc-package-status.is-error{background:color-mix(in srgb,var(--red) 12%,var(--surface));color:var(--red)}.oc-package-status.is-disabled{opacity:.7}.oc-package-meta{display:flex;align-items:baseline;gap:8px;margin:0;font-size:11px;min-width:0}.oc-package-meta span{color:var(--muted);min-width:96px;flex:none}.oc-package-meta code{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.oc-package-resources{display:grid;gap:8px}.oc-package-group{display:grid;gap:4px}.oc-package-diagnostics{display:grid;gap:4px;padding:6px 8px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--amber) 6%,var(--surface));color:var(--amber);font-size:11px;overflow-wrap:anywhere}.oc-resource-diagnostics{display:grid;gap:6px;margin-bottom:12px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--amber) 35%,var(--hairline));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--amber) 5%,var(--surface))}.oc-resource-diagnostic.is-error{color:var(--red)}.oc-diag-chip-wrap{position:relative;flex:none}.oc-diag-chip{display:inline-flex;align-items:center;gap:5px;max-width:220px;min-height:28px;padding:0 9px;border:1px solid color-mix(in srgb,var(--amber) 40%,var(--hairline));border-radius:999px;background:color-mix(in srgb,var(--amber) 10%,var(--surface));color:var(--ink);cursor:pointer;font:inherit;font-size:12px;line-height:1;white-space:nowrap}.oc-diag-chip svg{flex:none;color:var(--amber)}.oc-diag-chip.is-error{border-color:color-mix(in srgb,var(--red) 40%,var(--hairline));background:color-mix(in srgb,var(--red) 8%,var(--surface))}.oc-diag-chip.is-error svg{color:var(--red)}.oc-diag-chip.is-open,.oc-diag-chip:hover{background:color-mix(in srgb,var(--amber) 16%,var(--surface))}.oc-diag-chip.is-error.is-open,.oc-diag-chip.is-error:hover{background:color-mix(in srgb,var(--red) 12%,var(--surface))}.oc-diag-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:5;width:min(360px,calc(100vw - 48px));max-height:min(52vh,420px);overflow:auto;padding:10px 12px 12px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-lg)}.oc-diag-group+.oc-diag-group{margin-top:12px;padding-top:10px;border-top:1px solid var(--hairline)}.oc-diag-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px}.oc-diag-group-head span{color:var(--muted);font-size:11px}.oc-diag-group-hint{margin:4px 0 8px;color:var(--muted);font-size:12px;line-height:1.5}.oc-diag-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.oc-diag-item{display:grid;gap:2px}.oc-diag-item-title{color:var(--ink);font-size:12px;overflow-wrap:anywhere}.oc-diag-item-detail{color:var(--muted);font-size:11px;line-height:1.45}.oc-diag-item-path{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-diag-popover-actions{display:flex;justify-content:flex-end;margin-top:10px;padding-top:8px;border-top:1px solid var(--hairline)}.oc-master-flag{flex:none;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--amber) 14%,var(--surface));color:var(--amber);font-size:10px;line-height:1.6}.oc-skill-notices{display:grid;gap:6px}.oc-skill-notice{margin:0;padding:8px 10px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--amber) 8%,var(--surface));color:var(--ink);font-size:12px;line-height:1.5}.oc-resource-panel button:disabled{cursor:wait;opacity:.55}.oc-model-provider{border-bottom:1px solid var(--hairline);padding-bottom:8px}.oc-model-provider-head,.oc-model-row,.oc-model-row-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.oc-model-provider-head{padding:6px 0}.oc-model-provider-head span{color:var(--muted);font-size:11px}.oc-model-row{padding:4px 0 4px 10px;font-size:var(--text-sm)}.oc-model-row-actions button,.oc-model-provider-remove{border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);cursor:pointer;font:inherit;font-size:11px;padding:3px 8px}.oc-model-row-actions button:hover,.oc-model-provider-remove:hover{color:var(--ink);border-color:var(--hairline-strong)}.oc-model-provider-remove{margin:6px 0 6px 10px}.oc-model-form{display:grid;gap:6px;margin-top:10px}.oc-model-form input{min-width:0;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);padding:6px 8px;font:inherit;font-size:12px}.oc-model-form button{justify-self:start}.oc-model-form select{min-width:0;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);padding:6px 8px;font:inherit;font-size:12px}.oc-model-field{display:flex;flex-direction:column;gap:3px}.oc-model-field>span:first-child{font-size:11px;color:var(--muted, #8a8f98)}.oc-model-form-actions{display:flex;gap:8px}.oc-model-toolbar{margin:8px 0}.oc-model-modal-backdrop{position:fixed;inset:0;z-index:1200;background:#00000073;display:flex;align-items:center;justify-content:center;padding:var(--space-4, 16px)}.oc-model-modal{width:100%;max-width:480px;max-height:90vh;overflow-y:auto;background:var(--surface, #fff);border:1px solid var(--hairline, #ddd);border-radius:var(--radius-md, 8px);padding:var(--space-4, 16px)}.oc-model-test-result{padding:6px 8px;border-radius:var(--radius-sm);background:var(--surface-muted);font-size:12px}@media(max-width:800px){.oc-resource-backdrop{padding:var(--space-2)}.oc-resource-panel{width:100%;max-height:calc(100vh - 32px)}.oc-resource-panel-body{padding:10px}}@media(max-width:640px){.oc-resource-panel-foot{flex-direction:column;align-items:stretch}.oc-resource-panel-actions{justify-content:flex-end}.oc-model-row{flex-direction:column;align-items:flex-start}.oc-model-row-actions{justify-content:flex-start}}@keyframes oc-drawer-slide-in{0%{transform:translate3d(28px,0,0);opacity:0}to{transform:translateZ(0);opacity:1}}.oc-file-preview-backdrop{position:absolute;z-index:4;inset:0}.oc-file-preview{position:absolute;z-index:4;top:0;right:0;bottom:0;width:min(560px,60%);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-panel);animation:oc-drawer-slide-in .28s cubic-bezier(.32,.72,0,1);will-change:transform}@media(max-width:900px){.oc-file-preview{width:100%;border-radius:0}}.oc-file-preview header{display:flex;align-items:center;gap:var(--space-2);padding:10px 12px;border-bottom:1px solid var(--hairline)}.oc-file-tabs{display:flex;min-width:0;gap:2px;overflow-x:auto}.oc-file-tab{display:inline-flex;align-items:center;flex:none;min-width:64px;max-width:220px;padding:2px 3px 2px 7px;border-radius:var(--radius-sm);background:transparent;color:var(--muted)}.oc-file-tab:hover,.oc-file-tab.is-active{background:var(--surface-muted);color:var(--ink);font-weight:650}.oc-file-tab:has(:focus-visible){background:var(--surface-muted);color:var(--ink);box-shadow:inset 0 0 0 2px var(--orange-soft)}.oc-file-tab-activate{appearance:none;min-width:0;min-height:0;flex:1;overflow:hidden;padding:2px 3px 2px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.oc-file-tab .oc-file-tab-activate:hover:not(:disabled),.oc-file-tab .oc-file-tab-activate:focus-visible:not(:disabled),.oc-file-tab .oc-file-tab-activate:active:not(:disabled){border-color:transparent;background:transparent;outline:none;box-shadow:none;transform:none}.oc-file-preview-close{appearance:none;display:inline-grid;place-items:center;flex:none;width:18px;height:18px;min-height:18px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer}.oc-file-tab .oc-file-preview-close:hover:not(:disabled),.oc-file-tab .oc-file-preview-close:focus-visible:not(:disabled),.oc-file-tab .oc-file-preview-close:active:not(:disabled){border-color:transparent;background:transparent;color:var(--ink);outline:none;box-shadow:none;transform:none}.oc-file-preview-actions{display:inline-flex;align-items:center;flex:none;gap:4px;margin-inline-start:auto}.oc-file-view-modes{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface-muted)}.oc-file-view-mode{appearance:none;display:inline-flex;align-items:center;min-height:0;padding:2px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.oc-file-view-mode:hover{color:var(--ink)}.oc-file-view-mode.is-active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm, 0 1px 2px rgb(0 0 0 / 8%))}.oc-file-preview-rendered{overflow:auto;padding:14px 18px;font-size:13px;line-height:1.6}.oc-file-preview-rendered,.oc-file-preview pre{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 36%,transparent) transparent}.oc-file-preview-rendered::-webkit-scrollbar,.oc-file-preview pre::-webkit-scrollbar{width:8px;height:8px}.oc-file-preview-rendered::-webkit-scrollbar-track,.oc-file-preview pre::-webkit-scrollbar-track{margin-block:6px;background:transparent}.oc-file-preview-rendered::-webkit-scrollbar-thumb,.oc-file-preview pre::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--muted) 36%,transparent);background-clip:padding-box}.oc-file-preview-rendered::-webkit-scrollbar-thumb:hover,.oc-file-preview pre::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--muted) 58%,transparent);background-clip:padding-box}.oc-file-preview header span{flex:1;color:var(--muted);font-size:11px}.oc-file-preview header .btn+.btn{margin-inline-start:0}.oc-file-preview-open{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.oc-file-preview-open:hover{background:var(--surface-muted);color:var(--ink)}.oc-file-preview-open-error{margin:0;padding:4px 12px;border-bottom:1px solid var(--hairline);color:var(--danger);font-size:12px}.oc-file-preview pre{flex:1;min-height:0;margin:0;padding:var(--space-3);overflow:auto;font-size:12px;line-height:1.5;white-space:pre-wrap}.oc-file-preview-loading{position:absolute;z-index:5;right:12px;top:12px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--muted);font-size:12px}.oc-process{display:flex;flex-direction:column;flex:0 0 min(360px,42%);width:min(360px,42%);min-width:280px;min-height:0;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-panel);margin-left:var(--space-3);overflow:hidden;animation:panel-in .18s ease}.oc-turn-group{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.oc-thinking{border:0;border-radius:0;overflow:visible}.oc-thinking-summary{position:relative;display:flex;align-items:center;justify-content:flex-start;width:100%;height:24px;padding:0;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;line-height:24px;text-align:left;overflow:hidden}.oc-thinking-summary:hover,.oc-thinking-summary.is-open{color:var(--ink)}.oc-thinking.is-running .oc-thinking-summary:after{content:"";position:absolute;inset-block:0;left:-300px;width:300px;pointer-events:none;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--surface) 60%,transparent) 55%,transparent 100%);animation:oc-thinking-running-sweep 2.6s ease-out infinite}@keyframes oc-thinking-running-sweep{0%{left:-300px}90%,to{left:100%}}.oc-thinking-label{flex:0 0 auto;color:var(--muted);font-weight:400}.oc-thinking-preview{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-soft);font-size:14px;line-height:24px}.oc-thinking-body{margin:0;padding:4px 0 4px 22px;font-family:inherit;font-weight:400;white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:24px;color:var(--muted);max-height:280px;overflow:auto}.oc-process-text{padding-left:0;font-size:16px;line-height:28px;color:var(--ink)}.oc-process-text .oc-md{gap:16px}.oc-tool-duration{flex-shrink:0;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.oc-tool-expand-result{grid-column:2;margin-top:4px;font-size:12px}.oc-process-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:10px 12px;border-bottom:1px solid var(--hairline);flex-shrink:0}.oc-process-title{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;color:var(--ink)}.oc-process-title-mark{width:8px;height:8px;border-radius:50%;background:var(--orange)}.oc-process-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--muted);font-size:11px;font-weight:650}.oc-process-close{font-size:12px}.oc-process-timeline{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:0}.oc-process-empty{padding:var(--space-4);color:var(--muted);font-size:12.5px;line-height:1.5;text-align:center}.oc-process-item{display:grid;grid-template-columns:20px 52px minmax(0,1fr);gap:8px;align-items:start;padding:4px 0}.oc-process-rail{position:relative;display:grid;place-items:center;min-height:34px}.oc-process-rail:before{position:absolute;top:0;bottom:0;width:1px;background:var(--hairline);content:""}.oc-process-item.is-first .oc-process-rail:before{top:50%}.oc-process-item.is-last .oc-process-rail:before{bottom:50%}.oc-process-dot{position:relative;z-index:1;width:8px;height:8px;border-radius:50%;background:var(--surface);border:2px solid color-mix(in srgb,var(--orange) 55%,var(--hairline))}.oc-process-item.is-running .oc-process-dot{border-color:var(--orange-active);background:var(--orange-soft)}.oc-process-item.is-error .oc-process-dot{border-color:var(--red);background:color-mix(in srgb,var(--red) 18%,var(--surface))}.oc-process-time{padding-top:10px;font-size:11px;color:var(--muted-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.oc-process-body{min-width:0}.oc-process-toggle{cursor:pointer;font:inherit}.oc-process-toggle.is-active{border-color:color-mix(in srgb,var(--orange) 40%,var(--hairline));background:color-mix(in srgb,var(--orange) 10%,var(--surface));color:var(--orange-active)}.oc-process-toggle.is-running{border-color:color-mix(in srgb,var(--orange) 40%,var(--hairline));color:var(--orange-active)}.oc-process-toggle.is-error{border-color:color-mix(in srgb,var(--red) 35%,var(--hairline));background:color-mix(in srgb,var(--red) 8%,var(--surface));color:var(--red)}.oc-process-summary{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--muted);font-size:var(--text-sm);font-weight:600;cursor:pointer;max-width:min(420px,100%);white-space:nowrap}.oc-process-summary:hover,.oc-process-summary.is-open,.oc-process-summary:focus-visible{border-color:color-mix(in srgb,var(--orange) 35%,var(--hairline));color:var(--orange-active);background:color-mix(in srgb,var(--orange) 8%,var(--surface))}.oc-process-summary.is-running .oc-process-summary-status{color:var(--orange-active)}.oc-process-summary.is-error .oc-process-summary-status{color:var(--red)}.oc-process-summary.is-ok{color:var(--muted)}.oc-process-summary-label{flex:0 0 auto}.oc-process-summary-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.4em;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--body);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.oc-process-summary-status{overflow:hidden;text-overflow:ellipsis;max-width:14ch}@media(max-width:900px){.oc-workspace:not([data-layout-mode]) .oc-sidebar{position:absolute;inset:0 auto 0 0;z-index:7;width:min(300px,calc(100% - 24px));margin-right:0;box-shadow:var(--shadow-soft)}.oc-workspace:not([data-layout-mode]) .oc-sidebar.is-collapsed{position:static;width:auto}.oc-workspace:not([data-layout-mode]).has-process .oc-process{position:absolute;top:0;right:0;bottom:0;z-index:8;width:min(360px,calc(100% - 24px));min-width:0;flex:none;margin-left:0;border-radius:var(--radius-md) 0 0 var(--radius-md);box-shadow:var(--shadow-soft)}}.oc-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:10px 14px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow-panel)}.oc-banner-title{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--ink)}.oc-banner-dot{width:8px;height:8px;border-radius:50%;background:var(--orange)}.oc-banner-body{color:var(--body);font-size:12.5px;line-height:1.45}.oc-banner-body strong{color:var(--ink)}.oc-cap-chips{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:auto;align-items:center}.oc-cap-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--hairline));border-radius:var(--radius-pill);background:color-mix(in srgb,var(--mint) 50%,var(--surface));color:var(--green);font-size:11.5px;font-weight:650}button.oc-cap-chip{font:inherit;cursor:pointer}.oc-tools-menu{position:relative}.oc-tools-menu--composer .oc-tools-catalog{top:auto;bottom:calc(100% + 8px)}.oc-tools-toggle.is-active{border-color:color-mix(in srgb,var(--orange) 40%,var(--hairline));background:color-mix(in srgb,var(--orange) 10%,var(--surface));color:var(--orange-active)}.oc-tools-catalog{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:min(420px,calc(100vw - 48px));max-height:min(480px,60vh);display:flex;flex-direction:column;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-soft);animation:panel-in .16s ease;overflow:hidden}.oc-tools-catalog-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--hairline);flex-shrink:0}.oc-tools-catalog-head strong{font-size:13px;color:var(--ink)}.oc-tools-catalog-meta{font-size:11.5px;color:var(--muted-soft)}.oc-tools-catalog-close{margin-left:auto;font-size:12px}.oc-tools-catalog-body{overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.oc-tools-group-title{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-soft)}.oc-tools-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.oc-tools-item{padding:8px 10px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-muted) 55%,var(--surface))}.oc-tools-item-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.oc-tools-name{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12.5px;font-weight:650;color:var(--ink)}.oc-tools-kind{margin-left:auto;font-size:10.5px;font-weight:650;padding:1px 7px;border-radius:var(--radius-pill);color:var(--muted);background:var(--surface);border:1px solid var(--hairline)}.oc-tools-kind.is-explore,.oc-tools-kind.is-read{color:var(--green);border-color:color-mix(in srgb,var(--green) 28%,var(--hairline));background:color-mix(in srgb,var(--mint) 45%,transparent)}.oc-tools-kind.is-mutation{color:var(--orange-active);border-color:color-mix(in srgb,var(--orange) 35%,var(--hairline));background:var(--orange-soft)}.oc-tools-kind.is-long-running{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 35%,var(--hairline));background:color-mix(in srgb,var(--amber) 10%,var(--surface))}.oc-tools-desc{margin:0;font-size:12px;line-height:1.45;color:var(--body)}.oc-tools-cli{margin:4px 0 0;font-size:11px;color:var(--muted-soft)}.oc-tools-cli code{font-size:11px;color:var(--muted)}.oc-alert{padding:10px 14px;border-radius:var(--radius-md);font-size:var(--text-md);line-height:1.5;animation:panel-in .18s var(--ease-out)}.oc-alert-warning{border:1px solid color-mix(in srgb,var(--amber) 35%,var(--hairline));border-left:3px solid var(--amber);background:color-mix(in srgb,var(--amber) 8%,var(--surface));color:var(--amber)}.oc-alert-error{border:1px solid color-mix(in srgb,var(--red) 35%,var(--hairline));border-left:3px solid var(--red);background:color-mix(in srgb,var(--red) 7%,var(--surface));color:var(--red)}.oc-readiness-notice{display:flex;align-items:center;gap:12px;min-width:0;border:1px solid var(--hairline);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-panel);animation:panel-in .18s var(--ease-out)}.oc-readiness-notice.is-landing{width:min(460px,calc(100% - 24px));padding:18px 20px;text-align:left}.oc-readiness-notice.is-thread{flex:0 0 auto;width:min(720px,calc(100% - 32px));margin:12px auto 0;padding:10px 12px;box-shadow:none}.oc-readiness-notice.is-degraded{background:color-mix(in srgb,var(--surface-muted) 68%,var(--surface))}.oc-readiness-notice-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 auto;border-radius:10px;background:color-mix(in srgb,var(--orange) 9%,var(--surface));color:var(--orange-active)}.oc-readiness-notice.is-degraded .oc-readiness-notice-icon{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--muted)}.oc-readiness-notice-copy{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:2px}.oc-readiness-notice-copy strong{font-size:14px;line-height:20px;font-weight:600;color:var(--ink)}.oc-readiness-notice-copy span{font-size:12px;line-height:18px;color:var(--muted)}.oc-readiness-notice-action{appearance:none;flex:0 0 auto;min-height:32px;padding:0 13px;border:0;border-radius:9px;background:var(--ink);color:var(--surface);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:opacity var(--transition-fast),transform var(--transition-fast)}.oc-readiness-notice-action:hover{opacity:.86}.oc-readiness-notice-action:active{transform:translateY(1px)}.oc-readiness-notice-action:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 55%,transparent);outline-offset:2px}@media(max-width:560px){.oc-readiness-notice.is-landing,.oc-readiness-notice.is-thread{width:calc(100% - 24px);padding:12px}.oc-readiness-notice.is-landing{flex-wrap:wrap}.oc-readiness-notice.is-landing .oc-readiness-notice-action{width:100%}}.oc-toast{position:fixed;top:14px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;max-width:min(560px,calc(100vw - 32px));padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--hairline-strong);background:var(--surface);box-shadow:var(--shadow-panel);font-size:var(--text-sm);line-height:1.45;color:var(--ink);z-index:90;animation:oc-toast-in .18s var(--ease-out)}.oc-toast.is-leaving{opacity:0;transform:translate(-50%) translateY(-8px);transition:opacity .14s ease,transform .14s ease}.oc-toast.is-error .oc-toast-icon{color:var(--red)}.oc-toast.is-info .oc-toast-icon{color:var(--amber)}.oc-toast.is-error{border-left:3px solid var(--red)}.oc-toast.is-info{border-left:3px solid var(--amber)}.oc-toast-icon{display:inline-flex;flex-shrink:0}.oc-toast-message{overflow-wrap:anywhere}.oc-toast-close{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:0;width:22px;height:22px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;flex-shrink:0}.oc-toast-close:hover{background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}@keyframes oc-toast-in{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:reduce){.oc-toast,.oc-toast.is-leaving{animation:none;transition:none}}.oc-compaction-card{width:100%;margin:4px 0;color:var(--muted);animation:panel-in .18s var(--ease-out)}.oc-compaction-card.is-failed{color:var(--danger, #b54747)}.oc-compaction-card.is-aborted{opacity:.82}.oc-compaction-trigger{display:flex;align-items:center;width:100%;min-width:0;height:26px;padding:0 6px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;font-size:var(--text-xs);text-align:left}.oc-compaction-trigger:not(:disabled){cursor:pointer}.oc-compaction-trigger:not(:disabled):hover,.oc-compaction-trigger:not(:disabled):focus-visible{background:color-mix(in srgb,var(--hairline) 48%,transparent);outline:none}.oc-compaction-leading{display:inline-grid;place-items:center;flex:0 0 18px;height:18px;margin-right:6px}.oc-compaction-icon{display:inline-flex;grid-area:1 / 1;align-items:center;justify-content:center;color:var(--muted)}.oc-compaction-chevron{display:inline-flex;grid-area:1 / 1;opacity:0}.oc-compaction-trigger:not(:disabled):hover .oc-compaction-icon,.oc-compaction-trigger:not(:disabled):focus-visible .oc-compaction-icon{opacity:0}.oc-compaction-trigger:not(:disabled):hover .oc-compaction-chevron,.oc-compaction-trigger:not(:disabled):focus-visible .oc-compaction-chevron{opacity:1}.oc-compaction-trigger strong{flex:0 0 auto;font-size:var(--text-xs);font-weight:600;color:var(--muted)}.oc-compaction-separator{flex:0 0 3px;width:3px;height:3px;margin:0 8px;border-radius:50%;background:var(--hairline-strong, var(--hairline))}.oc-compaction-summary-line{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-compaction-time{flex:0 0 auto;margin-left:10px;color:var(--muted)}.oc-compaction-details{margin:2px 0 4px 30px;padding:6px 10px;border-left:1px solid var(--hairline);color:var(--body);font-size:var(--text-sm);line-height:1.55}.oc-compaction-details>:first-child{margin-top:0}.oc-compaction-details>:last-child{margin-bottom:0}.oc-messages{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 16px 12px;display:flex;flex-direction:column;container-type:inline-size}.oc-message-column{width:100%;max-width:748px;margin-inline:auto;display:flex;flex-direction:column;gap:var(--space-3)}.oc-scroll-to-latest-slot{position:sticky;bottom:12px;z-index:4;display:flex;justify-content:flex-end;width:100%;max-width:748px;height:0;margin-inline:auto;padding-right:2px;pointer-events:none}.oc-scroll-to-latest{appearance:none;display:grid;place-items:center;width:34px;height:34px;margin-top:-34px;padding:0;border:1px solid var(--hairline-strong);border-radius:999px;background:var(--surface);color:var(--ink);box-shadow:0 4px 14px #20212424;cursor:pointer;pointer-events:auto;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.oc-scroll-to-latest:hover:not(:disabled){border-color:var(--hairline-strong);background:var(--surface-muted);color:var(--ink);box-shadow:0 4px 14px #20212424;transform:none}.oc-scroll-to-latest:active:not(:disabled){background:var(--surface-muted);box-shadow:0 4px 14px #20212424;transform:none}.oc-scroll-to-latest:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 42%,transparent);outline-offset:2px}.oc-messages.has-thread:before{display:none}.oc-messages.is-empty{justify-content:center;align-items:center;padding:var(--space-5) var(--space-4) var(--space-4);background:var(--surface)}.oc-main.is-landing{position:relative}.oc-day-sep{display:flex;align-items:center;gap:var(--space-3);color:var(--muted-soft);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin:var(--space-2) 0}.oc-day-sep:before,.oc-day-sep:after{content:"";flex:1;height:1px;background:var(--hairline)}.oc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 1 auto;gap:var(--space-5);text-align:center;width:min(100%,680px);padding:var(--space-2) var(--space-2) var(--space-4);animation:oc-empty-in .28s ease both}@keyframes oc-empty-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.oc-empty{animation:none}}.oc-empty-hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.oc-empty-icon{display:block;width:88px;height:auto;max-width:min(120px,40vw);aspect-ratio:96 / 64;object-fit:contain;border-radius:0;background:transparent;box-shadow:none}.oc-empty-brand{margin:0 auto}.oc-empty-copy{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.oc-empty h3{margin:0;font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.oc-empty p{margin:0;max-width:48ch;color:var(--muted);font-size:13px;line-height:1.55}.oc-suggestions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);width:100%}@media(max-width:560px){.oc-suggestions{grid-template-columns:1fr}}.oc-suggestion{appearance:none;display:flex;flex-direction:column;gap:5px;text-align:left;min-height:0;padding:14px 16px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.oc-suggestion:hover:not(:disabled){border-color:color-mix(in srgb,var(--orange) 45%,var(--hairline));background:var(--surface);box-shadow:0 0 0 3px var(--orange-soft),var(--shadow-panel);transform:translateY(-1px)}.oc-suggestion:disabled{opacity:.55;cursor:not-allowed}.oc-suggestion strong{font-size:var(--text-md);font-weight:700}.oc-suggestion span{color:var(--muted);font-size:var(--text-sm);line-height:1.45}.oc-empty-tips{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2) var(--space-3);margin:0;padding:0;list-style:none;color:var(--muted-soft);font-size:12px}.oc-empty-tips li{display:inline-flex;align-items:center;gap:6px}.oc-empty-tips kbd{display:inline-grid;place-items:center;min-width:1.4em;padding:1px 6px;border:1px solid var(--hairline);border-radius:5px;background:var(--surface);color:var(--body);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:11px;font-weight:600;line-height:1.4}.oc-empty-cta{margin-top:calc(var(--space-1) * -1);border-color:var(--orange);background:var(--orange);box-shadow:none;transform:none}.oc-empty-cta:hover:not(:disabled),.oc-empty-cta:active:not(:disabled){border-color:var(--orange-active);background:var(--orange-active);box-shadow:none;transform:none}.oc-empty.is-landing-compact{gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-2)}.oc-empty.is-landing-compact .oc-empty-icon{width:64px;height:auto}.oc-empty.is-landing-compact h3{font-size:17px}.oc-empty.is-landing-compact p{font-size:12px;line-height:1.45}.oc-empty.is-landing-compact .oc-suggestion{padding:10px 12px;gap:3px}.oc-empty.is-landing-extra-compact{gap:var(--space-2);padding:0 var(--space-1) var(--space-2)}.oc-empty.is-landing-extra-compact .oc-empty-icon{width:52px;height:auto}.oc-empty.is-landing-extra-compact h3{font-size:15px}.oc-empty.is-landing-extra-compact p{font-size:11.5px;line-height:1.4;max-width:42ch}.oc-empty.is-landing-extra-compact .oc-suggestion{padding:8px 10px;gap:2px}.oc-empty.is-landing-extra-compact .oc-empty-tips{gap:var(--space-1) var(--space-2);font-size:11px}.oc-messages.is-empty[data-landing-density=extra-compact]{justify-content:center;padding:var(--space-2);overflow-y:auto}.oc-row{display:flex;flex-direction:column;gap:4px;max-width:100%}.oc-row.is-user{align-self:flex-end;align-items:flex-end;width:100%;max-width:100%}.oc-user-stack{display:flex;flex-direction:column;align-items:flex-end;gap:4px;width:fit-content;min-width:0;max-width:min(525px,82%)}.oc-row.is-assistant,.oc-row.is-tool{align-self:stretch;align-items:stretch;width:100%;max-width:100%}.oc-meta{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted-soft)}.oc-row.is-assistant .oc-meta,.oc-row.is-user .oc-meta{width:100%;max-width:100%}.oc-row.is-assistant .oc-meta{order:2;min-height:26px;margin-top:2px}.oc-row.is-assistant .oc-role,.oc-row.is-assistant .oc-time{display:none}.oc-row.is-assistant .oc-message-copy{margin-left:0}.oc-message-copy{appearance:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:26px;margin-left:auto;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted-soft);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.oc-row:hover .oc-message-copy,.oc-row:focus-within .oc-message-copy,.oc-message-copy:focus-visible{opacity:1}.oc-message-copy:hover{color:var(--body);background:color-mix(in srgb,var(--ink) 6%,transparent);border-color:var(--hairline)}.oc-message-copy.is-copied{opacity:1;color:var(--green, #1a7f37);border-color:color-mix(in srgb,var(--green, #1a7f37) 35%,transparent)}@media(hover:none){.oc-message-copy{opacity:.5}}.oc-role{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0}.oc-role-assistant{color:var(--body);background:var(--surface-muted)}.oc-time{font-variant-numeric:tabular-nums}.oc-bubble{padding:10px 14px;border-radius:var(--radius-lg);font-size:14px;line-height:1.6;overflow-wrap:anywhere;word-break:break-word;animation:bubble-in .16s ease}@keyframes bubble-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.oc-bubble-user{padding:11px 16px;border-radius:22px;background:#eceef2;color:var(--ink);font-size:16px;line-height:1.55;min-width:calc(2em + 28px);max-width:100%;word-break:normal}.oc-bubble-assistant{padding:0;background:transparent;color:var(--ink);border:0;border-radius:0;animation:none;font-size:16px;line-height:28px}.oc-bubble-tool{background:var(--canvas-soft);color:var(--body);border:1px solid var(--hairline)}.oc-bubble-error{border-color:color-mix(in srgb,var(--red) 40%,var(--hairline));background:color-mix(in srgb,var(--red) 7%,var(--surface));color:var(--red)}.oc-md{display:flex;flex-direction:column;gap:var(--space-2)}.oc-md>*:first-child{margin-top:0}.oc-md>*:last-child{margin-bottom:0}.oc-md p{margin:0}.oc-bubble-assistant .oc-md{gap:16px}.oc-md h1,.oc-md h2,.oc-md h3,.oc-md h4{margin:var(--space-3) 0 var(--space-2);color:inherit;font-weight:700;line-height:1.3}.oc-md h1{font-size:1.3em}.oc-md h2{font-size:1.18em}.oc-md h3{font-size:1.06em}.oc-md h4{font-size:1em}.oc-md ul,.oc-md ol{margin:0;padding-left:1.4em;display:flex;flex-direction:column;gap:2px}.oc-md li{margin:0}.oc-md blockquote{margin:0;padding:2px 0 2px 12px;border-left:3px solid var(--hairline-strong);color:var(--body)}.oc-bubble-user .oc-md blockquote{border-left-color:color-mix(in srgb,var(--orange) 35%,var(--hairline-strong));color:var(--body)}.oc-md code{font-size:.86em;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--ink) 8%,transparent)}.oc-bubble-user .oc-md code{background:color-mix(in srgb,var(--orange) 14%,transparent)}.oc-md pre{margin:0;padding:0;background:transparent}.oc-codeblock{margin:0;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface-muted);overflow:hidden}.oc-bubble-assistant .oc-codeblock{background:#f3efe8}.oc-codeblock-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:5px 6px 5px 10px;border-bottom:1px solid var(--hairline);font-size:11px;color:var(--muted);background:color-mix(in srgb,var(--ink) 4%,transparent)}.oc-codeblock-lang{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-weight:600;text-transform:lowercase}.oc-codeblock-copy{appearance:none;display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:0 9px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:11px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.oc-codeblock-copy:hover{background:var(--surface);color:var(--ink);border-color:var(--hairline-strong)}.oc-codeblock pre{margin:0;padding:var(--space-3) var(--space-4);overflow-x:auto;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12.5px;line-height:1.55;white-space:pre;color:var(--ink)}.oc-md a{color:var(--orange);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--orange) 40%,transparent)}.oc-md a:hover{border-bottom-color:var(--orange)}.oc-md hr{margin:var(--space-2) 0;border:none;border-top:1px solid var(--hairline-strong)}.oc-stream{white-space:pre-wrap;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.55}.oc-cursor{display:inline-block;width:7px;height:1.05em;margin-left:2px;vertical-align:text-bottom;background:var(--orange);animation:oc-blink 1s steps(2,start) infinite;border-radius:1px}@keyframes oc-blink{to{opacity:0}}.oc-tool{border:0;border-radius:0;background:transparent;overflow:visible;animation:panel-in .16s ease;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.oc-tool:hover{background:transparent}.oc-tool.is-error{border-color:color-mix(in srgb,var(--red) 38%,var(--hairline))}.oc-tool.is-running{border-color:color-mix(in srgb,var(--orange) 40%,var(--hairline))}.oc-tool-head{position:relative;display:flex;align-items:center;justify-content:flex-start;width:100%;height:24px;padding:0;border:none;background:transparent;text-align:left;cursor:pointer;font:inherit;font-size:14px;line-height:24px;color:var(--ink);overflow:hidden}.oc-tool.is-running .oc-tool-head:after{content:"";position:absolute;inset-block:0;left:-300px;width:300px;pointer-events:none;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--surface) 60%,transparent) 55%,transparent 100%);animation:oc-tool-running-sweep 2.6s ease-out infinite}@keyframes oc-tool-running-sweep{0%{left:-300px}90%,to{left:100%}}@media(prefers-reduced-motion:reduce){.oc-tool.is-running .oc-tool-head:after{display:none}.oc-thinking.is-running .oc-thinking-summary:after{display:none}}.oc-tool-head:hover{color:color-mix(in srgb,var(--ink) 86%,var(--orange))}.oc-tool-head:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 42%,transparent);outline-offset:3px;border-radius:4px}.oc-tool-leading{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:6px;flex-shrink:0}.oc-tool-chevron{position:absolute;inset:0;width:14px;height:14px;margin:auto;opacity:0;color:var(--muted);transition:opacity .1s ease}.oc-tool-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--muted-soft);flex-shrink:0;opacity:1;transition:opacity .1s ease}.oc-tool-state-dot{position:relative;display:grid;place-items:center;width:16px;height:16px;flex-shrink:0;opacity:1;transition:opacity .1s ease}.oc-tool-state-dot:before,.oc-tool-state-dot:after{content:"";position:absolute;border-radius:50%}.oc-tool-state-dot:before{width:10px;height:10px;background:color-mix(in srgb,var(--red) 18%,transparent)}.oc-tool-state-dot:after{width:6px;height:6px;background:var(--red)}.oc-tool-head:hover .oc-tool-icon,.oc-tool-head:hover .oc-tool-state-dot,.oc-tool-head[aria-expanded=true] .oc-tool-icon,.oc-tool-head[aria-expanded=true] .oc-tool-state-dot,.oc-thinking-summary:hover .oc-tool-icon,.oc-thinking-summary[aria-expanded=true] .oc-tool-icon{opacity:0}.oc-tool-head:hover .oc-tool-chevron,.oc-tool-head[aria-expanded=true] .oc-tool-chevron,.oc-thinking-summary:hover .oc-tool-chevron,.oc-thinking-summary[aria-expanded=true] .oc-tool-chevron{opacity:1}.oc-tool-name{font-size:14px;line-height:24px;font-weight:400;flex-shrink:0}.oc-tool-separator{width:2px;height:2px;margin:0 8px;border-radius:1px;background:var(--muted-soft);flex:none}.oc-tool-args{color:var(--muted);font-size:14px;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.oc-tool-args.is-error{color:var(--red)}.oc-tool-waiting{grid-column:1 / -1;color:var(--muted);font-size:12px;animation:pulse 1.5s infinite}.oc-tool-body{display:flex;flex-direction:column;margin:4px 0 4px 4px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface-muted);overflow:hidden}.oc-tool-section{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:14px;align-items:baseline;padding:12px 16px;max-height:150px;overflow:auto}.oc-tool-section+.oc-tool-section{border-top:1px solid var(--hairline)}.oc-tool-label{position:sticky;top:0;font-size:12px;line-height:18px;font-weight:400;color:var(--muted-soft)}.oc-tool-code{margin:0;padding:0;min-width:0;background:transparent;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:18px;white-space:pre-wrap;word-break:break-word;overflow:visible;color:var(--muted)}.oc-tool.is-bash .oc-tool-code{white-space:pre;word-break:normal;overflow-x:auto}@media(max-width:640px){.oc-thinking-body{padding-left:22px}.oc-tool-section{padding-inline:12px}}.oc-composer{flex:0 0 auto;flex-shrink:0;border-top:0;padding:10px 16px 8px;background:var(--surface);z-index:2}.oc-composer-dock{display:flex;flex-direction:column;gap:8px;flex:0 0 auto}.oc-todo-panel{width:min(100% - 32px,748px);max-width:748px;margin:0 auto;overflow:hidden;border:1px solid var(--hairline);border-radius:12px;background:var(--surface-muted)}.oc-todo-head{display:flex;align-items:center;width:100%;min-height:36px;gap:9px;padding:6px 12px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.oc-todo-head strong{flex:0 0 auto;font-size:13px;font-weight:550}.oc-todo-leading,.oc-todo-status{display:grid;place-items:center;flex:none;color:var(--muted)}.oc-todo-summary{min-width:0;flex:1;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.oc-todo-chevron{flex:none;color:var(--muted);font-size:15px;line-height:1}.oc-todo-list{display:flex;flex-direction:column;gap:7px;max-height:180px;margin:0;padding:2px 12px 12px;overflow-y:auto;list-style:none}.oc-todo-item{display:flex;align-items:center;min-width:0;gap:9px;color:var(--body);font-size:13px;line-height:20px}.oc-todo-item>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-todo-item.is-completed .oc-todo-status{color:var(--green, #4aa785)}.oc-todo-item.is-in_progress .oc-todo-status{color:var(--blue, #5d9cec)}.oc-todo-item.is-pending .oc-todo-status{color:var(--muted-soft)}.oc-todo-spin{animation:oc-todo-spin 1s linear infinite}@keyframes oc-todo-spin{to{transform:rotate(360deg)}}.oc-tool-summary-suffix{flex:0 0 auto;margin-left:4px;color:var(--muted);font-size:12px}.oc-composer-inner{display:flex;flex-direction:column;gap:var(--space-2);width:min(100%,780px);max-width:780px;margin:0 auto;position:relative}.console-shell.is-chat-focus .oc-composer-inner{width:min(100%,780px);max-width:780px}.oc-deferred-turn{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:6px 10px;border:1px solid color-mix(in srgb,var(--orange) 34%,var(--hairline));border-radius:var(--radius-md);background:color-mix(in srgb,var(--orange-soft) 66%,var(--surface));color:var(--ink)}.oc-queue-dock{box-sizing:border-box;flex:none;width:calc(100% - 16px);max-width:764px;margin:0 auto -11px;padding:0 8px}.oc-queue-panel{position:relative;width:100%;padding:2px 0;overflow:hidden;border-radius:12px 12px 0 0;background:var(--surface-muted)}.oc-queue-panel:after{position:absolute;inset:0;border:1px solid var(--hairline);border-bottom:0;border-radius:inherit;content:"";pointer-events:none}.oc-queue-header{box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:4px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.oc-queue-header:focus-visible,.oc-queue-action:focus-visible{outline:2px solid var(--muted);outline-offset:-2px}.oc-queue-header:disabled{cursor:default}.oc-queue-lead,.oc-queue-chevron{display:grid;flex:none;place-items:center;color:var(--muted)}.oc-queue-count{flex:1 1 auto;min-width:0;font-size:13px;font-weight:500;line-height:24px}.oc-queue-chevron{width:14px;height:14px}.oc-queue-list{max-height:180px;margin:0;padding:0;overflow-y:auto;list-style:none;scrollbar-color:color-mix(in srgb,var(--muted) 22%,transparent) transparent;scrollbar-width:thin}.oc-queue-row{box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:4px 5px 4px 12px;border-radius:8px}.oc-queue-row+.oc-queue-row{box-shadow:inset 0 1px 0 var(--hairline)}.oc-queue-preview,.oc-queue-editor{flex:1 1 auto;min-width:0;font-size:13px}.oc-queue-preview{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;word-break:break-word}.oc-queue-editor{box-sizing:border-box;height:28px;padding:0 8px;border:1px solid var(--hairline-strong);border-radius:6px;outline:none;background:var(--surface);color:var(--ink)}.oc-queue-editor:focus{border-color:var(--orange)}.oc-queue-actions{display:flex;flex:none;align-items:center;gap:10px}.oc-queue-action{display:grid;flex:none;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.oc-queue-action:hover:not(:disabled){background:var(--surface);color:var(--ink)}.oc-queue-action:disabled{cursor:default;opacity:.45}.oc-deferred-turn-info{min-width:0;display:flex;flex:1 1 auto;align-items:center;gap:var(--space-2)}.oc-deferred-turn strong{flex:0 0 auto;font-size:12px;white-space:nowrap}.oc-deferred-turn span{flex:1 1 auto;min-width:0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.oc-deferred-turn.is-failed{border-color:color-mix(in srgb,var(--danger) 40%,var(--hairline))}.oc-deferred-turn button{flex:0 0 auto;border:0;background:transparent;color:var(--orange);cursor:pointer;font:inherit;font-size:12px}.oc-deferred-turn-actions{display:flex;flex:0 0 auto;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:var(--space-2)}.oc-deferred-turn-actions button:hover{text-decoration:underline}.oc-deferred-turn-actions button.is-danger{color:var(--red)}.oc-send.is-queue{border-color:var(--orange);background:var(--surface);color:var(--orange);box-shadow:none}.oc-send.is-queue:hover:not(:disabled){background:var(--orange-soft);border-color:var(--orange-active);box-shadow:none}.oc-composer-shell{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:10px 10px 8px 14px;border:1px solid var(--hairline-strong);border-radius:18px;background:#fff;box-shadow:0 1px 2px #2021240d,0 8px 22px #2021240d}.oc-composer-shell.is-busy{opacity:.78}.oc-textarea{width:100%;flex:1 1 auto;min-width:0;min-height:40px;max-height:280px;padding:4px 0 0;border:none;background:transparent;color:var(--ink);font:inherit;font-size:14px;line-height:1.5;resize:none;outline:none}.oc-composer-actions{display:flex;align-items:center;gap:7px;min-width:0}.oc-composer-actions-spacer{flex:1 1 auto;min-width:4px}.oc-composer-model-controls{display:flex;align-items:center;gap:4px;min-width:0}.oc-composer-model-controls .oc-select-trigger{min-height:28px;border-color:transparent;background:transparent}.oc-composer-model-controls .oc-runtime-selection-trigger{max-width:min(280px,42vw)}.oc-composer-compact{display:inline-grid;place-items:center;width:28px;height:28px;min-height:28px;padding:0;border-radius:8px;color:var(--muted)}.oc-composer-compact:hover:not(:disabled){background:var(--surface-muted);color:var(--ink)}.oc-composer-compact .oc-spinner-inline{margin-right:0}.oc-runtime-context-toggle{--oc-context-percent: 0%;appearance:none;display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.oc-context-ring{display:block;width:17px;height:17px;border-radius:50%;background:conic-gradient(var(--orange) var(--oc-context-percent),var(--hairline-strong) 0);-webkit-mask:radial-gradient(circle,transparent 49%,#000 51%);mask:radial-gradient(circle,transparent 49%,#000 51%)}.oc-runtime-context-toggle:hover .oc-context-ring,.oc-runtime-context-toggle.is-active .oc-context-ring{filter:saturate(1.35);box-shadow:0 0 0 3px var(--orange-soft)}.oc-telemetry{display:flex;align-items:center;gap:6px;min-width:0;justify-content:center;margin-top:0;overflow:hidden;color:var(--muted-soft);font-size:12px;line-height:20px;font-variant-numeric:tabular-nums;white-space:nowrap}.oc-telemetry-stats{display:block;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis}.oc-telemetry-group+.oc-telemetry-group:before{content:"|";margin:0 10px;color:var(--hairline-strong)}.oc-telemetry .oc-process-summary{min-height:22px;padding:0;border:0;background:transparent;font-size:inherit}.oc-textarea::placeholder{color:var(--muted-soft)}.oc-send{appearance:none;display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;padding:0;border:1px solid var(--orange);border-radius:50%;background:var(--orange);color:#fff;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.oc-send:hover:not(:disabled){background:var(--orange-active);border-color:var(--orange-active)}.oc-send:active:not(:disabled){background:var(--orange-active);border-color:var(--orange-active)}.oc-send:disabled{opacity:.4;cursor:not-allowed}.oc-stop{appearance:none;position:relative;display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;padding:0;border:1px solid var(--hairline-strong);border-radius:50%;background:var(--surface);color:var(--red);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.oc-stop .oc-spinner{position:absolute;inset:4px;width:auto;height:auto;border-width:1.5px;color:inherit;opacity:.75}.oc-stop .oc-spinner+svg{position:relative;z-index:1}.oc-stop:hover{background:color-mix(in srgb,var(--red) 8%,var(--surface));border-color:var(--red)}.oc-composer-foot{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:11.5px;color:var(--muted)}.oc-composer-hint{display:inline-flex;align-items:center;gap:5px}.oc-kbd{display:inline-block;padding:1px 6px;border:1px solid var(--hairline-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface);color:var(--body);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:10.5px;line-height:1.4}.oc-operation-card{width:min(720px,calc(100% - 42px));margin:var(--space-3) auto;padding:var(--space-4) var(--space-5);border:1px solid var(--hairline-strong);border-left:4px solid var(--blue);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 96%,var(--blue) 4%);box-shadow:var(--shadow-panel)}.oc-operation-card.is-succeeded{border-left-color:var(--green)}.oc-operation-card.is-failed,.oc-operation-card.is-timed-out{border-left-color:var(--red)}.oc-operation-card.is-needs-reconcile{border-left-color:var(--orange)}.oc-operation-head,.oc-operation-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.oc-operation-kicker{margin-bottom:2px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.oc-operation-state{padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue);font-size:11px;font-weight:700}.oc-operation-state.is-succeeded{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green)}.oc-operation-state.is-failed,.oc-operation-state.is-timed-out{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red)}.oc-operation-state.is-needs-reconcile{background:color-mix(in srgb,var(--orange) 14%,transparent);color:var(--orange-active)}.oc-operation-id,.oc-operation-controller{margin-top:var(--space-2);color:var(--muted);font-size:12px;overflow-wrap:anywhere}.oc-operation-identities{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-3)}.oc-operation-identities span{padding:3px 8px;border:1px solid var(--hairline);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);font-size:var(--text-xs);font-weight:600}.oc-operation-identities b{color:var(--body)}.oc-operation-preview{max-height:150px;margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);overflow:auto;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft);color:var(--body);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.oc-operation-preview.is-error{border-color:color-mix(in srgb,var(--red) 30%,var(--hairline));color:var(--red)}.oc-operation-actions{justify-content:flex-start;margin-top:var(--space-3)}.oc-operation-actions time{margin-left:auto;color:var(--muted-soft);font-size:11px}.oc-interview-start{margin:var(--space-3) auto}.oc-draft-card{width:min(720px,calc(100% - 42px));margin:var(--space-3) auto;padding:var(--space-4) var(--space-5);border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-panel)}.oc-draft-card>header{display:flex;align-items:center;gap:var(--space-3);justify-content:space-between}.oc-draft-card>header strong{font-size:15px;font-weight:700;letter-spacing:-.01em}.oc-draft-card>header span{padding:3px 10px;border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.oc-interview-bubble{margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);border-left:3px solid var(--orange);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--canvas-soft)}.oc-interview-bubble textarea{width:100%;min-height:72px;margin:var(--space-2) 0;resize:vertical;border:1px solid var(--hairline-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-md)}.oc-interview-bubble textarea:focus-visible{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.oc-interview-bubble .btn+.btn{margin-left:var(--space-2)}.oc-draft-card pre{max-height:300px;overflow:auto;white-space:pre-wrap;font-size:var(--text-xs)}.oc-assessment{margin:var(--space-3) 0;color:var(--orange);font-size:var(--text-md)}.oc-assessment.is-fresh,.oc-task-kind-card.is-confirmed{color:var(--green)}.oc-task-kind-card{display:flex;align-items:center;gap:var(--space-3);justify-content:space-between;flex-wrap:wrap;margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft)}.oc-task-kind-card small{color:var(--muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.oc-human-gate-card{position:relative;width:min(720px,calc(100% - 42px));margin:var(--space-3) auto;padding:var(--space-4) var(--space-5);border:1px solid color-mix(in srgb,var(--orange) 38%,var(--hairline));border-left:4px solid var(--orange);border-radius:var(--radius-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--orange) 4%,var(--surface)),var(--surface) 40%);box-shadow:var(--shadow-soft);animation:panel-in .2s var(--ease-out)}.oc-human-gate-card.is-prepared,.oc-human-gate-card.is-confirmed{position:sticky;bottom:var(--space-2);z-index:6}.oc-human-gate-card header,.oc-human-gate-card footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.oc-human-gate-card header div{display:grid;gap:3px}.oc-human-gate-card header small{color:var(--muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em}.oc-human-gate-card header strong{font-size:15px;font-weight:700;letter-spacing:-.01em}.oc-human-gate-card header>span{flex-shrink:0;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent}.oc-human-gate-card.is-prepared header>span{color:var(--orange-active);background:var(--orange-soft);border-color:color-mix(in srgb,var(--orange) 35%,transparent)}.oc-human-gate-card.is-confirmed header>span,.oc-human-gate-card.is-dispatched header>span{color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,transparent);border-color:color-mix(in srgb,var(--blue) 30%,transparent)}.oc-human-gate-card.is-consumed header>span{color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent);border-color:color-mix(in srgb,var(--green) 30%,transparent)}.oc-human-gate-card.is-stale header>span,.oc-human-gate-card.is-expired header>span,.oc-human-gate-card.is-error header>span{color:var(--red);background:color-mix(in srgb,var(--red) 8%,transparent);border-color:color-mix(in srgb,var(--red) 30%,transparent)}.oc-human-gate-card>p{margin:var(--space-3) 0 0;color:var(--body);font-size:var(--text-md);line-height:1.55}.oc-human-gate-card>div:has(>b){margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft);font-size:var(--text-sm)}.oc-human-gate-challenges,.oc-human-gate-card ol{max-height:160px;overflow:auto}.oc-human-gate-card ul,.oc-human-gate-card ol{margin:var(--space-2) 0 0;padding-left:1.3em;color:var(--body)}.oc-human-gate-card footer{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--hairline)}.oc-human-gate-card footer a{color:var(--muted);font-size:var(--text-sm);font-weight:600;text-decoration:none}.oc-human-gate-card footer a:hover{color:var(--orange-active);text-decoration:underline}.oc-human-gate-error{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--red) 8%,transparent);color:var(--red);font-size:var(--text-sm);font-weight:600}.oc-human-gate-card.is-confirmed{border-left-color:var(--blue)}.oc-human-gate-card.is-consumed{border-left-color:var(--green);box-shadow:var(--shadow-panel)}.oc-human-gate-card.is-stale,.oc-human-gate-card.is-expired,.oc-human-gate-card.is-error{border-left-color:var(--red)}.oc-task-context{margin:var(--space-3);padding:var(--space-3);border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface)}.oc-task-context>header{display:flex;justify-content:space-between;gap:var(--space-2);align-items:center}.oc-task-context>header div{display:grid;gap:2px}.oc-task-context>header small,.oc-task-context>header span,.oc-task-context-empty{color:var(--muted)}.oc-task-context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-3)}.oc-task-context-grid>div{display:grid;gap:4px;min-width:0;padding:var(--space-2);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft)}.oc-task-context-grid span,.oc-task-context-grid small{overflow-wrap:anywhere}.oc-shortcut-palette{position:absolute;z-index:12;left:0;right:0;bottom:calc(100% + 8px);display:flex;flex-direction:column;max-height:min(var(--oc-shortcut-palette-available-height, 62vh),62vh,520px);padding:6px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.oc-shortcut-palette-head{flex:0 0 auto;border-bottom:1px solid var(--hairline);margin-bottom:4px}.oc-shortcut-palette-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:4px}.oc-shortcut-palette button{display:grid;gap:3px;min-width:0;border:1px solid var(--hairline);border-radius:var(--radius-md);padding:8px 10px;color:inherit;background:var(--surface);text-align:left;min-height:0}.oc-shortcut-group>button{grid-template-columns:minmax(0,1fr);align-content:center;align-items:stretch;justify-content:stretch;justify-items:stretch;width:100%}.oc-shortcut-palette button code{width:100%;overflow-wrap:anywhere;font-size:12px;font-weight:650;line-height:1.4;text-align:left}.oc-shortcut-palette button small{width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:var(--muted);font-size:11px;line-height:1.45;text-align:left}.oc-shortcut-palette button:hover,.oc-shortcut-palette button.is-active{border-color:var(--orange);background:var(--surface-muted)}.oc-composer-inner{position:relative}.oc-question-composer{flex:0 0 auto;display:flex;justify-content:center;padding:6px 32px 10px}.oc-question-card{display:flex;flex-direction:column;width:min(100%,780px);max-height:min(60vh,520px);padding-bottom:10px;overflow:hidden;border:1px solid var(--hairline);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-soft);color:var(--ink)}.oc-question-card.is-minimized{max-height:none}.oc-question-card.is-minimized .oc-question-header{padding-bottom:14px}.oc-question-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-shrink:0;padding:20px 16px 0 24px}.oc-question-header-actions{gap:4px;flex-shrink:0}.oc-question-heading{min-width:0}.oc-question-eyebrow{margin-bottom:5px;color:var(--muted);font-size:11px;line-height:16px}.oc-question-heading h2{margin:0;font-size:16px;font-weight:500;line-height:22px}.oc-question-header-actions,.oc-question-pager,.oc-question-actions{display:flex;align-items:center;gap:6px}.oc-question-icon-button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.oc-question-icon-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.oc-question-icon-button:hover:not(:disabled){background:var(--surface-muted);color:var(--ink)}.oc-question-icon-button:disabled{opacity:.4;cursor:default}.oc-question-body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.oc-question-detail{margin:0 2px 8px;color:var(--muted);font-size:14px;line-height:24px}.oc-question-detail .oc-md>:first-child{margin-top:0}.oc-question-detail .oc-md>:last-child{margin-bottom:0}.oc-question-options{display:flex;flex-direction:column;gap:1px;margin-top:8px;padding:4px 12px}.oc-question-option,.oc-question-custom{display:flex;align-items:flex-start;gap:8px;width:100%;min-height:40px;flex-shrink:0;padding:8px 12px 8px 8px;border:1px solid transparent;border-radius:12px;background:transparent;color:inherit;text-align:left;transition:background-color .12s ease,border-color .12s ease}.oc-question-option{cursor:pointer}.oc-question-option:hover:not(:disabled),.oc-question-option.is-selected,.oc-question-custom:hover,.oc-question-custom:focus-within,.oc-question-custom.is-active{background:var(--surface-muted)}.oc-question-option.is-selected,.oc-question-custom:focus-within,.oc-question-custom.is-active{border-color:var(--hairline-strong, var(--hairline))}.oc-question-number,.oc-question-checkbox{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;margin-top:2px;border-radius:6px;background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:500;line-height:18px}.oc-question-number svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.oc-question-checkbox{position:relative;display:block;width:20px;height:20px;margin-top:2px;border-radius:6px;background:transparent}.oc-question-checkbox:before{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border:1px solid var(--hairline-strong, var(--hairline));border-radius:4px;background:transparent}.oc-question-checkbox.is-checked:before{border-color:var(--ink);background:var(--ink)}.oc-question-checkbox svg{position:absolute;top:5px;left:5px;width:10px;height:10px;fill:none;stroke:var(--surface);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.oc-question-option-copy{display:flex;flex-direction:column;flex:1;min-width:0;gap:0}.oc-question-option-main{display:flex;align-items:baseline;flex-wrap:wrap;min-width:0;max-width:100%;gap:2px 6px}.oc-question-option-label{font-size:14px;font-weight:500;line-height:24px}.oc-question-description{display:inline;max-width:100%;color:var(--muted);font-size:14px;line-height:24px;word-break:break-word}.oc-question-badge{padding:0 4px;border-radius:6px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-size:11px;font-weight:600;line-height:18px}.oc-question-answer-field{display:grid;flex:1;min-width:0;--oc-question-answer-padding: 0}.oc-question-answer-field>*{grid-area:1 / 1;min-width:0;padding:var(--oc-question-answer-padding);font:inherit;font-size:14px;line-height:24px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.oc-question-field-mirror{box-sizing:content-box;max-height:144px;overflow:hidden;visibility:hidden}.oc-question-field-input{flex:1;min-width:0;max-height:144px;padding:0;resize:none;overflow-y:auto;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:14px;line-height:24px}.oc-question-field-input::placeholder{color:var(--muted-soft)}.oc-question-options>.oc-question-custom:only-child{min-height:64px;margin:0 12px;width:calc(100% - 24px);border-color:var(--hairline);border-radius:10px;background:var(--surface-muted);--oc-question-answer-padding: 8px 12px}.oc-question-options>.oc-question-custom:only-child:focus-within{border-color:var(--accent)}.oc-question-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;margin-top:12px;padding:0 10px 0 18px}.oc-question-pager{flex-shrink:0;color:var(--muted);font-size:14px;font-weight:500}.oc-question-feedback{flex:1;min-height:16px;color:var(--danger, #dc5252);font-size:11px;line-height:16px;text-align:right}.oc-question-actions{gap:10px;flex-shrink:0}.oc-question-button{min-height:32px;padding:0 14px;border:1px solid var(--hairline);border-radius:9px;font:inherit;font-size:13px;cursor:pointer}.oc-question-button.is-secondary{background:transparent;color:var(--ink)}.oc-question-button.is-primary{border-color:var(--accent);background:var(--accent);color:#fff}.oc-question-button:disabled{opacity:.45;cursor:default}@media(max-width:720px){.oc-question-composer{padding-inline:12px}.oc-question-card{border-radius:16px}.oc-question-header{padding:10px 12px 0 18px}.oc-question-heading h2{font-size:15px;line-height:21px}.oc-question-options{padding:4px 8px}.oc-question-option,.oc-question-custom{padding:8px 6px}.oc-question-footer{align-items:flex-end;padding-inline:10px}}@media(prefers-reduced-motion:reduce){.oc-question-option,.oc-question-custom{transition:none}}@media(max-width:800px){.oc-task-context-grid{grid-template-columns:1fr}}.oc-file-palette{position:absolute;z-index:13;left:0;right:0;bottom:calc(100% + 8px);display:grid;max-height:240px;overflow:auto;padding:6px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.oc-file-palette button{border:0;padding:8px 10px;color:inherit;background:transparent;text-align:left;border-radius:var(--radius-md);min-height:0}.oc-file-palette button:hover{background:var(--surface-muted)}.oc-file-palette button.is-dir code{color:var(--amber);font-weight:650}.oc-runtime-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}@media(prefers-reduced-motion:reduce){.oc-process,.oc-sidebar-drawer,.oc-suggestion,.oc-send{animation:none!important;transition:none!important}}.oc-select-menu{position:relative;flex-shrink:0}.oc-select-trigger{display:inline-flex;align-items:center;gap:6px;max-width:min(260px,calc(100vw - 32px));min-height:30px;padding:0 var(--space-2);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);color:var(--body);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.oc-select-trigger:hover{border-color:var(--hairline-strong)}.oc-select-trigger:focus-visible{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.oc-select-trigger:disabled{cursor:not-allowed;opacity:.55}.oc-select-trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.oc-select-panel{position:absolute;left:0;bottom:calc(100% + 8px);z-index:18;width:min(340px,calc(100vw - 24px));max-height:min(60vh,440px);display:flex;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft);overflow:auto}.oc-select-search{flex-shrink:0;margin-bottom:4px;padding:7px 9px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--ink);font:inherit;font-size:var(--text-sm);outline:none}.oc-select-search:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.oc-select-status{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;color:var(--muted);font-size:var(--text-sm)}.oc-select-status.is-error{color:var(--red)}.oc-model-group-head{padding:6px 10px 2px;color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.oc-select-option{display:flex;align-items:center;gap:8px;width:100%;border:0;border-radius:var(--radius-md);padding:8px 10px;background:transparent;color:inherit;font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;min-height:0}.oc-select-option.is-highlighted{background:var(--surface-muted)}.oc-select-option.is-active{color:var(--orange-active)}.oc-model-option-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.oc-model-option-check{flex-shrink:0;color:var(--orange)}.oc-thinking-option-label{flex:1}.oc-thinking-badge{flex-shrink:0;padding:1px 7px;border:1px solid var(--hairline);border-radius:var(--radius-pill);color:var(--muted);font-size:11px}.oc-runtime-selection-menu{min-width:0}.oc-runtime-selection-trigger{gap:7px;min-width:0;color:var(--ink)}.oc-runtime-selection-model,.oc-runtime-selection-effort{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-runtime-selection-model{min-width:0;font-weight:600}.oc-runtime-selection-effort{flex-shrink:1;color:var(--muted);font-size:11px}.oc-runtime-selection-trigger>svg{flex-shrink:0;color:var(--muted)}.oc-runtime-selection-panel{width:max-content;min-width:min(240px,calc(100vw - 24px));max-width:min(340px,calc(100vw - 24px));padding:5px;overflow:hidden}.oc-runtime-selection-groups{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 36%,transparent) transparent}.oc-runtime-selection-groups::-webkit-scrollbar{width:8px}.oc-runtime-selection-groups::-webkit-scrollbar-track{margin-block:6px;background:transparent}.oc-runtime-selection-groups::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--muted) 36%,transparent);background-clip:padding-box}.oc-runtime-selection-groups::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--muted) 58%,transparent);background-clip:padding-box}.oc-runtime-selection-root-row,.oc-runtime-selection-back{appearance:none;display:flex;align-items:center;width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.oc-runtime-selection-root-row{gap:10px;min-height:38px;padding:7px 9px;border-radius:var(--radius-md)}.oc-runtime-selection-root-row:hover,.oc-runtime-selection-root-row.is-highlighted{background:var(--surface-muted)}.oc-runtime-selection-root-row:focus-visible,.oc-runtime-selection-back:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--orange)}.oc-runtime-selection-row-label{flex-shrink:0;min-width:64px;color:var(--ink);font-weight:600}.oc-runtime-selection-row-value{flex:1;min-width:0;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.oc-runtime-selection-root-row>svg{flex-shrink:0;color:var(--muted)}.oc-runtime-selection-back{gap:7px;flex-shrink:0;min-height:32px;margin-bottom:3px;padding:5px 7px;border-bottom:1px solid var(--hairline);color:var(--body);font-size:var(--text-sm);font-weight:600}.oc-runtime-selection-back:hover{color:var(--ink)}.oc-runtime-selection-back>svg{flex-shrink:0;color:var(--muted)}.oc-reload-status{color:var(--muted);font-size:var(--text-sm)}.oc-reload-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--red) 35%,var(--hairline));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--red) 6%,var(--surface));color:var(--red);font-size:var(--text-sm)}.oc-runtime-controls .oc-process-summary{margin-left:0}.oc-usage{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.oc-usage-part{white-space:nowrap}.oc-usage-part.is-in{color:var(--green)}.oc-usage-part.is-out{color:var(--blue)}.oc-usage-part.is-context{color:var(--muted-soft, var(--muted))}.oc-usage-part.is-context.is-high{color:var(--orange, #d97706);font-weight:600}.oc-usage-part svg{vertical-align:-1px;margin-right:1px}.oc-runtime-controls-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.oc-runtime-controls-group.is-right{margin-left:auto}.oc-runtime-context-menu{position:relative;margin-left:auto;flex-shrink:0}.oc-runtime-context-toggle.is-active{color:var(--orange-active);background:color-mix(in srgb,var(--orange) 10%,var(--surface))}.oc-runtime-context-panel{position:absolute;right:0;bottom:calc(100% + 8px);z-index:16;width:min(760px,calc(100vw - 24px));max-height:min(72vh,720px);display:flex;flex-direction:column;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-soft);animation:panel-in .16s ease;overflow:hidden}.oc-runtime-context-head{display:flex;align-items:flex-start;gap:12px;flex-shrink:0;padding:12px 14px;border-bottom:1px solid var(--hairline);background:var(--surface-raised)}.oc-runtime-context-head-copy{flex:1;min-width:0;display:grid;gap:2px}.oc-runtime-context-head strong{font-size:14px}.oc-runtime-context-meta{font-size:11px;color:var(--muted)}.oc-runtime-context-close{flex-shrink:0;min-height:28px;padding:0 8px;font-size:12px}.oc-runtime-context-body{flex:1;min-height:0;overflow:auto;padding:12px 14px 14px;display:grid;align-content:start;gap:14px}.oc-runtime-context-overview{display:grid;gap:14px}.oc-runtime-context-model-card{display:grid;gap:4px;min-width:0;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft)}.oc-runtime-context-model-label{font-size:11px;color:var(--muted)}.oc-runtime-context-model-ref{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-runtime-context-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.oc-runtime-context-stat{display:grid;gap:3px;min-width:0;padding:8px 10px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft)}.oc-runtime-context-stat-label{font-size:11px;color:var(--muted)}.oc-runtime-context-stat-value{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-runtime-context-stat-value.oc-runtime-context-mode{display:inline-flex;align-items:center;gap:6px}.oc-runtime-context-mode.is-open{color:var(--green)}.oc-runtime-context-mode.is-closed{color:var(--amber)}.oc-runtime-context-mode-dot{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:currentColor}.oc-runtime-context-resource-links{display:grid;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.oc-runtime-context-resource-link{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;border-bottom:1px solid var(--hairline);background:transparent;color:var(--body);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer}.oc-runtime-context-resource-link:last-child{border-bottom:0}.oc-runtime-context-resource-link:hover{background:var(--surface-muted)}.oc-runtime-context-resource-link:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--orange)}.oc-runtime-context-resource-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-runtime-context-resource-count{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--orange-active);font-variant-numeric:tabular-nums}.oc-runtime-context-resource-count.is-zero{color:var(--muted)}.oc-runtime-context-resource-chevron{color:var(--muted-soft);font-size:14px;line-height:1}.oc-runtime-context-section{display:grid;gap:8px;min-width:0}.oc-runtime-context-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.oc-runtime-context-section-head strong{font-size:12px}.oc-runtime-context-section-title{display:flex;align-items:baseline;gap:8px;min-width:0}.oc-runtime-context-hash{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid var(--hairline);border-radius:6px;background:var(--canvas-soft);color:var(--muted);font-size:11px;vertical-align:1px}.oc-runtime-context-text{margin:0;max-height:min(36vh,360px);overflow:auto;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--canvas-soft);color:var(--body);font-size:12px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.oc-runtime-context-empty{margin:0;padding:8px 10px;border:1px dashed var(--hairline);border-radius:var(--radius-sm);background:var(--canvas-soft);color:var(--muted);font-size:12px;text-align:center}.oc-runtime-context-tools{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.oc-runtime-context-tools li code{display:inline-block;padding:3px 7px;border:1px solid var(--hairline);border-radius:6px;background:var(--canvas-soft);font-size:11px}.oc-runtime-context-raw{padding-top:10px;border-top:1px solid var(--hairline);font-size:12px;color:var(--muted)}.oc-runtime-context-raw summary{cursor:pointer;-webkit-user-select:none;user-select:none}.oc-runtime-context-raw pre{margin:8px 0 0;max-height:min(48vh,480px);overflow:auto;padding:10px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--canvas-soft);font-size:11px;line-height:1.45;white-space:pre}.oc-runtime-context-resources{display:grid;gap:6px;margin:0;padding:0;list-style:none}.oc-runtime-context-resources li{display:grid;gap:5px;padding:8px 10px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-sm)}.oc-runtime-context-resource-head{display:flex;align-items:baseline;gap:8px;min-width:0}.oc-runtime-context-resource-name{flex:1;min-width:0;font-size:var(--text-md);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-runtime-context-resource-flag{flex-shrink:0;padding:1px 6px;border:1px solid var(--hairline);border-radius:var(--radius-pill);color:var(--muted);font-size:11px}.oc-runtime-context-resource-head .oc-runtime-context-meta{flex-shrink:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-runtime-context-resource-desc{color:var(--body)}.oc-runtime-context-resource-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.oc-runtime-context-resolved{padding-top:6px;border-top:1px solid var(--hairline)}.oc-runtime-context-resolved summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11px;color:var(--muted)}.oc-runtime-context-resolved-list{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none}.oc-runtime-context-resolved-list code{display:inline-block;max-width:100%;padding:2px 6px;border:1px solid var(--hairline);border-radius:6px;background:var(--canvas-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.oc-runtime-context-diag{color:var(--amber);font-size:11px;line-height:1.5}.oc-runtime-context-diag-icon{margin-right:4px}.oc-runtime-context-diag.is-error{color:var(--red);display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.oc-runtime-context-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;flex-shrink:0;padding:10px 14px;border-top:1px solid var(--hairline);background:var(--surface-raised)}@media(max-width:800px){.oc-runtime-context-menu{margin-left:0;width:100%}.oc-runtime-context-panel{left:0;right:0;width:auto;max-height:min(78vh,680px)}}.oc-artifact-card{max-width:100%;margin:var(--space-3) 0;padding:var(--space-4);overflow:hidden;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-panel)}.oc-artifact-card header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.oc-artifact-card header strong{font-size:var(--text-md);font-weight:700}.oc-artifact-card header>span{padding:2px 9px;border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.oc-artifact-card pre{max-height:320px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--text-xs)}.oc-artifact-card iframe{width:100%;min-height:280px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:#fff}.oc-load-history{display:block;margin:var(--space-2) auto}.oc-attach-button{display:inline-flex;min-height:26px;align-items:center;padding:0 var(--space-2);border:1px solid var(--hairline);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:border-color var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast)}.oc-attach-button:hover{border-color:var(--orange);color:var(--orange-active);background:var(--orange-soft)}.oc-composer-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-bottom:6px;font-size:11.5px;color:var(--muted)}.oc-composer-toolbar .oc-attach-button{margin-bottom:0}.oc-attachment-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.oc-attachment-list span{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 8px;border:1px solid var(--hairline);border-radius:999px;overflow-wrap:anywhere}.oc-attachment-list button{border:0;color:inherit;background:transparent;cursor:pointer}@media(max-width:640px){.oc-runtime-controls,.oc-composer-foot{align-items:stretch;flex-direction:column}.oc-runtime-controls .oc-select-trigger,.oc-runtime-controls button{width:100%;max-width:100%;min-height:44px}.oc-runtime-controls .oc-select-menu{width:100%}.oc-select-panel{width:min(340px,calc(100vw - 24px))}.oc-composer-model-controls,.oc-runtime-selection-menu{max-width:100%}.oc-composer-model-controls .oc-runtime-selection-trigger{max-width:min(280px,calc(100vw - 56px))}.oc-runtime-selection-model{max-width:46vw}.oc-runtime-selection-effort{max-width:28vw}.oc-artifact-card{width:100%}.oc-composer{padding-inline:8px}}.night-workbench .night-health{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.night-health-main{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.night-health-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 12px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--green) 14%,white);color:var(--green);font-size:var(--text-sm);font-weight:700;letter-spacing:.02em}.night-health-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.night-health-pill.is-bad{background:color-mix(in srgb,var(--red) 14%,white);color:var(--red)}.night-health-hint{margin:var(--space-2) 0 0}.night-aux-ticker{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--hairline)}.night-aux-ticker-label{margin:0;color:var(--body);font-size:var(--text-md)}.night-doctor-list{margin:var(--space-2) 0 0;padding-left:1.2em;color:var(--body);font-size:12.5px}.night-kpi{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0;color:var(--body);font-size:var(--text-md)}.night-kpi span{padding:4px 12px;border:1px solid var(--hairline);border-radius:var(--radius-pill);background:var(--canvas-soft);font-variant-numeric:tabular-nums;font-weight:600}.night-board,.night-wizard,.night-discard-card,.night-advanced{margin-top:var(--space-5)}.night-schedule-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.night-schedule-row{padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.night-schedule-row:hover{border-color:var(--hairline-strong);box-shadow:var(--shadow-panel)}.night-schedule-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.night-status-chip{padding:2px 10px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--blue) 10%,transparent);border:1px solid color-mix(in srgb,var(--blue) 25%,transparent);font-size:var(--text-xs);color:var(--blue);font-weight:700;letter-spacing:.03em}.night-schedule-row[data-status=failed] .night-status-chip,.night-schedule-row[data-status=human_required] .night-status-chip{color:var(--red);background:color-mix(in srgb,var(--red) 8%,transparent);border-color:color-mix(in srgb,var(--red) 28%,transparent)}.night-schedule-row[data-status=succeeded] .night-status-chip{color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent);border-color:color-mix(in srgb,var(--green) 28%,transparent)}.night-schedule-row[data-status=running] .night-status-chip,.night-schedule-row[data-status=dispatching] .night-status-chip{color:var(--orange-active);background:var(--orange-soft);border-color:color-mix(in srgb,var(--orange) 30%,transparent)}.night-next-action{font-size:var(--text-sm);overflow-wrap:anywhere}.night-review-card,.night-discard-card{padding:var(--space-4) var(--space-5);border:1px solid var(--hairline-strong);border-radius:var(--radius-lg);background:var(--canvas-soft)}.night-writeset{margin:0;padding-left:1.1em}.night-advanced{border-top:1px solid var(--hairline);padding-top:var(--space-3)}.night-advanced summary{cursor:pointer;color:var(--body);font-weight:600}.checkbox-field{display:flex;align-items:center;gap:var(--space-2)}.models-page .panel-lead{margin-top:var(--space-2)}.models-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.models-header h2{margin:0}.models-status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:700;letter-spacing:.02em}.models-status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.models-status-pill[data-state=ready]{background:color-mix(in srgb,var(--green) 14%,white);color:var(--green)}.models-status-pill[data-state=setup-required]{background:color-mix(in srgb,var(--red) 14%,white);color:var(--red)}.models-status-pill[data-state=degraded]{background:color-mix(in srgb,var(--orange) 16%,white);color:var(--orange-active)}.models-status-pill[data-state=unknown]{background:var(--canvas-soft);color:var(--muted)}.models-subtitle{margin:0 0 var(--space-2);font-size:var(--text-md);font-weight:700;color:var(--ink)}.models-probe-card,.models-setup-card,.models-blocked-card{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 55%,transparent)}.models-probe-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.models-probe-item{display:grid;grid-template-columns:28px 1fr;gap:var(--space-2);align-items:start;padding:var(--space-2) 0;border-bottom:1px solid var(--hairline)}.models-probe-item:last-child{border-bottom:none;padding-bottom:0}.models-probe-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:14px;font-weight:800;line-height:1;background:var(--canvas-soft);color:var(--muted)}.models-probe-item.is-ok .models-probe-badge{background:color-mix(in srgb,var(--green) 16%,white);color:var(--green)}.models-probe-item.is-bad .models-probe-badge{background:color-mix(in srgb,var(--red) 14%,white);color:var(--red)}.models-probe-body{display:grid;gap:2px;min-width:0}.models-probe-body strong{font-size:var(--text-md);color:var(--ink)}.models-probe-body .muted{font-size:var(--text-sm)}.models-probe-detail{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--body);line-height:1.45}.models-setup-steps{margin:0 0 var(--space-3);padding-left:1.25em;color:var(--body);font-size:var(--text-md);line-height:1.5}.models-setup-steps li+li{margin-top:var(--space-2)}.models-degraded-note{margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--orange) 35%,var(--hairline));background:color-mix(in srgb,var(--orange) 8%,white);color:var(--body);font-size:var(--text-md)}.models-blocked-list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2)}.models-blocked-list li{padding:4px 10px;border-radius:var(--radius-pill);border:1px solid var(--hairline);background:var(--surface)}.models-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.models-generated-at{font-size:var(--text-sm)}.models-raw-details{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--muted)}.models-raw-details summary{cursor:pointer;font-weight:600;color:var(--body)}.models-raw-json{margin-top:var(--space-2);max-height:240px;overflow:auto}.models-matrix-card{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 55%,transparent)}.models-matrix-lead{margin:var(--space-2) 0 var(--space-3);color:var(--muted)}.models-matrix-list{display:grid;gap:var(--space-3);width:min(100%,720px)}.models-matrix-row{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:var(--space-3)}.models-matrix-empty,.models-matrix-select{width:100%}.models-matrix-select .oc-select-trigger{width:100%;max-width:none;min-height:34px}.models-matrix-select .oc-select-panel.is-below{bottom:auto;top:calc(100% + 6px)}.oc-overlay-backdrop.is-runtime-context{z-index:10}.oc-runtime-context-sidepanel{position:absolute;top:0;right:0;bottom:0;z-index:11;animation:oc-drawer-slide-in .28s cubic-bezier(.32,.72,0,1);will-change:transform;width:min(480px,calc(100% - 24px));display:flex;flex-direction:column;border-left:1px solid var(--hairline);background:var(--surface);box-shadow:var(--shadow-soft)}.oc-runtime-context-layout{display:grid;grid-template-columns:132px minmax(0,1fr);min-height:0;flex:1 1 auto}.oc-runtime-context-nav{display:flex;flex-direction:column;gap:2px;padding:8px;border-right:1px solid var(--hairline);overflow:auto;background:var(--canvas-soft)}.oc-runtime-context-nav-item{display:flex;align-items:center;justify-content:space-between;gap:6px;text-align:left;border:0;background:transparent;color:var(--muted);border-radius:6px;padding:7px 8px;font:inherit;font-size:12px;cursor:pointer}.oc-runtime-context-nav-item:hover,.oc-runtime-context-nav-item.is-active{background:color-mix(in srgb,var(--orange) 10%,var(--surface));color:var(--orange-active)}.oc-runtime-context-nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-runtime-context-nav-count{flex-shrink:0;font-family:var(--font-mono);font-size:11px;font-variant-numeric:tabular-nums}.oc-runtime-context-nav-item.is-active .oc-runtime-context-nav-count{color:var(--orange-active)}.oc-runtime-context-sidepanel .oc-runtime-context-body{overflow:auto}.oc-runtime-context-sidepanel .oc-runtime-context-foot{flex-shrink:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;border-top:1px solid var(--hairline);background:var(--surface-raised)}.oc-attach-icon{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border-radius:8px;cursor:pointer;color:var(--muted)}.oc-attach-icon:hover,.oc-attach-icon:focus-within{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.oc-md-table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;overscroll-behavior-y:auto}.oc-md table{border-collapse:collapse;font-size:.95em}.oc-md-table-wrap.is-fill table{width:100%;max-width:none}.oc-md-table-wrap.is-wide{padding-bottom:8px;overflow-x:hidden}.oc-message-column .oc-md-table-wrap.is-wide{--oc-table-spare: max(0px, calc((100cqw - 748px)/2) );--oc-table-lead: calc(var(--oc-table-spare) + min(748px, 100cqw) - 100%);box-sizing:border-box;width:calc(100% + var(--oc-table-lead) + var(--oc-table-spare));max-width:none;margin-left:calc(-1 * var(--oc-table-lead));padding-left:var(--oc-table-lead)}.oc-md-table-wrap.is-wide table{width:max-content;max-width:max-content}.oc-md-table-wrap.is-wide:hover,.oc-md-table-wrap.is-wide:focus-visible{overflow-x:auto;padding-bottom:0}.oc-md-table-wrap.is-wide:focus-visible{outline:none;box-shadow:0 0 0 2px var(--orange)}.oc-md th,.oc-md td{border:1px solid var(--hairline);padding:6px 10px;vertical-align:top;overflow-wrap:anywhere}.oc-md th{background:color-mix(in srgb,var(--ink) 4%,var(--surface));font-weight:650}.oc-md-img-fallback{color:var(--muted);font-size:.92em}.oc-md h5,.oc-md h6{margin:var(--space-3) 0 var(--space-2);font-weight:700}.oc-md input[type=checkbox]{margin-right:6px;pointer-events:none}.oc-shortcut-palette-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px 4px;color:var(--muted);font-size:12px}.oc-shortcut-palette-meta{font-size:11px}.oc-shortcut-palette-meta.is-error{color:var(--red)}.oc-shortcut-group{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding-bottom:6px}.oc-shortcut-group:last-child{padding-bottom:0}.oc-shortcut-palette[data-layout-mode=comfortable] .oc-shortcut-group{grid-template-columns:repeat(3,minmax(0,1fr))}.oc-shortcut-palette[data-layout-mode=compact] .oc-shortcut-group{grid-template-columns:repeat(2,minmax(0,1fr))}.oc-shortcut-group>small{position:sticky;top:0;z-index:1;grid-column:1 / -1;padding:6px 10px 2px;color:var(--muted-soft);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--surface);-webkit-user-select:none;user-select:none}@keyframes la-spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:13px;height:13px;margin-right:7px;vertical-align:-2px;border:2px solid rgb(255 255 255 / 35%);border-top-color:#fff;border-radius:50%;animation:la-spin .8s linear infinite}.btn.is-loading{display:inline-flex;align-items:center;justify-content:center;gap:2px}.btn-ghost.is-loading .spinner,.btn.is-loading .spinner{border-color:color-mix(in srgb,var(--ink) 25%,transparent);border-top-color:var(--ink)}.oc-semantic-activity{appearance:none;width:100%;min-height:24px;display:flex;align-items:center;gap:9px;padding:0;border:0;border-radius:0;background:transparent;color:var(--body);text-align:left;font:inherit;cursor:default;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}button.oc-semantic-activity{cursor:pointer}button.oc-semantic-activity:hover,.oc-semantic-activity.is-located{background:transparent}.oc-semantic-activity:focus-visible{outline:2px solid color-mix(in srgb,var(--green, #2e7d62) 48%,transparent);outline-offset:2px}.oc-semantic-activity.is-warning{background:transparent}.oc-semantic-activity.is-error{background:transparent;color:var(--red)}.oc-semantic-activity-icon{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--green, #2e7d62) 15%,var(--surface));color:var(--green, #2e7d62);font-size:11px;font-weight:800}.oc-semantic-activity.is-progress .oc-semantic-activity-icon,.oc-semantic-activity.is-warning .oc-semantic-activity-icon{background:color-mix(in srgb,var(--orange) 18%,var(--surface));color:color-mix(in srgb,var(--orange) 70%,var(--ink))}.oc-semantic-activity.is-error .oc-semantic-activity-icon{background:color-mix(in srgb,var(--red) 14%,var(--surface));color:var(--red)}.oc-semantic-activity-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.oc-semantic-activity-copy strong{font-size:12.5px;line-height:1.4;font-weight:650}.oc-semantic-activity-copy small{color:var(--muted);font-size:11px}.oc-semantic-activity-link{margin-left:auto;flex:0 0 auto;color:var(--muted);font-size:10px}.oc-activity-trigger{margin-left:auto}.oc-activity-trigger span,.oc-activity-count,.oc-activity-tabs button span{display:inline-grid;min-width:19px;height:19px;place-items:center;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--green, #2e7d62) 14%,var(--surface));color:var(--green, #2e7d62);font-size:10px;font-variant-numeric:tabular-nums}.oc-activity-rail{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:0;background:var(--surface);box-shadow:none}.oc-activity-content{min-height:0;flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden}.oc-activity-rail-head{flex:0 0 auto;display:flex;align-items:center;gap:10px;min-height:58px;padding:10px 12px;border-bottom:1px solid var(--hairline);background:color-mix(in srgb,var(--surface) 94%,transparent)}.oc-activity-rail-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}.oc-activity-rail-head strong{font-size:13px}.oc-activity-rail-head small{color:var(--muted);font-size:10.5px}.oc-activity-count{margin-left:auto}.oc-activity-tabs{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:8px;border-bottom:1px solid var(--hairline)}.oc-activity-tabs button{appearance:none;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:11px;font-weight:650}.oc-activity-tabs button:hover,.oc-activity-tabs button.is-active{border-color:color-mix(in srgb,var(--green, #2e7d62) 22%,var(--hairline));background:color-mix(in srgb,var(--green, #2e7d62) 9%,var(--surface));color:var(--ink)}.oc-activity-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px}.oc-activity-empty{padding:28px 14px;color:var(--muted);text-align:center;font-size:12px}.oc-activity-card-wrap{position:relative;margin-bottom:10px;border-radius:var(--radius-md);transition:box-shadow var(--transition-fast)}.oc-activity-card-wrap.is-focused{box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 38%,transparent)}.oc-activity-card-wrap>section{margin:0;max-width:none}.oc-activity-locate{appearance:none;position:absolute;top:8px;right:86px;border:0;background:transparent;color:var(--muted-soft);cursor:pointer;font-size:9px}.oc-activity-locate:hover{color:var(--ink);text-decoration:underline}.oc-operation-technical-action{margin-left:8px;color:var(--muted-soft);font:10px ui-monospace,SFMono-Regular,Consolas,monospace}.oc-activity-rail .oc-artifact-card pre{max-height:220px;overflow:auto}.oc-task-journey-card,.oc-journey-compact{width:100%;margin:0;border:1px solid var(--hairline-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 6%,transparent)}.oc-task-journey-card{overflow:hidden}.oc-journey-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 14px 12px;border-bottom:1px solid var(--hairline)}.oc-journey-head>div{min-width:0;display:grid;gap:4px}.oc-journey-head strong{font-size:14px;line-height:1.35;text-transform:none;overflow-wrap:anywhere}.oc-journey-head small,.oc-journey-head time{color:var(--muted);font-size:10px}.oc-journey-head code{font-size:9px;overflow-wrap:anywhere}.oc-journey-state-line{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;font-weight:700}.oc-journey-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--muted)}.oc-journey-dot.is-success{background:var(--green)}.oc-journey-dot.is-progress{background:var(--blue)}.oc-journey-dot.is-warning{background:var(--orange)}.oc-journey-dot.is-error{background:var(--red)}.oc-journey-steps{display:grid;gap:7px;padding:12px 14px}.oc-journey-step{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:22px;color:var(--body);font-size:11px}.oc-journey-step>small{color:var(--muted-soft);font-size:9px}.oc-journey-step-icon{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:var(--surface-muted);color:var(--muted);font-size:9px;font-weight:800}.oc-journey-step-icon.is-success{background:color-mix(in srgb,var(--green) 12%,var(--surface));color:var(--green)}.oc-journey-step-icon.is-error{background:color-mix(in srgb,var(--red) 10%,var(--surface));color:var(--red)}.oc-journey-step-icon.is-progress{background:color-mix(in srgb,var(--blue) 10%,var(--surface));color:var(--blue)}.oc-journey-outcome{margin:0 14px 12px;padding:10px 11px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--canvas-soft)}.oc-journey-outcome.is-error{border-color:color-mix(in srgb,var(--red) 25%,var(--hairline));background:color-mix(in srgb,var(--red) 5%,var(--surface))}.oc-journey-outcome.is-warning{border-color:color-mix(in srgb,var(--orange) 28%,var(--hairline));background:color-mix(in srgb,var(--orange) 5%,var(--surface))}.oc-journey-outcome strong{font-size:10px}.oc-journey-outcome p{margin:4px 0 0;color:var(--body);font-size:10.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.oc-journey-advice{margin:6px 0 0;padding-top:6px;border-top:1px dashed var(--hairline);color:var(--muted);font-size:10.5px;line-height:1.5}.oc-journey-latest-run{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center;margin:0 14px 11px;padding:8px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);color:var(--muted);font-size:9px}.oc-journey-latest-run code{min-width:0;overflow:hidden;text-overflow:ellipsis}.oc-journey-latest-run b,.oc-journey-run-row>span{font-size:9px}.oc-journey-latest-run b.is-error,.oc-journey-run-row>span.is-error{color:var(--red)}.oc-journey-latest-run b.is-success,.oc-journey-run-row>span.is-success{color:var(--green)}.oc-journey-latest-run b.is-progress,.oc-journey-run-row>span.is-progress{color:var(--blue)}.oc-journey-latest-run small{grid-column:2 / -1;color:var(--red)}.oc-journey-history,.oc-journey-technical,.oc-human-gate-details,.oc-artifact-details{margin:0 14px 11px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface)}.oc-journey-history>summary,.oc-journey-technical>summary,.oc-human-gate-details>summary,.oc-artifact-details>summary{padding:9px 10px;color:var(--muted);cursor:pointer;font-size:10px;font-weight:650}.oc-journey-run-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:8px 10px;border-top:1px solid var(--hairline);font-size:9px}.oc-journey-run-row small,.oc-journey-run-row time{color:var(--muted-soft);font-size:8px}.oc-journey-actions{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 12px}.oc-journey-actions .btn,.oc-journey-compact .btn,.oc-activity-rail .oc-human-gate-card .btn,.oc-activity-rail .oc-artifact-card .btn{min-height:30px;padding:5px 9px;font-size:9px}.oc-journey-technical-body{max-height:320px;overflow:auto;border-top:1px solid var(--hairline)}.oc-journey-operation-row{display:grid;gap:5px;padding:9px 10px;border-bottom:1px solid var(--hairline)}.oc-journey-operation-row>div{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px}.oc-journey-operation-row small{color:var(--muted-soft);font-size:8px;overflow-wrap:anywhere}.oc-journey-operation-row pre{max-height:120px;margin:0;padding:7px;overflow:auto;border-radius:var(--radius-sm);background:var(--canvas-soft);font-size:8px;white-space:pre-wrap;overflow-wrap:anywhere}.oc-journey-operation-row pre.is-error{color:var(--red)}.oc-journey-compact{overflow:hidden}.oc-journey-compact>summary{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 12px;cursor:pointer;list-style:none}.oc-journey-compact>summary::-webkit-details-marker{display:none}.oc-journey-compact>summary>span:nth-child(2){min-width:0;display:grid;gap:2px}.oc-journey-compact strong{font-size:11px;overflow-wrap:anywhere}.oc-journey-compact small{color:var(--muted);font-size:9px}.oc-journey-compact-body{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-top:1px solid var(--hairline)}.oc-journey-compact-body code{min-width:0;color:var(--muted);font-size:8px;overflow-wrap:anywhere}.oc-activity-rail .oc-human-gate-card,.oc-activity-rail .oc-artifact-card{position:relative;inset:auto;z-index:auto;width:100%;max-width:none;margin:0;padding:13px;border-left-width:3px;border-radius:var(--radius-lg);animation:none;box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 5%,transparent)}.oc-activity-rail .oc-human-gate-card header,.oc-activity-rail .oc-artifact-card header{align-items:flex-start}.oc-activity-rail .oc-human-gate-card header div,.oc-activity-rail .oc-artifact-card header div{min-width:0;display:grid;gap:3px}.oc-activity-rail .oc-human-gate-card header strong,.oc-activity-rail .oc-artifact-card header strong{font-size:12px;overflow-wrap:anywhere}.oc-activity-rail .oc-human-gate-card header code,.oc-activity-rail .oc-artifact-card header code{color:var(--muted-soft);font-size:8px;overflow-wrap:anywhere}.oc-human-gate-summary,.oc-activity-rail .oc-artifact-card>p{display:-webkit-box;margin:10px 0;overflow:hidden;color:var(--body);font-size:10px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.oc-activity-rail .oc-human-gate-details,.oc-activity-rail .oc-artifact-details{margin:10px 0}.oc-activity-rail .oc-human-gate-details>div,.oc-activity-rail .oc-artifact-details>pre,.oc-activity-rail .oc-artifact-details>iframe{margin:0;padding:9px 10px;border-top:1px solid var(--hairline)}.oc-activity-rail .oc-artifact-details iframe{width:100%;min-height:220px;border:0}.oc-activity-rail .oc-human-gate-card footer,.oc-activity-rail .oc-artifact-card footer{display:flex;justify-content:flex-start;gap:6px;margin-top:10px;padding-top:10px}@media(prefers-reduced-motion:reduce){.oc-activity-rail,.oc-semantic-activity,.oc-activity-card-wrap{animation:none!important;transition:none!important;scroll-behavior:auto}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_AMS-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_AMS-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/fonts/katex/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(/fonts/katex/KaTeX_Caligraphic-Bold.woff) format("woff"),url(/fonts/katex/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Caligraphic-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/fonts/katex/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(/fonts/katex/KaTeX_Fraktur-Bold.woff) format("woff"),url(/fonts/katex/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Fraktur-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/fonts/katex/KaTeX_Main-Bold.woff2) format("woff2"),url(/fonts/katex/KaTeX_Main-Bold.woff) format("woff"),url(/fonts/katex/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/fonts/katex/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(/fonts/katex/KaTeX_Main-BoldItalic.woff) format("woff"),url(/fonts/katex/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/fonts/katex/KaTeX_Main-Italic.woff2) format("woff2"),url(/fonts/katex/KaTeX_Main-Italic.woff) format("woff"),url(/fonts/katex/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Main-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Main-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/fonts/katex/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(/fonts/katex/KaTeX_Math-BoldItalic.woff) format("woff"),url(/fonts/katex/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/fonts/katex/KaTeX_Math-Italic.woff2) format("woff2"),url(/fonts/katex/KaTeX_Math-Italic.woff) format("woff"),url(/fonts/katex/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/fonts/katex/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(/fonts/katex/KaTeX_SansSerif-Bold.woff) format("woff"),url(/fonts/katex/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/fonts/katex/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(/fonts/katex/KaTeX_SansSerif-Italic.woff) format("woff"),url(/fonts/katex/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_SansSerif-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Script-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Script-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Size1-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Size1-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Size2-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Size2-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Size3-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Size3-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Size4-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Size4-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/fonts/katex/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(/fonts/katex/KaTeX_Typewriter-Regular.woff) format("woff"),url(/fonts/katex/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.47"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.oc-mermaid{margin:6px 0;padding:10px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);overflow-x:auto;text-align:center}.oc-mermaid svg{max-width:100%;height:auto}.oc-codeblock pre code.hljs{background:transparent;padding:0}.oc-workspaces{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;border-bottom:0}.oc-workspace-list{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-y:auto;gap:0;padding:4px 6px}.oc-workspace-main{display:grid;grid-template-columns:12px minmax(0,1fr);grid-template-rows:auto auto;gap:0 4px;text-align:left}.oc-workspace-main .oc-workspace-caret{grid-row:1 / span 2;align-self:center;color:var(--muted, #807d72)}.oc-workspace-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;color:var(--muted, #807d72)}.oc-workspace-path{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-workspace-sessions{display:flex;flex-direction:column;gap:0;padding:0 0 6px 22px}.oc-workspace-new-session{appearance:none;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 8px;border:1px dashed var(--hairline);border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:inherit;font-size:12px;cursor:pointer}.oc-workspace-new-session:hover{border-color:color-mix(in srgb,var(--orange) 40%,var(--hairline))}.oc-sidebar-footer{margin-top:auto;padding:6px 8px;border-top:0}.oc-sidebar-settings{appearance:none;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.oc-sidebar-settings:hover{background:color-mix(in srgb,var(--surface) 60%,var(--canvas-soft))}.oc-workspace-item{display:block;gap:0;border-radius:8px}.oc-workspace-item.is-active{background:transparent}.oc-workspace-row{position:relative;border-radius:8px}.oc-workspace-main{width:100%;min-width:0;display:grid;grid-template-columns:16px minmax(0,1fr);grid-template-rows:20px;align-items:center;align-content:center;gap:0 6px;height:34px;box-sizing:border-box;padding:0 8px;border:0;border-radius:8px;background:transparent;cursor:pointer;text-align:left}.oc-workspace-main .oc-workspace-caret{grid-column:1;grid-row:1;display:none;align-items:center;justify-content:center;height:20px;line-height:0}.oc-workspace-chevron{display:block;transform:rotate(0);transform-origin:center;transition:transform var(--transition-fast)}.oc-workspace-chevron.is-open{transform:rotate(90deg)}.oc-workspace-main .oc-workspace-folder{grid-column:1;grid-row:1;display:inline-flex;align-items:center;justify-content:center;height:20px;line-height:0;color:var(--muted)}.oc-workspace-main .oc-workspace-folder svg{display:block}.oc-workspace-main>strong,.oc-workspace-main>.oc-workspace-meta{grid-column:2}.oc-workspace-main>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-workspace-main>.oc-workspace-meta{min-width:0}.oc-workspace-main strong{font-size:14px;font-weight:600;line-height:20px}.oc-workspace-main span{font-size:11px;color:var(--muted, #807d72);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-workspace-actions{position:absolute;top:0;right:0;z-index:2;display:none;align-items:center;gap:12px;height:34px;box-sizing:border-box;padding:0 8px 0 4px;border-radius:8px;background:transparent}.oc-workspace-actions>button{appearance:none;display:inline-grid;place-items:center;width:16px;height:16px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted, #807d72);cursor:pointer}.oc-workspace-sessions{min-width:0}.oc-workspace-row:hover>.oc-workspace-main,.oc-workspace-row:has(.oc-workspace-main:focus-visible)>.oc-workspace-main,.oc-workspace-row:has(.oc-workspace-menu)>.oc-workspace-main{background:color-mix(in srgb,var(--ink) 5%,transparent)}.oc-workspace-row:hover>.oc-workspace-actions,.oc-workspace-row:has(.oc-workspace-main:focus-visible)>.oc-workspace-actions,.oc-workspace-row:has(.oc-workspace-menu)>.oc-workspace-actions{display:inline-flex}.oc-workspace-row:hover .oc-workspace-folder,.oc-workspace-row:has(.oc-workspace-main:focus-visible) .oc-workspace-folder{display:none}.oc-workspace-row:hover .oc-workspace-caret,.oc-workspace-row:has(.oc-workspace-main:focus-visible) .oc-workspace-caret{display:inline-flex}.oc-workspace-actions>button:hover,.oc-workspace-actions>button:focus-visible,.oc-workspace-actions>button[aria-expanded=true]{background:transparent;color:var(--ink, #26251e)}.oc-workspace-menu{position:absolute;top:32px;right:0;z-index:15;display:grid;min-width:148px;padding:4px;border:1px solid var(--hairline);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.oc-workspace-menu button{display:flex;align-items:center;gap:7px;min-height:30px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:var(--ink);font:inherit;font-size:12px;text-align:left;cursor:pointer}.oc-workspace-menu button:hover,.oc-workspace-menu button:focus-visible{background:var(--surface-muted)}.oc-workspace-menu button.is-danger{color:var(--red)}.oc-workspace-loading,.oc-workspace-empty{margin:0;padding:8px 10px;font-size:12px;color:var(--muted, #807d72)}.oc-settings-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:#28262057;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.oc-settings-dialog{width:min(800px,calc(100vw - 48px));height:min(620px,calc(100vh - 72px));min-height:420px;display:flex;flex-direction:column;overflow:hidden;border:1px solid color-mix(in srgb,var(--hairline) 84%,transparent);border-radius:16px;background:var(--surface);box-shadow:0 24px 70px #1e1c163d;color:var(--ink)}.oc-settings-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--hairline)}.oc-settings-head h2,.oc-settings-head p{margin:0}.oc-settings-head h2{font-size:17px;line-height:1.3}.oc-settings-head p{margin-top:2px;color:var(--muted);font-size:11px}.oc-settings-head>button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--hairline);border-radius:999px;background:var(--surface-muted);color:var(--muted);cursor:pointer}.oc-settings-head>button:hover{color:var(--ink)}.oc-settings-layout{display:grid;grid-template-columns:180px minmax(0,1fr);flex:1;min-height:0}.oc-settings-layout>nav{display:flex;flex-direction:column;gap:3px;padding:14px 10px;border-right:1px solid var(--hairline);background:color-mix(in srgb,var(--canvas-soft) 70%,var(--surface))}.oc-settings-layout>nav button{display:flex;align-items:center;min-height:34px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:var(--body);font:inherit;font-size:12.5px;text-align:left;cursor:pointer}.oc-settings-layout>nav button:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.oc-settings-layout>nav button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #23201814;font-weight:650}.oc-settings-content{min-width:0;overflow:auto;padding:22px 24px}.oc-settings-content>h3{margin:0 0 18px;font-size:15px}.oc-settings-version-grid{display:grid;gap:0;border-top:1px solid var(--hairline)}.oc-settings-version-grid>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:13px 2px;border-bottom:1px solid var(--hairline);font-size:12.5px}.oc-settings-version-grid span{color:var(--muted)}.oc-settings-version-grid strong{overflow-wrap:anywhere;font-weight:600}.oc-settings-list{display:grid;gap:0;margin:0;padding:0;border-top:1px solid var(--hairline);list-style:none}.oc-settings-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 2px;border-bottom:1px solid var(--hairline)}.oc-settings-list li>div{display:grid;gap:2px;min-width:0}.oc-settings-list strong{overflow:hidden;font-size:12.5px;text-overflow:ellipsis;white-space:nowrap}.oc-settings-list span{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.oc-settings-list em{flex:none;padding:2px 7px;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:10px;font-style:normal}.oc-settings-help,.oc-settings-notice{margin:0 0 12px;color:var(--muted);font-size:11.5px;line-height:1.6}.oc-settings-notice{color:var(--orange-active, var(--orange))}.oc-settings-skill-section .oc-settings-list li>div:first-child{flex:1 1 auto}.oc-settings-skill-control{display:inline-flex!important;flex:0 0 auto;min-width:max-content!important;grid-auto-flow:column;align-items:center;gap:9px!important}.oc-settings-skill-control .oc-toggle{flex:none}.oc-settings-empty{margin:0;padding:36px 16px;border:1px dashed var(--hairline);border-radius:10px;color:var(--muted);font-size:12px;text-align:center}.oc-settings-error{grid-column:1 / -1;margin:10px 0 0;color:var(--red);font-size:12px}@media(max-width:640px){.oc-settings-backdrop{padding:10px}.oc-settings-dialog{width:calc(100vw - 20px);height:calc(100vh - 20px)}.oc-settings-layout{grid-template-columns:120px minmax(0,1fr)}.oc-settings-content{padding:18px 16px}}.workspace-route-error{margin:12px;padding:12px 16px;border:1px solid var(--red, #c72d53);border-radius:var(--radius-md, 8px);background:var(--surface, #fff);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.workspace-route-error p{margin:0;font-size:13px}.oc-details-rail{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border-left:1px solid var(--hairline);background:var(--surface);opacity:1;transform:translate(0);transition:opacity .15s ease,transform .18s cubic-bezier(.32,.72,0,1)}.oc-details-rail.is-collapsed{width:0;min-width:0;border:0;pointer-events:none;align-items:center;opacity:0;transform:translate(12px)}.oc-details-rail.is-collapsed .oc-details-rail-head{flex-direction:column;padding:6px 4px}.oc-details-rail-collapsed-label{writing-mode:vertical-rl;font-size:11px;letter-spacing:.12em;color:var(--muted, #807d72);padding-top:6px;-webkit-user-select:none;user-select:none}.oc-details-rail-head{display:flex;align-items:center;justify-content:space-between;min-height:40px;gap:12px;padding:0 8px 0 12px;border-bottom:1px solid var(--hairline)}.oc-details-tabs{display:flex;align-self:stretch;align-items:stretch;gap:10px;min-width:0}.oc-details-tab{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--muted);transition:color .14s ease}.oc-details-tab-select{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;padding:1px 1px 0;border:0;background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:500;cursor:pointer}.oc-details-tab:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:2px;border-radius:2px 2px 0 0;background:currentColor;transform:scaleX(0);transform-origin:center;transition:transform .14s ease}.oc-details-tab:hover,.oc-details-tab:focus-within{color:var(--ink)}.oc-details-tab.is-active{color:var(--ink)}.oc-details-tab.is-active .oc-details-tab-select{font-weight:600}.oc-details-tab.is-active:after{transform:scaleX(1)}.oc-details-tab-select:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;border-radius:4px}.oc-details-tab-close{display:inline-grid;place-items:center;width:17px;height:22px;min-height:0;margin-left:1px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease}.oc-details-tab:hover .oc-details-tab-close,.oc-details-tab.is-active .oc-details-tab-close,.oc-details-tab:focus-within .oc-details-tab-close{opacity:1}.oc-details-tab-close:hover,.oc-details-tab-close:focus-visible{background:var(--surface-muted);color:var(--ink)}.oc-details-tab-close:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.oc-details-rail-toggle{display:inline-grid;place-items:center;width:28px;height:28px;flex-shrink:0;border:0;border-radius:6px;background:transparent;cursor:pointer;padding:0}.oc-details-rail-toggle:hover{background:var(--surface-muted);color:var(--ink)}.oc-details-rail-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;position:relative;animation:oc-details-tab-in .16s cubic-bezier(.32,.72,0,1)}@keyframes oc-details-tab-in{0%{opacity:.58;transform:translate(6px)}to{opacity:1;transform:translate(0)}}.oc-runtime-context-sidepanel.is-details-tab,.oc-process.is-details-tab{position:static;inset:auto;z-index:auto;width:100%;min-width:0;height:100%;min-height:0;flex:1 1 auto;margin:0;border:0;border-radius:0;background:var(--surface);box-shadow:none;animation:none;will-change:auto}.oc-runtime-context-sidepanel.is-details-tab .oc-runtime-context-layout{grid-template-columns:clamp(96px,28%,132px) minmax(0,1fr)}.oc-runtime-context-sidepanel.is-details-tab .oc-runtime-context-nav{padding:7px 6px}.oc-runtime-context-sidepanel.is-details-tab .oc-runtime-context-body{min-width:0;padding:12px}.oc-runtime-context-sidepanel.is-details-tab .oc-runtime-context-foot{padding:8px 12px}.oc-process.is-details-tab .oc-process-timeline{padding:10px 12px 14px}@media(prefers-reduced-motion:reduce){.oc-workspace,.oc-details-rail,.oc-details-rail-body{animation:none!important;transition:none!important}}.oc-details-rail-body:has(.oc-file-preview){display:grid;grid-template-columns:minmax(0,1fr) var(--oc-file-tree-width, 240px);grid-template-rows:minmax(0,1fr)}.oc-details-files{display:flex;flex:1 1 auto;min-height:0;flex-direction:column}.oc-details-rail-body:has(.oc-file-preview)>.oc-details-files{grid-column:2;min-width:0;border-left:1px solid var(--hairline)}.oc-details-rail-body>.oc-column-resize-handle[data-side=details-tree]{position:absolute;top:0;right:calc(var(--oc-file-tree-width, 240px) - 4px);bottom:0;left:auto;z-index:3;height:100%}.oc-details-rail-body:not(:has(.oc-file-preview))>.oc-column-resize-handle[data-side=details-tree]{display:none}.oc-details-rail-body>.oc-file-preview-backdrop{display:none}.oc-details-rail-body>.oc-file-preview{position:static;grid-column:1;width:auto;min-width:0;height:100%;border:0;border-radius:0;box-shadow:none;animation:none}.oc-details-rail-body>.oc-file-preview header{flex-wrap:wrap;align-content:center;gap:4px 6px;padding:6px 8px}.oc-details-rail-body>.oc-file-preview header>span{display:none}.oc-details-rail-body>.oc-file-preview .oc-file-tabs{flex:1 1 160px}.oc-details-rail-body>.oc-file-preview .oc-file-tab{max-width:100%}.oc-details-rail-body>.oc-file-preview .oc-file-preview-actions{margin-inline-start:auto}.oc-details-rail-body>.oc-file-preview .oc-file-view-mode{padding-inline:6px}.oc-details-rail-body>.oc-file-preview .oc-file-preview-rendered{min-width:0;padding:10px 12px}.oc-details-files>header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px;padding:4px 8px 4px 10px;border-bottom:1px solid var(--hairline)}.oc-details-workspace-name{min-width:0;flex:1 1 auto;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-details-tree-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:6px 4px 12px}.oc-details-dag{flex:1 1 auto;min-height:0;overflow:auto;padding:12px}.oc-details-dag header{display:flex;align-items:baseline;gap:8px}.oc-details-dag code{font-size:11px;color:var(--muted, #807d72)}.oc-details-dag-point{margin:6px 0 2px;font-size:12px;color:var(--ink, inherit)}.oc-details-dag-nodes{list-style:none;margin:4px 0;padding:0;display:flex;flex-direction:column;gap:2px}.oc-thread-anchor-wrap{position:relative;flex:1 1 auto;min-height:0;display:flex}.oc-thread-anchor-wrap .oc-messages{flex:1 1 auto;min-width:0}.oc-anchor-rail{position:relative;flex:0 0 auto;width:20px;margin:var(--space-2) 3px var(--space-2) 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 0}.oc-anchor-cluster{position:relative}.oc-anchor-bar{position:relative;display:block;width:16px;height:10px;padding:0;border:none;background:transparent;cursor:pointer}button.oc-anchor-bar,button.oc-anchor-bar:hover:not(:disabled),button.oc-anchor-bar:active:not(:disabled),button.oc-anchor-bar:focus-visible:not(:disabled){min-height:0;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none;transform:none;outline:none}.oc-anchor-bar:after{content:"";position:absolute;left:3px;top:50%;width:12px;height:3px;border-radius:1.5px;background:var(--muted-soft);transform:translateY(-50%);transition:background .14s ease,width .14s ease}.oc-anchor-bar:hover:after,.oc-anchor-bar:focus-visible:after{background:var(--accent);width:18px}.oc-anchor-bar.is-active:after{background:var(--accent-active)}.oc-anchor-bar.is-cluster:after{width:15px}.oc-anchor-bar.is-cluster:hover:after,.oc-anchor-bar.is-cluster:focus-visible:after{width:21px}.oc-anchor-popover{position:absolute;top:50%;left:22px;width:max-content;max-width:min(320px,56vw);transform:translateY(-50%);background:var(--surface);border:1px solid var(--hairline);border-radius:8px;box-shadow:0 4px 16px #0000001a;padding:8px 12px;z-index:40}.oc-anchor-popover-head{display:flex;justify-content:space-between;gap:var(--space-2);color:var(--muted-soft);font-size:11px;margin-bottom:4px}.oc-anchor-popover-body{font-size:12.5px;line-height:1.5;max-width:280px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.oc-anchor-popover-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.oc-details-dag-nodes li{display:flex;justify-content:space-between;gap:8px;font-size:11px;padding:1px 0}.oc-details-dag-nodes li[data-status=succeeded] .oc-details-dag-node-status,.oc-details-dag-nodes li[data-status=completed] .oc-details-dag-node-status,.oc-details-dag-nodes li[data-status=passed] .oc-details-dag-node-status{color:var(--ok, #4c7a34)}.oc-details-dag-nodes li[data-status=failed] .oc-details-dag-node-status{color:var(--danger, #b03a3a)}.oc-details-dag-node-status{color:var(--muted, #807d72)}.oc-details-dag-progress{margin:4px 0 2px;font-size:11px;color:var(--muted, #807d72)}.oc-details-dag-progressbar{height:4px;border-radius:2px;background:var(--hairline, #d8d5cc);overflow:hidden}.oc-details-dag-progressfill{height:100%;background:var(--accent, #7c6ff0)}.oc-details-dag-empty-reason{margin:4px 0 0;font-size:11px;color:var(--muted, #807d72)}.workspace-route-error-options{list-style:none;margin:8px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.oc-usage-part.is-degraded{color:var(--muted-soft, #a09c92)}@media(min-width:761px){.oc-row.is-user{display:flex;flex-direction:column;align-items:flex-end}}@media(min-width:1200px){.oc-main .oc-messages{max-width:none;width:100%;margin-inline:0}.oc-composer .oc-composer-inner,.console-shell.is-chat-focus .oc-composer .oc-composer-inner{max-width:780px;margin-inline:auto;width:100%}}@media(max-width:480px){.oc-details-rail{position:static;border-left:0;border-top:1px solid var(--hairline)}.oc-sidebar,.oc-sidebar-drawer{max-width:86vw}}@media(prefers-reduced-motion:reduce){.oc-workspace-item,.oc-workspace-remove,.oc-details-rail-toggle{transition:none}}.oc-anchor-popover-list{max-height:11em;overflow-y:auto;min-width:240px}.oc-anchor-popover-item{display:flex;gap:var(--space-2);align-items:baseline;width:100%;padding:3px 6px;border:none;border-radius:6px;background:transparent;text-align:left;font-size:12px;font-weight:400;min-height:0;cursor:pointer}button.oc-anchor-popover-item,button.oc-anchor-popover-item:hover:not(:disabled),button.oc-anchor-popover-item:active:not(:disabled){min-height:0;padding:3px 6px;border:none;background:transparent;box-shadow:none;transform:none}button.oc-anchor-popover-item:hover:not(:disabled){background:var(--orange-soft)}.oc-anchor-popover-item-time{flex:0 0 auto;color:var(--muted-soft);font-size:11px}.oc-anchor-popover-item-text{min-width:0;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-provider-error{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;margin:10px 0 12px;padding:12px 14px 12px 12px;border:1px solid color-mix(in srgb,var(--danger) 22%,var(--hairline));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--danger) 4%,var(--surface));color:var(--body)}.oc-provider-error-mark{display:grid;place-items:center;width:22px;height:22px;margin-top:1px;border-radius:7px;background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.oc-provider-error-mark svg{width:14px;height:14px}.oc-provider-error-body{min-width:0}.oc-provider-error-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;min-height:22px}.oc-provider-error-heading strong{color:var(--ink);font-size:13px;font-weight:650;line-height:1.55}.oc-provider-error-meta{color:var(--muted);font-family:var(--font-mono);font-size:11px}.oc-provider-error-body>p{margin:3px 0 0;color:var(--body);font-size:13px;line-height:1.65;overflow-wrap:anywhere}.oc-provider-error-details{margin-top:7px}.oc-provider-error-details summary{width:fit-content;cursor:pointer;color:var(--muted);font-size:12px;list-style:none;transition:color var(--transition-fast)}.oc-provider-error-details summary::-webkit-details-marker{display:none}.oc-provider-error-details summary:after{content:" ›";color:var(--muted-soft)}.oc-provider-error-details[open] summary:after{content:" ⌄"}.oc-provider-error-details summary:hover{color:var(--ink)}.oc-provider-error-details pre{max-height:220px;margin:9px 0 0;padding:10px 12px;overflow:auto;border:1px solid var(--hairline);border-radius:var(--radius-md);background:color-mix(in srgb,var(--canvas-soft) 82%,transparent);color:var(--body);font-family:var(--font-mono);font-size:11.5px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as r,b as e,a,S as s}from"./chunk-5RXB4S5H-BirhxUop.js";import{_ as i}from"./mermaid.core-DwPGvpCv.js";import"./chunk-XXDRQBXY-WTL7IZOq.js";import"./chunk-KBJHAD2P-UNLVwSsy.js";import"./chunk-2GRJ4B5K-shmQKsFz.js";import"./index-DqJbO3-p.js";var u={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{c as r,s as e}from"./flowDiagram-UKHOOZJN-CUFCERrB.js";import{_ as a}from"./mermaid.core-DwPGvpCv.js";import"./chunk-5VM5RSS4-C9LgUJpR.js";import"./chunk-XXDRQBXY-WTL7IZOq.js";import"./chunk-KBJHAD2P-UNLVwSsy.js";import"./chunk-2GRJ4B5K-shmQKsFz.js";import"./channel-amxUpk7o.js";import"./index-DqJbO3-p.js";var o=a(t=>`${e(t)}
|
|
2
|
-
.swimlane.cluster rect {
|
|
3
|
-
stroke: ${t.clusterBorder} !important;
|
|
4
|
-
}
|
|
5
|
-
[data-look="neo"].cluster rect {
|
|
6
|
-
filter: none;
|
|
7
|
-
}
|
|
8
|
-
`,"getStyles"),s=o,n=r({defaultLayout:"swimlane",styles:s});export{n as diagram};
|