@xfey/tutti 0.1.28 → 0.1.29

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.
@@ -6,7 +6,7 @@ import type { ProviderUsageBreakdownProjectionSchema, ProviderUsageCategorySchem
6
6
  import type { ProjectTimelineItemKindSchema, ProjectTimelineItemSchema, ProjectTimelineItemStatusSchema, ProjectTimelineResponseSchema, ProjectTimelineTaskUpdateStateSchema, ProjectTimelineClarificationTraceSchema, ProjectTimelineTraceCardSchema, ProjectTimelineTraceLinkSchema } from "./project-timeline.js";
7
7
  import type { PresignedUploadPutSchema, RelayUploadProjectionSchema, RelayUploadPurposeSchema, Sha256DigestSchema, StagedUploadReferenceSchema, StartRelayUploadDispositionSchema, StartRelayUploadPayloadSchema, StartRelayUploadResultSchema } from "./uploads.js";
8
8
  import type { MarkReadDispositionSchema, MarkReadPayloadSchema, MarkReadResultSchema, ReadStateScopeProjectionSchema, ReadStateScopeSchema, ReadStateSummaryProjectionSchema } from "./read-state.js";
9
- import type { GetMessagesRequestSchema, MessageCreatedEventPayloadSchema, MessageProjectionSchema, MessageReferenceFileRefSchema, ReferenceFileCategorySchema, SendMainChatMessageCreatedDispositionSchema, SendMainChatMessageDispositionSchema, SendMainChatMessagePayloadSchema, SendMainChatMessageResultSchema, ArtifactPreviewRefSchema, WorklistCompileRefSchema, WorklistFeedbackGeneratedFileSchema, WorklistFeedbackItemSchema, WorklistFeedbackRefSchema } from "./messages.js";
9
+ import type { GetMessagesRequestSchema, MessageCreatedEventPayloadSchema, MessageProjectionSchema, MessageReferenceFileRefSchema, ReferenceFileCategorySchema, SendMainChatMessageCreatedDispositionSchema, SendMainChatMessageDispositionSchema, SendMainChatMessagePayloadSchema, SendMainChatMessageResultSchema, ArtifactPreviewRefSchema, TaskResultRefSchema, WorklistCompileRefSchema, WorklistFeedbackGeneratedFileSchema, WorklistFeedbackItemSchema, WorklistFeedbackRefSchema } from "./messages.js";
10
10
  import type { CheckSkipReasonCodeSchema, ExternalSideEffectSummaryProjectionSchema, GetRecoverySummariesRequestSchema, GetRecoverySummaryResponseSchema, RecoverySummaryProjectionSchema, RunResultProjectionSchema, ScratchpadProjectionSchema, ScratchpadReceiptProjectionSchema, TaskContractProjectionSchema, TaskDetailProjectionSchema, TaskDetailResultProjectionSchema, TaskModuleProjectionSchema, TaskProjectionSchema, TaskStatusSchema, WorklistCompiledTaskSummarySchema, WorklistProjectionSchema } from "./work-items.js";
11
11
  import type { ActiveApprovalProjectionSchema, ApprovalCommandProjectionSchema, ApprovalDecisionKindSchema, ApprovalDecisionOptionProjectionSchema, ApprovalFileChangeProjectionSchema, ApprovalPermissionsProjectionSchema, ApprovalRequestKindSchema, ApprovalRequestProjectionSchema, ApprovalResolutionOutcomeSchema, ApprovalResolutionProjectionSchema, DecideApprovalDispositionSchema, DecideApprovalPayloadSchema, DecideApprovalResultSchema } from "./approvals.js";
12
12
  import type { ActiveClarificationProjectionSchema, ClarificationChangedEventPayloadSchema, ClarificationOwnerProjectionSchema, ClarificationRequestPayloadSchema, ClarificationRoundProjectionSchema, ClarificationRoundSummaryProjectionSchema, ClarificationSuccessorRefSchema, ClarificationThreadProjectionSchema, ContextRefSchema, GetClarificationRoundMessagesRequestSchema, GetClarificationRoundResponseSchema, GetClarificationThreadResponseSchema, HumanInteractionPayloadSchema, HumanRequestPayloadSchema, SendClarificationRoundMessageDispositionSchema, SendClarificationRoundMessagePayloadSchema, SendClarificationRoundMessageResultSchema, SubmitClarificationRoundDispositionSchema, SubmitClarificationRoundPayloadSchema, SubmitClarificationRoundResultSchema } from "./clarifications.js";
@@ -104,6 +104,7 @@ export type MessageReferenceFileRef = Static<typeof MessageReferenceFileRefSchem
104
104
  export type WorklistCompiledTaskSummary = Static<typeof WorklistCompiledTaskSummarySchema>;
105
105
  export type WorklistCompileRef = Static<typeof WorklistCompileRefSchema>;
106
106
  export type ArtifactPreviewRef = Static<typeof ArtifactPreviewRefSchema>;
107
+ export type TaskResultRef = Static<typeof TaskResultRefSchema>;
107
108
  export type WorklistFeedbackItem = Static<typeof WorklistFeedbackItemSchema>;
108
109
  export type WorklistFeedbackGeneratedFile = Static<typeof WorklistFeedbackGeneratedFileSchema>;
109
110
  export type WorklistFeedbackRef = Static<typeof WorklistFeedbackRefSchema>;
@@ -467,6 +467,27 @@ export declare const UploadReferenceFileResultSchema: import("@sinclair/typebox"
467
467
  }>>>;
468
468
  primary_task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
469
469
  }>>;
470
+ task_result: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
471
+ kind: import("@sinclair/typebox").TLiteral<"task_result">;
472
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"failed">]>;
473
+ title: import("@sinclair/typebox").TString;
474
+ task_id: import("@sinclair/typebox").TString;
475
+ task_title: import("@sinclair/typebox").TString;
476
+ result_key: import("@sinclair/typebox").TString;
477
+ summary: import("@sinclair/typebox").TString;
478
+ module_name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
479
+ latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
480
+ activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
481
+ final_note: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
482
+ generated_files: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
483
+ path: import("@sinclair/typebox").TString;
484
+ name: import("@sinclair/typebox").TString;
485
+ group: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
486
+ size_bytes: import("@sinclair/typebox").TInteger;
487
+ media_type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
488
+ }>>>;
489
+ error_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
490
+ }>>;
470
491
  artifact_preview: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
471
492
  kind: import("@sinclair/typebox").TLiteral<"artifact_preview">;
472
493
  title: import("@sinclair/typebox").TString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xfey/tutti",
3
- "version": "0.1.28",
3
+ "version": "0.1.29",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -127,7 +127,7 @@ launch / join
127
127
  -> 可自纠 pipeline feedback 时在当前 Run 内部 retry
128
128
  -> promotion
129
129
  -> 如果 canonical Project Docs 被 promotion 修改,Project Brief 非阻塞尽力刷新
130
- -> Worklist terminal feedback
130
+ -> task result feedback
131
131
  -> 当前 Worklist 全部 done 后阶段性 context_sync
132
132
  -> Project Brief 尽力刷新
133
133
  -> 回写状态 / 文档 / 下一轮讨论
@@ -10,7 +10,7 @@ Templates in this directory may describe task contracts, repo evidence, check ex
10
10
  `task-run.md` allows `needs_human` only for human requirement decisions, non-secret context, or risk confirmation. Unusable candidates, ordinary missing diffs, or repo/tooling errors that prevent implementation should be returned as `failed` so the Run does not open task-bound clarification incorrectly. If the task contract does not require repository file changes, the output can use `completed_no_repo_changes`; otherwise a completed implementation is expected to produce a candidate diff. If the candidate is complete but Codex self-validation commands are unavailable or blocked, the task-run output should still be `completed`; Tutti checks are the authoritative validation gate.
11
11
  Initial `task-run.md`, active `task-continuation.md`, and active pipeline `task-retry.md` receive only the compact task contract fields `title / goal / scope`; continuation adds the required `continuation` block, and pipeline self-correction retry adds the required `correction` block with only the previous failure summary, machine-generated reason code, correction guidance, and optional promotion failure summary. Provider-facing prompts do not receive task ids, task summaries, Run lineage, workflow anchors, changed paths, docs status, checks status, or the safety audit context entry.
12
12
  All three Run templates use a slim mutually exclusive structured output schema under `result`: exactly one of `completed.{summary,user_note_candidate}`, `completed_no_repo_changes.{summary,user_note_candidate}`, `needs_human.{title,summary,request}`, or `failed.summary`. The `summary` is a concise, human-readable result note for project members who may not inspect the code. Completed branches also require `user_note_candidate`, which is either a short user-facing final-card sentence or `null`; it must not repeat `summary` or include file paths. Checks, docs, promotion, changed paths, and other Tutti status stay in structured fields derived by the Run pipeline. They do not ask Codex to self-report docs status or changed paths; both come from Run pipeline Git diff and derived projection.
13
- Run templates describe `docs/reference/` as a user-visible file exchange area. Human uploads remain under `docs/reference/files/` and `docs/reference/images/`; `docs/reference/tutti/**` is for Tutti-generated files intended for direct member review in References, not temporary output, internal notes, logs, or canonical project documentation. Generated user-visible files must be written under `docs/reference/tutti/`, with `docs/reference/tutti/<meaningful-folder>/...` used when the folder name should be shown as a References UI group. Generated files under `docs/reference/tutti/` are discovered from promoted changed paths, rendered by References automatically, and may be listed in Worklist terminal feedback.
13
+ Run templates describe `docs/reference/` as a user-visible file exchange area. Human uploads remain under `docs/reference/files/` and `docs/reference/images/`; `docs/reference/tutti/**` is for Tutti-generated files intended for direct member review in References, not temporary output, internal notes, logs, or canonical project documentation. Generated user-visible files must be written under `docs/reference/tutti/`, with `docs/reference/tutti/<meaningful-folder>/...` used when the folder name should be shown as a References UI group. Generated files under `docs/reference/tutti/` are discovered from promoted changed paths, rendered by References automatically, and may be listed in completed task result cards.
14
14
  Initial `task-run.md`, active `task-continuation.md`, and active pipeline `task-retry.md` also instruct Codex to write or update the single active `tutti.artifact.json` manifest only when the task creates or updates a member-viewable visual artifact. The manifest schema requires top-level `version: 1`; it must include a viewer-facing `artifact.title` and must set `artifact.network: true` when the preview loads remote browser resources. The manifest remains repo truth and is not reported through the structured output schema.
15
15
  Active task-bound follow-up still only starts continuation Runs from `Run.needs_human`. Pipeline self-correction retry happens before a terminal Run result is recorded and does not open clarification.
16
16
  Provider transient retry is separate from self-correction. If a retryable Codex app-server workspace-write failure occurs before usable structured output, Run pipeline may rerun the same prompt family once in a fresh run workspace: initial Runs stay on `task-run.md`, continuation Runs stay on `task-continuation.md`, and self-correction attempts stay on `task-retry.md`. This retry does not add `RunCorrectionContext` unless the failed attempt was already a self-correction attempt.
@@ -64,7 +64,7 @@ Human-uploaded reference material is kept in the repository under `docs/referenc
64
64
  - Use `docs/reference/tutti/**` for reviewable deliverables such as reports, notes, specs, exports, or similar generated files.
65
65
  - Do not use `docs/reference/tutti/**` for temporary output, internal notes, logs, or canonical project documentation.
66
66
 
67
- When this task explicitly produces such a file deliverable, write it under `docs/reference/tutti/`. Use `docs/reference/tutti/<meaningful-folder>/...` when a folder name helps explain the output group; that folder name is shown directly in the References UI and promoted files may be listed in Worklist terminal feedback. Do not create ad hoc folders at the `docs/reference/` root. Files under `docs/reference/tutti/` are displayed automatically, so `user_note_candidate` may mention generated file names but should not include paths.
67
+ When this task explicitly produces such a file deliverable, write it under `docs/reference/tutti/`. Use `docs/reference/tutti/<meaningful-folder>/...` when a folder name helps explain the output group; that folder name is shown directly in the References UI and promoted files may be listed in completed task result cards. Do not create ad hoc folders at the `docs/reference/` root. Files under `docs/reference/tutti/` are displayed automatically, so `user_note_candidate` may mention generated file names but should not include paths.
68
68
 
69
69
  # Documentation
70
70
 
@@ -69,7 +69,7 @@ Human-uploaded reference material is kept in the repository under `docs/referenc
69
69
  - Use `docs/reference/tutti/**` for reviewable deliverables such as reports, notes, specs, exports, or similar generated files.
70
70
  - Do not use `docs/reference/tutti/**` for temporary output, internal notes, logs, or canonical project documentation.
71
71
 
72
- When this task explicitly produces such a file deliverable, write it under `docs/reference/tutti/`. Use `docs/reference/tutti/<meaningful-folder>/...` when a folder name helps explain the output group; that folder name is shown directly in the References UI and promoted files may be listed in Worklist terminal feedback. Do not create ad hoc folders at the `docs/reference/` root. Files under `docs/reference/tutti/` are displayed automatically, so `user_note_candidate` may mention generated file names but should not include paths.
72
+ When this task explicitly produces such a file deliverable, write it under `docs/reference/tutti/`. Use `docs/reference/tutti/<meaningful-folder>/...` when a folder name helps explain the output group; that folder name is shown directly in the References UI and promoted files may be listed in completed task result cards. Do not create ad hoc folders at the `docs/reference/` root. Files under `docs/reference/tutti/` are displayed automatically, so `user_note_candidate` may mention generated file names but should not include paths.
73
73
 
74
74
  # Documentation
75
75
 
@@ -51,7 +51,7 @@ Human-uploaded reference material is kept in the repository under `docs/referenc
51
51
  - Use `docs/reference/tutti/**` for reviewable deliverables such as reports, notes, specs, exports, or similar generated files.
52
52
  - Do not use `docs/reference/tutti/**` for temporary output, internal notes, logs, or canonical project documentation.
53
53
 
54
- When this task explicitly produces such a file deliverable, write it under `docs/reference/tutti/`. Use `docs/reference/tutti/<meaningful-folder>/...` when a folder name helps explain the output group; that folder name is shown directly in the References UI and promoted files may be listed in Worklist terminal feedback. Do not create ad hoc folders at the `docs/reference/` root. Files under `docs/reference/tutti/` are displayed automatically, so `user_note_candidate` may mention generated file names but should not include paths.
54
+ When this task explicitly produces such a file deliverable, write it under `docs/reference/tutti/`. Use `docs/reference/tutti/<meaningful-folder>/...` when a folder name helps explain the output group; that folder name is shown directly in the References UI and promoted files may be listed in completed task result cards. Do not create ad hoc folders at the `docs/reference/` root. Files under `docs/reference/tutti/` are displayed automatically, so `user_note_candidate` may mention generated file names but should not include paths.
55
55
 
56
56
  # Documentation
57
57
 
@@ -0,0 +1 @@
1
+ :root{--font-body:"Manrope", system-ui, sans-serif;--font-heading:"Newsreader", Georgia, serif;--font-label:"Manrope", system-ui, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--color-page:#f2f4f5;--color-app-bar:#eef0ea;--color-app-bar-translucent:#eef0eae6;--color-surface:#fff;--color-surface-subtle:#f8f9fa;--color-surface-muted:#f3f5f4;--color-surface-hover:#f8faf9;--color-surface-tint:#edf1ee;--color-surface-paper:#fbfbf8;--color-ink:#0f1a13;--color-text:#142018;--color-body:#344238;--color-muted:#66736a;--color-nav-muted:#758079;--color-placeholder:#66736a94;--color-line:#0d18111a;--color-line-soft:#0d181117;--color-line-strong:#0d18112e;--color-brand-logo:#202320;--color-brand-dark:#0e1f12;--color-action:#00ce8c;--color-action-hover:var(--color-action);--color-action-text:var(--color-brand-dark);--color-action-wash:#d5f5e15c;--color-action-strong:#08795f;--color-sync:#325f78;--color-sync-soft:#e0f1ff;--color-warning:#b56f1a;--color-warning-soft:#fff3d0;--color-error-strong:#9b3434;--color-error-soft:#ffe4e4;--color-icon-accent:var(--color-action);--color-tooltip:#101814;--color-sidebar-active:var(--color-surface-subtle);--color-shell-border:#23211c24;--color-panel-border:#0d18111c;--color-state-border:#0d18111f;--content-max:1360px;--workspace-content-max:1440px;--sidebar-width:82px;--page-padding-x:28px;--page-padding-y:34px;--workspace-pad:18px;--gap-md:14px;--size-logo-appbar:clamp(74px, 6.4vw, 90px);--size-logo-rail:42px;--font-size-workspace-title:clamp(1.55rem, 2vw, 1.82rem);--font-size-panel-title:1.06rem;--radius-app:18px;--radius-panel:14px;--radius-item:12px;--radius-control:10px;--radius-chat-item:8px;--radius-logo:12px;--radius-pill:999px;--selection-rail-width:3px;--selection-rail-inset:14px;--selection-rail-short-height:30px;--shadow-app:0 20px 70px #11182714;--shadow-panel:0 8px 24px #1118270b;--shadow-ring:0 0 0 1px #0d181114;--shadow-tooltip:0 8px 18px #11182729;--ring-action:3px solid #00d39733;--ring-sync:3px solid #325f782e;--scrollbar-size:10px;--scrollbar-thumb:#34423857;--scrollbar-thumb-hover:#34423880;color:var(--color-text);font-family:var(--font-body);font-synthesis:none}*{box-sizing:border-box;scrollbar-color:transparent transparent;scrollbar-width:thin}:where(html,body,.is-scrollbar-active,.sidebar,.chat-stream,.message-markdown pre,.round-composer .mention-input-editor,.composer .mention-input-editor,.mention-menu,.scratchpad-panel-body,.scratchpad-content,.execution-progress-list,.settings-workspace-grid,.task-list,.task-detail-card,.reference-list,.reference-image-strip,.reference-detail-card,.reference-content){scrollbar-gutter:stable}html{scroll-behavior:smooth}html.is-scrollbar-active,.is-scrollbar-active{scrollbar-color:var(--scrollbar-thumb) transparent}::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background-color:#0000;background-clip:padding-box;border:3px solid #0000;transition:background-color .18s}html.is-scrollbar-active::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}.is-scrollbar-active::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}html.is-scrollbar-active::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.is-scrollbar-active::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}body{min-width:320px;min-height:100vh;color:var(--color-text);background:var(--color-app-bar);font-family:var(--font-body);margin:0}button,input,textarea{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}.brand-logo{width:var(--brand-logo-width,var(--size-logo-appbar));aspect-ratio:1204/512;flex:none;line-height:0;display:inline-block;overflow:hidden}.brand-logo img{aspect-ratio:1204/512;object-fit:contain;width:100%;height:auto;filter:drop-shadow(var(--brand-logo-width,var(--size-logo-appbar)) 0 0 var(--color-brand-logo));display:block;transform:translate(-100%)}.empty-state{width:100%;min-width:0;min-height:160px;color:color-mix(in srgb, var(--color-muted) 74%, var(--color-surface));text-align:center;align-content:center;justify-items:center;gap:12px;padding:24px 18px;display:grid}.empty-state-watermark{min-width:0;color:var(--color-brand-logo);opacity:.1;pointer-events:none;place-items:center;display:grid}.empty-state-brand-logo{--brand-logo-width:clamp(88px, 10vw, 118px)}.empty-state-icon{color:currentColor;place-items:center;display:grid}.empty-state-icon svg,.empty-state>svg{width:24px;height:24px}.empty-state p{color:currentColor;overflow-wrap:anywhere;max-width:36ch;font-size:.93rem;font-weight:400;line-height:1.52}.empty-state.is-warning{color:var(--color-warning)}.empty-state.is-error{color:var(--color-error-strong)}.loading-lines{gap:10px;padding:18px;display:grid}.loading-lines span{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--color-surface-muted), var(--color-surface-tint));height:12px;display:block}.loading-lines span:nth-child(2){width:82%}.loading-lines span:nth-child(3){width:64%}.notice-stack{top:max(18px, env(safe-area-inset-top));right:max(18px, env(safe-area-inset-right));z-index:80;pointer-events:none;gap:10px;width:min(360px,100vw - 32px);display:grid;position:fixed}.notice-toast{--notice-accent:var(--color-sync);min-width:0;color:var(--color-text);pointer-events:auto;background:color-mix(in srgb, var(--color-surface) 96%, transparent);border:0;border-left:3px solid var(--notice-accent);border-radius:0;grid-template-columns:22px minmax(0,1fr) 28px;align-items:start;gap:10px;padding:12px 10px 12px 12px;animation:.18s ease-out tutti-notice-enter;display:grid;position:relative;overflow:hidden;box-shadow:0 12px 34px #11182721}.notice-toast:after{content:"";background:var(--notice-accent);opacity:.58;transform-origin:0;height:2px;animation:tutti-notice-timeout var(--notice-duration-ms,4s) linear forwards;position:absolute;bottom:0;left:0;right:0}.notice-toast.is-persistent:after{display:none}.notice-toast.is-loading,.notice-toast.is-success{--notice-accent:var(--color-action-strong)}.notice-toast.is-error{--notice-accent:var(--color-error-strong)}.notice-toast.is-warning{--notice-accent:var(--color-warning)}.notice-toast.is-info{--notice-accent:var(--color-sync)}.notice-toast-icon{width:22px;height:22px;color:var(--notice-accent);place-items:center;display:grid}.notice-toast-icon svg{stroke-width:2.1px;width:18px;height:18px}.notice-toast-main{gap:3px;min-width:0;display:grid}.notice-toast-main strong{color:var(--color-ink);overflow-wrap:anywhere;font-size:.82rem;font-weight:800;line-height:1.24}.notice-toast-main span{color:var(--color-muted);overflow-wrap:anywhere;font-size:.76rem;font-weight:650;line-height:1.36}.notice-toast-close{width:28px;height:28px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:0;place-items:center;padding:0;display:grid}.notice-toast-close:hover,.notice-toast-close:focus-visible{color:var(--color-text);background:var(--color-surface-hover);outline:none}.notice-toast-close:focus-visible{outline:var(--ring-action);outline-offset:2px}.notice-toast-close svg{width:15px;height:15px}@keyframes tutti-notice-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tutti-notice-timeout{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.notice-toast,.notice-toast:after{animation:none}}.workspace-logo{width:var(--size-logo-rail);background:0 0;border:0;justify-content:center;align-items:center;min-height:28px;display:flex}.workspace-logo .brand-logo{--brand-logo-width:var(--size-logo-rail)}.sidebar{width:var(--sidebar-width);min-height:360px;color:var(--color-brand-dark);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);flex-direction:column;align-items:center;gap:12px;padding:16px 11px;display:flex}.sidebar-nav,.sidebar-status-group,.sidebar-footer{flex-direction:column;gap:8px;width:100%;display:flex}.sidebar-footer{margin-top:auto}.sidebar-status-group{align-items:center;gap:7px;margin-bottom:4px}.sidebar-button,.sidebar-status-entry{border:0;place-items:center;display:grid;position:relative}.sidebar-button{width:100%;height:42px;color:var(--color-nav-muted);cursor:pointer;border-radius:var(--radius-control);background:0 0;padding:0;transition:background .16s,color .16s,transform .16s}.sidebar-button:after,.sidebar-status-entry:after{z-index:5;color:var(--color-surface);white-space:nowrap;pointer-events:none;content:attr(data-label);background:var(--color-tooltip);box-shadow:var(--shadow-tooltip);opacity:0;border-radius:7px;padding:6px 8px;font-size:.72rem;font-weight:800;line-height:1;transition:opacity .14s,transform .14s;position:absolute;top:50%;left:calc(100% + 10px);transform:translate(-4px,-50%)}.sidebar-button:hover:after,.sidebar-button:focus-visible:after,.sidebar-status-entry:hover:after,.sidebar-status-entry:focus-visible:after{opacity:1;transform:translateY(-50%)}.sidebar-button svg,.sidebar-status-entry svg{stroke-width:2.2px;width:19px;height:19px}.sidebar-button-badge{box-sizing:border-box;pointer-events:none;background:var(--color-action);border-radius:var(--radius-pill);width:11px;height:11px;position:absolute;top:5px;right:8px}.sidebar-button-badge.is-pill{color:#fff;letter-spacing:0;text-align:center;text-transform:uppercase;width:auto;min-width:28px;height:16px;padding:0 5px;font-size:.55rem;font-weight:900;line-height:16px;top:3px;right:2px}.sidebar-button-callout{z-index:8;min-height:28px;color:var(--color-action-strong);white-space:nowrap;pointer-events:none;background:var(--color-surface);border:1px solid color-mix(in srgb, var(--color-action-strong) 18%, var(--color-line));border-radius:var(--radius-pill);box-shadow:var(--shadow-tooltip);align-items:center;padding:0 10px 0 12px;font-size:.74rem;font-weight:900;line-height:1;animation:3.6s both sidebar-callout-live;display:inline-flex;position:absolute;top:50%;left:calc(100% + 8px);transform:translate(-7px,-50%)}.sidebar-button-callout:before{content:"";background:var(--color-action);border-radius:var(--radius-pill);width:6px;height:6px;margin-right:7px}@keyframes sidebar-callout-live{0%{opacity:0;transform:translate(-7px,-50%)}12%,82%{opacity:1;transform:translateY(-50%)}to{opacity:0;transform:translate(-4px,-50%)}}.sidebar-button:hover,.sidebar-button.is-active{color:var(--color-brand-dark);background:var(--color-sidebar-active);outline:none}.sidebar-button:focus-visible{color:var(--color-brand-dark);background:var(--color-sidebar-active);outline:var(--ring-action);outline-offset:2px}.sidebar-status-entry{--status-entry-size:36px;--status-entry-bg:var(--color-surface-tint);--status-entry-fg:var(--color-muted);--status-icon-offset-x:0px;--status-icon-offset-y:0px;width:var(--status-entry-size);height:var(--status-entry-size);color:var(--status-entry-fg);cursor:pointer;background:var(--status-entry-bg);border:1px solid #0000;border-radius:50%;padding:0}.sidebar-status-entry:hover,.sidebar-status-entry:focus-visible{filter:saturate(1.04);outline:none;transform:translateY(-1px)}.sidebar-status-entry:focus-visible{outline-offset:2px;outline:3px solid #0d18111f}.sidebar-status-entry svg{stroke-width:2.25px;pointer-events:none;width:19px;height:19px;transform:translate(calc(-50% + var(--status-icon-offset-x)), calc(-50% + var(--status-icon-offset-y)));position:absolute;top:50%;left:50%}.sidebar-status-entry.is-running{--status-entry-bg:var(--color-sync-soft);--status-entry-fg:var(--color-sync)}.sidebar-status-entry.is-running svg{transform:translate(calc(-50% + var(--status-icon-offset-x)), calc(-50% + var(--status-icon-offset-y))) rotate(0deg);transform-box:fill-box;transform-origin:50%;animation:.9s linear infinite tutti-sidebar-status-spin}@keyframes tutti-sidebar-status-spin{to{transform:translate(calc(-50% + var(--status-icon-offset-x)), calc(-50% + var(--status-icon-offset-y))) rotate(360deg)}}.sidebar-status-entry.is-pending,.sidebar-status-entry.is-human{--status-entry-bg:var(--color-warning-soft);--status-entry-fg:var(--color-warning);--status-icon-offset-x:-1px}.sidebar-status-entry.is-failed,.sidebar-status-entry.is-error{--status-entry-bg:var(--color-error-soft);--status-entry-fg:var(--color-error-strong)}.sidebar-status-entry.is-done,.sidebar-status-entry.is-complete{--status-entry-bg:var(--color-action-wash);--status-entry-fg:var(--color-action-strong)}.sidebar-status-entry.is-done{animation:.52s ease-out tutti-status-complete-pop}@keyframes tutti-status-complete-pop{0%{transform:scale(.82)}58%{transform:scale(1.1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.sidebar-status-entry.is-done{animation:none}}.project-header{background:linear-gradient(90deg, var(--color-surface) 0%, var(--color-surface-paper) 100%);border:1px solid var(--color-line);border-radius:var(--radius-panel);justify-content:space-between;align-items:center;gap:22px;padding:18px 22px 16px;display:flex}.project-title{gap:6px;min-width:0;display:grid}.project-line{color:var(--color-muted);align-items:center;gap:8px;font-size:.8rem;font-weight:800;display:inline-flex}.status-dot{background:var(--color-action);border-radius:50%;width:9px;height:9px}.project-header h1,.project-header h2{overflow-wrap:anywhere;color:var(--color-ink);font-family:var(--font-heading);font-size:var(--font-size-workspace-title);line-height:1}.project-scope,.project-actions,.panel-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-actions{justify-content:flex-end}.scope-chip,.task-tag{min-height:22px;color:var(--tag-fg,var(--color-muted));white-space:nowrap;background:var(--tag-bg,var(--color-surface-tint));border-radius:var(--radius-pill);border:0;align-items:center;margin-top:0;padding:0 8px;font-size:.7rem;font-weight:800;display:inline-flex}.scope-chip.is-live,.scope-chip.is-success,.task-tag.is-live,.task-tag.is-success,.task-tag.is-done{--tag-bg:var(--color-action-wash);--tag-fg:var(--color-action-strong)}.scope-chip.is-sync,.task-tag.is-sync,.task-tag.is-running{--tag-bg:var(--color-sync-soft);--tag-fg:var(--color-sync)}.scope-chip.is-warning,.task-tag.is-warning,.task-tag.is-pending{--tag-bg:var(--color-warning-soft);--tag-fg:var(--color-warning)}.scope-chip.is-error,.task-tag.is-error,.task-tag.is-failed{--tag-bg:var(--color-error-soft);--tag-fg:var(--color-error-strong)}.scope-chip.is-muted,.task-tag.is-muted,.scope-chip.is-neutral,.task-tag.is-neutral,.task-tag.is-todo{--tag-bg:var(--color-surface-tint);--tag-fg:var(--color-muted)}.quiet-button,.action-button,.pill-action{cursor:pointer;border-radius:var(--radius-control);justify-content:center;align-items:center;gap:8px;min-height:36px;font-weight:800;display:inline-flex}.quiet-button,.pill-action{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-line-strong);padding:0 12px;font-size:.84rem;transition:background .16s,border-color .16s,transform .16s}.action-button{color:var(--color-action-text);background:var(--color-action);box-shadow:none;border:0;padding:0 14px;font-size:.88rem;transition:background .16s,box-shadow .16s,transform .16s}.quiet-button:hover,.quiet-button:focus-visible,.pill-action:hover,.pill-action:focus-visible{background:var(--color-surface-hover);border-color:var(--color-state-border);outline:none;transform:translateY(-1px)}.quiet-button:focus-visible,.pill-action:focus-visible{outline:var(--ring-sync);outline-offset:2px}.action-button:hover,.action-button:focus-visible{background:var(--color-action-hover);transform:translateY(-1px)}.action-button:focus-visible{outline:var(--ring-action);outline-offset:2px}.action-button:disabled,.quiet-button:disabled,.pill-action:disabled,.icon-button:disabled,.action-button.is-disabled,.quiet-button.is-disabled,.pill-action.is-disabled{cursor:not-allowed;opacity:.48;transform:none}.quiet-button svg,.action-button svg,.pill-action svg{width:17px;height:17px}.action-button svg.is-spinning,.pill-action svg.is-spinning,.icon-button svg.is-spinning{animation:.9s linear infinite tutti-sidebar-status-spin}.icon-button{width:36px;padding:0}.avatar-stack{align-items:center;display:flex}.avatar{width:34px;height:34px;color:var(--avatar-fg,var(--color-muted));background:var(--avatar-bg,var(--color-surface-muted));border:1px solid var(--color-line);border-radius:var(--radius-chat-item);place-items:center;margin-left:0;font-size:.72rem;font-weight:800;display:grid;position:relative}.avatar svg{stroke-width:2px;width:17px;height:17px}.avatar-image{object-fit:cover;border-radius:inherit;width:100%;height:100%}.avatar-initials{color:var(--avatar-fg,var(--color-muted));font-family:var(--font-label);font-size:.68rem;font-weight:900;line-height:1}.avatar-stack .avatar{margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}.chat-stream .avatar.is-online{z-index:2}.chat-stream .avatar.is-online:after{content:"";background:var(--color-action);border:2px solid var(--color-surface);border-radius:999px;width:8px;height:8px;position:absolute;bottom:-1px;right:-1px}.avatar.is-count{--avatar-bg:var(--color-surface-tint);--avatar-fg:var(--color-muted);font-family:var(--font-label);font-size:.68rem}.avatar-tone-green{--avatar-bg:var(--color-action-wash);--avatar-fg:var(--color-action-strong)}.avatar-tone-blue{--avatar-bg:var(--color-sync-soft);--avatar-fg:var(--color-sync)}.avatar-tone-yellow{--avatar-bg:var(--color-warning-soft);--avatar-fg:var(--color-warning)}.avatar-tone-neutral{--avatar-bg:var(--color-surface-muted);--avatar-fg:var(--color-muted)}.avatar.is-system{--avatar-bg:var(--color-action-wash);--avatar-fg:var(--color-action-strong)}.avatar-tone-plain{--avatar-bg:transparent;--avatar-fg:var(--color-muted)}.panel{background:var(--color-surface);border:1px solid var(--color-panel-border);border-radius:var(--radius-panel);min-width:0;box-shadow:var(--shadow-ring), var(--shadow-panel);overflow:hidden}.panel-header{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-line-soft);justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:15px 16px;display:flex}.panel-title{align-items:center;gap:10px;min-width:0;display:flex}.panel-title-copy{gap:4px;min-width:0;display:grid}.panel-subtitle{min-width:0;color:var(--color-muted);font-family:var(--font-body);font-size:.76rem;font-weight:700;line-height:1.18}.field-label{color:var(--color-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.7rem;font-weight:800}.icon-tile{width:34px;height:34px;color:var(--color-icon-accent);background:var(--color-surface-muted);border-radius:var(--radius-control);place-items:center;display:grid}.icon-tile svg{width:18px;height:18px}.panel h3,.settings-sheet-head .panel-title h3{color:var(--color-ink);font-family:var(--font-heading);font-size:var(--font-size-panel-title);white-space:nowrap;line-height:1}.inline-editable-text{min-width:0;max-width:100%;display:block}.inline-editable-text-button{min-width:0;max-width:100%;color:inherit;font:inherit;line-height:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;display:block;overflow:hidden}.inline-editable-text-button:hover,.inline-editable-text-button:focus-visible{color:var(--color-action-strong);text-decoration:underline;-webkit-text-decoration-color:var(--color-line-strong);text-decoration-color:var(--color-line-strong);text-underline-offset:3px}.inline-editable-text-button:focus-visible{outline:none}.inline-editable-text.is-disabled .inline-editable-text-button{cursor:default}.inline-editable-text.is-disabled .inline-editable-text-button:hover,.inline-editable-text.is-disabled .inline-editable-text-button:focus-visible{color:inherit;text-decoration:none}.inline-editable-text.is-empty .inline-editable-text-button{color:var(--color-placeholder)}.inline-editable-text-input{border:1px solid var(--color-line-strong);background:var(--color-surface);width:100%;min-width:0;min-height:30px;color:var(--color-ink);font:inherit;line-height:inherit;border-radius:8px;padding:0 8px}.inline-editable-text-input:focus{border-color:var(--color-action-strong);outline:none}.mini-meta{color:var(--color-muted);font-family:var(--font-mono);font-size:.74rem;font-weight:700}.chat-panel{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.chat-stream{--message-avatar-size:34px;align-content:start;gap:6px;min-height:0;padding:16px 18px;display:grid;position:relative;overflow:auto}.chat-stream:before{content:"";display:none}.chat-stream:has(>.empty-state:only-child){align-content:stretch}.chat-stream>.empty-state{align-self:stretch;min-height:100%}.message{z-index:1;grid-template-columns:var(--message-avatar-size) minmax(0, 1fr);border-top:0;align-items:start;gap:4px 12px;min-width:0;padding:10px 0 12px;display:grid;position:relative}.message:first-child{border-top:0}.message:focus{outline:none}.message.is-focused{background:var(--color-action-wash);border-radius:10px;padding-left:10px;padding-right:12px}.message.is-focused:before{background:var(--color-action);content:"";border-radius:999px;width:3px;position:absolute;top:10px;bottom:12px;left:0}.message-byline{display:contents}.message-byline>.avatar{grid-area:1/1/span 2;align-self:start;margin-top:1px}.message-content{grid-area:2/2;justify-items:start;min-width:0;padding-left:0;display:grid}.message>.message-content{border-left:0}.message-card{background:0 0;border:0;border-radius:0;width:min(100%,780px);max-width:100%;padding:0}.message-meta{min-width:0;color:var(--color-muted);flex-wrap:wrap;grid-area:1/2;align-items:baseline;gap:3px 8px;padding-left:0;font-size:.88rem;font-weight:800;display:flex}.message-author{color:var(--color-ink);overflow-wrap:anywhere;text-overflow:clip;white-space:normal;font-weight:800;line-height:1.2;display:block;overflow:visible}.message-time{color:var(--color-muted);font-family:var(--font-body);white-space:nowrap;font-size:.78rem;font-weight:500;line-height:1.1;display:inline-block}.message-card>p,.message-markdown p{color:var(--color-body);font-size:.93rem;line-height:1.52}.message-card>p{white-space:pre-line}.message-mention{min-height:1.45em;color:var(--color-action-strong);vertical-align:baseline;white-space:nowrap;background:var(--color-action-wash);border:0;border-radius:999px;align-items:center;padding:0 7px;font-weight:800;line-height:1.35;display:inline-flex}.message-markdown{min-width:0;color:var(--color-body);overflow-wrap:anywhere;gap:8px;display:grid}.message-markdown p{white-space:normal;margin:0}.message-markdown :is(h1,h2,h3,h4,h5,h6){color:var(--color-text);font-family:var(--font-body);margin:2px 0 0;font-size:.94rem;font-weight:800;line-height:1.3}.message-markdown :is(ul,ol){color:var(--color-body);gap:4px;margin:0;padding-left:18px;font-size:.91rem;line-height:1.45;display:grid}.message-markdown li>:is(p,ul,ol){margin-top:4px}.message-markdown a{color:var(--color-sync);text-underline-offset:3px;font-weight:800;text-decoration:underline}.message-markdown :not(pre)>code{color:var(--color-text);font-family:var(--font-mono);background:var(--color-surface-muted);border:1px solid var(--color-line);border-radius:5px;padding:1px 5px;font-size:.82em}.message-markdown pre{max-width:100%;color:var(--color-text);background:var(--color-surface-muted);border:1px solid var(--color-line);border-radius:8px;margin:0;padding:9px 10px;overflow:auto}.message-markdown pre code{font-family:var(--font-mono);white-space:pre;font-size:.76rem;line-height:1.45}.message-markdown blockquote{color:var(--color-muted);border-left:3px solid var(--color-line-strong);margin:0;padding-left:10px}.message.is-round{grid-template-columns:var(--message-avatar-size) minmax(0, 1fr);gap:0 12px;padding:4px 0 12px;display:grid}.round-card,.clarification-card{--round-accent:var(--color-warning);--round-wash:var(--color-warning-soft);width:min(100%, calc(780px + var(--message-avatar-size) + 12px));min-width:0;max-width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;grid-column:1/-1;margin:2px 0 0;position:relative;overflow:visible}.round-card.is-done,.clarification-card.is-done{--round-accent:var(--color-action);--round-wash:var(--color-action-wash)}.round-card.is-failed,.clarification-card.is-failed,.approval-card.is-failed{--round-accent:var(--color-error-strong);--round-wash:var(--color-error-soft)}.round-card-head,.clarification-card-head{cursor:pointer;background:linear-gradient(90deg, color-mix(in srgb, var(--round-wash) 44%, transparent), transparent 64%), color-mix(in srgb, var(--round-wash) 20%, var(--color-surface));border:1px solid color-mix(in srgb, var(--round-accent) 18%, var(--color-line));border-bottom:1px solid color-mix(in srgb, var(--round-accent) 18%, var(--color-line));border-radius:var(--radius-chat-item);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px;list-style:none;display:grid;position:relative}.round-card-head::-webkit-details-marker{display:none}.clarification-card-head::-webkit-details-marker{display:none}.round-card-head:focus-visible,.clarification-card-head:focus-visible{outline:var(--ring-sync);outline-offset:-3px}.round-card-title,.clarification-card-title{align-items:center;gap:8px;min-width:0;display:flex}.round-card-title:before,.clarification-card-title:before{content:"";background:var(--round-accent);border-radius:0;flex:none;width:3px;height:24px}.round-card h4,.clarification-card h4{color:var(--color-ink);font-family:var(--font-body);text-overflow:clip;white-space:normal;font-size:.91rem;font-weight:800;line-height:1.28;overflow:visible}.round-card-toggle,.clarification-card-toggle{width:26px;height:26px;color:var(--color-muted);background:color-mix(in srgb, var(--round-wash) 32%, var(--color-surface));border:1px solid var(--color-line);border-radius:var(--radius-chat-item);place-items:center;transition:transform .16s;display:grid}.round-card-toggle svg,.clarification-card-toggle svg{width:16px;height:16px}.round-card[open] .round-card-toggle,.clarification-card[open] .clarification-card-toggle{transform:rotate(180deg)}.round-card-body,.clarification-card-body{border-bottom:0;gap:0;padding:0;display:none}.approval-card-body{background:linear-gradient(90deg, color-mix(in srgb, var(--round-wash) 44%, transparent), transparent 64%), color-mix(in srgb, var(--round-wash) 20%, var(--color-surface));border:1px solid color-mix(in srgb, var(--round-accent) 18%, var(--color-line));border-radius:0 0 var(--radius-chat-item) var(--radius-chat-item);border-top:0}.round-card[open] .round-card-body,.round-card.is-expanded .round-card-body,.round-card.is-locked-open .round-card-body,.clarification-card[open] .clarification-card-body,.clarification-card.is-expanded .clarification-card-body,.clarification-card.is-locked-open .clarification-card-body{display:grid}.approval-card.is-locked-open .approval-card-head,.approval-card[open] .approval-card-head,.worklist-feedback-card[open] .worklist-feedback-card-head,.worklist-compile-card.is-expanded .worklist-compile-card-head{border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.worklist-feedback-card-heading{gap:6px;min-width:0;display:grid}.worklist-feedback-final-note{color:var(--color-body);overflow-wrap:anywhere;margin:0 0 0 11px;font-size:.84rem;font-weight:550;line-height:1.46}.message.is-task-result{grid-template-columns:var(--message-avatar-size) minmax(0, 1fr);gap:0 12px;padding:4px 0 12px;display:grid}.task-result-card{width:min(100%, calc(780px + var(--message-avatar-size) + 12px));color:inherit;text-align:left;background:var(--color-surface);border:1px solid var(--color-line-soft);border-radius:var(--radius-chat-item);cursor:pointer;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 13px 13px 15px;display:grid;position:relative}.task-result-card:before{content:"";background:var(--color-action);border-radius:0 var(--radius-pill) var(--radius-pill) 0;opacity:.76;width:3px;position:absolute;top:12px;bottom:12px;left:0}.task-result-card.is-completed{background:linear-gradient(90deg, color-mix(in srgb, var(--color-action-wash) 35%, transparent), transparent 42%), var(--color-surface)}.task-result-card.is-failed{background:linear-gradient(90deg, color-mix(in srgb, var(--color-error-soft) 54%, transparent), transparent 48%), var(--color-surface);border-color:color-mix(in srgb, var(--color-error-strong) 18%, var(--color-line))}.task-result-card.is-failed:before{background:var(--color-error-strong)}.task-result-card:disabled{cursor:default}.task-result-card:not(:disabled):hover{background:linear-gradient(90deg, color-mix(in srgb, var(--color-action-wash) 44%, transparent), transparent 44%), var(--color-surface-hover)}.task-result-card.is-failed:not(:disabled):hover{background:linear-gradient(90deg, color-mix(in srgb, var(--color-error-soft) 64%, transparent), transparent 50%), var(--color-surface-hover)}.task-result-card:focus-visible{outline-offset:2px;outline:2px solid #00ce8c3d}.task-result-card-main{gap:5px;min-width:0;display:grid}.task-result-card-title-row{flex-wrap:wrap;align-items:center;gap:7px;min-width:0;display:flex}.task-result-card-title{color:var(--color-muted);font-size:.76rem;font-weight:850;line-height:1.2}.task-result-card-main strong{color:var(--color-ink);overflow-wrap:anywhere;font-size:.9rem;font-weight:850;line-height:1.35}.task-result-card-module,.task-result-card-error-code{color:var(--color-muted);font-family:var(--font-mono);font-size:.67rem;font-weight:850;line-height:1.25}.task-result-card-note,.task-result-card-summary{color:var(--color-body);overflow-wrap:anywhere;font-size:.83rem;font-weight:550;line-height:1.45}.task-result-card-note{font-weight:700}.task-result-card-files{flex-wrap:wrap;gap:6px;min-width:0;margin-top:2px;display:flex}.task-result-card-file{max-width:100%;color:var(--color-muted);background:color-mix(in srgb, var(--color-surface-muted) 78%, transparent);border-radius:7px;align-items:center;gap:5px;padding:3px 7px;font-size:.72rem;font-weight:800;line-height:1.2;display:inline-flex}.task-result-card-file svg{stroke-width:2px;flex:none;width:13px;height:13px}.task-result-card-file span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.task-result-card-arrow{width:22px;height:22px;color:var(--color-muted);place-items:center;display:inline-grid}.task-result-card-arrow svg{stroke-width:1.8px;width:16px;height:16px}.round-thread{--message-avatar-size:34px;gap:2px;padding:7px 12px 2px 0;display:grid;position:relative}.round-thread-divider{min-width:0;color:var(--color-muted);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:0 12px 4px 0;font-size:.78rem;font-weight:500;line-height:1.2;display:grid}.round-thread-divider:after{content:"";background:var(--color-line-soft);height:1px}.round-thread-divider span{white-space:nowrap}.round-message{z-index:1;grid-template-columns:var(--message-avatar-size) minmax(0, 1fr);border-top:0;align-items:start;gap:4px 12px;min-width:0;padding:8px 0;display:grid;position:relative}.round-message:first-child{border-top:0}.round-message .message-byline{display:contents}.round-message .message-content{padding-left:0}.round-message .message-card{width:min(100%,780px)}.round-message .message-card p{font-size:.91rem;line-height:1.48}.round-composer{padding:4px 12px 4px calc(var(--message-avatar-size) + 12px);background:0 0;border-top:0;margin-left:0;display:block}.round-composer-input-shell{--composer-control-size:36px;--composer-tool-size:28px;min-height:var(--composer-control-size);padding:3px 5px 3px 11px}.round-composer-tools{align-self:end}.round-composer .mention-input-editor{width:100%;min-width:0;min-height:26px;max-height:calc((var(--mention-input-font-size) * var(--mention-input-line-height)) * 4 + 4px);color:var(--color-body);font-family:var(--font-body);font-size:var(--mention-input-font-size);font-weight:500;line-height:var(--mention-input-line-height);caret-color:var(--color-action-strong);white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;border-radius:0;overflow-y:auto}.round-composer .mention-input-editor.is-singleline,.round-composer .mention-input-editor.is-multiline{padding:2px 0}.round-composer .mention-input-editor:empty:before{content:attr(data-placeholder);color:var(--color-placeholder);font-weight:500}.round-composer .mention-input-editor:focus{outline:none}.approval-card-content{gap:10px;width:100%;min-width:0;padding:0 12px 12px 27px;display:grid}.worklist-feedback-card-body{background:linear-gradient(90deg, color-mix(in srgb, var(--round-wash) 44%, transparent), transparent 64%), color-mix(in srgb, var(--round-wash) 20%, var(--color-surface));border:1px solid color-mix(in srgb, var(--round-accent) 18%, var(--color-line));border-radius:0 0 var(--radius-chat-item) var(--radius-chat-item);border-top:0}.worklist-feedback-content{gap:10px;width:100%;min-width:0;padding:0 12px 12px 27px;display:grid}.worklist-feedback-files{gap:7px;min-width:0;padding:10px 0 2px;display:grid}.worklist-feedback-section-label{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;font-size:.66rem;font-weight:900;line-height:1.2}.worklist-feedback-files ul{gap:0;margin:0;padding:0;list-style:none;display:grid}.worklist-feedback-files li{border-top:1px dashed var(--color-line-soft);grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:7px 0;display:grid}.worklist-feedback-file-icon{width:20px;height:20px;color:var(--color-muted);border:1px solid var(--color-line);background:color-mix(in srgb, var(--round-wash) 20%, var(--color-surface));border-radius:6px;place-items:center;display:grid}.worklist-feedback-file-icon svg{width:13px;height:13px}.worklist-feedback-file-main{gap:2px;min-width:0;display:grid}.worklist-feedback-file-main strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:800;line-height:1.3;overflow:hidden}.worklist-feedback-file-main span{color:var(--color-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;font-weight:800;line-height:1.25;overflow:hidden}.worklist-feedback-counters{color:var(--color-muted);font-family:var(--font-mono);margin:0;font-size:.7rem;font-weight:800;line-height:1.35}.worklist-feedback-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.worklist-feedback-item{border-top:1px dashed var(--color-line-soft);gap:5px;min-width:0;padding:10px 0;display:grid}.worklist-feedback-item:first-child{border-top:0}.worklist-feedback-item-head{flex-wrap:wrap;align-items:center;gap:7px;min-width:0;display:flex}.worklist-feedback-item-head strong{min-width:0;color:var(--color-ink);overflow-wrap:anywhere;font-size:.9rem;font-weight:800;line-height:1.35}.worklist-feedback-module{color:var(--color-muted);font-family:var(--font-mono);font-size:.68rem;font-weight:800;line-height:1.25}.worklist-feedback-summary{color:var(--color-body);overflow-wrap:anywhere;margin:0;font-size:.86rem;font-weight:500;line-height:1.48}.worklist-compile-card,.artifact-preview-card{--round-accent:var(--color-action-strong);--round-wash:var(--color-action-wash)}.worklist-compile-card-head,.artifact-preview-card-head{cursor:default}.worklist-compile-heading,.artifact-preview-card-heading{gap:6px;min-width:0;display:grid}.worklist-compile-open,.artifact-preview-card-open{flex:none;min-height:32px}.worklist-compile-open svg,.artifact-preview-card-open svg{width:14px;height:14px}.worklist-compile-card-body{background:linear-gradient(90deg, color-mix(in srgb, var(--round-wash) 44%, transparent), transparent 64%), color-mix(in srgb, var(--round-wash) 20%, var(--color-surface));border:1px solid color-mix(in srgb, var(--round-accent) 18%, var(--color-line));border-radius:0 0 var(--radius-chat-item) var(--radius-chat-item);border-top:0}.worklist-compile-list{gap:0;width:100%;min-width:0;margin:0;padding:0 12px 12px 27px;list-style:none;display:grid}.worklist-compile-item{border-top:1px dashed var(--color-line-soft);min-width:0}.worklist-compile-item:first-child{border-top:0}.worklist-compile-task-button{width:100%;min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.worklist-compile-task-button:disabled{cursor:default}.worklist-compile-task-button:focus-visible{outline-offset:2px;border-radius:8px;outline:2px solid #00ce8c3d}.worklist-compile-task-main{gap:4px;min-width:0;display:grid}.worklist-compile-task-main strong{color:var(--color-ink);overflow-wrap:anywhere;font-size:.88rem;font-weight:850;line-height:1.35}.worklist-compile-task-main span{color:var(--color-muted);font-family:var(--font-mono);font-size:.68rem;font-weight:850;line-height:1.25}.worklist-compile-task-main p,.artifact-preview-card-heading p{color:var(--color-body);overflow-wrap:anywhere;margin:0;font-size:.82rem;font-weight:550;line-height:1.45}.worklist-compile-task-side{color:var(--color-muted);align-items:center;gap:6px;display:inline-flex}.worklist-compile-task-side svg{width:14px;height:14px}.approval-card-summary,.approval-card-reason,.approval-card-resolution{color:var(--color-body);overflow-wrap:anywhere;margin:0;font-size:.9rem;font-weight:500;line-height:1.48}.approval-card-reason,.approval-card-resolution{color:var(--color-muted);font-size:.82rem}.approval-card-detail{gap:4px;min-width:0;margin:0;display:grid}.approval-card-detail-label{color:var(--color-muted);font-size:.72rem;font-weight:800;line-height:1.25}.approval-card-detail-code,.approval-card-detail-text{min-width:0;color:var(--color-body);font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.72rem;font-weight:700;line-height:1.45;display:block}.approval-card-detail-code{background:color-mix(in srgb, var(--round-wash) 22%, var(--color-surface));border:1px solid color-mix(in srgb, var(--round-accent) 13%, var(--color-line));white-space:pre-wrap;border-radius:6px;padding:3px 6px}.approval-card-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.approval-card-decision{white-space:nowrap;min-height:34px;padding:0 11px}.approval-card-decision svg{flex:none;width:17px;height:17px}.round-send-button{flex:0 0 var(--composer-tool-size);width:var(--composer-tool-size);min-width:var(--composer-tool-size);height:var(--composer-tool-size)}.round-submit-button{white-space:nowrap;min-height:34px;padding:0 12px}.round-submit-button svg{flex:none;width:17px;height:17px}.round-submit-button:focus-visible{outline:var(--ring-action);outline-offset:2px}.chat-stream .avatar{width:var(--message-avatar-size);height:var(--message-avatar-size)}.chat-stream .avatar svg{width:15px;height:15px}@media (width<=760px){.chat-stream{padding:12px}.message,.round-message{grid-template-columns:var(--message-avatar-size) minmax(0, 1fr);gap:3px 10px}.round-card,.clarification-card{grid-column:1/-1}.message-content,.round-message .message-content{padding-left:0}.message>.message-content{border-left:0}.round-message .message-byline,.round-message .message-content{padding-left:0;padding-right:0}.message-author{overflow-wrap:anywhere;white-space:normal}.round-card h4,.clarification-card h4{white-space:normal}.round-composer{padding:4px 12px 4px calc(var(--message-avatar-size) + 10px);margin-left:0}}.composer{background:var(--color-surface-subtle);border-top:1px solid var(--color-line-soft);padding:12px 16px 14px;display:block}.composer-input-shell,.input-shell{width:100%;min-width:0;color:var(--color-text);caret-color:var(--color-action-strong);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-control)}.composer-input-shell{--composer-control-size:36px;--composer-tool-size:28px;min-height:var(--composer-control-size);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:3px 5px 3px 11px;display:grid;position:relative}.composer-input-shell:focus-within{border-color:var(--color-action-strong)}.composer .mention-input{align-self:center}.composer .mention-input-editor{width:100%;min-width:0;color:var(--color-body);font-family:var(--font-body);font-size:.9rem;font-weight:500;line-height:var(--mention-input-line-height);caret-color:var(--color-action-strong);min-height:26px;max-height:calc((var(--mention-input-font-size) * var(--mention-input-line-height)) * 8 + 4px);white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;border-radius:0;padding:2px 0;overflow-y:auto}.composer .mention-input-editor:focus{outline:none}.input-shell::placeholder{color:var(--color-placeholder)}.composer .mention-input-editor:empty:before{content:attr(data-placeholder);color:var(--color-placeholder);opacity:1;pointer-events:none;font-weight:500}.input-shell:focus{border-color:var(--color-action-strong);outline:none}.mention-input{--mention-input-font-size:.9rem;--mention-input-line-height:1.52;min-width:0;display:block;position:relative}.mention-input.is-multiline{align-items:stretch;display:grid}.round-composer .mention-input{--mention-input-font-size:.84rem}.mention-input-editor{z-index:1;position:relative}.mention-input-token{vertical-align:baseline;cursor:default;margin:0 2px}.mention-menu{z-index:20;width:max-content;min-width:0;max-width:min(220px,100%);max-height:calc((var(--mention-input-font-size) * 1.35 + 7px) * 4 + 8px);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-control);box-shadow:var(--shadow-tooltip);padding:4px;display:grid;position:absolute;bottom:calc(100% + 6px);left:0;overflow:auto}.mention-option{width:max-content;min-width:100%;max-width:100%;color:var(--color-body);font-size:var(--mention-input-font-size);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:3px 7px 4px;font-weight:500;line-height:1.35;display:block}.mention-option:hover,.mention-option.is-selected,.mention-option[aria-selected=true]{background:var(--color-action-wash)}.mention-option-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mention-option.is-selected .mention-option-text,.mention-option[aria-selected=true] .mention-option-text{color:var(--color-action-strong)}.file-drop-upload-zone{position:relative}.file-drop-overlay{z-index:30;pointer-events:none;border:2px dashed var(--color-action-strong);border-radius:inherit;opacity:0;background:#ffffffd6;place-items:center;padding:18px;transition:opacity .12s;display:grid;position:absolute;inset:0}.file-drop-upload-zone.is-file-drop-active>.file-drop-overlay{opacity:1}.file-drop-overlay span{color:var(--color-action-strong);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-control);align-items:center;gap:8px;padding:7px 10px;font-size:.82rem;font-weight:900;display:inline-flex}.file-drop-overlay svg{width:16px;height:16px}.composer-tools{justify-content:flex-end;align-self:end;align-items:center;gap:2px;min-width:0;display:flex}.composer .composer-tool-button,.round-composer .composer-tool-button{flex:0 0 var(--composer-tool-size);width:var(--composer-tool-size);min-width:var(--composer-tool-size);height:var(--composer-tool-size);color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:relative;overflow:hidden}.composer .composer-tool-button svg,.round-composer .composer-tool-button svg{stroke-width:1.9px;width:17px;height:17px}.composer .composer-tool-button:hover,.composer .composer-tool-button:focus-visible,.composer .composer-tool-button:focus-within,.round-composer .composer-tool-button:hover,.round-composer .composer-tool-button:focus-visible,.round-composer .composer-tool-button:focus-within{color:var(--color-text);background:var(--color-surface-muted);outline:none}.composer .composer-tool-button:focus-visible,.composer .composer-tool-button:focus-within,.round-composer .composer-tool-button:focus-visible,.round-composer .composer-tool-button:focus-within{box-shadow:0 0 0 2px var(--color-surface), var(--shadow-ring)}.composer .composer-tool-button:disabled,.composer .composer-tool-button.is-disabled,.round-composer .composer-tool-button:disabled,.round-composer .composer-tool-button.is-disabled{color:var(--color-muted);cursor:not-allowed;opacity:.45}.composer .composer-mention-button{color:var(--color-muted)}.composer .composer-send-button,.round-composer .composer-send-button{color:var(--color-action-text);background:var(--color-action)}.composer-input-shell>.mention-menu{width:auto;max-width:none;left:0;right:0}.composer-input-shell>.mention-menu .mention-option{width:100%}.composer .composer-send-button:hover,.composer .composer-send-button:focus-visible,.round-composer .composer-send-button:hover,.round-composer .composer-send-button:focus-visible{color:var(--color-action-text);background:var(--color-action)}.composer .composer-send-button:disabled,.round-composer .composer-send-button:disabled{color:var(--color-muted);background:var(--color-surface-muted)}.composer-upload-button{position:relative;overflow:hidden}.composer-upload-button input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.composer-upload-button.is-disabled input[type=file]{cursor:not-allowed}.reference-message-card{width:min(100%,360px);min-width:0;color:inherit;background:var(--color-surface-subtle);border:1px solid var(--color-line);border-radius:var(--radius-chat-item);cursor:pointer;font:inherit;text-align:left;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;padding:8px 10px;display:grid}.reference-message-card:hover,.reference-message-card:focus-visible{background:var(--color-surface-hover);outline:var(--ring-sync);outline-offset:2px}.reference-message-card.is-image{background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr);align-items:start;width:max-content;max-width:100%;padding:0}.reference-message-image{object-fit:contain;border-radius:var(--radius-chat-item);background:0 0;border:0;width:auto;max-width:min(100%,340px);height:auto;max-height:260px;display:block}.reference-message-card.is-brand-placeholder .reference-message-image{object-fit:contain;padding:10px}.reference-message-icon{border:1px solid var(--color-line);background:var(--color-surface-subtle);width:32px;height:32px;color:var(--color-muted);border-radius:7px;place-items:center;display:grid}.reference-message-icon svg{width:16px;height:16px}.reference-message-main{gap:3px;min-width:0;padding:0;display:grid}.reference-message-card.is-image .reference-message-main{display:none}.reference-message-main strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:800;line-height:1.3;overflow:hidden}.task-list{align-content:start;min-width:0;min-height:0;padding:14px;display:grid;overflow:auto}.task-section{display:contents}.task-section-label{color:var(--color-muted);font-family:var(--font-body);margin-bottom:8px;font-size:.78rem;font-weight:900;display:block}.worklist-header-summary{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 10px;min-width:0;display:flex}.worklist-status-summary{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;min-width:0;display:flex}.worklist-status-summary-item{min-height:22px;color:var(--color-muted);background:var(--color-surface-muted);border:1px solid var(--color-line);border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:.7rem;font-weight:800;line-height:1;display:inline-flex}.worklist-status-summary-item strong{color:var(--color-ink);font-size:.72rem;font-weight:900}.worklist-status-summary-item.is-running{color:var(--color-sync);background:var(--color-sync-soft)}.worklist-status-summary-item.is-pending{color:var(--color-warning);background:var(--color-warning-soft)}.worklist-status-summary-item.is-done{color:var(--color-action-strong);background:var(--color-action-wash)}.worklist-status-summary-item.is-failed{color:var(--color-error-strong);background:var(--color-error-soft)}.task-list .task-section-label:not(:first-child){margin-top:14px}.task-row{background:var(--color-surface);border-width:0;border-top:1px dashed var(--color-line);min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;border-radius:0;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:8px;padding:7px 0;display:grid;position:relative}.task-row.is-selected{background:var(--color-surface-hover);box-shadow:inset 3px 0 0 var(--color-action);border-top-color:#0000;border-radius:0;margin:0 -10px;padding-left:14px;padding-right:10px}.task-row:last-child{border-bottom:1px dashed var(--color-line)}.task-row:hover,.task-row:focus-visible{background:var(--color-surface-hover);outline:none}.task-check{border:1px solid var(--color-line-strong);background:var(--color-surface);width:22px;height:22px;color:var(--color-muted);border-radius:8px;place-items:center;display:grid}.task-check svg{opacity:0;width:14px;height:14px}.task-row.is-done .task-check{background:var(--color-action-wash);color:var(--color-action-strong);border-color:#0000}.task-row.is-pending .task-check{background:var(--color-warning-soft);color:var(--color-warning);border-color:#0000}.task-row.is-running .task-check{background:var(--color-sync-soft);color:var(--color-sync);border-color:#0000}.task-row.is-failed .task-check{background:var(--color-error-soft);color:var(--color-error-strong);border-color:#0000}.task-row.is-done .task-check svg,.task-row.is-running .task-check svg,.task-row.is-pending .task-check svg,.task-row.is-failed .task-check svg{opacity:1}.task-row.is-running .task-check svg{animation:.9s linear infinite tutti-sidebar-status-spin}.task-row-main{min-width:0}.task-title-line{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;display:grid}.task-row strong{color:var(--color-ink);overflow-wrap:anywhere;white-space:normal;font-size:.82rem;line-height:1.32;display:block}.task-row-summary{color:var(--color-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:.74rem;font-weight:650;line-height:1.36;display:-webkit-box;overflow:hidden}.task-row.is-done .task-title-line strong{color:var(--color-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--color-muted);text-decoration-color:var(--color-muted);-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto;text-decoration-thickness:1.5px}.task-detail-card{border-left:1px solid var(--color-line);background:0 0;align-content:start;align-self:stretch;gap:12px;min-width:0;min-height:0;padding:18px 16px;display:grid;overflow:auto}.task-detail-head,.task-detail-section{justify-items:start;gap:10px;min-width:0;display:grid}.task-detail-section{border-top:1px dashed var(--color-line);width:100%;padding-top:12px}.task-detail-section .task-section-label{margin-bottom:0}.task-detail-card h4{color:var(--color-ink);font-family:var(--font-heading);margin:0;font-size:1.05rem;line-height:1.05}.task-detail-card p{color:var(--color-body);font-size:.82rem;line-height:1.5}.detail-row{grid-template-columns:76px minmax(0,1fr);align-items:baseline;gap:8px;width:100%;display:grid}.detail-row>span{color:var(--color-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.65rem;font-weight:800}.detail-row strong,.detail-row code{overflow-wrap:anywhere;min-width:0;color:var(--color-ink);white-space:pre-line;font-size:.76rem;line-height:1.34}.detail-row code{font-family:var(--font-mono);background:0 0;border:0;padding:0}.run-result-list{gap:0;width:100%;min-width:0;display:grid}.run-result-item{border-top:1px dashed var(--color-line);min-width:0;padding:9px 0}.run-result-item:first-child{border-top:0}.run-result-item-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;display:grid}.run-result-item-head>span{gap:3px;min-width:0;display:grid}.run-result-item-head strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;line-height:1.3;overflow:hidden}.run-result-item-head small{color:var(--color-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;font-weight:800;line-height:1.25;overflow:hidden}.worklist-run-note{border-bottom:1px dashed var(--color-line);color:var(--color-muted);margin:0;padding:8px 16px;font-size:.76rem;font-weight:800;line-height:1.4}.settings-sheet{border:1px solid var(--color-panel-border);border-radius:var(--radius-panel);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-ring), var(--shadow-panel);position:relative;overflow:hidden}.settings-sheet-head{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-line-soft);justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:15px 16px;display:flex}.settings-section{grid-template-columns:minmax(132px,.28fr) minmax(0,1fr);gap:22px;min-width:0;padding:17px 16px;display:grid}.settings-section+.settings-section{border-top:1px solid var(--color-line-soft)}.settings-section-title{align-content:start;gap:6px;min-width:0;padding-top:7px;display:grid}.settings-section-title h4{color:var(--color-ink);font-family:var(--font-heading);font-size:1rem;line-height:1.05}.settings-section-body{min-width:0;display:grid}.settings-identity{align-items:center;gap:11px;min-width:0;display:flex}.settings-identity strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:900;line-height:1.2;display:block;overflow:hidden}.settings-row{border-top:1px dashed var(--color-line);grid-template-columns:minmax(142px,.36fr) minmax(0,1fr);align-items:center;gap:12px;min-width:0;min-height:38px;padding:7px 0;display:grid}.settings-row:first-child{border-top:0}.settings-row .field-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-row strong,.settings-row code,.settings-row-value{min-width:0}.settings-row strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:800;line-height:1.34;overflow:hidden}.settings-row code{max-width:100%;min-height:0;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;justify-self:start;padding:0;font-size:.72rem;line-height:1.34;overflow:hidden}.settings-masked-link{width:100%;min-width:0;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:800;line-height:1.34;display:block;overflow:hidden}.settings-value-button{min-width:0;max-width:100%;color:var(--color-ink);font:inherit;text-align:left;text-decoration:underline;-webkit-text-decoration-color:var(--color-line-strong);text-decoration-color:var(--color-line-strong);text-underline-offset:3px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;font-size:.78rem;font-weight:900;line-height:1.34;overflow:hidden}.settings-link-copy-button{width:100%;display:block}.settings-link-copy-button .settings-masked-link{-webkit-text-decoration:inherit;text-decoration:inherit;-webkit-text-decoration-color:inherit;text-decoration-color:inherit;text-underline-offset:inherit}.settings-value-button:hover,.settings-value-button:focus-visible{color:var(--color-action-strong)}.settings-row .inline-editable-text-button{color:var(--color-ink);text-decoration:underline;-webkit-text-decoration-color:var(--color-line-strong);text-decoration-color:var(--color-line-strong);text-underline-offset:3px;font-size:.78rem;font-weight:900;line-height:1.34}.settings-row .inline-editable-text-input{min-height:36px;font-size:.82rem;font-weight:800}.timeline-panel{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.timeline-board-body{background:var(--color-surface);grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.timeline-overview{border-bottom:1px solid var(--color-line-soft);background:var(--color-surface);min-width:0;padding:22px 24px}.timeline-token-overview{grid-template-columns:minmax(280px,1.4fr) minmax(320px,.85fr);align-items:stretch;gap:28px;min-width:0;display:grid}.timeline-token-hero{grid-template-rows:auto minmax(92px,1fr);gap:14px;min-width:0;display:grid}.timeline-token-total{align-content:start;gap:5px;min-width:0;display:grid}.timeline-token-total-label{align-items:center;gap:5px;min-width:0;display:inline-flex}.timeline-token-help{align-items:center;display:inline-flex;position:relative}.timeline-token-help-trigger{width:16px;height:16px;color:var(--color-nav-muted);cursor:help;opacity:.52;justify-content:center;align-items:center;display:inline-flex}.timeline-token-help:hover .timeline-token-help-trigger,.timeline-token-help:focus-within .timeline-token-help-trigger{opacity:.82}.timeline-token-help-trigger:focus-visible{outline:2px solid var(--color-action);outline-offset:2px;border-radius:999px}.timeline-token-help-trigger svg{stroke-width:1.8px;width:14px;height:14px}.timeline-token-help-popover{z-index:5;background:var(--color-tooltip);width:min(260px,72vw);box-shadow:var(--shadow-tooltip);color:var(--color-surface);opacity:0;pointer-events:none;visibility:hidden;border-radius:8px;padding:9px 10px;font-size:.72rem;font-weight:700;line-height:1.45;transition:opacity .12s,transform .12s,visibility .12s;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-2px)}.timeline-token-help:hover .timeline-token-help-popover,.timeline-token-help:focus-within .timeline-token-help-popover{opacity:1;visibility:visible;transform:translateY(0)}.timeline-token-total strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:2rem;font-weight:900;line-height:1;overflow:hidden}.timeline-token-total p{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.76rem;font-weight:800;line-height:1.35;overflow:hidden}.timeline-token-chart{width:100%;min-width:0;height:118px;display:block;overflow:visible}.timeline-token-chart-line{fill:none;stroke:var(--color-action-strong);stroke-linecap:round;stroke-linejoin:round;stroke-width:1px}.timeline-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-content:stretch;gap:10px;min-width:0;display:grid}.timeline-breakdown-card{border:1px solid var(--color-panel-border);background:var(--color-surface);border-radius:10px;align-content:space-between;gap:6px;min-width:0;min-height:82px;padding:12px;display:grid}.timeline-breakdown-card span,.timeline-breakdown-card small{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:800;line-height:1.35;overflow:hidden}.timeline-breakdown-card strong{color:var(--color-ink);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:1.02rem;font-weight:900;line-height:1.1;overflow:hidden}.timeline-section-title{align-items:center;gap:9px;min-width:0;display:flex}.timeline-section-title h4{color:var(--color-ink);font-family:var(--font-heading);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.05;overflow:hidden}.timeline-events{grid-template-rows:minmax(0,1fr);min-height:0;padding:18px 24px 16px;display:grid;overflow:hidden}.timeline-event-list{align-content:start;gap:0;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.timeline-event-item{border-top:1px dashed var(--color-line);grid-template-columns:136px 28px minmax(0,1fr);align-items:stretch;min-width:0;min-height:56px;display:grid}.timeline-event-item:first-child{border-top:0}.timeline-event-time{max-width:124px;color:var(--color-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;place-self:center end;font-size:.7rem;font-weight:800;line-height:1.35;overflow:hidden}.timeline-event-marker{min-width:0;height:100%;position:relative}.timeline-event-marker:before{background:var(--color-line-strong);content:"";width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-event-marker:after{border:2px solid var(--color-surface);background:var(--color-action);width:9px;height:9px;box-shadow:0 0 0 1px color-mix(in srgb, var(--color-action) 45%, transparent);content:"";border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.timeline-event-item.is-sync .timeline-event-marker:after{background:var(--color-sync);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-sync) 45%, transparent)}.timeline-event-item.is-warning .timeline-event-marker:after{background:var(--color-warning);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-warning) 45%, transparent)}.timeline-event-item.is-error .timeline-event-marker:after{background:var(--color-error-strong);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-error-strong) 45%, transparent)}.timeline-event-item.is-neutral .timeline-event-marker:after{background:var(--color-muted);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-muted) 34%, transparent)}.timeline-event-main{align-content:center;min-width:0;min-height:56px;padding-left:12px;display:grid}.timeline-event-toggle{width:100%;min-width:0;min-height:56px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:8px;padding:0;display:grid}.timeline-event-toggle:disabled{cursor:default}.timeline-event-toggle:focus-visible{outline:2px solid var(--color-action);outline-offset:3px;border-radius:8px}.timeline-event-chevron{width:15px;height:15px;color:var(--color-muted);justify-self:end;transition:transform .14s}.timeline-event-item.is-expanded .timeline-event-chevron{transform:rotate(180deg)}.timeline-event-title-line{align-items:center;gap:8px;min-width:0;display:flex}.timeline-event-title-line h4{min-width:0;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:900;line-height:1.25;overflow:hidden}.timeline-token-pill{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.timeline-trace-card{border:1px solid var(--color-panel-border);border-left:3px solid var(--color-muted);background:var(--color-surface-paper);border-radius:8px;gap:13px;min-width:0;margin:0 0 16px;padding:14px;display:grid}.timeline-trace-card.is-success{border-left-color:var(--color-action-strong)}.timeline-trace-card.is-warning{border-left-color:var(--color-warning)}.timeline-trace-card.is-error{border-left-color:var(--color-error-strong)}.timeline-trace-summary,.timeline-trace-section p{min-width:0;color:var(--color-body);overflow-wrap:anywhere;margin:0;font-size:.8rem;font-weight:650;line-height:1.48}.timeline-trace-section{border-top:1px solid var(--color-line-soft);grid-template-columns:118px minmax(0,1fr);gap:14px;min-width:0;padding-top:11px;display:grid}.timeline-trace-summary+.timeline-trace-section,.timeline-trace-card>.timeline-trace-section:first-child{border-top:0;padding-top:0}.timeline-trace-label{color:var(--color-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.66rem;font-weight:900;line-height:1.35}.timeline-trace-section-body{gap:8px;min-width:0;display:grid}.timeline-trace-title,.timeline-trace-list strong,.timeline-trace-file-list strong{min-width:0;color:var(--color-ink);overflow-wrap:anywhere;font-size:.8rem;font-weight:900;line-height:1.35}.timeline-trace-muted{min-width:0;color:var(--color-muted);overflow-wrap:anywhere;font-size:.72rem;font-weight:750;line-height:1.4}.timeline-trace-list,.timeline-trace-snippet-list,.timeline-trace-diff-list,.timeline-trace-file-list{gap:6px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.timeline-trace-list li{min-width:0;color:var(--color-body);overflow-wrap:anywhere;flex-wrap:wrap;gap:6px 8px;font-size:.78rem;font-weight:650;line-height:1.42;display:flex}.timeline-trace-snippet{border-top:1px dashed var(--color-line);gap:3px;min-width:0;padding:8px 0;display:grid}.timeline-trace-snippet:first-child{border-top:0;padding-top:0}.timeline-trace-snippet-button{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:3px;padding:0;display:grid}.timeline-trace-snippet-button:hover p,.timeline-trace-snippet-button:focus-visible p{color:var(--color-action-strong)}.timeline-trace-snippet-button:focus-visible{outline-offset:3px;border-radius:6px;outline:2px solid #00ce8c3d}.timeline-trace-snippet span{min-width:0;color:var(--color-muted);overflow-wrap:anywhere;font-size:.7rem;font-weight:800;line-height:1.35}.timeline-trace-snippet p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.timeline-trace-diff-list li,.timeline-trace-file-list li{grid-template-columns:22px minmax(0,1fr);align-items:baseline;gap:8px;min-width:0;display:grid}.timeline-trace-file-list li{grid-template-columns:minmax(0,.35fr) minmax(0,1fr)}.timeline-trace-diff-mark{color:var(--color-muted);font-family:var(--font-mono);font-size:.76rem;font-weight:900}.timeline-trace-diff-list li.is-added .timeline-trace-diff-mark{color:var(--color-action-strong)}.timeline-trace-diff-list li.is-deleted .timeline-trace-diff-mark{color:var(--color-error-strong)}.timeline-trace-diff-list li.is-modified .timeline-trace-diff-mark,.timeline-trace-diff-list li.is-renamed .timeline-trace-diff-mark{color:var(--color-sync)}.timeline-trace-code,.timeline-trace-diff-list code,.timeline-trace-file-list code{min-width:0;color:var(--color-body);font-family:var(--font-mono);overflow-wrap:anywhere;word-break:break-word;font-size:.72rem;font-weight:800;line-height:1.4}.timeline-trace-inline,.timeline-trace-counters,.timeline-trace-links{flex-wrap:wrap;align-items:center;gap:7px;min-width:0;display:flex}.timeline-trace-counters span{color:var(--color-muted);font-family:var(--font-mono);font-size:.7rem;font-weight:850}.timeline-trace-link{align-items:center;gap:6px;min-width:0;min-height:30px;padding:6px 9px;font-size:.76rem;display:inline-flex}.timeline-trace-link svg{flex:none;width:13px;height:13px}.timeline-trace-link small{min-width:0;color:var(--color-muted);overflow-wrap:anywhere;font-size:.7rem;font-weight:800}.references-panel{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.skills-panel{min-height:0}.artifacts-panel{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.artifact-board-body{background:var(--color-surface);min-height:0;display:grid;overflow:hidden}.artifact-preview-frame{background:var(--color-surface);grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.artifact-iframe{background:var(--color-surface);border:0;width:100%;height:100%;min-height:0}.artifact-empty-preview{place-items:center;min-width:0;min-height:0;display:grid}.artifact-empty-preview>.empty-state{min-height:100%}.artifact-stop-button{color:var(--color-muted)}.reference-list-toolbar{justify-content:flex-end;align-items:center;gap:4px;min-width:0;min-height:30px;margin-bottom:0;display:inline-flex}.reference-sort-button{width:28px;height:28px;color:var(--color-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid}.reference-sort-button:hover,.reference-sort-button:focus-visible,.reference-sort-button.is-active{border-color:var(--color-line);background:var(--color-surface-hover);color:var(--color-text)}.reference-sort-button:focus-visible{outline:var(--ring-action);outline-offset:2px}.reference-sort-button svg{width:15px;height:15px}.reference-board-body{grid-template-columns:minmax(320px,.86fr) minmax(300px,.72fr);gap:0;min-height:0;padding:0;display:grid;overflow:hidden}.reference-board-empty{grid-column:1/-1;min-width:0;min-height:0;display:grid;overflow:hidden}.reference-board-empty>.empty-state{align-self:stretch;min-height:100%}.reference-list{align-content:start;min-width:0;min-height:0;padding:14px;display:grid;overflow:auto}.reference-files-head{justify-content:space-between;align-items:center;gap:12px;min-width:0;padding-top:12px;display:flex}.reference-files-head .reference-section-label{padding:0}.reference-image-strip{overscroll-behavior-x:contain;scroll-snap-type:x proximity;align-items:start;gap:0;min-width:0;padding-bottom:10px;display:flex;overflow:auto hidden}.reference-image-tile{border:0;border-left:1px dashed var(--color-line);width:104px;min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:center;scroll-snap-align:start;background:0 0;border-radius:0;flex:0 0 104px;justify-items:center;gap:6px;padding:8px;display:grid}.reference-image-tile:last-child{border-right:1px dashed var(--color-line)}.reference-image-tile:hover,.reference-image-tile:focus-visible,.reference-image-tile.is-selected{background:var(--color-surface-hover);outline:none}.reference-image-tile:focus-visible{outline:var(--ring-action);outline-offset:-2px}.reference-image-tile.is-selected{box-shadow:inset 0 3px 0 var(--color-action)}.reference-image-tile img,.reference-image-tile-fallback{background:var(--color-surface-subtle);border:1px dashed var(--color-line);border-radius:4px;place-items:center;width:82px;height:82px;display:grid}.reference-image-tile img{object-fit:cover}.reference-image-tile.is-brand-placeholder img{object-fit:contain;padding:8px}.reference-image-tile-fallback{color:var(--color-muted)}.reference-image-tile-fallback svg{width:22px;height:22px}.reference-image-tile span:last-child{width:82px;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:800;line-height:1.25;display:block;overflow:hidden}.reference-row{border:0;border-top:1px dashed var(--color-line);background:var(--color-surface);width:100%;min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;border-radius:0;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:8px;padding:8px 0;display:grid;position:relative}.reference-folder-group{border-top:1px dashed var(--color-line)}.reference-folder-group:last-child{border-bottom:1px dashed var(--color-line)}.reference-folder-head{cursor:pointer;background:var(--color-surface);grid-template-columns:26px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:8px 0;list-style:none;display:grid}.reference-folder-head::-webkit-details-marker{display:none}.reference-folder-head:hover,.reference-folder-head:focus-visible,.reference-folder-group[open]>.reference-folder-head{background:var(--color-surface-hover);outline:none}.reference-folder-files{background:var(--color-surface);min-width:0;padding-left:18px;display:grid}.reference-folder-files .reference-row:first-child{border-top-color:var(--color-line-soft)}.reference-section-label{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;padding:12px 0 4px;font-size:.66rem;font-weight:900}.reference-list>.reference-section-label:first-child{padding-top:4px}.reference-row:last-child{border-bottom:1px dashed var(--color-line)}.reference-row.is-selected{background:var(--color-surface-hover);width:calc(100% + 20px);box-shadow:inset 3px 0 0 var(--color-action);border-top-color:#0000;border-radius:0;margin:0 -10px;padding-left:14px;padding-right:10px}.reference-row:hover,.reference-row:focus-visible{background:var(--color-surface-hover);outline:none}.reference-file-icon{border:1px solid var(--color-line);background:var(--color-surface);width:22px;height:22px;color:var(--color-muted);border-radius:8px;place-items:center;display:grid}.reference-file-icon svg{width:14px;height:14px}.reference-row-main{gap:4px;min-width:0;display:grid}.reference-row-main strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:800;line-height:1.32;display:block;overflow:hidden}.reference-row-main span,.reference-detail-head p{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:800;line-height:1.3;overflow:hidden}.reference-detail-card{border-left:1px solid var(--color-line);background:0 0;align-content:start;align-self:stretch;gap:12px;min-width:0;min-height:0;padding:18px 16px;display:grid;overflow:auto}.reference-detail-head,.reference-detail-section{justify-items:start;gap:10px;min-width:0;display:grid}.reference-detail-section{border-top:1px dashed var(--color-line);width:100%;padding-top:12px}.reference-detail-section .task-section-label{margin-bottom:0}.reference-detail-card h4{color:var(--color-ink);font-family:var(--font-heading);margin:0;font-size:1.05rem;line-height:1.05}.reference-content{width:100%;min-width:0;color:var(--color-body);font-family:var(--font-mono);white-space:pre-wrap;margin:0;font-size:.76rem;font-weight:700;line-height:1.55;overflow:auto}.reference-summary{color:var(--color-text);overflow-wrap:anywhere;margin:0;font-size:.85rem;line-height:1.55}.reference-summary-status{color:var(--color-muted);overflow-wrap:anywhere;margin:-4px 0 0;font-size:.75rem;font-weight:700;line-height:1.35}.reference-content code{min-height:0;color:inherit;font:inherit;background:0 0;border:0;border-radius:0;padding:0;display:block}.reference-image-preview{object-fit:contain;background:var(--color-surface-subtle);border:1px solid var(--color-line);border-radius:4px;width:min(100%,720px);max-height:520px;display:block}.reference-empty{align-self:stretch;min-height:100%}.reference-upload-button{position:relative}.reference-upload-button:focus-within{outline:var(--ring-action);outline-offset:2px}.reference-upload-button input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.skill-detail-head{grid-template-columns:minmax(0,1fr) auto;place-items:start stretch}.skill-detail-title{gap:8px;min-width:0;display:grid}.skill-community-section{align-content:start;gap:8px;min-width:0;padding-bottom:12px;display:grid}.skill-community-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;display:grid}.skill-community-card{min-width:0;min-height:56px;color:inherit;border:1px solid var(--color-line);background:var(--color-surface);border-radius:8px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;padding:10px;text-decoration:none;transition:background .16s,border-color .16s,transform .16s;display:grid}.skill-community-card:hover,.skill-community-card:focus-visible{border-color:var(--color-state-border);background:var(--color-surface-hover);outline:none;transform:translateY(-1px)}.skill-community-card:focus-visible{outline:var(--ring-action);outline-offset:2px}.skill-community-card-icon{width:24px;height:24px;color:var(--color-action-strong);place-items:center;display:grid}.skill-community-card-icon svg{width:15px;height:15px}.skill-community-card-main{min-width:0;display:grid}.skill-community-card-main strong{color:var(--color-ink);overflow-wrap:anywhere;font-size:.78rem;font-weight:800;line-height:1.25}.skill-delete-button{color:var(--color-error-strong);justify-self:end}.skill-delete-button svg{width:15px;height:15px}@media (width<=760px){.reference-board-body,.skill-community-grid{grid-template-columns:minmax(0,1fr)}.reference-detail-card{border-top:1px solid var(--color-line);border-left:0}.artifact-preview-frame{min-height:440px}.timeline-token-overview{grid-template-columns:minmax(0,1fr)}.timeline-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-event-item{grid-template-columns:96px 24px minmax(0,1fr);min-height:72px}.timeline-event-time{max-width:88px;font-size:.64rem}.timeline-event-title-line{flex-wrap:wrap;gap:6px}.timeline-event-main,.timeline-event-toggle{min-height:72px}.skill-detail-head{grid-template-columns:minmax(0,1fr)}.skill-delete-button{justify-self:start}.round-card.is-locked-open>.round-card-head,.clarification-card.is-locked-open>.clarification-card-head,.approval-card.is-locked-open>.approval-card-head{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:10px}.round-card.is-locked-open .round-card-title,.clarification-card.is-locked-open .clarification-card-title,.approval-card.is-locked-open .approval-card-title{flex-wrap:wrap;align-items:flex-start}.round-card.is-locked-open .round-submit-button{justify-self:stretch;width:100%;min-height:38px}.approval-card-actions{grid-template-columns:minmax(0,1fr);gap:7px;width:100%;display:grid}.approval-card-decision{width:100%;min-height:38px}.approval-card-content,.worklist-feedback-content{padding-left:13px;padding-right:10px}.round-composer{padding-right:0}.worklist-page-panel .task-board-body{grid-template-columns:minmax(0,1fr)}.worklist-page-panel .task-detail-card{display:none}.worklist-page-panel .task-list{padding:14px}.timeline-overview{padding:16px 14px}.timeline-token-hero{grid-template-rows:auto}.timeline-token-chart,.timeline-breakdown-grid{display:none}.timeline-events{padding:12px 14px 14px}.timeline-trace-card{gap:11px;margin-bottom:14px;padding:12px}.timeline-trace-section{grid-template-columns:minmax(0,1fr);gap:6px}.timeline-trace-diff-list,.timeline-trace-snippet-list{display:none}.timeline-trace-file-list li{grid-template-columns:minmax(0,1fr)}}.detail-list{margin:0;padding:16px;display:grid}.detail-list div{border-top:1px dashed var(--color-line);gap:4px;padding:10px 0;display:grid}.detail-list div:first-child{border-top:0;padding-top:0}.detail-list dt{color:var(--color-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.64rem;font-weight:800}.detail-list dd{overflow-wrap:anywhere;color:var(--color-body);margin:0;font-size:.82rem;font-weight:700}.signal-strip{border-bottom:1px solid var(--color-line-soft);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.signal-strip div{border-right:1px solid var(--color-line-soft);min-width:0;padding:14px 18px}.signal-strip div:last-child{border-right:0}.signal-strip span{color:var(--color-muted);font-family:var(--font-mono);margin-bottom:5px;font-size:.65rem;font-weight:700;display:block}.signal-strip strong{overflow-wrap:anywhere;color:var(--color-text);font-size:.86rem;display:block}.signal-strip .is-live strong{color:var(--color-brand-dark)}.workspace-page{--sidebar-width:72px;--workspace-page-padding-x:clamp(6px, 1vw, 18px);--workspace-page-padding-y:clamp(6px, 1vh, 18px);min-height:100vh;padding:var(--workspace-page-padding-y) var(--workspace-page-padding-x);color:var(--color-text);background:var(--color-page)}.workspace-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);width:min(100%, var(--workspace-content-max));height:calc(100vh - var(--workspace-page-padding-y) * 2);height:calc(100dvh - var(--workspace-page-padding-y) * 2);min-height:min(680px, calc(100vh - var(--workspace-page-padding-y) * 2));background:var(--color-page);border:1px solid var(--color-line);border-radius:var(--radius-app);box-shadow:var(--shadow-ring), var(--shadow-app);margin:0 auto;display:grid;overflow:hidden}.workspace-shell .sidebar{z-index:20;background:var(--color-page);border:0;border-radius:0;gap:8px;width:auto;min-height:auto;padding:14px 8px 12px;position:relative;overflow:visible}.workspace-shell .workspace-logo{margin-top:11px;margin-bottom:16px}.workspace-shell .sidebar-button{height:38px}.workspace-shell .sidebar-nav{gap:14px}.workspace-shell .sidebar-status-group{gap:12px;margin-bottom:6px}.workspace-shell .sidebar-button svg{stroke-width:1.75px;width:24px;height:24px}.workspace-shell .sidebar-button-badge{top:5px;right:9px}.workspace-shell .sidebar-button-badge.is-pill{top:2px;right:1px}.workspace-shell .sidebar-button:hover,.workspace-shell .sidebar-button.is-active,.workspace-shell .sidebar-button:focus-visible{background:var(--color-surface);box-shadow:none}.workspace-main{z-index:1;background:var(--color-page);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative}.workspace-shell.is-headerless .workspace-main{grid-template-rows:minmax(0,1fr)}.mobile-workspace-titlebar{display:none}.mobile-workspace-title{min-width:0;display:grid}.mobile-workspace-title h1{color:var(--color-ink);font-family:var(--font-heading);text-overflow:ellipsis;white-space:nowrap;font-size:1.22rem;font-weight:700;line-height:1;overflow:hidden}.mobile-workspace-titlebar-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.mobile-workspace-icon-button{width:38px;height:38px;color:var(--color-muted);cursor:pointer;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-control);place-items:center;display:grid;position:relative}.mobile-workspace-icon-button:hover,.mobile-workspace-icon-button:focus-visible,.mobile-workspace-icon-button.is-active{color:var(--color-text);background:var(--color-surface-hover);outline:none}.mobile-workspace-icon-button:focus-visible{outline:var(--ring-action);outline-offset:2px}.mobile-workspace-icon-button svg{stroke-width:1.9px;width:19px;height:19px}.mobile-workspace-icon-button.is-syncing:after{content:"";background:var(--color-sync);border-radius:var(--radius-pill);width:7px;height:7px;position:absolute;top:7px;right:7px}.workspace-grid{background:var(--color-page);grid-template-columns:minmax(560px,1.45fr) minmax(330px,.55fr);gap:8px;min-height:0;padding:10px 10px 10px 0;display:grid;position:relative;overflow:hidden}.workspace-grid.is-tutti{grid-template-columns:minmax(560px,1.45fr) minmax(330px,.55fr)}.chat-workspace-grid{align-items:stretch}.references-workspace-grid,.artifacts-workspace-grid,.worklist-workspace-grid{grid-template-columns:minmax(0,1fr)}.settings-workspace-grid{grid-template-columns:minmax(0,1fr);align-content:start;overflow:auto}.timeline-workspace-grid{grid-template-columns:minmax(0,1fr);overflow:hidden}.settings-page-grid{min-width:0;min-height:0;display:block}.timeline-page-grid{min-width:0;min-height:0;display:grid}.workspace-grid>.panel,.chat-side-column>.panel{border-color:var(--color-line);min-height:0;box-shadow:none}.chat-primary{min-height:0}.chat-panel .panel-title{flex:auto}.chat-panel .panel-title h3{text-overflow:ellipsis;min-width:0;overflow:hidden}.scratchpad-panel{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.chat-side-column{gap:var(--gap-md);grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;display:grid}.chat-side-column.has-progress{grid-template-rows:minmax(220px,1fr) auto}.scratchpad-panel-body{gap:14px;min-height:0;padding:16px;display:grid;overflow:auto}.scratchpad-panel-body.scratchpad{grid-template-rows:minmax(0,1fr) auto;gap:0;padding:15px 16px 16px;position:relative;overflow:hidden}.scratchpad-content{min-height:0;padding-bottom:4px;animation:.18s ease-out tutti-scratchpad-page-enter;position:relative;overflow:auto}.scratchpad-content.is-submitted{color:var(--color-muted)}@keyframes tutti-scratchpad-page-enter{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.scratchpad-panel-body>.empty-state{align-self:stretch;min-height:100%}.scratchpad-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;min-width:0;padding-left:12px;display:grid;position:relative}.scratchpad-head:before{width:var(--selection-rail-width);content:"";background:var(--color-action);border-radius:var(--radius-pill);height:calc(100% - 1px);position:absolute;top:0;left:0}.scratchpad-head h4{color:var(--color-ink);font-family:var(--font-heading);margin-top:4px;font-size:1.08rem;line-height:1.08}.scratchpad-summary{color:var(--color-body);margin-top:8px;padding:0 0 12px 12px;font-size:.85rem;line-height:1.48}.scratchpad-section{border-top:1px dashed var(--color-line);min-width:0;padding:10px 0 0 12px}.scratchpad-label{color:var(--color-muted);font-family:var(--font-mono);font-size:.64rem;font-weight:800;line-height:1.2;display:block}.scratchpad-list{margin-top:6px;display:grid}.scratchpad-row{border-top:1px dashed var(--color-line);grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:6px 0;display:grid}.scratchpad-row:first-child{border-top:0}.scratchpad-marker{width:20px;height:20px;color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:7px;place-items:center;display:grid}.scratchpad-marker svg{width:12px;height:12px}.scratchpad-row.is-confirmed .scratchpad-marker{color:var(--color-action-strong);background:var(--color-action-wash);border-color:#08795f33}.scratchpad-row.is-question .scratchpad-marker{color:var(--color-warning);background:var(--color-warning-soft);border-color:#ad680033}.scratchpad-row.is-task-change .scratchpad-marker{color:var(--color-sync);background:var(--color-sync-soft);border-color:#325f7833}.scratchpad-row p{color:var(--color-body);font-size:.8rem;font-weight:700;line-height:1.42}.scratchpad-submitted-receipt{width:100%;min-width:0;color:inherit;text-align:left;background:0 0;border:0;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;padding:3px 0 8px;display:grid}.scratchpad-submitted-copy{gap:5px;min-width:0;display:grid}.scratchpad-submitted-copy>strong{color:var(--color-muted);font-size:.72rem;font-weight:850;line-height:1.25}.scratchpad-submitted-task-list{gap:3px;min-width:0;display:grid}.scratchpad-submitted-task{min-width:0;max-width:100%;color:var(--color-body);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,max-content) auto;justify-content:start;align-items:baseline;gap:6px;padding:0;display:inline-grid}.scratchpad-submitted-task:disabled{cursor:default}.scratchpad-submitted-task:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #00ce8c38}.scratchpad-submitted-task span{overflow-wrap:anywhere;min-width:0;font-size:.78rem;font-weight:820;line-height:1.25}.scratchpad-submitted-task small{min-width:0;color:var(--color-muted);font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.62rem;font-weight:850;line-height:1.25}.scratchpad-submitted-status{color:var(--color-muted);background:#7d88801a;justify-self:end}.scratchpad-footer{background:var(--color-surface-subtle);border-top:1px solid var(--color-line-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:10px -16px -16px;padding:10px 16px 14px;display:grid}.scratchpad-footer-note{-webkit-line-clamp:4;min-width:0;color:var(--color-muted);overflow-wrap:anywhere;text-overflow:ellipsis;white-space:normal;-webkit-box-orient:vertical;grid-column:1/-1;margin:0;font-size:.72rem;font-weight:700;line-height:1.34;display:-webkit-box;overflow:hidden}.scratchpad-footer-note.is-error{color:var(--color-error-strong)}.scratchpad-submit-context{gap:3px;min-width:0;display:grid}.scratchpad-page-controls{align-items:center;gap:4px;min-width:0;display:flex}.scratchpad-page-button{border-radius:7px;width:24px;height:24px;min-height:24px}.scratchpad-page-button svg{width:15px;height:15px}.scratchpad-page-number{min-width:28px;color:var(--color-muted);font-family:var(--font-mono);text-align:center;font-size:.68rem;font-weight:800;line-height:1}.scratchpad-updated-at{min-width:0;color:var(--color-muted);font-family:var(--font-body);gap:1px;font-size:.74rem;font-weight:400;line-height:1.24;display:grid}.scratchpad-footer-actions{justify-content:end;gap:8px;min-width:0;display:flex}.scratchpad-sync-indicator{width:24px;height:36px;color:var(--color-sync);visibility:hidden;place-items:center;display:grid}.scratchpad-sync-indicator svg{width:17px;height:17px}.scratchpad-sync-indicator.is-syncing{visibility:visible}.scratchpad-sync-indicator.is-syncing svg{animation:.9s linear infinite tutti-scratchpad-refresh-spin}.scratchpad-submit-button{width:auto;min-width:100px;padding-left:14px;padding-right:14px}.scratchpad-submit-button.is-submitting svg{animation:.9s linear infinite tutti-scratchpad-refresh-spin}@keyframes tutti-scratchpad-refresh-spin{to{transform:rotate(360deg)}}.execution-progress-panel{grid-template-rows:auto auto;min-height:0;display:grid}.mobile-scratchpad-layer{display:none}.execution-progress-panel .panel-title h3{font-size:1rem}.execution-progress-body{background:var(--color-surface);min-height:0;padding:14px 16px 16px;overflow:hidden}.execution-progress-panel.is-complete .execution-progress-body{background:var(--color-action-wash);animation:1.5s ease-out tutti-execution-complete-wash}.execution-progress-list{align-content:start;min-height:0;display:grid;overflow:auto}.execution-progress-step{grid-template-columns:24px minmax(0,1fr);align-items:start;gap:9px;min-width:0;padding:8px 0;display:grid;position:relative}.execution-progress-step:before{content:"";background:var(--color-line);width:1px;position:absolute;top:0;bottom:0;left:11px}.execution-progress-step:first-child:before{top:50%}.execution-progress-step:last-child:before{bottom:50%}.execution-progress-step:only-child:before{display:none}.execution-progress-step.is-done .execution-progress-step-label{color:var(--color-ink)}.execution-progress-step.is-waiting .execution-progress-step-label{color:var(--color-muted)}.execution-progress-step.is-failed .execution-progress-step-label{color:var(--color-error-strong)}.execution-progress-step.is-pending .execution-progress-step-label{color:var(--color-warning)}.execution-progress-marker{z-index:1;width:22px;height:22px;color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:50%;place-items:center;display:grid;position:relative}.execution-progress-step-content{gap:3px;min-width:0;padding-top:1px;display:grid}.execution-progress-step-title{min-width:0;color:var(--color-body);font-size:.8rem;font-weight:800;line-height:1.36}.execution-progress-marker svg{stroke-width:2.4px;width:13px;height:13px}.execution-progress-marker.is-waiting svg{color:#0000;fill:#0000;width:8px;height:8px}.execution-progress-marker.is-running{color:var(--color-sync);background:var(--color-sync-soft);border-color:#325f7838}.execution-progress-marker.is-running svg{width:13px;height:13px;animation:.9s linear infinite tutti-execution-progress-spin}.execution-progress-marker.is-done{color:var(--color-action-strong);background:var(--color-action-wash);border-color:#08795f38}.execution-progress-marker.is-failed{color:var(--color-error-strong);background:var(--color-error-soft);border-color:#9b343438}.execution-progress-marker.is-pending{color:var(--color-warning);background:var(--color-warning-soft);border-color:#b56f1a3d}.execution-progress-step-label{min-width:0;color:var(--color-body)}.execution-progress-step-elapsed{color:var(--color-muted)}.execution-progress-step-detail,.execution-progress-step-metrics{min-width:0;color:var(--color-muted);font-size:.74rem;font-weight:700;line-height:1.36}.execution-progress-step-metrics{flex-wrap:wrap;gap:6px;display:flex}.execution-progress-step-metric{min-width:0}@keyframes tutti-execution-progress-spin{to{transform:rotate(360deg)}}@keyframes tutti-execution-complete-wash{0%{background:var(--color-surface)}18%{background:#d5f5e199}to{background:var(--color-action-wash)}}@media (prefers-reduced-motion:reduce){.execution-progress-marker.is-running svg,.execution-progress-panel.is-complete .execution-progress-body{animation:none}}.tasks{grid-template-rows:auto minmax(0,1fr);display:grid}.worklist-page-panel{min-height:0}.worklist-page-body{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.worklist-page-panel .task-board-body{grid-row:2;grid-template-columns:minmax(320px,.86fr) minmax(300px,.72fr);gap:0;min-height:0;padding:0;display:grid;overflow:hidden}.worklist-page-empty{grid-row:2;min-width:0;min-height:0;display:grid;overflow:hidden}.worklist-page-empty>.empty-state{align-self:stretch;min-height:100%}.worklist-page-panel .task-list{padding:12px 18px}.worklist-page-panel .task-detail-card{padding:20px 18px;overflow:auto}@media (width<=1080px){.workspace-shell{grid-template-columns:1fr;height:auto;max-height:none}.sidebar{border-right:0;border-bottom:1px solid var(--color-line);flex-direction:row;align-items:center;overflow-x:auto}.workspace-logo{flex:none;margin:0 10px 0 0}.sidebar-nav,.sidebar-status-group,.sidebar-footer{flex-direction:row;width:auto}.sidebar-footer{margin:0 0 0 auto}.sidebar-button,.sidebar-status-entry{flex:none}.workspace-grid,.workspace-grid.is-tutti{grid-template-columns:1fr;overflow:visible}.chat-side-column{grid-template-rows:auto}.worklist-page-panel .task-board-body{grid-template-columns:minmax(0,1fr)}.worklist-page-panel .task-detail-card{border-top:1px solid var(--color-line);border-left:0}}@media (width<=760px){.workspace-page{background:var(--color-surface);min-height:100dvh;padding:0}.workspace-shell{width:100%;height:100dvh;min-height:100dvh;box-shadow:none;border:0;border-radius:0;overflow:hidden}.workspace-shell.is-headerless .workspace-main{min-height:0;padding-bottom:calc(76px + env(safe-area-inset-bottom,0px));background:var(--color-surface);grid-template-rows:auto minmax(0,1fr)}.mobile-workspace-titlebar{z-index:5;min-width:0;min-height:58px;padding:calc(12px + env(safe-area-inset-top,0px)) 14px 10px;background:var(--color-surface-subtle);border-bottom:1px solid var(--color-line-soft);justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.workspace-shell .sidebar{right:auto;bottom:max(10px, env(safe-area-inset-bottom,0px));z-index:80;background:color-mix(in srgb, var(--color-surface) 94%, var(--color-page));border:1px solid var(--color-line);width:min(100% - 28px,360px);min-height:58px;box-shadow:var(--shadow-ring), 0 16px 40px #11182724;border-radius:20px;flex-direction:row;align-items:center;padding:7px;display:flex;position:fixed;left:50%;overflow:visible;transform:translate(-50%)}.workspace-shell .workspace-logo,.workspace-shell .sidebar-status-group,.workspace-shell .sidebar-footer,.workspace-shell .sidebar-button[data-label=Artifacts],.workspace-shell .sidebar-button[data-label=References],.workspace-shell .sidebar-button[data-label=Skills],.workspace-shell .sidebar-button[data-label=Settings]{display:none}.workspace-shell .sidebar-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;display:grid}.workspace-shell .sidebar-button{border-radius:14px;width:100%;height:44px}.workspace-shell .sidebar-button:after,.workspace-shell .sidebar-status-entry:after{display:none}.workspace-shell .sidebar-button svg{width:22px;height:22px}.workspace-shell .sidebar-button:hover,.workspace-shell .sidebar-button.is-active,.workspace-shell .sidebar-button:focus-visible{background:var(--color-surface-subtle)}.mobile-scratchpad-layer{z-index:100;pointer-events:none;align-items:end;display:grid;position:fixed;inset:0}.mobile-scratchpad-layer.is-open{pointer-events:auto}.mobile-scratchpad-backdrop{cursor:pointer;background:#0f1a1338;border:0;position:absolute;inset:0}.mobile-scratchpad-card{width:min(100% - 20px,460px);max-height:min(72dvh,620px);margin:0 auto calc(78px + env(safe-area-inset-bottom,0px));background:var(--color-surface);border:1px solid var(--color-line);box-shadow:var(--shadow-ring), 0 24px 80px #11182738;border-radius:18px;grid-template-rows:auto minmax(0,1fr);display:grid;position:relative;overflow:hidden}.mobile-scratchpad-card-head{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-line-soft);justify-content:space-between;align-items:center;gap:12px;min-width:0;min-height:52px;padding:12px 14px;display:flex}.mobile-scratchpad-card-head h2{color:var(--color-ink);font-family:var(--font-heading);text-overflow:ellipsis;white-space:nowrap;font-size:1.08rem;line-height:1;overflow:hidden}.mobile-scratchpad-close{flex:none}.mobile-scratchpad-card-body{gap:10px;min-height:0;display:grid;overflow:auto}.mobile-scratchpad-card .scratchpad-panel,.mobile-scratchpad-card .execution-progress-panel{box-shadow:none;border:0;border-radius:0}.mobile-scratchpad-card .scratchpad-panel>.panel-header{display:none}.quiet-button,.action-button{width:100%}.scratchpad-footer{grid-template-columns:minmax(0,1fr)}.scratchpad-submit-button{justify-self:end;width:auto}.workspace-grid{background:var(--color-surface);min-height:0;padding:0;overflow:hidden}.workspace-grid>.panel,.chat-side-column>.panel{border-left:0;border-right:0;border-radius:0}.chat-side-column{grid-template-rows:auto;grid-template-columns:1fr;display:none}.chat-panel>.panel-header,.worklist-page-panel>.panel-header,.timeline-panel>.panel-header,.artifacts-panel>.panel-header,.references-panel>.panel-header,.settings-sheet-head{display:none}.settings-section{grid-template-columns:minmax(0,1fr);gap:12px}.settings-row{grid-template-columns:minmax(0,1fr)}.settings-row .quiet-button{justify-self:start;width:auto}}.tutti-brand{min-width:0;color:var(--color-ink);cursor:pointer;font-family:var(--font-label);background:0 0;border:0;flex:none;align-items:center;padding:0;font-size:.95rem;font-weight:900;display:inline-flex}.tutti-logo{--brand-logo-width:var(--size-logo-appbar)}.product-page{isolation:isolate;min-height:100vh;padding:var(--page-padding-y) var(--page-padding-x) 42px;color:var(--color-text);background:var(--color-page);position:relative;overflow:hidden}.product-page>:not(.product-page-decor){z-index:1;position:relative}.product-page-decor{z-index:0;color:#0f1a1313;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.product-page-decor circle,.product-page-decor rect,.product-page-decor path{fill:currentColor}.product-shell{width:min(100%, var(--content-max));margin:0 auto}.product-appbar{width:min(100%, var(--content-max));justify-content:space-between;align-items:center;gap:18px;margin:0 auto 18px;display:flex}.product-appbar-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.user-profile{min-width:0;color:var(--color-ink);align-items:center;gap:9px;font-size:.84rem;font-weight:800;display:inline-flex}.user-profile .avatar{margin-left:0}.user-profile-text{gap:2px;min-width:0;line-height:1.08;display:grid}.user-profile-text strong{overflow-wrap:anywhere;font:inherit}.user-profile-text span{max-width:220px;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:700;overflow:hidden}.auth-shell{place-items:center;min-height:calc(100vh - 142px);display:grid}.auth-card{background:var(--color-surface);border:1px solid var(--color-shell-border);border-radius:var(--radius-app);width:min(100%,420px);box-shadow:var(--shadow-ring), var(--shadow-app);padding:28px}.auth-card-header,.entry-card,.form-stack,.form-field{display:grid}.auth-card-header{gap:8px}.auth-card>.action-button{width:100%}.entry-card{gap:18px;width:min(100%,480px);margin:0 auto}.entry-card.auth-card{width:min(100%,420px)}.entry-card h1{color:var(--color-ink);font-family:var(--font-heading);font-size:2.25rem;line-height:1}.entry-card p{color:var(--color-body);font-size:.9rem;line-height:1.55}.form-stack{gap:12px}.form-field{gap:7px}.input-shell{height:42px;padding:0 12px;font-weight:700}.form-error{overflow-wrap:anywhere;color:var(--color-error-strong);margin:0;font-size:.82rem;font-weight:700}.form-note{color:var(--color-muted);margin:0;font-size:.78rem;font-weight:700;line-height:1.45}.invite-card{width:min(100%,440px)}.invite-summary{background:var(--color-surface-subtle);border:1px solid var(--color-panel-border);border-radius:var(--radius-item);gap:12px;padding:14px;display:grid}.invite-project{justify-content:space-between;align-items:center;gap:16px;display:flex}.invite-project h2{color:var(--color-ink);font-family:var(--font-heading);margin:0;font-size:1.45rem;line-height:1}.invite-meta,.account-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.invite-meta{border-top:1px dashed var(--color-line);padding-top:12px}.account-row{border-top:1px solid var(--color-line-soft);border-bottom:1px solid var(--color-line-soft);padding:12px 0}.invite-meta span,.account-row span{color:var(--color-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.64rem;font-weight:800;display:block}.invite-meta strong,.account-row strong{max-width:24ch;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:.8rem;display:block;overflow:hidden}.quiet-link{color:var(--color-muted);cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:.78rem;font-weight:800}.quiet-link:hover,.quiet-link:focus-visible{color:var(--color-ink)}.project-center-compact{gap:12px;display:grid}.project-center-compact.is-empty{min-height:calc(100vh - 148px)}.project-card-toolbar{justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:2px 2px 0;display:flex}.project-center-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.project-center-empty{min-height:min(520px,100vh - 220px);color:var(--color-muted);text-align:center;place-items:center;padding:24px 16px 56px;display:grid}.project-center-empty p{color:currentColor;max-width:34ch;font-size:.92rem;font-weight:800;line-height:1.45}.project-card{background:var(--color-surface);border:1px solid var(--color-panel-border);border-radius:var(--radius-app);min-width:0;min-height:154px;box-shadow:var(--shadow-ring), var(--shadow-panel);grid-template-rows:auto minmax(0,1fr) auto;align-content:space-between;gap:10px;padding:14px 16px;display:grid}.project-card.is-active{background:linear-gradient(180deg, var(--color-surface), var(--color-surface-subtle));border-color:var(--color-state-border)}.project-card.is-offline{color:var(--color-muted)}.project-add-card{color:var(--color-muted);cursor:pointer;box-shadow:none;text-align:center;border-style:dashed;grid-template-rows:auto;grid-template-columns:auto auto;place-content:center;align-items:center;gap:10px}.project-add-card:hover,.project-add-card:focus-visible{color:var(--color-action-strong);background:var(--color-action-wash);border-color:var(--color-action)}.project-add-card:focus-visible{outline:var(--ring-action);outline-offset:2px}.project-add-card-icon{width:30px;height:30px;color:var(--color-action-strong);place-items:center;display:grid}.project-add-card-icon svg{stroke-width:2.15px;width:24px;height:24px}.project-add-card-copy{display:block}.project-add-card-title{color:var(--color-ink);font-size:.92rem;font-weight:900}.project-add-card-description{color:currentColor;font-size:.76rem;font-weight:800}.project-join-link-card{box-shadow:none;grid-template-rows:auto auto auto auto;align-content:stretch;gap:6px}.project-join-link-card-title{min-width:0;color:var(--color-ink);align-items:center;gap:7px;font-size:.88rem;font-weight:900;display:flex}.project-join-link-card-title svg{width:16px;height:16px;color:var(--color-action-strong);stroke-width:2.15px;flex:none}.project-join-link-card .form-field{gap:3px}.project-join-link-card .input-shell{width:100%;min-width:0;height:30px;padding:0 9px;font-size:.78rem}.project-join-link-card .form-error{font-size:.76rem}.project-join-link-card-actions{justify-content:flex-end;align-items:center;gap:6px;min-width:0;margin-top:2px;display:flex}.project-join-link-card-actions .action-button,.project-join-link-card-actions .quiet-button{width:fit-content;min-height:30px;padding:0 10px}.project-card-main{justify-content:space-between;align-items:center;gap:14px;min-width:0;display:flex}.project-card-title{gap:6px;min-width:0;display:grid}.project-card h2{overflow-wrap:anywhere;color:var(--color-ink);font-family:var(--font-heading);margin:0;font-size:1.55rem;line-height:1}.project-card-actions{flex:none;justify-content:flex-end;align-items:center;min-width:0;display:flex}.project-card-actions .action-button,.project-card-actions .quiet-button{width:fit-content;min-height:34px;padding:0 11px}.project-card.is-offline h2{color:var(--color-muted)}.project-card-people{align-self:start}.project-card .avatar-stack{flex:none;padding-top:1px}.project-card-meta{border-top:1px solid var(--color-line);grid-row:3;grid-template-columns:repeat(auto-fit,minmax(0,1fr));align-self:end;margin:0;display:grid}.project-card-meta div{border-left:1px solid var(--color-line);grid-template-rows:auto auto;grid-template-columns:18px minmax(0,1fr);column-gap:8px;min-width:0;padding:10px 10px 0;display:grid}.project-card-meta div:first-child{border-left:0;padding-left:0}.project-card-meta-icon{width:18px;height:18px;color:var(--color-muted);grid-row:1/span 2;place-items:center;display:grid}.project-card-meta-icon svg{stroke-width:2.2px;width:15px;height:15px}.project-card-meta dt{color:var(--color-muted);font-family:var(--font-mono);text-transform:uppercase;grid-column:2;font-size:.62rem;font-weight:800}.project-card-meta dd{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;grid-column:2;margin:4px 0 0;font-size:.8rem;font-weight:800;overflow:hidden}.project-card.is-offline .project-card-meta dd{color:var(--color-muted)}@media (width<=1080px){.project-center-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.product-page{padding:24px 14px 32px}.product-page-decor{opacity:.62;width:184%;left:-42%}.product-appbar{flex-direction:column;align-items:flex-start}.product-appbar-actions,.invite-project{flex-direction:column;align-items:stretch}.entry-card h1{font-size:1.8rem}.project-card-toolbar{flex-direction:column;align-items:stretch}.project-center-grid{grid-template-columns:1fr}.project-center-compact.is-empty{min-height:calc(100vh - 132px)}.project-center-empty{min-height:min(420px,100vh - 188px);padding-bottom:32px}.project-card{min-height:auto}.project-card h2{font-size:1.4rem}.project-card-meta{grid-template-columns:1fr}.project-card-meta div,.project-card-meta div:first-child{border-top:1px solid var(--color-line);border-left:0;padding:10px 0}.project-card-meta div:first-child{border-top:0}.auth-shell{place-items:start center;min-height:calc(100vh - 116px)}}#root{min-width:320px;min-height:100vh}