@xfey/tutti 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -0
- package/dist/approvals/index.d.ts +3 -0
- package/dist/approvals/index.js +3 -0
- package/dist/approvals/manager.d.ts +47 -0
- package/dist/approvals/manager.js +180 -0
- package/dist/approvals/projections.d.ts +34 -0
- package/dist/approvals/projections.js +444 -0
- package/dist/artifacts/index.d.ts +4 -0
- package/dist/artifacts/index.js +4 -0
- package/dist/artifacts/manifest.d.ts +48 -0
- package/dist/artifacts/manifest.js +334 -0
- package/dist/artifacts/preview-runtime.d.ts +97 -0
- package/dist/artifacts/preview-runtime.js +585 -0
- package/dist/artifacts/static-preview.d.ts +17 -0
- package/dist/artifacts/static-preview.js +180 -0
- package/dist/chat-assistant/index.d.ts +66 -0
- package/dist/chat-assistant/index.js +268 -0
- package/dist/checks/index.d.ts +47 -0
- package/dist/checks/index.js +169 -0
- package/dist/collaboration-state/clarification-messages.d.ts +8 -0
- package/dist/collaboration-state/clarification-messages.js +180 -0
- package/dist/collaboration-state/clarification-records.d.ts +27 -0
- package/dist/collaboration-state/clarification-records.js +266 -0
- package/dist/collaboration-state/clarification-round-writes.d.ts +14 -0
- package/dist/collaboration-state/clarification-round-writes.js +58 -0
- package/dist/collaboration-state/clarification-rounds.d.ts +19 -0
- package/dist/collaboration-state/clarification-rounds.js +347 -0
- package/dist/collaboration-state/clarification-successors.d.ts +8 -0
- package/dist/collaboration-state/clarification-successors.js +318 -0
- package/dist/collaboration-state/execution-status.d.ts +3 -0
- package/dist/collaboration-state/execution-status.js +8 -0
- package/dist/collaboration-state/index.d.ts +17 -0
- package/dist/collaboration-state/index.js +16 -0
- package/dist/collaboration-state/messages.d.ts +25 -0
- package/dist/collaboration-state/messages.js +371 -0
- package/dist/collaboration-state/read-state.d.ts +7 -0
- package/dist/collaboration-state/read-state.js +136 -0
- package/dist/collaboration-state/recovery.d.ts +6 -0
- package/dist/collaboration-state/recovery.js +125 -0
- package/dist/collaboration-state/run-recording.d.ts +5 -0
- package/dist/collaboration-state/run-recording.js +216 -0
- package/dist/collaboration-state/run-results.d.ts +12 -0
- package/dist/collaboration-state/run-results.js +202 -0
- package/dist/collaboration-state/scratchpad-source-state.d.ts +46 -0
- package/dist/collaboration-state/scratchpad-source-state.js +207 -0
- package/dist/collaboration-state/scratchpad.d.ts +8 -0
- package/dist/collaboration-state/scratchpad.js +84 -0
- package/dist/collaboration-state/serialization.d.ts +16 -0
- package/dist/collaboration-state/serialization.js +71 -0
- package/dist/collaboration-state/storage-types.d.ts +136 -0
- package/dist/collaboration-state/storage-types.js +2 -0
- package/dist/collaboration-state/task-details.d.ts +5 -0
- package/dist/collaboration-state/task-details.js +25 -0
- package/dist/collaboration-state/types.d.ts +289 -0
- package/dist/collaboration-state/types.js +2 -0
- package/dist/collaboration-state/worklist.d.ts +11 -0
- package/dist/collaboration-state/worklist.js +286 -0
- package/dist/control-plane/clarification-commands.d.ts +34 -0
- package/dist/control-plane/clarification-commands.js +106 -0
- package/dist/control-plane/command-recovery.d.ts +3 -0
- package/dist/control-plane/command-recovery.js +79 -0
- package/dist/control-plane/context-sync.d.ts +47 -0
- package/dist/control-plane/context-sync.js +207 -0
- package/dist/control-plane/event-publishers.d.ts +24 -0
- package/dist/control-plane/event-publishers.js +192 -0
- package/dist/control-plane/execution-status.d.ts +13 -0
- package/dist/control-plane/execution-status.js +130 -0
- package/dist/control-plane/follow-up-context.d.ts +27 -0
- package/dist/control-plane/follow-up-context.js +93 -0
- package/dist/control-plane/follow-up-output.d.ts +53 -0
- package/dist/control-plane/follow-up-output.js +141 -0
- package/dist/control-plane/follow-up-run.d.ts +22 -0
- package/dist/control-plane/follow-up-run.js +90 -0
- package/dist/control-plane/follow-up-start.d.ts +26 -0
- package/dist/control-plane/follow-up-start.js +101 -0
- package/dist/control-plane/formatters.d.ts +12 -0
- package/dist/control-plane/formatters.js +47 -0
- package/dist/control-plane/index.d.ts +62 -0
- package/dist/control-plane/index.js +416 -0
- package/dist/control-plane/invalidations.d.ts +12 -0
- package/dist/control-plane/invalidations.js +67 -0
- package/dist/control-plane/procedure-logging.d.ts +11 -0
- package/dist/control-plane/procedure-logging.js +95 -0
- package/dist/control-plane/project-brief-refresh.d.ts +31 -0
- package/dist/control-plane/project-brief-refresh.js +105 -0
- package/dist/control-plane/project-context-bootstrap.d.ts +39 -0
- package/dist/control-plane/project-context-bootstrap.js +107 -0
- package/dist/control-plane/reference-summary-refresh.d.ts +22 -0
- package/dist/control-plane/reference-summary-refresh.js +344 -0
- package/dist/control-plane/run-lineage.d.ts +8 -0
- package/dist/control-plane/run-lineage.js +13 -0
- package/dist/control-plane/run-result-recording.d.ts +46 -0
- package/dist/control-plane/run-result-recording.js +81 -0
- package/dist/control-plane/run-scheduler.d.ts +35 -0
- package/dist/control-plane/run-scheduler.js +110 -0
- package/dist/control-plane/run-start.d.ts +30 -0
- package/dist/control-plane/run-start.js +167 -0
- package/dist/control-plane/scratchpad-auto-refresh.d.ts +32 -0
- package/dist/control-plane/scratchpad-auto-refresh.js +150 -0
- package/dist/control-plane/scratchpad-refresh-start.d.ts +60 -0
- package/dist/control-plane/scratchpad-refresh-start.js +240 -0
- package/dist/control-plane/scratchpad-refresh.d.ts +29 -0
- package/dist/control-plane/scratchpad-refresh.js +55 -0
- package/dist/control-plane/scratchpad-source-messages.d.ts +10 -0
- package/dist/control-plane/scratchpad-source-messages.js +131 -0
- package/dist/control-plane/startup-recovery.d.ts +19 -0
- package/dist/control-plane/startup-recovery.js +113 -0
- package/dist/control-plane/task-compile-continuation.d.ts +25 -0
- package/dist/control-plane/task-compile-continuation.js +127 -0
- package/dist/control-plane/task-compile-output.d.ts +29 -0
- package/dist/control-plane/task-compile-output.js +122 -0
- package/dist/control-plane/task-compile-start.d.ts +43 -0
- package/dist/control-plane/task-compile-start.js +280 -0
- package/dist/control-plane/task-proposal.d.ts +3 -0
- package/dist/control-plane/task-proposal.js +37 -0
- package/dist/control-plane/types.d.ts +155 -0
- package/dist/control-plane/types.js +2 -0
- package/dist/control-plane/workflows/index.d.ts +4 -0
- package/dist/control-plane/workflows/index.js +4 -0
- package/dist/control-plane/workflows/openai.d.ts +34 -0
- package/dist/control-plane/workflows/openai.js +411 -0
- package/dist/control-plane/workflows/structured-output-schemas.d.ts +9 -0
- package/dist/control-plane/workflows/structured-output-schemas.js +289 -0
- package/dist/control-plane/workflows/structured-output-validators.d.ts +15 -0
- package/dist/control-plane/workflows/structured-output-validators.js +295 -0
- package/dist/control-plane/workflows/structured-output.d.ts +3 -0
- package/dist/control-plane/workflows/structured-output.js +3 -0
- package/dist/control-plane/workflows/types.d.ts +274 -0
- package/dist/control-plane/workflows/types.js +2 -0
- package/dist/control-plane/worklist-terminal-feedback.d.ts +15 -0
- package/dist/control-plane/worklist-terminal-feedback.js +135 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +32 -0
- package/dist/procedure-engine/index.d.ts +56 -0
- package/dist/procedure-engine/index.js +163 -0
- package/dist/project-brief/index.d.ts +4 -0
- package/dist/project-brief/index.js +3 -0
- package/dist/project-brief/repository.d.ts +5 -0
- package/dist/project-brief/repository.js +97 -0
- package/dist/project-brief/source.d.ts +8 -0
- package/dist/project-brief/source.js +75 -0
- package/dist/project-brief/types.d.ts +40 -0
- package/dist/project-brief/types.js +2 -0
- package/dist/project-docs/context.d.ts +34 -0
- package/dist/project-docs/context.js +86 -0
- package/dist/project-timeline/index.d.ts +20 -0
- package/dist/project-timeline/index.js +100 -0
- package/dist/prompt-templates/index.d.ts +13 -0
- package/dist/prompt-templates/index.js +86 -0
- package/dist/provider-usage/index.d.ts +37 -0
- package/dist/provider-usage/index.js +227 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.js +2 -0
- package/dist/providers/openai/app-server/json-rpc.d.ts +71 -0
- package/dist/providers/openai/app-server/json-rpc.js +298 -0
- package/dist/providers/openai/app-server/permission-profile.d.ts +64 -0
- package/dist/providers/openai/app-server/permission-profile.js +67 -0
- package/dist/providers/openai/app-server/provider-config.d.ts +10 -0
- package/dist/providers/openai/app-server/provider-config.js +39 -0
- package/dist/providers/openai/app-server/read-only-procedure.d.ts +68 -0
- package/dist/providers/openai/app-server/read-only-procedure.js +293 -0
- package/dist/providers/openai/app-server/runtime-helpers.d.ts +20 -0
- package/dist/providers/openai/app-server/runtime-helpers.js +151 -0
- package/dist/providers/openai/app-server/skills.d.ts +82 -0
- package/dist/providers/openai/app-server/skills.js +222 -0
- package/dist/providers/openai/app-server/smoke-cli.d.ts +2 -0
- package/dist/providers/openai/app-server/smoke-cli.js +42 -0
- package/dist/providers/openai/app-server/smoke-helpers.d.ts +19 -0
- package/dist/providers/openai/app-server/smoke-helpers.js +125 -0
- package/dist/providers/openai/app-server/smoke-provider-input.d.ts +6 -0
- package/dist/providers/openai/app-server/smoke-provider-input.js +20 -0
- package/dist/providers/openai/app-server/smoke-types.d.ts +49 -0
- package/dist/providers/openai/app-server/smoke-types.js +20 -0
- package/dist/providers/openai/app-server/smoke.d.ts +9 -0
- package/dist/providers/openai/app-server/smoke.js +157 -0
- package/dist/providers/openai/app-server/workspace-write-run.d.ts +87 -0
- package/dist/providers/openai/app-server/workspace-write-run.js +379 -0
- package/dist/providers/openai/chat-assistant.d.ts +34 -0
- package/dist/providers/openai/chat-assistant.js +72 -0
- package/dist/providers/openai/codex-app-server.d.ts +126 -0
- package/dist/providers/openai/codex-app-server.js +147 -0
- package/dist/providers/openai/credential-store.d.ts +31 -0
- package/dist/providers/openai/credential-store.js +143 -0
- package/dist/providers/openai/credential-validation.d.ts +45 -0
- package/dist/providers/openai/credential-validation.js +190 -0
- package/dist/providers/openai/index.d.ts +13 -0
- package/dist/providers/openai/index.js +13 -0
- package/dist/providers/openai/machine-local-files.d.ts +19 -0
- package/dist/providers/openai/machine-local-files.js +55 -0
- package/dist/providers/openai/model-config.d.ts +4 -0
- package/dist/providers/openai/model-config.js +4 -0
- package/dist/providers/openai/provider-config-errors.d.ts +6 -0
- package/dist/providers/openai/provider-config-errors.js +13 -0
- package/dist/providers/openai/provider-config-shape.d.ts +3 -0
- package/dist/providers/openai/provider-config-shape.js +108 -0
- package/dist/providers/openai/provider-config-toml.d.ts +13 -0
- package/dist/providers/openai/provider-config-toml.js +113 -0
- package/dist/providers/openai/provider-config.d.ts +73 -0
- package/dist/providers/openai/provider-config.js +117 -0
- package/dist/providers/openai/provider-setup.d.ts +31 -0
- package/dist/providers/openai/provider-setup.js +88 -0
- package/dist/providers/openai/sdk-procedure-runner.d.ts +70 -0
- package/dist/providers/openai/sdk-procedure-runner.js +123 -0
- package/dist/providers/openai/token-usage.d.ts +11 -0
- package/dist/providers/openai/token-usage.js +90 -0
- package/dist/run-engine/index.d.ts +61 -0
- package/dist/run-engine/index.js +140 -0
- package/dist/run-pipeline/candidate-diff.d.ts +3 -0
- package/dist/run-pipeline/candidate-diff.js +10 -0
- package/dist/run-pipeline/openai.d.ts +41 -0
- package/dist/run-pipeline/openai.js +548 -0
- package/dist/run-pipeline/promotion-reconcile.d.ts +13 -0
- package/dist/run-pipeline/promotion-reconcile.js +138 -0
- package/dist/run-pipeline/result-projections.d.ts +39 -0
- package/dist/run-pipeline/result-projections.js +115 -0
- package/dist/run-pipeline/task-run-invocation.d.ts +6 -0
- package/dist/run-pipeline/task-run-invocation.js +130 -0
- package/dist/run-pipeline/task-run-output.d.ts +38 -0
- package/dist/run-pipeline/task-run-output.js +146 -0
- package/dist/server-shell/cli/args.d.ts +7 -0
- package/dist/server-shell/cli/args.js +30 -0
- package/dist/server-shell/cli/cli.d.ts +3 -0
- package/dist/server-shell/cli/cli.js +57 -0
- package/dist/server-shell/cli/errors.d.ts +9 -0
- package/dist/server-shell/cli/errors.js +53 -0
- package/dist/server-shell/cli/git-bootstrap.d.ts +24 -0
- package/dist/server-shell/cli/git-bootstrap.js +246 -0
- package/dist/server-shell/cli/host-lifecycle.d.ts +45 -0
- package/dist/server-shell/cli/host-lifecycle.js +298 -0
- package/dist/server-shell/cli/host-relay-status.d.ts +6 -0
- package/dist/server-shell/cli/host-relay-status.js +43 -0
- package/dist/server-shell/cli/host-runtime-endpoint.d.ts +22 -0
- package/dist/server-shell/cli/host-runtime-endpoint.js +120 -0
- package/dist/server-shell/cli/host-server-runtime.d.ts +30 -0
- package/dist/server-shell/cli/host-server-runtime.js +432 -0
- package/dist/server-shell/cli/index.d.ts +8 -0
- package/dist/server-shell/cli/index.js +8 -0
- package/dist/server-shell/cli/launch.d.ts +45 -0
- package/dist/server-shell/cli/launch.js +115 -0
- package/dist/server-shell/cli/machine-local.d.ts +69 -0
- package/dist/server-shell/cli/machine-local.js +223 -0
- package/dist/server-shell/cli/project-identity.d.ts +20 -0
- package/dist/server-shell/cli/project-identity.js +87 -0
- package/dist/server-shell/cli/relay-registration.d.ts +31 -0
- package/dist/server-shell/cli/relay-registration.js +61 -0
- package/dist/server-shell/command-idempotency/index.d.ts +44 -0
- package/dist/server-shell/command-idempotency/index.js +155 -0
- package/dist/server-shell/dev-runner/cli.d.ts +2 -0
- package/dist/server-shell/dev-runner/cli.js +10 -0
- package/dist/server-shell/dev-runner/config.d.ts +38 -0
- package/dist/server-shell/dev-runner/config.js +277 -0
- package/dist/server-shell/dev-runner/host-cli.d.ts +2 -0
- package/dist/server-shell/dev-runner/host-cli.js +22 -0
- package/dist/server-shell/dev-runner/index.d.ts +3 -0
- package/dist/server-shell/dev-runner/index.js +3 -0
- package/dist/server-shell/dev-runner/runner.d.ts +30 -0
- package/dist/server-shell/dev-runner/runner.js +236 -0
- package/dist/server-shell/http/create-server.d.ts +18 -0
- package/dist/server-shell/http/create-server.js +51 -0
- package/dist/server-shell/http/host-tunnel.d.ts +15 -0
- package/dist/server-shell/http/host-tunnel.js +154 -0
- package/dist/server-shell/http/logger.d.ts +7 -0
- package/dist/server-shell/http/logger.js +19 -0
- package/dist/server-shell/http/routes/agent-context-auth.d.ts +41 -0
- package/dist/server-shell/http/routes/agent-context-auth.js +73 -0
- package/dist/server-shell/http/routes/agent-context-errors.d.ts +6 -0
- package/dist/server-shell/http/routes/agent-context-errors.js +9 -0
- package/dist/server-shell/http/routes/agent-context-messages-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-messages-routes.js +74 -0
- package/dist/server-shell/http/routes/agent-context-project-doc-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-project-doc-routes.js +86 -0
- package/dist/server-shell/http/routes/agent-context-project-docs.d.ts +40 -0
- package/dist/server-shell/http/routes/agent-context-project-docs.js +98 -0
- package/dist/server-shell/http/routes/agent-context-query.d.ts +31 -0
- package/dist/server-shell/http/routes/agent-context-query.js +72 -0
- package/dist/server-shell/http/routes/agent-context-reference-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-reference-routes.js +82 -0
- package/dist/server-shell/http/routes/agent-context-references.d.ts +21 -0
- package/dist/server-shell/http/routes/agent-context-references.js +85 -0
- package/dist/server-shell/http/routes/agent-context-shared.d.ts +34 -0
- package/dist/server-shell/http/routes/agent-context-shared.js +44 -0
- package/dist/server-shell/http/routes/agent-context-skills-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-skills-routes.js +85 -0
- package/dist/server-shell/http/routes/agent-context-workspace-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-workspace-routes.js +130 -0
- package/dist/server-shell/http/routes/agent-context.d.ts +8 -0
- package/dist/server-shell/http/routes/agent-context.js +16 -0
- package/dist/server-shell/http/routes/health.d.ts +7 -0
- package/dist/server-shell/http/routes/health.js +41 -0
- package/dist/server-shell/http/routes/local-control.d.ts +40 -0
- package/dist/server-shell/http/routes/local-control.js +260 -0
- package/dist/server-shell/http/routes/project-api/approval-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/approval-routes.js +64 -0
- package/dist/server-shell/http/routes/project-api/artifacts-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/artifacts-routes.js +166 -0
- package/dist/server-shell/http/routes/project-api/clarification-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/clarification-routes.js +150 -0
- package/dist/server-shell/http/routes/project-api/constants.d.ts +3 -0
- package/dist/server-shell/http/routes/project-api/constants.js +3 -0
- package/dist/server-shell/http/routes/project-api/errors.d.ts +26 -0
- package/dist/server-shell/http/routes/project-api/errors.js +41 -0
- package/dist/server-shell/http/routes/project-api/events-stream.d.ts +11 -0
- package/dist/server-shell/http/routes/project-api/events-stream.js +55 -0
- package/dist/server-shell/http/routes/project-api/execution-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/execution-routes.js +92 -0
- package/dist/server-shell/http/routes/project-api/headers.d.ts +2 -0
- package/dist/server-shell/http/routes/project-api/headers.js +7 -0
- package/dist/server-shell/http/routes/project-api/invalidations.d.ts +10 -0
- package/dist/server-shell/http/routes/project-api/invalidations.js +57 -0
- package/dist/server-shell/http/routes/project-api/messages-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/messages-routes.js +80 -0
- package/dist/server-shell/http/routes/project-api/openapi-approval-routes.d.ts +128 -0
- package/dist/server-shell/http/routes/project-api/openapi-approval-routes.js +32 -0
- package/dist/server-shell/http/routes/project-api/openapi-artifacts-routes.d.ts +51 -0
- package/dist/server-shell/http/routes/project-api/openapi-artifacts-routes.js +56 -0
- package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.d.ts +466 -0
- package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.js +165 -0
- package/dist/server-shell/http/routes/project-api/openapi-diagnostic-routes.d.ts +16 -0
- package/dist/server-shell/http/routes/project-api/openapi-diagnostic-routes.js +17 -0
- package/dist/server-shell/http/routes/project-api/openapi-execution-routes.d.ts +215 -0
- package/dist/server-shell/http/routes/project-api/openapi-execution-routes.js +75 -0
- package/dist/server-shell/http/routes/project-api/openapi-path-parameters.d.ts +9 -0
- package/dist/server-shell/http/routes/project-api/openapi-path-parameters.js +18 -0
- package/dist/server-shell/http/routes/project-api/openapi-skills-routes.d.ts +60 -0
- package/dist/server-shell/http/routes/project-api/openapi-skills-routes.js +51 -0
- package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.d.ts +115 -0
- package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.js +17 -0
- package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.d.ts +323 -0
- package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.js +120 -0
- package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.d.ts +1317 -0
- package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.js +95 -0
- package/dist/server-shell/http/routes/project-api/openapi.d.ts +2457 -0
- package/dist/server-shell/http/routes/project-api/openapi.js +30 -0
- package/dist/server-shell/http/routes/project-api/payload-validation.d.ts +6 -0
- package/dist/server-shell/http/routes/project-api/payload-validation.js +36 -0
- package/dist/server-shell/http/routes/project-api/project-docs-helpers.d.ts +9 -0
- package/dist/server-shell/http/routes/project-api/project-docs-helpers.js +17 -0
- package/dist/server-shell/http/routes/project-api/project-docs-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/project-docs-routes.js +151 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-projection.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-projection.js +658 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-routes.js +23 -0
- package/dist/server-shell/http/routes/project-api/read-state-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/read-state-routes.js +82 -0
- package/dist/server-shell/http/routes/project-api/reference-files-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/reference-files-routes.js +184 -0
- package/dist/server-shell/http/routes/project-api/reference-files.d.ts +17 -0
- package/dist/server-shell/http/routes/project-api/reference-files.js +212 -0
- package/dist/server-shell/http/routes/project-api/repo-projection.d.ts +3 -0
- package/dist/server-shell/http/routes/project-api/repo-projection.js +58 -0
- package/dist/server-shell/http/routes/project-api/schemas.d.ts +1351 -0
- package/dist/server-shell/http/routes/project-api/schemas.js +441 -0
- package/dist/server-shell/http/routes/project-api/session-requirements.d.ts +10 -0
- package/dist/server-shell/http/routes/project-api/session-requirements.js +60 -0
- package/dist/server-shell/http/routes/project-api/skills-helpers.d.ts +7 -0
- package/dist/server-shell/http/routes/project-api/skills-helpers.js +48 -0
- package/dist/server-shell/http/routes/project-api/skills-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/skills-routes.js +185 -0
- package/dist/server-shell/http/routes/project-api/staged-uploads.d.ts +14 -0
- package/dist/server-shell/http/routes/project-api/staged-uploads.js +149 -0
- package/dist/server-shell/http/routes/project-api/system-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/system-routes.js +141 -0
- package/dist/server-shell/http/routes/project-api/types.d.ts +137 -0
- package/dist/server-shell/http/routes/project-api/types.js +2 -0
- package/dist/server-shell/http/routes/project-api/viewer-projections.d.ts +17 -0
- package/dist/server-shell/http/routes/project-api/viewer-projections.js +102 -0
- package/dist/server-shell/http/routes/project-api/viewer-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/viewer-routes.js +100 -0
- package/dist/server-shell/http/routes/project-api/workflow-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/workflow-routes.js +85 -0
- package/dist/server-shell/http/routes/project-api/workspace-projections.d.ts +5 -0
- package/dist/server-shell/http/routes/project-api/workspace-projections.js +103 -0
- package/dist/server-shell/http/routes/project-api.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api.js +34 -0
- package/dist/server-shell/http/sse-replay-buffer.d.ts +54 -0
- package/dist/server-shell/http/sse-replay-buffer.js +110 -0
- package/dist/server-shell/http/sse.d.ts +12 -0
- package/dist/server-shell/http/sse.js +22 -0
- package/dist/server-shell/http/static-web.d.ts +6 -0
- package/dist/server-shell/http/static-web.js +52 -0
- package/dist/server-shell/http/validation.d.ts +13 -0
- package/dist/server-shell/http/validation.js +136 -0
- package/dist/server-shell/http/workspace-events.d.ts +38 -0
- package/dist/server-shell/http/workspace-events.js +98 -0
- package/dist/server-shell/session/relay-session-context.d.ts +25 -0
- package/dist/server-shell/session/relay-session-context.js +49 -0
- package/dist/server-shell/smoke/e2e-client.d.ts +59 -0
- package/dist/server-shell/smoke/e2e-client.js +304 -0
- package/dist/server-shell/smoke/index.d.ts +2 -0
- package/dist/server-shell/smoke/index.js +2 -0
- package/dist/skills/constants.d.ts +8 -0
- package/dist/skills/constants.js +9 -0
- package/dist/skills/errors.d.ts +6 -0
- package/dist/skills/errors.js +9 -0
- package/dist/skills/index.d.ts +41 -0
- package/dist/skills/index.js +171 -0
- package/dist/skills/metadata.d.ts +8 -0
- package/dist/skills/metadata.js +80 -0
- package/dist/skills/zip-import.d.ts +18 -0
- package/dist/skills/zip-import.js +241 -0
- package/dist/store/command-recovery.d.ts +26 -0
- package/dist/store/command-recovery.js +71 -0
- package/dist/store/index.d.ts +6 -0
- package/dist/store/index.js +6 -0
- package/dist/store/lifecycle.d.ts +23 -0
- package/dist/store/lifecycle.js +53 -0
- package/dist/store/metadata.d.ts +18 -0
- package/dist/store/metadata.js +30 -0
- package/dist/store/migrations.d.ts +20 -0
- package/dist/store/migrations.js +76 -0
- package/dist/store/sqlite.d.ts +11 -0
- package/dist/store/sqlite.js +21 -0
- package/dist/workspace-ops/constants.d.ts +15 -0
- package/dist/workspace-ops/constants.js +20 -0
- package/dist/workspace-ops/errors.d.ts +8 -0
- package/dist/workspace-ops/errors.js +33 -0
- package/dist/workspace-ops/git.d.ts +13 -0
- package/dist/workspace-ops/git.js +53 -0
- package/dist/workspace-ops/index.d.ts +11 -0
- package/dist/workspace-ops/index.js +9 -0
- package/dist/workspace-ops/mainline.d.ts +2 -0
- package/dist/workspace-ops/mainline.js +16 -0
- package/dist/workspace-ops/project-doc-templates.d.ts +12 -0
- package/dist/workspace-ops/project-doc-templates.js +180 -0
- package/dist/workspace-ops/project-docs.d.ts +7 -0
- package/dist/workspace-ops/project-docs.js +156 -0
- package/dist/workspace-ops/reference-files.d.ts +3 -0
- package/dist/workspace-ops/reference-files.js +137 -0
- package/dist/workspace-ops/reference-metadata.d.ts +13 -0
- package/dist/workspace-ops/reference-metadata.js +86 -0
- package/dist/workspace-ops/reference-summaries.d.ts +17 -0
- package/dist/workspace-ops/reference-summaries.js +298 -0
- package/dist/workspace-ops/run-workspaces.d.ts +18 -0
- package/dist/workspace-ops/run-workspaces.js +271 -0
- package/dist/workspace-ops/types.d.ts +219 -0
- package/dist/workspace-ops/types.js +2 -0
- package/dist/workspace-ops/viewer-file.d.ts +4 -0
- package/dist/workspace-ops/viewer-file.js +207 -0
- package/dist/workspace-ops/viewer-git.d.ts +20 -0
- package/dist/workspace-ops/viewer-git.js +111 -0
- package/dist/workspace-ops/viewer-paths.d.ts +3 -0
- package/dist/workspace-ops/viewer-paths.js +13 -0
- package/dist/workspace-ops/viewer-tree.d.ts +9 -0
- package/dist/workspace-ops/viewer-tree.js +144 -0
- package/dist/workspace-ops/viewer.d.ts +5 -0
- package/dist/workspace-ops/viewer.js +5 -0
- package/migrations/0001_init.sql +674 -0
- package/migrations/0002_allow_sealed_round_successor_note.sql +14 -0
- package/migrations/0003_drop_scratchpad_source_message_refs.sql +1 -0
- package/migrations/0004_read_state.sql +109 -0
- package/migrations/0005_provider_usage.sql +15 -0
- package/migrations/0006_scratchpad_source_state.sql +29 -0
- package/migrations/0007_workspace_signal_read_state_scopes.sql +74 -0
- package/migrations/0008_provider_usage_anchors.sql +32 -0
- package/migrations/0009_project_timeline_events.sql +33 -0
- package/migrations/0010_project_brief.sql +13 -0
- package/migrations/0011_message_author_avatar.sql +5 -0
- package/migrations/README.md +44 -0
- package/node_modules/@tutti/relay-client/dist/host-control.d.ts +164 -0
- package/node_modules/@tutti/relay-client/dist/host-control.js +284 -0
- package/node_modules/@tutti/relay-client/dist/index.d.ts +3 -0
- package/node_modules/@tutti/relay-client/dist/index.js +3 -0
- package/node_modules/@tutti/relay-client/dist/tunnel-frames.d.ts +8 -0
- package/node_modules/@tutti/relay-client/dist/tunnel-frames.js +124 -0
- package/node_modules/@tutti/relay-client/dist/tunnel-types.d.ts +61 -0
- package/node_modules/@tutti/relay-client/dist/tunnel-types.js +2 -0
- package/node_modules/@tutti/relay-client/dist/tunnel.d.ts +4 -0
- package/node_modules/@tutti/relay-client/dist/tunnel.js +144 -0
- package/node_modules/@tutti/relay-client/package.json +18 -0
- package/node_modules/@tutti/shared/dist/domain/index.d.ts +59 -0
- package/node_modules/@tutti/shared/dist/domain/index.js +37 -0
- package/node_modules/@tutti/shared/dist/ids/index.d.ts +85 -0
- package/node_modules/@tutti/shared/dist/ids/index.js +88 -0
- package/node_modules/@tutti/shared/dist/index.d.ts +6 -0
- package/node_modules/@tutti/shared/dist/index.js +6 -0
- package/node_modules/@tutti/shared/dist/schemas/api/approvals.d.ts +307 -0
- package/node_modules/@tutti/shared/dist/schemas/api/approvals.js +110 -0
- package/node_modules/@tutti/shared/dist/schemas/api/artifacts.d.ts +173 -0
- package/node_modules/@tutti/shared/dist/schemas/api/artifacts.js +107 -0
- package/node_modules/@tutti/shared/dist/schemas/api/clarifications.d.ts +704 -0
- package/node_modules/@tutti/shared/dist/schemas/api/clarifications.js +224 -0
- package/node_modules/@tutti/shared/dist/schemas/api/index.d.ts +18 -0
- package/node_modules/@tutti/shared/dist/schemas/api/index.js +17 -0
- package/node_modules/@tutti/shared/dist/schemas/api/messages.d.ts +370 -0
- package/node_modules/@tutti/shared/dist/schemas/api/messages.js +134 -0
- package/node_modules/@tutti/shared/dist/schemas/api/openapi.d.ts +32 -0
- package/node_modules/@tutti/shared/dist/schemas/api/openapi.js +100 -0
- package/node_modules/@tutti/shared/dist/schemas/api/primitives.d.ts +109 -0
- package/node_modules/@tutti/shared/dist/schemas/api/primitives.js +174 -0
- package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.d.ts +149 -0
- package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.js +44 -0
- package/node_modules/@tutti/shared/dist/schemas/api/provider-config.d.ts +21 -0
- package/node_modules/@tutti/shared/dist/schemas/api/provider-config.js +33 -0
- package/node_modules/@tutti/shared/dist/schemas/api/provider-usage.d.ts +87 -0
- package/node_modules/@tutti/shared/dist/schemas/api/provider-usage.js +48 -0
- package/node_modules/@tutti/shared/dist/schemas/api/read-state.d.ts +89 -0
- package/node_modules/@tutti/shared/dist/schemas/api/read-state.js +39 -0
- package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.d.ts +484 -0
- package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.js +185 -0
- package/node_modules/@tutti/shared/dist/schemas/api/skills.d.ts +88 -0
- package/node_modules/@tutti/shared/dist/schemas/api/skills.js +71 -0
- package/node_modules/@tutti/shared/dist/schemas/api/types.d.ts +253 -0
- package/node_modules/@tutti/shared/dist/schemas/api/types.js +2 -0
- package/node_modules/@tutti/shared/dist/schemas/api/uploads.d.ts +103 -0
- package/node_modules/@tutti/shared/dist/schemas/api/uploads.js +78 -0
- package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.d.ts +484 -0
- package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.js +267 -0
- package/node_modules/@tutti/shared/dist/schemas/api/work-items.d.ts +264 -0
- package/node_modules/@tutti/shared/dist/schemas/api/work-items.js +196 -0
- package/node_modules/@tutti/shared/dist/schemas/api/workspace-commands.d.ts +179 -0
- package/node_modules/@tutti/shared/dist/schemas/api/workspace-commands.js +137 -0
- package/node_modules/@tutti/shared/dist/schemas/domain/index.d.ts +31 -0
- package/node_modules/@tutti/shared/dist/schemas/domain/index.js +49 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/index.d.ts +46 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/index.js +46 -0
- package/node_modules/@tutti/shared/dist/utils/command-idempotency/index.d.ts +40 -0
- package/node_modules/@tutti/shared/dist/utils/command-idempotency/index.js +100 -0
- package/node_modules/@tutti/shared/dist/utils/index.d.ts +5 -0
- package/node_modules/@tutti/shared/dist/utils/index.js +5 -0
- package/node_modules/@tutti/shared/dist/utils/logging/index.d.ts +34 -0
- package/node_modules/@tutti/shared/dist/utils/logging/index.js +130 -0
- package/node_modules/@tutti/shared/dist/utils/path-policy/index.d.ts +13 -0
- package/node_modules/@tutti/shared/dist/utils/path-policy/index.js +80 -0
- package/node_modules/@tutti/shared/dist/utils/redaction/index.d.ts +19 -0
- package/node_modules/@tutti/shared/dist/utils/redaction/index.js +158 -0
- package/node_modules/@tutti/shared/package.json +63 -0
- package/package.json +47 -0
- package/prompts/README.md +36 -0
- package/prompts/chat-assistant.md +43 -0
- package/prompts/codex/README.md +13 -0
- package/prompts/codex/no-write-smoke.md +35 -0
- package/prompts/procedures/README.md +38 -0
- package/prompts/procedures/context-sync.md +66 -0
- package/prompts/procedures/follow-up-check.md +83 -0
- package/prompts/procedures/project-brief-refresh.md +79 -0
- package/prompts/procedures/project-context-bootstrap.md +58 -0
- package/prompts/procedures/reference-file-summary.md +49 -0
- package/prompts/procedures/scratchpad-refresh.md +83 -0
- package/prompts/procedures/task-compile.md +116 -0
- package/prompts/prompt-flow-experiment-plan.md +203 -0
- package/prompts/prompt-flow-map.md +478 -0
- package/prompts/runs/README.md +17 -0
- package/prompts/runs/task-continuation.md +148 -0
- package/prompts/runs/task-retry.md +153 -0
- package/prompts/runs/task-run.md +135 -0
- package/prompts/skills/README.md +25 -0
- package/prompts/skills/read-main-chat/README.md +8 -0
- package/prompts/skills/read-main-chat/SKILL.md +18 -0
- package/prompts/skills/read-project-docs/README.md +13 -0
- package/prompts/skills/read-project-docs/SKILL.md +42 -0
- package/prompts/skills/read-references/README.md +9 -0
- package/prompts/skills/read-references/SKILL.md +26 -0
- package/prompts/skills/read-scratchpad/README.md +8 -0
- package/prompts/skills/read-scratchpad/SKILL.md +16 -0
- package/prompts/skills/read-user-skills/README.md +7 -0
- package/prompts/skills/read-user-skills/SKILL.md +22 -0
- package/prompts/skills/read-worklist/README.md +9 -0
- package/prompts/skills/read-worklist/SKILL.md +20 -0
- package/web/assets/Tutti-B7gEyTp1.png +0 -0
- package/web/assets/Tutti-square-BqFU7F0D.png +0 -0
- package/web/assets/index-CWkBgHap.js +29 -0
- package/web/assets/index-D8xJY8Gr.css +1 -0
- package/web/index.html +13 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Newsreader:opsz,wght@6..72,600;6..72,700&display=swap";:root{--font-body:"Manrope", system-ui, sans-serif;--font-heading:"Newsreader", Georgia, serif;--font-label:"Archivo", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, 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:1920px;--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:8px;height:8px;position:absolute;top:7px;right:10px}.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}.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{color:var(--color-ink);font-family:var(--font-heading);font-size:var(--font-size-panel-title);white-space:nowrap;line-height:1}.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-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{border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.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-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}.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{background:var(--color-action-wash)}.mention-option-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.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}.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.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-inline-edit{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.settings-inline-edit input{border:1px solid var(--color-line-strong);background:var(--color-surface);min-width:0;min-height:36px;color:var(--color-ink);font:inherit;border-radius:10px;flex:220px;padding:0 10px;font-size:.82rem;font-weight:800}.settings-inline-edit input:focus{border-color:var(--color-action-strong);outline:none}.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;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-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;padding-left:12px;display:grid}.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}.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-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);height:72px}.timeline-event-time{max-width:88px;font-size:.64rem}.timeline-event-title-line{flex-wrap:wrap;gap:6px}.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}}.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:6px;right:11px}.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;overflow:auto}.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-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-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:center;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-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);font-size:.8rem;font-weight:800;line-height:1.36}@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}
|
package/web/index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Tutti</title>
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-CWkBgHap.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-D8xJY8Gr.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|