@feltdb/core 0.12.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/agent-runtime.d.ts +64 -2
  2. package/dist/agent-runtime.d.ts.map +1 -1
  3. package/dist/agent-runtime.js +121 -11
  4. package/dist/agent-state.d.ts +48 -0
  5. package/dist/agent-state.d.ts.map +1 -1
  6. package/dist/agent-state.js +174 -12
  7. package/dist/agent.d.ts +10 -1
  8. package/dist/agent.d.ts.map +1 -1
  9. package/dist/agent.js +10 -1
  10. package/dist/build-identity.json +4 -4
  11. package/dist/cli/commands.js +34 -7
  12. package/dist/cli/workspace-integration.js +8 -0
  13. package/dist/collection.d.ts +3 -1
  14. package/dist/collection.d.ts.map +1 -1
  15. package/dist/collection.js +30 -8
  16. package/dist/create/build-identity.json +4 -4
  17. package/dist/create/cli.js +47 -38
  18. package/dist/create/create.js +21 -8
  19. package/dist/create/package-versions.js +1 -1
  20. package/dist/create/server-source/Cargo.lock +6 -6
  21. package/dist/create/server-source/Cargo.toml +1 -1
  22. package/dist/create/server-source/crates/feltdb/src/lib.rs +126 -35
  23. package/dist/create/server-source/crates/feltdb/src/state_contract.rs +162 -53
  24. package/dist/create/server-source/crates/feltdb/src/worker_mesh.rs +341 -2
  25. package/dist/create/server-source/crates/feltdb/src/workload.rs +2094 -126
  26. package/dist/create/server-source/crates/feltdb/tests/production_readiness_contract.rs +18 -12
  27. package/dist/create/server-source/crates/feltdb/tests/workload_envelope_contract.rs +17 -5
  28. package/dist/create/server-source/crates/feltdb-client/Cargo.toml +1 -1
  29. package/dist/create/server-source/crates/feltdb-server/Cargo.toml +1 -1
  30. package/dist/create/server-source/crates/feltdb-server/README.md +6 -1
  31. package/dist/create/server-source/crates/feltdb-server/src/agent_execution.rs +511 -0
  32. package/dist/create/server-source/crates/feltdb-server/src/app_state.rs +9 -1
  33. package/dist/create/server-source/crates/feltdb-server/src/auth.rs +113 -25
  34. package/dist/create/server-source/crates/feltdb-server/src/backup.rs +4 -0
  35. package/dist/create/server-source/crates/feltdb-server/src/console_accounts.rs +1009 -0
  36. package/dist/create/server-source/crates/feltdb-server/src/control_authorization.rs +441 -0
  37. package/dist/create/server-source/crates/feltdb-server/src/identity.rs +68 -6
  38. package/dist/create/server-source/crates/feltdb-server/src/key_management.rs +355 -23
  39. package/dist/create/server-source/crates/feltdb-server/src/lib.rs +4 -0
  40. package/dist/create/server-source/crates/feltdb-server/src/main.rs +1740 -236
  41. package/dist/create/server-source/crates/feltdb-server/src/redaction.rs +208 -0
  42. package/dist/create/server-source/crates/feltdb-server/src/tenancy.rs +198 -19
  43. package/dist/create/server-source/crates/feltdb-server/tests/transaction_precondition_contract.rs +403 -0
  44. package/dist/create/setup-summary.js +40 -0
  45. package/dist/db.d.ts +91 -10
  46. package/dist/db.d.ts.map +1 -1
  47. package/dist/db.js +170 -31
  48. package/dist/deployment.d.ts +19 -0
  49. package/dist/deployment.d.ts.map +1 -1
  50. package/dist/deployment.js +38 -2
  51. package/dist/development-runtime-bridge.d.ts +20 -0
  52. package/dist/development-runtime-bridge.d.ts.map +1 -1
  53. package/dist/development-runtime-bridge.js +61 -12
  54. package/dist/embedded-query.d.ts.map +1 -1
  55. package/dist/embedded-query.js +5 -4
  56. package/dist/embedded-transaction.d.ts +8 -4
  57. package/dist/embedded-transaction.d.ts.map +1 -1
  58. package/dist/embedded-transaction.js +55 -19
  59. package/dist/error-codes.d.ts +31 -2
  60. package/dist/error-codes.d.ts.map +1 -1
  61. package/dist/error-codes.js +41 -2
  62. package/dist/feltdb.d.ts +7 -0
  63. package/dist/feltdb.d.ts.map +1 -1
  64. package/dist/file-db.d.ts +27 -0
  65. package/dist/file-db.d.ts.map +1 -1
  66. package/dist/file-db.js +145 -7
  67. package/dist/http-client.d.ts +11 -3
  68. package/dist/http-client.d.ts.map +1 -1
  69. package/dist/http-client.js +27 -14
  70. package/dist/http-db.d.ts +40 -1
  71. package/dist/http-db.d.ts.map +1 -1
  72. package/dist/http-db.js +285 -58
  73. package/dist/index.js +1 -1
  74. package/dist/local-state-lock.d.ts +34 -0
  75. package/dist/local-state-lock.d.ts.map +1 -0
  76. package/dist/local-state-lock.js +225 -0
  77. package/dist/reactive-graph.d.ts +0 -3
  78. package/dist/reactive-graph.d.ts.map +1 -1
  79. package/dist/reactive-graph.js +11 -1
  80. package/dist/runtime-registry.d.ts +7 -2
  81. package/dist/runtime-registry.d.ts.map +1 -1
  82. package/dist/runtime-registry.js +2 -2
  83. package/dist/studio/{KeyManagementPanel-D5FMvvU9.js → KeyManagementPanel-skUNnKRw.js} +36 -29
  84. package/dist/studio/app.d.ts +8 -1
  85. package/dist/studio/app.d.ts.map +1 -1
  86. package/dist/studio/components/KeyManagementPanel.d.ts.map +1 -1
  87. package/dist/studio/components/KeyManagementPanel.js +1 -1
  88. package/dist/studio/components/index.js +2 -2
  89. package/dist/studio/{components-B4eKIUN5.js → components-CJmzntBi.js} +8 -7
  90. package/dist/studio/control-plane/Data.d.ts.map +1 -1
  91. package/dist/studio/control-plane/Instance.d.ts +4 -1
  92. package/dist/studio/control-plane/Instance.d.ts.map +1 -1
  93. package/dist/studio/control-plane/Operations.d.ts +4 -1
  94. package/dist/studio/control-plane/Operations.d.ts.map +1 -1
  95. package/dist/studio/control-plane/index.js +2 -2
  96. package/dist/studio/control-plane/primitives.d.ts +16 -0
  97. package/dist/studio/control-plane/primitives.d.ts.map +1 -1
  98. package/dist/studio/{control-plane-fxMcJn74.js → control-plane-CaBA7Rgv.js} +448 -424
  99. package/dist/studio/index.d.ts +1 -0
  100. package/dist/studio/index.d.ts.map +1 -1
  101. package/dist/studio/index.js +384 -247
  102. package/dist/studio/navigation.d.ts +57 -0
  103. package/dist/studio/navigation.d.ts.map +1 -0
  104. package/dist/studio/studio.css +1 -1
  105. package/dist/studio/utils/control-plane-api.d.ts +2 -0
  106. package/dist/studio/utils/control-plane-api.d.ts.map +1 -1
  107. package/dist/studio/utils/control-plane-api.js +5 -1
  108. package/dist/studio-app/assets/{feltdb_wasm-BatwwogY.js → feltdb_wasm-BjM1ylL3.js} +1 -1
  109. package/dist/studio-app/assets/feltdb_wasm_bg-TseJn2Ax.wasm +0 -0
  110. package/dist/studio-app/assets/index-1wd0uKua.js +30 -0
  111. package/dist/studio-app/assets/{index-CiC8VY-a.css → index-vi21oEQa.css} +1 -1
  112. package/dist/studio-app/index.html +2 -2
  113. package/dist/transaction.d.ts +27 -11
  114. package/dist/transaction.d.ts.map +1 -1
  115. package/dist/transaction.js +20 -14
  116. package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
  117. package/dist/wasm/package.json +1 -1
  118. package/dist/workload.d.ts +31 -3
  119. package/dist/workload.d.ts.map +1 -1
  120. package/dist/workload.js +28 -3
  121. package/dist/workspace/local-development-authority.d.ts +19 -0
  122. package/dist/workspace/local-development-authority.d.ts.map +1 -1
  123. package/dist/workspace/local-development-authority.js +335 -15
  124. package/package.json +1 -1
  125. package/dist/studio-app/assets/feltdb_wasm_bg-BX0newOr.wasm +0 -0
  126. package/dist/studio-app/assets/index-DoVvbIay.js +0 -30
@@ -1 +1 @@
1
- ._panel_1cbba_1{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2rem}._header_1cbba_8{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}._header_1cbba_8 h2{color:var(--text-primary);margin:0;font-size:1.5rem}._createButton_1cbba_23{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._createButton_1cbba_23:hover{background:var(--accent-hover)}._error_1cbba_38{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:4px;margin-bottom:1rem;padding:1rem}._createForm_1cbba_47{background:var(--surface-alt);border:1px solid var(--border);border-radius:4px;margin-bottom:2rem;padding:1.5rem}._formGroup_1cbba_55{margin-bottom:1.5rem}._formGroup_1cbba_55 label{color:var(--text-primary);margin-bottom:.5rem;font-weight:600;display:block}._formGroup_1cbba_55 input[type=text]{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:4px;padding:.5rem;font-family:inherit}._scopeList_1cbba_76{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}._scopeCheckbox_1cbba_82{cursor:pointer;color:var(--text-primary);align-items:center;display:flex}._scopeCheckbox_1cbba_82 input{cursor:pointer;margin-right:.5rem}._submitButton_1cbba_94{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;width:100%;padding:.75rem 1.5rem;font-weight:600}._submitButton_1cbba_94:hover{background:var(--accent-hover)}._empty_1cbba_109{text-align:center;color:var(--text-secondary);background:var(--surface-alt);border-radius:4px;padding:2rem}._keysList_1cbba_117{flex-direction:column;gap:1rem;display:flex}._keyCard_1cbba_123{border:1px solid var(--border);background:var(--surface-alt);border-radius:4px;padding:1.5rem;transition:border-color .2s}._keyCard_1cbba_123:hover{border-color:var(--accent)}._keyHeader_1cbba_135{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;display:flex}._keyHeader_1cbba_135 h3{color:var(--text-primary);margin:0 0 .25rem;font-size:1.1rem}._namespace_1cbba_150{color:var(--text-secondary);margin:0;font-size:.85rem}._status_1cbba_156{border-radius:12px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}._status_1cbba_156._active_1cbba_163{background:var(--success-bg);color:var(--success-text)}._status_1cbba_156._expired_1cbba_168{background:var(--warning-bg);color:var(--warning-text)}._keyDetails_1cbba_173{gap:1rem;margin-bottom:1rem;display:grid}._detail_1cbba_179{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}._detail_1cbba_179 strong{color:var(--text-primary)}._detail_1cbba_179 span,._detail_1cbba_179 code{color:var(--text-secondary)}._detail_1cbba_179 code{background:var(--code-bg);border-radius:3px;padding:.25rem .5rem;font-family:monospace;font-size:.9rem}._copyBtn_1cbba_203{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:.25rem .5rem;font-size:.85rem}._copyBtn_1cbba_203:hover{background:var(--accent-hover)}._daysLeft_1cbba_217{color:var(--warning-text);font-size:.85rem;font-weight:600}._scopes_1cbba_223{margin-top:.75rem}._scopeTags_1cbba_227{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}._scopeTag_1cbba_227{background:var(--tag-bg);color:var(--tag-text);border-radius:12px;padding:.25rem .75rem;font-family:monospace;font-size:.85rem}._keyActions_1cbba_243{border-top:1px solid var(--border);gap:.5rem;padding-top:1rem;display:flex}._revokeBtn_1cbba_250{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);cursor:pointer;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._revokeBtn_1cbba_250:hover{background:var(--error-hover-bg)}._info_1cbba_265{background:var(--info-bg);color:var(--text-secondary);border-radius:4px;margin-top:2rem;padding:1rem;font-size:.9rem}._info_1cbba_265 p{margin:0}:root{--surface:#fff;--surface-alt:#f5f5f5;--text-primary:#000;--text-secondary:#666;--border:#e0e0e0;--accent:#007bff;--accent-hover:#0056b3;--error-bg:#f8d7da;--error-border:#f5c6cb;--error-text:#721c24;--error-hover-bg:#f5c6cb;--success-bg:#d4edda;--success-text:#155724;--warning-bg:#fff3cd;--warning-text:#856404;--info-bg:#e2e3e5;--input-bg:#fff;--code-bg:#f4f4f4;--tag-bg:#e9ecef;--tag-text:#495057}@media (prefers-color-scheme:dark){:root{--surface:#1e1e1e;--surface-alt:#2d2d2d;--text-primary:#fff;--text-secondary:#b0b0b0;--border:#404040;--accent:#0d6efd;--accent-hover:#0a58ca;--error-bg:#3d1f1f;--error-border:#664141;--error-text:#f8b7bc;--error-hover-bg:#4a2828;--success-bg:#1f3f1f;--success-text:#7ddc7d;--warning-bg:#3f3f1f;--warning-text:#ffdd57;--info-bg:#2d2d3d;--input-bg:#2d2d2d;--code-bg:#2d2d2d;--tag-bg:#3d3d4d;--tag-text:#b0b0b0}}:root{--stack-font-family-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--stack-font-family-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--stack-text-xs-size:.75rem;--stack-text-xs-line:1rem;--stack-text-sm-size:.8125rem;--stack-text-sm-line:1.25rem;--stack-text-md-size:.875rem;--stack-text-md-line:1.375rem;--stack-text-lg-size:1rem;--stack-text-lg-line:1.5rem;--stack-text-xl-size:1.25rem;--stack-text-xl-line:1.75rem;--stack-text-2xl-size:1.5rem;--stack-text-2xl-line:2rem;--stack-font-weight-regular:400;--stack-font-weight-medium:500;--stack-font-weight-semibold:600;--stack-space-0:0;--stack-space-1:4px;--stack-space-2:8px;--stack-space-3:12px;--stack-space-4:16px;--stack-space-5:20px;--stack-space-6:24px;--stack-space-8:32px;--stack-space-10:40px;--stack-space-12:48px;--stack-size-control-sm:32px;--stack-size-control-md:36px;--stack-size-control-lg:44px;--stack-size-icon-sm:14px;--stack-size-icon-md:16px;--stack-radius-sm:4px;--stack-radius-md:6px;--stack-radius-lg:10px;--stack-radius-pill:999px;--stack-border-width-thin:1px;--stack-border-width-thick:2px;--stack-focus-ring-width:2px;--stack-focus-ring-offset:2px;--stack-z-sticky:10;--stack-z-dropdown:20;--stack-z-overlay:30;--stack-z-toast:40;--stack-motion-duration-fast:.12s;--stack-motion-duration-base:.2s;--stack-motion-ease-standard:cubic-bezier(.2, 0, 0, 1);--stack-color-bg-canvas:#f6f7f9;--stack-color-bg-surface:#fff;--stack-color-bg-raised:#fff;--stack-color-bg-sunken:#eef0f3;--stack-color-bg-overlay:#0f12187a;--stack-color-bg-code:#f0f2f5;--stack-color-text-default:#16181d;--stack-color-text-muted:#4b5260;--stack-color-text-subtle:#5f6673;--stack-color-text-inverse:#fff;--stack-color-text-link:#2a52c9;--stack-color-text-on-accent:#fff;--stack-color-border-default:#d9dde3;--stack-color-border-strong:#7c8492;--stack-color-border-subtle:#e8ebef;--stack-focus-ring-color:#2f5bd8;--stack-color-action-primary-bg:#2f5bd8;--stack-color-action-primary-fg:#fff;--stack-color-action-primary-bg-hover:#2549c4;--stack-color-action-primary-bg-active:#1e3da6;--stack-color-action-secondary-bg:#fff;--stack-color-action-secondary-fg:#16181d;--stack-color-action-secondary-bg-hover:#eef0f3;--stack-color-action-secondary-bg-active:#e2e5ea;--stack-color-action-danger-bg:#c42b2b;--stack-color-action-danger-fg:#fff;--stack-color-action-danger-bg-hover:#a82323;--stack-color-action-danger-bg-active:#8c1d1d;--stack-color-status-positive-fg:#136b3a;--stack-color-status-positive-bg:#e8f5ee;--stack-color-status-positive-border:#9fd3b4;--stack-color-status-positive-glyph:#1a7f45;--stack-color-status-progress-fg:#1f4fb8;--stack-color-status-progress-bg:#eaf0fd;--stack-color-status-progress-border:#b9cbf3;--stack-color-status-progress-glyph:#2f5bd8;--stack-color-status-attention-fg:#734700;--stack-color-status-attention-bg:#fdf3e1;--stack-color-status-attention-border:#ecc77f;--stack-color-status-attention-glyph:#a26400;--stack-color-status-critical-fg:#a32020;--stack-color-status-critical-bg:#fdecec;--stack-color-status-critical-border:#f0b0b0;--stack-color-status-critical-glyph:#c42b2b;--stack-color-status-neutral-fg:#4b5260;--stack-color-status-neutral-bg:#eef0f3;--stack-color-status-neutral-border:#cdd2d9;--stack-color-status-neutral-glyph:#6b7280;--stack-color-status-unknown-fg:#55468a;--stack-color-status-unknown-bg:#f1eef8;--stack-color-status-unknown-border:#cdc4e8;--stack-color-status-unknown-glyph:#7262ad;--stack-color-evidence-verified-fg:#0d5c4a;--stack-color-evidence-verified-bg:#e4f4ef;--stack-color-evidence-verified-border:#93d1c0;--stack-color-evidence-verified-glyph:#11806a;--stack-color-evidence-unverified-fg:#4b5260;--stack-color-evidence-unverified-bg:#eef0f3;--stack-color-evidence-unverified-border:#cdd2d9;--stack-color-evidence-unverified-glyph:#6b7280;--stack-color-notice-info-fg:#1f4fb8;--stack-color-notice-info-bg:#eaf0fd;--stack-color-notice-info-border:#b9cbf3;--stack-shadow-raised:0 1px 2px #1018280f;--stack-shadow-overlay:0 12px 32px #1018282e}@media (prefers-reduced-motion:reduce){:root{--stack-motion-duration-fast:0s;--stack-motion-duration-base:0s}}.stack-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack-status{align-items:baseline;gap:var(--stack-space-1);font:inherit;color:inherit;white-space:nowrap;display:inline-flex}.stack-status__glyph{font-size:.85em;line-height:1}.stack-status__detail{color:var(--stack-color-text-muted)}.stack-status__detail:before{content:"· "}.stack-status--positive .stack-status__glyph{color:var(--stack-color-status-positive-glyph)}.stack-status--progress .stack-status__glyph{color:var(--stack-color-status-progress-glyph)}.stack-status--attention .stack-status__glyph{color:var(--stack-color-status-attention-glyph)}.stack-status--critical .stack-status__glyph{color:var(--stack-color-status-critical-glyph)}.stack-status--neutral .stack-status__glyph{color:var(--stack-color-status-neutral-glyph)}.stack-status--unknown .stack-status__glyph{color:var(--stack-color-status-unknown-glyph)}.stack-verification{align-items:baseline;gap:var(--stack-space-1);padding:var(--stack-space-1) var(--stack-space-2);border:var(--stack-border-width-thin) solid var(--stack-color-evidence-unverified-border);border-radius:var(--stack-radius-md);background:var(--stack-color-evidence-unverified-bg);color:var(--stack-color-evidence-unverified-fg);font-size:var(--stack-text-sm-size);line-height:var(--stack-text-sm-line);flex-wrap:wrap;display:inline-flex}.stack-verification--verified{border-color:var(--stack-color-evidence-verified-border);background:var(--stack-color-evidence-verified-bg);color:var(--stack-color-evidence-verified-fg)}.stack-verification--verification_failed{border-color:var(--stack-color-status-critical-border);background:var(--stack-color-status-critical-bg);color:var(--stack-color-status-critical-fg)}.stack-verification__label{font-weight:var(--stack-font-weight-medium)}.stack-verification__evidence{color:inherit;text-decoration:underline}.stack-verification__checks{margin:var(--stack-space-1) 0 0;padding-left:var(--stack-space-5);flex-basis:100%}.stack-freshness{align-items:baseline;gap:var(--stack-space-1);color:var(--stack-color-text-muted);font-size:var(--stack-text-sm-size);line-height:var(--stack-text-sm-line);display:inline-flex}.stack-freshness__glyph{font-size:.85em}.stack-freshness--live .stack-freshness__glyph{color:var(--stack-color-status-positive-glyph)}.stack-freshness--cached .stack-freshness__glyph{color:var(--stack-color-status-neutral-glyph)}.stack-freshness--stale{color:var(--stack-color-status-attention-fg)}.stack-freshness--stale .stack-freshness__glyph{color:var(--stack-color-status-attention-glyph)}.stack-freshness--unknown .stack-freshness__glyph{color:var(--stack-color-status-unknown-glyph)}.stack-unavailable,.stack-error,.stack-empty,.stack-loading{border-radius:var(--stack-radius-lg);padding:var(--stack-space-3) var(--stack-space-4);font-size:var(--stack-text-md-size);line-height:var(--stack-text-md-line)}.stack-unavailable{border:var(--stack-border-width-thin) dashed var(--stack-color-border-strong);background:var(--stack-color-bg-sunken);color:var(--stack-color-text-muted)}.stack-unavailable__title{color:var(--stack-color-text-default);font-size:var(--stack-text-md-size);line-height:var(--stack-text-md-line);font-weight:var(--stack-font-weight-semibold);margin:0}.stack-unavailable__reason{margin:var(--stack-space-1) 0 0}.stack-error{border:var(--stack-border-width-thin) solid var(--stack-color-status-critical-border);background:var(--stack-color-status-critical-bg);color:var(--stack-color-status-critical-fg)}.stack-error__title{font-weight:var(--stack-font-weight-semibold);margin:0}.stack-error__message,.stack-error__meta{margin:var(--stack-space-1) 0 0}.stack-error__meta code{font-family:var(--stack-font-family-mono);font-size:.92em}.stack-error__actions{gap:var(--stack-space-2);margin-top:var(--stack-space-3);display:flex}.stack-empty{border:var(--stack-border-width-thin) dashed var(--stack-color-border-default);color:var(--stack-color-text-muted);text-align:center;padding:var(--stack-space-6) var(--stack-space-4)}.stack-empty__title{color:var(--stack-color-text-default);font-size:var(--stack-text-lg-size);line-height:var(--stack-text-lg-line);font-weight:var(--stack-font-weight-semibold);margin:0}.stack-empty__body{margin:var(--stack-space-1) 0 0}.stack-empty__action{margin-top:var(--stack-space-3)}.stack-loading{align-items:center;gap:var(--stack-space-2);color:var(--stack-color-text-muted);padding-left:0;display:flex}.stack-loading__indicator{width:var(--stack-size-icon-sm);height:var(--stack-size-icon-sm);border:var(--stack-border-width-thick) solid var(--stack-color-border-default);border-top-color:var(--stack-color-status-progress-glyph);animation:stack-spin calc(var(--stack-motion-duration-base) * 4) linear infinite;border-radius:50%}@keyframes stack-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.stack-loading__indicator,.stack-button__busy{animation:none}}.stack-meta{gap:var(--stack-space-2);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin:0;display:grid}.stack-meta__item{min-width:0;padding:var(--stack-space-3);border:var(--stack-border-width-thin) solid var(--stack-color-border-default);border-radius:var(--stack-radius-lg);background:var(--stack-color-bg-surface)}.stack-meta__label{color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);line-height:var(--stack-text-xs-line);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--stack-font-weight-medium)}.stack-meta__value{margin:var(--stack-space-1) 0 0;color:var(--stack-color-text-default);font-size:var(--stack-text-md-size);line-height:var(--stack-text-md-line);overflow-wrap:anywhere}.stack-meta__value--mono{font-family:var(--stack-font-family-mono);font-size:var(--stack-text-sm-size)}.stack-meta__hint{margin:var(--stack-space-1) 0 0;color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size)}.stack-identity{align-items:baseline;gap:var(--stack-space-2);min-width:0;display:inline-flex}.stack-identity__kind{color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);text-transform:uppercase;letter-spacing:.04em}.stack-identity__name{font-weight:var(--stack-font-weight-semibold);color:inherit}a.stack-identity__name{color:var(--stack-color-text-link)}.stack-identity__id{font-family:var(--stack-font-family-mono);font-size:var(--stack-text-sm-size);padding:0 var(--stack-space-1);border-radius:var(--stack-radius-sm);background:var(--stack-color-bg-code);color:var(--stack-color-text-default)}.stack-page-header{margin:0 0 var(--stack-space-4)}.stack-page-header__eyebrow{color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--stack-font-weight-semibold);margin:0}.stack-page-header__title-row{align-items:center;gap:var(--stack-space-3);flex-wrap:wrap;display:flex}.stack-page-header__title{margin:var(--stack-space-1) 0 0;color:var(--stack-color-text-default);font-size:var(--stack-text-2xl-size);line-height:var(--stack-text-2xl-line);font-weight:var(--stack-font-weight-semibold)}.stack-page-header__actions{gap:var(--stack-space-2);margin-left:auto;display:flex}.stack-page-header__description{margin:var(--stack-space-1) 0 0;color:var(--stack-color-text-muted);max-width:72ch}.stack-page-header__meta{margin-top:var(--stack-space-2)}.stack-button{justify-content:center;align-items:center;gap:var(--stack-space-2);min-height:var(--stack-size-control-md);padding:0 var(--stack-space-3);border:var(--stack-border-width-thin) solid var(--stack-color-border-default);border-radius:var(--stack-radius-md);background:var(--stack-color-action-secondary-bg);color:var(--stack-color-action-secondary-fg);font:inherit;font-size:var(--stack-text-md-size);font-weight:var(--stack-font-weight-medium);cursor:pointer;transition:background-color var(--stack-motion-duration-fast) var(--stack-motion-ease-standard);display:inline-flex}.stack-button:hover:not(:disabled){background:var(--stack-color-action-secondary-bg-hover)}.stack-button:active:not(:disabled){background:var(--stack-color-action-secondary-bg-active)}.stack-button--primary{background:var(--stack-color-action-primary-bg);color:var(--stack-color-action-primary-fg);border-color:#0000}.stack-button--primary:hover:not(:disabled){background:var(--stack-color-action-primary-bg-hover)}.stack-button--primary:active:not(:disabled){background:var(--stack-color-action-primary-bg-active)}.stack-button--danger{background:var(--stack-color-action-danger-bg);color:var(--stack-color-action-danger-fg);border-color:#0000}.stack-button--danger:hover:not(:disabled){background:var(--stack-color-action-danger-bg-hover)}.stack-button--danger:active:not(:disabled){background:var(--stack-color-action-danger-bg-active)}.stack-button--ghost{background:0 0;border-color:#0000}.stack-button--sm{min-height:var(--stack-size-control-sm);padding:0 var(--stack-space-2);font-size:var(--stack-text-sm-size)}.stack-button--lg{min-height:var(--stack-size-control-lg);padding:0 var(--stack-space-4)}.stack-button:disabled{opacity:.55;cursor:not-allowed}.stack-button[aria-busy=true]{opacity:.8;cursor:progress}.stack-button__busy{width:var(--stack-size-icon-sm);height:var(--stack-size-icon-sm);border:var(--stack-border-width-thick) solid currentColor;animation:stack-spin calc(var(--stack-motion-duration-base) * 4) linear infinite;border-right-color:#0000;border-radius:50%}.stack-button:focus-visible,.stack-identity__name:focus-visible,.stack-verification__evidence:focus-visible{outline:var(--stack-focus-ring-width) solid var(--stack-focus-ring-color);outline-offset:var(--stack-focus-ring-offset)}.stack-breadcrumbs{font-size:var(--stack-text-sm-size);line-height:var(--stack-text-sm-line);color:var(--stack-color-text-muted)}.stack-breadcrumbs__list{align-items:baseline;gap:var(--stack-space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.stack-breadcrumbs__item{align-items:baseline;gap:var(--stack-space-1);min-width:0;display:inline-flex}.stack-breadcrumbs__separator{color:var(--stack-color-text-subtle)}.stack-breadcrumbs__link{color:var(--stack-color-text-link);text-decoration:none}.stack-breadcrumbs__link:hover{text-decoration:underline}.stack-breadcrumbs__current{color:var(--stack-color-text-default);font-weight:var(--stack-font-weight-medium);overflow-wrap:anywhere}.stack-tabs{gap:var(--stack-space-1);border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-default);display:flex;overflow-x:auto}.stack-tabs__tab{align-items:center;gap:var(--stack-space-2);min-height:var(--stack-size-control-md);padding:0 var(--stack-space-3);border:0;border-bottom:var(--stack-border-width-thick) solid transparent;color:var(--stack-color-text-muted);font:inherit;font-size:var(--stack-text-md-size);font-weight:var(--stack-font-weight-medium);white-space:nowrap;cursor:pointer;background:0 0;margin-bottom:-1px;display:inline-flex}.stack-tabs__tab:hover:not(:disabled){color:var(--stack-color-text-default)}.stack-tabs__tab[aria-selected=true]{color:var(--stack-color-text-default);border-bottom-color:var(--stack-color-action-primary-bg)}.stack-tabs__tab:disabled{opacity:.55;cursor:not-allowed}.stack-tabs__badge{padding:0 var(--stack-space-2);border-radius:var(--stack-radius-pill);background:var(--stack-color-bg-sunken);color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size)}.stack-tabpanel{padding-top:var(--stack-space-4)}.stack-table{border:var(--stack-border-width-thin) solid var(--stack-color-border-default);border-radius:var(--stack-radius-lg);background:var(--stack-color-bg-surface);overflow-x:auto}.stack-table[aria-busy=true]{box-shadow:inset 0 var(--stack-border-width-thick) 0 var(--stack-color-status-progress-glyph)}.stack-table__table{border-collapse:collapse;width:100%;font-size:var(--stack-text-md-size);line-height:var(--stack-text-md-line)}.stack-table__caption{padding:var(--stack-space-3) var(--stack-space-4);text-align:left;color:var(--stack-color-text-default);font-weight:var(--stack-font-weight-semibold)}.stack-table__header{padding:var(--stack-space-2) var(--stack-space-4);text-align:left;white-space:nowrap;border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-default);background:var(--stack-color-bg-sunken);color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);font-weight:var(--stack-font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.stack-table__sort{align-items:center;gap:var(--stack-space-1);color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.stack-table__sort-indicator{color:var(--stack-color-text-subtle)}.stack-table__cell{padding:var(--stack-space-2) var(--stack-space-4);vertical-align:top;border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-subtle);color:var(--stack-color-text-default)}.stack-table__row:last-child .stack-table__cell{border-bottom:0}.stack-table__cell--end{text-align:right}.stack-table__cell[data-missing=true]{color:var(--stack-color-text-subtle)}.stack-table__row--selectable{cursor:pointer}.stack-table__row--selectable:hover{background:var(--stack-color-bg-sunken)}.stack-table__row--selected{background:var(--stack-color-status-progress-bg)}.stack-filter{margin:0 0 var(--stack-space-3)}.stack-filter__controls{align-items:flex-end;gap:var(--stack-space-3);flex-wrap:wrap;display:flex}.stack-filter__field{gap:var(--stack-space-1);flex-direction:column;min-width:0;display:flex}.stack-filter__label{color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);font-weight:var(--stack-font-weight-semibold)}.stack-filter__control{min-height:var(--stack-size-control-md);max-width:100%;padding:0 var(--stack-space-2);border:var(--stack-border-width-thin) solid var(--stack-color-border-strong);border-radius:var(--stack-radius-md);background:var(--stack-color-bg-surface);color:var(--stack-color-text-default);font:inherit;font-size:var(--stack-text-md-size)}.stack-filter__actions{gap:var(--stack-space-2);display:flex}.stack-filter__result{margin:var(--stack-space-2) 0 0;min-height:var(--stack-text-sm-line);color:var(--stack-color-text-muted);font-size:var(--stack-text-sm-size)}.stack-pagination{justify-content:space-between;align-items:center;gap:var(--stack-space-3);margin-top:var(--stack-space-3);flex-wrap:wrap;display:flex}.stack-pagination__summary{color:var(--stack-color-text-muted);font-size:var(--stack-text-sm-size);margin:0}.stack-pagination__actions{gap:var(--stack-space-2);margin-left:auto;display:flex}.stack-shell{background:var(--stack-color-bg-canvas);min-height:100vh;color:var(--stack-color-text-default);font-family:var(--stack-font-family-sans);flex-direction:column;display:flex}.stack-shell__skip{left:var(--stack-space-2);z-index:var(--stack-z-toast);padding:var(--stack-space-2) var(--stack-space-3);border-radius:var(--stack-radius-md);background:var(--stack-color-action-primary-bg);color:var(--stack-color-action-primary-fg);position:absolute;top:-100px}.stack-shell__skip:focus{top:var(--stack-space-2)}.stack-shell__bar{align-items:center;gap:var(--stack-space-3);min-height:52px;padding:var(--stack-space-2) var(--stack-space-4);border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-default);background:var(--stack-color-bg-surface);flex-wrap:wrap;display:flex}.stack-shell__product{align-items:center;gap:var(--stack-space-2);color:var(--stack-color-text-default);font-weight:var(--stack-font-weight-semibold);letter-spacing:.02em;text-decoration:none;display:inline-flex}.stack-shell__mark{border-radius:var(--stack-radius-md);background:var(--stack-color-action-primary-bg);width:24px;height:24px;color:var(--stack-color-action-primary-fg);font-size:var(--stack-text-xs-size);place-items:center;display:inline-grid}.stack-shell__context,.stack-shell__search{align-items:center;min-width:0;display:flex}.stack-shell__search{flex:200px;max-width:420px}.stack-shell__end{align-items:center;gap:var(--stack-space-3);flex-wrap:wrap;min-width:0;margin-left:auto;display:flex}.stack-shell__theme{min-height:var(--stack-size-control-sm);padding:0 var(--stack-space-2);border:var(--stack-border-width-thin) solid var(--stack-color-border-strong);border-radius:var(--stack-radius-md);background:var(--stack-color-bg-surface);color:var(--stack-color-text-default);font:inherit;font-size:var(--stack-text-sm-size)}.stack-shell__account{align-items:center;gap:var(--stack-space-2);min-width:0;display:flex}.stack-shell__body{flex:1;grid-template-columns:220px minmax(0,1fr);min-height:0;display:grid}.stack-shell__nav{padding:var(--stack-space-4) var(--stack-space-3);border-right:var(--stack-border-width-thin) solid var(--stack-color-border-default);background:var(--stack-color-bg-surface);overflow-y:auto}.stack-shell__nav-group+.stack-shell__nav-group{margin-top:var(--stack-space-4)}.stack-shell__nav-heading{margin:0 0 var(--stack-space-1);padding:0 var(--stack-space-2);color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);font-weight:var(--stack-font-weight-semibold);letter-spacing:.06em;text-transform:uppercase}.stack-shell__nav-list{margin:0;padding:0;list-style:none}.stack-shell__nav-item{padding:var(--stack-space-2);border-radius:var(--stack-radius-md);color:var(--stack-color-text-default);font-size:var(--stack-text-md-size);text-decoration:none;display:block}.stack-shell__nav-item:hover{background:var(--stack-color-bg-sunken)}.stack-shell__nav-item[aria-current=page]{background:var(--stack-color-status-progress-bg);color:var(--stack-color-status-progress-fg);font-weight:var(--stack-font-weight-semibold)}.stack-shell__main{box-sizing:border-box;width:100%;min-width:0;padding:var(--stack-space-6)}.stack-shell__main:focus{outline:none}@media (width<=767px){.stack-shell__body{grid-template-columns:minmax(0,1fr)}.stack-shell__nav{gap:var(--stack-space-3);padding:var(--stack-space-2) var(--stack-space-3);border-right:0;border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-default);display:flex;overflow-x:auto}.stack-shell__nav-group+.stack-shell__nav-group{margin-top:0}.stack-shell__nav-heading{display:none}.stack-shell__nav-list{gap:var(--stack-space-1);display:flex}.stack-shell__nav-item{white-space:nowrap}.stack-shell__main{padding:var(--stack-space-4)}}.stack-tabs__tab:focus-visible,.stack-table__sort:focus-visible,.stack-table:focus-visible,.stack-table__row--selectable:focus-visible,.stack-filter__control:focus-visible,.stack-shell__theme:focus-visible,.stack-shell__nav-item:focus-visible,.stack-shell__product:focus-visible,.stack-breadcrumbs__link:focus-visible,.stack-shell__skip:focus-visible,.stack-tabpanel:focus-visible{outline:var(--stack-focus-ring-width) solid var(--stack-focus-ring-color);outline-offset:var(--stack-focus-ring-offset)}.application-designer{--ink:#17211b;--muted:#68756d;--line:#dce4de;--paper:#fbfcf9;min-height:100%;color:var(--ink)}.designer-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 4px 22px;display:flex}.designer-header h1{letter-spacing:-.03em;font-family:Georgia,serif;font-size:34px}.designer-header p{color:var(--muted);margin-top:5px}.eyebrow{color:#287052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.designer-actions{flex-wrap:wrap;gap:8px;display:flex}.btn-ghost{color:#33443a;border:1px solid var(--line);background:#fff}.designer-actions .btn-primary{background:#1f684c}.cloud-publisher{background:#fff;border:1px solid #cbdad0;border-radius:10px;gap:14px;margin-bottom:12px;padding:18px;display:grid;box-shadow:0 10px 28px #26372d1a}.cloud-publisher-heading{justify-content:space-between;gap:18px;display:flex}.cloud-publisher-heading h2{margin-top:3px;font:600 20px/1.2 Georgia,serif}.cloud-publisher-heading p{color:var(--muted);margin-top:4px;font-size:12px}.cloud-publisher-heading>button{color:#718078;cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:22px}.cloud-fields{grid-template-columns:1.4fr .7fr 1fr;gap:10px;display:grid}.cloud-fields label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cloud-fields input{color:#20342a;background:#f9fbf9;border:1px solid #cbd8cf;border-radius:6px;outline:0;width:100%;padding:9px 10px;font-size:12px}.cloud-fields input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.cloud-destructive{color:#8b4d22;align-items:center;gap:7px;font-size:11px;display:flex}.cloud-destructive input{accent-color:#a55d2b}.local-destructive{color:#8b4d22;background:#fff7ed;border:1px solid #f0d7bb;border-radius:7px;align-items:center;gap:7px;margin-bottom:12px;padding:9px 12px;font-size:11px;display:flex}.local-destructive input{accent-color:#a55d2b}.cloud-error{color:#9b2c2c;background:#fff0f0;border:1px solid #f1caca;border-radius:6px;padding:8px 10px;font-size:11px}.cloud-actions{justify-content:flex-end;gap:8px;display:flex}.cloud-actions .btn:disabled{cursor:wait;opacity:.65}.designer-status{color:#286046;background:#eaf5ee;border:1px solid #cce5d5;border-radius:8px;justify-content:space-between;margin-bottom:12px;padding:9px 13px;font-size:12px;display:flex}.designer-status.error{color:#9b2c2c;background:#fff0f0;border-color:#f1caca}.designer-grid{background:var(--paper);border:1px solid var(--line);border-radius:12px;grid-template-columns:190px minmax(420px,1fr) minmax(340px,.8fr);height:calc(100vh - 150px);min-height:620px;display:grid;overflow:hidden;box-shadow:0 12px 40px #26372d14}.model-tree,.model-canvas,.dsl-panel{min-width:0}.model-tree{border-right:1px solid var(--line);background:#f2f5f0;padding:14px;overflow:auto}.panel-title{color:#34463b;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:38px;font-size:12px;font-weight:800;display:flex}.panel-title button{color:#286046;cursor:pointer;background:#dce9df;border:0;border-radius:6px;width:25px;height:25px}.model-tree section{margin-top:16px}.model-tree section h3{color:var(--stack-color-text-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 7px 6px;font-size:10px}.tree-item,.tree-empty{border-radius:6px;padding:6px 8px;font-size:12px}.tree-item{color:#27372e;background:#ffffffb3;margin-bottom:3px}.tree-empty{color:#9aa39d;font-style:italic}.collection-editor{background:#fff;border:1px solid #d3ded6;border-radius:7px;gap:7px;margin-top:10px;padding:9px;display:grid}.collection-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:800;display:grid}.collection-editor input{color:#20342a;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font-size:11px}.collection-editor input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.collection-editor>div:last-child{justify-content:flex-end;gap:4px;display:flex}.collection-editor button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 7px;font-size:10px}.collection-editor .collection-save{color:#fff;background:#287052}.model-canvas{background-color:#f8faf6;background-image:radial-gradient(#d8e0da 1px,#0000 1px);background-size:18px 18px;flex-direction:column;padding:14px;display:flex;overflow:hidden}.graph-legend{color:#859189;text-transform:none;letter-spacing:0;font-weight:500}.graph-board{flex:1;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:16px;padding:22px 8px;display:grid;overflow:auto}.model-node{background:#fff;border:1px solid #cfdbd2;border-top:3px solid #327258;border-radius:9px;padding:14px;position:relative;box-shadow:0 5px 14px #273d3014}.model-node.workflow-node{border-top-color:#9b6a2f}.model-node.agent-node{border-top-color:#70539b}.node-kind{color:#849087;letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:800}.model-node h3{margin:3px 0 10px;font-family:Georgia,serif;font-size:18px}.node-field,.node-step{border-top:1px solid #eef1ee;justify-content:space-between;gap:8px;padding:5px 0;font-size:11px;display:flex}.node-field code{color:#527060;font-size:10px}.node-step{color:#59675f;display:block}.node-add{color:#357257;cursor:pointer;background:#f0f7f2;border:1px dashed #b9d2c1;border-radius:5px;margin-top:9px;padding:4px 7px;font-size:10px}.field-editor{background:#f5f8f5;border:1px solid #d7e2da;border-radius:7px;gap:9px;margin-top:10px;padding:11px;display:grid}.field-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:700;display:grid}.field-editor input[type=text],.field-editor input:not([type]),.field-editor select{color:#20342a;background:#fff;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font:11px/1.2 inherit}.field-editor input:focus,.field-editor select:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.field-editor-row{grid-template-columns:1fr 1fr;gap:7px;display:grid}.field-editor .field-optional{color:#43564a;letter-spacing:0;text-transform:none;align-items:center;gap:6px;font-size:10px;font-weight:500;display:flex}.field-optional input{accent-color:#287052}.field-error{color:#a13d3d;font-size:10px}.field-editor-actions{justify-content:flex-end;gap:6px;display:flex}.field-editor-actions button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 8px;font-size:10px}.field-editor-actions .field-save{color:#fff;background:#287052}.change-strip{border-top:1px solid var(--line);white-space:nowrap;background:#ffffffeb;align-items:center;gap:12px;min-height:42px;padding:7px 10px;font-size:10px;display:flex;overflow:auto}.change-strip .added{color:#24714f}.change-strip .changed{color:#94611e}.change-strip .removed{color:#a13d3d}.dsl-panel{color:#d9e4dc;background:#17211b;border-left:1px solid #0c1510;flex-direction:column;padding:14px;display:flex}.dsl-panel .panel-title{color:#aebdb3;border-color:#344139}.dsl-panel .panel-title span:last-child{color:#6f8276;text-transform:none;font-weight:500}.dsl-panel textarea{resize:none;color:#d9e4dc;tab-size:2;background:0 0;border:0;outline:0;flex:1;width:100%;padding:15px 2px;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.diagnostics{border-top:1px solid #344139;max-height:120px;padding-top:8px;font:10px/1.5 ui-monospace,monospace;overflow:auto}.diagnostics .error{color:#ff9f9f}.diagnostics .warning{color:#f3d18a}@media (width<=1100px){.designer-grid{grid-template-columns:160px 1fr;height:auto}.dsl-panel{grid-column:1/-1;height:480px}.designer-header{flex-direction:column;align-items:flex-start}.cloud-fields{grid-template-columns:1fr}}.studio-content{min-width:0}.instance-info{border:1px solid var(--stack-color-border-default);color:var(--stack-color-text-muted);border-radius:999px;padding:2px 10px;font-size:12px}.runtime-notice{color:#65551d;background:#fff9df;border:1px solid #d8c98d;border-radius:8px;max-width:1280px;margin:0 auto 20px;padding:12px 16px;font-size:13px;line-height:1.45}.search-input{border:1px solid #ddd;border-radius:4px;width:100%;padding:10px;font-size:14px}.filter-select{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:14px}.btn{cursor:pointer;border:none;border-radius:4px;padding:10px 15px;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{color:#fff;background:#0062cc}.btn-primary:hover{background:#0056b3}.overview-dashboard{background:#fff;border-radius:8px;padding:30px;box-shadow:0 1px 3px #0000001a}.dashboard-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;display:flex}.dashboard-header h1{margin:0;font-size:28px}.namespace-badge{color:#fff;background:#007bff;border-radius:20px;padding:5px 15px;font-size:12px;font-weight:600}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;display:grid}.stat-card{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.stat-card label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.stat-card .status-indicator{margin-right:5px;font-size:20px}.stat-card .status-indicator.healthy{color:#28a745}.stat-card .status-indicator.degraded{color:#ffc107}.stat-card .status-indicator.unhealthy{color:#dc3545}.stat-number{color:#007bff;font-size:24px;font-weight:700;display:block}.explorer-placeholder,.capabilities-placeholder,.executions-placeholder,.provenance-placeholder,.peer-placeholder,.empty-message,.placeholder-text{text-align:center;color:#999;background:#f9f9f9;border:2px dashed #ddd;border-radius:6px;margin-top:20px;padding:40px}.placeholder-text{border:none;padding:20px}.peer-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;margin-top:20px;display:grid}.peer-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.peer-status{font-size:12px}.peer-status.online{color:#28a745}.peer-name{font-weight:500}.health-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.health-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.health-item.status-healthy{background:#f8f9fa;border-color:#d4edda}.health-item.status-warning{background:#fffbf0;border-color:#fff3cd}.health-item.status-error{background:#fff5f5;border-color:#f8d7da}.status-icon{font-size:16px;font-weight:700}.health-item.status-healthy .status-icon{color:#28a745}.health-item.status-warning .status-icon{color:#ffc107}.health-item.status-error .status-icon{color:#dc3545}.component-name{font-weight:500}.reference-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.search-box{margin-bottom:20px}.reference-details{margin-top:20px}.detail-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.detail-row label{color:#666;font-weight:600}.detail-row span{color:#333}.status-materialized{color:#28a745;font-weight:500}.operations-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.filter-controls{margin-bottom:20px}.operations-table{border-collapse:collapse;width:100%;margin-top:20px}.operations-table th{text-align:left;background:#f5f5f5;border-bottom:2px solid #ddd;padding:10px;font-weight:600}.operations-table td{border-bottom:1px solid #f0f0f0;padding:10px}.conflict-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.conflict-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.summary-stat{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.summary-stat label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.workflow-visualizer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.workflow-controls{margin-bottom:20px}.workflows-list,.workflow-detail{margin-top:20px}.agent-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.agents-grid,.agent-detail{margin-top:20px}.provenance-viewer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.provenance-content{margin-top:20px}.settings-panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.settings-tabs{border-bottom:1px solid #e0e0e0;gap:10px;margin:20px 0;display:flex}.tab{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 15px;font-weight:500;transition:all .2s}.tab.active{color:#007bff;border-bottom-color:#007bff}.settings-content{margin-top:20px}.keys-list,.connection-info{margin:20px 0}.info-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.info-row label{color:#666;font-weight:600}.monospace{font-family:Monaco,Courier New,monospace;font-size:12px}.global-search{position:relative}.search-input.global{margin-bottom:10px}.search-results{z-index:1000;background:#fff;border:1px solid #ddd;border-radius:4px;max-height:400px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 2px 8px #0000001a}.results-group{border-bottom:1px solid #f0f0f0;padding:10px}.results-group h4{color:#666;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:600}.results-group .empty-message{color:#999;background:0 0;border:none;padding:5px 0;font-size:12px}.studio-model-page{color:#19251f;max-width:1280px;margin:0 auto}.studio-model-page>header{margin-bottom:22px}.studio-model-page>header h1{margin:4px 0 6px;font-family:Georgia,serif;font-size:36px}.studio-model-page>header p{color:#68776f;margin:0}.eyebrow,.card-kind{color:#217052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.model-summary{flex-wrap:wrap;gap:10px;margin:0 0 18px;display:flex}.model-summary>span,.model-summary select{color:#426052;background:#f8fbf9;border:1px solid #d6e1da;border-radius:999px;padding:7px 12px;font-size:12px}.studio-card-grid,.state-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.studio-card{background:#fff;border:1px solid #d7e0da;border-radius:12px;padding:18px;box-shadow:0 6px 22px #1937280d}.studio-card h2{margin:6px 0 14px;font-family:Georgia,serif;font-size:22px}.model-empty{color:#75847c;text-align:center;background:#fafcfb;border:1px dashed #cbd8d0;border-radius:10px;grid-column:1/-1;padding:34px}.model-empty.compact{padding:20px 10px}.state-collection>header{justify-content:space-between;align-items:center;display:flex}.studio-data-bridge{opacity:0;pointer-events:none;border:0;width:1px;height:1px;position:absolute}.state-collection>header h2{margin-bottom:8px}.state-collection>header strong{color:#237154;font:30px Georgia,serif}.state-row{text-align:left;color:#26372f;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;grid-template-columns:1fr auto;gap:8px;width:100%;padding:12px 2px;display:grid}.state-row span:first-child{flex-direction:column;gap:3px;display:flex}.state-row small{color:#859189}.state-row pre{color:#dcebe2;background:#13231b;border-radius:8px;grid-column:1/-1;margin:4px 0 0;padding:12px;overflow:auto}.application-context{background:#d7e0da;border:1px solid #d7e0da;border-radius:12px;grid-template-columns:repeat(5,minmax(120px,1fr));gap:1px;margin-bottom:18px;display:grid;overflow:hidden}.application-context>span{background:#fff;flex-direction:column;gap:4px;min-width:0;padding:13px 15px;display:flex}.application-context small{color:#728078;letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:800}.application-context strong,.application-context code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-layout{grid-template-columns:220px minmax(0,1fr);gap:16px;display:grid}.data-layout>aside{flex-direction:column;align-self:start;gap:4px;display:flex}.data-layout>aside .card-kind{margin-bottom:8px}.data-layout>aside button{color:#31483d;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:9px 10px}.data-layout>aside button:hover,.data-layout>aside button.active{color:#176443;background:#e5f3eb;font-weight:700}.data-browser>header{justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px;display:flex}.data-browser h2{margin:4px 0 0;font:28px Georgia,serif}.data-error button,.data-pagination button{background:#fff;border:1px solid #cad7cf;border-radius:7px;min-height:36px;padding:7px 10px}.data-error button{color:#fff;cursor:pointer;background:#1f7152}.data-browser table{border-collapse:collapse}.data-browser th,.data-browser td{overflow-wrap:anywhere;text-align:left;vertical-align:top;border-bottom:1px solid #e5ebe7;max-width:300px;padding:11px 13px}.data-browser th small{color:var(--stack-color-text-muted);margin-top:3px;font-weight:400;display:block}.data-browser tbody tr{cursor:pointer}.data-browser tbody tr:hover{background:#f4faf6}.data-browser details pre,.data-detail pre{white-space:pre-wrap;max-height:220px;overflow:auto}.record-link,.reference-value{color:#176b4b;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:650}.data-null{color:#929e97}.data-boolean{background:#edf1ef;border-radius:999px;padding:2px 6px}.data-boolean.true{color:#176443;background:#dff4e9}.secret-state{color:#6d547c;font-weight:700}.data-pagination{justify-content:flex-end;align-items:center;gap:8px;padding:12px 0;display:flex}.data-pagination span{color:#74817a;margin-right:auto}.data-pagination button:not(:disabled){cursor:pointer}.data-error{color:#793b27;background:#fff1e8;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:11px 13px;display:flex}.data-detail{margin-top:10px}.data-detail>header{justify-content:space-between;display:flex}.data-close{color:#64766c;cursor:pointer;background:0 0;border:0;font-size:26px}.data-detail dl{grid-template-columns:minmax(140px,.3fr) 1fr;gap:0;display:grid}.data-detail dt,.data-detail dd{border-top:1px solid #e8edea;margin:0;padding:10px 5px}.data-detail dt{flex-direction:column;font-weight:700;display:flex}.data-detail dt small{color:#839088;font-size:10px;font-weight:400}.reverse-relationship{background:#f7faf8;border-radius:8px;margin-top:14px;padding:12px}.reverse-relationship h3,.reverse-relationship p{margin:0 0 7px}.reverse-relationship .reference-value{margin-top:7px;display:block}.table-shell{background:#fff;border:1px solid #d7e0da;border-radius:12px;overflow:auto}.table-shell table{width:100%;margin:0}.event-pill{text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-block}.event-pill.put{color:#176443;background:#dff4e9}.event-pill.delete{color:#963e2c;background:#fbe4df}.reference-query{gap:8px;margin-bottom:18px;display:flex}.reference-query input{border:1px solid #cad7cf;border-radius:8px;flex:1;padding:12px 14px;font-family:monospace}.reference-query button{color:#fff;cursor:pointer;background:#1f7152;border:0;border-radius:8px;padding:0 20px;font-weight:700}.reference-layout{grid-template-columns:minmax(220px,.35fr) 1fr;gap:16px;display:grid}.reference-example{cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;justify-content:space-between;width:100%;padding:12px 0;display:flex}.reference-example small{color:#829087}.reference-result pre,.execution-row pre{color:#dcebe2;background:#14231c;border-radius:8px;padding:14px;overflow:auto}.execution-list{gap:10px;margin-bottom:20px;display:grid}.execution-row{background:#fff;border:1px solid #d8e1db;border-radius:10px;grid-template-columns:1fr auto;gap:10px;padding:14px;display:grid}.execution-row>div{flex-direction:column;display:flex}.execution-row small{color:#829087}.execution-row pre{grid-column:1/-1;max-height:180px;margin:0}.execution-empty{margin-top:14px}.provenance-nodes{flex-wrap:wrap;gap:10px;display:flex}.provenance-nodes>div,.provenance-event{border:1px solid #d8e1db;border-radius:8px;flex-direction:column;gap:3px;padding:12px;display:flex}.provenance-nodes small,.provenance-event small{color:#849087}.provenance-event{grid-template-columns:45px 1fr 1fr auto;margin-top:8px;display:grid}.peer-topology{align-items:center;gap:10px;padding:30px 4px;display:flex;overflow:auto}.peer-node{background:#fff;border:1px solid #cad8cf;border-radius:12px;min-width:230px;padding:18px}.peer-node.local{color:#eef7f2;background:#183429}.peer-node span,.peer-node small{opacity:.7;font-size:11px}.peer-node h2{margin:6px 0;font-size:15px}.peer-link{background:#81a893;width:45px;height:2px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.metric-grid article{color:#fff;background:#183429;border-radius:10px;flex-direction:column;padding:18px;display:flex}.metric-grid b{font:32px Georgia,serif}.metric-grid span{opacity:.7;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.health-item{align-items:center;gap:12px;display:flex}.health-item div{flex-direction:column;gap:3px;display:flex}.health-item small{color:#78857e}.health-issue{background:#fff2dc;border-radius:8px;margin:10px 0;padding:12px}.search-result{border-top:1px solid #edf0ee;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 0;display:grid}.search-result span{color:#287254;text-transform:uppercase;font-size:10px}.search-result small{color:#829087;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;overflow:hidden}@media (width<=800px){.reference-layout,.data-layout{grid-template-columns:1fr}.application-context{grid-template-columns:1fr 1fr}.data-browser>header{flex-direction:column;align-items:stretch}.metric-grid{grid-template-columns:1fr}.provenance-event{grid-template-columns:35px 1fr}.provenance-event code,.provenance-event small{grid-column:2}}.ask-feltdb{color:#1d3127;background:linear-gradient(135deg,#f7fbf8,#eef7f2);border:1px solid #cbdad1;border-radius:12px;margin:0 0 18px;padding:18px}.ask-feltdb h2{margin:4px 0;font:26px Georgia,serif}.ask-feltdb p{color:#607268;margin:5px 0 12px}.ask-feltdb textarea{box-sizing:border-box;resize:vertical;background:#fff;border:1px solid #b9cfc2;border-radius:8px;width:100%;min-height:76px;margin:8px 0;padding:12px}.ask-feltdb progress{width:100%}.ai-unavailable,.ai-status,.proposal-boundary{font-size:12px}.proposal-review{border-top:1px solid #cbdad1;margin-top:14px;padding-top:14px}.proposal-review h3{margin:0 0 8px}.proposal-review li{margin:4px 0;font-family:monospace}.proposal-review pre{color:#dcebe2;white-space:pre-wrap;background:#14231c;border-radius:8px;max-height:360px;padding:12px;overflow:auto}.proposal-warning{color:#714c08;background:#fff1d7;border-radius:7px;margin:8px 0;padding:10px}.authorization-approval{color:#77301f;background:#fff5f1;border:2px solid #b65439;border-radius:8px;gap:9px;margin:10px 0;padding:12px;display:flex}.proposal-app-preview{background:#fff;border:1px solid #bfd2c6;border-radius:9px;margin:12px 0;padding:12px}.proposal-app-preview nav{border-bottom:1px solid #e1e9e4;flex-wrap:wrap;gap:6px;padding-bottom:10px;display:flex}.proposal-app-preview nav span{color:#1f6549;background:#e5f3eb;border-radius:999px;padding:4px 8px;font-size:11px}.proposal-app-preview section{border-bottom:1px solid #edf1ee;justify-content:space-between;gap:12px;padding:9px 2px;display:flex}.proposal-app-preview small{color:#718079;text-align:right}.proposal-browser>header{margin-bottom:18px}.proposal-browser>header h1{margin:4px 0;font:36px Georgia,serif}.proposal-browser-layout{grid-template-columns:minmax(280px,.7fr) minmax(360px,1.3fr);gap:16px;display:grid}.proposal-list-row{text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #e4ebe7;justify-content:space-between;gap:12px;width:100%;padding:12px 2px;display:flex}.proposal-list-row span{flex-direction:column;gap:3px;display:flex}.proposal-list-row small{color:#7c8982}.proposal-list-row b{color:#267052;text-transform:uppercase;font-size:10px}.proposal-detail pre{color:#dcebe2;white-space:pre-wrap;background:#14231c;border-radius:8px;padding:12px;overflow:auto}.proposal-actions{gap:8px;margin:14px 0;display:flex}.proposal-preview{background:#fffaf0;border:2px solid #c28c28;border-radius:10px;margin-top:14px;padding:16px}.preview-banner{color:#fff;background:#704d0c;margin:-16px -16px 16px;padding:12px 16px}.record-inspector{text-align:left;background:#f7faf8;border-radius:8px;grid-column:1/-1;padding:14px}.record-inspector dl{grid-template-columns:minmax(110px,.35fr) 1fr;gap:7px 12px;display:grid}.record-inspector dt{color:#607268;font-weight:700}.record-inspector dd{overflow-wrap:anywhere;margin:0}.record-inspector pre{max-height:260px}@media (width<=800px){.proposal-browser-layout{grid-template-columns:1fr}}.proposal-workspace{color:#19251f;max-width:1400px;margin:0 auto}.proposal-workspace>header h1{margin:4px 0;font:36px Georgia,serif}.proposal-workspace>header p{color:#68776f;margin:0 0 18px}.proposal-workspace-layout{grid-template-columns:minmax(300px,.7fr) minmax(500px,1.5fr);gap:16px;display:grid}.proposal-workspace-layout>aside{align-self:start}.proposal-workspace-layout>aside>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.proposal-workspace-layout>aside select{background:#fff;border:1px solid #cad7cf;border-radius:7px;padding:7px}.proposal-list-row.active{background:#e8f4ed;border-radius:7px;width:calc(100% + 16px);margin:0 -8px;padding-left:8px;padding-right:8px}.proposal-detail>header{border-bottom:1px solid #e4ebe7;grid-template-columns:1fr auto;gap:20px;padding-bottom:14px;display:grid}.proposal-detail>header h2{margin:8px 0}.proposal-detail>header dl{grid-template-columns:auto 1fr;gap:5px 10px;margin:0;font-size:12px;display:grid}.proposal-detail>header dt{color:#78867e}.proposal-detail>header dd{text-overflow:ellipsis;white-space:nowrap;max-width:220px;margin:0;overflow:hidden}.proposal-status{color:#355247;letter-spacing:.1em;text-transform:uppercase;background:#e7ece9;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;display:inline-block}.proposal-status.previewed,.proposal-status.approved{color:#176443;background:#dff4e9}.proposal-status.rejected,.proposal-status.expired{color:#963e2c;background:#fbe4df}.semantic-diff{color:#e3eee8;background:#14231c;border-radius:10px;margin:18px 0;padding:16px}.semantic-diff>h3{margin-top:0;font:18px Georgia,serif}.semantic-section{margin:13px 0}.semantic-section h4{color:#76d2a7;letter-spacing:.13em;text-transform:uppercase;margin:0 0 5px;font-size:10px}.semantic-section div{margin:3px 0;font-family:monospace;font-size:12px}.proposal-detail>.semantic-section{border:1px solid #dce5df;border-radius:8px;padding:12px}.ownership-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;display:grid}.ownership-grid span{border:1px solid #dae4de;border-radius:8px;flex-direction:column;padding:10px;display:flex}.ownership-grid small{color:#64776d;text-transform:capitalize;margin-top:4px}.reconciliation-flow{background:#f4f8f5;border-radius:9px;flex-direction:column;align-items:center;max-width:430px;margin:10px 0;padding:14px;display:flex}.reconciliation-flow span{text-align:center;background:#fff;border:1px solid #cbdad1;border-radius:6px;width:100%;padding:7px}.reconciliation-flow i{color:#398261;padding:3px;font-style:normal}.proposal-readiness,.repository-readiness{background:#f5faf7;border:1px solid #cddbd3;border-radius:9px;margin:15px 0;padding:14px}.proposal-readiness.blocked,.repository-readiness.blocked{background:#fff8eb;border-color:#e2c28e}.proposal-readiness h3,.repository-readiness h3{text-transform:uppercase;letter-spacing:.12em;margin-top:0;font-size:12px}.proposal-readiness dl{grid-template-columns:auto 1fr;gap:4px 10px;display:grid}.proposal-readiness dd{text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.proposal-runtime-preview{border:2px solid #b47b1f;border-radius:10px;margin:15px 0;overflow:hidden}.proposal-runtime-preview .preview-banner{margin:0}.preview-comparison{grid-template-columns:1fr auto 1fr;gap:12px;padding:15px;display:grid}.preview-comparison section{flex-direction:column;gap:5px;display:flex}.preview-comparison h4{text-transform:uppercase;margin:0 0 5px}.preview-comparison span{background:#f2f6f3;border-radius:5px;padding:5px 8px}.preview-comparison i{align-self:center;font-style:normal}.proposal-understanding{background:#f4faf6;border:1px solid #bdd5c5;border-radius:10px;margin:18px 0;padding:18px}.proposal-understanding>h3{margin:0}.proposal-understanding>p{color:#66766d}.proposal-understanding article{background:#fff;border:1px solid #d9e4dc;border-radius:8px;margin-top:12px;padding:14px}.proposal-understanding article header{align-items:center;gap:9px;display:flex}.proposal-understanding article header b{color:#177146;margin-left:auto;font-size:18px}.proposal-understanding article header span{color:#456152;text-transform:uppercase;background:#e6f1e9;border-radius:4px;padding:3px 6px;font:10px monospace}.proposal-understanding article>p{margin:8px 0;font-size:18px}.proposal-understanding article>small{color:#68776f;margin-bottom:10px;display:block}.proposal-understanding article>div{color:#3f5549;justify-content:space-between;gap:10px;padding-top:5px;font-size:12px;display:flex}.proposal-understanding article>div code{color:#7a877f}.understanding-unknowns{background:#fff8eb;border-left:3px solid #b47b1f;margin-top:14px;padding:12px}.understanding-unknowns h4{margin:0}.proposal-understanding>footer{color:#6b7971;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:11px;display:flex}.proposal-verification{border:1px solid #cddbd3;border-radius:9px;margin:15px 0;padding:14px}.proposal-verification.converged{border-color:#3a9b72}.proposal-verification.diverged{border-color:#c94b45}.proposal-verification>div{border-top:1px solid #dce5df;grid-template-columns:9rem 1fr;gap:.5rem;padding:.45rem 0;display:grid}.proposal-verification small{color:#68776f;grid-column:2}.proposal-history{padding:0;list-style:none}.proposal-history li{text-transform:capitalize;border-top:1px solid #e5ebe7;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;display:grid}.proposal-history small{color:#829087;grid-column:1/-1}.proposal-boundary{background:#edf8f2;border:1px solid #b9d7c7;border-radius:9px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:15px;padding:14px;display:flex}.proposal-boundary code{background:#fff;padding:7px;display:block}.proposal-boundary p{width:100%;margin:0}.proposal-modal{z-index:30;background:#0b191294;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.proposal-modal>section{background:#fff;border-radius:12px;width:min(520px,100%);max-height:80vh;padding:22px;overflow:auto;box-shadow:0 20px 70px #0000004d}.proposal-modal textarea{box-sizing:border-box;width:100%;min-height:90px}.proposal-modal footer{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.proposal-modal footer button{cursor:pointer;background:#fff;border:1px solid #bfcfc6;border-radius:7px;padding:9px 15px}.proposal-modal footer button:last-child{color:#fff;background:#1f7152}@media (width<=900px){.proposal-workspace-layout,.proposal-detail>header,.preview-comparison{grid-template-columns:1fr}.preview-comparison i{transform:rotate(90deg)}}.cp-page{grid-template-columns:minmax(0,1fr);gap:18px;display:grid}.cp-page code{overflow-wrap:anywhere}.cp-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.cp-stat{background:#fff;border:1px solid #dce4de;border-radius:8px;padding:10px 12px}.cp-stat small{color:var(--stack-color-text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800;display:block}.cp-stat strong{color:#1d2b23;overflow-wrap:anywhere;margin-top:4px;font:600 19px/1.2 Georgia,serif;display:block}.cp-panels{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;display:grid}.cp-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.cp-pill{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.cp-pill-available,.cp-pill-insert,.cp-pill-independent,.cp-pill-added,.cp-pill-running{color:#1f684c;background:#e6f3ec}.cp-pill-partial,.cp-pill-update,.cp-pill-convergent,.cp-pill-changed{color:#8b5a1f;background:#fbf0df}.cp-pill-unsupported,.cp-pill-delete,.cp-pill-conflict,.cp-pill-removed,.cp-pill-failed{color:#9b2c2c;background:#fbe9e9}.cp-unavailable{background:#f7f8f6;border:1px dashed #c6d0c8;border-radius:10px;margin:12px 0;padding:16px 18px}.cp-unavailable h3{color:#33443a;font:600 16px/1.3 Georgia,serif}.cp-unavailable p{color:#5c6a61;max-width:82ch;margin-top:6px}.cp-unavailable-id{color:var(--stack-color-text-muted);margin:6px 0 0;font-size:12px}.cp-notice{color:#8b5a1f;background:#fdf6ea;border:1px solid #eddcbf;border-radius:7px;padding:9px 12px;font-size:12px}.cp-error{color:#9b2c2c;background:#fff0f0;border:1px solid #f1caca;border-radius:7px;align-items:center;gap:10px;padding:9px 12px;font-size:12px;display:flex}.cp-loading,.cp-empty{color:var(--stack-color-text-muted);padding:18px;font-style:italic}.cp-muted{color:var(--stack-color-text-muted);font-size:12px}.cp-attribution{background:#f2f6f3;border-left:3px solid #287052;border-radius:0 7px 7px 0;padding:10px 12px;font-size:13px}.cp-json{color:#22312a;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f9f7;border:1px solid #e0e7e2;border-radius:7px;max-height:380px;padding:12px;font-size:11px;line-height:1.55;overflow:auto}.cp-raw{margin-top:8px}.cp-raw summary{color:var(--stack-color-text-muted);cursor:pointer;font-size:11px}.cp-path,.cp-identity{font-size:11px}.cp-identity{color:#405146}.cp-tabs{margin:6px 0 12px}.cp-tabpanel{padding-top:0}.cp-filter{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.cp-filter input,.cp-filter select{color:#20342a;background:#fff;border:1px solid #cbd8cf;border-radius:6px;padding:7px 9px;font-size:12px}.cp-detail{margin-top:16px}.cp-detail-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.cp-detail-header h2{margin:2px 0 4px;font:600 22px/1.2 Georgia,serif}.cp-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cp-record{grid-template-columns:minmax(140px,220px) 1fr;gap:6px 16px;margin-top:10px;display:grid}.cp-record dt{color:#5c6a61;font-size:12px;font-weight:600}.cp-record dt small{color:#97a19a;font-size:10px;font-weight:500;display:block}.cp-record dd{overflow-wrap:anywhere;font-size:13px}.cp-keys{flex-wrap:wrap;gap:4px;display:flex}.cp-keys code{color:#405146;font-size:10px}.cp-capabilities{flex-wrap:wrap;gap:5px;margin:8px 0;display:flex}.cp-capabilities code{color:#1f684c;background:#eaf3ee;border-radius:5px;padding:2px 7px;font-size:11px}.cp-grant{border-radius:5px;margin:2px 4px 2px 0;padding:2px 8px;font-size:11px;display:inline-block}.cp-grant small{opacity:.8;font-size:9px;display:block}.cp-grant.granted{color:#1f684c;background:#e6f3ec}.cp-grant.denied{color:#8b5a1f;background:#fbf0df}.cp-agent-card{text-align:left;cursor:pointer;width:100%;display:block}.cp-agent-card h3{margin:3px 0 4px;font:600 18px/1.2 Georgia,serif}.cp-connect{gap:12px;margin-top:18px;display:grid}.cp-connect label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cp-connect input[type=text],.cp-connect input:not([type]){color:#20342a;background:#fbfcf9;border:1px solid #cbd8cf;border-radius:6px;padding:8px 10px;font-size:12px}.cp-connect fieldset{border:1px solid #dce4de;border-radius:8px;padding:10px 12px}.cp-connect legend{color:#65736a;letter-spacing:.07em;text-transform:uppercase;padding:0 6px;font-size:9px;font-weight:800}.cp-check{align-items:center;gap:7px;text-transform:none!important;letter-spacing:0!important;flex-direction:row!important;font-size:12px!important;font-weight:500!important;display:flex!important}.cp-connected{color:#1f684c;background:#eaf5ee;border:1px solid #cce5d5;border-radius:7px;padding:10px 12px;font-size:12px}.cp-action-form{gap:10px;margin-top:16px;display:grid}.cp-action-form label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cp-action-form input,.cp-action-form select{color:#20342a;background:#fbfcf9;border:1px solid #cbd8cf;border-radius:6px;padding:8px 10px;font-size:12px}.cp-action-form label small{color:#97a19a;text-transform:none;letter-spacing:0;font-weight:500}.cp-reconcile{gap:14px;display:grid}.cp-parent-choice{background:#f7f9f7;border:1px solid #e0e7e2;border-radius:8px;gap:6px;padding:10px 12px;display:grid}.cp-overrides{gap:8px;display:grid}.cp-overrides label{grid-template-columns:minmax(120px,240px) 1fr;align-items:center;gap:10px;display:grid}.cp-overrides input{border:1px solid #cbd8cf;border-radius:6px;padding:7px 9px;font-size:12px}.cp-committed{border-left:3px solid #287052}.cp-value-old code{color:#9b2c2c}.cp-value-new code{color:#1f684c}.cp-row-conflict{background:#fdf3f3}.cp-note{color:#5c6a61;max-width:52ch;font-size:11px}.data-browser tr.selected{background:#eef5f0}:root{--primary-color:#007bff;--success-color:#28a745;--warning-color:#ffc107;--danger-color:#dc3545;--dark:#1a1a1a;--light:#f5f5f5;--border:#e0e0e0;--text-muted:#999}*{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}#root{width:100%;height:100%}body{background:var(--light);color:#333}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}p{line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#999}*{scrollbar-color:#ccc transparent;scrollbar-width:thin}
1
+ ._panel_1cbba_1{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2rem}._header_1cbba_8{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}._header_1cbba_8 h2{color:var(--text-primary);margin:0;font-size:1.5rem}._createButton_1cbba_23{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._createButton_1cbba_23:hover{background:var(--accent-hover)}._error_1cbba_38{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:4px;margin-bottom:1rem;padding:1rem}._createForm_1cbba_47{background:var(--surface-alt);border:1px solid var(--border);border-radius:4px;margin-bottom:2rem;padding:1.5rem}._formGroup_1cbba_55{margin-bottom:1.5rem}._formGroup_1cbba_55 label{color:var(--text-primary);margin-bottom:.5rem;font-weight:600;display:block}._formGroup_1cbba_55 input[type=text]{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:4px;padding:.5rem;font-family:inherit}._scopeList_1cbba_76{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}._scopeCheckbox_1cbba_82{cursor:pointer;color:var(--text-primary);align-items:center;display:flex}._scopeCheckbox_1cbba_82 input{cursor:pointer;margin-right:.5rem}._submitButton_1cbba_94{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;width:100%;padding:.75rem 1.5rem;font-weight:600}._submitButton_1cbba_94:hover{background:var(--accent-hover)}._empty_1cbba_109{text-align:center;color:var(--text-secondary);background:var(--surface-alt);border-radius:4px;padding:2rem}._keysList_1cbba_117{flex-direction:column;gap:1rem;display:flex}._keyCard_1cbba_123{border:1px solid var(--border);background:var(--surface-alt);border-radius:4px;padding:1.5rem;transition:border-color .2s}._keyCard_1cbba_123:hover{border-color:var(--accent)}._keyHeader_1cbba_135{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;display:flex}._keyHeader_1cbba_135 h3{color:var(--text-primary);margin:0 0 .25rem;font-size:1.1rem}._namespace_1cbba_150{color:var(--text-secondary);margin:0;font-size:.85rem}._status_1cbba_156{border-radius:12px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}._status_1cbba_156._active_1cbba_163{background:var(--success-bg);color:var(--success-text)}._status_1cbba_156._expired_1cbba_168{background:var(--warning-bg);color:var(--warning-text)}._keyDetails_1cbba_173{gap:1rem;margin-bottom:1rem;display:grid}._detail_1cbba_179{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}._detail_1cbba_179 strong{color:var(--text-primary)}._detail_1cbba_179 span,._detail_1cbba_179 code{color:var(--text-secondary)}._detail_1cbba_179 code{background:var(--code-bg);border-radius:3px;padding:.25rem .5rem;font-family:monospace;font-size:.9rem}._copyBtn_1cbba_203{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:.25rem .5rem;font-size:.85rem}._copyBtn_1cbba_203:hover{background:var(--accent-hover)}._daysLeft_1cbba_217{color:var(--warning-text);font-size:.85rem;font-weight:600}._scopes_1cbba_223{margin-top:.75rem}._scopeTags_1cbba_227{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}._scopeTag_1cbba_227{background:var(--tag-bg);color:var(--tag-text);border-radius:12px;padding:.25rem .75rem;font-family:monospace;font-size:.85rem}._keyActions_1cbba_243{border-top:1px solid var(--border);gap:.5rem;padding-top:1rem;display:flex}._revokeBtn_1cbba_250{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);cursor:pointer;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._revokeBtn_1cbba_250:hover{background:var(--error-hover-bg)}._info_1cbba_265{background:var(--info-bg);color:var(--text-secondary);border-radius:4px;margin-top:2rem;padding:1rem;font-size:.9rem}._info_1cbba_265 p{margin:0}:root{--surface:#fff;--surface-alt:#f5f5f5;--text-primary:#000;--text-secondary:#666;--border:#e0e0e0;--accent:#007bff;--accent-hover:#0056b3;--error-bg:#f8d7da;--error-border:#f5c6cb;--error-text:#721c24;--error-hover-bg:#f5c6cb;--success-bg:#d4edda;--success-text:#155724;--warning-bg:#fff3cd;--warning-text:#856404;--info-bg:#e2e3e5;--input-bg:#fff;--code-bg:#f4f4f4;--tag-bg:#e9ecef;--tag-text:#495057}@media (prefers-color-scheme:dark){:root{--surface:#1e1e1e;--surface-alt:#2d2d2d;--text-primary:#fff;--text-secondary:#b0b0b0;--border:#404040;--accent:#0d6efd;--accent-hover:#0a58ca;--error-bg:#3d1f1f;--error-border:#664141;--error-text:#f8b7bc;--error-hover-bg:#4a2828;--success-bg:#1f3f1f;--success-text:#7ddc7d;--warning-bg:#3f3f1f;--warning-text:#ffdd57;--info-bg:#2d2d3d;--input-bg:#2d2d2d;--code-bg:#2d2d2d;--tag-bg:#3d3d4d;--tag-text:#b0b0b0}}:root{--stack-font-family-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--stack-font-family-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--stack-text-xs-size:.75rem;--stack-text-xs-line:1rem;--stack-text-sm-size:.8125rem;--stack-text-sm-line:1.25rem;--stack-text-md-size:.875rem;--stack-text-md-line:1.375rem;--stack-text-lg-size:1rem;--stack-text-lg-line:1.5rem;--stack-text-xl-size:1.25rem;--stack-text-xl-line:1.75rem;--stack-text-2xl-size:1.5rem;--stack-text-2xl-line:2rem;--stack-font-weight-regular:400;--stack-font-weight-medium:500;--stack-font-weight-semibold:600;--stack-space-0:0;--stack-space-1:4px;--stack-space-2:8px;--stack-space-3:12px;--stack-space-4:16px;--stack-space-5:20px;--stack-space-6:24px;--stack-space-8:32px;--stack-space-10:40px;--stack-space-12:48px;--stack-size-control-sm:32px;--stack-size-control-md:36px;--stack-size-control-lg:44px;--stack-size-icon-sm:14px;--stack-size-icon-md:16px;--stack-radius-sm:4px;--stack-radius-md:6px;--stack-radius-lg:10px;--stack-radius-pill:999px;--stack-border-width-thin:1px;--stack-border-width-thick:2px;--stack-focus-ring-width:2px;--stack-focus-ring-offset:2px;--stack-z-sticky:10;--stack-z-dropdown:20;--stack-z-overlay:30;--stack-z-toast:40;--stack-motion-duration-fast:.12s;--stack-motion-duration-base:.2s;--stack-motion-ease-standard:cubic-bezier(.2, 0, 0, 1);--stack-color-bg-canvas:#f6f7f9;--stack-color-bg-surface:#fff;--stack-color-bg-raised:#fff;--stack-color-bg-sunken:#eef0f3;--stack-color-bg-overlay:#0f12187a;--stack-color-bg-code:#f0f2f5;--stack-color-text-default:#16181d;--stack-color-text-muted:#4b5260;--stack-color-text-subtle:#5f6673;--stack-color-text-inverse:#fff;--stack-color-text-link:#2a52c9;--stack-color-text-on-accent:#fff;--stack-color-border-default:#d9dde3;--stack-color-border-strong:#7c8492;--stack-color-border-subtle:#e8ebef;--stack-focus-ring-color:#2f5bd8;--stack-color-action-primary-bg:#2f5bd8;--stack-color-action-primary-fg:#fff;--stack-color-action-primary-bg-hover:#2549c4;--stack-color-action-primary-bg-active:#1e3da6;--stack-color-action-secondary-bg:#fff;--stack-color-action-secondary-fg:#16181d;--stack-color-action-secondary-bg-hover:#eef0f3;--stack-color-action-secondary-bg-active:#e2e5ea;--stack-color-action-danger-bg:#c42b2b;--stack-color-action-danger-fg:#fff;--stack-color-action-danger-bg-hover:#a82323;--stack-color-action-danger-bg-active:#8c1d1d;--stack-color-status-positive-fg:#136b3a;--stack-color-status-positive-bg:#e8f5ee;--stack-color-status-positive-border:#9fd3b4;--stack-color-status-positive-glyph:#1a7f45;--stack-color-status-progress-fg:#1f4fb8;--stack-color-status-progress-bg:#eaf0fd;--stack-color-status-progress-border:#b9cbf3;--stack-color-status-progress-glyph:#2f5bd8;--stack-color-status-attention-fg:#734700;--stack-color-status-attention-bg:#fdf3e1;--stack-color-status-attention-border:#ecc77f;--stack-color-status-attention-glyph:#a26400;--stack-color-status-critical-fg:#a32020;--stack-color-status-critical-bg:#fdecec;--stack-color-status-critical-border:#f0b0b0;--stack-color-status-critical-glyph:#c42b2b;--stack-color-status-neutral-fg:#4b5260;--stack-color-status-neutral-bg:#eef0f3;--stack-color-status-neutral-border:#cdd2d9;--stack-color-status-neutral-glyph:#6b7280;--stack-color-status-unknown-fg:#55468a;--stack-color-status-unknown-bg:#f1eef8;--stack-color-status-unknown-border:#cdc4e8;--stack-color-status-unknown-glyph:#7262ad;--stack-color-evidence-verified-fg:#0d5c4a;--stack-color-evidence-verified-bg:#e4f4ef;--stack-color-evidence-verified-border:#93d1c0;--stack-color-evidence-verified-glyph:#11806a;--stack-color-evidence-unverified-fg:#4b5260;--stack-color-evidence-unverified-bg:#eef0f3;--stack-color-evidence-unverified-border:#cdd2d9;--stack-color-evidence-unverified-glyph:#6b7280;--stack-color-notice-info-fg:#1f4fb8;--stack-color-notice-info-bg:#eaf0fd;--stack-color-notice-info-border:#b9cbf3;--stack-shadow-raised:0 1px 2px #1018280f;--stack-shadow-overlay:0 12px 32px #1018282e}@media (prefers-reduced-motion:reduce){:root{--stack-motion-duration-fast:0s;--stack-motion-duration-base:0s}}.stack-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack-status{align-items:baseline;gap:var(--stack-space-1);font:inherit;color:inherit;white-space:nowrap;display:inline-flex}.stack-status__glyph{font-size:.85em;line-height:1}.stack-status__detail{color:var(--stack-color-text-muted)}.stack-status__detail:before{content:"· "}.stack-status--positive .stack-status__glyph{color:var(--stack-color-status-positive-glyph)}.stack-status--progress .stack-status__glyph{color:var(--stack-color-status-progress-glyph)}.stack-status--attention .stack-status__glyph{color:var(--stack-color-status-attention-glyph)}.stack-status--critical .stack-status__glyph{color:var(--stack-color-status-critical-glyph)}.stack-status--neutral .stack-status__glyph{color:var(--stack-color-status-neutral-glyph)}.stack-status--unknown .stack-status__glyph{color:var(--stack-color-status-unknown-glyph)}.stack-verification{align-items:baseline;gap:var(--stack-space-1);padding:var(--stack-space-1) var(--stack-space-2);border:var(--stack-border-width-thin) solid var(--stack-color-evidence-unverified-border);border-radius:var(--stack-radius-md);background:var(--stack-color-evidence-unverified-bg);color:var(--stack-color-evidence-unverified-fg);font-size:var(--stack-text-sm-size);line-height:var(--stack-text-sm-line);flex-wrap:wrap;display:inline-flex}.stack-verification--verified{border-color:var(--stack-color-evidence-verified-border);background:var(--stack-color-evidence-verified-bg);color:var(--stack-color-evidence-verified-fg)}.stack-verification--verification_failed{border-color:var(--stack-color-status-critical-border);background:var(--stack-color-status-critical-bg);color:var(--stack-color-status-critical-fg)}.stack-verification__label{font-weight:var(--stack-font-weight-medium)}.stack-verification__evidence{color:inherit;text-decoration:underline}.stack-verification__checks{margin:var(--stack-space-1) 0 0;padding-left:var(--stack-space-5);flex-basis:100%}.stack-freshness{align-items:baseline;gap:var(--stack-space-1);color:var(--stack-color-text-muted);font-size:var(--stack-text-sm-size);line-height:var(--stack-text-sm-line);display:inline-flex}.stack-freshness__glyph{font-size:.85em}.stack-freshness--live .stack-freshness__glyph{color:var(--stack-color-status-positive-glyph)}.stack-freshness--cached .stack-freshness__glyph{color:var(--stack-color-status-neutral-glyph)}.stack-freshness--stale{color:var(--stack-color-status-attention-fg)}.stack-freshness--stale .stack-freshness__glyph{color:var(--stack-color-status-attention-glyph)}.stack-freshness--unknown .stack-freshness__glyph{color:var(--stack-color-status-unknown-glyph)}.stack-unavailable,.stack-error,.stack-empty,.stack-loading{border-radius:var(--stack-radius-lg);padding:var(--stack-space-3) var(--stack-space-4);font-size:var(--stack-text-md-size);line-height:var(--stack-text-md-line)}.stack-unavailable{border:var(--stack-border-width-thin) dashed var(--stack-color-border-strong);background:var(--stack-color-bg-sunken);color:var(--stack-color-text-muted)}.stack-unavailable__title{color:var(--stack-color-text-default);font-size:var(--stack-text-md-size);line-height:var(--stack-text-md-line);font-weight:var(--stack-font-weight-semibold);margin:0}.stack-unavailable__reason{margin:var(--stack-space-1) 0 0}.stack-error{border:var(--stack-border-width-thin) solid var(--stack-color-status-critical-border);background:var(--stack-color-status-critical-bg);color:var(--stack-color-status-critical-fg)}.stack-error__title{font-weight:var(--stack-font-weight-semibold);margin:0}.stack-error__message,.stack-error__meta{margin:var(--stack-space-1) 0 0}.stack-error__meta code{font-family:var(--stack-font-family-mono);font-size:.92em}.stack-error__actions{gap:var(--stack-space-2);margin-top:var(--stack-space-3);display:flex}.stack-empty{border:var(--stack-border-width-thin) dashed var(--stack-color-border-default);color:var(--stack-color-text-muted);text-align:center;padding:var(--stack-space-6) var(--stack-space-4)}.stack-empty__title{color:var(--stack-color-text-default);font-size:var(--stack-text-lg-size);line-height:var(--stack-text-lg-line);font-weight:var(--stack-font-weight-semibold);margin:0}.stack-empty__body{margin:var(--stack-space-1) 0 0}.stack-empty__action{margin-top:var(--stack-space-3)}.stack-loading{align-items:center;gap:var(--stack-space-2);color:var(--stack-color-text-muted);padding-left:0;display:flex}.stack-loading__indicator{width:var(--stack-size-icon-sm);height:var(--stack-size-icon-sm);border:var(--stack-border-width-thick) solid var(--stack-color-border-default);border-top-color:var(--stack-color-status-progress-glyph);animation:stack-spin calc(var(--stack-motion-duration-base) * 4) linear infinite;border-radius:50%}@keyframes stack-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.stack-loading__indicator,.stack-button__busy{animation:none}}.stack-meta{gap:var(--stack-space-2);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin:0;display:grid}.stack-meta__item{min-width:0;padding:var(--stack-space-3);border:var(--stack-border-width-thin) solid var(--stack-color-border-default);border-radius:var(--stack-radius-lg);background:var(--stack-color-bg-surface)}.stack-meta__label{color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);line-height:var(--stack-text-xs-line);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--stack-font-weight-medium)}.stack-meta__value{margin:var(--stack-space-1) 0 0;color:var(--stack-color-text-default);font-size:var(--stack-text-md-size);line-height:var(--stack-text-md-line);overflow-wrap:anywhere}.stack-meta__value--mono{font-family:var(--stack-font-family-mono);font-size:var(--stack-text-sm-size)}.stack-meta__hint{margin:var(--stack-space-1) 0 0;color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size)}.stack-identity{align-items:baseline;gap:var(--stack-space-2);min-width:0;display:inline-flex}.stack-identity__kind{color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);text-transform:uppercase;letter-spacing:.04em}.stack-identity__name{font-weight:var(--stack-font-weight-semibold);color:inherit}a.stack-identity__name{color:var(--stack-color-text-link)}.stack-identity__id{font-family:var(--stack-font-family-mono);font-size:var(--stack-text-sm-size);padding:0 var(--stack-space-1);border-radius:var(--stack-radius-sm);background:var(--stack-color-bg-code);color:var(--stack-color-text-default)}.stack-page-header{margin:0 0 var(--stack-space-4)}.stack-page-header__eyebrow{color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--stack-font-weight-semibold);margin:0}.stack-page-header__title-row{align-items:center;gap:var(--stack-space-3);flex-wrap:wrap;display:flex}.stack-page-header__title{margin:var(--stack-space-1) 0 0;color:var(--stack-color-text-default);font-size:var(--stack-text-2xl-size);line-height:var(--stack-text-2xl-line);font-weight:var(--stack-font-weight-semibold)}.stack-page-header__actions{gap:var(--stack-space-2);margin-left:auto;display:flex}.stack-page-header__description{margin:var(--stack-space-1) 0 0;color:var(--stack-color-text-muted);max-width:72ch}.stack-page-header__meta{margin-top:var(--stack-space-2)}.stack-button{justify-content:center;align-items:center;gap:var(--stack-space-2);min-height:var(--stack-size-control-md);padding:0 var(--stack-space-3);border:var(--stack-border-width-thin) solid var(--stack-color-border-default);border-radius:var(--stack-radius-md);background:var(--stack-color-action-secondary-bg);color:var(--stack-color-action-secondary-fg);font:inherit;font-size:var(--stack-text-md-size);font-weight:var(--stack-font-weight-medium);cursor:pointer;transition:background-color var(--stack-motion-duration-fast) var(--stack-motion-ease-standard);display:inline-flex}.stack-button:hover:not(:disabled){background:var(--stack-color-action-secondary-bg-hover)}.stack-button:active:not(:disabled){background:var(--stack-color-action-secondary-bg-active)}.stack-button--primary{background:var(--stack-color-action-primary-bg);color:var(--stack-color-action-primary-fg);border-color:#0000}.stack-button--primary:hover:not(:disabled){background:var(--stack-color-action-primary-bg-hover)}.stack-button--primary:active:not(:disabled){background:var(--stack-color-action-primary-bg-active)}.stack-button--danger{background:var(--stack-color-action-danger-bg);color:var(--stack-color-action-danger-fg);border-color:#0000}.stack-button--danger:hover:not(:disabled){background:var(--stack-color-action-danger-bg-hover)}.stack-button--danger:active:not(:disabled){background:var(--stack-color-action-danger-bg-active)}.stack-button--ghost{background:0 0;border-color:#0000}.stack-button--sm{min-height:var(--stack-size-control-sm);padding:0 var(--stack-space-2);font-size:var(--stack-text-sm-size)}.stack-button--lg{min-height:var(--stack-size-control-lg);padding:0 var(--stack-space-4)}.stack-button:disabled{opacity:.55;cursor:not-allowed}.stack-button[aria-busy=true]{opacity:.8;cursor:progress}.stack-button__busy{width:var(--stack-size-icon-sm);height:var(--stack-size-icon-sm);border:var(--stack-border-width-thick) solid currentColor;animation:stack-spin calc(var(--stack-motion-duration-base) * 4) linear infinite;border-right-color:#0000;border-radius:50%}.stack-button:focus-visible,.stack-identity__name:focus-visible,.stack-verification__evidence:focus-visible{outline:var(--stack-focus-ring-width) solid var(--stack-focus-ring-color);outline-offset:var(--stack-focus-ring-offset)}.stack-breadcrumbs{font-size:var(--stack-text-sm-size);line-height:var(--stack-text-sm-line);color:var(--stack-color-text-muted)}.stack-breadcrumbs__list{align-items:baseline;gap:var(--stack-space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.stack-breadcrumbs__item{align-items:baseline;gap:var(--stack-space-1);min-width:0;display:inline-flex}.stack-breadcrumbs__separator{color:var(--stack-color-text-subtle)}.stack-breadcrumbs__link{color:var(--stack-color-text-link);text-decoration:none}.stack-breadcrumbs__link:hover{text-decoration:underline}.stack-breadcrumbs__current{color:var(--stack-color-text-default);font-weight:var(--stack-font-weight-medium);overflow-wrap:anywhere}.stack-tabs{gap:var(--stack-space-1);border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-default);display:flex;overflow-x:auto}.stack-tabs__tab{align-items:center;gap:var(--stack-space-2);min-height:var(--stack-size-control-md);padding:0 var(--stack-space-3);border:0;border-bottom:var(--stack-border-width-thick) solid transparent;color:var(--stack-color-text-muted);font:inherit;font-size:var(--stack-text-md-size);font-weight:var(--stack-font-weight-medium);white-space:nowrap;cursor:pointer;background:0 0;margin-bottom:-1px;display:inline-flex}.stack-tabs__tab:hover:not(:disabled){color:var(--stack-color-text-default)}.stack-tabs__tab[aria-selected=true]{color:var(--stack-color-text-default);border-bottom-color:var(--stack-color-action-primary-bg)}.stack-tabs__tab:disabled{opacity:.55;cursor:not-allowed}.stack-tabs__badge{padding:0 var(--stack-space-2);border-radius:var(--stack-radius-pill);background:var(--stack-color-bg-sunken);color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size)}.stack-tabpanel{padding-top:var(--stack-space-4)}.stack-table{border:var(--stack-border-width-thin) solid var(--stack-color-border-default);border-radius:var(--stack-radius-lg);background:var(--stack-color-bg-surface);overflow-x:auto}.stack-table[aria-busy=true]{box-shadow:inset 0 var(--stack-border-width-thick) 0 var(--stack-color-status-progress-glyph)}.stack-table__table{border-collapse:collapse;width:100%;font-size:var(--stack-text-md-size);line-height:var(--stack-text-md-line)}.stack-table__caption{padding:var(--stack-space-3) var(--stack-space-4);text-align:left;color:var(--stack-color-text-default);font-weight:var(--stack-font-weight-semibold)}.stack-table__header{padding:var(--stack-space-2) var(--stack-space-4);text-align:left;white-space:nowrap;border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-default);background:var(--stack-color-bg-sunken);color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);font-weight:var(--stack-font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.stack-table__sort{align-items:center;gap:var(--stack-space-1);color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.stack-table__sort-indicator{color:var(--stack-color-text-subtle)}.stack-table__cell{padding:var(--stack-space-2) var(--stack-space-4);vertical-align:top;border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-subtle);color:var(--stack-color-text-default)}.stack-table__row:last-child .stack-table__cell{border-bottom:0}.stack-table__cell--end{text-align:right}.stack-table__cell[data-missing=true]{color:var(--stack-color-text-subtle)}.stack-table__row--selectable{cursor:pointer}.stack-table__row--selectable:hover{background:var(--stack-color-bg-sunken)}.stack-table__row--selected{background:var(--stack-color-status-progress-bg)}.stack-filter{margin:0 0 var(--stack-space-3)}.stack-filter__controls{align-items:flex-end;gap:var(--stack-space-3);flex-wrap:wrap;display:flex}.stack-filter__field{gap:var(--stack-space-1);flex-direction:column;min-width:0;display:flex}.stack-filter__label{color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);font-weight:var(--stack-font-weight-semibold)}.stack-filter__control{min-height:var(--stack-size-control-md);max-width:100%;padding:0 var(--stack-space-2);border:var(--stack-border-width-thin) solid var(--stack-color-border-strong);border-radius:var(--stack-radius-md);background:var(--stack-color-bg-surface);color:var(--stack-color-text-default);font:inherit;font-size:var(--stack-text-md-size)}.stack-filter__actions{gap:var(--stack-space-2);display:flex}.stack-filter__result{margin:var(--stack-space-2) 0 0;min-height:var(--stack-text-sm-line);color:var(--stack-color-text-muted);font-size:var(--stack-text-sm-size)}.stack-pagination{justify-content:space-between;align-items:center;gap:var(--stack-space-3);margin-top:var(--stack-space-3);flex-wrap:wrap;display:flex}.stack-pagination__summary{color:var(--stack-color-text-muted);font-size:var(--stack-text-sm-size);margin:0}.stack-pagination__actions{gap:var(--stack-space-2);margin-left:auto;display:flex}.stack-shell{background:var(--stack-color-bg-canvas);min-height:100vh;color:var(--stack-color-text-default);font-family:var(--stack-font-family-sans);flex-direction:column;display:flex}.stack-shell__skip{left:var(--stack-space-2);z-index:var(--stack-z-toast);padding:var(--stack-space-2) var(--stack-space-3);border-radius:var(--stack-radius-md);background:var(--stack-color-action-primary-bg);color:var(--stack-color-action-primary-fg);position:absolute;top:-100px}.stack-shell__skip:focus{top:var(--stack-space-2)}.stack-shell__bar{align-items:center;gap:var(--stack-space-3);min-height:52px;padding:var(--stack-space-2) var(--stack-space-4);border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-default);background:var(--stack-color-bg-surface);flex-wrap:wrap;display:flex}.stack-shell__product{align-items:center;gap:var(--stack-space-2);color:var(--stack-color-text-default);font-weight:var(--stack-font-weight-semibold);letter-spacing:.02em;text-decoration:none;display:inline-flex}.stack-shell__mark{border-radius:var(--stack-radius-md);background:var(--stack-color-action-primary-bg);width:24px;height:24px;color:var(--stack-color-action-primary-fg);font-size:var(--stack-text-xs-size);place-items:center;display:inline-grid}.stack-shell__context,.stack-shell__search{align-items:center;min-width:0;display:flex}.stack-shell__search{flex:200px;max-width:420px}.stack-shell__end{align-items:center;gap:var(--stack-space-3);flex-wrap:wrap;min-width:0;margin-left:auto;display:flex}.stack-shell__theme{min-height:var(--stack-size-control-sm);padding:0 var(--stack-space-2);border:var(--stack-border-width-thin) solid var(--stack-color-border-strong);border-radius:var(--stack-radius-md);background:var(--stack-color-bg-surface);color:var(--stack-color-text-default);font:inherit;font-size:var(--stack-text-sm-size)}.stack-shell__account{align-items:center;gap:var(--stack-space-2);min-width:0;display:flex}.stack-shell__body{flex:1;grid-template-columns:220px minmax(0,1fr);min-height:0;display:grid}.stack-shell__nav{padding:var(--stack-space-4) var(--stack-space-3);border-right:var(--stack-border-width-thin) solid var(--stack-color-border-default);background:var(--stack-color-bg-surface);overflow-y:auto}.stack-shell__nav-group+.stack-shell__nav-group{margin-top:var(--stack-space-4)}.stack-shell__nav-heading{margin:0 0 var(--stack-space-1);padding:0 var(--stack-space-2);color:var(--stack-color-text-muted);font-size:var(--stack-text-xs-size);font-weight:var(--stack-font-weight-semibold);letter-spacing:.06em;text-transform:uppercase}.stack-shell__nav-list{margin:0;padding:0;list-style:none}.stack-shell__nav-item{padding:var(--stack-space-2);border-radius:var(--stack-radius-md);color:var(--stack-color-text-default);font-size:var(--stack-text-md-size);text-decoration:none;display:block}.stack-shell__nav-item:hover{background:var(--stack-color-bg-sunken)}.stack-shell__nav-item[aria-current=page]{background:var(--stack-color-status-progress-bg);color:var(--stack-color-status-progress-fg);font-weight:var(--stack-font-weight-semibold)}.stack-shell__main{box-sizing:border-box;width:100%;min-width:0;padding:var(--stack-space-6)}.stack-shell__main:focus{outline:none}@media (width<=767px){.stack-shell__body{grid-template-columns:minmax(0,1fr)}.stack-shell__nav{gap:var(--stack-space-3);padding:var(--stack-space-2) var(--stack-space-3);border-right:0;border-bottom:var(--stack-border-width-thin) solid var(--stack-color-border-default);display:flex;overflow-x:auto}.stack-shell__nav-group+.stack-shell__nav-group{margin-top:0}.stack-shell__nav-heading{display:none}.stack-shell__nav-list{gap:var(--stack-space-1);display:flex}.stack-shell__nav-item{white-space:nowrap}.stack-shell__main{padding:var(--stack-space-4)}}.stack-tabs__tab:focus-visible,.stack-table__sort:focus-visible,.stack-table:focus-visible,.stack-table__row--selectable:focus-visible,.stack-filter__control:focus-visible,.stack-shell__theme:focus-visible,.stack-shell__nav-item:focus-visible,.stack-shell__product:focus-visible,.stack-breadcrumbs__link:focus-visible,.stack-shell__skip:focus-visible,.stack-tabpanel:focus-visible{outline:var(--stack-focus-ring-width) solid var(--stack-focus-ring-color);outline-offset:var(--stack-focus-ring-offset)}.application-designer{--ink:#17211b;--muted:#68756d;--line:#dce4de;--paper:#fbfcf9;min-height:100%;color:var(--ink)}.designer-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 4px 22px;display:flex}.designer-header h1{letter-spacing:-.03em;font-family:Georgia,serif;font-size:34px}.designer-header p{color:var(--muted);margin-top:5px}.eyebrow{color:#287052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.designer-actions{flex-wrap:wrap;gap:8px;display:flex}.btn-ghost{color:#33443a;border:1px solid var(--line);background:#fff}.designer-actions .btn-primary{background:#1f684c}.cloud-publisher{background:#fff;border:1px solid #cbdad0;border-radius:10px;gap:14px;margin-bottom:12px;padding:18px;display:grid;box-shadow:0 10px 28px #26372d1a}.cloud-publisher-heading{justify-content:space-between;gap:18px;display:flex}.cloud-publisher-heading h2{margin-top:3px;font:600 20px/1.2 Georgia,serif}.cloud-publisher-heading p{color:var(--muted);margin-top:4px;font-size:12px}.cloud-publisher-heading>button{color:#718078;cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:22px}.cloud-fields{grid-template-columns:1.4fr .7fr 1fr;gap:10px;display:grid}.cloud-fields label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cloud-fields input{color:#20342a;background:#f9fbf9;border:1px solid #cbd8cf;border-radius:6px;outline:0;width:100%;padding:9px 10px;font-size:12px}.cloud-fields input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.cloud-destructive{color:#8b4d22;align-items:center;gap:7px;font-size:11px;display:flex}.cloud-destructive input{accent-color:#a55d2b}.local-destructive{color:#8b4d22;background:#fff7ed;border:1px solid #f0d7bb;border-radius:7px;align-items:center;gap:7px;margin-bottom:12px;padding:9px 12px;font-size:11px;display:flex}.local-destructive input{accent-color:#a55d2b}.cloud-error{color:#9b2c2c;background:#fff0f0;border:1px solid #f1caca;border-radius:6px;padding:8px 10px;font-size:11px}.cloud-actions{justify-content:flex-end;gap:8px;display:flex}.cloud-actions .btn:disabled{cursor:wait;opacity:.65}.designer-status{color:#286046;background:#eaf5ee;border:1px solid #cce5d5;border-radius:8px;justify-content:space-between;margin-bottom:12px;padding:9px 13px;font-size:12px;display:flex}.designer-status.error{color:#9b2c2c;background:#fff0f0;border-color:#f1caca}.designer-grid{background:var(--paper);border:1px solid var(--line);border-radius:12px;grid-template-columns:190px minmax(420px,1fr) minmax(340px,.8fr);height:calc(100vh - 150px);min-height:620px;display:grid;overflow:hidden;box-shadow:0 12px 40px #26372d14}.model-tree,.model-canvas,.dsl-panel{min-width:0}.model-tree{border-right:1px solid var(--line);background:#f2f5f0;padding:14px;overflow:auto}.panel-title{color:#34463b;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:38px;font-size:12px;font-weight:800;display:flex}.panel-title button{color:#286046;cursor:pointer;background:#dce9df;border:0;border-radius:6px;width:25px;height:25px}.model-tree section{margin-top:16px}.model-tree section h3{color:var(--stack-color-text-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 7px 6px;font-size:10px}.tree-item,.tree-empty{border-radius:6px;padding:6px 8px;font-size:12px}.tree-item{color:#27372e;background:#ffffffb3;margin-bottom:3px}.tree-empty{color:#9aa39d;font-style:italic}.collection-editor{background:#fff;border:1px solid #d3ded6;border-radius:7px;gap:7px;margin-top:10px;padding:9px;display:grid}.collection-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:800;display:grid}.collection-editor input{color:#20342a;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font-size:11px}.collection-editor input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.collection-editor>div:last-child{justify-content:flex-end;gap:4px;display:flex}.collection-editor button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 7px;font-size:10px}.collection-editor .collection-save{color:#fff;background:#287052}.model-canvas{background-color:#f8faf6;background-image:radial-gradient(#d8e0da 1px,#0000 1px);background-size:18px 18px;flex-direction:column;padding:14px;display:flex;overflow:hidden}.graph-legend{color:#859189;text-transform:none;letter-spacing:0;font-weight:500}.graph-board{flex:1;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:16px;padding:22px 8px;display:grid;overflow:auto}.model-node{background:#fff;border:1px solid #cfdbd2;border-top:3px solid #327258;border-radius:9px;padding:14px;position:relative;box-shadow:0 5px 14px #273d3014}.model-node.workflow-node{border-top-color:#9b6a2f}.model-node.agent-node{border-top-color:#70539b}.node-kind{color:#849087;letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:800}.model-node h3{margin:3px 0 10px;font-family:Georgia,serif;font-size:18px}.node-field,.node-step{border-top:1px solid #eef1ee;justify-content:space-between;gap:8px;padding:5px 0;font-size:11px;display:flex}.node-field code{color:#527060;font-size:10px}.node-step{color:#59675f;display:block}.node-add{color:#357257;cursor:pointer;background:#f0f7f2;border:1px dashed #b9d2c1;border-radius:5px;margin-top:9px;padding:4px 7px;font-size:10px}.field-editor{background:#f5f8f5;border:1px solid #d7e2da;border-radius:7px;gap:9px;margin-top:10px;padding:11px;display:grid}.field-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:700;display:grid}.field-editor input[type=text],.field-editor input:not([type]),.field-editor select{color:#20342a;background:#fff;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font:11px/1.2 inherit}.field-editor input:focus,.field-editor select:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.field-editor-row{grid-template-columns:1fr 1fr;gap:7px;display:grid}.field-editor .field-optional{color:#43564a;letter-spacing:0;text-transform:none;align-items:center;gap:6px;font-size:10px;font-weight:500;display:flex}.field-optional input{accent-color:#287052}.field-error{color:#a13d3d;font-size:10px}.field-editor-actions{justify-content:flex-end;gap:6px;display:flex}.field-editor-actions button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 8px;font-size:10px}.field-editor-actions .field-save{color:#fff;background:#287052}.change-strip{border-top:1px solid var(--line);white-space:nowrap;background:#ffffffeb;align-items:center;gap:12px;min-height:42px;padding:7px 10px;font-size:10px;display:flex;overflow:auto}.change-strip .added{color:#24714f}.change-strip .changed{color:#94611e}.change-strip .removed{color:#a13d3d}.dsl-panel{color:#d9e4dc;background:#17211b;border-left:1px solid #0c1510;flex-direction:column;padding:14px;display:flex}.dsl-panel .panel-title{color:#aebdb3;border-color:#344139}.dsl-panel .panel-title span:last-child{color:#6f8276;text-transform:none;font-weight:500}.dsl-panel textarea{resize:none;color:#d9e4dc;tab-size:2;background:0 0;border:0;outline:0;flex:1;width:100%;padding:15px 2px;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.diagnostics{border-top:1px solid #344139;max-height:120px;padding-top:8px;font:10px/1.5 ui-monospace,monospace;overflow:auto}.diagnostics .error{color:#ff9f9f}.diagnostics .warning{color:#f3d18a}@media (width<=1100px){.designer-grid{grid-template-columns:160px 1fr;height:auto}.dsl-panel{grid-column:1/-1;height:480px}.designer-header{flex-direction:column;align-items:flex-start}.cloud-fields{grid-template-columns:1fr}}.studio-content{min-width:0}.instance-info{border:1px solid var(--stack-color-border-default);color:var(--stack-color-text-muted);border-radius:999px;padding:2px 10px;font-size:12px}.runtime-notice{color:#65551d;background:#fff9df;border:1px solid #d8c98d;border-radius:8px;max-width:1280px;margin:0 auto 20px;padding:12px 16px;font-size:13px;line-height:1.45}.search-input{border:1px solid #ddd;border-radius:4px;width:100%;padding:10px;font-size:14px}.filter-select{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:14px}.btn{cursor:pointer;border:none;border-radius:4px;padding:10px 15px;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{color:#fff;background:#0062cc}.btn-primary:hover{background:#0056b3}.overview-dashboard{background:#fff;border-radius:8px;padding:30px;box-shadow:0 1px 3px #0000001a}.dashboard-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;display:flex}.dashboard-header h1{margin:0;font-size:28px}.namespace-badge{color:#fff;background:#007bff;border-radius:20px;padding:5px 15px;font-size:12px;font-weight:600}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;display:grid}.stat-card{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.stat-card label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.stat-card .status-indicator{margin-right:5px;font-size:20px}.stat-card .status-indicator.healthy{color:#28a745}.stat-card .status-indicator.degraded{color:#ffc107}.stat-card .status-indicator.unhealthy{color:#dc3545}.stat-number{color:#007bff;font-size:24px;font-weight:700;display:block}.explorer-placeholder,.capabilities-placeholder,.executions-placeholder,.provenance-placeholder,.peer-placeholder,.empty-message,.placeholder-text{text-align:center;color:#999;background:#f9f9f9;border:2px dashed #ddd;border-radius:6px;margin-top:20px;padding:40px}.placeholder-text{border:none;padding:20px}.peer-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;margin-top:20px;display:grid}.peer-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.peer-status{font-size:12px}.peer-status.online{color:#28a745}.peer-name{font-weight:500}.health-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.health-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.health-item.status-healthy{background:#f8f9fa;border-color:#d4edda}.health-item.status-warning{background:#fffbf0;border-color:#fff3cd}.health-item.status-error{background:#fff5f5;border-color:#f8d7da}.status-icon{font-size:16px;font-weight:700}.health-item.status-healthy .status-icon{color:#28a745}.health-item.status-warning .status-icon{color:#ffc107}.health-item.status-error .status-icon{color:#dc3545}.component-name{font-weight:500}.reference-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.search-box{margin-bottom:20px}.reference-details{margin-top:20px}.detail-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.detail-row label{color:#666;font-weight:600}.detail-row span{color:#333}.status-materialized{color:#28a745;font-weight:500}.operations-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.filter-controls{margin-bottom:20px}.operations-table{border-collapse:collapse;width:100%;margin-top:20px}.operations-table th{text-align:left;background:#f5f5f5;border-bottom:2px solid #ddd;padding:10px;font-weight:600}.operations-table td{border-bottom:1px solid #f0f0f0;padding:10px}.conflict-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.conflict-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.summary-stat{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.summary-stat label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.workflow-visualizer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.workflow-controls{margin-bottom:20px}.workflows-list,.workflow-detail{margin-top:20px}.agent-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.agents-grid,.agent-detail{margin-top:20px}.provenance-viewer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.provenance-content{margin-top:20px}.settings-panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.settings-tabs{border-bottom:1px solid #e0e0e0;gap:10px;margin:20px 0;display:flex}.tab{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 15px;font-weight:500;transition:all .2s}.tab.active{color:#007bff;border-bottom-color:#007bff}.settings-content{margin-top:20px}.keys-list,.connection-info{margin:20px 0}.info-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.info-row label{color:#666;font-weight:600}.monospace{font-family:Monaco,Courier New,monospace;font-size:12px}.global-search{position:relative}.search-input.global{margin-bottom:10px}.search-results{z-index:1000;background:#fff;border:1px solid #ddd;border-radius:4px;max-height:400px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 2px 8px #0000001a}.results-group{border-bottom:1px solid #f0f0f0;padding:10px}.results-group h4{color:#666;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:600}.results-group .empty-message{color:#999;background:0 0;border:none;padding:5px 0;font-size:12px}.studio-model-page{color:#19251f;max-width:1280px;margin:0 auto}.studio-model-page>header{margin-bottom:22px}.studio-model-page>header h1{margin:4px 0 6px;font-family:Georgia,serif;font-size:36px}.studio-model-page>header p{color:#68776f;margin:0}.eyebrow,.card-kind{color:#217052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.model-summary{flex-wrap:wrap;gap:10px;margin:0 0 18px;display:flex}.model-summary>span,.model-summary select{color:#426052;background:#f8fbf9;border:1px solid #d6e1da;border-radius:999px;padding:7px 12px;font-size:12px}.studio-card-grid,.state-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.studio-card{background:#fff;border:1px solid #d7e0da;border-radius:12px;padding:18px;box-shadow:0 6px 22px #1937280d}.studio-card h2{margin:6px 0 14px;font-family:Georgia,serif;font-size:22px}.model-empty{color:#75847c;text-align:center;background:#fafcfb;border:1px dashed #cbd8d0;border-radius:10px;grid-column:1/-1;padding:34px}.model-empty.compact{padding:20px 10px}.state-collection>header{justify-content:space-between;align-items:center;display:flex}.studio-data-bridge{opacity:0;pointer-events:none;border:0;width:1px;height:1px;position:absolute}.state-collection>header h2{margin-bottom:8px}.state-collection>header strong{color:#237154;font:30px Georgia,serif}.state-row{text-align:left;color:#26372f;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;grid-template-columns:1fr auto;gap:8px;width:100%;padding:12px 2px;display:grid}.state-row span:first-child{flex-direction:column;gap:3px;display:flex}.state-row small{color:#859189}.state-row pre{color:#dcebe2;background:#13231b;border-radius:8px;grid-column:1/-1;margin:4px 0 0;padding:12px;overflow:auto}.application-context{background:#d7e0da;border:1px solid #d7e0da;border-radius:12px;grid-template-columns:repeat(5,minmax(120px,1fr));gap:1px;margin-bottom:18px;display:grid;overflow:hidden}.application-context>span{background:#fff;flex-direction:column;gap:4px;min-width:0;padding:13px 15px;display:flex}.application-context small{color:#728078;letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:800}.application-context strong,.application-context code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-layout{grid-template-columns:220px minmax(0,1fr);gap:16px;display:grid}.data-layout>aside{flex-direction:column;align-self:start;gap:4px;display:flex}.data-layout>aside .card-kind{margin-bottom:8px}.data-layout>aside button{color:#31483d;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:9px 10px}.data-layout>aside button:hover,.data-layout>aside button.active{color:#176443;background:#e5f3eb;font-weight:700}.data-browser>header{justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px;display:flex}.data-browser h2{margin:4px 0 0;font:28px Georgia,serif}.data-error button,.data-pagination button{background:#fff;border:1px solid #cad7cf;border-radius:7px;min-height:36px;padding:7px 10px}.data-error button{color:#fff;cursor:pointer;background:#1f7152}.data-browser table{border-collapse:collapse}.data-browser th,.data-browser td{overflow-wrap:anywhere;text-align:left;vertical-align:top;border-bottom:1px solid #e5ebe7;max-width:300px;padding:11px 13px}.data-browser th small{color:var(--stack-color-text-muted);margin-top:3px;font-weight:400;display:block}.data-browser tbody tr{cursor:pointer}.data-browser tbody tr:hover{background:#f4faf6}.data-browser details pre,.data-detail pre{white-space:pre-wrap;max-height:220px;overflow:auto}.record-link,.reference-value{color:#176b4b;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:650}.data-null{color:#929e97}.data-boolean{background:#edf1ef;border-radius:999px;padding:2px 6px}.data-boolean.true{color:#176443;background:#dff4e9}.secret-state{color:#6d547c;font-weight:700}.data-pagination{justify-content:flex-end;align-items:center;gap:8px;padding:12px 0;display:flex}.data-pagination span{color:#74817a;margin-right:auto}.data-pagination button:not(:disabled){cursor:pointer}.data-error{color:#793b27;background:#fff1e8;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:11px 13px;display:flex}.data-detail{margin-top:10px}.data-detail>header{justify-content:space-between;display:flex}.data-close{color:#64766c;cursor:pointer;background:0 0;border:0;font-size:26px}.data-detail dl{grid-template-columns:minmax(140px,.3fr) 1fr;gap:0;display:grid}.data-detail dt,.data-detail dd{border-top:1px solid #e8edea;margin:0;padding:10px 5px}.data-detail dt{flex-direction:column;font-weight:700;display:flex}.data-detail dt small{color:#839088;font-size:10px;font-weight:400}.reverse-relationship{background:#f7faf8;border-radius:8px;margin-top:14px;padding:12px}.reverse-relationship h3,.reverse-relationship p{margin:0 0 7px}.reverse-relationship .reference-value{margin-top:7px;display:block}.table-shell{background:#fff;border:1px solid #d7e0da;border-radius:12px;overflow:auto}.table-shell table{width:100%;margin:0}.event-pill{text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-block}.event-pill.put{color:#176443;background:#dff4e9}.event-pill.delete{color:#963e2c;background:#fbe4df}.reference-query{gap:8px;margin-bottom:18px;display:flex}.reference-query input{border:1px solid #cad7cf;border-radius:8px;flex:1;padding:12px 14px;font-family:monospace}.reference-query button{color:#fff;cursor:pointer;background:#1f7152;border:0;border-radius:8px;padding:0 20px;font-weight:700}.reference-layout{grid-template-columns:minmax(220px,.35fr) 1fr;gap:16px;display:grid}.reference-example{cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;justify-content:space-between;width:100%;padding:12px 0;display:flex}.reference-example small{color:#829087}.reference-result pre,.execution-row pre{color:#dcebe2;background:#14231c;border-radius:8px;padding:14px;overflow:auto}.execution-list{gap:10px;margin-bottom:20px;display:grid}.execution-row{background:#fff;border:1px solid #d8e1db;border-radius:10px;grid-template-columns:1fr auto;gap:10px;padding:14px;display:grid}.execution-row>div{flex-direction:column;display:flex}.execution-row small{color:#829087}.execution-row pre{grid-column:1/-1;max-height:180px;margin:0}.execution-empty{margin-top:14px}.provenance-nodes{flex-wrap:wrap;gap:10px;display:flex}.provenance-nodes>div,.provenance-event{border:1px solid #d8e1db;border-radius:8px;flex-direction:column;gap:3px;padding:12px;display:flex}.provenance-nodes small,.provenance-event small{color:#849087}.provenance-event{grid-template-columns:45px 1fr 1fr auto;margin-top:8px;display:grid}.peer-topology{align-items:center;gap:10px;padding:30px 4px;display:flex;overflow:auto}.peer-node{background:#fff;border:1px solid #cad8cf;border-radius:12px;min-width:230px;padding:18px}.peer-node.local{color:#eef7f2;background:#183429}.peer-node span,.peer-node small{opacity:.7;font-size:11px}.peer-node h2{margin:6px 0;font-size:15px}.peer-link{background:#81a893;width:45px;height:2px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.metric-grid article{color:#fff;background:#183429;border-radius:10px;flex-direction:column;padding:18px;display:flex}.metric-grid b{font:32px Georgia,serif}.metric-grid span{opacity:.7;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.health-item{align-items:center;gap:12px;display:flex}.health-item div{flex-direction:column;gap:3px;display:flex}.health-item small{color:#78857e}.health-issue{background:#fff2dc;border-radius:8px;margin:10px 0;padding:12px}.search-result{border-top:1px solid #edf0ee;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 0;display:grid}.search-result span{color:#287254;text-transform:uppercase;font-size:10px}.search-result small{color:#829087;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;overflow:hidden}@media (width<=800px){.reference-layout,.data-layout{grid-template-columns:1fr}.application-context{grid-template-columns:1fr 1fr}.data-browser>header{flex-direction:column;align-items:stretch}.metric-grid{grid-template-columns:1fr}.provenance-event{grid-template-columns:35px 1fr}.provenance-event code,.provenance-event small{grid-column:2}}.ask-feltdb{color:#1d3127;background:linear-gradient(135deg,#f7fbf8,#eef7f2);border:1px solid #cbdad1;border-radius:12px;margin:0 0 18px;padding:18px}.ask-feltdb h2{margin:4px 0;font:26px Georgia,serif}.ask-feltdb p{color:#607268;margin:5px 0 12px}.ask-feltdb textarea{box-sizing:border-box;resize:vertical;background:#fff;border:1px solid #b9cfc2;border-radius:8px;width:100%;min-height:76px;margin:8px 0;padding:12px}.ask-feltdb progress{width:100%}.ai-unavailable,.ai-status,.proposal-boundary{font-size:12px}.proposal-review{border-top:1px solid #cbdad1;margin-top:14px;padding-top:14px}.proposal-review h3{margin:0 0 8px}.proposal-review li{margin:4px 0;font-family:monospace}.proposal-review pre{color:#dcebe2;white-space:pre-wrap;background:#14231c;border-radius:8px;max-height:360px;padding:12px;overflow:auto}.proposal-warning{color:#714c08;background:#fff1d7;border-radius:7px;margin:8px 0;padding:10px}.authorization-approval{color:#77301f;background:#fff5f1;border:2px solid #b65439;border-radius:8px;gap:9px;margin:10px 0;padding:12px;display:flex}.proposal-app-preview{background:#fff;border:1px solid #bfd2c6;border-radius:9px;margin:12px 0;padding:12px}.proposal-app-preview nav{border-bottom:1px solid #e1e9e4;flex-wrap:wrap;gap:6px;padding-bottom:10px;display:flex}.proposal-app-preview nav span{color:#1f6549;background:#e5f3eb;border-radius:999px;padding:4px 8px;font-size:11px}.proposal-app-preview section{border-bottom:1px solid #edf1ee;justify-content:space-between;gap:12px;padding:9px 2px;display:flex}.proposal-app-preview small{color:#718079;text-align:right}.proposal-browser>header{margin-bottom:18px}.proposal-browser>header h1{margin:4px 0;font:36px Georgia,serif}.proposal-browser-layout{grid-template-columns:minmax(280px,.7fr) minmax(360px,1.3fr);gap:16px;display:grid}.proposal-list-row{text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #e4ebe7;justify-content:space-between;gap:12px;width:100%;padding:12px 2px;display:flex}.proposal-list-row span{flex-direction:column;gap:3px;display:flex}.proposal-list-row small{color:#7c8982}.proposal-list-row b{color:#267052;text-transform:uppercase;font-size:10px}.proposal-detail pre{color:#dcebe2;white-space:pre-wrap;background:#14231c;border-radius:8px;padding:12px;overflow:auto}.proposal-actions{gap:8px;margin:14px 0;display:flex}.proposal-preview{background:#fffaf0;border:2px solid #c28c28;border-radius:10px;margin-top:14px;padding:16px}.preview-banner{color:#fff;background:#704d0c;margin:-16px -16px 16px;padding:12px 16px}.record-inspector{text-align:left;background:#f7faf8;border-radius:8px;grid-column:1/-1;padding:14px}.record-inspector dl{grid-template-columns:minmax(110px,.35fr) 1fr;gap:7px 12px;display:grid}.record-inspector dt{color:#607268;font-weight:700}.record-inspector dd{overflow-wrap:anywhere;margin:0}.record-inspector pre{max-height:260px}@media (width<=800px){.proposal-browser-layout{grid-template-columns:1fr}}.proposal-workspace{color:#19251f;max-width:1400px;margin:0 auto}.proposal-workspace>header h1{margin:4px 0;font:36px Georgia,serif}.proposal-workspace>header p{color:#68776f;margin:0 0 18px}.proposal-workspace-layout{grid-template-columns:minmax(300px,.7fr) minmax(500px,1.5fr);gap:16px;display:grid}.proposal-workspace-layout>aside{align-self:start}.proposal-workspace-layout>aside>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.proposal-workspace-layout>aside select{background:#fff;border:1px solid #cad7cf;border-radius:7px;padding:7px}.proposal-list-row.active{background:#e8f4ed;border-radius:7px;width:calc(100% + 16px);margin:0 -8px;padding-left:8px;padding-right:8px}.proposal-detail>header{border-bottom:1px solid #e4ebe7;grid-template-columns:1fr auto;gap:20px;padding-bottom:14px;display:grid}.proposal-detail>header h2{margin:8px 0}.proposal-detail>header dl{grid-template-columns:auto 1fr;gap:5px 10px;margin:0;font-size:12px;display:grid}.proposal-detail>header dt{color:#78867e}.proposal-detail>header dd{text-overflow:ellipsis;white-space:nowrap;max-width:220px;margin:0;overflow:hidden}.proposal-status{color:#355247;letter-spacing:.1em;text-transform:uppercase;background:#e7ece9;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;display:inline-block}.proposal-status.previewed,.proposal-status.approved{color:#176443;background:#dff4e9}.proposal-status.rejected,.proposal-status.expired{color:#963e2c;background:#fbe4df}.semantic-diff{color:#e3eee8;background:#14231c;border-radius:10px;margin:18px 0;padding:16px}.semantic-diff>h3{margin-top:0;font:18px Georgia,serif}.semantic-section{margin:13px 0}.semantic-section h4{color:#76d2a7;letter-spacing:.13em;text-transform:uppercase;margin:0 0 5px;font-size:10px}.semantic-section div{margin:3px 0;font-family:monospace;font-size:12px}.proposal-detail>.semantic-section{border:1px solid #dce5df;border-radius:8px;padding:12px}.ownership-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;display:grid}.ownership-grid span{border:1px solid #dae4de;border-radius:8px;flex-direction:column;padding:10px;display:flex}.ownership-grid small{color:#64776d;text-transform:capitalize;margin-top:4px}.reconciliation-flow{background:#f4f8f5;border-radius:9px;flex-direction:column;align-items:center;max-width:430px;margin:10px 0;padding:14px;display:flex}.reconciliation-flow span{text-align:center;background:#fff;border:1px solid #cbdad1;border-radius:6px;width:100%;padding:7px}.reconciliation-flow i{color:#398261;padding:3px;font-style:normal}.proposal-readiness,.repository-readiness{background:#f5faf7;border:1px solid #cddbd3;border-radius:9px;margin:15px 0;padding:14px}.proposal-readiness.blocked,.repository-readiness.blocked{background:#fff8eb;border-color:#e2c28e}.proposal-readiness h3,.repository-readiness h3{text-transform:uppercase;letter-spacing:.12em;margin-top:0;font-size:12px}.proposal-readiness dl{grid-template-columns:auto 1fr;gap:4px 10px;display:grid}.proposal-readiness dd{text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.proposal-runtime-preview{border:2px solid #b47b1f;border-radius:10px;margin:15px 0;overflow:hidden}.proposal-runtime-preview .preview-banner{margin:0}.preview-comparison{grid-template-columns:1fr auto 1fr;gap:12px;padding:15px;display:grid}.preview-comparison section{flex-direction:column;gap:5px;display:flex}.preview-comparison h4{text-transform:uppercase;margin:0 0 5px}.preview-comparison span{background:#f2f6f3;border-radius:5px;padding:5px 8px}.preview-comparison i{align-self:center;font-style:normal}.proposal-understanding{background:#f4faf6;border:1px solid #bdd5c5;border-radius:10px;margin:18px 0;padding:18px}.proposal-understanding>h3{margin:0}.proposal-understanding>p{color:#66766d}.proposal-understanding article{background:#fff;border:1px solid #d9e4dc;border-radius:8px;margin-top:12px;padding:14px}.proposal-understanding article header{align-items:center;gap:9px;display:flex}.proposal-understanding article header b{color:#177146;margin-left:auto;font-size:18px}.proposal-understanding article header span{color:#456152;text-transform:uppercase;background:#e6f1e9;border-radius:4px;padding:3px 6px;font:10px monospace}.proposal-understanding article>p{margin:8px 0;font-size:18px}.proposal-understanding article>small{color:#68776f;margin-bottom:10px;display:block}.proposal-understanding article>div{color:#3f5549;justify-content:space-between;gap:10px;padding-top:5px;font-size:12px;display:flex}.proposal-understanding article>div code{color:#7a877f}.understanding-unknowns{background:#fff8eb;border-left:3px solid #b47b1f;margin-top:14px;padding:12px}.understanding-unknowns h4{margin:0}.proposal-understanding>footer{color:#6b7971;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:11px;display:flex}.proposal-verification{border:1px solid #cddbd3;border-radius:9px;margin:15px 0;padding:14px}.proposal-verification.converged{border-color:#3a9b72}.proposal-verification.diverged{border-color:#c94b45}.proposal-verification>div{border-top:1px solid #dce5df;grid-template-columns:9rem 1fr;gap:.5rem;padding:.45rem 0;display:grid}.proposal-verification small{color:#68776f;grid-column:2}.proposal-history{padding:0;list-style:none}.proposal-history li{text-transform:capitalize;border-top:1px solid #e5ebe7;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;display:grid}.proposal-history small{color:#829087;grid-column:1/-1}.proposal-boundary{background:#edf8f2;border:1px solid #b9d7c7;border-radius:9px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:15px;padding:14px;display:flex}.proposal-boundary code{background:#fff;padding:7px;display:block}.proposal-boundary p{width:100%;margin:0}.proposal-modal{z-index:30;background:#0b191294;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.proposal-modal>section{background:#fff;border-radius:12px;width:min(520px,100%);max-height:80vh;padding:22px;overflow:auto;box-shadow:0 20px 70px #0000004d}.proposal-modal textarea{box-sizing:border-box;width:100%;min-height:90px}.proposal-modal footer{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.proposal-modal footer button{cursor:pointer;background:#fff;border:1px solid #bfcfc6;border-radius:7px;padding:9px 15px}.proposal-modal footer button:last-child{color:#fff;background:#1f7152}@media (width<=900px){.proposal-workspace-layout,.proposal-detail>header,.preview-comparison{grid-template-columns:1fr}.preview-comparison i{transform:rotate(90deg)}}.cp-page{grid-template-columns:minmax(0,1fr);gap:18px;display:grid}.cp-page code{overflow-wrap:anywhere}.cp-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.cp-stat{background:#fff;border:1px solid #dce4de;border-radius:8px;padding:10px 12px}.cp-stat small{color:var(--stack-color-text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800;display:block}.cp-stat strong{color:#1d2b23;overflow-wrap:anywhere;margin-top:4px;font:600 19px/1.2 Georgia,serif;display:block}.cp-panels{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;display:grid}.cp-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.cp-pill{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.cp-pill-available,.cp-pill-insert,.cp-pill-independent,.cp-pill-added,.cp-pill-running{color:#1f684c;background:#e6f3ec}.cp-pill-partial,.cp-pill-update,.cp-pill-convergent,.cp-pill-changed{color:#8b5a1f;background:#fbf0df}.cp-pill-unsupported,.cp-pill-delete,.cp-pill-conflict,.cp-pill-removed,.cp-pill-failed{color:#9b2c2c;background:#fbe9e9}.cp-unavailable{background:#f7f8f6;border:1px dashed #c6d0c8;border-radius:10px;margin:12px 0;padding:16px 18px}.cp-unavailable h3{color:#33443a;font:600 16px/1.3 Georgia,serif}.cp-unavailable p{color:#5c6a61;max-width:82ch;margin-top:6px}.cp-unavailable-id{color:var(--stack-color-text-muted);margin:6px 0 0;font-size:12px}.cp-notice{color:#8b5a1f;background:#fdf6ea;border:1px solid #eddcbf;border-radius:7px;padding:9px 12px;font-size:12px}.cp-error{color:#9b2c2c;background:#fff0f0;border:1px solid #f1caca;border-radius:7px;align-items:center;gap:10px;padding:9px 12px;font-size:12px;display:flex}.cp-loading,.cp-empty{color:var(--stack-color-text-muted);padding:18px;font-style:italic}.cp-muted{color:var(--stack-color-text-muted);font-size:12px}.cp-attribution{background:#f2f6f3;border-left:3px solid #287052;border-radius:0 7px 7px 0;padding:10px 12px;font-size:13px}.cp-json{color:#22312a;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f9f7;border:1px solid #e0e7e2;border-radius:7px;max-height:380px;padding:12px;font-size:11px;line-height:1.55;overflow:auto}.cp-raw{margin-top:8px}.cp-raw summary{color:var(--stack-color-text-muted);cursor:pointer;font-size:11px}.cp-path,.cp-identity{font-size:11px}.cp-identity{color:#405146}.cp-tabs{margin:6px 0 12px}.cp-tabpanel{padding-top:0}.cp-filter{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.cp-filter input,.cp-filter select{color:#20342a;background:#fff;border:1px solid #cbd8cf;border-radius:6px;padding:7px 9px;font-size:12px}.cp-detail{margin-top:16px}.cp-detail-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.cp-detail-header h2{margin:2px 0 4px;font:600 22px/1.2 Georgia,serif}.cp-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cp-record{grid-template-columns:minmax(140px,220px) 1fr;gap:6px 16px;margin-top:10px;display:grid}.cp-record dt{color:#5c6a61;font-size:12px;font-weight:600}.cp-record dt small{color:#97a19a;font-size:10px;font-weight:500;display:block}.cp-record dd{overflow-wrap:anywhere;font-size:13px}.cp-keys{flex-wrap:wrap;gap:4px;display:flex}.cp-keys code{color:#405146;font-size:10px}.cp-capabilities{flex-wrap:wrap;gap:5px;margin:8px 0;display:flex}.cp-capabilities code{color:#1f684c;background:#eaf3ee;border-radius:5px;padding:2px 7px;font-size:11px}.cp-grant{border-radius:5px;margin:2px 4px 2px 0;padding:2px 8px;font-size:11px;display:inline-block}.cp-grant small{opacity:.8;font-size:9px;display:block}.cp-grant.granted{color:#1f684c;background:#e6f3ec}.cp-grant.denied{color:#8b5a1f;background:#fbf0df}.cp-agent-card{text-align:left;cursor:pointer;width:100%;display:block}.cp-agent-card h3{margin:3px 0 4px;font:600 18px/1.2 Georgia,serif}.cp-connect{gap:12px;margin-top:18px;display:grid}.cp-connect label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cp-connect input[type=text],.cp-connect input:not([type]){color:#20342a;background:#fbfcf9;border:1px solid #cbd8cf;border-radius:6px;padding:8px 10px;font-size:12px}.cp-connect fieldset{border:1px solid #dce4de;border-radius:8px;padding:10px 12px}.cp-connect legend{color:#65736a;letter-spacing:.07em;text-transform:uppercase;padding:0 6px;font-size:9px;font-weight:800}.cp-check{align-items:center;gap:7px;text-transform:none!important;letter-spacing:0!important;flex-direction:row!important;font-size:12px!important;font-weight:500!important;display:flex!important}.cp-connected{color:#1f684c;background:#eaf5ee;border:1px solid #cce5d5;border-radius:7px;padding:10px 12px;font-size:12px}.cp-action-form{gap:10px;margin-top:16px;display:grid}.cp-action-form label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cp-action-form input,.cp-action-form select{color:#20342a;background:#fbfcf9;border:1px solid #cbd8cf;border-radius:6px;padding:8px 10px;font-size:12px}.cp-action-form label small{color:#97a19a;text-transform:none;letter-spacing:0;font-weight:500}.cp-reconcile{gap:14px;display:grid}.cp-parent-choice{background:#f7f9f7;border:1px solid #e0e7e2;border-radius:8px;gap:6px;padding:10px 12px;display:grid}.cp-overrides{gap:8px;display:grid}.cp-overrides label{grid-template-columns:minmax(120px,240px) 1fr;align-items:center;gap:10px;display:grid}.cp-overrides input{border:1px solid #cbd8cf;border-radius:6px;padding:7px 9px;font-size:12px}.cp-committed{border-left:3px solid #287052}.cp-value-old code{color:#9b2c2c}.cp-value-new code{color:#1f684c}.cp-row-conflict{background:#fdf3f3}.cp-note{color:#5c6a61;max-width:52ch;font-size:11px}.data-browser tr.selected{background:#eef5f0}.nav-unavailable{opacity:.6}.nav-note{font-size:11px;font-weight:400}:root{--primary-color:#007bff;--success-color:#28a745;--warning-color:#ffc107;--danger-color:#dc3545;--dark:#1a1a1a;--light:#f5f5f5;--border:#e0e0e0;--text-muted:#999}*{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}#root{width:100%;height:100%}body{background:var(--light);color:#333}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}p{line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#999}*{scrollbar-color:#ccc transparent;scrollbar-width:thin}
@@ -1,3 +1,3 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#17211b"/><title>FeltDB Studio</title> <script type="module" crossorigin src="/assets/index-DoVvbIay.js"></script>
2
- <link rel="stylesheet" crossorigin href="/assets/index-CiC8VY-a.css">
1
+ <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#17211b"/><title>FeltDB Studio</title> <script type="module" crossorigin src="/assets/index-1wd0uKua.js"></script>
2
+ <link rel="stylesheet" crossorigin href="/assets/index-vi21oEQa.css">
3
3
  </head><body><div id="root"></div></body></html>
@@ -22,6 +22,7 @@
22
22
  * a runtime that cannot provide that path refuses the transaction rather than
23
23
  * silently degrading it into a sequence of independent writes.
24
24
  */
25
+ import { FeltDBServiceError } from './error-codes.js';
25
26
  /**
26
27
  * What must be true of one record for the transaction to commit.
27
28
  *
@@ -31,8 +32,10 @@
31
32
  *
32
33
  * Every predicate is optional and only a supplied one is checked. `version` is
33
34
  * the record's `__version` -- the field you read back and pass to
34
- * `updateIfVersion` -- and it is owned by the writer, so a transaction that
35
- * wants to exclude its own successor must write an advanced `__version`.
35
+ * `updateIfVersion`. When the transaction also writes the guarded record, the
36
+ * authority writes it at `expectedVersion + 1`, so a second transaction
37
+ * guarded on the same version is refused: two writers cannot both progress
38
+ * from one version.
36
39
  */
37
40
  export interface AtomicTransactionPrecondition {
38
41
  collection: string;
@@ -250,12 +253,17 @@ export interface AtomicTransactionOptions {
250
253
  */
251
254
  transactionId?: string;
252
255
  }
253
- /** Thrown when a transaction cannot be committed. Nothing was applied. */
254
- export declare class AtomicTransactionError extends Error {
256
+ /**
257
+ * Thrown when a transaction cannot be committed, or when its outcome is not
258
+ * known (`code: 'COMMIT_OUTCOME_UNKNOWN'`, `'DURABILITY_FAILURE'`).
259
+ *
260
+ * A `FeltDBServiceError`, so one `instanceof` and one `code` describe every
261
+ * typed failure, whichever runtime or transport produced it. `status` and
262
+ * `requestId` are the authority's, when it answered.
263
+ */
264
+ export declare class AtomicTransactionError extends FeltDBServiceError {
255
265
  readonly transactionId: string;
256
- readonly code?: string;
257
- readonly status?: number;
258
- constructor(message: string, transactionId: string, code?: string, status?: number, cause?: unknown);
266
+ constructor(message: string, transactionId: string, code?: string, status?: number, cause?: unknown, requestId?: string);
259
267
  }
260
268
  /**
261
269
  * The transaction id was already committed with a different payload.
@@ -266,7 +274,7 @@ export declare class AtomicTransactionError extends Error {
266
274
  */
267
275
  export declare class TransactionIdConflictError extends AtomicTransactionError {
268
276
  readonly code: "IDEMPOTENCY_CONFLICT";
269
- constructor(transactionId: string, message?: string);
277
+ constructor(transactionId: string, message?: string, status?: number, requestId?: string);
270
278
  }
271
279
  /**
272
280
  * The transaction id exists, but its recorded identity cannot be checked by
@@ -277,12 +285,20 @@ export declare class TransactionIdConflictError extends AtomicTransactionError {
277
285
  */
278
286
  export declare class TransactionIdUnverifiableError extends AtomicTransactionError {
279
287
  readonly code: "IDEMPOTENCY_UNVERIFIABLE";
280
- constructor(transactionId: string, message?: string);
288
+ constructor(transactionId: string, message?: string, status?: number, requestId?: string);
281
289
  }
282
- /** Which predicate failed, and what the authority actually holds. */
290
+ /**
291
+ * Which predicate failed, and what the authority actually holds.
292
+ *
293
+ * The same shape on every runtime and route: `collection` is the
294
+ * application's collection name (never a storage namespace), `id` the record
295
+ * id, and `key` the record's `collection:id`. A fence failure names the
296
+ * first fenced collection, `key: 'read-basis'`, and no `id`.
297
+ */
283
298
  export interface ConditionalConflictDetail {
284
299
  predicate: 'version' | 'epoch' | 'lease' | 'present' | 'missing' | 'fence';
285
300
  collection: string;
301
+ id?: string;
286
302
  key: string;
287
303
  expected?: number | string;
288
304
  actual?: number | string | null;
@@ -300,7 +316,7 @@ export interface ConditionalConflictDetail {
300
316
  export declare class ConditionalConflictError extends AtomicTransactionError {
301
317
  readonly code: "PRECONDITION_FAILED";
302
318
  readonly failure?: ConditionalConflictDetail;
303
- constructor(message: string, transactionId: string, failure?: ConditionalConflictDetail);
319
+ constructor(message: string, transactionId: string, failure?: ConditionalConflictDetail, status?: number, requestId?: string);
304
320
  }
305
321
  /**
306
322
  * A refusal a conditional write is *allowed* to have, told apart from every
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@
22
22
  * a runtime that cannot provide that path refuses the transaction rather than
23
23
  * silently degrading it into a sequence of independent writes.
24
24
  */
25
+ import { FeltDBServiceError } from './error-codes.js';
25
26
  /** Largest number of records plus predicates one read basis may name. */
26
27
  export const TRANSACTION_READ_SET_LIMIT = 1_000;
27
28
  const READ_SET_SEGMENT = /^[A-Za-z0-9._-]{1,128}$/;
@@ -66,17 +67,22 @@ export function normaliseReadSet(reads) {
66
67
  predicates: [...predicates.entries()].sort(([left], [right]) => (left < right ? -1 : 1)).map(([, value]) => value),
67
68
  };
68
69
  }
69
- /** Thrown when a transaction cannot be committed. Nothing was applied. */
70
- export class AtomicTransactionError extends Error {
70
+ /**
71
+ * Thrown when a transaction cannot be committed, or when its outcome is not
72
+ * known (`code: 'COMMIT_OUTCOME_UNKNOWN'`, `'DURABILITY_FAILURE'`).
73
+ *
74
+ * A `FeltDBServiceError`, so one `instanceof` and one `code` describe every
75
+ * typed failure, whichever runtime or transport produced it. `status` and
76
+ * `requestId` are the authority's, when it answered.
77
+ */
78
+ export class AtomicTransactionError extends FeltDBServiceError {
71
79
  transactionId;
72
- code;
73
- status;
74
- constructor(message, transactionId, code, status, cause) {
75
- super(message, { cause });
80
+ constructor(message, transactionId, code, status, cause, requestId) {
81
+ super(message, code ?? 'TRANSACTION_FAILED', requestId, status);
82
+ if (cause !== undefined)
83
+ this.cause = cause;
76
84
  this.name = 'AtomicTransactionError';
77
85
  this.transactionId = transactionId;
78
- this.code = code;
79
- this.status = status;
80
86
  }
81
87
  }
82
88
  /**
@@ -88,8 +94,8 @@ export class AtomicTransactionError extends Error {
88
94
  */
89
95
  export class TransactionIdConflictError extends AtomicTransactionError {
90
96
  code = 'IDEMPOTENCY_CONFLICT';
91
- constructor(transactionId, message) {
92
- super(message ?? `Transaction ${transactionId} was already committed with a different payload`, transactionId);
97
+ constructor(transactionId, message, status, requestId) {
98
+ super(message ?? `Transaction ${transactionId} was already committed with a different payload`, transactionId, 'IDEMPOTENCY_CONFLICT', status, undefined, requestId);
93
99
  this.name = 'TransactionIdConflictError';
94
100
  }
95
101
  }
@@ -102,8 +108,8 @@ export class TransactionIdConflictError extends AtomicTransactionError {
102
108
  */
103
109
  export class TransactionIdUnverifiableError extends AtomicTransactionError {
104
110
  code = 'IDEMPOTENCY_UNVERIFIABLE';
105
- constructor(transactionId, message) {
106
- super(message ?? `Transaction ${transactionId} exists, but its recorded identity cannot be verified by this build`, transactionId);
111
+ constructor(transactionId, message, status, requestId) {
112
+ super(message ?? `Transaction ${transactionId} exists, but its recorded identity cannot be verified by this build`, transactionId, 'IDEMPOTENCY_UNVERIFIABLE', status, undefined, requestId);
107
113
  this.name = 'TransactionIdUnverifiableError';
108
114
  }
109
115
  }
@@ -120,8 +126,8 @@ export class TransactionIdUnverifiableError extends AtomicTransactionError {
120
126
  export class ConditionalConflictError extends AtomicTransactionError {
121
127
  code = 'PRECONDITION_FAILED';
122
128
  failure;
123
- constructor(message, transactionId, failure) {
124
- super(message, transactionId);
129
+ constructor(message, transactionId, failure, status, requestId) {
130
+ super(message, transactionId, 'PRECONDITION_FAILED', status, undefined, requestId);
125
131
  this.name = 'ConditionalConflictError';
126
132
  this.failure = failure;
127
133
  }
Binary file
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "feltdb-wasm",
3
3
  "type": "module",
4
- "version": "0.2.1",
4
+ "version": "0.3.0",
5
5
  "files": [
6
6
  "feltdb_wasm_bg.wasm",
7
7
  "feltdb_wasm.js",
@@ -46,7 +46,7 @@ export interface Workload {
46
46
  current_claim?: WorkloadClaim;
47
47
  execution_history: unknown[];
48
48
  attempts: unknown[];
49
- checkpoints: unknown[];
49
+ checkpoints: WorkloadCheckpoint[];
50
50
  result?: WorkloadResult;
51
51
  }
52
52
  export interface WorkloadClaim {
@@ -69,10 +69,38 @@ export interface WorkloadResult {
69
69
  produced_by: string;
70
70
  created_at: number;
71
71
  }
72
+ export interface WorkloadCheckpoint {
73
+ checkpoint_id: string;
74
+ workload_id: string;
75
+ attempt_id: string;
76
+ sequence: number;
77
+ state: unknown;
78
+ state_hash: string;
79
+ created_at: number;
80
+ produced_by: string;
81
+ }
82
+ /** What a fenced worker may read: its input and every committed checkpoint, including those of lost attempts. */
83
+ export interface WorkloadExecutionContext {
84
+ workload_id: string;
85
+ attempt_id: string;
86
+ worker_id: string;
87
+ capabilities: string[];
88
+ connection_scopes: string[];
89
+ secret_references: string[];
90
+ expires_at: number;
91
+ fencing_token: number;
92
+ input: unknown;
93
+ checkpoints: WorkloadCheckpoint[];
94
+ }
72
95
  export declare class WorkloadClient {
73
96
  private baseUrl;
74
97
  private fetcher;
75
98
  constructor(baseUrl?: string, fetcher?: typeof fetch);
99
+ /**
100
+ * Refusals are `FeltDBServiceError`s carrying the authority's code, status and body (`details` reads its details). A transport failure on a
101
+ * write is `COMMIT_OUTCOME_UNKNOWN`: the report may have landed, so retry the same report (same fence, result id
102
+ * and output), which the authority replays, rather than a different one.
103
+ */
76
104
  private json;
77
105
  create(input: CreateWorkloadInput): Promise<Workload>;
78
106
  list(applicationId: string): Promise<{
@@ -92,11 +120,11 @@ export declare class WorkloadClient {
92
120
  state: WorkloadState;
93
121
  }>;
94
122
  confirmCancelled(id: string, fence: unknown): Promise<void>;
95
- executionContext(id: string, input: unknown): Promise<unknown>;
123
+ executionContext(id: string, input: unknown): Promise<WorkloadExecutionContext>;
96
124
  cancel(id: string, grant: SignedGrant): Promise<{
97
125
  state: WorkloadState;
98
126
  }>;
99
- retry(id: string, grant: SignedGrant): Promise<void>;
127
+ retry(id: string, grant: SignedGrant, reason?: string): Promise<void>;
100
128
  history(id: string): Promise<unknown>;
101
129
  result(id: string): Promise<WorkloadResult | undefined>;
102
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workload.d.ts","sourceRoot":"","sources":["../src/workload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workload.d.ts","sourceRoot":"","sources":["../src/workload.ts"],"names":[],"mappings":"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"}