enigma-memory 0.1.18 → 0.1.22

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.
Files changed (276) hide show
  1. package/README.md +76 -24
  2. package/apps/cli/bin/enigma-desktop.mjs +140 -0
  3. package/apps/cli/bin/enigma-terminal.mjs +78 -0
  4. package/apps/cli/bin/enigma.mjs +1923 -285
  5. package/apps/desktop/electron-main.cjs +217 -0
  6. package/apps/desktop/package.json +12 -0
  7. package/apps/desktop/src/app.js +264 -7
  8. package/apps/desktop/src/index.html +3514 -1373
  9. package/apps/desktop/src/launch-electron.mjs +51 -0
  10. package/apps/desktop/src/server.mjs +2914 -0
  11. package/apps/desktop/src/styles.css +2972 -260
  12. package/apps/desktop/src/zk-browser-prove.mjs +53 -0
  13. package/apps/desktop/src/zk-state.mjs +1789 -0
  14. package/apps/gateway/bin/enigma-gateway.mjs +102 -5
  15. package/apps/gateway/src/server.mjs +271 -8
  16. package/apps/ios/EnigmaCore/Package.swift +12 -0
  17. package/apps/ios/EnigmaCore/Sources/EnigmaCore/EnigmaAPIClient.swift +227 -0
  18. package/apps/ios/EnigmaCore/Sources/EnigmaCore/Models.swift +278 -0
  19. package/apps/ios/EnigmaCore/Sources/EnigmaCore/PKCE.swift +96 -0
  20. package/apps/ios/EnigmaCore/Sources/EnigmaCore/PrivacyMinimizer.swift +187 -0
  21. package/apps/ios/EnigmaCore/Sources/EnigmaCore/ToolModels.swift +129 -0
  22. package/apps/ios/EnigmaCore/Tests/EnigmaCoreTests/EnigmaCoreTests.swift +42 -0
  23. package/apps/ios/EnigmaIOS/Enigma/AppModel.swift +346 -0
  24. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AccentColor.colorset/Contents.json +12 -0
  25. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AppIcon.appiconset/Contents.json +11 -0
  26. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AppIcon.appiconset/EnigmaAppIcon.png +0 -0
  27. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/Contents.json +3 -0
  28. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/LaunchBackground.colorset/Contents.json +12 -0
  29. package/apps/ios/EnigmaIOS/Enigma/ChatView.swift +181 -0
  30. package/apps/ios/EnigmaIOS/Enigma/CouncilView.swift +78 -0
  31. package/apps/ios/EnigmaIOS/Enigma/CreateView.swift +152 -0
  32. package/apps/ios/EnigmaIOS/Enigma/EnigmaApp.swift +52 -0
  33. package/apps/ios/EnigmaIOS/Enigma/Info.plist +52 -0
  34. package/apps/ios/EnigmaIOS/Enigma/NaturalLanguagePrivacyTagger.swift +26 -0
  35. package/apps/ios/EnigmaIOS/Enigma/OAuthClient.swift +321 -0
  36. package/apps/ios/EnigmaIOS/Enigma/OnboardingView.swift +105 -0
  37. package/apps/ios/EnigmaIOS/Enigma/PrivateVaultView.swift +275 -0
  38. package/apps/ios/EnigmaIOS/Enigma/SecureStore.swift +76 -0
  39. package/apps/ios/EnigmaIOS/Enigma/SettingsView.swift +60 -0
  40. package/apps/ios/EnigmaIOS/Enigma/Theme.swift +80 -0
  41. package/apps/ios/EnigmaIOS/EnigmaIOS.xcodeproj/project.pbxproj +211 -0
  42. package/apps/ios/EnigmaIOS/EnigmaIOS.xcodeproj/xcshareddata/xcschemes/Enigma.xcscheme +23 -0
  43. package/apps/native-host/README.md +19 -8
  44. package/apps/native-host/bin/enigma-native-host.mjs +229 -13
  45. package/apps/relay/bin/enigma-relay.mjs +103 -5
  46. package/apps/relay/src/federation-runtime.mjs +618 -0
  47. package/apps/relay/src/server.mjs +310 -9
  48. package/apps/verifier/bin/enigma-verify.mjs +327 -11
  49. package/cortex-v3/circuits/build/intent_vk_bytes.json +35 -0
  50. package/cortex-v3/circuits/build/sale_vk_bytes.json +35 -0
  51. package/cortex-v3/circuits/build/vk_bytes.json +32 -0
  52. package/cortex-v3/proving-assets.json +64 -0
  53. package/cortex-v3/zk/BUILD-CONTRACT.md +87 -0
  54. package/cortex-v3/zk/action-transition-vk.json +119 -0
  55. package/cortex-v3/zk/alias-adversarial.test.mjs +220 -0
  56. package/cortex-v3/zk/groth16-verify-child.mjs +17 -0
  57. package/cortex-v3/zk/intent-witness.mjs +365 -0
  58. package/cortex-v3/zk/intent-witness.test.mjs +485 -0
  59. package/cortex-v3/zk/proving-assets.mjs +203 -0
  60. package/cortex-v3/zk/sale-witness.mjs +783 -0
  61. package/cortex-v3/zk/sale-witness.test.mjs +784 -0
  62. package/cortex-v3/zk/sealed-sale-release-vk.json +119 -0
  63. package/cortex-v3/zk/settlement-evidence.mjs +722 -0
  64. package/cortex-v3/zk/setup-intent.mjs +688 -0
  65. package/cortex-v3/zk/setup-sale.mjs +666 -0
  66. package/cortex-v3/zk/setup.mjs +594 -0
  67. package/cortex-v3/zk/witness.mjs +184 -0
  68. package/cortex-v3/zk/zk-codec.mjs +232 -0
  69. package/cortex-v3/zk/zk-codec.test.mjs +293 -0
  70. package/cortex-v3/zk/zk-settle.mjs +370 -0
  71. package/cortex-v3/zk/zk-tree.mjs +256 -0
  72. package/cortex-v3/zk/zk-tree.test.mjs +419 -0
  73. package/deploy/docker-compose.local-production-simulation.yml +36 -0
  74. package/docs/browser-extension-install.md +8 -6
  75. package/docs/client-connectors.md +15 -11
  76. package/docs/developer-ecosystem.md +15 -13
  77. package/docs/enigma-memory-ready-conformance.md +11 -9
  78. package/docs/install-anywhere.md +61 -28
  79. package/docs/installers-and-desktop.md +8 -7
  80. package/docs/novelty-invention-candidates.md +161 -161
  81. package/docs/proof-network-claim-boundaries.md +320 -318
  82. package/examples/01-quickstart-agent/index.mjs +49 -0
  83. package/examples/01_agent_memory_quickstart.mjs +57 -0
  84. package/examples/02-multi-agent-swarm/index.mjs +57 -0
  85. package/examples/02_cross_model_passport.mjs +64 -0
  86. package/examples/03-langchain-memory/index.mjs +41 -0
  87. package/examples/03_poseidon_commitment_verification.mjs +71 -0
  88. package/examples/04-python-trading-agent/trader.py +49 -0
  89. package/examples/README.md +27 -0
  90. package/examples/ci/github-actions.yml +7 -2
  91. package/package.json +142 -11
  92. package/packages/adapters/PACKAGE_CONTRACT.md +1 -1
  93. package/packages/connectors/src/index.js +196 -4
  94. package/packages/connectors/swarm-router.mjs +168 -0
  95. package/packages/core/src/index.js +248 -1
  96. package/packages/core/src/version.mjs +7 -0
  97. package/packages/dev-tools/package.json +19 -0
  98. package/packages/dev-tools/src/index.js +4 -0
  99. package/packages/dev-tools/src/memory-benchmark-suite.js +112 -0
  100. package/packages/dev-tools/src/swarm-simulator.js +101 -0
  101. package/packages/dev-tools/src/vault-inspector.js +114 -0
  102. package/packages/dev-tools/src/vector-benchmark.js +100 -0
  103. package/packages/developer-platform/src/access-credentials.js +341 -0
  104. package/packages/developer-platform/src/http.js +132 -0
  105. package/packages/developer-platform/src/index.js +4 -0
  106. package/packages/developer-platform/src/usage-http.js +60 -0
  107. package/packages/developer-platform/src/usage.js +295 -0
  108. package/packages/enclave-runtime/attestation.mjs +159 -0
  109. package/packages/enclave-runtime/index.mjs +47 -0
  110. package/packages/enclave-runtime/session-manager.mjs +253 -0
  111. package/packages/enclave-runtime/zeroization-proof.mjs +227 -0
  112. package/packages/enigma-reflex/package.json +14 -0
  113. package/packages/enigma-reflex/src/index.js +204 -0
  114. package/packages/enigma-reflex/training/generate-dataset.mjs +40 -0
  115. package/packages/enigma-reflex/training/requirements.txt +8 -0
  116. package/packages/enigma-reflex/training/train.py +314 -0
  117. package/packages/enigma-weave/LICENSE +22 -0
  118. package/packages/enigma-weave/UPSTREAM.json +21 -0
  119. package/packages/enigma-weave/package.json +14 -0
  120. package/packages/enigma-weave/src/index.js +286 -0
  121. package/packages/hosted-cloud/src/index.js +80 -5
  122. package/packages/importers/src/index.js +432 -0
  123. package/packages/inference-runtime/src/browser.js +401 -0
  124. package/packages/inference-runtime/src/chat.js +265 -0
  125. package/packages/inference-runtime/src/code.js +407 -0
  126. package/packages/inference-runtime/src/contracts.js +162 -0
  127. package/packages/inference-runtime/src/http.js +232 -0
  128. package/packages/inference-runtime/src/image.js +186 -0
  129. package/packages/inference-runtime/src/index.js +10 -0
  130. package/packages/inference-runtime/src/model-router.js +320 -0
  131. package/packages/inference-runtime/src/platform.js +125 -0
  132. package/packages/inference-runtime/src/privacy.js +400 -0
  133. package/packages/inference-runtime/src/video.js +253 -0
  134. package/packages/mcp-server/README.md +22 -6
  135. package/packages/mcp-server/bin/enigma-mcp.mjs +2 -1
  136. package/packages/mcp-server/src/index.js +1418 -105
  137. package/packages/mcp-server/src/oauth.js +561 -0
  138. package/packages/mcp-server/src/private-handoff.js +84 -0
  139. package/packages/mcp-server/src/remote-http.js +273 -0
  140. package/packages/mcp-server/src/remote-policy.js +72 -0
  141. package/packages/mcp-server/swarm-bridge.mjs +361 -0
  142. package/packages/mesh/index.d.ts +283 -0
  143. package/packages/mesh/package.json +23 -0
  144. package/packages/mesh/src/crypto.js +189 -0
  145. package/packages/mesh/src/federation-packets.js +353 -0
  146. package/packages/mesh/src/gossip.js +311 -0
  147. package/packages/mesh/src/index.js +6 -0
  148. package/packages/mesh/src/protocol.js +255 -0
  149. package/packages/mesh/src/router.js +279 -0
  150. package/packages/mesh/src/transport.js +306 -0
  151. package/packages/passport/src/index.js +426 -1
  152. package/packages/private-economy/src/credits-http.js +100 -0
  153. package/packages/private-economy/src/credits.js +447 -0
  154. package/packages/private-economy/src/index.js +5 -0
  155. package/packages/private-economy/src/payments-http.js +120 -0
  156. package/packages/private-economy/src/payments.js +509 -0
  157. package/packages/private-economy/src/x402.js +346 -0
  158. package/packages/proof-network/PACKAGE_CONTRACT.md +21 -0
  159. package/packages/rag/index.d.ts +182 -0
  160. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/THIRD_PARTY_LICENSES.txt +207 -0
  161. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/config.json +25 -0
  162. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/onnx/model_quantized.onnx +0 -0
  163. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/sha256-manifest.json +28 -0
  164. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/tokenizer.json +30686 -0
  165. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/tokenizer_config.json +15 -0
  166. package/packages/rag/package.json +27 -0
  167. package/packages/rag/src/blinded-search.js +109 -0
  168. package/packages/rag/src/bm25.js +169 -0
  169. package/packages/rag/src/embeddings.js +459 -0
  170. package/packages/rag/src/hybrid.js +76 -0
  171. package/packages/rag/src/index.js +38 -0
  172. package/packages/rag/src/reranker.js +61 -0
  173. package/packages/rag/src/research.js +107 -0
  174. package/packages/rag/src/vector-store.js +430 -0
  175. package/packages/rag/src/verify-model-artifacts.mjs +4 -0
  176. package/packages/sdk/index.d.ts +760 -0
  177. package/packages/sdk/package.json +33 -0
  178. package/packages/sdk/python/README.md +24 -0
  179. package/packages/sdk/python/enigma_sdk.py +250 -0
  180. package/packages/sdk/python/pyproject.toml +34 -0
  181. package/packages/sdk/python/requirements.txt +1 -0
  182. package/packages/sdk/python/setup.py +20 -0
  183. package/packages/sdk/src/federation/capability-grant.js +389 -0
  184. package/packages/sdk/src/federation/federation-router.js +360 -0
  185. package/packages/sdk/src/federation/ghostmesh-bridge.js +497 -0
  186. package/packages/sdk/src/federation/index.js +3 -0
  187. package/packages/sdk/src/index.js +1796 -0
  188. package/packages/sdk/src/intelligence/contradiction.js +337 -0
  189. package/packages/sdk/src/intelligence/decision-engine.js +155 -0
  190. package/packages/sdk/src/intelligence/index.js +4 -0
  191. package/packages/sdk/src/intelligence/ontology.js +122 -0
  192. package/packages/sdk/src/intelligence/temporal.js +123 -0
  193. package/packages/sdk/src/market-client.js +142 -0
  194. package/packages/sdk/src/mesh-client.js +110 -0
  195. package/packages/sdk/src/middleware/index.js +3 -0
  196. package/packages/sdk/src/middleware/langchain.js +159 -0
  197. package/packages/sdk/src/middleware/llamaindex.js +101 -0
  198. package/packages/sdk/src/middleware/vercel-ai.js +112 -0
  199. package/packages/sdk/src/rag-client.js +85 -0
  200. package/packages/sdk/src/swarm-orchestrator.js +260 -0
  201. package/packages/settlement/PACKAGE_CONTRACT.md +1 -1
  202. package/packages/snapcompact/THIRD_PARTY_LICENSES.txt +40 -0
  203. package/packages/snapcompact/assets/8x13-latin1.bdf +3837 -0
  204. package/packages/snapcompact/index.d.ts +284 -0
  205. package/packages/snapcompact/package.json +25 -0
  206. package/packages/snapcompact/src/index.js +716 -0
  207. package/packages/storage/PACKAGE_CONTRACT.md +1 -1
  208. package/packages/terminal-console/animations.mjs +240 -0
  209. package/packages/terminal-console/auto-anchor.mjs +220 -0
  210. package/packages/terminal-console/banner.mjs +91 -0
  211. package/packages/terminal-console/commands.mjs +459 -0
  212. package/packages/terminal-console/delegation.mjs +152 -0
  213. package/packages/terminal-console/index.mjs +5 -0
  214. package/packages/terminal-console/outbox.mjs +143 -0
  215. package/packages/terminal-console/phantom-bridge.mjs +637 -0
  216. package/packages/terminal-console/repl.mjs +136 -0
  217. package/packages/terminal-console/signer-store.mjs +130 -0
  218. package/packages/terminal-console/solana-rpc.mjs +214 -0
  219. package/packages/terminal-console/solana-transport.mjs +189 -0
  220. package/packages/terminal-tui/dashboard.mjs +214 -0
  221. package/packages/terminal-tui/index.mjs +28 -0
  222. package/packages/terminal-tui/merkle-tree-renderer.mjs +268 -0
  223. package/packages/terminal-tui/telemetry-hud.mjs +137 -0
  224. package/packages/vault/index.d.ts +449 -0
  225. package/packages/vault/package.json +27 -0
  226. package/packages/vault/src/e2ee.mjs +393 -0
  227. package/packages/vault/src/enclave.js +481 -0
  228. package/packages/vault/src/erasure.js +207 -0
  229. package/packages/vault/src/index.js +1018 -155
  230. package/packages/vault/src/persistence.js +307 -0
  231. package/packages/vault/src/poseidon.js +354 -0
  232. package/packages/vault/src/receipt.js +459 -0
  233. package/scripts/benchmark-optical-context.mjs +166 -0
  234. package/scripts/bootstrap-enigma.mjs +502 -0
  235. package/scripts/build-edge-backend-workers.mjs +20 -5
  236. package/scripts/build-goal-completion-audit.mjs +72 -25
  237. package/scripts/build-hosted-api-key-lifecycle.mjs +26 -8
  238. package/scripts/build-hosted-customer-lifecycle.mjs +20 -3
  239. package/scripts/build-hosted-probe-worker.mjs +19 -4
  240. package/scripts/build-installer-assets.mjs +41 -21
  241. package/scripts/build-operator-evidence-starter.mjs +59 -1
  242. package/scripts/build-production-backend-env-kit.mjs +2 -0
  243. package/scripts/build-production-unblocker.mjs +3 -0
  244. package/scripts/check.mjs +17 -3
  245. package/scripts/collect-hosted-backend-live-evidence.mjs +49 -12
  246. package/scripts/install-enigma-local.mjs +18 -5
  247. package/scripts/release-audit.mjs +65 -109
  248. package/scripts/release-provenance.mjs +6 -0
  249. package/scripts/run-backend-readiness-smoke.mjs +112 -10
  250. package/scripts/scan-secrets.mjs +1 -0
  251. package/scripts/simulate-production-env.mjs +7 -2
  252. package/scripts/validate-hosted-backend-live.mjs +112 -1
  253. package/specs/antibody-pack-v1.schema.json +95 -0
  254. package/specs/antigen-envelope-v1.schema.json +81 -0
  255. package/specs/boundary-manifest-v1.schema.json +35 -35
  256. package/specs/capsule-v1.schema.json +55 -55
  257. package/specs/claim-boundary-manifest-v1.schema.json +22 -22
  258. package/specs/claim-ledger-v1.schema.json +291 -0
  259. package/specs/context-passport-v1.schema.json +59 -0
  260. package/specs/deletion-tombstone-v1.schema.json +26 -26
  261. package/specs/evidence-packet-v1.schema.json +177 -0
  262. package/specs/hosted-backend-live-evidence-v1.schema.json +72 -3
  263. package/specs/immune-scan-report-v1.schema.json +112 -0
  264. package/specs/lifecycle-receipt-log-v1.schema.json +67 -0
  265. package/specs/memory-atom-v1.schema.json +59 -0
  266. package/specs/memory-event-v1.schema.json +42 -42
  267. package/specs/passport-v1.schema.json +50 -50
  268. package/specs/proof-of-non-use-v1.schema.json +65 -0
  269. package/specs/quarantine-record-v1.schema.json +126 -0
  270. package/specs/receipt-v1.schema.json +61 -61
  271. package/specs/state-checkpoint-v1.schema.json +37 -37
  272. package/specs/trust-bundle-v1.schema.json +56 -56
  273. package/specs/trust-card-v1.schema.json +119 -0
  274. package/docs/proof-network-launch-plan.md +0 -421
  275. package/packages/metering/PACKAGE_CONTRACT.md +0 -20
  276. package/scripts/build-ai-orchestration-plan.mjs +0 -248
@@ -1,386 +1,3098 @@
1
+ /* =====================================================================
2
+ Enigma Desktop — Apple-grade Sovereign AI Memory Terminal.
3
+ Strictly aligned with https://enigmamemory.com/
4
+ Satoshi display + Geist body + Geist Mono labels + Enigma Solar Orange.
5
+ ===================================================================== */
1
6
  :root {
2
7
  color-scheme: dark;
3
- --bg: #090b10;
4
- --panel: #11151d;
5
- --panel-strong: #171d28;
6
- --line: #273040;
7
- --text: #edf2ff;
8
- --muted: #9aa8bf;
9
- --soft: #c7d2e4;
10
- --accent: #8bd3ff;
11
- --accent-strong: #55b7ff;
12
- --good: #7ee2a8;
13
- --bad: #ff8f8f;
14
- --warn: #ffd27a;
15
- --shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
16
- font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
8
+ --disp: "Satoshi", "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
9
+ --body: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
10
+ --mono: "Geist Mono", ui-monospace, "SF Mono", Consolas, monospace;
11
+
12
+ /* Live Enigma Brand Colors */
13
+ --bg: #000000;
14
+ --window-bg: #070707;
15
+ --panel-bg: rgba(14, 13, 11, 0.78);
16
+ --panel-card: rgba(18, 16, 14, 0.88);
17
+ --ink: #f4f2ef;
18
+ --dim: #b9b6b1;
19
+ --mute: #7d7a76;
20
+ --line: rgba(255, 255, 255, 0.14);
21
+ --line-strong: rgba(255, 255, 255, 0.24);
22
+
23
+ /* Enigma Solar Accents */
24
+ --acc: #ff7a1a;
25
+ --acc2: #ffb066;
26
+ --acc-soft: rgba(255, 122, 26, 0.14);
27
+ --acc-border: rgba(255, 122, 26, 0.38);
28
+
29
+ /* Status Accents */
30
+ --green: #4ade80;
31
+ --green-soft: rgba(74, 222, 128, 0.12);
32
+ --red: #f87171;
33
+ --red-soft: rgba(248, 113, 113, 0.12);
34
+
35
+ /* Layout & Physics */
36
+ --radius-lg: 20px;
37
+ --radius-md: 14px;
38
+ --radius-sm: 10px;
39
+ --radius-pill: 100px;
40
+ --e1: cubic-bezier(0.22, 1, 0.36, 1);
41
+ --e2: cubic-bezier(0.65, 0, 0.35, 1);
42
+
43
+ --shadow-lg: 0 24px 64px rgba(0, 0, 0, 0.6);
44
+ --shadow-sm: 0 4px 20px rgba(0, 0, 0, 0.35);
45
+ --glass-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.08);
46
+ }
47
+
48
+ * {
49
+ box-sizing: border-box;
50
+ margin: 0;
51
+ padding: 0;
52
+ }
53
+
54
+ html, body {
55
+ width: 100%;
56
+ height: 100%;
57
+ background: var(--bg);
58
+ color: var(--ink);
59
+ font-family: var(--body);
60
+ line-height: 1.5;
61
+ overflow: hidden;
62
+ -webkit-font-smoothing: antialiased;
63
+ -moz-osx-font-smoothing: grayscale;
64
+ }
65
+
66
+ ::selection {
67
+ background: var(--acc);
68
+ color: #0a0400;
69
+ }
70
+
71
+ /* Filmic Background Vignette & Ambient Radial Glow */
72
+ body::before {
73
+ content: '';
74
+ position: fixed;
75
+ inset: 0;
76
+ background:
77
+ radial-gradient(130% 100% at 50% 42%, transparent 38%, rgba(0, 0, 0, 0.5) 78%, rgba(0, 0, 0, 0.86) 100%),
78
+ radial-gradient(circle at 85% 15%, rgba(255, 122, 26, 0.10), transparent 32rem),
79
+ radial-gradient(circle at 15% 35%, rgba(255, 176, 102, 0.06), transparent 28rem);
80
+ pointer-events: none;
81
+ z-index: 0;
82
+ }
83
+
84
+ /* Subtle Architectural Grid Lines */
85
+ body::after {
86
+ content: '';
87
+ position: fixed;
88
+ inset: 0;
89
+ pointer-events: none;
90
+ background-image:
91
+ linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
92
+ linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
93
+ background-size: 56px 56px;
94
+ mask-image: linear-gradient(to bottom, rgba(0,0,0,0.8), transparent 88%);
95
+ z-index: 0;
96
+ }
97
+
98
+ .terminal-window {
99
+ display: flex;
100
+ flex-direction: column;
101
+ width: 100%;
102
+ height: 100vh;
103
+ background: rgba(8, 7, 6, 0.92);
104
+ backdrop-filter: blur(24px);
105
+ -webkit-backdrop-filter: blur(24px);
106
+ position: relative;
107
+ z-index: 1;
108
+ }
109
+
110
+ /* Luxury Window Titlebar */
111
+ .window-titlebar {
112
+ display: flex;
113
+ align-items: center;
114
+ justify-content: space-between;
115
+ padding: 12px 24px;
116
+ background: rgba(10, 8, 6, 0.85);
117
+ border-bottom: 1px solid var(--line);
118
+ box-shadow: var(--glass-highlight);
119
+ user-select: none;
120
+ gap: 16px;
121
+ flex-shrink: 0;
122
+ }
123
+
124
+ .window-left-brand {
125
+ display: flex;
126
+ align-items: center;
127
+ gap: 16px;
128
+ }
129
+
130
+ .window-controls {
131
+ display: flex;
132
+ align-items: center;
133
+ gap: 8px;
134
+ }
135
+
136
+ .control-btn {
137
+ width: 12px;
138
+ height: 12px;
139
+ border-radius: 50%;
140
+ border: none;
141
+ cursor: pointer;
142
+ opacity: 0.85;
143
+ transition: opacity 0.15s ease, transform 0.15s ease;
144
+ }
145
+
146
+ .control-btn:hover {
147
+ opacity: 1;
148
+ transform: scale(1.1);
149
+ }
150
+
151
+ .control-btn.close { background: #ff5f56; }
152
+ .control-btn.minimize { background: #ffbd2e; }
153
+ .control-btn.maximize { background: #27c93f; }
154
+
155
+ .brand-emblem {
156
+ display: flex;
157
+ align-items: center;
158
+ gap: 10px;
159
+ text-decoration: none;
160
+ }
161
+
162
+ .brand-mark svg {
163
+ fill: none;
164
+ stroke: var(--acc);
165
+ stroke-width: 1.5;
166
+ stroke-linejoin: round;
167
+ display: block;
168
+ }
169
+
170
+ .brand-title {
171
+ font-family: var(--disp);
172
+ font-size: 16px;
173
+ font-weight: 800;
174
+ letter-spacing: 0.12em;
175
+ text-transform: uppercase;
176
+ color: var(--ink);
177
+ }
178
+
179
+ .version-pill {
180
+ font-family: var(--mono);
181
+ font-size: 10.5px;
182
+ font-weight: 600;
183
+ letter-spacing: 0.05em;
184
+ padding: 2px 8px;
185
+ border-radius: var(--radius-pill);
186
+ background: var(--acc-soft);
187
+ color: var(--acc);
188
+ border: 1px solid var(--acc-border);
189
+ }
190
+
191
+ /* Center Segmented Pill Selector */
192
+ .desktop-nav-tabs {
193
+ display: flex;
194
+ align-items: center;
195
+ background: rgba(18, 16, 14, 0.8);
196
+ border: 1px solid var(--line);
197
+ padding: 4px;
198
+ border-radius: var(--radius-pill);
199
+ box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4);
200
+ gap: 4px;
201
+ }
202
+
203
+ .nav-tab-btn {
204
+ display: flex;
205
+ align-items: center;
206
+ gap: 8px;
207
+ padding: 7px 18px;
208
+ background: transparent;
209
+ border: 1px solid transparent;
210
+ border-radius: var(--radius-pill);
211
+ color: var(--dim);
212
+ font-family: var(--mono);
213
+ font-size: 12px;
214
+ font-weight: 500;
215
+ letter-spacing: 0.06em;
216
+ text-transform: uppercase;
217
+ cursor: pointer;
218
+ transition: all 0.25s var(--e1);
219
+ white-space: nowrap;
220
+ }
221
+
222
+ .nav-tab-btn:hover {
223
+ color: #ffffff;
224
+ background: rgba(255, 255, 255, 0.06);
225
+ }
226
+
227
+ .nav-tab-btn.active {
228
+ background: #ffffff;
229
+ color: #0a0400;
230
+ border-color: #ffffff;
231
+ font-weight: 600;
232
+ box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
233
+ }
234
+
235
+ .nav-tab-dot {
236
+ width: 6px;
237
+ height: 6px;
238
+ border-radius: 50%;
239
+ background: var(--mute);
240
+ transition: all 0.25s ease;
241
+ }
242
+
243
+ .nav-tab-btn.active .nav-tab-dot {
244
+ background: var(--acc);
245
+ box-shadow: 0 0 6px var(--acc);
246
+ }
247
+
248
+ /* Right Actions */
249
+ .titlebar-right {
250
+ display: flex;
251
+ align-items: center;
252
+ gap: 12px;
253
+ }
254
+
255
+ .status-pill {
256
+ display: flex;
257
+ align-items: center;
258
+ gap: 6px;
259
+ padding: 5px 12px;
260
+ background: var(--green-soft);
261
+ border: 1px solid rgba(74, 222, 128, 0.3);
262
+ border-radius: var(--radius-pill);
263
+ font-family: var(--mono);
264
+ font-size: 11px;
265
+ font-weight: 500;
266
+ color: var(--green);
267
+ }
268
+
269
+ .status-dot {
270
+ width: 6px;
271
+ height: 6px;
272
+ border-radius: 50%;
273
+ background: var(--green);
274
+ box-shadow: 0 0 8px var(--green);
275
+ }
276
+
277
+ .phantom-btn {
278
+ display: flex;
279
+ align-items: center;
280
+ gap: 8px;
281
+ padding: 7px 16px;
282
+ background: var(--acc);
283
+ border: 1px solid var(--acc);
284
+ border-radius: var(--radius-pill);
285
+ color: #0a0400;
286
+ font-family: var(--mono);
287
+ font-size: 11.5px;
288
+ font-weight: 600;
289
+ letter-spacing: 0.04em;
290
+ cursor: pointer;
291
+ transition: all 0.25s var(--e1);
292
+ box-shadow: 0 4px 14px rgba(255, 122, 26, 0.25);
293
+ }
294
+
295
+ .phantom-btn:hover {
296
+ background: var(--acc2);
297
+ transform: translateY(-1px);
298
+ box-shadow: 0 6px 18px rgba(255, 122, 26, 0.4);
299
+ }
300
+
301
+ .phantom-btn.connected {
302
+ background: var(--green-soft);
303
+ border-color: rgba(74, 222, 128, 0.4);
304
+ color: var(--green);
305
+ box-shadow: none;
306
+ }
307
+
308
+ .header-action-btn {
309
+ display: flex;
310
+ align-items: center;
311
+ gap: 6px;
312
+ padding: 6px 14px;
313
+ background: rgba(255, 255, 255, 0.04);
314
+ border: 1px solid var(--line);
315
+ border-radius: var(--radius-pill);
316
+ color: var(--dim);
317
+ font-family: var(--mono);
318
+ font-size: 11px;
319
+ font-weight: 500;
320
+ cursor: pointer;
321
+ transition: all 0.25s var(--e1);
322
+ }
323
+
324
+ .header-action-btn:hover {
325
+ background: rgba(255, 255, 255, 0.08);
326
+ border-color: #ffffff;
327
+ color: #ffffff;
328
+ }
329
+
330
+ /* Tab Panels Container */
331
+ .tab-content-panel {
332
+ display: none !important;
333
+ flex: 1;
334
+ flex-direction: column;
335
+ overflow-y: auto;
336
+ padding: 28px 36px 36px;
337
+ position: relative;
338
+ }
339
+
340
+ .tab-content-panel.active-panel {
341
+ display: flex !important;
342
+ }
343
+
344
+ /* Clean Apple-Style Container */
345
+ .app-screen-container {
346
+ display: flex;
347
+ flex-direction: column;
348
+ gap: 22px;
349
+ max-width: 1240px;
350
+ width: 100%;
351
+ margin: 0 auto;
352
+ }
353
+
354
+ /* Screen Hero Section */
355
+ .screen-hero {
356
+ display: flex;
357
+ justify-content: space-between;
358
+ align-items: flex-end;
359
+ padding: 4px 0 16px;
360
+ border-bottom: 1px solid var(--line);
361
+ }
362
+
363
+ .screen-hero-title {
364
+ display: flex;
365
+ flex-direction: column;
366
+ gap: 6px;
367
+ }
368
+
369
+ .screen-eyebrow {
370
+ font-family: var(--mono);
371
+ font-size: 11.5px;
372
+ font-weight: 600;
373
+ letter-spacing: 0.28em;
374
+ text-transform: uppercase;
375
+ color: var(--acc);
376
+ }
377
+
378
+ .screen-heading {
379
+ font-family: var(--disp);
380
+ font-size: 28px;
381
+ font-weight: 900;
382
+ letter-spacing: -0.015em;
383
+ text-transform: uppercase;
384
+ color: var(--ink);
385
+ }
386
+
387
+ .screen-desc {
388
+ font-size: 14px;
389
+ color: var(--dim);
390
+ max-width: 65ch;
391
+ line-height: 1.55;
392
+ margin-top: 2px;
393
+ }
394
+
395
+ .screen-hero-badge {
396
+ display: flex;
397
+ align-items: center;
398
+ gap: 8px;
399
+ padding: 6px 14px;
400
+ background: rgba(255, 255, 255, 0.05);
401
+ border: 1px solid var(--line);
402
+ border-radius: var(--radius-pill);
403
+ font-family: var(--mono);
404
+ font-size: 11.5px;
405
+ color: var(--dim);
406
+ }
407
+
408
+ /* Bento Grid */
409
+ .bento-grid {
410
+ display: grid;
411
+ grid-template-columns: repeat(12, 1fr);
412
+ gap: 18px;
413
+ }
414
+
415
+ .bento-card {
416
+ background: var(--panel-card);
417
+ border: 1px solid var(--line);
418
+ border-radius: var(--radius-lg);
419
+ padding: 24px;
420
+ box-shadow: var(--shadow-sm), var(--glass-highlight);
421
+ display: flex;
422
+ flex-direction: column;
423
+ gap: 16px;
424
+ position: relative;
425
+ transition: border-color 0.25s var(--e1), transform 0.25s var(--e1);
426
+ }
427
+
428
+ .bento-card:hover {
429
+ border-color: rgba(255, 122, 26, 0.45);
430
+ }
431
+
432
+ .bento-card-header {
433
+ display: flex;
434
+ align-items: center;
435
+ justify-content: space-between;
436
+ }
437
+
438
+ .bento-card-title {
439
+ font-family: var(--disp);
440
+ font-size: 14px;
441
+ font-weight: 700;
442
+ letter-spacing: 0.06em;
443
+ text-transform: uppercase;
444
+ color: var(--ink);
445
+ display: flex;
446
+ align-items: center;
447
+ gap: 8px;
448
+ }
449
+
450
+ .bento-card-subtitle {
451
+ font-size: 12.5px;
452
+ color: var(--mute);
453
+ }
454
+
455
+ /* Metric Row (3 across) */
456
+ .metric-row {
457
+ display: grid;
458
+ grid-template-columns: repeat(3, 1fr);
459
+ gap: 16px;
460
+ }
461
+
462
+ .metric-card {
463
+ background: var(--panel-bg);
464
+ border: 1px solid var(--line);
465
+ border-radius: var(--radius-md);
466
+ padding: 18px 22px;
467
+ display: flex;
468
+ flex-direction: column;
469
+ gap: 6px;
470
+ box-shadow: var(--glass-highlight);
471
+ }
472
+
473
+ .metric-label {
474
+ font-family: var(--mono);
475
+ font-size: 11px;
476
+ font-weight: 600;
477
+ letter-spacing: 0.16em;
478
+ text-transform: uppercase;
479
+ color: var(--mute);
480
+ }
481
+
482
+ .metric-value {
483
+ font-family: var(--disp);
484
+ font-size: 26px;
485
+ font-weight: 900;
486
+ color: #ffffff;
487
+ letter-spacing: -0.02em;
488
+ }
489
+
490
+ .metric-sub {
491
+ font-family: var(--mono);
492
+ font-size: 11.5px;
493
+ color: var(--acc);
494
+ }
495
+
496
+ /* Clean Form Elements */
497
+ .app-form-group {
498
+ display: flex;
499
+ flex-direction: column;
500
+ gap: 8px;
501
+ }
502
+
503
+ .app-label {
504
+ font-family: var(--mono);
505
+ font-size: 11px;
506
+ font-weight: 600;
507
+ letter-spacing: 0.12em;
508
+ text-transform: uppercase;
509
+ color: var(--dim);
510
+ }
511
+
512
+ .app-input {
513
+ width: 100%;
514
+ background: rgba(6, 5, 4, 0.85);
515
+ border: 1px solid var(--line);
516
+ border-radius: var(--radius-sm);
517
+ padding: 12px 16px;
518
+ color: var(--ink);
519
+ font-family: var(--body);
520
+ font-size: 13.5px;
521
+ outline: none;
522
+ transition: all 0.2s ease;
523
+ }
524
+
525
+ .app-input:focus {
526
+ border-color: var(--acc);
527
+ box-shadow: 0 0 0 2px var(--acc-soft);
528
+ background: rgba(10, 8, 6, 0.95);
529
+ }
530
+
531
+ .app-textarea {
532
+ resize: vertical;
533
+ min-height: 84px;
534
+ line-height: 1.55;
535
+ font-family: var(--body);
536
+ }
537
+
538
+ .app-select {
539
+ background: rgba(6, 5, 4, 0.85);
540
+ border: 1px solid var(--line);
541
+ border-radius: var(--radius-sm);
542
+ padding: 12px 16px;
543
+ color: var(--ink);
544
+ font-family: var(--body);
545
+ font-size: 13.5px;
546
+ outline: none;
547
+ cursor: pointer;
548
+ }
549
+
550
+ /* Buttons */
551
+ .btn-solid {
552
+ display: inline-flex;
553
+ align-items: center;
554
+ justify-content: center;
555
+ gap: 8px;
556
+ background: #ffffff;
557
+ color: #0a0a0a;
558
+ font-family: var(--body);
559
+ font-size: 13.5px;
560
+ font-weight: 600;
561
+ padding: 12px 24px;
562
+ border-radius: var(--radius-pill);
563
+ border: 1px solid transparent;
564
+ cursor: pointer;
565
+ transition: all 0.25s var(--e1);
566
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
567
+ }
568
+
569
+ .btn-solid:hover:not(:disabled) {
570
+ background: var(--acc);
571
+ color: #0a0400;
572
+ transform: translateY(-2px);
573
+ box-shadow: 0 6px 20px rgba(255, 122, 26, 0.35);
574
+ }
575
+
576
+ .btn-solid:active:not(:disabled) {
577
+ transform: translateY(0);
578
+ }
579
+
580
+ .btn-solid:disabled {
581
+ opacity: 0.45;
582
+ cursor: not-allowed;
583
+ transform: none;
584
+ }
585
+
586
+ .btn-line {
587
+ display: inline-flex;
588
+ align-items: center;
589
+ justify-content: center;
590
+ gap: 8px;
591
+ background: transparent;
592
+ color: var(--ink);
593
+ font-family: var(--body);
594
+ font-size: 13.5px;
595
+ font-weight: 500;
596
+ padding: 12px 22px;
597
+ border-radius: var(--radius-pill);
598
+ border: 1px solid var(--line);
599
+ cursor: pointer;
600
+ transition: all 0.25s var(--e1);
601
+ }
602
+
603
+ .btn-line:hover:not(:disabled) {
604
+ border-color: #ffffff;
605
+ transform: translateY(-2px);
606
+ }
607
+
608
+ .btn-danger {
609
+ display: inline-flex;
610
+ align-items: center;
611
+ justify-content: center;
612
+ gap: 8px;
613
+ background: var(--red-soft);
614
+ color: var(--red);
615
+ font-family: var(--body);
616
+ font-size: 13.5px;
617
+ font-weight: 600;
618
+ padding: 12px 22px;
619
+ border-radius: var(--radius-pill);
620
+ border: 1px solid rgba(248, 113, 113, 0.3);
621
+ cursor: pointer;
622
+ transition: all 0.2s ease;
623
+ }
624
+
625
+ .btn-danger:hover:not(:disabled) {
626
+ background: rgba(248, 113, 113, 0.22);
627
+ border-color: var(--red);
628
+ }
629
+
630
+ /* 1-Click Interactive Chips (Agent Roster) */
631
+ .chip-group {
632
+ display: flex;
633
+ gap: 10px;
634
+ flex-wrap: wrap;
635
+ }
636
+
637
+ .agent-chip {
638
+ display: inline-flex;
639
+ align-items: center;
640
+ gap: 8px;
641
+ padding: 8px 18px;
642
+ background: rgba(255, 255, 255, 0.04);
643
+ border: 1px solid var(--line);
644
+ border-radius: var(--radius-pill);
645
+ color: var(--dim);
646
+ font-family: var(--mono);
647
+ font-size: 12px;
648
+ cursor: pointer;
649
+ transition: all 0.25s var(--e1);
650
+ }
651
+
652
+ .agent-chip:hover {
653
+ background: rgba(255, 255, 255, 0.08);
654
+ border-color: rgba(255, 122, 26, 0.5);
655
+ color: var(--ink);
656
+ transform: translateY(-1px);
657
+ }
658
+
659
+ .agent-chip.active {
660
+ background: var(--acc-soft);
661
+ border-color: var(--acc);
662
+ color: var(--acc);
663
+ font-weight: 600;
664
+ box-shadow: 0 2px 12px rgba(255, 122, 26, 0.25);
665
+ }
666
+
667
+ /* Marketplace Cards */
668
+ .market-listing-card {
669
+ background: var(--panel-bg);
670
+ border: 1px solid var(--line);
671
+ border-radius: var(--radius-md);
672
+ padding: 20px;
673
+ display: flex;
674
+ justify-content: space-between;
675
+ align-items: center;
676
+ gap: 16px;
677
+ transition: all 0.25s var(--e1);
678
+ }
679
+
680
+ .market-listing-card:hover {
681
+ border-color: rgba(255, 122, 26, 0.55);
682
+ transform: translateY(-2px);
683
+ }
684
+
685
+ .market-card-left {
686
+ display: flex;
687
+ flex-direction: column;
688
+ gap: 5px;
689
+ }
690
+
691
+ .market-card-title {
692
+ font-family: var(--disp);
693
+ font-size: 15px;
694
+ font-weight: 700;
695
+ color: var(--ink);
696
+ }
697
+
698
+ .market-card-tags {
699
+ display: flex;
700
+ align-items: center;
701
+ gap: 10px;
702
+ font-family: var(--mono);
703
+ font-size: 11.5px;
704
+ color: var(--mute);
705
+ }
706
+
707
+ .market-card-right {
708
+ display: flex;
709
+ align-items: center;
710
+ gap: 14px;
711
+ }
712
+
713
+ .market-price-pill {
714
+ font-family: var(--mono);
715
+ font-size: 13px;
716
+ font-weight: 700;
717
+ color: var(--acc);
718
+ background: var(--acc-soft);
719
+ padding: 6px 14px;
720
+ border-radius: var(--radius-pill);
721
+ border: 1px solid var(--acc-border);
722
+ }
723
+
724
+ /* Activity & Feed Stream */
725
+ .stream-container {
726
+ display: flex;
727
+ flex-direction: column;
728
+ gap: 8px;
729
+ max-height: 250px;
730
+ overflow-y: auto;
731
+ padding-right: 4px;
732
+ }
733
+
734
+ .stream-item {
735
+ display: flex;
736
+ align-items: center;
737
+ justify-content: space-between;
738
+ padding: 10px 16px;
739
+ background: rgba(255, 255, 255, 0.03);
740
+ border: 1px solid var(--line);
741
+ border-radius: var(--radius-sm);
742
+ font-size: 12.5px;
743
+ }
744
+
745
+ .stream-item-main {
746
+ display: flex;
747
+ align-items: center;
748
+ gap: 10px;
749
+ color: var(--ink);
750
+ }
751
+
752
+ .stream-item-time {
753
+ font-size: 11px;
754
+ color: var(--mute);
755
+ font-family: var(--mono);
756
+ }
757
+
758
+ /* Collapsible Technical Drawer */
759
+ .tech-details-drawer {
760
+ background: rgba(10, 8, 6, 0.65);
761
+ border: 1px solid var(--line);
762
+ border-radius: var(--radius-md);
763
+ padding: 14px 18px;
764
+ font-size: 12px;
765
+ color: var(--dim);
766
+ }
767
+
768
+ .tech-details-summary {
769
+ cursor: pointer;
770
+ font-family: var(--mono);
771
+ font-size: 11px;
772
+ font-weight: 600;
773
+ letter-spacing: 0.12em;
774
+ text-transform: uppercase;
775
+ color: var(--dim);
776
+ display: flex;
777
+ align-items: center;
778
+ gap: 6px;
779
+ user-select: none;
780
+ }
781
+
782
+ .tech-details-summary:hover {
783
+ color: var(--acc);
784
+ }
785
+
786
+ .tech-details-content {
787
+ margin-top: 14px;
788
+ display: flex;
789
+ flex-direction: column;
790
+ gap: 8px;
791
+ }
792
+
793
+ .tech-key-val {
794
+ display: flex;
795
+ justify-content: space-between;
796
+ align-items: center;
797
+ padding: 8px 12px;
798
+ background: rgba(0, 0, 0, 0.35);
799
+ border-radius: 6px;
800
+ font-size: 11.5px;
801
+ }
802
+
803
+ .tech-key-val code {
804
+ font-family: var(--mono);
805
+ color: var(--acc2);
806
+ }
807
+
808
+ /* Feedback Bar */
809
+ .status-feedback-bar {
810
+ display: flex;
811
+ align-items: center;
812
+ gap: 10px;
813
+ padding: 10px 16px;
814
+ background: rgba(255, 255, 255, 0.04);
815
+ border: 1px solid var(--line);
816
+ border-radius: var(--radius-sm);
817
+ font-family: var(--mono);
818
+ font-size: 12px;
819
+ color: var(--dim);
820
+ }
821
+
822
+ .status-feedback-bar.ok {
823
+ background: var(--green-soft);
824
+ border-color: rgba(74, 222, 128, 0.3);
825
+ color: var(--green);
826
+ }
827
+
828
+ .status-feedback-bar.error {
829
+ background: var(--red-soft);
830
+ border-color: rgba(248, 113, 113, 0.3);
831
+ color: var(--red);
832
+ }
833
+
834
+ /* Terminal Screen Styles (Context Vault Tab) */
835
+ .terminal-screen {
836
+ flex: 1;
837
+ display: flex;
838
+ flex-direction: column;
839
+ background: rgba(6, 5, 4, 0.95);
840
+ border: 1px solid var(--line);
841
+ border-radius: var(--radius-lg);
842
+ overflow: hidden;
843
+ box-shadow: var(--shadow-sm);
844
+ }
845
+
846
+ .terminal-history {
847
+ flex: 1;
848
+ overflow-y: auto;
849
+ padding: 18px 22px;
850
+ font-family: var(--mono);
851
+ font-size: 12.5px;
852
+ line-height: 1.65;
853
+ color: #e2e8f0;
854
+ }
855
+
856
+ .history-entry {
857
+ margin-bottom: 12px;
858
+ }
859
+
860
+ .history-prompt {
861
+ display: flex;
862
+ gap: 8px;
863
+ color: var(--acc);
864
+ font-weight: 600;
865
+ }
866
+
867
+ .history-output {
868
+ margin-top: 4px;
869
+ white-space: pre-wrap;
870
+ word-break: break-all;
871
+ }
872
+
873
+ .terminal-input-row {
874
+ display: flex;
875
+ align-items: center;
876
+ padding: 14px 20px;
877
+ background: rgba(12, 10, 8, 0.98);
878
+ border-top: 1px solid var(--line);
879
+ gap: 10px;
880
+ }
881
+
882
+ .prompt-badge {
883
+ color: var(--acc);
884
+ font-family: var(--mono);
885
+ font-size: 12px;
886
+ font-weight: 700;
887
+ white-space: nowrap;
888
+ }
889
+
890
+ .terminal-input {
891
+ flex: 1;
892
+ background: transparent;
893
+ border: none;
894
+ outline: none;
895
+ color: var(--ink);
896
+ font-family: var(--mono);
897
+ font-size: 12.5px;
898
+ }
899
+
900
+ /* Backward compatibility classes to keep all JS working */
901
+ .zk-proof-panel { display: flex; flex-direction: column; }
902
+ .zk-action-btn { @extend .btn-line; }
903
+ .zk-input { @extend .app-input; }
904
+ .zk-memory-input { flex: 1; }
905
+ .zk-sale-num { width: 130px; }
906
+ .zk-sale-textarea { @extend .app-input; @extend .app-textarea; }
907
+ .zk-sale-listings { display: flex; flex-direction: column; gap: 8px; }
908
+ .zk-sale-empty { color: var(--mute); font-family: var(--mono); font-size: 12px; }
909
+
910
+ /* Custom Scrollbars */
911
+ ::-webkit-scrollbar {
912
+ width: 6px;
913
+ height: 6px;
914
+ }
915
+
916
+ ::-webkit-scrollbar-track {
917
+ background: transparent;
918
+ }
919
+
920
+ ::-webkit-scrollbar-thumb {
921
+ background: rgba(255, 255, 255, 0.12);
922
+ border-radius: 3px;
923
+ }
924
+
925
+ ::-webkit-scrollbar-thumb:hover {
926
+ background: rgba(255, 255, 255, 0.22);
927
+ }
928
+
929
+ @media (max-width: 1100px) {
930
+ .window-titlebar {
931
+ padding-inline: 14px;
932
+ }
933
+
934
+ .titlebar-right {
935
+ display: none;
936
+ }
937
+
938
+ .desktop-nav-tabs {
939
+ max-width: calc(100vw - 250px);
940
+ overflow-x: auto;
941
+ justify-content: flex-start;
942
+ }
943
+
944
+ .nav-tab-btn {
945
+ padding-inline: 12px;
946
+ font-size: 10.5px;
947
+ }
948
+ }
949
+
950
+ @media (max-width: 720px) {
951
+ .window-controls,
952
+ .version-pill {
953
+ display: none;
954
+ }
955
+
956
+ .desktop-nav-tabs {
957
+ max-width: calc(100vw - 92px);
958
+ }
959
+
960
+ .brand-title {
961
+ font-size: 12px;
962
+ }
963
+ }
964
+
965
+ /* Enigma private AI workspace */
966
+ .sr-only {
967
+ position: absolute;
968
+ width: 1px;
969
+ height: 1px;
970
+ padding: 0;
971
+ margin: -1px;
972
+ overflow: hidden;
973
+ clip: rect(0, 0, 0, 0);
974
+ white-space: nowrap;
975
+ border: 0;
976
+ }
977
+
978
+ .workspace-panel {
979
+ padding: 18px 22px 24px;
980
+ background:
981
+ radial-gradient(circle at 72% -18%, rgba(255, 122, 26, 0.12), transparent 34rem),
982
+ rgba(7, 6, 5, 0.97);
983
+ }
984
+
985
+ .workspace-layout {
986
+ display: grid;
987
+ grid-template-columns: 236px minmax(0, 1fr);
988
+ width: min(1480px, 100%);
989
+ min-height: 680px;
990
+ height: 100%;
991
+ margin: 0 auto;
992
+ overflow: hidden;
993
+ border: 1px solid var(--line);
994
+ border-radius: 22px;
995
+ background: rgba(10, 9, 8, 0.92);
996
+ box-shadow: var(--shadow-lg), var(--glass-highlight);
997
+ }
998
+
999
+ .workspace-sidebar {
1000
+ display: flex;
1001
+ flex-direction: column;
1002
+ min-width: 0;
1003
+ padding: 24px 14px 16px;
1004
+ border-right: 1px solid var(--line);
1005
+ background: rgba(14, 12, 10, 0.82);
1006
+ }
1007
+
1008
+ .workspace-sidebar-brand {
1009
+ display: flex;
1010
+ flex-direction: column;
1011
+ gap: 5px;
1012
+ padding: 0 10px 24px;
1013
+ }
1014
+
1015
+ .workspace-sidebar-kicker,
1016
+ .workspace-stage-eyebrow,
1017
+ .workspace-empty-index,
1018
+ .workspace-section-intro > span,
1019
+ .workspace-section-intro > div > span {
1020
+ color: var(--acc);
1021
+ font-family: var(--mono);
1022
+ font-size: 10px;
1023
+ font-weight: 600;
1024
+ letter-spacing: 0.18em;
1025
+ }
1026
+
1027
+ .workspace-sidebar-brand strong {
1028
+ color: var(--ink);
1029
+ font-family: var(--disp);
1030
+ font-size: 19px;
1031
+ letter-spacing: -0.025em;
1032
+ }
1033
+
1034
+ .workspace-sidebar-brand > span:last-child {
1035
+ color: var(--mute);
1036
+ font-size: 11.5px;
1037
+ line-height: 1.5;
1038
+ }
1039
+
1040
+ .workspace-mode-nav {
1041
+ display: flex;
1042
+ flex-direction: column;
1043
+ gap: 4px;
1044
+ }
1045
+
1046
+ .workspace-mode-btn {
1047
+ display: grid;
1048
+ grid-template-columns: 22px minmax(0, 1fr);
1049
+ gap: 10px;
1050
+ align-items: center;
1051
+ width: 100%;
1052
+ padding: 11px 10px;
1053
+ color: var(--mute);
1054
+ text-align: left;
1055
+ background: transparent;
1056
+ border: 1px solid transparent;
1057
+ border-radius: 10px;
1058
+ cursor: pointer;
1059
+ transition: color 180ms var(--e1), background 180ms var(--e1), border-color 180ms var(--e1), transform 180ms var(--e1);
1060
+ }
1061
+
1062
+ .workspace-mode-btn:hover {
1063
+ color: var(--ink);
1064
+ background: rgba(255, 255, 255, 0.04);
1065
+ }
1066
+
1067
+ .workspace-mode-btn:active {
1068
+ transform: translateY(1px);
1069
+ }
1070
+
1071
+ .workspace-mode-btn.active {
1072
+ color: var(--ink);
1073
+ background: rgba(255, 122, 26, 0.10);
1074
+ border-color: rgba(255, 122, 26, 0.24);
1075
+ box-shadow: inset 3px 0 0 var(--acc);
1076
+ }
1077
+
1078
+ .workspace-mode-btn svg {
1079
+ width: 19px;
1080
+ height: 19px;
1081
+ fill: none;
1082
+ stroke: currentColor;
1083
+ stroke-width: 1.55;
1084
+ stroke-linecap: round;
1085
+ stroke-linejoin: round;
1086
+ }
1087
+
1088
+ .workspace-mode-btn > span {
1089
+ display: flex;
1090
+ flex-direction: column;
1091
+ min-width: 0;
1092
+ }
1093
+
1094
+ .workspace-mode-btn strong {
1095
+ color: inherit;
1096
+ font-size: 12.5px;
1097
+ font-weight: 600;
1098
+ }
1099
+
1100
+ .workspace-mode-btn small {
1101
+ color: var(--mute);
1102
+ font-family: var(--mono);
1103
+ font-size: 9.5px;
1104
+ }
1105
+
1106
+ .workspace-boundary-note {
1107
+ display: flex;
1108
+ align-items: flex-start;
1109
+ gap: 9px;
1110
+ margin-top: auto;
1111
+ padding: 14px 10px 0;
1112
+ border-top: 1px solid var(--line);
1113
+ }
1114
+
1115
+ .workspace-boundary-note > div {
1116
+ display: flex;
1117
+ flex-direction: column;
1118
+ gap: 2px;
1119
+ }
1120
+
1121
+ .workspace-boundary-note strong {
1122
+ color: var(--dim);
1123
+ font-family: var(--mono);
1124
+ font-size: 10.5px;
1125
+ font-weight: 600;
1126
+ text-transform: uppercase;
1127
+ }
1128
+
1129
+ .workspace-boundary-note span:last-child {
1130
+ color: var(--mute);
1131
+ font-size: 10.5px;
1132
+ line-height: 1.4;
1133
+ }
1134
+
1135
+ .workspace-live-dot {
1136
+ flex: 0 0 auto;
1137
+ width: 7px;
1138
+ height: 7px;
1139
+ margin-top: 4px;
1140
+ border-radius: 50%;
1141
+ background: var(--green);
1142
+ box-shadow: 0 0 0 4px rgba(74, 222, 128, 0.09);
1143
+ animation: workspace-breathe 2.8s ease-in-out infinite;
1144
+ }
1145
+
1146
+ @keyframes workspace-breathe {
1147
+ 0%, 100% { opacity: 0.55; transform: scale(0.86); }
1148
+ 50% { opacity: 1; transform: scale(1); }
1149
+ }
1150
+
1151
+ .workspace-stage {
1152
+ display: flex;
1153
+ flex-direction: column;
1154
+ min-width: 0;
1155
+ min-height: 0;
1156
+ }
1157
+
1158
+ .workspace-stage-header {
1159
+ display: flex;
1160
+ justify-content: space-between;
1161
+ align-items: flex-start;
1162
+ gap: 30px;
1163
+ padding: 25px 30px 22px;
1164
+ border-bottom: 1px solid var(--line);
1165
+ background: rgba(12, 10, 8, 0.55);
1166
+ }
1167
+
1168
+ .workspace-stage-header > div:first-child {
1169
+ min-width: 0;
1170
+ }
1171
+
1172
+ .workspace-stage-header h2 {
1173
+ max-width: 700px;
1174
+ margin-top: 5px;
1175
+ color: var(--ink);
1176
+ font-family: var(--disp);
1177
+ font-size: clamp(25px, 2.4vw, 36px);
1178
+ font-weight: 700;
1179
+ line-height: 1.05;
1180
+ letter-spacing: -0.045em;
1181
+ text-wrap: balance;
1182
+ }
1183
+
1184
+ .workspace-stage-header p {
1185
+ max-width: 72ch;
1186
+ margin-top: 8px;
1187
+ color: var(--dim);
1188
+ font-size: 12.5px;
1189
+ line-height: 1.55;
1190
+ }
1191
+
1192
+ .workspace-route-status {
1193
+ display: flex;
1194
+ align-items: center;
1195
+ gap: 9px;
1196
+ flex: 0 0 auto;
1197
+ padding: 8px 11px;
1198
+ color: var(--dim);
1199
+ font-family: var(--mono);
1200
+ font-size: 10px;
1201
+ text-transform: uppercase;
1202
+ border: 1px solid var(--line);
1203
+ border-radius: 9px;
1204
+ background: rgba(255, 255, 255, 0.035);
1205
+ }
1206
+
1207
+ .workspace-route-status.error .workspace-live-dot {
1208
+ background: var(--red);
1209
+ box-shadow: 0 0 0 4px rgba(248, 113, 113, 0.09);
1210
+ animation: none;
1211
+ }
1212
+
1213
+ .workspace-view {
1214
+ display: none;
1215
+ min-height: 0;
1216
+ flex: 1;
1217
+ overflow-y: auto;
1218
+ padding: 28px 30px 32px;
1219
+ animation: workspace-enter 280ms var(--e1) both;
1220
+ }
1221
+
1222
+ .workspace-view.active {
1223
+ display: flex;
1224
+ flex-direction: column;
1225
+ }
1226
+
1227
+ @keyframes workspace-enter {
1228
+ from { opacity: 0; transform: translateY(7px); }
1229
+ to { opacity: 1; transform: translateY(0); }
1230
+ }
1231
+
1232
+ .workspace-chat-frame {
1233
+ display: grid;
1234
+ grid-template-rows: minmax(260px, 1fr) auto;
1235
+ gap: 18px;
1236
+ min-height: 100%;
1237
+ }
1238
+
1239
+ .workspace-message-feed {
1240
+ display: flex;
1241
+ flex-direction: column;
1242
+ gap: 14px;
1243
+ min-height: 0;
1244
+ overflow-y: auto;
1245
+ scroll-behavior: smooth;
1246
+ }
1247
+
1248
+ .workspace-empty-state {
1249
+ display: grid;
1250
+ grid-template-columns: minmax(0, 0.95fr) minmax(300px, 1.05fr);
1251
+ align-content: center;
1252
+ gap: 10px 42px;
1253
+ min-height: 100%;
1254
+ padding: 22px 1vw 28px;
1255
+ }
1256
+
1257
+ .workspace-empty-state > span,
1258
+ .workspace-empty-state > h3,
1259
+ .workspace-empty-state > p {
1260
+ grid-column: 1;
1261
+ }
1262
+
1263
+ .workspace-empty-state h3,
1264
+ .workspace-section-intro h3 {
1265
+ color: var(--ink);
1266
+ font-family: var(--disp);
1267
+ font-size: clamp(24px, 3vw, 40px);
1268
+ font-weight: 700;
1269
+ line-height: 1.02;
1270
+ letter-spacing: -0.045em;
1271
+ text-wrap: balance;
1272
+ }
1273
+
1274
+ .workspace-empty-state p,
1275
+ .workspace-section-intro p {
1276
+ max-width: 62ch;
1277
+ color: var(--dim);
1278
+ font-size: 13px;
1279
+ line-height: 1.65;
1280
+ }
1281
+
1282
+ .workspace-prompt-grid {
1283
+ display: grid;
1284
+ grid-column: 2;
1285
+ grid-row: 1 / span 3;
1286
+ grid-template-columns: 1fr 1fr;
1287
+ align-self: center;
1288
+ gap: 8px;
1289
+ }
1290
+
1291
+ .workspace-prompt-grid button {
1292
+ min-height: 72px;
1293
+ padding: 14px;
1294
+ color: var(--dim);
1295
+ font-family: var(--body);
1296
+ font-size: 12px;
1297
+ line-height: 1.4;
1298
+ text-align: left;
1299
+ border: 1px solid var(--line);
1300
+ border-radius: 11px;
1301
+ background: rgba(255, 255, 255, 0.025);
1302
+ cursor: pointer;
1303
+ transition: transform 180ms var(--e1), border-color 180ms var(--e1), color 180ms var(--e1), background 180ms var(--e1);
1304
+ }
1305
+
1306
+ .workspace-prompt-grid button:hover {
1307
+ color: var(--ink);
1308
+ border-color: var(--acc-border);
1309
+ background: var(--acc-soft);
1310
+ transform: translateY(-2px);
1311
+ }
1312
+
1313
+ .workspace-prompt-grid button:active {
1314
+ transform: translateY(0);
1315
+ }
1316
+
1317
+ .workspace-message {
1318
+ display: grid;
1319
+ grid-template-columns: 76px minmax(0, 1fr);
1320
+ gap: 18px;
1321
+ padding: 17px 0;
1322
+ border-top: 1px solid var(--line);
1323
+ }
1324
+
1325
+ .workspace-message:first-child {
1326
+ border-top: 0;
1327
+ }
1328
+
1329
+ .workspace-message-role {
1330
+ color: var(--mute);
1331
+ font-family: var(--mono);
1332
+ font-size: 9.5px;
1333
+ font-weight: 600;
1334
+ letter-spacing: 0.13em;
1335
+ }
1336
+
1337
+ .workspace-message.assistant .workspace-message-role {
1338
+ color: var(--acc);
1339
+ }
1340
+
1341
+ .workspace-message-body {
1342
+ min-width: 0;
1343
+ color: var(--ink);
1344
+ font-size: 13.5px;
1345
+ line-height: 1.7;
1346
+ white-space: pre-wrap;
1347
+ overflow-wrap: anywhere;
1348
+ }
1349
+
1350
+ .workspace-message-meta {
1351
+ display: flex;
1352
+ flex-wrap: wrap;
1353
+ gap: 6px 12px;
1354
+ margin-top: 11px;
1355
+ color: var(--mute);
1356
+ font-family: var(--mono);
1357
+ font-size: 9.5px;
1358
+ }
1359
+
1360
+ .workspace-message.error .workspace-message-body {
1361
+ color: var(--red);
1362
+ }
1363
+
1364
+ .workspace-message-loading {
1365
+ display: grid;
1366
+ gap: 8px;
1367
+ max-width: 560px;
1368
+ }
1369
+
1370
+ .workspace-message-loading span {
1371
+ display: block;
1372
+ height: 9px;
1373
+ border-radius: 4px;
1374
+ background: linear-gradient(90deg, rgba(255,255,255,0.05), rgba(255,122,26,0.16), rgba(255,255,255,0.05));
1375
+ background-size: 220% 100%;
1376
+ animation: workspace-shimmer 1.5s ease-in-out infinite;
1377
+ }
1378
+
1379
+ .workspace-message-loading span:nth-child(2) { width: 86%; }
1380
+ .workspace-message-loading span:nth-child(3) { width: 63%; }
1381
+
1382
+ @keyframes workspace-shimmer {
1383
+ from { background-position: 200% 0; }
1384
+ to { background-position: -20% 0; }
1385
+ }
1386
+
1387
+ .workspace-composer {
1388
+ padding: 14px;
1389
+ border: 1px solid var(--line-strong);
1390
+ border-radius: 16px;
1391
+ background: rgba(18, 15, 12, 0.94);
1392
+ box-shadow: var(--glass-highlight), 0 18px 42px rgba(2, 1, 0, 0.28);
1393
+ }
1394
+
1395
+ .workspace-composer-field textarea,
1396
+ .workspace-council-composer textarea {
1397
+ width: 100%;
1398
+ resize: vertical;
1399
+ color: var(--ink);
1400
+ font: 13.5px/1.55 var(--body);
1401
+ border: 0;
1402
+ outline: 0;
1403
+ background: transparent;
1404
+ }
1405
+
1406
+ .workspace-composer-field textarea {
1407
+ min-height: 66px;
1408
+ max-height: 200px;
1409
+ padding: 4px 5px 12px;
1410
+ }
1411
+
1412
+ .workspace-composer-field textarea::placeholder,
1413
+ .workspace-council-composer textarea::placeholder {
1414
+ color: var(--mute);
1415
+ }
1416
+
1417
+ .workspace-composer-toolbar {
1418
+ display: flex;
1419
+ align-items: flex-end;
1420
+ justify-content: space-between;
1421
+ gap: 14px;
1422
+ padding-top: 10px;
1423
+ border-top: 1px solid var(--line);
1424
+ }
1425
+
1426
+ .workspace-route-controls,
1427
+ .workspace-turn-controls {
1428
+ display: flex;
1429
+ align-items: flex-end;
1430
+ gap: 8px;
1431
+ }
1432
+
1433
+ .workspace-route-controls label {
1434
+ display: flex;
1435
+ flex-direction: column;
1436
+ gap: 4px;
1437
+ }
1438
+
1439
+ .workspace-route-controls label > span,
1440
+ .workspace-council-composer > label,
1441
+ .workspace-filter > span {
1442
+ color: var(--mute);
1443
+ font-family: var(--mono);
1444
+ font-size: 9px;
1445
+ font-weight: 600;
1446
+ letter-spacing: 0.11em;
1447
+ text-transform: uppercase;
1448
+ }
1449
+
1450
+ .workspace-route-controls select,
1451
+ .workspace-council-route,
1452
+ .workspace-filter input {
1453
+ min-height: 34px;
1454
+ color: var(--dim);
1455
+ font: 10.5px var(--mono);
1456
+ border: 1px solid var(--line);
1457
+ border-radius: 8px;
1458
+ outline: 0;
1459
+ background: rgba(6, 5, 4, 0.86);
1460
+ }
1461
+
1462
+ .workspace-route-controls select {
1463
+ max-width: 220px;
1464
+ padding: 0 26px 0 9px;
1465
+ }
1466
+
1467
+ .workspace-route-controls select:focus,
1468
+ .workspace-council-route:focus,
1469
+ .workspace-filter input:focus,
1470
+ .workspace-council-composer textarea:focus,
1471
+ .workspace-composer:focus-within {
1472
+ border-color: var(--acc-border);
1473
+ box-shadow: 0 0 0 3px rgba(255, 122, 26, 0.08);
1474
+ }
1475
+
1476
+ .workspace-check {
1477
+ display: flex;
1478
+ align-items: center;
1479
+ gap: 6px;
1480
+ min-height: 34px;
1481
+ padding: 0 9px;
1482
+ color: var(--mute);
1483
+ font: 9.5px var(--mono);
1484
+ border: 1px solid var(--line);
1485
+ border-radius: 8px;
1486
+ cursor: pointer;
1487
+ }
1488
+
1489
+ .workspace-check input {
1490
+ accent-color: var(--acc);
1491
+ }
1492
+
1493
+ .workspace-send-btn {
1494
+ display: inline-flex;
1495
+ align-items: center;
1496
+ justify-content: center;
1497
+ gap: 8px;
1498
+ min-height: 36px;
1499
+ padding: 0 14px;
1500
+ color: #1a0b02;
1501
+ font: 600 10.5px var(--mono);
1502
+ text-transform: uppercase;
1503
+ border: 1px solid var(--acc);
1504
+ border-radius: 9px;
1505
+ background: var(--acc);
1506
+ cursor: pointer;
1507
+ transition: transform 180ms var(--e1), background 180ms var(--e1), opacity 180ms var(--e1);
1508
+ }
1509
+
1510
+ .workspace-send-btn svg {
1511
+ width: 15px;
1512
+ height: 15px;
1513
+ fill: none;
1514
+ stroke: currentColor;
1515
+ stroke-width: 1.7;
1516
+ stroke-linecap: round;
1517
+ stroke-linejoin: round;
1518
+ }
1519
+
1520
+ .workspace-send-btn:hover:not(:disabled) {
1521
+ background: var(--acc2);
1522
+ transform: translateY(-1px);
1523
+ }
1524
+
1525
+ .workspace-send-btn:active:not(:disabled) {
1526
+ transform: translateY(1px);
1527
+ }
1528
+
1529
+ .workspace-send-btn:disabled {
1530
+ opacity: 0.34;
1531
+ cursor: not-allowed;
1532
+ }
1533
+
1534
+ .workspace-composer-note {
1535
+ margin-top: 8px;
1536
+ color: var(--mute);
1537
+ font-family: var(--mono);
1538
+ font-size: 8.75px;
1539
+ }
1540
+
1541
+ .workspace-section-intro {
1542
+ display: flex;
1543
+ flex-direction: column;
1544
+ gap: 9px;
1545
+ max-width: 850px;
1546
+ padding-bottom: 24px;
1547
+ }
1548
+
1549
+ .workspace-section-intro-split {
1550
+ display: grid;
1551
+ grid-template-columns: minmax(0, 1fr) 250px;
1552
+ max-width: none;
1553
+ gap: 28px;
1554
+ }
1555
+
1556
+ .workspace-section-intro-split > div {
1557
+ display: flex;
1558
+ flex-direction: column;
1559
+ gap: 9px;
1560
+ }
1561
+
1562
+ .workspace-seat-grid {
1563
+ display: grid;
1564
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1565
+ gap: 10px;
1566
+ }
1567
+
1568
+ .workspace-seat {
1569
+ min-width: 0;
1570
+ border-top: 2px solid var(--line-strong);
1571
+ background: rgba(255, 255, 255, 0.025);
1572
+ }
1573
+
1574
+ .workspace-seat:nth-child(1) { border-top-color: var(--acc); }
1575
+
1576
+ .workspace-seat-header {
1577
+ display: flex;
1578
+ align-items: center;
1579
+ justify-content: space-between;
1580
+ gap: 8px;
1581
+ padding: 13px;
1582
+ border-bottom: 1px solid var(--line);
1583
+ }
1584
+
1585
+ .workspace-seat-header > span {
1586
+ color: var(--mute);
1587
+ font: 600 9px var(--mono);
1588
+ letter-spacing: 0.13em;
1589
+ }
1590
+
1591
+ .workspace-council-route {
1592
+ max-width: 68%;
1593
+ padding: 0 7px;
1594
+ }
1595
+
1596
+ .workspace-seat-result {
1597
+ min-height: 220px;
1598
+ max-height: 380px;
1599
+ padding: 17px 14px;
1600
+ overflow-y: auto;
1601
+ color: var(--dim);
1602
+ font-size: 12.5px;
1603
+ line-height: 1.65;
1604
+ white-space: pre-wrap;
1605
+ overflow-wrap: anywhere;
1606
+ }
1607
+
1608
+ .workspace-seat-result.error {
1609
+ color: var(--red);
1610
+ }
1611
+
1612
+ .workspace-council-composer {
1613
+ display: flex;
1614
+ flex-direction: column;
1615
+ gap: 9px;
1616
+ margin-top: 12px;
1617
+ padding: 16px;
1618
+ border: 1px solid var(--line);
1619
+ border-radius: 13px;
1620
+ background: rgba(255, 255, 255, 0.025);
1621
+ }
1622
+
1623
+ .workspace-council-composer textarea {
1624
+ min-height: 78px;
1625
+ padding: 10px;
1626
+ border: 1px solid var(--line);
1627
+ border-radius: 8px;
1628
+ background: rgba(6, 5, 4, 0.66);
1629
+ }
1630
+
1631
+ .workspace-council-composer > div {
1632
+ display: flex;
1633
+ align-items: center;
1634
+ justify-content: space-between;
1635
+ gap: 12px;
1636
+ color: var(--mute);
1637
+ font: 9.5px var(--mono);
1638
+ }
1639
+
1640
+ .workspace-filter {
1641
+ display: flex;
1642
+ flex-direction: column;
1643
+ gap: 5px;
1644
+ align-self: end;
1645
+ }
1646
+
1647
+ .workspace-filter input {
1648
+ width: 100%;
1649
+ padding: 0 10px;
1650
+ }
1651
+
1652
+ .workspace-model-summary {
1653
+ padding: 10px 0;
1654
+ color: var(--mute);
1655
+ font: 10px var(--mono);
1656
+ border-top: 1px solid var(--line);
1657
+ border-bottom: 1px solid var(--line);
1658
+ }
1659
+
1660
+ .workspace-model-list,
1661
+ .workspace-connection-list {
1662
+ display: flex;
1663
+ flex-direction: column;
1664
+ }
1665
+
1666
+ .workspace-model-row,
1667
+ .workspace-connection-row {
1668
+ display: grid;
1669
+ align-items: center;
1670
+ gap: 18px;
1671
+ padding: 15px 4px;
1672
+ border-bottom: 1px solid var(--line);
1673
+ }
1674
+
1675
+ .workspace-model-row {
1676
+ grid-template-columns: minmax(160px, 1fr) minmax(120px, 0.65fr) 86px;
1677
+ }
1678
+
1679
+ .workspace-model-row strong,
1680
+ .workspace-connection-row strong {
1681
+ color: var(--ink);
1682
+ font-size: 12.5px;
1683
+ font-weight: 600;
1684
+ }
1685
+
1686
+ .workspace-model-row span,
1687
+ .workspace-connection-row span,
1688
+ .workspace-model-row small,
1689
+ .workspace-connection-row small {
1690
+ color: var(--mute);
1691
+ font: 9.5px var(--mono);
1692
+ }
1693
+
1694
+ .workspace-model-row small {
1695
+ text-align: right;
1696
+ }
1697
+
1698
+ .workspace-empty-row {
1699
+ padding: 34px 4px;
1700
+ color: var(--mute);
1701
+ font: 11px var(--mono);
1702
+ }
1703
+
1704
+ .workspace-connection-row {
1705
+ grid-template-columns: minmax(150px, 0.8fr) minmax(200px, 1.2fr) auto;
1706
+ }
1707
+
1708
+ .workspace-connection-row > div {
1709
+ display: flex;
1710
+ flex-direction: column;
1711
+ gap: 3px;
1712
+ }
1713
+
1714
+ .workspace-connection-state {
1715
+ color: var(--green) !important;
1716
+ text-transform: uppercase;
1717
+ }
1718
+
1719
+ .workspace-boundary-grid {
1720
+ display: grid;
1721
+ grid-template-columns: 1fr 1fr;
1722
+ margin-top: 25px;
1723
+ border-top: 1px solid var(--line);
1724
+ border-left: 1px solid var(--line);
1725
+ }
1726
+
1727
+ .workspace-boundary-grid > div {
1728
+ display: flex;
1729
+ flex-direction: column;
1730
+ gap: 4px;
1731
+ padding: 18px;
1732
+ border-right: 1px solid var(--line);
1733
+ border-bottom: 1px solid var(--line);
1734
+ }
1735
+
1736
+ .workspace-boundary-grid span,
1737
+ .workspace-privacy-grid span,
1738
+ .workspace-limitations span {
1739
+ color: var(--acc);
1740
+ font: 600 9px var(--mono);
1741
+ letter-spacing: 0.1em;
1742
+ }
1743
+
1744
+ .workspace-boundary-grid strong,
1745
+ .workspace-privacy-grid strong {
1746
+ color: var(--ink);
1747
+ font-family: var(--disp);
1748
+ font-size: 16px;
1749
+ }
1750
+
1751
+ .workspace-boundary-grid small,
1752
+ .workspace-privacy-grid small {
1753
+ color: var(--mute);
1754
+ font-size: 10.5px;
1755
+ }
1756
+
1757
+ .workspace-privacy-grid {
1758
+ display: grid;
1759
+ grid-template-columns: 0.8fr 1.4fr 0.8fr;
1760
+ border-top: 1px solid var(--line);
1761
+ border-left: 1px solid var(--line);
1762
+ }
1763
+
1764
+ .workspace-privacy-grid article {
1765
+ display: flex;
1766
+ flex-direction: column;
1767
+ gap: 7px;
1768
+ min-width: 0;
1769
+ padding: 20px;
1770
+ border-right: 1px solid var(--line);
1771
+ border-bottom: 1px solid var(--line);
1772
+ }
1773
+
1774
+ .workspace-hash {
1775
+ overflow: hidden;
1776
+ color: var(--acc2) !important;
1777
+ font: 11px var(--mono) !important;
1778
+ text-overflow: ellipsis;
1779
+ white-space: nowrap;
1780
+ }
1781
+
1782
+ .workspace-category-list {
1783
+ display: flex;
1784
+ flex-wrap: wrap;
1785
+ gap: 8px;
1786
+ padding: 18px 0 24px;
1787
+ }
1788
+
1789
+ .workspace-category-list span {
1790
+ padding: 6px 9px;
1791
+ color: var(--dim);
1792
+ font: 9.5px var(--mono);
1793
+ border: 1px solid var(--line);
1794
+ border-radius: 7px;
1795
+ background: rgba(255, 255, 255, 0.025);
1796
+ }
1797
+
1798
+ .workspace-limitations {
1799
+ display: grid;
1800
+ grid-template-columns: 1fr 1fr auto;
1801
+ align-items: stretch;
1802
+ border-top: 1px solid var(--line);
1803
+ }
1804
+
1805
+ .workspace-limitations > div {
1806
+ padding: 18px 18px 18px 0;
1807
+ }
1808
+
1809
+ .workspace-limitations p {
1810
+ max-width: 50ch;
1811
+ margin-top: 5px;
1812
+ color: var(--mute);
1813
+ font-size: 11px;
1814
+ line-height: 1.55;
1815
+ }
1816
+
1817
+ .workspace-limitations button {
1818
+ align-self: center;
1819
+ padding: 10px 12px;
1820
+ color: var(--red);
1821
+ font: 10px var(--mono);
1822
+ border: 1px solid rgba(248, 113, 113, 0.3);
1823
+ border-radius: 8px;
1824
+ background: var(--red-soft);
1825
+ cursor: pointer;
1826
+ transition: transform 180ms var(--e1), background 180ms var(--e1);
1827
+ }
1828
+
1829
+ .workspace-limitations button:hover {
1830
+ background: rgba(248, 113, 113, 0.18);
1831
+ transform: translateY(-1px);
1832
+ }
1833
+
1834
+ .workspace-limitations button:active {
1835
+ transform: translateY(1px);
1836
+ }
1837
+
1838
+ @media (max-width: 1180px) {
1839
+ .workspace-layout {
1840
+ grid-template-columns: 196px minmax(0, 1fr);
1841
+ }
1842
+
1843
+ .workspace-seat-grid {
1844
+ grid-template-columns: 1fr;
1845
+ }
1846
+
1847
+ .workspace-seat-result {
1848
+ min-height: 130px;
1849
+ }
1850
+
1851
+ .workspace-empty-state {
1852
+ grid-template-columns: 1fr;
1853
+ }
1854
+
1855
+ .workspace-prompt-grid {
1856
+ grid-column: 1;
1857
+ grid-row: auto;
1858
+ }
1859
+
1860
+ .workspace-composer-toolbar {
1861
+ align-items: stretch;
1862
+ flex-direction: column;
1863
+ }
1864
+
1865
+ .workspace-turn-controls {
1866
+ justify-content: flex-end;
1867
+ }
1868
+ }
1869
+
1870
+ @media (max-width: 860px) {
1871
+ .workspace-panel {
1872
+ padding: 10px;
1873
+ }
1874
+
1875
+ .workspace-layout {
1876
+ grid-template-columns: 1fr;
1877
+ min-height: 0;
1878
+ overflow: visible;
1879
+ }
1880
+
1881
+ .workspace-sidebar {
1882
+ padding: 12px;
1883
+ border-right: 0;
1884
+ border-bottom: 1px solid var(--line);
1885
+ }
1886
+
1887
+ .workspace-sidebar-brand,
1888
+ .workspace-boundary-note {
1889
+ display: none;
1890
+ }
1891
+
1892
+ .workspace-mode-nav {
1893
+ display: grid;
1894
+ grid-template-columns: repeat(5, minmax(0, 1fr));
1895
+ }
1896
+
1897
+ .workspace-mode-btn {
1898
+ grid-template-columns: 1fr;
1899
+ justify-items: center;
1900
+ padding: 8px 4px;
1901
+ text-align: center;
1902
+ }
1903
+
1904
+ .workspace-mode-btn small {
1905
+ display: none;
1906
+ }
1907
+
1908
+ .workspace-mode-btn.active {
1909
+ box-shadow: inset 0 -2px 0 var(--acc);
1910
+ }
1911
+
1912
+ .workspace-stage-header,
1913
+ .workspace-view {
1914
+ padding-left: 18px;
1915
+ padding-right: 18px;
1916
+ }
1917
+
1918
+ .workspace-stage-header {
1919
+ flex-direction: column;
1920
+ gap: 14px;
1921
+ }
1922
+
1923
+ .workspace-route-status {
1924
+ align-self: flex-start;
1925
+ }
1926
+
1927
+ .workspace-section-intro-split,
1928
+ .workspace-privacy-grid,
1929
+ .workspace-boundary-grid,
1930
+ .workspace-limitations {
1931
+ grid-template-columns: 1fr;
1932
+ }
1933
+
1934
+ .workspace-route-controls,
1935
+ .workspace-turn-controls {
1936
+ flex-wrap: wrap;
1937
+ }
1938
+ }
1939
+
1940
+ @media (prefers-reduced-motion: reduce) {
1941
+ .workspace-live-dot,
1942
+ .workspace-message-loading span,
1943
+ .workspace-view {
1944
+ animation: none;
1945
+ }
1946
+ }
1947
+
1948
+ .workspace-mode-nav {
1949
+ min-height: 0;
1950
+ overflow-y: auto;
1951
+ scrollbar-width: thin;
1952
+ }
1953
+
1954
+ .workspace-tool-grid {
1955
+ display: grid;
1956
+ grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
1957
+ gap: 18px;
1958
+ min-height: 0;
1959
+ flex: 1;
1960
+ margin-top: 22px;
1961
+ }
1962
+
1963
+ .workspace-tool-form,
1964
+ .workspace-output-surface,
1965
+ .workspace-browser-frame {
1966
+ border: 1px solid var(--line);
1967
+ background: color-mix(in srgb, var(--panel) 88%, transparent);
1968
+ }
1969
+
1970
+ .workspace-tool-form {
1971
+ display: flex;
1972
+ flex-direction: column;
1973
+ gap: 14px;
1974
+ padding: 18px;
1975
+ }
1976
+
1977
+ .workspace-tool-form label {
1978
+ display: flex;
1979
+ flex-direction: column;
1980
+ gap: 7px;
1981
+ }
1982
+
1983
+ .workspace-tool-form label > span {
1984
+ color: var(--mute);
1985
+ font-family: var(--mono);
1986
+ font-size: 10px;
1987
+ letter-spacing: .08em;
1988
+ text-transform: uppercase;
1989
+ }
1990
+
1991
+ .workspace-tool-form input,
1992
+ .workspace-tool-form select,
1993
+ .workspace-tool-form textarea,
1994
+ .workspace-browser-toolbar input {
1995
+ width: 100%;
1996
+ border: 1px solid var(--line);
1997
+ border-radius: 0;
1998
+ background: var(--bg);
1999
+ color: var(--ink);
2000
+ font: inherit;
2001
+ padding: 10px 12px;
2002
+ }
2003
+
2004
+ .workspace-tool-form textarea {
2005
+ resize: vertical;
2006
+ }
2007
+
2008
+ .workspace-code-editor,
2009
+ .workspace-terminal-output {
2010
+ font-family: var(--mono) !important;
2011
+ font-size: 12px !important;
2012
+ line-height: 1.65 !important;
2013
+ tab-size: 2;
2014
+ }
2015
+
2016
+ .workspace-inline-fields {
2017
+ display: grid;
2018
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2019
+ gap: 10px;
2020
+ }
2021
+
2022
+ .workspace-action-row,
2023
+ .workspace-browser-toolbar {
2024
+ display: flex;
2025
+ align-items: center;
2026
+ gap: 9px;
2027
+ }
2028
+
2029
+ .workspace-danger-btn,
2030
+ .workspace-browser-toolbar button {
2031
+ min-height: 38px;
2032
+ border: 1px solid var(--line);
2033
+ background: transparent;
2034
+ color: var(--ink);
2035
+ padding: 8px 13px;
2036
+ font-family: var(--mono);
2037
+ font-size: 10px;
2038
+ letter-spacing: .06em;
2039
+ text-transform: uppercase;
2040
+ cursor: pointer;
2041
+ }
2042
+
2043
+ .workspace-danger-btn {
2044
+ border-color: color-mix(in srgb, #c44 55%, var(--line));
2045
+ color: #d66;
2046
+ }
2047
+
2048
+ .workspace-danger-btn:disabled,
2049
+ .workspace-browser-toolbar button:disabled {
2050
+ opacity: .4;
2051
+ cursor: not-allowed;
2052
+ }
2053
+
2054
+ .workspace-output-surface {
2055
+ min-height: 280px;
2056
+ overflow: auto;
2057
+ padding: 18px;
2058
+ color: var(--dim);
2059
+ white-space: pre-wrap;
2060
+ }
2061
+
2062
+ .workspace-output-surface img,
2063
+ .workspace-output-surface video {
2064
+ display: block;
2065
+ width: 100%;
2066
+ max-height: 560px;
2067
+ object-fit: contain;
2068
+ background: #050506;
2069
+ }
2070
+
2071
+ .workspace-browser-toolbar {
2072
+ margin-top: 18px;
2073
+ }
2074
+
2075
+ .workspace-browser-toolbar input {
2076
+ flex: 1;
2077
+ min-width: 0;
2078
+ }
2079
+
2080
+ .workspace-browser-frame {
2081
+ position: relative;
2082
+ flex: 1;
2083
+ min-height: 420px;
2084
+ margin-top: 12px;
2085
+ overflow: hidden;
2086
+ }
2087
+
2088
+ .workspace-browser-frame > span {
2089
+ position: absolute;
2090
+ inset: 0;
2091
+ display: grid;
2092
+ place-items: center;
2093
+ padding: 24px;
2094
+ color: var(--mute);
2095
+ text-align: center;
2096
+ }
2097
+
2098
+ .workspace-browser-frame iframe {
2099
+ width: 100%;
2100
+ height: 100%;
2101
+ min-height: 420px;
2102
+ border: 0;
2103
+ background: #050506;
2104
+ }
2105
+
2106
+ @media (max-width: 920px) {
2107
+ .workspace-mode-nav {
2108
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2109
+ overflow: visible;
2110
+ }
2111
+
2112
+ .workspace-tool-grid {
2113
+ grid-template-columns: 1fr;
2114
+ }
2115
+
2116
+ .workspace-inline-fields {
2117
+ grid-template-columns: 1fr;
2118
+ }
2119
+
2120
+ .workspace-browser-toolbar {
2121
+ flex-wrap: wrap;
2122
+ }
2123
+
2124
+ .workspace-browser-toolbar input {
2125
+ flex-basis: 100%;
2126
+ order: 2;
2127
+ }
2128
+ }
2129
+
2130
+
2131
+ .workspace-panel {
2132
+ --ink: #23211e;
2133
+ --dim: #65615b;
2134
+ --mute: #938e85;
2135
+ --line: #e2ded6;
2136
+ --line-strong: #ccc7bd;
2137
+ --acc: #ef5b2a;
2138
+ --acc2: #d9481a;
2139
+ --acc-soft: rgba(239, 91, 42, 0.08);
2140
+ --acc-border: rgba(239, 91, 42, 0.28);
2141
+ --green: #417b59;
2142
+ min-height: 100%;
2143
+ padding: 0;
2144
+ color: var(--ink);
2145
+ background: #f8f7f3;
2146
+ }
2147
+
2148
+ .workspace-layout {
2149
+ grid-template-columns: 252px minmax(0, 1fr);
2150
+ width: 100%;
2151
+ min-height: 100%;
2152
+ margin: 0;
2153
+ border: 0;
2154
+ border-radius: 0;
2155
+ background: #f8f7f3;
2156
+ box-shadow: none;
2157
+ }
2158
+
2159
+ .workspace-sidebar {
2160
+ padding: 18px 12px 14px;
2161
+ border-right-color: var(--line);
2162
+ background: #f5f3ee;
2163
+ }
2164
+
2165
+ .workspace-sidebar-brand {
2166
+ position: relative;
2167
+ display: grid;
2168
+ grid-template-columns: 18px minmax(0, 1fr);
2169
+ gap: 0 8px;
2170
+ align-items: center;
2171
+ padding: 0 8px 19px;
2172
+ }
2173
+
2174
+ .workspace-brand-sigil {
2175
+ color: var(--acc);
2176
+ font-size: 18px;
2177
+ line-height: 1;
2178
+ }
2179
+
2180
+ .workspace-sidebar-brand strong {
2181
+ color: #1f1d1a;
2182
+ font-family: Georgia, "Times New Roman", serif;
2183
+ font-size: 19px;
2184
+ font-weight: 700;
2185
+ letter-spacing: -0.035em;
2186
+ }
2187
+
2188
+ .workspace-sidebar-brand > span:last-child {
2189
+ display: none;
2190
+ }
2191
+
2192
+ .workspace-mode-nav {
2193
+ gap: 2px;
2194
+ padding-top: 8px;
2195
+ border-top: 1px solid var(--line);
2196
+ }
2197
+
2198
+ .workspace-mode-btn {
2199
+ grid-template-columns: 18px minmax(0, 1fr);
2200
+ gap: 10px;
2201
+ min-height: 39px;
2202
+ padding: 8px 9px;
2203
+ color: #6f6a63;
2204
+ border: 0;
2205
+ border-radius: 7px;
2206
+ transition: color 150ms ease, background 150ms ease, transform 150ms ease;
2207
+ }
2208
+
2209
+ .workspace-mode-btn:hover {
2210
+ color: #26231f;
2211
+ background: #eeece6;
2212
+ }
2213
+
2214
+ .workspace-mode-btn.active {
2215
+ color: #292622;
2216
+ border: 0;
2217
+ background: #ebe9e3;
2218
+ box-shadow: none;
2219
+ }
2220
+
2221
+ .workspace-mode-btn.active svg {
2222
+ color: var(--acc);
2223
+ }
2224
+
2225
+ .workspace-mode-btn svg {
2226
+ width: 16px;
2227
+ height: 16px;
2228
+ stroke-width: 1.45;
2229
+ }
2230
+
2231
+ .workspace-mode-btn strong {
2232
+ font-size: 12.5px;
2233
+ font-weight: 500;
2234
+ }
2235
+
2236
+ .workspace-mode-btn small {
2237
+ display: none;
2238
+ }
2239
+
2240
+ .workspace-nav-divider {
2241
+ display: block;
2242
+ height: 1px;
2243
+ margin: 8px -12px;
2244
+ background: var(--line);
2245
+ }
2246
+
2247
+ .workspace-boundary-note {
2248
+ align-items: center;
2249
+ gap: 10px;
2250
+ margin: auto -12px -14px;
2251
+ padding: 13px 20px 15px;
2252
+ border-top-color: var(--line);
2253
+ background: rgba(255, 255, 255, 0.24);
2254
+ }
2255
+
2256
+ .workspace-boundary-note strong {
2257
+ color: #3e3a35;
2258
+ font-family: var(--body);
2259
+ font-size: 11.5px;
2260
+ text-transform: none;
2261
+ }
2262
+
2263
+ .workspace-boundary-note span:last-child {
2264
+ color: var(--mute);
2265
+ font-size: 10px;
2266
+ }
2267
+
2268
+ .workspace-stage {
2269
+ background: #faf9f6;
2270
+ }
2271
+
2272
+ .workspace-stage-header {
2273
+ min-height: 58px;
2274
+ align-items: center;
2275
+ padding: 10px 18px;
2276
+ border-bottom-color: var(--line);
2277
+ background: rgba(250, 249, 246, 0.96);
2278
+ }
2279
+
2280
+ .workspace-stage-eyebrow,
2281
+ .workspace-stage-header p {
2282
+ display: none;
2283
+ }
2284
+
2285
+ .workspace-stage-header h2 {
2286
+ margin: 0;
2287
+ color: #393631;
2288
+ font-family: var(--body);
2289
+ font-size: 13px;
2290
+ font-weight: 500;
2291
+ line-height: 1.2;
2292
+ letter-spacing: 0;
2293
+ }
2294
+
2295
+ .workspace-route-status {
2296
+ gap: 7px;
2297
+ padding: 7px 10px;
2298
+ color: #5e5952;
2299
+ font-family: var(--body);
2300
+ font-size: 10px;
2301
+ text-transform: none;
2302
+ border-color: var(--line);
2303
+ border-radius: 6px;
2304
+ background: #fff;
2305
+ box-shadow: 0 1px 2px rgba(30, 27, 22, 0.04);
2306
+ }
2307
+
2308
+ .workspace-live-dot {
2309
+ width: 6px;
2310
+ height: 6px;
2311
+ margin-top: 0;
2312
+ background: var(--acc);
2313
+ box-shadow: 0 0 0 3px rgba(239, 91, 42, 0.08);
2314
+ }
2315
+
2316
+ .workspace-view {
2317
+ padding: 40px clamp(28px, 5vw, 72px) 28px;
2318
+ }
2319
+
2320
+ .workspace-chat-frame {
2321
+ grid-template-rows: minmax(320px, 1fr) auto;
2322
+ gap: 20px;
2323
+ width: min(930px, 100%);
2324
+ margin: 0 auto;
2325
+ }
2326
+
2327
+ .workspace-message-feed {
2328
+ overflow-x: hidden;
2329
+ }
2330
+
2331
+ .workspace-empty-state {
2332
+ display: flex;
2333
+ flex-direction: column;
2334
+ align-items: center;
2335
+ justify-content: center;
2336
+ gap: 0;
2337
+ width: min(720px, 100%);
2338
+ min-height: 100%;
2339
+ margin: 0 auto;
2340
+ padding: 24px 0;
2341
+ text-align: center;
17
2342
  }
18
2343
 
19
- * {
20
- box-sizing: border-box;
2344
+ .workspace-empty-index {
2345
+ margin-bottom: 18px;
2346
+ color: var(--acc);
2347
+ font-family: Georgia, "Times New Roman", serif;
2348
+ font-size: 27px;
2349
+ line-height: 1;
2350
+ letter-spacing: 0;
21
2351
  }
22
2352
 
23
- html {
24
- min-height: 100%;
25
- background: radial-gradient(circle at 20% 0%, rgba(85, 183, 255, 0.18), transparent 32rem), var(--bg);
2353
+ .workspace-empty-kicker {
2354
+ margin-bottom: 7px;
2355
+ color: #777169;
2356
+ font-size: 9px;
2357
+ font-weight: 600;
2358
+ letter-spacing: 0.16em;
26
2359
  }
27
2360
 
28
- body {
29
- min-height: 100%;
30
- margin: 0;
31
- color: var(--text);
32
- background: linear-gradient(180deg, rgba(9, 11, 16, 0.18), var(--bg) 34rem);
2361
+ .workspace-empty-state h3 {
2362
+ max-width: 760px;
2363
+ color: #26231f;
2364
+ font-family: Georgia, "Times New Roman", serif;
2365
+ font-size: clamp(30px, 3.3vw, 46px);
2366
+ font-weight: 500;
2367
+ line-height: 1.08;
2368
+ letter-spacing: -0.04em;
33
2369
  }
34
2370
 
35
- button,
36
- input,
37
- textarea {
38
- font: inherit;
2371
+ .workspace-empty-state p {
2372
+ margin-top: 11px;
2373
+ color: #706b64;
2374
+ font-size: 11.5px;
2375
+ line-height: 1.55;
39
2376
  }
40
2377
 
41
- button {
42
- border: 1px solid rgba(139, 211, 255, 0.42);
43
- border-radius: 999px;
44
- padding: 0.72rem 1rem;
45
- color: #041018;
46
- background: var(--accent);
47
- cursor: pointer;
48
- transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
2378
+ .workspace-prompt-grid {
2379
+ display: grid;
2380
+ grid-template-columns: 1fr 1fr;
2381
+ width: min(650px, 100%);
2382
+ margin-top: 30px;
2383
+ gap: 8px;
2384
+ }
2385
+
2386
+ .workspace-prompt-grid button {
2387
+ min-height: 45px;
2388
+ padding: 11px 14px;
2389
+ color: #57524c;
2390
+ font-size: 11px;
2391
+ line-height: 1.35;
2392
+ border-color: #dedad2;
2393
+ border-radius: 8px;
2394
+ background: rgba(255, 255, 255, 0.78);
2395
+ box-shadow: 0 1px 2px rgba(31, 28, 23, 0.03);
49
2396
  }
50
2397
 
51
- button:hover:not(:disabled) {
2398
+ .workspace-prompt-grid button:hover {
2399
+ color: #282521;
2400
+ border-color: #c9c3b9;
2401
+ background: #fff;
52
2402
  transform: translateY(-1px);
53
- background: var(--accent-strong);
54
2403
  }
55
2404
 
56
- button:disabled {
57
- color: var(--muted);
58
- background: #1d2532;
2405
+ .workspace-trust-lines {
2406
+ display: flex;
2407
+ flex-direction: column;
2408
+ gap: 2px;
2409
+ margin-top: 18px;
2410
+ color: #8a857e;
2411
+ font-size: 9.5px;
2412
+ line-height: 1.55;
2413
+ }
2414
+
2415
+ .workspace-trust-lines span::before {
2416
+ content: "·";
2417
+ margin-right: 6px;
2418
+ }
2419
+
2420
+ .workspace-message {
2421
+ grid-template-columns: 58px minmax(0, 1fr);
2422
+ border-top-color: var(--line);
2423
+ }
2424
+
2425
+ .workspace-message-body {
2426
+ color: #2d2a26;
2427
+ }
2428
+
2429
+ .workspace-composer {
2430
+ padding: 9px 11px 10px;
2431
+ border-color: #cac5bb;
2432
+ border-radius: 15px;
2433
+ background: #fff;
2434
+ box-shadow: 0 8px 22px rgba(50, 44, 35, 0.08), 0 1px 2px rgba(50, 44, 35, 0.08);
2435
+ }
2436
+
2437
+ .workspace-composer-field textarea {
2438
+ min-height: 38px;
2439
+ max-height: 150px;
2440
+ padding: 8px 9px 6px;
2441
+ color: #292622;
2442
+ resize: none;
2443
+ }
2444
+
2445
+ .workspace-composer-toolbar {
2446
+ align-items: center;
2447
+ padding-top: 7px;
2448
+ border-top: 0;
2449
+ }
2450
+
2451
+ .workspace-route-controls label > span {
2452
+ display: none;
2453
+ }
2454
+
2455
+ .workspace-route-controls select,
2456
+ .workspace-filter input,
2457
+ .workspace-seat-header select,
2458
+ .workspace-tool-form input,
2459
+ .workspace-tool-form select,
2460
+ .workspace-tool-form textarea,
2461
+ .workspace-browser-toolbar input {
2462
+ color: #34312d;
59
2463
  border-color: var(--line);
60
- cursor: not-allowed;
2464
+ background: #fff;
61
2465
  }
62
2466
 
63
- input,
64
- textarea {
65
- width: 100%;
66
- border: 1px solid var(--line);
67
- border-radius: 16px;
68
- padding: 0.78rem 0.9rem;
69
- color: var(--text);
70
- background: #0b0f16;
71
- outline: none;
2467
+ .workspace-check {
2468
+ color: #746f68;
72
2469
  }
73
2470
 
74
- input:focus,
75
- textarea:focus {
76
- border-color: var(--accent);
77
- box-shadow: 0 0 0 3px rgba(139, 211, 255, 0.12);
2471
+ .workspace-send-btn {
2472
+ border-color: #a64022;
2473
+ background: var(--acc);
2474
+ color: #fff;
2475
+ box-shadow: none;
78
2476
  }
79
2477
 
80
- textarea {
81
- min-height: 9rem;
82
- resize: vertical;
2478
+ .workspace-send-btn:hover:not(:disabled) {
2479
+ background: var(--acc2);
2480
+ box-shadow: none;
83
2481
  }
84
2482
 
85
- label {
86
- display: grid;
87
- gap: 0.45rem;
88
- color: var(--soft);
2483
+ .workspace-composer .workspace-send-btn {
2484
+ width: 36px;
2485
+ min-width: 36px;
2486
+ height: 36px;
2487
+ min-height: 36px;
2488
+ padding: 0;
2489
+ border-radius: 50%;
89
2490
  }
90
2491
 
91
- code {
92
- display: inline-block;
93
- max-width: 100%;
94
- overflow-wrap: anywhere;
95
- color: var(--accent);
96
- font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
2492
+ .workspace-composer .workspace-send-btn > span {
2493
+ display: none;
97
2494
  }
98
2495
 
99
- .app-shell,
100
- .no-script {
101
- width: min(1180px, calc(100% - 32px));
102
- margin: 0 auto;
103
- padding: 32px 0 56px;
2496
+ .workspace-composer-note {
2497
+ margin: 7px 4px 0;
2498
+ color: #9a958d;
2499
+ font-family: var(--body);
2500
+ font-size: 8.5px;
2501
+ text-align: center;
104
2502
  }
105
2503
 
106
- .shell-hero {
107
- display: grid;
108
- grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
109
- gap: 24px;
110
- align-items: stretch;
111
- padding: 28px;
112
- border: 1px solid rgba(139, 211, 255, 0.18);
113
- border-radius: 32px;
114
- background: linear-gradient(135deg, rgba(23, 29, 40, 0.94), rgba(11, 15, 22, 0.92));
115
- box-shadow: var(--shadow);
116
- }
117
-
118
- .eyebrow,
119
- .screen-heading p {
120
- margin: 0 0 0.55rem;
121
- color: var(--accent);
122
- font-size: 0.76rem;
123
- font-weight: 700;
124
- letter-spacing: 0.12em;
125
- text-transform: uppercase;
2504
+ .workspace-section-intro h3 {
2505
+ color: #292622;
2506
+ font-family: Georgia, "Times New Roman", serif;
2507
+ font-weight: 500;
126
2508
  }
127
2509
 
128
- h1,
129
- h2,
130
- h3,
131
- p {
132
- margin-top: 0;
2510
+ .workspace-section-intro p,
2511
+ .workspace-seat-result,
2512
+ .workspace-model-summary,
2513
+ .workspace-output-surface {
2514
+ color: #716c64;
2515
+ }
2516
+
2517
+ .workspace-seat,
2518
+ .workspace-council-composer,
2519
+ .workspace-model-row,
2520
+ .workspace-connection,
2521
+ .workspace-privacy-grid article,
2522
+ .workspace-tool-form,
2523
+ .workspace-output-surface,
2524
+ .workspace-browser-frame {
2525
+ border-color: var(--line);
2526
+ background: rgba(255, 255, 255, 0.72);
2527
+ box-shadow: none;
133
2528
  }
134
2529
 
135
- h1 {
136
- max-width: 860px;
137
- margin-bottom: 0.8rem;
138
- font-size: clamp(2.2rem, 5vw, 4.8rem);
139
- line-height: 0.96;
140
- letter-spacing: -0.06em;
2530
+ .workspace-output-surface img,
2531
+ .workspace-output-surface video,
2532
+ .workspace-browser-frame iframe {
2533
+ background: #ebe8e1;
141
2534
  }
142
2535
 
143
- h2 {
144
- margin-bottom: 0;
145
- font-size: clamp(1.7rem, 3vw, 3rem);
146
- letter-spacing: -0.04em;
2536
+ .workspace-danger-btn {
2537
+ border-color: #d7a89b;
2538
+ color: #a43e25;
2539
+ }
2540
+
2541
+ @media (max-width: 920px) {
2542
+ .workspace-layout {
2543
+ grid-template-columns: 78px minmax(0, 1fr);
2544
+ }
2545
+
2546
+ .workspace-sidebar-brand {
2547
+ grid-template-columns: 1fr;
2548
+ justify-items: center;
2549
+ }
2550
+
2551
+ .workspace-sidebar-brand strong,
2552
+ .workspace-mode-btn > span,
2553
+ .workspace-boundary-note > div {
2554
+ display: none;
2555
+ }
2556
+
2557
+ .workspace-mode-nav {
2558
+ display: flex;
2559
+ grid-template-columns: none;
2560
+ }
2561
+
2562
+ .workspace-mode-btn {
2563
+ display: grid;
2564
+ grid-template-columns: 1fr;
2565
+ justify-items: center;
2566
+ }
2567
+
2568
+ .workspace-boundary-note {
2569
+ justify-content: center;
2570
+ }
2571
+
2572
+ .workspace-view {
2573
+ padding-inline: 22px;
2574
+ }
147
2575
  }
148
2576
 
149
- h3 {
150
- margin-bottom: 0.75rem;
151
- font-size: 1rem;
2577
+ @media (max-width: 640px) {
2578
+ .workspace-layout {
2579
+ grid-template-columns: 1fr;
2580
+ }
2581
+
2582
+ .workspace-sidebar {
2583
+ display: none;
2584
+ }
2585
+
2586
+ .workspace-prompt-grid {
2587
+ grid-template-columns: 1fr;
2588
+ }
2589
+
2590
+ .workspace-trust-lines,
2591
+ .workspace-composer-note {
2592
+ display: none;
2593
+ }
2594
+
2595
+ .workspace-turn-controls .workspace-check {
2596
+ display: none;
2597
+ }
152
2598
  }
153
2599
 
154
- p {
155
- color: var(--muted);
156
- line-height: 1.6;
2600
+ #workspaceApiCreateBtn {
2601
+ align-self: start;
2602
+ justify-self: end;
2603
+ min-height: 42px;
2604
+ padding: 9px 18px;
157
2605
  }
158
2606
 
159
- .summary-grid {
2607
+ .workspace-api-create {
160
2608
  display: grid;
161
- grid-template-columns: repeat(2, minmax(0, 1fr));
2609
+ grid-template-columns: minmax(220px, 1fr) 180px;
162
2610
  gap: 12px;
163
- margin: 0;
2611
+ margin-top: 24px;
2612
+ padding: 18px;
2613
+ border: 1px solid var(--line);
2614
+ background: rgba(255, 255, 255, 0.68);
164
2615
  }
165
2616
 
166
- .summary-grid div,
167
- .detail-list div {
168
- padding: 14px;
169
- border: 1px solid var(--line);
170
- border-radius: 20px;
171
- background: rgba(255, 255, 255, 0.03);
2617
+ .workspace-api-create > label {
2618
+ display: flex;
2619
+ flex-direction: column;
2620
+ gap: 7px;
172
2621
  }
173
2622
 
174
- dt {
175
- color: var(--muted);
176
- font-size: 0.78rem;
2623
+ .workspace-api-create > label > span,
2624
+ .workspace-api-create legend,
2625
+ .workspace-api-secret > div:first-child > span {
2626
+ color: var(--mute);
2627
+ font-family: var(--mono);
2628
+ font-size: 9px;
2629
+ font-weight: 600;
2630
+ letter-spacing: 0.12em;
2631
+ text-transform: uppercase;
177
2632
  }
178
2633
 
179
- dd {
180
- margin: 0.2rem 0 0;
181
- color: var(--text);
182
- font-weight: 700;
183
- overflow-wrap: anywhere;
2634
+ .workspace-api-create input,
2635
+ .workspace-api-create select {
2636
+ min-height: 42px;
2637
+ padding: 9px 11px;
2638
+ color: var(--ink);
2639
+ border: 1px solid var(--line);
2640
+ border-radius: 7px;
2641
+ outline: 0;
2642
+ background: #fff;
184
2643
  }
185
2644
 
186
- .screen-nav {
187
- position: sticky;
188
- top: 0;
189
- z-index: 4;
2645
+ .workspace-api-create fieldset {
190
2646
  display: flex;
191
- gap: 10px;
192
- margin: 18px 0;
2647
+ grid-column: 1 / -1;
2648
+ flex-wrap: wrap;
2649
+ gap: 7px;
193
2650
  padding: 12px;
194
- overflow-x: auto;
195
- border: 1px solid rgba(39, 48, 64, 0.82);
196
- border-radius: 24px;
197
- background: rgba(9, 11, 16, 0.82);
198
- backdrop-filter: blur(18px);
2651
+ border: 1px solid var(--line);
199
2652
  }
200
2653
 
201
- .screen-tab {
202
- flex: 0 0 auto;
203
- color: var(--soft);
204
- background: transparent;
205
- border-color: var(--line);
2654
+ .workspace-api-create fieldset label {
2655
+ display: flex;
2656
+ align-items: center;
2657
+ gap: 6px;
2658
+ padding: 6px 9px;
2659
+ color: #625d56;
2660
+ font-size: 10px;
2661
+ border: 1px solid var(--line);
2662
+ border-radius: 999px;
2663
+ background: #fff;
206
2664
  }
207
2665
 
208
- .screen-tab.is-active {
209
- color: #041018;
210
- background: var(--accent);
211
- border-color: var(--accent);
2666
+ .workspace-api-create fieldset input {
2667
+ min-height: 0;
2668
+ accent-color: var(--acc);
212
2669
  }
213
2670
 
214
- main {
2671
+ .workspace-api-secret {
215
2672
  display: grid;
216
- gap: 18px;
2673
+ gap: 12px;
2674
+ margin-top: 14px;
2675
+ padding: 16px;
2676
+ border: 1px solid rgba(239, 91, 42, 0.34);
2677
+ background: rgba(239, 91, 42, 0.06);
217
2678
  }
218
2679
 
219
- .screen-card {
220
- padding: 24px;
2680
+ .workspace-api-secret[hidden] {
2681
+ display: none;
2682
+ }
2683
+
2684
+ .workspace-api-secret > div:first-child {
2685
+ display: flex;
2686
+ flex-direction: column;
2687
+ gap: 4px;
2688
+ }
2689
+
2690
+ .workspace-api-secret > div:first-child strong {
2691
+ color: #3b3530;
2692
+ font-size: 12px;
2693
+ font-weight: 500;
2694
+ }
2695
+
2696
+ .workspace-api-secret code {
2697
+ display: block;
2698
+ overflow-x: auto;
2699
+ padding: 11px 12px;
2700
+ color: #3c3029;
221
2701
  border: 1px solid var(--line);
222
- border-radius: 30px;
223
- background: rgba(17, 21, 29, 0.88);
224
- box-shadow: 0 18px 60px rgba(0, 0, 0, 0.18);
2702
+ background: #fff;
2703
+ font: 11px/1.5 var(--mono);
2704
+ user-select: all;
225
2705
  }
226
2706
 
227
- .screen-heading {
2707
+ .workspace-api-list {
228
2708
  display: flex;
229
- align-items: end;
230
- justify-content: space-between;
231
- gap: 16px;
232
- margin-bottom: 20px;
2709
+ flex-direction: column;
2710
+ margin-top: 10px;
2711
+ border-top: 1px solid var(--line);
233
2712
  }
234
2713
 
235
- .two-column {
2714
+ .workspace-api-row {
236
2715
  display: grid;
237
- grid-template-columns: repeat(2, minmax(0, 1fr));
2716
+ grid-template-columns: minmax(0, 1fr) auto auto;
238
2717
  gap: 16px;
2718
+ align-items: center;
2719
+ min-height: 74px;
2720
+ padding: 13px 2px;
2721
+ border-bottom: 1px solid var(--line);
2722
+ }
2723
+
2724
+ .workspace-api-row > div:first-child {
2725
+ display: flex;
2726
+ flex-direction: column;
2727
+ gap: 5px;
2728
+ min-width: 0;
239
2729
  }
240
2730
 
241
- .panel,
242
- .inline-form,
243
- .memory-row,
244
- .connection-list li,
245
- .evidence-row {
2731
+ .workspace-api-row > div:first-child strong {
2732
+ color: #35312d;
2733
+ font-size: 12px;
2734
+ font-weight: 600;
2735
+ }
2736
+
2737
+ .workspace-api-row > div:first-child span {
2738
+ overflow: hidden;
2739
+ color: var(--mute);
2740
+ font: 9.5px/1.5 var(--mono);
2741
+ text-overflow: ellipsis;
2742
+ white-space: nowrap;
2743
+ }
2744
+
2745
+ .workspace-api-status {
2746
+ color: #756f67;
2747
+ font: 9px/1 var(--mono);
2748
+ letter-spacing: .08em;
2749
+ text-transform: uppercase;
2750
+ }
2751
+
2752
+ .workspace-api-status.active {
2753
+ color: #417b59;
2754
+ }
2755
+
2756
+ .workspace-api-status.revoked,
2757
+ .workspace-api-status.expired {
2758
+ color: #a43e25;
2759
+ }
2760
+
2761
+ .workspace-api-row button,
2762
+ .workspace-api-secret button {
2763
+ min-height: 34px;
2764
+ padding: 7px 11px;
2765
+ color: var(--ink);
2766
+ border: 1px solid var(--line);
2767
+ background: #fff;
2768
+ font: 9px/1 var(--mono);
2769
+ letter-spacing: .06em;
2770
+ text-transform: uppercase;
2771
+ cursor: pointer;
2772
+ }
2773
+
2774
+ @media (max-width: 760px) {
2775
+ .workspace-api-create {
2776
+ grid-template-columns: 1fr;
2777
+ }
2778
+
2779
+ .workspace-api-create fieldset {
2780
+ grid-column: 1;
2781
+ }
2782
+
2783
+ .workspace-api-row {
2784
+ grid-template-columns: 1fr auto;
2785
+ }
2786
+
2787
+ .workspace-api-row .workspace-action-row {
2788
+ grid-column: 1 / -1;
2789
+ }
2790
+ }
2791
+
2792
+ .workspace-usage-controls {
2793
+ display: flex;
2794
+ align-self: start;
2795
+ justify-self: end;
2796
+ gap: 7px;
2797
+ }
2798
+
2799
+ .workspace-usage-controls select,
2800
+ .workspace-usage-controls button {
2801
+ min-height: 38px;
2802
+ padding: 8px 11px;
2803
+ color: var(--ink);
246
2804
  border: 1px solid var(--line);
247
- border-radius: 24px;
248
- background: var(--panel-strong);
2805
+ background: #fff;
2806
+ font-size: 10px;
2807
+ }
2808
+
2809
+ .workspace-usage-controls button {
2810
+ cursor: pointer;
249
2811
  }
250
2812
 
251
- .panel {
2813
+ .workspace-usage-summary {
252
2814
  display: grid;
253
- gap: 14px;
2815
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2816
+ margin-top: 24px;
2817
+ border-top: 1px solid var(--line);
2818
+ border-left: 1px solid var(--line);
2819
+ }
2820
+
2821
+ .workspace-usage-summary article {
2822
+ display: flex;
2823
+ flex-direction: column;
2824
+ gap: 5px;
2825
+ min-height: 116px;
254
2826
  padding: 18px;
2827
+ border-right: 1px solid var(--line);
2828
+ border-bottom: 1px solid var(--line);
2829
+ background: rgba(255, 255, 255, 0.68);
2830
+ }
2831
+
2832
+ .workspace-usage-summary article > span,
2833
+ .workspace-usage-grid > section > span {
2834
+ color: var(--mute);
2835
+ font: 9px/1 var(--mono);
2836
+ letter-spacing: .12em;
2837
+ }
2838
+
2839
+ .workspace-usage-summary strong {
2840
+ color: #2c2925;
2841
+ font-family: Georgia, "Times New Roman", serif;
2842
+ font-size: 27px;
2843
+ font-weight: 500;
255
2844
  }
256
2845
 
257
- .status-panel {
258
- align-content: start;
2846
+ .workspace-usage-summary small {
2847
+ color: var(--mute);
2848
+ font-size: 9.5px;
259
2849
  }
260
2850
 
261
- .detail-list {
2851
+ .workspace-usage-grid {
262
2852
  display: grid;
263
- grid-template-columns: repeat(2, minmax(0, 1fr));
264
- gap: 10px;
265
- margin: 0;
2853
+ grid-template-columns: 1fr 1fr;
2854
+ gap: 14px;
2855
+ margin-top: 14px;
2856
+ }
2857
+
2858
+ .workspace-usage-grid > section {
2859
+ min-height: 240px;
2860
+ padding: 17px;
2861
+ border: 1px solid var(--line);
2862
+ background: rgba(255, 255, 255, 0.68);
266
2863
  }
267
2864
 
268
- .button-row,
269
- .button-grid {
2865
+ .workspace-usage-list {
270
2866
  display: flex;
271
- flex-wrap: wrap;
272
- gap: 10px;
2867
+ flex-direction: column;
2868
+ gap: 14px;
2869
+ margin-top: 18px;
2870
+ color: var(--mute);
2871
+ font-size: 10px;
273
2872
  }
274
2873
 
275
- .button-grid button {
276
- flex: 1 1 220px;
2874
+ .workspace-usage-list > div {
2875
+ display: flex;
2876
+ flex-direction: column;
2877
+ gap: 7px;
277
2878
  }
278
2879
 
279
- .inline-form {
280
- display: grid;
281
- grid-template-columns: minmax(0, 1fr) auto auto;
2880
+ .workspace-usage-list > div > div {
2881
+ display: flex;
2882
+ justify-content: space-between;
282
2883
  gap: 12px;
283
- align-items: end;
284
- margin: 16px 0;
285
- padding: 14px;
286
2884
  }
287
2885
 
288
- .inline-form span {
289
- color: var(--muted);
290
- font-size: 0.9rem;
2886
+ .workspace-usage-list strong {
2887
+ overflow: hidden;
2888
+ color: #4a4640;
2889
+ font-size: 10.5px;
2890
+ font-weight: 500;
2891
+ text-overflow: ellipsis;
2892
+ white-space: nowrap;
291
2893
  }
292
2894
 
293
- .memory-list,
294
- .connection-list,
295
- .evidence-list,
296
- .panel ul {
297
- display: grid;
298
- gap: 10px;
299
- padding: 0;
300
- margin: 0;
301
- list-style: none;
2895
+ .workspace-usage-list > div > div > span {
2896
+ color: var(--mute);
2897
+ font: 9px/1 var(--mono);
2898
+ }
2899
+
2900
+ .workspace-usage-track {
2901
+ display: block;
2902
+ height: 3px;
2903
+ overflow: hidden;
2904
+ background: #ebe7df;
2905
+ }
2906
+
2907
+ .workspace-usage-track > span {
2908
+ display: block;
2909
+ width: 100%;
2910
+ height: 100%;
2911
+ background: var(--acc);
2912
+ transform-origin: left center;
2913
+ }
2914
+
2915
+ @media (max-width: 760px) {
2916
+ .workspace-usage-summary {
2917
+ grid-template-columns: 1fr 1fr;
2918
+ }
2919
+
2920
+ .workspace-usage-grid {
2921
+ grid-template-columns: 1fr;
2922
+ }
302
2923
  }
303
2924
 
304
- .memory-row,
305
- .connection-list li,
306
- .evidence-row,
307
- .panel li {
2925
+ .workspace-credits-summary {
308
2926
  display: grid;
309
- grid-template-columns: minmax(0, 1fr) minmax(180px, 0.8fr) auto;
310
- gap: 12px;
311
- align-items: center;
312
- padding: 14px;
2927
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2928
+ margin-top: 24px;
2929
+ border-top: 1px solid var(--line);
2930
+ border-left: 1px solid var(--line);
313
2931
  }
314
2932
 
315
- .boundary-list li {
316
- grid-template-columns: minmax(0, 1fr);
317
- align-items: start;
2933
+ .workspace-credits-summary article {
2934
+ display: flex;
2935
+ flex-direction: column;
2936
+ gap: 5px;
2937
+ min-height: 118px;
2938
+ padding: 18px;
2939
+ border-right: 1px solid var(--line);
2940
+ border-bottom: 1px solid var(--line);
2941
+ background: rgba(255, 255, 255, 0.68);
318
2942
  }
319
2943
 
320
- .memory-row div,
321
- .connection-list li,
322
- .evidence-row {
323
- min-width: 0;
2944
+ .workspace-credits-summary span {
2945
+ color: var(--mute);
2946
+ font: 9px/1 var(--mono);
2947
+ letter-spacing: .12em;
324
2948
  }
325
2949
 
326
- .memory-row span,
327
- .connection-list span,
328
- .evidence-row span,
329
- .evidence-row small,
330
- .panel li span {
331
- display: block;
332
- color: var(--muted);
333
- overflow-wrap: anywhere;
2950
+ .workspace-credits-summary strong {
2951
+ overflow: hidden;
2952
+ color: #2c2925;
2953
+ font-family: Georgia, "Times New Roman", serif;
2954
+ font-size: 25px;
2955
+ font-weight: 500;
2956
+ text-overflow: ellipsis;
2957
+ white-space: nowrap;
334
2958
  }
335
2959
 
336
- .memory-row.is-deleted,
337
- .evidence-row.is-bad {
338
- border-color: rgba(255, 143, 143, 0.36);
2960
+ .workspace-credits-summary small {
2961
+ color: var(--mute);
2962
+ font-size: 9.5px;
339
2963
  }
340
2964
 
341
- .evidence-row.is-ok {
342
- border-color: rgba(126, 226, 168, 0.38);
2965
+ .workspace-credits-actions {
2966
+ display: grid;
2967
+ grid-template-columns: auto minmax(260px, 1fr) auto auto;
2968
+ gap: 8px;
2969
+ align-items: end;
2970
+ margin-top: 14px;
2971
+ padding: 16px;
2972
+ border: 1px solid var(--line);
2973
+ background: rgba(255, 255, 255, 0.68);
343
2974
  }
344
2975
 
345
- .empty-row {
346
- grid-template-columns: 1fr !important;
347
- color: var(--muted);
348
- border-style: dashed;
2976
+ .workspace-credits-actions label {
2977
+ display: flex;
2978
+ flex-direction: column;
2979
+ gap: 6px;
349
2980
  }
350
2981
 
351
- .status-pill {
352
- justify-self: start;
353
- border: 1px solid rgba(139, 211, 255, 0.34);
354
- border-radius: 999px;
355
- padding: 0.32rem 0.72rem;
356
- color: var(--accent);
357
- background: rgba(139, 211, 255, 0.08);
358
- font-size: 0.82rem;
359
- font-weight: 700;
2982
+ .workspace-credits-actions label > span {
2983
+ color: var(--mute);
2984
+ font: 9px/1 var(--mono);
2985
+ letter-spacing: .1em;
360
2986
  text-transform: uppercase;
361
2987
  }
362
2988
 
363
- .honesty-note {
364
- color: var(--warn);
2989
+ .workspace-credits-actions input,
2990
+ .workspace-credits-actions button {
2991
+ min-height: 40px;
2992
+ padding: 8px 12px;
2993
+ color: var(--ink);
2994
+ border: 1px solid var(--line);
2995
+ background: #fff;
2996
+ font-size: 10px;
365
2997
  }
366
2998
 
367
- @media (max-width: 820px) {
368
- .shell-hero,
369
- .two-column,
370
- .inline-form,
371
- .memory-row,
372
- .connection-list li,
373
- .evidence-row,
374
- .panel li {
375
- grid-template-columns: 1fr;
2999
+ .workspace-credits-actions button {
3000
+ cursor: pointer;
3001
+ }
3002
+
3003
+ .workspace-credits-actions .workspace-send-btn {
3004
+ color: #fff;
3005
+ border-color: #a64022;
3006
+ background: var(--acc);
3007
+ }
3008
+
3009
+ @media (max-width: 900px) {
3010
+ .workspace-credits-summary {
3011
+ grid-template-columns: 1fr 1fr;
376
3012
  }
377
3013
 
378
- .screen-heading {
379
- display: block;
3014
+ .workspace-credits-actions {
3015
+ grid-template-columns: 1fr;
380
3016
  }
3017
+ }
3018
+
3019
+ .workspace-payment-panel {
3020
+ display: grid;
3021
+ gap: 12px;
3022
+ margin-top: 14px;
3023
+ padding: 16px;
3024
+ border: 1px solid var(--line);
3025
+ background: rgba(255, 255, 255, 0.68);
3026
+ }
3027
+
3028
+ .workspace-payment-panel > div:first-child {
3029
+ display: flex;
3030
+ flex-direction: column;
3031
+ gap: 4px;
3032
+ }
3033
+
3034
+ .workspace-payment-panel > div:first-child span {
3035
+ color: var(--acc);
3036
+ font: 9px/1 var(--mono);
3037
+ letter-spacing: .12em;
3038
+ }
3039
+
3040
+ .workspace-payment-panel > div:first-child strong {
3041
+ color: #3c3833;
3042
+ font-size: 12px;
3043
+ font-weight: 500;
3044
+ }
3045
+
3046
+ .workspace-payment-controls,
3047
+ .workspace-payment-settle {
3048
+ display: grid;
3049
+ grid-template-columns: minmax(180px, 1fr) minmax(170px, .7fr) auto;
3050
+ gap: 8px;
3051
+ }
381
3052
 
382
- .summary-grid,
383
- .detail-list {
3053
+ .workspace-payment-settle {
3054
+ grid-template-columns: minmax(260px, 1fr) auto auto;
3055
+ }
3056
+
3057
+ .workspace-payment-panel select,
3058
+ .workspace-payment-panel input,
3059
+ .workspace-payment-panel button {
3060
+ min-height: 39px;
3061
+ padding: 8px 11px;
3062
+ color: var(--ink);
3063
+ border: 1px solid var(--line);
3064
+ background: #fff;
3065
+ font-size: 10px;
3066
+ }
3067
+
3068
+ .workspace-payment-panel button {
3069
+ cursor: pointer;
3070
+ }
3071
+
3072
+ .workspace-payment-panel .workspace-send-btn {
3073
+ color: #fff;
3074
+ border-color: #a64022;
3075
+ background: var(--acc);
3076
+ }
3077
+
3078
+ .workspace-payment-panel pre {
3079
+ min-height: 94px;
3080
+ overflow: auto;
3081
+ padding: 12px;
3082
+ color: #6c665e;
3083
+ border: 1px solid var(--line);
3084
+ background: #faf9f6;
3085
+ font: 9.5px/1.6 var(--mono);
3086
+ white-space: pre-wrap;
3087
+ }
3088
+
3089
+ @media (max-width: 800px) {
3090
+ .workspace-payment-controls,
3091
+ .workspace-payment-settle {
384
3092
  grid-template-columns: 1fr;
385
3093
  }
386
3094
  }
3095
+
3096
+ #workspacePaymentCheckoutBtn[hidden] {
3097
+ display: none;
3098
+ }